From 1750ab8676dadb3d6f2f3dbfe0ee9ea95de66733 Mon Sep 17 00:00:00 2001
From: Julia Bardi <90178898+juliaElastic@users.noreply.github.com>
Date: Mon, 3 Jun 2024 15:53:06 +0200
Subject: [PATCH 01/82] [Fleet] fix restart upgrade disabled condition
(#184586)
## Summary
Closes https://github.com/elastic/kibana/issues/184212
Fix the Restart upgrade modal submit button disabled condition. It was
not correct for single agent restart, the restart was disabled.
To verify:
- enroll an agent with an older version e.g. 8.13.1
- upgrade agent with a fictive version e.g. 8.13.5
- update the agent doc to set the `upgrade_started_at` to more than 2
hours ago
- go to `Restart upgrade`, the modal window show enable submit
### 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
---
.../agent_upgrade_modal/index.test.tsx | 41 +++++++++++++++++++
.../components/agent_upgrade_modal/index.tsx | 29 ++++++-------
2 files changed, 56 insertions(+), 14 deletions(-)
diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/agent_upgrade_modal/index.test.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/agent_upgrade_modal/index.test.tsx
index a71329168d054..3167c2dcd4d00 100644
--- a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/agent_upgrade_modal/index.test.tsx
+++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/agent_upgrade_modal/index.test.tsx
@@ -466,4 +466,45 @@ describe('AgentUpgradeAgentModal', () => {
expect(el).toBeDisabled();
});
});
+
+ it('should enable restart upgrade if single agent stuck updating', async () => {
+ const { utils } = renderAgentUpgradeAgentModal({
+ agents: [
+ { status: 'updating', upgrade_started_at: '2022-11-21T12:27:24Z', id: 'agent1' },
+ ] as any,
+ agentCount: 1,
+ isUpdating: true,
+ });
+
+ const el = utils.getByTestId('confirmModalTitleText');
+ expect(el.textContent).toEqual('Restart upgrade');
+
+ const btn = utils.getByTestId('confirmModalConfirmButton');
+ await waitFor(() => {
+ expect(btn).toBeEnabled();
+ });
+ });
+
+ it('should enable restart upgrade if single agent failed upgrade', async () => {
+ const { utils } = renderAgentUpgradeAgentModal({
+ agents: [
+ {
+ status: 'updating',
+ upgrade_details: { state: 'UPG_FAILED' },
+ id: 'agent1',
+ active: true,
+ },
+ ] as any,
+ agentCount: 1,
+ isUpdating: true,
+ });
+
+ const el = utils.getByTestId('confirmModalTitleText');
+ expect(el.textContent).toEqual('Restart upgrade');
+
+ const btn = utils.getByTestId('confirmModalConfirmButton');
+ await waitFor(() => {
+ expect(btn).toBeEnabled();
+ });
+ });
});
diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/agent_upgrade_modal/index.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/agent_upgrade_modal/index.tsx
index aab08cad1922a..b65b90e8062bd 100644
--- a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/agent_upgrade_modal/index.tsx
+++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/agent_upgrade_modal/index.tsx
@@ -290,26 +290,27 @@ export const AgentUpgradeAgentModal: React.FunctionComponent agent.id).includes(agents[0].id);
- const isSubmitButtonDisabled = useMemo(
- () =>
+ const isSubmitButtonDisabled = useMemo(() => {
+ if (!isSubmitting && isUpdating && isSingleAgent && isStuckInUpdating(agents[0])) return false;
+ return (
isSubmitting ||
(isUpdating && updatingAgents === 0) ||
!selectedVersion[0].value ||
(isSingleAgent && !isAgentUpgradeableToVersion(agents[0], selectedVersion[0].value)) ||
(isSingleAgent &&
!isSingleAgentFleetServer &&
- !isAgentVersionLessThanFleetServer(selectedVersion[0].value, fleetServerAgents)),
- [
- agents,
- fleetServerAgents,
- isSingleAgent,
- isSubmitting,
- isUpdating,
- selectedVersion,
- updatingAgents,
- isSingleAgentFleetServer,
- ]
- );
+ !isAgentVersionLessThanFleetServer(selectedVersion[0].value, fleetServerAgents))
+ );
+ }, [
+ agents,
+ fleetServerAgents,
+ isSingleAgent,
+ isSubmitting,
+ isUpdating,
+ selectedVersion,
+ updatingAgents,
+ isSingleAgentFleetServer,
+ ]);
async function onSubmit() {
const version = getVersion(selectedVersion);
From 9abe56f1c699367e111e08a5df6bd10e9598e922 Mon Sep 17 00:00:00 2001
From: Drew Tate
Date: Mon, 3 Jun 2024 08:10:44 -0600
Subject: [PATCH 02/82] [ES|QL] add tests for implicit date casting (#184612)
## Summary
Relates to https://github.com/elastic/elasticsearch/issues/109265
These test reflect the reality of how date casting is working in
Elasticsearch today. When the above issue is addressed in Elasticsearch,
these tests will fail the error sync check and prompt us to update the
validator.
---------
Co-authored-by: Stratoula Kalafateli
---
.../generate_function_validation_tests.ts | 76 +++++++++
.../esql_validation_meta_tests.json | 153 ++++++++++++++++++
.../src/validation/validation.test.ts | 77 +++++++++
3 files changed, 306 insertions(+)
diff --git a/packages/kbn-esql-validation-autocomplete/scripts/generate_function_validation_tests.ts b/packages/kbn-esql-validation-autocomplete/scripts/generate_function_validation_tests.ts
index bc12ea1fbfb2f..3f3f4f42a07ce 100644
--- a/packages/kbn-esql-validation-autocomplete/scripts/generate_function_validation_tests.ts
+++ b/packages/kbn-esql-validation-autocomplete/scripts/generate_function_validation_tests.ts
@@ -53,6 +53,7 @@ function generateTestsForEvalFunction(definition: FunctionDefinition) {
generateEvalCommandTestsForEvalFunction(definition, testCases);
generateSortCommandTestsForEvalFunction(definition, testCases);
generateNullAcceptanceTestsForFunction(definition, testCases);
+ generateImplicitDateCastingTestsForFunction(definition, testCases);
return testCases;
}
@@ -63,6 +64,7 @@ function generateTestsForAggFunction(definition: FunctionDefinition) {
generateWhereCommandTestsForAggFunction(definition, testCases);
generateEvalCommandTestsForAggFunction(definition, testCases);
generateNullAcceptanceTestsForFunction(definition, testCases);
+ generateImplicitDateCastingTestsForFunction(definition, testCases);
return testCases;
}
@@ -71,6 +73,7 @@ function generateTestsForGroupingFunction(definition: FunctionDefinition) {
generateStatsCommandTestsForGroupingFunction(definition, testCases);
generateSortCommandTestsForGroupingFunction(definition, testCases);
generateNullAcceptanceTestsForFunction(definition, testCases);
+ generateImplicitDateCastingTestsForFunction(definition, testCases);
return testCases;
}
@@ -124,6 +127,79 @@ function generateNullAcceptanceTestsForFunction(
);
}
+/**
+ * Tests for strings being casted to dates
+ *
+ * @param definition
+ * @param testCases
+ * @returns
+ */
+function generateImplicitDateCastingTestsForFunction(
+ definition: FunctionDefinition,
+ testCases: Map
+) {
+ const allSignaturesWithDateParams = definition.signatures.filter((signature) =>
+ signature.params.some(
+ (param, i) =>
+ param.type === 'date' &&
+ !definition.signatures.some((def) => def.params[i].type === 'string') // don't count parameters that already accept a string
+ )
+ );
+
+ if (!allSignaturesWithDateParams.length) {
+ // no signatures contain date params
+ return;
+ }
+
+ const commandToTestWith = definition.supportedCommands.includes('eval') ? 'eval' : 'stats';
+
+ for (const signature of allSignaturesWithDateParams) {
+ const mappedParams = getFieldMapping(signature.params);
+
+ testCases.set(
+ `from a_index | ${commandToTestWith} ${
+ getFunctionSignatures(
+ {
+ ...definition,
+ signatures: [
+ {
+ ...signature,
+ params: mappedParams.map((param) =>
+ // overwrite dates with a string
+ param.type === 'date' ? { ...param, name: '"2022"' } : param
+ ),
+ },
+ ],
+ },
+ { withTypes: false }
+ )[0].declaration
+ }`,
+ []
+ );
+
+ testCases.set(
+ `from a_index | ${commandToTestWith} ${
+ getFunctionSignatures(
+ {
+ ...definition,
+ signatures: [
+ {
+ ...signature,
+ params: mappedParams.map((param) =>
+ // overwrite dates with a string
+ param.type === 'date' ? { ...param, name: 'concat("20", "22")' } : param
+ ),
+ },
+ ],
+ },
+ { withTypes: false }
+ )[0].declaration
+ }`,
+ []
+ );
+ }
+}
+
function generateRowCommandTestsForEvalFunction(
{ name, alias, signatures, ...defRest }: FunctionDefinition,
testCases: Map
diff --git a/packages/kbn-esql-validation-autocomplete/src/validation/esql_validation_meta_tests.json b/packages/kbn-esql-validation-autocomplete/src/validation/esql_validation_meta_tests.json
index 1a3296984d7e1..a18a65138b10d 100644
--- a/packages/kbn-esql-validation-autocomplete/src/validation/esql_validation_meta_tests.json
+++ b/packages/kbn-esql-validation-autocomplete/src/validation/esql_validation_meta_tests.json
@@ -9044,6 +9044,19 @@
"error": [],
"warning": []
},
+ {
+ "query": "from a_index | eval date_diff(\"year\", \"2022\", \"2022\")",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "from a_index | eval date_diff(\"year\", concat(\"20\", \"22\"), concat(\"20\", \"22\"))",
+ "error": [
+ "Argument of [date_diff] must be [date], found value [concat(\"20\", \"22\")] type [string]",
+ "Argument of [date_diff] must be [date], found value [concat(\"20\", \"22\")] type [string]"
+ ],
+ "warning": []
+ },
{
"query": "row var = abs(5)",
"error": [],
@@ -10999,6 +11012,18 @@
"error": [],
"warning": []
},
+ {
+ "query": "from a_index | eval date_extract(\"ALIGNED_DAY_OF_WEEK_IN_MONTH\", \"2022\")",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "from a_index | eval date_extract(\"ALIGNED_DAY_OF_WEEK_IN_MONTH\", concat(\"20\", \"22\"))",
+ "error": [
+ "Argument of [date_extract] must be [date], found value [concat(\"20\", \"22\")] type [string]"
+ ],
+ "warning": []
+ },
{
"query": "row var = date_format(\"a\", now())",
"error": [],
@@ -11074,6 +11099,18 @@
"error": [],
"warning": []
},
+ {
+ "query": "from a_index | eval date_format(stringField, \"2022\")",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "from a_index | eval date_format(stringField, concat(\"20\", \"22\"))",
+ "error": [
+ "Argument of [date_format] must be [date], found value [concat(\"20\", \"22\")] type [string]"
+ ],
+ "warning": []
+ },
{
"query": "row var = date_parse(\"a\", \"a\")",
"error": [],
@@ -11279,6 +11316,31 @@
"error": [],
"warning": []
},
+ {
+ "query": "from a_index | eval date_trunc(1 year, \"2022\")",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "from a_index | eval date_trunc(1 year, concat(\"20\", \"22\"))",
+ "error": [
+ "Argument of [date_trunc] must be [date], found value [concat(\"20\", \"22\")] type [string]"
+ ],
+ "warning": []
+ },
+ {
+ "query": "from a_index | eval date_trunc(\"2022\", \"2022\")",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "from a_index | eval date_trunc(concat(\"20\", \"22\"), concat(\"20\", \"22\"))",
+ "error": [
+ "Argument of [date_trunc] must be [time_literal], found value [concat(\"20\", \"22\")] type [string]",
+ "Argument of [date_trunc] must be [date], found value [concat(\"20\", \"22\")] type [string]"
+ ],
+ "warning": []
+ },
{
"query": "row var = e()",
"error": [],
@@ -23968,6 +24030,18 @@
"error": [],
"warning": []
},
+ {
+ "query": "from a_index | stats max(\"2022\")",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "from a_index | stats max(concat(\"20\", \"22\"))",
+ "error": [
+ "Argument of [max] must be [number], found value [concat(\"20\", \"22\")] type [string]"
+ ],
+ "warning": []
+ },
{
"query": "from a_index | stats var = min(numberField)",
"error": [],
@@ -24229,6 +24303,18 @@
"error": [],
"warning": []
},
+ {
+ "query": "from a_index | stats min(\"2022\")",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "from a_index | stats min(concat(\"20\", \"22\"))",
+ "error": [
+ "Argument of [min] must be [number], found value [concat(\"20\", \"22\")] type [string]"
+ ],
+ "warning": []
+ },
{
"query": "from a_index | stats var = count(stringField)",
"error": [],
@@ -24775,6 +24861,73 @@
],
"warning": []
},
+ {
+ "query": "from a_index | stats bucket(\"2022\", 1 year)",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "from a_index | stats bucket(concat(\"20\", \"22\"), 1 year)",
+ "error": [
+ "Argument of [bucket] must be [date], found value [concat(\"20\", \"22\")] type [string]"
+ ],
+ "warning": []
+ },
+ {
+ "query": "from a_index | stats by bucket(concat(\"20\", \"22\"), 1 year)",
+ "error": [
+ "Argument of [bucket] must be [date], found value [concat(\"20\", \"22\")] type [string]"
+ ],
+ "warning": []
+ },
+ {
+ "query": "from a_index | stats bucket(\"2022\", 5, \"a\", \"a\")",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "from a_index | stats bucket(concat(\"20\", \"22\"), 5, \"a\", \"a\")",
+ "error": [
+ "Argument of [bucket] must be [date], found value [concat(\"20\", \"22\")] type [string]"
+ ],
+ "warning": []
+ },
+ {
+ "query": "from a_index | stats bucket(\"2022\", 5, \"2022\", \"2022\")",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "from a_index | stats bucket(concat(\"20\", \"22\"), 5, concat(\"20\", \"22\"), concat(\"20\", \"22\"))",
+ "error": [
+ "Argument of [bucket] must be [date], found value [concat(\"20\", \"22\")] type [string]"
+ ],
+ "warning": []
+ },
+ {
+ "query": "from a_index | stats bucket(\"2022\", 5, \"a\", \"2022\")",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "from a_index | stats bucket(concat(\"20\", \"22\"), 5, \"a\", concat(\"20\", \"22\"))",
+ "error": [
+ "Argument of [bucket] must be [date], found value [concat(\"20\", \"22\")] type [string]"
+ ],
+ "warning": []
+ },
+ {
+ "query": "from a_index | stats bucket(\"2022\", 5, \"2022\", \"a\")",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "from a_index | stats bucket(concat(\"20\", \"22\"), 5, concat(\"20\", \"22\"), \"a\")",
+ "error": [
+ "Argument of [bucket] must be [date], found value [concat(\"20\", \"22\")] type [string]"
+ ],
+ "warning": []
+ },
{
"query": "row var = cbrt(5)",
"error": [],
diff --git a/packages/kbn-esql-validation-autocomplete/src/validation/validation.test.ts b/packages/kbn-esql-validation-autocomplete/src/validation/validation.test.ts
index ebf44b1fee72a..d4807d35d4e09 100644
--- a/packages/kbn-esql-validation-autocomplete/src/validation/validation.test.ts
+++ b/packages/kbn-esql-validation-autocomplete/src/validation/validation.test.ts
@@ -2025,6 +2025,15 @@ describe('validation logic', () => {
);
testErrorsAndWarnings('from a_index | eval date_diff(null, null, null)', []);
testErrorsAndWarnings('row nullVar = null | eval date_diff(nullVar, nullVar, nullVar)', []);
+
+ testErrorsAndWarnings('from a_index | eval date_diff("year", "2022", "2022")', []);
+ testErrorsAndWarnings(
+ 'from a_index | eval date_diff("year", concat("20", "22"), concat("20", "22"))',
+ [
+ 'Argument of [date_diff] must be [date], found value [concat("20", "22")] type [string]',
+ 'Argument of [date_diff] must be [date], found value [concat("20", "22")] type [string]',
+ ]
+ );
});
describe('abs', () => {
@@ -2898,6 +2907,18 @@ describe('validation logic', () => {
]);
testErrorsAndWarnings('from a_index | eval date_extract(null, null)', []);
testErrorsAndWarnings('row nullVar = null | eval date_extract(nullVar, nullVar)', []);
+
+ testErrorsAndWarnings(
+ 'from a_index | eval date_extract("ALIGNED_DAY_OF_WEEK_IN_MONTH", "2022")',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval date_extract("ALIGNED_DAY_OF_WEEK_IN_MONTH", concat("20", "22"))',
+ [
+ 'Argument of [date_extract] must be [date], found value [concat("20", "22")] type [string]',
+ ]
+ );
});
describe('date_format', () => {
@@ -2937,6 +2958,10 @@ describe('validation logic', () => {
]);
testErrorsAndWarnings('from a_index | eval date_format(null, null)', []);
testErrorsAndWarnings('row nullVar = null | eval date_format(nullVar, nullVar)', []);
+ testErrorsAndWarnings('from a_index | eval date_format(stringField, "2022")', []);
+ testErrorsAndWarnings('from a_index | eval date_format(stringField, concat("20", "22"))', [
+ 'Argument of [date_format] must be [date], found value [concat("20", "22")] type [string]',
+ ]);
});
describe('date_parse', () => {
@@ -3038,6 +3063,19 @@ describe('validation logic', () => {
);
testErrorsAndWarnings('from a_index | eval date_trunc(null, null)', []);
testErrorsAndWarnings('row nullVar = null | eval date_trunc(nullVar, nullVar)', []);
+ testErrorsAndWarnings('from a_index | eval date_trunc(1 year, "2022")', []);
+ testErrorsAndWarnings('from a_index | eval date_trunc(1 year, concat("20", "22"))', [
+ 'Argument of [date_trunc] must be [date], found value [concat("20", "22")] type [string]',
+ ]);
+ testErrorsAndWarnings('from a_index | eval date_trunc("2022", "2022")', []);
+
+ testErrorsAndWarnings(
+ 'from a_index | eval date_trunc(concat("20", "22"), concat("20", "22"))',
+ [
+ 'Argument of [date_trunc] must be [time_literal], found value [concat("20", "22")] type [string]',
+ 'Argument of [date_trunc] must be [date], found value [concat("20", "22")] type [string]',
+ ]
+ );
});
describe('e', () => {
@@ -9353,6 +9391,10 @@ describe('validation logic', () => {
]);
testErrorsAndWarnings('from a_index | stats max(null)', []);
testErrorsAndWarnings('row nullVar = null | stats max(nullVar)', []);
+ testErrorsAndWarnings('from a_index | stats max("2022")', []);
+ testErrorsAndWarnings('from a_index | stats max(concat("20", "22"))', [
+ 'Argument of [max] must be [number], found value [concat("20", "22")] type [string]',
+ ]);
});
describe('min', () => {
@@ -9493,6 +9535,10 @@ describe('validation logic', () => {
]);
testErrorsAndWarnings('from a_index | stats min(null)', []);
testErrorsAndWarnings('row nullVar = null | stats min(nullVar)', []);
+ testErrorsAndWarnings('from a_index | stats min("2022")', []);
+ testErrorsAndWarnings('from a_index | stats min(concat("20", "22"))', [
+ 'Argument of [min] must be [number], found value [concat("20", "22")] type [string]',
+ ]);
});
describe('count', () => {
@@ -9807,6 +9853,37 @@ describe('validation logic', () => {
'Argument of [bucket] must be a constant, received [nullVar]',
]
);
+ testErrorsAndWarnings('from a_index | stats bucket("2022", 1 year)', []);
+ testErrorsAndWarnings('from a_index | stats bucket(concat("20", "22"), 1 year)', [
+ 'Argument of [bucket] must be [date], found value [concat("20", "22")] type [string]',
+ ]);
+ testErrorsAndWarnings('from a_index | stats by bucket(concat("20", "22"), 1 year)', [
+ 'Argument of [bucket] must be [date], found value [concat("20", "22")] type [string]',
+ ]);
+ testErrorsAndWarnings('from a_index | stats bucket("2022", 5, "a", "a")', []);
+ testErrorsAndWarnings('from a_index | stats bucket(concat("20", "22"), 5, "a", "a")', [
+ 'Argument of [bucket] must be [date], found value [concat("20", "22")] type [string]',
+ ]);
+ testErrorsAndWarnings('from a_index | stats bucket("2022", 5, "2022", "2022")', []);
+
+ testErrorsAndWarnings(
+ 'from a_index | stats bucket(concat("20", "22"), 5, concat("20", "22"), concat("20", "22"))',
+ ['Argument of [bucket] must be [date], found value [concat("20", "22")] type [string]']
+ );
+
+ testErrorsAndWarnings('from a_index | stats bucket("2022", 5, "a", "2022")', []);
+
+ testErrorsAndWarnings(
+ 'from a_index | stats bucket(concat("20", "22"), 5, "a", concat("20", "22"))',
+ ['Argument of [bucket] must be [date], found value [concat("20", "22")] type [string]']
+ );
+
+ testErrorsAndWarnings('from a_index | stats bucket("2022", 5, "2022", "a")', []);
+
+ testErrorsAndWarnings(
+ 'from a_index | stats bucket(concat("20", "22"), 5, concat("20", "22"), "a")',
+ ['Argument of [bucket] must be [date], found value [concat("20", "22")] type [string]']
+ );
});
describe('cbrt', () => {
From 03a5ea56299459fcbf7932760236b460f2aa9837 Mon Sep 17 00:00:00 2001
From: Jedr Blaszyk
Date: Mon, 3 Jun 2024 16:18:58 +0200
Subject: [PATCH 03/82] [Connectors] Use API to start on-demand connector sync
(#184411)
---
.../lib/start_sync.test.ts | 236 +++-------
.../kbn-search-connectors/lib/start_sync.ts | 76 +---
.../server/lib/connectors/start_sync.test.ts | 402 ++++++------------
.../server/lib/connectors/start_sync.ts | 25 +-
4 files changed, 187 insertions(+), 552 deletions(-)
diff --git a/packages/kbn-search-connectors/lib/start_sync.test.ts b/packages/kbn-search-connectors/lib/start_sync.test.ts
index c32b82bc7ba7f..5b8aac3d246ea 100644
--- a/packages/kbn-search-connectors/lib/start_sync.test.ts
+++ b/packages/kbn-search-connectors/lib/start_sync.test.ts
@@ -8,17 +8,17 @@
import { ElasticsearchClient } from '@kbn/core/server';
-import { CONNECTORS_INDEX, CURRENT_CONNECTORS_JOB_INDEX } from '..';
-import { SyncJobType, SyncStatus, TriggerMethod } from '../types/connectors';
-import { CONNECTORS_ACCESS_CONTROL_INDEX_PREFIX } from '..';
+import { errors } from '@elastic/elasticsearch';
+
+import { SyncJobType } from '../types/connectors';
import { startConnectorSync } from './start_sync';
describe('startSync lib function', () => {
const mockClient = {
- get: jest.fn(),
- index: jest.fn(),
- update: jest.fn(),
+ transport: {
+ request: jest.fn(),
+ },
};
beforeEach(() => {
@@ -26,217 +26,79 @@ describe('startSync lib function', () => {
});
it('should start a full sync', async () => {
- mockClient.get.mockImplementation(() => {
- return Promise.resolve({
- _id: 'connectorId',
- _source: {
- api_key_id: null,
- configuration: {},
- created_at: null,
- custom_scheduling: {},
- error: null,
- index_name: 'index_name',
- language: null,
- last_access_control_sync_error: null,
- last_access_control_sync_scheduled_at: null,
- last_access_control_sync_status: null,
- last_seen: null,
- last_sync_error: null,
- last_sync_scheduled_at: null,
- last_sync_status: null,
- last_synced: null,
- scheduling: { enabled: true, interval: '1 2 3 4 5' },
- service_type: null,
- status: 'not connected',
- sync_now: false,
- },
- index: CONNECTORS_INDEX,
- });
- });
- mockClient.index.mockImplementation(() => ({ _id: 'fakeId' }));
+ mockClient.transport.request.mockImplementation(() => ({ id: '12345' }));
await expect(
startConnectorSync(mockClient as unknown as ElasticsearchClient, {
connectorId: 'connectorId',
jobType: SyncJobType.FULL,
})
- ).resolves.toEqual({ _id: 'fakeId' });
- expect(mockClient.index).toHaveBeenCalledWith({
- document: {
- cancelation_requested_at: null,
- canceled_at: null,
- completed_at: null,
- connector: {
- configuration: {},
- filtering: null,
- id: 'connectorId',
- index_name: 'index_name',
- language: null,
- pipeline: null,
- service_type: null,
- },
- created_at: expect.any(String),
- deleted_document_count: 0,
- error: null,
- indexed_document_count: 0,
- indexed_document_volume: 0,
- job_type: SyncJobType.FULL,
- last_seen: null,
- metadata: {},
- started_at: null,
- status: SyncStatus.PENDING,
- total_document_count: null,
- trigger_method: TriggerMethod.ON_DEMAND,
- worker_hostname: null,
+ ).resolves.toEqual({ id: '12345' });
+ expect(mockClient.transport.request).toHaveBeenCalledWith({
+ method: 'POST',
+ path: '/_connector/_sync_job',
+ body: {
+ id: 'connectorId',
+ job_type: 'full',
},
- index: CURRENT_CONNECTORS_JOB_INDEX,
});
});
- it('should not create index if there is no connector', async () => {
- mockClient.get.mockImplementation(() => {
- return Promise.resolve({});
- });
+ it('should start an incremental sync', async () => {
+ mockClient.transport.request.mockImplementation(() => ({ id: '12345' }));
+
await expect(
startConnectorSync(mockClient as unknown as ElasticsearchClient, {
connectorId: 'connectorId',
- jobType: SyncJobType.FULL,
+ jobType: SyncJobType.INCREMENTAL,
})
- ).rejects.toEqual(new Error('resource_not_found'));
- expect(mockClient.index).not.toHaveBeenCalled();
+ ).resolves.toEqual({ id: '12345' });
+ expect(mockClient.transport.request).toHaveBeenCalledWith({
+ method: 'POST',
+ path: '/_connector/_sync_job',
+ body: {
+ id: 'connectorId',
+ job_type: 'incremental',
+ },
+ });
});
- it('should start an incremental sync', async () => {
- mockClient.get.mockImplementation(() => {
- return Promise.resolve({
- _id: 'connectorId',
- _source: {
- api_key_id: null,
- configuration: {},
- created_at: null,
- custom_scheduling: {},
- error: null,
- filtering: [],
- index_name: 'index_name',
- language: null,
- last_access_control_sync_status: null,
- last_seen: null,
- last_sync_error: null,
- last_sync_scheduled_at: null,
- last_sync_status: null,
- last_synced: null,
- scheduling: { enabled: true, interval: '1 2 3 4 5' },
- service_type: null,
- status: 'not connected',
- sync_now: false,
- },
- index: CONNECTORS_INDEX,
- });
- });
- mockClient.index.mockImplementation(() => ({ _id: 'fakeId' }));
+ it('should start an access_control sync', async () => {
+ mockClient.transport.request.mockImplementation(() => ({ id: '12345' }));
await expect(
startConnectorSync(mockClient as unknown as ElasticsearchClient, {
connectorId: 'connectorId',
- jobType: SyncJobType.INCREMENTAL,
+ jobType: SyncJobType.ACCESS_CONTROL,
})
- ).resolves.toEqual({ _id: 'fakeId' });
- expect(mockClient.index).toHaveBeenCalledWith({
- document: {
- cancelation_requested_at: null,
- canceled_at: null,
- completed_at: null,
- connector: {
- configuration: {},
- filtering: null,
- id: 'connectorId',
- index_name: 'index_name',
- language: null,
- pipeline: null,
- service_type: null,
- },
- created_at: expect.any(String),
- deleted_document_count: 0,
- error: null,
- indexed_document_count: 0,
- indexed_document_volume: 0,
- job_type: SyncJobType.INCREMENTAL,
- last_seen: null,
- metadata: {},
- started_at: null,
- status: SyncStatus.PENDING,
- total_document_count: null,
- trigger_method: TriggerMethod.ON_DEMAND,
- worker_hostname: null,
+ ).resolves.toEqual({ id: '12345' });
+ expect(mockClient.transport.request).toHaveBeenCalledWith({
+ method: 'POST',
+ path: '/_connector/_sync_job',
+ body: {
+ id: 'connectorId',
+ job_type: 'access_control',
},
- index: CURRENT_CONNECTORS_JOB_INDEX,
});
});
- it('should start an access control sync', async () => {
- mockClient.get.mockImplementation(() => {
- return Promise.resolve({
- _id: 'connectorId',
- _source: {
- api_key_id: null,
- configuration: {},
- created_at: null,
- custom_scheduling: {},
- error: null,
- index_name: 'search-index_name',
- language: null,
- last_access_control_sync_status: null,
- last_seen: null,
- last_sync_error: null,
- last_sync_scheduled_at: null,
- last_sync_status: null,
- last_synced: null,
- scheduling: { enabled: true, interval: '1 2 3 4 5' },
- service_type: null,
- status: 'not connected',
- sync_now: false,
+ it('sync not started if there is no connector', async () => {
+ const notFoundError = new errors.ResponseError({
+ statusCode: 404,
+ body: {
+ error: {
+ type: `document_missing_exception`,
},
- index: CONNECTORS_INDEX,
- });
- });
- mockClient.index.mockImplementation(() => ({ _id: 'fakeId' }));
+ },
+ } as any);
+
+ mockClient.transport.request.mockRejectedValueOnce(notFoundError);
await expect(
startConnectorSync(mockClient as unknown as ElasticsearchClient, {
connectorId: 'connectorId',
- targetIndexName: '.search-acl-filter-index_name',
- jobType: SyncJobType.ACCESS_CONTROL,
+ jobType: SyncJobType.FULL,
})
- ).resolves.toEqual({ _id: 'fakeId' });
- expect(mockClient.index).toHaveBeenCalledWith({
- document: {
- cancelation_requested_at: null,
- canceled_at: null,
- completed_at: null,
- connector: {
- configuration: {},
- filtering: null,
- id: 'connectorId',
- index_name: `${CONNECTORS_ACCESS_CONTROL_INDEX_PREFIX}index_name`,
- language: null,
- pipeline: null,
- service_type: null,
- },
- created_at: expect.any(String),
- deleted_document_count: 0,
- error: null,
- indexed_document_count: 0,
- indexed_document_volume: 0,
- job_type: SyncJobType.ACCESS_CONTROL,
- last_seen: null,
- metadata: {},
- started_at: null,
- status: SyncStatus.PENDING,
- total_document_count: null,
- trigger_method: TriggerMethod.ON_DEMAND,
- worker_hostname: null,
- },
- index: CURRENT_CONNECTORS_JOB_INDEX,
- });
+ ).rejects.toEqual(notFoundError);
});
});
diff --git a/packages/kbn-search-connectors/lib/start_sync.ts b/packages/kbn-search-connectors/lib/start_sync.ts
index 56017e7717f67..3f3ad5d4f5e0f 100644
--- a/packages/kbn-search-connectors/lib/start_sync.ts
+++ b/packages/kbn-search-connectors/lib/start_sync.ts
@@ -8,84 +8,24 @@
import { ElasticsearchClient } from '@kbn/core/server';
-import { CONNECTORS_INDEX, CURRENT_CONNECTORS_JOB_INDEX } from '..';
-import {
- ConnectorConfiguration,
- ConnectorDocument,
- SyncJobType,
- SyncStatus,
- TriggerMethod,
-} from '../types/connectors';
-import { isConfigEntry } from '../utils/is_category_entry';
+import { SyncJobType } from '../types/connectors';
export const startConnectorSync = async (
client: ElasticsearchClient,
{
connectorId,
jobType,
- targetIndexName,
}: {
connectorId: string;
jobType?: SyncJobType;
- targetIndexName?: string;
}
) => {
- const connectorResult = await client.get({
- id: connectorId,
- index: CONNECTORS_INDEX,
+ return await client.transport.request<{ id: string }>({
+ method: 'POST',
+ path: `/_connector/_sync_job`,
+ body: {
+ id: connectorId,
+ job_type: jobType,
+ },
});
- const connector = connectorResult._source;
- if (connector) {
- const configuration = Object.entries(connector.configuration).reduce(
- (acc, [key, configEntry]) => {
- if (isConfigEntry(configEntry)) {
- acc[key] = configEntry;
- }
- return acc;
- },
- {} as ConnectorConfiguration
- );
- const {
- filtering,
- index_name: connectorIndexName,
- language,
- pipeline,
- service_type: serviceType,
- } = connector;
-
- const now = new Date().toISOString();
-
- return await client.index({
- document: {
- cancelation_requested_at: null,
- canceled_at: null,
- completed_at: null,
- connector: {
- configuration,
- filtering: filtering ? filtering[0]?.active ?? null : null,
- id: connectorId,
- index_name: targetIndexName || connectorIndexName,
- language,
- pipeline: pipeline ?? null,
- service_type: serviceType,
- },
- created_at: now,
- deleted_document_count: 0,
- error: null,
- indexed_document_count: 0,
- indexed_document_volume: 0,
- job_type: jobType || SyncJobType.FULL,
- last_seen: null,
- metadata: {},
- started_at: null,
- status: SyncStatus.PENDING,
- total_document_count: null,
- trigger_method: TriggerMethod.ON_DEMAND,
- worker_hostname: null,
- },
- index: CURRENT_CONNECTORS_JOB_INDEX,
- });
- } else {
- throw new Error('resource_not_found');
- }
};
diff --git a/x-pack/plugins/enterprise_search/server/lib/connectors/start_sync.test.ts b/x-pack/plugins/enterprise_search/server/lib/connectors/start_sync.test.ts
index 6c5d44b00628d..47d666a66a0d9 100644
--- a/x-pack/plugins/enterprise_search/server/lib/connectors/start_sync.test.ts
+++ b/x-pack/plugins/enterprise_search/server/lib/connectors/start_sync.test.ts
@@ -6,20 +6,23 @@
*/
import { IScopedClusterClient } from '@kbn/core/server';
-import {
- CONNECTORS_INDEX,
- SyncJobType,
- SyncStatus,
- TriggerMethod,
- CURRENT_CONNECTORS_JOB_INDEX,
-} from '@kbn/search-connectors';
+import { CONNECTORS_INDEX, SyncJobType } from '@kbn/search-connectors';
-import { CONNECTORS_ACCESS_CONTROL_INDEX_PREFIX } from '../../../common/constants';
+import { fetchConnectorById, startConnectorSync } from '@kbn/search-connectors';
import { ErrorCode } from '../../../common/types/error_codes';
import { startSync } from './start_sync';
+jest.mock('@kbn/search-connectors', () => {
+ const originalModule = jest.requireActual('@kbn/search-connectors');
+ return {
+ ...originalModule,
+ fetchConnectorById: jest.fn(),
+ startConnectorSync: jest.fn(),
+ };
+});
+
describe('startSync lib function', () => {
const mockClient = {
asCurrentUser: {
@@ -28,6 +31,9 @@ describe('startSync lib function', () => {
update: jest.fn(),
},
asInternalUser: {},
+ transport: {
+ request: jest.fn(),
+ },
};
beforeEach(() => {
@@ -35,170 +41,71 @@ describe('startSync lib function', () => {
});
it('should start a full sync', async () => {
- mockClient.asCurrentUser.get.mockImplementation(() => {
- return Promise.resolve({
- _id: 'connectorId',
- _source: {
- api_key_id: null,
- configuration: {},
- created_at: null,
- custom_scheduling: {},
- error: null,
- index_name: 'index_name',
- language: null,
- last_access_control_sync_error: null,
- last_access_control_sync_scheduled_at: null,
- last_access_control_sync_status: null,
- last_seen: null,
- last_sync_error: null,
- last_sync_scheduled_at: null,
- last_sync_status: null,
- last_synced: null,
- scheduling: { enabled: true, interval: '1 2 3 4 5' },
- service_type: null,
- status: 'not connected',
- sync_now: false,
- },
- index: CONNECTORS_INDEX,
- });
+ (fetchConnectorById as jest.Mock).mockResolvedValue({
+ api_key_id: null,
+ configuration: {},
+ created_at: null,
+ custom_scheduling: {},
+ error: null,
+ id: 'connectorId',
+ index_name: 'index_name',
+ language: null,
+ last_access_control_sync_error: null,
+ last_access_control_sync_scheduled_at: null,
+ last_access_control_sync_status: null,
+ last_seen: null,
+ last_sync_error: null,
+ last_sync_scheduled_at: null,
+ last_sync_status: null,
+ last_synced: null,
+ scheduling: { enabled: true, interval: '1 2 3 4 5' },
+ service_type: null,
+ status: 'not connected',
+ sync_now: false,
});
- mockClient.asCurrentUser.index.mockImplementation(() => ({ _id: 'fakeId' }));
- await expect(
- startSync(mockClient as unknown as IScopedClusterClient, 'connectorId', SyncJobType.FULL)
- ).resolves.toEqual({ _id: 'fakeId' });
- expect(mockClient.asCurrentUser.index).toHaveBeenCalledWith({
- document: {
- cancelation_requested_at: null,
- canceled_at: null,
- completed_at: null,
- connector: {
- configuration: {},
- filtering: null,
- id: 'connectorId',
- index_name: 'index_name',
- language: null,
- pipeline: null,
- service_type: null,
- },
- created_at: expect.any(String),
- deleted_document_count: 0,
- error: null,
- indexed_document_count: 0,
- indexed_document_volume: 0,
- job_type: SyncJobType.FULL,
- last_seen: null,
- metadata: {},
- started_at: null,
- status: SyncStatus.PENDING,
- total_document_count: null,
- trigger_method: TriggerMethod.ON_DEMAND,
- worker_hostname: null,
- },
- index: CURRENT_CONNECTORS_JOB_INDEX,
- });
- });
- it('should start a full sync with service type, pipeline', async () => {
- mockClient.asCurrentUser.get.mockImplementation(() => {
- return Promise.resolve({
- _source: {
- api_key_id: null,
- configuration: { config: { label: 'label', value: 'haha' } },
- created_at: null,
- custom_scheduling: {},
- error: null,
- filtering: [{ active: 'filtering' }],
- index_name: 'index_name',
- language: 'nl',
- last_seen: null,
- last_sync_error: null,
- last_sync_status: null,
- last_synced: null,
- pipeline: { name: 'pipeline' },
- scheduling: { enabled: true, interval: '1 2 3 4 5' },
- service_type: 'service_type',
- status: 'not connected',
- sync_now: false,
- },
- index: CONNECTORS_INDEX,
- });
- });
- mockClient.asCurrentUser.index.mockImplementation(() => ({ _id: 'fakeId' }));
+ (startConnectorSync as jest.Mock).mockResolvedValue({ id: 'fakeId' });
await expect(
startSync(mockClient as unknown as IScopedClusterClient, 'connectorId', SyncJobType.FULL)
- ).resolves.toEqual({ _id: 'fakeId' });
- expect(mockClient.asCurrentUser.index).toHaveBeenCalledWith({
- document: {
- cancelation_requested_at: null,
- canceled_at: null,
- completed_at: null,
- connector: {
- configuration: {
- config: { label: 'label', value: 'haha' },
- },
- filtering: 'filtering',
- id: 'connectorId',
- index_name: 'index_name',
- language: 'nl',
- pipeline: { name: 'pipeline' },
- service_type: 'service_type',
- },
- created_at: expect.any(String),
- deleted_document_count: 0,
- error: null,
- indexed_document_count: 0,
- indexed_document_volume: 0,
- job_type: SyncJobType.FULL,
- last_seen: null,
- metadata: {},
- started_at: null,
- status: SyncStatus.PENDING,
- total_document_count: null,
- trigger_method: TriggerMethod.ON_DEMAND,
- worker_hostname: null,
- },
- index: CURRENT_CONNECTORS_JOB_INDEX,
+ ).resolves.toEqual({ id: 'fakeId' });
+
+ expect(startConnectorSync).toHaveBeenCalledWith(mockClient.asCurrentUser, {
+ connectorId: 'connectorId',
+ jobType: 'full',
});
});
- it('should not create index if there is no connector', async () => {
- mockClient.asCurrentUser.get.mockImplementation(() => {
- return Promise.resolve({});
- });
+ it('should not create job if there is no connector', async () => {
+ (fetchConnectorById as jest.Mock).mockResolvedValue(undefined);
await expect(
startSync(mockClient as unknown as IScopedClusterClient, 'connectorId', SyncJobType.FULL)
).rejects.toEqual(new Error(ErrorCode.RESOURCE_NOT_FOUND));
- expect(mockClient.asCurrentUser.index).not.toHaveBeenCalled();
+ expect(startConnectorSync).not.toHaveBeenCalled();
});
it('should set sync_now for crawler and not index a sync job', async () => {
- mockClient.asCurrentUser.get.mockImplementation(() => {
- return Promise.resolve({
- _primary_term: 1,
- _seq_no: 10,
- _source: {
- api_key_id: null,
- configuration: { config: { label: 'label', value: 'haha' } },
- created_at: null,
- custom_scheduling: {},
- error: null,
- filtering: [{ active: 'filtering' }],
- index_name: 'index_name',
- language: 'nl',
- last_seen: null,
- last_sync_error: null,
- last_sync_status: null,
- last_synced: null,
- pipeline: { name: 'pipeline' },
- scheduling: { enabled: true, interval: '1 2 3 4 5' },
- service_type: 'elastic-crawler',
- status: 'not connected',
- sync_now: false,
- },
- index: CONNECTORS_INDEX,
- });
+ (fetchConnectorById as jest.Mock).mockResolvedValue({
+ api_key_id: null,
+ configuration: { config: { label: 'label', value: 'haha' } },
+ created_at: null,
+ custom_scheduling: {},
+ error: null,
+ filtering: [{ active: 'filtering' }],
+ id: 'connectorId',
+ index_name: 'index_name',
+ language: 'nl',
+ last_seen: null,
+ last_sync_error: null,
+ last_sync_status: null,
+ last_synced: null,
+ pipeline: { name: 'pipeline' },
+ scheduling: { enabled: true, interval: '1 2 3 4 5' },
+ service_type: 'elastic-crawler',
+ status: 'not connected',
+ sync_now: false,
});
+
mockClient.asCurrentUser.update.mockImplementation(() => ({ _id: 'fakeId' }));
await expect(
@@ -209,7 +116,7 @@ describe('startSync lib function', () => {
'syncConfig'
)
).resolves.toEqual({ _id: 'fakeId' });
- expect(mockClient.asCurrentUser.index).not.toHaveBeenCalled();
+ expect(startConnectorSync).not.toHaveBeenCalled();
expect(mockClient.asCurrentUser.update).toHaveBeenCalledWith({
doc: {
configuration: {
@@ -219,40 +126,35 @@ describe('startSync lib function', () => {
sync_now: true,
},
id: 'connectorId',
- if_primary_term: 1,
- if_seq_no: 10,
index: CONNECTORS_INDEX,
});
});
it('should start an incremental sync', async () => {
- mockClient.asCurrentUser.get.mockImplementation(() => {
- return Promise.resolve({
- _id: 'connectorId',
- _source: {
- api_key_id: null,
- configuration: {},
- created_at: null,
- custom_scheduling: {},
- error: null,
- filtering: [],
- index_name: 'index_name',
- language: null,
- last_access_control_sync_status: null,
- last_seen: null,
- last_sync_error: null,
- last_sync_scheduled_at: null,
- last_sync_status: null,
- last_synced: null,
- scheduling: { enabled: true, interval: '1 2 3 4 5' },
- service_type: null,
- status: 'not connected',
- sync_now: false,
- },
- index: CONNECTORS_INDEX,
- });
+ (fetchConnectorById as jest.Mock).mockResolvedValue({
+ api_key_id: null,
+ configuration: {},
+ created_at: null,
+ custom_scheduling: {},
+ error: null,
+ id: 'connectorId',
+ index_name: 'index_name',
+ language: null,
+ last_access_control_sync_error: null,
+ last_access_control_sync_scheduled_at: null,
+ last_access_control_sync_status: null,
+ last_seen: null,
+ last_sync_error: null,
+ last_sync_scheduled_at: null,
+ last_sync_status: null,
+ last_synced: null,
+ scheduling: { enabled: true, interval: '1 2 3 4 5' },
+ service_type: null,
+ status: 'not connected',
+ sync_now: false,
});
- mockClient.asCurrentUser.index.mockImplementation(() => ({ _id: 'fakeId' }));
+
+ (startConnectorSync as jest.Mock).mockResolvedValue({ id: 'fakeId' });
await expect(
startSync(
@@ -260,70 +162,43 @@ describe('startSync lib function', () => {
'connectorId',
SyncJobType.INCREMENTAL
)
- ).resolves.toEqual({ _id: 'fakeId' });
- expect(mockClient.asCurrentUser.index).toHaveBeenCalledWith({
- document: {
- cancelation_requested_at: null,
- canceled_at: null,
- completed_at: null,
- connector: {
- configuration: {},
- filtering: null,
- id: 'connectorId',
- index_name: 'index_name',
- language: null,
- pipeline: null,
- service_type: null,
- },
- created_at: expect.any(String),
- deleted_document_count: 0,
- error: null,
- indexed_document_count: 0,
- indexed_document_volume: 0,
- job_type: SyncJobType.INCREMENTAL,
- last_seen: null,
- metadata: {},
- started_at: null,
- status: SyncStatus.PENDING,
- total_document_count: null,
- trigger_method: TriggerMethod.ON_DEMAND,
- worker_hostname: null,
- },
- index: CURRENT_CONNECTORS_JOB_INDEX,
+ ).resolves.toEqual({ id: 'fakeId' });
+
+ expect(startConnectorSync).toHaveBeenCalledWith(mockClient.asCurrentUser, {
+ connectorId: 'connectorId',
+ jobType: 'incremental',
});
});
it('should start an access control sync', async () => {
- mockClient.asCurrentUser.get.mockImplementation(() => {
- return Promise.resolve({
- _id: 'connectorId',
- _source: {
- api_key_id: null,
- configuration: {
- use_document_level_security: {
- value: true,
- },
- },
- created_at: null,
- custom_scheduling: {},
- error: null,
- index_name: 'search-index_name',
- language: null,
- last_access_control_sync_status: null,
- last_seen: null,
- last_sync_error: null,
- last_sync_scheduled_at: null,
- last_sync_status: null,
- last_synced: null,
- scheduling: { enabled: true, interval: '1 2 3 4 5' },
- service_type: null,
- status: 'not connected',
- sync_now: false,
+ (fetchConnectorById as jest.Mock).mockResolvedValue({
+ api_key_id: null,
+ configuration: {
+ use_document_level_security: {
+ value: true,
},
- index: CONNECTORS_INDEX,
- });
+ },
+ created_at: null,
+ custom_scheduling: {},
+ error: null,
+ id: 'connectorId',
+ index_name: 'index_name',
+ language: null,
+ last_access_control_sync_error: null,
+ last_access_control_sync_scheduled_at: null,
+ last_access_control_sync_status: null,
+ last_seen: null,
+ last_sync_error: null,
+ last_sync_scheduled_at: null,
+ last_sync_status: null,
+ last_synced: null,
+ scheduling: { enabled: true, interval: '1 2 3 4 5' },
+ service_type: null,
+ status: 'not connected',
+ sync_now: false,
});
- mockClient.asCurrentUser.index.mockImplementation(() => ({ _id: 'fakeId' }));
+
+ (startConnectorSync as jest.Mock).mockResolvedValue({ id: 'fakeId' });
await expect(
startSync(
@@ -331,40 +206,11 @@ describe('startSync lib function', () => {
'connectorId',
SyncJobType.ACCESS_CONTROL
)
- ).resolves.toEqual({ _id: 'fakeId' });
- expect(mockClient.asCurrentUser.index).toHaveBeenCalledWith({
- document: {
- cancelation_requested_at: null,
- canceled_at: null,
- completed_at: null,
- connector: {
- configuration: {
- use_document_level_security: {
- value: true,
- },
- },
- filtering: null,
- id: 'connectorId',
- index_name: `${CONNECTORS_ACCESS_CONTROL_INDEX_PREFIX}search-index_name`,
- language: null,
- pipeline: null,
- service_type: null,
- },
- created_at: expect.any(String),
- deleted_document_count: 0,
- error: null,
- indexed_document_count: 0,
- indexed_document_volume: 0,
- job_type: SyncJobType.ACCESS_CONTROL,
- last_seen: null,
- metadata: {},
- started_at: null,
- status: SyncStatus.PENDING,
- total_document_count: null,
- trigger_method: TriggerMethod.ON_DEMAND,
- worker_hostname: null,
- },
- index: CURRENT_CONNECTORS_JOB_INDEX,
+ ).resolves.toEqual({ id: 'fakeId' });
+
+ expect(startConnectorSync).toHaveBeenCalledWith(mockClient.asCurrentUser, {
+ connectorId: 'connectorId',
+ jobType: 'access_control',
});
});
});
diff --git a/x-pack/plugins/enterprise_search/server/lib/connectors/start_sync.ts b/x-pack/plugins/enterprise_search/server/lib/connectors/start_sync.ts
index 634d7e97de5ec..363f9f2143f16 100644
--- a/x-pack/plugins/enterprise_search/server/lib/connectors/start_sync.ts
+++ b/x-pack/plugins/enterprise_search/server/lib/connectors/start_sync.ts
@@ -9,18 +9,15 @@ import { IScopedClusterClient } from '@kbn/core/server';
import {
ConnectorConfiguration,
- ConnectorDocument,
SyncJobType,
CONNECTORS_INDEX,
startConnectorSync,
+ fetchConnectorById,
} from '@kbn/search-connectors';
import { isConfigEntry } from '../../../common/connectors/is_category_entry';
-import {
- CONNECTORS_ACCESS_CONTROL_INDEX_PREFIX,
- ENTERPRISE_SEARCH_CONNECTOR_CRAWLER_SERVICE_TYPE,
-} from '../../../common/constants';
+import { ENTERPRISE_SEARCH_CONNECTOR_CRAWLER_SERVICE_TYPE } from '../../../common/constants';
import { ErrorCode } from '../../../common/types/error_codes';
@@ -30,11 +27,8 @@ export const startSync = async (
jobType: SyncJobType,
nextSyncConfig?: string // only processed for elastic-crawler service types
) => {
- const connectorResult = await client.asCurrentUser.get({
- id: connectorId,
- index: CONNECTORS_INDEX,
- });
- const connector = connectorResult._source;
+ const connector = await fetchConnectorById(client.asCurrentUser, connectorId);
+
if (connector) {
const config = Object.entries(connector.configuration).reduce((acc, [key, configEntry]) => {
if (isConfigEntry(configEntry)) {
@@ -48,7 +42,7 @@ export const startSync = async (
nextSyncConfig: { label: 'nextSyncConfig', value: nextSyncConfig },
}
: config;
- const { index_name } = connector;
+
if (
jobType === SyncJobType.ACCESS_CONTROL &&
!configuration.use_document_level_security?.value
@@ -57,27 +51,20 @@ export const startSync = async (
}
if (connector.service_type === ENTERPRISE_SEARCH_CONNECTOR_CRAWLER_SERVICE_TYPE) {
+ // Crawler-specific actions are not migrated to Connector API
return await client.asCurrentUser.update({
doc: {
configuration,
sync_now: true,
},
id: connectorId,
- if_primary_term: connectorResult._primary_term,
- if_seq_no: connectorResult._seq_no,
index: CONNECTORS_INDEX,
});
}
- const targetIndexName =
- jobType === SyncJobType.ACCESS_CONTROL
- ? `${CONNECTORS_ACCESS_CONTROL_INDEX_PREFIX}${index_name}`
- : index_name ?? undefined;
-
return await startConnectorSync(client.asCurrentUser, {
connectorId,
jobType,
- targetIndexName,
});
} else {
throw new Error(ErrorCode.RESOURCE_NOT_FOUND);
From 5a3251af2fb1cafc36c002009d0296f8b58f057a Mon Sep 17 00:00:00 2001
From: shainaraskas <58563081+shainaraskas@users.noreply.github.com>
Date: Mon, 3 Jun 2024 10:46:40 -0400
Subject: [PATCH 04/82] describe the values in the CCR metrics table (#184545)
---
.../monitoring/elasticsearch-details.asciidoc | 35 +++++++++++++++----
1 file changed, 29 insertions(+), 6 deletions(-)
diff --git a/docs/user/monitoring/elasticsearch-details.asciidoc b/docs/user/monitoring/elasticsearch-details.asciidoc
index 74c8122d4cad1..f8a8894c29207 100644
--- a/docs/user/monitoring/elasticsearch-details.asciidoc
+++ b/docs/user/monitoring/elasticsearch-details.asciidoc
@@ -108,16 +108,39 @@ model, the number of forecasts, and the node that runs the job.
== CCR
To view {ccr} metrics, click **CCR**. For each follower index on the cluster, it
-shows information such as the leader index, an indication of how much the
-follower index is lagging behind the leader index, the last fetch time, the
-number of operations synced, and error messages. If you select a follower index,
-you can view the same information for each shard.
+shows the following information:
+
+- **Index**: The name of the follower index.
+- **Follows**: The name of the leader index.
+- **Alerts**: Any read exceptions that have been triggered for the index or its
+shards.
+- **Sync Lag (ops)**: How many operations the follower index is lagging behind the
+leader index.
++
+This is calculated by finding the difference between the minimum and maximum operation
+sequence number on the leader (`leader_max_seq_no`) and the difference between the minimum
+and maximum global sequence number checkpoint on the follower (`follower_global_checkpoint`)
+for each shard over the selected time period. The difference in `follower_global_checkpoint`
+is subtracted from the difference in `leader_max_seq_no` for each shard, and the highest result
+across all shards is displayed.
+- **Last fetch time**: The time elapsed since the last successful fetch from the leader index.
+Represents the longest time elapsed across all of the shards in the follower index.
+- **Ops synced**: The number of operations indexed (replicated) into the follower index from
+the leader index in the selected time period.
++
+This metric is a sum of the number of operations indexed across all shards over the selected
+time period.
+- **Error**: Any exceptions returned for the most recent document in the selected time period.
+
+If you select a follower index, you can view the same information for each shard.
+For more information on the properties used to calculate these metrics, refer to the
+{ref}/ccr-get-follow-stats.html[get follower stats API] documentation.
If you select a shard, you can see graphs for the fetch and operation delays.
-You can also see advanced information, which contains the results from the
+You can also see advanced information, which contains additional stats from the
{ref}/ccr-get-follow-stats.html[get follower stats API].
-For more information, refer to {ref}/xpack-ccr.html[{ccr-cap}].
+Learn more about {ref}/xpack-ccr.html[{ccr-cap}].
[float]
[[logs-monitor-page]]
From 838be8c8c6778b1758792ae85f2a6acac249af75 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Efe=20G=C3=BCrkan=20YALAMAN?=
Date: Mon, 3 Jun 2024 16:49:36 +0200
Subject: [PATCH 05/82] [Search] Move sync logic to an independent logic
(#184589)
## Summary
https://github.com/elastic/kibana/assets/1410658/738d539d-cd62-44c5-9c0d-c95d41754d71
- Move sync context menu to shared folder.
- Add simple index polling for fetching index if it doesn't exist. This
way when if index is created in between connector polls, page will
return to fully functioning state.
- Fixed Pipeline and SyncRules disabled states as they are heavily
dependent on index. Schedule is usable, so it requires only an index
name attached to the index.
- Moved some sync logic to CancelSync logic and renamed it to
SyncsLogic. We can reuse and don't depend on an index to exist. Methods
there take their data as a parameter now instead. Some UI states are
still checked from IndexViewLogic. Will separate them in followup PRs.
- SyncJobs table now takes connector and determines what to show from
there. This was done to make it work independently without complicating
the state. Both usages had a connector (from different sources but
same). So depending on where it is rendered it will show correct data
now consistently.
- Updated tests, added a small util to check if connector has
incremental sync and access control syncs
### Checklist
Delete any items that are not applicable to this PR.
- [x] [Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios
- [ ] [Flaky Test
Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was
used on any tests changed
- [x] Any UI touched in this PR is usable by keyboard only (learn more
about [keyboard accessibility](https://webaim.org/techniques/keyboard/))
- [x] Any UI touched in this PR does not create any new axe failures
(run axe in browser:
[FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/),
[Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))
- [x] This renders correctly on smaller devices using a responsive
layout. (You can test this [in your
browser](https://www.browserstack.com/guide/responsive-testing-on-local-server))
- [x] This was checked for [cross-browser
compatibility](https://www.elastic.co/support/matrix#matrix_browsers)
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
---
.../connector_configuration.tsx | 2 +-
.../connector_detail/connector_detail.tsx | 6 +-
.../connector_detail/connector_view_logic.ts | 18 +-
.../native_connector_configuration.tsx | 2 +-
.../components/connector_detail/overview.tsx | 5 +-
.../connector/cancel_syncs_logic.test.ts | 51 ----
.../connector/cancel_syncs_logic.ts | 56 ----
...ative_connector_advanced_configuration.tsx | 2 +-
.../search_index/index_view_logic.ts | 10 +-
.../components/search_index/overview.tsx | 5 +-
.../components/search_index/search_index.tsx | 3 +-
.../search_index/sync_jobs/sync_jobs.tsx | 30 ++-
.../sync_jobs/sync_jobs_view_logic.ts | 36 ++-
.../header_actions/header_actions.test.tsx | 7 +-
.../header_actions/header_actions.tsx | 10 +-
.../syncs_context_menu.test.tsx | 6 +-
.../header_actions/syncs_context_menu.tsx | 58 ++---
.../shared/header_actions/syncs_logic.test.ts | 239 ++++++++++++++++++
.../shared/header_actions/syncs_logic.ts | 104 ++++++++
.../utils/connector_helpers.test.ts | 125 +++++++++
.../utils/connector_helpers.ts | 16 ++
21 files changed, 594 insertions(+), 197 deletions(-)
delete mode 100644 x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/cancel_syncs_logic.test.ts
delete mode 100644 x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/cancel_syncs_logic.ts
rename x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/{search_index/components => shared}/header_actions/header_actions.test.tsx (82%)
rename x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/{search_index/components => shared}/header_actions/header_actions.tsx (80%)
rename x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/{search_index/components => shared}/header_actions/syncs_context_menu.test.tsx (95%)
rename x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/{search_index/components => shared}/header_actions/syncs_context_menu.tsx (74%)
create mode 100644 x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/shared/header_actions/syncs_logic.test.ts
create mode 100644 x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/shared/header_actions/syncs_logic.ts
create mode 100644 x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/utils/connector_helpers.test.ts
create mode 100644 x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/utils/connector_helpers.ts
diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/connector_configuration.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/connector_configuration.tsx
index 6032230205523..acbfee25ae73b 100644
--- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/connector_configuration.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/connector_configuration.tsx
@@ -42,12 +42,12 @@ import { EuiButtonTo, EuiLinkTo } from '../../../shared/react_router_helpers';
import { GenerateConnectorApiKeyApiLogic } from '../../api/connector/generate_connector_api_key_api_logic';
import { CONNECTOR_DETAIL_TAB_PATH } from '../../routes';
import { isAdvancedSyncRuleSnippetEmpty } from '../../utils/sync_rules_helpers';
-import { SyncsContextMenu } from '../search_index/components/header_actions/syncs_context_menu';
import { ApiKeyConfig } from '../search_index/connector/api_key_configuration';
import { getConnectorTemplate } from '../search_index/connector/constants';
import { ConnectorFilteringLogic } from '../search_index/connector/sync_rules/connector_filtering_logic';
+import { SyncsContextMenu } from '../shared/header_actions/syncs_context_menu';
import { AttachIndexBox } from './attach_index_box';
import { ConnectorDetailTabId } from './connector_detail';
diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/connector_detail.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/connector_detail.tsx
index be3f7964fb370..955a8b79f60dc 100644
--- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/connector_detail.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/connector_detail.tsx
@@ -18,12 +18,12 @@ import { CONNECTOR_DETAIL_TAB_PATH } from '../../routes';
import { connectorsBreadcrumbs } from '../connectors/connectors';
import { EnterpriseSearchContentPageTemplate } from '../layout/page_template';
-import { getHeaderActions } from '../search_index/components/header_actions/header_actions';
import { ConnectorScheduling } from '../search_index/connector/connector_scheduling';
import { ConnectorSyncRules } from '../search_index/connector/sync_rules/connector_rules';
import { SearchIndexDocuments } from '../search_index/documents';
import { SearchIndexIndexMappings } from '../search_index/index_mappings';
import { SearchIndexPipelines } from '../search_index/pipelines/pipelines';
+import { getHeaderActions } from '../shared/header_actions/header_actions';
import { ConnectorConfiguration } from './connector_configuration';
import { ConnectorNameAndDescription } from './connector_name_and_description';
@@ -137,7 +137,7 @@ export const ConnectorDetail: React.FC = () => {
? [
{
content: ,
- disabled: !connector?.index_name,
+ disabled: !index,
id: ConnectorDetailTabId.SYNC_RULES,
isSelected: tabId === ConnectorDetailTabId.SYNC_RULES,
label: i18n.translate(
@@ -200,7 +200,7 @@ export const ConnectorDetail: React.FC = () => {
const PIPELINES_TAB = {
content: ,
- disabled: !connector?.index_name,
+ disabled: !index,
id: ConnectorDetailTabId.PIPELINES,
isSelected: tabId === ConnectorDetailTabId.PIPELINES,
label: i18n.translate(
diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/connector_view_logic.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/connector_view_logic.ts
index 42d881300ac5d..69049a2709f58 100644
--- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/connector_view_logic.ts
+++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/connector_view_logic.ts
@@ -12,7 +12,6 @@ import {
FeatureName,
IngestPipelineParams,
IngestionMethod,
- IngestionStatus,
} from '@kbn/search-connectors';
import { Status } from '../../../../../common/types/api';
@@ -30,6 +29,11 @@ import {
import { FetchIndexActions, FetchIndexApiLogic } from '../../api/index/fetch_index_api_logic';
import { ElasticsearchViewIndex } from '../../types';
+import {
+ hasDocumentLevelSecurityFeature,
+ hasIncrementalSyncFeature,
+} from '../../utils/connector_helpers';
+
import {
ConnectorNameAndDescriptionLogic,
ConnectorNameAndDescriptionActions,
@@ -71,7 +75,6 @@ export interface ConnectorViewValues {
index: ElasticsearchViewIndex | undefined;
indexName: string;
ingestionMethod: IngestionMethod;
- ingestionStatus: IngestionStatus;
isCanceling: boolean;
isHiddenIndex: boolean;
isLoading: boolean;
@@ -142,6 +145,11 @@ export const ConnectorViewLogic = kea {
+ if (!values.index && connector?.index_name) {
+ actions.fetchIndex({ indexName: connector.index_name });
+ }
+ },
}),
path: ['enterprise_search', 'content', 'connector_view_logic'],
selectors: ({ selectors }) => ({
@@ -188,8 +196,7 @@ export const ConnectorViewLogic = kea [selectors.connector],
- (connector?: Connector) =>
- connector?.features?.[FeatureName.DOCUMENT_LEVEL_SECURITY]?.enabled || false,
+ (connector?: Connector) => hasDocumentLevelSecurityFeature(connector),
],
hasFilteringFeature: [
() => [selectors.hasAdvancedFilteringFeature, selectors.hasBasicFilteringFeature],
@@ -197,8 +204,7 @@ export const ConnectorViewLogic = kea [selectors.connector],
- (connector?: Connector) =>
- connector?.features?.[FeatureName.INCREMENTAL_SYNC]?.enabled || false,
+ (connector?: Connector) => hasIncrementalSyncFeature(connector),
],
htmlExtraction: [
() => [selectors.connector],
diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/native_connector_configuration.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/native_connector_configuration.tsx
index 4660ad75fe905..ada3b65114ef1 100644
--- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/native_connector_configuration.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/native_connector_configuration.tsx
@@ -38,11 +38,11 @@ import { GenerateConnectorApiKeyApiLogic } from '../../api/connector/generate_co
import { CONNECTOR_DETAIL_TAB_PATH } from '../../routes';
import { hasConfiguredConfiguration } from '../../utils/has_configured_configuration';
-import { SyncsContextMenu } from '../search_index/components/header_actions/syncs_context_menu';
import { ApiKeyConfig } from '../search_index/connector/api_key_configuration';
import { ConvertConnector } from '../search_index/connector/native_connector_configuration/convert_connector';
import { NativeConnectorConfigurationConfig } from '../search_index/connector/native_connector_configuration/native_connector_configuration_config';
import { ResearchConfiguration } from '../search_index/connector/native_connector_configuration/research_configuration';
+import { SyncsContextMenu } from '../shared/header_actions/syncs_context_menu';
import { AttachIndexBox } from './attach_index_box';
import { ConnectorDetailTabId } from './connector_detail';
diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/overview.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/overview.tsx
index 53dc7a601ad28..7e5b5cf61b475 100644
--- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/overview.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/overview.tsx
@@ -217,10 +217,7 @@ export const ConnectorDetailOverview: React.FC = () => {
{connector && connector.service_type !== ENTERPRISE_SEARCH_CONNECTOR_CRAWLER_SERVICE_TYPE && (
<>
-
+
>
)}
>
diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/cancel_syncs_logic.test.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/cancel_syncs_logic.test.ts
deleted file mode 100644
index 36ee9b44ac9d9..0000000000000
--- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/cancel_syncs_logic.test.ts
+++ /dev/null
@@ -1,51 +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 { LogicMounter } from '../../../../__mocks__/kea_logic';
-
-import { indices } from '../../../__mocks__/search_indices.mock';
-
-import { FetchIndexApiLogic } from '../../../api/index/fetch_index_api_logic';
-import { IndexViewLogic } from '../index_view_logic';
-
-import { CancelSyncsLogic } from './cancel_syncs_logic';
-
-describe('CancelSyncsLogic', () => {
- const { mount } = new LogicMounter(CancelSyncsLogic);
- const { mount: IndexViewLogicMount } = new LogicMounter(IndexViewLogic);
- const { mount: FetchIndexApiLogicMount } = new LogicMounter(FetchIndexApiLogic);
- const DEFAULT_VALUES = {
- connectorId: null,
- isConnectorIndex: false,
- };
-
- beforeEach(() => {
- jest.clearAllMocks();
- IndexViewLogicMount();
- FetchIndexApiLogicMount();
- mount();
- });
- it('has expected default values', () => {
- expect(CancelSyncsLogic.values).toEqual(DEFAULT_VALUES);
- });
-
- describe('actions', () => {
- describe('cancelSyncs', () => {
- it('should not call makeCancelSyncRequest if index is not a connector', () => {
- CancelSyncsLogic.actions.makeCancelSyncsRequest = jest.fn();
- CancelSyncsLogic.actions.cancelSyncs();
- expect(CancelSyncsLogic.actions.makeCancelSyncsRequest).not.toHaveBeenCalled();
- });
- it('should call clearFlashMessages and request if index is a connector', () => {
- CancelSyncsLogic.actions.makeCancelSyncsRequest = jest.fn();
- FetchIndexApiLogic.actions.apiSuccess(indices[1]);
- CancelSyncsLogic.actions.cancelSyncs();
- expect(CancelSyncsLogic.actions.makeCancelSyncsRequest).toHaveBeenCalled();
- });
- });
- });
-});
diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/cancel_syncs_logic.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/cancel_syncs_logic.ts
deleted file mode 100644
index 055ace3cbc013..0000000000000
--- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/cancel_syncs_logic.ts
+++ /dev/null
@@ -1,56 +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 { kea, MakeLogicType } from 'kea';
-
-import { Actions } from '../../../../shared/api_logic/create_api_logic';
-
-import {
- CancelSyncsApiArgs,
- CancelSyncsApiLogic,
-} from '../../../api/connector/cancel_syncs_api_logic';
-import { IndexViewLogic } from '../index_view_logic';
-
-type CancelSyncsApiActions = Actions;
-
-interface CancelSyncsLogicValues {
- connectorId?: string;
- isConnectorIndex: boolean;
-}
-
-export interface CancelSyncsLogicActions {
- cancelSyncs: () => void;
- cancelSyncsApiError: CancelSyncsApiActions['apiError'];
- cancelSyncsApiSuccess: CancelSyncsApiActions['apiSuccess'];
- makeCancelSyncsRequest: CancelSyncsApiActions['makeRequest'];
-}
-
-export const CancelSyncsLogic = kea>(
- {
- actions: {
- cancelSyncs: true,
- },
- connect: {
- actions: [
- CancelSyncsApiLogic,
- [
- 'apiError as cancelSyncsApiError',
- 'apiSuccess as cancelSyncsApiSuccess',
- 'makeRequest as makeCancelSyncsRequest',
- ],
- ],
- values: [IndexViewLogic, ['connectorId', 'isConnectorIndex']],
- },
- listeners: ({ actions, values }) => ({
- cancelSyncs: () => {
- if (values.isConnectorIndex && values.connectorId) {
- actions.makeCancelSyncsRequest({ connectorId: values.connectorId });
- }
- },
- }),
- }
-);
diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/native_connector_configuration/native_connector_advanced_configuration.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/native_connector_configuration/native_connector_advanced_configuration.tsx
index 1fca8bed5272e..e6e844c1fc7ee 100644
--- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/native_connector_configuration/native_connector_advanced_configuration.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/native_connector_configuration/native_connector_advanced_configuration.tsx
@@ -19,7 +19,7 @@ import { generateEncodedPath } from '../../../../../shared/encode_path_params';
import { EuiButtonTo } from '../../../../../shared/react_router_helpers';
import { SEARCH_INDEX_TAB_PATH } from '../../../../routes';
-import { SyncsContextMenu } from '../../components/header_actions/syncs_context_menu';
+import { SyncsContextMenu } from '../../../shared/header_actions/syncs_context_menu';
import { IndexNameLogic } from '../../index_name_logic';
import { SearchIndexTabId } from '../../search_index';
diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/index_view_logic.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/index_view_logic.ts
index 597757e83534a..7d83041ff9e05 100644
--- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/index_view_logic.ts
+++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/index_view_logic.ts
@@ -43,6 +43,10 @@ import {
import { FetchIndexApiResponse } from '../../api/index/fetch_index_api_logic';
import { ElasticsearchViewIndex } from '../../types';
+import {
+ hasDocumentLevelSecurityFeature,
+ hasIncrementalSyncFeature,
+} from '../../utils/connector_helpers';
import {
getIngestionMethod,
getIngestionStatus,
@@ -288,8 +292,7 @@ export const IndexViewLogic = kea [selectors.connector],
- (connector?: Connector) =>
- connector?.features?.[FeatureName.DOCUMENT_LEVEL_SECURITY]?.enabled || false,
+ (connector?: Connector) => hasDocumentLevelSecurityFeature(connector),
],
hasFilteringFeature: [
() => [selectors.hasAdvancedFilteringFeature, selectors.hasBasicFilteringFeature],
@@ -297,8 +300,7 @@ export const IndexViewLogic = kea [selectors.connector],
- (connector?: Connector) =>
- connector?.features?.[FeatureName.INCREMENTAL_SYNC]?.enabled || false,
+ (connector?: Connector) => hasIncrementalSyncFeature(connector),
],
htmlExtraction: [
() => [selectors.connector],
diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/overview.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/overview.tsx
index f8ccf71026e83..2baf9bb2b530c 100644
--- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/overview.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/overview.tsx
@@ -135,10 +135,7 @@ export const SearchIndexOverview: React.FC = () => {
{isConnectorIndex(indexData) && (
<>
-
+
>
)}
>
diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/search_index.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/search_index.tsx
index ea23a0b33479e..09e6b494f94e4 100644
--- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/search_index.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/search_index.tsx
@@ -27,7 +27,8 @@ import { EnterpriseSearchContentPageTemplate } from '../layout/page_template';
import { baseBreadcrumbs } from '../search_indices';
-import { getHeaderActions } from './components/header_actions/header_actions';
+import { getHeaderActions } from '../shared/header_actions/header_actions';
+
import { ConnectorScheduling } from './connector/connector_scheduling';
import { ConnectorSyncRules } from './connector/sync_rules/connector_rules';
import { AutomaticCrawlScheduler } from './crawler/automatic_crawl_scheduler/automatic_crawl_scheduler';
diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/sync_jobs/sync_jobs.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/sync_jobs/sync_jobs.tsx
index 49f4959100736..9495716e1a5e0 100644
--- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/sync_jobs/sync_jobs.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/sync_jobs/sync_jobs.tsx
@@ -13,27 +13,24 @@ import { EuiButtonGroup } from '@elastic/eui';
import { i18n } from '@kbn/i18n';
-import { SyncJobsTable } from '@kbn/search-connectors';
+import { Connector, SyncJobsTable } from '@kbn/search-connectors';
import { KibanaLogic } from '../../../../shared/kibana';
-import { IndexViewLogic } from '../index_view_logic';
+import { hasDocumentLevelSecurityFeature } from '../../../utils/connector_helpers';
import { SyncJobsViewLogic } from './sync_jobs_view_logic';
export interface SyncJobsProps {
- errorOnAccessSync?: boolean;
- errorOnContentSync?: boolean;
+ connector: Connector;
}
-export const SyncJobs: React.FC = ({
- errorOnAccessSync = false,
- errorOnContentSync = false,
-}) => {
- const { hasDocumentLevelSecurityFeature } = useValues(IndexViewLogic);
+export const SyncJobs: React.FC = ({ connector }) => {
const { productFeatures } = useValues(KibanaLogic);
const shouldShowAccessSyncs =
- productFeatures.hasDocumentLevelSecurityEnabled && hasDocumentLevelSecurityFeature;
+ productFeatures.hasDocumentLevelSecurityEnabled && hasDocumentLevelSecurityFeature(connector);
+ const errorOnAccessSync = Boolean(connector.last_access_control_sync_error);
+ const errorOnContentSync = Boolean(connector.last_sync_error);
const {
connectorId,
syncJobsPagination: pagination,
@@ -43,8 +40,17 @@ export const SyncJobs: React.FC = ({
selectedSyncJobCategory,
syncTriggeredLocally,
} = useValues(SyncJobsViewLogic);
- const { fetchSyncJobs, cancelSyncJob, setCancelSyncJob, setSelectedSyncJobCategory } =
- useActions(SyncJobsViewLogic);
+ const {
+ setConnectorId,
+ fetchSyncJobs,
+ cancelSyncJob,
+ setCancelSyncJob,
+ setSelectedSyncJobCategory,
+ } = useActions(SyncJobsViewLogic);
+
+ useEffect(() => {
+ setConnectorId(connector.id);
+ }, [connector]);
useEffect(() => {
if (connectorId) {
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 e0a6176e38bff..647a19c62d360 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
@@ -27,8 +27,7 @@ import {
FetchSyncJobsResponse,
} from '../../../api/connector/fetch_sync_jobs_api_logic';
-import { CancelSyncsLogic, CancelSyncsLogicActions } from '../connector/cancel_syncs_logic';
-import { IndexViewActions, IndexViewLogic } from '../index_view_logic';
+import { SyncsLogic, SyncsLogicActions } from '../../shared/header_actions/syncs_logic';
const UI_REFRESH_INTERVAL = 2000;
@@ -41,8 +40,8 @@ export interface SyncJobsViewActions {
cancelSyncError: CancelSyncApiActions['apiError'];
cancelSyncJob: CancelSyncApiActions['makeRequest'];
cancelSyncSuccess: CancelSyncApiActions['apiSuccess'];
- cancelSyncsApiError: CancelSyncsLogicActions['cancelSyncsApiError'];
- cancelSyncsApiSuccess: CancelSyncsLogicActions['cancelSyncsApiSuccess'];
+ cancelSyncsApiError: SyncsLogicActions['cancelSyncsApiError'];
+ cancelSyncsApiSuccess: SyncsLogicActions['cancelSyncsApiSuccess'];
fetchSyncJobs: Actions['makeRequest'];
fetchSyncJobsApiSuccess: Actions['apiSuccess'];
fetchSyncJobsError: Actions['apiError'];
@@ -51,12 +50,13 @@ export interface SyncJobsViewActions {
setCancelSyncJob: (syncJobId: ConnectorSyncJob['id'] | undefined) => {
syncJobId: ConnectorSyncJob['id'] | null;
};
+ setConnectorId: (connectorId: string | null) => { connectorId: string | null };
setSelectedSyncJobCategory: (category: 'content' | 'access_control') => {
category: 'content' | 'access_control';
};
- startAccessControlSync: IndexViewActions['startAccessControlSync'];
- startIncrementalSync: IndexViewActions['startIncrementalSync'];
- startSync: IndexViewActions['startSync'];
+ startAccessControlSync: SyncsLogicActions['startAccessControlSync'];
+ startIncrementalSync: SyncsLogicActions['startIncrementalSync'];
+ startSync: SyncsLogicActions['startSync'];
}
export interface SyncJobsViewValues {
@@ -77,6 +77,7 @@ export const SyncJobsViewLogic = kea ({ syncJobId: syncJobId ?? null }),
+ setConnectorId: (connectorId) => ({ connectorId }),
setSelectedSyncJobCategory: (category) => ({ category }),
},
connect: {
@@ -95,14 +96,17 @@ export const SyncJobsViewLogic = kea connectorId,
+ },
+ ],
selectedSyncJobCategory: [
'content',
{
diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/components/header_actions/header_actions.test.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/shared/header_actions/header_actions.test.tsx
similarity index 82%
rename from x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/components/header_actions/header_actions.test.tsx
rename to x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/shared/header_actions/header_actions.test.tsx
index 9fe8bdd85cee0..9396bca58a025 100644
--- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/components/header_actions/header_actions.test.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/shared/header_actions/header_actions.test.tsx
@@ -5,14 +5,15 @@
* 2.0.
*/
-import { apiIndex, connectorIndex, crawlerIndex } from '../../../../__mocks__/view_index.mock';
+import { apiIndex, connectorIndex, crawlerIndex } from '../../../__mocks__/view_index.mock';
import React from 'react';
-import { CrawlerStatusIndicator } from '../../../shared/crawler_status_indicator/crawler_status_indicator';
+import { SearchPlaygroundPopover } from '../../search_index/components/header_actions/search_playground_popover';
+
+import { CrawlerStatusIndicator } from '../crawler_status_indicator/crawler_status_indicator';
import { getHeaderActions } from './header_actions';
-import { SearchPlaygroundPopover } from './search_playground_popover';
import { SyncsContextMenu } from './syncs_context_menu';
describe('Header Actions', () => {
diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/components/header_actions/header_actions.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/shared/header_actions/header_actions.tsx
similarity index 80%
rename from x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/components/header_actions/header_actions.tsx
rename to x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/shared/header_actions/header_actions.tsx
index 14900cbd4fa3a..900e454053cf6 100644
--- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/components/header_actions/header_actions.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/shared/header_actions/header_actions.tsx
@@ -9,11 +9,13 @@ import React from 'react';
import { Connector } from '@kbn/search-connectors';
-import { ElasticsearchIndexWithIngestion } from '../../../../../../../common/types/indices';
-import { isCrawlerIndex, isConnectorIndex, getIngestionMethod } from '../../../../utils/indices';
-import { CrawlerStatusIndicator } from '../../../shared/crawler_status_indicator/crawler_status_indicator';
+import { ElasticsearchIndexWithIngestion } from '../../../../../../common/types/indices';
+import { isCrawlerIndex, isConnectorIndex, getIngestionMethod } from '../../../utils/indices';
+
+import { SearchPlaygroundPopover } from '../../search_index/components/header_actions/search_playground_popover';
+
+import { CrawlerStatusIndicator } from '../crawler_status_indicator/crawler_status_indicator';
-import { SearchPlaygroundPopover } from './search_playground_popover';
import { SyncsContextMenu } from './syncs_context_menu';
// Used to populate rightSideItems of an EuiPageTemplate, which is rendered right-to-left
diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/components/header_actions/syncs_context_menu.test.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/shared/header_actions/syncs_context_menu.test.tsx
similarity index 95%
rename from x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/components/header_actions/syncs_context_menu.test.tsx
rename to x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/shared/header_actions/syncs_context_menu.test.tsx
index 2cccee94f9609..13088a0d4e8ec 100644
--- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/components/header_actions/syncs_context_menu.test.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/shared/header_actions/syncs_context_menu.test.tsx
@@ -5,8 +5,8 @@
* 2.0.
*/
-import '../../../../../__mocks__/shallow_useeffect.mock';
-import { setMockValues, setMockActions } from '../../../../../__mocks__/kea_logic';
+import '../../../../__mocks__/shallow_useeffect.mock';
+import { setMockValues, setMockActions } from '../../../../__mocks__/kea_logic';
import React from 'react';
@@ -20,7 +20,7 @@ import {
import { IngestionStatus, IngestionMethod } from '@kbn/search-connectors';
import { mountWithIntl } from '@kbn/test-jest-helpers';
-import { Status } from '../../../../../../../common/types/api';
+import { Status } from '../../../../../../common/types/api';
import { SyncsContextMenu } from './syncs_context_menu';
diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/components/header_actions/syncs_context_menu.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/shared/header_actions/syncs_context_menu.tsx
similarity index 74%
rename from x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/components/header_actions/syncs_context_menu.tsx
rename to x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/shared/header_actions/syncs_context_menu.tsx
index 1f0eaaf6f16ae..c525c2f672075 100644
--- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/components/header_actions/syncs_context_menu.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/shared/header_actions/syncs_context_menu.tsx
@@ -22,25 +22,26 @@ import {
import { i18n } from '@kbn/i18n';
-import { IngestionStatus } from '@kbn/search-connectors';
+import { ConnectorStatus, IngestionStatus } from '@kbn/search-connectors';
-import { Status } from '../../../../../../../common/types/api';
-import { HttpLogic } from '../../../../../shared/http';
-import { KibanaLogic } from '../../../../../shared/kibana';
-import { CancelSyncsApiLogic } from '../../../../api/connector/cancel_syncs_api_logic';
-import { ConnectorViewLogic } from '../../../connector_detail/connector_view_logic';
-import { CancelSyncsLogic } from '../../connector/cancel_syncs_logic';
-import { IndexViewLogic } from '../../index_view_logic';
+import { Status } from '../../../../../../common/types/api';
+import { HttpLogic } from '../../../../shared/http';
+import { KibanaLogic } from '../../../../shared/kibana';
+import { CancelSyncsApiLogic } from '../../../api/connector/cancel_syncs_api_logic';
+import { ConnectorViewLogic } from '../../connector_detail/connector_view_logic';
+
+import { IndexViewLogic } from '../../search_index/index_view_logic';
+
+import { SyncsLogic } from './syncs_logic';
export const SyncsContextMenu: React.FC = () => {
const { config, productFeatures } = useValues(KibanaLogic);
- const { ingestionMethod, ingestionStatus, isCanceling, isSyncing, isWaitingForSync } =
- useValues(IndexViewLogic);
+ const { ingestionStatus, isCanceling, isSyncing, isWaitingForSync } = useValues(IndexViewLogic);
const { connector, hasDocumentLevelSecurityFeature, hasIncrementalSyncFeature } =
useValues(ConnectorViewLogic);
- const { cancelSyncs } = useActions(CancelSyncsLogic);
const { status } = useValues(CancelSyncsApiLogic);
- const { startSync, startIncrementalSync, startAccessControlSync } = useActions(IndexViewLogic);
+ const { startSync, startIncrementalSync, startAccessControlSync, cancelSyncs } =
+ useActions(SyncsLogic);
const { errorConnectingMessage } = useValues(HttpLogic);
const [isPopoverOpen, setPopover] = useState(false);
@@ -56,7 +57,7 @@ export const SyncsContextMenu: React.FC = () => {
}
);
}
- if (isSyncing && ingestionStatus !== IngestionStatus.ERROR) {
+ if (isSyncing && connector?.status !== ConnectorStatus.ERROR) {
return i18n.translate('xpack.enterpriseSearch.content.index.syncButton.syncing.label', {
defaultMessage: 'Syncing',
});
@@ -90,8 +91,8 @@ export const SyncsContextMenu: React.FC = () => {
: [
{
// @ts-ignore - data-* attributes are applied but doesn't exist on types
- 'data-telemetry-id': `entSearchContent-${ingestionMethod}-header-sync-startSync`,
- 'data-test-subj': `entSearchContent-${ingestionMethod}-header-sync-startSync`,
+ 'data-telemetry-id': `entSearchContent-connector-header-sync-startSync`,
+ 'data-test-subj': `entSearchContent-connector-header-sync-startSync`,
disabled: isSyncsDisabled,
icon: 'play',
name: i18n.translate('xpack.enterpriseSearch.index.header.more.fullSync', {
@@ -99,7 +100,7 @@ export const SyncsContextMenu: React.FC = () => {
}),
onClick: () => {
closePopover();
- startSync();
+ startSync(connector);
},
},
]),
@@ -107,10 +108,8 @@ export const SyncsContextMenu: React.FC = () => {
? [
{
// @ts-ignore - data-* attributes are applied but doesn't exist on types
- 'data-telemetry-id':
- 'entSearchContent-${ingestionMethod}-header-sync-more-incrementalSync',
- 'data-test-subj':
- 'entSearchContent-${ingestionMethod}-header-sync-more-incrementalSync',
+ 'data-telemetry-id': `entSearchContent-connector-header-sync-more-incrementalSync`,
+ 'data-test-subj': `entSearchContent-connector-header-sync-more-incrementalSync`,
disabled: isSyncsDisabled,
icon: 'play',
name: i18n.translate('xpack.enterpriseSearch.index.header.more.incrementalSync', {
@@ -118,7 +117,7 @@ export const SyncsContextMenu: React.FC = () => {
}),
onClick: () => {
closePopover();
- startIncrementalSync();
+ startIncrementalSync(connector);
},
},
]
@@ -127,10 +126,8 @@ export const SyncsContextMenu: React.FC = () => {
? [
{
// @ts-ignore - data-* attributes are applied but doesn't exist on types
- 'data-telemetry-id':
- 'entSearchContent-${ingestionMethod}-header-sync-more-accessControlSync',
- 'data-test-subj':
- 'entSearchContent-${ingestionMethod}-header-sync-more-accessControlSync',
+ 'data-telemetry-id': `entSearchContent-connector-header-sync-more-accessControlSync`,
+ 'data-test-subj': `entSearchContent-connector-header-sync-more-accessControlSync`,
disabled: Boolean(
isSyncsDisabled || !connector?.configuration.use_document_level_security?.value
),
@@ -140,14 +137,14 @@ export const SyncsContextMenu: React.FC = () => {
}),
onClick: () => {
closePopover();
- startAccessControlSync();
+ startAccessControlSync(connector);
},
},
]
: []),
{
// @ts-ignore - data-* attributes are applied but doesn't exist on types
- 'data-telemetry-id': `entSearchContent-${ingestionMethod}-header-sync-cancelSync`,
+ 'data-telemetry-id': `entSearchContent-connector-header-sync-cancelSync`,
disabled:
(isCanceling && ingestionStatus !== IngestionStatus.ERROR) || status === Status.LOADING,
icon: ,
@@ -162,7 +159,7 @@ export const SyncsContextMenu: React.FC = () => {
),
onClick: () => {
closePopover();
- cancelSyncs();
+ cancelSyncs(connector);
},
},
],
@@ -174,7 +171,8 @@ export const SyncsContextMenu: React.FC = () => {
{
)}
-
+
{getSyncButtonText()}
diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/shared/header_actions/syncs_logic.test.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/shared/header_actions/syncs_logic.test.ts
new file mode 100644
index 0000000000000..5406622ff9f3c
--- /dev/null
+++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/shared/header_actions/syncs_logic.test.ts
@@ -0,0 +1,239 @@
+/*
+ * 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 { LogicMounter } from '../../../../__mocks__/kea_logic';
+
+import {
+ Connector,
+ ConnectorStatus,
+ DisplayType,
+ FieldType,
+ FilteringValidationState,
+ SyncStatus,
+} from '@kbn/search-connectors';
+
+import { SyncsLogic } from './syncs_logic';
+
+const mockConnector: Connector = {
+ id: '123',
+ api_key_id: '123123',
+ api_key_secret_id: '321321',
+ configuration: {
+ config_value: {
+ default_value: null,
+ depends_on: [],
+ display: DisplayType.TEXTBOX,
+ label: 'textbox value',
+ options: [],
+ order: 0,
+ required: true,
+ sensitive: false,
+ tooltip: 'tooltip',
+ type: FieldType.STRING,
+ ui_restrictions: [],
+ validations: [],
+ value: '123',
+ },
+ },
+ custom_scheduling: {},
+ description: 'test',
+ error: null,
+ features: {
+ document_level_security: {
+ enabled: false,
+ },
+ incremental_sync: {
+ enabled: false,
+ },
+ sync_rules: {
+ advanced: {
+ enabled: false,
+ },
+ basic: {
+ enabled: false,
+ },
+ },
+ },
+ filtering: [
+ {
+ active: {
+ advanced_snippet: {
+ created_at: '2024-05-28T11:27:53.460Z',
+ updated_at: '2024-05-28T11:27:53.460Z',
+ value: {},
+ },
+ rules: [
+ {
+ created_at: '2024-05-28T11:27:53.460Z',
+ field: '_',
+ id: 'DEFAULT',
+ order: 0,
+ policy: 'include',
+ rule: 'regex',
+ updated_at: '2024-05-28T11:27:53.460Z',
+ value: '.*',
+ },
+ ],
+ validation: {
+ errors: [],
+ state: FilteringValidationState.VALID,
+ },
+ },
+ domain: 'DEFAULT',
+ draft: {
+ advanced_snippet: {
+ created_at: '2024-05-28T11:27:53.460Z',
+ updated_at: '2024-05-28T11:27:53.460Z',
+ value: {},
+ },
+ rules: [
+ {
+ created_at: '2024-05-28T11:27:53.460Z',
+ field: '_',
+ id: 'DEFAULT',
+ order: 0,
+ policy: 'include',
+ rule: 'regex',
+ updated_at: '2024-05-28T11:27:53.460Z',
+ value: '.*',
+ },
+ ],
+ validation: {
+ errors: [],
+ state: FilteringValidationState.VALID,
+ },
+ },
+ },
+ ],
+ index_name: 'test',
+ is_native: false,
+ language: null,
+ last_access_control_sync_error: null,
+ last_access_control_sync_scheduled_at: null,
+ last_access_control_sync_status: SyncStatus.CANCELED,
+ last_deleted_document_count: 0,
+ last_incremental_sync_scheduled_at: null,
+ last_indexed_document_count: 44,
+ last_seen: '2024-05-31T12:55:30.301795+00:00',
+ last_sync_error: null,
+ last_sync_scheduled_at: null,
+ last_sync_status: SyncStatus.COMPLETED,
+ last_synced: '2024-05-31T12:42:17.191699+00:00',
+ name: 'test',
+ pipeline: {
+ extract_binary_content: true,
+ name: 'ent-search-generic-ingestion',
+ reduce_whitespace: true,
+ run_ml_inference: true,
+ },
+ scheduling: {
+ access_control: {
+ enabled: false,
+ interval: '0 0 0 * * ?',
+ },
+ full: {
+ enabled: false,
+ interval: '0 0 0 * * ?',
+ },
+ incremental: {
+ enabled: false,
+ interval: '0 0 0 * * ?',
+ },
+ },
+ service_type: 'gmail',
+ status: ConnectorStatus.CONNECTED,
+ sync_now: false,
+};
+
+describe('SyncsLogic', () => {
+ const { mount } = new LogicMounter(SyncsLogic);
+ const DEFAULT_VALUES = {};
+
+ beforeEach(() => {
+ jest.clearAllMocks();
+ mount();
+ });
+ it('has expected default values', () => {
+ expect(SyncsLogic.values).toEqual(DEFAULT_VALUES);
+ });
+
+ describe('actions', () => {
+ describe('cancelSyncs', () => {
+ it("should not call makeCancelSyncRequest if connector doesn't exist", () => {
+ SyncsLogic.actions.makeCancelSyncsRequest = jest.fn();
+ SyncsLogic.actions.cancelSyncs(undefined);
+ expect(SyncsLogic.actions.makeCancelSyncsRequest).not.toHaveBeenCalled();
+ });
+ it('should call clearFlashMessages and request if a connector is passed', () => {
+ SyncsLogic.actions.makeCancelSyncsRequest = jest.fn();
+ SyncsLogic.actions.cancelSyncs(mockConnector);
+ expect(SyncsLogic.actions.makeCancelSyncsRequest).toHaveBeenCalled();
+ });
+ });
+
+ describe('startAccessControlSync', () => {
+ it("should not call makeStartAccessControlSyncRequest if connector doesn't exist", () => {
+ SyncsLogic.actions.makeStartAccessControlSyncRequest = jest.fn();
+ SyncsLogic.actions.startAccessControlSync(undefined);
+ expect(SyncsLogic.actions.makeStartAccessControlSyncRequest).not.toHaveBeenCalled();
+ });
+ it('should call makeStartAccessControlSyncRequest if a connector is passed', () => {
+ SyncsLogic.actions.makeStartAccessControlSyncRequest = jest.fn();
+ SyncsLogic.actions.startAccessControlSync({
+ ...mockConnector,
+ features: {
+ ...mockConnector.features,
+ document_level_security: { enabled: true },
+ },
+ });
+ expect(SyncsLogic.actions.makeStartAccessControlSyncRequest).toHaveBeenCalled();
+ });
+ it('should not call makeStartAccessControlSyncRequest if incremental sync is not enabled', () => {
+ SyncsLogic.actions.makeStartAccessControlSyncRequest = jest.fn();
+ SyncsLogic.actions.startAccessControlSync({ ...mockConnector, features: {} });
+ expect(SyncsLogic.actions.makeStartAccessControlSyncRequest).not.toHaveBeenCalled();
+ });
+ });
+
+ describe('startIncrementalSync', () => {
+ it("should not call makeStartIncrementalSyncRequest if connector doesn't exist", () => {
+ SyncsLogic.actions.makeStartIncrementalSyncRequest = jest.fn();
+ SyncsLogic.actions.startIncrementalSync(undefined);
+ expect(SyncsLogic.actions.makeStartIncrementalSyncRequest).not.toHaveBeenCalled();
+ });
+ it('should call makeStartIncrementalSyncRequest if a connector is passed', () => {
+ SyncsLogic.actions.makeStartIncrementalSyncRequest = jest.fn();
+ SyncsLogic.actions.startIncrementalSync({
+ ...mockConnector,
+ features: {
+ ...mockConnector.features,
+ incremental_sync: { enabled: true },
+ },
+ });
+ expect(SyncsLogic.actions.makeStartIncrementalSyncRequest).toHaveBeenCalled();
+ });
+ it('should not call makeStartIncrementalSyncRequest if incremental sync is not enabled', () => {
+ SyncsLogic.actions.makeStartIncrementalSyncRequest = jest.fn();
+ SyncsLogic.actions.startIncrementalSync({ ...mockConnector, features: {} });
+ expect(SyncsLogic.actions.makeStartIncrementalSyncRequest).not.toHaveBeenCalled();
+ });
+ });
+
+ describe('startSync', () => {
+ it("should not call makeStartSyncRequest if connector doesn't exist", () => {
+ SyncsLogic.actions.makeStartSyncRequest = jest.fn();
+ SyncsLogic.actions.startSync(undefined);
+ expect(SyncsLogic.actions.makeStartSyncRequest).not.toHaveBeenCalled();
+ });
+ it('should call makeStartSyncRequest if a connector is passed', () => {
+ SyncsLogic.actions.makeStartSyncRequest = jest.fn();
+ SyncsLogic.actions.startSync(mockConnector);
+ expect(SyncsLogic.actions.makeStartSyncRequest).toHaveBeenCalled();
+ });
+ });
+ });
+});
diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/shared/header_actions/syncs_logic.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/shared/header_actions/syncs_logic.ts
new file mode 100644
index 0000000000000..14efffa2fc5f1
--- /dev/null
+++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/shared/header_actions/syncs_logic.ts
@@ -0,0 +1,104 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import { kea, MakeLogicType } from 'kea';
+
+import { Connector } from '@kbn/search-connectors';
+
+import { Actions } from '../../../../shared/api_logic/create_api_logic';
+import { KibanaLogic } from '../../../../shared/kibana';
+
+import {
+ CancelSyncsApiArgs,
+ CancelSyncsApiLogic,
+} from '../../../api/connector/cancel_syncs_api_logic';
+import {
+ StartAccessControlSyncApiLogic,
+ StartAccessControlSyncArgs,
+} from '../../../api/connector/start_access_control_sync_api_logic';
+import {
+ StartIncrementalSyncApiLogic,
+ StartIncrementalSyncArgs,
+} from '../../../api/connector/start_incremental_sync_api_logic';
+import { StartSyncApiLogic, StartSyncArgs } from '../../../api/connector/start_sync_api_logic';
+import {
+ hasDocumentLevelSecurityFeature,
+ hasIncrementalSyncFeature,
+} from '../../../utils/connector_helpers';
+
+type CancelSyncsApiActions = Actions;
+type StartSyncApiActions = Actions;
+type StartIncrementalSyncApiActions = Actions;
+type StartAccessControlSyncApiActions = Actions;
+
+export interface SyncsLogicActions {
+ cancelSyncs(connector?: Connector): { connector: Connector };
+ cancelSyncsApiError: CancelSyncsApiActions['apiError'];
+ cancelSyncsApiSuccess: CancelSyncsApiActions['apiSuccess'];
+ makeCancelSyncsRequest: CancelSyncsApiActions['makeRequest'];
+ makeStartAccessControlSyncRequest: StartAccessControlSyncApiActions['makeRequest'];
+ makeStartIncrementalSyncRequest: StartIncrementalSyncApiActions['makeRequest'];
+ makeStartSyncRequest: StartSyncApiActions['makeRequest'];
+ startAccessControlSync(connector?: Connector): { connector: Connector };
+ startIncrementalSync(connector?: Connector): { connector: Connector };
+ startSync(connector?: Connector): { connector: Connector };
+}
+
+export const SyncsLogic = kea>({
+ actions: {
+ cancelSyncs: (connector?: Connector) => ({ connector }),
+ startAccessControlSync: (connector?: Connector) => ({ connector }),
+ startIncrementalSync: (connector?: Connector) => ({ connector }),
+ startSync: (connector?: Connector) => ({ connector }),
+ },
+ connect: {
+ actions: [
+ CancelSyncsApiLogic,
+ [
+ 'apiError as cancelSyncsApiError',
+ 'apiSuccess as cancelSyncsApiSuccess',
+ 'makeRequest as makeCancelSyncsRequest',
+ ],
+ StartAccessControlSyncApiLogic,
+ ['makeRequest as makeStartAccessControlSyncRequest'],
+ StartIncrementalSyncApiLogic,
+ ['makeRequest as makeStartIncrementalSyncRequest'],
+ StartSyncApiLogic,
+ ['makeRequest as makeStartSyncRequest'],
+ ],
+ },
+ listeners: ({ actions }) => ({
+ cancelSyncs: ({ connector }) => {
+ if (connector?.id) {
+ actions.makeCancelSyncsRequest({ connectorId: connector.id });
+ }
+ },
+ startAccessControlSync: ({ connector }) => {
+ if (
+ connector?.id &&
+ hasDocumentLevelSecurityFeature(connector) &&
+ KibanaLogic.values.productFeatures.hasDocumentLevelSecurityEnabled
+ ) {
+ actions.makeStartAccessControlSyncRequest({ connectorId: connector.id });
+ }
+ },
+ startIncrementalSync: ({ connector }) => {
+ if (
+ connector?.id &&
+ hasIncrementalSyncFeature(connector) &&
+ KibanaLogic.values.productFeatures.hasIncrementalSyncEnabled
+ ) {
+ actions.makeStartIncrementalSyncRequest({ connectorId: connector.id });
+ }
+ },
+ startSync: ({ connector }) => {
+ if (connector?.id) {
+ actions.makeStartSyncRequest({ connectorId: connector.id });
+ }
+ },
+ }),
+});
diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/utils/connector_helpers.test.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/utils/connector_helpers.test.ts
new file mode 100644
index 0000000000000..f3187fbea88ee
--- /dev/null
+++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/utils/connector_helpers.test.ts
@@ -0,0 +1,125 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import { Connector, ConnectorStatus } from '@kbn/search-connectors';
+
+import { hasDocumentLevelSecurityFeature, hasIncrementalSyncFeature } from './connector_helpers';
+
+const mockConnector: Connector = {
+ api_key_id: '',
+ api_key_secret_id: '',
+ configuration: {},
+ custom_scheduling: {},
+ features: {
+ incremental_sync: {
+ enabled: true,
+ },
+ document_level_security: {
+ enabled: true,
+ },
+ },
+ description: null,
+ error: null,
+ filtering: [],
+ id: '',
+ index_name: null,
+ is_native: false,
+ language: null,
+ last_access_control_sync_error: null,
+ last_access_control_sync_scheduled_at: null,
+ last_access_control_sync_status: null,
+ last_deleted_document_count: null,
+ last_incremental_sync_scheduled_at: null,
+ last_indexed_document_count: null,
+ last_seen: null,
+ last_sync_error: null,
+ last_sync_scheduled_at: null,
+ last_sync_status: null,
+ last_synced: null,
+ name: '',
+ scheduling: {
+ access_control: {
+ enabled: false,
+ interval: '',
+ },
+ full: {
+ enabled: false,
+ interval: '',
+ },
+ incremental: {
+ enabled: false,
+ interval: '',
+ },
+ },
+ service_type: null,
+ status: ConnectorStatus.CREATED,
+ sync_now: false,
+};
+
+describe('connector_helpers', () => {
+ describe('hasIncrementalSyncFeature', () => {
+ it('returns true if connector has incremental sync feature enabled', () => {
+ const connector: Connector = {
+ ...mockConnector,
+ features: {
+ incremental_sync: {
+ enabled: true,
+ },
+ },
+ };
+ expect(hasIncrementalSyncFeature(connector)).toEqual(true);
+ });
+
+ it('returns false if connector does not have incremental sync feature enabled', () => {
+ const connector = {
+ ...mockConnector,
+ features: {
+ incremental_sync: {
+ enabled: false,
+ },
+ },
+ };
+ expect(hasIncrementalSyncFeature(connector)).toEqual(false);
+ });
+
+ it('returns false if connector is undefined', () => {
+ const connector = undefined;
+ expect(hasIncrementalSyncFeature(connector)).toEqual(false);
+ });
+ });
+
+ describe('hasDocumentLevelSecurityFeature', () => {
+ it('returns true if connector has document level security feature enabled', () => {
+ const connector = {
+ ...mockConnector,
+ features: {
+ document_level_security: {
+ enabled: true,
+ },
+ },
+ };
+ expect(hasDocumentLevelSecurityFeature(connector)).toEqual(true);
+ });
+
+ it('returns false if connector does not have document level security feature enabled', () => {
+ const connector = {
+ ...mockConnector,
+ features: {
+ document_level_security: {
+ enabled: false,
+ },
+ },
+ };
+ expect(hasDocumentLevelSecurityFeature(connector)).toEqual(false);
+ });
+
+ it('returns false if connector is undefined', () => {
+ const connector = undefined;
+ expect(hasDocumentLevelSecurityFeature(connector)).toEqual(false);
+ });
+ });
+});
diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/utils/connector_helpers.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/utils/connector_helpers.ts
new file mode 100644
index 0000000000000..2d91be4c269b3
--- /dev/null
+++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/utils/connector_helpers.ts
@@ -0,0 +1,16 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import { Connector, FeatureName } from '@kbn/search-connectors';
+
+export const hasIncrementalSyncFeature = (connector: Connector | undefined): boolean => {
+ return connector?.features?.[FeatureName.INCREMENTAL_SYNC]?.enabled || false;
+};
+
+export const hasDocumentLevelSecurityFeature = (connector: Connector | undefined): boolean => {
+ return connector?.features?.[FeatureName.DOCUMENT_LEVEL_SECURITY]?.enabled || false;
+};
From 23c84d1eaa7525c45e8ff3dc061dc702781727c7 Mon Sep 17 00:00:00 2001
From: Maryam Saeidi
Date: Mon, 3 Jun 2024 17:07:14 +0200
Subject: [PATCH 06/82] [SLO Doc] Fix SLO OpenAPI component links (#184630)
## Summary
This PR fixed SLO OpenAPI component links
---
.../observability_solution/slo/docs/openapi/slo/README.md | 2 +-
.../slo/docs/openapi/slo/components/README.md | 8 ++++----
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/x-pack/plugins/observability_solution/slo/docs/openapi/slo/README.md b/x-pack/plugins/observability_solution/slo/docs/openapi/slo/README.md
index 25491ce3951b4..af8985c964abd 100644
--- a/x-pack/plugins/observability_solution/slo/docs/openapi/slo/README.md
+++ b/x-pack/plugins/observability_solution/slo/docs/openapi/slo/README.md
@@ -14,7 +14,7 @@ A guide about the OpenApi specification can be found at [https://swagger.io/docs
## Tools
It is possible to manually validate the docs before bundling them with the following
-command in the `x-pack/plugins/observability_solution/observability/docs/openapi/slo` folder:
+command in the `x-pack/plugins/observability_solution/slo/docs/openapi/slo` folder:
```bash
make validate
diff --git a/x-pack/plugins/observability_solution/slo/docs/openapi/slo/components/README.md b/x-pack/plugins/observability_solution/slo/docs/openapi/slo/components/README.md
index 0841562a33150..6beadcd86e1e9 100644
--- a/x-pack/plugins/observability_solution/slo/docs/openapi/slo/components/README.md
+++ b/x-pack/plugins/observability_solution/slo/docs/openapi/slo/components/README.md
@@ -1,7 +1,7 @@
Reusable components
===========
- - `examples` - reusable [Example objects](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#exampleObject)
- - `headers` - reusable [Header objects](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#headerObject)
- - `parameters` - reusable [Parameter objects](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#parameterObject)
- - `schemas` - reusable [Schema objects](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject)
+ - `examples` - reusable [Example objects](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#example-object)
+ - `headers` - reusable [Header objects](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#header-object)
+ - `parameters` - reusable [Parameter objects](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#parameter-object)
+ - `schemas` - reusable [Schema objects](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schema-object)
From b560e09ffae39d9561e184f9bba146b1216d1b02 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sebasti=C3=A1n=20Zaffarano?=
Date: Mon, 3 Jun 2024 12:22:31 -0300
Subject: [PATCH 07/82] [Telemetry][Security Solution] Update log events and
messages (#184536)
## Summary
The second part of the [logging improvement
task](https://github.com/elastic/kibana/pull/184175/commits).
---
.../lib/telemetry/tasks/configuration.ts | 21 ++++++++++---------
.../lib/telemetry/tasks/detection_rule.ts | 17 +++++++--------
.../server/lib/telemetry/tasks/diagnostic.ts | 13 ++++++------
.../server/lib/telemetry/tasks/filterlists.ts | 13 ++++++------
.../telemetry/tasks/prebuilt_rule_alerts.ts | 13 ++++++------
.../lib/telemetry/tasks/security_lists.ts | 13 ++++++------
.../server/lib/telemetry/tasks/timelines.ts | 14 ++++++-------
.../telemetry/tasks/timelines_diagnostic.ts | 14 ++++++-------
8 files changed, 58 insertions(+), 60 deletions(-)
diff --git a/x-pack/plugins/security_solution/server/lib/telemetry/tasks/configuration.ts b/x-pack/plugins/security_solution/server/lib/telemetry/tasks/configuration.ts
index 0c95ccf651013..0558971ebf1e3 100644
--- a/x-pack/plugins/security_solution/server/lib/telemetry/tasks/configuration.ts
+++ b/x-pack/plugins/security_solution/server/lib/telemetry/tasks/configuration.ts
@@ -32,26 +32,27 @@ export function createTelemetryConfigurationTaskConfig() {
taskMetricsService: ITaskMetricsService,
taskExecutionPeriod: TaskExecutionPeriod
) => {
- const log = newTelemetryLogger(logger.get('configuration'));
+ const mdc = { task_id: taskId, task_execution_period: taskExecutionPeriod };
+ const log = newTelemetryLogger(logger.get('configuration'), mdc);
const trace = taskMetricsService.start(taskType);
- log.l(
- `Running task: ${taskId} [last: ${taskExecutionPeriod.last} - current: ${taskExecutionPeriod.current}]`
- );
+ log.l('Running telemetry task');
try {
const artifactName = 'telemetry-buffer-and-batch-sizes-v1';
const manifest = await artifactService.getArtifact(artifactName);
if (manifest.notModified) {
- log.l('No new configuration artifact found, skipping...');
+ log.debug('No new configuration artifact found, skipping...');
await taskMetricsService.end(trace);
return 0;
}
const configArtifact = manifest.data as unknown as TelemetryConfiguration;
- log.l(`Got telemetry configuration artifact: ${JSON.stringify(configArtifact)}`);
+ log.l('Got telemetry configuration artifact', {
+ artifact: configArtifact,
+ });
telemetryConfiguration.max_detection_alerts_batch =
configArtifact.max_detection_alerts_batch;
@@ -86,9 +87,9 @@ export function createTelemetryConfigurationTaskConfig() {
} else {
const channel = channelsDict.get(channelName);
if (!channel) {
- log.l(`Ignoring unknown channel "${channelName}"`);
+ log.l('Ignoring unknown channel', { channel: channelName });
} else {
- log.l(`Updating configuration for channel "${channelName}`);
+ log.l('Updating configuration for channel', { channel: channelName });
sender.updateQueueConfig(channel, {
bufferTimeSpanMillis: config.buffer_time_span_millis,
inflightEventsThreshold: config.inflight_events_threshold,
@@ -108,10 +109,10 @@ export function createTelemetryConfigurationTaskConfig() {
await taskMetricsService.end(trace);
- log.l(`Updated TelemetryConfiguration: ${JSON.stringify(telemetryConfiguration)}`);
+ log.l('Updated TelemetryConfiguration', { configuration: telemetryConfiguration });
return 0;
} catch (err) {
- log.l(`Failed to set telemetry configuration due to ${err.message}`);
+ log.l('Failed to set telemetry configuration', { error: err.message });
telemetryConfiguration.resetAllToDefault();
await taskMetricsService.end(trace, err);
return 0;
diff --git a/x-pack/plugins/security_solution/server/lib/telemetry/tasks/detection_rule.ts b/x-pack/plugins/security_solution/server/lib/telemetry/tasks/detection_rule.ts
index 91a2bf2a5b85a..3dbd774e29372 100644
--- a/x-pack/plugins/security_solution/server/lib/telemetry/tasks/detection_rule.ts
+++ b/x-pack/plugins/security_solution/server/lib/telemetry/tasks/detection_rule.ts
@@ -38,14 +38,13 @@ export function createTelemetryDetectionRuleListsTaskConfig(maxTelemetryBatch: n
taskMetricsService: ITaskMetricsService,
taskExecutionPeriod: TaskExecutionPeriod
) => {
- const log = newTelemetryLogger(logger.get('detection_rule'));
+ const mdc = { task_id: taskId, task_execution_period: taskExecutionPeriod };
+ const log = newTelemetryLogger(logger.get('detection_rule'), mdc);
const usageCollector = sender.getTelemetryUsageCluster();
const usageLabelPrefix: string[] = ['security_telemetry', 'detection-rules'];
const trace = taskMetricsService.start(taskType);
- log.l(
- `Running task: ${taskId} [last: ${taskExecutionPeriod.last} - current: ${taskExecutionPeriod.current}]`
- );
+ log.l('Running telemetry task');
try {
const [clusterInfoPromise, licenseInfoPromise] = await Promise.allSettled([
@@ -61,7 +60,7 @@ export function createTelemetryDetectionRuleListsTaskConfig(maxTelemetryBatch: n
const { body: prebuiltRules } = await receiver.fetchDetectionRules();
if (!prebuiltRules) {
- log.l('no prebuilt rules found');
+ log.debug('no prebuilt rules found');
await taskMetricsService.end(trace);
return 0;
}
@@ -103,7 +102,9 @@ export function createTelemetryDetectionRuleListsTaskConfig(maxTelemetryBatch: n
licenseInfo,
LIST_DETECTION_RULE_EXCEPTION
);
- log.l(`Detection rule exception json length ${detectionRuleExceptionsJson.length}`);
+ log.l('Detection rule exception json length', {
+ length: detectionRuleExceptionsJson.length,
+ });
usageCollector?.incrementCounter({
counterName: createUsageCounterLabel(usageLabelPrefix),
@@ -120,9 +121,7 @@ export function createTelemetryDetectionRuleListsTaskConfig(maxTelemetryBatch: n
}
await taskMetricsService.end(trace);
- log.l(
- `Task: ${taskId} executed. Processed ${detectionRuleExceptionsJson.length} exceptions`
- );
+ log.l('Task executed', { length: detectionRuleExceptionsJson.length });
return detectionRuleExceptionsJson.length;
} catch (err) {
diff --git a/x-pack/plugins/security_solution/server/lib/telemetry/tasks/diagnostic.ts b/x-pack/plugins/security_solution/server/lib/telemetry/tasks/diagnostic.ts
index 1c691aea4155f..8148a81e8f915 100644
--- a/x-pack/plugins/security_solution/server/lib/telemetry/tasks/diagnostic.ts
+++ b/x-pack/plugins/security_solution/server/lib/telemetry/tasks/diagnostic.ts
@@ -33,12 +33,11 @@ export function createTelemetryDiagnosticsTaskConfig() {
taskMetricsService: ITaskMetricsService,
taskExecutionPeriod: TaskExecutionPeriod
) => {
- const log = newTelemetryLogger(logger.get('diagnostic'));
+ const mdc = { task_id: taskId, task_execution_period: taskExecutionPeriod };
+ const log = newTelemetryLogger(logger.get('diagnostic'), mdc);
const trace = taskMetricsService.start(taskType);
- log.l(
- `Running task: ${taskId} [last: ${taskExecutionPeriod.last} - current: ${taskExecutionPeriod.current}]`
- );
+ log.l('Running telemetry task');
try {
if (!taskExecutionPeriod.last) {
@@ -57,13 +56,15 @@ export function createTelemetryDiagnosticsTaskConfig() {
);
if (alerts.length === 0) {
- log.l('no diagnostic alerts retrieved');
+ log.debug('no diagnostic alerts retrieved');
await taskMetricsService.end(trace);
return alertCount;
}
alertCount += alerts.length;
- log.l(`Sending ${alerts.length} diagnostic alerts`);
+ log.l('Sending diagnostic alerts', {
+ alerts_count: alerts.length,
+ });
await sender.sendOnDemand(TELEMETRY_CHANNEL_ENDPOINT_ALERTS, processedAlerts);
}
diff --git a/x-pack/plugins/security_solution/server/lib/telemetry/tasks/filterlists.ts b/x-pack/plugins/security_solution/server/lib/telemetry/tasks/filterlists.ts
index 69a3ee646f0cf..f31275456ade4 100644
--- a/x-pack/plugins/security_solution/server/lib/telemetry/tasks/filterlists.ts
+++ b/x-pack/plugins/security_solution/server/lib/telemetry/tasks/filterlists.ts
@@ -32,31 +32,30 @@ export function createTelemetryFilterListArtifactTaskConfig() {
taskMetricsService: ITaskMetricsService,
taskExecutionPeriod: TaskExecutionPeriod
) => {
- const log = newTelemetryLogger(logger.get('filterlists'));
+ const mdc = { task_id: taskId, task_execution_period: taskExecutionPeriod };
+ const log = newTelemetryLogger(logger.get('filterlists'), mdc);
const trace = taskMetricsService.start(taskType);
- log.l(
- `Running task: ${taskId} [last: ${taskExecutionPeriod.last} - current: ${taskExecutionPeriod.current}]`
- );
+ log.l('Running telemetry task');
try {
const artifactName = 'telemetry-filterlists-v1';
const manifest = await artifactService.getArtifact(artifactName);
if (manifest.notModified) {
- log.l('No new filterlist artifact found, skipping...');
+ log.debug('No new filterlist artifact found, skipping...');
await taskMetricsService.end(trace);
return 0;
}
const artifact = manifest.data as unknown as TelemetryFilterListArtifact;
- log.l(`New filterlist artifact: ${JSON.stringify(artifact)}`);
+ log.l('New filterlist artifact', { artifact });
filterList.endpointAlerts = artifact.endpoint_alerts;
filterList.exceptionLists = artifact.exception_lists;
filterList.prebuiltRulesAlerts = artifact.prebuilt_rules_alerts;
await taskMetricsService.end(trace);
return 0;
} catch (err) {
- log.l(`Failed to set telemetry filterlist artifact due to ${err.message}`);
+ log.l('Failed to set telemetry filterlist artifact', { error: err.message });
filterList.resetAllToDefault();
await taskMetricsService.end(trace, err);
return 0;
diff --git a/x-pack/plugins/security_solution/server/lib/telemetry/tasks/prebuilt_rule_alerts.ts b/x-pack/plugins/security_solution/server/lib/telemetry/tasks/prebuilt_rule_alerts.ts
index 3fda2878d4566..15f84e1ff4ef1 100644
--- a/x-pack/plugins/security_solution/server/lib/telemetry/tasks/prebuilt_rule_alerts.ts
+++ b/x-pack/plugins/security_solution/server/lib/telemetry/tasks/prebuilt_rule_alerts.ts
@@ -40,12 +40,11 @@ export function createTelemetryPrebuiltRuleAlertsTaskConfig(maxTelemetryBatch: n
taskMetricsService: ITaskMetricsService,
taskExecutionPeriod: TaskExecutionPeriod
) => {
- const log = newTelemetryLogger(logger.get('prebuilt_rule_alerts'));
+ const mdc = { task_id: taskId, task_execution_period: taskExecutionPeriod };
+ const log = newTelemetryLogger(logger.get('prebuilt_rule_alerts'), mdc);
const trace = taskMetricsService.start(taskType);
- log.l(
- `Running task: ${taskId} [last: ${taskExecutionPeriod.last} - current: ${taskExecutionPeriod.current}]`
- );
+ log.l('Running telemetry task');
try {
const [clusterInfoPromise, licenseInfoPromise, packageVersion] = await Promise.allSettled([
@@ -61,7 +60,7 @@ export function createTelemetryPrebuiltRuleAlertsTaskConfig(maxTelemetryBatch: n
const index = receiver.getAlertsIndex();
if (index === undefined) {
- log.l(`alerts index is not ready yet, skipping telemetry task`);
+ log.warn(`alerts index is not ready yet, skipping telemetry task`);
await taskMetricsService.end(trace);
return 0;
}
@@ -96,7 +95,7 @@ export function createTelemetryPrebuiltRuleAlertsTaskConfig(maxTelemetryBatch: n
})
);
- log.l(`sending ${enrichedAlerts.length} elastic prebuilt alerts`);
+ log.l('sending elastic prebuilt alerts', { length: enrichedAlerts.length });
const batches = batchTelemetryRecords(enrichedAlerts, maxTelemetryBatch);
const promises = batches.map(async (batch) => {
@@ -109,7 +108,7 @@ export function createTelemetryPrebuiltRuleAlertsTaskConfig(maxTelemetryBatch: n
await taskMetricsService.end(trace);
return 0;
} catch (err) {
- logger.error('could not complete prebuilt alerts telemetry task');
+ logger.error('could not complete task', { error: err });
await taskMetricsService.end(trace, err);
return 0;
}
diff --git a/x-pack/plugins/security_solution/server/lib/telemetry/tasks/security_lists.ts b/x-pack/plugins/security_solution/server/lib/telemetry/tasks/security_lists.ts
index 09e1d14558c54..e56a1a1cf0fed 100644
--- a/x-pack/plugins/security_solution/server/lib/telemetry/tasks/security_lists.ts
+++ b/x-pack/plugins/security_solution/server/lib/telemetry/tasks/security_lists.ts
@@ -43,12 +43,11 @@ export function createTelemetrySecurityListTaskConfig(maxTelemetryBatch: number)
taskMetricsService: ITaskMetricsService,
taskExecutionPeriod: TaskExecutionPeriod
) => {
- const log = newTelemetryLogger(logger.get('security_lists'));
+ const mdc = { task_id: taskId, task_execution_period: taskExecutionPeriod };
+ const log = newTelemetryLogger(logger.get('security_lists'), mdc);
const trace = taskMetricsService.start(taskType);
- log.l(
- `Running task: ${taskId} [last: ${taskExecutionPeriod.last} - current: ${taskExecutionPeriod.current}]`
- );
+ log.l('Running telemetry task');
const usageCollector = sender.getTelemetryUsageCluster();
const usageLabelPrefix: string[] = ['security_telemetry', 'lists'];
@@ -82,7 +81,7 @@ export function createTelemetrySecurityListTaskConfig(maxTelemetryBatch: number)
LIST_TRUSTED_APPLICATION
);
trustedApplicationsCount = trustedAppsJson.length;
- log.l(`Trusted Apps: ${trustedApplicationsCount}`);
+ log.l('Trusted Apps', { trusted_apps_count: trustedApplicationsCount });
usageCollector?.incrementCounter({
counterName: createUsageCounterLabel(usageLabelPrefix),
@@ -107,7 +106,7 @@ export function createTelemetrySecurityListTaskConfig(maxTelemetryBatch: number)
LIST_ENDPOINT_EXCEPTION
);
endpointExceptionsCount = epExceptionsJson.length;
- log.l(`EP Exceptions: ${endpointExceptionsCount}`);
+ log.l('EP Exceptions', { ep_exceptions_count: endpointExceptionsCount });
usageCollector?.incrementCounter({
counterName: createUsageCounterLabel(usageLabelPrefix),
@@ -132,7 +131,7 @@ export function createTelemetrySecurityListTaskConfig(maxTelemetryBatch: number)
LIST_ENDPOINT_EVENT_FILTER
);
endpointEventFiltersCount = epFiltersJson.length;
- log.l(`EP Event Filters: ${endpointEventFiltersCount}`);
+ log.l('EP Event Filters', { ep_filters_count: endpointEventFiltersCount });
usageCollector?.incrementCounter({
counterName: createUsageCounterLabel(usageLabelPrefix),
diff --git a/x-pack/plugins/security_solution/server/lib/telemetry/tasks/timelines.ts b/x-pack/plugins/security_solution/server/lib/telemetry/tasks/timelines.ts
index c016f029fa2a5..ef9ce40e77c96 100644
--- a/x-pack/plugins/security_solution/server/lib/telemetry/tasks/timelines.ts
+++ b/x-pack/plugins/security_solution/server/lib/telemetry/tasks/timelines.ts
@@ -30,13 +30,12 @@ export function createTelemetryTimelineTaskConfig() {
taskMetricsService: ITaskMetricsService,
taskExecutionPeriod: TaskExecutionPeriod
) => {
- const log = newTelemetryLogger(logger.get('timelines'));
+ const mdc = { task_id: taskId, task_execution_period: taskExecutionPeriod };
+ const log = newTelemetryLogger(logger.get('timelines'), mdc);
const fetcher = new TelemetryTimelineFetcher(receiver);
const trace = taskMetricsService.start(taskType);
- log.l(
- `Running task: ${taskId} [last: ${taskExecutionPeriod.last} - current: ${taskExecutionPeriod.current}]`
- );
+ log.l('Running telemetry task');
try {
let counter = 0;
@@ -49,7 +48,7 @@ export function createTelemetryTimelineTaskConfig() {
}
const alerts = await receiver.fetchTimelineAlerts(alertsIndex, rangeFrom, rangeTo);
- log.l(`found ${alerts.length} alerts to process`);
+ log.l('found alerts to process', { length: alerts.length });
for (const alert of alerts) {
const result = await fetcher.fetchTimeline(alert);
@@ -70,16 +69,17 @@ export function createTelemetryTimelineTaskConfig() {
await sender.sendOnDemand(TELEMETRY_CHANNEL_TIMELINE, [result.timeline]);
counter += 1;
} else {
- log.l('no events in timeline');
+ log.debug('no events in timeline');
}
}
- log.l(`sent ${counter} timelines. Concluding timeline task.`);
+ log.l('Concluding timeline task.', { counter });
await taskMetricsService.end(trace);
return counter;
} catch (err) {
+ logger.error('could not complete task', { error: err });
await taskMetricsService.end(trace, err);
return 0;
}
diff --git a/x-pack/plugins/security_solution/server/lib/telemetry/tasks/timelines_diagnostic.ts b/x-pack/plugins/security_solution/server/lib/telemetry/tasks/timelines_diagnostic.ts
index 31718ec47b1e6..35f5abeac10af 100644
--- a/x-pack/plugins/security_solution/server/lib/telemetry/tasks/timelines_diagnostic.ts
+++ b/x-pack/plugins/security_solution/server/lib/telemetry/tasks/timelines_diagnostic.ts
@@ -30,13 +30,12 @@ export function createTelemetryDiagnosticTimelineTaskConfig() {
taskMetricsService: ITaskMetricsService,
taskExecutionPeriod: TaskExecutionPeriod
) => {
- const log = newTelemetryLogger(logger.get('timelines_diagnostic'));
+ const mdc = { task_id: taskId, task_execution_period: taskExecutionPeriod };
+ const log = newTelemetryLogger(logger.get('timelines_diagnostic'), mdc);
const trace = taskMetricsService.start(taskType);
const fetcher = new TelemetryTimelineFetcher(receiver);
- log.l(
- `Running task: ${taskId} [last: ${taskExecutionPeriod.last} - current: ${taskExecutionPeriod.current}]`
- );
+ log.l('Running telemetry task');
try {
let counter = 0;
@@ -49,7 +48,7 @@ export function createTelemetryDiagnosticTimelineTaskConfig() {
rangeTo
);
- log.l(`found ${alerts.length} alerts to process`);
+ log.l('found alerts to process', { length: alerts.length });
for (const alert of alerts) {
const result = await fetcher.fetchTimeline(alert);
@@ -70,16 +69,17 @@ export function createTelemetryDiagnosticTimelineTaskConfig() {
await sender.sendOnDemand(TELEMETRY_CHANNEL_TIMELINE, [result.timeline]);
counter += 1;
} else {
- log.l('no events in timeline');
+ log.debug('no events in timeline');
}
}
- log.l(`sent ${counter} timelines. Concluding timeline task.`);
+ log.l('Concluding timeline task.', { counter });
await taskMetricsService.end(trace);
return counter;
} catch (err) {
+ logger.error('could not complete task', { error: err });
await taskMetricsService.end(trace, err);
return 0;
}
From 1bf33f9d2700c2972cd9448b3c5d7b3a5b05aec8 Mon Sep 17 00:00:00 2001
From: Tomasz Ciecierski
Date: Mon, 3 Jun 2024 17:29:48 +0200
Subject: [PATCH 08/82] [EDR Workflows] Crowdstrike - add support to responder
(#184217)
---
.../get_external_edr_agent_info.test.ts | 120 ++++++++++++++
.../get_external_edr_agent_info.ts | 70 ++++++++
.../endpoint_responder/translations.ts | 10 ++
.../use_responder_action_data.test.ts | 53 +++++++
.../use_responder_action_data.ts | 50 +++---
.../components/host_isolation/index.tsx | 17 +-
.../isolate_host/header.test.tsx | 63 +++++++-
.../document_details/isolate_host/header.tsx | 10 +-
.../lib/console_commands_definition.ts | 43 +++++
.../console_commands_definition.test.tsx | 150 ++++++++++++++----
.../hooks/use_with_show_responder.tsx | 12 +-
.../common/crowdstrike/schema.ts | 1 +
12 files changed, 521 insertions(+), 78 deletions(-)
create mode 100644 x-pack/plugins/security_solution/public/detections/components/endpoint_responder/get_external_edr_agent_info.test.ts
create mode 100644 x-pack/plugins/security_solution/public/detections/components/endpoint_responder/get_external_edr_agent_info.ts
diff --git a/x-pack/plugins/security_solution/public/detections/components/endpoint_responder/get_external_edr_agent_info.test.ts b/x-pack/plugins/security_solution/public/detections/components/endpoint_responder/get_external_edr_agent_info.test.ts
new file mode 100644
index 0000000000000..9e20b45f55fe6
--- /dev/null
+++ b/x-pack/plugins/security_solution/public/detections/components/endpoint_responder/get_external_edr_agent_info.test.ts
@@ -0,0 +1,120 @@
+/*
+ * 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 { getSentinelOneAgentId } from '../../../common/utils/sentinelone_alert_check';
+import { getCrowdstrikeAgentId } from '../../../common/utils/crowdstrike_alert_check';
+import { getExternalEdrAgentInfo } from './get_external_edr_agent_info';
+
+jest.mock('../../../common/utils/sentinelone_alert_check');
+jest.mock('../../../common/utils/crowdstrike_alert_check');
+
+describe('getExternalEdrAgentInfo', () => {
+ const mockEventData = [
+ {
+ category: 'event',
+ field: 'event.module',
+ values: ['sentinel_one'],
+ isObjectArray: false,
+ },
+ {
+ category: 'host',
+ field: 'host.name',
+ values: ['test-host'],
+ isObjectArray: false,
+ },
+ {
+ category: 'host',
+ field: 'host.os.name',
+ values: ['Windows'],
+ isObjectArray: false,
+ },
+ {
+ category: 'host',
+ field: 'host.os.family',
+ values: ['windows'],
+ isObjectArray: false,
+ },
+ {
+ category: 'host',
+ field: 'host.os.version',
+ values: ['10'],
+ isObjectArray: false,
+ },
+ {
+ category: 'kibana',
+ field: 'kibana.alert.last_detected',
+ values: ['2023-05-01T12:34:56Z'],
+ isObjectArray: false,
+ },
+ {
+ category: 'crowdstrike',
+ field: 'crowdstrike.event.HostName',
+ values: ['test-crowdstrike-host'],
+ isObjectArray: false,
+ },
+ {
+ category: 'crowdstrike',
+ field: 'crowdstrike.event.Platform',
+ values: ['linux'],
+ isObjectArray: false,
+ },
+ ];
+
+ beforeEach(() => {
+ (getSentinelOneAgentId as jest.Mock).mockReturnValue('sentinel-one-agent-id');
+ (getCrowdstrikeAgentId as jest.Mock).mockReturnValue('crowdstrike-agent-id');
+ });
+
+ afterEach(() => {
+ jest.clearAllMocks();
+ });
+
+ it('should return correct info for sentinel_one agent type', () => {
+ const result = getExternalEdrAgentInfo(mockEventData, 'sentinel_one');
+ expect(result).toEqual({
+ agent: {
+ id: 'sentinel-one-agent-id',
+ type: 'sentinel_one',
+ },
+ host: {
+ name: 'test-host',
+ os: {
+ name: 'Windows',
+ family: 'windows',
+ version: '10',
+ },
+ },
+ lastCheckin: '2023-05-01T12:34:56Z',
+ });
+ });
+
+ it('should return correct info for crowdstrike agent type', () => {
+ const result = getExternalEdrAgentInfo(mockEventData, 'crowdstrike');
+ expect(result).toEqual({
+ agent: {
+ id: 'crowdstrike-agent-id',
+ type: 'crowdstrike',
+ },
+ host: {
+ name: 'test-crowdstrike-host',
+ os: {
+ name: '',
+ family: 'linux',
+ version: '',
+ },
+ },
+ lastCheckin: '2023-05-01T12:34:56Z',
+ });
+ });
+
+ it('should throw an error for unsupported agent type', () => {
+ expect(() => {
+ // @ts-expect-error testing purpose
+ getExternalEdrAgentInfo(mockEventData, 'unsupported_agent_type');
+ }).toThrow('Unsupported agent type: unsupported_agent_type');
+ });
+});
diff --git a/x-pack/plugins/security_solution/public/detections/components/endpoint_responder/get_external_edr_agent_info.ts b/x-pack/plugins/security_solution/public/detections/components/endpoint_responder/get_external_edr_agent_info.ts
new file mode 100644
index 0000000000000..0c9c9ed9f0138
--- /dev/null
+++ b/x-pack/plugins/security_solution/public/detections/components/endpoint_responder/get_external_edr_agent_info.ts
@@ -0,0 +1,70 @@
+/*
+ * 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 { TimelineEventsDetailsItem } from '@kbn/timelines-plugin/common';
+import type { ResponseActionAgentType } from '../../../../common/endpoint/service/response_actions/constants';
+import type { ThirdPartyAgentInfo } from '../../../../common/types';
+import { getSentinelOneAgentId } from '../../../common/utils/sentinelone_alert_check';
+import { getFieldValue } from '../host_isolation/helpers';
+import { getCrowdstrikeAgentId } from '../../../common/utils/crowdstrike_alert_check';
+
+export const getExternalEdrAgentInfo = (
+ eventData: TimelineEventsDetailsItem[],
+ agentType: ResponseActionAgentType
+): ThirdPartyAgentInfo => {
+ switch (agentType) {
+ case 'sentinel_one':
+ return {
+ agent: {
+ id: getSentinelOneAgentId(eventData) || '',
+ type: getFieldValue(
+ { category: 'event', field: 'event.module' },
+ eventData
+ ) as ResponseActionAgentType,
+ },
+ host: {
+ name: getFieldValue({ category: 'host', field: 'host.name' }, eventData),
+ os: {
+ name: getFieldValue({ category: 'host', field: 'host.os.name' }, eventData),
+ family: getFieldValue({ category: 'host', field: 'host.os.family' }, eventData),
+ version: getFieldValue({ category: 'host', field: 'host.os.version' }, eventData),
+ },
+ },
+ lastCheckin: getFieldValue(
+ { category: 'kibana', field: 'kibana.alert.last_detected' },
+ eventData
+ ),
+ };
+ case 'crowdstrike':
+ return {
+ agent: {
+ id: getCrowdstrikeAgentId(eventData) || '',
+ type: agentType,
+ },
+ host: {
+ name: getFieldValue(
+ { category: 'crowdstrike', field: 'crowdstrike.event.HostName' },
+ eventData
+ ),
+ os: {
+ name: '',
+ family: getFieldValue(
+ { category: 'crowdstrike', field: 'crowdstrike.event.Platform' },
+ eventData
+ ),
+ version: '',
+ },
+ },
+ lastCheckin: getFieldValue(
+ { category: 'kibana', field: 'kibana.alert.last_detected' },
+ eventData
+ ),
+ };
+ default:
+ throw new Error(`Unsupported agent type: ${agentType}`);
+ }
+};
diff --git a/x-pack/plugins/security_solution/public/detections/components/endpoint_responder/translations.ts b/x-pack/plugins/security_solution/public/detections/components/endpoint_responder/translations.ts
index 2badb70572c1d..52dd93cc5c7cc 100644
--- a/x-pack/plugins/security_solution/public/detections/components/endpoint_responder/translations.ts
+++ b/x-pack/plugins/security_solution/public/detections/components/endpoint_responder/translations.ts
@@ -6,6 +6,7 @@
*/
import { i18n } from '@kbn/i18n';
+import { CROWDSTRIKE_AGENT_ID_FIELD } from '../../../common/utils/crowdstrike_alert_check';
import { SENTINEL_ONE_AGENT_ID_FIELD } from '../../../common/utils/sentinelone_alert_check';
export const NOT_FROM_ENDPOINT_HOST_TOOLTIP = i18n.translate(
@@ -36,3 +37,12 @@ export const SENTINEL_ONE_AGENT_ID_PROPERTY_MISSING = i18n.translate(
},
}
);
+export const CROWDSTRIKE_AGENT_ID_PROPERTY_MISSING = i18n.translate(
+ 'xpack.securitySolution.endpoint.detections.takeAction.responseActionConsole.missingCrowdstrikeAgentId',
+ {
+ defaultMessage: 'Event data missing Crowdstrike agent identifier ({field})',
+ values: {
+ field: CROWDSTRIKE_AGENT_ID_FIELD,
+ },
+ }
+);
diff --git a/x-pack/plugins/security_solution/public/detections/components/endpoint_responder/use_responder_action_data.test.ts b/x-pack/plugins/security_solution/public/detections/components/endpoint_responder/use_responder_action_data.test.ts
index 9a00f462cd870..76be881fa553d 100644
--- a/x-pack/plugins/security_solution/public/detections/components/endpoint_responder/use_responder_action_data.test.ts
+++ b/x-pack/plugins/security_solution/public/detections/components/endpoint_responder/use_responder_action_data.test.ts
@@ -177,4 +177,57 @@ describe('#useResponderActionData', () => {
expect(result.current.isDisabled).toEqual(false);
});
});
+ describe('when agentType is `crowdstrike`', () => {
+ const createEventDataMock = (): TimelineEventsDetailsItem[] => {
+ return [
+ {
+ category: 'crowdstrike',
+ field: 'crowdstrike.event.DeviceId',
+ values: ['mockedAgentId'],
+ originalValue: ['mockedAgentId'],
+ isObjectArray: false,
+ },
+ ];
+ };
+
+ it('should return `responder` menu item as `disabled` if agentType is `crowdstrike` and feature flag is disabled', () => {
+ useIsExperimentalFeatureEnabledMock.mockReturnValue(false);
+
+ const { result } = renderHook(() =>
+ useResponderActionData({
+ endpointId: 'crowdstrike-id',
+ agentType: 'crowdstrike',
+ eventData: createEventDataMock(),
+ })
+ );
+ expect(result.current.isDisabled).toEqual(true);
+ });
+
+ it('should return responder menu item as disabled with tooltip if agent id property is missing from event data', () => {
+ useIsExperimentalFeatureEnabledMock.mockReturnValue(true);
+ const { result } = renderHook(() =>
+ useResponderActionData({
+ endpointId: 'crowdstrike-id',
+ agentType: 'crowdstrike',
+ eventData: [],
+ })
+ );
+ expect(result.current.isDisabled).toEqual(true);
+ expect(result.current.tooltip).toEqual(
+ 'Event data missing Crowdstrike agent identifier (crowdstrike.event.DeviceId)'
+ );
+ });
+
+ it('should return `responder` menu item as `enabled `if agentType is `crowdstrike` and feature flag is enabled', () => {
+ useIsExperimentalFeatureEnabledMock.mockReturnValue(true);
+ const { result } = renderHook(() =>
+ useResponderActionData({
+ endpointId: 'crowdstrike-id',
+ agentType: 'crowdstrike',
+ eventData: createEventDataMock(),
+ })
+ );
+ expect(result.current.isDisabled).toEqual(false);
+ });
+ });
});
diff --git a/x-pack/plugins/security_solution/public/detections/components/endpoint_responder/use_responder_action_data.ts b/x-pack/plugins/security_solution/public/detections/components/endpoint_responder/use_responder_action_data.ts
index b5e068ed4dbde..b2bf6d22643f4 100644
--- a/x-pack/plugins/security_solution/public/detections/components/endpoint_responder/use_responder_action_data.ts
+++ b/x-pack/plugins/security_solution/public/detections/components/endpoint_responder/use_responder_action_data.ts
@@ -7,10 +7,11 @@
import type { ReactNode } from 'react';
import { useCallback, useMemo } from 'react';
import type { TimelineEventsDetailsItem } from '@kbn/timelines-plugin/common';
+import { getExternalEdrAgentInfo } from './get_external_edr_agent_info';
+import { getCrowdstrikeAgentId } from '../../../common/utils/crowdstrike_alert_check';
import type { Platform } from '../../../management/components/endpoint_responder/components/header_info/platforms';
import { useIsExperimentalFeatureEnabled } from '../../../common/hooks/use_experimental_features';
import { getSentinelOneAgentId } from '../../../common/utils/sentinelone_alert_check';
-import type { ThirdPartyAgentInfo } from '../../../../common/types';
import type {
ResponseActionAgentType,
EndpointCapabilities,
@@ -18,13 +19,13 @@ import type {
import { useGetEndpointDetails, useWithShowResponder } from '../../../management/hooks';
import { HostStatus } from '../../../../common/endpoint/types';
import {
+ CROWDSTRIKE_AGENT_ID_PROPERTY_MISSING,
HOST_ENDPOINT_UNENROLLED_TOOLTIP,
LOADING_ENDPOINT_DATA_TOOLTIP,
METADATA_API_ERROR_TOOLTIP,
NOT_FROM_ENDPOINT_HOST_TOOLTIP,
SENTINEL_ONE_AGENT_ID_PROPERTY_MISSING,
} from './translations';
-import { getFieldValue } from '../host_isolation/helpers';
export interface ResponderContextMenuItemProps {
endpointId: string;
@@ -33,32 +34,6 @@ export interface ResponderContextMenuItemProps {
eventData?: TimelineEventsDetailsItem[] | null;
}
-const getThirdPartyAgentInfo = (
- eventData: TimelineEventsDetailsItem[] | null
-): ThirdPartyAgentInfo => {
- return {
- agent: {
- id: getSentinelOneAgentId(eventData) || '',
- type: getFieldValue(
- { category: 'event', field: 'event.module' },
- eventData
- ) as ResponseActionAgentType,
- },
- host: {
- name: getFieldValue({ category: 'host', field: 'host.name' }, eventData),
- os: {
- name: getFieldValue({ category: 'host', field: 'host.os.name' }, eventData),
- family: getFieldValue({ category: 'host', field: 'host.os.family' }, eventData),
- version: getFieldValue({ category: 'host', field: 'host.os.version' }, eventData),
- },
- },
- lastCheckin: getFieldValue(
- { category: 'kibana', field: 'kibana.alert.last_detected' },
- eventData
- ),
- };
-};
-
/**
* This hook is used to get the data needed to show the context menu items for the responder
* actions.
@@ -85,6 +60,9 @@ export const useResponderActionData = ({
const isSentinelOneV1Enabled = useIsExperimentalFeatureEnabled(
'responseActionsSentinelOneV1Enabled'
);
+ const responseActionsCrowdstrikeManualHostIsolationEnabled = useIsExperimentalFeatureEnabled(
+ 'responseActionsCrowdstrikeManualHostIsolationEnabled'
+ );
const {
data: hostInfo,
isFetching,
@@ -105,6 +83,17 @@ export const useResponderActionData = ({
return [true, SENTINEL_ONE_AGENT_ID_PROPERTY_MISSING];
}
+ return [false, undefined];
+ case 'crowdstrike':
+ // Disable it if feature flag is disabled
+ if (!responseActionsCrowdstrikeManualHostIsolationEnabled) {
+ return [true, undefined];
+ }
+ // Event must have the property that identifies the agent id
+ if (!getCrowdstrikeAgentId(eventData ?? null)) {
+ return [true, CROWDSTRIKE_AGENT_ID_PROPERTY_MISSING];
+ }
+
return [false, undefined];
default:
@@ -152,11 +141,12 @@ export const useResponderActionData = ({
agentType,
isSentinelOneV1Enabled,
eventData,
+ responseActionsCrowdstrikeManualHostIsolationEnabled,
]);
const handleResponseActionsClick = useCallback(() => {
- if (!isEndpointHost) {
- const agentInfoFromAlert = getThirdPartyAgentInfo(eventData || null);
+ if (!isEndpointHost && eventData != null) {
+ const agentInfoFromAlert = getExternalEdrAgentInfo(eventData, agentType);
showResponseActionsConsole({
agentId: agentInfoFromAlert.agent.id,
agentType,
diff --git a/x-pack/plugins/security_solution/public/detections/components/host_isolation/index.tsx b/x-pack/plugins/security_solution/public/detections/components/host_isolation/index.tsx
index 6804ec9fcfc93..918de21b704f8 100644
--- a/x-pack/plugins/security_solution/public/detections/components/host_isolation/index.tsx
+++ b/x-pack/plugins/security_solution/public/detections/components/host_isolation/index.tsx
@@ -35,11 +35,6 @@ export const HostIsolationPanel = React.memo(
const sentinelOneAgentId = useMemo(() => getSentinelOneAgentId(details), [details]);
const crowdstrikeAgentId = useMemo(() => getCrowdstrikeAgentId(details), [details]);
- const hostName = useMemo(
- () => getFieldValue({ category: 'host', field: 'host.name' }, details),
- [details]
- );
-
const alertId = useMemo(
() => getFieldValue({ category: '_id', field: '_id' }, details),
[details]
@@ -62,6 +57,18 @@ export const HostIsolationPanel = React.memo(
[elasticAgentId, sentinelOneAgentId, crowdstrikeAgentId]
);
+ const hostName = useMemo(() => {
+ switch (agentType) {
+ case 'crowdstrike':
+ return getFieldValue(
+ { category: 'crowdstrike', field: 'crowdstrike.event.HostName' },
+ details
+ );
+ default:
+ return getFieldValue({ category: 'host', field: 'host.name' }, details);
+ }
+ }, [agentType, details]);
+
return isolateAction === 'isolateHost' ? (
render(
@@ -32,6 +35,8 @@ const renderPanelHeader = () =>
describe('', () => {
beforeEach(() => {
mockUseIsExperimentalFeatureEnabled.mockReturnValue(false);
+ mockIsAlertFromSentinelOneEvent.mockReturnValue(false);
+ mockIsAlertFromCrowdstrike.mockReturnValue(false);
});
it.each([
@@ -52,14 +57,35 @@ describe('', () => {
expect(getByTestId(FLYOUT_HEADER_TITLE_TEST_ID)).toHaveTextContent(title);
});
- it.each(['isolateHost', 'unisolateHost'])(
- 'should display beta badge on %s host message for SentinelOne alerts',
- (action) => {
+ it.each([
+ {
+ action: 'isolateHost',
+ alertCheck: mockIsAlertFromSentinelOneEvent,
+ description: 'SentinelOne',
+ },
+ {
+ action: 'unisolateHost',
+ alertCheck: mockIsAlertFromSentinelOneEvent,
+ description: 'SentinelOne',
+ },
+ {
+ action: 'isolateHost',
+ alertCheck: mockIsAlertFromCrowdstrike,
+ description: 'Crowdstrike',
+ },
+ {
+ action: 'unisolateHost',
+ alertCheck: mockIsAlertFromCrowdstrike,
+ description: 'Crowdstrike',
+ },
+ ])(
+ 'should display beta badge on $description alerts for %s host message',
+ ({ action, alertCheck }) => {
(useIsolateHostPanelContext as jest.Mock).mockReturnValue({
isolateAction: action,
});
mockUseIsExperimentalFeatureEnabled.mockReturnValue(true);
- mockIsAlertFromSentinelOneEvent.mockReturnValue(true);
+ alertCheck.mockReturnValue(true);
const { getByTestId } = renderPanelHeader();
@@ -68,14 +94,35 @@ describe('', () => {
}
);
- it.each(['isolateHost', 'unisolateHost'])(
- 'should not display beta badge on %s host message for non-SentinelOne alerts',
- (action) => {
+ it.each([
+ {
+ action: 'isolateHost',
+ alertCheck: mockIsAlertFromSentinelOneEvent,
+ description: 'SentinelOne',
+ },
+ {
+ action: 'unisolateHost',
+ alertCheck: mockIsAlertFromSentinelOneEvent,
+ description: 'SentinelOne',
+ },
+ {
+ action: 'isolateHost',
+ alertCheck: mockIsAlertFromCrowdstrike,
+ description: 'Crowdstrike',
+ },
+ {
+ action: 'unisolateHost',
+ alertCheck: mockIsAlertFromCrowdstrike,
+ description: 'Crowdstrike',
+ },
+ ])(
+ 'should not display beta badge on $description alerts for %s host message',
+ ({ action, alertCheck }) => {
(useIsolateHostPanelContext as jest.Mock).mockReturnValue({
isolateAction: action,
});
mockUseIsExperimentalFeatureEnabled.mockReturnValue(true);
- mockIsAlertFromSentinelOneEvent.mockReturnValue(false);
+ alertCheck.mockReturnValue(false);
const { getByTestId } = renderPanelHeader();
diff --git a/x-pack/plugins/security_solution/public/flyout/document_details/isolate_host/header.tsx b/x-pack/plugins/security_solution/public/flyout/document_details/isolate_host/header.tsx
index efe8e867966db..ead599d38e498 100644
--- a/x-pack/plugins/security_solution/public/flyout/document_details/isolate_host/header.tsx
+++ b/x-pack/plugins/security_solution/public/flyout/document_details/isolate_host/header.tsx
@@ -9,6 +9,7 @@ import { EuiBetaBadge, EuiFlexGroup, EuiFlexItem, EuiTitle } from '@elastic/eui'
import type { FC } from 'react';
import React from 'react';
import { FormattedMessage } from '@kbn/i18n-react';
+import { isAlertFromCrowdstrikeEvent } from '../../../common/utils/crowdstrike_alert_check';
import { TECHNICAL_PREVIEW, TECHNICAL_PREVIEW_TOOLTIP } from '../../../common/translations';
import { useIsExperimentalFeatureEnabled } from '../../../common/hooks/use_experimental_features';
import { isAlertFromSentinelOneEvent } from '../../../common/utils/sentinelone_alert_check';
@@ -26,6 +27,13 @@ export const PanelHeader: FC = () => {
'responseActionsSentinelOneV1Enabled'
);
+ const isAlertFromCrowdstrikeAlert = isAlertFromCrowdstrikeEvent({ data });
+ const responseActionsCrowdstrikeManualHostIsolationEnabled = useIsExperimentalFeatureEnabled(
+ 'responseActionsCrowdstrikeManualHostIsolationEnabled'
+ );
+ const showAsTechPreview =
+ (isSentinelOneV1Enabled && isSentinelOneAlert) ||
+ (responseActionsCrowdstrikeManualHostIsolationEnabled && isAlertFromCrowdstrikeAlert);
const title = (
@@ -41,7 +49,7 @@ export const PanelHeader: FC = () => {
/>
)}
- {isSentinelOneV1Enabled && isSentinelOneAlert && (
+ {showAsTechPreview && (
diff --git a/x-pack/plugins/security_solution/public/management/components/endpoint_responder/lib/console_commands_definition.ts b/x-pack/plugins/security_solution/public/management/components/endpoint_responder/lib/console_commands_definition.ts
index 61fb75cb52450..912f5104c27c1 100644
--- a/x-pack/plugins/security_solution/public/management/components/endpoint_responder/lib/console_commands_definition.ts
+++ b/x-pack/plugins/security_solution/public/management/components/endpoint_responder/lib/console_commands_definition.ts
@@ -504,6 +504,8 @@ export const getEndpointConsoleCommands = ({
switch (agentType) {
case 'sentinel_one':
return adjustCommandsForSentinelOne({ commandList: consoleCommands });
+ case 'crowdstrike':
+ return adjustCommandsForCrowdstrike({ commandList: consoleCommands });
default:
// agentType === endpoint: just returns the defined command list
return consoleCommands;
@@ -552,3 +554,44 @@ const adjustCommandsForSentinelOne = ({
return command;
});
};
+
+/** @private */
+const adjustCommandsForCrowdstrike = ({
+ commandList,
+}: {
+ commandList: CommandDefinition[];
+}): CommandDefinition[] => {
+ const featureFlags = ExperimentalFeaturesService.get();
+ const isHostIsolationEnabled = featureFlags.responseActionsCrowdstrikeManualHostIsolationEnabled;
+
+ const disableCommand = (command: CommandDefinition) => {
+ command.helpDisabled = true;
+ command.helpHidden = true;
+ command.validate = () =>
+ UPGRADE_AGENT_FOR_RESPONDER('crowdstrike', command.name as ConsoleResponseActionCommands);
+ };
+
+ return commandList.map((command) => {
+ const agentSupportsResponseAction =
+ command.name === 'status'
+ ? false
+ : isActionSupportedByAgentType(
+ 'crowdstrike',
+ RESPONSE_CONSOLE_COMMAND_TO_API_COMMAND_MAP[
+ command.name as ConsoleResponseActionCommands
+ ],
+ 'manual'
+ );
+
+ // If command is not supported by Crowdstrike - disable it
+ if (
+ !agentSupportsResponseAction ||
+ (command.name === 'isolate' && !isHostIsolationEnabled) ||
+ (command.name === 'release' && !isHostIsolationEnabled)
+ ) {
+ disableCommand(command);
+ }
+
+ return command;
+ });
+};
diff --git a/x-pack/plugins/security_solution/public/management/components/endpoint_responder/lib/integration_tests/console_commands_definition.test.tsx b/x-pack/plugins/security_solution/public/management/components/endpoint_responder/lib/integration_tests/console_commands_definition.test.tsx
index 3cc73b1ef7854..cff88c4e9854d 100644
--- a/x-pack/plugins/security_solution/public/management/components/endpoint_responder/lib/integration_tests/console_commands_definition.test.tsx
+++ b/x-pack/plugins/security_solution/public/management/components/endpoint_responder/lib/integration_tests/console_commands_definition.test.tsx
@@ -15,24 +15,23 @@ import { EndpointMetadataGenerator } from '../../../../../../common/endpoint/dat
import { getEndpointPrivilegesInitialStateMock } from '../../../../../common/components/user_privileges/endpoint/mocks';
import { sortBy } from 'lodash';
import { HELP_GROUPS } from '../console_commands_definition';
+import { ExperimentalFeaturesService } from '../../../../../common/experimental_features_service';
+import type { CommandDefinition } from '../../../console';
+import type { HostMetadataInterface } from '../../../../../../common/endpoint/types';
+
+jest.mock('../../../../../common/experimental_features_service');
describe('When displaying Endpoint Response Actions', () => {
let render: ConsoleTestSetup['renderConsole'];
let renderResult: ReturnType;
let consoleSelectors: ConsoleTestSetup['selectors'];
let helpPanelSelectors: HelpSidePanelSelectorsAndActions;
+ let commands: CommandDefinition[];
+ let endpointMetadata: HostMetadataInterface;
beforeEach(() => {
const testSetup = getConsoleTestSetup();
-
- const endpointMetadata = new EndpointMetadataGenerator().generate();
- const commands = getEndpointConsoleCommands({
- agentType: 'endpoint',
- endpointAgentId: '123',
- endpointCapabilities: endpointMetadata.Endpoint.capabilities ?? [],
- endpointPrivileges: getEndpointPrivilegesInitialStateMock(),
- });
-
+ endpointMetadata = new EndpointMetadataGenerator().generate();
consoleSelectors = testSetup.selectors;
render = (props = { commands }) => {
renderResult = testSetup.renderConsole(props);
@@ -42,31 +41,118 @@ describe('When displaying Endpoint Response Actions', () => {
};
});
- it('should display expected help groups', () => {
- render();
- consoleSelectors.openHelpPanel();
+ describe('for agent type endpoint', () => {
+ beforeEach(() => {
+ (ExperimentalFeaturesService.get as jest.Mock).mockReturnValueOnce({
+ responseActionUploadEnabled: true,
+ });
+ commands = getEndpointConsoleCommands({
+ agentType: 'endpoint',
+ endpointAgentId: '123',
+ endpointCapabilities: endpointMetadata.Endpoint.capabilities ?? [],
+ endpointPrivileges: getEndpointPrivilegesInitialStateMock(),
+ });
+ });
+
+ it('should display expected help groups', () => {
+ render({ commands });
+ consoleSelectors.openHelpPanel();
+
+ expect(helpPanelSelectors.getHelpGroupLabels()).toEqual([
+ ...sortBy(Object.values(HELP_GROUPS), 'position').map((group) => group.label),
+ 'Supporting commands & parameters',
+ ]);
+ });
+
+ it('should display response action commands in the help panel in expected order', () => {
+ render({ commands });
+ consoleSelectors.openHelpPanel();
+ const commandsInPanel = helpPanelSelectors.getHelpCommandNames(
+ HELP_GROUPS.responseActions.label
+ );
- expect(helpPanelSelectors.getHelpGroupLabels()).toEqual([
- ...sortBy(Object.values(HELP_GROUPS), 'position').map((group) => group.label),
- 'Supporting commands & parameters',
- ]);
+ expect(commandsInPanel).toEqual([
+ 'isolate',
+ 'release',
+ 'status',
+ 'processes',
+ 'kill-process --pid',
+ 'suspend-process --pid',
+ 'get-file --path',
+ 'execute --command',
+ 'upload --file',
+ ]);
+ });
});
- it('should display response action commands in the help panel in expected order', () => {
- render();
- consoleSelectors.openHelpPanel();
- const commands = helpPanelSelectors.getHelpCommandNames(HELP_GROUPS.responseActions.label);
-
- expect(commands).toEqual([
- 'isolate',
- 'release',
- 'status',
- 'processes',
- 'kill-process --pid',
- 'suspend-process --pid',
- 'get-file --path',
- 'execute --command',
- 'upload --file',
- ]);
+ describe('for agent type sentinel_one', () => {
+ beforeEach(() => {
+ (ExperimentalFeaturesService.get as jest.Mock).mockReturnValue({
+ responseActionsCrowdstrikeManualHostIsolationEnabled: true,
+ responseActionsSentinelOneV1Enabled: true,
+ responseActionsSentinelOneGetFileEnabled: true,
+ });
+
+ commands = getEndpointConsoleCommands({
+ agentType: 'sentinel_one',
+ endpointAgentId: '123',
+ endpointCapabilities: endpointMetadata.Endpoint.capabilities ?? [],
+ endpointPrivileges: getEndpointPrivilegesInitialStateMock(),
+ });
+ });
+
+ it('should display expected help groups', () => {
+ render({ commands });
+ consoleSelectors.openHelpPanel();
+
+ expect(helpPanelSelectors.getHelpGroupLabels()).toEqual([
+ ...sortBy(Object.values(HELP_GROUPS), 'position').map((group) => group.label),
+ 'Supporting commands & parameters',
+ ]);
+ });
+
+ it('should display response action commands in the help panel in expected order', () => {
+ render({ commands });
+ consoleSelectors.openHelpPanel();
+ const commandsInPanel = helpPanelSelectors.getHelpCommandNames(
+ HELP_GROUPS.responseActions.label
+ );
+
+ expect(commandsInPanel).toEqual(['isolate', 'release', 'get-file --path']);
+ });
+ });
+
+ describe('for agent type crowdstrike', () => {
+ beforeEach(() => {
+ (ExperimentalFeaturesService.get as jest.Mock).mockReturnValue({
+ responseActionsCrowdstrikeManualHostIsolationEnabled: true,
+ });
+ commands = getEndpointConsoleCommands({
+ agentType: 'crowdstrike',
+ endpointAgentId: '123',
+ endpointCapabilities: endpointMetadata.Endpoint.capabilities ?? [],
+ endpointPrivileges: getEndpointPrivilegesInitialStateMock(),
+ });
+ });
+
+ it('should display expected help groups', () => {
+ render({ commands });
+ consoleSelectors.openHelpPanel();
+
+ expect(helpPanelSelectors.getHelpGroupLabels()).toEqual([
+ ...sortBy(Object.values(HELP_GROUPS), 'position').map((group) => group.label),
+ 'Supporting commands & parameters',
+ ]);
+ });
+
+ it('should display response action commands in the help panel in expected order', () => {
+ render({ commands });
+ consoleSelectors.openHelpPanel();
+ const commandsInPanel = helpPanelSelectors.getHelpCommandNames(
+ HELP_GROUPS.responseActions.label
+ );
+
+ expect(commandsInPanel).toEqual(['isolate', 'release']);
+ });
});
});
diff --git a/x-pack/plugins/security_solution/public/management/hooks/use_with_show_responder.tsx b/x-pack/plugins/security_solution/public/management/hooks/use_with_show_responder.tsx
index 8e0e1d213a73b..b820e75dad97c 100644
--- a/x-pack/plugins/security_solution/public/management/hooks/use_with_show_responder.tsx
+++ b/x-pack/plugins/security_solution/public/management/hooks/use_with_show_responder.tsx
@@ -51,11 +51,18 @@ export const useWithShowResponder = (): ShowResponseActionsConsole => {
const isSentinelOneV1Enabled = useIsExperimentalFeatureEnabled(
'responseActionsSentinelOneV1Enabled'
);
+ const responseActionsCrowdstrikeManualHostIsolationEnabled = useIsExperimentalFeatureEnabled(
+ 'responseActionsCrowdstrikeManualHostIsolationEnabled'
+ );
const agentStatusClientEnabled = useIsExperimentalFeatureEnabled('agentStatusClientEnabled');
return useCallback(
(props: ResponderInfoProps) => {
const { agentId, agentType, capabilities, hostName, platform } = props;
+ const isExternalEdr =
+ (isSentinelOneV1Enabled && agentType === 'sentinel_one') ||
+ (responseActionsCrowdstrikeManualHostIsolationEnabled && agentType === 'crowdstrike');
+
// If no authz, just exit and log something to the console
if (agentType === 'endpoint' && !endpointPrivileges.canAccessResponseConsole) {
window.console.error(new Error(`Access denied to ${agentType} response actions console`));
@@ -112,7 +119,7 @@ export const useWithShowResponder = (): ShowResponseActionsConsole => {
},
consoleProps,
PageTitleComponent: () => {
- if (isSentinelOneV1Enabled && agentType === 'sentinel_one') {
+ if (isExternalEdr) {
return (
{RESPONDER_PAGE_TITLE}
@@ -145,11 +152,12 @@ export const useWithShowResponder = (): ShowResponseActionsConsole => {
}
},
[
+ isSentinelOneV1Enabled,
+ responseActionsCrowdstrikeManualHostIsolationEnabled,
endpointPrivileges,
isEnterpriseLicense,
consoleManager,
agentStatusClientEnabled,
- isSentinelOneV1Enabled,
]
);
};
diff --git a/x-pack/plugins/stack_connectors/common/crowdstrike/schema.ts b/x-pack/plugins/stack_connectors/common/crowdstrike/schema.ts
index d19deabd6aeda..1bd1ac46f31fc 100644
--- a/x-pack/plugins/stack_connectors/common/crowdstrike/schema.ts
+++ b/x-pack/plugins/stack_connectors/common/crowdstrike/schema.ts
@@ -235,6 +235,7 @@ export const CrowdstrikeHostActionsParamsSchema = schema.object({
actionParameters: schema.maybe(schema.object({}, { unknowns: 'allow' })),
ids: schema.arrayOf(schema.string()),
alertIds: schema.maybe(schema.arrayOf(schema.string())),
+ comment: schema.maybe(schema.string()),
});
export const CrowdstrikeGetAgentsParamsSchema = schema.object({
From 4c1dacaff540bfbd053d5e3bf98b97c93058cc9c Mon Sep 17 00:00:00 2001
From: Alexey Antonov
Date: Mon, 3 Jun 2024 19:00:22 +0300
Subject: [PATCH 09/82] fix: [Obs Infrastructure > Hosts][KEYBOARD]: Logs tab
at the bottom of the page cannot be scrolled by keyboard (#184003)
Closes: https://github.com/elastic/observability-dev/issues/3421
Closes: https://github.com/elastic/observability-dev/issues/3407
Closes: https://github.com/elastic/observability-dev/issues/3412
Closes: https://github.com/elastic/observability-dev/issues/3418
Closes: https://github.com/elastic/observability-dev/issues/3421
Closes: https://github.com/elastic/observability-dev/issues/3424
## Summary
The Obs Applications > Host Detail page has aLogs table that includes a
hover-only detail view. This needs to also be keyboard focusable to be
available to all users. Screenshot attached below.
## Steps to recreate
1. Open the [Obs
Hosts](https://issue-serverless-bdwqw-pr183659-f2d99b.kb.eu-west-aws.qa.elastic.cloud/app/metrics/hosts)
view
2. Click on one of the host name links
3. When the Host Detail opens, click on the Logs tab
4. Use the Tab key to move through the table
5. Verify the table row [ ... ] never appears when navigating by
keyboard
## What was changed?:
All the above-mentioned errors use a single component`
x-pack/plugins/observability_solution/logs_shared/public/components/logging/log_text_stream`
and can be fixed within it.
1. tab-index has been added to vertical_scroll_panel.tsx.
2. The logic displaying the button with menu has been updated using CSS.
---
.../logging/log_text_stream/scrollable_log_text_stream_view.tsx | 2 +-
.../logging/log_text_stream/vertical_scroll_panel.tsx | 2 ++
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/x-pack/plugins/observability_solution/logs_shared/public/components/logging/log_text_stream/scrollable_log_text_stream_view.tsx b/x-pack/plugins/observability_solution/logs_shared/public/components/logging/log_text_stream/scrollable_log_text_stream_view.tsx
index 959a2d99924db..fdb0d6a88f8a5 100644
--- a/x-pack/plugins/observability_solution/logs_shared/public/components/logging/log_text_stream/scrollable_log_text_stream_view.tsx
+++ b/x-pack/plugins/observability_solution/logs_shared/public/components/logging/log_text_stream/scrollable_log_text_stream_view.tsx
@@ -204,7 +204,7 @@ export class ScrollableLogTextStreamView extends React.PureComponent<
onVisibleChildrenChange={this.handleVisibleChildrenChange}
target={targetId}
hideScrollbar={hideScrollbar}
- data-test-subj={'logStream'}
+ data-test-subj="logStream"
isLocked={isScrollLocked}
entriesCount={items.length}
>
diff --git a/x-pack/plugins/observability_solution/logs_shared/public/components/logging/log_text_stream/vertical_scroll_panel.tsx b/x-pack/plugins/observability_solution/logs_shared/public/components/logging/log_text_stream/vertical_scroll_panel.tsx
index 6f0313ce459f0..ec8d666ef9b87 100644
--- a/x-pack/plugins/observability_solution/logs_shared/public/components/logging/log_text_stream/vertical_scroll_panel.tsx
+++ b/x-pack/plugins/observability_solution/logs_shared/public/components/logging/log_text_stream/vertical_scroll_panel.tsx
@@ -248,6 +248,8 @@ export class VerticalScrollPanel extends React.PureComponent<
scrollbarOffset={scrollbarOffset}
onScroll={this.handleScroll}
ref={this.scrollRef}
+ tabIndex={0}
+ className="eui-scrollBar"
>
{typeof children === 'function' ? children(this.registerChild) : null}
From f10ffdce843db5a1d2af1747984dfb4f37f61bad Mon Sep 17 00:00:00 2001
From: Marco Vettorello
Date: Mon, 3 Jun 2024 18:10:51 +0200
Subject: [PATCH 10/82] [Visualize] Unskip function test heatmap (#184605)
## Summary
unskip functional test
---
test/functional/apps/visualize/group2/_heatmap_chart.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/test/functional/apps/visualize/group2/_heatmap_chart.ts b/test/functional/apps/visualize/group2/_heatmap_chart.ts
index 09439635ebc5e..2f9ecc5a89d06 100644
--- a/test/functional/apps/visualize/group2/_heatmap_chart.ts
+++ b/test/functional/apps/visualize/group2/_heatmap_chart.ts
@@ -16,7 +16,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
const PageObjects = getPageObjects(['visualize', 'visEditor', 'visChart', 'timePicker']);
// FLAKY: https://github.com/elastic/kibana/issues/181884
- describe.skip('heatmap chart', function indexPatternCreation() {
+ describe('heatmap chart', function indexPatternCreation() {
const vizName1 = 'Visualization HeatmapChart';
let isNewChartsLibraryEnabled = false;
From c32f283c744c9eeefd18d6b56e0ceea294901813 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Yulia=20=C4=8Cech?=
<6585477+yuliacech@users.noreply.github.com>
Date: Mon, 3 Jun 2024 18:43:01 +0200
Subject: [PATCH 11/82] [Console Monaco migration] Autocomplete fixes (#184032)
## Summary
Fixes https://github.com/elastic/kibana/issues/183421
This PR fixes following issues in the autocomplete suggestions for
request body:
- Conditional template
- Display suggestions for boolean values
- Display async loaded suggestions
- Move the cursor inside an empty array/object after inserting it as a
template
### How to test
- Set the config for Monaco migration `console.dev.enableMonaco: true`
in `/config/kibana.dev.yml`
- Start ES and Kibana with `yarn es snapshot` and `yarn start`
- Conditional template
- Try creating different types of repos and check that the "settings"
property changes its template for each type
- Check autocomplete suggestions of any boolean property, for example
for the request `GET _search` the property `explain`
- Check asynchronously loaded suggestions, for example `fields` property
for the request `GET _search`
- Check templates with empty objects/arrays, for example `query` in the
`GET _search` request
### Checklist
Delete any items that are not applicable to this PR.
- [ ] Any text added follows [EUI's writing
guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses
sentence case text and includes [i18n
support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)
- [ ]
[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)
was added for features that require explanation or tutorials
- [ ] [Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios
- [ ] [Flaky Test
Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was
used on any tests changed
- [ ] Any UI touched in this PR is usable by keyboard only (learn more
about [keyboard accessibility](https://webaim.org/techniques/keyboard/))
- [ ] Any UI touched in this PR does not create any new axe failures
(run axe in browser:
[FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/),
[Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))
- [ ] If a plugin configuration key changed, check if it needs to be
allowlisted in the cloud and added to the [docker
list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)
- [ ] This renders correctly on smaller devices using a responsive
layout. (You can test this [in your
browser](https://www.browserstack.com/guide/responsive-testing-on-local-server))
- [ ] This was checked for [cross-browser
compatibility](https://www.elastic.co/support/matrix#matrix_browsers)
### Risk Matrix
Delete this section if it is not applicable to this PR.
Before closing this PR, invite QA, stakeholders, and other developers to
identify risks that should be tested prior to the change/feature
release.
When forming the risk matrix, consider some of the following examples
and how they may potentially impact the change:
| Risk | Probability | Severity | Mitigation/Notes |
|---------------------------|-------------|----------|-------------------------|
| Multiple Spaces—unexpected behavior in non-default Kibana Space.
| Low | High | Integration tests will verify that all features are still
supported in non-default Kibana Space and when user switches between
spaces. |
| Multiple nodes—Elasticsearch polling might have race conditions
when multiple Kibana nodes are polling for the same tasks. | High | Low
| Tasks are idempotent, so executing them multiple times will not result
in logical error, but will degrade performance. To test for this case we
add plenty of unit tests around this logic and document manual testing
procedure. |
| Code should gracefully handle cases when feature X or plugin Y are
disabled. | Medium | High | Unit tests will verify that any feature flag
or plugin combination still results in our service operational. |
| [See more potential risk
examples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx) |
### For maintainers
- [ ] This was checked for breaking API changes and was [labeled
appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)
---
.../monaco/monaco_editor_actions_provider.ts | 35 +++-
.../editor/monaco/utils/autocomplete_utils.ts | 182 ++++++++++++------
.../editor/monaco/utils/tokens_utils.test.ts | 4 +
.../editor/monaco/utils/tokens_utils.ts | 2 +-
.../public/lib/autocomplete/autocomplete.ts | 9 +-
.../console/public/lib/autocomplete/types.ts | 5 +-
6 files changed, 170 insertions(+), 67 deletions(-)
diff --git a/src/plugins/console/public/application/containers/editor/monaco/monaco_editor_actions_provider.ts b/src/plugins/console/public/application/containers/editor/monaco/monaco_editor_actions_provider.ts
index 8001966907272..f0bc4b34d899b 100644
--- a/src/plugins/console/public/application/containers/editor/monaco/monaco_editor_actions_provider.ts
+++ b/src/plugins/console/public/application/containers/editor/monaco/monaco_editor_actions_provider.ts
@@ -7,7 +7,7 @@
*/
import { CSSProperties, Dispatch } from 'react';
-import { debounce } from 'lodash';
+import { debounce, range } from 'lodash';
import { ConsoleParsedRequestsProvider, getParsedRequestsProvider, monaco } from '@kbn/monaco';
import { i18n } from '@kbn/i18n';
import { toMountPoint } from '@kbn/react-kibana-mount';
@@ -347,7 +347,7 @@ export class MonacoEditorActionsProvider {
model: monaco.editor.ITextModel,
position: monaco.Position,
context: monaco.languages.CompletionContext
- ) {
+ ): Promise {
// determine autocomplete type
const autocompleteType = await this.getAutocompleteType(model, position);
if (!autocompleteType) {
@@ -384,7 +384,12 @@ export class MonacoEditorActionsProvider {
position.lineNumber
);
const requestStartLineNumber = requests[0].startLineNumber;
- const suggestions = getBodyCompletionItems(model, position, requestStartLineNumber);
+ const suggestions = await getBodyCompletionItems(
+ model,
+ position,
+ requestStartLineNumber,
+ this
+ );
return {
suggestions,
};
@@ -394,12 +399,12 @@ export class MonacoEditorActionsProvider {
suggestions: [],
};
}
- public provideCompletionItems(
+ public async provideCompletionItems(
model: monaco.editor.ITextModel,
position: monaco.Position,
context: monaco.languages.CompletionContext,
token: monaco.CancellationToken
- ): monaco.languages.ProviderResult {
+ ): Promise {
return this.getSuggestions(model, position, context);
}
@@ -565,4 +570,24 @@ export class MonacoEditorActionsProvider {
this.editor.setPosition({ lineNumber: firstRequestAfter.endLineNumber, column: 1 });
}
}
+
+ /*
+ * This function is to get an array of line contents
+ * from startLine to endLine including both line numbers
+ */
+ public getLines(startLine: number, endLine: number): string[] {
+ const model = this.editor.getModel();
+ if (!model) {
+ return [];
+ }
+ // range returns an array not including the end of the range, so we need to add 1
+ return range(startLine, endLine + 1).map((lineNumber) => model.getLineContent(lineNumber));
+ }
+
+ /*
+ * This function returns the current position of the cursor
+ */
+ public getCurrentPosition(): monaco.IPosition {
+ return this.editor.getPosition() ?? { lineNumber: 1, column: 1 };
+ }
}
diff --git a/src/plugins/console/public/application/containers/editor/monaco/utils/autocomplete_utils.ts b/src/plugins/console/public/application/containers/editor/monaco/utils/autocomplete_utils.ts
index 5302bf90d82c0..9f8a6e5efd99c 100644
--- a/src/plugins/console/public/application/containers/editor/monaco/utils/autocomplete_utils.ts
+++ b/src/plugins/console/public/application/containers/editor/monaco/utils/autocomplete_utils.ts
@@ -7,13 +7,18 @@
*/
import { monaco } from '@kbn/monaco';
+import { MonacoEditorActionsProvider } from '../monaco_editor_actions_provider';
import {
getEndpointBodyCompleteComponents,
getGlobalAutocompleteComponents,
getTopLevelUrlCompleteComponents,
getUnmatchedEndpointComponents,
} from '../../../../../lib/kb';
-import { AutoCompleteContext, ResultTerm } from '../../../../../lib/autocomplete/types';
+import {
+ AutoCompleteContext,
+ type DataAutoCompleteRulesOneOf,
+ ResultTerm,
+} from '../../../../../lib/autocomplete/types';
import { populateContext } from '../../../../../lib/autocomplete/engine';
import type { EditorRequest } from '../types';
import { parseBody, parseLine, parseUrl } from './tokens_utils';
@@ -133,8 +138,8 @@ export const getUrlPathCompletionItems = (
// map autocomplete items to completion items
.map((item) => {
return {
- label: item.name!,
- insertText: item.name!,
+ label: item.name + '',
+ insertText: item.name + '',
detail: item.meta ?? i18nTexts.endpoint,
// the kind is only used to configure the icon
kind: monaco.languages.CompletionItemKind.Constant,
@@ -195,8 +200,8 @@ export const getUrlParamsCompletionItems = (
// map autocomplete items to completion items
.map((item) => {
return {
- label: item.name!,
- insertText: item.name!,
+ label: item.name + '',
+ insertText: item.name + '',
detail: item.meta ?? i18nTexts.param,
// the kind is only used to configure the icon
kind: monaco.languages.CompletionItemKind.Constant,
@@ -211,11 +216,12 @@ export const getUrlParamsCompletionItems = (
/*
* This function returns an array of completion items for the request body params
*/
-export const getBodyCompletionItems = (
+export const getBodyCompletionItems = async (
model: monaco.editor.ITextModel,
position: monaco.Position,
- requestStartLineNumber: number
-): monaco.languages.CompletionItem[] => {
+ requestStartLineNumber: number,
+ editor: MonacoEditorActionsProvider
+): Promise => {
const { lineNumber, column } = position;
// get the content on the method+url line
@@ -244,62 +250,91 @@ export const getBodyCompletionItems = (
} else {
components = getUnmatchedEndpointComponents();
}
- populateContext(bodyTokens, context, undefined, true, components);
-
- if (context.autoCompleteSet && context.autoCompleteSet.length > 0) {
- const wordUntilPosition = model.getWordUntilPosition(position);
- // if there is " after the cursor, replace it
- let endColumn = position.column;
- const charAfterPosition = model.getValueInRange({
- startLineNumber: position.lineNumber,
- startColumn: position.column,
- endLineNumber: position.lineNumber,
- endColumn: position.column + 1,
- });
- if (charAfterPosition === '"') {
- endColumn = endColumn + 1;
- }
- const range = {
- startLineNumber: position.lineNumber,
- // replace the whole word with the suggestion
- startColumn: wordUntilPosition.startColumn,
- endLineNumber: position.lineNumber,
- endColumn,
- };
- return (
- context.autoCompleteSet
- // filter autocomplete items without a name
- .filter(({ name }) => Boolean(name))
- // map autocomplete items to completion items
- .map((item) => {
- const suggestion = {
- // convert name to a string
- label: item.name + '',
- insertText: getInsertText(item, bodyContent),
- detail: i18nTexts.api,
- // the kind is only used to configure the icon
- kind: monaco.languages.CompletionItemKind.Constant,
- range,
- insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
- };
- return suggestion;
- })
- );
+ context.editor = editor;
+ context.requestStartRow = requestStartLineNumber;
+ populateContext(bodyTokens, context, editor, true, components);
+ if (!context) {
+ return [];
}
- return [];
+ if (context.asyncResultsState?.isLoading && context.asyncResultsState) {
+ const results = await context.asyncResultsState.results;
+ return getSuggestions(model, position, results, context, bodyContent);
+ }
+
+ return getSuggestions(model, position, context.autoCompleteSet ?? [], context, bodyContent);
};
+const getSuggestions = (
+ model: monaco.editor.ITextModel,
+ position: monaco.Position,
+ autocompleteSet: ResultTerm[],
+ context: AutoCompleteContext,
+ bodyContent: string
+) => {
+ const wordUntilPosition = model.getWordUntilPosition(position);
+ // if there is " after the cursor, replace it
+ let endColumn = position.column;
+ const charAfterPosition = model.getValueInRange({
+ startLineNumber: position.lineNumber,
+ startColumn: position.column,
+ endLineNumber: position.lineNumber,
+ endColumn: position.column + 1,
+ });
+ if (charAfterPosition === '"') {
+ endColumn = endColumn + 1;
+ }
+ const range = {
+ startLineNumber: position.lineNumber,
+ // replace the whole word with the suggestion
+ startColumn: wordUntilPosition.startColumn,
+ endLineNumber: position.lineNumber,
+ endColumn,
+ };
+ return (
+ autocompleteSet
+ // filter out items that don't have name
+ .filter(({ name }) => name !== undefined)
+ // map autocomplete items to completion items
+ .map((item) => {
+ const suggestion = {
+ // convert name to a string
+ label: item.name + '',
+ insertText: getInsertText(item, bodyContent, context),
+ detail: i18nTexts.api,
+ // the kind is only used to configure the icon
+ kind: monaco.languages.CompletionItemKind.Constant,
+ range,
+ insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
+ };
+ return suggestion;
+ })
+ );
+};
const getInsertText = (
{ name, insertValue, template, value }: ResultTerm,
- bodyContent: string
+ bodyContent: string,
+ context: AutoCompleteContext
): string => {
- let insertText = bodyContent.endsWith('"') ? '' : '"';
- if (insertValue && insertValue !== '{' && insertValue !== '[') {
- insertText += `${insertValue}"`;
+ if (name === undefined) {
+ return '';
+ }
+ let insertText = '';
+ if (typeof name === 'string') {
+ insertText = bodyContent.endsWith('"') ? '' : '"';
+ if (insertValue && insertValue !== '{' && insertValue !== '[') {
+ insertText += `${insertValue}"`;
+ } else {
+ insertText += `${name}"`;
+ }
} else {
- insertText += `${name}"`;
+ insertText = name + '';
}
+
// check if there is template to add
+ const conditionalTemplate = getConditionalTemplate(name, bodyContent, context.endpoint);
+ if (conditionalTemplate) {
+ template = conditionalTemplate;
+ }
if (template !== undefined) {
let templateLines;
const { __raw, value: templateValue } = template;
@@ -314,5 +349,42 @@ const getInsertText = (
} else if (value === '[') {
insertText += '[]';
}
+ // the string $0 is used to move the cursor between empty curly/square brackets
+ if (insertText.endsWith('{}')) {
+ insertText = insertText.substring(0, insertText.length - 2) + '{$0}';
+ }
+ if (insertText.endsWith('[]')) {
+ insertText = insertText.substring(0, insertText.length - 2) + '[$0]';
+ }
return insertText;
};
+
+const getConditionalTemplate = (
+ name: string | boolean,
+ bodyContent: string,
+ endpoint: AutoCompleteContext['endpoint']
+) => {
+ if (typeof name !== 'string' || !endpoint || !endpoint.data_autocomplete_rules) {
+ return;
+ }
+ // get the autocomplete rules for the request body
+ const { data_autocomplete_rules: autocompleteRules } = endpoint;
+ // get the rules for this property name
+ const rules = autocompleteRules[name];
+ // check if the rules have "__one_of" property
+ if (!rules || typeof rules !== 'object' || !('__one_of' in rules)) {
+ return;
+ }
+ const oneOfRules = rules.__one_of as DataAutoCompleteRulesOneOf[];
+ // try to match one of the rules to the body content
+ const matchedRule = oneOfRules.find((rule) => {
+ if (rule.__condition && rule.__condition.lines_regex) {
+ return new RegExp(rule.__condition.lines_regex, 'm').test(bodyContent);
+ }
+ return false;
+ });
+ // use the template from the matched rule
+ if (matchedRule && matchedRule.__template) {
+ return matchedRule.__template;
+ }
+};
diff --git a/src/plugins/console/public/application/containers/editor/monaco/utils/tokens_utils.test.ts b/src/plugins/console/public/application/containers/editor/monaco/utils/tokens_utils.test.ts
index 56d9dea22b743..600b5f4a98e4a 100644
--- a/src/plugins/console/public/application/containers/editor/monaco/utils/tokens_utils.test.ts
+++ b/src/plugins/console/public/application/containers/editor/monaco/utils/tokens_utils.test.ts
@@ -118,6 +118,10 @@ describe('tokens_utils', () => {
value: '{"property1":{"nested1":"value","nested2":{}},"',
tokens: ['{'],
},
+ {
+ value: '{\n "explain": false,\n "',
+ tokens: ['{'],
+ },
];
for (const testCase of testCases) {
const { value, tokens } = testCase;
diff --git a/src/plugins/console/public/application/containers/editor/monaco/utils/tokens_utils.ts b/src/plugins/console/public/application/containers/editor/monaco/utils/tokens_utils.ts
index 76e6e9672252f..f52a0bb6a9079 100644
--- a/src/plugins/console/public/application/containers/editor/monaco/utils/tokens_utils.ts
+++ b/src/plugins/console/public/application/containers/editor/monaco/utils/tokens_utils.ts
@@ -228,7 +228,7 @@ export const parseBody = (value: string): string[] => {
break;
}
case 'f': {
- if (peek(1) === 'a' && peek(2) === 'l' && peek(3) === 's' && peek(3) === 'e') {
+ if (peek(1) === 'a' && peek(2) === 'l' && peek(3) === 's' && peek(4) === 'e') {
next();
next();
next();
diff --git a/src/plugins/console/public/lib/autocomplete/autocomplete.ts b/src/plugins/console/public/lib/autocomplete/autocomplete.ts
index bdb2a16c879ab..d6d2a8e711f13 100644
--- a/src/plugins/console/public/lib/autocomplete/autocomplete.ts
+++ b/src/plugins/console/public/lib/autocomplete/autocomplete.ts
@@ -799,7 +799,8 @@ export default function ({
// if not on the first line
if (context.rangeToReplace && context.rangeToReplace.start?.lineNumber > 1) {
const prevTokenLineNumber = position.lineNumber;
- const line = context.editor?.getLineValue(prevTokenLineNumber) ?? '';
+ const editorFromContext = context.editor as CoreEditor | undefined;
+ const line = editorFromContext?.getLineValue(prevTokenLineNumber) ?? '';
const prevLineLength = line.length;
const linesToEnter = context.rangeToReplace.end.lineNumber - prevTokenLineNumber;
@@ -1188,7 +1189,7 @@ export default function ({
context: AutoCompleteContext;
completer?: { insertMatch: (v: unknown) => void };
} = {
- value: term.name,
+ value: term.name + '',
meta: 'API',
score: 0,
context,
@@ -1206,8 +1207,8 @@ export default function ({
);
terms.sort(function (
- t1: { score: number; name?: string },
- t2: { score: number; name?: string }
+ t1: { score: number; name?: string | boolean },
+ t2: { score: number; name?: string | boolean }
) {
/* score sorts from high to low */
if (t1.score > t2.score) {
diff --git a/src/plugins/console/public/lib/autocomplete/types.ts b/src/plugins/console/public/lib/autocomplete/types.ts
index 7d1fb383f52a5..58af891488695 100644
--- a/src/plugins/console/public/lib/autocomplete/types.ts
+++ b/src/plugins/console/public/lib/autocomplete/types.ts
@@ -6,13 +6,14 @@
* Side Public License, v 1.
*/
+import { MonacoEditorActionsProvider } from '../../application/containers/editor/monaco/monaco_editor_actions_provider';
import { CoreEditor, Range, Token } from '../../types';
export interface ResultTerm {
meta?: string;
context?: AutoCompleteContext;
insertValue?: string;
- name?: string;
+ name?: string | boolean;
value?: string;
score?: number;
template?: { __raw?: boolean; value?: string; [key: string]: unknown };
@@ -53,7 +54,7 @@ export interface AutoCompleteContext {
replacingToken?: boolean;
rangeToReplace?: Range;
autoCompleteType?: null | string;
- editor?: CoreEditor;
+ editor?: CoreEditor | MonacoEditorActionsProvider;
/**
* The tokenized user input that prompted the current autocomplete at the cursor. This can be out of sync with
From f9e30fa32823c26765b0b80ac54978aec3d9f34c Mon Sep 17 00:00:00 2001
From: Luke G <11671118+lgestc@users.noreply.github.com>
Date: Mon, 3 Jun 2024 19:30:41 +0200
Subject: [PATCH 12/82] transition sourcerer code ownership to threat hunting
investigations (#184666)
## Summary
All this PR does is it changes the Sourcerer code ownership to threat
hunting investigations team.
---
.github/CODEOWNERS | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index b7c88c311d0b8..e9664ea90461b 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -1548,7 +1548,7 @@ x-pack/test/security_solution_cypress/cypress/tasks/expandable_flyout @elastic/
/x-pack/plugins/security_solution/common/cti @elastic/security-detection-engine
/x-pack/plugins/security_solution/common/field_maps @elastic/security-detection-engine
-/x-pack/plugins/security_solution/public/common/components/sourcerer @elastic/security-detection-engine
+/x-pack/plugins/security_solution/public/sourcerer @elastic/security-threat-hunting-investigations
/x-pack/plugins/security_solution/public/detection_engine/rule_creation @elastic/security-detection-engine
/x-pack/plugins/security_solution/public/detection_engine/rule_creation_ui @elastic/security-detection-engine
/x-pack/plugins/security_solution/public/detection_engine/rule_exceptions @elastic/security-detection-engine
@@ -1564,7 +1564,6 @@ x-pack/test/security_solution_cypress/cypress/tasks/expandable_flyout @elastic/
/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types @elastic/security-detection-engine
/x-pack/plugins/security_solution/server/lib/detection_engine/routes/index @elastic/security-detection-engine
/x-pack/plugins/security_solution/server/lib/detection_engine/routes/signals @elastic/security-detection-engine
-/x-pack/plugins/security_solution/server/lib/sourcerer @elastic/security-detection-engine
/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_engine @elastic/security-detection-engine
From 3a217fd7c79391bcc02cf46f5ebcaa8369042505 Mon Sep 17 00:00:00 2001
From: Lisa Cawley
Date: Mon, 3 Jun 2024 10:51:07 -0700
Subject: [PATCH 13/82] [HTTP/OAS] Add descriptions for data view APIs
(#184182)
---
src/plugins/data_views/server/constants.ts | 19 +++++++++++++++++++
.../public/create_data_view.ts | 8 +++++---
.../public/default_data_view.ts | 12 ++++++++----
.../public/delete_data_view.ts | 10 +++++++---
.../public/fields/update_fields.ts | 8 +++++---
.../rest_api_routes/public/get_data_view.ts | 8 +++++---
.../rest_api_routes/public/get_data_views.ts | 17 +++++++++++++----
.../runtime_fields/create_runtime_field.ts | 8 +++++---
.../runtime_fields/delete_runtime_field.ts | 8 +++++---
.../runtime_fields/get_runtime_field.ts | 8 +++++---
.../runtime_fields/put_runtime_field.ts | 8 +++++---
.../runtime_fields/update_runtime_field.ts | 8 +++++---
.../rest_api_routes/public/swap_references.ts | 12 ++++++++++--
.../public/update_data_view.ts | 8 +++++---
14 files changed, 102 insertions(+), 40 deletions(-)
diff --git a/src/plugins/data_views/server/constants.ts b/src/plugins/data_views/server/constants.ts
index 67235ae3af16d..2aa9dc5904e2b 100644
--- a/src/plugins/data_views/server/constants.ts
+++ b/src/plugins/data_views/server/constants.ts
@@ -98,3 +98,22 @@ export const INITIAL_REST_VERSION_INTERNAL = '1';
* Default field caps cache max-age in seconds
*/
export const DEFAULT_FIELD_CACHE_FRESHNESS = 5;
+
+/**
+ * Operation summaries
+ */
+export const CREATE_DATA_VIEW_DESCRIPTION = 'Create a data view';
+export const CREATE_RUNTIME_FIELD_DESCRIPTION = 'Create a runtime field';
+export const CREATE_UPDATE_RUNTIME_FIELD_DESCRIPTION = 'Create or update a runtime field';
+export const DELETE_DATA_VIEW_DESCRIPTION = 'Delete a data view';
+export const DELETE_RUNTIME_FIELD_DESCRIPTION = 'Delete a runtime field from a data view';
+export const GET_DATA_VIEW_DESCRIPTION = 'Get a data view';
+export const GET_DATA_VIEWS_DESCRIPTION = 'Get all data views';
+export const GET_DEFAULT_DATA_VIEW_DESCRIPTION = 'Get the default data view';
+export const GET_RUNTIME_FIELD_DESCRIPTION = 'Get a runtime field';
+export const PREVIEW_SWAP_REFERENCES_DESCRIPTION = 'Preview swapping saved object references';
+export const SET_DEFAULT_DATA_VIEW_DESCRIPTION = 'Set the default data view';
+export const SWAP_REFERENCES_DESCRIPTION = 'Swap saved object references for a data view';
+export const UPDATE_DATA_VIEW_DESCRIPTION = 'Update a data view';
+export const UPDATE_DATA_VIEW_FIELDS_DESCRIPTION = 'Update data view fields metadata';
+export const UPDATE_RUNTIME_FIELD_DESCRIPTION = 'Update a runtime field';
diff --git a/src/plugins/data_views/server/rest_api_routes/public/create_data_view.ts b/src/plugins/data_views/server/rest_api_routes/public/create_data_view.ts
index a37eb4b682b56..1c4d3265e673f 100644
--- a/src/plugins/data_views/server/rest_api_routes/public/create_data_view.ts
+++ b/src/plugins/data_views/server/rest_api_routes/public/create_data_view.ts
@@ -23,6 +23,7 @@ import {
SERVICE_KEY,
SERVICE_KEY_LEGACY,
INITIAL_REST_VERSION,
+ CREATE_DATA_VIEW_DESCRIPTION,
} from '../../constants';
import { DataViewSpecRestResponse } from '../route_types';
@@ -47,7 +48,7 @@ export const createDataView = async ({
};
const registerCreateDataViewRouteFactory =
- (path: string, serviceKey: string) =>
+ (path: string, serviceKey: string, description?: string) =>
(
router: IRouter,
getStartServices: StartServicesAccessor<
@@ -56,7 +57,7 @@ const registerCreateDataViewRouteFactory =
>,
usageCollection?: UsageCounter
) => {
- router.versioned.post({ path, access: 'public' }).addVersion(
+ router.versioned.post({ path, access: 'public', description }).addVersion(
{
version: INITIAL_REST_VERSION,
validate: {
@@ -127,7 +128,8 @@ const registerCreateDataViewRouteFactory =
export const registerCreateDataViewRoute = registerCreateDataViewRouteFactory(
DATA_VIEW_PATH,
- SERVICE_KEY
+ SERVICE_KEY,
+ CREATE_DATA_VIEW_DESCRIPTION
);
export const registerCreateDataViewRouteLegacy = registerCreateDataViewRouteFactory(
diff --git a/src/plugins/data_views/server/rest_api_routes/public/default_data_view.ts b/src/plugins/data_views/server/rest_api_routes/public/default_data_view.ts
index 00f992dfab334..5fb01acf14dc8 100644
--- a/src/plugins/data_views/server/rest_api_routes/public/default_data_view.ts
+++ b/src/plugins/data_views/server/rest_api_routes/public/default_data_view.ts
@@ -21,6 +21,8 @@ import {
SERVICE_KEY,
SERVICE_KEY_LEGACY,
INITIAL_REST_VERSION,
+ GET_DEFAULT_DATA_VIEW_DESCRIPTION,
+ SET_DEFAULT_DATA_VIEW_DESCRIPTION,
} from '../../constants';
interface GetDefaultArgs {
@@ -58,7 +60,7 @@ export const setDefault = async ({
};
const manageDefaultIndexPatternRoutesFactory =
- (path: string, serviceKey: string) =>
+ (path: string, serviceKey: string, getDescription?: string, postDescription?: string) =>
(
router: IRouter,
getStartServices: StartServicesAccessor<
@@ -67,7 +69,7 @@ const manageDefaultIndexPatternRoutesFactory =
>,
usageCollection?: UsageCounter
) => {
- router.versioned.get({ path, access: 'public' }).addVersion(
+ router.versioned.get({ path, access: 'public', description: getDescription }).addVersion(
{
version: INITIAL_REST_VERSION,
validate: {
@@ -104,7 +106,7 @@ const manageDefaultIndexPatternRoutesFactory =
})
);
- router.versioned.post({ path, access: 'public' }).addVersion(
+ router.versioned.post({ path, access: 'public', description: postDescription }).addVersion(
{
version: INITIAL_REST_VERSION,
validate: {
@@ -159,7 +161,9 @@ const manageDefaultIndexPatternRoutesFactory =
export const registerManageDefaultDataViewRoute = manageDefaultIndexPatternRoutesFactory(
`${SERVICE_PATH}/default`,
- SERVICE_KEY
+ SERVICE_KEY,
+ GET_DEFAULT_DATA_VIEW_DESCRIPTION,
+ SET_DEFAULT_DATA_VIEW_DESCRIPTION
);
export const registerManageDefaultDataViewRouteLegacy = manageDefaultIndexPatternRoutesFactory(
diff --git a/src/plugins/data_views/server/rest_api_routes/public/delete_data_view.ts b/src/plugins/data_views/server/rest_api_routes/public/delete_data_view.ts
index f3f8f26305437..ae00d649eb9dc 100644
--- a/src/plugins/data_views/server/rest_api_routes/public/delete_data_view.ts
+++ b/src/plugins/data_views/server/rest_api_routes/public/delete_data_view.ts
@@ -19,6 +19,7 @@ import {
SPECIFIC_DATA_VIEW_PATH,
SPECIFIC_DATA_VIEW_PATH_LEGACY,
INITIAL_REST_VERSION,
+ DELETE_DATA_VIEW_DESCRIPTION,
} from '../../constants';
interface DeleteDataViewArgs {
@@ -39,7 +40,7 @@ export const deleteDataView = async ({
};
const deleteIndexPatternRouteFactory =
- (path: string) =>
+ (path: string, description?: string) =>
(
router: IRouter,
getStartServices: StartServicesAccessor<
@@ -48,7 +49,7 @@ const deleteIndexPatternRouteFactory =
>,
usageCollection?: UsageCounter
) => {
- router.versioned.delete({ path, access: 'public' }).addVersion(
+ router.versioned.delete({ path, access: 'public', description }).addVersion(
{
version: INITIAL_REST_VERSION,
validate: {
@@ -91,7 +92,10 @@ const deleteIndexPatternRouteFactory =
);
};
-export const registerDeleteDataViewRoute = deleteIndexPatternRouteFactory(SPECIFIC_DATA_VIEW_PATH);
+export const registerDeleteDataViewRoute = deleteIndexPatternRouteFactory(
+ SPECIFIC_DATA_VIEW_PATH,
+ DELETE_DATA_VIEW_DESCRIPTION
+);
export const registerDeleteDataViewRouteLegacy = deleteIndexPatternRouteFactory(
SPECIFIC_DATA_VIEW_PATH_LEGACY
diff --git a/src/plugins/data_views/server/rest_api_routes/public/fields/update_fields.ts b/src/plugins/data_views/server/rest_api_routes/public/fields/update_fields.ts
index c9c97e4ed8d57..a8d2e7d0a5247 100644
--- a/src/plugins/data_views/server/rest_api_routes/public/fields/update_fields.ts
+++ b/src/plugins/data_views/server/rest_api_routes/public/fields/update_fields.ts
@@ -26,6 +26,7 @@ import {
SERVICE_KEY,
SERVICE_KEY_LEGACY,
INITIAL_REST_VERSION,
+ UPDATE_DATA_VIEW_FIELDS_DESCRIPTION,
} from '../../../constants';
interface UpdateFieldsArgs {
@@ -117,7 +118,7 @@ const fieldUpdateSchema = schema.object({
format: schema.maybe(schema.nullable(serializedFieldFormatSchema)),
});
-const updateFieldsActionRouteFactory = (path: string, serviceKey: string) => {
+const updateFieldsActionRouteFactory = (path: string, serviceKey: string, description?: string) => {
return (
router: IRouter,
getStartServices: StartServicesAccessor<
@@ -126,7 +127,7 @@ const updateFieldsActionRouteFactory = (path: string, serviceKey: string) => {
>,
usageCollection?: UsageCounter
) => {
- router.versioned.post({ path, access: 'public' }).addVersion(
+ router.versioned.post({ path, access: 'public', description }).addVersion(
{
version: INITIAL_REST_VERSION,
validate: {
@@ -200,7 +201,8 @@ const updateFieldsActionRouteFactory = (path: string, serviceKey: string) => {
export const registerUpdateFieldsRouteLegacy = updateFieldsActionRouteFactory(
`${SPECIFIC_DATA_VIEW_PATH}/fields`,
- SERVICE_KEY
+ SERVICE_KEY,
+ UPDATE_DATA_VIEW_FIELDS_DESCRIPTION
);
export const registerUpdateFieldsRoute = updateFieldsActionRouteFactory(
diff --git a/src/plugins/data_views/server/rest_api_routes/public/get_data_view.ts b/src/plugins/data_views/server/rest_api_routes/public/get_data_view.ts
index d484623059c44..72c3b5328256f 100644
--- a/src/plugins/data_views/server/rest_api_routes/public/get_data_view.ts
+++ b/src/plugins/data_views/server/rest_api_routes/public/get_data_view.ts
@@ -23,6 +23,7 @@ import {
SERVICE_KEY,
SERVICE_KEY_LEGACY,
INITIAL_REST_VERSION,
+ GET_DATA_VIEW_DESCRIPTION,
} from '../../constants';
interface GetDataViewArgs {
@@ -43,7 +44,7 @@ export const getDataView = async ({
};
const getDataViewRouteFactory =
- (path: string, serviceKey: string) =>
+ (path: string, serviceKey: string, description?: string) =>
(
router: IRouter,
getStartServices: StartServicesAccessor<
@@ -52,7 +53,7 @@ const getDataViewRouteFactory =
>,
usageCollection?: UsageCounter
) => {
- router.versioned.get({ path, access: 'public' }).addVersion(
+ router.versioned.get({ path, access: 'public', description }).addVersion(
{
version: INITIAL_REST_VERSION,
validate: {
@@ -117,7 +118,8 @@ const getDataViewRouteFactory =
export const registerGetDataViewRoute = getDataViewRouteFactory(
SPECIFIC_DATA_VIEW_PATH,
- SERVICE_KEY
+ SERVICE_KEY,
+ GET_DATA_VIEW_DESCRIPTION
);
export const registerGetDataViewRouteLegacy = getDataViewRouteFactory(
diff --git a/src/plugins/data_views/server/rest_api_routes/public/get_data_views.ts b/src/plugins/data_views/server/rest_api_routes/public/get_data_views.ts
index 1314fdd265f74..ab71b45921f77 100644
--- a/src/plugins/data_views/server/rest_api_routes/public/get_data_views.ts
+++ b/src/plugins/data_views/server/rest_api_routes/public/get_data_views.ts
@@ -15,7 +15,12 @@ import type {
DataViewsServerPluginStartDependencies,
DataViewsServerPluginStart,
} from '../../types';
-import { SERVICE_KEY, SERVICE_PATH, INITIAL_REST_VERSION } from '../../constants';
+import {
+ SERVICE_KEY,
+ SERVICE_PATH,
+ INITIAL_REST_VERSION,
+ GET_DATA_VIEWS_DESCRIPTION,
+} from '../../constants';
import { DataViewListItemRestResponse } from '../route_types';
interface GetDataViewsArgs {
@@ -34,7 +39,7 @@ export const getDataViews = async ({
};
const getDataViewsRouteFactory =
- (path: string, serviceKey: string) =>
+ (path: string, serviceKey: string, description?: string) =>
(
router: IRouter,
getStartServices: StartServicesAccessor<
@@ -57,7 +62,7 @@ const getDataViewsRouteFactory =
return schema.object({ [serviceKey]: dataViewListSchema });
};
- router.versioned.get({ path, access: 'public' }).addVersion(
+ router.versioned.get({ path, access: 'public', description }).addVersion(
{
version: INITIAL_REST_VERSION,
validate: {
@@ -98,4 +103,8 @@ const getDataViewsRouteFactory =
);
};
-export const registerGetDataViewsRoute = getDataViewsRouteFactory(SERVICE_PATH, SERVICE_KEY);
+export const registerGetDataViewsRoute = getDataViewsRouteFactory(
+ SERVICE_PATH,
+ SERVICE_KEY,
+ GET_DATA_VIEWS_DESCRIPTION
+);
diff --git a/src/plugins/data_views/server/rest_api_routes/public/runtime_fields/create_runtime_field.ts b/src/plugins/data_views/server/rest_api_routes/public/runtime_fields/create_runtime_field.ts
index 8f2ed701ecf0a..ff446f76c885a 100644
--- a/src/plugins/data_views/server/rest_api_routes/public/runtime_fields/create_runtime_field.ts
+++ b/src/plugins/data_views/server/rest_api_routes/public/runtime_fields/create_runtime_field.ts
@@ -24,6 +24,7 @@ import {
SERVICE_KEY_LEGACY,
SERVICE_KEY_TYPE,
INITIAL_REST_VERSION,
+ CREATE_RUNTIME_FIELD_DESCRIPTION,
} from '../../../constants';
import { responseFormatter } from './response_formatter';
import { runtimeResponseSchema } from '../../schema';
@@ -68,7 +69,7 @@ export const createRuntimeField = async ({
};
const runtimeCreateFieldRouteFactory =
- (path: string, serviceKey: SERVICE_KEY_TYPE) =>
+ (path: string, serviceKey: SERVICE_KEY_TYPE, description?: string) =>
(
router: IRouter,
getStartServices: StartServicesAccessor<
@@ -77,7 +78,7 @@ const runtimeCreateFieldRouteFactory =
>,
usageCollection?: UsageCounter
) => {
- router.versioned.post({ path, access: 'public' }).addVersion(
+ router.versioned.post({ path, access: 'public', description }).addVersion(
{
version: INITIAL_REST_VERSION,
validate: {
@@ -138,7 +139,8 @@ const runtimeCreateFieldRouteFactory =
export const registerCreateRuntimeFieldRoute = runtimeCreateFieldRouteFactory(
RUNTIME_FIELD_PATH,
- SERVICE_KEY
+ SERVICE_KEY,
+ CREATE_RUNTIME_FIELD_DESCRIPTION
);
export const registerCreateRuntimeFieldRouteLegacy = runtimeCreateFieldRouteFactory(
diff --git a/src/plugins/data_views/server/rest_api_routes/public/runtime_fields/delete_runtime_field.ts b/src/plugins/data_views/server/rest_api_routes/public/runtime_fields/delete_runtime_field.ts
index bbbdb4a914a61..8d504abdf9d98 100644
--- a/src/plugins/data_views/server/rest_api_routes/public/runtime_fields/delete_runtime_field.ts
+++ b/src/plugins/data_views/server/rest_api_routes/public/runtime_fields/delete_runtime_field.ts
@@ -20,6 +20,7 @@ import {
SPECIFIC_RUNTIME_FIELD_PATH,
SPECIFIC_RUNTIME_FIELD_PATH_LEGACY,
INITIAL_REST_VERSION,
+ DELETE_RUNTIME_FIELD_DESCRIPTION,
} from '../../../constants';
interface DeleteRuntimeFieldArgs {
@@ -51,7 +52,7 @@ export const deleteRuntimeField = async ({
};
const deleteRuntimeFieldRouteFactory =
- (path: string) =>
+ (path: string, description?: string) =>
(
router: IRouter,
getStartServices: StartServicesAccessor<
@@ -60,7 +61,7 @@ const deleteRuntimeFieldRouteFactory =
>,
usageCollection?: UsageCounter
) => {
- router.versioned.delete({ path, access: 'public' }).addVersion(
+ router.versioned.delete({ path, access: 'public', description }).addVersion(
{
version: INITIAL_REST_VERSION,
validate: {
@@ -110,7 +111,8 @@ const deleteRuntimeFieldRouteFactory =
};
export const registerDeleteRuntimeFieldRoute = deleteRuntimeFieldRouteFactory(
- SPECIFIC_RUNTIME_FIELD_PATH
+ SPECIFIC_RUNTIME_FIELD_PATH,
+ DELETE_RUNTIME_FIELD_DESCRIPTION
);
export const registerDeleteRuntimeFieldRouteLegacy = deleteRuntimeFieldRouteFactory(
diff --git a/src/plugins/data_views/server/rest_api_routes/public/runtime_fields/get_runtime_field.ts b/src/plugins/data_views/server/rest_api_routes/public/runtime_fields/get_runtime_field.ts
index 928a6a6df6884..8e7639b9f8bee 100644
--- a/src/plugins/data_views/server/rest_api_routes/public/runtime_fields/get_runtime_field.ts
+++ b/src/plugins/data_views/server/rest_api_routes/public/runtime_fields/get_runtime_field.ts
@@ -23,6 +23,7 @@ import {
SERVICE_KEY_LEGACY,
SERVICE_KEY_TYPE,
INITIAL_REST_VERSION,
+ GET_RUNTIME_FIELD_DESCRIPTION,
} from '../../../constants';
import { responseFormatter } from './response_formatter';
import { runtimeResponseSchema } from '../../schema';
@@ -59,7 +60,7 @@ export const getRuntimeField = async ({
};
const getRuntimeFieldRouteFactory =
- (path: string, serviceKey: SERVICE_KEY_TYPE) =>
+ (path: string, serviceKey: SERVICE_KEY_TYPE, description?: string) =>
(
router: IRouter,
getStartServices: StartServicesAccessor<
@@ -68,7 +69,7 @@ const getRuntimeFieldRouteFactory =
>,
usageCollection?: UsageCounter
) => {
- router.versioned.get({ path, access: 'public' }).addVersion(
+ router.versioned.get({ path, access: 'public', description }).addVersion(
{
version: INITIAL_REST_VERSION,
validate: {
@@ -125,7 +126,8 @@ const getRuntimeFieldRouteFactory =
export const registerGetRuntimeFieldRoute = getRuntimeFieldRouteFactory(
SPECIFIC_RUNTIME_FIELD_PATH,
- SERVICE_KEY
+ SERVICE_KEY,
+ GET_RUNTIME_FIELD_DESCRIPTION
);
export const registerGetRuntimeFieldRouteLegacy = getRuntimeFieldRouteFactory(
diff --git a/src/plugins/data_views/server/rest_api_routes/public/runtime_fields/put_runtime_field.ts b/src/plugins/data_views/server/rest_api_routes/public/runtime_fields/put_runtime_field.ts
index de06d2cded9f7..7105d8ea8413b 100644
--- a/src/plugins/data_views/server/rest_api_routes/public/runtime_fields/put_runtime_field.ts
+++ b/src/plugins/data_views/server/rest_api_routes/public/runtime_fields/put_runtime_field.ts
@@ -24,6 +24,7 @@ import {
SERVICE_KEY_LEGACY,
SERVICE_KEY_TYPE,
INITIAL_REST_VERSION,
+ CREATE_UPDATE_RUNTIME_FIELD_DESCRIPTION,
} from '../../../constants';
import { responseFormatter } from './response_formatter';
import { RuntimeResponseType } from '../../route_types';
@@ -67,7 +68,7 @@ export const putRuntimeField = async ({
};
const putRuntimeFieldRouteFactory =
- (path: string, serviceKey: SERVICE_KEY_TYPE) =>
+ (path: string, serviceKey: SERVICE_KEY_TYPE, description?: string) =>
(
router: IRouter,
getStartServices: StartServicesAccessor<
@@ -76,7 +77,7 @@ const putRuntimeFieldRouteFactory =
>,
usageCollection?: UsageCounter
) => {
- router.versioned.put({ path, access: 'public' }).addVersion(
+ router.versioned.put({ path, access: 'public', description }).addVersion(
{
version: INITIAL_REST_VERSION,
validate: {
@@ -140,7 +141,8 @@ const putRuntimeFieldRouteFactory =
export const registerPutRuntimeFieldRoute = putRuntimeFieldRouteFactory(
RUNTIME_FIELD_PATH,
- SERVICE_KEY
+ SERVICE_KEY,
+ CREATE_UPDATE_RUNTIME_FIELD_DESCRIPTION
);
export const registerPutRuntimeFieldRouteLegacy = putRuntimeFieldRouteFactory(
diff --git a/src/plugins/data_views/server/rest_api_routes/public/runtime_fields/update_runtime_field.ts b/src/plugins/data_views/server/rest_api_routes/public/runtime_fields/update_runtime_field.ts
index efbe7fd31e8d2..485551c866eef 100644
--- a/src/plugins/data_views/server/rest_api_routes/public/runtime_fields/update_runtime_field.ts
+++ b/src/plugins/data_views/server/rest_api_routes/public/runtime_fields/update_runtime_field.ts
@@ -25,6 +25,7 @@ import {
SERVICE_KEY_LEGACY,
SERVICE_KEY_TYPE,
INITIAL_REST_VERSION,
+ UPDATE_RUNTIME_FIELD_DESCRIPTION,
} from '../../../constants';
import { responseFormatter } from './response_formatter';
import { runtimeResponseSchema } from '../../schema';
@@ -67,7 +68,7 @@ export const updateRuntimeField = async ({
};
const updateRuntimeFieldRouteFactory =
- (path: string, serviceKey: SERVICE_KEY_TYPE) =>
+ (path: string, serviceKey: SERVICE_KEY_TYPE, description?: string) =>
(
router: IRouter,
getStartServices: StartServicesAccessor<
@@ -76,7 +77,7 @@ const updateRuntimeFieldRouteFactory =
>,
usageCollection?: UsageCounter
) => {
- router.versioned.post({ path, access: 'public' }).addVersion(
+ router.versioned.post({ path, access: 'public', description }).addVersion(
{
version: INITIAL_REST_VERSION,
validate: {
@@ -139,7 +140,8 @@ const updateRuntimeFieldRouteFactory =
export const registerUpdateRuntimeFieldRoute = updateRuntimeFieldRouteFactory(
SPECIFIC_RUNTIME_FIELD_PATH,
- SERVICE_KEY
+ SERVICE_KEY,
+ UPDATE_RUNTIME_FIELD_DESCRIPTION
);
export const registerUpdateRuntimeFieldRouteLegacy = updateRuntimeFieldRouteFactory(
diff --git a/src/plugins/data_views/server/rest_api_routes/public/swap_references.ts b/src/plugins/data_views/server/rest_api_routes/public/swap_references.ts
index ebdea001444be..29ebebe2c5ee7 100644
--- a/src/plugins/data_views/server/rest_api_routes/public/swap_references.ts
+++ b/src/plugins/data_views/server/rest_api_routes/public/swap_references.ts
@@ -15,7 +15,12 @@ import type {
DataViewsServerPluginStartDependencies,
DataViewsServerPluginStart,
} from '../../types';
-import { DATA_VIEW_SWAP_REFERENCES_PATH, INITIAL_REST_VERSION } from '../../constants';
+import {
+ DATA_VIEW_SWAP_REFERENCES_PATH,
+ INITIAL_REST_VERSION,
+ PREVIEW_SWAP_REFERENCES_DESCRIPTION,
+ SWAP_REFERENCES_DESCRIPTION,
+} from '../../constants';
import { DATA_VIEW_SAVED_OBJECT_TYPE } from '../../../common/constants';
interface GetDataViewArgs {
@@ -58,7 +63,10 @@ export const swapReferencesRoute =
const path = previewRoute
? `${DATA_VIEW_SWAP_REFERENCES_PATH}/_preview`
: DATA_VIEW_SWAP_REFERENCES_PATH;
- router.versioned.post({ path, access: 'public' }).addVersion(
+ const description = previewRoute
+ ? PREVIEW_SWAP_REFERENCES_DESCRIPTION
+ : SWAP_REFERENCES_DESCRIPTION;
+ router.versioned.post({ path, access: 'public', description }).addVersion(
{
version: INITIAL_REST_VERSION,
validate: {
diff --git a/src/plugins/data_views/server/rest_api_routes/public/update_data_view.ts b/src/plugins/data_views/server/rest_api_routes/public/update_data_view.ts
index a551a1b63bc2d..0c7c66a0a1fec 100644
--- a/src/plugins/data_views/server/rest_api_routes/public/update_data_view.ts
+++ b/src/plugins/data_views/server/rest_api_routes/public/update_data_view.ts
@@ -29,6 +29,7 @@ import {
SERVICE_KEY,
SERVICE_KEY_LEGACY,
INITIAL_REST_VERSION,
+ UPDATE_DATA_VIEW_DESCRIPTION,
} from '../../constants';
const indexPatternUpdateSchema = schema.object({
@@ -137,7 +138,7 @@ export const updateDataView = async ({
};
const updateDataViewRouteFactory =
- (path: string, serviceKey: string) =>
+ (path: string, serviceKey: string, description?: string) =>
(
router: IRouter,
getStartServices: StartServicesAccessor<
@@ -146,7 +147,7 @@ const updateDataViewRouteFactory =
>,
usageCollection?: UsageCounter
) => {
- router.versioned.post({ path, access: 'public' }).addVersion(
+ router.versioned.post({ path, access: 'public', description }).addVersion(
{
version: INITIAL_REST_VERSION,
validate: {
@@ -222,7 +223,8 @@ const updateDataViewRouteFactory =
export const registerUpdateDataViewRoute = updateDataViewRouteFactory(
SPECIFIC_DATA_VIEW_PATH,
- SERVICE_KEY
+ SERVICE_KEY,
+ UPDATE_DATA_VIEW_DESCRIPTION
);
export const registerUpdateDataViewRouteLegacy = updateDataViewRouteFactory(
From 1c56c518b76bf25c69de25033a441cc70bb8a8b8 Mon Sep 17 00:00:00 2001
From: Alexi Doak <109488926+doakalexi@users.noreply.github.com>
Date: Mon, 3 Jun 2024 11:28:11 -0700
Subject: [PATCH 14/82] [ResponseOps] Flapping recovered alerts do not show up
as active in the alerts table (#184255)
Resolves https://github.com/elastic/kibana/issues/183735
## Summary
This bug is caused by event log docs not being written for "pending
recovered" alerts on rules with "notify on every run" and "throttle" or
notify when set to null. In this PR I remove the logic causing this in
`xpack/plugins/alerting/server/lib/get_alerts_for_notification.ts` so
now these alerts will be logged in the event log and show up in the ui.
### Checklist
- [ ] [Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios
### To verify
- Create an ES Query rule without actions, or with `notifyWhen` set to
"notify on every run" or "throttle". Get it to start flapping.
- Let the flapping alert start to recover and verify it's still reported
as active in the UI until it's been recovered for X executions (the
default is 4 if you don't mess with your flapping settings).
Ex. of what to expect
---
.../alerts_client/alerts_client.test.ts | 1 -
.../legacy_alerts_client.test.ts | 2 -
.../alerts_client/legacy_alerts_client.ts | 4 -
.../alerting/server/alerts_client/types.ts | 2 -
.../lib/get_alerts_for_notification.test.ts | 122 ------------------
.../server/lib/get_alerts_for_notification.ts | 8 +-
.../task_runner/rule_type_runner.test.ts | 8 --
.../server/task_runner/rule_type_runner.ts | 5 -
.../task_runner_alerts_client.test.ts | 1 -
.../tests/alerting/group1/event_log.ts | 12 +-
10 files changed, 9 insertions(+), 156 deletions(-)
diff --git a/x-pack/plugins/alerting/server/alerts_client/alerts_client.test.ts b/x-pack/plugins/alerting/server/alerts_client/alerts_client.test.ts
index b3316083d790f..ef6f93d5894a2 100644
--- a/x-pack/plugins/alerting/server/alerts_client/alerts_client.test.ts
+++ b/x-pack/plugins/alerting/server/alerts_client/alerts_client.test.ts
@@ -313,7 +313,6 @@ describe('Alerts Client', () => {
ruleRunMetricsStore,
shouldLogAlerts: false,
flappingSettings: DEFAULT_FLAPPING_SETTINGS,
- notifyOnActionGroupChange: true,
maintenanceWindowIds: [],
alertDelay: 0,
};
diff --git a/x-pack/plugins/alerting/server/alerts_client/legacy_alerts_client.test.ts b/x-pack/plugins/alerting/server/alerts_client/legacy_alerts_client.test.ts
index 0aa0d59d6db89..0acda99585a4f 100644
--- a/x-pack/plugins/alerting/server/alerts_client/legacy_alerts_client.test.ts
+++ b/x-pack/plugins/alerting/server/alerts_client/legacy_alerts_client.test.ts
@@ -243,7 +243,6 @@ describe('Legacy Alerts Client', () => {
ruleRunMetricsStore,
shouldLogAlerts: true,
flappingSettings: DEFAULT_FLAPPING_SETTINGS,
- notifyOnActionGroupChange: true,
maintenanceWindowIds: ['window-id1', 'window-id2'],
alertDelay: 5,
});
@@ -274,7 +273,6 @@ describe('Legacy Alerts Client', () => {
lookBackWindow: 20,
statusChangeThreshold: 4,
},
- true,
'default',
5,
{},
diff --git a/x-pack/plugins/alerting/server/alerts_client/legacy_alerts_client.ts b/x-pack/plugins/alerting/server/alerts_client/legacy_alerts_client.ts
index 5e7bc30cb26b7..c3ff97c645520 100644
--- a/x-pack/plugins/alerting/server/alerts_client/legacy_alerts_client.ts
+++ b/x-pack/plugins/alerting/server/alerts_client/legacy_alerts_client.ts
@@ -142,7 +142,6 @@ export class LegacyAlertsClient<
}
public processAlerts({
- notifyOnActionGroupChange,
flappingSettings,
maintenanceWindowIds,
alertDelay,
@@ -173,7 +172,6 @@ export class LegacyAlertsClient<
const alerts = getAlertsForNotification(
flappingSettings,
- notifyOnActionGroupChange,
this.options.ruleType.defaultActionGroupId,
alertDelay,
processedAlertsNew,
@@ -211,12 +209,10 @@ export class LegacyAlertsClient<
ruleRunMetricsStore,
shouldLogAlerts,
flappingSettings,
- notifyOnActionGroupChange,
maintenanceWindowIds,
alertDelay,
}: ProcessAndLogAlertsOpts) {
this.processAlerts({
- notifyOnActionGroupChange,
flappingSettings,
maintenanceWindowIds,
alertDelay,
diff --git a/x-pack/plugins/alerting/server/alerts_client/types.ts b/x-pack/plugins/alerting/server/alerts_client/types.ts
index 18fb52a806b62..e1b31e54afd10 100644
--- a/x-pack/plugins/alerting/server/alerts_client/types.ts
+++ b/x-pack/plugins/alerting/server/alerts_client/types.ts
@@ -108,14 +108,12 @@ export interface ProcessAndLogAlertsOpts {
shouldLogAlerts: boolean;
ruleRunMetricsStore: RuleRunMetricsStore;
flappingSettings: RulesSettingsFlappingProperties;
- notifyOnActionGroupChange: boolean;
maintenanceWindowIds: string[];
alertDelay: number;
}
export interface ProcessAlertsOpts {
flappingSettings: RulesSettingsFlappingProperties;
- notifyOnActionGroupChange: boolean;
maintenanceWindowIds: string[];
alertDelay: number;
ruleRunMetricsStore: RuleRunMetricsStore;
diff --git a/x-pack/plugins/alerting/server/lib/get_alerts_for_notification.test.ts b/x-pack/plugins/alerting/server/lib/get_alerts_for_notification.test.ts
index b50025b415178..1d216dfbf8b07 100644
--- a/x-pack/plugins/alerting/server/lib/get_alerts_for_notification.test.ts
+++ b/x-pack/plugins/alerting/server/lib/get_alerts_for_notification.test.ts
@@ -19,7 +19,6 @@ describe('getAlertsForNotification', () => {
const { newAlerts, activeAlerts } = getAlertsForNotification(
DEFAULT_FLAPPING_SETTINGS,
- true,
'default',
0,
{
@@ -90,7 +89,6 @@ describe('getAlertsForNotification', () => {
currentRecoveredAlerts,
} = getAlertsForNotification(
DEFAULT_FLAPPING_SETTINGS,
- true,
'default',
0,
{},
@@ -226,7 +224,6 @@ describe('getAlertsForNotification', () => {
const { newAlerts, activeAlerts, recoveredAlerts, currentRecoveredAlerts } =
getAlertsForNotification(
DISABLE_FLAPPING_SETTINGS,
- true,
'default',
0,
{},
@@ -347,120 +344,6 @@ describe('getAlertsForNotification', () => {
`);
});
- test('should return flapping pending recovered alerts as active alerts only when notifyWhen is onActionGroupChange', () => {
- const alert1 = new Alert('1', { meta: { flapping: true, pendingRecoveredCount: 3 } });
- const alert2 = new Alert('2', { meta: { flapping: false } });
- const alert3 = new Alert('3', { meta: { flapping: true } });
-
- const {
- newAlerts,
- activeAlerts,
- currentActiveAlerts,
- recoveredAlerts,
- currentRecoveredAlerts,
- } = getAlertsForNotification(
- DEFAULT_FLAPPING_SETTINGS,
- false,
- 'default',
- 0,
- {},
- {},
- {
- // recovered alerts
- '1': alert1,
- '2': alert2,
- '3': alert3,
- },
- {
- // current recovered alerts
- '1': alert1,
- '2': alert2,
- '3': alert3,
- }
- );
-
- expect(newAlerts).toMatchInlineSnapshot(`Object {}`);
- expect(alertsWithAnyUUID(activeAlerts)).toMatchInlineSnapshot(`
- Object {
- "3": Object {
- "meta": Object {
- "activeCount": 0,
- "flapping": true,
- "flappingHistory": Array [],
- "maintenanceWindowIds": Array [],
- "pendingRecoveredCount": 1,
- "uuid": Any,
- },
- "state": Object {},
- },
- }
- `);
- expect(Object.values(activeAlerts).map((a) => a.getScheduledActionOptions()))
- .toMatchInlineSnapshot(`
- Array [
- Object {
- "actionGroup": "default",
- "context": Object {},
- "state": Object {},
- },
- ]
- `);
- expect(currentActiveAlerts).toMatchInlineSnapshot(`Object {}`);
- expect(
- Object.values(currentActiveAlerts).map((a) => a.getScheduledActionOptions())
- ).toMatchInlineSnapshot(`Array []`);
- expect(alertsWithAnyUUID(recoveredAlerts)).toMatchInlineSnapshot(`
- Object {
- "1": Object {
- "meta": Object {
- "activeCount": 0,
- "flapping": true,
- "flappingHistory": Array [],
- "maintenanceWindowIds": Array [],
- "pendingRecoveredCount": 0,
- "uuid": Any,
- },
- "state": Object {},
- },
- "2": Object {
- "meta": Object {
- "activeCount": 0,
- "flapping": false,
- "flappingHistory": Array [],
- "maintenanceWindowIds": Array [],
- "uuid": Any,
- },
- "state": Object {},
- },
- }
- `);
- expect(alertsWithAnyUUID(currentRecoveredAlerts)).toMatchInlineSnapshot(`
- Object {
- "1": Object {
- "meta": Object {
- "activeCount": 0,
- "flapping": true,
- "flappingHistory": Array [],
- "maintenanceWindowIds": Array [],
- "pendingRecoveredCount": 0,
- "uuid": Any,
- },
- "state": Object {},
- },
- "2": Object {
- "meta": Object {
- "activeCount": 0,
- "flapping": false,
- "flappingHistory": Array [],
- "maintenanceWindowIds": Array [],
- "uuid": Any,
- },
- "state": Object {},
- },
- }
- `);
- });
-
test('should increment activeCount for all active alerts', () => {
const alert1 = new Alert('1', {
meta: { activeCount: 1, uuid: 'uuid-1' },
@@ -470,7 +353,6 @@ describe('getAlertsForNotification', () => {
const { newAlerts, activeAlerts, currentActiveAlerts, delayedAlertsCount } =
getAlertsForNotification(
DEFAULT_FLAPPING_SETTINGS,
- true,
'default',
0,
{
@@ -557,7 +439,6 @@ describe('getAlertsForNotification', () => {
const { recoveredAlerts, currentRecoveredAlerts, delayedAlertsCount } =
getAlertsForNotification(
DEFAULT_FLAPPING_SETTINGS,
- true,
'default',
0,
{},
@@ -630,7 +511,6 @@ describe('getAlertsForNotification', () => {
const { newAlerts, activeAlerts, currentActiveAlerts, delayedAlertsCount } =
getAlertsForNotification(
DEFAULT_FLAPPING_SETTINGS,
- true,
'default',
5,
{
@@ -683,7 +563,6 @@ describe('getAlertsForNotification', () => {
const { recoveredAlerts, currentRecoveredAlerts, delayedAlertsCount } =
getAlertsForNotification(
DEFAULT_FLAPPING_SETTINGS,
- true,
'default',
5,
{},
@@ -710,7 +589,6 @@ describe('getAlertsForNotification', () => {
const { newAlerts, activeAlerts, currentActiveAlerts, delayedAlertsCount } =
getAlertsForNotification(
DEFAULT_FLAPPING_SETTINGS,
- true,
'default',
1,
{},
diff --git a/x-pack/plugins/alerting/server/lib/get_alerts_for_notification.ts b/x-pack/plugins/alerting/server/lib/get_alerts_for_notification.ts
index c1974810b46d0..5761ab68c8205 100644
--- a/x-pack/plugins/alerting/server/lib/get_alerts_for_notification.ts
+++ b/x-pack/plugins/alerting/server/lib/get_alerts_for_notification.ts
@@ -17,7 +17,6 @@ export function getAlertsForNotification<
RecoveryActionGroupId extends string
>(
flappingSettings: RulesSettingsFlappingProperties,
- notifyOnActionGroupChange: boolean,
actionGroupId: string,
alertDelay: number,
newAlerts: Record> = {},
@@ -83,12 +82,7 @@ export function getAlertsForNotification<
context
);
activeAlerts[id] = newAlert;
-
- // rule with "on status change" or rule with at least one
- // action with "on status change" should return notifications
- if (notifyOnActionGroupChange) {
- currentActiveAlerts[id] = newAlert;
- }
+ currentActiveAlerts[id] = newAlert;
// remove from recovered alerts
delete recoveredAlerts[id];
diff --git a/x-pack/plugins/alerting/server/task_runner/rule_type_runner.test.ts b/x-pack/plugins/alerting/server/task_runner/rule_type_runner.test.ts
index 888ed3b864831..42af7ba476085 100644
--- a/x-pack/plugins/alerting/server/task_runner/rule_type_runner.test.ts
+++ b/x-pack/plugins/alerting/server/task_runner/rule_type_runner.test.ts
@@ -247,7 +247,6 @@ describe('RuleTypeRunner', () => {
expect(ruleRunMetricsStore.setSearchMetrics).toHaveBeenCalled();
expect(alertsClient.processAlerts).toHaveBeenCalledWith({
flappingSettings: DEFAULT_FLAPPING_SETTINGS,
- notifyOnActionGroupChange: false,
maintenanceWindowIds: [],
alertDelay: 0,
ruleRunMetricsStore,
@@ -353,7 +352,6 @@ describe('RuleTypeRunner', () => {
expect(ruleRunMetricsStore.setSearchMetrics).toHaveBeenCalled();
expect(alertsClient.processAlerts).toHaveBeenCalledWith({
flappingSettings: DEFAULT_FLAPPING_SETTINGS,
- notifyOnActionGroupChange: false,
maintenanceWindowIds: [],
alertDelay: 0,
ruleRunMetricsStore,
@@ -415,7 +413,6 @@ describe('RuleTypeRunner', () => {
expect(ruleRunMetricsStore.setSearchMetrics).toHaveBeenCalled();
expect(alertsClient.processAlerts).toHaveBeenCalledWith({
flappingSettings: DEFAULT_FLAPPING_SETTINGS,
- notifyOnActionGroupChange: false,
maintenanceWindowIds: [],
alertDelay: 0,
ruleRunMetricsStore,
@@ -761,7 +758,6 @@ describe('RuleTypeRunner', () => {
expect(ruleRunMetricsStore.setSearchMetrics).toHaveBeenCalled();
expect(alertsClient.processAlerts).toHaveBeenCalledWith({
flappingSettings: DEFAULT_FLAPPING_SETTINGS,
- notifyOnActionGroupChange: false,
maintenanceWindowIds: [],
alertDelay: 0,
ruleRunMetricsStore,
@@ -874,7 +870,6 @@ describe('RuleTypeRunner', () => {
expect(ruleRunMetricsStore.setSearchMetrics).toHaveBeenCalled();
expect(alertsClient.processAlerts).toHaveBeenCalledWith({
flappingSettings: DEFAULT_FLAPPING_SETTINGS,
- notifyOnActionGroupChange: false,
maintenanceWindowIds: [],
alertDelay: 0,
ruleRunMetricsStore,
@@ -981,7 +976,6 @@ describe('RuleTypeRunner', () => {
expect(ruleRunMetricsStore.setSearchMetrics).toHaveBeenCalled();
expect(alertsClient.processAlerts).toHaveBeenCalledWith({
flappingSettings: DEFAULT_FLAPPING_SETTINGS,
- notifyOnActionGroupChange: false,
maintenanceWindowIds: [],
alertDelay: 0,
ruleRunMetricsStore,
@@ -1084,7 +1078,6 @@ describe('RuleTypeRunner', () => {
expect(ruleRunMetricsStore.setSearchMetrics).toHaveBeenCalled();
expect(alertsClient.processAlerts).toHaveBeenCalledWith({
flappingSettings: DEFAULT_FLAPPING_SETTINGS,
- notifyOnActionGroupChange: false,
maintenanceWindowIds: [],
alertDelay: 0,
ruleRunMetricsStore,
@@ -1187,7 +1180,6 @@ describe('RuleTypeRunner', () => {
expect(ruleRunMetricsStore.setSearchMetrics).toHaveBeenCalled();
expect(alertsClient.processAlerts).toHaveBeenCalledWith({
flappingSettings: DEFAULT_FLAPPING_SETTINGS,
- notifyOnActionGroupChange: false,
maintenanceWindowIds: [],
alertDelay: 0,
ruleRunMetricsStore,
diff --git a/x-pack/plugins/alerting/server/task_runner/rule_type_runner.ts b/x-pack/plugins/alerting/server/task_runner/rule_type_runner.ts
index cfac117c8f0fd..3b9990cb938a1 100644
--- a/x-pack/plugins/alerting/server/task_runner/rule_type_runner.ts
+++ b/x-pack/plugins/alerting/server/task_runner/rule_type_runner.ts
@@ -13,7 +13,6 @@ import {
createTaskRunError,
TaskErrorSource,
} from '@kbn/task-manager-plugin/server';
-import { some } from 'lodash';
import { getErrorSource } from '@kbn/task-manager-plugin/server/task_running';
import { IAlertsClient } from '../alerts_client/types';
import { MaintenanceWindow } from '../application/maintenance_window/types';
@@ -24,7 +23,6 @@ import {
DEFAULT_FLAPPING_SETTINGS,
RuleAlertData,
RuleExecutionStatusErrorReasons,
- RuleNotifyWhen,
RuleTypeParams,
RuleTypeState,
SanitizedRule,
@@ -323,9 +321,6 @@ export class RuleTypeRunner<
await this.options.timer.runWithTimer(TaskRunnerTimerSpan.ProcessAlerts, async () => {
alertsClient.processAlerts({
flappingSettings: context.flappingSettings ?? DEFAULT_FLAPPING_SETTINGS,
- notifyOnActionGroupChange:
- notifyWhen === RuleNotifyWhen.CHANGE ||
- some(actions, (action) => action.frequency?.notifyWhen === RuleNotifyWhen.CHANGE),
maintenanceWindowIds: maintenanceWindowsWithoutScopedQueryIds,
alertDelay: alertDelay?.active ?? 0,
ruleRunMetricsStore: context.ruleRunMetricsStore,
diff --git a/x-pack/plugins/alerting/server/task_runner/task_runner_alerts_client.test.ts b/x-pack/plugins/alerting/server/task_runner/task_runner_alerts_client.test.ts
index fe8bfe86a2f46..2a13bd4cd7c54 100644
--- a/x-pack/plugins/alerting/server/task_runner/task_runner_alerts_client.test.ts
+++ b/x-pack/plugins/alerting/server/task_runner/task_runner_alerts_client.test.ts
@@ -815,7 +815,6 @@ describe('Task Runner', () => {
expect(alertsClientNotToUse.checkLimitUsage).not.toHaveBeenCalled();
expect(alertsClientToUse.processAlerts).toHaveBeenCalledWith({
- notifyOnActionGroupChange: false,
alertDelay: 0,
flappingSettings: {
enabled: true,
diff --git a/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/group1/event_log.ts b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/group1/event_log.ts
index 79e5b659e341d..e780e1186af9e 100644
--- a/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/group1/event_log.ts
+++ b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/group1/event_log.ts
@@ -1240,7 +1240,7 @@ export default function eventLogTests({ getService }: FtrProviderContext) {
)
.map((event) => event?.kibana?.alert?.flapping);
const result = [false, false, false, false, false].concat(
- new Array(7).fill(true),
+ new Array(9).fill(true),
false,
false,
false
@@ -1348,7 +1348,7 @@ export default function eventLogTests({ getService }: FtrProviderContext) {
)
.map((event) => event?.kibana?.alert?.flapping);
const result = [false, false, false, false, false].concat(
- new Array(7).fill(true),
+ new Array(9).fill(true),
false,
false,
false
@@ -1443,7 +1443,9 @@ export default function eventLogTests({ getService }: FtrProviderContext) {
event?.event?.action === 'recovered-instance'
)
.map((event) => event?.kibana?.alert?.flapping);
- expect(flapping).to.eql([false, false, false, false, false, true, true, true]);
+ expect(flapping).to.eql(
+ [false, false, false, false, false].concat(new Array(8).fill(true))
+ );
});
it('should generate expected events for flapping alerts that settle on recovered where the action notifyWhen is NOT set to "on status change"', async () => {
@@ -1544,7 +1546,9 @@ export default function eventLogTests({ getService }: FtrProviderContext) {
event?.event?.action === 'recovered-instance'
)
.map((event) => event?.kibana?.alert?.flapping);
- expect(flapping).to.eql([false, false, false, false, false, true, true, true]);
+ expect(flapping).to.eql(
+ [false, false, false, false, false].concat(new Array(8).fill(true))
+ );
});
it('should generate expected uuids for events for flapping alerts that go active while flapping and eventually recover', async () => {
From 3efa595a9ad52e63324fc3009ab7c9fb52174eed Mon Sep 17 00:00:00 2001
From: Cee Chen <549407+cee-chen@users.noreply.github.com>
Date: Mon, 3 Jun 2024 11:55:39 -0700
Subject: [PATCH 15/82] Upgrade EUI to v94.6.0 (#184672)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
`v94.5.2` ⏩ `v94.6.0`
[Questions? Please see our Kibana upgrade
FAQ.](https://github.com/elastic/eui/blob/main/wiki/eui-team-processes/upgrading-kibana.md#faq-for-kibana-teams)
---
## [`v94.6.0`](https://github.com/elastic/eui/releases/v94.6.0)
- Updated `EuiComboBox` to support rendering `option.append` and
`option.prepend` in group labels
([#7800](https://github.com/elastic/eui/pull/7800))
**Accessibility**
- Improved the accessibility experience of `EuiBetaBadge`
([#7805](https://github.com/elastic/eui/pull/7805))
---
package.json | 2 +-
src/dev/license_checker/config.ts | 2 +-
yarn.lock | 39 ++++++-------------------------
3 files changed, 9 insertions(+), 34 deletions(-)
diff --git a/package.json b/package.json
index befee4c5bfb3c..7285c7721ae4b 100644
--- a/package.json
+++ b/package.json
@@ -108,7 +108,7 @@
"@elastic/ecs": "^8.11.1",
"@elastic/elasticsearch": "^8.13.0",
"@elastic/ems-client": "8.5.1",
- "@elastic/eui": "94.5.2",
+ "@elastic/eui": "94.6.0",
"@elastic/filesaver": "1.1.2",
"@elastic/node-crypto": "1.2.1",
"@elastic/numeral": "^2.5.1",
diff --git a/src/dev/license_checker/config.ts b/src/dev/license_checker/config.ts
index d4734866b548f..b7642cf7e9af7 100644
--- a/src/dev/license_checker/config.ts
+++ b/src/dev/license_checker/config.ts
@@ -86,7 +86,7 @@ export const LICENSE_OVERRIDES = {
'jsts@1.6.2': ['Eclipse Distribution License - v 1.0'], // cf. https://github.com/bjornharrtell/jsts
'@mapbox/jsonlint-lines-primitives@2.0.2': ['MIT'], // license in readme https://github.com/tmcw/jsonlint
'@elastic/ems-client@8.5.1': ['Elastic License 2.0'],
- '@elastic/eui@94.5.2': ['SSPL-1.0 OR Elastic License 2.0'],
+ '@elastic/eui@94.6.0': ['SSPL-1.0 OR Elastic License 2.0'],
'language-subtag-registry@0.3.21': ['CC-BY-4.0'], // retired ODC‑By license https://github.com/mattcg/language-subtag-registry
'buffers@0.1.1': ['MIT'], // license in importing module https://www.npmjs.com/package/binary
'@bufbuild/protobuf@1.2.1': ['Apache-2.0'], // license (Apache-2.0 AND BSD-3-Clause)
diff --git a/yarn.lock b/yarn.lock
index 510b9154486a3..172b8fc5940fa 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1735,10 +1735,10 @@
resolved "https://registry.yarnpkg.com/@elastic/eslint-plugin-eui/-/eslint-plugin-eui-0.0.2.tgz#56b9ef03984a05cc213772ae3713ea8ef47b0314"
integrity sha512-IoxURM5zraoQ7C8f+mJb9HYSENiZGgRVcG4tLQxE61yHNNRDXtGDWTZh8N1KIHcsqN1CEPETjuzBXkJYF/fDiQ==
-"@elastic/eui@94.5.2":
- version "94.5.2"
- resolved "https://registry.yarnpkg.com/@elastic/eui/-/eui-94.5.2.tgz#f26a94343b92388f9e18be9e4bb5659957e92d44"
- integrity sha512-rSheSetb35YbyfLGmLE4vLYgvNbQERHb5k3abKce+mo19cuvQZxuRj1b87N6B4ZSe1zvipGyvfuvFMp2p2spdQ==
+"@elastic/eui@94.6.0":
+ version "94.6.0"
+ resolved "https://registry.yarnpkg.com/@elastic/eui/-/eui-94.6.0.tgz#fd56be1dbdcdea259cdb3504085c8479fa35bcef"
+ integrity sha512-lYXVcylXn4Iz2WumBuOEkc1PRFoUby7CTnNhTS/gVrbTP7Mn0ombcoPFUSiZcA7VuN2mHfPmTUdBQptC/apTzA==
dependencies:
"@hello-pangea/dnd" "^16.6.0"
"@types/lodash" "^4.14.202"
@@ -29011,7 +29011,7 @@ string-replace-loader@^2.2.0:
loader-utils "^1.2.3"
schema-utils "^1.0.0"
-"string-width-cjs@npm:string-width@^4.2.0":
+"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3:
version "4.2.3"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
@@ -29029,15 +29029,6 @@ string-width@^1.0.1:
is-fullwidth-code-point "^1.0.0"
strip-ansi "^3.0.0"
-"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3:
- version "4.2.3"
- resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
- integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
- dependencies:
- emoji-regex "^8.0.0"
- is-fullwidth-code-point "^3.0.0"
- strip-ansi "^6.0.1"
-
string-width@^5.0.1, string-width@^5.1.2:
version "5.1.2"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794"
@@ -29147,7 +29138,7 @@ stringify-object@^3.2.1:
is-obj "^1.0.1"
is-regexp "^1.0.0"
-"strip-ansi-cjs@npm:strip-ansi@^6.0.1":
+"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1:
version "6.0.1"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
@@ -29161,13 +29152,6 @@ strip-ansi@^3.0.0, strip-ansi@^3.0.1:
dependencies:
ansi-regex "^2.0.0"
-strip-ansi@^6.0.0, strip-ansi@^6.0.1:
- version "6.0.1"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
- integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
- dependencies:
- ansi-regex "^5.0.1"
-
strip-ansi@^7.0.1, strip-ansi@^7.1.0:
version "7.1.0"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45"
@@ -32040,7 +32024,7 @@ workerpool@6.2.1:
resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343"
integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==
-"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
+"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
@@ -32066,15 +32050,6 @@ wrap-ansi@^6.2.0:
string-width "^4.1.0"
strip-ansi "^6.0.0"
-wrap-ansi@^7.0.0:
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
- integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
- dependencies:
- ansi-styles "^4.0.0"
- string-width "^4.1.0"
- strip-ansi "^6.0.0"
-
wrap-ansi@^8.1.0:
version "8.1.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"
From d720a9bff30138b840f522d88a5b28acae2e23a4 Mon Sep 17 00:00:00 2001
From: "Quynh Nguyen (Quinn)" <43350163+qn895@users.noreply.github.com>
Date: Mon, 3 Jun 2024 14:34:01 -0500
Subject: [PATCH 16/82] [ML] Adds ES|QL support for field statistics table in
Discover (#180849)
## Summary
Follow up of https://github.com/elastic/kibana/pull/179098. Adds ES|QL
for support field statistics table in Discover
https://github.com/elastic/kibana/assets/43350163/09a1feeb-cff6-4b8b-bf82-bb930413f215
https://github.com/elastic/kibana/assets/43350163/2acd78ec-1856-406e-a8f9-f6b2a26f8d81
### Checklist
Delete any items that are not applicable to this PR.
- [ ] Any text added follows [EUI's writing
guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses
sentence case text and includes [i18n
support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)
- [ ]
[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)
was added for features that require explanation or tutorials
- [ ] [Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios
- [ ] [Flaky Test
Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was
used on any tests changed
- [ ] Any UI touched in this PR is usable by keyboard only (learn more
about [keyboard accessibility](https://webaim.org/techniques/keyboard/))
- [ ] Any UI touched in this PR does not create any new axe failures
(run axe in browser:
[FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/),
[Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))
- [ ] If a plugin configuration key changed, check if it needs to be
allowlisted in the cloud and added to the [docker
list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)
- [ ] This renders correctly on smaller devices using a responsive
layout. (You can test this [in your
browser](https://www.browserstack.com/guide/responsive-testing-on-local-server))
- [ ] This was checked for [cross-browser
compatibility](https://www.elastic.co/support/matrix#matrix_browsers)
### Risk Matrix
Delete this section if it is not applicable to this PR.
Before closing this PR, invite QA, stakeholders, and other developers to
identify risks that should be tested prior to the change/feature
release.
When forming the risk matrix, consider some of the following examples
and how they may potentially impact the change:
| Risk | Probability | Severity | Mitigation/Notes |
|---------------------------|-------------|----------|-------------------------|
| Multiple Spaces—unexpected behavior in non-default Kibana Space.
| Low | High | Integration tests will verify that all features are still
supported in non-default Kibana Space and when user switches between
spaces. |
| Multiple nodes—Elasticsearch polling might have race conditions
when multiple Kibana nodes are polling for the same tasks. | High | Low
| Tasks are idempotent, so executing them multiple times will not result
in logical error, but will degrade performance. To test for this case we
add plenty of unit tests around this logic and document manual testing
procedure. |
| Code should gracefully handle cases when feature X or plugin Y are
disabled. | Medium | High | Unit tests will verify that any feature flag
or plugin combination still results in our service operational. |
| [See more potential risk
examples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx) |
### For maintainers
- [ ] This was checked for breaking API changes and was [labeled
appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)
---------
Co-authored-by: Stratoula Kalafateli
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Davis McPhee
---
.../field_stats_table/field_stats_tab.tsx | 14 ++-
.../field_stats_table/field_stats_table.tsx | 46 ++++++---
.../components/field_stats_table/types.ts | 4 +
.../components/layout/discover_layout.tsx | 10 +-
.../layout/discover_main_content.tsx | 3 +-
.../main/hooks/use_esql_mode.test.tsx | 7 +-
.../discover_saved_search_container.ts | 8 +-
.../utils/get_state_defaults.test.ts | 4 +-
.../main/utils/get_valid_view_mode.test.ts | 2 +-
.../main/utils/get_valid_view_mode.ts | 7 +-
.../view_mode_toggle.test.tsx | 8 +-
.../view_mode_toggle/view_mode_toggle.tsx | 6 +-
.../embeddable/saved_search_embeddable.tsx | 1 +
.../apps/discover/group4/_esql_view.ts | 2 +-
.../apps/discover/group6/_view_mode_toggle.ts | 4 +-
.../common/types/field_request_config.ts | 1 +
.../common/types/field_stats.ts | 5 +
.../data_visualizer_stats_table.tsx | 6 +-
.../components/stats_table/types/index.ts | 6 +-
.../components/top_values/top_values.tsx | 28 +++++-
.../index_data_visualizer_esql.tsx | 29 ++++--
.../embeddable_esql_field_stats_table.tsx | 82 ++++++++--------
.../embeddable_field_stats_table.tsx | 14 +--
.../field_stats_embeddable_wrapper.tsx | 62 ++++++++++---
.../embeddables/grid_embeddable/types.ts | 7 +-
.../esql/use_data_visualizer_esql_data.tsx | 93 ++++++++++++-------
.../hooks/esql/use_esql_overall_stats_data.ts | 19 ++--
.../hooks/use_data_visualizer_grid_data.ts | 9 +-
.../esql_requests/get_boolean_field_stats.ts | 4 +-
.../get_count_and_cardinality.ts | 29 ++----
.../esql_requests/get_date_field_stats.ts | 4 +-
.../esql_requests/get_keyword_fields.ts | 17 ++--
.../esql_requests/get_numeric_field_stats.ts | 4 +-
.../search_strategy/requests/esql_utils.ts | 2 +-
x-pack/plugins/data_visualizer/tsconfig.json | 3 +-
.../translations/translations/fr-FR.json | 2 -
.../translations/translations/ja-JP.json | 2 -
.../translations/translations/zh-CN.json | 2 -
.../data_visualizer/esql_data_visualizer.ts | 4 +-
.../common/discover/esql/_esql_view.ts | 3 +-
40 files changed, 340 insertions(+), 223 deletions(-)
diff --git a/src/plugins/discover/public/application/main/components/field_stats_table/field_stats_tab.tsx b/src/plugins/discover/public/application/main/components/field_stats_table/field_stats_tab.tsx
index 62c40ef529b7e..ca7c6424015e7 100644
--- a/src/plugins/discover/public/application/main/components/field_stats_table/field_stats_tab.tsx
+++ b/src/plugins/discover/public/application/main/components/field_stats_table/field_stats_tab.tsx
@@ -15,18 +15,22 @@ import { useAdditionalFieldGroups } from '../../hooks/sidebar/use_additional_fie
export const FieldStatisticsTab: React.FC> =
React.memo((props) => {
const services = useDiscoverServices();
- const querySubscriberResult = useQuerySubscriber({
+ const { query, filters } = useQuerySubscriber({
data: services.data,
});
const additionalFieldGroups = useAdditionalFieldGroups();
if (!services.dataVisualizer) return null;
-
return (
);
diff --git a/src/plugins/discover/public/application/main/components/field_stats_table/field_stats_table.tsx b/src/plugins/discover/public/application/main/components/field_stats_table/field_stats_table.tsx
index c2a7f30a27117..5829bd42c68c9 100644
--- a/src/plugins/discover/public/application/main/components/field_stats_table/field_stats_table.tsx
+++ b/src/plugins/discover/public/application/main/components/field_stats_table/field_stats_table.tsx
@@ -10,18 +10,19 @@ import React, { useEffect, useMemo, useCallback } from 'react';
import { METRIC_TYPE } from '@kbn/analytics';
import { EuiFlexItem } from '@elastic/eui';
import { css } from '@emotion/react';
-import useObservable from 'react-use/lib/useObservable';
-import { of, map } from 'rxjs';
+import { of, map, filter } from 'rxjs';
import { BehaviorSubject } from 'rxjs';
+import useObservable from 'react-use/lib/useObservable';
import {
convertFieldsToFallbackFields,
getAllFallbackFields,
getAssociatedSmartFieldsAsString,
SmartFieldFallbackTooltip,
} from '@kbn/unified-field-list';
-import type { DataVisualizerTableItem } from '@kbn/data-visualizer-plugin/public/application/common/components/stats_table/data_visualizer_stats_table';
+import type { DataVisualizerTableItem } from '@kbn/data-visualizer-plugin/public/application/common/components/stats_table/types';
import { useDiscoverServices } from '../../../../hooks/use_discover_services';
import { FIELD_STATISTICS_LOADED } from './constants';
+
import type { NormalSamplingOption, FieldStatisticsTableProps } from './types';
export type { FieldStatisticsTableProps };
@@ -35,9 +36,11 @@ const statsTableCss = css({
});
const fallBacklastReloadRequestTime$ = new BehaviorSubject(0);
+const fallbackTotalHits = of(undefined);
-export const FieldStatisticsTable = (props: FieldStatisticsTableProps) => {
+export const FieldStatisticsTable = React.memo((props: FieldStatisticsTableProps) => {
const {
+ isEsqlMode,
dataView,
savedSearch,
query,
@@ -81,10 +84,15 @@ export const FieldStatisticsTable = (props: FieldStatisticsTableProps) => {
[additionalFieldGroups, allFallbackFields]
);
- const totalHits = useObservable(stateContainer?.dataState.data$.totalHits$ ?? of(undefined));
- const totalDocuments = useMemo(() => totalHits?.result, [totalHits]);
-
const services = useDiscoverServices();
+
+ // Other apps consuming Discover UI might inject their own proxied data services
+ // so we need override the kibana context services with the injected proxied services
+ // to make sure the table use the right service
+ const overridableServices = useMemo(() => {
+ return { data: services.data };
+ }, [services.data]);
+
const dataVisualizerService = services.dataVisualizer;
// State from Discover we want the embeddable to reflect
@@ -95,11 +103,25 @@ export const FieldStatisticsTable = (props: FieldStatisticsTableProps) => {
const lastReloadRequestTime$ = useMemo(() => {
return stateContainer?.dataState?.refetch$
- ? stateContainer?.dataState?.refetch$.pipe(map(() => Date.now()))
+ ? stateContainer?.dataState?.refetch$.pipe(
+ map(() => {
+ return Date.now();
+ })
+ )
: fallBacklastReloadRequestTime$;
}, [stateContainer]);
- const lastReloadRequestTime = useObservable(lastReloadRequestTime$, 0);
+ const totalHitsComplete$ = useMemo(() => {
+ return stateContainer
+ ? stateContainer.dataState.data$.totalHits$.pipe(
+ filter((d) => d.fetchStatus === 'complete'),
+ map((d) => d?.result)
+ )
+ : fallbackTotalHits;
+ }, [stateContainer]);
+
+ const totalDocuments = useObservable(totalHitsComplete$);
+ const lastReloadRequestTime = useObservable(lastReloadRequestTime$);
useEffect(() => {
// Track should only be called once when component is loaded
@@ -119,7 +141,7 @@ export const FieldStatisticsTable = (props: FieldStatisticsTableProps) => {
const updateState = useCallback(
(changes) => {
if (changes.showDistributions !== undefined && stateContainer) {
- stateContainer.appState.update({ hideAggregatedPreview: !changes.showDistributions });
+ stateContainer.appState.update({ hideAggregatedPreview: !changes.showDistributions }, true);
}
},
[stateContainer]
@@ -144,7 +166,9 @@ export const FieldStatisticsTable = (props: FieldStatisticsTableProps) => {
showPreviewByDefault={showPreviewByDefault}
onTableUpdate={updateState}
renderFieldName={renderFieldName}
+ esql={isEsqlMode}
+ overridableServices={overridableServices}
/>
);
-};
+});
diff --git a/src/plugins/discover/public/application/main/components/field_stats_table/types.ts b/src/plugins/discover/public/application/main/components/field_stats_table/types.ts
index 0ff28f2dcb700..ddd62285d044d 100644
--- a/src/plugins/discover/public/application/main/components/field_stats_table/types.ts
+++ b/src/plugins/discover/public/application/main/components/field_stats_table/types.ts
@@ -169,4 +169,8 @@ export interface FieldStatisticsTableProps {
* Additional field groups (e.g. Smart Fields)
*/
additionalFieldGroups?: AdditionalFieldGroups;
+ /**
+ * If table should query using ES|QL
+ */
+ isEsqlMode?: boolean;
}
diff --git a/src/plugins/discover/public/application/main/components/layout/discover_layout.tsx b/src/plugins/discover/public/application/main/components/layout/discover_layout.tsx
index d141b89e453e3..0d94041738f54 100644
--- a/src/plugins/discover/public/application/main/components/layout/discover_layout.tsx
+++ b/src/plugins/discover/public/application/main/components/layout/discover_layout.tsx
@@ -75,6 +75,7 @@ export function DiscoverLayout({ stateContainer }: DiscoverLayoutProps) {
history,
spaces,
observabilityAIAssistant,
+ dataVisualizer: dataVisualizerService,
} = useDiscoverServices();
const pageBackgroundColor = useEuiBackgroundColor('plain');
const globalQueryState = data.query.getState();
@@ -86,12 +87,13 @@ export function DiscoverLayout({ stateContainer }: DiscoverLayoutProps) {
state.sort,
]);
const isEsqlMode = useIsEsqlMode();
+
const viewMode: VIEW_MODE = useAppStateSelector((state) => {
- if (state.viewMode === VIEW_MODE.DOCUMENT_LEVEL || state.viewMode === VIEW_MODE.PATTERN_LEVEL) {
- return state.viewMode;
- }
- if (uiSettings.get(SHOW_FIELD_STATISTICS) !== true || isEsqlMode)
+ const fieldStatsNotAvailable =
+ !uiSettings.get(SHOW_FIELD_STATISTICS) && !!dataVisualizerService;
+ if (state.viewMode === VIEW_MODE.AGGREGATED_LEVEL && fieldStatsNotAvailable) {
return VIEW_MODE.DOCUMENT_LEVEL;
+ }
return state.viewMode ?? VIEW_MODE.DOCUMENT_LEVEL;
});
const [dataView, dataViewLoading] = useInternalStateSelector((state) => [
diff --git a/src/plugins/discover/public/application/main/components/layout/discover_main_content.tsx b/src/plugins/discover/public/application/main/components/layout/discover_main_content.tsx
index 7c44ed1deff83..735eae1fa9039 100644
--- a/src/plugins/discover/public/application/main/components/layout/discover_main_content.tsx
+++ b/src/plugins/discover/public/application/main/components/layout/discover_main_content.tsx
@@ -67,7 +67,7 @@ export const DiscoverMainContent = ({
const setDiscoverViewMode = useCallback(
(mode: VIEW_MODE) => {
- stateContainer.appState.update({ viewMode: mode });
+ stateContainer.appState.update({ viewMode: mode }, true);
if (trackUiMetric) {
if (mode === VIEW_MODE.AGGREGATED_LEVEL) {
@@ -151,6 +151,7 @@ export const DiscoverMainContent = ({
stateContainer={stateContainer}
onAddFilter={!isEsqlMode ? onAddFilter : undefined}
trackUiMetric={trackUiMetric}
+ isEsqlMode={isEsqlMode}
/>
>
) : null}
diff --git a/src/plugins/discover/public/application/main/hooks/use_esql_mode.test.tsx b/src/plugins/discover/public/application/main/hooks/use_esql_mode.test.tsx
index b24bcd3eb42d5..12109ea01a422 100644
--- a/src/plugins/discover/public/application/main/hooks/use_esql_mode.test.tsx
+++ b/src/plugins/discover/public/application/main/hooks/use_esql_mode.test.tsx
@@ -104,15 +104,12 @@ describe('useEsqlMode', () => {
stateContainer.dataState.data$.documents$.next(msgComplete);
expect(replaceUrlState).toHaveBeenCalledTimes(0);
});
- test('should change viewMode to undefined (default) if it was AGGREGATED_LEVEL', async () => {
+ test('should not change viewMode to undefined (default) if it was AGGREGATED_LEVEL', async () => {
const { replaceUrlState } = renderHookWithContext(false, {
viewMode: VIEW_MODE.AGGREGATED_LEVEL,
});
- await waitFor(() => expect(replaceUrlState).toHaveBeenCalledTimes(1));
- expect(replaceUrlState).toHaveBeenCalledWith({
- viewMode: undefined,
- });
+ await waitFor(() => expect(replaceUrlState).toHaveBeenCalledTimes(0));
});
test('should change viewMode to undefined (default) if it was PATTERN_LEVEL', async () => {
diff --git a/src/plugins/discover/public/application/main/state_management/discover_saved_search_container.ts b/src/plugins/discover/public/application/main/state_management/discover_saved_search_container.ts
index 69ef4b03c742d..0a41f087c75ab 100644
--- a/src/plugins/discover/public/application/main/state_management/discover_saved_search_container.ts
+++ b/src/plugins/discover/public/application/main/state_management/discover_saved_search_container.ts
@@ -18,6 +18,7 @@ import {
} from '@kbn/unified-histogram-plugin/public';
import { SavedObjectSaveOpts } from '@kbn/saved-objects-plugin/public';
import { isEqual, isFunction } from 'lodash';
+import { VIEW_MODE } from '../../../../common/constants';
import { restoreStateFromSavedSearch } from '../../../services/saved_searches/restore_from_saved_search';
import { updateSavedSearch } from './utils/update_saved_search';
import { addLog } from '../../../utils/add_log';
@@ -340,7 +341,12 @@ export function isEqualSavedSearch(savedSearchPrev: SavedSearch, savedSearchNext
const prevValue = getSavedSearchFieldForComparison(prevSavedSearch, key);
const nextValue = getSavedSearchFieldForComparison(nextSavedSearchWithoutSearchSource, key);
- const isSame = isEqual(prevValue, nextValue);
+ const isSame =
+ isEqual(prevValue, nextValue) ||
+ // By default, viewMode: undefined is equivalent to documents view
+ // So they should be treated as same
+ (key === 'viewMode' &&
+ (prevValue ?? VIEW_MODE.DOCUMENT_LEVEL) === (nextValue ?? VIEW_MODE.DOCUMENT_LEVEL));
if (!isSame) {
addLog('[savedSearch] difference between initial and changed version', {
diff --git a/src/plugins/discover/public/application/main/state_management/utils/get_state_defaults.test.ts b/src/plugins/discover/public/application/main/state_management/utils/get_state_defaults.test.ts
index 28c562d3e7051..86d9ffe99c244 100644
--- a/src/plugins/discover/public/application/main/state_management/utils/get_state_defaults.test.ts
+++ b/src/plugins/discover/public/application/main/state_management/utils/get_state_defaults.test.ts
@@ -98,14 +98,14 @@ describe('getStateDefaults', () => {
});
expect(actualForUndefinedViewMode.viewMode).toBeUndefined();
- const actualForEsqlWithInvalidAggLevelViewMode = getStateDefaults({
+ const actualForEsqlWithAggregatedViewMode = getStateDefaults({
services: discoverServiceMock,
savedSearch: {
...savedSearchMockWithESQL,
viewMode: VIEW_MODE.AGGREGATED_LEVEL,
},
});
- expect(actualForEsqlWithInvalidAggLevelViewMode.viewMode).toBe(VIEW_MODE.DOCUMENT_LEVEL);
+ expect(actualForEsqlWithAggregatedViewMode.viewMode).toBe(VIEW_MODE.AGGREGATED_LEVEL);
const actualForEsqlWithInvalidPatternLevelViewMode = getStateDefaults({
services: discoverServiceMock,
diff --git a/src/plugins/discover/public/application/main/utils/get_valid_view_mode.test.ts b/src/plugins/discover/public/application/main/utils/get_valid_view_mode.test.ts
index ff2d4250b3da8..7d8cd7ed3cc5e 100644
--- a/src/plugins/discover/public/application/main/utils/get_valid_view_mode.test.ts
+++ b/src/plugins/discover/public/application/main/utils/get_valid_view_mode.test.ts
@@ -60,7 +60,7 @@ describe('getValidViewMode', () => {
viewMode: VIEW_MODE.AGGREGATED_LEVEL,
isEsqlMode: true,
})
- ).toBe(VIEW_MODE.DOCUMENT_LEVEL);
+ ).toBe(VIEW_MODE.AGGREGATED_LEVEL);
expect(
getValidViewMode({
diff --git a/src/plugins/discover/public/application/main/utils/get_valid_view_mode.ts b/src/plugins/discover/public/application/main/utils/get_valid_view_mode.ts
index 03c3500b7ab2d..96defe6711d95 100644
--- a/src/plugins/discover/public/application/main/utils/get_valid_view_mode.ts
+++ b/src/plugins/discover/public/application/main/utils/get_valid_view_mode.ts
@@ -20,11 +20,8 @@ export const getValidViewMode = ({
viewMode?: VIEW_MODE;
isEsqlMode: boolean;
}): VIEW_MODE | undefined => {
- if (
- (viewMode === VIEW_MODE.PATTERN_LEVEL || viewMode === VIEW_MODE.AGGREGATED_LEVEL) &&
- isEsqlMode
- ) {
- // only this mode is supported for text-based languages
+ if (viewMode === VIEW_MODE.PATTERN_LEVEL && isEsqlMode) {
+ // only this mode is supported for ES|QL languages
return VIEW_MODE.DOCUMENT_LEVEL;
}
diff --git a/src/plugins/discover/public/components/view_mode_toggle/view_mode_toggle.test.tsx b/src/plugins/discover/public/components/view_mode_toggle/view_mode_toggle.test.tsx
index 4d266af5e7949..08a56af81f4bc 100644
--- a/src/plugins/discover/public/components/view_mode_toggle/view_mode_toggle.test.tsx
+++ b/src/plugins/discover/public/components/view_mode_toggle/view_mode_toggle.test.tsx
@@ -105,14 +105,14 @@ describe('Document view mode toggle component', () => {
expect(findTestSubject(component, 'dscViewModeFieldStatsButton').exists()).toBe(false);
});
- it('should not render if ES|QL', async () => {
+ it('should show document and field stats view if ES|QL', async () => {
const component = await mountComponent({ isEsqlMode: true });
- expect(findTestSubject(component, 'dscViewModeToggle').exists()).toBe(false);
+ expect(findTestSubject(component, 'dscViewModeToggle').exists()).toBe(true);
expect(findTestSubject(component, 'discoverQueryTotalHits').exists()).toBe(true);
- expect(findTestSubject(component, 'dscViewModeDocumentButton').exists()).toBe(false);
+ expect(findTestSubject(component, 'dscViewModeDocumentButton').exists()).toBe(true);
expect(findTestSubject(component, 'dscViewModePatternAnalysisButton').exists()).toBe(false);
- expect(findTestSubject(component, 'dscViewModeFieldStatsButton').exists()).toBe(false);
+ expect(findTestSubject(component, 'dscViewModeFieldStatsButton').exists()).toBe(true);
});
it('should set the view mode to VIEW_MODE.DOCUMENT_LEVEL when dscViewModeDocumentButton is clicked', async () => {
diff --git a/src/plugins/discover/public/components/view_mode_toggle/view_mode_toggle.tsx b/src/plugins/discover/public/components/view_mode_toggle/view_mode_toggle.tsx
index 11351893b6a26..28eeb9f3661ff 100644
--- a/src/plugins/discover/public/components/view_mode_toggle/view_mode_toggle.tsx
+++ b/src/plugins/discover/public/components/view_mode_toggle/view_mode_toggle.tsx
@@ -63,7 +63,7 @@ export const DocumentViewModeToggle = ({
useEffect(
function checkForPatternAnalysis() {
- if (!aiopsService) {
+ if (!aiopsService || isEsqlMode) {
setShowPatternAnalysisTab(false);
return;
}
@@ -76,7 +76,7 @@ export const DocumentViewModeToggle = ({
})
.catch(() => setShowPatternAnalysisTabWrapper(false));
},
- [aiopsService, dataView, setShowPatternAnalysisTabWrapper]
+ [aiopsService, dataView, isEsqlMode, setShowPatternAnalysisTabWrapper]
);
useEffect(() => {
@@ -121,7 +121,7 @@ export const DocumentViewModeToggle = ({
)}
- {isEsqlMode || (showFieldStatisticsTab === false && showPatternAnalysisTab === false) ? (
+ {showFieldStatisticsTab === false && showPatternAnalysisTab === false ? (
) : (
diff --git a/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx b/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx
index 06aeaa42c1376..3a6f9f9c9c8ac 100644
--- a/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx
+++ b/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx
@@ -664,6 +664,7 @@ export class SavedSearchEmbeddable
query={this.input.query}
onAddFilter={searchProps.onFilter}
searchSessionId={this.input.searchSessionId}
+ isEsqlMode={isEsqlMode}
/>
,
diff --git a/test/functional/apps/discover/group4/_esql_view.ts b/test/functional/apps/discover/group4/_esql_view.ts
index a1cecdbc36d4c..9f60f4991ab4c 100644
--- a/test/functional/apps/discover/group4/_esql_view.ts
+++ b/test/functional/apps/discover/group4/_esql_view.ts
@@ -79,7 +79,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
expect(await testSubjects.exists('showQueryBarMenu')).to.be(false);
expect(await testSubjects.exists('addFilter')).to.be(false);
- expect(await testSubjects.exists('dscViewModeDocumentButton')).to.be(false);
+ expect(await testSubjects.exists('dscViewModeDocumentButton')).to.be(true);
// when Lens suggests a table, we render an ESQL based histogram
expect(await testSubjects.exists('unifiedHistogramChart')).to.be(true);
expect(await testSubjects.exists('discoverQueryHits')).to.be(true);
diff --git a/test/functional/apps/discover/group6/_view_mode_toggle.ts b/test/functional/apps/discover/group6/_view_mode_toggle.ts
index ba964c7532d70..415cb9f1fb85e 100644
--- a/test/functional/apps/discover/group6/_view_mode_toggle.ts
+++ b/test/functional/apps/discover/group6/_view_mode_toggle.ts
@@ -107,7 +107,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await testSubjects.existOrFail('dscViewModeToggle');
});
- it('should not show view mode toggle for ES|QL searches', async () => {
+ it('should still show view mode toggle for ES|QL searches', async () => {
await testSubjects.click('dscViewModeDocumentButton');
await retry.try(async () => {
@@ -119,7 +119,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await PageObjects.discover.selectTextBaseLang();
- await testSubjects.missingOrFail('dscViewModeToggle');
+ await testSubjects.existOrFail('dscViewModeToggle');
if (!useLegacyTable) {
await testSubjects.existOrFail('unifiedDataTableToolbar');
diff --git a/x-pack/plugins/data_visualizer/common/types/field_request_config.ts b/x-pack/plugins/data_visualizer/common/types/field_request_config.ts
index 43ba81eccd784..15db4c1d4832c 100644
--- a/x-pack/plugins/data_visualizer/common/types/field_request_config.ts
+++ b/x-pack/plugins/data_visualizer/common/types/field_request_config.ts
@@ -81,6 +81,7 @@ export interface FieldVisStats {
examples?: Array;
timeRangeEarliest?: number;
timeRangeLatest?: number;
+ approximate?: boolean;
}
export interface DVErrorObject {
diff --git a/x-pack/plugins/data_visualizer/common/types/field_stats.ts b/x-pack/plugins/data_visualizer/common/types/field_stats.ts
index 2aeea5c4cf033..97a2739f34ae0 100644
--- a/x-pack/plugins/data_visualizer/common/types/field_stats.ts
+++ b/x-pack/plugins/data_visualizer/common/types/field_stats.ts
@@ -96,6 +96,11 @@ export interface StringFieldStats {
sampledValues?: Bucket[];
topValuesSampleSize?: number;
topValuesSamplerShardSize?: number;
+ /**
+ * Approximate: true for when the terms are from a random subset of the source data
+ * such that result/count for each term is not deterministic every time
+ */
+ approximate?: boolean;
}
export interface DateFieldStats {
diff --git a/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/data_visualizer_stats_table.tsx b/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/data_visualizer_stats_table.tsx
index 75b7d98ec2468..74083dec0e5da 100644
--- a/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/data_visualizer_stats_table.tsx
+++ b/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/data_visualizer_stats_table.tsx
@@ -35,10 +35,6 @@ import { IndexBasedNumberContentPreview } from './components/field_data_row/numb
import { useTableSettings } from './use_table_settings';
import { TopValuesPreview } from './components/field_data_row/top_values_preview';
-import type {
- FieldVisConfig,
- FileBasedFieldVisConfig,
-} from '../../../../../common/types/field_vis_config';
import { isIndexBasedFieldVisConfig } from '../../../../../common/types/field_vis_config';
import { FileBasedNumberContentPreview } from '../field_data_row';
import { BooleanContentPreview } from './components/field_data_row';
@@ -47,12 +43,12 @@ import { DistinctValues } from './components/field_data_row/distinct_values';
import { FieldTypeIcon } from '../field_type_icon';
import './_index.scss';
import type { FieldStatisticTableEmbeddableProps } from '../../../index_data_visualizer/embeddables/grid_embeddable/types';
+import type { DataVisualizerTableItem } from './types';
const FIELD_NAME = 'fieldName';
export type ItemIdToExpandedRowMap = Record;
-export type DataVisualizerTableItem = FieldVisConfig | FileBasedFieldVisConfig;
interface DataVisualizerTableProps {
items: T[];
pageState: DataVisualizerTableState;
diff --git a/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/types/index.ts b/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/types/index.ts
index 6d9f4d5b86d28..b9a0347079e54 100644
--- a/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/types/index.ts
+++ b/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/types/index.ts
@@ -5,11 +5,15 @@
* 2.0.
*/
export type { FieldDataRowProps } from './field_data_row';
-export type {
+import type {
FieldVisConfig,
FileBasedFieldVisConfig,
MetricFieldVisStats,
} from '../../../../../../common/types/field_vis_config';
+
+export type DataVisualizerTableItem = FieldVisConfig | FileBasedFieldVisConfig;
+
+export type { FieldVisConfig, FileBasedFieldVisConfig, MetricFieldVisStats };
export {
isFileBasedFieldVisConfig,
isIndexBasedFieldVisConfig,
diff --git a/x-pack/plugins/data_visualizer/public/application/common/components/top_values/top_values.tsx b/x-pack/plugins/data_visualizer/public/application/common/components/top_values/top_values.tsx
index ef056c4c12f14..0d7d6b4c480e9 100644
--- a/x-pack/plugins/data_visualizer/public/application/common/components/top_values/top_values.tsx
+++ b/x-pack/plugins/data_visualizer/public/application/common/components/top_values/top_values.tsx
@@ -43,6 +43,8 @@ interface Props {
function getPercentLabel(percent: number): string {
if (percent >= 0.1) {
return `${roundToDecimalPlace(percent, 1)}%`;
+ } else if (percent === 0) {
+ return '0%';
} else {
return '< 0.1%';
}
@@ -69,7 +71,7 @@ export const TopValues: FC = ({
} = useDataVisualizerKibana();
if (stats === undefined || !stats.topValues) return null;
- const { fieldName, sampleCount } = stats;
+ const { fieldName, sampleCount, approximate } = stats;
const originalTopValues = (showSampledValues ? stats.sampledValues : stats.topValues) ?? [];
if (originalTopValues?.length === 0) return null;
@@ -96,12 +98,28 @@ export const TopValues: FC = ({
/>
);
}
+ /**
+ * For ES|QL, where are randomly sampling a subset from source data, then query is excuted on top of that data
+ * So the terms we get might not get the initial count
+ */
+ const method = approximate ? (
+
+ ) : (
+
+ );
return totalDocuments > (sampleCount ?? 0) ? (
@@ -115,8 +133,9 @@ export const TopValues: FC = ({
) : (
@@ -141,6 +160,7 @@ export const TopValues: FC = ({
typeof bucket.percent === 'number' ? bucket.percent : bucket.doc_count / totalDocuments,
}));
+ const shouldShowOtherCount = approximate !== true;
const topValuesOtherCountPercent =
1 - (topValues ? topValues.reduce((acc, bucket) => acc + bucket.percent, 0) : 0);
const topValuesOtherCount = Math.floor(topValuesOtherCountPercent * (sampleCount ?? 0));
@@ -246,7 +266,7 @@ export const TopValues: FC = ({
);
})
: null}
- {topValuesOtherCount > 0 ? (
+ {shouldShowOtherCount && topValuesOtherCount > 0 ? (
true;
export const IndexDataVisualizerESQL: FC = (dataVisualizerProps) => {
const { services } = useDataVisualizerKibana();
const { data } = services;
const euiTheme = useCurrentEuiTheme();
- const [query, setQuery] = useState({ esql: '' });
+ // Query that has been typed, but has not submitted with cmd + enter
+ const [localQuery, setLocalQuery] = useState(DEFAULT_ESQL_QUERY);
+ const [query, setQuery] = useState(DEFAULT_ESQL_QUERY);
const [currentDataView, setCurrentDataView] = useState();
const toggleShowEmptyFields = () => {
@@ -92,9 +95,6 @@ export const IndexDataVisualizerESQL: FC = (dataVi
}
};
- // Query that has been typed, but has not submitted with cmd + enter
- const [localQuery, setLocalQuery] = useState({ esql: '' });
-
const indexPattern = useMemo(() => {
let indexPatternFromQuery = '';
if (isESQLQuery(query)) {
@@ -105,7 +105,7 @@ export const IndexDataVisualizerESQL: FC = (dataVi
return undefined;
}
return indexPatternFromQuery;
- }, [query]);
+ }, [query?.esql]);
useEffect(
function updateAdhocDataViewFromQuery() {
@@ -169,11 +169,11 @@ export const IndexDataVisualizerESQL: FC = (dataVi
metricsStats,
timefilter,
getItemIdToExpandedRowMap,
- onQueryUpdate,
+ resetData,
limitSize,
showEmptyFields,
fieldsCountStats,
- } = useESQLDataVisualizerData(input, dataVisualizerListState, setQuery);
+ } = useESQLDataVisualizerData(input, dataVisualizerListState);
const hasValidTimeField = useMemo(
() => currentDataView?.timeFieldName !== undefined,
@@ -199,6 +199,15 @@ export const IndexDataVisualizerESQL: FC = (dataVi
setLocalQuery(q);
}
}, []);
+ const onTextLangQuerySubmit = useCallback(
+ async (q: AggregateQuery | undefined) => {
+ if (isESQLQuery(q)) {
+ resetData();
+ setQuery(q);
+ }
+ },
+ [resetData]
+ );
return (
= (dataVi
false}
+ onTextLangQuerySubmit={onTextLangQuerySubmit}
+ expandCodeEditor={expandCodeEditor}
isCodeEditorExpanded={true}
detectTimestamp={true}
hideMinimizeButton={true}
diff --git a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/embeddable_esql_field_stats_table.tsx b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/embeddable_esql_field_stats_table.tsx
index e5f6c5f3c1835..b4bcd3c0da5a9 100644
--- a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/embeddable_esql_field_stats_table.tsx
+++ b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/embeddable_esql_field_stats_table.tsx
@@ -21,51 +21,53 @@ import { EmbeddableNoResultsEmptyPrompt } from './embeddable_field_stats_no_resu
const restorableDefaults = getDefaultESQLDataVisualizerListState();
-const EmbeddableESQLFieldStatsTableWrapper = (props: ESQLDataVisualizerGridEmbeddableState) => {
- const { onTableUpdate, ...state } = props;
- const [dataVisualizerListState, setDataVisualizerListState] =
- useState>(restorableDefaults);
+const EmbeddableESQLFieldStatsTableWrapper = React.memo(
+ (props: ESQLDataVisualizerGridEmbeddableState) => {
+ const { onTableUpdate } = props;
+ const [dataVisualizerListState, setDataVisualizerListState] =
+ useState>(restorableDefaults);
- const onTableChange = useCallback(
- (update: DataVisualizerTableState) => {
- setDataVisualizerListState({ ...dataVisualizerListState, ...update });
- if (onTableUpdate) {
- onTableUpdate(update);
- }
- },
- [dataVisualizerListState, onTableUpdate]
- );
+ const onTableChange = useCallback(
+ (update: DataVisualizerTableState) => {
+ setDataVisualizerListState({ ...dataVisualizerListState, ...update });
+ if (onTableUpdate) {
+ onTableUpdate(update);
+ }
+ },
+ [dataVisualizerListState, onTableUpdate]
+ );
- const {
- configs,
- extendedColumns,
- progress,
- overallStatsProgress,
- setLastRefresh,
- getItemIdToExpandedRowMap,
- } = useESQLDataVisualizerData(state, dataVisualizerListState);
+ const {
+ configs,
+ extendedColumns,
+ progress,
+ overallStatsProgress,
+ setLastRefresh,
+ getItemIdToExpandedRowMap,
+ } = useESQLDataVisualizerData(props, dataVisualizerListState);
- useEffect(() => {
- setLastRefresh(Date.now());
- }, [state?.lastReloadRequestTime, setLastRefresh]);
+ useEffect(() => {
+ setLastRefresh(Date.now());
+ }, [props?.lastReloadRequestTime, setLastRefresh]);
- if (progress === 100 && configs.length === 0) {
- return ;
+ if (progress === 100 && configs.length === 0) {
+ return ;
+ }
+ return (
+
+ items={configs}
+ pageState={dataVisualizerListState}
+ updatePageState={onTableChange}
+ getItemIdToExpandedRowMap={getItemIdToExpandedRowMap}
+ extendedColumns={extendedColumns}
+ showPreviewByDefault={props?.showPreviewByDefault}
+ onChange={onTableUpdate}
+ loading={progress < 100}
+ overallStatsRunning={overallStatsProgress.isRunning}
+ />
+ );
}
- return (
-
- items={configs}
- pageState={dataVisualizerListState}
- updatePageState={onTableChange}
- getItemIdToExpandedRowMap={getItemIdToExpandedRowMap}
- extendedColumns={extendedColumns}
- showPreviewByDefault={state?.showPreviewByDefault}
- onChange={onTableUpdate}
- loading={progress < 100}
- overallStatsRunning={overallStatsProgress.isRunning}
- />
- );
-};
+);
// exporting as default so it be lazy-loaded
// eslint-disable-next-line import/no-default-export
export default EmbeddableESQLFieldStatsTableWrapper;
diff --git a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/embeddable_field_stats_table.tsx b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/embeddable_field_stats_table.tsx
index 96cf9c2f7c8fd..5c40b9e9c94f4 100644
--- a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/embeddable_field_stats_table.tsx
+++ b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/embeddable_field_stats_table.tsx
@@ -23,7 +23,7 @@ const restorableDefaults = getDefaultDataVisualizerListState();
const EmbeddableFieldStatsTableWrapper = (
props: Required
) => {
- const { onTableUpdate, onAddFilter, ...state } = props;
+ const { onTableUpdate, onAddFilter } = props;
const [dataVisualizerListState, setDataVisualizerListState] =
useState>(restorableDefaults);
@@ -46,11 +46,11 @@ const EmbeddableFieldStatsTableWrapper = (
progress,
overallStatsProgress,
setLastRefresh,
- } = useDataVisualizerGridData(state, dataVisualizerListState);
+ } = useDataVisualizerGridData(props, dataVisualizerListState);
useEffect(() => {
setLastRefresh(Date.now());
- }, [state?.lastReloadRequestTime, setLastRefresh]);
+ }, [props?.lastReloadRequestTime, setLastRefresh]);
const getItemIdToExpandedRowMap = useCallback(
function (itemIds: string[], items: FieldVisConfig[]): ItemIdToExpandedRowMap {
@@ -60,17 +60,17 @@ const EmbeddableFieldStatsTableWrapper = (
m[fieldName] = (
);
}
return m;
}, {} as ItemIdToExpandedRowMap);
},
- [state.dataView, searchQueryLanguage, searchString, state.totalDocuments, onAddFilter]
+ [props.dataView, searchQueryLanguage, searchString, props.totalDocuments, onAddFilter]
);
if (progress === 100 && configs.length === 0) {
@@ -83,7 +83,7 @@ const EmbeddableFieldStatsTableWrapper = (
updatePageState={onTableChange}
getItemIdToExpandedRowMap={getItemIdToExpandedRowMap}
extendedColumns={extendedColumns}
- showPreviewByDefault={state?.showPreviewByDefault}
+ showPreviewByDefault={props?.showPreviewByDefault}
onChange={onTableUpdate}
loading={progress < 100}
overallStatsRunning={overallStatsProgress.isRunning}
diff --git a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/field_stats_embeddable_wrapper.tsx b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/field_stats_embeddable_wrapper.tsx
index c07e748ce2151..4d547635eb504 100644
--- a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/field_stats_embeddable_wrapper.tsx
+++ b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/field_stats_embeddable_wrapper.tsx
@@ -4,7 +4,7 @@
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
-import React from 'react';
+import React, { useMemo } from 'react';
import { EuiEmptyPrompt } from '@elastic/eui';
import type { Required } from 'utility-types';
import { FormattedMessage } from '@kbn/i18n-react';
@@ -28,18 +28,15 @@ const EmbeddableESQLFieldStatsTableWrapper = dynamic(
const EmbeddableFieldStatsTableWrapper = dynamic(() => import('./embeddable_field_stats_table'));
function isESQLFieldStatisticTableEmbeddableState(
- input: unknown
+ input: FieldStatisticTableEmbeddableProps
): input is ESQLDataVisualizerGridEmbeddableState {
return isPopulatedObject(input, ['esql']) && input.esql === true;
}
function isFieldStatisticTableEmbeddableState(
- input: unknown
+ input: FieldStatisticTableEmbeddableProps
): input is Required {
- return (
- isPopulatedObject(input, ['dataView']) &&
- (!isPopulatedObject(input, ['esql']) || input.esql === false)
- );
+ return isPopulatedObject(input, ['dataView']) && Boolean(input.esql) === false;
}
const FieldStatisticsWrapperContent = (props: FieldStatisticTableEmbeddableProps) => {
@@ -104,17 +101,54 @@ const FieldStatisticsWrapper = (props: FieldStatisticTableEmbeddableProps) => {
unifiedSearch,
};
- const kibanaRenderServices = pick(coreStart, 'analytics', 'i18n', 'theme');
- const datePickerDeps: DatePickerDependencies = {
- ...pick(services, ['data', 'http', 'notifications', 'theme', 'uiSettings', 'i18n']),
- uiSettingsKeys: UI_SETTINGS,
- };
+ const { overridableServices } = props;
+
+ const kibanaRenderServices = useMemo(
+ () => pick(coreStart, 'analytics', 'i18n', 'theme'),
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ []
+ );
+ const servicesWithOverrides = useMemo(
+ () => ({ ...services, ...(overridableServices ?? {}) }),
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ []
+ );
+
+ const datePickerDeps: DatePickerDependencies = useMemo(
+ () => ({
+ ...pick(servicesWithOverrides, [
+ 'data',
+ 'http',
+ 'notifications',
+ 'theme',
+ 'uiSettings',
+ 'i18n',
+ ]),
+ uiSettingsKeys: UI_SETTINGS,
+ }),
+ [servicesWithOverrides]
+ );
return (
-
+
-
+
diff --git a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/types.ts b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/types.ts
index c42f6dbec0624..a703c012a0575 100644
--- a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/types.ts
+++ b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/types.ts
@@ -12,13 +12,14 @@ import type { SavedSearch } from '@kbn/saved-search-plugin/public';
import type { BehaviorSubject } from 'rxjs';
import type { DefaultEmbeddableApi } from '@kbn/embeddable-plugin/public';
import type { SerializedTitles } from '@kbn/presentation-publishing';
+import type { DataPublicPluginStart } from '@kbn/data-plugin/public';
import type { DataVisualizerTableState } from '../../../../../common/types';
import type { SamplingOption } from '../../../../../common/types/field_stats';
import type { DATA_VISUALIZER_INDEX_VIEWER } from '../../constants/index_data_visualizer_viewer';
import type { DataVisualizerIndexBasedAppState } from '../../types/index_data_visualizer_state';
import type { DataVisualizerStartDependencies } from '../../../common/types/data_visualizer_plugin';
import type { ESQLQuery } from '../../search_strategy/requests/esql_utils';
-import type { DataVisualizerTableItem } from '../../../common/components/stats_table/data_visualizer_stats_table';
+import type { DataVisualizerTableItem } from '../../../common/components/stats_table/types';
export interface FieldStatisticTableEmbeddableProps {
/**
@@ -92,6 +93,10 @@ export interface FieldStatisticTableEmbeddableProps {
shouldGetSubfields?: boolean;
lastReloadRequestTime?: number;
onTableUpdate?: (update: Partial) => void;
+ /**
+ * Inject Kibana services to override in Kibana provider context
+ */
+ overridableServices?: { data: DataPublicPluginStart };
renderFieldName?: (fieldName: string, item: DataVisualizerTableItem) => JSX.Element;
}
diff --git a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/hooks/esql/use_data_visualizer_esql_data.tsx b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/hooks/esql/use_data_visualizer_esql_data.tsx
index 59638a485a3f0..8513df90d682b 100644
--- a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/hooks/esql/use_data_visualizer_esql_data.tsx
+++ b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/hooks/esql/use_data_visualizer_esql_data.tsx
@@ -17,9 +17,9 @@ import useObservable from 'react-use/lib/useObservable';
import { SEARCH_QUERY_LANGUAGE } from '@kbn/ml-query-utils';
import type { KibanaExecutionContext } from '@kbn/core-execution-context-common';
import { useExecutionContext } from '@kbn/kibana-react-plugin/public';
-import type { AggregateQuery } from '@kbn/es-query';
+import type { AggregateQuery, Query } from '@kbn/es-query';
import { useTimeBuckets } from '@kbn/ml-time-buckets';
-import type { SamplingOption } from '../../../../../common/types/field_stats';
+import { buildEsQuery } from '@kbn/es-query';
import type { FieldVisConfig } from '../../../../../common/types/field_vis_config';
import type { SupportedFieldType } from '../../../../../common/types/job_field_type';
import type { ItemIdToExpandedRowMap } from '../../../common/components/stats_table';
@@ -44,18 +44,14 @@ import type {
import { getDefaultPageState } from '../../constants/index_data_visualizer_viewer';
import { DEFAULT_ESQL_LIMIT } from '../../constants/esql_constants';
+type AnyQuery = Query | AggregateQuery;
+
const defaultSearchQuery = {
match_all: {},
};
const FALLBACK_ESQL_QUERY: ESQLQuery = { esql: '' };
-const DEFAULT_SAMPLING_OPTION: SamplingOption = {
- mode: 'random_sampling',
- seed: '',
- probability: 0,
-};
const DEFAULT_LIMIT_SIZE = '10000';
-
const defaults = getDefaultPageState();
export const getDefaultESQLDataVisualizerListState = (
@@ -82,8 +78,7 @@ export const getDefaultESQLDataVisualizerListState = (
});
export const useESQLDataVisualizerData = (
input: ESQLDataVisualizerGridEmbeddableState,
- dataVisualizerListState: ESQLDataVisualizerIndexBasedAppState,
- setQuery?: React.Dispatch>
+ dataVisualizerListState: ESQLDataVisualizerIndexBasedAppState
) => {
const [lastRefresh, setLastRefresh] = useState(0);
const { services } = useDataVisualizerKibana();
@@ -112,20 +107,31 @@ export const useESQLDataVisualizerData = (
autoRefreshSelector: true,
});
- const { currentDataView, query, visibleFieldNames, indexPattern } = useMemo(
- () => ({
- currentSavedSearch: input?.savedSearch,
- currentDataView: input.dataView,
- query: input?.query ?? FALLBACK_ESQL_QUERY,
- visibleFieldNames: input?.visibleFieldNames ?? [],
- currentFilters: input?.filters,
- fieldsToFetch: input?.fieldsToFetch,
- /** By default, use random sampling **/
- samplingOption: input?.samplingOption ?? DEFAULT_SAMPLING_OPTION,
- indexPattern: input?.indexPattern,
- }),
- [input]
- );
+ const { currentDataView, parentQuery, parentFilters, query, visibleFieldNames, indexPattern } =
+ useMemo(() => {
+ let q = FALLBACK_ESQL_QUERY;
+
+ if (input?.query && isESQLQuery(input?.query)) q = input.query;
+ if (input?.savedSearch && isESQLQuery(input.savedSearch.searchSource.getField('query'))) {
+ q = input.savedSearch.searchSource.getField('query') as ESQLQuery;
+ }
+ return {
+ currentDataView: input.dataView,
+ query: q ?? FALLBACK_ESQL_QUERY,
+ // It's possible that in a dashboard setting, we will have additional filters and queries
+ parentQuery: input?.query,
+ parentFilters: input?.filters,
+ visibleFieldNames: input?.visibleFieldNames ?? [],
+ indexPattern: input?.indexPattern,
+ };
+ }, [
+ input.query,
+ input.savedSearch,
+ input.dataView,
+ input?.filters,
+ input?.visibleFieldNames,
+ input?.indexPattern,
+ ]);
const restorableDefaults = useMemo(
() => getDefaultESQLDataVisualizerListState(dataVisualizerListState),
@@ -170,8 +176,25 @@ export const useESQLDataVisualizerData = (
const aggInterval = buckets.getInterval();
- const filter = currentDataView?.timeFieldName
- ? ({
+ let filter: QueryDslQueryContainer = buildEsQuery(
+ input.dataView,
+ (Array.isArray(parentQuery) ? parentQuery : [parentQuery]) as AnyQuery | AnyQuery[],
+ parentFilters ?? []
+ );
+
+ if (currentDataView?.timeFieldName) {
+ if (Array.isArray(filter?.bool?.filter)) {
+ filter.bool!.filter!.push({
+ range: {
+ [currentDataView.timeFieldName]: {
+ format: 'strict_date_optional_time',
+ gte: timefilter.getTime().from,
+ lte: timefilter.getTime().to,
+ },
+ },
+ });
+ } else {
+ filter = {
bool: {
must: [],
filter: [
@@ -188,8 +211,9 @@ export const useESQLDataVisualizerData = (
should: [],
must_not: [],
},
- } as QueryDslQueryContainer)
- : undefined;
+ } as QueryDslQueryContainer;
+ }
+ }
return {
earliest,
latest,
@@ -211,7 +235,7 @@ export const useESQLDataVisualizerData = (
timefilter,
currentDataView?.id,
// eslint-disable-next-line react-hooks/exhaustive-deps
- JSON.stringify(query),
+ JSON.stringify({ query, parentQuery, parentFilters }),
indexPattern,
lastRefresh,
limitSize,
@@ -591,8 +615,8 @@ export const useESQLDataVisualizerData = (
[totalCount, overallStatsProgress.loaded, fieldStatsProgress.loaded]
);
- const onQueryUpdate = useCallback(
- async (q?: AggregateQuery) => {
+ const resetData = useCallback(
+ (q?: AggregateQuery) => {
// When user submits a new query
// resets all current requests and other data
if (cancelOverallStatsRequest) {
@@ -605,11 +629,8 @@ export const useESQLDataVisualizerData = (
setFieldStatFieldsToFetch(undefined);
setMetricConfigs(defaults.metricConfigs);
setNonMetricConfigs(defaults.nonMetricConfigs);
- if (isESQLQuery(q) && setQuery) {
- setQuery(q);
- }
},
- [cancelFieldStatsRequest, cancelOverallStatsRequest, setQuery]
+ [cancelFieldStatsRequest, cancelOverallStatsRequest]
);
return {
@@ -628,7 +649,7 @@ export const useESQLDataVisualizerData = (
getItemIdToExpandedRowMap,
cancelOverallStatsRequest,
cancelFieldStatsRequest,
- onQueryUpdate,
+ resetData,
limitSize,
showEmptyFields,
fieldsCountStats,
diff --git a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/hooks/esql/use_esql_overall_stats_data.ts b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/hooks/esql/use_esql_overall_stats_data.ts
index 06e7737a7d2f8..4634c1991de8b 100644
--- a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/hooks/esql/use_esql_overall_stats_data.ts
+++ b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/hooks/esql/use_esql_overall_stats_data.ts
@@ -5,7 +5,7 @@
* 2.0.
*/
-import { ESQL_SEARCH_STRATEGY, KBN_FIELD_TYPES } from '@kbn/data-plugin/common';
+import { ESQL_ASYNC_SEARCH_STRATEGY, KBN_FIELD_TYPES } from '@kbn/data-plugin/common';
import type { QueryDslQueryContainer } from '@kbn/data-views-plugin/common/types';
import type { AggregateQuery } from '@kbn/es-query';
import { i18n } from '@kbn/i18n';
@@ -16,6 +16,7 @@ import type { ISearchOptions } from '@kbn/search-types';
import type { TimeBucketsInterval } from '@kbn/ml-time-buckets';
import { getESQLWithSafeLimit, appendToESQLQuery } from '@kbn/esql-utils';
import { isDefined } from '@kbn/ml-is-defined';
+import { ESQL_SAFE_LIMIT } from '@kbn/unified-field-list/src/constants';
import { OMIT_FIELDS } from '../../../../../common/constants';
import type {
DataStatsFetchProgress,
@@ -97,7 +98,10 @@ const getESQLDocumentCountStats = async (
},
};
try {
- const esqlResults = await runRequest(request, { ...(searchOptions ?? {}), strategy: 'esql' });
+ const esqlResults = await runRequest(request, {
+ ...(searchOptions ?? {}),
+ strategy: ESQL_ASYNC_SEARCH_STRATEGY,
+ });
let totalCount = 0;
const _buckets: Record = {};
// @ts-expect-error ES types needs to be updated with columns and values as part of esql response
@@ -142,7 +146,10 @@ const getESQLDocumentCountStats = async (
},
};
try {
- const esqlResults = await runRequest(request, { ...(searchOptions ?? {}), strategy: 'esql' });
+ const esqlResults = await runRequest(request, {
+ ...(searchOptions ?? {}),
+ strategy: ESQL_ASYNC_SEARCH_STRATEGY,
+ });
return {
request,
documentCountStats: undefined,
@@ -266,12 +273,12 @@ export const useESQLOverallStatsData = (
{
params: {
// Doing this to match with the default limit
- query: esqlBaseQuery,
+ query: getESQLWithSafeLimit(esqlBaseQuery, ESQL_SAFE_LIMIT),
...(filter ? { filter } : {}),
dropNullColumns: true,
},
},
- { strategy: ESQL_SEARCH_STRATEGY }
+ { strategy: ESQL_ASYNC_SEARCH_STRATEGY }
)) as ESQLResponse | undefined;
setQueryHistoryStatus(false);
@@ -446,13 +453,13 @@ export const useESQLOverallStatsData = (
setTableData({ exampleDocs });
}
} catch (error) {
+ setQueryHistoryStatus(false);
// If error already handled in sub functions, no need to propogate
if (error.name !== 'AbortError' && error.handled !== true) {
toasts.addError(error, {
title: fieldStatsErrorTitle,
});
}
- setQueryHistoryStatus(false);
// Log error to console for better debugging
// eslint-disable-next-line no-console
console.error(`${fieldStatsErrorTitle}: fetchOverallStats`, error);
diff --git a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/hooks/use_data_visualizer_grid_data.ts b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/hooks/use_data_visualizer_grid_data.ts
index 699cfaf787295..6cc039fd08b42 100644
--- a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/hooks/use_data_visualizer_grid_data.ts
+++ b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/hooks/use_data_visualizer_grid_data.ts
@@ -109,17 +109,16 @@ export const useDataVisualizerGridData = (
}, [security]);
const { currentSavedSearch, currentDataView, currentQuery, currentFilters, samplingOption } =
- useMemo(
- () => ({
+ useMemo(() => {
+ return {
currentSavedSearch: input?.savedSearch,
currentDataView: input.dataView,
currentQuery: input?.query,
currentFilters: input?.filters,
/** By default, use random sampling **/
samplingOption: input?.samplingOption ?? DEFAULT_SAMPLING_OPTION,
- }),
- [input]
- );
+ };
+ }, [input?.savedSearch, input.dataView, input?.query, input?.filters, input?.samplingOption]);
const dataViewFields: DataViewField[] = useMemo(() => currentDataView.fields, [currentDataView]);
const { visibleFieldNames, fieldsToFetch } = useMemo(() => {
diff --git a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/esql_requests/get_boolean_field_stats.ts b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/esql_requests/get_boolean_field_stats.ts
index 80941e4ff37fd..a91e42e2f8213 100644
--- a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/esql_requests/get_boolean_field_stats.ts
+++ b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/esql_requests/get_boolean_field_stats.ts
@@ -7,7 +7,7 @@
import type { UseCancellableSearch } from '@kbn/ml-cancellable-search';
import type { QueryDslQueryContainer } from '@kbn/data-views-plugin/common/types';
-import { ESQL_SEARCH_STRATEGY } from '@kbn/data-plugin/common';
+import { ESQL_ASYNC_SEARCH_STRATEGY } from '@kbn/data-plugin/common';
import pLimit from 'p-limit';
import { appendToESQLQuery } from '@kbn/esql-utils';
import type { Column } from '../../hooks/esql/use_esql_overall_stats_data';
@@ -57,7 +57,7 @@ export const getESQLBooleanFieldStats = async ({
if (booleanFields.length > 0) {
const booleanTopTermsResp = await Promise.allSettled(
booleanFields.map(({ request }) =>
- limiter(() => runRequest(request, { strategy: ESQL_SEARCH_STRATEGY }))
+ limiter(() => runRequest(request, { strategy: ESQL_ASYNC_SEARCH_STRATEGY }))
)
);
if (booleanTopTermsResp) {
diff --git a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/esql_requests/get_count_and_cardinality.ts b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/esql_requests/get_count_and_cardinality.ts
index 80d3f56c4b907..fc4db29b758c4 100644
--- a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/esql_requests/get_count_and_cardinality.ts
+++ b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/esql_requests/get_count_and_cardinality.ts
@@ -4,7 +4,7 @@
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
-import { ESQL_SEARCH_STRATEGY } from '@kbn/data-plugin/common';
+import { ESQL_ASYNC_SEARCH_STRATEGY } from '@kbn/data-plugin/common';
import pLimit from 'p-limit';
import { chunk } from 'lodash';
import { isDefined } from '@kbn/ml-is-defined';
@@ -50,8 +50,7 @@ const getESQLOverallStatsInChunk = async ({
let startIndex = 0;
/** Example query:
* from {indexPattern} | LIMIT {limitSize}
- * | EVAL `ne_{aggregableField}` = MV_MIN({aggregableField}),
- * | STATs `{aggregableField}_count` = COUNT(`ne_{aggregableField}`),
+ * | STATs `{aggregableField}_count` = COUNT(MV_MIN(`{aggregableField}`)),
* `{aggregableField}_cardinality` = COUNT_DISTINCT({aggregableField}),
* `{nonAggregableField}_count` = COUNT({nonAggregableField})
*/
@@ -66,15 +65,11 @@ const getESQLOverallStatsInChunk = async ({
// Ex: for 2 docs, count(fieldName) might return 5
// So we need to do count(EVAL(MV_MIN(fieldName))) instead
// to get accurate % of rows where field value exists
- evalQuery: `${getSafeESQLName(`ne_${field.name}`)} = MV_MIN(${getSafeESQLName(
- `${field.name}`
- )})`,
- query: `${getSafeESQLName(`${field.name}_count`)} = COUNT(${getSafeESQLName(
- `ne_${field.name}`
- )}),
- ${getSafeESQLName(`${field.name}_cardinality`)} = COUNT_DISTINCT(${getSafeESQLName(
+ query: `${getSafeESQLName(`${field.name}_count`)} = COUNT(MV_MIN(${getSafeESQLName(
field.name
- )})`,
+ )})), ${getSafeESQLName(
+ `${field.name}_cardinality`
+ )} = COUNT_DISTINCT(${getSafeESQLName(field.name)})`,
};
// +2 for count, and count_dictinct
startIndex += 2;
@@ -93,17 +88,9 @@ const getESQLOverallStatsInChunk = async ({
}
});
- const evalQuery = fieldsToFetch
- .map((field) => field.evalQuery)
- .filter(isDefined)
- .join(',');
-
let countQuery = fieldsToFetch.length > 0 ? '| STATS ' : '';
countQuery += fieldsToFetch.map((field) => field.query).join(',');
- const query = appendToESQLQuery(
- esqlBaseQueryWithLimit,
- (evalQuery ? ' | EVAL ' + evalQuery : '') + countQuery
- );
+ const query = appendToESQLQuery(esqlBaseQueryWithLimit, countQuery);
const request = {
params: {
@@ -113,7 +100,7 @@ const getESQLOverallStatsInChunk = async ({
};
try {
- const esqlResults = await runRequest(request, { strategy: ESQL_SEARCH_STRATEGY });
+ const esqlResults = await runRequest(request, { strategy: ESQL_ASYNC_SEARCH_STRATEGY });
const stats = {
aggregatableExistsFields: [] as AggregatableField[],
aggregatableNotExistsFields: [] as AggregatableField[],
diff --git a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/esql_requests/get_date_field_stats.ts b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/esql_requests/get_date_field_stats.ts
index 4b160d7c18fbb..a7ba5a623e5bf 100644
--- a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/esql_requests/get_date_field_stats.ts
+++ b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/esql_requests/get_date_field_stats.ts
@@ -7,7 +7,7 @@
import type { UseCancellableSearch } from '@kbn/ml-cancellable-search';
import type { QueryDslQueryContainer } from '@kbn/data-views-plugin/common/types';
-import { ESQL_SEARCH_STRATEGY } from '@kbn/data-plugin/common';
+import { ESQL_ASYNC_SEARCH_STRATEGY } from '@kbn/data-plugin/common';
import { appendToESQLQuery } from '@kbn/esql-utils';
import type { Column } from '../../hooks/esql/use_esql_overall_stats_data';
import { getSafeESQLName } from '../requests/esql_utils';
@@ -45,7 +45,7 @@ export const getESQLDateFieldStats = async ({
},
};
try {
- const dateFieldsResp = await runRequest(request, { strategy: ESQL_SEARCH_STRATEGY });
+ const dateFieldsResp = await runRequest(request, { strategy: ESQL_ASYNC_SEARCH_STRATEGY });
if (dateFieldsResp) {
return dateFields.map(({ field: dateField }, idx) => {
diff --git a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/esql_requests/get_keyword_fields.ts b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/esql_requests/get_keyword_fields.ts
index 02f9370de7b80..46756a5ef7b4e 100644
--- a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/esql_requests/get_keyword_fields.ts
+++ b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/esql_requests/get_keyword_fields.ts
@@ -7,7 +7,7 @@
import type { UseCancellableSearch } from '@kbn/ml-cancellable-search';
import type { QueryDslQueryContainer } from '@kbn/data-views-plugin/common/types';
-import { ESQL_SEARCH_STRATEGY } from '@kbn/data-plugin/common';
+import { ESQL_ASYNC_SEARCH_STRATEGY } from '@kbn/data-plugin/common';
import pLimit from 'p-limit';
import { appendToESQLQuery } from '@kbn/esql-utils';
import type { Column } from '../../hooks/esql/use_esql_overall_stats_data';
@@ -36,7 +36,7 @@ export const getESQLKeywordFieldStats = async ({
esqlBaseQuery,
`| STATS ${getSafeESQLName(`${field.name}_in_records`)} = count(MV_MIN(${getSafeESQLName(
field.name
- )})), ${getSafeESQLName(`${field.name}_in_values`)} = count(${getSafeESQLName(field.name)})
+ )}))
BY ${getSafeESQLName(field.name)}
| SORT ${getSafeESQLName(`${field.name}_in_records`)} DESC
| LIMIT 10`
@@ -55,7 +55,7 @@ export const getESQLKeywordFieldStats = async ({
if (keywordFields.length > 0) {
const keywordTopTermsResp = await Promise.allSettled(
keywordFields.map(({ request }) =>
- limiter(() => runRequest(request, { strategy: ESQL_SEARCH_STRATEGY }))
+ limiter(() => runRequest(request, { strategy: ESQL_ASYNC_SEARCH_STRATEGY }))
)
);
if (keywordTopTermsResp) {
@@ -70,24 +70,19 @@ export const getESQLKeywordFieldStats = async ({
if (results) {
const topValuesSampleSize = results.reduce((acc, row) => {
- return row[1] + acc;
+ return row[0] + acc;
}, 0);
- const sampledValues = results.map((row) => ({
- key: row[2],
- doc_count: row[1],
- }));
-
const terms = results.map((row) => ({
- key: row[2],
+ key: row[1],
doc_count: row[0],
}));
return {
fieldName: field.name,
topValues: terms,
- sampledValues,
isTopValuesSampled: true,
+ approximate: true,
topValuesSampleSize,
} as StringFieldStats;
}
diff --git a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/esql_requests/get_numeric_field_stats.ts b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/esql_requests/get_numeric_field_stats.ts
index c943ed042fe95..2a83954503730 100644
--- a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/esql_requests/get_numeric_field_stats.ts
+++ b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/esql_requests/get_numeric_field_stats.ts
@@ -7,7 +7,7 @@
import type { UseCancellableSearch } from '@kbn/ml-cancellable-search';
import type { QueryDslQueryContainer } from '@kbn/data-views-plugin/common/types';
-import { ESQL_SEARCH_STRATEGY } from '@kbn/data-plugin/common';
+import { ESQL_ASYNC_SEARCH_STRATEGY } from '@kbn/data-plugin/common';
import { appendToESQLQuery } from '@kbn/esql-utils';
import { chunk } from 'lodash';
import pLimit from 'p-limit';
@@ -74,7 +74,7 @@ const getESQLNumericFieldStatsInChunk = async ({
},
};
try {
- const fieldStatsResp = await runRequest(request, { strategy: ESQL_SEARCH_STRATEGY });
+ const fieldStatsResp = await runRequest(request, { strategy: ESQL_ASYNC_SEARCH_STRATEGY });
if (fieldStatsResp) {
const values = fieldStatsResp.rawResponse.values[0];
diff --git a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/requests/esql_utils.ts b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/requests/esql_utils.ts
index fa2182f0bbc6e..05ebd45786021 100644
--- a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/requests/esql_utils.ts
+++ b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/requests/esql_utils.ts
@@ -23,7 +23,7 @@ export const getSafeESQLName = (str: string) => {
};
export function isESQLQuery(arg: unknown): arg is ESQLQuery {
- return isPopulatedObject(arg, ['esql']);
+ return isPopulatedObject(arg, ['esql']) && typeof arg.esql === 'string';
}
export const PERCENTS = Array.from(
Array(MAX_PERCENT / PERCENTILE_SPACING + 1),
diff --git a/x-pack/plugins/data_visualizer/tsconfig.json b/x-pack/plugins/data_visualizer/tsconfig.json
index 70d967d2a7128..5a166df52eed2 100644
--- a/x-pack/plugins/data_visualizer/tsconfig.json
+++ b/x-pack/plugins/data_visualizer/tsconfig.json
@@ -81,7 +81,8 @@
"@kbn/react-kibana-context-theme",
"@kbn/presentation-publishing",
"@kbn/shared-ux-utility",
- "@kbn/search-types"
+ "@kbn/search-types",
+ "@kbn/unified-field-list"
],
"exclude": [
"target/**/*",
diff --git a/x-pack/plugins/translations/translations/fr-FR.json b/x-pack/plugins/translations/translations/fr-FR.json
index b5074f2d79934..31c1af10f51b9 100644
--- a/x-pack/plugins/translations/translations/fr-FR.json
+++ b/x-pack/plugins/translations/translations/fr-FR.json
@@ -13113,8 +13113,6 @@
"xpack.dataVisualizer.dataGrid.field.metricDistributionChart.tooltipValueBetweenLabel": "{percent} % des documents ont des valeurs comprises entre {minValFormatted} et {maxValFormatted}",
"xpack.dataVisualizer.dataGrid.field.metricDistributionChart.tooltipValueEqualLabel": "{percent} % des documents ont une valeur de {valFormatted}",
"xpack.dataVisualizer.dataGrid.field.removeFilterAriaLabel": "Exclure {fieldName} : \"{value}\"",
- "xpack.dataVisualizer.dataGrid.field.topValues.calculatedFromSampleRecordsLabel": "Calculé à partir de {sampledDocumentsFormatted} {sampledDocuments, plural, one {exemple d'enregistrement} other {exemples d'enregistrement}}.",
- "xpack.dataVisualizer.dataGrid.field.topValues.calculatedFromTotalRecordsLabel": "Calculé à partir de {totalDocumentsFormatted} {totalDocuments, plural, one {enregistrement} other {enregistrements}}.",
"xpack.dataVisualizer.dataGrid.fieldExpandedRow.choroplethMapTopValues.calculatedFromSampleRecordsLabel": "Calculé à partir de {sampledDocumentsFormatted} {sampledDocuments, plural, one {exemple d'enregistrement} other {exemples d'enregistrement}}.",
"xpack.dataVisualizer.dataGrid.fieldExpandedRow.choroplethMapTopValues.calculatedFromTotalRecordsLabel": "Calculé à partir de {totalDocumentsFormatted} {totalDocuments, plural, one {enregistrement} other {enregistrements}}.",
"xpack.dataVisualizer.dataGrid.fieldExpandedRow.numberContent.displayingPercentilesLabel": "Affichage de {minPercent} - {maxPercent} centiles",
diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json
index d9ff0f4932c25..c63d94591fe7b 100644
--- a/x-pack/plugins/translations/translations/ja-JP.json
+++ b/x-pack/plugins/translations/translations/ja-JP.json
@@ -13094,8 +13094,6 @@
"xpack.dataVisualizer.dataGrid.field.metricDistributionChart.tooltipValueBetweenLabel": "{percent}% のドキュメントに {minValFormatted} から {maxValFormatted} の間の値があります",
"xpack.dataVisualizer.dataGrid.field.metricDistributionChart.tooltipValueEqualLabel": "{percent}% のドキュメントに {valFormatted} の値があります",
"xpack.dataVisualizer.dataGrid.field.removeFilterAriaLabel": "{fieldName}の除外:\"{value}\"",
- "xpack.dataVisualizer.dataGrid.field.topValues.calculatedFromSampleRecordsLabel": "{sampledDocumentsFormatted}サンプル{sampledDocuments, plural, other {レコード}}から計算されました。",
- "xpack.dataVisualizer.dataGrid.field.topValues.calculatedFromTotalRecordsLabel": "{totalDocumentsFormatted} {totalDocuments, plural, other {レコード}}から計算されました。",
"xpack.dataVisualizer.dataGrid.fieldExpandedRow.choroplethMapTopValues.calculatedFromSampleRecordsLabel": "{sampledDocumentsFormatted}サンプル{sampledDocuments, plural, other {レコード}}から計算されました。",
"xpack.dataVisualizer.dataGrid.fieldExpandedRow.choroplethMapTopValues.calculatedFromTotalRecordsLabel": "{totalDocumentsFormatted} {totalDocuments, plural, other {レコード}}から計算されました。",
"xpack.dataVisualizer.dataGrid.fieldExpandedRow.numberContent.displayingPercentilesLabel": "{minPercent} - {maxPercent} パーセンタイルを表示中",
diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json
index 5ddb8e643a359..4b7fcc5ca9c60 100644
--- a/x-pack/plugins/translations/translations/zh-CN.json
+++ b/x-pack/plugins/translations/translations/zh-CN.json
@@ -13119,8 +13119,6 @@
"xpack.dataVisualizer.dataGrid.field.metricDistributionChart.tooltipValueBetweenLabel": "{percent}% 的文档具有介于 {minValFormatted} 和 {maxValFormatted} 之间的值",
"xpack.dataVisualizer.dataGrid.field.metricDistributionChart.tooltipValueEqualLabel": "{percent}% 的文档的值为 {valFormatted}",
"xpack.dataVisualizer.dataGrid.field.removeFilterAriaLabel": "筛除 {fieldName}:“{value}”",
- "xpack.dataVisualizer.dataGrid.field.topValues.calculatedFromSampleRecordsLabel": "基于 {sampledDocumentsFormatted} 个样例{sampledDocuments, plural, other {记录}}计算。",
- "xpack.dataVisualizer.dataGrid.field.topValues.calculatedFromTotalRecordsLabel": "基于 {totalDocumentsFormatted} 个样例{totalDocuments, plural, other {记录}}计算。",
"xpack.dataVisualizer.dataGrid.fieldExpandedRow.choroplethMapTopValues.calculatedFromSampleRecordsLabel": "基于 {sampledDocumentsFormatted} 个样例{sampledDocuments, plural, other {记录}}计算。",
"xpack.dataVisualizer.dataGrid.fieldExpandedRow.choroplethMapTopValues.calculatedFromTotalRecordsLabel": "基于 {totalDocumentsFormatted} 个样例{totalDocuments, plural, other {记录}}计算。",
"xpack.dataVisualizer.dataGrid.fieldExpandedRow.numberContent.displayingPercentilesLabel": "正在显示 {minPercent} - {maxPercent} 百分位数",
diff --git a/x-pack/test/functional/apps/ml/data_visualizer/esql_data_visualizer.ts b/x-pack/test/functional/apps/ml/data_visualizer/esql_data_visualizer.ts
index b4eebbc48b231..f6fe276ac33b7 100644
--- a/x-pack/test/functional/apps/ml/data_visualizer/esql_data_visualizer.ts
+++ b/x-pack/test/functional/apps/ml/data_visualizer/esql_data_visualizer.ts
@@ -91,7 +91,7 @@ const esqlFarequoteData = {
existsInDocs: true,
aggregatable: true,
loading: false,
- exampleCount: 11,
+ exampleCount: 10,
docCountFormatted: '86,274 (100%)',
viewableInLens: false,
},
@@ -175,7 +175,7 @@ const esqlSampleLogData: TestData = {
aggregatable: true,
loading: false,
docCountFormatted: '143 (100%)',
- exampleCount: 11,
+ exampleCount: 10,
viewableInLens: false,
},
],
diff --git a/x-pack/test_serverless/functional/test_suites/common/discover/esql/_esql_view.ts b/x-pack/test_serverless/functional/test_suites/common/discover/esql/_esql_view.ts
index 8a0fec8355571..6ce8021024366 100644
--- a/x-pack/test_serverless/functional/test_suites/common/discover/esql/_esql_view.ts
+++ b/x-pack/test_serverless/functional/test_suites/common/discover/esql/_esql_view.ts
@@ -79,7 +79,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await testSubjects.missingOrFail('showQueryBarMenu');
await testSubjects.missingOrFail('addFilter');
- await testSubjects.missingOrFail('dscViewModeDocumentButton');
+ await testSubjects.existOrFail('dscViewModeToggle');
+ await testSubjects.existOrFail('dscViewModeDocumentButton');
// when Lens suggests a table, we render an ESQL based histogram
await testSubjects.existOrFail('unifiedHistogramChart');
await testSubjects.existOrFail('discoverQueryHits');
From 23952db2bb3f687ed2411f3a2714401d502e0b0c Mon Sep 17 00:00:00 2001
From: Shahzad
Date: Mon, 3 Jun 2024 22:01:22 +0200
Subject: [PATCH 17/82] [Synthetics]Lightweight monitors allow 10 and 30
seconds schedules (#184380)
## Summary
Lightweight options
browser monitor options
Tested and seems to be working pretty nicely in synthetics service
Reflected in table as well
---
.../common/constants/monitor_defaults.ts | 3 ++
.../common/components/monitor_inspect.tsx | 4 +-
.../monitor_add_edit/form/defaults.tsx | 5 ++
.../monitor_add_edit/form/field_config.tsx | 53 ++++++++++++++-----
.../monitor_add_edit/form/formatter.ts | 17 +++++-
.../monitor_add_edit/steps/index.tsx | 7 +--
.../steps/inspect_monitor_portal.tsx | 4 +-
.../components/monitor_add_edit/types.ts | 1 +
.../public/hooks/use_date_format.test.tsx | 6 +--
.../public/hooks/use_date_format.ts | 2 +-
.../monitor_cruds/monitor_validation.test.ts | 2 +-
.../migrations/monitors/8.8.0.test.ts | 4 +-
12 files changed, 77 insertions(+), 31 deletions(-)
diff --git a/x-pack/plugins/observability_solution/synthetics/common/constants/monitor_defaults.ts b/x-pack/plugins/observability_solution/synthetics/common/constants/monitor_defaults.ts
index add7eb2743cef..ccc8ab409420e 100644
--- a/x-pack/plugins/observability_solution/synthetics/common/constants/monitor_defaults.ts
+++ b/x-pack/plugins/observability_solution/synthetics/common/constants/monitor_defaults.ts
@@ -115,8 +115,11 @@ export const PROFILES_MAP = PROFILE_VALUES.reduce((acc, profile) => {
return acc;
}, {} as { [key: string]: ThrottlingConfig });
+export const ALLOWED_SCHEDULES_IN_SECONDS = ['10s', '30s'];
+
export const ALLOWED_SCHEDULES_IN_MINUTES = [
'1',
+ '2',
'3',
'5',
'10',
diff --git a/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/common/components/monitor_inspect.tsx b/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/common/components/monitor_inspect.tsx
index 6fa6bf7d320ee..f7fff9c9ce332 100644
--- a/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/common/components/monitor_inspect.tsx
+++ b/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/common/components/monitor_inspect.tsx
@@ -27,12 +27,12 @@ import {
import { ClientPluginsStart } from '../../../../../plugin';
import { useSyntheticsSettingsContext } from '../../../contexts';
import { LoadingState } from '../../monitors_page/overview/overview/monitor_detail_flyout';
-import { MonitorTypeEnum, MonitorFields } from '../../../../../../common/runtime_types';
+import { MonitorTypeEnum, SyntheticsMonitor } from '../../../../../../common/runtime_types';
import { inspectMonitorAPI, MonitorInspectResponse } from '../../../state/monitor_management/api';
interface InspectorProps {
isValid: boolean;
- monitorFields: MonitorFields;
+ monitorFields: SyntheticsMonitor;
}
export const MonitorInspectWrapper = (props: InspectorProps) => {
const {
diff --git a/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitor_add_edit/form/defaults.tsx b/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitor_add_edit/form/defaults.tsx
index f24117f101666..5a4071182a4b4 100644
--- a/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitor_add_edit/form/defaults.tsx
+++ b/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitor_add_edit/form/defaults.tsx
@@ -65,6 +65,11 @@ export const formatDefaultFormValues = (monitor?: SyntheticsMonitor) => {
...monitor,
};
+ const schedule = monitor[ConfigKey.SCHEDULE];
+ if (schedule?.unit === 's') {
+ schedule.number = `${schedule.number}s`;
+ }
+
// handle default monitor types from Uptime, which don't contain `ConfigKey.FORM_MONITOR_TYPE`
if (!formMonitorType) {
formMonitorType =
diff --git a/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitor_add_edit/form/field_config.tsx b/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitor_add_edit/form/field_config.tsx
index c1f74b27b88fa..7e24a0726a829 100644
--- a/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitor_add_edit/form/field_config.tsx
+++ b/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitor_add_edit/form/field_config.tsx
@@ -80,12 +80,24 @@ import {
RequestBodyCheck,
SourceType,
} from '../types';
-import { AlertConfigKey, ALLOWED_SCHEDULES_IN_MINUTES } from '../constants';
+import {
+ AlertConfigKey,
+ ALLOWED_SCHEDULES_IN_MINUTES,
+ ALLOWED_SCHEDULES_IN_SECONDS,
+} from '../constants';
import { getDefaultFormFields } from './defaults';
import { validate, validateHeaders, WHOLE_NUMBERS_ONLY, FLOATS_ONLY } from './validation';
import { KeyValuePairsFieldProps } from '../fields/key_value_field';
-const getScheduleContent = (value: number) => {
+const getScheduleContent = (value: number, seconds?: boolean) => {
+ if (seconds) {
+ return i18n.translate('xpack.synthetics.monitorConfig.schedule.seconds.label', {
+ defaultMessage: 'Every {value, number} {value, plural, one {second} other {seconds}}',
+ values: {
+ value,
+ },
+ });
+ }
if (value > 60) {
return i18n.translate('xpack.synthetics.monitorConfig.schedule.label', {
defaultMessage: 'Every {value, number} {value, plural, one {hour} other {hours}}',
@@ -103,10 +115,25 @@ const getScheduleContent = (value: number) => {
}
};
-const SCHEDULES = ALLOWED_SCHEDULES_IN_MINUTES.map((value) => ({
- value,
- text: getScheduleContent(parseInt(value, 10)),
-}));
+const getSchedules = (monitorType?: MonitorTypeEnum) => {
+ const minutes = ALLOWED_SCHEDULES_IN_MINUTES.map((value) => ({
+ value,
+ text: getScheduleContent(parseInt(value, 10)),
+ }));
+ const allowSeconds =
+ monitorType === MonitorTypeEnum.HTTP ||
+ monitorType === MonitorTypeEnum.TCP ||
+ monitorType === MonitorTypeEnum.ICMP;
+ if (allowSeconds) {
+ const seconds = ALLOWED_SCHEDULES_IN_SECONDS.map((value) => ({
+ value,
+ text: getScheduleContent(parseInt(value, 10), true),
+ }));
+ return [...seconds, ...minutes];
+ } else {
+ return minutes;
+ }
+};
export const MONITOR_TYPE_CONFIG = {
[FormMonitorType.MULTISTEP]: {
@@ -372,7 +399,7 @@ export const FIELD = (readOnly?: boolean): FieldMap => ({
}),
},
['schedule.number']: {
- fieldKey: `${ConfigKey.SCHEDULE}.number`,
+ fieldKey: `schedule.number`,
required: true,
component: Select,
label: i18n.translate('xpack.synthetics.monitorConfig.frequency.label', {
@@ -382,13 +409,11 @@ export const FIELD = (readOnly?: boolean): FieldMap => ({
defaultMessage:
'How often do you want to run this test? Higher frequencies will increase your total cost.',
}),
- props: (): EuiSelectProps => {
- return {
- 'data-test-subj': 'syntheticsMonitorConfigSchedule',
- options: SCHEDULES,
- disabled: readOnly,
- };
- },
+ props: ({ formState }): EuiSelectProps => ({
+ 'data-test-subj': 'syntheticsMonitorConfigSchedule',
+ options: getSchedules(formState.defaultValues?.[ConfigKey.MONITOR_TYPE]),
+ disabled: readOnly,
+ }),
},
[ConfigKey.LOCATIONS]: {
fieldKey: ConfigKey.LOCATIONS,
diff --git a/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitor_add_edit/form/formatter.ts b/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitor_add_edit/form/formatter.ts
index d6ec887f324cb..db8a294effc28 100644
--- a/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitor_add_edit/form/formatter.ts
+++ b/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitor_add_edit/form/formatter.ts
@@ -5,7 +5,13 @@
* 2.0.
*/
import { get, pick } from 'lodash';
-import { ConfigKey, MonitorTypeEnum, FormMonitorType, MonitorFields } from '../types';
+import {
+ ConfigKey,
+ MonitorTypeEnum,
+ FormMonitorType,
+ MonitorFields,
+ SyntheticsMonitorSchedule,
+} from '../types';
import { DEFAULT_FIELDS } from '../constants';
export const serializeNestedFormField = (fields: Record) => {
@@ -28,6 +34,15 @@ export const format = (fields: Record, readOnly: boolean = fals
? `
await page.getByText('${formattedFields[ConfigKey.TEXT_ASSERTION]}').first().waitFor();`
: ``;
+
+ const schedule = formattedFields[ConfigKey.SCHEDULE];
+ if (schedule.number.endsWith('s')) {
+ formattedFields[ConfigKey.SCHEDULE] = {
+ number: `${schedule.number.slice(0, -1)}`,
+ unit: 's' as SyntheticsMonitorSchedule['unit'],
+ };
+ }
+
const formattedMap = {
[FormMonitorType.SINGLE]: {
...formattedFields,
diff --git a/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitor_add_edit/steps/index.tsx b/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitor_add_edit/steps/index.tsx
index 16f1a5488400f..8f529a9dc0601 100644
--- a/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitor_add_edit/steps/index.tsx
+++ b/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitor_add_edit/steps/index.tsx
@@ -10,7 +10,7 @@ import { EuiSteps, EuiPanel, EuiText, EuiSpacer } from '@elastic/eui';
import { useFormContext } from 'react-hook-form';
import { InspectMonitorPortal } from './inspect_monitor_portal';
import { ConfigKey, FormMonitorType, StepMap } from '../types';
-import { serializeNestedFormField } from '../form/formatter';
+import { format } from '../form/formatter';
import { AdvancedConfig } from '../advanced';
import { MonitorTypePortal } from './monitor_type_portal';
import { ReadOnlyCallout } from './read_only_callout';
@@ -51,10 +51,7 @@ export const MonitorSteps = ({
)}
-
+
>
);
};
diff --git a/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitor_add_edit/steps/inspect_monitor_portal.tsx b/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitor_add_edit/steps/inspect_monitor_portal.tsx
index 0f30bb43ab510..4a5556bcda0f2 100644
--- a/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitor_add_edit/steps/inspect_monitor_portal.tsx
+++ b/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitor_add_edit/steps/inspect_monitor_portal.tsx
@@ -7,7 +7,7 @@
import React from 'react';
import { InPortal } from 'react-reverse-portal';
-import { MonitorFields } from '../../../../../../common/runtime_types';
+import { SyntheticsMonitor } from '../../../../../../common/runtime_types';
import { MonitorInspectWrapper } from '../../common/components/monitor_inspect';
import { InspectMonitorPortalNode } from '../portals';
@@ -16,7 +16,7 @@ export const InspectMonitorPortal = ({
monitorFields,
}: {
isValid: boolean;
- monitorFields: MonitorFields;
+ monitorFields: SyntheticsMonitor;
}) => {
return (
diff --git a/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitor_add_edit/types.ts b/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitor_add_edit/types.ts
index e779416014396..7ba092014ec88 100644
--- a/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitor_add_edit/types.ts
+++ b/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitor_add_edit/types.ts
@@ -46,6 +46,7 @@ export interface FormLocation {
export type FormConfig = MonitorFields & {
isTLSEnabled: boolean;
['schedule.number']: string;
+ ['schedule.unit']: string;
['source.inline']: string;
[AlertConfigKey.STATUS_ENABLED]: boolean;
[AlertConfigKey.TLS_ENABLED]: boolean;
diff --git a/x-pack/plugins/observability_solution/synthetics/public/hooks/use_date_format.test.tsx b/x-pack/plugins/observability_solution/synthetics/public/hooks/use_date_format.test.tsx
index 42cee2817e8f2..fac97ba610377 100644
--- a/x-pack/plugins/observability_solution/synthetics/public/hooks/use_date_format.test.tsx
+++ b/x-pack/plugins/observability_solution/synthetics/public/hooks/use_date_format.test.tsx
@@ -31,7 +31,7 @@ describe('useDateFormat', () => {
});
it('returns a formatter function that makes a date into the expected output', () => {
const response = renderHook(() => useDateFormat());
- expect(response.result.current('2023-02-01 13:00:00')).toEqual('Feb 1, 2023 @ 1:00 PM');
+ expect(response.result.current('2023-02-01 13:00:00')).toEqual('Feb 1, 2023 @ 1:00:00 PM');
});
it('adjusts formatter based on locale', () => {
Object.defineProperty(global.navigator, 'language', {
@@ -39,7 +39,7 @@ describe('useDateFormat', () => {
writable: true,
});
const response = renderHook(() => useDateFormat());
- expect(response.result.current('2023-02-01 13:00:00')).toEqual('1 Feb 2023 @ 13:00');
+ expect(response.result.current('2023-02-01 13:00:00')).toEqual('1 Feb 2023 @ 13:00:00');
});
it('prefers Kibana locale if set', () => {
jest.spyOn(i18n, 'getLocale').mockReturnValue('fr-FR');
@@ -49,6 +49,6 @@ describe('useDateFormat', () => {
writable: true,
});
const response = renderHook(() => useDateFormat());
- expect(response.result.current('2023-02-01 13:00:00')).toEqual('1 févr. 2023 @ 13:00');
+ expect(response.result.current('2023-02-01 13:00:00')).toEqual('1 févr. 2023 @ 13:00:00');
});
});
diff --git a/x-pack/plugins/observability_solution/synthetics/public/hooks/use_date_format.ts b/x-pack/plugins/observability_solution/synthetics/public/hooks/use_date_format.ts
index 6214deb9be4a8..f7bdff8e32fd0 100644
--- a/x-pack/plugins/observability_solution/synthetics/public/hooks/use_date_format.ts
+++ b/x-pack/plugins/observability_solution/synthetics/public/hooks/use_date_format.ts
@@ -24,6 +24,6 @@ export function useDateFormat(): DateFormatter {
return (timestamp?: string) => {
if (!timestamp) return '';
const date = moment(timestamp);
- return `${date.format('ll')} @ ${date.format('LT')}`;
+ return `${date.format('ll')} @ ${date.format('LTS')}`;
};
}
diff --git a/x-pack/plugins/observability_solution/synthetics/server/routes/monitor_cruds/monitor_validation.test.ts b/x-pack/plugins/observability_solution/synthetics/server/routes/monitor_cruds/monitor_validation.test.ts
index 38917d62ead8c..0ddbb8c1845bb 100644
--- a/x-pack/plugins/observability_solution/synthetics/server/routes/monitor_cruds/monitor_validation.test.ts
+++ b/x-pack/plugins/observability_solution/synthetics/server/routes/monitor_cruds/monitor_validation.test.ts
@@ -241,7 +241,7 @@ describe('validateMonitor', () => {
valid: false,
reason: 'Monitor schedule is invalid',
details:
- 'Invalid schedule 4 minutes supplied to monitor configuration. Supported schedule values in minutes are 1, 3, 5, 10, 15, 20, 30, 60, 120, 240',
+ 'Invalid schedule 4 minutes supplied to monitor configuration. Supported schedule values in minutes are 1, 2, 3, 5, 10, 15, 20, 30, 60, 120, 240',
});
});
diff --git a/x-pack/plugins/observability_solution/synthetics/server/saved_objects/migrations/monitors/8.8.0.test.ts b/x-pack/plugins/observability_solution/synthetics/server/saved_objects/migrations/monitors/8.8.0.test.ts
index f816c2c2e2c83..546f1c0bdf008 100644
--- a/x-pack/plugins/observability_solution/synthetics/server/saved_objects/migrations/monitors/8.8.0.test.ts
+++ b/x-pack/plugins/observability_solution/synthetics/server/saved_objects/migrations/monitors/8.8.0.test.ts
@@ -410,7 +410,7 @@ describe('Monitor migrations v8.7.0 -> v8.8.0', () => {
it.each([
[5, '5'],
[4, '3'],
- [2.5, '3'],
+ [2.5, '2'],
])('handles migrating schedule numeric values - browser', (invalidSchedule, migrated) => {
const testMonitorWithSchedule = {
...browserUptimeUI,
@@ -422,7 +422,7 @@ describe('Monitor migrations v8.7.0 -> v8.8.0', () => {
},
},
};
- // @ts-ignore specificially testing monitors with invalid values for full coverage
+ // @ts-ignore specifically testing monitors with invalid values for full coverage
const actual = migration880(encryptedSavedObjectsSetup)(testMonitorWithSchedule, context);
expect(actual.attributes[ConfigKey.SCHEDULE].number).toEqual(migrated);
expect(
From 95eb12cc4582702d3e8ab9411e34fbc5292b130e Mon Sep 17 00:00:00 2001
From: Sander Philipse <94373878+sphilipse@users.noreply.github.com>
Date: Mon, 3 Jun 2024 22:14:49 +0200
Subject: [PATCH 18/82] [Search] Renaming the search frontend group (#184565)
## Summary
This renames the enterprise-search-frontend group to search-kibana to
better align with what our group actually does.
---
.github/CODEOWNERS | 30 +-
packages/deeplinks/search/kibana.jsonc | 2 +-
packages/kbn-ipynb/kibana.jsonc | 2 +-
packages/kbn-search-api-panels/kibana.jsonc | 2 +-
packages/kbn-search-connectors/kibana.jsonc | 2 +-
.../kbn-search-index-documents/kibana.jsonc | 2 +-
packages/kbn-try-in-console/kibana.jsonc | 2 +-
.../settings/search_project/kibana.jsonc | 2 +-
renovate.json | 675 ++++++++++++++----
x-pack/plugins/enterprise_search/README.md | 4 +-
x-pack/plugins/enterprise_search/kibana.jsonc | 2 +-
x-pack/plugins/search_connectors/kibana.jsonc | 2 +-
x-pack/plugins/search_notebooks/kibana.jsonc | 6 +-
x-pack/plugins/search_playground/kibana.jsonc | 2 +-
x-pack/plugins/serverless_search/kibana.jsonc | 2 +-
15 files changed, 559 insertions(+), 178 deletions(-)
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index e9664ea90461b..914973516f4d0 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -357,7 +357,7 @@ packages/deeplinks/fleet @elastic/fleet
packages/deeplinks/management @elastic/kibana-management
packages/deeplinks/ml @elastic/ml-ui
packages/deeplinks/observability @elastic/obs-ux-logs-team
-packages/deeplinks/search @elastic/enterprise-search-frontend
+packages/deeplinks/search @elastic/search-kibana
packages/deeplinks/security @elastic/security-solution
packages/deeplinks/shared @elastic/appex-sharedux
packages/default-nav/analytics @elastic/kibana-data-discovery @elastic/kibana-presentation @elastic/kibana-visualizations
@@ -392,7 +392,7 @@ examples/embeddable_examples @elastic/kibana-presentation
src/plugins/embeddable @elastic/kibana-presentation
x-pack/examples/embedded_lens_example @elastic/kibana-visualizations
x-pack/plugins/encrypted_saved_objects @elastic/kibana-security
-x-pack/plugins/enterprise_search @elastic/enterprise-search-frontend
+x-pack/plugins/enterprise_search @elastic/search-kibana
x-pack/packages/kbn-entities-schema @elastic/obs-knowledge-team
examples/error_boundary @elastic/appex-sharedux
packages/kbn-es @elastic/kibana-operations
@@ -505,7 +505,7 @@ src/plugins/interactive_setup @elastic/kibana-security
test/interactive_setup_api_integration/plugins/test_endpoints @elastic/kibana-security
packages/kbn-interpreter @elastic/kibana-visualizations
packages/kbn-io-ts-utils @elastic/obs-knowledge-team
-packages/kbn-ipynb @elastic/enterprise-search-frontend
+packages/kbn-ipynb @elastic/search-kibana
packages/kbn-jest-serializers @elastic/kibana-operations
packages/kbn-journeys @elastic/kibana-operations @elastic/appex-qa
packages/kbn-json-ast @elastic/kibana-operations
@@ -707,14 +707,14 @@ examples/screenshot_mode_example @elastic/appex-sharedux
src/plugins/screenshot_mode @elastic/appex-sharedux
x-pack/examples/screenshotting_example @elastic/appex-sharedux
x-pack/plugins/screenshotting @elastic/kibana-reporting-services
-packages/kbn-search-api-panels @elastic/enterprise-search-frontend
-packages/kbn-search-connectors @elastic/enterprise-search-frontend
-x-pack/plugins/search_connectors @elastic/enterprise-search-frontend
+packages/kbn-search-api-panels @elastic/search-kibana
+packages/kbn-search-connectors @elastic/search-kibana
+x-pack/plugins/search_connectors @elastic/search-kibana
packages/kbn-search-errors @elastic/kibana-data-discovery
examples/search_examples @elastic/kibana-data-discovery
-packages/kbn-search-index-documents @elastic/enterprise-search-frontend
-x-pack/plugins/search_notebooks @elastic/enterprise-search-frontend
-x-pack/plugins/search_playground @elastic/enterprise-search-frontend
+packages/kbn-search-index-documents @elastic/search-kibana
+x-pack/plugins/search_notebooks @elastic/search-kibana
+x-pack/plugins/search_playground @elastic/search-kibana
packages/kbn-search-response-warnings @elastic/kibana-data-discovery
packages/kbn-search-types @elastic/kibana-data-discovery
x-pack/plugins/searchprofiler @elastic/kibana-management
@@ -758,8 +758,8 @@ packages/serverless/settings/common @elastic/appex-sharedux @elastic/kibana-mana
x-pack/plugins/serverless_observability @elastic/obs-ux-management-team
packages/serverless/settings/observability_project @elastic/appex-sharedux @elastic/kibana-management @elastic/obs-ux-management-team
packages/serverless/project_switcher @elastic/appex-sharedux
-x-pack/plugins/serverless_search @elastic/enterprise-search-frontend
-packages/serverless/settings/search_project @elastic/enterprise-search-frontend @elastic/kibana-management
+x-pack/plugins/serverless_search @elastic/search-kibana
+packages/serverless/settings/search_project @elastic/search-kibana @elastic/kibana-management
packages/serverless/settings/security_project @elastic/security-solution @elastic/kibana-management
packages/serverless/storybook/config @elastic/appex-sharedux
packages/serverless/types @elastic/appex-sharedux
@@ -867,7 +867,7 @@ x-pack/plugins/translations @elastic/kibana-localization
x-pack/examples/triggers_actions_ui_example @elastic/response-ops
x-pack/plugins/triggers_actions_ui @elastic/response-ops
packages/kbn-triggers-actions-ui-types @elastic/response-ops
-packages/kbn-try-in-console @elastic/enterprise-search-frontend
+packages/kbn-try-in-console @elastic/search-kibana
packages/kbn-ts-projects @elastic/kibana-operations
packages/kbn-ts-type-check-cli @elastic/kibana-operations
packages/kbn-typed-react-router-config @elastic/obs-knowledge-team @elastic/obs-ux-management-team
@@ -1331,10 +1331,10 @@ x-pack/plugins/cloud_integrations/cloud_full_story/server/config.ts @elastic/kib
/x-pack/test_serverless/api_integration/test_suites/common/alerting/ @elastic/response-ops
# Enterprise Search
-/x-pack/test/functional_enterprise_search/ @elastic/enterprise-search-frontend
+/x-pack/test/functional_enterprise_search/ @elastic/search-kibana
/x-pack/plugins/enterprise_search/public/applications/shared/doc_links @elastic/ent-search-docs-team
-/x-pack/test_serverless/api_integration/test_suites/search/serverless_search @elastic/enterprise-search-frontend
-/x-pack/test_serverless/functional/test_suites/search/ @elastic/enterprise-search-frontend
+/x-pack/test_serverless/api_integration/test_suites/search/serverless_search @elastic/search-kibana
+/x-pack/test_serverless/functional/test_suites/search/ @elastic/search-kibana
# Management Experience - Deployment Management
/x-pack/test_serverless/**/test_suites/common/index_management/ @elastic/kibana-management
diff --git a/packages/deeplinks/search/kibana.jsonc b/packages/deeplinks/search/kibana.jsonc
index cb5584982e072..668514b989122 100644
--- a/packages/deeplinks/search/kibana.jsonc
+++ b/packages/deeplinks/search/kibana.jsonc
@@ -1,5 +1,5 @@
{
"type": "shared-common",
"id": "@kbn/deeplinks-search",
- "owner": "@elastic/enterprise-search-frontend"
+ "owner": "@elastic/search-kibana"
}
diff --git a/packages/kbn-ipynb/kibana.jsonc b/packages/kbn-ipynb/kibana.jsonc
index adc8c05b75a74..74aa3e338fb65 100644
--- a/packages/kbn-ipynb/kibana.jsonc
+++ b/packages/kbn-ipynb/kibana.jsonc
@@ -1,5 +1,5 @@
{
"type": "shared-common",
"id": "@kbn/ipynb",
- "owner": "@elastic/enterprise-search-frontend"
+ "owner": "@elastic/search-kibana"
}
diff --git a/packages/kbn-search-api-panels/kibana.jsonc b/packages/kbn-search-api-panels/kibana.jsonc
index 96c4e5beacf23..3e346c91d5554 100644
--- a/packages/kbn-search-api-panels/kibana.jsonc
+++ b/packages/kbn-search-api-panels/kibana.jsonc
@@ -1,5 +1,5 @@
{
"type": "shared-common",
"id": "@kbn/search-api-panels",
- "owner": "@elastic/enterprise-search-frontend"
+ "owner": "@elastic/search-kibana"
}
diff --git a/packages/kbn-search-connectors/kibana.jsonc b/packages/kbn-search-connectors/kibana.jsonc
index 4c1162ed0300b..d5254ac9b68c7 100644
--- a/packages/kbn-search-connectors/kibana.jsonc
+++ b/packages/kbn-search-connectors/kibana.jsonc
@@ -1,5 +1,5 @@
{
"type": "shared-common",
"id": "@kbn/search-connectors",
- "owner": "@elastic/enterprise-search-frontend"
+ "owner": "@elastic/search-kibana"
}
diff --git a/packages/kbn-search-index-documents/kibana.jsonc b/packages/kbn-search-index-documents/kibana.jsonc
index 4d8baf8aa6789..a0a69aff312c3 100644
--- a/packages/kbn-search-index-documents/kibana.jsonc
+++ b/packages/kbn-search-index-documents/kibana.jsonc
@@ -1,5 +1,5 @@
{
"type": "shared-common",
"id": "@kbn/search-index-documents",
- "owner": "@elastic/enterprise-search-frontend"
+ "owner": "@elastic/search-kibana"
}
diff --git a/packages/kbn-try-in-console/kibana.jsonc b/packages/kbn-try-in-console/kibana.jsonc
index 59d0914ef7ad3..c5988280943db 100644
--- a/packages/kbn-try-in-console/kibana.jsonc
+++ b/packages/kbn-try-in-console/kibana.jsonc
@@ -1,5 +1,5 @@
{
"type": "shared-common",
"id": "@kbn/try-in-console",
- "owner": "@elastic/enterprise-search-frontend"
+ "owner": "@elastic/search-kibana"
}
diff --git a/packages/serverless/settings/search_project/kibana.jsonc b/packages/serverless/settings/search_project/kibana.jsonc
index bcefb7f213dae..db71259a8ea6d 100644
--- a/packages/serverless/settings/search_project/kibana.jsonc
+++ b/packages/serverless/settings/search_project/kibana.jsonc
@@ -1,5 +1,5 @@
{
"type": "shared-common",
"id": "@kbn/serverless-search-settings",
- "owner": "@elastic/enterprise-search-frontend @elastic/kibana-management"
+ "owner": "@elastic/search-kibana @elastic/kibana-management"
}
diff --git a/renovate.json b/renovate.json
index cb8c4e6bfc339..db3141fb3d3bd 100644
--- a/renovate.json
+++ b/renovate.json
@@ -1,9 +1,19 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
- "extends": ["config:base"],
- "ignorePaths": ["**/__fixtures__/**", "**/fixtures/**"],
- "enabledManagers": ["npm"],
- "baseBranches": ["main", "7.17"],
+ "extends": [
+ "config:base"
+ ],
+ "ignorePaths": [
+ "**/__fixtures__/**",
+ "**/fixtures/**"
+ ],
+ "enabledManagers": [
+ "npm"
+ ],
+ "baseBranches": [
+ "main",
+ "7.17"
+ ],
"prConcurrentLimit": 0,
"prHourlyLimit": 0,
"separateMajorMinor": false,
@@ -17,17 +27,31 @@
},
"packageRules": [
{
- "matchPackagePatterns": [".*"],
+ "matchPackagePatterns": [
+ ".*"
+ ],
"enabled": false,
"prCreation": "not-pending",
"stabilityDays": 7
},
{
"groupName": "@elastic/charts",
- "matchPackageNames": ["@elastic/charts"],
- "reviewers": ["team:visualizations", "markov00", "nickofthyme"],
- "matchBaseBranches": ["main"],
- "labels": ["release_note:skip", "backport:skip", "Team:Visualizations"],
+ "matchPackageNames": [
+ "@elastic/charts"
+ ],
+ "reviewers": [
+ "team:visualizations",
+ "markov00",
+ "nickofthyme"
+ ],
+ "matchBaseBranches": [
+ "main"
+ ],
+ "labels": [
+ "release_note:skip",
+ "backport:skip",
+ "Team:Visualizations"
+ ],
"draftPR": true,
"enabled": true,
"assignAutomerge": true,
@@ -35,117 +59,270 @@
},
{
"groupName": "@elastic/elasticsearch",
- "matchPackageNames": ["@elastic/elasticsearch"],
- "reviewers": ["team:kibana-operations", "team:kibana-core"],
- "matchBaseBranches": ["main"],
- "labels": ["release_note:skip", "backport:skip", "Team:Operations", "Team:Core"],
+ "matchPackageNames": [
+ "@elastic/elasticsearch"
+ ],
+ "reviewers": [
+ "team:kibana-operations",
+ "team:kibana-core"
+ ],
+ "matchBaseBranches": [
+ "main"
+ ],
+ "labels": [
+ "release_note:skip",
+ "backport:skip",
+ "Team:Operations",
+ "Team:Core"
+ ],
"enabled": true
},
{
"groupName": "@elastic/elasticsearch",
- "matchPackageNames": ["@elastic/elasticsearch"],
- "reviewers": ["team:kibana-operations", "team:kibana-core"],
- "matchBaseBranches": ["7.17"],
- "labels": ["release_note:skip", "Team:Operations", "Team:Core", "backport:skip"],
+ "matchPackageNames": [
+ "@elastic/elasticsearch"
+ ],
+ "reviewers": [
+ "team:kibana-operations",
+ "team:kibana-core"
+ ],
+ "matchBaseBranches": [
+ "7.17"
+ ],
+ "labels": [
+ "release_note:skip",
+ "Team:Operations",
+ "Team:Core",
+ "backport:skip"
+ ],
"enabled": true
},
{
"groupName": "LaunchDarkly",
- "matchPackageNames": ["launchdarkly-js-client-sdk", "launchdarkly-node-server-sdk"],
- "reviewers": ["team:kibana-security", "team:kibana-core"],
- "matchBaseBranches": ["main"],
- "labels": ["release_note:skip", "Team:Security", "Team:Core", "backport:prev-minor"],
+ "matchPackageNames": [
+ "launchdarkly-js-client-sdk",
+ "launchdarkly-node-server-sdk"
+ ],
+ "reviewers": [
+ "team:kibana-security",
+ "team:kibana-core"
+ ],
+ "matchBaseBranches": [
+ "main"
+ ],
+ "labels": [
+ "release_note:skip",
+ "Team:Security",
+ "Team:Core",
+ "backport:prev-minor"
+ ],
"enabled": true
},
{
"groupName": "APM",
- "matchPackageNames": ["elastic-apm-node", "@elastic/apm-rum", "@elastic/apm-rum-react"],
- "reviewers": ["team:kibana-core"],
- "matchBaseBranches": ["main"],
- "labels": ["release_note:skip", "Team:Core", "backport:skip"],
+ "matchPackageNames": [
+ "elastic-apm-node",
+ "@elastic/apm-rum",
+ "@elastic/apm-rum-react"
+ ],
+ "reviewers": [
+ "team:kibana-core"
+ ],
+ "matchBaseBranches": [
+ "main"
+ ],
+ "labels": [
+ "release_note:skip",
+ "Team:Core",
+ "backport:skip"
+ ],
"enabled": true,
"prCreation": "immediate"
},
{
"groupName": "ansi-regex",
- "matchPackageNames": ["ansi-regex"],
- "reviewers": ["team:kibana-core"],
- "matchBaseBranches": ["main"],
- "labels": ["release_note:skip", "Team:Core", "backport:skip"],
+ "matchPackageNames": [
+ "ansi-regex"
+ ],
+ "reviewers": [
+ "team:kibana-core"
+ ],
+ "matchBaseBranches": [
+ "main"
+ ],
+ "labels": [
+ "release_note:skip",
+ "Team:Core",
+ "backport:skip"
+ ],
"enabled": true
},
{
"groupName": "OpenAPI Spec",
- "matchPackageNames": ["@redocly/cli"],
- "reviewers": ["team:kibana-core"],
- "matchBaseBranches": ["main"],
- "labels": ["release_note:skip", "Team:Core", "backport:all-open"],
+ "matchPackageNames": [
+ "@redocly/cli"
+ ],
+ "reviewers": [
+ "team:kibana-core"
+ ],
+ "matchBaseBranches": [
+ "main"
+ ],
+ "labels": [
+ "release_note:skip",
+ "Team:Core",
+ "backport:all-open"
+ ],
"enabled": true
},
{
"groupName": "babel",
- "matchPackageNames": ["@types/babel__core"],
- "matchPackagePatterns": ["^@babel", "^babel-plugin"],
- "reviewers": ["team:kibana-operations"],
- "matchBaseBranches": ["main"],
- "labels": ["Team:Operations", "release_note:skip"],
+ "matchPackageNames": [
+ "@types/babel__core"
+ ],
+ "matchPackagePatterns": [
+ "^@babel",
+ "^babel-plugin"
+ ],
+ "reviewers": [
+ "team:kibana-operations"
+ ],
+ "matchBaseBranches": [
+ "main"
+ ],
+ "labels": [
+ "Team:Operations",
+ "release_note:skip"
+ ],
"enabled": true
},
{
"groupName": "typescript",
- "matchPackageNames": ["typescript", "prettier", "@types/jsdom"],
- "reviewers": ["team:kibana-operations"],
- "matchBaseBranches": ["main"],
- "labels": ["Team:Operations", "release_note:skip"],
+ "matchPackageNames": [
+ "typescript",
+ "prettier",
+ "@types/jsdom"
+ ],
+ "reviewers": [
+ "team:kibana-operations"
+ ],
+ "matchBaseBranches": [
+ "main"
+ ],
+ "labels": [
+ "Team:Operations",
+ "release_note:skip"
+ ],
"enabled": true
},
{
"groupName": "typescript-eslint",
- "matchPackagePatterns": ["^@typescript-eslint"],
- "reviewers": ["team:kibana-operations"],
- "matchBaseBranches": ["main"],
- "labels": ["Team:Operations", "release_note:skip"],
+ "matchPackagePatterns": [
+ "^@typescript-eslint"
+ ],
+ "reviewers": [
+ "team:kibana-operations"
+ ],
+ "matchBaseBranches": [
+ "main"
+ ],
+ "labels": [
+ "Team:Operations",
+ "release_note:skip"
+ ],
"enabled": true
},
{
"groupName": "polyfills",
- "matchPackageNames": ["core-js"],
- "matchPackagePatterns": ["polyfill"],
- "reviewers": ["team:kibana-operations"],
- "matchBaseBranches": ["main"],
- "labels": ["Team:Operations", "release_note:skip"],
+ "matchPackageNames": [
+ "core-js"
+ ],
+ "matchPackagePatterns": [
+ "polyfill"
+ ],
+ "reviewers": [
+ "team:kibana-operations"
+ ],
+ "matchBaseBranches": [
+ "main"
+ ],
+ "labels": [
+ "Team:Operations",
+ "release_note:skip"
+ ],
"enabled": true
},
{
"groupName": "CLI tooling",
- "matchPackageNames": ["listr2"],
- "reviewers": ["team:kibana-operations"],
- "matchBaseBranches": ["main"],
- "labels": ["Team:Operations", "backport:all-open", "release_note:skip"],
+ "matchPackageNames": [
+ "listr2"
+ ],
+ "reviewers": [
+ "team:kibana-operations"
+ ],
+ "matchBaseBranches": [
+ "main"
+ ],
+ "labels": [
+ "Team:Operations",
+ "backport:all-open",
+ "release_note:skip"
+ ],
"enabled": true
},
{
"groupName": "vega related modules",
- "matchPackageNames": ["vega", "vega-lite", "vega-schema-url-parser", "vega-tooltip"],
- "reviewers": ["team:kibana-visualizations"],
- "matchBaseBranches": ["main"],
- "labels": ["Feature:Vega", "Team:Visualizations"],
+ "matchPackageNames": [
+ "vega",
+ "vega-lite",
+ "vega-schema-url-parser",
+ "vega-tooltip"
+ ],
+ "reviewers": [
+ "team:kibana-visualizations"
+ ],
+ "matchBaseBranches": [
+ "main"
+ ],
+ "labels": [
+ "Feature:Vega",
+ "Team:Visualizations"
+ ],
"enabled": true
},
{
"groupName": "cypress",
- "matchPackagePatterns": ["cypress"],
- "reviewers": ["Team:apm", "Team: SecuritySolution"],
- "matchBaseBranches": ["main"],
- "labels": ["buildkite-ci", "ci:all-cypress-suites"],
+ "matchPackagePatterns": [
+ "cypress"
+ ],
+ "reviewers": [
+ "Team:apm",
+ "Team: SecuritySolution"
+ ],
+ "matchBaseBranches": [
+ "main"
+ ],
+ "labels": [
+ "buildkite-ci",
+ "ci:all-cypress-suites"
+ ],
"enabled": true
},
{
"groupName": "security solution modules",
- "matchPackageNames": ["zod", "langchain"],
- "reviewers": ["Team: SecuritySolution"],
- "matchBaseBranches": ["main"],
- "labels": ["Team: SecuritySolution"],
+ "matchPackageNames": [
+ "zod",
+ "langchain"
+ ],
+ "reviewers": [
+ "Team: SecuritySolution"
+ ],
+ "matchBaseBranches": [
+ "main"
+ ],
+ "labels": [
+ "Team: SecuritySolution"
+ ],
"enabled": true
},
{
@@ -162,9 +339,17 @@
"@types/xml-crypto",
"@kayahr/text-encoding"
],
- "reviewers": ["team:kibana-security"],
- "matchBaseBranches": ["main"],
- "labels": ["Team:Security", "release_note:skip", "backport:all-open"],
+ "reviewers": [
+ "team:kibana-security"
+ ],
+ "matchBaseBranches": [
+ "main"
+ ],
+ "labels": [
+ "Team:Security",
+ "release_note:skip",
+ "backport:all-open"
+ ],
"enabled": true
},
{
@@ -177,25 +362,52 @@
"ms-chromium-edge-driver",
"selenium-webdriver"
],
- "reviewers": ["team:kibana-operations"],
- "matchBaseBranches": ["main"],
- "labels": ["Team:Operations", "release_note:skip"],
+ "reviewers": [
+ "team:kibana-operations"
+ ],
+ "matchBaseBranches": [
+ "main"
+ ],
+ "labels": [
+ "Team:Operations",
+ "release_note:skip"
+ ],
"enabled": true
},
{
"groupName": "scss",
- "packageNames": ["sass-embedded"],
- "reviewers": ["team:kibana-operations"],
- "matchBaseBranches": ["main"],
- "labels": ["Team:Operations", "release_note:skip", "backport:all-open"],
+ "packageNames": [
+ "sass-embedded"
+ ],
+ "reviewers": [
+ "team:kibana-operations"
+ ],
+ "matchBaseBranches": [
+ "main"
+ ],
+ "labels": [
+ "Team:Operations",
+ "release_note:skip",
+ "backport:all-open"
+ ],
"enabled": true
},
{
"groupName": "minify",
- "packageNames": ["gulp-terser", "terser"],
- "reviewers": ["team:kibana-operations"],
- "matchBaseBranches": ["main"],
- "labels": ["Team:Operations", "release_note:skip"],
+ "packageNames": [
+ "gulp-terser",
+ "terser"
+ ],
+ "reviewers": [
+ "team:kibana-operations"
+ ],
+ "matchBaseBranches": [
+ "main"
+ ],
+ "labels": [
+ "Team:Operations",
+ "release_note:skip"
+ ],
"enabled": true
},
{
@@ -208,9 +420,16 @@
"@testing-library/user-event",
"@types/testing-library__jest-dom"
],
- "reviewers": ["team:kibana-operations"],
- "matchBaseBranches": ["main"],
- "labels": ["Team:Operations", "release_note:skip"],
+ "reviewers": [
+ "team:kibana-operations"
+ ],
+ "matchBaseBranches": [
+ "main"
+ ],
+ "labels": [
+ "Team:Operations",
+ "release_note:skip"
+ ],
"enabled": true
},
{
@@ -231,33 +450,67 @@
"jest-runtime",
"jest-snapshot"
],
- "reviewers": ["team:kibana-operations"],
- "matchBaseBranches": ["main"],
- "labels": ["Team:Operations", "release_note:skip"],
+ "reviewers": [
+ "team:kibana-operations"
+ ],
+ "matchBaseBranches": [
+ "main"
+ ],
+ "labels": [
+ "Team:Operations",
+ "release_note:skip"
+ ],
"enabled": true
},
{
"groupName": "@storybook",
- "reviewers": ["team:kibana-operations"],
- "matchBaseBranches": ["main"],
- "matchPackagePatterns": ["^@storybook"],
- "excludePackageNames": ["@storybook/testing-react"],
- "labels": ["Team:Operations", "release_note:skip", "ci:build-storybooks", "backport:skip"],
+ "reviewers": [
+ "team:kibana-operations"
+ ],
+ "matchBaseBranches": [
+ "main"
+ ],
+ "matchPackagePatterns": [
+ "^@storybook"
+ ],
+ "excludePackageNames": [
+ "@storybook/testing-react"
+ ],
+ "labels": [
+ "Team:Operations",
+ "release_note:skip",
+ "ci:build-storybooks",
+ "backport:skip"
+ ],
"enabled": true,
"allowedVersions": "<7.0"
},
{
"groupName": "@storybook/testing-react",
- "reviewers": ["team:kibana-operations"],
- "matchBaseBranches": ["main"],
- "matchPackageNames": ["@storybook/testing-react"],
- "labels": ["Team:Operations", "release_note:skip", "ci:build-storybooks", "backport:skip"],
+ "reviewers": [
+ "team:kibana-operations"
+ ],
+ "matchBaseBranches": [
+ "main"
+ ],
+ "matchPackageNames": [
+ "@storybook/testing-react"
+ ],
+ "labels": [
+ "Team:Operations",
+ "release_note:skip",
+ "ci:build-storybooks",
+ "backport:skip"
+ ],
"enabled": true,
"allowedVersions": "<2.0"
},
{
"groupName": "react-query",
- "packageNames": ["@tanstack/react-query", "@tanstack/react-query-devtools"],
+ "packageNames": [
+ "@tanstack/react-query",
+ "@tanstack/react-query-devtools"
+ ],
"reviewers": [
"team:response-ops",
"team:kibana-cloud-security-posture",
@@ -266,116 +519,242 @@
"team:awp-platform",
"team:security-onboarding-and-lifecycle-mgt"
],
- "matchBaseBranches": ["main"],
- "labels": ["release_note:skip", "backport:skip", "ci:all-cypress-suites"],
+ "matchBaseBranches": [
+ "main"
+ ],
+ "labels": [
+ "release_note:skip",
+ "backport:skip",
+ "ci:all-cypress-suites"
+ ],
"enabled": true
},
{
"groupName": "react-hook-form",
- "packageNames": ["react-hook-form"],
- "reviewers": ["team:security-asset-management", "team:uptime"],
- "matchBaseBranches": ["main"],
- "labels": ["release_note:skip", "backport:skip", "ci:all-cypress-suites"],
+ "packageNames": [
+ "react-hook-form"
+ ],
+ "reviewers": [
+ "team:security-asset-management",
+ "team:uptime"
+ ],
+ "matchBaseBranches": [
+ "main"
+ ],
+ "labels": [
+ "release_note:skip",
+ "backport:skip",
+ "ci:all-cypress-suites"
+ ],
"enabled": true
},
{
"groupName": "redux",
- "packageNames": ["redux", "react-redux"],
+ "packageNames": [
+ "redux",
+ "react-redux"
+ ],
"reviewers": [
- "team:enterprise-search-frontend",
+ "team:search-kibana",
"team:kibana-presentation",
"team:kibana-data-discovery",
"team:kibana-management",
"team:kibana-gis",
"team:security-solution"
],
- "matchBaseBranches": ["main"],
- "labels": ["release_note:skip", "backport:skip", "ci:all-cypress-suites"],
+ "matchBaseBranches": [
+ "main"
+ ],
+ "labels": [
+ "release_note:skip",
+ "backport:skip",
+ "ci:all-cypress-suites"
+ ],
"enabled": true
},
{
"groupName": "Profiling",
- "matchPackageNames": ["peggy", "@types/dagre"],
- "reviewers": ["team:profiling-ui"],
- "matchBaseBranches": ["main"],
- "labels": ["release_note:skip", "backport:skip"],
+ "matchPackageNames": [
+ "peggy",
+ "@types/dagre"
+ ],
+ "reviewers": [
+ "team:profiling-ui"
+ ],
+ "matchBaseBranches": [
+ "main"
+ ],
+ "labels": [
+ "release_note:skip",
+ "backport:skip"
+ ],
"enabled": true,
"prCreation": "immediate"
},
{
"groupName": "TTY Output",
- "matchPackageNames": ["xterm", "byte-size", "@types/byte-size"],
- "reviewers": ["team:sec-cloudnative-integrations"],
- "matchBaseBranches": ["main"],
- "labels": ["Team: AWP: Visualization", "release_note:skip", "backport:skip"],
+ "matchPackageNames": [
+ "xterm",
+ "byte-size",
+ "@types/byte-size"
+ ],
+ "reviewers": [
+ "team:sec-cloudnative-integrations"
+ ],
+ "matchBaseBranches": [
+ "main"
+ ],
+ "labels": [
+ "Team: AWP: Visualization",
+ "release_note:skip",
+ "backport:skip"
+ ],
"enabled": true,
"prCreation": "immediate"
},
{
"groupName": "Cloud Defend",
- "matchPackageNames": ["monaco-yaml"],
- "reviewers": ["team:sec-cloudnative-integrations"],
- "matchBaseBranches": ["main"],
- "labels": ["Team: Cloud Native Integrations", "release_note:skip", "backport:skip"],
+ "matchPackageNames": [
+ "monaco-yaml"
+ ],
+ "reviewers": [
+ "team:sec-cloudnative-integrations"
+ ],
+ "matchBaseBranches": [
+ "main"
+ ],
+ "labels": [
+ "Team: Cloud Native Integrations",
+ "release_note:skip",
+ "backport:skip"
+ ],
"enabled": true,
"prCreation": "immediate"
},
{
"groupName": "JSON Web Token",
- "matchPackageNames": ["jsonwebtoken"],
- "reviewers": ["team:response-ops", "team:kibana-core"],
- "matchBaseBranches": ["main"],
- "labels": ["release_note:skip", "backport:all-open"],
+ "matchPackageNames": [
+ "jsonwebtoken"
+ ],
+ "reviewers": [
+ "team:response-ops",
+ "team:kibana-core"
+ ],
+ "matchBaseBranches": [
+ "main"
+ ],
+ "labels": [
+ "release_note:skip",
+ "backport:all-open"
+ ],
"enabled": true
},
{
"groupName": "XState",
- "matchPackageNames": ["xstate"],
- "matchPackagePrefixes": ["@xstate/"],
- "reviewers": ["team:obs-ux-logs"],
- "matchBaseBranches": ["main"],
- "labels": ["Team:Obs UX Logs", "release_note:skip"],
+ "matchPackageNames": [
+ "xstate"
+ ],
+ "matchPackagePrefixes": [
+ "@xstate/"
+ ],
+ "reviewers": [
+ "team:obs-ux-logs"
+ ],
+ "matchBaseBranches": [
+ "main"
+ ],
+ "labels": [
+ "Team:Obs UX Logs",
+ "release_note:skip"
+ ],
"enabled": true,
"prCreation": "immediate"
},
{
"groupName": "OpenTelemetry modules",
- "matchPackagePrefixes": ["@opentelemetry/"],
- "reviewers": ["team:monitoring"],
- "matchBaseBranches": ["main"],
- "labels": ["Team:Monitoring"],
+ "matchPackagePrefixes": [
+ "@opentelemetry/"
+ ],
+ "reviewers": [
+ "team:monitoring"
+ ],
+ "matchBaseBranches": [
+ "main"
+ ],
+ "labels": [
+ "Team:Monitoring"
+ ],
"enabled": true
},
{
"groupName": "csp",
- "packageNames": ["content-security-policy-parser"],
- "reviewers": ["team:kibana-security", "team:kibana-core"],
- "matchBaseBranches": ["main"],
- "labels": ["release_note:skip", "backport:skip", "ci:serverless-test-all"],
+ "packageNames": [
+ "content-security-policy-parser"
+ ],
+ "reviewers": [
+ "team:kibana-security",
+ "team:kibana-core"
+ ],
+ "matchBaseBranches": [
+ "main"
+ ],
+ "labels": [
+ "release_note:skip",
+ "backport:skip",
+ "ci:serverless-test-all"
+ ],
"enabled": true
},
{
"groupName": "AlertingEmails",
- "matchPackageNames": ["nodemailer"],
- "reviewers": ["team:response-ops"],
- "matchBaseBranches": ["main"],
- "labels": ["release_note:skip", "backport:prev-minor"],
+ "matchPackageNames": [
+ "nodemailer"
+ ],
+ "reviewers": [
+ "team:response-ops"
+ ],
+ "matchBaseBranches": [
+ "main"
+ ],
+ "labels": [
+ "release_note:skip",
+ "backport:prev-minor"
+ ],
"enabled": true
},
{
"groupName": "machine learning modules",
- "matchPackageNames": ["apidoc-markdown"],
- "reviewers": ["team:ml-ui"],
- "matchBaseBranches": ["main"],
- "labels": ["Team:ML", "release_note:skip", "backport:all-open"],
+ "matchPackageNames": [
+ "apidoc-markdown"
+ ],
+ "reviewers": [
+ "team:ml-ui"
+ ],
+ "matchBaseBranches": [
+ "main"
+ ],
+ "labels": [
+ "Team:ML",
+ "release_note:skip",
+ "backport:all-open"
+ ],
"enabled": true
},
{
"groupName": "Kibana ES|QL Team",
- "matchPackageNames": ["recast"],
- "reviewers": ["team:kibana-esql"],
- "matchBaseBranches": ["main"],
- "labels": ["Team:ESQL", "release_note:skip"],
+ "matchPackageNames": [
+ "recast"
+ ],
+ "reviewers": [
+ "team:kibana-esql"
+ ],
+ "matchBaseBranches": [
+ "main"
+ ],
+ "labels": [
+ "Team:ESQL",
+ "release_note:skip"
+ ],
"enabled": true
}
]
diff --git a/x-pack/plugins/enterprise_search/README.md b/x-pack/plugins/enterprise_search/README.md
index bc49c47fe6880..be7a06708c17a 100644
--- a/x-pack/plugins/enterprise_search/README.md
+++ b/x-pack/plugins/enterprise_search/README.md
@@ -21,7 +21,7 @@ Unify all your team's content into a personalized search experience. https://www
1. When developing locally, Enterprise Search should be running locally alongside Kibana on `localhost:3002`.
2. Update `config/kibana.dev.yml` with `enterpriseSearch.host: 'http://localhost:3002'`
-Problems? If you're an Elastic Enterprise Search engineer, please reach out to @elastic/enterprise-search-frontend for questions or our in-depth Getting Started developer guide.
+Problems? If you're an Elastic Enterprise Search engineer, please reach out to @elastic/search-kibana for questions or our in-depth Getting Started developer guide.
Don't forget to read Kibana's [contributing documentation](https://github.com/elastic/kibana/#building-and-running-kibana-andor-contributing-code) and developer guides for more general info on the Kibana ecosystem.
@@ -137,4 +137,4 @@ To track what Cypress is doing while running tests, you can pass in `--config vi
See [our functional test runner README](../../test/functional_enterprise_search).
-Our automated accessibility tests can be found in [x-pack/test/accessibility/apps](../../test/accessibility/apps/group3/enterprise_search.ts).
\ No newline at end of file
+Our automated accessibility tests can be found in [x-pack/test/accessibility/apps](../../test/accessibility/apps/group3/enterprise_search.ts).
diff --git a/x-pack/plugins/enterprise_search/kibana.jsonc b/x-pack/plugins/enterprise_search/kibana.jsonc
index 969ccab8b3c46..cefa247025aa5 100644
--- a/x-pack/plugins/enterprise_search/kibana.jsonc
+++ b/x-pack/plugins/enterprise_search/kibana.jsonc
@@ -1,7 +1,7 @@
{
"type": "plugin",
"id": "@kbn/enterprise-search-plugin",
- "owner": "@elastic/enterprise-search-frontend",
+ "owner": "@elastic/search-kibana",
"description": "Adds dashboards for discovering and managing Enterprise Search products.",
"plugin": {
"id": "enterpriseSearch",
diff --git a/x-pack/plugins/search_connectors/kibana.jsonc b/x-pack/plugins/search_connectors/kibana.jsonc
index 8b032a55052c5..e5aac900e89c0 100644
--- a/x-pack/plugins/search_connectors/kibana.jsonc
+++ b/x-pack/plugins/search_connectors/kibana.jsonc
@@ -1,7 +1,7 @@
{
"type": "plugin",
"id": "@kbn/search-connectors-plugin",
- "owner": "@elastic/enterprise-search-frontend",
+ "owner": "@elastic/search-kibana",
"description": "Plugin hosting shared features for connectors",
"plugin": {
"id": "searchConnectors",
diff --git a/x-pack/plugins/search_notebooks/kibana.jsonc b/x-pack/plugins/search_notebooks/kibana.jsonc
index ba760995422fa..d702cfb020275 100644
--- a/x-pack/plugins/search_notebooks/kibana.jsonc
+++ b/x-pack/plugins/search_notebooks/kibana.jsonc
@@ -1,7 +1,7 @@
{
"type": "plugin",
"id": "@kbn/search-notebooks",
- "owner": "@elastic/enterprise-search-frontend",
+ "owner": "@elastic/search-kibana",
"description": "Plugin to provide access to and rendering of python notebooks for use in the persistent developer console.",
"plugin": {
"id": "searchNotebooks",
@@ -16,6 +16,8 @@
"console"
],
"optionalPlugins": [],
- "requiredBundles": ["kibanaReact"]
+ "requiredBundles": [
+ "kibanaReact"
+ ]
}
}
diff --git a/x-pack/plugins/search_playground/kibana.jsonc b/x-pack/plugins/search_playground/kibana.jsonc
index 28a775eca341e..f1913dbd0f345 100644
--- a/x-pack/plugins/search_playground/kibana.jsonc
+++ b/x-pack/plugins/search_playground/kibana.jsonc
@@ -1,7 +1,7 @@
{
"type": "plugin",
"id": "@kbn/search-playground",
- "owner": "@elastic/enterprise-search-frontend",
+ "owner": "@elastic/search-kibana",
"plugin": {
"id": "searchPlayground",
"server": true,
diff --git a/x-pack/plugins/serverless_search/kibana.jsonc b/x-pack/plugins/serverless_search/kibana.jsonc
index 4e7fe08efba7b..fc298a895174e 100644
--- a/x-pack/plugins/serverless_search/kibana.jsonc
+++ b/x-pack/plugins/serverless_search/kibana.jsonc
@@ -1,7 +1,7 @@
{
"type": "plugin",
"id": "@kbn/serverless-search",
- "owner": "@elastic/enterprise-search-frontend",
+ "owner": "@elastic/search-kibana",
"description": "Serverless customizations for search.",
"plugin": {
"id": "serverlessSearch",
From 1203de2c535f10dca706102ed52f1ad628bdd19b Mon Sep 17 00:00:00 2001
From: Ash <1849116+ashokaditya@users.noreply.github.com>
Date: Mon, 3 Jun 2024 22:22:47 +0200
Subject: [PATCH 19/82] [SecuritySolution][Endpoint] Add `scan` response action
API (#184437)
## Summary
Adds a `scan` action response route and related server side logic to
handle `scan` action response.
Note: A lot of the changes in the PR are due to test updates that
resulted out of adding `scan` command to list of API commands.
### Testing
1. Add `responseActionScanEnabled` feature flag to
`xpack.securitySolution.enableExperimental`
2. Run ES/Kibana
3. Run `node
x-pack/plugins/security_solution/scripts/endpoint/run_endpoint_agent.js`
to start a VM with Elastic Defend installed.
4. Visit `app/security/administration/endpoints` and click on the
endpoint on the endpoint list.
5. Copy the endpoint id (`selected_endpopint`) from the URL.
6. Use `curl` to send out a `scan` request to the endpoint with
`elastic` user. Use the curl command below:
curl
curl --location 'http://localhost:5601/api/endpoint/action/scan' \
--header 'kbn-xsrf: test-xsrf' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic ZWxhc3RpYzpjaGFuZ2VtZQ==' \
--data '{
"endpoint_ids": [
"copied_endpoint_id"
],
"parameters": {
"path": "/home/ubuntu"
}
}'
7. You should see the action created on the response actions history for
the endpoint.
8. Using any other non existing file path will result in a failed
action. UX work to address this will follow.
9. Disabling/removing `responseActionScanEnabled` feature flag should
give you a not found error when accessing the API.
### Checklist
- [x] Any text added follows [EUI's writing
guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses
sentence case text and includes [i18n
support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)
- [x] [Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios
- [ ] [Flaky Test
Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was
used on any tests changed
---------
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
---
.../actions/common/response_actions.ts | 2 +
.../api/endpoint/actions/get_file.schema.yaml | 1 -
.../common/api/endpoint/actions/scan.gen.ts | 28 +++
.../api/endpoint/actions/scan.schema.yaml | 41 ++++
.../common/api/endpoint/actions/scan_route.ts | 29 +++
.../common/api/endpoint/index.ts | 1 +
.../common/endpoint/constants.ts | 1 +
.../endpoint_action_generator.ts | 58 ++++-
.../common/endpoint/schema/actions.test.ts | 30 +++
.../service/response_actions/constants.ts | 24 +-
.../is_response_action_supported.ts | 12 +
.../common/endpoint/types/actions.ts | 14 +-
.../lib/endpoint_action_response_codes.ts | 30 +++
.../components/hooks.tsx | 5 +
.../response_actions_log.test.tsx | 29 ++-
.../serverless/feature_access/complete.cy.ts | 10 +-
.../complete_with_endpoint.cy.ts | 10 +-
.../feature_access/essentials.cy.ts | 10 +-
.../essentials_with_endpoint.cy.ts | 10 +-
.../management/cypress/screens/responder.ts | 5 +-
.../endpoint/common/response_actions.ts | 13 +
.../routes/actions/response_actions.test.ts | 223 ++++++++++--------
.../routes/actions/response_actions.ts | 62 +++--
.../actions/action_details_by_id.test.ts | 22 +-
.../services/actions/action_list.test.ts | 62 +++--
.../endpoint/endpoint_actions_client.test.ts | 2 +
.../endpoint/endpoint_actions_client.ts | 13 +
.../lib/base_response_actions_client.ts | 14 +-
.../services/actions/clients/lib/types.ts | 13 +
.../services/actions/clients/mocks.ts | 21 +-
.../utils/fetch_action_responses.test.ts | 68 +++---
.../services/actions/utils/utils.test.ts | 28 ++-
.../services/feature_usage/feature_keys.ts | 6 +-
33 files changed, 660 insertions(+), 237 deletions(-)
create mode 100644 x-pack/plugins/security_solution/common/api/endpoint/actions/scan.gen.ts
create mode 100644 x-pack/plugins/security_solution/common/api/endpoint/actions/scan.schema.yaml
create mode 100644 x-pack/plugins/security_solution/common/api/endpoint/actions/scan_route.ts
diff --git a/x-pack/plugins/security_solution/common/api/endpoint/actions/common/response_actions.ts b/x-pack/plugins/security_solution/common/api/endpoint/actions/common/response_actions.ts
index 269f041a25a10..66dc4d5828ce0 100644
--- a/x-pack/plugins/security_solution/common/api/endpoint/actions/common/response_actions.ts
+++ b/x-pack/plugins/security_solution/common/api/endpoint/actions/common/response_actions.ts
@@ -10,6 +10,7 @@ import { schema } from '@kbn/config-schema';
import { UploadActionRequestSchema } from '../..';
import { ExecuteActionRequestSchema } from '../execute_route';
import { EndpointActionGetFileSchema } from '../get_file_route';
+import { ScanActionRequestSchema } from '../scan_route';
import { KillOrSuspendProcessRequestSchema, NoParametersRequestSchema } from './base';
export const ResponseActionBodySchema = schema.oneOf([
@@ -17,6 +18,7 @@ export const ResponseActionBodySchema = schema.oneOf([
KillOrSuspendProcessRequestSchema.body,
EndpointActionGetFileSchema.body,
ExecuteActionRequestSchema.body,
+ ScanActionRequestSchema.body,
UploadActionRequestSchema.body,
]);
diff --git a/x-pack/plugins/security_solution/common/api/endpoint/actions/get_file.schema.yaml b/x-pack/plugins/security_solution/common/api/endpoint/actions/get_file.schema.yaml
index 87b7b834e2077..4f2fdd471bce1 100644
--- a/x-pack/plugins/security_solution/common/api/endpoint/actions/get_file.schema.yaml
+++ b/x-pack/plugins/security_solution/common/api/endpoint/actions/get_file.schema.yaml
@@ -30,7 +30,6 @@ components:
- type: object
required:
- parameters
- - file
properties:
parameters:
required:
diff --git a/x-pack/plugins/security_solution/common/api/endpoint/actions/scan.gen.ts b/x-pack/plugins/security_solution/common/api/endpoint/actions/scan.gen.ts
new file mode 100644
index 0000000000000..43ab2c4354845
--- /dev/null
+++ b/x-pack/plugins/security_solution/common/api/endpoint/actions/scan.gen.ts
@@ -0,0 +1,28 @@
+/*
+ * 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 { z } from 'zod';
+
+/*
+ * NOTICE: Do not edit this file manually.
+ * This file is automatically generated by the OpenAPI Generator, @kbn/openapi-generator.
+ *
+ * info:
+ * title: Scan Schema
+ * version: 2023-10-31
+ */
+
+import { BaseActionSchema } from '../model/schema/common.gen';
+
+export type ScanActionRequestBody = z.infer;
+export const ScanActionRequestBody = BaseActionSchema.merge(
+ z.object({
+ parameters: z.object({
+ path: z.string(),
+ }),
+ })
+);
diff --git a/x-pack/plugins/security_solution/common/api/endpoint/actions/scan.schema.yaml b/x-pack/plugins/security_solution/common/api/endpoint/actions/scan.schema.yaml
new file mode 100644
index 0000000000000..be953b1330218
--- /dev/null
+++ b/x-pack/plugins/security_solution/common/api/endpoint/actions/scan.schema.yaml
@@ -0,0 +1,41 @@
+openapi: 3.0.0
+info:
+ title: Scan Schema
+ version: '2023-10-31'
+paths:
+ /api/endpoint/action/scan:
+ post:
+ summary: Scan Action
+ operationId: EndpointScanAction
+ x-codegen-enabled: false
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ScanActionRequestBody'
+ responses:
+ '200':
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '../model/schema/common.schema.yaml#/components/schemas/SuccessResponse'
+
+components:
+ schemas:
+ ScanActionRequestBody:
+ allOf:
+ - $ref: '../model/schema/common.schema.yaml#/components/schemas/BaseActionSchema'
+ - type: object
+ required:
+ - parameters
+ properties:
+ parameters:
+ required:
+ - path
+ type: object
+ properties:
+ path:
+ type: string
+
diff --git a/x-pack/plugins/security_solution/common/api/endpoint/actions/scan_route.ts b/x-pack/plugins/security_solution/common/api/endpoint/actions/scan_route.ts
new file mode 100644
index 0000000000000..1c9b3c6980d90
--- /dev/null
+++ b/x-pack/plugins/security_solution/common/api/endpoint/actions/scan_route.ts
@@ -0,0 +1,29 @@
+/*
+ * 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 { TypeOf } from '@kbn/config-schema';
+import { schema } from '@kbn/config-schema';
+import { BaseActionRequestSchema } from './common/base';
+
+export const ScanActionRequestSchema = {
+ body: schema.object({
+ ...BaseActionRequestSchema,
+
+ parameters: schema.object({
+ path: schema.string({
+ minLength: 1,
+ validate: (value) => {
+ if (!value.trim().length) {
+ return 'path cannot be an empty string';
+ }
+ },
+ }),
+ }),
+ }),
+};
+
+export type ScanActionRequestBody = TypeOf;
diff --git a/x-pack/plugins/security_solution/common/api/endpoint/index.ts b/x-pack/plugins/security_solution/common/api/endpoint/index.ts
index c31a71f449466..6dfbcd20d12fb 100644
--- a/x-pack/plugins/security_solution/common/api/endpoint/index.ts
+++ b/x-pack/plugins/security_solution/common/api/endpoint/index.ts
@@ -19,6 +19,7 @@ export * from './actions/suspend_process_route';
export * from './actions/get_processes_route';
export * from './actions/get_file_route';
export * from './actions/execute_route';
+export * from './actions/scan_route';
export * from './actions/common/base';
export * from './actions/common/response_actions';
diff --git a/x-pack/plugins/security_solution/common/endpoint/constants.ts b/x-pack/plugins/security_solution/common/endpoint/constants.ts
index a4dd0b2b44518..3a10093b20a5b 100644
--- a/x-pack/plugins/security_solution/common/endpoint/constants.ts
+++ b/x-pack/plugins/security_solution/common/endpoint/constants.ts
@@ -94,6 +94,7 @@ export const SUSPEND_PROCESS_ROUTE = `${BASE_ENDPOINT_ACTION_ROUTE}/suspend_proc
export const GET_FILE_ROUTE = `${BASE_ENDPOINT_ACTION_ROUTE}/get_file`;
export const EXECUTE_ROUTE = `${BASE_ENDPOINT_ACTION_ROUTE}/execute`;
export const UPLOAD_ROUTE = `${BASE_ENDPOINT_ACTION_ROUTE}/upload`;
+export const SCAN_ROUTE = `${BASE_ENDPOINT_ACTION_ROUTE}/scan`;
/** Endpoint Actions Routes */
export const ENDPOINT_ACTION_LOG_ROUTE = `${BASE_ENDPOINT_ROUTE}/action_log/{agent_id}`;
diff --git a/x-pack/plugins/security_solution/common/endpoint/data_generators/endpoint_action_generator.ts b/x-pack/plugins/security_solution/common/endpoint/data_generators/endpoint_action_generator.ts
index 83976ff215e82..9ba617ad0052d 100644
--- a/x-pack/plugins/security_solution/common/endpoint/data_generators/endpoint_action_generator.ts
+++ b/x-pack/plugins/security_solution/common/endpoint/data_generators/endpoint_action_generator.ts
@@ -28,6 +28,8 @@ import type {
ResponseActionUploadParameters,
EndpointActionResponseDataOutput,
WithAllKeys,
+ ResponseActionScanOutputContent,
+ ResponseActionsScanParameters,
} from '../types';
import { ActivityLogItemTypes } from '../types';
import {
@@ -102,9 +104,13 @@ export class EndpointActionGenerator extends BaseDataGenerator {
const command = overrides?.EndpointActions?.data?.command ?? this.randomResponseActionCommand();
let output: ActionResponseOutput<
- ResponseActionGetFileOutputContent | ResponseActionExecuteOutputContent
+ | ResponseActionGetFileOutputContent
+ | ResponseActionExecuteOutputContent
+ | ResponseActionScanOutputContent
> = overrides?.EndpointActions?.data?.output as unknown as ActionResponseOutput<
- ResponseActionGetFileOutputContent | ResponseActionExecuteOutputContent
+ | ResponseActionGetFileOutputContent
+ | ResponseActionExecuteOutputContent
+ | ResponseActionScanOutputContent
>;
if (command === 'get-file') {
@@ -128,6 +134,17 @@ export class EndpointActionGenerator extends BaseDataGenerator {
}
}
+ if (command === 'scan') {
+ if (!output) {
+ output = {
+ type: 'json',
+ content: {
+ code: 'ra_scan_success_done',
+ },
+ };
+ }
+ }
+
if (command === 'execute') {
if (!output) {
output = this.generateExecuteActionResponseOutput();
@@ -269,6 +286,35 @@ export class EndpointActionGenerator extends BaseDataGenerator {
}
}
+ if (command === 'scan') {
+ if (!details.parameters) {
+ (
+ details as unknown as ActionDetails<
+ ResponseActionScanOutputContent,
+ ResponseActionsScanParameters
+ >
+ ).parameters = {
+ path: '/some/file.txt',
+ };
+ }
+
+ if (!details.outputs || Object.keys(details.outputs).length === 0) {
+ (
+ details as unknown as ActionDetails<
+ ResponseActionScanOutputContent,
+ ResponseActionsScanParameters
+ >
+ ).outputs = {
+ [details.agents[0]]: {
+ type: 'json',
+ content: {
+ code: 'ra_scan_success_done',
+ },
+ },
+ };
+ }
+ }
+
if (command === 'execute') {
if (!details.parameters) {
(
@@ -347,6 +393,14 @@ export class EndpointActionGenerator extends BaseDataGenerator {
]);
}
+ randomScanFailureCode(): string {
+ return this.randomChoice([
+ 'ra_scan_error_scan-invalid-input',
+ 'ra_scan_error_not-found',
+ 'ra_scan_error_scan-queue-quota',
+ ]);
+ }
+
generateActivityLogAction(
overrides: DeepPartial
): EndpointActivityLogAction {
diff --git a/x-pack/plugins/security_solution/common/endpoint/schema/actions.test.ts b/x-pack/plugins/security_solution/common/endpoint/schema/actions.test.ts
index bc32080fab1be..563633ed8413d 100644
--- a/x-pack/plugins/security_solution/common/endpoint/schema/actions.test.ts
+++ b/x-pack/plugins/security_solution/common/endpoint/schema/actions.test.ts
@@ -20,6 +20,7 @@ import {
NoParametersRequestSchema,
} from '../../api/endpoint/actions/common/base';
import { ExecuteActionRequestSchema } from '../../api/endpoint/actions/execute_route';
+import { ScanActionRequestSchema } from '../../api/endpoint/actions/scan_route';
// NOTE: Even though schemas are kept in common/api/endpoint - we keep tests here, because common/api should import from outside
describe('actions schemas', () => {
@@ -759,4 +760,33 @@ describe('actions schemas', () => {
}).toThrow('[file]: expected value of type [Stream] but got [Object]');
});
});
+
+ describe('ScanActionRequestSchema', () => {
+ it('should not accept empty string as path', () => {
+ expect(() => {
+ ScanActionRequestSchema.body.validate({
+ endpoint_ids: ['endpoint_id'],
+ parameters: { path: ' ' },
+ });
+ }).toThrowError('path cannot be an empty string');
+ });
+
+ it('should not accept when payload does not match', () => {
+ expect(() => {
+ ScanActionRequestSchema.body.validate({
+ endpoint_ids: ['endpoint_id'],
+ path: 'some/path',
+ });
+ }).toThrowError('[parameters.path]: expected value of type [string] but got [undefined]');
+ });
+
+ it('should accept path in payload if not empty', () => {
+ expect(() => {
+ ScanActionRequestSchema.body.validate({
+ endpoint_ids: ['endpoint_id'],
+ parameters: { path: 'some/path' },
+ });
+ }).not.toThrow();
+ });
+ });
});
diff --git a/x-pack/plugins/security_solution/common/endpoint/service/response_actions/constants.ts b/x-pack/plugins/security_solution/common/endpoint/service/response_actions/constants.ts
index 02716e09a882a..32773a3fafef4 100644
--- a/x-pack/plugins/security_solution/common/endpoint/service/response_actions/constants.ts
+++ b/x-pack/plugins/security_solution/common/endpoint/service/response_actions/constants.ts
@@ -27,8 +27,7 @@ export const RESPONSE_ACTION_API_COMMANDS_NAMES = [
'get-file',
'execute',
'upload',
- // TODO: for API changes in a subsequent PR
- // 'scan',
+ 'scan',
] as const;
export type ResponseActionsApiCommandNames = typeof RESPONSE_ACTION_API_COMMANDS_NAMES[number];
@@ -54,8 +53,7 @@ export const ENDPOINT_CAPABILITIES = [
'get_file',
'execute',
'upload_file',
- // TODO: for API changes in a subsequent PR
- // 'scan',
+ 'scan',
] as const;
export type EndpointCapabilities = typeof ENDPOINT_CAPABILITIES[number];
@@ -73,8 +71,7 @@ export const CONSOLE_RESPONSE_ACTION_COMMANDS = [
'get-file',
'execute',
'upload',
- // TODO: for API changes in a subsequent PR
- // 'scan',
+ 'scan',
] as const;
export type ConsoleResponseActionCommands = typeof CONSOLE_RESPONSE_ACTION_COMMANDS[number];
@@ -102,8 +99,7 @@ export const RESPONSE_CONSOLE_ACTION_COMMANDS_TO_RBAC_FEATURE_CONTROL: Record<
'get-file': 'writeFileOperations',
execute: 'writeExecuteOperations',
upload: 'writeFileOperations',
- // TODO: for API changes in a subsequent PR
- // scan: 'writeScanOperations',
+ scan: 'writeScanOperations',
});
export const RESPONSE_ACTION_API_COMMAND_TO_CONSOLE_COMMAND_MAP = Object.freeze<
@@ -117,8 +113,7 @@ export const RESPONSE_ACTION_API_COMMAND_TO_CONSOLE_COMMAND_MAP = Object.freeze<
'kill-process': 'kill-process',
'suspend-process': 'suspend-process',
upload: 'upload',
- // TODO: for API changes in a subsequent PR
- // scan: 'scan',
+ scan: 'scan',
});
export const RESPONSE_CONSOLE_COMMAND_TO_API_COMMAND_MAP = Object.freeze<
@@ -132,8 +127,7 @@ export const RESPONSE_CONSOLE_COMMAND_TO_API_COMMAND_MAP = Object.freeze<
'kill-process': 'kill-process',
'suspend-process': 'suspend-process',
upload: 'upload',
- // TODO: for API changes in a subsequent PR
- // scan: 'scan',
+ scan: 'scan',
});
export const RESPONSE_CONSOLE_ACTION_COMMANDS_TO_ENDPOINT_CAPABILITY = Object.freeze<
@@ -147,8 +141,7 @@ export const RESPONSE_CONSOLE_ACTION_COMMANDS_TO_ENDPOINT_CAPABILITY = Object.fr
'kill-process': 'kill_process',
'suspend-process': 'suspend_process',
upload: 'upload_file',
- // TODO: for API changes in a subsequent PR
- // scan: 'scan',
+ scan: 'scan',
});
/**
@@ -165,8 +158,7 @@ export const RESPONSE_CONSOLE_ACTION_COMMANDS_TO_REQUIRED_AUTHZ = Object.freeze<
processes: 'canGetRunningProcesses',
'kill-process': 'canKillProcess',
'suspend-process': 'canSuspendProcess',
- // TODO: for API changes in a subsequent PR
- // scan: 'canWriteScanOperations',
+ scan: 'canWriteScanOperations',
});
// 4 hrs in seconds
diff --git a/x-pack/plugins/security_solution/common/endpoint/service/response_actions/is_response_action_supported.ts b/x-pack/plugins/security_solution/common/endpoint/service/response_actions/is_response_action_supported.ts
index a2d55799c9943..0c0d0db960709 100644
--- a/x-pack/plugins/security_solution/common/endpoint/service/response_actions/is_response_action_supported.ts
+++ b/x-pack/plugins/security_solution/common/endpoint/service/response_actions/is_response_action_supported.ts
@@ -114,6 +114,18 @@ const RESPONSE_ACTIONS_SUPPORT_MAP: SupportMap = {
crowdstrike: false,
},
},
+ scan: {
+ automated: {
+ endpoint: false,
+ sentinel_one: false,
+ crowdstrike: false,
+ },
+ manual: {
+ endpoint: true,
+ sentinel_one: false,
+ crowdstrike: false,
+ },
+ },
};
/**
diff --git a/x-pack/plugins/security_solution/common/endpoint/types/actions.ts b/x-pack/plugins/security_solution/common/endpoint/types/actions.ts
index 21ca7780597b0..8727dff1b2f50 100644
--- a/x-pack/plugins/security_solution/common/endpoint/types/actions.ts
+++ b/x-pack/plugins/security_solution/common/endpoint/types/actions.ts
@@ -90,6 +90,10 @@ export interface ResponseActionExecuteOutputContent {
output_file_stderr_truncated: boolean;
}
+export interface ResponseActionScanOutputContent {
+ code: string;
+}
+
export const ActivityLogItemTypes = {
ACTION: 'action' as const,
RESPONSE: 'response' as const,
@@ -197,12 +201,17 @@ export interface ResponseActionsExecuteParameters {
timeout?: number;
}
+export interface ResponseActionsScanParameters {
+ path: string;
+}
+
export type EndpointActionDataParameterTypes =
| undefined
| ResponseActionParametersWithPidOrEntityId
| ResponseActionsExecuteParameters
| ResponseActionGetFileParameters
- | ResponseActionUploadParameters;
+ | ResponseActionUploadParameters
+ | ResponseActionsScanParameters;
/** Output content of the different response actions */
export type EndpointActionResponseDataOutput =
@@ -212,7 +221,8 @@ export type EndpointActionResponseDataOutput =
| ResponseActionUploadOutputContent
| GetProcessesActionOutputContent
| SuspendProcessActionOutputContent
- | KillProcessActionOutputContent;
+ | KillProcessActionOutputContent
+ | ResponseActionScanOutputContent;
/**
* The data stored with each Response Action under `EndpointActions.data` property
diff --git a/x-pack/plugins/security_solution/public/management/components/endpoint_responder/lib/endpoint_action_response_codes.ts b/x-pack/plugins/security_solution/public/management/components/endpoint_responder/lib/endpoint_action_response_codes.ts
index a26a5d319be63..2e40fc44d5aac 100644
--- a/x-pack/plugins/security_solution/public/management/components/endpoint_responder/lib/endpoint_action_response_codes.ts
+++ b/x-pack/plugins/security_solution/public/management/components/endpoint_responder/lib/endpoint_action_response_codes.ts
@@ -269,6 +269,36 @@ const CODES = Object.freeze({
'xpack.securitySolution.endpointActionResponseCodes.upload.fileCorruption',
{ defaultMessage: 'Failed to save file to disk or validate its integrity' }
),
+
+ // -----------------------------------------------------------------
+ // SCAN CODES
+ // -----------------------------------------------------------------
+
+ 'ra_scan_error_scan-invalid-input': i18n.translate(
+ 'xpack.securitySolution.endpointActionResponseCodes.scan.invalidInput',
+ { defaultMessage: 'Scan failed. Invalid absolute file path provided.' }
+ ),
+
+ // Dev:
+ // file path not found failure (404)
+ 'ra_scan_error_not-found': i18n.translate(
+ 'xpack.securitySolution.endpointActionResponseCodes.scan.notFound',
+ { defaultMessage: 'Scan failed. File path/folder was not found (404)' }
+ ),
+
+ // Dev:
+ // scan quota exceeded failure
+ 'ra_scan_error_scan-queue-quota': i18n.translate(
+ 'xpack.securitySolution.endpointActionResponseCodes.scan.queueQuota',
+ { defaultMessage: 'Scan failed. Too many scans are queued.' }
+ ),
+
+ // Dev:
+ // scan success/competed
+ ra_scan_success_done: i18n.translate(
+ 'xpack.securitySolution.endpointActionResponseCodes.scan.success',
+ { defaultMessage: 'Success. Scan completed.' }
+ ),
});
/**
diff --git a/x-pack/plugins/security_solution/public/management/components/endpoint_response_actions_list/components/hooks.tsx b/x-pack/plugins/security_solution/public/management/components/endpoint_response_actions_list/components/hooks.tsx
index a91c87223e44c..0fe111965f463 100644
--- a/x-pack/plugins/security_solution/public/management/components/endpoint_response_actions_list/components/hooks.tsx
+++ b/x-pack/plugins/security_solution/public/management/components/endpoint_response_actions_list/components/hooks.tsx
@@ -334,6 +334,11 @@ export const useActionsLogFilter = ({
return false;
}
+ // `scan` - v8.15
+ if (commandName === 'scan' && !featureFlags.responseActionScanEnabled) {
+ return false;
+ }
+
return true;
}).map((commandName) => ({
key: commandName,
diff --git a/x-pack/plugins/security_solution/public/management/components/endpoint_response_actions_list/integration_tests/response_actions_log.test.tsx b/x-pack/plugins/security_solution/public/management/components/endpoint_response_actions_list/integration_tests/response_actions_log.test.tsx
index 482edd42056e4..c10b661124bd7 100644
--- a/x-pack/plugins/security_solution/public/management/components/endpoint_response_actions_list/integration_tests/response_actions_log.test.tsx
+++ b/x-pack/plugins/security_solution/public/management/components/endpoint_response_actions_list/integration_tests/response_actions_log.test.tsx
@@ -1112,11 +1112,37 @@ describe('Response actions history', () => {
);
});
- it('should show a list of actions when opened', () => {
+ it('should show a list of actions (without `scan`) when opened', () => {
mockedContext.setExperimentalFlag({ responseActionUploadEnabled: true });
render();
const { getByTestId, getAllByTestId } = renderResult;
+ userEvent.click(getByTestId(`${testPrefix}-${filterPrefix}-popoverButton`));
+ const filterList = getByTestId(`${testPrefix}-${filterPrefix}-popoverList`);
+ expect(filterList).toBeTruthy();
+ expect(getAllByTestId(`${filterPrefix}-option`).length).toEqual(
+ RESPONSE_ACTION_API_COMMANDS_NAMES.length - 1
+ );
+ expect(getAllByTestId(`${filterPrefix}-option`).map((option) => option.textContent)).toEqual([
+ 'isolate. To check this option, press Enter.',
+ 'release. To check this option, press Enter.',
+ 'kill-process. To check this option, press Enter.',
+ 'suspend-process. To check this option, press Enter.',
+ 'processes. To check this option, press Enter.',
+ 'get-file. To check this option, press Enter.',
+ 'execute. To check this option, press Enter.',
+ 'upload. To check this option, press Enter.',
+ ]);
+ });
+
+ it('should show a list of actions (with `scan`) when opened', () => {
+ mockedContext.setExperimentalFlag({
+ responseActionUploadEnabled: true,
+ responseActionScanEnabled: true,
+ });
+ render();
+ const { getByTestId, getAllByTestId } = renderResult;
+
userEvent.click(getByTestId(`${testPrefix}-${filterPrefix}-popoverButton`));
const filterList = getByTestId(`${testPrefix}-${filterPrefix}-popoverList`);
expect(filterList).toBeTruthy();
@@ -1132,6 +1158,7 @@ describe('Response actions history', () => {
'get-file. To check this option, press Enter.',
'execute. To check this option, press Enter.',
'upload. To check this option, press Enter.',
+ 'scan. To check this option, press Enter.',
]);
});
diff --git a/x-pack/plugins/security_solution/public/management/cypress/e2e/serverless/feature_access/complete.cy.ts b/x-pack/plugins/security_solution/public/management/cypress/e2e/serverless/feature_access/complete.cy.ts
index 83a70c84a2307..57b2820921dd9 100644
--- a/x-pack/plugins/security_solution/public/management/cypress/e2e/serverless/feature_access/complete.cy.ts
+++ b/x-pack/plugins/security_solution/public/management/cypress/e2e/serverless/feature_access/complete.cy.ts
@@ -53,9 +53,10 @@ describe(
}
// No access to response actions (except `unisolate`)
+ // TODO: update tests when `scan` is included in PLIs
for (const actionName of RESPONSE_ACTION_API_COMMANDS_NAMES.filter(
- (apiName) => apiName !== 'unisolate'
- )) {
+ (apiName) => apiName !== 'scan'
+ ).filter((apiName) => apiName !== 'unisolate')) {
it(`should not allow access to Response Action: ${actionName}`, () => {
ensureResponseActionAuthzAccess('none', actionName, username, password);
});
@@ -78,9 +79,10 @@ describe(
});
// No access to response actions (except `unisolate`)
+ // TODO: update tests when `scan` is included in PLIs
for (const actionName of RESPONSE_ACTION_API_COMMANDS_NAMES.filter(
- (apiName) => apiName !== 'unisolate'
- )) {
+ (apiName) => apiName !== 'scan'
+ ).filter((apiName) => apiName !== 'unisolate')) {
it(`should not allow access to Response Action: ${actionName}`, () => {
ensureResponseActionAuthzAccess('none', actionName, username, password);
});
diff --git a/x-pack/plugins/security_solution/public/management/cypress/e2e/serverless/feature_access/complete_with_endpoint.cy.ts b/x-pack/plugins/security_solution/public/management/cypress/e2e/serverless/feature_access/complete_with_endpoint.cy.ts
index 13ffbfd848e88..da17beb14d760 100644
--- a/x-pack/plugins/security_solution/public/management/cypress/e2e/serverless/feature_access/complete_with_endpoint.cy.ts
+++ b/x-pack/plugins/security_solution/public/management/cypress/e2e/serverless/feature_access/complete_with_endpoint.cy.ts
@@ -47,7 +47,10 @@ describe(
});
}
- for (const actionName of RESPONSE_ACTION_API_COMMANDS_NAMES) {
+ // TODO: update tests when `scan` is included in PLIs
+ for (const actionName of RESPONSE_ACTION_API_COMMANDS_NAMES.filter(
+ (apiName) => apiName !== 'scan'
+ )) {
it(`should allow access to Response Action: ${actionName}`, () => {
ensureResponseActionAuthzAccess('all', actionName, username, password);
});
@@ -70,7 +73,10 @@ describe(
});
});
- for (const actionName of RESPONSE_ACTION_API_COMMANDS_NAMES) {
+ // TODO: update tests when `scan` is included in PLIs
+ for (const actionName of RESPONSE_ACTION_API_COMMANDS_NAMES.filter(
+ (apiName) => apiName !== 'scan'
+ )) {
it(`should allow access to Response Action: ${actionName}`, () => {
ensureResponseActionAuthzAccess('all', actionName, username, password);
});
diff --git a/x-pack/plugins/security_solution/public/management/cypress/e2e/serverless/feature_access/essentials.cy.ts b/x-pack/plugins/security_solution/public/management/cypress/e2e/serverless/feature_access/essentials.cy.ts
index e7400b548debf..e4388924f05fc 100644
--- a/x-pack/plugins/security_solution/public/management/cypress/e2e/serverless/feature_access/essentials.cy.ts
+++ b/x-pack/plugins/security_solution/public/management/cypress/e2e/serverless/feature_access/essentials.cy.ts
@@ -55,9 +55,10 @@ describe(
}
// No access to response actions (except `unisolate`)
+ // TODO: update tests when `scan` is included in PLIs
for (const actionName of RESPONSE_ACTION_API_COMMANDS_NAMES.filter(
- (apiName) => apiName !== 'unisolate'
- )) {
+ (apiName) => apiName !== 'scan'
+ ).filter((apiName) => apiName !== 'unisolate')) {
it(`should not allow access to Response Action: ${actionName}`, () => {
ensureResponseActionAuthzAccess('none', actionName, username, password);
});
@@ -80,9 +81,10 @@ describe(
});
// No access to response actions (except `unisolate`)
+ // TODO: update tests when `scan` is included in PLIs
for (const actionName of RESPONSE_ACTION_API_COMMANDS_NAMES.filter(
- (apiName) => apiName !== 'unisolate'
- )) {
+ (apiName) => apiName !== 'scan'
+ ).filter((apiName) => apiName !== 'unisolate')) {
it(`should not allow access to Response Action: ${actionName}`, () => {
ensureResponseActionAuthzAccess('none', actionName, username, password);
});
diff --git a/x-pack/plugins/security_solution/public/management/cypress/e2e/serverless/feature_access/essentials_with_endpoint.cy.ts b/x-pack/plugins/security_solution/public/management/cypress/e2e/serverless/feature_access/essentials_with_endpoint.cy.ts
index 87d48220be697..4a37f1089e897 100644
--- a/x-pack/plugins/security_solution/public/management/cypress/e2e/serverless/feature_access/essentials_with_endpoint.cy.ts
+++ b/x-pack/plugins/security_solution/public/management/cypress/e2e/serverless/feature_access/essentials_with_endpoint.cy.ts
@@ -62,9 +62,10 @@ describe(
});
}
+ // TODO: update tests when `scan` is included in PLIs
for (const actionName of RESPONSE_ACTION_API_COMMANDS_NAMES.filter(
- (apiName) => apiName !== 'unisolate'
- )) {
+ (apiName) => apiName !== 'scan'
+ ).filter((apiName) => apiName !== 'unisolate')) {
it(`should not allow access to Response Action: ${actionName}`, () => {
ensureResponseActionAuthzAccess('none', actionName, username, password);
});
@@ -91,9 +92,10 @@ describe(
});
});
+ // TODO: update tests when `scan` is included in PLIs
for (const actionName of RESPONSE_ACTION_API_COMMANDS_NAMES.filter(
- (apiName) => apiName !== 'unisolate'
- )) {
+ (apiName) => apiName !== 'scan'
+ ).filter((apiName) => apiName !== 'unisolate')) {
it(`should not allow access to Response Action: ${actionName}`, () => {
ensureResponseActionAuthzAccess('none', actionName, username, password);
});
diff --git a/x-pack/plugins/security_solution/public/management/cypress/screens/responder.ts b/x-pack/plugins/security_solution/public/management/cypress/screens/responder.ts
index c612c99db17b3..7e920772374c5 100644
--- a/x-pack/plugins/security_solution/public/management/cypress/screens/responder.ts
+++ b/x-pack/plugins/security_solution/public/management/cypress/screens/responder.ts
@@ -14,8 +14,9 @@ const TEST_SUBJ = Object.freeze({
actionLogFlyout: 'responderActionLogFlyout',
});
+// TODO: 8.15 Include `scan` in return type when responseActionsScanEnabled when `scan` is categorized in PLIs
export const getConsoleHelpPanelResponseActionTestSubj = (): Record<
- ConsoleResponseActionCommands,
+ Exclude,
string
> => {
return {
@@ -27,6 +28,8 @@ export const getConsoleHelpPanelResponseActionTestSubj = (): Record<
'get-file': 'endpointResponseActionsConsole-commandList-Responseactions-get-file',
execute: 'endpointResponseActionsConsole-commandList-Responseactions-execute',
upload: 'endpointResponseActionsConsole-commandList-Responseactions-upload',
+ // TODO: 8.15 Include `scan` in return type when responseActionsScanEnabled when `scan` is categorized in PLIs
+ // scan: 'endpointResponseActionsConsole-commandList-Responseactions-scan',
};
};
diff --git a/x-pack/plugins/security_solution/scripts/endpoint/common/response_actions.ts b/x-pack/plugins/security_solution/scripts/endpoint/common/response_actions.ts
index c909b6323ad26..528078ca5d417 100644
--- a/x-pack/plugins/security_solution/scripts/endpoint/common/response_actions.ts
+++ b/x-pack/plugins/security_solution/scripts/endpoint/common/response_actions.ts
@@ -5,6 +5,8 @@
* 2.0.
*/
+/* eslint-disable complexity */
+
import type { Client } from '@elastic/elasticsearch';
import type { SearchHit } from '@elastic/elasticsearch/lib/api/types';
import { basename } from 'path';
@@ -24,6 +26,7 @@ import type {
ResponseActionGetFileOutputContent,
ResponseActionGetFileParameters,
EndpointActionResponseDataOutput,
+ ResponseActionScanOutputContent,
} from '../../../common/endpoint/types';
import { getFileDownloadId } from '../../../common/endpoint/service/response_actions/get_file_download_id';
import {
@@ -110,6 +113,16 @@ export const sendEndpointActionResponse = async (
).code = endpointActionGenerator.randomGetFileFailureCode();
}
+ if (
+ endpointResponse.EndpointActions.data.command === 'scan' &&
+ endpointResponse.EndpointActions.data.output
+ ) {
+ (
+ endpointResponse.EndpointActions.data.output
+ .content as unknown as ResponseActionScanOutputContent
+ ).code = endpointActionGenerator.randomScanFailureCode();
+ }
+
if (
endpointResponse.EndpointActions.data.command === 'execute' &&
endpointResponse.EndpointActions.data.output
diff --git a/x-pack/plugins/security_solution/server/endpoint/routes/actions/response_actions.test.ts b/x-pack/plugins/security_solution/server/endpoint/routes/actions/response_actions.test.ts
index d964d2bc00b70..8c1ba19ca626d 100644
--- a/x-pack/plugins/security_solution/server/endpoint/routes/actions/response_actions.test.ts
+++ b/x-pack/plugins/security_solution/server/endpoint/routes/actions/response_actions.test.ts
@@ -24,23 +24,24 @@ import type { CasesClientMock } from '@kbn/cases-plugin/server/client/mocks';
import { LicenseService } from '../../../../common/license';
import {
- ISOLATE_HOST_ROUTE_V2,
- UNISOLATE_HOST_ROUTE_V2,
ENDPOINT_ACTIONS_INDEX,
- KILL_PROCESS_ROUTE,
- SUSPEND_PROCESS_ROUTE,
+ EXECUTE_ROUTE,
+ GET_FILE_ROUTE,
GET_PROCESSES_ROUTE,
ISOLATE_HOST_ROUTE,
+ ISOLATE_HOST_ROUTE_V2,
+ KILL_PROCESS_ROUTE,
+ SCAN_ROUTE,
+ SUSPEND_PROCESS_ROUTE,
UNISOLATE_HOST_ROUTE,
- GET_FILE_ROUTE,
- EXECUTE_ROUTE,
+ UNISOLATE_HOST_ROUTE_V2,
UPLOAD_ROUTE,
} from '../../../../common/endpoint/constants';
import type {
ActionDetails,
- ResponseActionApiResponse,
HostMetadata,
LogsEndpointAction,
+ ResponseActionApiResponse,
ResponseActionRequestBody,
} from '../../../../common/endpoint/types';
import { EndpointDocGenerator } from '../../../../common/endpoint/generate_data';
@@ -74,6 +75,8 @@ import { responseActionsClientMock } from '../../services/actions/clients/mocks'
import type { ActionsApiRequestHandlerContext } from '@kbn/actions-plugin/server';
import { sentinelOneMock } from '../../services/actions/clients/sentinelone/mocks';
import { ResponseActionsClientError } from '../../services/actions/clients/errors';
+import type { EndpointAppContext } from '../../types';
+import type { ExperimentalFeatures } from '../../../../common';
jest.mock('../../services', () => {
const realModule = jest.requireActual('../../services');
@@ -116,6 +119,7 @@ describe('Response actions', () => {
let mockResponse: jest.Mocked;
let licenseService: LicenseService;
let licenseEmitter: Subject;
+ let endpointContext: EndpointAppContext;
let callRoute: (
routePrefix: string,
@@ -129,6 +133,13 @@ describe('Response actions', () => {
const docGen = new EndpointDocGenerator();
+ const setFeatureFlag = (ff: Partial) => {
+ endpointContext.experimentalFeatures = {
+ ...endpointContext.experimentalFeatures,
+ ...ff,
+ };
+ };
+
beforeEach(() => {
// instantiate... everything
const mockScopedClient = elasticsearchServiceMock.createScopedClusterClient();
@@ -150,7 +161,7 @@ describe('Response actions', () => {
licenseService = new LicenseService();
licenseService.start(licenseEmitter);
- const endpointContext = {
+ endpointContext = {
...createMockEndpointAppContext(),
service: endpointAppContextService,
};
@@ -161,6 +172,8 @@ describe('Response actions', () => {
licenseService,
});
+ setFeatureFlag({ responseActionScanEnabled: true });
+
// add the host isolation route handlers to routerMock
registerResponseActionRoutes(routerMock, endpointContext);
@@ -285,10 +298,8 @@ describe('Response actions', () => {
version: '2023-10-31',
});
- await expect(
- (
- await endpointAppContextService.getFleetActionsClient()
- ).create as jest.Mock
+ expect(
+ (await endpointAppContextService.getFleetActionsClient()).create as jest.Mock
).toHaveBeenCalledWith(
expect.objectContaining({
agents: [AgentID],
@@ -304,10 +315,8 @@ describe('Response actions', () => {
version: '2023-10-31',
});
- await expect(
- (
- await endpointAppContextService.getFleetActionsClient()
- ).create as jest.Mock
+ expect(
+ (await endpointAppContextService.getFleetActionsClient()).create as jest.Mock
).toHaveBeenCalledWith(
expect.objectContaining({
user_id: testUser.username,
@@ -322,10 +331,8 @@ describe('Response actions', () => {
version: '2023-10-31',
});
- await expect(
- (
- await endpointAppContextService.getFleetActionsClient()
- ).create as jest.Mock
+ expect(
+ (await endpointAppContextService.getFleetActionsClient()).create as jest.Mock
).toHaveBeenCalledWith(
expect.objectContaining({
data: expect.objectContaining({ comment }),
@@ -347,10 +354,8 @@ describe('Response actions', () => {
version: '2023-10-31',
});
- await expect(
- (
- await endpointAppContextService.getFleetActionsClient()
- ).create as jest.Mock
+ expect(
+ (await endpointAppContextService.getFleetActionsClient()).create as jest.Mock
).toHaveBeenCalledWith(
expect.objectContaining({
action_id: expect.any(String),
@@ -374,10 +379,8 @@ describe('Response actions', () => {
body: { endpoint_ids: ['XYZ'] },
version: '2023-10-31',
});
- await expect(
- (
- await endpointAppContextService.getFleetActionsClient()
- ).create as jest.Mock
+ expect(
+ (await endpointAppContextService.getFleetActionsClient()).create as jest.Mock
).toHaveBeenCalledWith(
expect.objectContaining({
timeout: 300,
@@ -395,10 +398,8 @@ describe('Response actions', () => {
version: '2023-10-31',
});
- await expect(
- (
- await endpointAppContextService.getFleetActionsClient()
- ).create as jest.Mock
+ expect(
+ (await endpointAppContextService.getFleetActionsClient()).create as jest.Mock
).toHaveBeenCalledWith(
expect.objectContaining({
agents: [agentId],
@@ -412,10 +413,8 @@ describe('Response actions', () => {
version: '2023-10-31',
});
- await expect(
- (
- await endpointAppContextService.getFleetActionsClient()
- ).create as jest.Mock
+ expect(
+ (await endpointAppContextService.getFleetActionsClient()).create as jest.Mock
).toHaveBeenCalledWith(
expect.objectContaining({
data: expect.objectContaining({
@@ -431,10 +430,8 @@ describe('Response actions', () => {
version: '2023-10-31',
});
- await expect(
- (
- await endpointAppContextService.getFleetActionsClient()
- ).create as jest.Mock
+ expect(
+ (await endpointAppContextService.getFleetActionsClient()).create as jest.Mock
).toHaveBeenCalledWith(
expect.objectContaining({
data: expect.objectContaining({
@@ -450,10 +447,8 @@ describe('Response actions', () => {
version: '2023-10-31',
});
- await expect(
- (
- await endpointAppContextService.getFleetActionsClient()
- ).create as jest.Mock
+ expect(
+ (await endpointAppContextService.getFleetActionsClient()).create as jest.Mock
).toHaveBeenCalledWith(
expect.objectContaining({
data: expect.objectContaining({
@@ -469,10 +464,8 @@ describe('Response actions', () => {
version: '2023-10-31',
});
- await expect(
- (
- await endpointAppContextService.getFleetActionsClient()
- ).create as jest.Mock
+ expect(
+ (await endpointAppContextService.getFleetActionsClient()).create as jest.Mock
).toHaveBeenCalledWith(
expect.objectContaining({
data: expect.objectContaining({
@@ -488,10 +481,8 @@ describe('Response actions', () => {
version: '2023-10-31',
});
- await expect(
- (
- await endpointAppContextService.getFleetActionsClient()
- ).create as jest.Mock
+ expect(
+ (await endpointAppContextService.getFleetActionsClient()).create as jest.Mock
).toHaveBeenCalledWith(
expect.objectContaining({
data: expect.objectContaining({
@@ -507,10 +498,8 @@ describe('Response actions', () => {
version: '2023-10-31',
});
- await expect(
- (
- await endpointAppContextService.getFleetActionsClient()
- ).create as jest.Mock
+ expect(
+ (await endpointAppContextService.getFleetActionsClient()).create as jest.Mock
).toHaveBeenCalledWith(
expect.objectContaining({
data: expect.objectContaining({
@@ -526,10 +515,8 @@ describe('Response actions', () => {
version: '2023-10-31',
});
- await expect(
- (
- await endpointAppContextService.getFleetActionsClient()
- ).create as jest.Mock
+ expect(
+ (await endpointAppContextService.getFleetActionsClient()).create as jest.Mock
).toHaveBeenCalledWith(
expect.objectContaining({
data: expect.objectContaining({
@@ -539,6 +526,24 @@ describe('Response actions', () => {
);
});
+ it('sends the `scan` command payload from the scan route', async () => {
+ await callRoute(SCAN_ROUTE, {
+ body: { endpoint_ids: ['XYZ'], parameters: { path: '/home/usr/' } },
+ version: '2023-10-31',
+ });
+
+ expect(
+ (await endpointAppContextService.getFleetActionsClient()).create as jest.Mock
+ ).toHaveBeenCalledWith(
+ expect.objectContaining({
+ data: expect.objectContaining({
+ command: 'scan',
+ parameters: { path: '/home/usr/' },
+ }),
+ })
+ );
+ });
+
describe('With endpoint data streams', () => {
it('handles unisolation', async () => {
const ctx = await callRoute(
@@ -550,10 +555,8 @@ describe('Response actions', () => {
{ endpointDsExists: true }
);
- await expect(
- (
- await endpointAppContextService.getFleetActionsClient()
- ).create as jest.Mock
+ expect(
+ (await endpointAppContextService.getFleetActionsClient()).create as jest.Mock
).toHaveBeenCalledWith(
expect.objectContaining({
data: expect.objectContaining({
@@ -585,10 +588,8 @@ describe('Response actions', () => {
{ endpointDsExists: true }
);
- await expect(
- (
- await endpointAppContextService.getFleetActionsClient()
- ).create as jest.Mock
+ expect(
+ (await endpointAppContextService.getFleetActionsClient()).create as jest.Mock
).toHaveBeenCalledWith(
expect.objectContaining({
data: expect.objectContaining({
@@ -621,10 +622,8 @@ describe('Response actions', () => {
{ endpointDsExists: true }
);
- await expect(
- (
- await endpointAppContextService.getFleetActionsClient()
- ).create as jest.Mock
+ expect(
+ (await endpointAppContextService.getFleetActionsClient()).create as jest.Mock
).toHaveBeenCalledWith(
expect.objectContaining({
data: expect.objectContaining({
@@ -659,10 +658,8 @@ describe('Response actions', () => {
{ endpointDsExists: true }
);
- await expect(
- (
- await endpointAppContextService.getFleetActionsClient()
- ).create as jest.Mock
+ expect(
+ (await endpointAppContextService.getFleetActionsClient()).create as jest.Mock
).toHaveBeenCalledWith(
expect.objectContaining({
data: expect.objectContaining({
@@ -696,10 +693,8 @@ describe('Response actions', () => {
{ endpointDsExists: true }
);
- await expect(
- (
- await endpointAppContextService.getFleetActionsClient()
- ).create as jest.Mock
+ expect(
+ (await endpointAppContextService.getFleetActionsClient()).create as jest.Mock
).toHaveBeenCalledWith(
expect.objectContaining({
data: expect.objectContaining({
@@ -731,10 +726,8 @@ describe('Response actions', () => {
{ endpointDsExists: true }
);
- await expect(
- (
- await endpointAppContextService.getFleetActionsClient()
- ).create as jest.Mock
+ expect(
+ (await endpointAppContextService.getFleetActionsClient()).create as jest.Mock
).toHaveBeenCalledWith(
expect.objectContaining({
data: expect.objectContaining({
@@ -768,10 +761,8 @@ describe('Response actions', () => {
{ endpointDsExists: true }
);
- await expect(
- (
- await endpointAppContextService.getFleetActionsClient()
- ).create as jest.Mock
+ expect(
+ (await endpointAppContextService.getFleetActionsClient()).create as jest.Mock
).toHaveBeenCalledWith(
expect.objectContaining({
data: expect.objectContaining({
@@ -806,10 +797,8 @@ describe('Response actions', () => {
{ endpointDsExists: true }
);
- await expect(
- (
- await endpointAppContextService.getFleetActionsClient()
- ).create as jest.Mock
+ expect(
+ (await endpointAppContextService.getFleetActionsClient()).create as jest.Mock
).toHaveBeenCalledWith(
expect.objectContaining({
data: expect.objectContaining({
@@ -836,6 +825,41 @@ describe('Response actions', () => {
expect(responseBody.action).toBeUndefined();
});
+ it('handles scan', async () => {
+ const ctx = await callRoute(
+ SCAN_ROUTE,
+ {
+ body: { endpoint_ids: ['XYZ'], parameters: { path: '/home/usr/' } },
+ version: '2023-10-31',
+ },
+ { endpointDsExists: true }
+ );
+
+ expect(
+ (await endpointAppContextService.getFleetActionsClient()).create as jest.Mock
+ ).toHaveBeenCalledWith(
+ expect.objectContaining({
+ data: expect.objectContaining({
+ command: 'scan',
+ comment: undefined,
+ parameters: { path: '/home/usr/' },
+ }),
+ })
+ );
+
+ const indexDoc = ctx.core.elasticsearch.client.asInternalUser.index;
+ const actionDocs: [{ index: string; document?: LogsEndpointAction }] = [
+ indexDoc.mock.calls[0][0] as estypes.IndexRequest,
+ ];
+
+ expect(actionDocs[0].index).toEqual(ENDPOINT_ACTIONS_INDEX);
+ expect(actionDocs[0].document!.EndpointActions.data.command).toEqual('scan');
+
+ expect(mockResponse.ok).toBeCalled();
+ const responseBody = mockResponse.ok.mock.calls[0][0]?.body as ResponseActionApiResponse;
+ expect(responseBody.action).toBeUndefined();
+ });
+
it('signs the action', async () => {
await callRoute(
ISOLATE_HOST_ROUTE_V2,
@@ -846,10 +870,8 @@ describe('Response actions', () => {
{ endpointDsExists: true }
);
- await expect(
- (
- await endpointAppContextService.getFleetActionsClient()
- ).create as jest.Mock
+ expect(
+ (await endpointAppContextService.getFleetActionsClient()).create as jest.Mock
).toHaveBeenCalledWith(
expect.objectContaining({
signed: {
@@ -960,6 +982,15 @@ describe('Response actions', () => {
});
expect(mockResponse.forbidden).toBeCalled();
});
+
+ it('prohibits user from performing `scan` action if `canWriteScanOperations` is `false`', async () => {
+ await callRoute(SCAN_ROUTE, {
+ body: { endpoint_ids: ['XYZ'] },
+ authz: { canWriteScanOperations: false },
+ version: '2023-10-31',
+ });
+ expect(mockResponse.forbidden).toBeCalled();
+ });
});
describe('Cases', () => {
diff --git a/x-pack/plugins/security_solution/server/endpoint/routes/actions/response_actions.ts b/x-pack/plugins/security_solution/server/endpoint/routes/actions/response_actions.ts
index 54af1f4716607..09512b7cbc5ed 100644
--- a/x-pack/plugins/security_solution/server/endpoint/routes/actions/response_actions.ts
+++ b/x-pack/plugins/security_solution/server/endpoint/routes/actions/response_actions.ts
@@ -4,6 +4,7 @@
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
+
import type { RequestHandler } from '@kbn/core/server';
import type { TypeOf } from '@kbn/config-schema';
@@ -12,42 +13,44 @@ import { stringify } from '../../utils/stringify';
import { getResponseActionsClient, NormalizedExternalConnectorClient } from '../../services';
import type { ResponseActionsClient } from '../../services/actions/clients/lib/types';
import { CustomHttpRequestError } from '../../../utils/custom_http_request_error';
-import type {
- NoParametersRequestSchema,
- ResponseActionsRequestBody,
- ExecuteActionRequestBody,
- ResponseActionGetFileRequestBody,
- UploadActionApiRequestBody,
-} from '../../../../common/api/endpoint';
import {
- ExecuteActionRequestSchema,
EndpointActionGetFileSchema,
+ type ExecuteActionRequestBody,
+ ExecuteActionRequestSchema,
+ GetProcessesRouteRequestSchema,
IsolateRouteRequestSchema,
KillProcessRouteRequestSchema,
+ type NoParametersRequestSchema,
+ type ResponseActionGetFileRequestBody,
+ type ResponseActionsRequestBody,
+ type ScanActionRequestBody,
+ ScanActionRequestSchema,
SuspendProcessRouteRequestSchema,
UnisolateRouteRequestSchema,
- GetProcessesRouteRequestSchema,
+ type UploadActionApiRequestBody,
UploadActionRequestSchema,
} from '../../../../common/api/endpoint';
import {
+ EXECUTE_ROUTE,
+ GET_FILE_ROUTE,
+ GET_PROCESSES_ROUTE,
+ ISOLATE_HOST_ROUTE,
ISOLATE_HOST_ROUTE_V2,
- UNISOLATE_HOST_ROUTE_V2,
KILL_PROCESS_ROUTE,
+ SCAN_ROUTE,
SUSPEND_PROCESS_ROUTE,
- GET_PROCESSES_ROUTE,
- ISOLATE_HOST_ROUTE,
UNISOLATE_HOST_ROUTE,
- GET_FILE_ROUTE,
- EXECUTE_ROUTE,
+ UNISOLATE_HOST_ROUTE_V2,
UPLOAD_ROUTE,
} from '../../../../common/endpoint/constants';
import type {
+ ActionDetails,
EndpointActionDataParameterTypes,
+ KillOrSuspendProcessRequestBody,
ResponseActionParametersWithPidOrEntityId,
ResponseActionsExecuteParameters,
- ActionDetails,
- KillOrSuspendProcessRequestBody,
+ ResponseActionsScanParameters,
} from '../../../../common/endpoint/types';
import type { ResponseActionsApiCommandNames } from '../../../../common/endpoint/service/response_actions/constants';
import type {
@@ -279,6 +282,29 @@ export function registerResponseActionRoutes(
responseActionRequestHandler(endpointContext, 'upload')
)
);
+
+ // 8.15 route
+ if (endpointContext.experimentalFeatures.responseActionScanEnabled) {
+ router.versioned
+ .post({
+ access: 'public',
+ path: SCAN_ROUTE,
+ options: { authRequired: true, tags: ['access:securitySolution'] },
+ })
+ .addVersion(
+ {
+ version: '2023-10-31',
+ validate: {
+ request: ScanActionRequestSchema,
+ },
+ },
+ withEndpointAuthz(
+ { all: ['canWriteScanOperations'] },
+ logger,
+ responseActionRequestHandler(endpointContext, 'scan')
+ )
+ );
+ }
}
function responseActionRequestHandler(
@@ -368,6 +394,10 @@ function responseActionRequestHandler {
outputs: {
'agent-a': {
content: {
- code: 'ra_get-file_success_done',
- contents: [
- {
- file_name: 'bad_file.txt',
- path: '/some/path/bad_file.txt',
- sha256: '9558c5cb39622e9b3653203e772b129d6c634e7dbd7af1b244352fc1d704601f',
- size: 1234,
- type: 'file',
- },
- ],
- zip_size: 123,
+ code: 'ra_execute_success_done',
+ cwd: '/some/path',
+ output_file_id: 'some-output-file-id',
+ output_file_stderr_truncated: false,
+ output_file_stdout_truncated: true,
+ shell: 'bash',
+ shell_code: 0,
+ stderr: expect.any(String),
+ stderr_truncated: true,
+ stdout: expect.any(String),
+ stdout_truncated: true,
},
type: 'json',
},
diff --git a/x-pack/plugins/security_solution/server/endpoint/services/actions/action_list.test.ts b/x-pack/plugins/security_solution/server/endpoint/services/actions/action_list.test.ts
index fe9e6febeb21e..f94663fe90fdd 100644
--- a/x-pack/plugins/security_solution/server/endpoint/services/actions/action_list.test.ts
+++ b/x-pack/plugins/security_solution/server/endpoint/services/actions/action_list.test.ts
@@ -95,6 +95,7 @@ describe('When using `getActionList()', () => {
agentType: 'endpoint',
hosts: { 'agent-a': { name: 'Host-agent-a' } },
command: 'kill-process',
+ alertIds: undefined,
completedAt: '2022-04-30T16:08:47.449Z',
wasSuccessful: true,
errors: undefined,
@@ -108,6 +109,7 @@ describe('When using `getActionList()', () => {
parameters: doc?.EndpointActions.data.parameters,
agentState: {
'agent-a': {
+ errors: undefined,
completedAt: '2022-04-30T16:08:47.449Z',
isCompleted: true,
wasSuccessful: true,
@@ -116,17 +118,17 @@ describe('When using `getActionList()', () => {
outputs: {
'agent-a': {
content: {
- code: 'ra_get-file_success_done',
- contents: [
- {
- file_name: 'bad_file.txt',
- path: '/some/path/bad_file.txt',
- sha256: '9558c5cb39622e9b3653203e772b129d6c634e7dbd7af1b244352fc1d704601f',
- size: 1234,
- type: 'file',
- },
- ],
- zip_size: 123,
+ code: 'ra_execute_success_done',
+ cwd: '/some/path',
+ output_file_id: 'some-output-file-id',
+ output_file_stderr_truncated: false,
+ output_file_stdout_truncated: true,
+ shell: 'bash',
+ shell_code: 0,
+ stderr: expect.any(String),
+ stderr_truncated: true,
+ stdout: expect.any(String),
+ stdout_truncated: true,
},
type: 'json',
},
@@ -166,6 +168,7 @@ describe('When using `getActionList()', () => {
).resolves.toEqual({
page: 1,
pageSize: 10,
+ agentTypes: undefined,
commands: undefined,
userIds: undefined,
startDate: undefined,
@@ -179,8 +182,8 @@ describe('When using `getActionList()', () => {
hosts: { 'agent-a': { name: 'Host-agent-a' } },
command: 'kill-process',
completedAt: '2022-04-30T16:08:47.449Z',
- wasSuccessful: true,
errors: undefined,
+ wasSuccessful: true,
id: '123',
isCompleted: true,
isExpired: false,
@@ -189,17 +192,17 @@ describe('When using `getActionList()', () => {
outputs: {
'agent-a': {
content: {
- code: 'ra_get-file_success_done',
- contents: [
- {
- file_name: 'bad_file.txt',
- path: '/some/path/bad_file.txt',
- sha256: '9558c5cb39622e9b3653203e772b129d6c634e7dbd7af1b244352fc1d704601f',
- size: 1234,
- type: 'file',
- },
- ],
- zip_size: 123,
+ code: 'ra_execute_success_done',
+ cwd: '/some/path',
+ output_file_id: 'some-output-file-id',
+ output_file_stderr_truncated: false,
+ output_file_stdout_truncated: true,
+ shell: 'bash',
+ shell_code: 0,
+ stderr: expect.any(String),
+ stderr_truncated: true,
+ stdout: expect.any(String),
+ stdout_truncated: true,
},
type: 'json',
},
@@ -262,6 +265,7 @@ describe('When using `getActionList()', () => {
page: 1,
pageSize: 10,
commands: undefined,
+ agentTypes: undefined,
userIds: undefined,
startDate: undefined,
elasticAgentIds: undefined,
@@ -277,6 +281,7 @@ describe('When using `getActionList()', () => {
'agent-b': { name: 'Host-agent-b' },
'agent-x': { name: '' },
},
+ alertIds: undefined,
command: 'kill-process',
completedAt: undefined,
wasSuccessful: false,
@@ -289,6 +294,8 @@ describe('When using `getActionList()', () => {
comment: doc?.EndpointActions.data.comment,
createdBy: doc?.user.id,
parameters: doc?.EndpointActions.data.parameters,
+ ruleId: undefined,
+ ruleName: undefined,
agentState: {
'agent-a': {
completedAt: '2022-04-30T16:08:47.449Z',
@@ -309,7 +316,14 @@ describe('When using `getActionList()', () => {
errors: undefined,
},
},
- outputs: {},
+ outputs: {
+ 'agent-a': {
+ content: {
+ code: 'ra_scan_success_done',
+ },
+ type: 'json',
+ },
+ },
},
],
total: 1,
diff --git a/x-pack/plugins/security_solution/server/endpoint/services/actions/clients/endpoint/endpoint_actions_client.test.ts b/x-pack/plugins/security_solution/server/endpoint/services/actions/clients/endpoint/endpoint_actions_client.test.ts
index 9fce2a5e609f3..858a1f53a10d6 100644
--- a/x-pack/plugins/security_solution/server/endpoint/services/actions/clients/endpoint/endpoint_actions_client.test.ts
+++ b/x-pack/plugins/security_solution/server/endpoint/services/actions/clients/endpoint/endpoint_actions_client.test.ts
@@ -261,6 +261,8 @@ describe('EndpointActionsClient', () => {
execute: responseActionsClientMock.createExecuteOptions(getCommonResponseActionOptions()),
upload: responseActionsClientMock.createUploadOptions(getCommonResponseActionOptions()),
+
+ scan: responseActionsClientMock.createScanOptions(getCommonResponseActionOptions()),
};
it.each(Object.keys(responseActionMethods) as ResponseActionsMethodsOnly[])(
diff --git a/x-pack/plugins/security_solution/server/endpoint/services/actions/clients/endpoint/endpoint_actions_client.ts b/x-pack/plugins/security_solution/server/endpoint/services/actions/clients/endpoint/endpoint_actions_client.ts
index 96e77be833e3c..690dd6d84730c 100644
--- a/x-pack/plugins/security_solution/server/endpoint/services/actions/clients/endpoint/endpoint_actions_client.ts
+++ b/x-pack/plugins/security_solution/server/endpoint/services/actions/clients/endpoint/endpoint_actions_client.ts
@@ -23,6 +23,7 @@ import type {
ResponseActionGetFileRequestBody,
UploadActionApiRequestBody,
ResponseActionsRequestBody,
+ ScanActionRequestBody,
} from '../../../../../../common/api/endpoint';
import { ResponseActionsClientImpl } from '../lib/base_response_actions_client';
import type {
@@ -42,6 +43,8 @@ import type {
LogsEndpointAction,
EndpointActionDataParameterTypes,
UploadedFileInfo,
+ ResponseActionsScanParameters,
+ ResponseActionScanOutputContent,
} from '../../../../../../common/endpoint/types';
import type {
CommonResponseActionMethodOptions,
@@ -286,6 +289,16 @@ export class EndpointActionsClient extends ResponseActionsClientImpl {
>('execute', actionRequestWithDefaults, options);
}
+ async scan(
+ actionRequest: ScanActionRequestBody,
+ options: CommonResponseActionMethodOptions = {}
+ ): Promise> {
+ return this.handleResponseAction<
+ ScanActionRequestBody,
+ ActionDetails
+ >('scan', actionRequest, options);
+ }
+
async upload(
actionRequest: UploadActionApiRequestBody,
options: CommonResponseActionMethodOptions = {}
diff --git a/x-pack/plugins/security_solution/server/endpoint/services/actions/clients/lib/base_response_actions_client.ts b/x-pack/plugins/security_solution/server/endpoint/services/actions/clients/lib/base_response_actions_client.ts
index ddd2eef4aa65e..09180f97b72d6 100644
--- a/x-pack/plugins/security_solution/server/endpoint/services/actions/clients/lib/base_response_actions_client.ts
+++ b/x-pack/plugins/security_solution/server/endpoint/services/actions/clients/lib/base_response_actions_client.ts
@@ -40,9 +40,9 @@ import {
} from '../../../../../../common/endpoint/constants';
import type {
CommonResponseActionMethodOptions,
+ GetFileDownloadMethodResponse,
ProcessPendingActionsMethodOptions,
ResponseActionsClient,
- GetFileDownloadMethodResponse,
} from './types';
import type {
ActionDetails,
@@ -57,12 +57,14 @@ import type {
ResponseActionGetFileOutputContent,
ResponseActionGetFileParameters,
ResponseActionParametersWithPidOrEntityId,
+ ResponseActionScanOutputContent,
ResponseActionsExecuteParameters,
+ ResponseActionsScanParameters,
ResponseActionUploadOutputContent,
ResponseActionUploadParameters,
SuspendProcessActionOutputContent,
- WithAllKeys,
UploadedFileInfo,
+ WithAllKeys,
} from '../../../../../../common/endpoint/types';
import type {
ExecuteActionRequestBody,
@@ -70,6 +72,7 @@ import type {
IsolationRouteRequestBody,
ResponseActionGetFileRequestBody,
ResponseActionsRequestBody,
+ ScanActionRequestBody,
UploadActionApiRequestBody,
} from '../../../../../../common/api/endpoint';
import { stringify } from '../../../../utils/stringify';
@@ -692,6 +695,13 @@ export abstract class ResponseActionsClientImpl implements ResponseActionsClient
throw new ResponseActionsNotSupportedError('upload');
}
+ public async scan(
+ actionRequest: ScanActionRequestBody,
+ options?: CommonResponseActionMethodOptions
+ ): Promise> {
+ throw new ResponseActionsNotSupportedError('scan');
+ }
+
public async processPendingActions(_: ProcessPendingActionsMethodOptions): Promise {
this.log.debug(`#processPendingActions() method is not implemented for ${this.agentType}!`);
}
diff --git a/x-pack/plugins/security_solution/server/endpoint/services/actions/clients/lib/types.ts b/x-pack/plugins/security_solution/server/endpoint/services/actions/clients/lib/types.ts
index 9cc7f088c3840..fa20bc9ec6895 100644
--- a/x-pack/plugins/security_solution/server/endpoint/services/actions/clients/lib/types.ts
+++ b/x-pack/plugins/security_solution/server/endpoint/services/actions/clients/lib/types.ts
@@ -22,6 +22,8 @@ import type {
EndpointActionData,
LogsEndpointActionResponse,
UploadedFileInfo,
+ ResponseActionScanOutputContent,
+ ResponseActionsScanParameters,
} from '../../../../../../common/endpoint/types';
import type {
IsolationRouteRequestBody,
@@ -30,6 +32,7 @@ import type {
ExecuteActionRequestBody,
UploadActionApiRequestBody,
BaseActionRequestBody,
+ ScanActionRequestBody,
} from '../../../../../../common/api/endpoint';
type OmitUnsupportedAttributes = Omit<
@@ -140,4 +143,14 @@ export interface ResponseActionsClient {
* @param fileId
*/
getFileInfo(actionId: string, fileId: string): Promise;
+
+ /**
+ * Scan a file path/folder
+ * @param actionRequest
+ * @param options
+ */
+ scan: (
+ actionRequest: OmitUnsupportedAttributes,
+ options?: CommonResponseActionMethodOptions
+ ) => Promise>;
}
diff --git a/x-pack/plugins/security_solution/server/endpoint/services/actions/clients/mocks.ts b/x-pack/plugins/security_solution/server/endpoint/services/actions/clients/mocks.ts
index c64b107b86761..e8b62fb014306 100644
--- a/x-pack/plugins/security_solution/server/endpoint/services/actions/clients/mocks.ts
+++ b/x-pack/plugins/security_solution/server/endpoint/services/actions/clients/mocks.ts
@@ -20,7 +20,9 @@ import type { TransportResult } from '@elastic/elasticsearch';
import type { AttachmentsSubClient } from '@kbn/cases-plugin/server/client/attachments/client';
import { loggingSystemMock } from '@kbn/core-logging-server-mocks';
import type { DeeplyMockedKeys } from '@kbn/utility-types-jest';
+
import type { ResponseActionsClient } from '../..';
+import { NormalizedExternalConnectorClient } from '../..';
import type { KillOrSuspendProcessRequestBody } from '../../../../../common/endpoint/types';
import { BaseDataGenerator } from '../../../../../common/endpoint/data_generators/base_data_generator';
import {
@@ -43,12 +45,11 @@ import { ACTION_RESPONSE_INDICES } from '../constants';
import type {
ExecuteActionRequestBody,
GetProcessesRequestBody,
- ResponseActionGetFileRequestBody,
IsolationRouteRequestBody,
+ ResponseActionGetFileRequestBody,
UploadActionApiRequestBody,
+ ScanActionRequestBody,
} from '../../../../../common/api/endpoint';
-import { NormalizedExternalConnectorClient } from '../..';
-import {} from '@kbn/utility-types-jest';
export interface ResponseActionsClientOptionsMock extends ResponseActionsClientOptions {
esClient: ElasticsearchClientMock;
@@ -68,6 +69,7 @@ const createResponseActionClientMock = (): jest.Mocked =>
processPendingActions: jest.fn().mockReturnValue(Promise.resolve()),
getFileInfo: jest.fn().mockReturnValue(Promise.resolve()),
getFileDownload: jest.fn().mockReturnValue(Promise.resolve()),
+ scan: jest.fn().mockReturnValue(Promise.resolve()),
};
};
@@ -224,6 +226,18 @@ const createUploadOptionsMock = (
return merge(options, overrides);
};
+const createScanOptionsMock = (
+ overrides: Partial = {}
+): ScanActionRequestBody => {
+ const options: ScanActionRequestBody = {
+ ...createNoParamsResponseActionOptionsMock(),
+ parameters: {
+ path: '/scan/folder',
+ },
+ };
+ return merge(options, overrides);
+};
+
const createConnectorMock = (
overrides: DeepPartial = {}
): ConnectorWithExtraFindData => {
@@ -299,6 +313,7 @@ export const responseActionsClientMock = Object.freeze({
createGetFileOptions: createGetFileOptionsMock,
createExecuteOptions: createExecuteOptionsMock,
createUploadOptions: createUploadOptionsMock,
+ createScanOptions: createScanOptionsMock,
createIndexedResponse: createEsIndexTransportResponseMock,
diff --git a/x-pack/plugins/security_solution/server/endpoint/services/actions/utils/fetch_action_responses.test.ts b/x-pack/plugins/security_solution/server/endpoint/services/actions/utils/fetch_action_responses.test.ts
index 5f84107a85135..8e759ac848910 100644
--- a/x-pack/plugins/security_solution/server/endpoint/services/actions/utils/fetch_action_responses.test.ts
+++ b/x-pack/plugins/security_solution/server/endpoint/services/actions/utils/fetch_action_responses.test.ts
@@ -26,15 +26,16 @@ describe('fetchActionResponses()', () => {
await expect(fetchActionResponses({ esClient: esClientMock })).resolves.toEqual({
endpointResponses: [
{
- '@timestamp': '2022-04-30T16:08:47.449Z',
- action_data: {
- command: 'get-file',
- comment: '',
- },
action_id: '123',
agent_id: 'agent-a',
completed_at: '2022-04-30T10:53:59.449Z',
error: '',
+ '@timestamp': '2022-04-30T16:08:47.449Z',
+ action_data: {
+ command: 'execute',
+ comment: '',
+ parameter: undefined,
+ },
started_at: '2022-04-30T12:56:00.449Z',
},
{
@@ -43,38 +44,40 @@ describe('fetchActionResponses()', () => {
action_id: '123',
completed_at: '2022-04-30T10:53:59.449Z',
data: {
- command: 'get-file',
+ command: 'execute',
comment: '',
output: {
content: {
- code: 'ra_get-file_success_done',
- contents: [
- {
- file_name: 'bad_file.txt',
- path: '/some/path/bad_file.txt',
- sha256: '9558c5cb39622e9b3653203e772b129d6c634e7dbd7af1b244352fc1d704601f',
- size: 1234,
- type: 'file',
- },
- ],
- zip_size: 123,
+ code: 'ra_execute_success_done',
+ cwd: '/some/path',
+ output_file_id: 'some-output-file-id',
+ output_file_stderr_truncated: false,
+ output_file_stdout_truncated: true,
+ shell: 'bash',
+ shell_code: 0,
+ stderr: expect.any(String),
+ stderr_truncated: true,
+ stdout_truncated: true,
+ stdout: expect.any(String),
},
type: 'json',
},
},
- started_at: '2022-04-30T12:56:00.449Z',
+ started_at: '2022-04-30T13:56:00.449Z',
},
agent: {
id: 'agent-a',
},
+ error: undefined,
},
],
fleetResponses: [
{
'@timestamp': '2022-04-30T16:08:47.449Z',
action_data: {
- command: 'get-file',
+ command: 'execute',
comment: '',
+ parameter: undefined,
},
action_id: '123',
agent_id: 'agent-a',
@@ -88,30 +91,31 @@ describe('fetchActionResponses()', () => {
action_id: '123',
completed_at: '2022-04-30T10:53:59.449Z',
data: {
- command: 'get-file',
+ command: 'execute',
comment: '',
output: {
content: {
- code: 'ra_get-file_success_done',
- contents: [
- {
- file_name: 'bad_file.txt',
- path: '/some/path/bad_file.txt',
- sha256: '9558c5cb39622e9b3653203e772b129d6c634e7dbd7af1b244352fc1d704601f',
- size: 1234,
- type: 'file',
- },
- ],
- zip_size: 123,
+ code: 'ra_execute_success_done',
+ cwd: '/some/path',
+ output_file_id: 'some-output-file-id',
+ output_file_stderr_truncated: false,
+ output_file_stdout_truncated: true,
+ shell: 'bash',
+ shell_code: 0,
+ stderr_truncated: true,
+ stdout_truncated: true,
+ stderr: expect.any(String),
+ stdout: expect.any(String),
},
type: 'json',
},
},
- started_at: '2022-04-30T12:56:00.449Z',
+ started_at: '2022-04-30T13:56:00.449Z',
},
agent: {
id: 'agent-a',
},
+ error: undefined,
},
],
});
diff --git a/x-pack/plugins/security_solution/server/endpoint/services/actions/utils/utils.test.ts b/x-pack/plugins/security_solution/server/endpoint/services/actions/utils/utils.test.ts
index 59e99c91a1afd..69c66f90e4286 100644
--- a/x-pack/plugins/security_solution/server/endpoint/services/actions/utils/utils.test.ts
+++ b/x-pack/plugins/security_solution/server/endpoint/services/actions/utils/utils.test.ts
@@ -1036,20 +1036,24 @@ describe('When using Actions service utilities', () => {
id: '90d62689-f72d-4a05-b5e3-500cad0dc366',
agentType: 'endpoint',
agents: ['6e6796b0-af39-4f12-b025-fcb06db499e5'],
+ alertIds: undefined,
command: 'kill-process',
comment: 'kill this one',
completedAt: expect.any(String),
startedAt: '2022-04-27T16:08:47.449Z',
status: 'successful',
wasSuccessful: true,
- errors: undefined,
createdBy: 'elastic',
+ errors: undefined,
isCompleted: true,
isExpired: false,
parameters: undefined,
+ ruleId: undefined,
+ ruleName: undefined,
agentState: {
'6e6796b0-af39-4f12-b025-fcb06db499e5': {
completedAt: expect.any(String),
+ errors: undefined,
isCompleted: true,
wasSuccessful: true,
},
@@ -1062,17 +1066,17 @@ describe('When using Actions service utilities', () => {
outputs: {
'6e6796b0-af39-4f12-b025-fcb06db499e5': {
content: {
- code: 'ra_get-file_success_done',
- contents: [
- {
- file_name: 'bad_file.txt',
- path: '/some/path/bad_file.txt',
- sha256: '9558c5cb39622e9b3653203e772b129d6c634e7dbd7af1b244352fc1d704601f',
- size: 1234,
- type: 'file',
- },
- ],
- zip_size: 123,
+ code: 'ra_execute_success_done',
+ cwd: '/some/path',
+ output_file_id: 'some-output-file-id',
+ output_file_stderr_truncated: false,
+ output_file_stdout_truncated: true,
+ shell: 'bash',
+ shell_code: 0,
+ stderr: expect.any(String),
+ stderr_truncated: true,
+ stdout: expect.any(String),
+ stdout_truncated: true,
},
type: 'json',
},
diff --git a/x-pack/plugins/security_solution/server/endpoint/services/feature_usage/feature_keys.ts b/x-pack/plugins/security_solution/server/endpoint/services/feature_usage/feature_keys.ts
index c367c3d1bd91a..52f6cd3671123 100644
--- a/x-pack/plugins/security_solution/server/endpoint/services/feature_usage/feature_keys.ts
+++ b/x-pack/plugins/security_solution/server/endpoint/services/feature_usage/feature_keys.ts
@@ -23,8 +23,7 @@ export const FEATURE_KEYS = {
GET_FILE: 'Get file',
UPLOAD: 'Upload file',
EXECUTE: 'Execute command',
- // TODO: for API changes in a subsequent PR
- // SCAN: 'Scan files',
+ SCAN: 'Scan files',
ALERTS_BY_PROCESS_ANCESTRY: 'Get related alerts by process ancestry',
ENDPOINT_EXCEPTIONS: 'Endpoint exceptions',
} as const;
@@ -41,8 +40,7 @@ const RESPONSE_ACTIONS_FEATURE_KEY: Readonly
Date: Mon, 3 Jun 2024 15:27:17 -0500
Subject: [PATCH 20/82] [Security Solution][Alert KPI] Fix leading wildcard in
KPI visualizations (#182875)
## Summary
Summary charts and tree map were not handling leading wildcards. This PR
updated the query to reflect advanced settings. If leading wildcard is
not selected, an error toast should appear.
![image](https://github.com/elastic/kibana/assets/18648970/c05c9ca4-2f33-4d84-9479-c09a6a81a6d5)
Related: https://github.com/elastic/kibana/issues/182757
After: when leading wildcard is set to true:
![image](https://github.com/elastic/kibana/assets/18648970/38a57cbb-a818-410e-b73b-08b545be4725)
![image](https://github.com/elastic/kibana/assets/18648970/66d6647b-ef77-42c0-b431-fd99c4705b7e)
---
.../common/components/alerts_treemap_panel/index.tsx | 9 +++++++--
.../use_summary_chart_data.test.tsx | 2 ++
.../use_summary_chart_data.tsx | 9 +++++++--
.../pages/detection_engine/detection_engine.test.tsx | 3 ---
4 files changed, 16 insertions(+), 7 deletions(-)
diff --git a/x-pack/plugins/security_solution/public/common/components/alerts_treemap_panel/index.tsx b/x-pack/plugins/security_solution/public/common/components/alerts_treemap_panel/index.tsx
index 33e526932c3e6..176671fa33667 100644
--- a/x-pack/plugins/security_solution/public/common/components/alerts_treemap_panel/index.tsx
+++ b/x-pack/plugins/security_solution/public/common/components/alerts_treemap_panel/index.tsx
@@ -10,6 +10,7 @@ import type { EuiComboBox } from '@elastic/eui';
import { EuiProgress } from '@elastic/eui';
import type { Filter, Query } from '@kbn/es-query';
import { buildEsQuery } from '@kbn/es-query';
+import { getEsQueryConfig } from '@kbn/data-plugin/common';
import React, { useEffect, useMemo } from 'react';
import { v4 as uuidv4 } from 'uuid';
@@ -24,6 +25,7 @@ import { HeaderSection } from '../header_section';
import { InspectButtonContainer } from '../inspect';
import { DEFAULT_STACK_BY_FIELD0_SIZE, getAlertsRiskQuery } from '../alerts_treemap/query';
import type { AlertsTreeMapAggregation } from '../alerts_treemap/types';
+import { useKibana } from '../../lib/kibana';
const DEFAULT_HEIGHT = DEFAULT_MIN_CHART_HEIGHT + 134; // px
@@ -81,23 +83,26 @@ const AlertsTreemapPanelComponent: React.FC = ({
title,
}: Props) => {
const { to, from, deleteQuery, setQuery } = useGlobalTime();
+ const { uiSettings } = useKibana().services;
// create a unique, but stable (across re-renders) query id
const uniqueQueryId = useMemo(() => `${ALERTS_TREEMAP_ID}-${uuidv4()}`, []);
const additionalFilters = useMemo(() => {
try {
+ const config = getEsQueryConfig(uiSettings);
return [
buildEsQuery(
undefined,
query != null ? [query] : [],
- filters?.filter((f) => f.meta.disabled === false) ?? []
+ filters?.filter((f) => f.meta.disabled === false) ?? [],
+ config
),
];
} catch (e) {
return [];
}
- }, [query, filters]);
+ }, [query, filters, uiSettings]);
const {
data: alertsData,
diff --git a/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_summary_charts_panel/use_summary_chart_data.test.tsx b/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_summary_charts_panel/use_summary_chart_data.test.tsx
index f25e4d9803c8b..7719fd47ea606 100644
--- a/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_summary_charts_panel/use_summary_chart_data.test.tsx
+++ b/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_summary_charts_panel/use_summary_chart_data.test.tsx
@@ -25,6 +25,8 @@ const dateNow = new Date(to).valueOf();
const mockDateNow = jest.fn().mockReturnValue(dateNow);
Date.now = jest.fn(() => mockDateNow()) as unknown as DateConstructor['now'];
+jest.mock('../../../../common/lib/kibana');
+
const defaultUseQueryAlertsReturn = {
loading: false,
data: null,
diff --git a/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_summary_charts_panel/use_summary_chart_data.tsx b/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_summary_charts_panel/use_summary_chart_data.tsx
index e8d0ddd061e81..db4f1881448f9 100644
--- a/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_summary_charts_panel/use_summary_chart_data.tsx
+++ b/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_summary_charts_panel/use_summary_chart_data.tsx
@@ -9,7 +9,9 @@ import { useEffect, useState, useMemo, useCallback } from 'react';
import { buildEsQuery } from '@kbn/es-query';
import type { MappingRuntimeFields } from '@elastic/elasticsearch/lib/api/types';
import type { Filter, Query } from '@kbn/es-query';
+import { getEsQueryConfig } from '@kbn/data-plugin/common';
import type { SummaryChartsAgg, SummaryChartsData } from './types';
+import { useKibana } from '../../../../common/lib/kibana';
import type { EntityFilter } from '../../../../overview/components/detection_response/alerts_by_status/use_alerts_by_status';
import type { ESBoolQuery } from '../../../../../common/typed_json';
import { useGlobalTime } from '../../../../common/containers/use_global_time';
@@ -86,19 +88,22 @@ export const useSummaryChartData: UseAlerts = ({
const [updatedAt, setUpdatedAt] = useState(Date.now());
const [items, setItems] = useState([]);
+ const { uiSettings } = useKibana().services;
const additionalFilters = useMemo(() => {
try {
+ const config = getEsQueryConfig(uiSettings);
return [
buildEsQuery(
undefined,
query != null ? [query] : [],
- filters?.filter((f) => f.meta.disabled === false) ?? []
+ filters?.filter((f) => f.meta.disabled === false) ?? [],
+ config
),
];
} catch (e) {
return [];
}
- }, [query, filters]);
+ }, [query, filters, uiSettings]);
const {
data,
diff --git a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/detection_engine.test.tsx b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/detection_engine.test.tsx
index f7907eaf1099c..d7e16697ce250 100644
--- a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/detection_engine.test.tsx
+++ b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/detection_engine.test.tsx
@@ -111,9 +111,6 @@ jest.mock('../../../common/lib/kibana', () => {
cases: {
ui: { getCasesContext: mockCasesContext },
},
- uiSettings: {
- get: jest.fn(),
- },
timelines: { ...mockTimelines },
data: {
query: {
From ce9774151da5683075099f182dec3bd08b7e4b26 Mon Sep 17 00:00:00 2001
From: Tiago Costa
Date: Mon, 3 Jun 2024 21:29:53 +0100
Subject: [PATCH 21/82] skip flaky suite (#181884)
---
test/functional/apps/visualize/group2/_heatmap_chart.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/test/functional/apps/visualize/group2/_heatmap_chart.ts b/test/functional/apps/visualize/group2/_heatmap_chart.ts
index 2f9ecc5a89d06..09439635ebc5e 100644
--- a/test/functional/apps/visualize/group2/_heatmap_chart.ts
+++ b/test/functional/apps/visualize/group2/_heatmap_chart.ts
@@ -16,7 +16,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
const PageObjects = getPageObjects(['visualize', 'visEditor', 'visChart', 'timePicker']);
// FLAKY: https://github.com/elastic/kibana/issues/181884
- describe('heatmap chart', function indexPatternCreation() {
+ describe.skip('heatmap chart', function indexPatternCreation() {
const vizName1 = 'Visualization HeatmapChart';
let isNewChartsLibraryEnabled = false;
From 74ae374c4928802e139cece6e710a97139d4812a Mon Sep 17 00:00:00 2001
From: Lisa Cawley
Date: Mon, 3 Jun 2024 14:08:39 -0700
Subject: [PATCH 22/82] [HTTP/OAS] Add Fleet API descriptions (#184613)
---
x-pack/plugins/fleet/server/routes/agent_policy/index.ts | 8 ++++++++
x-pack/plugins/fleet/server/routes/app/index.ts | 2 ++
x-pack/plugins/fleet/server/routes/epm/index.ts | 5 +++++
x-pack/plugins/fleet/server/routes/health_check/index.ts | 1 +
x-pack/plugins/fleet/server/routes/settings/index.ts | 3 +++
x-pack/plugins/fleet/server/routes/setup/index.ts | 1 +
6 files changed, 20 insertions(+)
diff --git a/x-pack/plugins/fleet/server/routes/agent_policy/index.ts b/x-pack/plugins/fleet/server/routes/agent_policy/index.ts
index 9b45342f730cd..66e84cf4a76fe 100644
--- a/x-pack/plugins/fleet/server/routes/agent_policy/index.ts
+++ b/x-pack/plugins/fleet/server/routes/agent_policy/index.ts
@@ -47,6 +47,7 @@ export const registerRoutes = (router: FleetAuthzRouter) => {
// Allow to retrieve agent policies metadata (no full) for user with only read agents permissions
return authz.fleet.readAgentPolicies || authz.fleet.readAgents;
},
+ description: `Get agent policies`,
})
.addVersion(
{
@@ -80,6 +81,7 @@ export const registerRoutes = (router: FleetAuthzRouter) => {
// Allow to retrieve agent policies metadata (no full) for user with only read agents permissions
return authz.fleet.readAgentPolicies || authz.fleet.readAgents;
},
+ description: `Get an agent policy by ID`,
})
.addVersion(
{
@@ -96,6 +98,7 @@ export const registerRoutes = (router: FleetAuthzRouter) => {
fleetAuthz: {
fleet: { allAgentPolicies: true },
},
+ description: `Create an agent policy`,
})
.addVersion(
{
@@ -112,6 +115,7 @@ export const registerRoutes = (router: FleetAuthzRouter) => {
fleetAuthz: {
fleet: { allAgentPolicies: true },
},
+ description: `Update an agent policy by ID`,
})
.addVersion(
{
@@ -128,6 +132,7 @@ export const registerRoutes = (router: FleetAuthzRouter) => {
fleetAuthz: {
fleet: { allAgentPolicies: true },
},
+ description: `Copy an agent policy by ID`,
})
.addVersion(
{
@@ -160,6 +165,7 @@ export const registerRoutes = (router: FleetAuthzRouter) => {
fleetAuthz: {
fleet: { readAgentPolicies: true },
},
+ description: `Get a full agent policy by ID`,
})
.addVersion(
{
@@ -177,6 +183,7 @@ export const registerRoutes = (router: FleetAuthzRouter) => {
fleet: { readAgentPolicies: true },
},
enableQueryVersion: true,
+ description: `Download an agent policy by ID`,
})
.addVersion(
{
@@ -193,6 +200,7 @@ export const registerRoutes = (router: FleetAuthzRouter) => {
fleetAuthz: {
fleet: { readAgentPolicies: true },
},
+ description: `Get full K8s agent manifest`,
})
.addVersion(
{
diff --git a/x-pack/plugins/fleet/server/routes/app/index.ts b/x-pack/plugins/fleet/server/routes/app/index.ts
index 262bdc867df35..71f528454f29b 100644
--- a/x-pack/plugins/fleet/server/routes/app/index.ts
+++ b/x-pack/plugins/fleet/server/routes/app/index.ts
@@ -158,6 +158,7 @@ export const registerRoutes = (router: FleetAuthzRouter) => {
fleetAuthz: {
fleet: { allAgents: true },
},
+ description: `Create a service token`,
})
.addVersion(
{
@@ -175,6 +176,7 @@ export const registerRoutes = (router: FleetAuthzRouter) => {
fleetAuthz: {
fleet: { allAgents: true },
},
+ description: `Create a service token`,
})
.addVersion(
{
diff --git a/x-pack/plugins/fleet/server/routes/epm/index.ts b/x-pack/plugins/fleet/server/routes/epm/index.ts
index 9108ab1df32df..3b7260c79aa7f 100644
--- a/x-pack/plugins/fleet/server/routes/epm/index.ts
+++ b/x-pack/plugins/fleet/server/routes/epm/index.ts
@@ -86,6 +86,7 @@ export const registerRoutes = (router: FleetAuthzRouter) => {
.get({
path: EPM_API_ROUTES.CATEGORIES_PATTERN,
fleetAuthz: READ_PACKAGE_INFO_AUTHZ,
+ description: `Get package categories`,
})
.addVersion(
{
@@ -99,6 +100,7 @@ export const registerRoutes = (router: FleetAuthzRouter) => {
.get({
path: EPM_API_ROUTES.LIST_PATTERN,
fleetAuthz: READ_PACKAGE_INFO_AUTHZ,
+ description: `Get list of packages`,
})
.addVersion(
{
@@ -125,6 +127,7 @@ export const registerRoutes = (router: FleetAuthzRouter) => {
.get({
path: EPM_API_ROUTES.LIMITED_LIST_PATTERN,
fleetAuthz: READ_PACKAGE_INFO_AUTHZ,
+ description: `Get limited package list`,
})
.addVersion(
{
@@ -287,6 +290,7 @@ export const registerRoutes = (router: FleetAuthzRouter) => {
.get({
path: EPM_API_ROUTES.VERIFICATION_KEY_ID,
fleetAuthz: READ_PACKAGE_INFO_AUTHZ,
+ description: `Get a package signature verification key ID`,
})
.addVersion(
{
@@ -313,6 +317,7 @@ export const registerRoutes = (router: FleetAuthzRouter) => {
.post({
path: EPM_API_ROUTES.BULK_ASSETS_PATTERN,
fleetAuthz: READ_PACKAGE_INFO_AUTHZ,
+ description: `Get bulk assets`,
})
.addVersion(
{
diff --git a/x-pack/plugins/fleet/server/routes/health_check/index.ts b/x-pack/plugins/fleet/server/routes/health_check/index.ts
index 44f26e2a66167..7f30d7f92a859 100644
--- a/x-pack/plugins/fleet/server/routes/health_check/index.ts
+++ b/x-pack/plugins/fleet/server/routes/health_check/index.ts
@@ -25,6 +25,7 @@ export const registerRoutes = (router: FleetAuthzRouter) => {
fleetAuthz: {
fleet: { all: true },
},
+ description: `Check Fleet Server health`,
})
.addVersion(
{
diff --git a/x-pack/plugins/fleet/server/routes/settings/index.ts b/x-pack/plugins/fleet/server/routes/settings/index.ts
index 083839cef2e11..6a814eae0f801 100644
--- a/x-pack/plugins/fleet/server/routes/settings/index.ts
+++ b/x-pack/plugins/fleet/server/routes/settings/index.ts
@@ -78,6 +78,7 @@ export const registerRoutes = (router: FleetAuthzRouter) => {
fleetAuthz: {
fleet: { readSettings: true },
},
+ description: `Get settings`,
})
.addVersion(
{
@@ -92,6 +93,7 @@ export const registerRoutes = (router: FleetAuthzRouter) => {
fleetAuthz: {
fleet: { allSettings: true },
},
+ description: `Update settings`,
})
.addVersion(
{
@@ -106,6 +108,7 @@ export const registerRoutes = (router: FleetAuthzRouter) => {
fleetAuthz: (authz) => {
return authz.fleet.addAgents || authz.fleet.addFleetServers;
},
+ description: `Get enrollment settings`,
})
.addVersion(
{
diff --git a/x-pack/plugins/fleet/server/routes/setup/index.ts b/x-pack/plugins/fleet/server/routes/setup/index.ts
index f09ff70e145aa..7052aacfc329d 100644
--- a/x-pack/plugins/fleet/server/routes/setup/index.ts
+++ b/x-pack/plugins/fleet/server/routes/setup/index.ts
@@ -21,6 +21,7 @@ export const registerFleetSetupRoute = (router: FleetAuthzRouter) => {
fleetAuthz: {
fleet: { setup: true },
},
+ description: `Initiate Fleet setup`,
})
.addVersion(
{
From d5f2c13e5512de1d65d0cec262e028914a942713 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Efe=20G=C3=BCrkan=20YALAMAN?=
Date: Mon, 3 Jun 2024 23:23:43 +0200
Subject: [PATCH 23/82] [Search] Add last_seen status for the connector
(#184653)
## Summary
- Adds error message when connector `last_seen` is less than 30 mins.
- Makes status consistent in between indices and connectors lists.
Still showing banners if `last_seen` is recent
### Checklist
Delete any items that are not applicable to this PR.
- [x] Any text added follows [EUI's writing
guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses
sentence case text and includes [i18n
support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)
- [ ] [Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios
- [ ] [Flaky Test
Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was
used on any tests changed
- [x] This renders correctly on smaller devices using a responsive
layout. (You can test this [in your
browser](https://www.browserstack.com/guide/responsive-testing-on-local-server))
- [x] This was checked for [cross-browser
compatibility](https://www.elastic.co/support/matrix#matrix_browsers)
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
---
.../connector_configuration.tsx | 27 ++++++++++---------
.../connector_detail/connector_view_logic.ts | 16 ++++++-----
.../utils/connector_status_helpers.ts | 21 ++++++++++++++-
3 files changed, 44 insertions(+), 20 deletions(-)
diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/connector_configuration.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/connector_configuration.tsx
index acbfee25ae73b..70c5c46902b69 100644
--- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/connector_configuration.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/connector_configuration.tsx
@@ -41,6 +41,7 @@ import { LicensingLogic } from '../../../shared/licensing';
import { EuiButtonTo, EuiLinkTo } from '../../../shared/react_router_helpers';
import { GenerateConnectorApiKeyApiLogic } from '../../api/connector/generate_connector_api_key_api_logic';
import { CONNECTOR_DETAIL_TAB_PATH } from '../../routes';
+import { isLastSeenOld } from '../../utils/connector_status_helpers';
import { isAdvancedSyncRuleSnippetEmpty } from '../../utils/sync_rules_helpers';
import { ApiKeyConfig } from '../search_index/connector/api_key_configuration';
@@ -282,18 +283,20 @@ export const ConnectorConfiguration: React.FC = () => {
) : (
-
+ !isLastSeenOld(connector) && (
+
+ )
)}
{connector.status &&
diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/connector_view_logic.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/connector_view_logic.ts
index 69049a2709f58..8c85969915523 100644
--- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/connector_view_logic.ts
+++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/connector_view_logic.ts
@@ -33,6 +33,7 @@ import {
hasDocumentLevelSecurityFeature,
hasIncrementalSyncFeature,
} from '../../utils/connector_helpers';
+import { getConnectorLastSeenError, isLastSeenOld } from '../../utils/connector_status_helpers';
import {
ConnectorNameAndDescriptionLogic,
@@ -57,7 +58,6 @@ export interface ConnectorViewActions {
}
export interface ConnectorViewValues {
- updateConnectorConfigurationStatus: Status;
connector: Connector | undefined;
connectorData: CachedFetchConnectorByIdApiLogicValues['connectorData'];
connectorError: string | undefined;
@@ -84,6 +84,7 @@ export interface ConnectorViewValues {
pipelineData: IngestPipelineParams | undefined;
recheckIndexLoading: boolean;
syncTriggeredLocally: boolean; // holds local value after update so UI updates correctly
+ updateConnectorConfigurationStatus: Status;
}
export const ConnectorViewLogic = kea>({
@@ -170,14 +171,9 @@ export const ConnectorViewLogic = kea [selectors.connector],
- (connector: Connector | undefined) => {
- return connector?.index_name || undefined;
- },
- ],
hasAdvancedFilteringFeature: [
() => [selectors.connector],
(connector?: Connector) =>
@@ -211,6 +207,12 @@ export const ConnectorViewLogic = kea
connector?.configuration.extract_full_html?.value ?? undefined,
],
+ indexName: [
+ () => [selectors.connector],
+ (connector: Connector | undefined) => {
+ return connector?.index_name || undefined;
+ },
+ ],
isLoading: [
() => [selectors.fetchConnectorApiStatus, selectors.fetchIndexApiStatus, selectors.index],
(
diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/utils/connector_status_helpers.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/utils/connector_status_helpers.ts
index 587539498c786..52d59ae81ccef 100644
--- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/utils/connector_status_helpers.ts
+++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/utils/connector_status_helpers.ts
@@ -5,9 +5,27 @@
* 2.0.
*/
+import moment from 'moment';
+
import { i18n } from '@kbn/i18n';
import { Connector, ConnectorStatus, SyncStatus } from '@kbn/search-connectors';
+export const isLastSeenOld = (connector: Connector): boolean =>
+ connector.last_seen
+ ? moment(connector.last_seen).isBefore(moment().subtract(30, 'minutes'))
+ : false;
+
+export const getConnectorLastSeenError = (connector: Connector): string => {
+ return i18n.translate(
+ 'xpack.enterpriseSearch.content.searchIndices.connectorStatus.lastSeenError.label',
+ {
+ defaultMessage:
+ 'Your connector has not checked in for over 30 minutes. (last_seen: {lastSeen})',
+ values: { lastSeen: connector.last_seen },
+ }
+ );
+};
+
const incompleteText = i18n.translate(
'xpack.enterpriseSearch.content.searchIndices.ingestionStatus.incomplete.label',
{ defaultMessage: 'Incomplete' }
@@ -35,7 +53,7 @@ export function connectorStatusToText(connector: Connector): string {
{ defaultMessage: 'Sync Failure' }
);
}
- if (connectorStatus === ConnectorStatus.ERROR) {
+ if (isLastSeenOld(connector) || connectorStatus === ConnectorStatus.ERROR) {
return i18n.translate(
'xpack.enterpriseSearch.content.searchIndices.connectorStatus.connectorFailure.label',
{ defaultMessage: 'Connector Failure' }
@@ -67,6 +85,7 @@ export function connectorStatusToColor(connector: Connector): 'warning' | 'dange
return 'warning';
}
if (
+ isLastSeenOld(connector) ||
connectorStatus === ConnectorStatus.ERROR ||
connector.error === SyncStatus.ERROR ||
connector.last_sync_error !== null ||
From bb9aa8df314579e8e865555eb204c672589eea8c Mon Sep 17 00:00:00 2001
From: Philippe Oberti
Date: Mon, 3 Jun 2024 17:12:49 -0500
Subject: [PATCH 24/82] [Security Solution] - remove alertsPageFiltersEnabled
feature flag (#184486)
---
.../common/experimental_features.ts | 5 -
.../detection_engine/detection_engine.tsx | 122 ++++--------------
2 files changed, 23 insertions(+), 104 deletions(-)
diff --git a/x-pack/plugins/security_solution/common/experimental_features.ts b/x-pack/plugins/security_solution/common/experimental_features.ts
index 04f18af241849..a3248bc4374ba 100644
--- a/x-pack/plugins/security_solution/common/experimental_features.ts
+++ b/x-pack/plugins/security_solution/common/experimental_features.ts
@@ -125,11 +125,6 @@ export const allowedExperimentalValues = Object.freeze({
expandableTimelineFlyoutEnabled: true,
/*
- /**
- * Enables new Set of filters on the Alerts page.
- */
- alertsPageFiltersEnabled: true,
-
/**
* Enables the Assistant Model Evaluation advanced setting and API endpoint, introduced in `8.11.0`.
*/
diff --git a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/detection_engine.tsx b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/detection_engine.tsx
index 767ac31b025ea..284c9451c3e85 100644
--- a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/detection_engine.tsx
+++ b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/detection_engine.tsx
@@ -38,7 +38,6 @@ import { FilterByAssigneesPopover } from '../../../common/components/filter_by_a
import type { AssigneesIdsSelection } from '../../../common/components/assignees/types';
import { ALERTS_TABLE_REGISTRY_CONFIG_IDS } from '../../../../common/constants';
import { useDataTableFilters } from '../../../common/hooks/use_data_table_filters';
-import { useIsExperimentalFeatureEnabled } from '../../../common/hooks/use_experimental_features';
import { InputsModelId } from '../../../common/store/inputs/constants';
import { useDeepEqualSelector, useShallowEqualSelector } from '../../../common/hooks/use_selector';
import { SecurityPageName } from '../../../app/types';
@@ -68,7 +67,6 @@ import {
} from '../../../timelines/components/timeline/helpers';
import {
buildAlertAssigneesFilter,
- buildAlertStatusFilter,
buildShowBuildingBlockFilter,
buildThreatMatchFilter,
} from '../../components/alerts_table/default_config';
@@ -84,7 +82,6 @@ import { NoPrivileges } from '../../../common/components/no_privileges';
import { HeaderPage } from '../../../common/components/header_page';
import { EmptyPrompt } from '../../../common/components/empty_prompt';
import type { Status } from '../../../../common/api/detection_engine';
-import { AlertsTableFilterGroup } from '../../components/alerts_table/alerts_filter_group';
import { GroupedAlertsTable } from '../../components/alerts_table/alerts_grouping';
import { AlertsTableComponent } from '../../components/alerts_table';
import type { AddFilterProps } from '../../components/alerts_kpis/common/types';
@@ -100,10 +97,7 @@ const StyledFullHeightContainer = styled.div`
type DetectionEngineComponentProps = PropsFromRedux;
-const DetectionEnginePageComponent: React.FC = ({
- clearEventsLoading,
- clearEventsDeleted,
-}) => {
+const DetectionEnginePageComponent: React.FC = () => {
const dispatch = useDispatch();
const containerElement = useRef(null);
const getTable = useMemo(() => dataTableSelectors.getTableByIdSelector(), []);
@@ -150,16 +144,7 @@ const DetectionEnginePageComponent: React.FC = ({
[assignees]
);
- const arePageFiltersEnabled = useIsExperimentalFeatureEnabled('alertsPageFiltersEnabled');
-
- // when arePageFiltersEnabled === false
const [statusFilter, setStatusFilter] = useState([]);
-
- const updatedAt = useShallowEqualSelector(
- (state) => (getTable(state, TableId.alertsOnAlertsPage) ?? tableDefaults).updated
- );
-
- // when arePageFiltersEnabled === true
const [detectionPageFilters, setDetectionPageFilters] = useState();
const [detectionPageFilterHandler, setDetectionPageFilterHandler] = useState<
FilterGroupHandler | undefined
@@ -181,7 +166,6 @@ const DetectionEnginePageComponent: React.FC = ({
const loading = userInfoLoading || listsConfigLoading;
const {
application: { navigateToUrl },
- timelines: timelinesUi,
data,
} = useKibana().services;
@@ -196,13 +180,6 @@ const DetectionEnginePageComponent: React.FC = ({
];
}, [assignees, showBuildingBlockAlerts, showOnlyThreatIndicatorAlerts, filters]);
- const alertPageFilters = useMemo(() => {
- if (arePageFiltersEnabled) {
- return detectionPageFilters;
- }
- return buildAlertStatusFilter(statusFilter[0] ?? 'open');
- }, [statusFilter, detectionPageFilters, arePageFiltersEnabled]);
-
useEffect(() => {
if (!detectionPageFilterHandler) return;
// if Alert is reloaded because of action by the user.
@@ -254,8 +231,8 @@ const DetectionEnginePageComponent: React.FC = ({
);
const alertsDefaultFilters = useMemo(
- () => [...topLevelFilters, ...(alertPageFilters ?? [])],
- [topLevelFilters, alertPageFilters]
+ () => [...topLevelFilters, ...(detectionPageFilters ?? [])],
+ [topLevelFilters, detectionPageFilters]
);
// AlertsTable manages global filters itself, so not including `filters`
@@ -263,10 +240,10 @@ const DetectionEnginePageComponent: React.FC = ({
() => [
...buildShowBuildingBlockFilter(showBuildingBlockAlerts),
...buildThreatMatchFilter(showOnlyThreatIndicatorAlerts),
- ...(alertPageFilters ?? []),
+ ...(detectionPageFilters ?? []),
...buildAlertAssigneesFilter(assignees),
],
- [assignees, showBuildingBlockAlerts, showOnlyThreatIndicatorAlerts, alertPageFilters]
+ [assignees, showBuildingBlockAlerts, showOnlyThreatIndicatorAlerts, detectionPageFilters]
);
const { signalIndexNeedsInit, pollForSignalIndex } = useSignalHelpers();
@@ -310,24 +287,11 @@ const DetectionEnginePageComponent: React.FC = ({
}
}, []);
- // Callback for when open/closed filter changes
- const onFilterGroupChangedCallback = useCallback(
- (newFilterGroup: Status) => {
- const timelineId = TableId.alertsOnAlertsPage;
- clearEventsLoading({ id: timelineId });
- clearEventsDeleted({ id: timelineId });
- setStatusFilter([newFilterGroup]);
- },
- [clearEventsLoading, clearEventsDeleted, setStatusFilter]
+ const areDetectionPageFiltersLoading = useMemo(
+ () => !Array.isArray(detectionPageFilters),
+ [detectionPageFilters]
);
- const areDetectionPageFiltersLoading = useMemo(() => {
- if (arePageFiltersEnabled) {
- return !Array.isArray(detectionPageFilters);
- }
- return false;
- }, [detectionPageFilters, arePageFiltersEnabled]);
-
const isAlertTableLoading = useMemo(
() => loading || areDetectionPageFiltersLoading,
[loading, areDetectionPageFiltersLoading]
@@ -338,62 +302,22 @@ const DetectionEnginePageComponent: React.FC = ({
[isLoadingIndexPattern, areDetectionPageFiltersLoading]
);
- const showUpdating = useMemo(
- () => isAlertTableLoading || loading,
- [isAlertTableLoading, loading]
- );
-
const AlertPageFilters = useMemo(
- () =>
- !arePageFiltersEnabled ? (
-
-
-
-
-
-
-
-
- {updatedAt &&
- timelinesUi.getLastUpdated({
- updatedAt: updatedAt || Date.now(),
- showUpdating,
- })}
-
-
-
-
- ) : (
-
- ),
- [
- arePageFiltersEnabled,
- from,
- indexPattern,
- onFilterControlsChange,
- onFilterGroupChangedCallback,
- query,
- showUpdating,
- statusFilter,
- timelinesUi,
- to,
- topLevelFilters,
- updatedAt,
- ]
+ () => (
+
+ ),
+ [from, indexPattern, onFilterControlsChange, query, to, topLevelFilters]
);
const renderAlertTable = useCallback(
From 03639a2b3de381ea770aad807146c513762971f4 Mon Sep 17 00:00:00 2001
From: Rachel Shen
Date: Mon, 3 Jun 2024 16:41:16 -0600
Subject: [PATCH 25/82] [Global Search] Fix cmd + click open in new tab for
results (#183762)
## Summary
Closes https://github.com/elastic/kibana/issues/147710
This PR follows the pattern set up in
https://github.com/elastic/kibana/blob/main/x-pack/plugins/spaces/public/nav_control/components/spaces_menu.tsx#L164-L170
to allow the cmd click behavior to work for kibana global search. I'm
exploring contributing to the EUI repository in this
https://github.com/elastic/eui/pull/7788 but that avenue may not be
fruitful. This implementation is already being used in spaces and can
immediately provide value for global search with this PR merge.
---
.../public/components/search_bar.tsx | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/x-pack/plugins/global_search_bar/public/components/search_bar.tsx b/x-pack/plugins/global_search_bar/public/components/search_bar.tsx
index 53f749fc3f7ad..04e519a83b534 100644
--- a/x-pack/plugins/global_search_bar/public/components/search_bar.tsx
+++ b/x-pack/plugins/global_search_bar/public/components/search_bar.tsx
@@ -18,6 +18,7 @@ import {
euiSelectableTemplateSitewideRenderOptions,
useEuiTheme,
} from '@elastic/eui';
+import { EuiSelectableOnChangeEvent } from '@elastic/eui/src/components/selectable/selectable';
import { css } from '@emotion/react';
import type { GlobalSearchFindParams, GlobalSearchResult } from '@kbn/global-search-plugin/public';
import React, { FC, useCallback, useEffect, useRef, useState } from 'react';
@@ -198,7 +199,7 @@ export const SearchBar: FC = (opts) => {
);
const onChange = useCallback(
- (selection: EuiSelectableTemplateSitewideOption[]) => {
+ (selection: EuiSelectableTemplateSitewideOption[], event: EuiSelectableOnChangeEvent) => {
let selectedRank: number | null = null;
const selected = selection.find(({ checked }, rank) => {
const isChecked = checked === 'on';
@@ -249,7 +250,13 @@ export const SearchBar: FC = (opts) => {
console.log('Error trying to track searchbar metrics', err);
}
- navigateToUrl(url);
+ if (event.shiftKey) {
+ window.open(url);
+ } else if (event.ctrlKey || event.metaKey) {
+ window.open(url, '_blank');
+ } else {
+ navigateToUrl(url);
+ }
(document.activeElement as HTMLElement).blur();
if (searchRef) {
From 79e51d64f83da6af56107a633a5a3b49947f1ebe Mon Sep 17 00:00:00 2001
From: Tiago Costa
Date: Tue, 4 Jun 2024 00:36:47 +0100
Subject: [PATCH 26/82] skip flaky suite (#184438)
---
.../observability/dataset_quality/dataset_quality_flyout.ts | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/x-pack/test_serverless/functional/test_suites/observability/dataset_quality/dataset_quality_flyout.ts b/x-pack/test_serverless/functional/test_suites/observability/dataset_quality/dataset_quality_flyout.ts
index a79c93f922a33..a88c3881a4746 100644
--- a/x-pack/test_serverless/functional/test_suites/observability/dataset_quality/dataset_quality_flyout.ts
+++ b/x-pack/test_serverless/functional/test_suites/observability/dataset_quality/dataset_quality_flyout.ts
@@ -473,7 +473,9 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
// Until then, the below describe block is added to cover the tests for the
// newly added degraded Fields Table. This must be merged under the above
// describe block once the tech debt is fixed.
- describe('Dataset quality flyout with degraded fields', () => {
+ //
+ // FLAKY: https://github.com/elastic/kibana/issues/184438
+ describe.skip('Dataset quality flyout with degraded fields', () => {
const goodDatasetName = 'good';
const degradedDatasetName = 'degraded';
const today = new Date().toISOString();
From 652236e2ec9e0cc76813b82b7f16329ae4cdd4f8 Mon Sep 17 00:00:00 2001
From: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
Date: Tue, 4 Jun 2024 00:58:00 -0400
Subject: [PATCH 27/82] [api-docs] 2024-06-04 Daily api_docs build (#184709)
Generated by
https://buildkite.com/elastic/kibana-api-docs-daily/builds/727
---
api_docs/actions.mdx | 2 +-
api_docs/advanced_settings.mdx | 2 +-
.../ai_assistant_management_selection.mdx | 2 +-
api_docs/aiops.mdx | 2 +-
api_docs/alerting.mdx | 2 +-
api_docs/apm.mdx | 2 +-
api_docs/apm_data_access.mdx | 2 +-
api_docs/asset_manager.mdx | 2 +-
api_docs/assets_data_access.mdx | 2 +-
api_docs/banners.mdx | 2 +-
api_docs/bfetch.mdx | 2 +-
api_docs/canvas.mdx | 2 +-
api_docs/cases.mdx | 2 +-
api_docs/charts.mdx | 2 +-
api_docs/cloud.mdx | 2 +-
api_docs/cloud_data_migration.mdx | 2 +-
api_docs/cloud_defend.mdx | 2 +-
api_docs/cloud_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_quality.mdx | 2 +-
api_docs/data_query.mdx | 2 +-
api_docs/data_search.mdx | 2 +-
api_docs/data_view_editor.mdx | 2 +-
api_docs/data_view_field_editor.mdx | 2 +-
api_docs/data_view_management.mdx | 2 +-
api_docs/data_views.mdx | 2 +-
api_docs/data_visualizer.mdx | 2 +-
api_docs/dataset_quality.mdx | 2 +-
api_docs/deprecations_by_api.mdx | 2 +-
api_docs/deprecations_by_plugin.mdx | 2 +-
api_docs/deprecations_by_team.mdx | 2 +-
api_docs/dev_tools.mdx | 2 +-
api_docs/discover.mdx | 2 +-
api_docs/discover_enhanced.mdx | 2 +-
api_docs/discover_shared.mdx | 2 +-
api_docs/ecs_data_quality_dashboard.mdx | 2 +-
api_docs/elastic_assistant.mdx | 2 +-
api_docs/embeddable.mdx | 2 +-
api_docs/embeddable_enhanced.mdx | 2 +-
api_docs/encrypted_saved_objects.mdx | 2 +-
api_docs/enterprise_search.mdx | 4 +-
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/ingest_pipelines.mdx | 2 +-
api_docs/inspector.mdx | 2 +-
api_docs/interactive_setup.mdx | 2 +-
api_docs/kbn_ace.mdx | 2 +-
api_docs/kbn_actions_types.mdx | 2 +-
api_docs/kbn_aiops_components.mdx | 2 +-
api_docs/kbn_aiops_log_pattern_analysis.mdx | 2 +-
api_docs/kbn_aiops_log_rate_analysis.mdx | 2 +-
.../kbn_alerting_api_integration_helpers.mdx | 2 +-
api_docs/kbn_alerting_comparators.mdx | 2 +-
api_docs/kbn_alerting_state_types.mdx | 2 +-
api_docs/kbn_alerting_types.mdx | 2 +-
api_docs/kbn_alerts_as_data_utils.mdx | 2 +-
api_docs/kbn_alerts_ui_shared.mdx | 2 +-
api_docs/kbn_analytics.mdx | 2 +-
api_docs/kbn_analytics_client.mdx | 2 +-
api_docs/kbn_analytics_collection_utils.mdx | 2 +-
..._analytics_shippers_elastic_v3_browser.mdx | 2 +-
...n_analytics_shippers_elastic_v3_common.mdx | 2 +-
...n_analytics_shippers_elastic_v3_server.mdx | 2 +-
api_docs/kbn_analytics_shippers_fullstory.mdx | 2 +-
api_docs/kbn_apm_config_loader.mdx | 2 +-
api_docs/kbn_apm_data_view.mdx | 2 +-
api_docs/kbn_apm_synthtrace.mdx | 2 +-
api_docs/kbn_apm_synthtrace_client.mdx | 2 +-
api_docs/kbn_apm_utils.mdx | 2 +-
api_docs/kbn_axe_config.mdx | 2 +-
api_docs/kbn_bfetch_error.mdx | 2 +-
api_docs/kbn_calculate_auto.mdx | 2 +-
.../kbn_calculate_width_from_char_count.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_mock.mdx | 2 +-
api_docs/kbn_code_owners.mdx | 2 +-
api_docs/kbn_coloring.mdx | 2 +-
api_docs/kbn_config.mdx | 2 +-
api_docs/kbn_config_mocks.mdx | 2 +-
api_docs/kbn_config_schema.mdx | 2 +-
.../kbn_content_management_content_editor.mdx | 2 +-
...tent_management_tabbed_table_list_view.mdx | 2 +-
...kbn_content_management_table_list_view.mdx | 2 +-
...tent_management_table_list_view_common.mdx | 2 +-
...ntent_management_table_list_view_table.mdx | 2 +-
api_docs/kbn_content_management_utils.mdx | 2 +-
api_docs/kbn_core_analytics_browser.mdx | 2 +-
.../kbn_core_analytics_browser_internal.mdx | 2 +-
api_docs/kbn_core_analytics_browser_mocks.mdx | 2 +-
api_docs/kbn_core_analytics_server.mdx | 2 +-
.../kbn_core_analytics_server_internal.mdx | 2 +-
api_docs/kbn_core_analytics_server_mocks.mdx | 2 +-
api_docs/kbn_core_application_browser.mdx | 2 +-
.../kbn_core_application_browser_internal.mdx | 2 +-
.../kbn_core_application_browser_mocks.mdx | 2 +-
api_docs/kbn_core_application_common.mdx | 2 +-
api_docs/kbn_core_apps_browser_internal.mdx | 2 +-
api_docs/kbn_core_apps_browser_mocks.mdx | 2 +-
api_docs/kbn_core_apps_server_internal.mdx | 2 +-
api_docs/kbn_core_base_browser_mocks.mdx | 2 +-
api_docs/kbn_core_base_common.mdx | 2 +-
api_docs/kbn_core_base_server_internal.mdx | 2 +-
api_docs/kbn_core_base_server_mocks.mdx | 2 +-
.../kbn_core_capabilities_browser_mocks.mdx | 2 +-
api_docs/kbn_core_capabilities_common.mdx | 2 +-
api_docs/kbn_core_capabilities_server.mdx | 2 +-
.../kbn_core_capabilities_server_mocks.mdx | 2 +-
api_docs/kbn_core_chrome_browser.mdx | 2 +-
api_docs/kbn_core_chrome_browser_mocks.mdx | 2 +-
api_docs/kbn_core_config_server_internal.mdx | 2 +-
api_docs/kbn_core_custom_branding_browser.mdx | 2 +-
..._core_custom_branding_browser_internal.mdx | 2 +-
...kbn_core_custom_branding_browser_mocks.mdx | 2 +-
api_docs/kbn_core_custom_branding_common.mdx | 2 +-
api_docs/kbn_core_custom_branding_server.mdx | 2 +-
...n_core_custom_branding_server_internal.mdx | 2 +-
.../kbn_core_custom_branding_server_mocks.mdx | 2 +-
api_docs/kbn_core_deprecations_browser.mdx | 2 +-
...kbn_core_deprecations_browser_internal.mdx | 2 +-
.../kbn_core_deprecations_browser_mocks.mdx | 2 +-
api_docs/kbn_core_deprecations_common.mdx | 2 +-
api_docs/kbn_core_deprecations_server.mdx | 2 +-
.../kbn_core_deprecations_server_internal.mdx | 2 +-
.../kbn_core_deprecations_server_mocks.mdx | 2 +-
api_docs/kbn_core_doc_links_browser.mdx | 2 +-
api_docs/kbn_core_doc_links_browser_mocks.mdx | 2 +-
api_docs/kbn_core_doc_links_server.mdx | 2 +-
api_docs/kbn_core_doc_links_server_mocks.mdx | 2 +-
...e_elasticsearch_client_server_internal.mdx | 2 +-
...core_elasticsearch_client_server_mocks.mdx | 2 +-
api_docs/kbn_core_elasticsearch_server.mdx | 2 +-
...kbn_core_elasticsearch_server_internal.mdx | 2 +-
.../kbn_core_elasticsearch_server_mocks.mdx | 2 +-
.../kbn_core_environment_server_internal.mdx | 2 +-
.../kbn_core_environment_server_mocks.mdx | 2 +-
.../kbn_core_execution_context_browser.mdx | 2 +-
...ore_execution_context_browser_internal.mdx | 2 +-
...n_core_execution_context_browser_mocks.mdx | 2 +-
.../kbn_core_execution_context_common.mdx | 2 +-
.../kbn_core_execution_context_server.mdx | 2 +-
...core_execution_context_server_internal.mdx | 2 +-
...bn_core_execution_context_server_mocks.mdx | 2 +-
api_docs/kbn_core_fatal_errors_browser.mdx | 2 +-
.../kbn_core_fatal_errors_browser_mocks.mdx | 2 +-
api_docs/kbn_core_http_browser.mdx | 2 +-
api_docs/kbn_core_http_browser_internal.mdx | 2 +-
api_docs/kbn_core_http_browser_mocks.mdx | 2 +-
api_docs/kbn_core_http_common.mdx | 2 +-
.../kbn_core_http_context_server_mocks.mdx | 2 +-
...re_http_request_handler_context_server.mdx | 2 +-
api_docs/kbn_core_http_resources_server.mdx | 2 +-
...bn_core_http_resources_server_internal.mdx | 2 +-
.../kbn_core_http_resources_server_mocks.mdx | 2 +-
.../kbn_core_http_router_server_internal.mdx | 2 +-
.../kbn_core_http_router_server_mocks.mdx | 2 +-
api_docs/kbn_core_http_server.devdocs.json | 12 +-
api_docs/kbn_core_http_server.mdx | 2 +-
...kbn_core_http_server_internal.devdocs.json | 16 +-
api_docs/kbn_core_http_server_internal.mdx | 4 +-
.../kbn_core_http_server_mocks.devdocs.json | 4 +-
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 +-
..._core_logging_common_internal.devdocs.json | 39 ++
api_docs/kbn_core_logging_common_internal.mdx | 4 +-
api_docs/kbn_core_logging_server.mdx | 2 +-
api_docs/kbn_core_logging_server_internal.mdx | 2 +-
api_docs/kbn_core_logging_server_mocks.mdx | 2 +-
...ore_metrics_collectors_server_internal.mdx | 2 +-
...n_core_metrics_collectors_server_mocks.mdx | 2 +-
api_docs/kbn_core_metrics_server.mdx | 2 +-
api_docs/kbn_core_metrics_server_internal.mdx | 2 +-
api_docs/kbn_core_metrics_server_mocks.mdx | 2 +-
api_docs/kbn_core_mount_utils_browser.mdx | 2 +-
api_docs/kbn_core_node_server.mdx | 2 +-
api_docs/kbn_core_node_server_internal.mdx | 2 +-
api_docs/kbn_core_node_server_mocks.mdx | 2 +-
api_docs/kbn_core_notifications_browser.mdx | 2 +-
...bn_core_notifications_browser_internal.mdx | 2 +-
.../kbn_core_notifications_browser_mocks.mdx | 2 +-
api_docs/kbn_core_overlays_browser.mdx | 2 +-
.../kbn_core_overlays_browser_internal.mdx | 2 +-
api_docs/kbn_core_overlays_browser_mocks.mdx | 2 +-
api_docs/kbn_core_plugins_browser.mdx | 2 +-
api_docs/kbn_core_plugins_browser_mocks.mdx | 2 +-
.../kbn_core_plugins_contracts_browser.mdx | 2 +-
.../kbn_core_plugins_contracts_server.mdx | 2 +-
api_docs/kbn_core_plugins_server.mdx | 2 +-
api_docs/kbn_core_plugins_server_mocks.mdx | 2 +-
api_docs/kbn_core_preboot_server.mdx | 2 +-
api_docs/kbn_core_preboot_server_mocks.mdx | 2 +-
api_docs/kbn_core_rendering_browser_mocks.mdx | 2 +-
.../kbn_core_rendering_server_internal.mdx | 2 +-
api_docs/kbn_core_rendering_server_mocks.mdx | 2 +-
api_docs/kbn_core_root_server_internal.mdx | 2 +-
.../kbn_core_saved_objects_api_browser.mdx | 2 +-
.../kbn_core_saved_objects_api_server.mdx | 2 +-
...bn_core_saved_objects_api_server_mocks.mdx | 2 +-
...ore_saved_objects_base_server_internal.mdx | 2 +-
...n_core_saved_objects_base_server_mocks.mdx | 2 +-
api_docs/kbn_core_saved_objects_browser.mdx | 2 +-
...bn_core_saved_objects_browser_internal.mdx | 2 +-
.../kbn_core_saved_objects_browser_mocks.mdx | 2 +-
api_docs/kbn_core_saved_objects_common.mdx | 2 +-
..._objects_import_export_server_internal.mdx | 2 +-
...ved_objects_import_export_server_mocks.mdx | 2 +-
...aved_objects_migration_server_internal.mdx | 2 +-
...e_saved_objects_migration_server_mocks.mdx | 2 +-
api_docs/kbn_core_saved_objects_server.mdx | 2 +-
...kbn_core_saved_objects_server_internal.mdx | 2 +-
.../kbn_core_saved_objects_server_mocks.mdx | 2 +-
.../kbn_core_saved_objects_utils_server.mdx | 2 +-
api_docs/kbn_core_security_browser.mdx | 2 +-
.../kbn_core_security_browser_internal.mdx | 2 +-
api_docs/kbn_core_security_browser_mocks.mdx | 2 +-
api_docs/kbn_core_security_common.mdx | 2 +-
api_docs/kbn_core_security_server.mdx | 2 +-
.../kbn_core_security_server_internal.mdx | 2 +-
api_docs/kbn_core_security_server_mocks.mdx | 2 +-
api_docs/kbn_core_status_common.mdx | 2 +-
api_docs/kbn_core_status_common_internal.mdx | 2 +-
api_docs/kbn_core_status_server.mdx | 2 +-
api_docs/kbn_core_status_server_internal.mdx | 2 +-
api_docs/kbn_core_status_server_mocks.mdx | 2 +-
...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_profile_browser.mdx | 2 +-
...kbn_core_user_profile_browser_internal.mdx | 2 +-
.../kbn_core_user_profile_browser_mocks.mdx | 2 +-
api_docs/kbn_core_user_profile_common.mdx | 2 +-
api_docs/kbn_core_user_profile_server.mdx | 2 +-
.../kbn_core_user_profile_server_internal.mdx | 2 +-
.../kbn_core_user_profile_server_mocks.mdx | 2 +-
api_docs/kbn_core_user_settings_server.mdx | 2 +-
.../kbn_core_user_settings_server_mocks.mdx | 2 +-
api_docs/kbn_crypto.mdx | 2 +-
api_docs/kbn_crypto_browser.mdx | 2 +-
api_docs/kbn_custom_icons.mdx | 2 +-
api_docs/kbn_custom_integrations.mdx | 2 +-
api_docs/kbn_cypress_config.mdx | 2 +-
api_docs/kbn_data_forge.mdx | 2 +-
api_docs/kbn_data_service.mdx | 2 +-
api_docs/kbn_data_stream_adapter.mdx | 2 +-
api_docs/kbn_data_view_utils.mdx | 2 +-
api_docs/kbn_datemath.mdx | 2 +-
api_docs/kbn_deeplinks_analytics.mdx | 2 +-
api_docs/kbn_deeplinks_devtools.mdx | 2 +-
api_docs/kbn_deeplinks_fleet.mdx | 2 +-
api_docs/kbn_deeplinks_management.mdx | 2 +-
api_docs/kbn_deeplinks_ml.mdx | 2 +-
api_docs/kbn_deeplinks_observability.mdx | 2 +-
api_docs/kbn_deeplinks_search.mdx | 4 +-
api_docs/kbn_deeplinks_security.mdx | 2 +-
api_docs/kbn_deeplinks_shared.mdx | 2 +-
api_docs/kbn_default_nav_analytics.mdx | 2 +-
api_docs/kbn_default_nav_devtools.mdx | 2 +-
api_docs/kbn_default_nav_management.mdx | 2 +-
api_docs/kbn_default_nav_ml.mdx | 2 +-
api_docs/kbn_dev_cli_errors.mdx | 2 +-
api_docs/kbn_dev_cli_runner.mdx | 2 +-
api_docs/kbn_dev_proc_runner.mdx | 2 +-
api_docs/kbn_dev_utils.mdx | 2 +-
api_docs/kbn_discover_utils.mdx | 2 +-
api_docs/kbn_doc_links.mdx | 2 +-
api_docs/kbn_docs_utils.mdx | 2 +-
api_docs/kbn_dom_drag_drop.mdx | 2 +-
api_docs/kbn_ebt_tools.mdx | 2 +-
api_docs/kbn_ecs_data_quality_dashboard.mdx | 2 +-
api_docs/kbn_elastic_agent_utils.mdx | 2 +-
api_docs/kbn_elastic_assistant.mdx | 2 +-
api_docs/kbn_elastic_assistant_common.mdx | 2 +-
api_docs/kbn_entities_schema.mdx | 2 +-
api_docs/kbn_es.mdx | 2 +-
api_docs/kbn_es_archiver.mdx | 2 +-
api_docs/kbn_es_errors.mdx | 2 +-
api_docs/kbn_es_query.mdx | 2 +-
api_docs/kbn_es_types.mdx | 2 +-
api_docs/kbn_eslint_plugin_imports.mdx | 2 +-
api_docs/kbn_esql_ast.mdx | 2 +-
api_docs/kbn_esql_utils.mdx | 2 +-
api_docs/kbn_esql_validation_autocomplete.mdx | 2 +-
api_docs/kbn_event_annotation_common.mdx | 2 +-
api_docs/kbn_event_annotation_components.mdx | 2 +-
api_docs/kbn_expandable_flyout.mdx | 2 +-
api_docs/kbn_field_types.mdx | 2 +-
api_docs/kbn_field_utils.mdx | 2 +-
api_docs/kbn_find_used_node_modules.mdx | 2 +-
api_docs/kbn_formatters.mdx | 2 +-
.../kbn_ftr_common_functional_services.mdx | 2 +-
.../kbn_ftr_common_functional_ui_services.mdx | 2 +-
api_docs/kbn_generate.mdx | 2 +-
api_docs/kbn_generate_console_definitions.mdx | 2 +-
api_docs/kbn_generate_csv.mdx | 2 +-
api_docs/kbn_grouping.mdx | 2 +-
api_docs/kbn_guided_onboarding.mdx | 2 +-
api_docs/kbn_handlebars.mdx | 2 +-
api_docs/kbn_hapi_mocks.mdx | 2 +-
api_docs/kbn_health_gateway_server.mdx | 2 +-
api_docs/kbn_home_sample_data_card.mdx | 2 +-
api_docs/kbn_home_sample_data_tab.mdx | 2 +-
api_docs/kbn_i18n.mdx | 2 +-
api_docs/kbn_i18n_react.mdx | 2 +-
api_docs/kbn_import_resolver.mdx | 2 +-
api_docs/kbn_index_management.mdx | 2 +-
api_docs/kbn_inference_integration_flyout.mdx | 2 +-
api_docs/kbn_infra_forge.mdx | 2 +-
api_docs/kbn_interpreter.mdx | 2 +-
api_docs/kbn_io_ts_utils.mdx | 2 +-
api_docs/kbn_ipynb.mdx | 4 +-
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_lens_formula_docs.mdx | 2 +-
api_docs/kbn_logging.mdx | 2 +-
api_docs/kbn_logging_mocks.mdx | 2 +-
api_docs/kbn_managed_content_badge.mdx | 2 +-
api_docs/kbn_managed_vscode_config.mdx | 2 +-
api_docs/kbn_management_cards_navigation.mdx | 2 +-
.../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_cancellable_search.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_time_buckets.mdx | 2 +-
api_docs/kbn_ml_trained_models_utils.mdx | 2 +-
api_docs/kbn_ml_ui_actions.mdx | 2 +-
api_docs/kbn_ml_url_state.mdx | 2 +-
api_docs/kbn_mock_idp_utils.mdx | 2 +-
api_docs/kbn_monaco.mdx | 2 +-
api_docs/kbn_object_versioning.mdx | 2 +-
api_docs/kbn_observability_alert_details.mdx | 2 +-
.../kbn_observability_alerting_test_data.mdx | 2 +-
..._padded_alert_time_range_util.devdocs.json | 40 +-
...ility_get_padded_alert_time_range_util.mdx | 4 +-
api_docs/kbn_openapi_bundler.mdx | 2 +-
api_docs/kbn_openapi_generator.mdx | 2 +-
api_docs/kbn_optimizer.mdx | 2 +-
api_docs/kbn_optimizer_webpack_helpers.mdx | 2 +-
api_docs/kbn_osquery_io_ts_types.mdx | 2 +-
api_docs/kbn_panel_loader.mdx | 2 +-
..._performance_testing_dataset_extractor.mdx | 2 +-
api_docs/kbn_plugin_check.mdx | 2 +-
api_docs/kbn_plugin_generator.mdx | 2 +-
api_docs/kbn_plugin_helpers.mdx | 2 +-
api_docs/kbn_presentation_containers.mdx | 2 +-
api_docs/kbn_presentation_publishing.mdx | 2 +-
api_docs/kbn_profiling_utils.mdx | 2 +-
api_docs/kbn_random_sampling.mdx | 2 +-
api_docs/kbn_react_field.mdx | 2 +-
api_docs/kbn_react_hooks.mdx | 2 +-
api_docs/kbn_react_kibana_context_common.mdx | 2 +-
api_docs/kbn_react_kibana_context_render.mdx | 2 +-
api_docs/kbn_react_kibana_context_root.mdx | 2 +-
api_docs/kbn_react_kibana_context_styled.mdx | 2 +-
api_docs/kbn_react_kibana_context_theme.mdx | 2 +-
api_docs/kbn_react_kibana_mount.mdx | 2 +-
api_docs/kbn_repo_file_maps.mdx | 2 +-
api_docs/kbn_repo_linter.mdx | 2 +-
api_docs/kbn_repo_path.mdx | 2 +-
api_docs/kbn_repo_source_classifier.mdx | 2 +-
api_docs/kbn_reporting_common.mdx | 2 +-
api_docs/kbn_reporting_csv_share_panel.mdx | 2 +-
api_docs/kbn_reporting_export_types_csv.mdx | 2 +-
.../kbn_reporting_export_types_csv_common.mdx | 2 +-
api_docs/kbn_reporting_export_types_pdf.mdx | 2 +-
.../kbn_reporting_export_types_pdf_common.mdx | 2 +-
api_docs/kbn_reporting_export_types_png.mdx | 2 +-
.../kbn_reporting_export_types_png_common.mdx | 2 +-
api_docs/kbn_reporting_mocks_server.mdx | 2 +-
api_docs/kbn_reporting_public.mdx | 2 +-
api_docs/kbn_reporting_server.mdx | 2 +-
api_docs/kbn_resizable_layout.mdx | 2 +-
api_docs/kbn_rison.mdx | 2 +-
api_docs/kbn_router_to_openapispec.mdx | 2 +-
api_docs/kbn_router_utils.mdx | 2 +-
api_docs/kbn_rrule.mdx | 2 +-
api_docs/kbn_rule_data_utils.mdx | 2 +-
api_docs/kbn_saved_objects_settings.mdx | 2 +-
api_docs/kbn_search_api_panels.mdx | 4 +-
api_docs/kbn_search_connectors.devdocs.json | 22 +-
api_docs/kbn_search_connectors.mdx | 6 +-
api_docs/kbn_search_errors.mdx | 2 +-
api_docs/kbn_search_index_documents.mdx | 4 +-
api_docs/kbn_search_response_warnings.mdx | 2 +-
api_docs/kbn_search_types.mdx | 2 +-
api_docs/kbn_security_hardening.mdx | 2 +-
api_docs/kbn_security_plugin_types_common.mdx | 2 +-
api_docs/kbn_security_plugin_types_public.mdx | 2 +-
api_docs/kbn_security_plugin_types_server.mdx | 2 +-
api_docs/kbn_security_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_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.devdocs.json | 132 +++-
api_docs/kbn_server_http_tools.mdx | 7 +-
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 | 4 +-
api_docs/kbn_serverless_security_settings.mdx | 2 +-
api_docs/kbn_serverless_storybook_config.mdx | 2 +-
api_docs/kbn_shared_svg.mdx | 2 +-
api_docs/kbn_shared_ux_avatar_solution.mdx | 2 +-
.../kbn_shared_ux_button_exit_full_screen.mdx | 2 +-
api_docs/kbn_shared_ux_button_toolbar.mdx | 2 +-
api_docs/kbn_shared_ux_card_no_data.mdx | 2 +-
api_docs/kbn_shared_ux_card_no_data_mocks.mdx | 2 +-
api_docs/kbn_shared_ux_chrome_navigation.mdx | 2 +-
api_docs/kbn_shared_ux_error_boundary.mdx | 2 +-
api_docs/kbn_shared_ux_file_context.mdx | 2 +-
api_docs/kbn_shared_ux_file_image.mdx | 2 +-
api_docs/kbn_shared_ux_file_image_mocks.mdx | 2 +-
api_docs/kbn_shared_ux_file_mocks.mdx | 2 +-
api_docs/kbn_shared_ux_file_picker.mdx | 2 +-
api_docs/kbn_shared_ux_file_types.mdx | 2 +-
api_docs/kbn_shared_ux_file_upload.mdx | 2 +-
api_docs/kbn_shared_ux_file_util.mdx | 2 +-
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_tabbed_modal.mdx | 2 +-
api_docs/kbn_shared_ux_utility.mdx | 2 +-
api_docs/kbn_slo_schema.mdx | 2 +-
api_docs/kbn_some_dev_log.mdx | 2 +-
api_docs/kbn_sort_predicates.mdx | 2 +-
api_docs/kbn_std.mdx | 2 +-
api_docs/kbn_stdio_dev_helpers.mdx | 2 +-
api_docs/kbn_storybook.mdx | 2 +-
api_docs/kbn_telemetry_tools.mdx | 2 +-
api_docs/kbn_test.mdx | 2 +-
api_docs/kbn_test_eui_helpers.mdx | 2 +-
api_docs/kbn_test_jest_helpers.mdx | 2 +-
api_docs/kbn_test_subj_selector.mdx | 2 +-
api_docs/kbn_text_based_editor.mdx | 2 +-
api_docs/kbn_timerange.mdx | 2 +-
api_docs/kbn_tooling_log.mdx | 2 +-
api_docs/kbn_triggers_actions_ui_types.mdx | 2 +-
api_docs/kbn_try_in_console.mdx | 4 +-
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.devdocs.json | 35 +-
api_docs/kbn_unified_data_table.mdx | 4 +-
api_docs/kbn_unified_doc_viewer.mdx | 2 +-
api_docs/kbn_unified_field_list.devdocs.json | 569 +++++++++++++++++-
api_docs/kbn_unified_field_list.mdx | 4 +-
api_docs/kbn_unsaved_changes_badge.mdx | 2 +-
api_docs/kbn_use_tracked_promise.mdx | 2 +-
api_docs/kbn_user_profile_components.mdx | 2 +-
api_docs/kbn_utility_types.mdx | 2 +-
api_docs/kbn_utility_types_jest.mdx | 2 +-
api_docs/kbn_utils.mdx | 2 +-
api_docs/kbn_visualization_ui_components.mdx | 2 +-
api_docs/kbn_visualization_utils.mdx | 2 +-
api_docs/kbn_xstate_utils.mdx | 2 +-
api_docs/kbn_yarn_lock_validator.mdx | 2 +-
api_docs/kbn_zod_helpers.mdx | 2 +-
api_docs/kibana_overview.mdx | 2 +-
api_docs/kibana_react.mdx | 2 +-
api_docs/kibana_utils.mdx | 2 +-
api_docs/kubernetes_security.mdx | 2 +-
api_docs/lens.mdx | 2 +-
api_docs/license_api_guard.mdx | 2 +-
api_docs/license_management.mdx | 2 +-
api_docs/licensing.mdx | 2 +-
api_docs/links.mdx | 2 +-
api_docs/lists.mdx | 2 +-
api_docs/logs_data_access.mdx | 2 +-
api_docs/logs_explorer.mdx | 2 +-
api_docs/logs_shared.mdx | 2 +-
api_docs/management.mdx | 2 +-
api_docs/maps.mdx | 2 +-
api_docs/maps_ems.mdx | 2 +-
api_docs/metrics_data_access.mdx | 2 +-
api_docs/ml.mdx | 2 +-
api_docs/mock_idp_plugin.mdx | 2 +-
api_docs/monitoring.mdx | 2 +-
api_docs/monitoring_collection.mdx | 2 +-
api_docs/navigation.devdocs.json | 19 +-
api_docs/navigation.mdx | 4 +-
api_docs/newsfeed.mdx | 2 +-
api_docs/no_data_page.mdx | 2 +-
api_docs/notifications.mdx | 2 +-
api_docs/observability.mdx | 2 +-
api_docs/observability_a_i_assistant.mdx | 2 +-
api_docs/observability_a_i_assistant_app.mdx | 2 +-
.../observability_ai_assistant_management.mdx | 2 +-
api_docs/observability_logs_explorer.mdx | 2 +-
api_docs/observability_onboarding.mdx | 2 +-
api_docs/observability_shared.mdx | 2 +-
api_docs/osquery.mdx | 2 +-
api_docs/painless_lab.mdx | 2 +-
api_docs/plugin_directory.mdx | 42 +-
api_docs/presentation_panel.mdx | 2 +-
api_docs/presentation_util.mdx | 2 +-
api_docs/profiling.mdx | 2 +-
api_docs/profiling_data_access.mdx | 2 +-
api_docs/remote_clusters.mdx | 2 +-
api_docs/reporting.mdx | 2 +-
api_docs/rollup.mdx | 2 +-
api_docs/rule_registry.mdx | 2 +-
api_docs/runtime_fields.mdx | 2 +-
api_docs/saved_objects.mdx | 2 +-
api_docs/saved_objects_finder.mdx | 2 +-
api_docs/saved_objects_management.mdx | 2 +-
api_docs/saved_objects_tagging.mdx | 2 +-
api_docs/saved_objects_tagging_oss.mdx | 2 +-
api_docs/saved_search.mdx | 2 +-
api_docs/screenshot_mode.mdx | 2 +-
api_docs/screenshotting.mdx | 2 +-
api_docs/search_connectors.mdx | 4 +-
api_docs/search_notebooks.mdx | 4 +-
api_docs/search_playground.mdx | 4 +-
api_docs/security.mdx | 2 +-
api_docs/security_solution.devdocs.json | 18 +-
api_docs/security_solution.mdx | 2 +-
api_docs/security_solution_ess.mdx | 2 +-
api_docs/security_solution_serverless.mdx | 2 +-
api_docs/serverless.mdx | 2 +-
api_docs/serverless_observability.mdx | 2 +-
api_docs/serverless_search.mdx | 4 +-
api_docs/session_view.mdx | 2 +-
api_docs/share.mdx | 2 +-
api_docs/slo.mdx | 2 +-
api_docs/snapshot_restore.mdx | 2 +-
api_docs/spaces.mdx | 2 +-
api_docs/stack_alerts.mdx | 2 +-
api_docs/stack_connectors.mdx | 2 +-
api_docs/task_manager.mdx | 2 +-
api_docs/telemetry.mdx | 2 +-
api_docs/telemetry_collection_manager.mdx | 2 +-
api_docs/telemetry_collection_xpack.mdx | 2 +-
api_docs/telemetry_management_section.mdx | 2 +-
api_docs/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 +-
703 files changed, 1566 insertions(+), 807 deletions(-)
diff --git a/api_docs/actions.mdx b/api_docs/actions.mdx
index 5ea59e2679e76..028c3f5826ee6 100644
--- a/api_docs/actions.mdx
+++ b/api_docs/actions.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/actions
title: "actions"
image: https://source.unsplash.com/400x175/?github
description: API docs for the actions plugin
-date: 2024-06-03
+date: 2024-06-04
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 dbc64e3efc72f..33f2f684d461f 100644
--- a/api_docs/advanced_settings.mdx
+++ b/api_docs/advanced_settings.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/advancedSettings
title: "advancedSettings"
image: https://source.unsplash.com/400x175/?github
description: API docs for the advancedSettings plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'advancedSettings']
---
import advancedSettingsObj from './advanced_settings.devdocs.json';
diff --git a/api_docs/ai_assistant_management_selection.mdx b/api_docs/ai_assistant_management_selection.mdx
index 55384a4db2d9f..9ac7c7a38dced 100644
--- a/api_docs/ai_assistant_management_selection.mdx
+++ b/api_docs/ai_assistant_management_selection.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/aiAssistantManagementSelection
title: "aiAssistantManagementSelection"
image: https://source.unsplash.com/400x175/?github
description: API docs for the aiAssistantManagementSelection plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'aiAssistantManagementSelection']
---
import aiAssistantManagementSelectionObj from './ai_assistant_management_selection.devdocs.json';
diff --git a/api_docs/aiops.mdx b/api_docs/aiops.mdx
index 77278a32d0924..57b2a4f7cf82c 100644
--- a/api_docs/aiops.mdx
+++ b/api_docs/aiops.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/aiops
title: "aiops"
image: https://source.unsplash.com/400x175/?github
description: API docs for the aiops plugin
-date: 2024-06-03
+date: 2024-06-04
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 1f68650e7799a..93302dd1b5891 100644
--- a/api_docs/alerting.mdx
+++ b/api_docs/alerting.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/alerting
title: "alerting"
image: https://source.unsplash.com/400x175/?github
description: API docs for the alerting plugin
-date: 2024-06-03
+date: 2024-06-04
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 c51bc2d808f43..559d9b3ea0b68 100644
--- a/api_docs/apm.mdx
+++ b/api_docs/apm.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/apm
title: "apm"
image: https://source.unsplash.com/400x175/?github
description: API docs for the apm plugin
-date: 2024-06-03
+date: 2024-06-04
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 222e730f31998..a14e26b1d3778 100644
--- a/api_docs/apm_data_access.mdx
+++ b/api_docs/apm_data_access.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/apmDataAccess
title: "apmDataAccess"
image: https://source.unsplash.com/400x175/?github
description: API docs for the apmDataAccess plugin
-date: 2024-06-03
+date: 2024-06-04
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 83e9593f6e6bc..565acd62fe824 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: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'assetManager']
---
import assetManagerObj from './asset_manager.devdocs.json';
diff --git a/api_docs/assets_data_access.mdx b/api_docs/assets_data_access.mdx
index 3dbb6016fb488..ad458c0282c25 100644
--- a/api_docs/assets_data_access.mdx
+++ b/api_docs/assets_data_access.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/assetsDataAccess
title: "assetsDataAccess"
image: https://source.unsplash.com/400x175/?github
description: API docs for the assetsDataAccess plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'assetsDataAccess']
---
import assetsDataAccessObj from './assets_data_access.devdocs.json';
diff --git a/api_docs/banners.mdx b/api_docs/banners.mdx
index 62f40d496161d..aa12c1ea03a77 100644
--- a/api_docs/banners.mdx
+++ b/api_docs/banners.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/banners
title: "banners"
image: https://source.unsplash.com/400x175/?github
description: API docs for the banners plugin
-date: 2024-06-03
+date: 2024-06-04
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 ff1abccb55b75..a0883535cf3be 100644
--- a/api_docs/bfetch.mdx
+++ b/api_docs/bfetch.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/bfetch
title: "bfetch"
image: https://source.unsplash.com/400x175/?github
description: API docs for the bfetch plugin
-date: 2024-06-03
+date: 2024-06-04
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 42ab3dcf3d7c0..45db093ed6f7a 100644
--- a/api_docs/canvas.mdx
+++ b/api_docs/canvas.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/canvas
title: "canvas"
image: https://source.unsplash.com/400x175/?github
description: API docs for the canvas plugin
-date: 2024-06-03
+date: 2024-06-04
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 7fdcb763b5238..994e8035b21fd 100644
--- a/api_docs/cases.mdx
+++ b/api_docs/cases.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cases
title: "cases"
image: https://source.unsplash.com/400x175/?github
description: API docs for the cases plugin
-date: 2024-06-03
+date: 2024-06-04
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 be1e86d43620e..dc67650af4d31 100644
--- a/api_docs/charts.mdx
+++ b/api_docs/charts.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/charts
title: "charts"
image: https://source.unsplash.com/400x175/?github
description: API docs for the charts plugin
-date: 2024-06-03
+date: 2024-06-04
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 f7312692738ca..ceecacd199c28 100644
--- a/api_docs/cloud.mdx
+++ b/api_docs/cloud.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloud
title: "cloud"
image: https://source.unsplash.com/400x175/?github
description: API docs for the cloud plugin
-date: 2024-06-03
+date: 2024-06-04
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 abd14c852f257..ddf0863ee5169 100644
--- a/api_docs/cloud_data_migration.mdx
+++ b/api_docs/cloud_data_migration.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudDataMigration
title: "cloudDataMigration"
image: https://source.unsplash.com/400x175/?github
description: API docs for the cloudDataMigration plugin
-date: 2024-06-03
+date: 2024-06-04
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 453deaa6ad560..468c3536775a3 100644
--- a/api_docs/cloud_defend.mdx
+++ b/api_docs/cloud_defend.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudDefend
title: "cloudDefend"
image: https://source.unsplash.com/400x175/?github
description: API docs for the cloudDefend plugin
-date: 2024-06-03
+date: 2024-06-04
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 1b61ecb3a833f..306bc458e742e 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: 2024-06-03
+date: 2024-06-04
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 5b2c9d5e126f9..c0d66f0018664 100644
--- a/api_docs/cloud_security_posture.mdx
+++ b/api_docs/cloud_security_posture.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudSecurityPosture
title: "cloudSecurityPosture"
image: https://source.unsplash.com/400x175/?github
description: API docs for the cloudSecurityPosture plugin
-date: 2024-06-03
+date: 2024-06-04
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 4f5308eb2d1c2..160913a1192dd 100644
--- a/api_docs/console.mdx
+++ b/api_docs/console.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/console
title: "console"
image: https://source.unsplash.com/400x175/?github
description: API docs for the console plugin
-date: 2024-06-03
+date: 2024-06-04
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 5edb55cad4735..58cf70a7fbd6c 100644
--- a/api_docs/content_management.mdx
+++ b/api_docs/content_management.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/contentManagement
title: "contentManagement"
image: https://source.unsplash.com/400x175/?github
description: API docs for the contentManagement plugin
-date: 2024-06-03
+date: 2024-06-04
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 33a360ca75c8d..f8492dc8f3ae5 100644
--- a/api_docs/controls.mdx
+++ b/api_docs/controls.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/controls
title: "controls"
image: https://source.unsplash.com/400x175/?github
description: API docs for the controls plugin
-date: 2024-06-03
+date: 2024-06-04
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 3be178a36d13f..14bf9269367cc 100644
--- a/api_docs/custom_integrations.mdx
+++ b/api_docs/custom_integrations.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/customIntegrations
title: "customIntegrations"
image: https://source.unsplash.com/400x175/?github
description: API docs for the customIntegrations plugin
-date: 2024-06-03
+date: 2024-06-04
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 bec012641abb3..760c47d576b77 100644
--- a/api_docs/dashboard.mdx
+++ b/api_docs/dashboard.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dashboard
title: "dashboard"
image: https://source.unsplash.com/400x175/?github
description: API docs for the dashboard plugin
-date: 2024-06-03
+date: 2024-06-04
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 cbb8f7f80a150..78d3130f27e61 100644
--- a/api_docs/dashboard_enhanced.mdx
+++ b/api_docs/dashboard_enhanced.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dashboardEnhanced
title: "dashboardEnhanced"
image: https://source.unsplash.com/400x175/?github
description: API docs for the dashboardEnhanced plugin
-date: 2024-06-03
+date: 2024-06-04
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 51673a5271061..eed40154c8d05 100644
--- a/api_docs/data.mdx
+++ b/api_docs/data.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data
title: "data"
image: https://source.unsplash.com/400x175/?github
description: API docs for the data plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data']
---
import dataObj from './data.devdocs.json';
diff --git a/api_docs/data_quality.mdx b/api_docs/data_quality.mdx
index 2008ff401b98f..61c608068b0db 100644
--- a/api_docs/data_quality.mdx
+++ b/api_docs/data_quality.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataQuality
title: "dataQuality"
image: https://source.unsplash.com/400x175/?github
description: API docs for the dataQuality plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataQuality']
---
import dataQualityObj from './data_quality.devdocs.json';
diff --git a/api_docs/data_query.mdx b/api_docs/data_query.mdx
index be470e1bfeeb4..1d6042c2856ee 100644
--- a/api_docs/data_query.mdx
+++ b/api_docs/data_query.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data-query
title: "data.query"
image: https://source.unsplash.com/400x175/?github
description: API docs for the data.query plugin
-date: 2024-06-03
+date: 2024-06-04
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 4d56736aabfb9..5216d6189d5d4 100644
--- a/api_docs/data_search.mdx
+++ b/api_docs/data_search.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data-search
title: "data.search"
image: https://source.unsplash.com/400x175/?github
description: API docs for the data.search plugin
-date: 2024-06-03
+date: 2024-06-04
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 d950cf1d1094b..1eefbfb4492d7 100644
--- a/api_docs/data_view_editor.mdx
+++ b/api_docs/data_view_editor.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewEditor
title: "dataViewEditor"
image: https://source.unsplash.com/400x175/?github
description: API docs for the dataViewEditor plugin
-date: 2024-06-03
+date: 2024-06-04
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 6ca55b004d8b9..ff4e26cd53f5b 100644
--- a/api_docs/data_view_field_editor.mdx
+++ b/api_docs/data_view_field_editor.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewFieldEditor
title: "dataViewFieldEditor"
image: https://source.unsplash.com/400x175/?github
description: API docs for the dataViewFieldEditor plugin
-date: 2024-06-03
+date: 2024-06-04
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 0162d54f6c863..d412ee1bedbcf 100644
--- a/api_docs/data_view_management.mdx
+++ b/api_docs/data_view_management.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewManagement
title: "dataViewManagement"
image: https://source.unsplash.com/400x175/?github
description: API docs for the dataViewManagement plugin
-date: 2024-06-03
+date: 2024-06-04
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 81e04c1d556df..527363d613424 100644
--- a/api_docs/data_views.mdx
+++ b/api_docs/data_views.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViews
title: "dataViews"
image: https://source.unsplash.com/400x175/?github
description: API docs for the dataViews plugin
-date: 2024-06-03
+date: 2024-06-04
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 11d87c9a433e8..21fa8a1031faf 100644
--- a/api_docs/data_visualizer.mdx
+++ b/api_docs/data_visualizer.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataVisualizer
title: "dataVisualizer"
image: https://source.unsplash.com/400x175/?github
description: API docs for the dataVisualizer plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataVisualizer']
---
import dataVisualizerObj from './data_visualizer.devdocs.json';
diff --git a/api_docs/dataset_quality.mdx b/api_docs/dataset_quality.mdx
index 3405faaa01bdb..6bd5dab529f2f 100644
--- a/api_docs/dataset_quality.mdx
+++ b/api_docs/dataset_quality.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/datasetQuality
title: "datasetQuality"
image: https://source.unsplash.com/400x175/?github
description: API docs for the datasetQuality plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'datasetQuality']
---
import datasetQualityObj from './dataset_quality.devdocs.json';
diff --git a/api_docs/deprecations_by_api.mdx b/api_docs/deprecations_by_api.mdx
index db947d358525c..33c7093cad04a 100644
--- a/api_docs/deprecations_by_api.mdx
+++ b/api_docs/deprecations_by_api.mdx
@@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsByApi
slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-api
title: Deprecated API usage by API
description: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by.
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana']
---
diff --git a/api_docs/deprecations_by_plugin.mdx b/api_docs/deprecations_by_plugin.mdx
index 036ec5bb09be8..9e94db37eea2e 100644
--- a/api_docs/deprecations_by_plugin.mdx
+++ b/api_docs/deprecations_by_plugin.mdx
@@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsByPlugin
slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-plugin
title: Deprecated API usage by plugin
description: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by.
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana']
---
diff --git a/api_docs/deprecations_by_team.mdx b/api_docs/deprecations_by_team.mdx
index 7083466e08496..a89b3fe8fe5f5 100644
--- a/api_docs/deprecations_by_team.mdx
+++ b/api_docs/deprecations_by_team.mdx
@@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsDueByTeam
slug: /kibana-dev-docs/api-meta/deprecations-due-by-team
title: Deprecated APIs due to be removed, by team
description: Lists the teams that are referencing deprecated APIs with a remove by date.
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana']
---
diff --git a/api_docs/dev_tools.mdx b/api_docs/dev_tools.mdx
index 9ece680f06dd5..c060929daea96 100644
--- a/api_docs/dev_tools.mdx
+++ b/api_docs/dev_tools.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/devTools
title: "devTools"
image: https://source.unsplash.com/400x175/?github
description: API docs for the devTools plugin
-date: 2024-06-03
+date: 2024-06-04
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 50b7061963525..76647f3fbc66f 100644
--- a/api_docs/discover.mdx
+++ b/api_docs/discover.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discover
title: "discover"
image: https://source.unsplash.com/400x175/?github
description: API docs for the discover plugin
-date: 2024-06-03
+date: 2024-06-04
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 aa9378edd043b..dcdcca0208b67 100644
--- a/api_docs/discover_enhanced.mdx
+++ b/api_docs/discover_enhanced.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discoverEnhanced
title: "discoverEnhanced"
image: https://source.unsplash.com/400x175/?github
description: API docs for the discoverEnhanced plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discoverEnhanced']
---
import discoverEnhancedObj from './discover_enhanced.devdocs.json';
diff --git a/api_docs/discover_shared.mdx b/api_docs/discover_shared.mdx
index a1ecfb5d5e7f1..59e5502571071 100644
--- a/api_docs/discover_shared.mdx
+++ b/api_docs/discover_shared.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discoverShared
title: "discoverShared"
image: https://source.unsplash.com/400x175/?github
description: API docs for the discoverShared plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discoverShared']
---
import discoverSharedObj from './discover_shared.devdocs.json';
diff --git a/api_docs/ecs_data_quality_dashboard.mdx b/api_docs/ecs_data_quality_dashboard.mdx
index 3728210142263..e9ab1f3be3a14 100644
--- a/api_docs/ecs_data_quality_dashboard.mdx
+++ b/api_docs/ecs_data_quality_dashboard.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ecsDataQualityDashboard
title: "ecsDataQualityDashboard"
image: https://source.unsplash.com/400x175/?github
description: API docs for the ecsDataQualityDashboard plugin
-date: 2024-06-03
+date: 2024-06-04
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 ae77307e4c288..ca12d6bde7837 100644
--- a/api_docs/elastic_assistant.mdx
+++ b/api_docs/elastic_assistant.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/elasticAssistant
title: "elasticAssistant"
image: https://source.unsplash.com/400x175/?github
description: API docs for the elasticAssistant plugin
-date: 2024-06-03
+date: 2024-06-04
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 6c75d9f99bae8..f9e5f34c82299 100644
--- a/api_docs/embeddable.mdx
+++ b/api_docs/embeddable.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/embeddable
title: "embeddable"
image: https://source.unsplash.com/400x175/?github
description: API docs for the embeddable plugin
-date: 2024-06-03
+date: 2024-06-04
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 72b6b85bc79b5..d9293a0204d84 100644
--- a/api_docs/embeddable_enhanced.mdx
+++ b/api_docs/embeddable_enhanced.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/embeddableEnhanced
title: "embeddableEnhanced"
image: https://source.unsplash.com/400x175/?github
description: API docs for the embeddableEnhanced plugin
-date: 2024-06-03
+date: 2024-06-04
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 bf956b94ad9da..14d1b7d3f9c21 100644
--- a/api_docs/encrypted_saved_objects.mdx
+++ b/api_docs/encrypted_saved_objects.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/encryptedSavedObjects
title: "encryptedSavedObjects"
image: https://source.unsplash.com/400x175/?github
description: API docs for the encryptedSavedObjects plugin
-date: 2024-06-03
+date: 2024-06-04
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 cbebf36d4fe60..0b5c68ff50098 100644
--- a/api_docs/enterprise_search.mdx
+++ b/api_docs/enterprise_search.mdx
@@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/enterpriseSearch
title: "enterpriseSearch"
image: https://source.unsplash.com/400x175/?github
description: API docs for the enterpriseSearch plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'enterpriseSearch']
---
import enterpriseSearchObj from './enterprise_search.devdocs.json';
Adds dashboards for discovering and managing Enterprise Search products.
-Contact [@elastic/enterprise-search-frontend](https://github.com/orgs/elastic/teams/enterprise-search-frontend) for questions regarding this plugin.
+Contact [@elastic/search-kibana](https://github.com/orgs/elastic/teams/search-kibana) for questions regarding this plugin.
**Code health stats**
diff --git a/api_docs/es_ui_shared.mdx b/api_docs/es_ui_shared.mdx
index 942428e509bf0..71a9645efda5c 100644
--- a/api_docs/es_ui_shared.mdx
+++ b/api_docs/es_ui_shared.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/esUiShared
title: "esUiShared"
image: https://source.unsplash.com/400x175/?github
description: API docs for the esUiShared plugin
-date: 2024-06-03
+date: 2024-06-04
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 4bd7e1c765b3f..b3a6dc929c5ec 100644
--- a/api_docs/event_annotation.mdx
+++ b/api_docs/event_annotation.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventAnnotation
title: "eventAnnotation"
image: https://source.unsplash.com/400x175/?github
description: API docs for the eventAnnotation plugin
-date: 2024-06-03
+date: 2024-06-04
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 30bc4b3014fde..bad94c0124410 100644
--- a/api_docs/event_annotation_listing.mdx
+++ b/api_docs/event_annotation_listing.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventAnnotationListing
title: "eventAnnotationListing"
image: https://source.unsplash.com/400x175/?github
description: API docs for the eventAnnotationListing plugin
-date: 2024-06-03
+date: 2024-06-04
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 0b2807f9f6aae..ab90734e44a87 100644
--- a/api_docs/event_log.mdx
+++ b/api_docs/event_log.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventLog
title: "eventLog"
image: https://source.unsplash.com/400x175/?github
description: API docs for the eventLog plugin
-date: 2024-06-03
+date: 2024-06-04
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 9a18bfe813e79..423ebb61cf3ac 100644
--- a/api_docs/exploratory_view.mdx
+++ b/api_docs/exploratory_view.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/exploratoryView
title: "exploratoryView"
image: https://source.unsplash.com/400x175/?github
description: API docs for the exploratoryView plugin
-date: 2024-06-03
+date: 2024-06-04
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 62220675fd5b1..d125060d8ce8d 100644
--- a/api_docs/expression_error.mdx
+++ b/api_docs/expression_error.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionError
title: "expressionError"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionError plugin
-date: 2024-06-03
+date: 2024-06-04
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 366251b225f6f..de337d8bee6fd 100644
--- a/api_docs/expression_gauge.mdx
+++ b/api_docs/expression_gauge.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionGauge
title: "expressionGauge"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionGauge plugin
-date: 2024-06-03
+date: 2024-06-04
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 421c058434f2d..dbcd862e445f8 100644
--- a/api_docs/expression_heatmap.mdx
+++ b/api_docs/expression_heatmap.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionHeatmap
title: "expressionHeatmap"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionHeatmap plugin
-date: 2024-06-03
+date: 2024-06-04
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 f10a73b289924..9c953bef505a1 100644
--- a/api_docs/expression_image.mdx
+++ b/api_docs/expression_image.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionImage
title: "expressionImage"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionImage plugin
-date: 2024-06-03
+date: 2024-06-04
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 2f3687c26d7b2..cb77bad5bd893 100644
--- a/api_docs/expression_legacy_metric_vis.mdx
+++ b/api_docs/expression_legacy_metric_vis.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionLegacyMetricVis
title: "expressionLegacyMetricVis"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionLegacyMetricVis plugin
-date: 2024-06-03
+date: 2024-06-04
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 ea102fdbcebe7..850fa5fa805f1 100644
--- a/api_docs/expression_metric.mdx
+++ b/api_docs/expression_metric.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionMetric
title: "expressionMetric"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionMetric plugin
-date: 2024-06-03
+date: 2024-06-04
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 9ba2fe4791664..c60fb93ea73b5 100644
--- a/api_docs/expression_metric_vis.mdx
+++ b/api_docs/expression_metric_vis.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionMetricVis
title: "expressionMetricVis"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionMetricVis plugin
-date: 2024-06-03
+date: 2024-06-04
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 3f69ade1aaae3..2a6fc980df565 100644
--- a/api_docs/expression_partition_vis.mdx
+++ b/api_docs/expression_partition_vis.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionPartitionVis
title: "expressionPartitionVis"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionPartitionVis plugin
-date: 2024-06-03
+date: 2024-06-04
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 64713f882a4a6..098fb08094b90 100644
--- a/api_docs/expression_repeat_image.mdx
+++ b/api_docs/expression_repeat_image.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionRepeatImage
title: "expressionRepeatImage"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionRepeatImage plugin
-date: 2024-06-03
+date: 2024-06-04
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 6493bea2bacb8..069657a7bcdcd 100644
--- a/api_docs/expression_reveal_image.mdx
+++ b/api_docs/expression_reveal_image.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionRevealImage
title: "expressionRevealImage"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionRevealImage plugin
-date: 2024-06-03
+date: 2024-06-04
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 ca85f53607f22..b35fed2c4c456 100644
--- a/api_docs/expression_shape.mdx
+++ b/api_docs/expression_shape.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionShape
title: "expressionShape"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionShape plugin
-date: 2024-06-03
+date: 2024-06-04
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 0737ac3a98cb1..e1225e91b7880 100644
--- a/api_docs/expression_tagcloud.mdx
+++ b/api_docs/expression_tagcloud.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionTagcloud
title: "expressionTagcloud"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionTagcloud plugin
-date: 2024-06-03
+date: 2024-06-04
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 14b178520a338..19cc4f6d04f3c 100644
--- a/api_docs/expression_x_y.mdx
+++ b/api_docs/expression_x_y.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionXY
title: "expressionXY"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionXY plugin
-date: 2024-06-03
+date: 2024-06-04
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 a6f751610985e..2e156f5930bb7 100644
--- a/api_docs/expressions.mdx
+++ b/api_docs/expressions.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressions
title: "expressions"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressions plugin
-date: 2024-06-03
+date: 2024-06-04
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 eb98203dbfce3..36fc161efdadf 100644
--- a/api_docs/features.mdx
+++ b/api_docs/features.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/features
title: "features"
image: https://source.unsplash.com/400x175/?github
description: API docs for the features plugin
-date: 2024-06-03
+date: 2024-06-04
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 48d9ffe7dcd65..c7c65c5c383be 100644
--- a/api_docs/field_formats.mdx
+++ b/api_docs/field_formats.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fieldFormats
title: "fieldFormats"
image: https://source.unsplash.com/400x175/?github
description: API docs for the fieldFormats plugin
-date: 2024-06-03
+date: 2024-06-04
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 d5b4362f44750..bb894cc556b78 100644
--- a/api_docs/file_upload.mdx
+++ b/api_docs/file_upload.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fileUpload
title: "fileUpload"
image: https://source.unsplash.com/400x175/?github
description: API docs for the fileUpload plugin
-date: 2024-06-03
+date: 2024-06-04
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 f51293a7f4512..639a4cb36e0b2 100644
--- a/api_docs/files.mdx
+++ b/api_docs/files.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/files
title: "files"
image: https://source.unsplash.com/400x175/?github
description: API docs for the files plugin
-date: 2024-06-03
+date: 2024-06-04
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 c9b43e078c5a5..bcc4e2bd3a68e 100644
--- a/api_docs/files_management.mdx
+++ b/api_docs/files_management.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/filesManagement
title: "filesManagement"
image: https://source.unsplash.com/400x175/?github
description: API docs for the filesManagement plugin
-date: 2024-06-03
+date: 2024-06-04
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 8cd86fef31682..de2da8b4dd96f 100644
--- a/api_docs/fleet.mdx
+++ b/api_docs/fleet.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fleet
title: "fleet"
image: https://source.unsplash.com/400x175/?github
description: API docs for the fleet plugin
-date: 2024-06-03
+date: 2024-06-04
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 dd7a4b3641f40..ca8e1abe471ce 100644
--- a/api_docs/global_search.mdx
+++ b/api_docs/global_search.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/globalSearch
title: "globalSearch"
image: https://source.unsplash.com/400x175/?github
description: API docs for the globalSearch plugin
-date: 2024-06-03
+date: 2024-06-04
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 745779397e2e5..882821661629e 100644
--- a/api_docs/guided_onboarding.mdx
+++ b/api_docs/guided_onboarding.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/guidedOnboarding
title: "guidedOnboarding"
image: https://source.unsplash.com/400x175/?github
description: API docs for the guidedOnboarding plugin
-date: 2024-06-03
+date: 2024-06-04
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 7493895d8294c..3fd16f60f7b94 100644
--- a/api_docs/home.mdx
+++ b/api_docs/home.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/home
title: "home"
image: https://source.unsplash.com/400x175/?github
description: API docs for the home plugin
-date: 2024-06-03
+date: 2024-06-04
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 d229339e23d01..c00eb5720ac4b 100644
--- a/api_docs/image_embeddable.mdx
+++ b/api_docs/image_embeddable.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/imageEmbeddable
title: "imageEmbeddable"
image: https://source.unsplash.com/400x175/?github
description: API docs for the imageEmbeddable plugin
-date: 2024-06-03
+date: 2024-06-04
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 31a79a326fe99..20349438903de 100644
--- a/api_docs/index_lifecycle_management.mdx
+++ b/api_docs/index_lifecycle_management.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/indexLifecycleManagement
title: "indexLifecycleManagement"
image: https://source.unsplash.com/400x175/?github
description: API docs for the indexLifecycleManagement plugin
-date: 2024-06-03
+date: 2024-06-04
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 b50b64b7908db..616390e6c685c 100644
--- a/api_docs/index_management.mdx
+++ b/api_docs/index_management.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/indexManagement
title: "indexManagement"
image: https://source.unsplash.com/400x175/?github
description: API docs for the indexManagement plugin
-date: 2024-06-03
+date: 2024-06-04
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 c3f05f7e3bb3a..5d6363ab77317 100644
--- a/api_docs/infra.mdx
+++ b/api_docs/infra.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/infra
title: "infra"
image: https://source.unsplash.com/400x175/?github
description: API docs for the infra plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'infra']
---
import infraObj from './infra.devdocs.json';
diff --git a/api_docs/ingest_pipelines.mdx b/api_docs/ingest_pipelines.mdx
index ca98988b840f8..d43cfe447afb1 100644
--- a/api_docs/ingest_pipelines.mdx
+++ b/api_docs/ingest_pipelines.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ingestPipelines
title: "ingestPipelines"
image: https://source.unsplash.com/400x175/?github
description: API docs for the ingestPipelines plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ingestPipelines']
---
import ingestPipelinesObj from './ingest_pipelines.devdocs.json';
diff --git a/api_docs/inspector.mdx b/api_docs/inspector.mdx
index 7193d6b32785f..542a795eea5e3 100644
--- a/api_docs/inspector.mdx
+++ b/api_docs/inspector.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/inspector
title: "inspector"
image: https://source.unsplash.com/400x175/?github
description: API docs for the inspector plugin
-date: 2024-06-03
+date: 2024-06-04
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 8a1a119fb5329..fda41793da726 100644
--- a/api_docs/interactive_setup.mdx
+++ b/api_docs/interactive_setup.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/interactiveSetup
title: "interactiveSetup"
image: https://source.unsplash.com/400x175/?github
description: API docs for the interactiveSetup plugin
-date: 2024-06-03
+date: 2024-06-04
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 8e9dfa9e6a726..7c49d66d9c8c7 100644
--- a/api_docs/kbn_ace.mdx
+++ b/api_docs/kbn_ace.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ace
title: "@kbn/ace"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ace plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ace']
---
import kbnAceObj from './kbn_ace.devdocs.json';
diff --git a/api_docs/kbn_actions_types.mdx b/api_docs/kbn_actions_types.mdx
index 595d6297a547c..967ad868d6a9d 100644
--- a/api_docs/kbn_actions_types.mdx
+++ b/api_docs/kbn_actions_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-actions-types
title: "@kbn/actions-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/actions-types plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/actions-types']
---
import kbnActionsTypesObj from './kbn_actions_types.devdocs.json';
diff --git a/api_docs/kbn_aiops_components.mdx b/api_docs/kbn_aiops_components.mdx
index 797c17e9db621..464a7d9bfcb31 100644
--- a/api_docs/kbn_aiops_components.mdx
+++ b/api_docs/kbn_aiops_components.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-components
title: "@kbn/aiops-components"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/aiops-components plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-components']
---
import kbnAiopsComponentsObj from './kbn_aiops_components.devdocs.json';
diff --git a/api_docs/kbn_aiops_log_pattern_analysis.mdx b/api_docs/kbn_aiops_log_pattern_analysis.mdx
index 49eed9b56b5c7..ea659d0937c67 100644
--- a/api_docs/kbn_aiops_log_pattern_analysis.mdx
+++ b/api_docs/kbn_aiops_log_pattern_analysis.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-log-pattern-analysis
title: "@kbn/aiops-log-pattern-analysis"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/aiops-log-pattern-analysis plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-log-pattern-analysis']
---
import kbnAiopsLogPatternAnalysisObj from './kbn_aiops_log_pattern_analysis.devdocs.json';
diff --git a/api_docs/kbn_aiops_log_rate_analysis.mdx b/api_docs/kbn_aiops_log_rate_analysis.mdx
index fc2f2f4c4a6e7..495ed8bcfbf5b 100644
--- a/api_docs/kbn_aiops_log_rate_analysis.mdx
+++ b/api_docs/kbn_aiops_log_rate_analysis.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-log-rate-analysis
title: "@kbn/aiops-log-rate-analysis"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/aiops-log-rate-analysis plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-log-rate-analysis']
---
import kbnAiopsLogRateAnalysisObj from './kbn_aiops_log_rate_analysis.devdocs.json';
diff --git a/api_docs/kbn_alerting_api_integration_helpers.mdx b/api_docs/kbn_alerting_api_integration_helpers.mdx
index 30480871a5110..ab878f2d36145 100644
--- a/api_docs/kbn_alerting_api_integration_helpers.mdx
+++ b/api_docs/kbn_alerting_api_integration_helpers.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerting-api-integration-helpers
title: "@kbn/alerting-api-integration-helpers"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/alerting-api-integration-helpers plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerting-api-integration-helpers']
---
import kbnAlertingApiIntegrationHelpersObj from './kbn_alerting_api_integration_helpers.devdocs.json';
diff --git a/api_docs/kbn_alerting_comparators.mdx b/api_docs/kbn_alerting_comparators.mdx
index fe782fb234843..a7a540e87ffc6 100644
--- a/api_docs/kbn_alerting_comparators.mdx
+++ b/api_docs/kbn_alerting_comparators.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerting-comparators
title: "@kbn/alerting-comparators"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/alerting-comparators plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerting-comparators']
---
import kbnAlertingComparatorsObj from './kbn_alerting_comparators.devdocs.json';
diff --git a/api_docs/kbn_alerting_state_types.mdx b/api_docs/kbn_alerting_state_types.mdx
index 7560d01bb8f15..1be15045e1fcd 100644
--- a/api_docs/kbn_alerting_state_types.mdx
+++ b/api_docs/kbn_alerting_state_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerting-state-types
title: "@kbn/alerting-state-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/alerting-state-types plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerting-state-types']
---
import kbnAlertingStateTypesObj from './kbn_alerting_state_types.devdocs.json';
diff --git a/api_docs/kbn_alerting_types.mdx b/api_docs/kbn_alerting_types.mdx
index 47154cedfa059..94d65b7a59804 100644
--- a/api_docs/kbn_alerting_types.mdx
+++ b/api_docs/kbn_alerting_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerting-types
title: "@kbn/alerting-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/alerting-types plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerting-types']
---
import kbnAlertingTypesObj from './kbn_alerting_types.devdocs.json';
diff --git a/api_docs/kbn_alerts_as_data_utils.mdx b/api_docs/kbn_alerts_as_data_utils.mdx
index 59300bec67357..4da94dbc6109d 100644
--- a/api_docs/kbn_alerts_as_data_utils.mdx
+++ b/api_docs/kbn_alerts_as_data_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts-as-data-utils
title: "@kbn/alerts-as-data-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/alerts-as-data-utils plugin
-date: 2024-06-03
+date: 2024-06-04
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 ae912dbcec551..335df80c02b50 100644
--- a/api_docs/kbn_alerts_ui_shared.mdx
+++ b/api_docs/kbn_alerts_ui_shared.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts-ui-shared
title: "@kbn/alerts-ui-shared"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/alerts-ui-shared plugin
-date: 2024-06-03
+date: 2024-06-04
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 6d8197fc47a68..1cd026b13a275 100644
--- a/api_docs/kbn_analytics.mdx
+++ b/api_docs/kbn_analytics.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics
title: "@kbn/analytics"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/analytics plugin
-date: 2024-06-03
+date: 2024-06-04
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 30e1f0eacf2d4..faa75fd800077 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: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-client']
---
import kbnAnalyticsClientObj from './kbn_analytics_client.devdocs.json';
diff --git a/api_docs/kbn_analytics_collection_utils.mdx b/api_docs/kbn_analytics_collection_utils.mdx
index 4508ec53cb3b1..29b8ccd064971 100644
--- a/api_docs/kbn_analytics_collection_utils.mdx
+++ b/api_docs/kbn_analytics_collection_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-collection-utils
title: "@kbn/analytics-collection-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/analytics-collection-utils plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-collection-utils']
---
import kbnAnalyticsCollectionUtilsObj from './kbn_analytics_collection_utils.devdocs.json';
diff --git a/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx b/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx
index 759f312406a9f..93406bdb49d0c 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: 2024-06-03
+date: 2024-06-04
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 788f7eb67221f..953cc1eb6c347 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: 2024-06-03
+date: 2024-06-04
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 d74add16f4c48..07c5d27e9d130 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: 2024-06-03
+date: 2024-06-04
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 acbcf70ec4856..5b000681cea53 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: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-fullstory']
---
import kbnAnalyticsShippersFullstoryObj from './kbn_analytics_shippers_fullstory.devdocs.json';
diff --git a/api_docs/kbn_apm_config_loader.mdx b/api_docs/kbn_apm_config_loader.mdx
index 3a4ae0b490efc..41dd7ca30617a 100644
--- a/api_docs/kbn_apm_config_loader.mdx
+++ b/api_docs/kbn_apm_config_loader.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-config-loader
title: "@kbn/apm-config-loader"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/apm-config-loader plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-config-loader']
---
import kbnApmConfigLoaderObj from './kbn_apm_config_loader.devdocs.json';
diff --git a/api_docs/kbn_apm_data_view.mdx b/api_docs/kbn_apm_data_view.mdx
index f627ec1642989..f9daef169c71f 100644
--- a/api_docs/kbn_apm_data_view.mdx
+++ b/api_docs/kbn_apm_data_view.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-data-view
title: "@kbn/apm-data-view"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/apm-data-view plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-data-view']
---
import kbnApmDataViewObj from './kbn_apm_data_view.devdocs.json';
diff --git a/api_docs/kbn_apm_synthtrace.mdx b/api_docs/kbn_apm_synthtrace.mdx
index ec7c292c674fc..dc2ad635820b2 100644
--- a/api_docs/kbn_apm_synthtrace.mdx
+++ b/api_docs/kbn_apm_synthtrace.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-synthtrace
title: "@kbn/apm-synthtrace"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/apm-synthtrace plugin
-date: 2024-06-03
+date: 2024-06-04
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 bf64f8719e13c..2d823a0e2c3aa 100644
--- a/api_docs/kbn_apm_synthtrace_client.mdx
+++ b/api_docs/kbn_apm_synthtrace_client.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-synthtrace-client
title: "@kbn/apm-synthtrace-client"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/apm-synthtrace-client plugin
-date: 2024-06-03
+date: 2024-06-04
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 e6c289e7e9a42..6c69b86aaa71c 100644
--- a/api_docs/kbn_apm_utils.mdx
+++ b/api_docs/kbn_apm_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-utils
title: "@kbn/apm-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/apm-utils plugin
-date: 2024-06-03
+date: 2024-06-04
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 013d2b856accd..33b86c0431a36 100644
--- a/api_docs/kbn_axe_config.mdx
+++ b/api_docs/kbn_axe_config.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-axe-config
title: "@kbn/axe-config"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/axe-config plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/axe-config']
---
import kbnAxeConfigObj from './kbn_axe_config.devdocs.json';
diff --git a/api_docs/kbn_bfetch_error.mdx b/api_docs/kbn_bfetch_error.mdx
index 12ebee7f312a2..770f3c427fa33 100644
--- a/api_docs/kbn_bfetch_error.mdx
+++ b/api_docs/kbn_bfetch_error.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-bfetch-error
title: "@kbn/bfetch-error"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/bfetch-error plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/bfetch-error']
---
import kbnBfetchErrorObj from './kbn_bfetch_error.devdocs.json';
diff --git a/api_docs/kbn_calculate_auto.mdx b/api_docs/kbn_calculate_auto.mdx
index 1c16470f6662e..e3ba7859dccce 100644
--- a/api_docs/kbn_calculate_auto.mdx
+++ b/api_docs/kbn_calculate_auto.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-calculate-auto
title: "@kbn/calculate-auto"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/calculate-auto plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/calculate-auto']
---
import kbnCalculateAutoObj from './kbn_calculate_auto.devdocs.json';
diff --git a/api_docs/kbn_calculate_width_from_char_count.mdx b/api_docs/kbn_calculate_width_from_char_count.mdx
index a711e469ffe81..67e048a4332b2 100644
--- a/api_docs/kbn_calculate_width_from_char_count.mdx
+++ b/api_docs/kbn_calculate_width_from_char_count.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-calculate-width-from-char-count
title: "@kbn/calculate-width-from-char-count"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/calculate-width-from-char-count plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/calculate-width-from-char-count']
---
import kbnCalculateWidthFromCharCountObj from './kbn_calculate_width_from_char_count.devdocs.json';
diff --git a/api_docs/kbn_cases_components.mdx b/api_docs/kbn_cases_components.mdx
index a7a2712440f90..d2737b17ffbc6 100644
--- a/api_docs/kbn_cases_components.mdx
+++ b/api_docs/kbn_cases_components.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cases-components
title: "@kbn/cases-components"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/cases-components plugin
-date: 2024-06-03
+date: 2024-06-04
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 770ad692403ea..648c94dda587a 100644
--- a/api_docs/kbn_cell_actions.mdx
+++ b/api_docs/kbn_cell_actions.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cell-actions
title: "@kbn/cell-actions"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/cell-actions plugin
-date: 2024-06-03
+date: 2024-06-04
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 12b9991118126..0f91b94a582a0 100644
--- a/api_docs/kbn_chart_expressions_common.mdx
+++ b/api_docs/kbn_chart_expressions_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-chart-expressions-common
title: "@kbn/chart-expressions-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/chart-expressions-common plugin
-date: 2024-06-03
+date: 2024-06-04
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 1240a89e3723f..cea3e7043c3b4 100644
--- a/api_docs/kbn_chart_icons.mdx
+++ b/api_docs/kbn_chart_icons.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-chart-icons
title: "@kbn/chart-icons"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/chart-icons plugin
-date: 2024-06-03
+date: 2024-06-04
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 7f6eb2583bc3e..a4e8b813a916c 100644
--- a/api_docs/kbn_ci_stats_core.mdx
+++ b/api_docs/kbn_ci_stats_core.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-core
title: "@kbn/ci-stats-core"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ci-stats-core plugin
-date: 2024-06-03
+date: 2024-06-04
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 9b4a374a39d60..be23146abd52f 100644
--- a/api_docs/kbn_ci_stats_performance_metrics.mdx
+++ b/api_docs/kbn_ci_stats_performance_metrics.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-performance-metrics
title: "@kbn/ci-stats-performance-metrics"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ci-stats-performance-metrics plugin
-date: 2024-06-03
+date: 2024-06-04
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 98f874a05b05b..e5b12be624369 100644
--- a/api_docs/kbn_ci_stats_reporter.mdx
+++ b/api_docs/kbn_ci_stats_reporter.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-reporter
title: "@kbn/ci-stats-reporter"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ci-stats-reporter plugin
-date: 2024-06-03
+date: 2024-06-04
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 37abb601b2c95..39e006e0680a7 100644
--- a/api_docs/kbn_cli_dev_mode.mdx
+++ b/api_docs/kbn_cli_dev_mode.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cli-dev-mode
title: "@kbn/cli-dev-mode"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/cli-dev-mode plugin
-date: 2024-06-03
+date: 2024-06-04
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 eab901068f139..201a367aae706 100644
--- a/api_docs/kbn_code_editor.mdx
+++ b/api_docs/kbn_code_editor.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-editor
title: "@kbn/code-editor"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/code-editor plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-editor']
---
import kbnCodeEditorObj from './kbn_code_editor.devdocs.json';
diff --git a/api_docs/kbn_code_editor_mock.mdx b/api_docs/kbn_code_editor_mock.mdx
index 83b076fb928d3..5ac72aa90777c 100644
--- a/api_docs/kbn_code_editor_mock.mdx
+++ b/api_docs/kbn_code_editor_mock.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-editor-mock
title: "@kbn/code-editor-mock"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/code-editor-mock plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-editor-mock']
---
import kbnCodeEditorMockObj from './kbn_code_editor_mock.devdocs.json';
diff --git a/api_docs/kbn_code_owners.mdx b/api_docs/kbn_code_owners.mdx
index 3028302776051..f491cb9e6f8cd 100644
--- a/api_docs/kbn_code_owners.mdx
+++ b/api_docs/kbn_code_owners.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-owners
title: "@kbn/code-owners"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/code-owners plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-owners']
---
import kbnCodeOwnersObj from './kbn_code_owners.devdocs.json';
diff --git a/api_docs/kbn_coloring.mdx b/api_docs/kbn_coloring.mdx
index 52b5ac7531d9f..20c368ef2a3dc 100644
--- a/api_docs/kbn_coloring.mdx
+++ b/api_docs/kbn_coloring.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-coloring
title: "@kbn/coloring"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/coloring plugin
-date: 2024-06-03
+date: 2024-06-04
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 15c60a0e946f2..1416f2b240a58 100644
--- a/api_docs/kbn_config.mdx
+++ b/api_docs/kbn_config.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config
title: "@kbn/config"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/config plugin
-date: 2024-06-03
+date: 2024-06-04
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 ea0d15e4c0253..0517ceb71546c 100644
--- a/api_docs/kbn_config_mocks.mdx
+++ b/api_docs/kbn_config_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config-mocks
title: "@kbn/config-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/config-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 4755653bf5a9e..374cabec39a92 100644
--- a/api_docs/kbn_config_schema.mdx
+++ b/api_docs/kbn_config_schema.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config-schema
title: "@kbn/config-schema"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/config-schema plugin
-date: 2024-06-03
+date: 2024-06-04
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 b46a6e3fa25a4..8be0510fbde31 100644
--- a/api_docs/kbn_content_management_content_editor.mdx
+++ b/api_docs/kbn_content_management_content_editor.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-content-editor
title: "@kbn/content-management-content-editor"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/content-management-content-editor plugin
-date: 2024-06-03
+date: 2024-06-04
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 98822fc3952b8..4558ee6fae5cb 100644
--- a/api_docs/kbn_content_management_tabbed_table_list_view.mdx
+++ b/api_docs/kbn_content_management_tabbed_table_list_view.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-tabbed-table-list-view
title: "@kbn/content-management-tabbed-table-list-view"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/content-management-tabbed-table-list-view plugin
-date: 2024-06-03
+date: 2024-06-04
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 ec5f6a9598cea..52db9c4058c96 100644
--- a/api_docs/kbn_content_management_table_list_view.mdx
+++ b/api_docs/kbn_content_management_table_list_view.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-table-list-view
title: "@kbn/content-management-table-list-view"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/content-management-table-list-view plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-table-list-view']
---
import kbnContentManagementTableListViewObj from './kbn_content_management_table_list_view.devdocs.json';
diff --git a/api_docs/kbn_content_management_table_list_view_common.mdx b/api_docs/kbn_content_management_table_list_view_common.mdx
index c5212647d9316..62e65a2f61fd6 100644
--- a/api_docs/kbn_content_management_table_list_view_common.mdx
+++ b/api_docs/kbn_content_management_table_list_view_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-table-list-view-common
title: "@kbn/content-management-table-list-view-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/content-management-table-list-view-common plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-table-list-view-common']
---
import kbnContentManagementTableListViewCommonObj from './kbn_content_management_table_list_view_common.devdocs.json';
diff --git a/api_docs/kbn_content_management_table_list_view_table.mdx b/api_docs/kbn_content_management_table_list_view_table.mdx
index 4fa068e88ab13..db743aa34a398 100644
--- a/api_docs/kbn_content_management_table_list_view_table.mdx
+++ b/api_docs/kbn_content_management_table_list_view_table.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-table-list-view-table
title: "@kbn/content-management-table-list-view-table"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/content-management-table-list-view-table plugin
-date: 2024-06-03
+date: 2024-06-04
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 0f1b9a56cd5e9..184881a89128c 100644
--- a/api_docs/kbn_content_management_utils.mdx
+++ b/api_docs/kbn_content_management_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-utils
title: "@kbn/content-management-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/content-management-utils plugin
-date: 2024-06-03
+date: 2024-06-04
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 3539e1c76067b..4bf21ec454de5 100644
--- a/api_docs/kbn_core_analytics_browser.mdx
+++ b/api_docs/kbn_core_analytics_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser
title: "@kbn/core-analytics-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-analytics-browser plugin
-date: 2024-06-03
+date: 2024-06-04
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 e542f04d7388d..9df3e45b857b6 100644
--- a/api_docs/kbn_core_analytics_browser_internal.mdx
+++ b/api_docs/kbn_core_analytics_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser-internal
title: "@kbn/core-analytics-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-analytics-browser-internal plugin
-date: 2024-06-03
+date: 2024-06-04
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 5496e7bc0ebf7..cce588320617b 100644
--- a/api_docs/kbn_core_analytics_browser_mocks.mdx
+++ b/api_docs/kbn_core_analytics_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser-mocks
title: "@kbn/core-analytics-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-analytics-browser-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 4cfc9ce4d643c..bc218f488f0b1 100644
--- a/api_docs/kbn_core_analytics_server.mdx
+++ b/api_docs/kbn_core_analytics_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server
title: "@kbn/core-analytics-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-analytics-server plugin
-date: 2024-06-03
+date: 2024-06-04
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 d266386e6cffb..ec4375d89fe2a 100644
--- a/api_docs/kbn_core_analytics_server_internal.mdx
+++ b/api_docs/kbn_core_analytics_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server-internal
title: "@kbn/core-analytics-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-analytics-server-internal plugin
-date: 2024-06-03
+date: 2024-06-04
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 64d3cd4b99d91..f3bda3c405d9b 100644
--- a/api_docs/kbn_core_analytics_server_mocks.mdx
+++ b/api_docs/kbn_core_analytics_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server-mocks
title: "@kbn/core-analytics-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-analytics-server-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 0e03f4687a9dc..5447df9edd3f5 100644
--- a/api_docs/kbn_core_application_browser.mdx
+++ b/api_docs/kbn_core_application_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser
title: "@kbn/core-application-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-application-browser plugin
-date: 2024-06-03
+date: 2024-06-04
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 0f0e7a3a6c649..b6ac2e2fee819 100644
--- a/api_docs/kbn_core_application_browser_internal.mdx
+++ b/api_docs/kbn_core_application_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser-internal
title: "@kbn/core-application-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-application-browser-internal plugin
-date: 2024-06-03
+date: 2024-06-04
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 d47415b940506..167d2229ce9d7 100644
--- a/api_docs/kbn_core_application_browser_mocks.mdx
+++ b/api_docs/kbn_core_application_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser-mocks
title: "@kbn/core-application-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-application-browser-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 cd669a4f1a8fa..52d82a3b9d6ff 100644
--- a/api_docs/kbn_core_application_common.mdx
+++ b/api_docs/kbn_core_application_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-common
title: "@kbn/core-application-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-application-common plugin
-date: 2024-06-03
+date: 2024-06-04
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 4125196682097..e8396206ae0dc 100644
--- a/api_docs/kbn_core_apps_browser_internal.mdx
+++ b/api_docs/kbn_core_apps_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-browser-internal
title: "@kbn/core-apps-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-apps-browser-internal plugin
-date: 2024-06-03
+date: 2024-06-04
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 d0560fc128e27..de1a00d858b99 100644
--- a/api_docs/kbn_core_apps_browser_mocks.mdx
+++ b/api_docs/kbn_core_apps_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-browser-mocks
title: "@kbn/core-apps-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-apps-browser-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 81e89b00d026c..d0b8c2b3f7ca6 100644
--- a/api_docs/kbn_core_apps_server_internal.mdx
+++ b/api_docs/kbn_core_apps_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-server-internal
title: "@kbn/core-apps-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-apps-server-internal plugin
-date: 2024-06-03
+date: 2024-06-04
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 cf8ec9387e3b7..d8d7f290a727f 100644
--- a/api_docs/kbn_core_base_browser_mocks.mdx
+++ b/api_docs/kbn_core_base_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-browser-mocks
title: "@kbn/core-base-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-base-browser-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 1e9378234c366..e07965ae025cc 100644
--- a/api_docs/kbn_core_base_common.mdx
+++ b/api_docs/kbn_core_base_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-common
title: "@kbn/core-base-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-base-common plugin
-date: 2024-06-03
+date: 2024-06-04
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 849158007a400..7f38c77ea7e98 100644
--- a/api_docs/kbn_core_base_server_internal.mdx
+++ b/api_docs/kbn_core_base_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-server-internal
title: "@kbn/core-base-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-base-server-internal plugin
-date: 2024-06-03
+date: 2024-06-04
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 00287d31f1b94..61b8985e10a11 100644
--- a/api_docs/kbn_core_base_server_mocks.mdx
+++ b/api_docs/kbn_core_base_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-server-mocks
title: "@kbn/core-base-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-base-server-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 0a9b60cad0475..19e4e5aba1cf9 100644
--- a/api_docs/kbn_core_capabilities_browser_mocks.mdx
+++ b/api_docs/kbn_core_capabilities_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-browser-mocks
title: "@kbn/core-capabilities-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-capabilities-browser-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 f6bb08871d96b..28352db383f6f 100644
--- a/api_docs/kbn_core_capabilities_common.mdx
+++ b/api_docs/kbn_core_capabilities_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-common
title: "@kbn/core-capabilities-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-capabilities-common plugin
-date: 2024-06-03
+date: 2024-06-04
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 dacba7869bd3f..d2d19a2ae518a 100644
--- a/api_docs/kbn_core_capabilities_server.mdx
+++ b/api_docs/kbn_core_capabilities_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-server
title: "@kbn/core-capabilities-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-capabilities-server plugin
-date: 2024-06-03
+date: 2024-06-04
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 c676910ee2df8..e93349600512c 100644
--- a/api_docs/kbn_core_capabilities_server_mocks.mdx
+++ b/api_docs/kbn_core_capabilities_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-server-mocks
title: "@kbn/core-capabilities-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-capabilities-server-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 18d27c72bd2b4..1e6b6aad930da 100644
--- a/api_docs/kbn_core_chrome_browser.mdx
+++ b/api_docs/kbn_core_chrome_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-chrome-browser
title: "@kbn/core-chrome-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-chrome-browser plugin
-date: 2024-06-03
+date: 2024-06-04
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 0a87f1c491fb3..d8d339cbc4862 100644
--- a/api_docs/kbn_core_chrome_browser_mocks.mdx
+++ b/api_docs/kbn_core_chrome_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-chrome-browser-mocks
title: "@kbn/core-chrome-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-chrome-browser-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 c11b00a5b2eb6..e6a16da623589 100644
--- a/api_docs/kbn_core_config_server_internal.mdx
+++ b/api_docs/kbn_core_config_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-config-server-internal
title: "@kbn/core-config-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-config-server-internal plugin
-date: 2024-06-03
+date: 2024-06-04
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 251489152a84e..de5b55cc32475 100644
--- a/api_docs/kbn_core_custom_branding_browser.mdx
+++ b/api_docs/kbn_core_custom_branding_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser
title: "@kbn/core-custom-branding-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-custom-branding-browser plugin
-date: 2024-06-03
+date: 2024-06-04
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 224ae42c5d0b0..a779c5137d597 100644
--- a/api_docs/kbn_core_custom_branding_browser_internal.mdx
+++ b/api_docs/kbn_core_custom_branding_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser-internal
title: "@kbn/core-custom-branding-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-custom-branding-browser-internal plugin
-date: 2024-06-03
+date: 2024-06-04
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 c92de6ec9d94b..af254b3f73fdd 100644
--- a/api_docs/kbn_core_custom_branding_browser_mocks.mdx
+++ b/api_docs/kbn_core_custom_branding_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser-mocks
title: "@kbn/core-custom-branding-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-custom-branding-browser-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 03f80516685d2..2ed41250db2f4 100644
--- a/api_docs/kbn_core_custom_branding_common.mdx
+++ b/api_docs/kbn_core_custom_branding_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-common
title: "@kbn/core-custom-branding-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-custom-branding-common plugin
-date: 2024-06-03
+date: 2024-06-04
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 b63196ba6d6a4..dcccdd71e5c3f 100644
--- a/api_docs/kbn_core_custom_branding_server.mdx
+++ b/api_docs/kbn_core_custom_branding_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server
title: "@kbn/core-custom-branding-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-custom-branding-server plugin
-date: 2024-06-03
+date: 2024-06-04
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 b1fbfd8468521..11f6cce3fb119 100644
--- a/api_docs/kbn_core_custom_branding_server_internal.mdx
+++ b/api_docs/kbn_core_custom_branding_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server-internal
title: "@kbn/core-custom-branding-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-custom-branding-server-internal plugin
-date: 2024-06-03
+date: 2024-06-04
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 2ffa2575d3b15..ecaf7e7a52fc0 100644
--- a/api_docs/kbn_core_custom_branding_server_mocks.mdx
+++ b/api_docs/kbn_core_custom_branding_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server-mocks
title: "@kbn/core-custom-branding-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-custom-branding-server-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 fa83317ca466e..04ee4e05a864e 100644
--- a/api_docs/kbn_core_deprecations_browser.mdx
+++ b/api_docs/kbn_core_deprecations_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser
title: "@kbn/core-deprecations-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-deprecations-browser plugin
-date: 2024-06-03
+date: 2024-06-04
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 88e0f0a72e105..8f9c77c76ec0a 100644
--- a/api_docs/kbn_core_deprecations_browser_internal.mdx
+++ b/api_docs/kbn_core_deprecations_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser-internal
title: "@kbn/core-deprecations-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-deprecations-browser-internal plugin
-date: 2024-06-03
+date: 2024-06-04
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 2435657a24ddc..40336c0b1d72f 100644
--- a/api_docs/kbn_core_deprecations_browser_mocks.mdx
+++ b/api_docs/kbn_core_deprecations_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser-mocks
title: "@kbn/core-deprecations-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-deprecations-browser-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 a103f31319c61..4cf74fc6ef3df 100644
--- a/api_docs/kbn_core_deprecations_common.mdx
+++ b/api_docs/kbn_core_deprecations_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-common
title: "@kbn/core-deprecations-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-deprecations-common plugin
-date: 2024-06-03
+date: 2024-06-04
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 75b75e348f6fa..f493ddad08bff 100644
--- a/api_docs/kbn_core_deprecations_server.mdx
+++ b/api_docs/kbn_core_deprecations_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server
title: "@kbn/core-deprecations-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-deprecations-server plugin
-date: 2024-06-03
+date: 2024-06-04
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 ebabcca358760..13b227589c6ff 100644
--- a/api_docs/kbn_core_deprecations_server_internal.mdx
+++ b/api_docs/kbn_core_deprecations_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server-internal
title: "@kbn/core-deprecations-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-deprecations-server-internal plugin
-date: 2024-06-03
+date: 2024-06-04
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 e32e9054e9a0f..5b4fa9d22f143 100644
--- a/api_docs/kbn_core_deprecations_server_mocks.mdx
+++ b/api_docs/kbn_core_deprecations_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server-mocks
title: "@kbn/core-deprecations-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-deprecations-server-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 d4db087631cf9..2329fed6f4516 100644
--- a/api_docs/kbn_core_doc_links_browser.mdx
+++ b/api_docs/kbn_core_doc_links_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-browser
title: "@kbn/core-doc-links-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-doc-links-browser plugin
-date: 2024-06-03
+date: 2024-06-04
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 a7a03058a433d..14a5b34c77d42 100644
--- a/api_docs/kbn_core_doc_links_browser_mocks.mdx
+++ b/api_docs/kbn_core_doc_links_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-browser-mocks
title: "@kbn/core-doc-links-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-doc-links-browser-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 0235ccf2f17b8..5d9d23d8c5052 100644
--- a/api_docs/kbn_core_doc_links_server.mdx
+++ b/api_docs/kbn_core_doc_links_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-server
title: "@kbn/core-doc-links-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-doc-links-server plugin
-date: 2024-06-03
+date: 2024-06-04
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 514e39228a13e..a0d7cc3233257 100644
--- a/api_docs/kbn_core_doc_links_server_mocks.mdx
+++ b/api_docs/kbn_core_doc_links_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-server-mocks
title: "@kbn/core-doc-links-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-doc-links-server-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 64a03cd0dd3e4..5d53b1e6edc80 100644
--- a/api_docs/kbn_core_elasticsearch_client_server_internal.mdx
+++ b/api_docs/kbn_core_elasticsearch_client_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-client-server-internal
title: "@kbn/core-elasticsearch-client-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-elasticsearch-client-server-internal plugin
-date: 2024-06-03
+date: 2024-06-04
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 59d758fe2f194..16d0424321a7e 100644
--- a/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx
+++ b/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-client-server-mocks
title: "@kbn/core-elasticsearch-client-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-elasticsearch-client-server-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 dcac3030bd3a1..febf10d5ebed7 100644
--- a/api_docs/kbn_core_elasticsearch_server.mdx
+++ b/api_docs/kbn_core_elasticsearch_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server
title: "@kbn/core-elasticsearch-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-elasticsearch-server plugin
-date: 2024-06-03
+date: 2024-06-04
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 70d834fff7623..9618a471eae66 100644
--- a/api_docs/kbn_core_elasticsearch_server_internal.mdx
+++ b/api_docs/kbn_core_elasticsearch_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server-internal
title: "@kbn/core-elasticsearch-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-elasticsearch-server-internal plugin
-date: 2024-06-03
+date: 2024-06-04
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 9efc804006c65..aa72cf8759d0b 100644
--- a/api_docs/kbn_core_elasticsearch_server_mocks.mdx
+++ b/api_docs/kbn_core_elasticsearch_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server-mocks
title: "@kbn/core-elasticsearch-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-elasticsearch-server-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 8a0f02e022b41..3cced4d0ab428 100644
--- a/api_docs/kbn_core_environment_server_internal.mdx
+++ b/api_docs/kbn_core_environment_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-environment-server-internal
title: "@kbn/core-environment-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-environment-server-internal plugin
-date: 2024-06-03
+date: 2024-06-04
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 914542d885054..9e6435d856149 100644
--- a/api_docs/kbn_core_environment_server_mocks.mdx
+++ b/api_docs/kbn_core_environment_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-environment-server-mocks
title: "@kbn/core-environment-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-environment-server-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 1bda6978dd2dd..b17e499115a50 100644
--- a/api_docs/kbn_core_execution_context_browser.mdx
+++ b/api_docs/kbn_core_execution_context_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser
title: "@kbn/core-execution-context-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-execution-context-browser plugin
-date: 2024-06-03
+date: 2024-06-04
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 3f82053e0f2cf..d7f980a842b03 100644
--- a/api_docs/kbn_core_execution_context_browser_internal.mdx
+++ b/api_docs/kbn_core_execution_context_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser-internal
title: "@kbn/core-execution-context-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-execution-context-browser-internal plugin
-date: 2024-06-03
+date: 2024-06-04
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 1a988fbe03ba7..5bb5385c9211a 100644
--- a/api_docs/kbn_core_execution_context_browser_mocks.mdx
+++ b/api_docs/kbn_core_execution_context_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser-mocks
title: "@kbn/core-execution-context-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-execution-context-browser-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 75589bdc27389..860c4becb552f 100644
--- a/api_docs/kbn_core_execution_context_common.mdx
+++ b/api_docs/kbn_core_execution_context_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-common
title: "@kbn/core-execution-context-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-execution-context-common plugin
-date: 2024-06-03
+date: 2024-06-04
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 fdd497f6aeee6..13777d9768b53 100644
--- a/api_docs/kbn_core_execution_context_server.mdx
+++ b/api_docs/kbn_core_execution_context_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server
title: "@kbn/core-execution-context-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-execution-context-server plugin
-date: 2024-06-03
+date: 2024-06-04
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 d81964ee33d45..5b8e8d51824a3 100644
--- a/api_docs/kbn_core_execution_context_server_internal.mdx
+++ b/api_docs/kbn_core_execution_context_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server-internal
title: "@kbn/core-execution-context-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-execution-context-server-internal plugin
-date: 2024-06-03
+date: 2024-06-04
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 f7d32bee03d86..49b06352831fc 100644
--- a/api_docs/kbn_core_execution_context_server_mocks.mdx
+++ b/api_docs/kbn_core_execution_context_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server-mocks
title: "@kbn/core-execution-context-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-execution-context-server-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 a2b4ac64eb0b1..2bb8265c14b56 100644
--- a/api_docs/kbn_core_fatal_errors_browser.mdx
+++ b/api_docs/kbn_core_fatal_errors_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-fatal-errors-browser
title: "@kbn/core-fatal-errors-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-fatal-errors-browser plugin
-date: 2024-06-03
+date: 2024-06-04
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 ea59544e7e1f7..ee7e8217fb465 100644
--- a/api_docs/kbn_core_fatal_errors_browser_mocks.mdx
+++ b/api_docs/kbn_core_fatal_errors_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-fatal-errors-browser-mocks
title: "@kbn/core-fatal-errors-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-fatal-errors-browser-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 b0a73bbc27ae1..fcd501d2dd156 100644
--- a/api_docs/kbn_core_http_browser.mdx
+++ b/api_docs/kbn_core_http_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser
title: "@kbn/core-http-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-browser plugin
-date: 2024-06-03
+date: 2024-06-04
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 520b3c1667282..e5e4dd09df325 100644
--- a/api_docs/kbn_core_http_browser_internal.mdx
+++ b/api_docs/kbn_core_http_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser-internal
title: "@kbn/core-http-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-browser-internal plugin
-date: 2024-06-03
+date: 2024-06-04
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 d0cc82012ffd3..70b206d04abac 100644
--- a/api_docs/kbn_core_http_browser_mocks.mdx
+++ b/api_docs/kbn_core_http_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser-mocks
title: "@kbn/core-http-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-browser-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 205f93d6cdbba..7b01202a35264 100644
--- a/api_docs/kbn_core_http_common.mdx
+++ b/api_docs/kbn_core_http_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-common
title: "@kbn/core-http-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-common plugin
-date: 2024-06-03
+date: 2024-06-04
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 dd31aab900ae5..ffd3840ed6f3d 100644
--- a/api_docs/kbn_core_http_context_server_mocks.mdx
+++ b/api_docs/kbn_core_http_context_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-context-server-mocks
title: "@kbn/core-http-context-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-context-server-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 0e8dcc9e0aad9..16a559a3f71e8 100644
--- a/api_docs/kbn_core_http_request_handler_context_server.mdx
+++ b/api_docs/kbn_core_http_request_handler_context_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-request-handler-context-server
title: "@kbn/core-http-request-handler-context-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-request-handler-context-server plugin
-date: 2024-06-03
+date: 2024-06-04
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 205d52449edad..11e2b35d9d729 100644
--- a/api_docs/kbn_core_http_resources_server.mdx
+++ b/api_docs/kbn_core_http_resources_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server
title: "@kbn/core-http-resources-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-resources-server plugin
-date: 2024-06-03
+date: 2024-06-04
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 47d1d96edfe63..fdf2ba551f9e7 100644
--- a/api_docs/kbn_core_http_resources_server_internal.mdx
+++ b/api_docs/kbn_core_http_resources_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server-internal
title: "@kbn/core-http-resources-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-resources-server-internal plugin
-date: 2024-06-03
+date: 2024-06-04
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 a916b4e9c293f..0295ec6600b48 100644
--- a/api_docs/kbn_core_http_resources_server_mocks.mdx
+++ b/api_docs/kbn_core_http_resources_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server-mocks
title: "@kbn/core-http-resources-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-resources-server-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 d5f872b971848..160a2ff396e44 100644
--- a/api_docs/kbn_core_http_router_server_internal.mdx
+++ b/api_docs/kbn_core_http_router_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-router-server-internal
title: "@kbn/core-http-router-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-router-server-internal plugin
-date: 2024-06-03
+date: 2024-06-04
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 36728dfb23ef2..63dc7c17f9638 100644
--- a/api_docs/kbn_core_http_router_server_mocks.mdx
+++ b/api_docs/kbn_core_http_router_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-router-server-mocks
title: "@kbn/core-http-router-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-router-server-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-router-server-mocks']
---
import kbnCoreHttpRouterServerMocksObj from './kbn_core_http_router_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_http_server.devdocs.json b/api_docs/kbn_core_http_server.devdocs.json
index 3d2aef4cd7cb9..79dd391fa119b 100644
--- a/api_docs/kbn_core_http_server.devdocs.json
+++ b/api_docs/kbn_core_http_server.devdocs.json
@@ -10954,14 +10954,14 @@
{
"parentPluginId": "@kbn/core-http-server",
"id": "def-common.KibanaRequest.protocol",
- "type": "string",
+ "type": "CompoundType",
"tags": [],
"label": "protocol",
"description": [
"\nThe protocol used by the client, inferred from the httpVersion."
],
"signature": [
- "\"http1\""
+ "\"http1\" | \"http2\""
],
"path": "packages/core/http/core-http-server/src/router/request.ts",
"deprecated": false,
@@ -16002,6 +16002,10 @@
"plugin": "securitySolution",
"path": "x-pack/plugins/security_solution/server/endpoint/routes/actions/response_actions.ts"
},
+ {
+ "plugin": "securitySolution",
+ "path": "x-pack/plugins/security_solution/server/endpoint/routes/actions/response_actions.ts"
+ },
{
"plugin": "securitySolution",
"path": "x-pack/plugins/security_solution/server/endpoint/routes/suggestions/index.ts"
@@ -17212,10 +17216,10 @@
"tags": [],
"label": "HttpProtocol",
"description": [
- "\nDefines an http protocol.\n(Only supporting http1 for now)\n\n- http1: regroups all http/1.x protocols"
+ "\nDefines an http protocol.\n(Only supporting http1 for now)\n\n- http1: regroups all http/1.x protocols\n- http2: h2"
],
"signature": [
- "\"http1\""
+ "\"http1\" | \"http2\""
],
"path": "packages/core/http/core-http-server/src/http_contract.ts",
"deprecated": false,
diff --git a/api_docs/kbn_core_http_server.mdx b/api_docs/kbn_core_http_server.mdx
index d601a5645aee2..48a248df02c02 100644
--- a/api_docs/kbn_core_http_server.mdx
+++ b/api_docs/kbn_core_http_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server
title: "@kbn/core-http-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-server plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-server']
---
import kbnCoreHttpServerObj from './kbn_core_http_server.devdocs.json';
diff --git a/api_docs/kbn_core_http_server_internal.devdocs.json b/api_docs/kbn_core_http_server_internal.devdocs.json
index 6b7e5650c3bc1..e27b8b2b2a987 100644
--- a/api_docs/kbn_core_http_server_internal.devdocs.json
+++ b/api_docs/kbn_core_http_server_internal.devdocs.json
@@ -275,6 +275,20 @@
"deprecated": false,
"trackAdoption": false
},
+ {
+ "parentPluginId": "@kbn/core-http-server-internal",
+ "id": "def-common.HttpConfig.protocol",
+ "type": "CompoundType",
+ "tags": [],
+ "label": "protocol",
+ "description": [],
+ "signature": [
+ "\"http1\" | \"http2\""
+ ],
+ "path": "packages/core/http/core-http-server-internal/src/http_config.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
{
"parentPluginId": "@kbn/core-http-server-internal",
"id": "def-common.HttpConfig.host",
@@ -1449,7 +1463,7 @@
"label": "HttpConfigType",
"description": [],
"signature": [
- "{ readonly uuid?: string | undefined; readonly basePath?: string | undefined; readonly publicBaseUrl?: string | undefined; readonly name: string; readonly ssl: Readonly<{ key?: string | undefined; certificateAuthorities?: string | string[] | undefined; certificate?: string | undefined; keyPassphrase?: string | undefined; redirectHttpFromPort?: number | undefined; } & { enabled: boolean; keystore: Readonly<{ password?: string | undefined; path?: string | undefined; } & {}>; truststore: Readonly<{ password?: string | undefined; path?: string | undefined; } & {}>; cipherSuites: string[]; supportedProtocols: string[]; clientAuthentication: \"none\" | \"optional\" | \"required\"; }>; readonly host: string; readonly port: number; readonly compression: Readonly<{ referrerWhitelist?: string[] | undefined; } & { enabled: boolean; brotli: Readonly<{} & { enabled: boolean; quality: number; }>; }>; readonly cors: Readonly<{} & { enabled: boolean; allowCredentials: boolean; allowOrigin: string[] | \"*\"[]; }>; readonly versioned: Readonly<{} & { useVersionResolutionStrategyForInternalPaths: string[]; versionResolution: \"none\" | \"oldest\" | \"newest\"; strictClientVersionCheck: boolean; }>; readonly autoListen: boolean; readonly shutdownTimeout: moment.Duration; readonly cdn: Readonly<{ url?: string | null | undefined; } & {}>; readonly oas: Readonly<{} & { enabled: boolean; }>; readonly securityResponseHeaders: Readonly<{} & { referrerPolicy: \"origin\" | \"no-referrer\" | \"no-referrer-when-downgrade\" | \"origin-when-cross-origin\" | \"same-origin\" | \"strict-origin\" | \"strict-origin-when-cross-origin\" | \"unsafe-url\" | null; strictTransportSecurity: string | null; xContentTypeOptions: \"nosniff\" | null; permissionsPolicy: string | null; disableEmbedding: boolean; crossOriginOpenerPolicy: \"same-origin\" | \"unsafe-none\" | \"same-origin-allow-popups\" | null; }>; readonly customResponseHeaders: Record; readonly maxPayload: ",
+ "{ readonly uuid?: string | undefined; readonly basePath?: string | undefined; readonly publicBaseUrl?: string | undefined; readonly name: string; readonly ssl: Readonly<{ key?: string | undefined; certificateAuthorities?: string | string[] | undefined; certificate?: string | undefined; keyPassphrase?: string | undefined; redirectHttpFromPort?: number | undefined; } & { enabled: boolean; keystore: Readonly<{ password?: string | undefined; path?: string | undefined; } & {}>; truststore: Readonly<{ password?: string | undefined; path?: string | undefined; } & {}>; cipherSuites: string[]; supportedProtocols: string[]; clientAuthentication: \"none\" | \"optional\" | \"required\"; }>; readonly host: string; readonly http2: Readonly<{} & { allowUnsecure: boolean; }>; readonly protocol: \"http1\" | \"http2\"; readonly port: number; readonly compression: Readonly<{ referrerWhitelist?: string[] | undefined; } & { enabled: boolean; brotli: Readonly<{} & { enabled: boolean; quality: number; }>; }>; readonly cors: Readonly<{} & { enabled: boolean; allowCredentials: boolean; allowOrigin: string[] | \"*\"[]; }>; readonly versioned: Readonly<{} & { useVersionResolutionStrategyForInternalPaths: string[]; versionResolution: \"none\" | \"oldest\" | \"newest\"; strictClientVersionCheck: boolean; }>; readonly autoListen: boolean; readonly shutdownTimeout: moment.Duration; readonly cdn: Readonly<{ url?: string | null | undefined; } & {}>; readonly oas: Readonly<{} & { enabled: boolean; }>; readonly securityResponseHeaders: Readonly<{} & { referrerPolicy: \"origin\" | \"no-referrer\" | \"no-referrer-when-downgrade\" | \"origin-when-cross-origin\" | \"same-origin\" | \"strict-origin\" | \"strict-origin-when-cross-origin\" | \"unsafe-url\" | null; strictTransportSecurity: string | null; xContentTypeOptions: \"nosniff\" | null; permissionsPolicy: string | null; disableEmbedding: boolean; crossOriginOpenerPolicy: \"same-origin\" | \"unsafe-none\" | \"same-origin-allow-popups\" | null; }>; readonly customResponseHeaders: Record; readonly maxPayload: ",
{
"pluginId": "@kbn/config-schema",
"scope": "common",
diff --git a/api_docs/kbn_core_http_server_internal.mdx b/api_docs/kbn_core_http_server_internal.mdx
index c9a568d85602a..2ff22f119f171 100644
--- a/api_docs/kbn_core_http_server_internal.mdx
+++ b/api_docs/kbn_core_http_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server-internal
title: "@kbn/core-http-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-server-internal plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-server-internal']
---
import kbnCoreHttpServerInternalObj from './kbn_core_http_server_internal.devdocs.json';
@@ -21,7 +21,7 @@ Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core
| Public API count | Any count | Items lacking comments | Missing exports |
|-------------------|-----------|------------------------|-----------------|
-| 91 | 0 | 78 | 10 |
+| 92 | 0 | 79 | 10 |
## Common
diff --git a/api_docs/kbn_core_http_server_mocks.devdocs.json b/api_docs/kbn_core_http_server_mocks.devdocs.json
index 322c432b28c54..765ba95d4de08 100644
--- a/api_docs/kbn_core_http_server_mocks.devdocs.json
+++ b/api_docs/kbn_core_http_server_mocks.devdocs.json
@@ -27,7 +27,7 @@
"label": "createConfigService",
"description": [],
"signature": [
- "({ server, externalUrl, csp, }?: Partial<{ server: Partial; truststore: Readonly<{ password?: string | undefined; path?: string | undefined; } & {}>; cipherSuites: string[]; supportedProtocols: string[]; clientAuthentication: \"none\" | \"optional\" | \"required\"; }>; host: string; port: number; compression: Readonly<{ referrerWhitelist?: string[] | undefined; } & { enabled: boolean; brotli: Readonly<{} & { enabled: boolean; quality: number; }>; }>; cors: Readonly<{} & { enabled: boolean; allowCredentials: boolean; allowOrigin: string[] | \"*\"[]; }>; versioned: Readonly<{} & { useVersionResolutionStrategyForInternalPaths: string[]; versionResolution: \"none\" | \"oldest\" | \"newest\"; strictClientVersionCheck: boolean; }>; autoListen: boolean; shutdownTimeout: moment.Duration; cdn: Readonly<{ url?: string | null | undefined; } & {}>; oas: Readonly<{} & { enabled: boolean; }>; securityResponseHeaders: Readonly<{} & { referrerPolicy: \"origin\" | \"no-referrer\" | \"no-referrer-when-downgrade\" | \"origin-when-cross-origin\" | \"same-origin\" | \"strict-origin\" | \"strict-origin-when-cross-origin\" | \"unsafe-url\" | null; strictTransportSecurity: string | null; xContentTypeOptions: \"nosniff\" | null; permissionsPolicy: string | null; disableEmbedding: boolean; crossOriginOpenerPolicy: \"same-origin\" | \"unsafe-none\" | \"same-origin-allow-popups\" | null; }>; customResponseHeaders: Record; maxPayload: ",
+ "({ server, externalUrl, csp, }?: Partial<{ server: Partial; truststore: Readonly<{ password?: string | undefined; path?: string | undefined; } & {}>; cipherSuites: string[]; supportedProtocols: string[]; clientAuthentication: \"none\" | \"optional\" | \"required\"; }>; host: string; http2: Readonly<{} & { allowUnsecure: boolean; }>; protocol: \"http1\" | \"http2\"; port: number; compression: Readonly<{ referrerWhitelist?: string[] | undefined; } & { enabled: boolean; brotli: Readonly<{} & { enabled: boolean; quality: number; }>; }>; cors: Readonly<{} & { enabled: boolean; allowCredentials: boolean; allowOrigin: string[] | \"*\"[]; }>; versioned: Readonly<{} & { useVersionResolutionStrategyForInternalPaths: string[]; versionResolution: \"none\" | \"oldest\" | \"newest\"; strictClientVersionCheck: boolean; }>; autoListen: boolean; shutdownTimeout: moment.Duration; cdn: Readonly<{ url?: string | null | undefined; } & {}>; oas: Readonly<{} & { enabled: boolean; }>; securityResponseHeaders: Readonly<{} & { referrerPolicy: \"origin\" | \"no-referrer\" | \"no-referrer-when-downgrade\" | \"origin-when-cross-origin\" | \"same-origin\" | \"strict-origin\" | \"strict-origin-when-cross-origin\" | \"unsafe-url\" | null; strictTransportSecurity: string | null; xContentTypeOptions: \"nosniff\" | null; permissionsPolicy: string | null; disableEmbedding: boolean; crossOriginOpenerPolicy: \"same-origin\" | \"unsafe-none\" | \"same-origin-allow-popups\" | null; }>; customResponseHeaders: Record; maxPayload: ",
{
"pluginId": "@kbn/config-schema",
"scope": "common",
@@ -64,7 +64,7 @@
"label": "{\n server,\n externalUrl,\n csp,\n}",
"description": [],
"signature": [
- "Partial<{ server: Partial; truststore: Readonly<{ password?: string | undefined; path?: string | undefined; } & {}>; cipherSuites: string[]; supportedProtocols: string[]; clientAuthentication: \"none\" | \"optional\" | \"required\"; }>; host: string; port: number; compression: Readonly<{ referrerWhitelist?: string[] | undefined; } & { enabled: boolean; brotli: Readonly<{} & { enabled: boolean; quality: number; }>; }>; cors: Readonly<{} & { enabled: boolean; allowCredentials: boolean; allowOrigin: string[] | \"*\"[]; }>; versioned: Readonly<{} & { useVersionResolutionStrategyForInternalPaths: string[]; versionResolution: \"none\" | \"oldest\" | \"newest\"; strictClientVersionCheck: boolean; }>; autoListen: boolean; shutdownTimeout: moment.Duration; cdn: Readonly<{ url?: string | null | undefined; } & {}>; oas: Readonly<{} & { enabled: boolean; }>; securityResponseHeaders: Readonly<{} & { referrerPolicy: \"origin\" | \"no-referrer\" | \"no-referrer-when-downgrade\" | \"origin-when-cross-origin\" | \"same-origin\" | \"strict-origin\" | \"strict-origin-when-cross-origin\" | \"unsafe-url\" | null; strictTransportSecurity: string | null; xContentTypeOptions: \"nosniff\" | null; permissionsPolicy: string | null; disableEmbedding: boolean; crossOriginOpenerPolicy: \"same-origin\" | \"unsafe-none\" | \"same-origin-allow-popups\" | null; }>; customResponseHeaders: Record; maxPayload: ",
+ "Partial<{ server: Partial; truststore: Readonly<{ password?: string | undefined; path?: string | undefined; } & {}>; cipherSuites: string[]; supportedProtocols: string[]; clientAuthentication: \"none\" | \"optional\" | \"required\"; }>; host: string; http2: Readonly<{} & { allowUnsecure: boolean; }>; protocol: \"http1\" | \"http2\"; port: number; compression: Readonly<{ referrerWhitelist?: string[] | undefined; } & { enabled: boolean; brotli: Readonly<{} & { enabled: boolean; quality: number; }>; }>; cors: Readonly<{} & { enabled: boolean; allowCredentials: boolean; allowOrigin: string[] | \"*\"[]; }>; versioned: Readonly<{} & { useVersionResolutionStrategyForInternalPaths: string[]; versionResolution: \"none\" | \"oldest\" | \"newest\"; strictClientVersionCheck: boolean; }>; autoListen: boolean; shutdownTimeout: moment.Duration; cdn: Readonly<{ url?: string | null | undefined; } & {}>; oas: Readonly<{} & { enabled: boolean; }>; securityResponseHeaders: Readonly<{} & { referrerPolicy: \"origin\" | \"no-referrer\" | \"no-referrer-when-downgrade\" | \"origin-when-cross-origin\" | \"same-origin\" | \"strict-origin\" | \"strict-origin-when-cross-origin\" | \"unsafe-url\" | null; strictTransportSecurity: string | null; xContentTypeOptions: \"nosniff\" | null; permissionsPolicy: string | null; disableEmbedding: boolean; crossOriginOpenerPolicy: \"same-origin\" | \"unsafe-none\" | \"same-origin-allow-popups\" | null; }>; customResponseHeaders: Record; maxPayload: ",
{
"pluginId": "@kbn/config-schema",
"scope": "common",
diff --git a/api_docs/kbn_core_http_server_mocks.mdx b/api_docs/kbn_core_http_server_mocks.mdx
index d4955e1cb5374..e35bfa9e0e7b2 100644
--- a/api_docs/kbn_core_http_server_mocks.mdx
+++ b/api_docs/kbn_core_http_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server-mocks
title: "@kbn/core-http-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-server-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 f73745d815e05..b130b2a0c6041 100644
--- a/api_docs/kbn_core_i18n_browser.mdx
+++ b/api_docs/kbn_core_i18n_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-browser
title: "@kbn/core-i18n-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-i18n-browser plugin
-date: 2024-06-03
+date: 2024-06-04
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 4f24570ba648c..0bdd287700816 100644
--- a/api_docs/kbn_core_i18n_browser_mocks.mdx
+++ b/api_docs/kbn_core_i18n_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-browser-mocks
title: "@kbn/core-i18n-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-i18n-browser-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 1dc15b1f461ea..533287a4e45ca 100644
--- a/api_docs/kbn_core_i18n_server.mdx
+++ b/api_docs/kbn_core_i18n_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server
title: "@kbn/core-i18n-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-i18n-server plugin
-date: 2024-06-03
+date: 2024-06-04
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 73b2c21769995..d22c74bec78c8 100644
--- a/api_docs/kbn_core_i18n_server_internal.mdx
+++ b/api_docs/kbn_core_i18n_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server-internal
title: "@kbn/core-i18n-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-i18n-server-internal plugin
-date: 2024-06-03
+date: 2024-06-04
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 58aaa7100c4c7..dfbe96c0b0273 100644
--- a/api_docs/kbn_core_i18n_server_mocks.mdx
+++ b/api_docs/kbn_core_i18n_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server-mocks
title: "@kbn/core-i18n-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-i18n-server-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 4d90ea495ff97..2891d8967078c 100644
--- a/api_docs/kbn_core_injected_metadata_browser_mocks.mdx
+++ b/api_docs/kbn_core_injected_metadata_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-injected-metadata-browser-mocks
title: "@kbn/core-injected-metadata-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-injected-metadata-browser-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 f74c1859d9e91..a131a5b273a0c 100644
--- a/api_docs/kbn_core_integrations_browser_internal.mdx
+++ b/api_docs/kbn_core_integrations_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-integrations-browser-internal
title: "@kbn/core-integrations-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-integrations-browser-internal plugin
-date: 2024-06-03
+date: 2024-06-04
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 c272854c845a7..017d4fe10c5c0 100644
--- a/api_docs/kbn_core_integrations_browser_mocks.mdx
+++ b/api_docs/kbn_core_integrations_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-integrations-browser-mocks
title: "@kbn/core-integrations-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-integrations-browser-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 fa36553a30f9a..2d446fde07793 100644
--- a/api_docs/kbn_core_lifecycle_browser.mdx
+++ b/api_docs/kbn_core_lifecycle_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-browser
title: "@kbn/core-lifecycle-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-lifecycle-browser plugin
-date: 2024-06-03
+date: 2024-06-04
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 9629eda97ad8a..170838110e32c 100644
--- a/api_docs/kbn_core_lifecycle_browser_mocks.mdx
+++ b/api_docs/kbn_core_lifecycle_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-browser-mocks
title: "@kbn/core-lifecycle-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-lifecycle-browser-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 60882026c4a00..1f865eb4bf3b9 100644
--- a/api_docs/kbn_core_lifecycle_server.mdx
+++ b/api_docs/kbn_core_lifecycle_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-server
title: "@kbn/core-lifecycle-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-lifecycle-server plugin
-date: 2024-06-03
+date: 2024-06-04
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 a31ecfe987cf9..507f7a57f9b64 100644
--- a/api_docs/kbn_core_lifecycle_server_mocks.mdx
+++ b/api_docs/kbn_core_lifecycle_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-server-mocks
title: "@kbn/core-lifecycle-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-lifecycle-server-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 0c3ec04f6aab3..c821759313228 100644
--- a/api_docs/kbn_core_logging_browser_mocks.mdx
+++ b/api_docs/kbn_core_logging_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-browser-mocks
title: "@kbn/core-logging-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-logging-browser-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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.devdocs.json b/api_docs/kbn_core_logging_common_internal.devdocs.json
index 74dbf77a108bd..c38854fc7076a 100644
--- a/api_docs/kbn_core_logging_common_internal.devdocs.json
+++ b/api_docs/kbn_core_logging_common_internal.devdocs.json
@@ -99,6 +99,45 @@
}
],
"interfaces": [
+ {
+ "parentPluginId": "@kbn/core-logging-common-internal",
+ "id": "def-common.BrowserLoggerConfig",
+ "type": "Interface",
+ "tags": [],
+ "label": "BrowserLoggerConfig",
+ "description": [],
+ "path": "packages/core/logging/core-logging-common-internal/src/browser_config.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": [
+ {
+ "parentPluginId": "@kbn/core-logging-common-internal",
+ "id": "def-common.BrowserLoggerConfig.name",
+ "type": "string",
+ "tags": [],
+ "label": "name",
+ "description": [],
+ "path": "packages/core/logging/core-logging-common-internal/src/browser_config.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/core-logging-common-internal",
+ "id": "def-common.BrowserLoggerConfig.level",
+ "type": "CompoundType",
+ "tags": [],
+ "label": "level",
+ "description": [],
+ "signature": [
+ "\"error\" | \"info\" | \"all\" | \"debug\" | \"off\" | \"warn\" | \"trace\" | \"fatal\""
+ ],
+ "path": "packages/core/logging/core-logging-common-internal/src/browser_config.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ }
+ ],
+ "initialIsOpen": false
+ },
{
"parentPluginId": "@kbn/core-logging-common-internal",
"id": "def-common.Conversion",
diff --git a/api_docs/kbn_core_logging_common_internal.mdx b/api_docs/kbn_core_logging_common_internal.mdx
index c229c50afc308..403249b152685 100644
--- a/api_docs/kbn_core_logging_common_internal.mdx
+++ b/api_docs/kbn_core_logging_common_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-common-internal
title: "@kbn/core-logging-common-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-logging-common-internal plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-common-internal']
---
import kbnCoreLoggingCommonInternalObj from './kbn_core_logging_common_internal.devdocs.json';
@@ -21,7 +21,7 @@ Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core
| Public API count | Any count | Items lacking comments | Missing exports |
|-------------------|-----------|------------------------|-----------------|
-| 38 | 0 | 31 | 0 |
+| 41 | 0 | 34 | 0 |
## Common
diff --git a/api_docs/kbn_core_logging_server.mdx b/api_docs/kbn_core_logging_server.mdx
index b8a5d4cafd98b..817fc4f601ae7 100644
--- a/api_docs/kbn_core_logging_server.mdx
+++ b/api_docs/kbn_core_logging_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server
title: "@kbn/core-logging-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-logging-server plugin
-date: 2024-06-03
+date: 2024-06-04
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 ff99198f00b5f..f18f55f356bc6 100644
--- a/api_docs/kbn_core_logging_server_internal.mdx
+++ b/api_docs/kbn_core_logging_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server-internal
title: "@kbn/core-logging-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-logging-server-internal plugin
-date: 2024-06-03
+date: 2024-06-04
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 92b31ed7be09f..f692e8ddbaac6 100644
--- a/api_docs/kbn_core_logging_server_mocks.mdx
+++ b/api_docs/kbn_core_logging_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server-mocks
title: "@kbn/core-logging-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-logging-server-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 b0c62e59792ec..62cf629f961f0 100644
--- a/api_docs/kbn_core_metrics_collectors_server_internal.mdx
+++ b/api_docs/kbn_core_metrics_collectors_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-collectors-server-internal
title: "@kbn/core-metrics-collectors-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-metrics-collectors-server-internal plugin
-date: 2024-06-03
+date: 2024-06-04
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 89e081a3c51d3..f16d349ae500f 100644
--- a/api_docs/kbn_core_metrics_collectors_server_mocks.mdx
+++ b/api_docs/kbn_core_metrics_collectors_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-collectors-server-mocks
title: "@kbn/core-metrics-collectors-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-metrics-collectors-server-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 9ea5d5fb09b97..f5e3d5a140629 100644
--- a/api_docs/kbn_core_metrics_server.mdx
+++ b/api_docs/kbn_core_metrics_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server
title: "@kbn/core-metrics-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-metrics-server plugin
-date: 2024-06-03
+date: 2024-06-04
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 1ba73408746c6..6225f120ac13c 100644
--- a/api_docs/kbn_core_metrics_server_internal.mdx
+++ b/api_docs/kbn_core_metrics_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server-internal
title: "@kbn/core-metrics-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-metrics-server-internal plugin
-date: 2024-06-03
+date: 2024-06-04
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 9eb08b6dcc85c..3f977035d2f46 100644
--- a/api_docs/kbn_core_metrics_server_mocks.mdx
+++ b/api_docs/kbn_core_metrics_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server-mocks
title: "@kbn/core-metrics-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-metrics-server-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 470703b0fbec8..0adc1dd54c9eb 100644
--- a/api_docs/kbn_core_mount_utils_browser.mdx
+++ b/api_docs/kbn_core_mount_utils_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-mount-utils-browser
title: "@kbn/core-mount-utils-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-mount-utils-browser plugin
-date: 2024-06-03
+date: 2024-06-04
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 587df3864d6ca..91bdfa219133b 100644
--- a/api_docs/kbn_core_node_server.mdx
+++ b/api_docs/kbn_core_node_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server
title: "@kbn/core-node-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-node-server plugin
-date: 2024-06-03
+date: 2024-06-04
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 dae88aca99c27..3d64a07f8d287 100644
--- a/api_docs/kbn_core_node_server_internal.mdx
+++ b/api_docs/kbn_core_node_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server-internal
title: "@kbn/core-node-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-node-server-internal plugin
-date: 2024-06-03
+date: 2024-06-04
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 5f1fffde223f8..b7e0a265cca9e 100644
--- a/api_docs/kbn_core_node_server_mocks.mdx
+++ b/api_docs/kbn_core_node_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server-mocks
title: "@kbn/core-node-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-node-server-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 6f893e25c0ac3..18b0eb5b5ea5b 100644
--- a/api_docs/kbn_core_notifications_browser.mdx
+++ b/api_docs/kbn_core_notifications_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser
title: "@kbn/core-notifications-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-notifications-browser plugin
-date: 2024-06-03
+date: 2024-06-04
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 9b8ed84c71c6b..a8b0588f27bd5 100644
--- a/api_docs/kbn_core_notifications_browser_internal.mdx
+++ b/api_docs/kbn_core_notifications_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser-internal
title: "@kbn/core-notifications-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-notifications-browser-internal plugin
-date: 2024-06-03
+date: 2024-06-04
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 bd9740e3c5111..e843e40ff293f 100644
--- a/api_docs/kbn_core_notifications_browser_mocks.mdx
+++ b/api_docs/kbn_core_notifications_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser-mocks
title: "@kbn/core-notifications-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-notifications-browser-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 2e4d2a9f4790d..afc5cb3a4a43f 100644
--- a/api_docs/kbn_core_overlays_browser.mdx
+++ b/api_docs/kbn_core_overlays_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser
title: "@kbn/core-overlays-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-overlays-browser plugin
-date: 2024-06-03
+date: 2024-06-04
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 4c90c4b80986c..319afeb0de0fd 100644
--- a/api_docs/kbn_core_overlays_browser_internal.mdx
+++ b/api_docs/kbn_core_overlays_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser-internal
title: "@kbn/core-overlays-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-overlays-browser-internal plugin
-date: 2024-06-03
+date: 2024-06-04
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 b802a07318123..71de587344a39 100644
--- a/api_docs/kbn_core_overlays_browser_mocks.mdx
+++ b/api_docs/kbn_core_overlays_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser-mocks
title: "@kbn/core-overlays-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-overlays-browser-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 36688b4f85c04..e33eecd1ac6da 100644
--- a/api_docs/kbn_core_plugins_browser.mdx
+++ b/api_docs/kbn_core_plugins_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-browser
title: "@kbn/core-plugins-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-plugins-browser plugin
-date: 2024-06-03
+date: 2024-06-04
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 3bd3dd8a9924a..3b1ee2436bb2d 100644
--- a/api_docs/kbn_core_plugins_browser_mocks.mdx
+++ b/api_docs/kbn_core_plugins_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-browser-mocks
title: "@kbn/core-plugins-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-plugins-browser-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-browser-mocks']
---
import kbnCorePluginsBrowserMocksObj from './kbn_core_plugins_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_plugins_contracts_browser.mdx b/api_docs/kbn_core_plugins_contracts_browser.mdx
index 00407f7c6bdec..d641846e582d7 100644
--- a/api_docs/kbn_core_plugins_contracts_browser.mdx
+++ b/api_docs/kbn_core_plugins_contracts_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-contracts-browser
title: "@kbn/core-plugins-contracts-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-plugins-contracts-browser plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-contracts-browser']
---
import kbnCorePluginsContractsBrowserObj from './kbn_core_plugins_contracts_browser.devdocs.json';
diff --git a/api_docs/kbn_core_plugins_contracts_server.mdx b/api_docs/kbn_core_plugins_contracts_server.mdx
index e4ab57026294d..435f4ae34b463 100644
--- a/api_docs/kbn_core_plugins_contracts_server.mdx
+++ b/api_docs/kbn_core_plugins_contracts_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-contracts-server
title: "@kbn/core-plugins-contracts-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-plugins-contracts-server plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-contracts-server']
---
import kbnCorePluginsContractsServerObj from './kbn_core_plugins_contracts_server.devdocs.json';
diff --git a/api_docs/kbn_core_plugins_server.mdx b/api_docs/kbn_core_plugins_server.mdx
index e81a9a8b639f3..9351e0d001974 100644
--- a/api_docs/kbn_core_plugins_server.mdx
+++ b/api_docs/kbn_core_plugins_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-server
title: "@kbn/core-plugins-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-plugins-server plugin
-date: 2024-06-03
+date: 2024-06-04
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 7355ffdd90e51..5018aaad8680a 100644
--- a/api_docs/kbn_core_plugins_server_mocks.mdx
+++ b/api_docs/kbn_core_plugins_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-server-mocks
title: "@kbn/core-plugins-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-plugins-server-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 4ecf41b468d2d..f166162c30ed8 100644
--- a/api_docs/kbn_core_preboot_server.mdx
+++ b/api_docs/kbn_core_preboot_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-preboot-server
title: "@kbn/core-preboot-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-preboot-server plugin
-date: 2024-06-03
+date: 2024-06-04
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 b69ab80486335..d7497b6977038 100644
--- a/api_docs/kbn_core_preboot_server_mocks.mdx
+++ b/api_docs/kbn_core_preboot_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-preboot-server-mocks
title: "@kbn/core-preboot-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-preboot-server-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 7e2426c790c75..450e5a214ae86 100644
--- a/api_docs/kbn_core_rendering_browser_mocks.mdx
+++ b/api_docs/kbn_core_rendering_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-browser-mocks
title: "@kbn/core-rendering-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-rendering-browser-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 c685f41fad9b5..b7c393509a4df 100644
--- a/api_docs/kbn_core_rendering_server_internal.mdx
+++ b/api_docs/kbn_core_rendering_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-server-internal
title: "@kbn/core-rendering-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-rendering-server-internal plugin
-date: 2024-06-03
+date: 2024-06-04
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 09cbb5d19b3e5..acc10d82f1900 100644
--- a/api_docs/kbn_core_rendering_server_mocks.mdx
+++ b/api_docs/kbn_core_rendering_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-server-mocks
title: "@kbn/core-rendering-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-rendering-server-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 caa1abaf5bbb1..d61ca771f4c0b 100644
--- a/api_docs/kbn_core_root_server_internal.mdx
+++ b/api_docs/kbn_core_root_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-root-server-internal
title: "@kbn/core-root-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-root-server-internal plugin
-date: 2024-06-03
+date: 2024-06-04
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 40a126902ad29..8c79e5d5edbaf 100644
--- a/api_docs/kbn_core_saved_objects_api_browser.mdx
+++ b/api_docs/kbn_core_saved_objects_api_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-browser
title: "@kbn/core-saved-objects-api-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-api-browser plugin
-date: 2024-06-03
+date: 2024-06-04
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 071bb8d2962e6..5cbad3ce85047 100644
--- a/api_docs/kbn_core_saved_objects_api_server.mdx
+++ b/api_docs/kbn_core_saved_objects_api_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server
title: "@kbn/core-saved-objects-api-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-api-server plugin
-date: 2024-06-03
+date: 2024-06-04
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 6fde52ec61000..9611d831ab034 100644
--- a/api_docs/kbn_core_saved_objects_api_server_mocks.mdx
+++ b/api_docs/kbn_core_saved_objects_api_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server-mocks
title: "@kbn/core-saved-objects-api-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-api-server-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 e75f7be14c31a..8631d1e1dfe3b 100644
--- a/api_docs/kbn_core_saved_objects_base_server_internal.mdx
+++ b/api_docs/kbn_core_saved_objects_base_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-base-server-internal
title: "@kbn/core-saved-objects-base-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-base-server-internal plugin
-date: 2024-06-03
+date: 2024-06-04
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 101774a292130..fb2bae778ca1f 100644
--- a/api_docs/kbn_core_saved_objects_base_server_mocks.mdx
+++ b/api_docs/kbn_core_saved_objects_base_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-base-server-mocks
title: "@kbn/core-saved-objects-base-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-base-server-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 fe97499bf1de7..ca5851036cc16 100644
--- a/api_docs/kbn_core_saved_objects_browser.mdx
+++ b/api_docs/kbn_core_saved_objects_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser
title: "@kbn/core-saved-objects-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-browser plugin
-date: 2024-06-03
+date: 2024-06-04
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 d8a4a8bac5a0e..ee130d770c987 100644
--- a/api_docs/kbn_core_saved_objects_browser_internal.mdx
+++ b/api_docs/kbn_core_saved_objects_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser-internal
title: "@kbn/core-saved-objects-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-browser-internal plugin
-date: 2024-06-03
+date: 2024-06-04
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 f93bf12bb357c..6d2bebc3488dd 100644
--- a/api_docs/kbn_core_saved_objects_browser_mocks.mdx
+++ b/api_docs/kbn_core_saved_objects_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser-mocks
title: "@kbn/core-saved-objects-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-browser-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 92f9d5ffa9d0d..b2a0d6415a414 100644
--- a/api_docs/kbn_core_saved_objects_common.mdx
+++ b/api_docs/kbn_core_saved_objects_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-common
title: "@kbn/core-saved-objects-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-common plugin
-date: 2024-06-03
+date: 2024-06-04
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 805c429daef07..0b9c7aa63b0b2 100644
--- a/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx
+++ b/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-import-export-server-internal
title: "@kbn/core-saved-objects-import-export-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-import-export-server-internal plugin
-date: 2024-06-03
+date: 2024-06-04
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 4be323e05989a..3af76a281c3ce 100644
--- a/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx
+++ b/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-import-export-server-mocks
title: "@kbn/core-saved-objects-import-export-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-import-export-server-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 66b0905cdac28..1a0ad2fce2b04 100644
--- a/api_docs/kbn_core_saved_objects_migration_server_internal.mdx
+++ b/api_docs/kbn_core_saved_objects_migration_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-migration-server-internal
title: "@kbn/core-saved-objects-migration-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-migration-server-internal plugin
-date: 2024-06-03
+date: 2024-06-04
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 a951a35465462..5c98bd42597e5 100644
--- a/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx
+++ b/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-migration-server-mocks
title: "@kbn/core-saved-objects-migration-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-migration-server-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 6c481ba6f5095..ce91309e1cdec 100644
--- a/api_docs/kbn_core_saved_objects_server.mdx
+++ b/api_docs/kbn_core_saved_objects_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server
title: "@kbn/core-saved-objects-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-server plugin
-date: 2024-06-03
+date: 2024-06-04
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 bc148b909ab19..7e04b448184b7 100644
--- a/api_docs/kbn_core_saved_objects_server_internal.mdx
+++ b/api_docs/kbn_core_saved_objects_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server-internal
title: "@kbn/core-saved-objects-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-server-internal plugin
-date: 2024-06-03
+date: 2024-06-04
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 7775d806cf134..8844bf6baf45e 100644
--- a/api_docs/kbn_core_saved_objects_server_mocks.mdx
+++ b/api_docs/kbn_core_saved_objects_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server-mocks
title: "@kbn/core-saved-objects-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-server-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 fcf380a2e2afa..6457865139442 100644
--- a/api_docs/kbn_core_saved_objects_utils_server.mdx
+++ b/api_docs/kbn_core_saved_objects_utils_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-utils-server
title: "@kbn/core-saved-objects-utils-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-utils-server plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-utils-server']
---
import kbnCoreSavedObjectsUtilsServerObj from './kbn_core_saved_objects_utils_server.devdocs.json';
diff --git a/api_docs/kbn_core_security_browser.mdx b/api_docs/kbn_core_security_browser.mdx
index a59d57c55021b..d8a29d7d581c6 100644
--- a/api_docs/kbn_core_security_browser.mdx
+++ b/api_docs/kbn_core_security_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-browser
title: "@kbn/core-security-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-security-browser plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-browser']
---
import kbnCoreSecurityBrowserObj from './kbn_core_security_browser.devdocs.json';
diff --git a/api_docs/kbn_core_security_browser_internal.mdx b/api_docs/kbn_core_security_browser_internal.mdx
index 5659953bd7694..5635959ab816d 100644
--- a/api_docs/kbn_core_security_browser_internal.mdx
+++ b/api_docs/kbn_core_security_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-browser-internal
title: "@kbn/core-security-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-security-browser-internal plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-browser-internal']
---
import kbnCoreSecurityBrowserInternalObj from './kbn_core_security_browser_internal.devdocs.json';
diff --git a/api_docs/kbn_core_security_browser_mocks.mdx b/api_docs/kbn_core_security_browser_mocks.mdx
index 05ad04b26fbf6..b050290affb37 100644
--- a/api_docs/kbn_core_security_browser_mocks.mdx
+++ b/api_docs/kbn_core_security_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-browser-mocks
title: "@kbn/core-security-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-security-browser-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-browser-mocks']
---
import kbnCoreSecurityBrowserMocksObj from './kbn_core_security_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_security_common.mdx b/api_docs/kbn_core_security_common.mdx
index dc436173b7d3c..6e4e7c77e2059 100644
--- a/api_docs/kbn_core_security_common.mdx
+++ b/api_docs/kbn_core_security_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-common
title: "@kbn/core-security-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-security-common plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-common']
---
import kbnCoreSecurityCommonObj from './kbn_core_security_common.devdocs.json';
diff --git a/api_docs/kbn_core_security_server.mdx b/api_docs/kbn_core_security_server.mdx
index 4ce47d935ec0b..cc6c068f8bedf 100644
--- a/api_docs/kbn_core_security_server.mdx
+++ b/api_docs/kbn_core_security_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-server
title: "@kbn/core-security-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-security-server plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-server']
---
import kbnCoreSecurityServerObj from './kbn_core_security_server.devdocs.json';
diff --git a/api_docs/kbn_core_security_server_internal.mdx b/api_docs/kbn_core_security_server_internal.mdx
index 2a57479066d0c..4b0c94ff482a2 100644
--- a/api_docs/kbn_core_security_server_internal.mdx
+++ b/api_docs/kbn_core_security_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-server-internal
title: "@kbn/core-security-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-security-server-internal plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-server-internal']
---
import kbnCoreSecurityServerInternalObj from './kbn_core_security_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_security_server_mocks.mdx b/api_docs/kbn_core_security_server_mocks.mdx
index 033c5c7f3a043..95631c7f2f249 100644
--- a/api_docs/kbn_core_security_server_mocks.mdx
+++ b/api_docs/kbn_core_security_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-server-mocks
title: "@kbn/core-security-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-security-server-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-server-mocks']
---
import kbnCoreSecurityServerMocksObj from './kbn_core_security_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_status_common.mdx b/api_docs/kbn_core_status_common.mdx
index ca6d137b13588..fece3557a9e8a 100644
--- a/api_docs/kbn_core_status_common.mdx
+++ b/api_docs/kbn_core_status_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-common
title: "@kbn/core-status-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-status-common plugin
-date: 2024-06-03
+date: 2024-06-04
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 3f303148a1190..0bffa2e0fb2cc 100644
--- a/api_docs/kbn_core_status_common_internal.mdx
+++ b/api_docs/kbn_core_status_common_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-common-internal
title: "@kbn/core-status-common-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-status-common-internal plugin
-date: 2024-06-03
+date: 2024-06-04
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 37cbbd9c3c299..0fcbcf5bd503b 100644
--- a/api_docs/kbn_core_status_server.mdx
+++ b/api_docs/kbn_core_status_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server
title: "@kbn/core-status-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-status-server plugin
-date: 2024-06-03
+date: 2024-06-04
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 56979d12dd01f..49a2c6c562baa 100644
--- a/api_docs/kbn_core_status_server_internal.mdx
+++ b/api_docs/kbn_core_status_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server-internal
title: "@kbn/core-status-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-status-server-internal plugin
-date: 2024-06-03
+date: 2024-06-04
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 a68064ef5a78c..50befde81f7fa 100644
--- a/api_docs/kbn_core_status_server_mocks.mdx
+++ b/api_docs/kbn_core_status_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server-mocks
title: "@kbn/core-status-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-status-server-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 ab10db88cba75..351f0049bf3e6 100644
--- a/api_docs/kbn_core_test_helpers_deprecations_getters.mdx
+++ b/api_docs/kbn_core_test_helpers_deprecations_getters.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-deprecations-getters
title: "@kbn/core-test-helpers-deprecations-getters"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-test-helpers-deprecations-getters plugin
-date: 2024-06-03
+date: 2024-06-04
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 c94edf47fff0f..c6e79e790f57c 100644
--- a/api_docs/kbn_core_test_helpers_http_setup_browser.mdx
+++ b/api_docs/kbn_core_test_helpers_http_setup_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-http-setup-browser
title: "@kbn/core-test-helpers-http-setup-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-test-helpers-http-setup-browser plugin
-date: 2024-06-03
+date: 2024-06-04
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 c5b32fc69c1db..3e25d1c60c76a 100644
--- a/api_docs/kbn_core_test_helpers_kbn_server.mdx
+++ b/api_docs/kbn_core_test_helpers_kbn_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-kbn-server
title: "@kbn/core-test-helpers-kbn-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-test-helpers-kbn-server plugin
-date: 2024-06-03
+date: 2024-06-04
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 a27ae483fa57f..fe59232602135 100644
--- a/api_docs/kbn_core_test_helpers_model_versions.mdx
+++ b/api_docs/kbn_core_test_helpers_model_versions.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-model-versions
title: "@kbn/core-test-helpers-model-versions"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-test-helpers-model-versions plugin
-date: 2024-06-03
+date: 2024-06-04
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 53ac831948190..c58c268c56524 100644
--- a/api_docs/kbn_core_test_helpers_so_type_serializer.mdx
+++ b/api_docs/kbn_core_test_helpers_so_type_serializer.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-so-type-serializer
title: "@kbn/core-test-helpers-so-type-serializer"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-test-helpers-so-type-serializer plugin
-date: 2024-06-03
+date: 2024-06-04
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 8171d82c75415..acc97a45e4751 100644
--- a/api_docs/kbn_core_test_helpers_test_utils.mdx
+++ b/api_docs/kbn_core_test_helpers_test_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-test-utils
title: "@kbn/core-test-helpers-test-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-test-helpers-test-utils plugin
-date: 2024-06-03
+date: 2024-06-04
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 09a763a5d57ba..ce3935d5f5f47 100644
--- a/api_docs/kbn_core_theme_browser.mdx
+++ b/api_docs/kbn_core_theme_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser
title: "@kbn/core-theme-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-theme-browser plugin
-date: 2024-06-03
+date: 2024-06-04
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 7d66cccc7c44f..843c449b458c0 100644
--- a/api_docs/kbn_core_theme_browser_mocks.mdx
+++ b/api_docs/kbn_core_theme_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser-mocks
title: "@kbn/core-theme-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-theme-browser-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 f951de2be9b1b..ea51d69ab0404 100644
--- a/api_docs/kbn_core_ui_settings_browser.mdx
+++ b/api_docs/kbn_core_ui_settings_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser
title: "@kbn/core-ui-settings-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-ui-settings-browser plugin
-date: 2024-06-03
+date: 2024-06-04
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 217bbdc379d42..7dd3092c80f0a 100644
--- a/api_docs/kbn_core_ui_settings_browser_internal.mdx
+++ b/api_docs/kbn_core_ui_settings_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser-internal
title: "@kbn/core-ui-settings-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-ui-settings-browser-internal plugin
-date: 2024-06-03
+date: 2024-06-04
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 89b570545c9a7..2230fefb38a7e 100644
--- a/api_docs/kbn_core_ui_settings_browser_mocks.mdx
+++ b/api_docs/kbn_core_ui_settings_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser-mocks
title: "@kbn/core-ui-settings-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-ui-settings-browser-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 940c2964ceaff..0547bb0349e8c 100644
--- a/api_docs/kbn_core_ui_settings_common.mdx
+++ b/api_docs/kbn_core_ui_settings_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-common
title: "@kbn/core-ui-settings-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-ui-settings-common plugin
-date: 2024-06-03
+date: 2024-06-04
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 b35006deda281..f1cb012de3001 100644
--- a/api_docs/kbn_core_ui_settings_server.mdx
+++ b/api_docs/kbn_core_ui_settings_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server
title: "@kbn/core-ui-settings-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-ui-settings-server plugin
-date: 2024-06-03
+date: 2024-06-04
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 b8cb49e830f54..6d274cc87d066 100644
--- a/api_docs/kbn_core_ui_settings_server_internal.mdx
+++ b/api_docs/kbn_core_ui_settings_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server-internal
title: "@kbn/core-ui-settings-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-ui-settings-server-internal plugin
-date: 2024-06-03
+date: 2024-06-04
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 429a46bb55b4a..068f29f341fd6 100644
--- a/api_docs/kbn_core_ui_settings_server_mocks.mdx
+++ b/api_docs/kbn_core_ui_settings_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server-mocks
title: "@kbn/core-ui-settings-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-ui-settings-server-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 a12f52e4da602..d441c62b4aac1 100644
--- a/api_docs/kbn_core_usage_data_server.mdx
+++ b/api_docs/kbn_core_usage_data_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server
title: "@kbn/core-usage-data-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-usage-data-server plugin
-date: 2024-06-03
+date: 2024-06-04
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 196269f819489..218005991cac0 100644
--- a/api_docs/kbn_core_usage_data_server_internal.mdx
+++ b/api_docs/kbn_core_usage_data_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server-internal
title: "@kbn/core-usage-data-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-usage-data-server-internal plugin
-date: 2024-06-03
+date: 2024-06-04
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 3e14d3553c3d8..9bec6da576890 100644
--- a/api_docs/kbn_core_usage_data_server_mocks.mdx
+++ b/api_docs/kbn_core_usage_data_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server-mocks
title: "@kbn/core-usage-data-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-usage-data-server-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-usage-data-server-mocks']
---
import kbnCoreUsageDataServerMocksObj from './kbn_core_usage_data_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_user_profile_browser.mdx b/api_docs/kbn_core_user_profile_browser.mdx
index 178bf11b94bba..77b77b318f552 100644
--- a/api_docs/kbn_core_user_profile_browser.mdx
+++ b/api_docs/kbn_core_user_profile_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-profile-browser
title: "@kbn/core-user-profile-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-user-profile-browser plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-profile-browser']
---
import kbnCoreUserProfileBrowserObj from './kbn_core_user_profile_browser.devdocs.json';
diff --git a/api_docs/kbn_core_user_profile_browser_internal.mdx b/api_docs/kbn_core_user_profile_browser_internal.mdx
index eeaabb7bb2e62..52df67da36be9 100644
--- a/api_docs/kbn_core_user_profile_browser_internal.mdx
+++ b/api_docs/kbn_core_user_profile_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-profile-browser-internal
title: "@kbn/core-user-profile-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-user-profile-browser-internal plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-profile-browser-internal']
---
import kbnCoreUserProfileBrowserInternalObj from './kbn_core_user_profile_browser_internal.devdocs.json';
diff --git a/api_docs/kbn_core_user_profile_browser_mocks.mdx b/api_docs/kbn_core_user_profile_browser_mocks.mdx
index 5b19d58732092..a1dae2b0f9e11 100644
--- a/api_docs/kbn_core_user_profile_browser_mocks.mdx
+++ b/api_docs/kbn_core_user_profile_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-profile-browser-mocks
title: "@kbn/core-user-profile-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-user-profile-browser-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-profile-browser-mocks']
---
import kbnCoreUserProfileBrowserMocksObj from './kbn_core_user_profile_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_user_profile_common.mdx b/api_docs/kbn_core_user_profile_common.mdx
index 1104c44549ce3..4e29ee8c8bc2f 100644
--- a/api_docs/kbn_core_user_profile_common.mdx
+++ b/api_docs/kbn_core_user_profile_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-profile-common
title: "@kbn/core-user-profile-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-user-profile-common plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-profile-common']
---
import kbnCoreUserProfileCommonObj from './kbn_core_user_profile_common.devdocs.json';
diff --git a/api_docs/kbn_core_user_profile_server.mdx b/api_docs/kbn_core_user_profile_server.mdx
index 56d2019bb00fb..830c6124ca291 100644
--- a/api_docs/kbn_core_user_profile_server.mdx
+++ b/api_docs/kbn_core_user_profile_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-profile-server
title: "@kbn/core-user-profile-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-user-profile-server plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-profile-server']
---
import kbnCoreUserProfileServerObj from './kbn_core_user_profile_server.devdocs.json';
diff --git a/api_docs/kbn_core_user_profile_server_internal.mdx b/api_docs/kbn_core_user_profile_server_internal.mdx
index fd86f0bf580db..0365e494d8f40 100644
--- a/api_docs/kbn_core_user_profile_server_internal.mdx
+++ b/api_docs/kbn_core_user_profile_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-profile-server-internal
title: "@kbn/core-user-profile-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-user-profile-server-internal plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-profile-server-internal']
---
import kbnCoreUserProfileServerInternalObj from './kbn_core_user_profile_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_user_profile_server_mocks.mdx b/api_docs/kbn_core_user_profile_server_mocks.mdx
index 829aec5a016c5..2c66e326b4004 100644
--- a/api_docs/kbn_core_user_profile_server_mocks.mdx
+++ b/api_docs/kbn_core_user_profile_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-profile-server-mocks
title: "@kbn/core-user-profile-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-user-profile-server-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-profile-server-mocks']
---
import kbnCoreUserProfileServerMocksObj from './kbn_core_user_profile_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_user_settings_server.mdx b/api_docs/kbn_core_user_settings_server.mdx
index e4f500eb830f0..6fa7da61e2650 100644
--- a/api_docs/kbn_core_user_settings_server.mdx
+++ b/api_docs/kbn_core_user_settings_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-settings-server
title: "@kbn/core-user-settings-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-user-settings-server plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-settings-server']
---
import kbnCoreUserSettingsServerObj from './kbn_core_user_settings_server.devdocs.json';
diff --git a/api_docs/kbn_core_user_settings_server_mocks.mdx b/api_docs/kbn_core_user_settings_server_mocks.mdx
index 2369c631af911..273abd0348c57 100644
--- a/api_docs/kbn_core_user_settings_server_mocks.mdx
+++ b/api_docs/kbn_core_user_settings_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-settings-server-mocks
title: "@kbn/core-user-settings-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-user-settings-server-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 1db6a6b62a377..fadcde462e683 100644
--- a/api_docs/kbn_crypto.mdx
+++ b/api_docs/kbn_crypto.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-crypto
title: "@kbn/crypto"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/crypto plugin
-date: 2024-06-03
+date: 2024-06-04
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 7a3418524b837..84637b4fbaa32 100644
--- a/api_docs/kbn_crypto_browser.mdx
+++ b/api_docs/kbn_crypto_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-crypto-browser
title: "@kbn/crypto-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/crypto-browser plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/crypto-browser']
---
import kbnCryptoBrowserObj from './kbn_crypto_browser.devdocs.json';
diff --git a/api_docs/kbn_custom_icons.mdx b/api_docs/kbn_custom_icons.mdx
index 539c2914d34e5..4e9bb326bf1e9 100644
--- a/api_docs/kbn_custom_icons.mdx
+++ b/api_docs/kbn_custom_icons.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-custom-icons
title: "@kbn/custom-icons"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/custom-icons plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/custom-icons']
---
import kbnCustomIconsObj from './kbn_custom_icons.devdocs.json';
diff --git a/api_docs/kbn_custom_integrations.mdx b/api_docs/kbn_custom_integrations.mdx
index b9d27a0063b01..5127b22098660 100644
--- a/api_docs/kbn_custom_integrations.mdx
+++ b/api_docs/kbn_custom_integrations.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-custom-integrations
title: "@kbn/custom-integrations"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/custom-integrations plugin
-date: 2024-06-03
+date: 2024-06-04
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 07f135f565560..52e768f06465c 100644
--- a/api_docs/kbn_cypress_config.mdx
+++ b/api_docs/kbn_cypress_config.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cypress-config
title: "@kbn/cypress-config"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/cypress-config plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cypress-config']
---
import kbnCypressConfigObj from './kbn_cypress_config.devdocs.json';
diff --git a/api_docs/kbn_data_forge.mdx b/api_docs/kbn_data_forge.mdx
index aab3ecc4e5e2a..74cb9faae50fa 100644
--- a/api_docs/kbn_data_forge.mdx
+++ b/api_docs/kbn_data_forge.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-data-forge
title: "@kbn/data-forge"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/data-forge plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/data-forge']
---
import kbnDataForgeObj from './kbn_data_forge.devdocs.json';
diff --git a/api_docs/kbn_data_service.mdx b/api_docs/kbn_data_service.mdx
index e3b6d3edce908..2162245eca191 100644
--- a/api_docs/kbn_data_service.mdx
+++ b/api_docs/kbn_data_service.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-data-service
title: "@kbn/data-service"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/data-service plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/data-service']
---
import kbnDataServiceObj from './kbn_data_service.devdocs.json';
diff --git a/api_docs/kbn_data_stream_adapter.mdx b/api_docs/kbn_data_stream_adapter.mdx
index fef505f91fe68..08ffa6ac374bc 100644
--- a/api_docs/kbn_data_stream_adapter.mdx
+++ b/api_docs/kbn_data_stream_adapter.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-data-stream-adapter
title: "@kbn/data-stream-adapter"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/data-stream-adapter plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/data-stream-adapter']
---
import kbnDataStreamAdapterObj from './kbn_data_stream_adapter.devdocs.json';
diff --git a/api_docs/kbn_data_view_utils.mdx b/api_docs/kbn_data_view_utils.mdx
index 837582422db1f..c4d8c10fe8ab8 100644
--- a/api_docs/kbn_data_view_utils.mdx
+++ b/api_docs/kbn_data_view_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-data-view-utils
title: "@kbn/data-view-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/data-view-utils plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/data-view-utils']
---
import kbnDataViewUtilsObj from './kbn_data_view_utils.devdocs.json';
diff --git a/api_docs/kbn_datemath.mdx b/api_docs/kbn_datemath.mdx
index 4316797d5d865..3fd554a0323a9 100644
--- a/api_docs/kbn_datemath.mdx
+++ b/api_docs/kbn_datemath.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-datemath
title: "@kbn/datemath"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/datemath plugin
-date: 2024-06-03
+date: 2024-06-04
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 b71511523ced1..b6b449deea51d 100644
--- a/api_docs/kbn_deeplinks_analytics.mdx
+++ b/api_docs/kbn_deeplinks_analytics.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-analytics
title: "@kbn/deeplinks-analytics"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/deeplinks-analytics plugin
-date: 2024-06-03
+date: 2024-06-04
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 da8f0f296e431..530f8ee72c11e 100644
--- a/api_docs/kbn_deeplinks_devtools.mdx
+++ b/api_docs/kbn_deeplinks_devtools.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-devtools
title: "@kbn/deeplinks-devtools"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/deeplinks-devtools plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-devtools']
---
import kbnDeeplinksDevtoolsObj from './kbn_deeplinks_devtools.devdocs.json';
diff --git a/api_docs/kbn_deeplinks_fleet.mdx b/api_docs/kbn_deeplinks_fleet.mdx
index ac362e30c438b..99c5766ec5839 100644
--- a/api_docs/kbn_deeplinks_fleet.mdx
+++ b/api_docs/kbn_deeplinks_fleet.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-fleet
title: "@kbn/deeplinks-fleet"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/deeplinks-fleet plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-fleet']
---
import kbnDeeplinksFleetObj from './kbn_deeplinks_fleet.devdocs.json';
diff --git a/api_docs/kbn_deeplinks_management.mdx b/api_docs/kbn_deeplinks_management.mdx
index 4259f7516c7bd..0f06995ecca4c 100644
--- a/api_docs/kbn_deeplinks_management.mdx
+++ b/api_docs/kbn_deeplinks_management.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-management
title: "@kbn/deeplinks-management"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/deeplinks-management plugin
-date: 2024-06-03
+date: 2024-06-04
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 6e38dfa2ec33b..4b7774f32c091 100644
--- a/api_docs/kbn_deeplinks_ml.mdx
+++ b/api_docs/kbn_deeplinks_ml.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-ml
title: "@kbn/deeplinks-ml"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/deeplinks-ml plugin
-date: 2024-06-03
+date: 2024-06-04
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 7a58b4fe800f8..96954980d80d5 100644
--- a/api_docs/kbn_deeplinks_observability.mdx
+++ b/api_docs/kbn_deeplinks_observability.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-observability
title: "@kbn/deeplinks-observability"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/deeplinks-observability plugin
-date: 2024-06-03
+date: 2024-06-04
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 d04b9e2880e17..8ec4fd3c46e1b 100644
--- a/api_docs/kbn_deeplinks_search.mdx
+++ b/api_docs/kbn_deeplinks_search.mdx
@@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-search
title: "@kbn/deeplinks-search"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/deeplinks-search plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-search']
---
import kbnDeeplinksSearchObj from './kbn_deeplinks_search.devdocs.json';
-Contact [@elastic/enterprise-search-frontend](https://github.com/orgs/elastic/teams/enterprise-search-frontend) for questions regarding this plugin.
+Contact [@elastic/search-kibana](https://github.com/orgs/elastic/teams/search-kibana) for questions regarding this plugin.
**Code health stats**
diff --git a/api_docs/kbn_deeplinks_security.mdx b/api_docs/kbn_deeplinks_security.mdx
index 5d092ae2591a8..a2db6da2c92d5 100644
--- a/api_docs/kbn_deeplinks_security.mdx
+++ b/api_docs/kbn_deeplinks_security.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-security
title: "@kbn/deeplinks-security"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/deeplinks-security plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-security']
---
import kbnDeeplinksSecurityObj from './kbn_deeplinks_security.devdocs.json';
diff --git a/api_docs/kbn_deeplinks_shared.mdx b/api_docs/kbn_deeplinks_shared.mdx
index 890e8a7911958..2f957b2f3a61d 100644
--- a/api_docs/kbn_deeplinks_shared.mdx
+++ b/api_docs/kbn_deeplinks_shared.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-shared
title: "@kbn/deeplinks-shared"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/deeplinks-shared plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-shared']
---
import kbnDeeplinksSharedObj from './kbn_deeplinks_shared.devdocs.json';
diff --git a/api_docs/kbn_default_nav_analytics.mdx b/api_docs/kbn_default_nav_analytics.mdx
index f6be33b3d48ab..c8baa779ef6d9 100644
--- a/api_docs/kbn_default_nav_analytics.mdx
+++ b/api_docs/kbn_default_nav_analytics.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-default-nav-analytics
title: "@kbn/default-nav-analytics"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/default-nav-analytics plugin
-date: 2024-06-03
+date: 2024-06-04
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 45579116e0a73..d39b7eb45d612 100644
--- a/api_docs/kbn_default_nav_devtools.mdx
+++ b/api_docs/kbn_default_nav_devtools.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-default-nav-devtools
title: "@kbn/default-nav-devtools"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/default-nav-devtools plugin
-date: 2024-06-03
+date: 2024-06-04
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 174f81d391cb6..1c694aacb8843 100644
--- a/api_docs/kbn_default_nav_management.mdx
+++ b/api_docs/kbn_default_nav_management.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-default-nav-management
title: "@kbn/default-nav-management"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/default-nav-management plugin
-date: 2024-06-03
+date: 2024-06-04
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 a709569ae47a7..306ed0162c087 100644
--- a/api_docs/kbn_default_nav_ml.mdx
+++ b/api_docs/kbn_default_nav_ml.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-default-nav-ml
title: "@kbn/default-nav-ml"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/default-nav-ml plugin
-date: 2024-06-03
+date: 2024-06-04
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 af76dd0cd9bba..b5271eeb5805c 100644
--- a/api_docs/kbn_dev_cli_errors.mdx
+++ b/api_docs/kbn_dev_cli_errors.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-cli-errors
title: "@kbn/dev-cli-errors"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/dev-cli-errors plugin
-date: 2024-06-03
+date: 2024-06-04
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 8f036a80c8908..664633c8d97ff 100644
--- a/api_docs/kbn_dev_cli_runner.mdx
+++ b/api_docs/kbn_dev_cli_runner.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-cli-runner
title: "@kbn/dev-cli-runner"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/dev-cli-runner plugin
-date: 2024-06-03
+date: 2024-06-04
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 d26d7165cb8d1..c129ceabeedf4 100644
--- a/api_docs/kbn_dev_proc_runner.mdx
+++ b/api_docs/kbn_dev_proc_runner.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-proc-runner
title: "@kbn/dev-proc-runner"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/dev-proc-runner plugin
-date: 2024-06-03
+date: 2024-06-04
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 155d11ba42b1e..ee0a22c9f92a8 100644
--- a/api_docs/kbn_dev_utils.mdx
+++ b/api_docs/kbn_dev_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-utils
title: "@kbn/dev-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/dev-utils plugin
-date: 2024-06-03
+date: 2024-06-04
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 911383dc4f41f..92821eb905ae4 100644
--- a/api_docs/kbn_discover_utils.mdx
+++ b/api_docs/kbn_discover_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-discover-utils
title: "@kbn/discover-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/discover-utils plugin
-date: 2024-06-03
+date: 2024-06-04
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 55b746a1c3994..f3d7cdb44191a 100644
--- a/api_docs/kbn_doc_links.mdx
+++ b/api_docs/kbn_doc_links.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-doc-links
title: "@kbn/doc-links"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/doc-links plugin
-date: 2024-06-03
+date: 2024-06-04
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 53ff4339327fe..e02f4404dd1d0 100644
--- a/api_docs/kbn_docs_utils.mdx
+++ b/api_docs/kbn_docs_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-docs-utils
title: "@kbn/docs-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/docs-utils plugin
-date: 2024-06-03
+date: 2024-06-04
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 48754d3ff4b19..09c6e37a0c796 100644
--- a/api_docs/kbn_dom_drag_drop.mdx
+++ b/api_docs/kbn_dom_drag_drop.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dom-drag-drop
title: "@kbn/dom-drag-drop"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/dom-drag-drop plugin
-date: 2024-06-03
+date: 2024-06-04
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 7a915ebde403d..372d1f286746b 100644
--- a/api_docs/kbn_ebt_tools.mdx
+++ b/api_docs/kbn_ebt_tools.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ebt-tools
title: "@kbn/ebt-tools"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ebt-tools plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ebt-tools']
---
import kbnEbtToolsObj from './kbn_ebt_tools.devdocs.json';
diff --git a/api_docs/kbn_ecs_data_quality_dashboard.mdx b/api_docs/kbn_ecs_data_quality_dashboard.mdx
index 63d9690d64fc1..54847fe2c10d2 100644
--- a/api_docs/kbn_ecs_data_quality_dashboard.mdx
+++ b/api_docs/kbn_ecs_data_quality_dashboard.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ecs-data-quality-dashboard
title: "@kbn/ecs-data-quality-dashboard"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ecs-data-quality-dashboard plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ecs-data-quality-dashboard']
---
import kbnEcsDataQualityDashboardObj from './kbn_ecs_data_quality_dashboard.devdocs.json';
diff --git a/api_docs/kbn_elastic_agent_utils.mdx b/api_docs/kbn_elastic_agent_utils.mdx
index 90423a6da34fa..be7a91548bae5 100644
--- a/api_docs/kbn_elastic_agent_utils.mdx
+++ b/api_docs/kbn_elastic_agent_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-elastic-agent-utils
title: "@kbn/elastic-agent-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/elastic-agent-utils plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/elastic-agent-utils']
---
import kbnElasticAgentUtilsObj from './kbn_elastic_agent_utils.devdocs.json';
diff --git a/api_docs/kbn_elastic_assistant.mdx b/api_docs/kbn_elastic_assistant.mdx
index c5f8a1e264fcb..ed3894dff4503 100644
--- a/api_docs/kbn_elastic_assistant.mdx
+++ b/api_docs/kbn_elastic_assistant.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-elastic-assistant
title: "@kbn/elastic-assistant"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/elastic-assistant plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/elastic-assistant']
---
import kbnElasticAssistantObj from './kbn_elastic_assistant.devdocs.json';
diff --git a/api_docs/kbn_elastic_assistant_common.mdx b/api_docs/kbn_elastic_assistant_common.mdx
index 832242eb74cfe..1edc9992c0523 100644
--- a/api_docs/kbn_elastic_assistant_common.mdx
+++ b/api_docs/kbn_elastic_assistant_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-elastic-assistant-common
title: "@kbn/elastic-assistant-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/elastic-assistant-common plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/elastic-assistant-common']
---
import kbnElasticAssistantCommonObj from './kbn_elastic_assistant_common.devdocs.json';
diff --git a/api_docs/kbn_entities_schema.mdx b/api_docs/kbn_entities_schema.mdx
index 0061adf4dc6ca..efb97a4a1ae0e 100644
--- a/api_docs/kbn_entities_schema.mdx
+++ b/api_docs/kbn_entities_schema.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-entities-schema
title: "@kbn/entities-schema"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/entities-schema plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/entities-schema']
---
import kbnEntitiesSchemaObj from './kbn_entities_schema.devdocs.json';
diff --git a/api_docs/kbn_es.mdx b/api_docs/kbn_es.mdx
index ece25b33b12a8..44d7ab7f8c53a 100644
--- a/api_docs/kbn_es.mdx
+++ b/api_docs/kbn_es.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es
title: "@kbn/es"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/es plugin
-date: 2024-06-03
+date: 2024-06-04
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 11d7ef26e44f6..42a1944b87a3e 100644
--- a/api_docs/kbn_es_archiver.mdx
+++ b/api_docs/kbn_es_archiver.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-archiver
title: "@kbn/es-archiver"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/es-archiver plugin
-date: 2024-06-03
+date: 2024-06-04
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 390baed10a5aa..c81c0be064094 100644
--- a/api_docs/kbn_es_errors.mdx
+++ b/api_docs/kbn_es_errors.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-errors
title: "@kbn/es-errors"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/es-errors plugin
-date: 2024-06-03
+date: 2024-06-04
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 a4665cef5408a..ba6c59e29991e 100644
--- a/api_docs/kbn_es_query.mdx
+++ b/api_docs/kbn_es_query.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-query
title: "@kbn/es-query"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/es-query plugin
-date: 2024-06-03
+date: 2024-06-04
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 e9e0bed1ece7e..4ea5f5cc026ad 100644
--- a/api_docs/kbn_es_types.mdx
+++ b/api_docs/kbn_es_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-types
title: "@kbn/es-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/es-types plugin
-date: 2024-06-03
+date: 2024-06-04
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 b2f9fb0b907fc..71138c91ad267 100644
--- a/api_docs/kbn_eslint_plugin_imports.mdx
+++ b/api_docs/kbn_eslint_plugin_imports.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-eslint-plugin-imports
title: "@kbn/eslint-plugin-imports"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/eslint-plugin-imports plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/eslint-plugin-imports']
---
import kbnEslintPluginImportsObj from './kbn_eslint_plugin_imports.devdocs.json';
diff --git a/api_docs/kbn_esql_ast.mdx b/api_docs/kbn_esql_ast.mdx
index 49d1888e05dce..b23947085fe94 100644
--- a/api_docs/kbn_esql_ast.mdx
+++ b/api_docs/kbn_esql_ast.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-esql-ast
title: "@kbn/esql-ast"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/esql-ast plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/esql-ast']
---
import kbnEsqlAstObj from './kbn_esql_ast.devdocs.json';
diff --git a/api_docs/kbn_esql_utils.mdx b/api_docs/kbn_esql_utils.mdx
index 4f4ede0ad66c2..e0ec156decedb 100644
--- a/api_docs/kbn_esql_utils.mdx
+++ b/api_docs/kbn_esql_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-esql-utils
title: "@kbn/esql-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/esql-utils plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/esql-utils']
---
import kbnEsqlUtilsObj from './kbn_esql_utils.devdocs.json';
diff --git a/api_docs/kbn_esql_validation_autocomplete.mdx b/api_docs/kbn_esql_validation_autocomplete.mdx
index 281a5568c7f57..3c85a79ce5d37 100644
--- a/api_docs/kbn_esql_validation_autocomplete.mdx
+++ b/api_docs/kbn_esql_validation_autocomplete.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-esql-validation-autocomplete
title: "@kbn/esql-validation-autocomplete"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/esql-validation-autocomplete plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/esql-validation-autocomplete']
---
import kbnEsqlValidationAutocompleteObj from './kbn_esql_validation_autocomplete.devdocs.json';
diff --git a/api_docs/kbn_event_annotation_common.mdx b/api_docs/kbn_event_annotation_common.mdx
index f1419332c03aa..3b7448a7bc3e1 100644
--- a/api_docs/kbn_event_annotation_common.mdx
+++ b/api_docs/kbn_event_annotation_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-event-annotation-common
title: "@kbn/event-annotation-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/event-annotation-common plugin
-date: 2024-06-03
+date: 2024-06-04
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 597fa36145cb5..8ce9c56e9c982 100644
--- a/api_docs/kbn_event_annotation_components.mdx
+++ b/api_docs/kbn_event_annotation_components.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-event-annotation-components
title: "@kbn/event-annotation-components"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/event-annotation-components plugin
-date: 2024-06-03
+date: 2024-06-04
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 e8ba196ce6219..636ac4ac178d3 100644
--- a/api_docs/kbn_expandable_flyout.mdx
+++ b/api_docs/kbn_expandable_flyout.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-expandable-flyout
title: "@kbn/expandable-flyout"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/expandable-flyout plugin
-date: 2024-06-03
+date: 2024-06-04
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 28c91e66c7c0d..85e347b8186bc 100644
--- a/api_docs/kbn_field_types.mdx
+++ b/api_docs/kbn_field_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-field-types
title: "@kbn/field-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/field-types plugin
-date: 2024-06-03
+date: 2024-06-04
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 5460b80ca6741..d943a69f53937 100644
--- a/api_docs/kbn_field_utils.mdx
+++ b/api_docs/kbn_field_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-field-utils
title: "@kbn/field-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/field-utils plugin
-date: 2024-06-03
+date: 2024-06-04
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 21a6efdc88d69..6e40763ededb3 100644
--- a/api_docs/kbn_find_used_node_modules.mdx
+++ b/api_docs/kbn_find_used_node_modules.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-find-used-node-modules
title: "@kbn/find-used-node-modules"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/find-used-node-modules plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/find-used-node-modules']
---
import kbnFindUsedNodeModulesObj from './kbn_find_used_node_modules.devdocs.json';
diff --git a/api_docs/kbn_formatters.mdx b/api_docs/kbn_formatters.mdx
index 823f089aeacf8..42970892eaf54 100644
--- a/api_docs/kbn_formatters.mdx
+++ b/api_docs/kbn_formatters.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-formatters
title: "@kbn/formatters"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/formatters plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/formatters']
---
import kbnFormattersObj from './kbn_formatters.devdocs.json';
diff --git a/api_docs/kbn_ftr_common_functional_services.mdx b/api_docs/kbn_ftr_common_functional_services.mdx
index 8bbca7dd50d10..b078882fffeaa 100644
--- a/api_docs/kbn_ftr_common_functional_services.mdx
+++ b/api_docs/kbn_ftr_common_functional_services.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ftr-common-functional-services
title: "@kbn/ftr-common-functional-services"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ftr-common-functional-services plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ftr-common-functional-services']
---
import kbnFtrCommonFunctionalServicesObj from './kbn_ftr_common_functional_services.devdocs.json';
diff --git a/api_docs/kbn_ftr_common_functional_ui_services.mdx b/api_docs/kbn_ftr_common_functional_ui_services.mdx
index c0bf6cd9d0bb0..8c4976201b73b 100644
--- a/api_docs/kbn_ftr_common_functional_ui_services.mdx
+++ b/api_docs/kbn_ftr_common_functional_ui_services.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ftr-common-functional-ui-services
title: "@kbn/ftr-common-functional-ui-services"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ftr-common-functional-ui-services plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ftr-common-functional-ui-services']
---
import kbnFtrCommonFunctionalUiServicesObj from './kbn_ftr_common_functional_ui_services.devdocs.json';
diff --git a/api_docs/kbn_generate.mdx b/api_docs/kbn_generate.mdx
index 06d4ad314ac21..70072a31e504c 100644
--- a/api_docs/kbn_generate.mdx
+++ b/api_docs/kbn_generate.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate
title: "@kbn/generate"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/generate plugin
-date: 2024-06-03
+date: 2024-06-04
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 7f7a18213ee35..71a5df1e80681 100644
--- a/api_docs/kbn_generate_console_definitions.mdx
+++ b/api_docs/kbn_generate_console_definitions.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate-console-definitions
title: "@kbn/generate-console-definitions"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/generate-console-definitions plugin
-date: 2024-06-03
+date: 2024-06-04
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 3491480542503..ac1d795947570 100644
--- a/api_docs/kbn_generate_csv.mdx
+++ b/api_docs/kbn_generate_csv.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate-csv
title: "@kbn/generate-csv"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/generate-csv plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate-csv']
---
import kbnGenerateCsvObj from './kbn_generate_csv.devdocs.json';
diff --git a/api_docs/kbn_grouping.mdx b/api_docs/kbn_grouping.mdx
index 2d9c8ba2eb93b..93a06d168f2cd 100644
--- a/api_docs/kbn_grouping.mdx
+++ b/api_docs/kbn_grouping.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-grouping
title: "@kbn/grouping"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/grouping plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/grouping']
---
import kbnGroupingObj from './kbn_grouping.devdocs.json';
diff --git a/api_docs/kbn_guided_onboarding.mdx b/api_docs/kbn_guided_onboarding.mdx
index 43221f1c967da..de4d567addd6c 100644
--- a/api_docs/kbn_guided_onboarding.mdx
+++ b/api_docs/kbn_guided_onboarding.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-guided-onboarding
title: "@kbn/guided-onboarding"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/guided-onboarding plugin
-date: 2024-06-03
+date: 2024-06-04
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 1164f06185947..fdeb9dd386be5 100644
--- a/api_docs/kbn_handlebars.mdx
+++ b/api_docs/kbn_handlebars.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-handlebars
title: "@kbn/handlebars"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/handlebars plugin
-date: 2024-06-03
+date: 2024-06-04
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 febe1c880e943..75dcf1df12c2e 100644
--- a/api_docs/kbn_hapi_mocks.mdx
+++ b/api_docs/kbn_hapi_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-hapi-mocks
title: "@kbn/hapi-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/hapi-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 f9c08c837f5f0..c702583f73068 100644
--- a/api_docs/kbn_health_gateway_server.mdx
+++ b/api_docs/kbn_health_gateway_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-health-gateway-server
title: "@kbn/health-gateway-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/health-gateway-server plugin
-date: 2024-06-03
+date: 2024-06-04
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 ffa7d4036c6ef..3f2ada6b4f069 100644
--- a/api_docs/kbn_home_sample_data_card.mdx
+++ b/api_docs/kbn_home_sample_data_card.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-home-sample-data-card
title: "@kbn/home-sample-data-card"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/home-sample-data-card plugin
-date: 2024-06-03
+date: 2024-06-04
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 0f185eae7bfd4..5c88d8956f87b 100644
--- a/api_docs/kbn_home_sample_data_tab.mdx
+++ b/api_docs/kbn_home_sample_data_tab.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-home-sample-data-tab
title: "@kbn/home-sample-data-tab"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/home-sample-data-tab plugin
-date: 2024-06-03
+date: 2024-06-04
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 3bef194b972df..243e0940f4ea1 100644
--- a/api_docs/kbn_i18n.mdx
+++ b/api_docs/kbn_i18n.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-i18n
title: "@kbn/i18n"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/i18n plugin
-date: 2024-06-03
+date: 2024-06-04
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 48b2fe271cfc9..7df61de04a245 100644
--- a/api_docs/kbn_i18n_react.mdx
+++ b/api_docs/kbn_i18n_react.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-i18n-react
title: "@kbn/i18n-react"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/i18n-react plugin
-date: 2024-06-03
+date: 2024-06-04
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 09953fa571606..c1b5c3ef7fb6a 100644
--- a/api_docs/kbn_import_resolver.mdx
+++ b/api_docs/kbn_import_resolver.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-import-resolver
title: "@kbn/import-resolver"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/import-resolver plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/import-resolver']
---
import kbnImportResolverObj from './kbn_import_resolver.devdocs.json';
diff --git a/api_docs/kbn_index_management.mdx b/api_docs/kbn_index_management.mdx
index ef694ed87d851..797f6d151003a 100644
--- a/api_docs/kbn_index_management.mdx
+++ b/api_docs/kbn_index_management.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-index-management
title: "@kbn/index-management"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/index-management plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/index-management']
---
import kbnIndexManagementObj from './kbn_index_management.devdocs.json';
diff --git a/api_docs/kbn_inference_integration_flyout.mdx b/api_docs/kbn_inference_integration_flyout.mdx
index 25b6016a29b03..e3326c573b8c1 100644
--- a/api_docs/kbn_inference_integration_flyout.mdx
+++ b/api_docs/kbn_inference_integration_flyout.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-inference_integration_flyout
title: "@kbn/inference_integration_flyout"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/inference_integration_flyout plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/inference_integration_flyout']
---
import kbnInferenceIntegrationFlyoutObj from './kbn_inference_integration_flyout.devdocs.json';
diff --git a/api_docs/kbn_infra_forge.mdx b/api_docs/kbn_infra_forge.mdx
index 92a62a1fc85dd..2617649cdaff7 100644
--- a/api_docs/kbn_infra_forge.mdx
+++ b/api_docs/kbn_infra_forge.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-infra-forge
title: "@kbn/infra-forge"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/infra-forge plugin
-date: 2024-06-03
+date: 2024-06-04
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 fccc06371ceab..eff62687bc1cd 100644
--- a/api_docs/kbn_interpreter.mdx
+++ b/api_docs/kbn_interpreter.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-interpreter
title: "@kbn/interpreter"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/interpreter plugin
-date: 2024-06-03
+date: 2024-06-04
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 4e17e272c355c..1565102572ce0 100644
--- a/api_docs/kbn_io_ts_utils.mdx
+++ b/api_docs/kbn_io_ts_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-io-ts-utils
title: "@kbn/io-ts-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/io-ts-utils plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/io-ts-utils']
---
import kbnIoTsUtilsObj from './kbn_io_ts_utils.devdocs.json';
diff --git a/api_docs/kbn_ipynb.mdx b/api_docs/kbn_ipynb.mdx
index a695b483302c8..a85f9f9272bb7 100644
--- a/api_docs/kbn_ipynb.mdx
+++ b/api_docs/kbn_ipynb.mdx
@@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-ipynb
title: "@kbn/ipynb"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ipynb plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ipynb']
---
import kbnIpynbObj from './kbn_ipynb.devdocs.json';
-Contact [@elastic/enterprise-search-frontend](https://github.com/orgs/elastic/teams/enterprise-search-frontend) for questions regarding this plugin.
+Contact [@elastic/search-kibana](https://github.com/orgs/elastic/teams/search-kibana) for questions regarding this plugin.
**Code health stats**
diff --git a/api_docs/kbn_jest_serializers.mdx b/api_docs/kbn_jest_serializers.mdx
index c79e560bed3f2..574a279756c37 100644
--- a/api_docs/kbn_jest_serializers.mdx
+++ b/api_docs/kbn_jest_serializers.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-jest-serializers
title: "@kbn/jest-serializers"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/jest-serializers plugin
-date: 2024-06-03
+date: 2024-06-04
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 71e2a906e6bb9..7b08d05929d24 100644
--- a/api_docs/kbn_journeys.mdx
+++ b/api_docs/kbn_journeys.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-journeys
title: "@kbn/journeys"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/journeys plugin
-date: 2024-06-03
+date: 2024-06-04
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 a8edb7e008cca..5cbb10e387d0a 100644
--- a/api_docs/kbn_json_ast.mdx
+++ b/api_docs/kbn_json_ast.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-json-ast
title: "@kbn/json-ast"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/json-ast plugin
-date: 2024-06-03
+date: 2024-06-04
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 7027be8607194..854b7fba23146 100644
--- a/api_docs/kbn_kibana_manifest_schema.mdx
+++ b/api_docs/kbn_kibana_manifest_schema.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-kibana-manifest-schema
title: "@kbn/kibana-manifest-schema"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/kibana-manifest-schema plugin
-date: 2024-06-03
+date: 2024-06-04
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 a440ae655a6f7..0a5ce2b816446 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: 2024-06-03
+date: 2024-06-04
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 04aca7106f7cb..c05e6db7262aa 100644
--- a/api_docs/kbn_lens_embeddable_utils.mdx
+++ b/api_docs/kbn_lens_embeddable_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-lens-embeddable-utils
title: "@kbn/lens-embeddable-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/lens-embeddable-utils plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/lens-embeddable-utils']
---
import kbnLensEmbeddableUtilsObj from './kbn_lens_embeddable_utils.devdocs.json';
diff --git a/api_docs/kbn_lens_formula_docs.mdx b/api_docs/kbn_lens_formula_docs.mdx
index 77b82c1496df4..210079631146e 100644
--- a/api_docs/kbn_lens_formula_docs.mdx
+++ b/api_docs/kbn_lens_formula_docs.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-lens-formula-docs
title: "@kbn/lens-formula-docs"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/lens-formula-docs plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/lens-formula-docs']
---
import kbnLensFormulaDocsObj from './kbn_lens_formula_docs.devdocs.json';
diff --git a/api_docs/kbn_logging.mdx b/api_docs/kbn_logging.mdx
index 1e02a84e1a1e4..653d4991ae495 100644
--- a/api_docs/kbn_logging.mdx
+++ b/api_docs/kbn_logging.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-logging
title: "@kbn/logging"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/logging plugin
-date: 2024-06-03
+date: 2024-06-04
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 a2953e89d66fc..99b4d9c9598ae 100644
--- a/api_docs/kbn_logging_mocks.mdx
+++ b/api_docs/kbn_logging_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-logging-mocks
title: "@kbn/logging-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/logging-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/logging-mocks']
---
import kbnLoggingMocksObj from './kbn_logging_mocks.devdocs.json';
diff --git a/api_docs/kbn_managed_content_badge.mdx b/api_docs/kbn_managed_content_badge.mdx
index e212b7e4fca9a..c7ae4fcfceef2 100644
--- a/api_docs/kbn_managed_content_badge.mdx
+++ b/api_docs/kbn_managed_content_badge.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-managed-content-badge
title: "@kbn/managed-content-badge"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/managed-content-badge plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/managed-content-badge']
---
import kbnManagedContentBadgeObj from './kbn_managed_content_badge.devdocs.json';
diff --git a/api_docs/kbn_managed_vscode_config.mdx b/api_docs/kbn_managed_vscode_config.mdx
index d4451e466a92a..903130838a219 100644
--- a/api_docs/kbn_managed_vscode_config.mdx
+++ b/api_docs/kbn_managed_vscode_config.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-managed-vscode-config
title: "@kbn/managed-vscode-config"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/managed-vscode-config plugin
-date: 2024-06-03
+date: 2024-06-04
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 573950cff1aa1..44863aa603d32 100644
--- a/api_docs/kbn_management_cards_navigation.mdx
+++ b/api_docs/kbn_management_cards_navigation.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-cards-navigation
title: "@kbn/management-cards-navigation"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/management-cards-navigation plugin
-date: 2024-06-03
+date: 2024-06-04
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 b33704ad22790..354164cc36ab8 100644
--- a/api_docs/kbn_management_settings_application.mdx
+++ b/api_docs/kbn_management_settings_application.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-application
title: "@kbn/management-settings-application"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/management-settings-application plugin
-date: 2024-06-03
+date: 2024-06-04
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 570ea881f9d4e..715f10ef5f9f2 100644
--- a/api_docs/kbn_management_settings_components_field_category.mdx
+++ b/api_docs/kbn_management_settings_components_field_category.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-components-field-category
title: "@kbn/management-settings-components-field-category"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/management-settings-components-field-category plugin
-date: 2024-06-03
+date: 2024-06-04
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 93ab8aaeb1da2..486257ce26f26 100644
--- a/api_docs/kbn_management_settings_components_field_input.mdx
+++ b/api_docs/kbn_management_settings_components_field_input.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-components-field-input
title: "@kbn/management-settings-components-field-input"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/management-settings-components-field-input plugin
-date: 2024-06-03
+date: 2024-06-04
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 885ea55f39bee..592ebcb45bc78 100644
--- a/api_docs/kbn_management_settings_components_field_row.mdx
+++ b/api_docs/kbn_management_settings_components_field_row.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-components-field-row
title: "@kbn/management-settings-components-field-row"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/management-settings-components-field-row plugin
-date: 2024-06-03
+date: 2024-06-04
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 d94f318a0ceeb..c2ada2fde336b 100644
--- a/api_docs/kbn_management_settings_components_form.mdx
+++ b/api_docs/kbn_management_settings_components_form.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-components-form
title: "@kbn/management-settings-components-form"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/management-settings-components-form plugin
-date: 2024-06-03
+date: 2024-06-04
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 f8326486ed1e0..4c04eb4916b56 100644
--- a/api_docs/kbn_management_settings_field_definition.mdx
+++ b/api_docs/kbn_management_settings_field_definition.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-field-definition
title: "@kbn/management-settings-field-definition"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/management-settings-field-definition plugin
-date: 2024-06-03
+date: 2024-06-04
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 6031645d67237..6f85622c5f5c4 100644
--- a/api_docs/kbn_management_settings_ids.mdx
+++ b/api_docs/kbn_management_settings_ids.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-ids
title: "@kbn/management-settings-ids"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/management-settings-ids plugin
-date: 2024-06-03
+date: 2024-06-04
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 12d6d86657bc0..37e314eb44b38 100644
--- a/api_docs/kbn_management_settings_section_registry.mdx
+++ b/api_docs/kbn_management_settings_section_registry.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-section-registry
title: "@kbn/management-settings-section-registry"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/management-settings-section-registry plugin
-date: 2024-06-03
+date: 2024-06-04
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 7d8b54afd936b..b88cd0435f533 100644
--- a/api_docs/kbn_management_settings_types.mdx
+++ b/api_docs/kbn_management_settings_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-types
title: "@kbn/management-settings-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/management-settings-types plugin
-date: 2024-06-03
+date: 2024-06-04
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 b71b73f173ca5..a04fb90342dac 100644
--- a/api_docs/kbn_management_settings_utilities.mdx
+++ b/api_docs/kbn_management_settings_utilities.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-utilities
title: "@kbn/management-settings-utilities"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/management-settings-utilities plugin
-date: 2024-06-03
+date: 2024-06-04
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 87b4bbfc8f289..b753e3f117b77 100644
--- a/api_docs/kbn_management_storybook_config.mdx
+++ b/api_docs/kbn_management_storybook_config.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-storybook-config
title: "@kbn/management-storybook-config"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/management-storybook-config plugin
-date: 2024-06-03
+date: 2024-06-04
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 0bfae36b39028..6dd5aadd3c274 100644
--- a/api_docs/kbn_mapbox_gl.mdx
+++ b/api_docs/kbn_mapbox_gl.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-mapbox-gl
title: "@kbn/mapbox-gl"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/mapbox-gl plugin
-date: 2024-06-03
+date: 2024-06-04
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 afc579a33dc7c..ba89747d7c753 100644
--- a/api_docs/kbn_maps_vector_tile_utils.mdx
+++ b/api_docs/kbn_maps_vector_tile_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-maps-vector-tile-utils
title: "@kbn/maps-vector-tile-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/maps-vector-tile-utils plugin
-date: 2024-06-03
+date: 2024-06-04
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 05191e2ae3e1b..14a05b2bcbb9a 100644
--- a/api_docs/kbn_ml_agg_utils.mdx
+++ b/api_docs/kbn_ml_agg_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-agg-utils
title: "@kbn/ml-agg-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-agg-utils plugin
-date: 2024-06-03
+date: 2024-06-04
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 0d887da8cb1f0..e10d7e099180f 100644
--- a/api_docs/kbn_ml_anomaly_utils.mdx
+++ b/api_docs/kbn_ml_anomaly_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-anomaly-utils
title: "@kbn/ml-anomaly-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-anomaly-utils plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-anomaly-utils']
---
import kbnMlAnomalyUtilsObj from './kbn_ml_anomaly_utils.devdocs.json';
diff --git a/api_docs/kbn_ml_cancellable_search.mdx b/api_docs/kbn_ml_cancellable_search.mdx
index cf698ed71801b..4d0b553462606 100644
--- a/api_docs/kbn_ml_cancellable_search.mdx
+++ b/api_docs/kbn_ml_cancellable_search.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-cancellable-search
title: "@kbn/ml-cancellable-search"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-cancellable-search plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-cancellable-search']
---
import kbnMlCancellableSearchObj from './kbn_ml_cancellable_search.devdocs.json';
diff --git a/api_docs/kbn_ml_category_validator.mdx b/api_docs/kbn_ml_category_validator.mdx
index 6ada199c5e956..50d310a9bc0d5 100644
--- a/api_docs/kbn_ml_category_validator.mdx
+++ b/api_docs/kbn_ml_category_validator.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-category-validator
title: "@kbn/ml-category-validator"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-category-validator plugin
-date: 2024-06-03
+date: 2024-06-04
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 3209ee8f13e21..ae0970aea3c41 100644
--- a/api_docs/kbn_ml_chi2test.mdx
+++ b/api_docs/kbn_ml_chi2test.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-chi2test
title: "@kbn/ml-chi2test"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-chi2test plugin
-date: 2024-06-03
+date: 2024-06-04
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 64152a5436b39..aa2ef35916fd0 100644
--- a/api_docs/kbn_ml_data_frame_analytics_utils.mdx
+++ b/api_docs/kbn_ml_data_frame_analytics_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-data-frame-analytics-utils
title: "@kbn/ml-data-frame-analytics-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-data-frame-analytics-utils plugin
-date: 2024-06-03
+date: 2024-06-04
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 4c2eefe6a2b9a..2bc871e272dc8 100644
--- a/api_docs/kbn_ml_data_grid.mdx
+++ b/api_docs/kbn_ml_data_grid.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-data-grid
title: "@kbn/ml-data-grid"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-data-grid plugin
-date: 2024-06-03
+date: 2024-06-04
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 ff78eb2e73efe..935e5eae32c4e 100644
--- a/api_docs/kbn_ml_date_picker.mdx
+++ b/api_docs/kbn_ml_date_picker.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-date-picker
title: "@kbn/ml-date-picker"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-date-picker plugin
-date: 2024-06-03
+date: 2024-06-04
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 12782189714c5..b7f8af8a66a22 100644
--- a/api_docs/kbn_ml_date_utils.mdx
+++ b/api_docs/kbn_ml_date_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-date-utils
title: "@kbn/ml-date-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-date-utils plugin
-date: 2024-06-03
+date: 2024-06-04
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 581f0b87a0f2a..d32411e565207 100644
--- a/api_docs/kbn_ml_error_utils.mdx
+++ b/api_docs/kbn_ml_error_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-error-utils
title: "@kbn/ml-error-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-error-utils plugin
-date: 2024-06-03
+date: 2024-06-04
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 4cd2bd9411e89..adbaab9e40a53 100644
--- a/api_docs/kbn_ml_in_memory_table.mdx
+++ b/api_docs/kbn_ml_in_memory_table.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-in-memory-table
title: "@kbn/ml-in-memory-table"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-in-memory-table plugin
-date: 2024-06-03
+date: 2024-06-04
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 20ec7fd240a93..f15d7620a7981 100644
--- a/api_docs/kbn_ml_is_defined.mdx
+++ b/api_docs/kbn_ml_is_defined.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-is-defined
title: "@kbn/ml-is-defined"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-is-defined plugin
-date: 2024-06-03
+date: 2024-06-04
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 61f9b928cdf8a..ce84ad9f80440 100644
--- a/api_docs/kbn_ml_is_populated_object.mdx
+++ b/api_docs/kbn_ml_is_populated_object.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-is-populated-object
title: "@kbn/ml-is-populated-object"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-is-populated-object plugin
-date: 2024-06-03
+date: 2024-06-04
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 371fe714676f3..06d177de15ae2 100644
--- a/api_docs/kbn_ml_kibana_theme.mdx
+++ b/api_docs/kbn_ml_kibana_theme.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-kibana-theme
title: "@kbn/ml-kibana-theme"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-kibana-theme plugin
-date: 2024-06-03
+date: 2024-06-04
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 3040c20b93e4c..58823cf6b1a1b 100644
--- a/api_docs/kbn_ml_local_storage.mdx
+++ b/api_docs/kbn_ml_local_storage.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-local-storage
title: "@kbn/ml-local-storage"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-local-storage plugin
-date: 2024-06-03
+date: 2024-06-04
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 b23c7e2de8f99..f7cf28fa1db09 100644
--- a/api_docs/kbn_ml_nested_property.mdx
+++ b/api_docs/kbn_ml_nested_property.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-nested-property
title: "@kbn/ml-nested-property"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-nested-property plugin
-date: 2024-06-03
+date: 2024-06-04
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 12cfb2e7b577a..891b9c6f8a7b5 100644
--- a/api_docs/kbn_ml_number_utils.mdx
+++ b/api_docs/kbn_ml_number_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-number-utils
title: "@kbn/ml-number-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-number-utils plugin
-date: 2024-06-03
+date: 2024-06-04
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 c7c1e22b3e86e..58e8e6db77fd5 100644
--- a/api_docs/kbn_ml_query_utils.mdx
+++ b/api_docs/kbn_ml_query_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-query-utils
title: "@kbn/ml-query-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-query-utils plugin
-date: 2024-06-03
+date: 2024-06-04
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 0e4a68b911b0f..65c32edf4851e 100644
--- a/api_docs/kbn_ml_random_sampler_utils.mdx
+++ b/api_docs/kbn_ml_random_sampler_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-random-sampler-utils
title: "@kbn/ml-random-sampler-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-random-sampler-utils plugin
-date: 2024-06-03
+date: 2024-06-04
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 10421bb197f1e..0ce3c444047b3 100644
--- a/api_docs/kbn_ml_route_utils.mdx
+++ b/api_docs/kbn_ml_route_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-route-utils
title: "@kbn/ml-route-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-route-utils plugin
-date: 2024-06-03
+date: 2024-06-04
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 c55a9e9da2a23..7735369f1d016 100644
--- a/api_docs/kbn_ml_runtime_field_utils.mdx
+++ b/api_docs/kbn_ml_runtime_field_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-runtime-field-utils
title: "@kbn/ml-runtime-field-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-runtime-field-utils plugin
-date: 2024-06-03
+date: 2024-06-04
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 d05f1e45e2d82..7b3003eed8c68 100644
--- a/api_docs/kbn_ml_string_hash.mdx
+++ b/api_docs/kbn_ml_string_hash.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-string-hash
title: "@kbn/ml-string-hash"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-string-hash plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-string-hash']
---
import kbnMlStringHashObj from './kbn_ml_string_hash.devdocs.json';
diff --git a/api_docs/kbn_ml_time_buckets.mdx b/api_docs/kbn_ml_time_buckets.mdx
index 070a800f2173e..07a835fb6957b 100644
--- a/api_docs/kbn_ml_time_buckets.mdx
+++ b/api_docs/kbn_ml_time_buckets.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-time-buckets
title: "@kbn/ml-time-buckets"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-time-buckets plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-time-buckets']
---
import kbnMlTimeBucketsObj from './kbn_ml_time_buckets.devdocs.json';
diff --git a/api_docs/kbn_ml_trained_models_utils.mdx b/api_docs/kbn_ml_trained_models_utils.mdx
index dfdf82b54a85c..f2e833cb15fbf 100644
--- a/api_docs/kbn_ml_trained_models_utils.mdx
+++ b/api_docs/kbn_ml_trained_models_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-trained-models-utils
title: "@kbn/ml-trained-models-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-trained-models-utils plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-trained-models-utils']
---
import kbnMlTrainedModelsUtilsObj from './kbn_ml_trained_models_utils.devdocs.json';
diff --git a/api_docs/kbn_ml_ui_actions.mdx b/api_docs/kbn_ml_ui_actions.mdx
index c47a6a1f3cdbe..8e3f026ad565b 100644
--- a/api_docs/kbn_ml_ui_actions.mdx
+++ b/api_docs/kbn_ml_ui_actions.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-ui-actions
title: "@kbn/ml-ui-actions"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-ui-actions plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-ui-actions']
---
import kbnMlUiActionsObj from './kbn_ml_ui_actions.devdocs.json';
diff --git a/api_docs/kbn_ml_url_state.mdx b/api_docs/kbn_ml_url_state.mdx
index ea4a2809ddee9..1514d2b6a1ec6 100644
--- a/api_docs/kbn_ml_url_state.mdx
+++ b/api_docs/kbn_ml_url_state.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-url-state
title: "@kbn/ml-url-state"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-url-state plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-url-state']
---
import kbnMlUrlStateObj from './kbn_ml_url_state.devdocs.json';
diff --git a/api_docs/kbn_mock_idp_utils.mdx b/api_docs/kbn_mock_idp_utils.mdx
index 0a2154efdc52d..87e13e34826b5 100644
--- a/api_docs/kbn_mock_idp_utils.mdx
+++ b/api_docs/kbn_mock_idp_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-mock-idp-utils
title: "@kbn/mock-idp-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/mock-idp-utils plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/mock-idp-utils']
---
import kbnMockIdpUtilsObj from './kbn_mock_idp_utils.devdocs.json';
diff --git a/api_docs/kbn_monaco.mdx b/api_docs/kbn_monaco.mdx
index f533e2e8da098..430f78e588efe 100644
--- a/api_docs/kbn_monaco.mdx
+++ b/api_docs/kbn_monaco.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-monaco
title: "@kbn/monaco"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/monaco plugin
-date: 2024-06-03
+date: 2024-06-04
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 78b2f527dd4d9..8850a04ce117d 100644
--- a/api_docs/kbn_object_versioning.mdx
+++ b/api_docs/kbn_object_versioning.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-object-versioning
title: "@kbn/object-versioning"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/object-versioning plugin
-date: 2024-06-03
+date: 2024-06-04
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 e015b3cb3dd5a..5cb2e77ff2802 100644
--- a/api_docs/kbn_observability_alert_details.mdx
+++ b/api_docs/kbn_observability_alert_details.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-observability-alert-details
title: "@kbn/observability-alert-details"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/observability-alert-details plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/observability-alert-details']
---
import kbnObservabilityAlertDetailsObj from './kbn_observability_alert_details.devdocs.json';
diff --git a/api_docs/kbn_observability_alerting_test_data.mdx b/api_docs/kbn_observability_alerting_test_data.mdx
index 1adc481e9b9ea..7cadb4266a3cb 100644
--- a/api_docs/kbn_observability_alerting_test_data.mdx
+++ b/api_docs/kbn_observability_alerting_test_data.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-observability-alerting-test-data
title: "@kbn/observability-alerting-test-data"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/observability-alerting-test-data plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/observability-alerting-test-data']
---
import kbnObservabilityAlertingTestDataObj from './kbn_observability_alerting_test_data.devdocs.json';
diff --git a/api_docs/kbn_observability_get_padded_alert_time_range_util.devdocs.json b/api_docs/kbn_observability_get_padded_alert_time_range_util.devdocs.json
index 932169e8a5c2d..be1ffb88134bc 100644
--- a/api_docs/kbn_observability_get_padded_alert_time_range_util.devdocs.json
+++ b/api_docs/kbn_observability_get_padded_alert_time_range_util.devdocs.json
@@ -27,7 +27,7 @@
"label": "getPaddedAlertTimeRange",
"description": [],
"signature": [
- "(alertStart: string, alertEnd?: string | undefined) => ",
+ "(alertStart: string, alertEnd?: string | undefined, lookBackWindow?: { size: number; unit: \"m\" | \"d\" | \"h\" | \"s\"; } | undefined) => ",
"TimeRange"
],
"path": "x-pack/packages/observability/get_padded_alert_time_range_util/src/get_padded_alert_time_range.ts",
@@ -63,6 +63,44 @@
"deprecated": false,
"trackAdoption": false,
"isRequired": false
+ },
+ {
+ "parentPluginId": "@kbn/observability-get-padded-alert-time-range-util",
+ "id": "def-common.getPaddedAlertTimeRange.$3",
+ "type": "Object",
+ "tags": [],
+ "label": "lookBackWindow",
+ "description": [],
+ "path": "x-pack/packages/observability/get_padded_alert_time_range_util/src/get_padded_alert_time_range.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": [
+ {
+ "parentPluginId": "@kbn/observability-get-padded-alert-time-range-util",
+ "id": "def-common.getPaddedAlertTimeRange.$3.size",
+ "type": "number",
+ "tags": [],
+ "label": "size",
+ "description": [],
+ "path": "x-pack/packages/observability/get_padded_alert_time_range_util/src/get_padded_alert_time_range.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/observability-get-padded-alert-time-range-util",
+ "id": "def-common.getPaddedAlertTimeRange.$3.unit",
+ "type": "CompoundType",
+ "tags": [],
+ "label": "unit",
+ "description": [],
+ "signature": [
+ "\"m\" | \"d\" | \"h\" | \"s\""
+ ],
+ "path": "x-pack/packages/observability/get_padded_alert_time_range_util/src/get_padded_alert_time_range.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ }
+ ]
}
],
"returnComment": [],
diff --git a/api_docs/kbn_observability_get_padded_alert_time_range_util.mdx b/api_docs/kbn_observability_get_padded_alert_time_range_util.mdx
index 6d0638875466f..b92deaf1a1bf8 100644
--- a/api_docs/kbn_observability_get_padded_alert_time_range_util.mdx
+++ b/api_docs/kbn_observability_get_padded_alert_time_range_util.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-observability-get-padded-alert-time-range-util
title: "@kbn/observability-get-padded-alert-time-range-util"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/observability-get-padded-alert-time-range-util plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/observability-get-padded-alert-time-range-util']
---
import kbnObservabilityGetPaddedAlertTimeRangeUtilObj from './kbn_observability_get_padded_alert_time_range_util.devdocs.json';
@@ -21,7 +21,7 @@ Contact [@elastic/obs-ux-management-team](https://github.com/orgs/elastic/teams/
| Public API count | Any count | Items lacking comments | Missing exports |
|-------------------|-----------|------------------------|-----------------|
-| 3 | 0 | 3 | 1 |
+| 6 | 0 | 6 | 1 |
## Common
diff --git a/api_docs/kbn_openapi_bundler.mdx b/api_docs/kbn_openapi_bundler.mdx
index a0f277cf29537..e3c5077875d42 100644
--- a/api_docs/kbn_openapi_bundler.mdx
+++ b/api_docs/kbn_openapi_bundler.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-openapi-bundler
title: "@kbn/openapi-bundler"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/openapi-bundler plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/openapi-bundler']
---
import kbnOpenapiBundlerObj from './kbn_openapi_bundler.devdocs.json';
diff --git a/api_docs/kbn_openapi_generator.mdx b/api_docs/kbn_openapi_generator.mdx
index 86645da1b0997..8b5bd8bfa7877 100644
--- a/api_docs/kbn_openapi_generator.mdx
+++ b/api_docs/kbn_openapi_generator.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-openapi-generator
title: "@kbn/openapi-generator"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/openapi-generator plugin
-date: 2024-06-03
+date: 2024-06-04
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 6ba3f1a9ed2ab..b0e344bc46df8 100644
--- a/api_docs/kbn_optimizer.mdx
+++ b/api_docs/kbn_optimizer.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-optimizer
title: "@kbn/optimizer"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/optimizer plugin
-date: 2024-06-03
+date: 2024-06-04
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 9198af526b3af..c905fd4ddad70 100644
--- a/api_docs/kbn_optimizer_webpack_helpers.mdx
+++ b/api_docs/kbn_optimizer_webpack_helpers.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-optimizer-webpack-helpers
title: "@kbn/optimizer-webpack-helpers"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/optimizer-webpack-helpers plugin
-date: 2024-06-03
+date: 2024-06-04
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 14249f97d9aac..7fb7c9941a0c3 100644
--- a/api_docs/kbn_osquery_io_ts_types.mdx
+++ b/api_docs/kbn_osquery_io_ts_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-osquery-io-ts-types
title: "@kbn/osquery-io-ts-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/osquery-io-ts-types plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/osquery-io-ts-types']
---
import kbnOsqueryIoTsTypesObj from './kbn_osquery_io_ts_types.devdocs.json';
diff --git a/api_docs/kbn_panel_loader.mdx b/api_docs/kbn_panel_loader.mdx
index d6532ef1f8e63..be29329400638 100644
--- a/api_docs/kbn_panel_loader.mdx
+++ b/api_docs/kbn_panel_loader.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-panel-loader
title: "@kbn/panel-loader"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/panel-loader plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/panel-loader']
---
import kbnPanelLoaderObj from './kbn_panel_loader.devdocs.json';
diff --git a/api_docs/kbn_performance_testing_dataset_extractor.mdx b/api_docs/kbn_performance_testing_dataset_extractor.mdx
index ea55a62e25adc..e7d888cae4edb 100644
--- a/api_docs/kbn_performance_testing_dataset_extractor.mdx
+++ b/api_docs/kbn_performance_testing_dataset_extractor.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-performance-testing-dataset-extractor
title: "@kbn/performance-testing-dataset-extractor"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/performance-testing-dataset-extractor plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/performance-testing-dataset-extractor']
---
import kbnPerformanceTestingDatasetExtractorObj from './kbn_performance_testing_dataset_extractor.devdocs.json';
diff --git a/api_docs/kbn_plugin_check.mdx b/api_docs/kbn_plugin_check.mdx
index 9d026d0a3916b..3268611d09d7f 100644
--- a/api_docs/kbn_plugin_check.mdx
+++ b/api_docs/kbn_plugin_check.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-check
title: "@kbn/plugin-check"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/plugin-check plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/plugin-check']
---
import kbnPluginCheckObj from './kbn_plugin_check.devdocs.json';
diff --git a/api_docs/kbn_plugin_generator.mdx b/api_docs/kbn_plugin_generator.mdx
index 9327fc9d31884..598c93332ae77 100644
--- a/api_docs/kbn_plugin_generator.mdx
+++ b/api_docs/kbn_plugin_generator.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-generator
title: "@kbn/plugin-generator"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/plugin-generator plugin
-date: 2024-06-03
+date: 2024-06-04
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 58d7867eb20b9..4a17ce1226c28 100644
--- a/api_docs/kbn_plugin_helpers.mdx
+++ b/api_docs/kbn_plugin_helpers.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-helpers
title: "@kbn/plugin-helpers"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/plugin-helpers plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/plugin-helpers']
---
import kbnPluginHelpersObj from './kbn_plugin_helpers.devdocs.json';
diff --git a/api_docs/kbn_presentation_containers.mdx b/api_docs/kbn_presentation_containers.mdx
index 2094546206883..72b59397f62e6 100644
--- a/api_docs/kbn_presentation_containers.mdx
+++ b/api_docs/kbn_presentation_containers.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-presentation-containers
title: "@kbn/presentation-containers"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/presentation-containers plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/presentation-containers']
---
import kbnPresentationContainersObj from './kbn_presentation_containers.devdocs.json';
diff --git a/api_docs/kbn_presentation_publishing.mdx b/api_docs/kbn_presentation_publishing.mdx
index e5a3a39e96e21..5cfe1e6e940a8 100644
--- a/api_docs/kbn_presentation_publishing.mdx
+++ b/api_docs/kbn_presentation_publishing.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-presentation-publishing
title: "@kbn/presentation-publishing"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/presentation-publishing plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/presentation-publishing']
---
import kbnPresentationPublishingObj from './kbn_presentation_publishing.devdocs.json';
diff --git a/api_docs/kbn_profiling_utils.mdx b/api_docs/kbn_profiling_utils.mdx
index 765dc75779f28..6624c617d2e25 100644
--- a/api_docs/kbn_profiling_utils.mdx
+++ b/api_docs/kbn_profiling_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-profiling-utils
title: "@kbn/profiling-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/profiling-utils plugin
-date: 2024-06-03
+date: 2024-06-04
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 8c007d60f55f5..68544ce818b6e 100644
--- a/api_docs/kbn_random_sampling.mdx
+++ b/api_docs/kbn_random_sampling.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-random-sampling
title: "@kbn/random-sampling"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/random-sampling plugin
-date: 2024-06-03
+date: 2024-06-04
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 eb277daaf947c..56d8035a9c18f 100644
--- a/api_docs/kbn_react_field.mdx
+++ b/api_docs/kbn_react_field.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-field
title: "@kbn/react-field"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/react-field plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-field']
---
import kbnReactFieldObj from './kbn_react_field.devdocs.json';
diff --git a/api_docs/kbn_react_hooks.mdx b/api_docs/kbn_react_hooks.mdx
index e4581fe998df5..8db17f82ba2e0 100644
--- a/api_docs/kbn_react_hooks.mdx
+++ b/api_docs/kbn_react_hooks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-hooks
title: "@kbn/react-hooks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/react-hooks plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-hooks']
---
import kbnReactHooksObj from './kbn_react_hooks.devdocs.json';
diff --git a/api_docs/kbn_react_kibana_context_common.mdx b/api_docs/kbn_react_kibana_context_common.mdx
index 823a9c9ec5577..75f7ac331d362 100644
--- a/api_docs/kbn_react_kibana_context_common.mdx
+++ b/api_docs/kbn_react_kibana_context_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-common
title: "@kbn/react-kibana-context-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/react-kibana-context-common plugin
-date: 2024-06-03
+date: 2024-06-04
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 0c35251288955..ff0164930f51f 100644
--- a/api_docs/kbn_react_kibana_context_render.mdx
+++ b/api_docs/kbn_react_kibana_context_render.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-render
title: "@kbn/react-kibana-context-render"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/react-kibana-context-render plugin
-date: 2024-06-03
+date: 2024-06-04
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 08490211e8ca6..25b64c4369887 100644
--- a/api_docs/kbn_react_kibana_context_root.mdx
+++ b/api_docs/kbn_react_kibana_context_root.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-root
title: "@kbn/react-kibana-context-root"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/react-kibana-context-root plugin
-date: 2024-06-03
+date: 2024-06-04
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 b9c55e11a6803..c57d9c3bcbc63 100644
--- a/api_docs/kbn_react_kibana_context_styled.mdx
+++ b/api_docs/kbn_react_kibana_context_styled.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-styled
title: "@kbn/react-kibana-context-styled"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/react-kibana-context-styled plugin
-date: 2024-06-03
+date: 2024-06-04
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 209ba55e3ff21..8441039eb7608 100644
--- a/api_docs/kbn_react_kibana_context_theme.mdx
+++ b/api_docs/kbn_react_kibana_context_theme.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-theme
title: "@kbn/react-kibana-context-theme"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/react-kibana-context-theme plugin
-date: 2024-06-03
+date: 2024-06-04
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 d612be998dbcb..70563f79707ca 100644
--- a/api_docs/kbn_react_kibana_mount.mdx
+++ b/api_docs/kbn_react_kibana_mount.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-mount
title: "@kbn/react-kibana-mount"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/react-kibana-mount plugin
-date: 2024-06-03
+date: 2024-06-04
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 7f0e8c9bfa2fe..f8ccbf9eeb318 100644
--- a/api_docs/kbn_repo_file_maps.mdx
+++ b/api_docs/kbn_repo_file_maps.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-file-maps
title: "@kbn/repo-file-maps"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/repo-file-maps plugin
-date: 2024-06-03
+date: 2024-06-04
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 3e8edbeb3c0fd..0e6c7ee6bb294 100644
--- a/api_docs/kbn_repo_linter.mdx
+++ b/api_docs/kbn_repo_linter.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-linter
title: "@kbn/repo-linter"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/repo-linter plugin
-date: 2024-06-03
+date: 2024-06-04
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 0fea7c4bc1d87..acf67abc205a0 100644
--- a/api_docs/kbn_repo_path.mdx
+++ b/api_docs/kbn_repo_path.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-path
title: "@kbn/repo-path"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/repo-path plugin
-date: 2024-06-03
+date: 2024-06-04
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 bf7ddd4cd2bca..2ec5edc70869b 100644
--- a/api_docs/kbn_repo_source_classifier.mdx
+++ b/api_docs/kbn_repo_source_classifier.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-source-classifier
title: "@kbn/repo-source-classifier"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/repo-source-classifier plugin
-date: 2024-06-03
+date: 2024-06-04
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 d50d29ecdb728..b6d88f8e3aa01 100644
--- a/api_docs/kbn_reporting_common.mdx
+++ b/api_docs/kbn_reporting_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-common
title: "@kbn/reporting-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/reporting-common plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-common']
---
import kbnReportingCommonObj from './kbn_reporting_common.devdocs.json';
diff --git a/api_docs/kbn_reporting_csv_share_panel.mdx b/api_docs/kbn_reporting_csv_share_panel.mdx
index 565c90c8388c9..b1bed6ce5e471 100644
--- a/api_docs/kbn_reporting_csv_share_panel.mdx
+++ b/api_docs/kbn_reporting_csv_share_panel.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-csv-share-panel
title: "@kbn/reporting-csv-share-panel"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/reporting-csv-share-panel plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-csv-share-panel']
---
import kbnReportingCsvSharePanelObj from './kbn_reporting_csv_share_panel.devdocs.json';
diff --git a/api_docs/kbn_reporting_export_types_csv.mdx b/api_docs/kbn_reporting_export_types_csv.mdx
index 945628f51857c..af7131d29e809 100644
--- a/api_docs/kbn_reporting_export_types_csv.mdx
+++ b/api_docs/kbn_reporting_export_types_csv.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-csv
title: "@kbn/reporting-export-types-csv"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/reporting-export-types-csv plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-csv']
---
import kbnReportingExportTypesCsvObj from './kbn_reporting_export_types_csv.devdocs.json';
diff --git a/api_docs/kbn_reporting_export_types_csv_common.mdx b/api_docs/kbn_reporting_export_types_csv_common.mdx
index 5b5aa8a143a30..4ff5ec5702d57 100644
--- a/api_docs/kbn_reporting_export_types_csv_common.mdx
+++ b/api_docs/kbn_reporting_export_types_csv_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-csv-common
title: "@kbn/reporting-export-types-csv-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/reporting-export-types-csv-common plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-csv-common']
---
import kbnReportingExportTypesCsvCommonObj from './kbn_reporting_export_types_csv_common.devdocs.json';
diff --git a/api_docs/kbn_reporting_export_types_pdf.mdx b/api_docs/kbn_reporting_export_types_pdf.mdx
index d555b18e35405..87582709bfd1e 100644
--- a/api_docs/kbn_reporting_export_types_pdf.mdx
+++ b/api_docs/kbn_reporting_export_types_pdf.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-pdf
title: "@kbn/reporting-export-types-pdf"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/reporting-export-types-pdf plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-pdf']
---
import kbnReportingExportTypesPdfObj from './kbn_reporting_export_types_pdf.devdocs.json';
diff --git a/api_docs/kbn_reporting_export_types_pdf_common.mdx b/api_docs/kbn_reporting_export_types_pdf_common.mdx
index c54e9f36d4105..76b1d7e286659 100644
--- a/api_docs/kbn_reporting_export_types_pdf_common.mdx
+++ b/api_docs/kbn_reporting_export_types_pdf_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-pdf-common
title: "@kbn/reporting-export-types-pdf-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/reporting-export-types-pdf-common plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-pdf-common']
---
import kbnReportingExportTypesPdfCommonObj from './kbn_reporting_export_types_pdf_common.devdocs.json';
diff --git a/api_docs/kbn_reporting_export_types_png.mdx b/api_docs/kbn_reporting_export_types_png.mdx
index 52784f63fb86c..a757a5272c669 100644
--- a/api_docs/kbn_reporting_export_types_png.mdx
+++ b/api_docs/kbn_reporting_export_types_png.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-png
title: "@kbn/reporting-export-types-png"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/reporting-export-types-png plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-png']
---
import kbnReportingExportTypesPngObj from './kbn_reporting_export_types_png.devdocs.json';
diff --git a/api_docs/kbn_reporting_export_types_png_common.mdx b/api_docs/kbn_reporting_export_types_png_common.mdx
index 2808657da5290..340e0473e66c1 100644
--- a/api_docs/kbn_reporting_export_types_png_common.mdx
+++ b/api_docs/kbn_reporting_export_types_png_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-png-common
title: "@kbn/reporting-export-types-png-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/reporting-export-types-png-common plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-png-common']
---
import kbnReportingExportTypesPngCommonObj from './kbn_reporting_export_types_png_common.devdocs.json';
diff --git a/api_docs/kbn_reporting_mocks_server.mdx b/api_docs/kbn_reporting_mocks_server.mdx
index 2f0e01807a692..c882d5a5f1360 100644
--- a/api_docs/kbn_reporting_mocks_server.mdx
+++ b/api_docs/kbn_reporting_mocks_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-mocks-server
title: "@kbn/reporting-mocks-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/reporting-mocks-server plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-mocks-server']
---
import kbnReportingMocksServerObj from './kbn_reporting_mocks_server.devdocs.json';
diff --git a/api_docs/kbn_reporting_public.mdx b/api_docs/kbn_reporting_public.mdx
index 2ee0641bfcb83..c75d6bf2d8041 100644
--- a/api_docs/kbn_reporting_public.mdx
+++ b/api_docs/kbn_reporting_public.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-public
title: "@kbn/reporting-public"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/reporting-public plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-public']
---
import kbnReportingPublicObj from './kbn_reporting_public.devdocs.json';
diff --git a/api_docs/kbn_reporting_server.mdx b/api_docs/kbn_reporting_server.mdx
index f54df360295a8..b9eb92c987f5c 100644
--- a/api_docs/kbn_reporting_server.mdx
+++ b/api_docs/kbn_reporting_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-server
title: "@kbn/reporting-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/reporting-server plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-server']
---
import kbnReportingServerObj from './kbn_reporting_server.devdocs.json';
diff --git a/api_docs/kbn_resizable_layout.mdx b/api_docs/kbn_resizable_layout.mdx
index d16167b6bf30f..392ef81c16236 100644
--- a/api_docs/kbn_resizable_layout.mdx
+++ b/api_docs/kbn_resizable_layout.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-resizable-layout
title: "@kbn/resizable-layout"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/resizable-layout plugin
-date: 2024-06-03
+date: 2024-06-04
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 b10505bfe863e..34d2a5b654f42 100644
--- a/api_docs/kbn_rison.mdx
+++ b/api_docs/kbn_rison.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rison
title: "@kbn/rison"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/rison plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rison']
---
import kbnRisonObj from './kbn_rison.devdocs.json';
diff --git a/api_docs/kbn_router_to_openapispec.mdx b/api_docs/kbn_router_to_openapispec.mdx
index 5eabc753f7696..2d64a5ebbceb7 100644
--- a/api_docs/kbn_router_to_openapispec.mdx
+++ b/api_docs/kbn_router_to_openapispec.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-router-to-openapispec
title: "@kbn/router-to-openapispec"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/router-to-openapispec plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/router-to-openapispec']
---
import kbnRouterToOpenapispecObj from './kbn_router_to_openapispec.devdocs.json';
diff --git a/api_docs/kbn_router_utils.mdx b/api_docs/kbn_router_utils.mdx
index 69da4222f3c08..41572188cb19f 100644
--- a/api_docs/kbn_router_utils.mdx
+++ b/api_docs/kbn_router_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-router-utils
title: "@kbn/router-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/router-utils plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/router-utils']
---
import kbnRouterUtilsObj from './kbn_router_utils.devdocs.json';
diff --git a/api_docs/kbn_rrule.mdx b/api_docs/kbn_rrule.mdx
index 0926057b0ec0f..32eef0fe810ea 100644
--- a/api_docs/kbn_rrule.mdx
+++ b/api_docs/kbn_rrule.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rrule
title: "@kbn/rrule"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/rrule plugin
-date: 2024-06-03
+date: 2024-06-04
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 a5981fe6e20b4..13302c3fd507b 100644
--- a/api_docs/kbn_rule_data_utils.mdx
+++ b/api_docs/kbn_rule_data_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rule-data-utils
title: "@kbn/rule-data-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/rule-data-utils plugin
-date: 2024-06-03
+date: 2024-06-04
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 48d424341d87c..ed044e269f4ed 100644
--- a/api_docs/kbn_saved_objects_settings.mdx
+++ b/api_docs/kbn_saved_objects_settings.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-saved-objects-settings
title: "@kbn/saved-objects-settings"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/saved-objects-settings plugin
-date: 2024-06-03
+date: 2024-06-04
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 1782959320745..dcbea6fbfcbc0 100644
--- a/api_docs/kbn_search_api_panels.mdx
+++ b/api_docs/kbn_search_api_panels.mdx
@@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-search-api-panels
title: "@kbn/search-api-panels"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/search-api-panels plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-api-panels']
---
import kbnSearchApiPanelsObj from './kbn_search_api_panels.devdocs.json';
-Contact [@elastic/enterprise-search-frontend](https://github.com/orgs/elastic/teams/enterprise-search-frontend) for questions regarding this plugin.
+Contact [@elastic/search-kibana](https://github.com/orgs/elastic/teams/search-kibana) for questions regarding this plugin.
**Code health stats**
diff --git a/api_docs/kbn_search_connectors.devdocs.json b/api_docs/kbn_search_connectors.devdocs.json
index 669f5be7fa9c1..1e94d2d2d2d87 100644
--- a/api_docs/kbn_search_connectors.devdocs.json
+++ b/api_docs/kbn_search_connectors.devdocs.json
@@ -1686,7 +1686,7 @@
"section": "def-common.ElasticsearchClient",
"text": "ElasticsearchClient"
},
- ", { connectorId, jobType, targetIndexName, }: { connectorId: string; jobType?: ",
+ ", { connectorId, jobType, }: { connectorId: string; jobType?: ",
{
"pluginId": "@kbn/search-connectors",
"scope": "common",
@@ -1694,9 +1694,7 @@
"section": "def-common.SyncJobType",
"text": "SyncJobType"
},
- " | undefined; targetIndexName?: string | undefined; }) => Promise<",
- "WriteResponseBase",
- ">"
+ " | undefined; }) => Promise<{ id: string; }>"
],
"path": "packages/kbn-search-connectors/lib/start_sync.ts",
"deprecated": false,
@@ -1728,7 +1726,7 @@
"id": "def-common.startConnectorSync.$2",
"type": "Object",
"tags": [],
- "label": "{\n connectorId,\n jobType,\n targetIndexName,\n }",
+ "label": "{\n connectorId,\n jobType,\n }",
"description": [],
"path": "packages/kbn-search-connectors/lib/start_sync.ts",
"deprecated": false,
@@ -1765,20 +1763,6 @@
"path": "packages/kbn-search-connectors/lib/start_sync.ts",
"deprecated": false,
"trackAdoption": false
- },
- {
- "parentPluginId": "@kbn/search-connectors",
- "id": "def-common.startConnectorSync.$2.targetIndexName",
- "type": "string",
- "tags": [],
- "label": "targetIndexName",
- "description": [],
- "signature": [
- "string | undefined"
- ],
- "path": "packages/kbn-search-connectors/lib/start_sync.ts",
- "deprecated": false,
- "trackAdoption": false
}
]
}
diff --git a/api_docs/kbn_search_connectors.mdx b/api_docs/kbn_search_connectors.mdx
index e02f68c6df030..375b3b8380bf7 100644
--- a/api_docs/kbn_search_connectors.mdx
+++ b/api_docs/kbn_search_connectors.mdx
@@ -8,20 +8,20 @@ slug: /kibana-dev-docs/api/kbn-search-connectors
title: "@kbn/search-connectors"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/search-connectors plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-connectors']
---
import kbnSearchConnectorsObj from './kbn_search_connectors.devdocs.json';
-Contact [@elastic/enterprise-search-frontend](https://github.com/orgs/elastic/teams/enterprise-search-frontend) for questions regarding this plugin.
+Contact [@elastic/search-kibana](https://github.com/orgs/elastic/teams/search-kibana) for questions regarding this plugin.
**Code health stats**
| Public API count | Any count | Items lacking comments | Missing exports |
|-------------------|-----------|------------------------|-----------------|
-| 3689 | 0 | 3689 | 0 |
+| 3688 | 0 | 3688 | 0 |
## Common
diff --git a/api_docs/kbn_search_errors.mdx b/api_docs/kbn_search_errors.mdx
index 981723600aff8..34f2be6a21c62 100644
--- a/api_docs/kbn_search_errors.mdx
+++ b/api_docs/kbn_search_errors.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-errors
title: "@kbn/search-errors"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/search-errors plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-errors']
---
import kbnSearchErrorsObj from './kbn_search_errors.devdocs.json';
diff --git a/api_docs/kbn_search_index_documents.mdx b/api_docs/kbn_search_index_documents.mdx
index a46a587cc7ff1..4138b8718d36d 100644
--- a/api_docs/kbn_search_index_documents.mdx
+++ b/api_docs/kbn_search_index_documents.mdx
@@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-search-index-documents
title: "@kbn/search-index-documents"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/search-index-documents plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-index-documents']
---
import kbnSearchIndexDocumentsObj from './kbn_search_index_documents.devdocs.json';
-Contact [@elastic/enterprise-search-frontend](https://github.com/orgs/elastic/teams/enterprise-search-frontend) for questions regarding this plugin.
+Contact [@elastic/search-kibana](https://github.com/orgs/elastic/teams/search-kibana) for questions regarding this plugin.
**Code health stats**
diff --git a/api_docs/kbn_search_response_warnings.mdx b/api_docs/kbn_search_response_warnings.mdx
index a08e010b50811..fa3754e1271de 100644
--- a/api_docs/kbn_search_response_warnings.mdx
+++ b/api_docs/kbn_search_response_warnings.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-response-warnings
title: "@kbn/search-response-warnings"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/search-response-warnings plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-response-warnings']
---
import kbnSearchResponseWarningsObj from './kbn_search_response_warnings.devdocs.json';
diff --git a/api_docs/kbn_search_types.mdx b/api_docs/kbn_search_types.mdx
index be79b791b8d31..0058b2a44033f 100644
--- a/api_docs/kbn_search_types.mdx
+++ b/api_docs/kbn_search_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-types
title: "@kbn/search-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/search-types plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-types']
---
import kbnSearchTypesObj from './kbn_search_types.devdocs.json';
diff --git a/api_docs/kbn_security_hardening.mdx b/api_docs/kbn_security_hardening.mdx
index c9d722939b7bf..c03c11d502ee8 100644
--- a/api_docs/kbn_security_hardening.mdx
+++ b/api_docs/kbn_security_hardening.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-hardening
title: "@kbn/security-hardening"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/security-hardening plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-hardening']
---
import kbnSecurityHardeningObj from './kbn_security_hardening.devdocs.json';
diff --git a/api_docs/kbn_security_plugin_types_common.mdx b/api_docs/kbn_security_plugin_types_common.mdx
index 853e135c23fb0..54177ea5f76b3 100644
--- a/api_docs/kbn_security_plugin_types_common.mdx
+++ b/api_docs/kbn_security_plugin_types_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-plugin-types-common
title: "@kbn/security-plugin-types-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/security-plugin-types-common plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-plugin-types-common']
---
import kbnSecurityPluginTypesCommonObj from './kbn_security_plugin_types_common.devdocs.json';
diff --git a/api_docs/kbn_security_plugin_types_public.mdx b/api_docs/kbn_security_plugin_types_public.mdx
index 4cc56966f5058..e152e3ba1c8e3 100644
--- a/api_docs/kbn_security_plugin_types_public.mdx
+++ b/api_docs/kbn_security_plugin_types_public.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-plugin-types-public
title: "@kbn/security-plugin-types-public"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/security-plugin-types-public plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-plugin-types-public']
---
import kbnSecurityPluginTypesPublicObj from './kbn_security_plugin_types_public.devdocs.json';
diff --git a/api_docs/kbn_security_plugin_types_server.mdx b/api_docs/kbn_security_plugin_types_server.mdx
index 74e451fec8311..77a3ae21d5342 100644
--- a/api_docs/kbn_security_plugin_types_server.mdx
+++ b/api_docs/kbn_security_plugin_types_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-plugin-types-server
title: "@kbn/security-plugin-types-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/security-plugin-types-server plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-plugin-types-server']
---
import kbnSecurityPluginTypesServerObj from './kbn_security_plugin_types_server.devdocs.json';
diff --git a/api_docs/kbn_security_solution_features.mdx b/api_docs/kbn_security_solution_features.mdx
index 0ab5bd2d60b74..f9925717d160d 100644
--- a/api_docs/kbn_security_solution_features.mdx
+++ b/api_docs/kbn_security_solution_features.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-features
title: "@kbn/security-solution-features"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/security-solution-features plugin
-date: 2024-06-03
+date: 2024-06-04
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 1202171368bc4..48edea46ff52c 100644
--- a/api_docs/kbn_security_solution_navigation.mdx
+++ b/api_docs/kbn_security_solution_navigation.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-navigation
title: "@kbn/security-solution-navigation"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/security-solution-navigation plugin
-date: 2024-06-03
+date: 2024-06-04
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 0ddeea134f5bd..fbbf079873b23 100644
--- a/api_docs/kbn_security_solution_side_nav.mdx
+++ b/api_docs/kbn_security_solution_side_nav.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-side-nav
title: "@kbn/security-solution-side-nav"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/security-solution-side-nav plugin
-date: 2024-06-03
+date: 2024-06-04
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 7461bb2cd348e..7a7e621602751 100644
--- a/api_docs/kbn_security_solution_storybook_config.mdx
+++ b/api_docs/kbn_security_solution_storybook_config.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-storybook-config
title: "@kbn/security-solution-storybook-config"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/security-solution-storybook-config plugin
-date: 2024-06-03
+date: 2024-06-04
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 79c9b824a07f8..d5d8caa7c47b1 100644
--- a/api_docs/kbn_securitysolution_autocomplete.mdx
+++ b/api_docs/kbn_securitysolution_autocomplete.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-autocomplete
title: "@kbn/securitysolution-autocomplete"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-autocomplete plugin
-date: 2024-06-03
+date: 2024-06-04
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 b425160c7dafa..b498f7f2293fd 100644
--- a/api_docs/kbn_securitysolution_data_table.mdx
+++ b/api_docs/kbn_securitysolution_data_table.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-data-table
title: "@kbn/securitysolution-data-table"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-data-table plugin
-date: 2024-06-03
+date: 2024-06-04
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 a9090951c55db..48724c039c797 100644
--- a/api_docs/kbn_securitysolution_ecs.mdx
+++ b/api_docs/kbn_securitysolution_ecs.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-ecs
title: "@kbn/securitysolution-ecs"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-ecs plugin
-date: 2024-06-03
+date: 2024-06-04
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 0ba88017f85f1..07b72ac0a94ac 100644
--- a/api_docs/kbn_securitysolution_es_utils.mdx
+++ b/api_docs/kbn_securitysolution_es_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-es-utils
title: "@kbn/securitysolution-es-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-es-utils plugin
-date: 2024-06-03
+date: 2024-06-04
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 719e2bda020a5..1881bc407d8ed 100644
--- a/api_docs/kbn_securitysolution_exception_list_components.mdx
+++ b/api_docs/kbn_securitysolution_exception_list_components.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-exception-list-components
title: "@kbn/securitysolution-exception-list-components"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-exception-list-components plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-exception-list-components']
---
import kbnSecuritysolutionExceptionListComponentsObj from './kbn_securitysolution_exception_list_components.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_hook_utils.mdx b/api_docs/kbn_securitysolution_hook_utils.mdx
index 0eb18bb6bc50a..d423faed4f6ef 100644
--- a/api_docs/kbn_securitysolution_hook_utils.mdx
+++ b/api_docs/kbn_securitysolution_hook_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-hook-utils
title: "@kbn/securitysolution-hook-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-hook-utils plugin
-date: 2024-06-03
+date: 2024-06-04
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 297d198d1d924..feae86006ef11 100644
--- a/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx
+++ b/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-alerting-types
title: "@kbn/securitysolution-io-ts-alerting-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-io-ts-alerting-types plugin
-date: 2024-06-03
+date: 2024-06-04
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 ba0d9ebad056a..6de4cdab04abe 100644
--- a/api_docs/kbn_securitysolution_io_ts_list_types.mdx
+++ b/api_docs/kbn_securitysolution_io_ts_list_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-list-types
title: "@kbn/securitysolution-io-ts-list-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-io-ts-list-types plugin
-date: 2024-06-03
+date: 2024-06-04
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 9f092208485c8..3b340c9a1e0bf 100644
--- a/api_docs/kbn_securitysolution_io_ts_types.mdx
+++ b/api_docs/kbn_securitysolution_io_ts_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-types
title: "@kbn/securitysolution-io-ts-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-io-ts-types plugin
-date: 2024-06-03
+date: 2024-06-04
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 6cd5601698f3f..579598104c568 100644
--- a/api_docs/kbn_securitysolution_io_ts_utils.mdx
+++ b/api_docs/kbn_securitysolution_io_ts_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-utils
title: "@kbn/securitysolution-io-ts-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-io-ts-utils plugin
-date: 2024-06-03
+date: 2024-06-04
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 3c4e46db0b5bb..930c9466af6d0 100644
--- a/api_docs/kbn_securitysolution_list_api.mdx
+++ b/api_docs/kbn_securitysolution_list_api.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-api
title: "@kbn/securitysolution-list-api"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-list-api plugin
-date: 2024-06-03
+date: 2024-06-04
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 ededf00bef9d4..8006fe3c5c51e 100644
--- a/api_docs/kbn_securitysolution_list_constants.mdx
+++ b/api_docs/kbn_securitysolution_list_constants.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-constants
title: "@kbn/securitysolution-list-constants"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-list-constants plugin
-date: 2024-06-03
+date: 2024-06-04
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 244095e5d95e9..0780e67d92889 100644
--- a/api_docs/kbn_securitysolution_list_hooks.mdx
+++ b/api_docs/kbn_securitysolution_list_hooks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-hooks
title: "@kbn/securitysolution-list-hooks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-list-hooks plugin
-date: 2024-06-03
+date: 2024-06-04
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 0be8dd6853e54..ab71f21b181f4 100644
--- a/api_docs/kbn_securitysolution_list_utils.mdx
+++ b/api_docs/kbn_securitysolution_list_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-utils
title: "@kbn/securitysolution-list-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-list-utils plugin
-date: 2024-06-03
+date: 2024-06-04
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 8f4af48cd0338..e7249b40b1261 100644
--- a/api_docs/kbn_securitysolution_rules.mdx
+++ b/api_docs/kbn_securitysolution_rules.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-rules
title: "@kbn/securitysolution-rules"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-rules plugin
-date: 2024-06-03
+date: 2024-06-04
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 e92f9af5eabb3..c97515ca78479 100644
--- a/api_docs/kbn_securitysolution_t_grid.mdx
+++ b/api_docs/kbn_securitysolution_t_grid.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-t-grid
title: "@kbn/securitysolution-t-grid"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-t-grid plugin
-date: 2024-06-03
+date: 2024-06-04
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 5f7adf788877d..fc9c9ca9dfb21 100644
--- a/api_docs/kbn_securitysolution_utils.mdx
+++ b/api_docs/kbn_securitysolution_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-utils
title: "@kbn/securitysolution-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-utils plugin
-date: 2024-06-03
+date: 2024-06-04
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.devdocs.json b/api_docs/kbn_server_http_tools.devdocs.json
index 1fe0296f941f7..c5fb8122cb494 100644
--- a/api_docs/kbn_server_http_tools.devdocs.json
+++ b/api_docs/kbn_server_http_tools.devdocs.json
@@ -426,7 +426,13 @@
"text": "IHttpConfig"
},
", options: GetServerListenerOptions) => ",
- "ServerListener"
+ {
+ "pluginId": "@kbn/server-http-tools",
+ "scope": "common",
+ "docId": "kibKbnServerHttpToolsPluginApi",
+ "section": "def-common.ServerListener",
+ "text": "ServerListener"
+ }
],
"path": "packages/kbn-server-http-tools/src/get_listener.ts",
"deprecated": false,
@@ -719,6 +725,20 @@
"deprecated": false,
"trackAdoption": false,
"children": [
+ {
+ "parentPluginId": "@kbn/server-http-tools",
+ "id": "def-common.IHttpConfig.protocol",
+ "type": "CompoundType",
+ "tags": [],
+ "label": "protocol",
+ "description": [],
+ "signature": [
+ "\"http1\" | \"http2\""
+ ],
+ "path": "packages/kbn-server-http-tools/src/types.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
{
"parentPluginId": "@kbn/server-http-tools",
"id": "def-common.IHttpConfig.host",
@@ -1003,7 +1023,115 @@
}
],
"enums": [],
- "misc": [],
+ "misc": [
+ {
+ "parentPluginId": "@kbn/server-http-tools",
+ "id": "def-common.ServerListener",
+ "type": "Type",
+ "tags": [],
+ "label": "ServerListener",
+ "description": [
+ "\nComposite type of all possible kind of Listener types.\n\nUnfortunately, there's no real common interface between all those concrete classes,\nas `net.Server` and `tls.Server` don't list all the APIs we're using (such as event binding)"
+ ],
+ "signature": [
+ "Http2Server",
+ " | ",
+ "Http2SecureServer",
+ " | ",
+ "Server",
+ " | ",
+ "Server",
+ ""
+ ],
+ "path": "packages/kbn-server-http-tools/src/types.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "initialIsOpen": false
+ },
+ {
+ "parentPluginId": "@kbn/server-http-tools",
+ "id": "def-common.ServerProtocol",
+ "type": "Type",
+ "tags": [],
+ "label": "ServerProtocol",
+ "description": [],
+ "signature": [
+ "\"http1\" | \"http2\""
+ ],
+ "path": "packages/kbn-server-http-tools/src/types.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "initialIsOpen": false
+ },
+ {
+ "parentPluginId": "@kbn/server-http-tools",
+ "id": "def-common.TLS_V1",
+ "type": "string",
+ "tags": [],
+ "label": "TLS_V1",
+ "description": [],
+ "signature": [
+ "\"TLSv1\""
+ ],
+ "path": "packages/kbn-server-http-tools/src/ssl/constants.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "initialIsOpen": false
+ },
+ {
+ "parentPluginId": "@kbn/server-http-tools",
+ "id": "def-common.TLS_V1_1",
+ "type": "string",
+ "tags": [],
+ "label": "TLS_V1_1",
+ "description": [],
+ "signature": [
+ "\"TLSv1.1\""
+ ],
+ "path": "packages/kbn-server-http-tools/src/ssl/constants.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "initialIsOpen": false
+ },
+ {
+ "parentPluginId": "@kbn/server-http-tools",
+ "id": "def-common.TLS_V1_2",
+ "type": "string",
+ "tags": [],
+ "label": "TLS_V1_2",
+ "description": [],
+ "signature": [
+ "\"TLSv1.2\""
+ ],
+ "path": "packages/kbn-server-http-tools/src/ssl/constants.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "initialIsOpen": false
+ },
+ {
+ "parentPluginId": "@kbn/server-http-tools",
+ "id": "def-common.TLS_V1_3",
+ "type": "string",
+ "tags": [],
+ "label": "TLS_V1_3",
+ "description": [],
+ "signature": [
+ "\"TLSv1.3\""
+ ],
+ "path": "packages/kbn-server-http-tools/src/ssl/constants.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "initialIsOpen": false
+ }
+ ],
"objects": [
{
"parentPluginId": "@kbn/server-http-tools",
diff --git a/api_docs/kbn_server_http_tools.mdx b/api_docs/kbn_server_http_tools.mdx
index d9ea87f7d977f..5ad85ce655b40 100644
--- a/api_docs/kbn_server_http_tools.mdx
+++ b/api_docs/kbn_server_http_tools.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-http-tools
title: "@kbn/server-http-tools"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/server-http-tools plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/server-http-tools']
---
import kbnServerHttpToolsObj from './kbn_server_http_tools.devdocs.json';
@@ -21,7 +21,7 @@ Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core
| Public API count | Any count | Items lacking comments | Missing exports |
|-------------------|-----------|------------------------|-----------------|
-| 62 | 0 | 58 | 1 |
+| 69 | 0 | 64 | 0 |
## Common
@@ -37,3 +37,6 @@ Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core
### Interfaces
+### Consts, variables and types
+
+
diff --git a/api_docs/kbn_server_route_repository.mdx b/api_docs/kbn_server_route_repository.mdx
index 9de6f637a5bef..36416aad90ecb 100644
--- a/api_docs/kbn_server_route_repository.mdx
+++ b/api_docs/kbn_server_route_repository.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-route-repository
title: "@kbn/server-route-repository"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/server-route-repository plugin
-date: 2024-06-03
+date: 2024-06-04
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 ea4b3e9f67c0b..b6d7a6ef1d604 100644
--- a/api_docs/kbn_serverless_common_settings.mdx
+++ b/api_docs/kbn_serverless_common_settings.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-common-settings
title: "@kbn/serverless-common-settings"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/serverless-common-settings plugin
-date: 2024-06-03
+date: 2024-06-04
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 b50f399505ca1..7b44e4529465d 100644
--- a/api_docs/kbn_serverless_observability_settings.mdx
+++ b/api_docs/kbn_serverless_observability_settings.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-observability-settings
title: "@kbn/serverless-observability-settings"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/serverless-observability-settings plugin
-date: 2024-06-03
+date: 2024-06-04
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 63f0fbe32aada..13f4fe1b5be78 100644
--- a/api_docs/kbn_serverless_project_switcher.mdx
+++ b/api_docs/kbn_serverless_project_switcher.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-project-switcher
title: "@kbn/serverless-project-switcher"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/serverless-project-switcher plugin
-date: 2024-06-03
+date: 2024-06-04
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 e6161f16e5515..1ffb6c3631923 100644
--- a/api_docs/kbn_serverless_search_settings.mdx
+++ b/api_docs/kbn_serverless_search_settings.mdx
@@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-serverless-search-settings
title: "@kbn/serverless-search-settings"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/serverless-search-settings plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-search-settings']
---
import kbnServerlessSearchSettingsObj from './kbn_serverless_search_settings.devdocs.json';
-Contact [@elastic/enterprise-search-frontend @elastic/kibana-management](https://github.com/orgs/elastic/teams/enterprise-search-frontend ) for questions regarding this plugin.
+Contact [@elastic/search-kibana @elastic/kibana-management](https://github.com/orgs/elastic/teams/search-kibana ) for questions regarding this plugin.
**Code health stats**
diff --git a/api_docs/kbn_serverless_security_settings.mdx b/api_docs/kbn_serverless_security_settings.mdx
index b074a5bcfe658..ad421bb0f58cf 100644
--- a/api_docs/kbn_serverless_security_settings.mdx
+++ b/api_docs/kbn_serverless_security_settings.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-security-settings
title: "@kbn/serverless-security-settings"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/serverless-security-settings plugin
-date: 2024-06-03
+date: 2024-06-04
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 9901949cdf76c..9829f8c88a64a 100644
--- a/api_docs/kbn_serverless_storybook_config.mdx
+++ b/api_docs/kbn_serverless_storybook_config.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-storybook-config
title: "@kbn/serverless-storybook-config"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/serverless-storybook-config plugin
-date: 2024-06-03
+date: 2024-06-04
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 d66def742d2c8..37ae621f25c1b 100644
--- a/api_docs/kbn_shared_svg.mdx
+++ b/api_docs/kbn_shared_svg.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-svg
title: "@kbn/shared-svg"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-svg plugin
-date: 2024-06-03
+date: 2024-06-04
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 670798622a62a..b3e854a5fd569 100644
--- a/api_docs/kbn_shared_ux_avatar_solution.mdx
+++ b/api_docs/kbn_shared_ux_avatar_solution.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-avatar-solution
title: "@kbn/shared-ux-avatar-solution"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-avatar-solution plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-avatar-solution']
---
import kbnSharedUxAvatarSolutionObj from './kbn_shared_ux_avatar_solution.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_button_exit_full_screen.mdx b/api_docs/kbn_shared_ux_button_exit_full_screen.mdx
index 6db947b53b5b2..f986ba7fcd8da 100644
--- a/api_docs/kbn_shared_ux_button_exit_full_screen.mdx
+++ b/api_docs/kbn_shared_ux_button_exit_full_screen.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-exit-full-screen
title: "@kbn/shared-ux-button-exit-full-screen"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-button-exit-full-screen plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-button-exit-full-screen']
---
import kbnSharedUxButtonExitFullScreenObj from './kbn_shared_ux_button_exit_full_screen.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_button_toolbar.mdx b/api_docs/kbn_shared_ux_button_toolbar.mdx
index 5167c4115fa98..b1f9a57be0a69 100644
--- a/api_docs/kbn_shared_ux_button_toolbar.mdx
+++ b/api_docs/kbn_shared_ux_button_toolbar.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-toolbar
title: "@kbn/shared-ux-button-toolbar"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-button-toolbar plugin
-date: 2024-06-03
+date: 2024-06-04
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 731da11610b15..58b716ca56db2 100644
--- a/api_docs/kbn_shared_ux_card_no_data.mdx
+++ b/api_docs/kbn_shared_ux_card_no_data.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-card-no-data
title: "@kbn/shared-ux-card-no-data"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-card-no-data plugin
-date: 2024-06-03
+date: 2024-06-04
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 a62cbfd324b51..463c20be58ad1 100644
--- a/api_docs/kbn_shared_ux_card_no_data_mocks.mdx
+++ b/api_docs/kbn_shared_ux_card_no_data_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-card-no-data-mocks
title: "@kbn/shared-ux-card-no-data-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-card-no-data-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 d1a3fc9a1ab58..63fc262be2225 100644
--- a/api_docs/kbn_shared_ux_chrome_navigation.mdx
+++ b/api_docs/kbn_shared_ux_chrome_navigation.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-chrome-navigation
title: "@kbn/shared-ux-chrome-navigation"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-chrome-navigation plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-chrome-navigation']
---
import kbnSharedUxChromeNavigationObj from './kbn_shared_ux_chrome_navigation.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_error_boundary.mdx b/api_docs/kbn_shared_ux_error_boundary.mdx
index eda2299ac635e..ddd4bab29696c 100644
--- a/api_docs/kbn_shared_ux_error_boundary.mdx
+++ b/api_docs/kbn_shared_ux_error_boundary.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-error-boundary
title: "@kbn/shared-ux-error-boundary"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-error-boundary plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-error-boundary']
---
import kbnSharedUxErrorBoundaryObj from './kbn_shared_ux_error_boundary.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_file_context.mdx b/api_docs/kbn_shared_ux_file_context.mdx
index 7f0174722587d..3705f2404056d 100644
--- a/api_docs/kbn_shared_ux_file_context.mdx
+++ b/api_docs/kbn_shared_ux_file_context.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-context
title: "@kbn/shared-ux-file-context"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-file-context plugin
-date: 2024-06-03
+date: 2024-06-04
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 3dff1baa02967..342dbe38787a3 100644
--- a/api_docs/kbn_shared_ux_file_image.mdx
+++ b/api_docs/kbn_shared_ux_file_image.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-image
title: "@kbn/shared-ux-file-image"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-file-image plugin
-date: 2024-06-03
+date: 2024-06-04
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 59f21a48defbf..d506fbc2a4a28 100644
--- a/api_docs/kbn_shared_ux_file_image_mocks.mdx
+++ b/api_docs/kbn_shared_ux_file_image_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-image-mocks
title: "@kbn/shared-ux-file-image-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-file-image-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 fc575362846ed..bac14a33a1ccd 100644
--- a/api_docs/kbn_shared_ux_file_mocks.mdx
+++ b/api_docs/kbn_shared_ux_file_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-mocks
title: "@kbn/shared-ux-file-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-file-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 be7809bdb9b83..e40cebda23a69 100644
--- a/api_docs/kbn_shared_ux_file_picker.mdx
+++ b/api_docs/kbn_shared_ux_file_picker.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-picker
title: "@kbn/shared-ux-file-picker"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-file-picker plugin
-date: 2024-06-03
+date: 2024-06-04
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 ed331ac28ab7f..d55875c5b6025 100644
--- a/api_docs/kbn_shared_ux_file_types.mdx
+++ b/api_docs/kbn_shared_ux_file_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-types
title: "@kbn/shared-ux-file-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-file-types plugin
-date: 2024-06-03
+date: 2024-06-04
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 9641172deaf18..2bda47f698624 100644
--- a/api_docs/kbn_shared_ux_file_upload.mdx
+++ b/api_docs/kbn_shared_ux_file_upload.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-upload
title: "@kbn/shared-ux-file-upload"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-file-upload plugin
-date: 2024-06-03
+date: 2024-06-04
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 8207dba63e547..8137a97da64d8 100644
--- a/api_docs/kbn_shared_ux_file_util.mdx
+++ b/api_docs/kbn_shared_ux_file_util.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-util
title: "@kbn/shared-ux-file-util"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-file-util plugin
-date: 2024-06-03
+date: 2024-06-04
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 f1f5f0f456627..77cb645f6b43f 100644
--- a/api_docs/kbn_shared_ux_link_redirect_app.mdx
+++ b/api_docs/kbn_shared_ux_link_redirect_app.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-link-redirect-app
title: "@kbn/shared-ux-link-redirect-app"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-link-redirect-app plugin
-date: 2024-06-03
+date: 2024-06-04
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 a9cadb860fd0f..5500cb7e41d40 100644
--- a/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx
+++ b/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-link-redirect-app-mocks
title: "@kbn/shared-ux-link-redirect-app-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-link-redirect-app-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 e3627ec2c03c1..5d29035f61c39 100644
--- a/api_docs/kbn_shared_ux_markdown.mdx
+++ b/api_docs/kbn_shared_ux_markdown.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-markdown
title: "@kbn/shared-ux-markdown"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-markdown plugin
-date: 2024-06-03
+date: 2024-06-04
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 7bb644f60301a..895edeacf68f6 100644
--- a/api_docs/kbn_shared_ux_markdown_mocks.mdx
+++ b/api_docs/kbn_shared_ux_markdown_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-markdown-mocks
title: "@kbn/shared-ux-markdown-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-markdown-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 9c75f8f07234b..cf715bdb36593 100644
--- a/api_docs/kbn_shared_ux_page_analytics_no_data.mdx
+++ b/api_docs/kbn_shared_ux_page_analytics_no_data.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-analytics-no-data
title: "@kbn/shared-ux-page-analytics-no-data"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-analytics-no-data plugin
-date: 2024-06-03
+date: 2024-06-04
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 a407508af374a..c397aeb92b2e4 100644
--- a/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx
+++ b/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-analytics-no-data-mocks
title: "@kbn/shared-ux-page-analytics-no-data-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-analytics-no-data-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 7fe1a75e5b780..94d38dfd54782 100644
--- a/api_docs/kbn_shared_ux_page_kibana_no_data.mdx
+++ b/api_docs/kbn_shared_ux_page_kibana_no_data.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-no-data
title: "@kbn/shared-ux-page-kibana-no-data"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-kibana-no-data plugin
-date: 2024-06-03
+date: 2024-06-04
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 6266f824c2446..e0761e759b837 100644
--- a/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx
+++ b/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-no-data-mocks
title: "@kbn/shared-ux-page-kibana-no-data-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-kibana-no-data-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 fb66fe31e3eb8..a4e9f91351140 100644
--- a/api_docs/kbn_shared_ux_page_kibana_template.mdx
+++ b/api_docs/kbn_shared_ux_page_kibana_template.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-template
title: "@kbn/shared-ux-page-kibana-template"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-kibana-template plugin
-date: 2024-06-03
+date: 2024-06-04
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 2dbc35a724ccc..f4d5968b0a337 100644
--- a/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx
+++ b/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-template-mocks
title: "@kbn/shared-ux-page-kibana-template-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-kibana-template-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 8cf4fd1f6cd4d..0a5164fd5c76a 100644
--- a/api_docs/kbn_shared_ux_page_no_data.mdx
+++ b/api_docs/kbn_shared_ux_page_no_data.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data
title: "@kbn/shared-ux-page-no-data"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-no-data plugin
-date: 2024-06-03
+date: 2024-06-04
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 b776251448260..90690632183a4 100644
--- a/api_docs/kbn_shared_ux_page_no_data_config.mdx
+++ b/api_docs/kbn_shared_ux_page_no_data_config.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-config
title: "@kbn/shared-ux-page-no-data-config"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-no-data-config plugin
-date: 2024-06-03
+date: 2024-06-04
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 af23fd316aed2..d08f0722c6151 100644
--- a/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx
+++ b/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-config-mocks
title: "@kbn/shared-ux-page-no-data-config-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-no-data-config-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 c40ae59269bb4..eb5d02f99ddba 100644
--- a/api_docs/kbn_shared_ux_page_no_data_mocks.mdx
+++ b/api_docs/kbn_shared_ux_page_no_data_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-mocks
title: "@kbn/shared-ux-page-no-data-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-no-data-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 338ccb24b9df4..9bc94feb14a8b 100644
--- a/api_docs/kbn_shared_ux_page_solution_nav.mdx
+++ b/api_docs/kbn_shared_ux_page_solution_nav.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-solution-nav
title: "@kbn/shared-ux-page-solution-nav"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-solution-nav plugin
-date: 2024-06-03
+date: 2024-06-04
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 c03a911174cb1..c328cbabcb744 100644
--- a/api_docs/kbn_shared_ux_prompt_no_data_views.mdx
+++ b/api_docs/kbn_shared_ux_prompt_no_data_views.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-no-data-views
title: "@kbn/shared-ux-prompt-no-data-views"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-prompt-no-data-views plugin
-date: 2024-06-03
+date: 2024-06-04
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 dd2c5bed2abb1..17a19b9f7cfc0 100644
--- a/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx
+++ b/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-no-data-views-mocks
title: "@kbn/shared-ux-prompt-no-data-views-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-prompt-no-data-views-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 bbda55713f6d3..ebb38aabd6c25 100644
--- a/api_docs/kbn_shared_ux_prompt_not_found.mdx
+++ b/api_docs/kbn_shared_ux_prompt_not_found.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-not-found
title: "@kbn/shared-ux-prompt-not-found"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-prompt-not-found plugin
-date: 2024-06-03
+date: 2024-06-04
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 062ea76a0460f..f1d9b5815ae8b 100644
--- a/api_docs/kbn_shared_ux_router.mdx
+++ b/api_docs/kbn_shared_ux_router.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-router
title: "@kbn/shared-ux-router"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-router plugin
-date: 2024-06-03
+date: 2024-06-04
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 2c961d7c9eff6..6664130e78292 100644
--- a/api_docs/kbn_shared_ux_router_mocks.mdx
+++ b/api_docs/kbn_shared_ux_router_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-router-mocks
title: "@kbn/shared-ux-router-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-router-mocks plugin
-date: 2024-06-03
+date: 2024-06-04
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 cee5e97d7c74f..2966b3db82372 100644
--- a/api_docs/kbn_shared_ux_storybook_config.mdx
+++ b/api_docs/kbn_shared_ux_storybook_config.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-storybook-config
title: "@kbn/shared-ux-storybook-config"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-storybook-config plugin
-date: 2024-06-03
+date: 2024-06-04
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 0ceaf131a9ddf..6a94cc7c53360 100644
--- a/api_docs/kbn_shared_ux_storybook_mock.mdx
+++ b/api_docs/kbn_shared_ux_storybook_mock.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-storybook-mock
title: "@kbn/shared-ux-storybook-mock"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-storybook-mock plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-storybook-mock']
---
import kbnSharedUxStorybookMockObj from './kbn_shared_ux_storybook_mock.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_tabbed_modal.mdx b/api_docs/kbn_shared_ux_tabbed_modal.mdx
index bc3924ec64d3f..9afbe4446698c 100644
--- a/api_docs/kbn_shared_ux_tabbed_modal.mdx
+++ b/api_docs/kbn_shared_ux_tabbed_modal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-tabbed-modal
title: "@kbn/shared-ux-tabbed-modal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-tabbed-modal plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-tabbed-modal']
---
import kbnSharedUxTabbedModalObj from './kbn_shared_ux_tabbed_modal.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_utility.mdx b/api_docs/kbn_shared_ux_utility.mdx
index 0c8c824c87b27..eed75a199e0ed 100644
--- a/api_docs/kbn_shared_ux_utility.mdx
+++ b/api_docs/kbn_shared_ux_utility.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-utility
title: "@kbn/shared-ux-utility"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-utility plugin
-date: 2024-06-03
+date: 2024-06-04
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 376b151d20dc6..4c255fc80b4a8 100644
--- a/api_docs/kbn_slo_schema.mdx
+++ b/api_docs/kbn_slo_schema.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-slo-schema
title: "@kbn/slo-schema"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/slo-schema plugin
-date: 2024-06-03
+date: 2024-06-04
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 88a2ee02d062b..ca31c85679193 100644
--- a/api_docs/kbn_some_dev_log.mdx
+++ b/api_docs/kbn_some_dev_log.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-some-dev-log
title: "@kbn/some-dev-log"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/some-dev-log plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/some-dev-log']
---
import kbnSomeDevLogObj from './kbn_some_dev_log.devdocs.json';
diff --git a/api_docs/kbn_sort_predicates.mdx b/api_docs/kbn_sort_predicates.mdx
index 4c3a0aa3bda3a..9c7b1b93cf9de 100644
--- a/api_docs/kbn_sort_predicates.mdx
+++ b/api_docs/kbn_sort_predicates.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-sort-predicates
title: "@kbn/sort-predicates"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/sort-predicates plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/sort-predicates']
---
import kbnSortPredicatesObj from './kbn_sort_predicates.devdocs.json';
diff --git a/api_docs/kbn_std.mdx b/api_docs/kbn_std.mdx
index 0e91aec189c4b..f92ede7b57f2d 100644
--- a/api_docs/kbn_std.mdx
+++ b/api_docs/kbn_std.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-std
title: "@kbn/std"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/std plugin
-date: 2024-06-03
+date: 2024-06-04
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 5891c4b6af9a3..19bf3c52e3afc 100644
--- a/api_docs/kbn_stdio_dev_helpers.mdx
+++ b/api_docs/kbn_stdio_dev_helpers.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-stdio-dev-helpers
title: "@kbn/stdio-dev-helpers"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/stdio-dev-helpers plugin
-date: 2024-06-03
+date: 2024-06-04
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 8e544aac4fa37..d2cb6ca687029 100644
--- a/api_docs/kbn_storybook.mdx
+++ b/api_docs/kbn_storybook.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-storybook
title: "@kbn/storybook"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/storybook plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/storybook']
---
import kbnStorybookObj from './kbn_storybook.devdocs.json';
diff --git a/api_docs/kbn_telemetry_tools.mdx b/api_docs/kbn_telemetry_tools.mdx
index 5a260cdfbaf07..a55c69027b05b 100644
--- a/api_docs/kbn_telemetry_tools.mdx
+++ b/api_docs/kbn_telemetry_tools.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-telemetry-tools
title: "@kbn/telemetry-tools"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/telemetry-tools plugin
-date: 2024-06-03
+date: 2024-06-04
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 bcd55c035e7d4..58ab6a9175848 100644
--- a/api_docs/kbn_test.mdx
+++ b/api_docs/kbn_test.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test
title: "@kbn/test"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/test plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test']
---
import kbnTestObj from './kbn_test.devdocs.json';
diff --git a/api_docs/kbn_test_eui_helpers.mdx b/api_docs/kbn_test_eui_helpers.mdx
index 62b4d2d4b35f9..56ad2884c9809 100644
--- a/api_docs/kbn_test_eui_helpers.mdx
+++ b/api_docs/kbn_test_eui_helpers.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-eui-helpers
title: "@kbn/test-eui-helpers"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/test-eui-helpers plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test-eui-helpers']
---
import kbnTestEuiHelpersObj from './kbn_test_eui_helpers.devdocs.json';
diff --git a/api_docs/kbn_test_jest_helpers.mdx b/api_docs/kbn_test_jest_helpers.mdx
index ce8d93414ec90..49e9af52900d2 100644
--- a/api_docs/kbn_test_jest_helpers.mdx
+++ b/api_docs/kbn_test_jest_helpers.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-jest-helpers
title: "@kbn/test-jest-helpers"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/test-jest-helpers plugin
-date: 2024-06-03
+date: 2024-06-04
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 d8e041eabb5e9..8b4e27598ec1a 100644
--- a/api_docs/kbn_test_subj_selector.mdx
+++ b/api_docs/kbn_test_subj_selector.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-subj-selector
title: "@kbn/test-subj-selector"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/test-subj-selector plugin
-date: 2024-06-03
+date: 2024-06-04
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 d41ff60011229..883ac5a574579 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: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/text-based-editor']
---
import kbnTextBasedEditorObj from './kbn_text_based_editor.devdocs.json';
diff --git a/api_docs/kbn_timerange.mdx b/api_docs/kbn_timerange.mdx
index dae1e7781db7d..e988cb9111b78 100644
--- a/api_docs/kbn_timerange.mdx
+++ b/api_docs/kbn_timerange.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-timerange
title: "@kbn/timerange"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/timerange plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/timerange']
---
import kbnTimerangeObj from './kbn_timerange.devdocs.json';
diff --git a/api_docs/kbn_tooling_log.mdx b/api_docs/kbn_tooling_log.mdx
index 5ef569f96b4a2..32586ac126066 100644
--- a/api_docs/kbn_tooling_log.mdx
+++ b/api_docs/kbn_tooling_log.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-tooling-log
title: "@kbn/tooling-log"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/tooling-log plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/tooling-log']
---
import kbnToolingLogObj from './kbn_tooling_log.devdocs.json';
diff --git a/api_docs/kbn_triggers_actions_ui_types.mdx b/api_docs/kbn_triggers_actions_ui_types.mdx
index 7e625beec31ac..37c1287066f9b 100644
--- a/api_docs/kbn_triggers_actions_ui_types.mdx
+++ b/api_docs/kbn_triggers_actions_ui_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-triggers-actions-ui-types
title: "@kbn/triggers-actions-ui-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/triggers-actions-ui-types plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/triggers-actions-ui-types']
---
import kbnTriggersActionsUiTypesObj from './kbn_triggers_actions_ui_types.devdocs.json';
diff --git a/api_docs/kbn_try_in_console.mdx b/api_docs/kbn_try_in_console.mdx
index f6feab6d054b1..8ef5eabc1ff01 100644
--- a/api_docs/kbn_try_in_console.mdx
+++ b/api_docs/kbn_try_in_console.mdx
@@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kbn-try-in-console
title: "@kbn/try-in-console"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/try-in-console plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/try-in-console']
---
import kbnTryInConsoleObj from './kbn_try_in_console.devdocs.json';
-Contact [@elastic/enterprise-search-frontend](https://github.com/orgs/elastic/teams/enterprise-search-frontend) for questions regarding this plugin.
+Contact [@elastic/search-kibana](https://github.com/orgs/elastic/teams/search-kibana) for questions regarding this plugin.
**Code health stats**
diff --git a/api_docs/kbn_ts_projects.mdx b/api_docs/kbn_ts_projects.mdx
index 5a91310ec9b47..c5ce9c4b89390 100644
--- a/api_docs/kbn_ts_projects.mdx
+++ b/api_docs/kbn_ts_projects.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ts-projects
title: "@kbn/ts-projects"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ts-projects plugin
-date: 2024-06-03
+date: 2024-06-04
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 551d4dfdd8650..c7883dd67c5cf 100644
--- a/api_docs/kbn_typed_react_router_config.mdx
+++ b/api_docs/kbn_typed_react_router_config.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-typed-react-router-config
title: "@kbn/typed-react-router-config"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/typed-react-router-config plugin
-date: 2024-06-03
+date: 2024-06-04
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 9ba210a58c66b..f003d7c103466 100644
--- a/api_docs/kbn_ui_actions_browser.mdx
+++ b/api_docs/kbn_ui_actions_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-actions-browser
title: "@kbn/ui-actions-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ui-actions-browser plugin
-date: 2024-06-03
+date: 2024-06-04
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 a0b8936fdafae..c8c59dfc253e3 100644
--- a/api_docs/kbn_ui_shared_deps_src.mdx
+++ b/api_docs/kbn_ui_shared_deps_src.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-shared-deps-src
title: "@kbn/ui-shared-deps-src"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ui-shared-deps-src plugin
-date: 2024-06-03
+date: 2024-06-04
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 9e93f030bee2a..af8227058ba14 100644
--- a/api_docs/kbn_ui_theme.mdx
+++ b/api_docs/kbn_ui_theme.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-theme
title: "@kbn/ui-theme"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ui-theme plugin
-date: 2024-06-03
+date: 2024-06-04
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.devdocs.json b/api_docs/kbn_unified_data_table.devdocs.json
index 62ec6c771ecc3..951029c44915f 100644
--- a/api_docs/kbn_unified_data_table.devdocs.json
+++ b/api_docs/kbn_unified_data_table.devdocs.json
@@ -532,7 +532,7 @@
"label": "UnifiedDataTable",
"description": [],
"signature": [
- "({ ariaLabelledBy, columns, columnsMeta, showColumnTokens, configHeaderRowHeight, headerRowHeightState, onUpdateHeaderRowHeight, controlColumnIds, dataView, loadingState, onFilter, onResize, onSetColumns, onSort, rows, searchDescription, searchTitle, settings, showTimeCol, showFullScreenButton, sort, useNewFieldsApi, isSortEnabled, isPaginationEnabled, cellActionsTriggerId, className, rowHeightState, onUpdateRowHeight, maxAllowedSampleSize, sampleSizeState, onUpdateSampleSize, isPlainRecord, rowsPerPageState, onUpdateRowsPerPage, onFieldEdited, services, renderCustomGridBody, renderCustomToolbar, trailingControlColumns, totalHits, onFetchMoreRecords, renderDocumentView, setExpandedDoc, expandedDoc, configRowHeight, showMultiFields, maxDocFieldsDisplayed, externalControlColumns, externalAdditionalControls, rowsPerPageOptions, visibleCellActions, externalCustomRenderers, consumer, componentsTourSteps, gridStyleOverride, rowLineHeightOverride, cellActionsMetadata, customGridColumnsConfiguration, customControlColumnsConfiguration, enableComparisonMode, cellContext, renderCellPopover, }: ",
+ "({ ariaLabelledBy, columns, columnsMeta, showColumnTokens, configHeaderRowHeight, headerRowHeightState, onUpdateHeaderRowHeight, controlColumnIds, dataView, loadingState, onFilter, onResize, onSetColumns, onSort, rows, searchDescription, searchTitle, settings, showTimeCol, showFullScreenButton, sort, useNewFieldsApi, isSortEnabled, isPaginationEnabled, cellActionsTriggerId, className, rowHeightState, onUpdateRowHeight, maxAllowedSampleSize, sampleSizeState, onUpdateSampleSize, isPlainRecord, rowsPerPageState, onUpdateRowsPerPage, onFieldEdited, services, renderCustomGridBody, renderCustomToolbar, trailingControlColumns, totalHits, onFetchMoreRecords, renderDocumentView, setExpandedDoc, expandedDoc, configRowHeight, showMultiFields, maxDocFieldsDisplayed, externalControlColumns, externalAdditionalControls, rowsPerPageOptions, visibleCellActions, externalCustomRenderers, additionalFieldGroups, consumer, componentsTourSteps, gridStyleOverride, rowLineHeightOverride, cellActionsMetadata, customGridColumnsConfiguration, customControlColumnsConfiguration, enableComparisonMode, cellContext, renderCellPopover, }: ",
{
"pluginId": "@kbn/unified-data-table",
"scope": "common",
@@ -551,7 +551,7 @@
"id": "def-common.UnifiedDataTable.$1",
"type": "Object",
"tags": [],
- "label": "{\n ariaLabelledBy,\n columns,\n columnsMeta,\n showColumnTokens,\n configHeaderRowHeight,\n headerRowHeightState,\n onUpdateHeaderRowHeight,\n controlColumnIds = CONTROL_COLUMN_IDS_DEFAULT,\n dataView,\n loadingState,\n onFilter,\n onResize,\n onSetColumns,\n onSort,\n rows,\n searchDescription,\n searchTitle,\n settings,\n showTimeCol,\n showFullScreenButton = true,\n sort,\n useNewFieldsApi,\n isSortEnabled = true,\n isPaginationEnabled = true,\n cellActionsTriggerId,\n className,\n rowHeightState,\n onUpdateRowHeight,\n maxAllowedSampleSize,\n sampleSizeState,\n onUpdateSampleSize,\n isPlainRecord = false,\n rowsPerPageState,\n onUpdateRowsPerPage,\n onFieldEdited,\n services,\n renderCustomGridBody,\n renderCustomToolbar,\n trailingControlColumns,\n totalHits,\n onFetchMoreRecords,\n renderDocumentView,\n setExpandedDoc,\n expandedDoc,\n configRowHeight,\n showMultiFields = true,\n maxDocFieldsDisplayed = 50,\n externalControlColumns,\n externalAdditionalControls,\n rowsPerPageOptions,\n visibleCellActions,\n externalCustomRenderers,\n consumer = 'discover',\n componentsTourSteps,\n gridStyleOverride,\n rowLineHeightOverride,\n cellActionsMetadata,\n customGridColumnsConfiguration,\n customControlColumnsConfiguration,\n enableComparisonMode,\n cellContext,\n renderCellPopover,\n}",
+ "label": "{\n ariaLabelledBy,\n columns,\n columnsMeta,\n showColumnTokens,\n configHeaderRowHeight,\n headerRowHeightState,\n onUpdateHeaderRowHeight,\n controlColumnIds = CONTROL_COLUMN_IDS_DEFAULT,\n dataView,\n loadingState,\n onFilter,\n onResize,\n onSetColumns,\n onSort,\n rows,\n searchDescription,\n searchTitle,\n settings,\n showTimeCol,\n showFullScreenButton = true,\n sort,\n useNewFieldsApi,\n isSortEnabled = true,\n isPaginationEnabled = true,\n cellActionsTriggerId,\n className,\n rowHeightState,\n onUpdateRowHeight,\n maxAllowedSampleSize,\n sampleSizeState,\n onUpdateSampleSize,\n isPlainRecord = false,\n rowsPerPageState,\n onUpdateRowsPerPage,\n onFieldEdited,\n services,\n renderCustomGridBody,\n renderCustomToolbar,\n trailingControlColumns,\n totalHits,\n onFetchMoreRecords,\n renderDocumentView,\n setExpandedDoc,\n expandedDoc,\n configRowHeight,\n showMultiFields = true,\n maxDocFieldsDisplayed = 50,\n externalControlColumns,\n externalAdditionalControls,\n rowsPerPageOptions,\n visibleCellActions,\n externalCustomRenderers,\n additionalFieldGroups,\n consumer = 'discover',\n componentsTourSteps,\n gridStyleOverride,\n rowLineHeightOverride,\n cellActionsMetadata,\n customGridColumnsConfiguration,\n customControlColumnsConfiguration,\n enableComparisonMode,\n cellContext,\n renderCellPopover,\n}",
"description": [],
"signature": [
{
@@ -2159,6 +2159,37 @@
"deprecated": false,
"trackAdoption": false
},
+ {
+ "parentPluginId": "@kbn/unified-data-table",
+ "id": "def-common.UnifiedDataTableProps.additionalFieldGroups",
+ "type": "Object",
+ "tags": [],
+ "label": "additionalFieldGroups",
+ "description": [
+ "\nAn optional prop to provide awareness of additional field groups when paired with the Unified Field List."
+ ],
+ "signature": [
+ {
+ "pluginId": "@kbn/unified-field-list",
+ "scope": "common",
+ "docId": "kibKbnUnifiedFieldListPluginApi",
+ "section": "def-common.AdditionalFieldGroups",
+ "text": "AdditionalFieldGroups"
+ },
+ "<",
+ {
+ "pluginId": "@kbn/field-utils",
+ "scope": "common",
+ "docId": "kibKbnFieldUtilsPluginApi",
+ "section": "def-common.FieldBase",
+ "text": "FieldBase"
+ },
+ "> | undefined"
+ ],
+ "path": "packages/kbn-unified-data-table/src/components/data_table.tsx",
+ "deprecated": false,
+ "trackAdoption": false
+ },
{
"parentPluginId": "@kbn/unified-data-table",
"id": "def-common.UnifiedDataTableProps.customGridColumnsConfiguration",
diff --git a/api_docs/kbn_unified_data_table.mdx b/api_docs/kbn_unified_data_table.mdx
index e80b5673c1031..46e899eae011f 100644
--- a/api_docs/kbn_unified_data_table.mdx
+++ b/api_docs/kbn_unified_data_table.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-unified-data-table
title: "@kbn/unified-data-table"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/unified-data-table plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unified-data-table']
---
import kbnUnifiedDataTableObj from './kbn_unified_data_table.devdocs.json';
@@ -21,7 +21,7 @@ Contact [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/k
| Public API count | Any count | Items lacking comments | Missing exports |
|-------------------|-----------|------------------------|-----------------|
-| 151 | 0 | 80 | 2 |
+| 152 | 0 | 80 | 2 |
## Common
diff --git a/api_docs/kbn_unified_doc_viewer.mdx b/api_docs/kbn_unified_doc_viewer.mdx
index 2a28e0e4d661c..f3bc90bb13cb3 100644
--- a/api_docs/kbn_unified_doc_viewer.mdx
+++ b/api_docs/kbn_unified_doc_viewer.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-unified-doc-viewer
title: "@kbn/unified-doc-viewer"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/unified-doc-viewer plugin
-date: 2024-06-03
+date: 2024-06-04
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.devdocs.json b/api_docs/kbn_unified_field_list.devdocs.json
index 0b81540944ce4..c9bc5510c86c2 100644
--- a/api_docs/kbn_unified_field_list.devdocs.json
+++ b/api_docs/kbn_unified_field_list.devdocs.json
@@ -19,6 +19,41 @@
"common": {
"classes": [],
"functions": [
+ {
+ "parentPluginId": "@kbn/unified-field-list",
+ "id": "def-common.convertFieldsToFallbackFields",
+ "type": "Function",
+ "tags": [],
+ "label": "convertFieldsToFallbackFields",
+ "description": [
+ "\nConverts fields to fallback fields where necessary, e.g. in the case of Smart Fields which\ndon't map 1:1 with a real backing field."
+ ],
+ "signature": [
+ "(props: FieldsInfo) => string[]"
+ ],
+ "path": "packages/kbn-unified-field-list/src/utils/fallback_fields.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": [
+ {
+ "parentPluginId": "@kbn/unified-field-list",
+ "id": "def-common.convertFieldsToFallbackFields.$1",
+ "type": "Object",
+ "tags": [],
+ "label": "props",
+ "description": [],
+ "signature": [
+ "FieldsInfo"
+ ],
+ "path": "packages/kbn-unified-field-list/src/utils/fallback_fields.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "isRequired": true
+ }
+ ],
+ "returnComment": [],
+ "initialIsOpen": false
+ },
{
"parentPluginId": "@kbn/unified-field-list",
"id": "def-common.FieldItemButton",
@@ -559,6 +594,249 @@
],
"initialIsOpen": false
},
+ {
+ "parentPluginId": "@kbn/unified-field-list",
+ "id": "def-common.getAllFallbackFields",
+ "type": "Function",
+ "tags": [],
+ "label": "getAllFallbackFields",
+ "description": [
+ "\nProvides a flat list of all fallback fields"
+ ],
+ "signature": [
+ "(additionalFieldGroups?: ",
+ {
+ "pluginId": "@kbn/unified-field-list",
+ "scope": "common",
+ "docId": "kibKbnUnifiedFieldListPluginApi",
+ "section": "def-common.AdditionalFieldGroups",
+ "text": "AdditionalFieldGroups"
+ },
+ "<",
+ {
+ "pluginId": "@kbn/field-utils",
+ "scope": "common",
+ "docId": "kibKbnFieldUtilsPluginApi",
+ "section": "def-common.FieldBase",
+ "text": "FieldBase"
+ },
+ "> | undefined) => string[]"
+ ],
+ "path": "packages/kbn-unified-field-list/src/utils/fallback_fields.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": [
+ {
+ "parentPluginId": "@kbn/unified-field-list",
+ "id": "def-common.getAllFallbackFields.$1",
+ "type": "Object",
+ "tags": [],
+ "label": "additionalFieldGroups",
+ "description": [],
+ "signature": [
+ {
+ "pluginId": "@kbn/unified-field-list",
+ "scope": "common",
+ "docId": "kibKbnUnifiedFieldListPluginApi",
+ "section": "def-common.AdditionalFieldGroups",
+ "text": "AdditionalFieldGroups"
+ },
+ "<",
+ {
+ "pluginId": "@kbn/field-utils",
+ "scope": "common",
+ "docId": "kibKbnFieldUtilsPluginApi",
+ "section": "def-common.FieldBase",
+ "text": "FieldBase"
+ },
+ "> | undefined"
+ ],
+ "path": "packages/kbn-unified-field-list/src/utils/fallback_fields.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "isRequired": false
+ }
+ ],
+ "returnComment": [],
+ "initialIsOpen": false
+ },
+ {
+ "parentPluginId": "@kbn/unified-field-list",
+ "id": "def-common.getAssociatedSmartFields",
+ "type": "Function",
+ "tags": [],
+ "label": "getAssociatedSmartFields",
+ "description": [
+ "\nReturns a list of Smart Fields associated with a given fallback field name."
+ ],
+ "signature": [
+ "(fieldName: string, additionalFieldGroups?: ",
+ {
+ "pluginId": "@kbn/unified-field-list",
+ "scope": "common",
+ "docId": "kibKbnUnifiedFieldListPluginApi",
+ "section": "def-common.AdditionalFieldGroups",
+ "text": "AdditionalFieldGroups"
+ },
+ "<",
+ {
+ "pluginId": "@kbn/field-utils",
+ "scope": "common",
+ "docId": "kibKbnFieldUtilsPluginApi",
+ "section": "def-common.FieldBase",
+ "text": "FieldBase"
+ },
+ "> | undefined) => string[]"
+ ],
+ "path": "packages/kbn-unified-field-list/src/utils/fallback_fields.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": [
+ {
+ "parentPluginId": "@kbn/unified-field-list",
+ "id": "def-common.getAssociatedSmartFields.$1",
+ "type": "string",
+ "tags": [],
+ "label": "fieldName",
+ "description": [],
+ "signature": [
+ "string"
+ ],
+ "path": "packages/kbn-unified-field-list/src/utils/fallback_fields.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "isRequired": true
+ },
+ {
+ "parentPluginId": "@kbn/unified-field-list",
+ "id": "def-common.getAssociatedSmartFields.$2",
+ "type": "Object",
+ "tags": [],
+ "label": "additionalFieldGroups",
+ "description": [],
+ "signature": [
+ {
+ "pluginId": "@kbn/unified-field-list",
+ "scope": "common",
+ "docId": "kibKbnUnifiedFieldListPluginApi",
+ "section": "def-common.AdditionalFieldGroups",
+ "text": "AdditionalFieldGroups"
+ },
+ "<",
+ {
+ "pluginId": "@kbn/field-utils",
+ "scope": "common",
+ "docId": "kibKbnFieldUtilsPluginApi",
+ "section": "def-common.FieldBase",
+ "text": "FieldBase"
+ },
+ "> | undefined"
+ ],
+ "path": "packages/kbn-unified-field-list/src/utils/fallback_fields.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "isRequired": false
+ }
+ ],
+ "returnComment": [],
+ "initialIsOpen": false
+ },
+ {
+ "parentPluginId": "@kbn/unified-field-list",
+ "id": "def-common.getAssociatedSmartFieldsAsString",
+ "type": "Function",
+ "tags": [],
+ "label": "getAssociatedSmartFieldsAsString",
+ "description": [
+ "\nReturns a list of Smart Fields associated with a given fallback field name formatted as a string."
+ ],
+ "signature": [
+ "(fieldName: string, additionalFieldGroups?: ",
+ {
+ "pluginId": "@kbn/unified-field-list",
+ "scope": "common",
+ "docId": "kibKbnUnifiedFieldListPluginApi",
+ "section": "def-common.AdditionalFieldGroups",
+ "text": "AdditionalFieldGroups"
+ },
+ "<",
+ {
+ "pluginId": "@kbn/field-utils",
+ "scope": "common",
+ "docId": "kibKbnFieldUtilsPluginApi",
+ "section": "def-common.FieldBase",
+ "text": "FieldBase"
+ },
+ "> | undefined, delimiter?: string) => string"
+ ],
+ "path": "packages/kbn-unified-field-list/src/utils/fallback_fields.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": [
+ {
+ "parentPluginId": "@kbn/unified-field-list",
+ "id": "def-common.getAssociatedSmartFieldsAsString.$1",
+ "type": "string",
+ "tags": [],
+ "label": "fieldName",
+ "description": [],
+ "signature": [
+ "string"
+ ],
+ "path": "packages/kbn-unified-field-list/src/utils/fallback_fields.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "isRequired": true
+ },
+ {
+ "parentPluginId": "@kbn/unified-field-list",
+ "id": "def-common.getAssociatedSmartFieldsAsString.$2",
+ "type": "Object",
+ "tags": [],
+ "label": "additionalFieldGroups",
+ "description": [],
+ "signature": [
+ {
+ "pluginId": "@kbn/unified-field-list",
+ "scope": "common",
+ "docId": "kibKbnUnifiedFieldListPluginApi",
+ "section": "def-common.AdditionalFieldGroups",
+ "text": "AdditionalFieldGroups"
+ },
+ "<",
+ {
+ "pluginId": "@kbn/field-utils",
+ "scope": "common",
+ "docId": "kibKbnFieldUtilsPluginApi",
+ "section": "def-common.FieldBase",
+ "text": "FieldBase"
+ },
+ "> | undefined"
+ ],
+ "path": "packages/kbn-unified-field-list/src/utils/fallback_fields.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "isRequired": false
+ },
+ {
+ "parentPluginId": "@kbn/unified-field-list",
+ "id": "def-common.getAssociatedSmartFieldsAsString.$3",
+ "type": "string",
+ "tags": [],
+ "label": "delimiter",
+ "description": [],
+ "signature": [
+ "string"
+ ],
+ "path": "packages/kbn-unified-field-list/src/utils/fallback_fields.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "isRequired": true
+ }
+ ],
+ "returnComment": [],
+ "initialIsOpen": false
+ },
{
"parentPluginId": "@kbn/unified-field-list",
"id": "def-common.getSearchMode",
@@ -974,6 +1252,38 @@
"returnComment": [],
"initialIsOpen": false
},
+ {
+ "parentPluginId": "@kbn/unified-field-list",
+ "id": "def-common.SmartFieldFallbackTooltip",
+ "type": "Function",
+ "tags": [],
+ "label": "SmartFieldFallbackTooltip",
+ "description": [],
+ "signature": [
+ "React.ForwardRefExoticComponent<{ associatedSmartFields: string; } & { children?: React.ReactNode; } & React.RefAttributes<{}>>"
+ ],
+ "path": "packages/kbn-unified-field-list/src/components/fallback_fields/index.tsx",
+ "deprecated": false,
+ "trackAdoption": false,
+ "returnComment": [],
+ "children": [
+ {
+ "parentPluginId": "@kbn/unified-field-list",
+ "id": "def-common.SmartFieldFallbackTooltip.$1",
+ "type": "Uncategorized",
+ "tags": [],
+ "label": "props",
+ "description": [],
+ "signature": [
+ "P"
+ ],
+ "path": "node_modules/@types/react/index.d.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ }
+ ],
+ "initialIsOpen": false
+ },
{
"parentPluginId": "@kbn/unified-field-list",
"id": "def-common.triggerVisualizeActions",
@@ -1600,6 +1910,58 @@
}
],
"interfaces": [
+ {
+ "parentPluginId": "@kbn/unified-field-list",
+ "id": "def-common.AdditionalFieldGroups",
+ "type": "Interface",
+ "tags": [],
+ "label": "AdditionalFieldGroups",
+ "description": [],
+ "signature": [
+ {
+ "pluginId": "@kbn/unified-field-list",
+ "scope": "common",
+ "docId": "kibKbnUnifiedFieldListPluginApi",
+ "section": "def-common.AdditionalFieldGroups",
+ "text": "AdditionalFieldGroups"
+ },
+ ""
+ ],
+ "path": "packages/kbn-unified-field-list/src/types.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": [
+ {
+ "parentPluginId": "@kbn/unified-field-list",
+ "id": "def-common.AdditionalFieldGroups.smartFields",
+ "type": "Array",
+ "tags": [],
+ "label": "smartFields",
+ "description": [],
+ "signature": [
+ "T[] | undefined"
+ ],
+ "path": "packages/kbn-unified-field-list/src/types.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/unified-field-list",
+ "id": "def-common.AdditionalFieldGroups.fallbackFields",
+ "type": "Object",
+ "tags": [],
+ "label": "fallbackFields",
+ "description": [],
+ "signature": [
+ "Record | undefined"
+ ],
+ "path": "packages/kbn-unified-field-list/src/types.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ }
+ ],
+ "initialIsOpen": false
+ },
{
"parentPluginId": "@kbn/unified-field-list",
"id": "def-common.BucketedAggregation",
@@ -2947,21 +3309,69 @@
"description": [],
"signature": [
"{ SpecialFields?: ",
- "FieldsGroup",
+ {
+ "pluginId": "@kbn/unified-field-list",
+ "scope": "common",
+ "docId": "kibKbnUnifiedFieldListPluginApi",
+ "section": "def-common.FieldsGroup",
+ "text": "FieldsGroup"
+ },
" | undefined; SelectedFields?: ",
- "FieldsGroup",
+ {
+ "pluginId": "@kbn/unified-field-list",
+ "scope": "common",
+ "docId": "kibKbnUnifiedFieldListPluginApi",
+ "section": "def-common.FieldsGroup",
+ "text": "FieldsGroup"
+ },
" | undefined; PopularFields?: ",
- "FieldsGroup",
+ {
+ "pluginId": "@kbn/unified-field-list",
+ "scope": "common",
+ "docId": "kibKbnUnifiedFieldListPluginApi",
+ "section": "def-common.FieldsGroup",
+ "text": "FieldsGroup"
+ },
" | undefined; AvailableFields?: ",
- "FieldsGroup",
+ {
+ "pluginId": "@kbn/unified-field-list",
+ "scope": "common",
+ "docId": "kibKbnUnifiedFieldListPluginApi",
+ "section": "def-common.FieldsGroup",
+ "text": "FieldsGroup"
+ },
" | undefined; EmptyFields?: ",
- "FieldsGroup",
+ {
+ "pluginId": "@kbn/unified-field-list",
+ "scope": "common",
+ "docId": "kibKbnUnifiedFieldListPluginApi",
+ "section": "def-common.FieldsGroup",
+ "text": "FieldsGroup"
+ },
" | undefined; MetaFields?: ",
- "FieldsGroup",
+ {
+ "pluginId": "@kbn/unified-field-list",
+ "scope": "common",
+ "docId": "kibKbnUnifiedFieldListPluginApi",
+ "section": "def-common.FieldsGroup",
+ "text": "FieldsGroup"
+ },
" | undefined; UnmappedFields?: ",
- "FieldsGroup",
+ {
+ "pluginId": "@kbn/unified-field-list",
+ "scope": "common",
+ "docId": "kibKbnUnifiedFieldListPluginApi",
+ "section": "def-common.FieldsGroup",
+ "text": "FieldsGroup"
+ },
" | undefined; SmartFields?: ",
- "FieldsGroup",
+ {
+ "pluginId": "@kbn/unified-field-list",
+ "scope": "common",
+ "docId": "kibKbnUnifiedFieldListPluginApi",
+ "section": "def-common.FieldsGroup",
+ "text": "FieldsGroup"
+ },
" | undefined; }"
],
"path": "packages/kbn-unified-field-list/src/components/field_list_grouped/field_list_grouped.tsx",
@@ -3486,6 +3896,76 @@
],
"initialIsOpen": false
},
+ {
+ "parentPluginId": "@kbn/unified-field-list",
+ "id": "def-common.FieldsGroup",
+ "type": "Interface",
+ "tags": [],
+ "label": "FieldsGroup",
+ "description": [],
+ "signature": [
+ {
+ "pluginId": "@kbn/unified-field-list",
+ "scope": "common",
+ "docId": "kibKbnUnifiedFieldListPluginApi",
+ "section": "def-common.FieldsGroup",
+ "text": "FieldsGroup"
+ },
+ " extends ",
+ {
+ "pluginId": "@kbn/unified-field-list",
+ "scope": "common",
+ "docId": "kibKbnUnifiedFieldListPluginApi",
+ "section": "def-common.FieldsGroupDetails",
+ "text": "FieldsGroupDetails"
+ }
+ ],
+ "path": "packages/kbn-unified-field-list/src/types.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": [
+ {
+ "parentPluginId": "@kbn/unified-field-list",
+ "id": "def-common.FieldsGroup.fields",
+ "type": "Array",
+ "tags": [],
+ "label": "fields",
+ "description": [],
+ "signature": [
+ "T[]"
+ ],
+ "path": "packages/kbn-unified-field-list/src/types.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/unified-field-list",
+ "id": "def-common.FieldsGroup.fieldCount",
+ "type": "number",
+ "tags": [],
+ "label": "fieldCount",
+ "description": [],
+ "path": "packages/kbn-unified-field-list/src/types.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/unified-field-list",
+ "id": "def-common.FieldsGroup.fieldSearchHighlight",
+ "type": "string",
+ "tags": [],
+ "label": "fieldSearchHighlight",
+ "description": [],
+ "signature": [
+ "string | undefined"
+ ],
+ "path": "packages/kbn-unified-field-list/src/types.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ }
+ ],
+ "initialIsOpen": false
+ },
{
"parentPluginId": "@kbn/unified-field-list",
"id": "def-common.FieldsGroupDetails",
@@ -4725,7 +5205,14 @@
"label": "additionalFieldGroups",
"description": [],
"signature": [
- "{ smartFields?: T[] | undefined; } | undefined"
+ {
+ "pluginId": "@kbn/unified-field-list",
+ "scope": "common",
+ "docId": "kibKbnUnifiedFieldListPluginApi",
+ "section": "def-common.AdditionalFieldGroups",
+ "text": "AdditionalFieldGroups"
+ },
+ " | undefined"
],
"path": "packages/kbn-unified-field-list/src/hooks/use_grouped_fields.ts",
"deprecated": false,
@@ -5429,21 +5916,69 @@
"description": [],
"signature": [
"{ SpecialFields?: ",
- "FieldsGroup",
+ {
+ "pluginId": "@kbn/unified-field-list",
+ "scope": "common",
+ "docId": "kibKbnUnifiedFieldListPluginApi",
+ "section": "def-common.FieldsGroup",
+ "text": "FieldsGroup"
+ },
" | undefined; SelectedFields?: ",
- "FieldsGroup",
+ {
+ "pluginId": "@kbn/unified-field-list",
+ "scope": "common",
+ "docId": "kibKbnUnifiedFieldListPluginApi",
+ "section": "def-common.FieldsGroup",
+ "text": "FieldsGroup"
+ },
" | undefined; PopularFields?: ",
- "FieldsGroup",
+ {
+ "pluginId": "@kbn/unified-field-list",
+ "scope": "common",
+ "docId": "kibKbnUnifiedFieldListPluginApi",
+ "section": "def-common.FieldsGroup",
+ "text": "FieldsGroup"
+ },
" | undefined; AvailableFields?: ",
- "FieldsGroup",
+ {
+ "pluginId": "@kbn/unified-field-list",
+ "scope": "common",
+ "docId": "kibKbnUnifiedFieldListPluginApi",
+ "section": "def-common.FieldsGroup",
+ "text": "FieldsGroup"
+ },
" | undefined; EmptyFields?: ",
- "FieldsGroup",
+ {
+ "pluginId": "@kbn/unified-field-list",
+ "scope": "common",
+ "docId": "kibKbnUnifiedFieldListPluginApi",
+ "section": "def-common.FieldsGroup",
+ "text": "FieldsGroup"
+ },
" | undefined; MetaFields?: ",
- "FieldsGroup",
+ {
+ "pluginId": "@kbn/unified-field-list",
+ "scope": "common",
+ "docId": "kibKbnUnifiedFieldListPluginApi",
+ "section": "def-common.FieldsGroup",
+ "text": "FieldsGroup"
+ },
" | undefined; UnmappedFields?: ",
- "FieldsGroup",
+ {
+ "pluginId": "@kbn/unified-field-list",
+ "scope": "common",
+ "docId": "kibKbnUnifiedFieldListPluginApi",
+ "section": "def-common.FieldsGroup",
+ "text": "FieldsGroup"
+ },
" | undefined; SmartFields?: ",
- "FieldsGroup",
+ {
+ "pluginId": "@kbn/unified-field-list",
+ "scope": "common",
+ "docId": "kibKbnUnifiedFieldListPluginApi",
+ "section": "def-common.FieldsGroup",
+ "text": "FieldsGroup"
+ },
" | undefined; }"
],
"path": "packages/kbn-unified-field-list/src/types.ts",
diff --git a/api_docs/kbn_unified_field_list.mdx b/api_docs/kbn_unified_field_list.mdx
index ea61067c12af0..a0186235a7a8f 100644
--- a/api_docs/kbn_unified_field_list.mdx
+++ b/api_docs/kbn_unified_field_list.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-unified-field-list
title: "@kbn/unified-field-list"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/unified-field-list plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unified-field-list']
---
import kbnUnifiedFieldListObj from './kbn_unified_field_list.devdocs.json';
@@ -21,7 +21,7 @@ Contact [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/k
| Public API count | Any count | Items lacking comments | Missing exports |
|-------------------|-----------|------------------------|-----------------|
-| 293 | 0 | 269 | 9 |
+| 313 | 0 | 284 | 8 |
## Common
diff --git a/api_docs/kbn_unsaved_changes_badge.mdx b/api_docs/kbn_unsaved_changes_badge.mdx
index f8debcbd743f8..12b3f70e5d8c4 100644
--- a/api_docs/kbn_unsaved_changes_badge.mdx
+++ b/api_docs/kbn_unsaved_changes_badge.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-unsaved-changes-badge
title: "@kbn/unsaved-changes-badge"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/unsaved-changes-badge plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unsaved-changes-badge']
---
import kbnUnsavedChangesBadgeObj from './kbn_unsaved_changes_badge.devdocs.json';
diff --git a/api_docs/kbn_use_tracked_promise.mdx b/api_docs/kbn_use_tracked_promise.mdx
index a466aa51f1741..4cecac96ef7b8 100644
--- a/api_docs/kbn_use_tracked_promise.mdx
+++ b/api_docs/kbn_use_tracked_promise.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-use-tracked-promise
title: "@kbn/use-tracked-promise"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/use-tracked-promise plugin
-date: 2024-06-03
+date: 2024-06-04
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 512de884623fa..94e9edba2c556 100644
--- a/api_docs/kbn_user_profile_components.mdx
+++ b/api_docs/kbn_user_profile_components.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-user-profile-components
title: "@kbn/user-profile-components"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/user-profile-components plugin
-date: 2024-06-03
+date: 2024-06-04
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 3e85c3f48733f..7c02ca9c037fa 100644
--- a/api_docs/kbn_utility_types.mdx
+++ b/api_docs/kbn_utility_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utility-types
title: "@kbn/utility-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/utility-types plugin
-date: 2024-06-03
+date: 2024-06-04
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 5b4f7885bbcbe..3a78c867a5933 100644
--- a/api_docs/kbn_utility_types_jest.mdx
+++ b/api_docs/kbn_utility_types_jest.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utility-types-jest
title: "@kbn/utility-types-jest"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/utility-types-jest plugin
-date: 2024-06-03
+date: 2024-06-04
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 2bacd286e655a..ff8b8b83a4130 100644
--- a/api_docs/kbn_utils.mdx
+++ b/api_docs/kbn_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utils
title: "@kbn/utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/utils plugin
-date: 2024-06-03
+date: 2024-06-04
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 fbf954fe03dd3..a2994f0efc73d 100644
--- a/api_docs/kbn_visualization_ui_components.mdx
+++ b/api_docs/kbn_visualization_ui_components.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-visualization-ui-components
title: "@kbn/visualization-ui-components"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/visualization-ui-components plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/visualization-ui-components']
---
import kbnVisualizationUiComponentsObj from './kbn_visualization_ui_components.devdocs.json';
diff --git a/api_docs/kbn_visualization_utils.mdx b/api_docs/kbn_visualization_utils.mdx
index a57443928bd87..0254c2e191923 100644
--- a/api_docs/kbn_visualization_utils.mdx
+++ b/api_docs/kbn_visualization_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-visualization-utils
title: "@kbn/visualization-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/visualization-utils plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/visualization-utils']
---
import kbnVisualizationUtilsObj from './kbn_visualization_utils.devdocs.json';
diff --git a/api_docs/kbn_xstate_utils.mdx b/api_docs/kbn_xstate_utils.mdx
index b3dd8c35cdcc3..4eb77d9b2450a 100644
--- a/api_docs/kbn_xstate_utils.mdx
+++ b/api_docs/kbn_xstate_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-xstate-utils
title: "@kbn/xstate-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/xstate-utils plugin
-date: 2024-06-03
+date: 2024-06-04
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 d7ff9d9f424af..7eb62236f89ab 100644
--- a/api_docs/kbn_yarn_lock_validator.mdx
+++ b/api_docs/kbn_yarn_lock_validator.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-yarn-lock-validator
title: "@kbn/yarn-lock-validator"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/yarn-lock-validator plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/yarn-lock-validator']
---
import kbnYarnLockValidatorObj from './kbn_yarn_lock_validator.devdocs.json';
diff --git a/api_docs/kbn_zod_helpers.mdx b/api_docs/kbn_zod_helpers.mdx
index 68b7573491045..2a93666e7d5dc 100644
--- a/api_docs/kbn_zod_helpers.mdx
+++ b/api_docs/kbn_zod_helpers.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-zod-helpers
title: "@kbn/zod-helpers"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/zod-helpers plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/zod-helpers']
---
import kbnZodHelpersObj from './kbn_zod_helpers.devdocs.json';
diff --git a/api_docs/kibana_overview.mdx b/api_docs/kibana_overview.mdx
index dc9b4d4c235d9..62b4f53dc3d85 100644
--- a/api_docs/kibana_overview.mdx
+++ b/api_docs/kibana_overview.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaOverview
title: "kibanaOverview"
image: https://source.unsplash.com/400x175/?github
description: API docs for the kibanaOverview plugin
-date: 2024-06-03
+date: 2024-06-04
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 d5eccaeba5d70..f94119037f13a 100644
--- a/api_docs/kibana_react.mdx
+++ b/api_docs/kibana_react.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaReact
title: "kibanaReact"
image: https://source.unsplash.com/400x175/?github
description: API docs for the kibanaReact plugin
-date: 2024-06-03
+date: 2024-06-04
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 69ff9d8860e00..4af6dfa240796 100644
--- a/api_docs/kibana_utils.mdx
+++ b/api_docs/kibana_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaUtils
title: "kibanaUtils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the kibanaUtils plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaUtils']
---
import kibanaUtilsObj from './kibana_utils.devdocs.json';
diff --git a/api_docs/kubernetes_security.mdx b/api_docs/kubernetes_security.mdx
index 812bc47e169e3..73c0fd38181b8 100644
--- a/api_docs/kubernetes_security.mdx
+++ b/api_docs/kubernetes_security.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kubernetesSecurity
title: "kubernetesSecurity"
image: https://source.unsplash.com/400x175/?github
description: API docs for the kubernetesSecurity plugin
-date: 2024-06-03
+date: 2024-06-04
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 b2bd29b7cbbfc..5c0a387a3a4b3 100644
--- a/api_docs/lens.mdx
+++ b/api_docs/lens.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/lens
title: "lens"
image: https://source.unsplash.com/400x175/?github
description: API docs for the lens plugin
-date: 2024-06-03
+date: 2024-06-04
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 71b03e7271d09..d5e111d88c9e1 100644
--- a/api_docs/license_api_guard.mdx
+++ b/api_docs/license_api_guard.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licenseApiGuard
title: "licenseApiGuard"
image: https://source.unsplash.com/400x175/?github
description: API docs for the licenseApiGuard plugin
-date: 2024-06-03
+date: 2024-06-04
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 2088b41eb1280..7d13cfcb77fc1 100644
--- a/api_docs/license_management.mdx
+++ b/api_docs/license_management.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licenseManagement
title: "licenseManagement"
image: https://source.unsplash.com/400x175/?github
description: API docs for the licenseManagement plugin
-date: 2024-06-03
+date: 2024-06-04
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 927686eca4f5d..dd2c454636094 100644
--- a/api_docs/licensing.mdx
+++ b/api_docs/licensing.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licensing
title: "licensing"
image: https://source.unsplash.com/400x175/?github
description: API docs for the licensing plugin
-date: 2024-06-03
+date: 2024-06-04
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 d34bc601bf5c7..4106c89d16aaf 100644
--- a/api_docs/links.mdx
+++ b/api_docs/links.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/links
title: "links"
image: https://source.unsplash.com/400x175/?github
description: API docs for the links plugin
-date: 2024-06-03
+date: 2024-06-04
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 92a7ce31964a3..dacf1a7d516ed 100644
--- a/api_docs/lists.mdx
+++ b/api_docs/lists.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/lists
title: "lists"
image: https://source.unsplash.com/400x175/?github
description: API docs for the lists plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'lists']
---
import listsObj from './lists.devdocs.json';
diff --git a/api_docs/logs_data_access.mdx b/api_docs/logs_data_access.mdx
index a53c5599b62ca..e3863f9840afa 100644
--- a/api_docs/logs_data_access.mdx
+++ b/api_docs/logs_data_access.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/logsDataAccess
title: "logsDataAccess"
image: https://source.unsplash.com/400x175/?github
description: API docs for the logsDataAccess plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'logsDataAccess']
---
import logsDataAccessObj from './logs_data_access.devdocs.json';
diff --git a/api_docs/logs_explorer.mdx b/api_docs/logs_explorer.mdx
index 575bfb3f1475c..822ad7ef859f5 100644
--- a/api_docs/logs_explorer.mdx
+++ b/api_docs/logs_explorer.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/logsExplorer
title: "logsExplorer"
image: https://source.unsplash.com/400x175/?github
description: API docs for the logsExplorer plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'logsExplorer']
---
import logsExplorerObj from './logs_explorer.devdocs.json';
diff --git a/api_docs/logs_shared.mdx b/api_docs/logs_shared.mdx
index e4a52a2ab0100..39d5da75d1a74 100644
--- a/api_docs/logs_shared.mdx
+++ b/api_docs/logs_shared.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/logsShared
title: "logsShared"
image: https://source.unsplash.com/400x175/?github
description: API docs for the logsShared plugin
-date: 2024-06-03
+date: 2024-06-04
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 3a1cd6092091d..13b2b23fd3cc7 100644
--- a/api_docs/management.mdx
+++ b/api_docs/management.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/management
title: "management"
image: https://source.unsplash.com/400x175/?github
description: API docs for the management plugin
-date: 2024-06-03
+date: 2024-06-04
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 e57b9ee86a787..9568d3a987895 100644
--- a/api_docs/maps.mdx
+++ b/api_docs/maps.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/maps
title: "maps"
image: https://source.unsplash.com/400x175/?github
description: API docs for the maps plugin
-date: 2024-06-03
+date: 2024-06-04
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 e08e5e85d68db..d42771ec6d16c 100644
--- a/api_docs/maps_ems.mdx
+++ b/api_docs/maps_ems.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/mapsEms
title: "mapsEms"
image: https://source.unsplash.com/400x175/?github
description: API docs for the mapsEms plugin
-date: 2024-06-03
+date: 2024-06-04
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 a4a680866aa24..3c5517e607752 100644
--- a/api_docs/metrics_data_access.mdx
+++ b/api_docs/metrics_data_access.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/metricsDataAccess
title: "metricsDataAccess"
image: https://source.unsplash.com/400x175/?github
description: API docs for the metricsDataAccess plugin
-date: 2024-06-03
+date: 2024-06-04
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 13b94c3868b0d..d37441d295689 100644
--- a/api_docs/ml.mdx
+++ b/api_docs/ml.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ml
title: "ml"
image: https://source.unsplash.com/400x175/?github
description: API docs for the ml plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ml']
---
import mlObj from './ml.devdocs.json';
diff --git a/api_docs/mock_idp_plugin.mdx b/api_docs/mock_idp_plugin.mdx
index 3a1b9c760297c..95ba3fc6c3bf3 100644
--- a/api_docs/mock_idp_plugin.mdx
+++ b/api_docs/mock_idp_plugin.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/mockIdpPlugin
title: "mockIdpPlugin"
image: https://source.unsplash.com/400x175/?github
description: API docs for the mockIdpPlugin plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'mockIdpPlugin']
---
import mockIdpPluginObj from './mock_idp_plugin.devdocs.json';
diff --git a/api_docs/monitoring.mdx b/api_docs/monitoring.mdx
index fa5fc4acf42ef..dacb914d39fd6 100644
--- a/api_docs/monitoring.mdx
+++ b/api_docs/monitoring.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/monitoring
title: "monitoring"
image: https://source.unsplash.com/400x175/?github
description: API docs for the monitoring plugin
-date: 2024-06-03
+date: 2024-06-04
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 e793bcbdaa061..d255ead74837a 100644
--- a/api_docs/monitoring_collection.mdx
+++ b/api_docs/monitoring_collection.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/monitoringCollection
title: "monitoringCollection"
image: https://source.unsplash.com/400x175/?github
description: API docs for the monitoringCollection plugin
-date: 2024-06-03
+date: 2024-06-04
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'monitoringCollection']
---
import monitoringCollectionObj from './monitoring_collection.devdocs.json';
diff --git a/api_docs/navigation.devdocs.json b/api_docs/navigation.devdocs.json
index b7efc6f653965..477be6c8ab345 100644
--- a/api_docs/navigation.devdocs.json
+++ b/api_docs/navigation.devdocs.json
@@ -80,9 +80,7 @@
"section": "def-common.PluginInitializerContext",
"text": "PluginInitializerContext"
},
- "<",
- "ConfigSchema",
- ">"
+ "