From 598843f7ca2b887beb6d91c525b438fd3bfe6531 Mon Sep 17 00:00:00 2001 From: Jon Date: Mon, 23 Jan 2023 17:36:26 -0600 Subject: [PATCH 01/26] [artifacts/container-image] Trigger image tag update (#149143) After a commit is merged, tested, and images are built and pushed to the container registry we need to send a notification that a new tag is available. This triggers a promotion pipeline with the latest container tag when: 1) the branch is tracked (i.e. main, and not a personal branch) 1) ~triggered from our on-merge test pipeline.~ https://github.com/elastic/kibana/pull/149350 had to remove support for this - we're triggering via REST now which removes the from trigger environment variable. Co-authored-by: Tiago Costa --- .../scripts/steps/artifacts/docker_image.sh | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/.buildkite/scripts/steps/artifacts/docker_image.sh b/.buildkite/scripts/steps/artifacts/docker_image.sh index edd82152aae2..a47372359893 100755 --- a/.buildkite/scripts/steps/artifacts/docker_image.sh +++ b/.buildkite/scripts/steps/artifacts/docker_image.sh @@ -65,3 +65,23 @@ buildkite-agent artifact upload "kibana-$BASE_VERSION-docker-image.tar.gz" buildkite-agent artifact upload "kibana-$BASE_VERSION-docker-image-aarch64.tar.gz" buildkite-agent artifact upload "dependencies-$GIT_ABBREV_COMMIT.csv" cd - + +echo "--- Trigger image tag update" +if [[ "$BUILDKITE_BRANCH" == "$KIBANA_BASE_BRANCH" ]]; then + + cat << EOF | buildkite-agent pipeline upload +steps: + - trigger: k8s-gitops-update-image-tag + label: "Update image tag for deployment-api" + branches: main + build: + env: + MODE: sed + TARGET_FILE: app-config-controllers.yaml + IMAGE_TAG: "$KIBANA_IMAGE" + SERVICE: app-config-controllers +EOF + +else + echo "Skipping update for untracked branch $BUILDKITE_BRANCH" +fi From bbc909b34795480163f3649f7e245739f47f37f4 Mon Sep 17 00:00:00 2001 From: Lisa Cawley Date: Mon, 23 Jan 2023 16:14:00 -0800 Subject: [PATCH 02/26] [RAM] [Flapping] Edit flapping rule settings UI text (#149086) Co-authored-by: Jiawei Wu --- .../alerting/server/rules_settings_feature.ts | 2 +- .../rules_settings_flapping_form_section.tsx | 21 +++++++++++++++-- .../rules_setting/rules_settings_modal.tsx | 23 ++++++++++++------- 3 files changed, 35 insertions(+), 11 deletions(-) diff --git a/x-pack/plugins/alerting/server/rules_settings_feature.ts b/x-pack/plugins/alerting/server/rules_settings_feature.ts index c207d337a2b2..5c420fd32bd3 100644 --- a/x-pack/plugins/alerting/server/rules_settings_feature.ts +++ b/x-pack/plugins/alerting/server/rules_settings_feature.ts @@ -55,7 +55,7 @@ export const rulesSettingsFeature: KibanaFeatureConfig = { subFeatures: [ { name: i18n.translate('xpack.alerting.feature.flappingSettingsSubFeatureName', { - defaultMessage: 'Flapping Detection', + defaultMessage: 'Flapping detection', }), privilegeGroups: [ { diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/rules_setting/rules_settings_flapping_form_section.tsx b/x-pack/plugins/triggers_actions_ui/public/application/components/rules_setting/rules_settings_flapping_form_section.tsx index bfde62591f62..ef915eae6869 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/components/rules_setting/rules_settings_flapping_form_section.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/rules_setting/rules_settings_flapping_form_section.tsx @@ -39,6 +39,13 @@ const lookBackWindowLabel = i18n.translate( } ); +const lookBackWindowHelp = i18n.translate( + 'xpack.triggersActionsUI.rulesSettings.flapping.lookBackWindowHelp', + { + defaultMessage: 'The minimum number of runs in which the threshold must be met.', + } +); + const statusChangeThresholdLabel = i18n.translate( 'xpack.triggersActionsUI.rulesSettings.flapping.statusChangeThresholdLabel', { @@ -46,6 +53,14 @@ const statusChangeThresholdLabel = i18n.translate( } ); +const statusChangeThresholdHelp = i18n.translate( + 'xpack.triggersActionsUI.rulesSettings.flapping.statusChangeThresholdHelp', + { + defaultMessage: + 'The minimum number of times an alert must switch states in the look back window.', + } +); + const getLookBackWindowLabelRuleRuns = (amount: number) => { return i18n.translate( 'xpack.triggersActionsUI.rulesSettings.flapping.lookBackWindowLabelRuleRuns', @@ -82,7 +97,7 @@ export const RulesSettingsFlappingTitle = () => {
@@ -177,6 +192,7 @@ export const RulesSettingsFlappingFormSection = memo( value={lookBackWindow} onChange={(e) => onChange('lookBackWindow', parseInt(e.currentTarget.value, 10))} label={lookBackWindowLabel} + labelPopoverText={lookBackWindowHelp} disabled={!canWriteFlappingSettings} /> @@ -188,6 +204,7 @@ export const RulesSettingsFlappingFormSection = memo( value={statusChangeThreshold} onChange={(e) => onChange('statusChangeThreshold', parseInt(e.currentTarget.value, 10))} label={statusChangeThresholdLabel} + labelPopoverText={statusChangeThresholdHelp} disabled={!canWriteFlappingSettings} /> @@ -196,7 +213,7 @@ export const RulesSettingsFlappingFormSection = memo( {getLookBackWindowLabelRuleRuns(lookBackWindow)}, statusChangeThreshold: ( diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/rules_setting/rules_settings_modal.tsx b/x-pack/plugins/triggers_actions_ui/public/application/components/rules_setting/rules_settings_modal.tsx index 3b9e5d9ecf0a..702fbad50a85 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/components/rules_setting/rules_settings_modal.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/rules_setting/rules_settings_modal.tsx @@ -43,14 +43,21 @@ const flappingDescription = i18n.translate( 'xpack.triggersActionsUI.rulesSettings.modal.flappingDetectionDescription', { defaultMessage: - 'Alerts that go quickly go between active and recovered are considered flapping. Detecting these changes and minimizing new alert generation can help reduce unwanted noise in your alerting system.', + 'Detect alerts that switch quickly between active and recovered states and reduce unwanted noise for these flapping alerts.', } ); -const flappingEnableLabel = i18n.translate( - 'xpack.triggersActionsUI.rulesSettings.modal.enableFlappingLabel', +const flappingOnLabel = i18n.translate( + 'xpack.triggersActionsUI.rulesSettings.modal.flappingOnLabel', { - defaultMessage: 'Enabled flapping detection (recommended)', + defaultMessage: 'On (recommended)', + } +); + +const flappingOffLabel = i18n.translate( + 'xpack.triggersActionsUI.rulesSettings.modal.flappingOffLabel', + { + defaultMessage: 'Off', } ); @@ -100,7 +107,7 @@ export const RulesSettingsModalFormLeft = memo((props: RulesSettingsModalFormLef @@ -258,7 +265,7 @@ export const RulesSettingsModal = memo((props: RulesSettingsModalProps) => {

@@ -267,7 +274,7 @@ export const RulesSettingsModal = memo((props: RulesSettingsModalProps) => { From 4c626f16c0bfc333bf0591f586b082f6c09dd3b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20Fern=C3=A1ndez=20Haro?= Date: Tue, 24 Jan 2023 02:33:53 +0100 Subject: [PATCH 03/26] Unskip Execution Context FTRs (#149070) Resolves https://github.com/elastic/kibana/issues/112102 --- .../src/execution_context_service.test.ts | 2 + .../src/execution_context_service.ts | 1 + .../test_utils.ts | 106 ++++- .../tests/browser.ts | 365 +++++++++++------- .../tests/index.ts | 10 + .../tests/log_correlation.ts | 6 +- .../tests/server.ts | 4 +- 7 files changed, 339 insertions(+), 155 deletions(-) diff --git a/packages/core/execution-context/core-execution-context-browser-internal/src/execution_context_service.test.ts b/packages/core/execution-context/core-execution-context-browser-internal/src/execution_context_service.test.ts index 767d3aa3e2dd..115931632f58 100644 --- a/packages/core/execution-context/core-execution-context-browser-internal/src/execution_context_service.test.ts +++ b/packages/core/execution-context/core-execution-context-browser-internal/src/execution_context_service.test.ts @@ -87,6 +87,7 @@ describe('ExecutionContextService', () => { ` Object { "name": "app2", + "type": "application", "url": "/", } ` @@ -244,6 +245,7 @@ describe('ExecutionContextService', () => { execContext.clear(); expect(sub).toHaveBeenCalledWith({ name: 'app1', + type: 'application', url: '/', }); diff --git a/packages/core/execution-context/core-execution-context-browser-internal/src/execution_context_service.ts b/packages/core/execution-context/core-execution-context-browser-internal/src/execution_context_service.ts index c54747f43c21..e09de53c7872 100644 --- a/packages/core/execution-context/core-execution-context-browser-internal/src/execution_context_service.ts +++ b/packages/core/execution-context/core-execution-context-browser-internal/src/execution_context_service.ts @@ -98,6 +98,7 @@ export class ExecutionContextService private getDefaultContext() { return { + type: 'application', name: this.appId, url: window.location.pathname, }; diff --git a/x-pack/test/functional_execution_context/test_utils.ts b/x-pack/test/functional_execution_context/test_utils.ts index 6cf1af27b0bb..65d0d7ece02c 100644 --- a/x-pack/test/functional_execution_context/test_utils.ts +++ b/x-pack/test/functional_execution_context/test_utils.ts @@ -9,17 +9,26 @@ import Path from 'path'; import { isEqualWith } from 'lodash'; import type { Ecs, KibanaExecutionContext } from '@kbn/core/server'; import type { RetryService } from '@kbn/ftr-common-functional-services'; +import { concatMap, defer, filter, firstValueFrom, ReplaySubject, scan, timeout } from 'rxjs'; export const logFilePath = Path.resolve(__dirname, './kibana.log'); export const ANY = Symbol('any'); +let logstream$: ReplaySubject | undefined; + +export function getExecutionContextFromLogRecord(record: Ecs | undefined): KibanaExecutionContext { + if (record?.log?.logger !== 'execution_context' || !record?.message) { + throw new Error(`The record is not an entry of execution context`); + } + return JSON.parse(record.message); +} + export function isExecutionContextLog( - record: string | undefined, + record: Ecs | undefined, executionContext: KibanaExecutionContext ) { - if (!record) return false; try { - const object = JSON.parse(record); + const object = getExecutionContextFromLogRecord(record); return isEqualWith(object, executionContext, function customizer(obj1: any, obj2: any) { if (obj2 === ANY) return true; }); @@ -41,12 +50,89 @@ export async function assertLogContains({ }): Promise { // logs are written to disk asynchronously. I sacrificed performance to reduce flakiness. await retry.waitFor(description, async () => { - const logsStr = await Fs.readFile(logFilePath, 'utf-8'); - const normalizedRecords = logsStr - .split(endOfLine) - .filter(Boolean) - .map((s) => JSON.parse(s)); - - return normalizedRecords.some(predicate); + if (!logstream$) { + logstream$ = getLogstream$(); + } + try { + await firstValueFrom(logstream$.pipe(filter(predicate), timeout(5_000))); + return true; + } catch (err) { + return false; + } }); } + +/** + * Creates an observable that continuously tails the log file. + */ +function getLogstream$(): ReplaySubject { + const stream$ = new ReplaySubject(); + + defer(async function* () { + const fd = await Fs.open(logFilePath, 'rs'); + while (!stream$.isStopped) { + const { bytesRead, buffer } = await fd.read(); + if (bytesRead) { + yield buffer.toString('utf8', 0, bytesRead); + } + } + await fd.close(); + }) + .pipe( + scan( + ({ buffer }, chunk) => { + const logString = buffer.concat(chunk); + const lines = logString.split(endOfLine); + const lastLine = lines.pop(); + const records = lines.map((s) => JSON.parse(s)); + + let leftover = ''; + if (lastLine) { + try { + const validRecord = JSON.parse(lastLine); + records.push(validRecord); + } catch (err) { + leftover = lastLine; + } + } + + return { buffer: leftover, records }; + }, + { + records: [], // The ECS entries in the logs + buffer: '', // Accumulated leftovers from the previous operation + } + ), + concatMap(({ records }) => records) + ) + .subscribe(stream$); + + // let the content start flowing + stream$.subscribe(); + + return stream$; +} + +export function closeLogstream() { + logstream$?.complete(); + logstream$ = undefined; +} + +/** + * Truncates the log file to avoid tests looking at the logs from previous executions. + */ +export async function clearLogFile() { + closeLogstream(); + await Fs.writeFile(logFilePath, '', 'utf8'); + await forceSyncLogFile(); + logstream$ = getLogstream$(); +} + +/** + * Force the completion of all the pending I/O operations in the OS related to the log file. + */ +export async function forceSyncLogFile() { + const fileDescriptor = await Fs.open(logFilePath); + await fileDescriptor.datasync(); + await fileDescriptor.close(); +} diff --git a/x-pack/test/functional_execution_context/tests/browser.ts b/x-pack/test/functional_execution_context/tests/browser.ts index aa990dccda86..1265fa205f7b 100644 --- a/x-pack/test/functional_execution_context/tests/browser.ts +++ b/x-pack/test/functional_execution_context/tests/browser.ts @@ -5,15 +5,15 @@ * 2.0. */ +import type { Ecs, KibanaExecutionContext } from '@kbn/core/server'; import type { FtrProviderContext } from '../ftr_provider_context'; -import { assertLogContains, isExecutionContextLog } from '../test_utils'; +import { assertLogContains, forceSyncLogFile, isExecutionContextLog } from '../test_utils'; export default function ({ getService, getPageObjects }: FtrProviderContext) { const PageObjects = getPageObjects(['common', 'dashboard', 'header', 'home']); const retry = getService('retry'); - // FLAKY: https://github.com/elastic/kibana/issues/125743 - describe.skip('Browser apps', () => { + describe('Browser apps', () => { before(async () => { await PageObjects.common.navigateToUrl('home', '/tutorial_directory/sampleData', { useActualUrl: true, @@ -34,8 +34,20 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { before(async () => { await PageObjects.common.navigateToApp('discover'); await PageObjects.header.waitUntilLoadingHasFinished(); + await forceSyncLogFile(); }); + function checkExecutionContextEntry(expectedExecutionContext: KibanaExecutionContext) { + return (record: Ecs) => + isExecutionContextLog(record, expectedExecutionContext) || + isExecutionContextLog(record, { + ...expectedExecutionContext, + // There is a race condition that makes these 2 fields to show up some times + page: 'app', + id: 'new', + }); + } + it('propagates context for Discover', async () => { await assertLogContains({ description: 'execution context propagates to Elasticsearch via "x-opaque-id" header', @@ -45,29 +57,46 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); await assertLogContains({ - description: 'execution context propagates to Kibana logs', - predicate: (record) => - isExecutionContextLog(record?.message, { - description: 'fetch documents', - id: '', + description: 'execution context propagates to Kibana logs (fetch documents)', + predicate: checkExecutionContextEntry({ + type: 'application', + name: 'discover', + url: '/app/discover', + child: { name: 'discover', - type: 'application', - // discovery doesn't have an URL since one of from the example dataset is not saved separately url: '/app/discover', - }), + type: 'application', + page: 'app', + id: 'new', + description: 'fetch documents', + }, + }), retry, }); await assertLogContains({ - description: 'execution context propagates to Kibana logs', - predicate: (record) => - isExecutionContextLog(record?.message, { - description: 'fetch chart data and total hits', - id: '', + description: + 'execution context propagates to Kibana logs (fetch chart data and total hits)', + predicate: checkExecutionContextEntry({ + type: 'application', + name: 'discover', + url: '/app/discover', + child: { name: 'discover', - type: 'application', url: '/app/discover', - }), + type: 'application', + page: 'app', + id: 'new', + description: 'fetch chart data and total hits', + child: { + type: 'lens', + name: 'lnsXY', + id: 'unifiedHistogramLensComponent', + description: 'Edit visualization', + url: '/app/lens#/edit_by_value', + }, + }, + }), retry, }); }); @@ -79,30 +108,76 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { await PageObjects.dashboard.loadSavedDashboard('[Flights] Global Flight Dashboard'); await PageObjects.dashboard.waitForRenderComplete(); await PageObjects.header.waitUntilLoadingHasFinished(); + await forceSyncLogFile(); }); + function checkHttpRequestId(suffix: string) { + return (record: Ecs): boolean => + Boolean( + [ + 'kibana:application:dashboards:7adfa750-4c81-11e8-b3d7-01146121b73d;', + // Race conditions may miss the dashboard ID at the top level + 'kibana:application:dashboards:;', + // Race conditions may assign the dashboard type to the top level + 'kibana:dashboard:dashboards:7adfa750-4c81-11e8-b3d7-01146121b73d;', + ].some((prefix) => record.http?.request?.id?.includes(`${prefix}${suffix}`)) + ); + } + + function checkExecutionContextEntry(expectedExecutionContext: KibanaExecutionContext) { + return (record: Ecs) => + isExecutionContextLog(record, expectedExecutionContext) || + isExecutionContextLog(record, { ...expectedExecutionContext, page: 'list' }) || + isExecutionContextLog(record, { ...expectedExecutionContext, page: 'app' }) || + isExecutionContextLog(record, { + ...expectedExecutionContext, + // There is a race condition that makes this field to be missed sometimes + page: 'app', + id: '7adfa750-4c81-11e8-b3d7-01146121b73d', + }) || + isExecutionContextLog(record, { + ...expectedExecutionContext, + // There is a race condition that makes the top context to match the child one + page: 'app', + type: 'dashboard', + id: '7adfa750-4c81-11e8-b3d7-01146121b73d', + }) || + isExecutionContextLog(record, { + ...expectedExecutionContext, + // There is a race condition that makes the top context to match the child one + page: 'app', + type: 'dashboard', + id: '7adfa750-4c81-11e8-b3d7-01146121b73d', + description: '[Flights] Global Flight Dashboard', + }) || + // Some race conditions misses one nested step + (!!expectedExecutionContext.child && + isExecutionContextLog(record, expectedExecutionContext.child)); + } + describe('propagates context for Lens visualizations', () => { it('lnsXY', async () => { await assertLogContains({ description: 'execution context propagates to Elasticsearch via "x-opaque-id" header', - predicate: (record) => - Boolean( - record.http?.request?.id?.includes( - 'kibana:application:dashboard:7adfa750-4c81-11e8-b3d7-01146121b73d;lens:lnsXY:086ac2e9-dd16-4b45-92b8-1e43ff7e3f65' - ) - ), + predicate: checkHttpRequestId( + 'dashboard:dashboards:7adfa750-4c81-11e8-b3d7-01146121b73d;lens:lnsXY:086ac2e9-dd16-4b45-92b8-1e43ff7e3f65' + ), retry, }); await assertLogContains({ description: 'execution context propagates to Kibana logs', - predicate: (record) => - isExecutionContextLog(record?.message, { - type: 'application', - name: 'dashboard', + predicate: checkExecutionContextEntry({ + type: 'application', + name: 'dashboards', + url: '/app/dashboards', + child: { + name: 'dashboards', + url: '/app/dashboards', + type: 'dashboard', + page: 'app', id: '7adfa750-4c81-11e8-b3d7-01146121b73d', description: '[Flights] Global Flight Dashboard', - url: '/view/7adfa750-4c81-11e8-b3d7-01146121b73d', child: { type: 'lens', name: 'lnsXY', @@ -110,7 +185,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { description: '[Flights] Flight count', url: '/app/lens#/edit_by_value', }, - }), + }, + }), retry, }); }); @@ -118,32 +194,34 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { it('lnsMetric', async () => { await assertLogContains({ description: 'execution context propagates to Elasticsearch via "x-opaque-id" header', - predicate: (record) => - Boolean( - record.http?.request?.id?.includes( - 'kibana:application:dashboard:7adfa750-4c81-11e8-b3d7-01146121b73d;lens:lnsMetric:b766e3b8-4544-46ed-99e6-9ecc4847e2a2' - ) - ), + predicate: checkHttpRequestId( + 'dashboard:dashboards:7adfa750-4c81-11e8-b3d7-01146121b73d;lens:lnsLegacyMetric:b766e3b8-4544-46ed-99e6-9ecc4847e2a2' + ), retry, }); await assertLogContains({ description: 'execution context propagates to Kibana logs', - predicate: (record) => - isExecutionContextLog(record?.message, { - type: 'application', - name: 'dashboard', + predicate: checkExecutionContextEntry({ + name: 'dashboards', + url: '/app/dashboards', + type: 'application', + child: { + name: 'dashboards', + url: '/app/dashboards', + type: 'dashboard', + page: 'app', id: '7adfa750-4c81-11e8-b3d7-01146121b73d', description: '[Flights] Global Flight Dashboard', - url: '/view/7adfa750-4c81-11e8-b3d7-01146121b73d', child: { type: 'lens', - name: 'lnsMetric', - id: '2e33ade5-96e5-40b4-b460-493e5d4fa834', + name: 'lnsLegacyMetric', + id: 'b766e3b8-4544-46ed-99e6-9ecc4847e2a2', description: '', url: '/app/lens#/edit_by_value', }, - }), + }, + }), retry, }); }); @@ -151,24 +229,25 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { it('lnsDatatable', async () => { await assertLogContains({ description: 'execution context propagates to Elasticsearch via "x-opaque-id" header', - predicate: (record) => - Boolean( - record.http?.request?.id?.includes( - 'kibana:application:dashboard:7adfa750-4c81-11e8-b3d7-01146121b73d;lens:lnsDatatable:fb86b32f-fb7a-45cf-9511-f366fef51bbd' - ) - ), + predicate: checkHttpRequestId( + 'dashboard:dashboards:7adfa750-4c81-11e8-b3d7-01146121b73d;lens:lnsDatatable:fb86b32f-fb7a-45cf-9511-f366fef51bbd' + ), retry, }); await assertLogContains({ description: 'execution context propagates to Kibana logs', - predicate: (record) => - isExecutionContextLog(record?.message, { - type: 'application', - name: 'dashboard', + predicate: checkExecutionContextEntry({ + name: 'dashboards', + url: '/app/dashboards', + type: 'application', + child: { + name: 'dashboards', + url: '/app/dashboards', + type: 'dashboard', + page: 'app', id: '7adfa750-4c81-11e8-b3d7-01146121b73d', description: '[Flights] Global Flight Dashboard', - url: '/view/7adfa750-4c81-11e8-b3d7-01146121b73d', child: { type: 'lens', name: 'lnsDatatable', @@ -176,7 +255,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { description: 'Cities by delay, cancellation', url: '/app/lens#/edit_by_value', }, - }), + }, + }), retry, }); }); @@ -184,23 +264,24 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { it('lnsPie', async () => { await assertLogContains({ description: 'execution context propagates to Elasticsearch via "x-opaque-id" header', - predicate: (record) => - Boolean( - record.http?.request?.id?.includes( - 'kibana:application:dashboard:7adfa750-4c81-11e8-b3d7-01146121b73d;lens:lnsPie:5d53db36-2d5a-4adc-af7b-cec4c1a294e0' - ) - ), + predicate: checkHttpRequestId( + 'dashboard:dashboards:7adfa750-4c81-11e8-b3d7-01146121b73d;lens:lnsPie:5d53db36-2d5a-4adc-af7b-cec4c1a294e0' + ), retry, }); await assertLogContains({ description: 'execution context propagates to Kibana logs', - predicate: (record) => - isExecutionContextLog(record?.message, { - type: 'application', - name: 'dashboard', + predicate: checkExecutionContextEntry({ + name: 'dashboards', + url: '/app/dashboards', + type: 'application', + child: { + name: 'dashboards', + url: '/app/dashboards', + type: 'dashboard', + page: 'app', id: '7adfa750-4c81-11e8-b3d7-01146121b73d', description: '[Flights] Global Flight Dashboard', - url: '/view/7adfa750-4c81-11e8-b3d7-01146121b73d', child: { type: 'lens', name: 'lnsPie', @@ -208,7 +289,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { description: '[Flights] Delay Type', url: '/app/lens#/edit_by_value', }, - }), + }, + }), retry, }); }); @@ -217,23 +299,24 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { it('propagates context for built-in Discover', async () => { await assertLogContains({ description: 'execution context propagates to Elasticsearch via "x-opaque-id" header', - predicate: (record) => - Boolean( - record.http?.request?.id?.includes( - 'application:dashboard:7adfa750-4c81-11e8-b3d7-01146121b73d;search:discover:571aaf70-4c88-11e8-b3d7-01146121b73d' - ) - ), + predicate: checkHttpRequestId( + 'dashboard:dashboards:7adfa750-4c81-11e8-b3d7-01146121b73d;search:discover:571aaf70-4c88-11e8-b3d7-01146121b73d' + ), retry, }); await assertLogContains({ description: 'execution context propagates to Kibana logs', - predicate: (record) => - isExecutionContextLog(record?.message, { - type: 'application', - name: 'dashboard', + predicate: checkExecutionContextEntry({ + type: 'application', + name: 'dashboards', + url: '/app/dashboards', + child: { + type: 'dashboard', + name: 'dashboards', + url: '/app/dashboards', + page: 'app', id: '7adfa750-4c81-11e8-b3d7-01146121b73d', description: '[Flights] Global Flight Dashboard', - url: '/view/7adfa750-4c81-11e8-b3d7-01146121b73d', child: { type: 'search', name: 'discover', @@ -241,7 +324,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { description: '[Flights] Flight Log', url: '/app/discover#/view/571aaf70-4c88-11e8-b3d7-01146121b73d', }, - }), + }, + }), retry, }); }); @@ -249,66 +333,61 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { it('propagates context for TSVB visualizations', async () => { await assertLogContains({ description: 'execution context propagates to Elasticsearch via "x-opaque-id" header', - predicate: (record) => - Boolean( - record.http?.request?.id?.includes( - 'kibana:application:dashboard:7adfa750-4c81-11e8-b3d7-01146121b73d;visualization:metrics:bcb63b50-4c89-11e8-b3d7-01146121b73d' - ) - ), + predicate: checkHttpRequestId('agg_based:metrics:bcb63b50-4c89-11e8-b3d7-01146121b73d'), retry, }); await assertLogContains({ description: 'execution context propagates to Kibana logs', - predicate: (record) => - isExecutionContextLog(record?.message, { - type: 'application', - name: 'dashboard', - id: '7adfa750-4c81-11e8-b3d7-01146121b73d', - description: '[Flights] Global Flight Dashboard', - url: '/view/7adfa750-4c81-11e8-b3d7-01146121b73d', - child: { - type: 'visualization', - name: 'metrics', - id: 'bcb63b50-4c89-11e8-b3d7-01146121b73d', - description: '[Flights] Delays & Cancellations', - url: '/app/visualize#/edit/bcb63b50-4c89-11e8-b3d7-01146121b73d', - }, - }), + predicate: checkExecutionContextEntry({ + name: 'dashboards', + url: '/app/dashboards', + type: 'application', + page: 'app', + description: '[Flights] Global Flight Dashboard', + child: { + type: 'agg_based', + name: 'metrics', + id: 'bcb63b50-4c89-11e8-b3d7-01146121b73d', + description: '[Flights] Delays & Cancellations', + url: '/app/visualize#/edit/bcb63b50-4c89-11e8-b3d7-01146121b73d', + }, + }), retry, }); }); - // application:dashboard:7adfa750-4c81-11e8-b3d7-01146121b73d;visualization:vega:ed78a660-53a0-11e8-acbd-0be0ad9d822b it('propagates context for Vega visualizations', async () => { await assertLogContains({ description: 'execution context propagates to Elasticsearch via "x-opaque-id" header', - predicate: (record) => - Boolean( - record.http?.request?.id?.includes( - 'kibana:application:dashboard:7adfa750-4c81-11e8-b3d7-01146121b73d;visualization:vega:ed78a660-53a0-11e8-acbd-0be0ad9d822b' - ) - ), + predicate: checkHttpRequestId( + 'dashboard:dashboards:7adfa750-4c81-11e8-b3d7-01146121b73d;agg_based:vega:ed78a660-53a0-11e8-acbd-0be0ad9d822b' + ), retry, }); await assertLogContains({ description: 'execution context propagates to Kibana logs', - predicate: (record) => - isExecutionContextLog(record?.message, { - type: 'application', - name: 'dashboard', + predicate: checkExecutionContextEntry({ + name: 'dashboards', + url: '/app/dashboards', + type: 'application', + child: { + name: 'dashboards', + url: '/app/dashboards', + type: 'dashboard', + page: 'app', id: '7adfa750-4c81-11e8-b3d7-01146121b73d', description: '[Flights] Global Flight Dashboard', - url: '/view/7adfa750-4c81-11e8-b3d7-01146121b73d', child: { - type: 'visualization', + type: 'agg_based', name: 'vega', id: 'ed78a660-53a0-11e8-acbd-0be0ad9d822b', description: '[Flights] Airport Connections (Hover Over Airport)', url: '/app/visualize#/edit/ed78a660-53a0-11e8-acbd-0be0ad9d822b', }, - }), + }, + }), retry, }); }); @@ -316,32 +395,34 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { it('propagates context for Tag Cloud visualization', async () => { await assertLogContains({ description: 'execution context propagates to Elasticsearch via "x-opaque-id" header', - predicate: (record) => - Boolean( - record.http?.request?.id?.includes( - 'kibana:application:dashboard:7adfa750-4c81-11e8-b3d7-01146121b73d;visualization:tagcloud:293b5a30-4c8f-11e8-b3d7-01146121b73d' - ) - ), + predicate: checkHttpRequestId( + 'dashboard:dashboards:7adfa750-4c81-11e8-b3d7-01146121b73d;agg_based:tagcloud:293b5a30-4c8f-11e8-b3d7-01146121b73d' + ), retry, }); await assertLogContains({ description: 'execution context propagates to Kibana logs', - predicate: (record) => - isExecutionContextLog(record?.message, { - type: 'application', - name: 'dashboard', + predicate: checkExecutionContextEntry({ + name: 'dashboards', + url: '/app/dashboards', + type: 'application', + child: { + name: 'dashboards', + url: '/app/dashboards', + type: 'dashboard', + page: 'app', id: '7adfa750-4c81-11e8-b3d7-01146121b73d', description: '[Flights] Global Flight Dashboard', - url: '/view/7adfa750-4c81-11e8-b3d7-01146121b73d', child: { - type: 'visualization', + type: 'agg_based', name: 'tagcloud', id: '293b5a30-4c8f-11e8-b3d7-01146121b73d', description: '[Flights] Destination Weather', url: '/app/visualize#/edit/293b5a30-4c8f-11e8-b3d7-01146121b73d', }, - }), + }, + }), retry, }); }); @@ -349,32 +430,34 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { it('propagates context for Vertical bar visualization', async () => { await assertLogContains({ description: 'execution context propagates to Elasticsearch via "x-opaque-id" header', - predicate: (record) => - Boolean( - record.http?.request?.id?.includes( - 'kibana:application:dashboard:7adfa750-4c81-11e8-b3d7-01146121b73d;visualization:histogram:9886b410-4c8b-11e8-b3d7-01146121b73d' - ) - ), + predicate: checkHttpRequestId( + 'dashboard:dashboards:7adfa750-4c81-11e8-b3d7-01146121b73d;agg_based:histogram:9886b410-4c8b-11e8-b3d7-01146121b73d' + ), retry, }); await assertLogContains({ description: 'execution context propagates to Kibana logs', - predicate: (record) => - isExecutionContextLog(record?.message, { - type: 'application', - name: 'dashboard', + predicate: checkExecutionContextEntry({ + type: 'application', + name: 'dashboards', + url: '/app/dashboards', + child: { + type: 'dashboard', + name: 'dashboards', + url: '/app/dashboards', + page: 'app', id: '7adfa750-4c81-11e8-b3d7-01146121b73d', description: '[Flights] Global Flight Dashboard', - url: '/view/7adfa750-4c81-11e8-b3d7-01146121b73d', child: { - type: 'visualization', + type: 'agg_based', name: 'histogram', id: '9886b410-4c8b-11e8-b3d7-01146121b73d', description: '[Flights] Delay Buckets', url: '/app/visualize#/edit/9886b410-4c8b-11e8-b3d7-01146121b73d', }, - }), + }, + }), retry, }); }); diff --git a/x-pack/test/functional_execution_context/tests/index.ts b/x-pack/test/functional_execution_context/tests/index.ts index 2c34783a9bae..ac83d4246bb8 100644 --- a/x-pack/test/functional_execution_context/tests/index.ts +++ b/x-pack/test/functional_execution_context/tests/index.ts @@ -6,9 +6,19 @@ */ import { FtrProviderContext } from '../ftr_provider_context'; +import { clearLogFile, closeLogstream } from '../test_utils'; export default function ({ loadTestFile }: FtrProviderContext) { describe('Execution context', function () { + before(async () => { + // Cleaning the log file used for the tests to avoid false positives caused by previous runs. + // If any of the tests rely on logs generating during bootstrap, we might need to change this. + await clearLogFile(); + }); + after(() => { + closeLogstream(); + }); + loadTestFile(require.resolve('./browser')); loadTestFile(require.resolve('./server')); loadTestFile(require.resolve('./log_correlation')); diff --git a/x-pack/test/functional_execution_context/tests/log_correlation.ts b/x-pack/test/functional_execution_context/tests/log_correlation.ts index fddaf282b7a7..35585f092bbc 100644 --- a/x-pack/test/functional_execution_context/tests/log_correlation.ts +++ b/x-pack/test/functional_execution_context/tests/log_correlation.ts @@ -6,7 +6,7 @@ */ import expect from '@kbn/expect'; import type { FtrProviderContext } from '../ftr_provider_context'; -import { assertLogContains } from '../test_utils'; +import { assertLogContains, forceSyncLogFile } from '../test_utils'; export default function ({ getService }: FtrProviderContext) { const retry = getService('retry'); @@ -24,12 +24,14 @@ export default function ({ getService }: FtrProviderContext) { expect(response2.body.traceId).not.to.be(response1.body.traceId); + await forceSyncLogFile(); + let responseTraceId: string | undefined; await assertLogContains({ description: 'traceId included in the http logs', predicate: (record) => { // we don't check trace.id value since trace.id in the test plugin and Kibana are different on CI. - // because different 'elastic-apm-node' instaces are imported + // because different 'elastic-apm-node' instances are imported if ( record.log?.logger === 'http.server.response' && record.url?.path === '/emit_log_with_trace_id' diff --git a/x-pack/test/functional_execution_context/tests/server.ts b/x-pack/test/functional_execution_context/tests/server.ts index 0973c32e9e0f..097dc330c37c 100644 --- a/x-pack/test/functional_execution_context/tests/server.ts +++ b/x-pack/test/functional_execution_context/tests/server.ts @@ -92,7 +92,7 @@ export default function ({ getService }: FtrProviderContext) { await assertLogContains({ description: 'execution context propagates to Kibana logs', predicate: (record) => - isExecutionContextLog(record?.message, { + isExecutionContextLog(record, { type: 'task manager', name: 'run alerting:test.executionContext', // @ts-expect-error. it accepts strings only @@ -132,7 +132,7 @@ export default function ({ getService }: FtrProviderContext) { await assertLogContains({ description: 'execution context propagates to Kibana logs', predicate: (record) => - isExecutionContextLog(record?.message, { + isExecutionContextLog(record, { type: 'usage_collection', name: 'collector.fetch', id: 'application_usage', From b7a0204e497783ca2f8a0cbf676ebdf737513071 Mon Sep 17 00:00:00 2001 From: Ying Mao Date: Mon, 23 Jan 2023 21:07:09 -0500 Subject: [PATCH 04/26] [Response Ops][Alerting] Install resources needed for framework alerts-as-data (#145581) Resolves https://github.com/elastic/kibana/issues/145100 ## Summary * Adds alerting config for `enableFrameworkAlerts` * When `xpack.alerting.enableFrameworkAlerts=true`, `AlertsService` is initialized during the alerting plugin setup phase * Adds optional `alerts` definition to the `RuleType` definition which allows a rule type to specify a context and a field mapping for that context * `AlertsService.initialize()` * installs an ILM policy that will be used by all alerts-as-data indices - `alerts-default-ilm-policy` * installs a component template that will be used by all alerts-as-data indices - `alerts-common-component-template`, including all the mappings for fields needed by the framework * Rule type registration - when a rule type with an `alerts` definition is registered, the context and field map are registered with the `AlertService`. When `AlertsService` initialization is completed successfully, context specific resources are installed. * Context specific resources: * installs context specific component template that reflects the registered field map - `alerts-${context}-component-template` * installs context specific index template for the default namespace - `.alerts-${context}-default-template` * creates context specific concrete write index for the default namespace - `.alerts-${context}-default-000001` * Resource installation retries for transient ES errors and short-circuits when a timeout value is reached ## Notes * We explore the possibility of creating a single index template per context and re-using it for space-aware concrete indices but a rollover alias (which must be space-aware) must be attached to an index template so it is not feasible to only have a single index template * There will be a followup issue for create space-specific index templates/indices as needed to support detection rules desire to separate alerts by space. ## To Verify * set `xpack.alerting.enableFrameworkAlerts: true` in your kibana.yml * modify `x-pack/plugins/stack_alerts/server/rule_types/es_query/rule_type.ts` to define a custom field mapping for the `stack` context ``` --- a/x-pack/plugins/stack_alerts/server/rule_types/es_query/rule_type.ts +++ b/x-pack/plugins/stack_alerts/server/rule_types/es_query/rule_type.ts @@ -187,5 +187,14 @@ export function getRuleType( }, producer: STACK_ALERTS_FEATURE_ID, doesSetRecoveryContext: true, + alerts: { + context: 'stack', + fieldMap: { + 'kibana.alert.threshold': { + required: false, + type: 'long', + }, + }, + }, }; } ``` * start up ES and Kibana and verify that the correct resources are installed. The following should be created: * ILM policy - `alerts-default-ilm-policy` * Common component template - `alerts-common-component-template` * Stack component template - `alerts-stack-component-template` * Stack index template for default space - `.alerts-stack-default-template` * Stack write index for default space - `.alerts-stack-default-000001` * verify that the index template uses both component templates and that the expected mappings are applied to the index * try making non-destructive, additive only changes to the common component template or the stack context field mapping and verify that the concrete index mappings are updated. ### 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 Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- packages/kbn-rule-data-utils/index.ts | 1 + .../src/default_alerts_as_data.ts | 141 +++ .../src/technical_field_names.ts | 82 +- .../field_maps/alert_field_map.ts | 147 +++ .../component_template_from_field_map.ts | 35 + .../field_maps/mapping_from_field_map.test.ts | 282 ++++++ .../field_maps/mapping_from_field_map.ts | 52 + .../common/alert_schema/field_maps/types.ts | 29 + .../alerting/common/alert_schema/index.ts | 9 + .../alerts_service/alerts_service.mock.ts | 21 + .../alerts_service/alerts_service.test.ts | 944 ++++++++++++++++++ .../server/alerts_service/alerts_service.ts | 512 ++++++++++ ...reate_resource_installation_helper.test.ts | 137 +++ .../create_resource_installation_helper.ts | 81 ++ .../default_lifecycle_policy.ts | 34 + .../retry_transient_es_errors.test.ts | 95 ++ .../retry_transient_es_errors.ts | 57 ++ .../alerting/server/alerts_service/types.ts | 44 + x-pack/plugins/alerting/server/config.test.ts | 1 + x-pack/plugins/alerting/server/config.ts | 1 + x-pack/plugins/alerting/server/plugin.test.ts | 22 + x-pack/plugins/alerting/server/plugin.ts | 20 +- .../server/rule_type_registry.test.ts | 51 + .../alerting/server/rule_type_registry.ts | 10 + x-pack/plugins/alerting/server/types.ts | 7 + x-pack/plugins/alerting/tsconfig.json | 3 +- .../alerting_api_integration/common/config.ts | 1 + .../plugins/alerts/server/alert_types.ts | 21 + .../tests/alerting/alerts_as_data.ts | 176 ++++ .../spaces_only/tests/alerting/index.ts | 1 + 30 files changed, 2959 insertions(+), 58 deletions(-) create mode 100644 packages/kbn-rule-data-utils/src/default_alerts_as_data.ts create mode 100644 x-pack/plugins/alerting/common/alert_schema/field_maps/alert_field_map.ts create mode 100644 x-pack/plugins/alerting/common/alert_schema/field_maps/component_template_from_field_map.ts create mode 100644 x-pack/plugins/alerting/common/alert_schema/field_maps/mapping_from_field_map.test.ts create mode 100644 x-pack/plugins/alerting/common/alert_schema/field_maps/mapping_from_field_map.ts create mode 100644 x-pack/plugins/alerting/common/alert_schema/field_maps/types.ts create mode 100644 x-pack/plugins/alerting/common/alert_schema/index.ts create mode 100644 x-pack/plugins/alerting/server/alerts_service/alerts_service.mock.ts create mode 100644 x-pack/plugins/alerting/server/alerts_service/alerts_service.test.ts create mode 100644 x-pack/plugins/alerting/server/alerts_service/alerts_service.ts create mode 100644 x-pack/plugins/alerting/server/alerts_service/create_resource_installation_helper.test.ts create mode 100644 x-pack/plugins/alerting/server/alerts_service/create_resource_installation_helper.ts create mode 100644 x-pack/plugins/alerting/server/alerts_service/default_lifecycle_policy.ts create mode 100644 x-pack/plugins/alerting/server/alerts_service/retry_transient_es_errors.test.ts create mode 100644 x-pack/plugins/alerting/server/alerts_service/retry_transient_es_errors.ts create mode 100644 x-pack/plugins/alerting/server/alerts_service/types.ts create mode 100644 x-pack/test/alerting_api_integration/spaces_only/tests/alerting/alerts_as_data.ts diff --git a/packages/kbn-rule-data-utils/index.ts b/packages/kbn-rule-data-utils/index.ts index 897e5609a834..18c81aba6d81 100644 --- a/packages/kbn-rule-data-utils/index.ts +++ b/packages/kbn-rule-data-utils/index.ts @@ -6,6 +6,7 @@ * Side Public License, v 1. */ +export * from './src/default_alerts_as_data'; export * from './src/technical_field_names'; export * from './src/alerts_as_data_rbac'; export * from './src/alerts_as_data_severity'; diff --git a/packages/kbn-rule-data-utils/src/default_alerts_as_data.ts b/packages/kbn-rule-data-utils/src/default_alerts_as_data.ts new file mode 100644 index 000000000000..b428bea94cdc --- /dev/null +++ b/packages/kbn-rule-data-utils/src/default_alerts_as_data.ts @@ -0,0 +1,141 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { ValuesType } from 'utility-types'; + +const KIBANA_NAMESPACE = 'kibana' as const; +const ALERT_NAMESPACE = `${KIBANA_NAMESPACE}.alert` as const; +const ALERT_RULE_NAMESPACE = `${ALERT_NAMESPACE}.rule` as const; + +// kibana.space_ids - space ID(s) of the rule that created this alert +const SPACE_IDS = `${KIBANA_NAMESPACE}.space_ids` as const; + +// kibana.version - Kibana version that this alert was created +const VERSION = `${KIBANA_NAMESPACE}.version` as const; + +// kibana.alert.action_group - framework action group ID for this alert +const ALERT_ACTION_GROUP = `${ALERT_NAMESPACE}.action_group` as const; + +// kibana.alert.duration.us - alert duration in nanoseconds - updated each execution +// that the alert is active +const ALERT_DURATION = `${ALERT_NAMESPACE}.duration.us` as const; + +// kibana.alert.end - timestamp when the alert is auto-recovered by the framework +const ALERT_END = `${ALERT_NAMESPACE}.end` as const; + +// kibana.alert.flapping - whether the alert is currently in a flapping state +const ALERT_FLAPPING = `${ALERT_NAMESPACE}.flapping` as const; + +// kibana.alert.id - alert ID, also known as alert instance ID +const ALERT_ID = `${ALERT_NAMESPACE}.id` as const; + +// kibana.alert.reason - human readable reason that this alert is active +const ALERT_REASON = `${ALERT_NAMESPACE}.reason` as const; + +// kibana.alert.start - timestamp when the alert is first active +const ALERT_START = `${ALERT_NAMESPACE}.start` as const; + +// kibana.alert.status - active/recovered status of alert +const ALERT_STATUS = `${ALERT_NAMESPACE}.status` as const; + +// kibana.alert.time_range - time range of alert from kibana.alert.start to now +const ALERT_TIME_RANGE = `${ALERT_NAMESPACE}.time_range` as const; + +// kibana.alert.uuid - unique ID for the active span of this alert +const ALERT_UUID = `${ALERT_NAMESPACE}.uuid` as const; + +// kibana.alert.workflow_status - open/closed status of alert +const ALERT_WORKFLOW_STATUS = `${ALERT_NAMESPACE}.workflow_status` as const; + +// kibana.alert.rule.category - rule type name for rule that generated this alert +const ALERT_RULE_CATEGORY = `${ALERT_RULE_NAMESPACE}.category` as const; + +// kibana.alert.rule.consumer - consumer for rule that generated this alert +const ALERT_RULE_CONSUMER = `${ALERT_RULE_NAMESPACE}.consumer` as const; + +// kibana.alert.rule.execution.uuid - unique ID for the rule execution that generated this alert +const ALERT_RULE_EXECUTION_UUID = `${ALERT_RULE_NAMESPACE}.execution.uuid` as const; + +// kibana.alert.rule.name - rule name for rule that generated this alert +const ALERT_RULE_NAME = `${ALERT_RULE_NAMESPACE}.name` as const; + +// kibana.alert.rule.parameters - rule parameters for rule that generated this alert +const ALERT_RULE_PARAMETERS = `${ALERT_RULE_NAMESPACE}.parameters` as const; + +// kibana.alert.rule.producer - rule type producer for rule that generated this alert +const ALERT_RULE_PRODUCER = `${ALERT_RULE_NAMESPACE}.producer` as const; + +// kibana.alert.rule.tags - rule tags for rule that generated this alert +const ALERT_RULE_TAGS = `${ALERT_RULE_NAMESPACE}.tags` as const; + +// kibana.alert.rule_type_id - rule type id for rule that generated this alert +const ALERT_RULE_TYPE_ID = `${ALERT_RULE_NAMESPACE}.rule_type_id` as const; + +// kibana.alert.rule.uuid - rule ID for rule that generated this alert +const ALERT_RULE_UUID = `${ALERT_RULE_NAMESPACE}.uuid` as const; + +const namespaces = { + KIBANA_NAMESPACE, + ALERT_NAMESPACE, + ALERT_RULE_NAMESPACE, +}; + +const fields = { + ALERT_ACTION_GROUP, + ALERT_DURATION, + ALERT_END, + ALERT_FLAPPING, + ALERT_ID, + ALERT_REASON, + ALERT_RULE_CATEGORY, + ALERT_RULE_CONSUMER, + ALERT_RULE_EXECUTION_UUID, + ALERT_RULE_NAME, + ALERT_RULE_PARAMETERS, + ALERT_RULE_PRODUCER, + ALERT_RULE_TAGS, + ALERT_RULE_TYPE_ID, + ALERT_RULE_UUID, + ALERT_START, + ALERT_STATUS, + ALERT_TIME_RANGE, + ALERT_UUID, + ALERT_WORKFLOW_STATUS, + SPACE_IDS, + VERSION, +}; + +export { + ALERT_ACTION_GROUP, + ALERT_DURATION, + ALERT_END, + ALERT_FLAPPING, + ALERT_ID, + ALERT_REASON, + ALERT_RULE_CATEGORY, + ALERT_RULE_CONSUMER, + ALERT_RULE_EXECUTION_UUID, + ALERT_RULE_NAME, + ALERT_RULE_PARAMETERS, + ALERT_RULE_PRODUCER, + ALERT_RULE_TAGS, + ALERT_RULE_TYPE_ID, + ALERT_RULE_UUID, + ALERT_START, + ALERT_STATUS, + ALERT_TIME_RANGE, + ALERT_UUID, + ALERT_WORKFLOW_STATUS, + SPACE_IDS, + VERSION, + ALERT_NAMESPACE, + ALERT_RULE_NAMESPACE, + KIBANA_NAMESPACE, +}; + +export type DefaultAlertFieldName = ValuesType; diff --git a/packages/kbn-rule-data-utils/src/technical_field_names.ts b/packages/kbn-rule-data-utils/src/technical_field_names.ts index b5c4516c6c2c..89eca0f92304 100644 --- a/packages/kbn-rule-data-utils/src/technical_field_names.ts +++ b/packages/kbn-rule-data-utils/src/technical_field_names.ts @@ -7,41 +7,51 @@ */ import { ValuesType } from 'utility-types'; +import { + KIBANA_NAMESPACE, + ALERT_ACTION_GROUP, + ALERT_DURATION, + ALERT_END, + ALERT_FLAPPING, + ALERT_REASON, + ALERT_RULE_CATEGORY, + ALERT_RULE_CONSUMER, + ALERT_RULE_EXECUTION_UUID, + ALERT_RULE_NAME, + ALERT_RULE_PARAMETERS, + ALERT_RULE_PRODUCER, + ALERT_RULE_TAGS, + ALERT_RULE_TYPE_ID, + ALERT_RULE_UUID, + ALERT_START, + ALERT_STATUS, + ALERT_TIME_RANGE, + ALERT_UUID, + ALERT_WORKFLOW_STATUS, + SPACE_IDS, + VERSION, + ALERT_NAMESPACE, + ALERT_RULE_NAMESPACE, +} from './default_alerts_as_data'; -const KIBANA_NAMESPACE = 'kibana' as const; - -const ALERT_NAMESPACE = `${KIBANA_NAMESPACE}.alert` as const; -const ALERT_RULE_NAMESPACE = `${ALERT_NAMESPACE}.rule` as const; const ALERT_RULE_THREAT_NAMESPACE = `${ALERT_RULE_NAMESPACE}.threat` as const; const ECS_VERSION = 'ecs.version' as const; const EVENT_ACTION = 'event.action' as const; const EVENT_KIND = 'event.kind' as const; const EVENT_MODULE = 'event.module' as const; -const SPACE_IDS = `${KIBANA_NAMESPACE}.space_ids` as const; const TAGS = 'tags' as const; const TIMESTAMP = '@timestamp' as const; -const VERSION = `${KIBANA_NAMESPACE}.version` as const; // Fields pertaining to the alert -const ALERT_ACTION_GROUP = `${ALERT_NAMESPACE}.action_group` as const; const ALERT_BUILDING_BLOCK_TYPE = `${ALERT_NAMESPACE}.building_block_type` as const; -const ALERT_DURATION = `${ALERT_NAMESPACE}.duration.us` as const; -const ALERT_END = `${ALERT_NAMESPACE}.end` as const; const ALERT_EVALUATION_THRESHOLD = `${ALERT_NAMESPACE}.evaluation.threshold` as const; const ALERT_EVALUATION_VALUE = `${ALERT_NAMESPACE}.evaluation.value` as const; -const ALERT_FLAPPING = `${ALERT_NAMESPACE}.flapping` as const; const ALERT_INSTANCE_ID = `${ALERT_NAMESPACE}.instance.id` as const; -const ALERT_REASON = `${ALERT_NAMESPACE}.reason` as const; const ALERT_RISK_SCORE = `${ALERT_NAMESPACE}.risk_score` as const; const ALERT_SEVERITY = `${ALERT_NAMESPACE}.severity` as const; -const ALERT_START = `${ALERT_NAMESPACE}.start` as const; -const ALERT_TIME_RANGE = `${ALERT_NAMESPACE}.time_range` as const; -const ALERT_STATUS = `${ALERT_NAMESPACE}.status` as const; const ALERT_SYSTEM_STATUS = `${ALERT_NAMESPACE}.system_status` as const; -const ALERT_UUID = `${ALERT_NAMESPACE}.uuid` as const; const ALERT_WORKFLOW_REASON = `${ALERT_NAMESPACE}.workflow_reason` as const; -const ALERT_WORKFLOW_STATUS = `${ALERT_NAMESPACE}.workflow_status` as const; const ALERT_WORKFLOW_USER = `${ALERT_NAMESPACE}.workflow_user` as const; const ALERT_SUPPRESSION_META = `${ALERT_NAMESPACE}.suppression` as const; const ALERT_SUPPRESSION_TERMS = `${ALERT_SUPPRESSION_META}.terms` as const; @@ -61,22 +71,16 @@ const ALERT_RULE_CREATED_BY = `${ALERT_RULE_NAMESPACE}.created_by` as const; const ALERT_RULE_DESCRIPTION = `${ALERT_RULE_NAMESPACE}.description` as const; const ALERT_RULE_ENABLED = `${ALERT_RULE_NAMESPACE}.enabled` as const; const ALERT_RULE_EXCEPTIONS_LIST = `${ALERT_RULE_NAMESPACE}.exceptions_list` as const; -const ALERT_RULE_EXECUTION_UUID = `${ALERT_RULE_NAMESPACE}.execution.uuid` as const; const ALERT_RULE_FROM = `${ALERT_RULE_NAMESPACE}.from` as const; const ALERT_RULE_INTERVAL = `${ALERT_RULE_NAMESPACE}.interval` as const; const ALERT_RULE_LICENSE = `${ALERT_RULE_NAMESPACE}.license` as const; -const ALERT_RULE_CATEGORY = `${ALERT_RULE_NAMESPACE}.category` as const; -const ALERT_RULE_NAME = `${ALERT_RULE_NAMESPACE}.name` as const; const ALERT_RULE_NAMESPACE_FIELD = `${ALERT_RULE_NAMESPACE}.namespace` as const; const ALERT_RULE_NOTE = `${ALERT_RULE_NAMESPACE}.note` as const; -const ALERT_RULE_PARAMETERS = `${ALERT_RULE_NAMESPACE}.parameters` as const; const ALERT_RULE_REFERENCES = `${ALERT_RULE_NAMESPACE}.references` as const; const ALERT_RULE_RULE_ID = `${ALERT_RULE_NAMESPACE}.rule_id` as const; const ALERT_RULE_RULE_NAME_OVERRIDE = `${ALERT_RULE_NAMESPACE}.rule_name_override` as const; -const ALERT_RULE_TAGS = `${ALERT_RULE_NAMESPACE}.tags` as const; const ALERT_RULE_TO = `${ALERT_RULE_NAMESPACE}.to` as const; const ALERT_RULE_TYPE = `${ALERT_RULE_NAMESPACE}.type` as const; -const ALERT_RULE_TYPE_ID = `${ALERT_RULE_NAMESPACE}.rule_type_id` as const; const ALERT_RULE_UPDATED_AT = `${ALERT_RULE_NAMESPACE}.updated_at` as const; const ALERT_RULE_UPDATED_BY = `${ALERT_RULE_NAMESPACE}.updated_by` as const; const ALERT_RULE_VERSION = `${ALERT_RULE_NAMESPACE}.version` as const; @@ -97,16 +101,6 @@ const ALERT_THREAT_TECHNIQUE_SUBTECHNIQUE_NAME = const ALERT_THREAT_TECHNIQUE_SUBTECHNIQUE_REFERENCE = `${ALERT_RULE_THREAT_NAMESPACE}.technique.subtechnique.reference` as const; -// the feature instantiating a rule type. -// Rule created in stack --> alerts -// Rule created in siem --> siem -const ALERT_RULE_CONSUMER = `${ALERT_RULE_NAMESPACE}.consumer` as const; -// the plugin that registered the rule type. -// Rule type apm.error_rate --> apm -// Rule type siem.signals --> siem -const ALERT_RULE_PRODUCER = `${ALERT_RULE_NAMESPACE}.producer` as const; -const ALERT_RULE_UUID = `${ALERT_RULE_NAMESPACE}.uuid` as const; - const namespaces = { KIBANA_NAMESPACE, ALERT_NAMESPACE, @@ -189,23 +183,12 @@ const fields = { }; export { - ALERT_ACTION_GROUP, ALERT_BUILDING_BLOCK_TYPE, - ALERT_DURATION, - ALERT_END, ALERT_EVALUATION_THRESHOLD, ALERT_EVALUATION_VALUE, - ALERT_FLAPPING, ALERT_INSTANCE_ID, - ALERT_NAMESPACE, - ALERT_RULE_NAMESPACE, - ALERT_RULE_CONSUMER, - ALERT_RULE_PRODUCER, - ALERT_REASON, ALERT_RISK_SCORE, - ALERT_STATUS, ALERT_WORKFLOW_REASON, - ALERT_WORKFLOW_STATUS, ALERT_WORKFLOW_USER, ALERT_CASE_IDS, ALERT_RULE_AUTHOR, @@ -214,36 +197,25 @@ export { ALERT_RULE_DESCRIPTION, ALERT_RULE_ENABLED, ALERT_RULE_EXCEPTIONS_LIST, - ALERT_RULE_EXECUTION_UUID, ALERT_RULE_FROM, ALERT_RULE_INTERVAL, ALERT_RULE_LICENSE, - ALERT_RULE_NAME, ALERT_RULE_NAMESPACE_FIELD, ALERT_RULE_NOTE, - ALERT_RULE_PARAMETERS, ALERT_RULE_REFERENCES, ALERT_RULE_RULE_ID, ALERT_RULE_RULE_NAME_OVERRIDE, - ALERT_RULE_TAGS, ALERT_RULE_TO, ALERT_RULE_TYPE, - ALERT_RULE_TYPE_ID, ALERT_RULE_UPDATED_AT, ALERT_RULE_UPDATED_BY, ALERT_RULE_VERSION, ALERT_SEVERITY, - ALERT_START, - ALERT_TIME_RANGE, ALERT_SYSTEM_STATUS, - ALERT_UUID, ECS_VERSION, EVENT_ACTION, EVENT_KIND, EVENT_MODULE, - KIBANA_NAMESPACE, - ALERT_RULE_UUID, - ALERT_RULE_CATEGORY, ALERT_THREAT_FRAMEWORK, ALERT_THREAT_TACTIC_ID, ALERT_THREAT_TACTIC_NAME, @@ -262,8 +234,6 @@ export { ALERT_SUPPRESSION_DOCS_COUNT, TAGS, TIMESTAMP, - SPACE_IDS, - VERSION, }; export type TechnicalRuleDataFieldName = ValuesType; diff --git a/x-pack/plugins/alerting/common/alert_schema/field_maps/alert_field_map.ts b/x-pack/plugins/alerting/common/alert_schema/field_maps/alert_field_map.ts new file mode 100644 index 000000000000..4613415e0fa0 --- /dev/null +++ b/x-pack/plugins/alerting/common/alert_schema/field_maps/alert_field_map.ts @@ -0,0 +1,147 @@ +/* + * 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 { + ALERT_ACTION_GROUP, + ALERT_DURATION, + ALERT_END, + ALERT_FLAPPING, + ALERT_ID, + ALERT_REASON, + ALERT_RULE_CATEGORY, + ALERT_RULE_CONSUMER, + ALERT_RULE_EXECUTION_UUID, + ALERT_RULE_NAME, + ALERT_RULE_PARAMETERS, + ALERT_RULE_PRODUCER, + ALERT_RULE_TAGS, + ALERT_RULE_TYPE_ID, + ALERT_RULE_UUID, + ALERT_START, + ALERT_STATUS, + ALERT_TIME_RANGE, + ALERT_UUID, + ALERT_WORKFLOW_STATUS, + SPACE_IDS, + VERSION, +} from '@kbn/rule-data-utils'; + +export const alertFieldMap = { + [ALERT_RULE_PARAMETERS]: { + type: 'object', + enabled: false, + required: false, + }, + [ALERT_RULE_TYPE_ID]: { + type: 'keyword', + array: false, + required: true, + }, + [ALERT_RULE_CONSUMER]: { + type: 'keyword', + array: false, + required: true, + }, + [ALERT_RULE_PRODUCER]: { + type: 'keyword', + array: false, + required: true, + }, + [SPACE_IDS]: { + type: 'keyword', + array: true, + required: true, + }, + [ALERT_UUID]: { + type: 'keyword', + array: false, + required: true, + }, + [ALERT_ID]: { + type: 'keyword', + array: false, + required: true, + }, + [ALERT_START]: { + type: 'date', + array: false, + required: false, + }, + [ALERT_TIME_RANGE]: { + type: 'date_range', + format: 'epoch_millis||strict_date_optional_time', + array: false, + required: false, + }, + [ALERT_END]: { + type: 'date', + array: false, + required: false, + }, + [ALERT_DURATION]: { + type: 'long', + array: false, + required: false, + }, + [ALERT_STATUS]: { + type: 'keyword', + array: false, + required: true, + }, + [VERSION]: { + type: 'version', + array: false, + required: false, + }, + [ALERT_WORKFLOW_STATUS]: { + type: 'keyword', + array: false, + required: false, + }, + [ALERT_ACTION_GROUP]: { + type: 'keyword', + array: false, + required: false, + }, + [ALERT_REASON]: { + type: 'keyword', + array: false, + required: false, + }, + [ALERT_RULE_CATEGORY]: { + type: 'keyword', + array: false, + required: true, + }, + [ALERT_RULE_UUID]: { + type: 'keyword', + array: false, + required: true, + }, + [ALERT_RULE_EXECUTION_UUID]: { + type: 'keyword', + array: false, + required: false, + }, + [ALERT_RULE_NAME]: { + type: 'keyword', + array: false, + required: true, + }, + [ALERT_RULE_TAGS]: { + type: 'keyword', + array: true, + required: false, + }, + [ALERT_FLAPPING]: { + type: 'boolean', + array: false, + required: false, + }, +}; + +export type AlertFieldMap = typeof alertFieldMap; diff --git a/x-pack/plugins/alerting/common/alert_schema/field_maps/component_template_from_field_map.ts b/x-pack/plugins/alerting/common/alert_schema/field_maps/component_template_from_field_map.ts new file mode 100644 index 000000000000..b4cd25a4f412 --- /dev/null +++ b/x-pack/plugins/alerting/common/alert_schema/field_maps/component_template_from_field_map.ts @@ -0,0 +1,35 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { ClusterPutComponentTemplateRequest } from '@elastic/elasticsearch/lib/api/types'; +import { mappingFromFieldMap } from './mapping_from_field_map'; +import { FieldMap } from './types'; + +export interface GetComponentTemplateFromFieldMapOpts { + name: string; + fieldLimit?: number; + fieldMap: FieldMap; +} +export const getComponentTemplateFromFieldMap = ({ + name, + fieldMap, + fieldLimit, +}: GetComponentTemplateFromFieldMapOpts): ClusterPutComponentTemplateRequest => { + return { + name, + _meta: { + managed: true, + }, + template: { + settings: { + number_of_shards: 1, + 'index.mapping.total_fields.limit': fieldLimit ?? 1000, + }, + mappings: mappingFromFieldMap(fieldMap, 'strict'), + }, + }; +}; diff --git a/x-pack/plugins/alerting/common/alert_schema/field_maps/mapping_from_field_map.test.ts b/x-pack/plugins/alerting/common/alert_schema/field_maps/mapping_from_field_map.test.ts new file mode 100644 index 000000000000..2f2cac2367e8 --- /dev/null +++ b/x-pack/plugins/alerting/common/alert_schema/field_maps/mapping_from_field_map.test.ts @@ -0,0 +1,282 @@ +/* + * 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 { mappingFromFieldMap } from './mapping_from_field_map'; +import { FieldMap } from './types'; +import { alertFieldMap } from './alert_field_map'; + +describe('mappingFromFieldMap', () => { + const fieldMap: FieldMap = { + date_field: { + type: 'date', + array: false, + required: true, + }, + keyword_field: { + type: 'keyword', + array: false, + required: false, + ignore_above: 1024, + }, + long_field: { + type: 'long', + array: false, + required: false, + }, + multifield_field: { + type: 'keyword', + array: false, + required: false, + ignore_above: 1024, + multi_fields: [ + { + flat_name: 'multifield_field.text', + name: 'text', + type: 'match_only_text', + }, + ], + }, + geopoint_field: { + type: 'geo_point', + array: false, + required: false, + }, + ip_field: { + type: 'ip', + array: false, + required: false, + }, + array_field: { + type: 'keyword', + array: true, + required: false, + ignore_above: 1024, + }, + nested_array_field: { + type: 'nested', + array: false, + required: false, + }, + 'nested_array_field.field1': { + type: 'keyword', + array: false, + required: false, + ignore_above: 1024, + }, + 'nested_array_field.field2': { + type: 'keyword', + array: false, + required: false, + ignore_above: 1024, + }, + scaled_float_field: { + type: 'scaled_float', + array: false, + required: false, + scaling_factor: 1000, + }, + constant_keyword_field: { + type: 'constant_keyword', + array: false, + required: false, + }, + 'parent_field.child1': { + type: 'keyword', + array: false, + required: false, + ignore_above: 1024, + }, + 'parent_field.child2': { + type: 'keyword', + array: false, + required: false, + ignore_above: 1024, + }, + unmapped_object: { + type: 'object', + required: false, + enabled: false, + }, + formatted_field: { + type: 'date_range', + required: false, + format: 'epoch_millis||strict_date_optional_time', + }, + }; + const expectedMapping = { + properties: { + array_field: { + ignore_above: 1024, + type: 'keyword', + }, + constant_keyword_field: { + type: 'constant_keyword', + }, + date_field: { + type: 'date', + }, + geopoint_field: { + type: 'geo_point', + }, + ip_field: { + type: 'ip', + }, + keyword_field: { + ignore_above: 1024, + type: 'keyword', + }, + long_field: { + type: 'long', + }, + multifield_field: { + fields: { + text: { + type: 'match_only_text', + }, + }, + ignore_above: 1024, + type: 'keyword', + }, + nested_array_field: { + properties: { + field1: { + ignore_above: 1024, + type: 'keyword', + }, + field2: { + ignore_above: 1024, + type: 'keyword', + }, + }, + type: 'nested', + }, + parent_field: { + properties: { + child1: { + ignore_above: 1024, + type: 'keyword', + }, + child2: { + ignore_above: 1024, + type: 'keyword', + }, + }, + }, + scaled_float_field: { + scaling_factor: 1000, + type: 'scaled_float', + }, + unmapped_object: { + enabled: false, + type: 'object', + }, + formatted_field: { + type: 'date_range', + format: 'epoch_millis||strict_date_optional_time', + }, + }, + }; + it('correctly creates mapping from field map', () => { + expect(mappingFromFieldMap(fieldMap)).toEqual({ dynamic: 'strict', ...expectedMapping }); + expect(mappingFromFieldMap(alertFieldMap)).toEqual({ + dynamic: 'strict', + properties: { + kibana: { + properties: { + alert: { + properties: { + action_group: { + type: 'keyword', + }, + duration: { + properties: { + us: { + type: 'long', + }, + }, + }, + end: { + type: 'date', + }, + flapping: { + type: 'boolean', + }, + id: { + type: 'keyword', + }, + reason: { + type: 'keyword', + }, + rule: { + properties: { + category: { + type: 'keyword', + }, + consumer: { + type: 'keyword', + }, + execution: { + properties: { + uuid: { + type: 'keyword', + }, + }, + }, + name: { + type: 'keyword', + }, + parameters: { + type: 'object', + enabled: false, + }, + producer: { + type: 'keyword', + }, + rule_type_id: { + type: 'keyword', + }, + tags: { + type: 'keyword', + }, + uuid: { + type: 'keyword', + }, + }, + }, + start: { + type: 'date', + }, + status: { + type: 'keyword', + }, + time_range: { + type: 'date_range', + format: 'epoch_millis||strict_date_optional_time', + }, + uuid: { + type: 'keyword', + }, + workflow_status: { + type: 'keyword', + }, + }, + }, + space_ids: { + type: 'keyword', + }, + version: { + type: 'version', + }, + }, + }, + }, + }); + }); + + it('uses dynamic setting if specified', () => { + expect(mappingFromFieldMap(fieldMap, true)).toEqual({ dynamic: true, ...expectedMapping }); + }); +}); diff --git a/x-pack/plugins/alerting/common/alert_schema/field_maps/mapping_from_field_map.ts b/x-pack/plugins/alerting/common/alert_schema/field_maps/mapping_from_field_map.ts new file mode 100644 index 000000000000..5a1de7a995b3 --- /dev/null +++ b/x-pack/plugins/alerting/common/alert_schema/field_maps/mapping_from_field_map.ts @@ -0,0 +1,52 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { MappingTypeMapping } from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; +import { set } from '@kbn/safer-lodash-set'; +import { FieldMap, MultiField } from './types'; + +export function mappingFromFieldMap( + fieldMap: FieldMap, + dynamic: 'strict' | boolean = 'strict' +): MappingTypeMapping { + const mappings = { + dynamic, + properties: {}, + }; + + const fields = Object.keys(fieldMap).map((key: string) => { + const field = fieldMap[key]; + return { + name: key, + ...field, + }; + }); + + fields.forEach((field) => { + // eslint-disable-next-line @typescript-eslint/naming-convention + const { name, required, array, multi_fields, ...rest } = field; + + const mapped = multi_fields + ? { + ...rest, + // eslint-disable-next-line @typescript-eslint/naming-convention + fields: multi_fields.reduce((acc, multi_field: MultiField) => { + return { + ...acc, + [multi_field.name]: { + type: multi_field.type, + }, + }; + }, {}), + } + : rest; + + set(mappings.properties, field.name.split('.').join('.properties.'), mapped); + }); + + return mappings; +} diff --git a/x-pack/plugins/alerting/common/alert_schema/field_maps/types.ts b/x-pack/plugins/alerting/common/alert_schema/field_maps/types.ts new file mode 100644 index 000000000000..b687cbfb0cf7 --- /dev/null +++ b/x-pack/plugins/alerting/common/alert_schema/field_maps/types.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. + */ + +export interface MultiField { + flat_name?: string; + name: string; + type: string; +} + +export interface FieldMap { + [key: string]: { + type: string; + required: boolean; + array?: boolean; + doc_values?: boolean; + enabled?: boolean; + format?: string; + ignore_above?: number; + index?: boolean; + multi_fields?: MultiField[]; + path?: string; + scaling_factor?: number; + dynamic?: boolean | string; + }; +} diff --git a/x-pack/plugins/alerting/common/alert_schema/index.ts b/x-pack/plugins/alerting/common/alert_schema/index.ts new file mode 100644 index 000000000000..acca43450fe3 --- /dev/null +++ b/x-pack/plugins/alerting/common/alert_schema/index.ts @@ -0,0 +1,9 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export { alertFieldMap } from './field_maps/alert_field_map'; +export { getComponentTemplateFromFieldMap } from './field_maps/component_template_from_field_map'; diff --git a/x-pack/plugins/alerting/server/alerts_service/alerts_service.mock.ts b/x-pack/plugins/alerting/server/alerts_service/alerts_service.mock.ts new file mode 100644 index 000000000000..d11e95f909c1 --- /dev/null +++ b/x-pack/plugins/alerting/server/alerts_service/alerts_service.mock.ts @@ -0,0 +1,21 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +const creatAlertsServiceMock = () => { + return jest.fn().mockImplementation(() => { + return { + initialize: jest.fn(), + register: jest.fn(), + isInitialized: jest.fn(), + isContextInitialized: jest.fn(), + }; + }); +}; + +export const alertsServiceMock = { + create: creatAlertsServiceMock(), +}; diff --git a/x-pack/plugins/alerting/server/alerts_service/alerts_service.test.ts b/x-pack/plugins/alerting/server/alerts_service/alerts_service.test.ts new file mode 100644 index 000000000000..ba3623526591 --- /dev/null +++ b/x-pack/plugins/alerting/server/alerts_service/alerts_service.test.ts @@ -0,0 +1,944 @@ +/* + * 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 { elasticsearchServiceMock, loggingSystemMock } from '@kbn/core/server/mocks'; +import { errors as EsErrors } from '@elastic/elasticsearch'; +import { ReplaySubject, Subject } from 'rxjs'; +import { AlertsService } from './alerts_service'; + +let logger: ReturnType; +const clusterClient = elasticsearchServiceMock.createClusterClient().asInternalUser; + +const SimulateTemplateResponse = { + template: { + aliases: { + alias_name_1: { + is_hidden: true, + }, + alias_name_2: { + is_hidden: true, + }, + }, + mappings: { enabled: false }, + settings: {}, + }, +}; +interface HTTPError extends Error { + statusCode: number; +} + +interface EsError extends Error { + meta: { + body: { + error: { + type: string; + }; + }; + }; +} + +const GetAliasResponse = { + real_index: { + aliases: { + alias_1: { + is_hidden: true, + }, + alias_2: { + is_hidden: true, + }, + }, + }, +}; + +const IlmPutBody = { + body: { + policy: { + _meta: { + managed: true, + }, + phases: { + hot: { + actions: { + rollover: { + max_age: '30d', + max_primary_shard_size: '50gb', + }, + }, + }, + }, + }, + }, + name: 'alerts-default-ilm-policy', +}; + +const getIndexTemplatePutBody = (context?: string) => ({ + name: `.alerts-${context ? context : 'test'}-default-template`, + body: { + index_patterns: [`.alerts-${context ? context : 'test'}-default-*`], + composed_of: [ + 'alerts-common-component-template', + `alerts-${context ? context : 'test'}-component-template`, + ], + template: { + settings: { + auto_expand_replicas: '0-1', + hidden: true, + 'index.lifecycle': { + name: 'alerts-default-ilm-policy', + rollover_alias: `.alerts-${context ? context : 'test'}-default`, + }, + 'index.mapping.total_fields.limit': 2500, + }, + mappings: { + dynamic: false, + }, + }, + _meta: { + managed: true, + }, + }, +}); + +const TestRegistrationContext = { + context: 'test', + fieldMap: { field: { type: 'keyword', required: false } }, +}; + +const AnotherRegistrationContext = { + context: 'another', + fieldMap: { field: { type: 'keyword', required: false } }, +}; + +describe('Alerts Service', () => { + let pluginStop$: Subject; + + beforeEach(() => { + jest.clearAllMocks(); + logger = loggingSystemMock.createLogger(); + pluginStop$ = new ReplaySubject(1); + jest.spyOn(global.Math, 'random').mockReturnValue(0.01); + clusterClient.indices.simulateTemplate.mockImplementation(async () => SimulateTemplateResponse); + clusterClient.indices.simulateIndexTemplate.mockImplementation( + async () => SimulateTemplateResponse + ); + clusterClient.indices.getAlias.mockImplementation(async () => GetAliasResponse); + }); + + afterEach(() => { + pluginStop$.next(); + pluginStop$.complete(); + }); + describe('initialize()', () => { + test('should correctly initialize common resources', async () => { + const alertsService = new AlertsService({ + logger, + elasticsearchClientPromise: Promise.resolve(clusterClient), + pluginStop$, + }); + + alertsService.initialize(); + await new Promise((r) => setTimeout(r, 50)); + + expect(alertsService.isInitialized()).toEqual(true); + expect(clusterClient.ilm.putLifecycle).toHaveBeenCalledWith(IlmPutBody); + expect(clusterClient.cluster.putComponentTemplate).toHaveBeenCalledTimes(1); + + const componentTemplate1 = clusterClient.cluster.putComponentTemplate.mock.calls[0][0]; + expect(componentTemplate1.name).toEqual('alerts-common-component-template'); + }); + + test('should log error and set initialized to false if adding ILM policy throws error', async () => { + clusterClient.ilm.putLifecycle.mockRejectedValueOnce(new Error('fail')); + const alertsService = new AlertsService({ + logger, + elasticsearchClientPromise: Promise.resolve(clusterClient), + pluginStop$, + }); + + alertsService.initialize(); + await new Promise((r) => setTimeout(r, 50)); + + expect(alertsService.isInitialized()).toEqual(false); + + expect(logger.error).toHaveBeenCalledWith( + `Error installing ILM policy alerts-default-ilm-policy - fail` + ); + + expect(clusterClient.ilm.putLifecycle).toHaveBeenCalled(); + expect(clusterClient.cluster.putComponentTemplate).not.toHaveBeenCalled(); + }); + + test('should log error and set initialized to false if creating/updating common component template throws error', async () => { + clusterClient.cluster.putComponentTemplate.mockRejectedValueOnce(new Error('fail')); + const alertsService = new AlertsService({ + logger, + elasticsearchClientPromise: Promise.resolve(clusterClient), + pluginStop$, + }); + + alertsService.initialize(); + await new Promise((r) => setTimeout(r, 50)); + + expect(alertsService.isInitialized()).toEqual(false); + expect(logger.error).toHaveBeenCalledWith( + `Error installing component template alerts-common-component-template - fail` + ); + + expect(clusterClient.ilm.putLifecycle).toHaveBeenCalled(); + expect(clusterClient.cluster.putComponentTemplate).toHaveBeenCalledTimes(1); + }); + + test('should install resources for contexts awaiting initialization when common resources are initialized', async () => { + const alertsService = new AlertsService({ + logger, + elasticsearchClientPromise: Promise.resolve(clusterClient), + pluginStop$, + }); + + // pre-register contexts so they get installed right after initialization + alertsService.register(TestRegistrationContext); + alertsService.register(AnotherRegistrationContext); + alertsService.initialize(); + await new Promise((r) => setTimeout(r, 50)); + + expect(alertsService.isInitialized()).toEqual(true); + expect(await alertsService.isContextInitialized(TestRegistrationContext.context)).toEqual( + true + ); + expect(await alertsService.isContextInitialized(AnotherRegistrationContext.context)).toEqual( + true + ); + + expect(clusterClient.ilm.putLifecycle).toHaveBeenCalledWith(IlmPutBody); + // 1x for common component template, 2x for context specific + expect(clusterClient.cluster.putComponentTemplate).toHaveBeenCalledTimes(3); + + const componentTemplate1 = clusterClient.cluster.putComponentTemplate.mock.calls[0][0]; + expect(componentTemplate1.name).toEqual('alerts-common-component-template'); + const componentTemplate2 = clusterClient.cluster.putComponentTemplate.mock.calls[1][0]; + expect(componentTemplate2.name).toEqual('alerts-another-component-template'); + const componentTemplate3 = clusterClient.cluster.putComponentTemplate.mock.calls[2][0]; + expect(componentTemplate3.name).toEqual('alerts-test-component-template'); + + expect(clusterClient.indices.putIndexTemplate).toHaveBeenCalledTimes(2); + expect(clusterClient.indices.putIndexTemplate).toHaveBeenNthCalledWith( + 1, + getIndexTemplatePutBody('another') + ); + expect(clusterClient.indices.putIndexTemplate).toHaveBeenNthCalledWith( + 2, + getIndexTemplatePutBody() + ); + + expect(clusterClient.indices.getAlias).toHaveBeenCalledTimes(2); + expect(clusterClient.indices.getAlias).toHaveBeenNthCalledWith(1, { + index: '.alerts-another-default-*', + }); + expect(clusterClient.indices.getAlias).toHaveBeenNthCalledWith(2, { + index: '.alerts-test-default-*', + }); + expect(clusterClient.indices.putSettings).toHaveBeenCalledTimes(4); + expect(clusterClient.indices.simulateIndexTemplate).toHaveBeenCalledTimes(4); + expect(clusterClient.indices.putMapping).toHaveBeenCalledTimes(4); + expect(clusterClient.indices.create).toHaveBeenCalledTimes(2); + expect(clusterClient.indices.create).toHaveBeenNthCalledWith(1, { + index: '.alerts-another-default-000001', + body: { + aliases: { + '.alerts-another-default': { + is_write_index: true, + }, + }, + }, + }); + expect(clusterClient.indices.create).toHaveBeenNthCalledWith(2, { + index: '.alerts-test-default-000001', + body: { + aliases: { + '.alerts-test-default': { + is_write_index: true, + }, + }, + }, + }); + }); + }); + + describe('register()', () => { + let alertsService: AlertsService; + beforeEach(async () => { + alertsService = new AlertsService({ + logger, + elasticsearchClientPromise: Promise.resolve(clusterClient), + pluginStop$, + }); + + alertsService.initialize(); + await new Promise((r) => setTimeout(r, 50)); + expect(alertsService.isInitialized()).toEqual(true); + }); + + test('should correctly install resources for context when common initialization is complete', async () => { + alertsService.register(TestRegistrationContext); + await new Promise((r) => setTimeout(r, 50)); + expect(await alertsService.isContextInitialized(TestRegistrationContext.context)).toEqual( + true + ); + + expect(clusterClient.ilm.putLifecycle).toHaveBeenCalledWith(IlmPutBody); + + expect(clusterClient.cluster.putComponentTemplate).toHaveBeenCalledTimes(2); + const componentTemplate1 = clusterClient.cluster.putComponentTemplate.mock.calls[0][0]; + expect(componentTemplate1.name).toEqual('alerts-common-component-template'); + const componentTemplate2 = clusterClient.cluster.putComponentTemplate.mock.calls[1][0]; + expect(componentTemplate2.name).toEqual('alerts-test-component-template'); + + expect(clusterClient.indices.putIndexTemplate).toHaveBeenCalledWith( + getIndexTemplatePutBody() + ); + expect(clusterClient.indices.getAlias).toHaveBeenCalledWith({ + index: '.alerts-test-default-*', + }); + expect(clusterClient.indices.putSettings).toHaveBeenCalledTimes(2); + expect(clusterClient.indices.simulateIndexTemplate).toHaveBeenCalledTimes(2); + expect(clusterClient.indices.putMapping).toHaveBeenCalledTimes(2); + expect(clusterClient.indices.create).toHaveBeenCalledWith({ + index: '.alerts-test-default-000001', + body: { + aliases: { + '.alerts-test-default': { + is_write_index: true, + }, + }, + }, + }); + }); + + test('should not install component template for context fieldMap is empty', async () => { + alertsService.register({ + context: 'empty', + fieldMap: {}, + }); + await new Promise((r) => setTimeout(r, 50)); + expect(await alertsService.isContextInitialized('empty')).toEqual(true); + + expect(clusterClient.ilm.putLifecycle).toHaveBeenCalledWith(IlmPutBody); + + expect(clusterClient.cluster.putComponentTemplate).toHaveBeenCalledTimes(1); + const componentTemplate1 = clusterClient.cluster.putComponentTemplate.mock.calls[0][0]; + expect(componentTemplate1.name).toEqual('alerts-common-component-template'); + + expect(clusterClient.indices.putIndexTemplate).toHaveBeenCalledWith({ + name: `.alerts-empty-default-template`, + body: { + index_patterns: [`.alerts-empty-default-*`], + composed_of: ['alerts-common-component-template'], + template: { + settings: { + auto_expand_replicas: '0-1', + hidden: true, + 'index.lifecycle': { + name: 'alerts-default-ilm-policy', + rollover_alias: `.alerts-empty-default`, + }, + 'index.mapping.total_fields.limit': 2500, + }, + mappings: { + dynamic: false, + }, + }, + _meta: { + managed: true, + }, + }, + }); + expect(clusterClient.indices.getAlias).toHaveBeenCalledWith({ + index: '.alerts-empty-default-*', + }); + expect(clusterClient.indices.putSettings).toHaveBeenCalledTimes(2); + expect(clusterClient.indices.simulateIndexTemplate).toHaveBeenCalledTimes(2); + expect(clusterClient.indices.putMapping).toHaveBeenCalledTimes(2); + expect(clusterClient.indices.create).toHaveBeenCalledWith({ + index: '.alerts-empty-default-000001', + body: { + aliases: { + '.alerts-empty-default': { + is_write_index: true, + }, + }, + }, + }); + }); + + test('should skip initialization if context already exists', async () => { + alertsService.register(TestRegistrationContext); + alertsService.register(TestRegistrationContext); + + expect(logger.debug).toHaveBeenCalledWith( + `Resources for context "test" have already been registered.` + ); + }); + + test('should throw error if context already exists and has been registered with a different field map', async () => { + alertsService.register(TestRegistrationContext); + await new Promise((r) => setTimeout(r, 50)); + expect(() => { + alertsService.register({ + ...TestRegistrationContext, + fieldMap: { anotherField: { type: 'keyword', required: false } }, + }); + }).toThrowErrorMatchingInlineSnapshot( + `"test has already been registered with a different mapping"` + ); + }); + + test('should not update index template if simulating template throws error', async () => { + clusterClient.indices.simulateTemplate.mockRejectedValueOnce(new Error('fail')); + + alertsService.register(TestRegistrationContext); + await new Promise((r) => setTimeout(r, 50)); + expect(await alertsService.isContextInitialized(TestRegistrationContext.context)).toEqual( + true + ); + + expect(logger.error).toHaveBeenCalledWith( + `Failed to simulate index template mappings for .alerts-test-default-template; not applying mappings - fail` + ); + + expect(clusterClient.ilm.putLifecycle).toHaveBeenCalled(); + expect(clusterClient.cluster.putComponentTemplate).toHaveBeenCalledTimes(2); + expect(clusterClient.indices.simulateTemplate).toHaveBeenCalled(); + // putIndexTemplate is skipped but other operations are called as expected + expect(clusterClient.indices.putIndexTemplate).not.toHaveBeenCalled(); + expect(clusterClient.indices.getAlias).toHaveBeenCalled(); + expect(clusterClient.indices.putSettings).toHaveBeenCalled(); + expect(clusterClient.indices.simulateIndexTemplate).toHaveBeenCalled(); + expect(clusterClient.indices.putMapping).toHaveBeenCalled(); + expect(clusterClient.indices.create).toHaveBeenCalled(); + }); + + test('should log error and set initialized to false if simulating template returns empty mappings', async () => { + clusterClient.indices.simulateTemplate.mockImplementationOnce(async () => ({ + ...SimulateTemplateResponse, + template: { + ...SimulateTemplateResponse.template, + mappings: {}, + }, + })); + + alertsService.register(TestRegistrationContext); + await new Promise((r) => setTimeout(r, 50)); + expect(await alertsService.isContextInitialized(TestRegistrationContext.context)).toEqual( + false + ); + + expect(logger.error).toHaveBeenCalledWith( + new Error( + `No mappings would be generated for .alerts-test-default-template, possibly due to failed/misconfigured bootstrapping` + ) + ); + + expect(clusterClient.ilm.putLifecycle).toHaveBeenCalled(); + expect(clusterClient.cluster.putComponentTemplate).toHaveBeenCalledTimes(2); + expect(clusterClient.indices.simulateTemplate).toHaveBeenCalled(); + expect(clusterClient.indices.putIndexTemplate).not.toHaveBeenCalled(); + expect(clusterClient.indices.getAlias).not.toHaveBeenCalled(); + expect(clusterClient.indices.putSettings).not.toHaveBeenCalled(); + expect(clusterClient.indices.simulateIndexTemplate).not.toHaveBeenCalled(); + expect(clusterClient.indices.putMapping).not.toHaveBeenCalled(); + expect(clusterClient.indices.create).not.toHaveBeenCalled(); + }); + + test('should log error and set initialized to false if updating index template throws error', async () => { + clusterClient.indices.putIndexTemplate.mockRejectedValueOnce(new Error('fail')); + + alertsService.register(TestRegistrationContext); + await new Promise((r) => setTimeout(r, 50)); + expect(await alertsService.isContextInitialized(TestRegistrationContext.context)).toEqual( + false + ); + + expect(logger.error).toHaveBeenCalledWith( + `Error installing index template .alerts-test-default-template - fail` + ); + + expect(clusterClient.ilm.putLifecycle).toHaveBeenCalled(); + expect(clusterClient.cluster.putComponentTemplate).toHaveBeenCalledTimes(2); + expect(clusterClient.indices.simulateTemplate).toHaveBeenCalled(); + expect(clusterClient.indices.putIndexTemplate).toHaveBeenCalled(); + expect(clusterClient.indices.getAlias).not.toHaveBeenCalled(); + expect(clusterClient.indices.putSettings).not.toHaveBeenCalled(); + expect(clusterClient.indices.simulateIndexTemplate).not.toHaveBeenCalled(); + expect(clusterClient.indices.putMapping).not.toHaveBeenCalled(); + expect(clusterClient.indices.create).not.toHaveBeenCalled(); + }); + + test('should log error and set initialized to false if checking for concrete write index throws error', async () => { + clusterClient.indices.getAlias.mockRejectedValueOnce(new Error('fail')); + + alertsService.register(TestRegistrationContext); + await new Promise((r) => setTimeout(r, 50)); + expect(await alertsService.isContextInitialized(TestRegistrationContext.context)).toEqual( + false + ); + + expect(logger.error).toHaveBeenCalledWith( + `Error fetching concrete indices for .alerts-test-default-* pattern - fail` + ); + + expect(clusterClient.ilm.putLifecycle).toHaveBeenCalled(); + expect(clusterClient.cluster.putComponentTemplate).toHaveBeenCalledTimes(2); + expect(clusterClient.indices.simulateTemplate).toHaveBeenCalled(); + expect(clusterClient.indices.putIndexTemplate).toHaveBeenCalled(); + expect(clusterClient.indices.putSettings).not.toHaveBeenCalled(); + expect(clusterClient.indices.simulateIndexTemplate).not.toHaveBeenCalled(); + expect(clusterClient.indices.putMapping).not.toHaveBeenCalled(); + expect(clusterClient.indices.create).not.toHaveBeenCalled(); + }); + + test('should not throw error if checking for concrete write index throws 404', async () => { + const error = new Error(`index doesn't exist`) as HTTPError; + error.statusCode = 404; + clusterClient.indices.getAlias.mockRejectedValueOnce(error); + + alertsService.register(TestRegistrationContext); + await new Promise((r) => setTimeout(r, 50)); + expect(await alertsService.isContextInitialized(TestRegistrationContext.context)).toEqual( + true + ); + + expect(clusterClient.ilm.putLifecycle).toHaveBeenCalled(); + expect(clusterClient.cluster.putComponentTemplate).toHaveBeenCalledTimes(2); + expect(clusterClient.indices.simulateTemplate).toHaveBeenCalled(); + expect(clusterClient.indices.putIndexTemplate).toHaveBeenCalled(); + expect(clusterClient.indices.putSettings).not.toHaveBeenCalled(); + expect(clusterClient.indices.simulateIndexTemplate).not.toHaveBeenCalled(); + expect(clusterClient.indices.putMapping).not.toHaveBeenCalled(); + expect(clusterClient.indices.create).toHaveBeenCalled(); + }); + + test('should log error and set initialized to false if updating index settings for existing indices throws error', async () => { + clusterClient.indices.putSettings.mockRejectedValueOnce(new Error('fail')); + + alertsService.register(TestRegistrationContext); + await new Promise((r) => setTimeout(r, 50)); + expect(await alertsService.isContextInitialized(TestRegistrationContext.context)).toEqual( + false + ); + + expect(logger.error).toHaveBeenCalledWith( + `Failed to PUT index.mapping.total_fields.limit settings for alias alias_1: fail` + ); + + expect(clusterClient.ilm.putLifecycle).toHaveBeenCalled(); + expect(clusterClient.cluster.putComponentTemplate).toHaveBeenCalledTimes(2); + expect(clusterClient.indices.simulateTemplate).toHaveBeenCalled(); + expect(clusterClient.indices.putIndexTemplate).toHaveBeenCalled(); + expect(clusterClient.indices.getAlias).toHaveBeenCalled(); + expect(clusterClient.indices.putSettings).toHaveBeenCalled(); + expect(clusterClient.indices.simulateIndexTemplate).not.toHaveBeenCalled(); + expect(clusterClient.indices.putMapping).not.toHaveBeenCalled(); + expect(clusterClient.indices.create).not.toHaveBeenCalled(); + }); + + test('should skip updating index mapping for existing indices if simulate index template throws error', async () => { + clusterClient.indices.simulateIndexTemplate.mockRejectedValueOnce(new Error('fail')); + + alertsService.register(TestRegistrationContext); + await new Promise((r) => setTimeout(r, 50)); + expect(await alertsService.isContextInitialized(TestRegistrationContext.context)).toEqual( + true + ); + + expect(logger.error).toHaveBeenCalledWith( + `Ignored PUT mappings for alias alias_1; error generating simulated mappings: fail` + ); + + expect(clusterClient.ilm.putLifecycle).toHaveBeenCalled(); + expect(clusterClient.cluster.putComponentTemplate).toHaveBeenCalledTimes(2); + expect(clusterClient.indices.simulateTemplate).toHaveBeenCalled(); + expect(clusterClient.indices.putIndexTemplate).toHaveBeenCalled(); + expect(clusterClient.indices.getAlias).toHaveBeenCalled(); + expect(clusterClient.indices.putSettings).toHaveBeenCalled(); + expect(clusterClient.indices.simulateIndexTemplate).toHaveBeenCalled(); + expect(clusterClient.indices.putMapping).toHaveBeenCalled(); + expect(clusterClient.indices.create).toHaveBeenCalled(); + }); + + test('should log error and set initialized to false if updating index mappings for existing indices throws error', async () => { + clusterClient.indices.putMapping.mockRejectedValueOnce(new Error('fail')); + + alertsService.register(TestRegistrationContext); + await new Promise((r) => setTimeout(r, 50)); + expect(await alertsService.isContextInitialized(TestRegistrationContext.context)).toEqual( + false + ); + + expect(logger.error).toHaveBeenCalledWith(`Failed to PUT mapping for alias alias_1: fail`); + + expect(clusterClient.ilm.putLifecycle).toHaveBeenCalled(); + expect(clusterClient.cluster.putComponentTemplate).toHaveBeenCalledTimes(2); + expect(clusterClient.indices.simulateTemplate).toHaveBeenCalled(); + expect(clusterClient.indices.putIndexTemplate).toHaveBeenCalled(); + expect(clusterClient.indices.getAlias).toHaveBeenCalled(); + expect(clusterClient.indices.putSettings).toHaveBeenCalled(); + expect(clusterClient.indices.simulateIndexTemplate).toHaveBeenCalled(); + expect(clusterClient.indices.putMapping).toHaveBeenCalled(); + expect(clusterClient.indices.create).not.toHaveBeenCalled(); + }); + + test('does not updating settings or mappings if no existing concrete indices', async () => { + clusterClient.indices.getAlias.mockImplementationOnce(async () => ({})); + + alertsService.register(TestRegistrationContext); + await new Promise((r) => setTimeout(r, 50)); + expect(await alertsService.isContextInitialized(TestRegistrationContext.context)).toEqual( + true + ); + + expect(clusterClient.ilm.putLifecycle).toHaveBeenCalled(); + expect(clusterClient.cluster.putComponentTemplate).toHaveBeenCalledTimes(2); + expect(clusterClient.indices.simulateTemplate).toHaveBeenCalled(); + expect(clusterClient.indices.putIndexTemplate).toHaveBeenCalled(); + expect(clusterClient.indices.getAlias).toHaveBeenCalled(); + expect(clusterClient.indices.putSettings).not.toHaveBeenCalled(); + expect(clusterClient.indices.simulateIndexTemplate).not.toHaveBeenCalled(); + expect(clusterClient.indices.putMapping).not.toHaveBeenCalled(); + expect(clusterClient.indices.create).toHaveBeenCalled(); + }); + + test('should log error and set initialized to false if concrete indices exist but none are write index', async () => { + clusterClient.indices.getAlias.mockImplementationOnce(async () => ({ + '.alerts-test-default-0001': { + aliases: { + '.alerts-test-default': { + is_write_index: false, + is_hidden: true, + }, + alias_2: { + is_write_index: false, + is_hidden: true, + }, + }, + }, + })); + + alertsService.register(TestRegistrationContext); + await new Promise((r) => setTimeout(r, 50)); + expect(await alertsService.isContextInitialized(TestRegistrationContext.context)).toEqual( + false + ); + + expect(logger.error).toHaveBeenCalledWith( + new Error( + `Indices matching pattern .alerts-test-default-* exist but none are set as the write index for alias .alerts-test-default` + ) + ); + + expect(clusterClient.ilm.putLifecycle).toHaveBeenCalled(); + expect(clusterClient.cluster.putComponentTemplate).toHaveBeenCalledTimes(2); + expect(clusterClient.indices.simulateTemplate).toHaveBeenCalled(); + expect(clusterClient.indices.putIndexTemplate).toHaveBeenCalled(); + expect(clusterClient.indices.getAlias).toHaveBeenCalled(); + expect(clusterClient.indices.putSettings).toHaveBeenCalled(); + expect(clusterClient.indices.simulateIndexTemplate).toHaveBeenCalled(); + expect(clusterClient.indices.putMapping).toHaveBeenCalled(); + expect(clusterClient.indices.create).not.toHaveBeenCalled(); + }); + + test('does not create new index if concrete write index exists', async () => { + clusterClient.indices.getAlias.mockImplementationOnce(async () => ({ + '.alerts-test-default-0001': { + aliases: { + '.alerts-test-default': { + is_write_index: true, + is_hidden: true, + }, + alias_2: { + is_write_index: false, + is_hidden: true, + }, + }, + }, + })); + + alertsService.register(TestRegistrationContext); + await new Promise((r) => setTimeout(r, 50)); + expect(await alertsService.isContextInitialized(TestRegistrationContext.context)).toEqual( + true + ); + + expect(clusterClient.ilm.putLifecycle).toHaveBeenCalled(); + expect(clusterClient.cluster.putComponentTemplate).toHaveBeenCalledTimes(2); + expect(clusterClient.indices.simulateTemplate).toHaveBeenCalled(); + expect(clusterClient.indices.putIndexTemplate).toHaveBeenCalled(); + expect(clusterClient.indices.getAlias).toHaveBeenCalled(); + expect(clusterClient.indices.putSettings).toHaveBeenCalled(); + expect(clusterClient.indices.simulateIndexTemplate).toHaveBeenCalled(); + expect(clusterClient.indices.putMapping).toHaveBeenCalled(); + expect(clusterClient.indices.create).not.toHaveBeenCalled(); + }); + + test('should log error and set initialized to false if create concrete index throws error', async () => { + clusterClient.indices.create.mockRejectedValueOnce(new Error('fail')); + + alertsService.register(TestRegistrationContext); + await new Promise((r) => setTimeout(r, 50)); + expect(await alertsService.isContextInitialized(TestRegistrationContext.context)).toEqual( + false + ); + + expect(logger.error).toHaveBeenCalledWith(`Error creating concrete write index - fail`); + + expect(clusterClient.ilm.putLifecycle).toHaveBeenCalled(); + expect(clusterClient.cluster.putComponentTemplate).toHaveBeenCalledTimes(2); + expect(clusterClient.indices.simulateTemplate).toHaveBeenCalled(); + expect(clusterClient.indices.putIndexTemplate).toHaveBeenCalled(); + expect(clusterClient.indices.getAlias).toHaveBeenCalled(); + expect(clusterClient.indices.putSettings).toHaveBeenCalled(); + expect(clusterClient.indices.simulateIndexTemplate).toHaveBeenCalled(); + expect(clusterClient.indices.putMapping).toHaveBeenCalled(); + expect(clusterClient.indices.create).toHaveBeenCalled(); + }); + + test('should not throw error if create concrete index throws resource_already_exists_exception error and write index already exists', async () => { + const error = new Error(`fail`) as EsError; + error.meta = { + body: { + error: { + type: 'resource_already_exists_exception', + }, + }, + }; + clusterClient.indices.create.mockRejectedValueOnce(error); + clusterClient.indices.get.mockImplementationOnce(async () => ({ + '.alerts-test-default-000001': { + aliases: { '.alerts-test-default': { is_write_index: true } }, + }, + })); + + alertsService.register(TestRegistrationContext); + await new Promise((r) => setTimeout(r, 50)); + expect(await alertsService.isContextInitialized(TestRegistrationContext.context)).toEqual( + true + ); + + expect(logger.error).toHaveBeenCalledWith(`Error creating concrete write index - fail`); + + expect(clusterClient.ilm.putLifecycle).toHaveBeenCalled(); + expect(clusterClient.cluster.putComponentTemplate).toHaveBeenCalledTimes(2); + expect(clusterClient.indices.simulateTemplate).toHaveBeenCalled(); + expect(clusterClient.indices.putIndexTemplate).toHaveBeenCalled(); + expect(clusterClient.indices.getAlias).toHaveBeenCalled(); + expect(clusterClient.indices.putSettings).toHaveBeenCalled(); + expect(clusterClient.indices.simulateIndexTemplate).toHaveBeenCalled(); + expect(clusterClient.indices.putMapping).toHaveBeenCalled(); + expect(clusterClient.indices.get).toHaveBeenCalled(); + expect(clusterClient.indices.create).toHaveBeenCalled(); + }); + + test('should log error and set initialized to false if create concrete index throws resource_already_exists_exception error and write index does not already exists', async () => { + const error = new Error(`fail`) as EsError; + error.meta = { + body: { + error: { + type: 'resource_already_exists_exception', + }, + }, + }; + clusterClient.indices.create.mockRejectedValueOnce(error); + clusterClient.indices.get.mockImplementationOnce(async () => ({ + '.alerts-test-default-000001': { + aliases: { '.alerts-test-default': { is_write_index: false } }, + }, + })); + + alertsService.register(TestRegistrationContext); + await new Promise((r) => setTimeout(r, 50)); + expect(await alertsService.isContextInitialized(TestRegistrationContext.context)).toEqual( + false + ); + + expect(logger.error).toHaveBeenCalledWith(`Error creating concrete write index - fail`); + + expect(clusterClient.ilm.putLifecycle).toHaveBeenCalled(); + expect(clusterClient.cluster.putComponentTemplate).toHaveBeenCalledTimes(2); + expect(clusterClient.indices.simulateTemplate).toHaveBeenCalled(); + expect(clusterClient.indices.putIndexTemplate).toHaveBeenCalled(); + expect(clusterClient.indices.getAlias).toHaveBeenCalled(); + expect(clusterClient.indices.putSettings).toHaveBeenCalled(); + expect(clusterClient.indices.simulateIndexTemplate).toHaveBeenCalled(); + expect(clusterClient.indices.putMapping).toHaveBeenCalled(); + expect(clusterClient.indices.get).toHaveBeenCalled(); + expect(clusterClient.indices.create).toHaveBeenCalled(); + }); + }); + + describe('retries', () => { + test('should retry adding ILM policy for transient ES errors', async () => { + clusterClient.ilm.putLifecycle + .mockRejectedValueOnce(new EsErrors.ConnectionError('foo')) + .mockRejectedValueOnce(new EsErrors.TimeoutError('timeout')) + .mockResolvedValue({ acknowledged: true }); + const alertsService = new AlertsService({ + logger, + elasticsearchClientPromise: Promise.resolve(clusterClient), + pluginStop$, + }); + + alertsService.initialize(); + await new Promise((r) => setTimeout(r, 150)); + expect(alertsService.isInitialized()).toEqual(true); + expect(clusterClient.ilm.putLifecycle).toHaveBeenCalledTimes(3); + }); + + test('should retry adding component template for transient ES errors', async () => { + clusterClient.cluster.putComponentTemplate + .mockRejectedValueOnce(new EsErrors.ConnectionError('foo')) + .mockRejectedValueOnce(new EsErrors.TimeoutError('timeout')) + .mockResolvedValue({ acknowledged: true }); + const alertsService = new AlertsService({ + logger, + elasticsearchClientPromise: Promise.resolve(clusterClient), + pluginStop$, + }); + + alertsService.initialize(); + await new Promise((r) => setTimeout(r, 150)); + expect(alertsService.isInitialized()).toEqual(true); + expect(clusterClient.cluster.putComponentTemplate).toHaveBeenCalledTimes(3); + }); + + test('should retry updating index template for transient ES errors', async () => { + clusterClient.indices.putIndexTemplate + .mockRejectedValueOnce(new EsErrors.ConnectionError('foo')) + .mockRejectedValueOnce(new EsErrors.TimeoutError('timeout')) + .mockResolvedValue({ acknowledged: true }); + const alertsService = new AlertsService({ + logger, + elasticsearchClientPromise: Promise.resolve(clusterClient), + pluginStop$, + }); + + alertsService.initialize(); + await new Promise((r) => setTimeout(r, 150)); + expect(alertsService.isInitialized()).toEqual(true); + + alertsService.register(TestRegistrationContext); + await new Promise((r) => setTimeout(r, 150)); + expect(await alertsService.isContextInitialized(TestRegistrationContext.context)).toEqual( + true + ); + expect(clusterClient.indices.putIndexTemplate).toHaveBeenCalledTimes(3); + }); + + test('should retry updating index settings for existing indices for transient ES errors', async () => { + clusterClient.indices.putSettings + .mockRejectedValueOnce(new EsErrors.ConnectionError('foo')) + .mockRejectedValueOnce(new EsErrors.TimeoutError('timeout')) + .mockResolvedValue({ acknowledged: true }); + const alertsService = new AlertsService({ + logger, + elasticsearchClientPromise: Promise.resolve(clusterClient), + pluginStop$, + }); + + alertsService.initialize(); + await new Promise((r) => setTimeout(r, 150)); + expect(alertsService.isInitialized()).toEqual(true); + + alertsService.register(TestRegistrationContext); + await new Promise((r) => setTimeout(r, 150)); + expect(await alertsService.isContextInitialized(TestRegistrationContext.context)).toEqual( + true + ); + expect(clusterClient.indices.putSettings).toHaveBeenCalledTimes(4); + }); + + test('should retry updating index mappings for existing indices for transient ES errors', async () => { + clusterClient.indices.putMapping + .mockRejectedValueOnce(new EsErrors.ConnectionError('foo')) + .mockRejectedValueOnce(new EsErrors.TimeoutError('timeout')) + .mockResolvedValue({ acknowledged: true }); + const alertsService = new AlertsService({ + logger, + elasticsearchClientPromise: Promise.resolve(clusterClient), + pluginStop$, + }); + + alertsService.initialize(); + await new Promise((r) => setTimeout(r, 150)); + expect(alertsService.isInitialized()).toEqual(true); + + alertsService.register(TestRegistrationContext); + await new Promise((r) => setTimeout(r, 150)); + expect(await alertsService.isContextInitialized(TestRegistrationContext.context)).toEqual( + true + ); + expect(clusterClient.indices.putMapping).toHaveBeenCalledTimes(4); + }); + + test('should retry creating concrete index for transient ES errors', async () => { + clusterClient.indices.create + .mockRejectedValueOnce(new EsErrors.ConnectionError('foo')) + .mockRejectedValueOnce(new EsErrors.TimeoutError('timeout')) + .mockResolvedValue({ index: 'index', shards_acknowledged: true, acknowledged: true }); + const alertsService = new AlertsService({ + logger, + elasticsearchClientPromise: Promise.resolve(clusterClient), + pluginStop$, + }); + + alertsService.initialize(); + await new Promise((r) => setTimeout(r, 150)); + expect(alertsService.isInitialized()).toEqual(true); + + alertsService.register(TestRegistrationContext); + await new Promise((r) => setTimeout(r, 150)); + expect(await alertsService.isContextInitialized(TestRegistrationContext.context)).toEqual( + true + ); + expect(clusterClient.indices.create).toHaveBeenCalledTimes(3); + }); + }); + + describe('timeout', () => { + test('should short circuit initialization if timeout exceeded', async () => { + clusterClient.ilm.putLifecycle.mockImplementationOnce(async () => { + await new Promise((resolve) => setTimeout(resolve, 20)); + return { acknowledged: true }; + }); + const alertsService = new AlertsService({ + logger, + elasticsearchClientPromise: Promise.resolve(clusterClient), + pluginStop$, + }); + + alertsService.initialize(10); + await new Promise((r) => setTimeout(r, 150)); + expect(alertsService.isInitialized()).toEqual(false); + + expect(logger.error).toHaveBeenCalledWith(new Error(`Timeout: it took more than 10ms`)); + }); + + test('should short circuit initialization if pluginStop$ signal received but not throw error', async () => { + pluginStop$.next(); + const alertsService = new AlertsService({ + logger, + elasticsearchClientPromise: Promise.resolve(clusterClient), + pluginStop$, + }); + + alertsService.initialize(); + await new Promise((r) => setTimeout(r, 50)); + + expect(logger.error).toHaveBeenCalledWith( + new Error(`Server is stopping; must stop all async operations`) + ); + }); + }); +}); diff --git a/x-pack/plugins/alerting/server/alerts_service/alerts_service.ts b/x-pack/plugins/alerting/server/alerts_service/alerts_service.ts new file mode 100644 index 000000000000..0742be50c4fa --- /dev/null +++ b/x-pack/plugins/alerting/server/alerts_service/alerts_service.ts @@ -0,0 +1,512 @@ +/* + * 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 { + ClusterPutComponentTemplateRequest, + IndicesSimulateIndexTemplateResponse, + MappingTypeMapping, +} from '@elastic/elasticsearch/lib/api/types'; +import { get, isEmpty, isEqual } from 'lodash'; +import { Logger, ElasticsearchClient } from '@kbn/core/server'; +import { firstValueFrom, Observable } from 'rxjs'; +import { FieldMap } from '../../common/alert_schema/field_maps/types'; +import { alertFieldMap } from '../../common/alert_schema'; +import { ILM_POLICY_NAME, DEFAULT_ILM_POLICY } from './default_lifecycle_policy'; +import { + getComponentTemplate, + getComponentTemplateName, + getIndexTemplateAndPattern, + IIndexPatternString, +} from './types'; +import { retryTransientEsErrors } from './retry_transient_es_errors'; +import { IRuleTypeAlerts } from '../types'; +import { + createResourceInstallationHelper, + ResourceInstallationHelper, +} from './create_resource_installation_helper'; + +const TOTAL_FIELDS_LIMIT = 2500; +const INSTALLATION_TIMEOUT = 20 * 60 * 1000; // 20 minutes + +interface AlertsServiceParams { + logger: Logger; + pluginStop$: Observable; + elasticsearchClientPromise: Promise; +} + +interface ConcreteIndexInfo { + index: string; + alias: string; + isWriteIndex: boolean; +} +interface IAlertsService { + /** + * Initializes the common ES resources needed for framework alerts as data + * - ILM policy - common policy shared by all AAD indices + * - Component template - common mappings for fields populated and used by the framework + * + * Once common resource initialization is complete, look for any solution-specific + * resources that have been registered and are awaiting initialization. + */ + initialize(timeoutMs?: number): void; + + /** + * Register solution specific resources. If common resource initialization is + * complete, go ahead and install those resources, otherwise add to queue to + * await initialization + * + * Solution specific resources include: + * - Component template - solution specific mappings for fields used only by solution rule types + * - Index templates - solution specific template that combines common and solution specific component templates + * - Concrete write index - solution specific write index + */ + register(opts: IRuleTypeAlerts, timeoutMs?: number): void; + + isInitialized(): boolean; +} + +export class AlertsService implements IAlertsService { + private initialized: boolean; + private resourceInitializationHelper: ResourceInstallationHelper; + private registeredContexts: Map = new Map(); + + constructor(private readonly options: AlertsServiceParams) { + this.initialized = false; + this.resourceInitializationHelper = createResourceInstallationHelper( + this.initializeContext.bind(this) + ); + } + + public isInitialized() { + return this.initialized; + } + + public async isContextInitialized(context: string) { + return (await this.resourceInitializationHelper.getInitializedContexts().get(context)) ?? false; + } + + public initialize(timeoutMs?: number) { + // Only initialize once + if (this.initialized) return; + + this.options.logger.debug(`Initializing resources for AlertsService`); + + // Use setImmediate to execute async fns as soon as possible + setImmediate(async () => { + try { + const esClient = await this.options.elasticsearchClientPromise; + + // Common initialization installs ILM policy and shared component template + const initFns = [ + () => this.createOrUpdateIlmPolicy(esClient), + () => this.createOrUpdateComponentTemplate(esClient, getComponentTemplate(alertFieldMap)), + ]; + + for (const fn of initFns) { + await this.installWithTimeout(async () => await fn(), timeoutMs); + } + + this.initialized = true; + } catch (err) { + this.options.logger.error( + `Error installing common resources for AlertsService. No additional resources will be installed and rule execution may be impacted.` + ); + this.initialized = false; + } + + if (this.initialized) { + this.resourceInitializationHelper.setReadyToInitialize(timeoutMs); + } + }); + } + + public register({ context, fieldMap }: IRuleTypeAlerts, timeoutMs?: number) { + // check whether this context has been registered before + if (this.registeredContexts.has(context)) { + const registeredFieldMap = this.registeredContexts.get(context); + if (!isEqual(fieldMap, registeredFieldMap)) { + throw new Error(`${context} has already been registered with a different mapping`); + } + this.options.logger.debug(`Resources for context "${context}" have already been registered.`); + return; + } + + this.options.logger.info(`Registering resources for context "${context}".`); + this.registeredContexts.set(context, fieldMap); + this.resourceInitializationHelper.add({ context, fieldMap }, timeoutMs); + } + + private async initializeContext({ context, fieldMap }: IRuleTypeAlerts, timeoutMs?: number) { + const esClient = await this.options.elasticsearchClientPromise; + + const indexTemplateAndPattern = getIndexTemplateAndPattern(context); + + // Context specific initialization installs component template, index template and write index + // If fieldMap is empty, don't create context specific component template + const initFns = isEmpty(fieldMap) + ? [ + async () => + await this.createOrUpdateIndexTemplate(esClient, indexTemplateAndPattern, [ + getComponentTemplateName(), + ]), + async () => await this.createConcreteWriteIndex(esClient, indexTemplateAndPattern), + ] + : [ + async () => + await this.createOrUpdateComponentTemplate( + esClient, + getComponentTemplate(fieldMap, context) + ), + async () => + await this.createOrUpdateIndexTemplate(esClient, indexTemplateAndPattern, [ + getComponentTemplateName(), + getComponentTemplateName(context), + ]), + async () => await this.createConcreteWriteIndex(esClient, indexTemplateAndPattern), + ]; + + for (const fn of initFns) { + await this.installWithTimeout(async () => await fn(), timeoutMs); + } + } + + /** + * Creates ILM policy if it doesn't already exist, updates it if it does + */ + private async createOrUpdateIlmPolicy(esClient: ElasticsearchClient) { + this.options.logger.info(`Installing ILM policy ${ILM_POLICY_NAME}`); + + try { + await retryTransientEsErrors( + () => + esClient.ilm.putLifecycle({ + name: ILM_POLICY_NAME, + body: DEFAULT_ILM_POLICY, + }), + { logger: this.options.logger } + ); + } catch (err) { + this.options.logger.error(`Error installing ILM policy ${ILM_POLICY_NAME} - ${err.message}`); + throw err; + } + } + + private async createOrUpdateComponentTemplate( + esClient: ElasticsearchClient, + template: ClusterPutComponentTemplateRequest + ) { + this.options.logger.info(`Installing component template ${template.name}`); + + try { + await retryTransientEsErrors(() => esClient.cluster.putComponentTemplate(template), { + logger: this.options.logger, + }); + } catch (err) { + this.options.logger.error( + `Error installing component template ${template.name} - ${err.message}` + ); + throw err; + } + } + + /** + * Installs index template that uses installed component template + * Prior to installation, simulates the installation to check for possible + * conflicts. Simulate should return an empty mapping if a template + * conflicts with an already installed template. + */ + private async createOrUpdateIndexTemplate( + esClient: ElasticsearchClient, + indexPatterns: IIndexPatternString, + componentTemplateNames: string[] + ) { + this.options.logger.info(`Installing index template ${indexPatterns.template}`); + + const indexTemplate = { + name: indexPatterns.template, + body: { + index_patterns: [indexPatterns.pattern], + composed_of: componentTemplateNames, + template: { + settings: { + auto_expand_replicas: '0-1', + hidden: true, + 'index.lifecycle': { + name: ILM_POLICY_NAME, + rollover_alias: indexPatterns.alias, + }, + 'index.mapping.total_fields.limit': TOTAL_FIELDS_LIMIT, + }, + mappings: { + dynamic: false, + }, + }, + _meta: { + managed: true, + }, + // do we need metadata? like kibana version? doesn't that get updated every version? or just the first version its installed + }, + }; + + let mappings: MappingTypeMapping = {}; + try { + // Simulate the index template to proactively identify any issues with the mapping + const simulateResponse = await esClient.indices.simulateTemplate(indexTemplate); + mappings = simulateResponse.template.mappings; + } catch (err) { + this.options.logger.error( + `Failed to simulate index template mappings for ${indexPatterns.template}; not applying mappings - ${err.message}` + ); + return; + } + + if (isEmpty(mappings)) { + throw new Error( + `No mappings would be generated for ${indexPatterns.template}, possibly due to failed/misconfigured bootstrapping` + ); + } + + try { + await retryTransientEsErrors(() => esClient.indices.putIndexTemplate(indexTemplate), { + logger: this.options.logger, + }); + } catch (err) { + this.options.logger.error( + `Error installing index template ${indexPatterns.template} - ${err.message}` + ); + throw err; + } + } + + /** + * Updates the underlying mapping for any existing concrete indices + */ + private async updateIndexMappings( + esClient: ElasticsearchClient, + concreteIndices: ConcreteIndexInfo[] + ) { + this.options.logger.debug( + `Updating underlying mappings for ${concreteIndices.length} indices.` + ); + + // Update total field limit setting of found indices + // Other index setting changes are not updated at this time + await Promise.all( + concreteIndices.map((index) => this.updateTotalFieldLimitSetting(esClient, index)) + ); + + // Update mappings of the found indices. + await Promise.all( + concreteIndices.map((index) => this.updateUnderlyingMapping(esClient, index)) + ); + } + + private async updateTotalFieldLimitSetting( + esClient: ElasticsearchClient, + { index, alias }: ConcreteIndexInfo + ) { + try { + await retryTransientEsErrors( + () => + esClient.indices.putSettings({ + index, + body: { + 'index.mapping.total_fields.limit': TOTAL_FIELDS_LIMIT, + }, + }), + { + logger: this.options.logger, + } + ); + return; + } catch (err) { + this.options.logger.error( + `Failed to PUT index.mapping.total_fields.limit settings for alias ${alias}: ${err.message}` + ); + throw err; + } + } + + private async updateUnderlyingMapping( + esClient: ElasticsearchClient, + { index, alias }: ConcreteIndexInfo + ) { + let simulatedIndexMapping: IndicesSimulateIndexTemplateResponse; + try { + simulatedIndexMapping = await esClient.indices.simulateIndexTemplate({ + name: index, + }); + } catch (err) { + this.options.logger.error( + `Ignored PUT mappings for alias ${alias}; error generating simulated mappings: ${err.message}` + ); + return; + } + + const simulatedMapping = get(simulatedIndexMapping, ['template', 'mappings']); + + if (simulatedMapping == null) { + this.options.logger.error( + `Ignored PUT mappings for alias ${alias}; simulated mappings were empty` + ); + return; + } + + try { + await retryTransientEsErrors( + () => + esClient.indices.putMapping({ + index, + body: simulatedMapping, + }), + { + logger: this.options.logger, + } + ); + + return; + } catch (err) { + this.options.logger.error(`Failed to PUT mapping for alias ${alias}: ${err.message}`); + throw err; + } + } + + private async createConcreteWriteIndex( + esClient: ElasticsearchClient, + indexPatterns: IIndexPatternString + ) { + this.options.logger.info(`Creating concrete write index - ${indexPatterns.name}`); + + // check if a concrete write index already exists + let concreteIndices: ConcreteIndexInfo[] = []; + try { + const response = await esClient.indices.getAlias({ + index: indexPatterns.pattern, + }); + + concreteIndices = Object.entries(response).flatMap(([index, { aliases }]) => + Object.entries(aliases).map(([aliasName, aliasProperties]) => ({ + index, + alias: aliasName, + isWriteIndex: aliasProperties.is_write_index ?? false, + })) + ); + + this.options.logger.debug( + `Found ${concreteIndices.length} concrete indices for ${ + indexPatterns.name + } - ${JSON.stringify(concreteIndices)}` + ); + } catch (error) { + // 404 is expected if no concrete write indices have been created + if (error.statusCode !== 404) { + this.options.logger.error( + `Error fetching concrete indices for ${indexPatterns.pattern} pattern - ${error.message}` + ); + throw error; + } + } + + let concreteWriteIndicesExist = false; + // if a concrete write index already exists, update the underlying mapping + if (concreteIndices.length > 0) { + await this.updateIndexMappings(esClient, concreteIndices); + + const concreteIndicesExist = concreteIndices.some( + (index) => index.alias === indexPatterns.alias + ); + concreteWriteIndicesExist = concreteIndices.some( + (index) => index.alias === indexPatterns.alias && index.isWriteIndex + ); + + // If there are some concrete indices but none of them are the write index, we'll throw an error + // because one of the existing indices should have been the write target. + if (concreteIndicesExist && !concreteWriteIndicesExist) { + throw new Error( + `Indices matching pattern ${indexPatterns.pattern} exist but none are set as the write index for alias ${indexPatterns.alias}` + ); + } + } + + // check if a concrete write index already exists + if (!concreteWriteIndicesExist) { + try { + await retryTransientEsErrors( + () => + esClient.indices.create({ + index: indexPatterns.name, + body: { + aliases: { + [indexPatterns.alias]: { + is_write_index: true, + }, + }, + }, + }), + { + logger: this.options.logger, + } + ); + } catch (error) { + this.options.logger.error(`Error creating concrete write index - ${error.message}`); + // If the index already exists and it's the write index for the alias, + // something else created it so suppress the error. If it's not the write + // index, that's bad, throw an error. + if (error?.meta?.body?.error?.type === 'resource_already_exists_exception') { + const existingIndices = await esClient.indices.get({ + index: indexPatterns.name, + }); + if ( + !existingIndices[indexPatterns.name]?.aliases?.[indexPatterns.alias]?.is_write_index + ) { + throw Error( + `Attempted to create index: ${indexPatterns.name} as the write index for alias: ${indexPatterns.alias}, but the index already exists and is not the write index for the alias` + ); + } + } else { + throw error; + } + } + } + } + + private async installWithTimeout( + installFn: () => Promise, + timeoutMs: number = INSTALLATION_TIMEOUT + ): Promise { + try { + let timeoutId: NodeJS.Timeout; + const install = async (): Promise => { + await installFn(); + if (timeoutId) { + clearTimeout(timeoutId); + } + }; + + const throwTimeoutException = (): Promise => { + return new Promise((_, reject) => { + timeoutId = setTimeout(() => { + const msg = `Timeout: it took more than ${timeoutMs}ms`; + reject(new Error(msg)); + }, timeoutMs); + + firstValueFrom(this.options.pluginStop$).then(() => { + clearTimeout(timeoutId); + reject(new Error('Server is stopping; must stop all async operations')); + }); + }); + }; + + await Promise.race([install(), throwTimeoutException()]); + } catch (e) { + this.options.logger.error(e); + + const reason = e?.message || 'Unknown reason'; + throw new Error(`Failure during installation. ${reason}`); + } + } +} diff --git a/x-pack/plugins/alerting/server/alerts_service/create_resource_installation_helper.test.ts b/x-pack/plugins/alerting/server/alerts_service/create_resource_installation_helper.test.ts new file mode 100644 index 000000000000..f9ce460d0409 --- /dev/null +++ b/x-pack/plugins/alerting/server/alerts_service/create_resource_installation_helper.test.ts @@ -0,0 +1,137 @@ +/* + * 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 { loggingSystemMock } from '@kbn/core/server/mocks'; +import { IRuleTypeAlerts } from '../types'; +import { createResourceInstallationHelper } from './create_resource_installation_helper'; + +const logger: ReturnType = + loggingSystemMock.createLogger(); + +const initFn = async (context: IRuleTypeAlerts, timeoutMs?: number) => { + logger.info(context.context); +}; + +const initFnWithDelay = async (context: IRuleTypeAlerts, timeoutMs?: number) => { + logger.info(context.context); + await new Promise((r) => setTimeout(r, 50)); +}; + +const initFnWithError = async (context: IRuleTypeAlerts, timeoutMs?: number) => { + throw new Error('fail'); +}; + +describe('createResourceInstallationHelper', () => { + beforeEach(() => { + jest.clearAllMocks(); + }); + + test(`should not call init function if readyToInitialize is false`, () => { + const helper = createResourceInstallationHelper(initFn); + + // Add two contexts that need to be initialized but don't call helper.setReadyToInitialize() + helper.add({ context: 'test1', fieldMap: { field: { type: 'keyword', required: false } } }); + helper.add({ context: 'test2', fieldMap: { field: { type: 'keyword', required: false } } }); + + expect(logger.info).not.toHaveBeenCalled(); + const initializedContexts = helper.getInitializedContexts(); + expect([...initializedContexts.keys()].length).toEqual(0); + }); + + test(`should call init function if readyToInitialize is set to true`, async () => { + const helper = createResourceInstallationHelper(initFn); + + // Add two contexts that need to be initialized and then call helper.setReadyToInitialize() + helper.add({ context: 'test1', fieldMap: { field: { type: 'keyword', required: false } } }); + helper.add({ context: 'test2', fieldMap: { field: { type: 'keyword', required: false } } }); + + helper.setReadyToInitialize(); + + // for the setImmediate + await new Promise((r) => setTimeout(r, 10)); + + expect(logger.info).toHaveBeenCalledTimes(2); + const initializedContexts = helper.getInitializedContexts(); + expect([...initializedContexts.keys()].length).toEqual(2); + + expect(await initializedContexts.get('test1')).toEqual(true); + expect(await initializedContexts.get('test2')).toEqual(true); + }); + + test(`should install resources for contexts added after readyToInitialize is called`, async () => { + const helper = createResourceInstallationHelper(initFnWithDelay); + + // Add two contexts that need to be initialized + helper.add({ context: 'test1', fieldMap: { field: { type: 'keyword', required: false } } }); + helper.add({ context: 'test2', fieldMap: { field: { type: 'keyword', required: false } } }); + + // Start processing the queued contexts + helper.setReadyToInitialize(); + + // for the setImmediate + await new Promise((r) => setTimeout(r, 10)); + + // Add another context to process + helper.add({ context: 'test3', fieldMap: { field: { type: 'keyword', required: false } } }); + + // 3 contexts with delay will take 150 + await new Promise((r) => setTimeout(r, 10)); + + expect(logger.info).toHaveBeenCalledTimes(3); + const initializedContexts = helper.getInitializedContexts(); + expect([...initializedContexts.keys()].length).toEqual(3); + + expect(await initializedContexts.get('test1')).toEqual(true); + expect(await initializedContexts.get('test2')).toEqual(true); + expect(await initializedContexts.get('test3')).toEqual(true); + }); + + test(`should install resources for contexts added after initial processing loop has run`, async () => { + const helper = createResourceInstallationHelper(initFn); + + // No contexts queued so this should finish quickly + helper.setReadyToInitialize(); + + // for the setImmediate + await new Promise((r) => setTimeout(r, 10)); + + expect(logger.info).not.toHaveBeenCalled(); + let initializedContexts = helper.getInitializedContexts(); + expect([...initializedContexts.keys()].length).toEqual(0); + + // Add a context to process + helper.add({ context: 'test1', fieldMap: { field: { type: 'keyword', required: false } } }); + + // for the setImmediate + await new Promise((r) => setTimeout(r, 10)); + + expect(logger.info).toHaveBeenCalledTimes(1); + initializedContexts = helper.getInitializedContexts(); + expect([...initializedContexts.keys()].length).toEqual(1); + + expect(await initializedContexts.get('test1')).toEqual(true); + }); + + test(`should gracefully handle errors during initialization and set initialized flag to false`, async () => { + const helper = createResourceInstallationHelper(initFnWithError); + + helper.setReadyToInitialize(); + + // for the setImmediate + await new Promise((r) => setTimeout(r, 10)); + + // Add a context to process + helper.add({ context: 'test1', fieldMap: { field: { type: 'keyword', required: false } } }); + + // for the setImmediate + await new Promise((r) => setTimeout(r, 10)); + + const initializedContexts = helper.getInitializedContexts(); + expect([...initializedContexts.keys()].length).toEqual(1); + expect(await initializedContexts.get('test1')).toEqual(false); + }); +}); diff --git a/x-pack/plugins/alerting/server/alerts_service/create_resource_installation_helper.ts b/x-pack/plugins/alerting/server/alerts_service/create_resource_installation_helper.ts new file mode 100644 index 000000000000..0e3cbe0f87a9 --- /dev/null +++ b/x-pack/plugins/alerting/server/alerts_service/create_resource_installation_helper.ts @@ -0,0 +1,81 @@ +/* + * 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 { IRuleTypeAlerts } from '../types'; + +export interface ResourceInstallationHelper { + add: (context: IRuleTypeAlerts, timeoutMs?: number) => void; + setReadyToInitialize: (timeoutMs?: number) => void; + getInitializedContexts: () => Map>; +} + +/** + * Helper function that queues up resources to initialize until we are + * ready to begin initialization. Once we're ready, we start taking from + * the queue and kicking off initialization. + * + * If a resource is added after we begin initialization, we push it onto + * the queue and the running loop will handle it + * + * If a resource is added to the queue when the processing loop is not + * running, kick off the processing loop + */ +export function createResourceInstallationHelper( + initFn: (context: IRuleTypeAlerts, timeoutMs?: number) => Promise +): ResourceInstallationHelper { + let readyToInitialize = false; + let isInitializing: boolean = false; + const contextsToInitialize: IRuleTypeAlerts[] = []; + const initializedContexts: Map> = new Map(); + + const waitUntilContextResourcesInstalled = async ( + context: IRuleTypeAlerts, + timeoutMs?: number + ): Promise => { + try { + await initFn(context, timeoutMs); + return true; + } catch (err) { + return false; + } + }; + + const startInitialization = (timeoutMs?: number) => { + if (!readyToInitialize) { + return; + } + + setImmediate(async () => { + isInitializing = true; + while (contextsToInitialize.length > 0) { + const context = contextsToInitialize.pop()!; + initializedContexts.set( + context.context, + + // Return a promise than can be checked when needed + waitUntilContextResourcesInstalled(context, timeoutMs) + ); + } + isInitializing = false; + }); + }; + return { + add: (context: IRuleTypeAlerts, timeoutMs?: number) => { + contextsToInitialize.push(context); + if (!isInitializing) { + startInitialization(timeoutMs); + } + }, + setReadyToInitialize: (timeoutMs?: number) => { + readyToInitialize = true; + startInitialization(timeoutMs); + }, + getInitializedContexts: () => { + return initializedContexts; + }, + }; +} diff --git a/x-pack/plugins/alerting/server/alerts_service/default_lifecycle_policy.ts b/x-pack/plugins/alerting/server/alerts_service/default_lifecycle_policy.ts new file mode 100644 index 000000000000..f5d11c6214ee --- /dev/null +++ b/x-pack/plugins/alerting/server/alerts_service/default_lifecycle_policy.ts @@ -0,0 +1,34 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +/** + * Default alert index ILM policy + * - _meta.managed: notify users this is a managed policy and should be modified + * at their own risk + * - no delete phase as we want to keep these indices around indefinitely + * + * This should be used by all alerts-as-data indices + */ + +export const ILM_POLICY_NAME = 'alerts-default-ilm-policy'; +export const DEFAULT_ILM_POLICY = { + policy: { + _meta: { + managed: true, + }, + phases: { + hot: { + actions: { + rollover: { + max_age: '30d', + max_primary_shard_size: '50gb', + }, + }, + }, + }, + }, +}; diff --git a/x-pack/plugins/alerting/server/alerts_service/retry_transient_es_errors.test.ts b/x-pack/plugins/alerting/server/alerts_service/retry_transient_es_errors.test.ts new file mode 100644 index 000000000000..2501c57776d8 --- /dev/null +++ b/x-pack/plugins/alerting/server/alerts_service/retry_transient_es_errors.test.ts @@ -0,0 +1,95 @@ +/* + * 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 { loggerMock } from '@kbn/logging-mocks'; +import { errors as EsErrors } from '@elastic/elasticsearch'; + +import { retryTransientEsErrors } from './retry_transient_es_errors'; + +const logger = loggerMock.create(); +const randomDelayMultiplier = 0.01; + +describe('retryTransientErrors', () => { + beforeEach(() => { + jest.resetAllMocks(); + jest.spyOn(global.Math, 'random').mockReturnValue(randomDelayMultiplier); + }); + + it("doesn't retry if operation is successful", async () => { + const esCallMock = jest.fn().mockResolvedValue('success'); + expect(await retryTransientEsErrors(esCallMock, { logger })).toEqual('success'); + expect(esCallMock).toHaveBeenCalledTimes(1); + }); + + it('logs a warning message on retry', async () => { + const esCallMock = jest + .fn() + .mockRejectedValueOnce(new EsErrors.ConnectionError('foo')) + .mockResolvedValue('success'); + + await retryTransientEsErrors(esCallMock, { logger }); + expect(logger.warn).toHaveBeenCalledTimes(1); + expect(logger.warn.mock.calls[0][0]).toMatch( + `Retrying Elasticsearch operation after [2s] due to error: ConnectionError: foo ConnectionError: foo` + ); + }); + + it('retries with an exponential backoff', async () => { + let attempt = 0; + const esCallMock = jest.fn(async () => { + attempt++; + if (attempt < 4) { + throw new EsErrors.ConnectionError('foo'); + } else { + return 'success'; + } + }); + + expect(await retryTransientEsErrors(esCallMock, { logger })).toEqual('success'); + expect(esCallMock).toHaveBeenCalledTimes(4); + expect(logger.warn).toHaveBeenCalledTimes(3); + expect(logger.warn.mock.calls[0][0]).toMatch( + `Retrying Elasticsearch operation after [2s] due to error: ConnectionError: foo ConnectionError: foo` + ); + expect(logger.warn.mock.calls[1][0]).toMatch( + `Retrying Elasticsearch operation after [4s] due to error: ConnectionError: foo ConnectionError: foo` + ); + expect(logger.warn.mock.calls[2][0]).toMatch( + `Retrying Elasticsearch operation after [8s] due to error: ConnectionError: foo ConnectionError: foo` + ); + }); + + it('retries each supported error type', async () => { + const errors = [ + new EsErrors.NoLivingConnectionsError('no living connection', { + warnings: [], + // eslint-disable-next-line @typescript-eslint/no-explicit-any + meta: {} as any, + }), + new EsErrors.ConnectionError('no connection'), + new EsErrors.TimeoutError('timeout'), + // eslint-disable-next-line @typescript-eslint/no-explicit-any + new EsErrors.ResponseError({ statusCode: 503, meta: {} as any, warnings: [] }), + // eslint-disable-next-line @typescript-eslint/no-explicit-any + new EsErrors.ResponseError({ statusCode: 408, meta: {} as any, warnings: [] }), + // eslint-disable-next-line @typescript-eslint/no-explicit-any + new EsErrors.ResponseError({ statusCode: 410, meta: {} as any, warnings: [] }), + ]; + + for (const error of errors) { + const esCallMock = jest.fn().mockRejectedValueOnce(error).mockResolvedValue('success'); + expect(await retryTransientEsErrors(esCallMock, { logger })).toEqual('success'); + expect(esCallMock).toHaveBeenCalledTimes(2); + } + }); + + it('does not retry unsupported errors', async () => { + const error = new Error('foo!'); + const esCallMock = jest.fn().mockRejectedValueOnce(error).mockResolvedValue('success'); + await expect(retryTransientEsErrors(esCallMock, { logger })).rejects.toThrow(error); + expect(esCallMock).toHaveBeenCalledTimes(1); + }); +}); diff --git a/x-pack/plugins/alerting/server/alerts_service/retry_transient_es_errors.ts b/x-pack/plugins/alerting/server/alerts_service/retry_transient_es_errors.ts new file mode 100644 index 000000000000..2df03e65690f --- /dev/null +++ b/x-pack/plugins/alerting/server/alerts_service/retry_transient_es_errors.ts @@ -0,0 +1,57 @@ +/* + * 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 { Logger } from '@kbn/core/server'; +import { errors as EsErrors } from '@elastic/elasticsearch'; + +const MAX_ATTEMPTS = 3; + +const retryResponseStatuses = [ + 503, // ServiceUnavailable + 408, // RequestTimeout + 410, // Gone +]; + +const isRetryableError = (e: Error) => + e instanceof EsErrors.NoLivingConnectionsError || + e instanceof EsErrors.ConnectionError || + e instanceof EsErrors.TimeoutError || + (e instanceof EsErrors.ResponseError && retryResponseStatuses.includes(e?.statusCode!)); + +const delay = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms)); + +export const retryTransientEsErrors = async ( + esCall: () => Promise, + { + logger, + attempt = 0, + }: { + logger: Logger; + attempt?: number; + } +): Promise => { + try { + return await esCall(); + } catch (e) { + if (attempt < MAX_ATTEMPTS && isRetryableError(e)) { + const retryCount = attempt + 1; + const retryDelaySec: number = Math.min(Math.pow(2, retryCount), 30); // 2s, 4s, 8s, 16s, 30s, 30s, 30s... + + logger.warn( + `Retrying Elasticsearch operation after [${retryDelaySec}s] due to error: ${e.toString()} ${ + e.stack + }` + ); + + // delay with some randomness + await delay(retryDelaySec * 1000 * Math.random()); + return retryTransientEsErrors(esCall, { logger, attempt: retryCount }); + } + + throw e; + } +}; diff --git a/x-pack/plugins/alerting/server/alerts_service/types.ts b/x-pack/plugins/alerting/server/alerts_service/types.ts new file mode 100644 index 000000000000..db47a9a8e001 --- /dev/null +++ b/x-pack/plugins/alerting/server/alerts_service/types.ts @@ -0,0 +1,44 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { ClusterPutComponentTemplateRequest } from '@elastic/elasticsearch/lib/api/types'; +import { getComponentTemplateFromFieldMap } from '../../common/alert_schema'; +import { FieldMap } from '../../common/alert_schema/field_maps/types'; + +export const getComponentTemplateName = (context?: string) => + `alerts-${context ? context : 'common'}-component-template`; + +export interface IIndexPatternString { + template: string; + pattern: string; + alias: string; + name: string; +} + +export const getIndexTemplateAndPattern = ( + context: string, + namespace?: string +): IIndexPatternString => { + const pattern = `${context}-${namespace ? namespace : 'default'}`; + return { + template: `.alerts-${pattern}-template`, + pattern: `.alerts-${pattern}-*`, + alias: `.alerts-${pattern}`, + name: `.alerts-${pattern}-000001`, + }; +}; + +export const getComponentTemplate = ( + fieldMap: FieldMap, + context?: string +): ClusterPutComponentTemplateRequest => + getComponentTemplateFromFieldMap({ + name: getComponentTemplateName(context), + fieldMap, + // set field limit slightly higher than actual number of fields + fieldLimit: 100, // Math.round(Object.keys(fieldMap).length * 1.5), + }); diff --git a/x-pack/plugins/alerting/server/config.test.ts b/x-pack/plugins/alerting/server/config.test.ts index ec6f2f6565d6..26ea818719b7 100644 --- a/x-pack/plugins/alerting/server/config.test.ts +++ b/x-pack/plugins/alerting/server/config.test.ts @@ -13,6 +13,7 @@ describe('config validation', () => { expect(configSchema.validate(config)).toMatchInlineSnapshot(` Object { "cancelAlertsOnRuleTimeout": true, + "enableFrameworkAlerts": false, "healthCheck": Object { "interval": "60m", }, diff --git a/x-pack/plugins/alerting/server/config.ts b/x-pack/plugins/alerting/server/config.ts index f6becbf192b0..f727cb98c026 100644 --- a/x-pack/plugins/alerting/server/config.ts +++ b/x-pack/plugins/alerting/server/config.ts @@ -62,6 +62,7 @@ export const configSchema = schema.object({ maxEphemeralActionsPerAlert: schema.number({ defaultValue: DEFAULT_MAX_EPHEMERAL_ACTIONS_PER_ALERT, }), + enableFrameworkAlerts: schema.boolean({ defaultValue: false }), cancelAlertsOnRuleTimeout: schema.boolean({ defaultValue: true }), rules: rulesSchema, }); diff --git a/x-pack/plugins/alerting/server/plugin.test.ts b/x-pack/plugins/alerting/server/plugin.test.ts index 7b85bc898fee..4e48c0db01ae 100644 --- a/x-pack/plugins/alerting/server/plugin.test.ts +++ b/x-pack/plugins/alerting/server/plugin.test.ts @@ -26,6 +26,13 @@ import { PluginSetup as DataPluginSetup, } from '@kbn/data-plugin/server'; import { spacesMock } from '@kbn/spaces-plugin/server/mocks'; +import { AlertsService } from './alerts_service/alerts_service'; +import { alertsServiceMock } from './alerts_service/alerts_service.mock'; + +const mockAlertService = alertsServiceMock.create(); +jest.mock('./alerts_service/alerts_service', () => ({ + AlertsService: jest.fn().mockImplementation(() => mockAlertService), +})); import { SharePluginStart } from '@kbn/share-plugin/server'; import { dataViewPluginMocks } from '@kbn/data-views-plugin/public/mocks'; @@ -33,6 +40,7 @@ const generateAlertingConfig = (): AlertingConfig => ({ healthCheck: { interval: '5m', }, + enableFrameworkAlerts: false, invalidateApiKeysTask: { interval: '5m', removalDelay: '1h', @@ -116,6 +124,20 @@ describe('Alerting Plugin', () => { expect(usageCollectionSetup.registerCollector).toHaveBeenCalled(); }); + it('should initialize AlertsService if enableFrameworkAlerts config is true', async () => { + const context = coreMock.createPluginInitializerContext({ + ...generateAlertingConfig(), + enableFrameworkAlerts: true, + }); + plugin = new AlertingPlugin(context); + + // need await to test number of calls of setupMocks.status.set, because it is under async function which awaiting core.getStartServices() + await plugin.setup(setupMocks, mockPlugins); + + expect(AlertsService).toHaveBeenCalled(); + expect(mockAlertService.initialize).toHaveBeenCalled(); + }); + it(`exposes configured minimumScheduleInterval()`, async () => { const context = coreMock.createPluginInitializerContext( generateAlertingConfig() diff --git a/x-pack/plugins/alerting/server/plugin.ts b/x-pack/plugins/alerting/server/plugin.ts index b3b94584025c..5ae4be21d9a6 100644 --- a/x-pack/plugins/alerting/server/plugin.ts +++ b/x-pack/plugins/alerting/server/plugin.ts @@ -6,7 +6,7 @@ */ import type { PublicMethodsOf } from '@kbn/utility-types'; -import { BehaviorSubject } from 'rxjs'; +import { BehaviorSubject, ReplaySubject, Subject } from 'rxjs'; import { pick } from 'lodash'; import { UsageCollectionSetup, UsageCounter } from '@kbn/usage-collection-plugin/server'; import { SecurityPluginSetup, SecurityPluginStart } from '@kbn/security-plugin/server'; @@ -86,6 +86,7 @@ import { getSecurityHealth, SecurityHealth } from './lib/get_security_health'; import { registerNodeCollector, registerClusterCollector, InMemoryMetrics } from './monitoring'; import { getRuleTaskTimeout } from './lib/get_rule_task_timeout'; import { getActionsConfigMap } from './lib/get_actions_config_map'; +import { AlertsService } from './alerts_service/alerts_service'; import { rulesSettingsFeature } from './rules_settings_feature'; export const EVENT_LOG_PROVIDER = 'alerting'; @@ -186,6 +187,8 @@ export class AlertingPlugin { private kibanaBaseUrl: string | undefined; private usageCounter: UsageCounter | undefined; private inMemoryMetrics: InMemoryMetrics; + private alertsService?: AlertsService; + private pluginStop$: Subject; constructor(initializerContext: PluginInitializerContext) { this.config = initializerContext.config.get(); @@ -197,6 +200,7 @@ export class AlertingPlugin { this.telemetryLogger = initializerContext.logger.get('usage'); this.kibanaVersion = initializerContext.env.packageInfo.version; this.inMemoryMetrics = new InMemoryMetrics(initializerContext.logger.get('in_memory_metrics')); + this.pluginStop$ = new ReplaySubject(1); } public setup( @@ -235,12 +239,24 @@ export class AlertingPlugin { this.eventLogService = plugins.eventLog; plugins.eventLog.registerProviderActions(EVENT_LOG_PROVIDER, Object.values(EVENT_LOG_ACTIONS)); + if (this.config.enableFrameworkAlerts) { + this.alertsService = new AlertsService({ + logger: this.logger, + pluginStop$: this.pluginStop$, + elasticsearchClientPromise: core + .getStartServices() + .then(([{ elasticsearch }]) => elasticsearch.client.asInternalUser), + }); + this.alertsService!.initialize(); + } + const ruleTypeRegistry = new RuleTypeRegistry({ logger: this.logger, taskManager: plugins.taskManager, taskRunnerFactory: this.taskRunnerFactory, licenseState: this.licenseState, licensing: plugins.licensing, + alertsService: this.alertsService, minimumScheduleInterval: this.config.rules.minimumScheduleInterval, inMemoryMetrics: this.inMemoryMetrics, }); @@ -526,5 +542,7 @@ export class AlertingPlugin { if (this.licenseState) { this.licenseState.clean(); } + this.pluginStop$.next(); + this.pluginStop$.complete(); } } diff --git a/x-pack/plugins/alerting/server/rule_type_registry.test.ts b/x-pack/plugins/alerting/server/rule_type_registry.test.ts index 8391d94576d1..bb15ef287e40 100644 --- a/x-pack/plugins/alerting/server/rule_type_registry.test.ts +++ b/x-pack/plugins/alerting/server/rule_type_registry.test.ts @@ -14,6 +14,7 @@ import { licenseStateMock } from './lib/license_state.mock'; import { licensingMock } from '@kbn/licensing-plugin/server/mocks'; import { loggingSystemMock } from '@kbn/core/server/mocks'; import { inMemoryMetricsMock } from './monitoring/in_memory_metrics.mock'; +import { alertsServiceMock } from './alerts_service/alerts_service.mock'; const logger = loggingSystemMock.create().get(); let mockedLicenseState: jest.Mocked; @@ -21,6 +22,7 @@ let ruleTypeRegistryParams: ConstructorOptions; const taskManager = taskManagerMock.createSetup(); const inMemoryMetrics = inMemoryMetricsMock.create(); +const alertsService = alertsServiceMock.create(); beforeEach(() => { jest.resetAllMocks(); @@ -451,6 +453,55 @@ describe('Create Lifecycle', () => { }) ).toThrowErrorMatchingInlineSnapshot(`"Rule type \\"test\\" is already registered."`); }); + + test('should initialize alerts as data resources if AlertsService is defined and alert definition is registered', () => { + const registry = new RuleTypeRegistry({ ...ruleTypeRegistryParams, alertsService }); + registry.register({ + id: 'test', + name: 'Test', + actionGroups: [ + { + id: 'default', + name: 'Default', + }, + ], + defaultActionGroupId: 'default', + minimumLicenseRequired: 'basic', + isExportable: true, + executor: jest.fn(), + producer: 'alerts', + alerts: { + context: 'test', + fieldMap: { field: { type: 'keyword', required: false } }, + }, + }); + + expect(alertsService.register).toHaveBeenCalledWith({ + context: 'test', + fieldMap: { field: { type: 'keyword', required: false } }, + }); + }); + + test('should not initialize alerts as data resources if no alert definition is registered', () => { + const registry = new RuleTypeRegistry({ ...ruleTypeRegistryParams, alertsService }); + registry.register({ + id: 'test', + name: 'Test', + actionGroups: [ + { + id: 'default', + name: 'Default', + }, + ], + defaultActionGroupId: 'default', + minimumLicenseRequired: 'basic', + isExportable: true, + executor: jest.fn(), + producer: 'alerts', + }); + + expect(alertsService.register).not.toHaveBeenCalled(); + }); }); describe('get()', () => { diff --git a/x-pack/plugins/alerting/server/rule_type_registry.ts b/x-pack/plugins/alerting/server/rule_type_registry.ts index b908f7cb67b8..b4be0957f11a 100644 --- a/x-pack/plugins/alerting/server/rule_type_registry.ts +++ b/x-pack/plugins/alerting/server/rule_type_registry.ts @@ -33,6 +33,7 @@ import { ILicenseState } from './lib/license_state'; import { getRuleTypeFeatureUsageName } from './lib/get_rule_type_feature_usage_name'; import { InMemoryMetrics } from './monitoring'; import { AlertingRulesConfig } from '.'; +import { AlertsService } from './alerts_service/alerts_service'; export interface ConstructorOptions { logger: Logger; @@ -42,6 +43,7 @@ export interface ConstructorOptions { licensing: LicensingPluginSetup; minimumScheduleInterval: AlertingRulesConfig['minimumScheduleInterval']; inMemoryMetrics: InMemoryMetrics; + alertsService?: AlertsService; } export interface RegistryRuleType @@ -139,6 +141,7 @@ export class RuleTypeRegistry { private readonly minimumScheduleInterval: AlertingRulesConfig['minimumScheduleInterval']; private readonly licensing: LicensingPluginSetup; private readonly inMemoryMetrics: InMemoryMetrics; + private readonly alertsService?: AlertsService; constructor({ logger, @@ -148,6 +151,7 @@ export class RuleTypeRegistry { licensing, minimumScheduleInterval, inMemoryMetrics, + alertsService, }: ConstructorOptions) { this.logger = logger; this.taskManager = taskManager; @@ -156,6 +160,7 @@ export class RuleTypeRegistry { this.licensing = licensing; this.minimumScheduleInterval = minimumScheduleInterval; this.inMemoryMetrics = inMemoryMetrics; + this.alertsService = alertsService; } public has(id: string) { @@ -277,6 +282,11 @@ export class RuleTypeRegistry { >(normalizedRuleType, context, this.inMemoryMetrics), }, }); + + if (this.alertsService && ruleType.alerts) { + this.alertsService.register(ruleType.alerts); + } + // No need to notify usage on basic alert types if (ruleType.minimumLicenseRequired !== 'basic') { this.licensing.featureUsage.register( diff --git a/x-pack/plugins/alerting/server/types.ts b/x-pack/plugins/alerting/server/types.ts index f4b7cc57b27e..4092b9209432 100644 --- a/x-pack/plugins/alerting/server/types.ts +++ b/x-pack/plugins/alerting/server/types.ts @@ -50,6 +50,7 @@ import { RuleLastRun, } from '../common'; import { PublicAlertFactory } from './alert/create_alert_factory'; +import { FieldMap } from '../common/alert_schema/field_maps/types'; export type WithoutQueryAndParams = Pick>; export type SpaceIdToNamespaceFunction = (spaceId?: string) => string | undefined; export type { RuleTypeParams }; @@ -158,6 +159,11 @@ export interface SummarizedAlerts { }; } export type GetSummarizedAlertsFn = (opts: GetSummarizedAlertsFnOpts) => Promise; +export interface IRuleTypeAlerts { + context: string; + namespace?: string; + fieldMap: FieldMap; +} export interface RuleType< Params extends RuleTypeParams = never, @@ -204,6 +210,7 @@ export interface RuleType< cancelAlertsOnRuleTimeout?: boolean; doesSetRecoveryContext?: boolean; getSummarizedAlerts?: GetSummarizedAlertsFn; + alerts?: IRuleTypeAlerts; /** * Determines whether framework should * automatically make recovery determination. Defaults to true. diff --git a/x-pack/plugins/alerting/tsconfig.json b/x-pack/plugins/alerting/tsconfig.json index a1fb0d3892d2..73c407bd325a 100644 --- a/x-pack/plugins/alerting/tsconfig.json +++ b/x-pack/plugins/alerting/tsconfig.json @@ -8,7 +8,7 @@ // have to declare *.json explicitly due to https://github.com/microsoft/TypeScript/issues/25636 "server/**/*.json", "public/**/*", - "common/*" + "common/**/*" ], "kbn_references": [ "@kbn/core", @@ -39,6 +39,7 @@ "@kbn/apm-utils", "@kbn/data-views-plugin", "@kbn/share-plugin", + "@kbn/safer-lodash-set", ], "exclude": [ "target/**/*", diff --git a/x-pack/test/alerting_api_integration/common/config.ts b/x-pack/test/alerting_api_integration/common/config.ts index 2f70ad590248..6ee90026d982 100644 --- a/x-pack/test/alerting_api_integration/common/config.ts +++ b/x-pack/test/alerting_api_integration/common/config.ts @@ -185,6 +185,7 @@ export function createTestConfig(name: string, options: CreateTestConfigOptions) `--xpack.alerting.rules.run.actions.connectorTypeOverrides=${JSON.stringify([ { id: 'test.capped', max: '1' }, ])}`, + `--xpack.alerting.enableFrameworkAlerts=true`, `--xpack.actions.enabledActionTypes=${JSON.stringify(enabledActionTypes)}`, `--xpack.actions.rejectUnauthorized=${rejectUnauthorized}`, `--xpack.actions.microsoftGraphApiUrl=${servers.kibana.protocol}://${servers.kibana.hostname}:${servers.kibana.port}/api/_actions-FTS-external-service-simulators/exchange/users/test@/sendMail`, diff --git a/x-pack/test/alerting_api_integration/common/plugins/alerts/server/alert_types.ts b/x-pack/test/alerting_api_integration/common/plugins/alerts/server/alert_types.ts index 0c8390ca938d..3c2880d69f77 100644 --- a/x-pack/test/alerting_api_integration/common/plugins/alerts/server/alert_types.ts +++ b/x-pack/test/alerting_api_integration/common/plugins/alerts/server/alert_types.ts @@ -92,6 +92,27 @@ function getAlwaysFiringAlertType() { context: [{ name: 'instanceContextValue', description: 'the instance context value' }], }, executor: curry(alwaysFiringExecutor)(), + alerts: { + context: 'test.always-firing', + fieldMap: { + instance_state_value: { + required: false, + type: 'boolean', + }, + instance_params_value: { + required: false, + type: 'boolean', + }, + instance_context_value: { + required: false, + type: 'boolean', + }, + group_in_series_index: { + required: false, + type: 'long', + }, + }, + }, }; return result; } diff --git a/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/alerts_as_data.ts b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/alerts_as_data.ts new file mode 100644 index 000000000000..13cb9bcd337f --- /dev/null +++ b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/alerts_as_data.ts @@ -0,0 +1,176 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { alertFieldMap } from '@kbn/alerting-plugin/common/alert_schema'; +import { mappingFromFieldMap } from '@kbn/alerting-plugin/common/alert_schema/field_maps/mapping_from_field_map'; +import expect from '@kbn/expect'; +import { FtrProviderContext } from '../../../common/ftr_provider_context'; + +// eslint-disable-next-line import/no-default-export +export default function createAlertsAsDataTest({ getService }: FtrProviderContext) { + const es = getService('es'); + const commonFrameworkMappings = mappingFromFieldMap(alertFieldMap, 'strict'); + + describe('alerts as data', () => { + it('should install common alerts as data resources on startup', async () => { + const ilmPolicyName = 'alerts-default-ilm-policy'; + const componentTemplateName = 'alerts-common-component-template'; + + const commonIlmPolicy = await es.ilm.getLifecycle({ + name: ilmPolicyName, + }); + + expect(commonIlmPolicy[ilmPolicyName].policy).to.eql({ + _meta: { + managed: true, + }, + phases: { + hot: { + min_age: '0ms', + actions: { + rollover: { + max_age: '30d', + max_primary_shard_size: '50gb', + }, + }, + }, + }, + }); + + const { component_templates: componentTemplates } = await es.cluster.getComponentTemplate({ + name: componentTemplateName, + }); + + expect(componentTemplates.length).to.eql(1); + const commonComponentTemplate = componentTemplates[0]; + + expect(commonComponentTemplate.name).to.eql(componentTemplateName); + expect(commonComponentTemplate.component_template.template.mappings).to.eql( + commonFrameworkMappings + ); + expect(commonComponentTemplate.component_template.template.settings).to.eql({ + index: { + number_of_shards: 1, + mapping: { + total_fields: { + limit: 100, + }, + }, + }, + }); + }); + + it('should install context specific alerts as data resources on startup', async () => { + const componentTemplateName = 'alerts-test.always-firing-component-template'; + const indexTemplateName = '.alerts-test.always-firing-default-template'; + const indexName = '.alerts-test.always-firing-default-000001'; + const contextSpecificMappings = { + instance_params_value: { + type: 'boolean', + }, + instance_state_value: { + type: 'boolean', + }, + instance_context_value: { + type: 'boolean', + }, + group_in_series_index: { + type: 'long', + }, + }; + + const { component_templates: componentTemplates } = await es.cluster.getComponentTemplate({ + name: componentTemplateName, + }); + expect(componentTemplates.length).to.eql(1); + const contextComponentTemplate = componentTemplates[0]; + expect(contextComponentTemplate.name).to.eql(componentTemplateName); + expect(contextComponentTemplate.component_template.template.mappings).to.eql({ + dynamic: 'strict', + properties: contextSpecificMappings, + }); + expect(contextComponentTemplate.component_template.template.settings).to.eql({ + index: { + number_of_shards: 1, + mapping: { + total_fields: { + limit: 100, + }, + }, + }, + }); + + const { index_templates: indexTemplates } = await es.indices.getIndexTemplate({ + name: indexTemplateName, + }); + expect(indexTemplates.length).to.eql(1); + const contextIndexTemplate = indexTemplates[0]; + expect(contextIndexTemplate.name).to.eql(indexTemplateName); + expect(contextIndexTemplate.index_template.index_patterns).to.eql([ + '.alerts-test.always-firing-default-*', + ]); + expect(contextIndexTemplate.index_template.composed_of).to.eql([ + 'alerts-common-component-template', + 'alerts-test.always-firing-component-template', + ]); + expect(contextIndexTemplate.index_template.template!.mappings).to.eql({ + dynamic: false, + }); + expect(contextIndexTemplate.index_template.template!.settings).to.eql({ + index: { + lifecycle: { + name: 'alerts-default-ilm-policy', + rollover_alias: '.alerts-test.always-firing-default', + }, + mapping: { + total_fields: { + limit: '2500', + }, + }, + hidden: 'true', + auto_expand_replicas: '0-1', + }, + }); + + const contextIndex = await es.indices.get({ + index: indexName, + }); + + expect(contextIndex[indexName].aliases).to.eql({ + '.alerts-test.always-firing-default': { + is_write_index: true, + }, + }); + + expect(contextIndex[indexName].mappings).to.eql({ + dynamic: 'false', + properties: { + ...contextSpecificMappings, + ...commonFrameworkMappings.properties, + }, + }); + + expect(contextIndex[indexName].settings?.index?.lifecycle).to.eql({ + name: 'alerts-default-ilm-policy', + rollover_alias: '.alerts-test.always-firing-default', + }); + + expect(contextIndex[indexName].settings?.index?.mapping).to.eql({ + total_fields: { + limit: '2500', + }, + }); + + expect(contextIndex[indexName].settings?.index?.hidden).to.eql('true'); + expect(contextIndex[indexName].settings?.index?.number_of_shards).to.eql(1); + expect(contextIndex[indexName].settings?.index?.auto_expand_replicas).to.eql('0-1'); + expect(contextIndex[indexName].settings?.index?.provided_name).to.eql( + '.alerts-test.always-firing-default-000001' + ); + }); + }); +} diff --git a/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/index.ts b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/index.ts index 9f3faf1d3a5f..d7da90cf56df 100644 --- a/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/index.ts +++ b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/index.ts @@ -53,6 +53,7 @@ export default function alertingTests({ loadTestFile, getService }: FtrProviderC loadTestFile(require.resolve('./run_soon')); loadTestFile(require.resolve('./flapping_history')); loadTestFile(require.resolve('./check_registered_rule_types')); + loadTestFile(require.resolve('./alerts_as_data')); // Do not place test files here, due to https://github.com/elastic/kibana/issues/123059 // note that this test will destroy existing spaces From ef6d48933afee1a55b064d6f483781d8c8ee9340 Mon Sep 17 00:00:00 2001 From: Jonathan Budzenski Date: Mon, 23 Jan 2023 20:07:27 -0600 Subject: [PATCH 05/26] Revert "[artifacts/container-image] Trigger image tag update (#149143)" This reverts commit 598843f7ca2b887beb6d91c525b438fd3bfe6531. --- .../scripts/steps/artifacts/docker_image.sh | 20 ------------------- 1 file changed, 20 deletions(-) diff --git a/.buildkite/scripts/steps/artifacts/docker_image.sh b/.buildkite/scripts/steps/artifacts/docker_image.sh index a47372359893..edd82152aae2 100755 --- a/.buildkite/scripts/steps/artifacts/docker_image.sh +++ b/.buildkite/scripts/steps/artifacts/docker_image.sh @@ -65,23 +65,3 @@ buildkite-agent artifact upload "kibana-$BASE_VERSION-docker-image.tar.gz" buildkite-agent artifact upload "kibana-$BASE_VERSION-docker-image-aarch64.tar.gz" buildkite-agent artifact upload "dependencies-$GIT_ABBREV_COMMIT.csv" cd - - -echo "--- Trigger image tag update" -if [[ "$BUILDKITE_BRANCH" == "$KIBANA_BASE_BRANCH" ]]; then - - cat << EOF | buildkite-agent pipeline upload -steps: - - trigger: k8s-gitops-update-image-tag - label: "Update image tag for deployment-api" - branches: main - build: - env: - MODE: sed - TARGET_FILE: app-config-controllers.yaml - IMAGE_TAG: "$KIBANA_IMAGE" - SERVICE: app-config-controllers -EOF - -else - echo "Skipping update for untracked branch $BUILDKITE_BRANCH" -fi From 0bef28b31cf6640528ed10d73516e5eecd97ff49 Mon Sep 17 00:00:00 2001 From: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Date: Tue, 24 Jan 2023 00:54:21 -0500 Subject: [PATCH 06/26] [api-docs] 2023-01-24 Daily api_docs build (#149377) Generated by https://buildkite.com/elastic/kibana-api-docs-daily/builds/227 --- api_docs/actions.devdocs.json | 488 +- api_docs/actions.mdx | 4 +- api_docs/advanced_settings.mdx | 2 +- api_docs/aiops.mdx | 2 +- api_docs/alerting.devdocs.json | 105 +- api_docs/alerting.mdx | 4 +- api_docs/apm.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_chat.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/controls.mdx | 2 +- api_docs/core.devdocs.json | 204 + api_docs/core.mdx | 4 +- api_docs/custom_integrations.mdx | 2 +- api_docs/dashboard.devdocs.json | 1428 ++++- api_docs/dashboard.mdx | 7 +- api_docs/dashboard_enhanced.mdx | 2 +- api_docs/data.devdocs.json | 112 + api_docs/data.mdx | 2 +- api_docs/data_query.devdocs.json | 32 +- api_docs/data_query.mdx | 2 +- api_docs/data_search.devdocs.json | 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.devdocs.json | 56 + api_docs/data_views.mdx | 2 +- api_docs/data_visualizer.mdx | 2 +- api_docs/deprecations_by_api.mdx | 4 +- api_docs/deprecations_by_plugin.mdx | 13 +- 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/embeddable.mdx | 2 +- api_docs/embeddable_enhanced.mdx | 2 +- api_docs/encrypted_saved_objects.mdx | 2 +- api_docs/enterprise_search.mdx | 2 +- api_docs/es_ui_shared.mdx | 2 +- api_docs/event_annotation.mdx | 2 +- api_docs/event_log.devdocs.json | 23 +- api_docs/event_log.mdx | 4 +- 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.devdocs.json | 15 + api_docs/fleet.mdx | 4 +- 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.devdocs.json | 14 + api_docs/infra.mdx | 4 +- api_docs/inspector.mdx | 2 +- api_docs/interactive_setup.mdx | 2 +- api_docs/kbn_ace.mdx | 2 +- api_docs/kbn_aiops_components.mdx | 2 +- api_docs/kbn_aiops_utils.mdx | 2 +- api_docs/kbn_alerts.mdx | 2 +- api_docs/kbn_analytics.mdx | 2 +- api_docs/kbn_analytics_client.devdocs.json | 32 + api_docs/kbn_analytics_client.mdx | 2 +- ..._analytics_shippers_elastic_v3_browser.mdx | 2 +- ...n_analytics_shippers_elastic_v3_common.mdx | 2 +- ...n_analytics_shippers_elastic_v3_server.mdx | 2 +- api_docs/kbn_analytics_shippers_fullstory.mdx | 2 +- api_docs/kbn_analytics_shippers_gainsight.mdx | 2 +- api_docs/kbn_apm_config_loader.mdx | 2 +- api_docs/kbn_apm_synthtrace.mdx | 2 +- api_docs/kbn_apm_synthtrace_client.mdx | 2 +- api_docs/kbn_apm_utils.mdx | 2 +- api_docs/kbn_axe_config.mdx | 2 +- api_docs/kbn_cases_components.mdx | 2 +- api_docs/kbn_cell_actions.mdx | 2 +- api_docs/kbn_chart_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_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 +- .../kbn_content_management_table_list.mdx | 2 +- api_docs/kbn_core_analytics_browser.mdx | 2 +- .../kbn_core_analytics_browser_internal.mdx | 2 +- api_docs/kbn_core_analytics_browser_mocks.mdx | 2 +- api_docs/kbn_core_analytics_server.mdx | 2 +- .../kbn_core_analytics_server_internal.mdx | 2 +- api_docs/kbn_core_analytics_server_mocks.mdx | 2 +- api_docs/kbn_core_application_browser.mdx | 2 +- .../kbn_core_application_browser_internal.mdx | 2 +- .../kbn_core_application_browser_mocks.mdx | 2 +- api_docs/kbn_core_application_common.mdx | 2 +- api_docs/kbn_core_apps_browser_internal.mdx | 2 +- api_docs/kbn_core_apps_browser_mocks.mdx | 2 +- api_docs/kbn_core_apps_server_internal.mdx | 2 +- api_docs/kbn_core_base_browser_mocks.mdx | 2 +- api_docs/kbn_core_base_common.mdx | 2 +- api_docs/kbn_core_base_server_internal.mdx | 2 +- api_docs/kbn_core_base_server_mocks.mdx | 2 +- .../kbn_core_capabilities_browser_mocks.mdx | 2 +- api_docs/kbn_core_capabilities_common.mdx | 2 +- api_docs/kbn_core_capabilities_server.mdx | 2 +- .../kbn_core_capabilities_server_mocks.mdx | 2 +- api_docs/kbn_core_chrome_browser.mdx | 2 +- api_docs/kbn_core_chrome_browser_mocks.mdx | 2 +- api_docs/kbn_core_config_server_internal.mdx | 2 +- api_docs/kbn_core_custom_branding_browser.mdx | 2 +- ..._core_custom_branding_browser_internal.mdx | 2 +- ...kbn_core_custom_branding_browser_mocks.mdx | 2 +- api_docs/kbn_core_custom_branding_common.mdx | 2 +- api_docs/kbn_core_custom_branding_server.mdx | 2 +- ...n_core_custom_branding_server_internal.mdx | 2 +- .../kbn_core_custom_branding_server_mocks.mdx | 2 +- api_docs/kbn_core_deprecations_browser.mdx | 2 +- ...kbn_core_deprecations_browser_internal.mdx | 2 +- .../kbn_core_deprecations_browser_mocks.mdx | 2 +- api_docs/kbn_core_deprecations_common.mdx | 2 +- api_docs/kbn_core_deprecations_server.mdx | 2 +- .../kbn_core_deprecations_server_internal.mdx | 2 +- .../kbn_core_deprecations_server_mocks.mdx | 2 +- api_docs/kbn_core_doc_links_browser.mdx | 2 +- api_docs/kbn_core_doc_links_browser_mocks.mdx | 2 +- api_docs/kbn_core_doc_links_server.mdx | 2 +- api_docs/kbn_core_doc_links_server_mocks.mdx | 2 +- ...e_elasticsearch_client_server_internal.mdx | 2 +- ...core_elasticsearch_client_server_mocks.mdx | 2 +- api_docs/kbn_core_elasticsearch_server.mdx | 2 +- ...kbn_core_elasticsearch_server_internal.mdx | 2 +- .../kbn_core_elasticsearch_server_mocks.mdx | 2 +- .../kbn_core_environment_server_internal.mdx | 2 +- .../kbn_core_environment_server_mocks.mdx | 2 +- .../kbn_core_execution_context_browser.mdx | 2 +- ...ore_execution_context_browser_internal.mdx | 2 +- ...n_core_execution_context_browser_mocks.mdx | 2 +- .../kbn_core_execution_context_common.mdx | 2 +- .../kbn_core_execution_context_server.mdx | 2 +- ...core_execution_context_server_internal.mdx | 2 +- ...bn_core_execution_context_server_mocks.mdx | 2 +- api_docs/kbn_core_fatal_errors_browser.mdx | 2 +- .../kbn_core_fatal_errors_browser_mocks.mdx | 2 +- api_docs/kbn_core_http_browser.mdx | 2 +- api_docs/kbn_core_http_browser_internal.mdx | 2 +- api_docs/kbn_core_http_browser_mocks.mdx | 2 +- api_docs/kbn_core_http_common.mdx | 2 +- .../kbn_core_http_context_server_mocks.mdx | 2 +- ...re_http_request_handler_context_server.mdx | 2 +- api_docs/kbn_core_http_resources_server.mdx | 2 +- ...bn_core_http_resources_server_internal.mdx | 2 +- .../kbn_core_http_resources_server_mocks.mdx | 2 +- .../kbn_core_http_router_server_internal.mdx | 2 +- .../kbn_core_http_router_server_mocks.mdx | 2 +- api_docs/kbn_core_http_server.mdx | 2 +- api_docs/kbn_core_http_server_internal.mdx | 2 +- api_docs/kbn_core_http_server_mocks.mdx | 2 +- api_docs/kbn_core_i18n_browser.mdx | 2 +- api_docs/kbn_core_i18n_browser_mocks.mdx | 2 +- api_docs/kbn_core_i18n_server.mdx | 2 +- api_docs/kbn_core_i18n_server_internal.mdx | 2 +- api_docs/kbn_core_i18n_server_mocks.mdx | 2 +- ...n_core_injected_metadata_browser_mocks.mdx | 2 +- ...kbn_core_integrations_browser_internal.mdx | 2 +- .../kbn_core_integrations_browser_mocks.mdx | 2 +- api_docs/kbn_core_lifecycle_browser.mdx | 2 +- api_docs/kbn_core_lifecycle_browser_mocks.mdx | 2 +- api_docs/kbn_core_lifecycle_server.mdx | 2 +- api_docs/kbn_core_lifecycle_server_mocks.mdx | 2 +- api_docs/kbn_core_logging_browser_mocks.mdx | 2 +- api_docs/kbn_core_logging_common_internal.mdx | 2 +- api_docs/kbn_core_logging_server.mdx | 2 +- api_docs/kbn_core_logging_server_internal.mdx | 2 +- api_docs/kbn_core_logging_server_mocks.mdx | 2 +- ...ore_metrics_collectors_server_internal.mdx | 2 +- ...n_core_metrics_collectors_server_mocks.mdx | 2 +- api_docs/kbn_core_metrics_server.mdx | 2 +- api_docs/kbn_core_metrics_server_internal.mdx | 2 +- api_docs/kbn_core_metrics_server_mocks.mdx | 2 +- api_docs/kbn_core_mount_utils_browser.mdx | 2 +- api_docs/kbn_core_node_server.mdx | 2 +- api_docs/kbn_core_node_server_internal.mdx | 2 +- api_docs/kbn_core_node_server_mocks.mdx | 2 +- api_docs/kbn_core_notifications_browser.mdx | 2 +- ...bn_core_notifications_browser_internal.mdx | 2 +- .../kbn_core_notifications_browser_mocks.mdx | 2 +- api_docs/kbn_core_overlays_browser.mdx | 2 +- .../kbn_core_overlays_browser_internal.mdx | 2 +- api_docs/kbn_core_overlays_browser_mocks.mdx | 2 +- api_docs/kbn_core_plugins_browser.mdx | 2 +- api_docs/kbn_core_plugins_browser_mocks.mdx | 2 +- api_docs/kbn_core_plugins_server.mdx | 2 +- api_docs/kbn_core_plugins_server_mocks.mdx | 2 +- api_docs/kbn_core_preboot_server.mdx | 2 +- api_docs/kbn_core_preboot_server_mocks.mdx | 2 +- api_docs/kbn_core_rendering_browser_mocks.mdx | 2 +- .../kbn_core_rendering_server_internal.mdx | 2 +- api_docs/kbn_core_rendering_server_mocks.mdx | 2 +- api_docs/kbn_core_root_server_internal.mdx | 2 +- .../kbn_core_saved_objects_api_browser.mdx | 2 +- .../kbn_core_saved_objects_api_server.mdx | 2 +- ...core_saved_objects_api_server_internal.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 +- ...kbn_core_saved_objects_common.devdocs.json | 64 + 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 +- ...kbn_core_saved_objects_server.devdocs.json | 76 + api_docs/kbn_core_saved_objects_server.mdx | 4 +- ...kbn_core_saved_objects_server_internal.mdx | 2 +- .../kbn_core_saved_objects_server_mocks.mdx | 2 +- .../kbn_core_saved_objects_utils_server.mdx | 2 +- api_docs/kbn_core_status_common.mdx | 2 +- api_docs/kbn_core_status_common_internal.mdx | 2 +- api_docs/kbn_core_status_server.mdx | 2 +- api_docs/kbn_core_status_server_internal.mdx | 2 +- api_docs/kbn_core_status_server_mocks.mdx | 2 +- ...core_test_helpers_deprecations_getters.mdx | 2 +- ...n_core_test_helpers_http_setup_browser.mdx | 2 +- api_docs/kbn_core_test_helpers_kbn_server.mdx | 2 +- ...n_core_test_helpers_so_type_serializer.mdx | 2 +- ..._core_test_helpers_test_utils.devdocs.json | 78 + api_docs/kbn_core_test_helpers_test_utils.mdx | 4 +- api_docs/kbn_core_theme_browser.mdx | 2 +- api_docs/kbn_core_theme_browser_internal.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_crypto.mdx | 2 +- api_docs/kbn_crypto_browser.mdx | 2 +- api_docs/kbn_cypress_config.mdx | 2 +- api_docs/kbn_datemath.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_doc_links.mdx | 2 +- api_docs/kbn_docs_utils.mdx | 2 +- api_docs/kbn_ebt_tools.mdx | 2 +- api_docs/kbn_ecs.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_field_types.mdx | 2 +- api_docs/kbn_find_used_node_modules.mdx | 2 +- .../kbn_ftr_common_functional_services.mdx | 2 +- api_docs/kbn_generate.mdx | 2 +- api_docs/kbn_get_repo_files.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_interpreter.mdx | 2 +- api_docs/kbn_io_ts_utils.mdx | 2 +- api_docs/kbn_jest_serializers.mdx | 2 +- api_docs/kbn_journeys.mdx | 2 +- api_docs/kbn_json_ast.mdx | 2 +- api_docs/kbn_kibana_manifest_schema.mdx | 2 +- .../kbn_language_documentation_popover.mdx | 2 +- api_docs/kbn_logging.mdx | 2 +- api_docs/kbn_logging_mocks.mdx | 2 +- api_docs/kbn_managed_vscode_config.mdx | 2 +- api_docs/kbn_mapbox_gl.mdx | 2 +- api_docs/kbn_ml_agg_utils.mdx | 2 +- api_docs/kbn_ml_date_picker.mdx | 2 +- api_docs/kbn_ml_is_defined.mdx | 2 +- api_docs/kbn_ml_is_populated_object.mdx | 2 +- api_docs/kbn_ml_local_storage.mdx | 2 +- api_docs/kbn_ml_nested_property.mdx | 2 +- api_docs/kbn_ml_query_utils.mdx | 2 +- api_docs/kbn_ml_string_hash.mdx | 2 +- api_docs/kbn_ml_url_state.mdx | 2 +- api_docs/kbn_monaco.mdx | 2 +- api_docs/kbn_optimizer.mdx | 2 +- api_docs/kbn_optimizer_webpack_helpers.mdx | 2 +- api_docs/kbn_osquery_io_ts_types.mdx | 2 +- ..._performance_testing_dataset_extractor.mdx | 2 +- api_docs/kbn_plugin_generator.mdx | 2 +- api_docs/kbn_plugin_helpers.mdx | 2 +- api_docs/kbn_react_field.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_rison.mdx | 2 +- api_docs/kbn_rule_data_utils.devdocs.json | 80 +- api_docs/kbn_rule_data_utils.mdx | 4 +- .../kbn_securitysolution_autocomplete.mdx | 2 +- .../kbn_securitysolution_ecs.devdocs.json | 4948 +++++++++++++++++ api_docs/kbn_securitysolution_ecs.mdx | 36 + api_docs/kbn_securitysolution_es_utils.mdx | 2 +- ...ion_exception_list_components.devdocs.json | 8 +- ...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.mdx | 2 +- api_docs/kbn_server_route_repository.mdx | 2 +- api_docs/kbn_shared_svg.mdx | 2 +- api_docs/kbn_shared_ux_avatar_solution.mdx | 2 +- ...ared_ux_avatar_user_profile_components.mdx | 2 +- .../kbn_shared_ux_button_exit_full_screen.mdx | 2 +- ...hared_ux_button_exit_full_screen_mocks.mdx | 2 +- api_docs/kbn_shared_ux_button_toolbar.mdx | 2 +- api_docs/kbn_shared_ux_card_no_data.mdx | 2 +- api_docs/kbn_shared_ux_card_no_data_mocks.mdx | 2 +- api_docs/kbn_shared_ux_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_upload.mdx | 2 +- api_docs/kbn_shared_ux_file_util.mdx | 2 +- api_docs/kbn_shared_ux_link_redirect_app.mdx | 2 +- .../kbn_shared_ux_link_redirect_app_mocks.mdx | 2 +- api_docs/kbn_shared_ux_markdown.mdx | 2 +- api_docs/kbn_shared_ux_markdown_mocks.mdx | 2 +- .../kbn_shared_ux_page_analytics_no_data.mdx | 2 +- ...shared_ux_page_analytics_no_data_mocks.mdx | 2 +- .../kbn_shared_ux_page_kibana_no_data.mdx | 2 +- ...bn_shared_ux_page_kibana_no_data_mocks.mdx | 2 +- .../kbn_shared_ux_page_kibana_template.mdx | 2 +- ...n_shared_ux_page_kibana_template_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_no_data.mdx | 2 +- .../kbn_shared_ux_page_no_data_config.mdx | 2 +- ...bn_shared_ux_page_no_data_config_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_no_data_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_solution_nav.mdx | 2 +- .../kbn_shared_ux_prompt_no_data_views.mdx | 2 +- ...n_shared_ux_prompt_no_data_views_mocks.mdx | 2 +- api_docs/kbn_shared_ux_prompt_not_found.mdx | 2 +- api_docs/kbn_shared_ux_router.mdx | 2 +- api_docs/kbn_shared_ux_router_mocks.mdx | 2 +- api_docs/kbn_shared_ux_storybook_config.mdx | 2 +- api_docs/kbn_shared_ux_storybook_mock.mdx | 2 +- api_docs/kbn_shared_ux_utility.mdx | 2 +- api_docs/kbn_slo_schema.mdx | 2 +- api_docs/kbn_some_dev_log.mdx | 2 +- api_docs/kbn_std.mdx | 2 +- api_docs/kbn_stdio_dev_helpers.mdx | 2 +- api_docs/kbn_storybook.mdx | 2 +- api_docs/kbn_telemetry_tools.mdx | 2 +- api_docs/kbn_test.mdx | 2 +- api_docs/kbn_test_jest_helpers.mdx | 2 +- api_docs/kbn_test_subj_selector.mdx | 2 +- api_docs/kbn_tooling_log.mdx | 2 +- api_docs/kbn_ts_projects.mdx | 2 +- api_docs/kbn_typed_react_router_config.mdx | 2 +- api_docs/kbn_ui_actions_browser.mdx | 2 +- api_docs/kbn_ui_shared_deps_src.mdx | 2 +- api_docs/kbn_ui_theme.mdx | 2 +- api_docs/kbn_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_yarn_lock_validator.mdx | 2 +- api_docs/kibana_overview.mdx | 2 +- api_docs/kibana_react.devdocs.json | 24 - api_docs/kibana_react.mdx | 2 +- api_docs/kibana_utils.mdx | 2 +- api_docs/kubernetes_security.mdx | 2 +- api_docs/lens.devdocs.json | 245 +- api_docs/lens.mdx | 4 +- api_docs/license_api_guard.mdx | 2 +- api_docs/license_management.mdx | 2 +- api_docs/licensing.mdx | 2 +- api_docs/lists.mdx | 2 +- api_docs/management.mdx | 2 +- api_docs/maps.mdx | 2 +- api_docs/maps_ems.mdx | 2 +- api_docs/ml.mdx | 2 +- api_docs/monitoring.mdx | 2 +- api_docs/monitoring_collection.mdx | 2 +- api_docs/navigation.mdx | 2 +- api_docs/newsfeed.mdx | 2 +- api_docs/notifications.mdx | 2 +- api_docs/observability.mdx | 2 +- api_docs/osquery.mdx | 2 +- api_docs/plugin_directory.mdx | 31 +- api_docs/presentation_util.mdx | 2 +- api_docs/profiling.mdx | 2 +- api_docs/remote_clusters.mdx | 2 +- api_docs/reporting.mdx | 2 +- api_docs/rollup.mdx | 2 +- api_docs/rule_registry.devdocs.json | 6 +- api_docs/rule_registry.mdx | 2 +- api_docs/runtime_fields.mdx | 2 +- api_docs/saved_objects.mdx | 2 +- api_docs/saved_objects_finder.mdx | 2 +- api_docs/saved_objects_management.mdx | 2 +- api_docs/saved_objects_tagging.mdx | 2 +- api_docs/saved_objects_tagging_oss.mdx | 2 +- api_docs/saved_search.mdx | 2 +- api_docs/screenshot_mode.mdx | 2 +- api_docs/screenshotting.mdx | 2 +- api_docs/security.mdx | 2 +- api_docs/security_solution.mdx | 2 +- api_docs/session_view.mdx | 2 +- api_docs/share.mdx | 2 +- api_docs/snapshot_restore.mdx | 2 +- api_docs/spaces.mdx | 2 +- api_docs/stack_alerts.mdx | 2 +- api_docs/stack_connectors.mdx | 2 +- api_docs/task_manager.mdx | 2 +- api_docs/telemetry.mdx | 2 +- api_docs/telemetry_collection_manager.mdx | 2 +- api_docs/telemetry_collection_xpack.mdx | 2 +- api_docs/telemetry_management_section.mdx | 2 +- api_docs/threat_intelligence.mdx | 2 +- api_docs/timelines.devdocs.json | 56 +- api_docs/timelines.mdx | 4 +- api_docs/transform.mdx | 2 +- api_docs/triggers_actions_ui.devdocs.json | 2 +- api_docs/triggers_actions_ui.mdx | 2 +- api_docs/ui_actions.mdx | 2 +- api_docs/ui_actions_enhanced.mdx | 2 +- api_docs/unified_field_list.mdx | 2 +- api_docs/unified_histogram.mdx | 2 +- api_docs/unified_search.mdx | 2 +- api_docs/unified_search_autocomplete.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.devdocs.json | 4 +- api_docs/visualizations.mdx | 2 +- 495 files changed, 8349 insertions(+), 798 deletions(-) create mode 100644 api_docs/kbn_securitysolution_ecs.devdocs.json create mode 100644 api_docs/kbn_securitysolution_ecs.mdx diff --git a/api_docs/actions.devdocs.json b/api_docs/actions.devdocs.json index 16ef1ac715e6..a83fdd9ed6bf 100644 --- a/api_docs/actions.devdocs.json +++ b/api_docs/actions.devdocs.json @@ -1941,7 +1941,7 @@ "ActionTypeConfig", ">>; execute: ({ actionId, params, source, relatedSavedObjects, }: Omit<", "ExecuteOptions", - ", \"request\">) => Promise<", + ", \"request\" | \"actionExecutionId\">) => Promise<", { "pluginId": "actions", "scope": "common", @@ -1991,7 +1991,31 @@ "section": "def-common.ActionType", "text": "ActionType" }, - "[]>; isActionTypeEnabled: (actionTypeId: string, options?: { notifyUsage: boolean; }) => boolean; isPreconfigured: (connectorId: string) => boolean; }" + "[]>; isActionTypeEnabled: (actionTypeId: string, options?: { notifyUsage: boolean; }) => boolean; isPreconfigured: (connectorId: string) => boolean; getGlobalExecutionLogWithAuth: ({ dateStart, dateEnd, filter, page, perPage, sort, namespaces, }: ", + { + "pluginId": "actions", + "scope": "common", + "docId": "kibActionsPluginApi", + "section": "def-common.GetGlobalExecutionLogParams", + "text": "GetGlobalExecutionLogParams" + }, + ") => Promise<", + { + "pluginId": "actions", + "scope": "common", + "docId": "kibActionsPluginApi", + "section": "def-common.IExecutionLogResult", + "text": "IExecutionLogResult" + }, + ">; getGlobalExecutionKpiWithAuth: ({ dateStart, dateEnd, filter, namespaces, }: ", + { + "pluginId": "actions", + "scope": "common", + "docId": "kibActionsPluginApi", + "section": "def-common.GetGlobalExecutionKPIParams", + "text": "GetGlobalExecutionKPIParams" + }, + ") => Promise<{ success: number; unknown: number; failure: number; warning: number; }>; }" ], "path": "x-pack/plugins/actions/server/index.ts", "deprecated": false, @@ -3259,6 +3283,363 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "actions", + "id": "def-common.GetGlobalExecutionKPIParams", + "type": "Interface", + "tags": [], + "label": "GetGlobalExecutionKPIParams", + "description": [], + "path": "x-pack/plugins/actions/common/execution_log_types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "actions", + "id": "def-common.GetGlobalExecutionKPIParams.dateStart", + "type": "string", + "tags": [], + "label": "dateStart", + "description": [], + "path": "x-pack/plugins/actions/common/execution_log_types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "actions", + "id": "def-common.GetGlobalExecutionKPIParams.dateEnd", + "type": "string", + "tags": [], + "label": "dateEnd", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/actions/common/execution_log_types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "actions", + "id": "def-common.GetGlobalExecutionKPIParams.filter", + "type": "string", + "tags": [], + "label": "filter", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/actions/common/execution_log_types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "actions", + "id": "def-common.GetGlobalExecutionKPIParams.namespaces", + "type": "Array", + "tags": [], + "label": "namespaces", + "description": [], + "signature": [ + "(string | undefined)[] | undefined" + ], + "path": "x-pack/plugins/actions/common/execution_log_types.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "actions", + "id": "def-common.GetGlobalExecutionLogParams", + "type": "Interface", + "tags": [], + "label": "GetGlobalExecutionLogParams", + "description": [], + "path": "x-pack/plugins/actions/common/execution_log_types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "actions", + "id": "def-common.GetGlobalExecutionLogParams.dateStart", + "type": "string", + "tags": [], + "label": "dateStart", + "description": [], + "path": "x-pack/plugins/actions/common/execution_log_types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "actions", + "id": "def-common.GetGlobalExecutionLogParams.dateEnd", + "type": "string", + "tags": [], + "label": "dateEnd", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/actions/common/execution_log_types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "actions", + "id": "def-common.GetGlobalExecutionLogParams.filter", + "type": "string", + "tags": [], + "label": "filter", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/actions/common/execution_log_types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "actions", + "id": "def-common.GetGlobalExecutionLogParams.page", + "type": "number", + "tags": [], + "label": "page", + "description": [], + "path": "x-pack/plugins/actions/common/execution_log_types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "actions", + "id": "def-common.GetGlobalExecutionLogParams.perPage", + "type": "number", + "tags": [], + "label": "perPage", + "description": [], + "path": "x-pack/plugins/actions/common/execution_log_types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "actions", + "id": "def-common.GetGlobalExecutionLogParams.sort", + "type": "CompoundType", + "tags": [], + "label": "sort", + "description": [], + "signature": [ + "SortCombinations", + " | ", + "SortCombinations", + "[]" + ], + "path": "x-pack/plugins/actions/common/execution_log_types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "actions", + "id": "def-common.GetGlobalExecutionLogParams.namespaces", + "type": "Array", + "tags": [], + "label": "namespaces", + "description": [], + "signature": [ + "(string | undefined)[] | undefined" + ], + "path": "x-pack/plugins/actions/common/execution_log_types.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "actions", + "id": "def-common.IExecutionLog", + "type": "Interface", + "tags": [], + "label": "IExecutionLog", + "description": [], + "path": "x-pack/plugins/actions/common/execution_log_types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "actions", + "id": "def-common.IExecutionLog.id", + "type": "string", + "tags": [], + "label": "id", + "description": [], + "path": "x-pack/plugins/actions/common/execution_log_types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "actions", + "id": "def-common.IExecutionLog.timestamp", + "type": "string", + "tags": [], + "label": "timestamp", + "description": [], + "path": "x-pack/plugins/actions/common/execution_log_types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "actions", + "id": "def-common.IExecutionLog.duration_ms", + "type": "number", + "tags": [], + "label": "duration_ms", + "description": [], + "path": "x-pack/plugins/actions/common/execution_log_types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "actions", + "id": "def-common.IExecutionLog.status", + "type": "string", + "tags": [], + "label": "status", + "description": [], + "path": "x-pack/plugins/actions/common/execution_log_types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "actions", + "id": "def-common.IExecutionLog.message", + "type": "string", + "tags": [], + "label": "message", + "description": [], + "path": "x-pack/plugins/actions/common/execution_log_types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "actions", + "id": "def-common.IExecutionLog.version", + "type": "string", + "tags": [], + "label": "version", + "description": [], + "path": "x-pack/plugins/actions/common/execution_log_types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "actions", + "id": "def-common.IExecutionLog.schedule_delay_ms", + "type": "number", + "tags": [], + "label": "schedule_delay_ms", + "description": [], + "path": "x-pack/plugins/actions/common/execution_log_types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "actions", + "id": "def-common.IExecutionLog.space_ids", + "type": "Array", + "tags": [], + "label": "space_ids", + "description": [], + "signature": [ + "string[]" + ], + "path": "x-pack/plugins/actions/common/execution_log_types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "actions", + "id": "def-common.IExecutionLog.connector_name", + "type": "string", + "tags": [], + "label": "connector_name", + "description": [], + "path": "x-pack/plugins/actions/common/execution_log_types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "actions", + "id": "def-common.IExecutionLog.connector_id", + "type": "string", + "tags": [], + "label": "connector_id", + "description": [], + "path": "x-pack/plugins/actions/common/execution_log_types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "actions", + "id": "def-common.IExecutionLog.timed_out", + "type": "boolean", + "tags": [], + "label": "timed_out", + "description": [], + "path": "x-pack/plugins/actions/common/execution_log_types.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "actions", + "id": "def-common.IExecutionLogResult", + "type": "Interface", + "tags": [], + "label": "IExecutionLogResult", + "description": [], + "path": "x-pack/plugins/actions/common/execution_log_types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "actions", + "id": "def-common.IExecutionLogResult.total", + "type": "number", + "tags": [], + "label": "total", + "description": [], + "path": "x-pack/plugins/actions/common/execution_log_types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "actions", + "id": "def-common.IExecutionLogResult.data", + "type": "Array", + "tags": [], + "label": "data", + "description": [], + "signature": [ + { + "pluginId": "actions", + "scope": "common", + "docId": "kibActionsPluginApi", + "section": "def-common.IExecutionLog", + "text": "IExecutionLog" + }, + "[]" + ], + "path": "x-pack/plugins/actions/common/execution_log_types.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "actions", "id": "def-common.ValidatedEmail", @@ -3518,6 +3899,36 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "actions", + "id": "def-common.ExecutionLogSortFields", + "type": "Type", + "tags": [], + "label": "ExecutionLogSortFields", + "description": [], + "signature": [ + "\"timestamp\" | \"execution_duration\" | \"schedule_delay\"" + ], + "path": "x-pack/plugins/actions/common/execution_log_types.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "actions", + "id": "def-common.IExecutionKPIResult", + "type": "Type", + "tags": [], + "label": "IExecutionKPIResult", + "description": [], + "signature": [ + "{ success: number; unknown: number; failure: number; warning: number; }" + ], + "path": "x-pack/plugins/actions/common/execution_log_types.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "actions", "id": "def-common.INTERNAL_BASE_ACTION_API_PATH", @@ -3759,6 +4170,79 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "actions", + "id": "def-common.EMPTY_EXECUTION_KPI_RESULT", + "type": "Object", + "tags": [], + "label": "EMPTY_EXECUTION_KPI_RESULT", + "description": [], + "path": "x-pack/plugins/actions/common/execution_log_types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "actions", + "id": "def-common.EMPTY_EXECUTION_KPI_RESULT.success", + "type": "number", + "tags": [], + "label": "success", + "description": [], + "path": "x-pack/plugins/actions/common/execution_log_types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "actions", + "id": "def-common.EMPTY_EXECUTION_KPI_RESULT.unknown", + "type": "number", + "tags": [], + "label": "unknown", + "description": [], + "path": "x-pack/plugins/actions/common/execution_log_types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "actions", + "id": "def-common.EMPTY_EXECUTION_KPI_RESULT.failure", + "type": "number", + "tags": [], + "label": "failure", + "description": [], + "path": "x-pack/plugins/actions/common/execution_log_types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "actions", + "id": "def-common.EMPTY_EXECUTION_KPI_RESULT.warning", + "type": "number", + "tags": [], + "label": "warning", + "description": [], + "path": "x-pack/plugins/actions/common/execution_log_types.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "actions", + "id": "def-common.executionLogSortableColumns", + "type": "Object", + "tags": [], + "label": "executionLogSortableColumns", + "description": [], + "signature": [ + "readonly [\"timestamp\", \"execution_duration\", \"schedule_delay\"]" + ], + "path": "x-pack/plugins/actions/common/execution_log_types.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "actions", "id": "def-common.MustacheInEmailRegExp", diff --git a/api_docs/actions.mdx b/api_docs/actions.mdx index 882757a213a9..ee662b9c8947 100644 --- a/api_docs/actions.mdx +++ b/api_docs/actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/actions title: "actions" image: https://source.unsplash.com/400x175/?github description: API docs for the actions plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'actions'] --- import actionsObj from './actions.devdocs.json'; @@ -21,7 +21,7 @@ Contact [Response Ops](https://github.com/orgs/elastic/teams/response-ops) for q | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 220 | 8 | 215 | 24 | +| 256 | 8 | 251 | 24 | ## Client diff --git a/api_docs/advanced_settings.mdx b/api_docs/advanced_settings.mdx index d502783f4a86..4b62794804f0 100644 --- a/api_docs/advanced_settings.mdx +++ b/api_docs/advanced_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/advancedSettings title: "advancedSettings" image: https://source.unsplash.com/400x175/?github description: API docs for the advancedSettings plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'advancedSettings'] --- import advancedSettingsObj from './advanced_settings.devdocs.json'; diff --git a/api_docs/aiops.mdx b/api_docs/aiops.mdx index b7fca969b621..efc8fee440e6 100644 --- a/api_docs/aiops.mdx +++ b/api_docs/aiops.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/aiops title: "aiops" image: https://source.unsplash.com/400x175/?github description: API docs for the aiops plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'aiops'] --- import aiopsObj from './aiops.devdocs.json'; diff --git a/api_docs/alerting.devdocs.json b/api_docs/alerting.devdocs.json index f3f981432d60..598360a4ad3e 100644 --- a/api_docs/alerting.devdocs.json +++ b/api_docs/alerting.devdocs.json @@ -565,14 +565,6 @@ ", filterOpts: ", "AlertingAuthorizationFilterOpts", ") => Promise<{ filter?: ", - { - "pluginId": "@kbn/utility-types", - "scope": "common", - "docId": "kibKbnUtilityTypesPluginApi", - "section": "def-common.JsonObject", - "text": "JsonObject" - }, - " | ", { "pluginId": "@kbn/es-query", "scope": "common", @@ -580,6 +572,14 @@ "section": "def-common.KueryNode", "text": "KueryNode" }, + " | ", + { + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.JsonObject", + "text": "JsonObject" + }, " | undefined; ensureRuleTypeIsAuthorized: (ruleTypeId: string, consumer: string, auth: string) => void; }>" ], "path": "x-pack/plugins/alerting/server/authorization/alerting_authorization.ts", @@ -660,14 +660,6 @@ "text": "WriteOperations" }, ") => Promise<{ filter?: ", - { - "pluginId": "@kbn/utility-types", - "scope": "common", - "docId": "kibKbnUtilityTypesPluginApi", - "section": "def-common.JsonObject", - "text": "JsonObject" - }, - " | ", { "pluginId": "@kbn/es-query", "scope": "common", @@ -675,6 +667,14 @@ "section": "def-common.KueryNode", "text": "KueryNode" }, + " | ", + { + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.JsonObject", + "text": "JsonObject" + }, " | undefined; ensureRuleTypeIsAuthorized: (ruleTypeId: string, consumer: string, auth: string) => void; }>" ], "path": "x-pack/plugins/alerting/server/authorization/alerting_authorization.ts", @@ -2919,6 +2919,37 @@ "path": "x-pack/plugins/alerting/server/types.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "alerting", + "id": "def-server.RuleType.alerts", + "type": "Object", + "tags": [], + "label": "alerts", + "description": [], + "signature": [ + "IRuleTypeAlerts", + " | undefined" + ], + "path": "x-pack/plugins/alerting/server/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "alerting", + "id": "def-server.RuleType.autoRecoverAlerts", + "type": "CompoundType", + "tags": [], + "label": "autoRecoverAlerts", + "description": [ + "\nDetermines whether framework should\nautomatically make recovery determination. Defaults to true." + ], + "signature": [ + "boolean | undefined" + ], + "path": "x-pack/plugins/alerting/server/types.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false @@ -3381,30 +3412,32 @@ "section": "def-common.SanitizedRule", "text": "SanitizedRule" }, - ">; muteAll: (options: { id: string; }) => Promise; getAlertState: (params: ", - "GetAlertStateParams", - ") => Promise; getAlertSummary: (params: ", - "GetAlertSummaryParams", + ">; getGlobalExecutionLogWithAuth: (params: ", + "GetGlobalExecutionLogParams", ") => Promise<", { "pluginId": "alerting", "scope": "common", "docId": "kibAlertingPluginApi", - "section": "def-common.AlertSummary", - "text": "AlertSummary" + "section": "def-common.IExecutionLogResult", + "text": "IExecutionLogResult" }, - ">; getExecutionLogForRule: (params: ", - "GetExecutionLogByIdParams", + ">; getGlobalExecutionKpiWithAuth: (params: ", + "GetGlobalExecutionKPIParams", + ") => Promise<{ success: number; unknown: number; failure: number; warning: number; activeAlerts: number; newAlerts: number; recoveredAlerts: number; erroredActions: number; triggeredActions: number; }>; muteAll: (options: { id: string; }) => Promise; getAlertState: (params: ", + "GetAlertStateParams", + ") => Promise; getAlertSummary: (params: ", + "GetAlertSummaryParams", ") => Promise<", { "pluginId": "alerting", "scope": "common", "docId": "kibAlertingPluginApi", - "section": "def-common.IExecutionLogResult", - "text": "IExecutionLogResult" + "section": "def-common.AlertSummary", + "text": "AlertSummary" }, - ">; getGlobalExecutionLogWithAuth: (params: ", - "GetGlobalExecutionLogParams", + ">; getExecutionLogForRule: (params: ", + "GetExecutionLogByIdParams", ") => Promise<", { "pluginId": "alerting", @@ -3415,8 +3448,6 @@ }, ">; getRuleExecutionKPI: (params: ", "GetRuleExecutionKPIParams", - ") => Promise<{ success: number; unknown: number; failure: number; warning: number; activeAlerts: number; newAlerts: number; recoveredAlerts: number; erroredActions: number; triggeredActions: number; }>; getGlobalExecutionKpiWithAuth: (params: ", - "GetGlobalExecutionKPIParams", ") => Promise<{ success: number; unknown: number; failure: number; warning: number; activeAlerts: number; newAlerts: number; recoveredAlerts: number; erroredActions: number; triggeredActions: number; }>; getActionErrorLog: (params: ", "GetActionErrorLogByIdParams", ") => Promise<", @@ -7145,7 +7176,7 @@ "label": "AlertInstanceMeta", "description": [], "signature": [ - "{ lastScheduledActions?: ({ subgroup?: string | undefined; } & { group: string; date: Date; } & { actions?: { [x: string]: { date: Date; }; } | undefined; }) | undefined; flappingHistory?: boolean[] | undefined; flapping?: boolean | undefined; }" + "{ lastScheduledActions?: ({ subgroup?: string | undefined; } & { group: string; date: Date; } & { actions?: { [x: string]: { date: Date; }; } | undefined; }) | undefined; flappingHistory?: boolean[] | undefined; flapping?: boolean | undefined; pendingRecoveredCount?: number | undefined; }" ], "path": "x-pack/plugins/alerting/common/alert_instance.ts", "deprecated": false, @@ -7295,7 +7326,7 @@ "label": "ExecutionLogSortFields", "description": [], "signature": [ - "\"timestamp\" | \"execution_duration\" | \"total_search_duration\" | \"es_search_duration\" | \"schedule_delay\" | \"num_triggered_actions\" | \"num_generated_actions\" | \"num_active_alerts\" | \"num_recovered_alerts\" | \"num_new_alerts\"" + "\"timestamp\" | \"execution_duration\" | \"schedule_delay\" | \"total_search_duration\" | \"es_search_duration\" | \"num_triggered_actions\" | \"num_generated_actions\" | \"num_active_alerts\" | \"num_recovered_alerts\" | \"num_new_alerts\"" ], "path": "x-pack/plugins/alerting/common/execution_log_types.ts", "deprecated": false, @@ -7474,7 +7505,7 @@ "label": "RawAlertInstance", "description": [], "signature": [ - "{ state?: { [x: string]: unknown; } | undefined; meta?: { lastScheduledActions?: ({ subgroup?: string | undefined; } & { group: string; date: Date; } & { actions?: { [x: string]: { date: Date; }; } | undefined; }) | undefined; flappingHistory?: boolean[] | undefined; flapping?: boolean | undefined; } | undefined; }" + "{ state?: { [x: string]: unknown; } | undefined; meta?: { lastScheduledActions?: ({ subgroup?: string | undefined; } & { group: string; date: Date; } & { actions?: { [x: string]: { date: Date; }; } | undefined; }) | undefined; flappingHistory?: boolean[] | undefined; flapping?: boolean | undefined; pendingRecoveredCount?: number | undefined; } | undefined; }" ], "path": "x-pack/plugins/alerting/common/alert_instance.ts", "deprecated": false, @@ -7823,7 +7854,7 @@ "label": "RuleTaskState", "description": [], "signature": [ - "{ alertTypeState?: { [x: string]: unknown; } | undefined; alertInstances?: { [x: string]: { state?: { [x: string]: unknown; } | undefined; meta?: { lastScheduledActions?: ({ subgroup?: string | undefined; } & { group: string; date: Date; } & { actions?: { [x: string]: { date: Date; }; } | undefined; }) | undefined; flappingHistory?: boolean[] | undefined; flapping?: boolean | undefined; } | undefined; }; } | undefined; alertRecoveredInstances?: { [x: string]: { state?: { [x: string]: unknown; } | undefined; meta?: { lastScheduledActions?: ({ subgroup?: string | undefined; } & { group: string; date: Date; } & { actions?: { [x: string]: { date: Date; }; } | undefined; }) | undefined; flappingHistory?: boolean[] | undefined; flapping?: boolean | undefined; } | undefined; }; } | undefined; previousStartedAt?: Date | null | undefined; summaryActions?: { [x: string]: { date: Date; }; } | undefined; }" + "{ alertTypeState?: { [x: string]: unknown; } | undefined; alertInstances?: { [x: string]: { state?: { [x: string]: unknown; } | undefined; meta?: { lastScheduledActions?: ({ subgroup?: string | undefined; } & { group: string; date: Date; } & { actions?: { [x: string]: { date: Date; }; } | undefined; }) | undefined; flappingHistory?: boolean[] | undefined; flapping?: boolean | undefined; pendingRecoveredCount?: number | undefined; } | undefined; }; } | undefined; alertRecoveredInstances?: { [x: string]: { state?: { [x: string]: unknown; } | undefined; meta?: { lastScheduledActions?: ({ subgroup?: string | undefined; } & { group: string; date: Date; } & { actions?: { [x: string]: { date: Date; }; } | undefined; }) | undefined; flappingHistory?: boolean[] | undefined; flapping?: boolean | undefined; pendingRecoveredCount?: number | undefined; } | undefined; }; } | undefined; previousStartedAt?: Date | null | undefined; summaryActions?: { [x: string]: { date: Date; }; } | undefined; }" ], "path": "x-pack/plugins/alerting/common/rule_task_instance.ts", "deprecated": false, @@ -8265,6 +8296,8 @@ "BooleanC", ">; flapping: ", "BooleanC", + "; pendingRecoveredCount: ", + "NumberC", "; }>; }>" ], "path": "x-pack/plugins/alerting/common/alert_instance.ts", @@ -8413,6 +8446,8 @@ "BooleanC", ">; flapping: ", "BooleanC", + "; pendingRecoveredCount: ", + "NumberC", "; }>; }>>; alertRecoveredInstances: ", "RecordC", "<", @@ -8455,6 +8490,8 @@ "BooleanC", ">; flapping: ", "BooleanC", + "; pendingRecoveredCount: ", + "NumberC", "; }>; }>>; previousStartedAt: ", "UnionC", "<[", diff --git a/api_docs/alerting.mdx b/api_docs/alerting.mdx index 4b8d8e6b8832..a9f9c13e7a73 100644 --- a/api_docs/alerting.mdx +++ b/api_docs/alerting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/alerting title: "alerting" image: https://source.unsplash.com/400x175/?github description: API docs for the alerting plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'alerting'] --- import alertingObj from './alerting.devdocs.json'; @@ -21,7 +21,7 @@ Contact [Response Ops](https://github.com/orgs/elastic/teams/response-ops) for q | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 465 | 0 | 456 | 38 | +| 467 | 0 | 457 | 39 | ## Client diff --git a/api_docs/apm.mdx b/api_docs/apm.mdx index b575f13b49d6..6795d650c6d2 100644 --- a/api_docs/apm.mdx +++ b/api_docs/apm.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/apm title: "apm" image: https://source.unsplash.com/400x175/?github description: API docs for the apm plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'apm'] --- import apmObj from './apm.devdocs.json'; diff --git a/api_docs/banners.mdx b/api_docs/banners.mdx index a6372c2ec5f9..7f6d19eb01ed 100644 --- a/api_docs/banners.mdx +++ b/api_docs/banners.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/banners title: "banners" image: https://source.unsplash.com/400x175/?github description: API docs for the banners plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'banners'] --- import bannersObj from './banners.devdocs.json'; diff --git a/api_docs/bfetch.mdx b/api_docs/bfetch.mdx index b8d69c68892b..b42b0468a7dc 100644 --- a/api_docs/bfetch.mdx +++ b/api_docs/bfetch.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/bfetch title: "bfetch" image: https://source.unsplash.com/400x175/?github description: API docs for the bfetch plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'bfetch'] --- import bfetchObj from './bfetch.devdocs.json'; diff --git a/api_docs/canvas.mdx b/api_docs/canvas.mdx index ea4a8dbdd711..20c1b7909253 100644 --- a/api_docs/canvas.mdx +++ b/api_docs/canvas.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/canvas title: "canvas" image: https://source.unsplash.com/400x175/?github description: API docs for the canvas plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'canvas'] --- import canvasObj from './canvas.devdocs.json'; diff --git a/api_docs/cases.mdx b/api_docs/cases.mdx index 32c6dfabc030..697aeac44810 100644 --- a/api_docs/cases.mdx +++ b/api_docs/cases.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cases title: "cases" image: https://source.unsplash.com/400x175/?github description: API docs for the cases plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cases'] --- import casesObj from './cases.devdocs.json'; diff --git a/api_docs/charts.mdx b/api_docs/charts.mdx index 7c47818af3ac..92f9b58fbf61 100644 --- a/api_docs/charts.mdx +++ b/api_docs/charts.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/charts title: "charts" image: https://source.unsplash.com/400x175/?github description: API docs for the charts plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'charts'] --- import chartsObj from './charts.devdocs.json'; diff --git a/api_docs/cloud.mdx b/api_docs/cloud.mdx index be71624edcd0..719e85fbca14 100644 --- a/api_docs/cloud.mdx +++ b/api_docs/cloud.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloud title: "cloud" image: https://source.unsplash.com/400x175/?github description: API docs for the cloud plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloud'] --- import cloudObj from './cloud.devdocs.json'; diff --git a/api_docs/cloud_chat.mdx b/api_docs/cloud_chat.mdx index c10c892a4b31..07861197c1a9 100644 --- a/api_docs/cloud_chat.mdx +++ b/api_docs/cloud_chat.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudChat title: "cloudChat" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudChat plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudChat'] --- import cloudChatObj from './cloud_chat.devdocs.json'; diff --git a/api_docs/cloud_data_migration.mdx b/api_docs/cloud_data_migration.mdx index 9bf47c37698c..9aff276af60f 100644 --- a/api_docs/cloud_data_migration.mdx +++ b/api_docs/cloud_data_migration.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudDataMigration title: "cloudDataMigration" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudDataMigration plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudDataMigration'] --- import cloudDataMigrationObj from './cloud_data_migration.devdocs.json'; diff --git a/api_docs/cloud_defend.mdx b/api_docs/cloud_defend.mdx index 39e865fca5b5..2799b15be238 100644 --- a/api_docs/cloud_defend.mdx +++ b/api_docs/cloud_defend.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudDefend title: "cloudDefend" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudDefend plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudDefend'] --- import cloudDefendObj from './cloud_defend.devdocs.json'; diff --git a/api_docs/cloud_experiments.mdx b/api_docs/cloud_experiments.mdx index 50eaedaa2b4f..de3eb208301c 100644 --- a/api_docs/cloud_experiments.mdx +++ b/api_docs/cloud_experiments.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudExperiments title: "cloudExperiments" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudExperiments plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudExperiments'] --- import cloudExperimentsObj from './cloud_experiments.devdocs.json'; diff --git a/api_docs/cloud_security_posture.mdx b/api_docs/cloud_security_posture.mdx index 83610a7d6125..1e38856df3e4 100644 --- a/api_docs/cloud_security_posture.mdx +++ b/api_docs/cloud_security_posture.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudSecurityPosture title: "cloudSecurityPosture" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudSecurityPosture plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudSecurityPosture'] --- import cloudSecurityPostureObj from './cloud_security_posture.devdocs.json'; diff --git a/api_docs/console.mdx b/api_docs/console.mdx index 4e396919c5d5..560bdbe4cb87 100644 --- a/api_docs/console.mdx +++ b/api_docs/console.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/console title: "console" image: https://source.unsplash.com/400x175/?github description: API docs for the console plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'console'] --- import consoleObj from './console.devdocs.json'; diff --git a/api_docs/controls.mdx b/api_docs/controls.mdx index 6071894e19c6..b61657e79401 100644 --- a/api_docs/controls.mdx +++ b/api_docs/controls.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/controls title: "controls" image: https://source.unsplash.com/400x175/?github description: API docs for the controls plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'controls'] --- import controlsObj from './controls.devdocs.json'; diff --git a/api_docs/core.devdocs.json b/api_docs/core.devdocs.json index f8065754bc02..56a598e85ddc 100644 --- a/api_docs/core.devdocs.json +++ b/api_docs/core.devdocs.json @@ -8226,6 +8226,14 @@ "plugin": "fleet", "path": "x-pack/plugins/fleet/server/services/telemetry/fleet_usage_sender.ts" }, + { + "plugin": "infra", + "path": "x-pack/plugins/infra/public/services/telemetry/telemetry_client.ts" + }, + { + "plugin": "infra", + "path": "x-pack/plugins/infra/public/services/telemetry/telemetry_client.ts" + }, { "plugin": "osquery", "path": "x-pack/plugins/osquery/server/lib/telemetry/sender.ts" @@ -8438,6 +8446,30 @@ "plugin": "security", "path": "x-pack/plugins/security/server/analytics/analytics_service.test.ts" }, + { + "plugin": "infra", + "path": "x-pack/plugins/infra/public/services/telemetry/telemetry_service.test.ts" + }, + { + "plugin": "infra", + "path": "x-pack/plugins/infra/public/services/telemetry/telemetry_service.test.ts" + }, + { + "plugin": "infra", + "path": "x-pack/plugins/infra/public/services/telemetry/telemetry_service.test.ts" + }, + { + "plugin": "infra", + "path": "x-pack/plugins/infra/public/services/telemetry/telemetry_service.test.ts" + }, + { + "plugin": "infra", + "path": "x-pack/plugins/infra/public/services/telemetry/telemetry_service.test.ts" + }, + { + "plugin": "infra", + "path": "x-pack/plugins/infra/public/services/telemetry/telemetry_service.test.ts" + }, { "plugin": "@kbn/core-status-server-internal", "path": "packages/core/status/core-status-server-internal/src/status_service.test.ts" @@ -21700,6 +21732,18 @@ "plugin": "cases", "path": "x-pack/plugins/cases/server/common/types.ts" }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/operations/find.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/operations/find.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/operations/find.ts" + }, { "plugin": "synthetics", "path": "x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_list/api.ts" @@ -21772,6 +21816,50 @@ "plugin": "alerting", "path": "x-pack/plugins/alerting/server/rules_client/tests/bulk_disable.test.ts" }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, { "plugin": "fleet", "path": "x-pack/plugins/fleet/server/services/agents/action.mock.ts" @@ -23637,6 +23725,14 @@ "plugin": "lens", "path": "x-pack/plugins/lens/public/app_plugin/share_action.ts" }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, { "plugin": "@kbn/core-saved-objects-api-server-internal", "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/test_helpers/repository.test.common.ts" @@ -37469,6 +37565,14 @@ "plugin": "fleet", "path": "x-pack/plugins/fleet/server/services/telemetry/fleet_usage_sender.ts" }, + { + "plugin": "infra", + "path": "x-pack/plugins/infra/public/services/telemetry/telemetry_client.ts" + }, + { + "plugin": "infra", + "path": "x-pack/plugins/infra/public/services/telemetry/telemetry_client.ts" + }, { "plugin": "osquery", "path": "x-pack/plugins/osquery/server/lib/telemetry/sender.ts" @@ -37681,6 +37785,30 @@ "plugin": "security", "path": "x-pack/plugins/security/server/analytics/analytics_service.test.ts" }, + { + "plugin": "infra", + "path": "x-pack/plugins/infra/public/services/telemetry/telemetry_service.test.ts" + }, + { + "plugin": "infra", + "path": "x-pack/plugins/infra/public/services/telemetry/telemetry_service.test.ts" + }, + { + "plugin": "infra", + "path": "x-pack/plugins/infra/public/services/telemetry/telemetry_service.test.ts" + }, + { + "plugin": "infra", + "path": "x-pack/plugins/infra/public/services/telemetry/telemetry_service.test.ts" + }, + { + "plugin": "infra", + "path": "x-pack/plugins/infra/public/services/telemetry/telemetry_service.test.ts" + }, + { + "plugin": "infra", + "path": "x-pack/plugins/infra/public/services/telemetry/telemetry_service.test.ts" + }, { "plugin": "@kbn/core-status-server-internal", "path": "packages/core/status/core-status-server-internal/src/status_service.test.ts" @@ -45224,6 +45352,32 @@ "children": [], "returnComment": [] }, + { + "parentPluginId": "core", + "id": "def-server.ISavedObjectTypeRegistry.getVisibleToHttpApisTypes", + "type": "Function", + "tags": [], + "label": "getVisibleToHttpApisTypes", + "description": [ + "\nReturns all visible {@link SavedObjectsType | types} exposed to the global SO HTTP APIs\n\nA visibleToHttpApis type is a type that doesn't explicitly define `hidden=true` nor `hiddenFromHttpApis=true` during registration." + ], + "signature": [ + "() => ", + { + "pluginId": "@kbn/core-saved-objects-server", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsServerPluginApi", + "section": "def-common.SavedObjectsType", + "text": "SavedObjectsType" + }, + "[]" + ], + "path": "packages/core/saved-objects/core-saved-objects-server/src/type_registry.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, { "parentPluginId": "core", "id": "def-server.ISavedObjectTypeRegistry.getAllTypes", @@ -45446,6 +45600,40 @@ ], "returnComment": [] }, + { + "parentPluginId": "core", + "id": "def-server.ISavedObjectTypeRegistry.isHiddenFromHttpApis", + "type": "Function", + "tags": [], + "label": "isHiddenFromHttpApis", + "description": [ + "\nReturns the `hiddenFromHttpApis` property for a given type, or `false` if\nthe type is not registered" + ], + "signature": [ + "(type: string) => boolean" + ], + "path": "packages/core/saved-objects/core-saved-objects-server/src/type_registry.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "core", + "id": "def-server.ISavedObjectTypeRegistry.isHiddenFromHttpApis.$1", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + "string" + ], + "path": "packages/core/saved-objects/core-saved-objects-server/src/type_registry.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, { "parentPluginId": "core", "id": "def-server.ISavedObjectTypeRegistry.getIndex", @@ -62587,6 +62775,22 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "core", + "id": "def-server.SavedObjectsType.hiddenFromHttpApis", + "type": "CompoundType", + "tags": [], + "label": "hiddenFromHttpApis", + "description": [ + "\nIs the type hidden from the http APIs. If `hiddenFromHttpApis:true`, repositories will have access to the type but the type is not exposed via the HTTP APIs.\nIt is recommended to hide types registered with 'hidden=false' from the httpApis for backward compatibility in the HTTP layer.\n" + ], + "signature": [ + "boolean | undefined" + ], + "path": "packages/core/saved-objects/core-saved-objects-server/src/saved_objects_type.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "core", "id": "def-server.SavedObjectsType.namespaceType", diff --git a/api_docs/core.mdx b/api_docs/core.mdx index 11fb66e31cd8..af4d87f06642 100644 --- a/api_docs/core.mdx +++ b/api_docs/core.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/core title: "core" image: https://source.unsplash.com/400x175/?github description: API docs for the core plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'core'] --- import coreObj from './core.devdocs.json'; @@ -21,7 +21,7 @@ Contact [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) for que | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 2806 | 17 | 1017 | 0 | +| 2810 | 17 | 1018 | 0 | ## Client diff --git a/api_docs/custom_integrations.mdx b/api_docs/custom_integrations.mdx index c07872138ad6..b18f322b9a33 100644 --- a/api_docs/custom_integrations.mdx +++ b/api_docs/custom_integrations.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/customIntegrations title: "customIntegrations" image: https://source.unsplash.com/400x175/?github description: API docs for the customIntegrations plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'customIntegrations'] --- import customIntegrationsObj from './custom_integrations.devdocs.json'; diff --git a/api_docs/dashboard.devdocs.json b/api_docs/dashboard.devdocs.json index 38b159a4d1b1..66e3597db0e0 100644 --- a/api_docs/dashboard.devdocs.json +++ b/api_docs/dashboard.devdocs.json @@ -1,7 +1,1421 @@ { "id": "dashboard", "client": { - "classes": [], + "classes": [ + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer", + "type": "Class", + "tags": [], + "label": "DashboardContainer", + "description": [], + "signature": [ + { + "pluginId": "dashboard", + "scope": "public", + "docId": "kibDashboardPluginApi", + "section": "def-public.DashboardContainer", + "text": "DashboardContainer" + }, + " extends ", + { + "pluginId": "embeddable", + "scope": "public", + "docId": "kibEmbeddablePluginApi", + "section": "def-public.Container", + "text": "Container" + }, + "<", + "InheritedChildInput", + ", ", + { + "pluginId": "dashboard", + "scope": "common", + "docId": "kibDashboardPluginApi", + "section": "def-common.DashboardContainerInput", + "text": "DashboardContainerInput" + }, + ", ", + { + "pluginId": "embeddable", + "scope": "public", + "docId": "kibEmbeddablePluginApi", + "section": "def-public.ContainerOutput", + "text": "ContainerOutput" + }, + ">" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + "\"dashboard\"" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.controlGroup", + "type": "Object", + "tags": [], + "label": "controlGroup", + "description": [], + "signature": [ + { + "pluginId": "controls", + "scope": "public", + "docId": "kibControlsPluginApi", + "section": "def-public.ControlGroupContainer", + "text": "ControlGroupContainer" + }, + " | undefined" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.Unnamed", + "type": "Function", + "tags": [], + "label": "Constructor", + "description": [], + "signature": [ + "any" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.Unnamed.$1", + "type": "CompoundType", + "tags": [], + "label": "initialInput", + "description": [], + "signature": [ + { + "pluginId": "dashboard", + "scope": "common", + "docId": "kibDashboardPluginApi", + "section": "def-common.DashboardContainerInput", + "text": "DashboardContainerInput" + } + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.Unnamed.$2", + "type": "number", + "tags": [], + "label": "dashboardCreationStartTime", + "description": [], + "signature": [ + "number | undefined" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + }, + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.Unnamed.$3", + "type": "Object", + "tags": [], + "label": "parent", + "description": [], + "signature": [ + { + "pluginId": "embeddable", + "scope": "public", + "docId": "kibEmbeddablePluginApi", + "section": "def-public.Container", + "text": "Container" + }, + "<{}, ", + { + "pluginId": "embeddable", + "scope": "public", + "docId": "kibEmbeddablePluginApi", + "section": "def-public.ContainerInput", + "text": "ContainerInput" + }, + "<{}>, ", + { + "pluginId": "embeddable", + "scope": "public", + "docId": "kibEmbeddablePluginApi", + "section": "def-public.ContainerOutput", + "text": "ContainerOutput" + }, + "> | undefined" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + }, + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.Unnamed.$4", + "type": "Object", + "tags": [], + "label": "creationOptions", + "description": [], + "signature": [ + "DashboardCreationOptions", + " | undefined" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.getDashboardSavedObjectId", + "type": "Function", + "tags": [], + "label": "getDashboardSavedObjectId", + "description": [], + "signature": [ + "() => string | undefined" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.getInputAsValueType", + "type": "Function", + "tags": [], + "label": "getInputAsValueType", + "description": [], + "signature": [ + "() => ", + { + "pluginId": "dashboard", + "scope": "common", + "docId": "kibDashboardPluginApi", + "section": "def-common.DashboardContainerByValueInput", + "text": "DashboardContainerByValueInput" + } + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.untilInitialized", + "type": "Function", + "tags": [], + "label": "untilInitialized", + "description": [], + "signature": [ + "() => Promise" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.reportPerformanceMetrics", + "type": "Function", + "tags": [], + "label": "reportPerformanceMetrics", + "description": [], + "signature": [ + "(stats: ", + "DashboardRenderPerformanceStats", + ") => void" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.reportPerformanceMetrics.$1", + "type": "Object", + "tags": [], + "label": "stats", + "description": [], + "signature": [ + "DashboardRenderPerformanceStats" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.createNewPanelState", + "type": "Function", + "tags": [], + "label": "createNewPanelState", + "description": [], + "signature": [ + ">(factory: ", + { + "pluginId": "embeddable", + "scope": "public", + "docId": "kibEmbeddablePluginApi", + "section": "def-public.EmbeddableFactory", + "text": "EmbeddableFactory" + }, + ", partial?: Partial) => ", + { + "pluginId": "dashboard", + "scope": "common", + "docId": "kibDashboardPluginApi", + "section": "def-common.DashboardPanelState", + "text": "DashboardPanelState" + }, + "" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.createNewPanelState.$1", + "type": "Object", + "tags": [], + "label": "factory", + "description": [], + "signature": [ + { + "pluginId": "embeddable", + "scope": "public", + "docId": "kibEmbeddablePluginApi", + "section": "def-public.EmbeddableFactory", + "text": "EmbeddableFactory" + }, + "" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.createNewPanelState.$2", + "type": "Object", + "tags": [], + "label": "partial", + "description": [], + "signature": [ + "Partial" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.getExplicitInputIsEqual", + "type": "Function", + "tags": [], + "label": "getExplicitInputIsEqual", + "description": [], + "signature": [ + "(lastExplicitInput: ", + { + "pluginId": "dashboard", + "scope": "common", + "docId": "kibDashboardPluginApi", + "section": "def-common.DashboardContainerByValueInput", + "text": "DashboardContainerByValueInput" + }, + ") => Promise" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.getExplicitInputIsEqual.$1", + "type": "Object", + "tags": [], + "label": "lastExplicitInput", + "description": [], + "signature": [ + { + "pluginId": "dashboard", + "scope": "common", + "docId": "kibDashboardPluginApi", + "section": "def-common.DashboardContainerByValueInput", + "text": "DashboardContainerByValueInput" + } + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.getReduxEmbeddableTools", + "type": "Function", + "tags": [], + "label": "getReduxEmbeddableTools", + "description": [], + "signature": [ + "() => ", + { + "pluginId": "presentationUtil", + "scope": "public", + "docId": "kibPresentationUtilPluginApi", + "section": "def-public.ReduxEmbeddableTools", + "text": "ReduxEmbeddableTools" + }, + "<", + "DashboardReduxState", + ", { setControlGroupState: (state: ", + "DashboardReduxState", + ", action: { payload: ", + { + "pluginId": "controls", + "scope": "common", + "docId": "kibControlsPluginApi", + "section": "def-common.PersistableControlGroupInput", + "text": "PersistableControlGroupInput" + }, + " | undefined; type: string; }) => void; setPanels: (state: ", + "DashboardReduxState", + ", action: { payload: ", + { + "pluginId": "dashboard", + "scope": "common", + "docId": "kibDashboardPluginApi", + "section": "def-common.DashboardPanelMap", + "text": "DashboardPanelMap" + }, + "; type: string; }) => void; setStateFromSaveModal: (state: ", + "DashboardReduxState", + ", action: { payload: ", + "DashboardStateFromSaveModal", + "; type: string; }) => void; setDescription: (state: ", + "DashboardReduxState", + ", action: { payload: string | undefined; type: string; }) => void; setViewMode: (state: ", + "DashboardReduxState", + ", action: { payload: ", + { + "pluginId": "embeddable", + "scope": "common", + "docId": "kibEmbeddablePluginApi", + "section": "def-common.ViewMode", + "text": "ViewMode" + }, + "; type: string; }) => void; setTags: (state: ", + "DashboardReduxState", + ", action: { payload: string[]; type: string; }) => void; setTitle: (state: ", + "DashboardReduxState", + ", action: { payload: string; type: string; }) => void; setSearchSessionId: (state: ", + "DashboardReduxState", + ", action: { payload: string | undefined; type: string; }) => void; setHasUnsavedChanges: (state: ", + "DashboardReduxState", + ", action: { payload: boolean | undefined; type: string; }) => void; setLastSavedInput: (state: ", + "DashboardReduxState", + ", action: { payload: ", + { + "pluginId": "dashboard", + "scope": "common", + "docId": "kibDashboardPluginApi", + "section": "def-common.DashboardContainerByValueInput", + "text": "DashboardContainerByValueInput" + }, + "; type: string; }) => void; resetToLastSavedInput: (state: ", + "DashboardReduxState", + ") => void; setUseMargins: (state: ", + "DashboardReduxState", + ", action: { payload: boolean; type: string; }) => void; setSyncCursor: (state: ", + "DashboardReduxState", + ", action: { payload: boolean; type: string; }) => void; setSyncColors: (state: ", + "DashboardReduxState", + ", action: { payload: boolean; type: string; }) => void; setSyncTooltips: (state: ", + "DashboardReduxState", + ", action: { payload: boolean; type: string; }) => void; setHidePanelTitles: (state: ", + "DashboardReduxState", + ", action: { payload: boolean; type: string; }) => void; setFiltersAndQuery: (state: ", + "DashboardReduxState", + ", action: { payload: Pick<", + { + "pluginId": "dashboard", + "scope": "common", + "docId": "kibDashboardPluginApi", + "section": "def-common.DashboardContainerByValueInput", + "text": "DashboardContainerByValueInput" + }, + ", \"query\" | \"filters\">; type: string; }) => void; setLastReloadRequestTimeToNow: (state: ", + "DashboardReduxState", + ") => void; setFilters: (state: ", + "DashboardReduxState", + ", action: { payload: ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[]; type: string; }) => void; setQuery: (state: ", + "DashboardReduxState", + ", action: { payload: ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + "; type: string; }) => void; setSavedQueryId: (state: ", + "DashboardReduxState", + ", action: { payload: string | undefined; type: string; }) => void; setTimeRestore: (state: ", + "DashboardReduxState", + ", action: { payload: boolean; type: string; }) => void; setTimeRange: (state: ", + "DashboardReduxState", + ", action: { payload: ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined; type: string; }) => void; setRefreshInterval: (state: ", + "DashboardReduxState", + ", action: { payload: ", + { + "pluginId": "data", + "scope": "common", + "docId": "kibDataQueryPluginApi", + "section": "def-common.RefreshInterval", + "text": "RefreshInterval" + }, + " | undefined; type: string; }) => void; setTimeslice: (state: ", + "DashboardReduxState", + ", action: { payload: [number, number] | undefined; type: string; }) => void; setExpandedPanelId: (state: ", + "DashboardReduxState", + ", action: { payload: string | undefined; type: string; }) => void; setFullScreenMode: (state: ", + "DashboardReduxState", + ", action: { payload: boolean; type: string; }) => void; }>" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.render", + "type": "Function", + "tags": [], + "label": "render", + "description": [], + "signature": [ + "(dom: HTMLElement) => void" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.render.$1", + "type": "Object", + "tags": [], + "label": "dom", + "description": [], + "signature": [ + "HTMLElement" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.getInheritedInput", + "type": "Function", + "tags": [], + "label": "getInheritedInput", + "description": [], + "signature": [ + "(id: string) => ", + "InheritedChildInput" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.getInheritedInput.$1", + "type": "string", + "tags": [], + "label": "id", + "description": [], + "signature": [ + "string" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.destroy", + "type": "Function", + "tags": [], + "label": "destroy", + "description": [], + "signature": [ + "() => void" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.isExpectingIdChange", + "type": "Function", + "tags": [], + "label": "isExpectingIdChange", + "description": [ + "\nSometimes when the ID changes, it's due to a clone operation, or a save as operation. In these cases,\nmost of the state hasn't actually changed, so there isn't any reason to destroy this container and\nload up a fresh one. When an id change is in progress, the renderer can check this method, and if it returns\ntrue, the renderer can safely skip destroying and rebuilding the container." + ], + "signature": [ + "() => boolean" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.expectIdChange", + "type": "Function", + "tags": [], + "label": "expectIdChange", + "description": [], + "signature": [ + "() => void" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.runClone", + "type": "Function", + "tags": [], + "label": "runClone", + "description": [], + "signature": [ + "(this: ", + { + "pluginId": "dashboard", + "scope": "public", + "docId": "kibDashboardPluginApi", + "section": "def-public.DashboardContainer", + "text": "DashboardContainer" + }, + ") => Promise<", + "SaveDashboardReturn", + " | undefined>" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [] + }, + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.runSaveAs", + "type": "Function", + "tags": [], + "label": "runSaveAs", + "description": [], + "signature": [ + "(this: ", + { + "pluginId": "dashboard", + "scope": "public", + "docId": "kibDashboardPluginApi", + "section": "def-public.DashboardContainer", + "text": "DashboardContainer" + }, + ") => Promise<", + "SaveDashboardReturn", + " | undefined>" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [] + }, + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.runQuickSave", + "type": "Function", + "tags": [], + "label": "runQuickSave", + "description": [], + "signature": [ + "(this: ", + { + "pluginId": "dashboard", + "scope": "public", + "docId": "kibDashboardPluginApi", + "section": "def-public.DashboardContainer", + "text": "DashboardContainer" + }, + ") => Promise<", + "SaveDashboardReturn", + ">" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [] + }, + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.showOptions", + "type": "Function", + "tags": [], + "label": "showOptions", + "description": [], + "signature": [ + "(this: ", + { + "pluginId": "dashboard", + "scope": "public", + "docId": "kibDashboardPluginApi", + "section": "def-public.DashboardContainer", + "text": "DashboardContainer" + }, + ", anchorElement: HTMLElement) => void" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.showOptions.$1", + "type": "Object", + "tags": [], + "label": "anchorElement", + "description": [], + "signature": [ + "HTMLElement" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/api/show_options_popover.tsx", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.addFromLibrary", + "type": "Function", + "tags": [], + "label": "addFromLibrary", + "description": [], + "signature": [ + "(this: ", + { + "pluginId": "dashboard", + "scope": "public", + "docId": "kibDashboardPluginApi", + "section": "def-public.DashboardContainer", + "text": "DashboardContainer" + }, + ") => void" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [] + }, + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.replacePanel", + "type": "Function", + "tags": [], + "label": "replacePanel", + "description": [], + "signature": [ + "(this: ", + { + "pluginId": "dashboard", + "scope": "public", + "docId": "kibDashboardPluginApi", + "section": "def-public.DashboardContainer", + "text": "DashboardContainer" + }, + ", previousPanelState: ", + { + "pluginId": "dashboard", + "scope": "common", + "docId": "kibDashboardPluginApi", + "section": "def-common.DashboardPanelState", + "text": "DashboardPanelState" + }, + "<", + { + "pluginId": "embeddable", + "scope": "common", + "docId": "kibEmbeddablePluginApi", + "section": "def-common.EmbeddableInput", + "text": "EmbeddableInput" + }, + ">, newPanelState: Partial<", + { + "pluginId": "embeddable", + "scope": "common", + "docId": "kibEmbeddablePluginApi", + "section": "def-common.PanelState", + "text": "PanelState" + }, + "<{ id: string; }>>, generateNewId?: boolean | undefined) => Promise" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.replacePanel.$1", + "type": "Object", + "tags": [], + "label": "previousPanelState", + "description": [], + "signature": [ + { + "pluginId": "dashboard", + "scope": "common", + "docId": "kibDashboardPluginApi", + "section": "def-common.DashboardPanelState", + "text": "DashboardPanelState" + }, + "<", + { + "pluginId": "embeddable", + "scope": "common", + "docId": "kibEmbeddablePluginApi", + "section": "def-common.EmbeddableInput", + "text": "EmbeddableInput" + }, + ">" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/api/panel_management.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.replacePanel.$2", + "type": "Object", + "tags": [], + "label": "newPanelState", + "description": [], + "signature": [ + "{ type?: string | undefined; explicitInput?: (Partial<{ id: string; }> & { id: string; }) | undefined; }" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/api/panel_management.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.replacePanel.$3", + "type": "CompoundType", + "tags": [], + "label": "generateNewId", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/api/panel_management.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.showPlaceholderUntil", + "type": "Function", + "tags": [], + "label": "showPlaceholderUntil", + "description": [], + "signature": [ + "(this: ", + { + "pluginId": "dashboard", + "scope": "public", + "docId": "kibDashboardPluginApi", + "section": "def-public.DashboardContainer", + "text": "DashboardContainer" + }, + ", newStateComplete: Promise>>, placementMethod?: ", + "PanelPlacementMethod", + " | undefined, placementArgs?: TPlacementMethodArgs | undefined) => void" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.showPlaceholderUntil.$1", + "type": "Object", + "tags": [], + "label": "newStateComplete", + "description": [], + "signature": [ + "Promise>>" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/api/panel_management.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.showPlaceholderUntil.$2", + "type": "Function", + "tags": [], + "label": "placementMethod", + "description": [], + "signature": [ + "PanelPlacementMethod", + " | undefined" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/api/panel_management.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.showPlaceholderUntil.$3", + "type": "Uncategorized", + "tags": [], + "label": "placementArgs", + "description": [], + "signature": [ + "TPlacementMethodArgs | undefined" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/api/panel_management.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.addOrUpdateEmbeddable", + "type": "Function", + "tags": [], + "label": "addOrUpdateEmbeddable", + "description": [], + "signature": [ + " = ", + { + "pluginId": "embeddable", + "scope": "public", + "docId": "kibEmbeddablePluginApi", + "section": "def-public.IEmbeddable", + "text": "IEmbeddable" + }, + ">(this: ", + { + "pluginId": "dashboard", + "scope": "public", + "docId": "kibDashboardPluginApi", + "section": "def-public.DashboardContainer", + "text": "DashboardContainer" + }, + ", type: string, explicitInput: Partial, embeddableId?: string | undefined) => Promise" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.addOrUpdateEmbeddable.$1", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/api/panel_management.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.addOrUpdateEmbeddable.$2", + "type": "Object", + "tags": [], + "label": "explicitInput", + "description": [], + "signature": [ + "{ [P in keyof EEI]?: EEI[P] | undefined; }" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/api/panel_management.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.addOrUpdateEmbeddable.$3", + "type": "string", + "tags": [], + "label": "embeddableId", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/api/panel_management.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.forceRefresh", + "type": "Function", + "tags": [], + "label": "forceRefresh", + "description": [], + "signature": [ + "() => void" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.onDataViewsUpdate$", + "type": "Object", + "tags": [], + "label": "onDataViewsUpdate$", + "description": [], + "signature": [ + "Subject", + "<", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[]>" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.resetToLastSavedState", + "type": "Function", + "tags": [], + "label": "resetToLastSavedState", + "description": [], + "signature": [ + "() => void" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.getAllDataViews", + "type": "Function", + "tags": [], + "label": "getAllDataViews", + "description": [ + "\nGets all the dataviews that are actively being used in the dashboard" + ], + "signature": [ + "() => ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[]" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [ + "An array of dataviews" + ] + }, + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.setAllDataViews", + "type": "Function", + "tags": [], + "label": "setAllDataViews", + "description": [ + "\nUse this to set the dataviews that are used in the dashboard when they change/update" + ], + "signature": [ + "(newDataViews: ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[]) => void" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.setAllDataViews.$1", + "type": "Array", + "tags": [], + "label": "newDataViews", + "description": [ + "The new array of dataviews that will overwrite the old dataviews array" + ], + "signature": [ + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[]" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.getExpandedPanelId", + "type": "Function", + "tags": [], + "label": "getExpandedPanelId", + "description": [], + "signature": [ + "() => string | undefined" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.openOverlay", + "type": "Function", + "tags": [], + "label": "openOverlay", + "description": [], + "signature": [ + "(ref: ", + { + "pluginId": "@kbn/core-mount-utils-browser", + "scope": "common", + "docId": "kibKbnCoreMountUtilsBrowserPluginApi", + "section": "def-common.OverlayRef", + "text": "OverlayRef" + }, + ") => void" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.openOverlay.$1", + "type": "Object", + "tags": [], + "label": "ref", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-mount-utils-browser", + "scope": "common", + "docId": "kibKbnCoreMountUtilsBrowserPluginApi", + "section": "def-common.OverlayRef", + "text": "OverlayRef" + } + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.clearOverlays", + "type": "Function", + "tags": [], + "label": "clearOverlays", + "description": [], + "signature": [ + "() => void" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.setExpandedPanelId", + "type": "Function", + "tags": [], + "label": "setExpandedPanelId", + "description": [], + "signature": [ + "(newId?: string | undefined) => void" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.setExpandedPanelId.$1", + "type": "string", + "tags": [], + "label": "newId", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.getPanelCount", + "type": "Function", + "tags": [], + "label": "getPanelCount", + "description": [], + "signature": [ + "() => number" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "dashboard", + "id": "def-public.DashboardContainer.getPanelTitles", + "type": "Function", + "tags": [], + "label": "getPanelTitles", + "description": [], + "signature": [ + "() => Promise" + ], + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + } + ], + "initialIsOpen": false + } + ], "functions": [ { "parentPluginId": "dashboard", @@ -1957,16 +3371,16 @@ "pluginId": "dashboard", "scope": "common", "docId": "kibDashboardPluginApi", - "section": "def-common.DashboardContainerByValueInput", - "text": "DashboardContainerByValueInput" + "section": "def-common.DashboardContainerByReferenceInput", + "text": "DashboardContainerByReferenceInput" }, " | ", { "pluginId": "dashboard", "scope": "common", "docId": "kibDashboardPluginApi", - "section": "def-common.DashboardContainerByReferenceInput", - "text": "DashboardContainerByReferenceInput" + "section": "def-common.DashboardContainerByValueInput", + "text": "DashboardContainerByValueInput" } ], "path": "src/plugins/dashboard/common/dashboard_container/types.ts", @@ -2079,7 +3493,7 @@ "section": "def-common.PersistableControlGroupInput", "text": "PersistableControlGroupInput" }, - " | undefined; isEmbeddedExternally?: boolean | undefined; timeRestore?: boolean | undefined; refreshInterval?: ", + " | undefined; timeRestore?: boolean | undefined; refreshInterval?: ", { "pluginId": "data", "scope": "common", @@ -2087,7 +3501,7 @@ "section": "def-common.RefreshInterval", "text": "RefreshInterval" }, - " | undefined; useMargins?: boolean | undefined; panels?: ", + " | undefined; isEmbeddedExternally?: boolean | undefined; useMargins?: boolean | undefined; panels?: ", { "pluginId": "dashboard", "scope": "common", diff --git a/api_docs/dashboard.mdx b/api_docs/dashboard.mdx index 703856322f24..2c1bcc15ceb4 100644 --- a/api_docs/dashboard.mdx +++ b/api_docs/dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dashboard title: "dashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the dashboard plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dashboard'] --- import dashboardObj from './dashboard.devdocs.json'; @@ -21,7 +21,7 @@ Contact [Kibana Presentation](https://github.com/orgs/elastic/teams/kibana-prese | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 113 | 0 | 109 | 2 | +| 171 | 0 | 163 | 10 | ## Client @@ -34,6 +34,9 @@ Contact [Kibana Presentation](https://github.com/orgs/elastic/teams/kibana-prese ### Functions +### Classes + + ### Interfaces diff --git a/api_docs/dashboard_enhanced.mdx b/api_docs/dashboard_enhanced.mdx index 4492855f0c83..c2bfbeccee8c 100644 --- a/api_docs/dashboard_enhanced.mdx +++ b/api_docs/dashboard_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dashboardEnhanced title: "dashboardEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the dashboardEnhanced plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dashboardEnhanced'] --- import dashboardEnhancedObj from './dashboard_enhanced.devdocs.json'; diff --git a/api_docs/data.devdocs.json b/api_docs/data.devdocs.json index 54ed4d3dcfef..403980306ecd 100644 --- a/api_docs/data.devdocs.json +++ b/api_docs/data.devdocs.json @@ -11737,6 +11737,18 @@ "plugin": "cases", "path": "x-pack/plugins/cases/server/common/types.ts" }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/operations/find.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/operations/find.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/operations/find.ts" + }, { "plugin": "synthetics", "path": "x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_list/api.ts" @@ -11809,6 +11821,50 @@ "plugin": "alerting", "path": "x-pack/plugins/alerting/server/rules_client/tests/bulk_disable.test.ts" }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, { "plugin": "fleet", "path": "x-pack/plugins/fleet/server/services/agents/action.mock.ts" @@ -30442,6 +30498,18 @@ "plugin": "cases", "path": "x-pack/plugins/cases/server/common/types.ts" }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/operations/find.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/operations/find.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/operations/find.ts" + }, { "plugin": "synthetics", "path": "x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_list/api.ts" @@ -30514,6 +30582,50 @@ "plugin": "alerting", "path": "x-pack/plugins/alerting/server/rules_client/tests/bulk_disable.test.ts" }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, { "plugin": "fleet", "path": "x-pack/plugins/fleet/server/services/agents/action.mock.ts" diff --git a/api_docs/data.mdx b/api_docs/data.mdx index fbdbddfe7bd5..654ddf72d4e4 100644 --- a/api_docs/data.mdx +++ b/api_docs/data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data title: "data" image: https://source.unsplash.com/400x175/?github description: API docs for the data plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data'] --- import dataObj from './data.devdocs.json'; diff --git a/api_docs/data_query.devdocs.json b/api_docs/data_query.devdocs.json index 98f5d2f670e1..4287318f3d82 100644 --- a/api_docs/data_query.devdocs.json +++ b/api_docs/data_query.devdocs.json @@ -1832,14 +1832,6 @@ "text": "Filter" }, ", indexPatterns: ", - { - "pluginId": "@kbn/es-query", - "scope": "common", - "docId": "kibKbnEsQueryPluginApi", - "section": "def-common.DataViewBase", - "text": "DataViewBase" - }, - "[] | ", { "pluginId": "dataViews", "scope": "common", @@ -1847,6 +1839,14 @@ "section": "def-common.DataView", "text": "DataView" }, + "[] | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.DataViewBase", + "text": "DataViewBase" + }, "[]) => string" ], "path": "src/plugins/data/public/query/filter_manager/lib/get_display_value.ts", @@ -1882,14 +1882,6 @@ "label": "indexPatterns", "description": [], "signature": [ - { - "pluginId": "@kbn/es-query", - "scope": "common", - "docId": "kibKbnEsQueryPluginApi", - "section": "def-common.DataViewBase", - "text": "DataViewBase" - }, - "[] | ", { "pluginId": "dataViews", "scope": "common", @@ -1897,6 +1889,14 @@ "section": "def-common.DataView", "text": "DataView" }, + "[] | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.DataViewBase", + "text": "DataViewBase" + }, "[]" ], "path": "src/plugins/data/public/query/filter_manager/lib/get_display_value.ts", diff --git a/api_docs/data_query.mdx b/api_docs/data_query.mdx index 9f8b6bcca7a4..ee16a8981997 100644 --- a/api_docs/data_query.mdx +++ b/api_docs/data_query.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data-query title: "data.query" image: https://source.unsplash.com/400x175/?github description: API docs for the data.query plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data.query'] --- import dataQueryObj from './data_query.devdocs.json'; diff --git a/api_docs/data_search.devdocs.json b/api_docs/data_search.devdocs.json index 7a787eaa2a66..bff96335cd04 100644 --- a/api_docs/data_search.devdocs.json +++ b/api_docs/data_search.devdocs.json @@ -26198,7 +26198,7 @@ "label": "aggregate", "description": [], "signature": [ - "\"min\" | \"max\" | \"sum\" | \"average\" | \"concat\"" + "\"min\" | \"max\" | \"concat\" | \"sum\" | \"average\"" ], "path": "src/plugins/data/common/search/aggs/metrics/top_hit.ts", "deprecated": false, diff --git a/api_docs/data_search.mdx b/api_docs/data_search.mdx index b3d816877076..6346e509e195 100644 --- a/api_docs/data_search.mdx +++ b/api_docs/data_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data-search title: "data.search" image: https://source.unsplash.com/400x175/?github description: API docs for the data.search plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data.search'] --- import dataSearchObj from './data_search.devdocs.json'; diff --git a/api_docs/data_view_editor.mdx b/api_docs/data_view_editor.mdx index 7b012a86f90d..a9333f758afc 100644 --- a/api_docs/data_view_editor.mdx +++ b/api_docs/data_view_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewEditor title: "dataViewEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewEditor plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViewEditor'] --- import dataViewEditorObj from './data_view_editor.devdocs.json'; diff --git a/api_docs/data_view_field_editor.mdx b/api_docs/data_view_field_editor.mdx index dd9454f0f63d..9d68b3c6ba46 100644 --- a/api_docs/data_view_field_editor.mdx +++ b/api_docs/data_view_field_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewFieldEditor title: "dataViewFieldEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewFieldEditor plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViewFieldEditor'] --- import dataViewFieldEditorObj from './data_view_field_editor.devdocs.json'; diff --git a/api_docs/data_view_management.mdx b/api_docs/data_view_management.mdx index bc6d6f1ae8f6..29097445d472 100644 --- a/api_docs/data_view_management.mdx +++ b/api_docs/data_view_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewManagement title: "dataViewManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewManagement plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViewManagement'] --- import dataViewManagementObj from './data_view_management.devdocs.json'; diff --git a/api_docs/data_views.devdocs.json b/api_docs/data_views.devdocs.json index c8c66a842fcf..33efa3cad42b 100644 --- a/api_docs/data_views.devdocs.json +++ b/api_docs/data_views.devdocs.json @@ -26948,6 +26948,18 @@ "plugin": "cases", "path": "x-pack/plugins/cases/server/common/types.ts" }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/operations/find.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/operations/find.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/operations/find.ts" + }, { "plugin": "synthetics", "path": "x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_list/api.ts" @@ -27020,6 +27032,50 @@ "plugin": "alerting", "path": "x-pack/plugins/alerting/server/rules_client/tests/bulk_disable.test.ts" }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, { "plugin": "fleet", "path": "x-pack/plugins/fleet/server/services/agents/action.mock.ts" diff --git a/api_docs/data_views.mdx b/api_docs/data_views.mdx index ab8c80d61f81..e768c489ceb0 100644 --- a/api_docs/data_views.mdx +++ b/api_docs/data_views.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViews title: "dataViews" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViews plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViews'] --- import dataViewsObj from './data_views.devdocs.json'; diff --git a/api_docs/data_visualizer.mdx b/api_docs/data_visualizer.mdx index 179199a6ed26..81adb92fe00b 100644 --- a/api_docs/data_visualizer.mdx +++ b/api_docs/data_visualizer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataVisualizer title: "dataVisualizer" image: https://source.unsplash.com/400x175/?github description: API docs for the dataVisualizer plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataVisualizer'] --- import dataVisualizerObj from './data_visualizer.devdocs.json'; diff --git a/api_docs/deprecations_by_api.mdx b/api_docs/deprecations_by_api.mdx index 7c1d32518069..00f340eb9e9e 100644 --- a/api_docs/deprecations_by_api.mdx +++ b/api_docs/deprecations_by_api.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsByApi slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-api title: Deprecated API usage by API description: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by. -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- @@ -124,7 +124,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | @kbn/core-lifecycle-browser-mocks, core, ml, dashboard, dataViews, savedSearch, @kbn/core-plugins-browser-internal | - | | | core, lens, savedObjects, visualizations | - | | | core | - | -| | home, ml, canvas, osquery | - | +| | home, canvas, osquery | - | | | home, data, esUiShared, spaces, savedObjectsManagement, fleet, observability, ml, apm, indexLifecycleManagement, synthetics, upgradeAssistant, ux, kibanaOverview | - | | | dataViews, maps | - | | | dataViewManagement, dataViews | - | diff --git a/api_docs/deprecations_by_plugin.mdx b/api_docs/deprecations_by_plugin.mdx index 89adefbf1c2a..da4e8add41ad 100644 --- a/api_docs/deprecations_by_plugin.mdx +++ b/api_docs/deprecations_by_plugin.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsByPlugin slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-plugin title: Deprecated API usage by plugin description: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by. -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- @@ -502,19 +502,19 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/so_references.ts#:~:text=SavedObject), [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/so_references.ts#:~:text=SavedObject), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=SavedObject), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=SavedObject), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=SavedObject), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=SavedObject), [authorization.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/authorization/authorization.ts#:~:text=SavedObject), [authorization.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/authorization/authorization.ts#:~:text=SavedObject), [authorization.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/authorization/authorization.ts#:~:text=SavedObject), [authorization.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/authorization/authorization.ts#:~:text=SavedObject)+ 14 more | - | -| | [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/so_references.ts#:~:text=SavedObject), [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/so_references.ts#:~:text=SavedObject), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=SavedObject), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=SavedObject), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=SavedObject), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=SavedObject), [authorization.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/authorization/authorization.ts#:~:text=SavedObject), [authorization.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/authorization/authorization.ts#:~:text=SavedObject), [authorization.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/authorization/authorization.ts#:~:text=SavedObject), [authorization.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/authorization/authorization.ts#:~:text=SavedObject)+ 26 more | - | +| | [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/so_references.ts#:~:text=SavedObject), [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/so_references.ts#:~:text=SavedObject), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=SavedObject), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=SavedObject), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=SavedObject), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=SavedObject), [authorization.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/authorization/authorization.ts#:~:text=SavedObject), [authorization.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/authorization/authorization.ts#:~:text=SavedObject), [authorization.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/authorization/authorization.ts#:~:text=SavedObject), [authorization.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/authorization/authorization.ts#:~:text=SavedObject)+ 42 more | - | +| | [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/so_references.ts#:~:text=SavedObject), [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/so_references.ts#:~:text=SavedObject), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=SavedObject), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=SavedObject), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=SavedObject), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=SavedObject), [authorization.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/authorization/authorization.ts#:~:text=SavedObject), [authorization.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/authorization/authorization.ts#:~:text=SavedObject), [authorization.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/authorization/authorization.ts#:~:text=SavedObject), [authorization.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/authorization/authorization.ts#:~:text=SavedObject)+ 68 more | - | | | [saved_objects_finder.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx#:~:text=find) | - | | | [saved_objects_finder.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx#:~:text=SimpleSavedObject), [saved_objects_finder.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx#:~:text=SimpleSavedObject), [saved_objects_finder.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx#:~:text=SimpleSavedObject), [saved_objects_finder.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx#:~:text=SimpleSavedObject), [saved_objects_finder.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx#:~:text=SimpleSavedObject), [saved_objects_finder.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx#:~:text=SimpleSavedObject), [saved_objects_finder.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx#:~:text=SimpleSavedObject), [saved_objects_finder.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx#:~:text=SimpleSavedObject), [saved_objects_finder.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx#:~:text=SimpleSavedObject), [saved_objects_finder.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx#:~:text=SimpleSavedObject)+ 1 more | - | | | [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/common/ui/types.ts#:~:text=ResolvedSimpleSavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/common/ui/types.ts#:~:text=ResolvedSimpleSavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/common/ui/types.ts#:~:text=ResolvedSimpleSavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/common/ui/types.ts#:~:text=ResolvedSimpleSavedObject) | - | -| | [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/attachment_framework/so_references.ts#:~:text=SavedObjectReference), [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/attachment_framework/so_references.ts#:~:text=SavedObjectReference), [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/attachment_framework/so_references.ts#:~:text=SavedObjectReference), [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/attachment_framework/so_references.ts#:~:text=SavedObjectReference), [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/so_references.ts#:~:text=SavedObjectReference), [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/so_references.ts#:~:text=SavedObjectReference), [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/so_references.ts#:~:text=SavedObjectReference) | - | +| | [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/attachment_framework/so_references.ts#:~:text=SavedObjectReference), [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/attachment_framework/so_references.ts#:~:text=SavedObjectReference), [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/attachment_framework/so_references.ts#:~:text=SavedObjectReference), [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/attachment_framework/so_references.ts#:~:text=SavedObjectReference), [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/so_references.ts#:~:text=SavedObjectReference), [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/so_references.ts#:~:text=SavedObjectReference), [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/so_references.ts#:~:text=SavedObjectReference), [test_utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/user_actions/test_utils.ts#:~:text=SavedObjectReference), [test_utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/user_actions/test_utils.ts#:~:text=SavedObjectReference) | - | | | [saved_objects_finder.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx#:~:text=savedObjects), [plugin.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/plugin.tsx#:~:text=savedObjects) | - | | | [cases.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/saved_object_types/cases.ts#:~:text=convertToMultiNamespaceTypeVersion), [configure.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/saved_object_types/configure.ts#:~:text=convertToMultiNamespaceTypeVersion), [comments.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/saved_object_types/comments.ts#:~:text=convertToMultiNamespaceTypeVersion), [user_actions.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/saved_object_types/user_actions.ts#:~:text=convertToMultiNamespaceTypeVersion), [connector_mappings.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/saved_object_types/connector_mappings.ts#:~:text=convertToMultiNamespaceTypeVersion) | - | | | [saved_objects_finder.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx#:~:text=savedObjects), [plugin.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/plugin.tsx#:~:text=savedObjects) | - | | | [saved_objects_finder.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx#:~:text=find) | - | | | [saved_objects_finder.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx#:~:text=SimpleSavedObject), [saved_objects_finder.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx#:~:text=SimpleSavedObject), [saved_objects_finder.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx#:~:text=SimpleSavedObject), [saved_objects_finder.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx#:~:text=SimpleSavedObject), [saved_objects_finder.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx#:~:text=SimpleSavedObject), [saved_objects_finder.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx#:~:text=SimpleSavedObject), [saved_objects_finder.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx#:~:text=SimpleSavedObject), [saved_objects_finder.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx#:~:text=SimpleSavedObject), [saved_objects_finder.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx#:~:text=SimpleSavedObject), [saved_objects_finder.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/public/components/markdown_editor/plugins/lens/saved_objects_finder.tsx#:~:text=SimpleSavedObject)+ 1 more | - | | | [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/common/ui/types.ts#:~:text=ResolvedSimpleSavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/common/ui/types.ts#:~:text=ResolvedSimpleSavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/common/ui/types.ts#:~:text=ResolvedSimpleSavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/common/ui/types.ts#:~:text=ResolvedSimpleSavedObject) | - | -| | [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/attachment_framework/so_references.ts#:~:text=SavedObjectReference), [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/attachment_framework/so_references.ts#:~:text=SavedObjectReference), [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/attachment_framework/so_references.ts#:~:text=SavedObjectReference), [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/attachment_framework/so_references.ts#:~:text=SavedObjectReference), [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/so_references.ts#:~:text=SavedObjectReference), [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/so_references.ts#:~:text=SavedObjectReference), [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/so_references.ts#:~:text=SavedObjectReference) | - | +| | [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/attachment_framework/so_references.ts#:~:text=SavedObjectReference), [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/attachment_framework/so_references.ts#:~:text=SavedObjectReference), [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/attachment_framework/so_references.ts#:~:text=SavedObjectReference), [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/attachment_framework/so_references.ts#:~:text=SavedObjectReference), [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/so_references.ts#:~:text=SavedObjectReference), [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/so_references.ts#:~:text=SavedObjectReference), [so_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/so_references.ts#:~:text=SavedObjectReference), [test_utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/user_actions/test_utils.ts#:~:text=SavedObjectReference), [test_utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/services/user_actions/test_utils.ts#:~:text=SavedObjectReference) | - | | | [cases.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/saved_object_types/cases.ts#:~:text=convertToMultiNamespaceTypeVersion), [configure.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/saved_object_types/configure.ts#:~:text=convertToMultiNamespaceTypeVersion), [comments.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/saved_object_types/comments.ts#:~:text=convertToMultiNamespaceTypeVersion), [user_actions.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/saved_object_types/user_actions.ts#:~:text=convertToMultiNamespaceTypeVersion), [connector_mappings.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/saved_object_types/connector_mappings.ts#:~:text=convertToMultiNamespaceTypeVersion) | - | @@ -1175,8 +1175,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [index_patterns.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/models/data_frame_analytics/index_patterns.ts#:~:text=title), [rollup.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/models/job_service/new_job_caps/rollup.ts#:~:text=title), [alerting_service.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/lib/alerts/alerting_service.ts#:~:text=title), [data_recognizer.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/models/data_recognizer/data_recognizer.ts#:~:text=title), [configuration_step_details.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/configuration_step/configuration_step_details.tsx#:~:text=title), [data_loader.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/datavisualizer/index_based/data_loader/data_loader.ts#:~:text=title), [use_index_data.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/hooks/use_index_data.ts#:~:text=title), [use_index_data.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/hooks/use_index_data.ts#:~:text=title), [use_index_data.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/hooks/use_index_data.ts#:~:text=title), [use_index_data.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/hooks/use_index_data.ts#:~:text=title)+ 50 more | - | | | [index_patterns.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/models/data_frame_analytics/index_patterns.ts#:~:text=title), [rollup.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/models/job_service/new_job_caps/rollup.ts#:~:text=title), [alerting_service.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/lib/alerts/alerting_service.ts#:~:text=title), [data_recognizer.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/models/data_recognizer/data_recognizer.ts#:~:text=title), [configuration_step_details.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/configuration_step/configuration_step_details.tsx#:~:text=title), [data_loader.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/datavisualizer/index_based/data_loader/data_loader.ts#:~:text=title), [use_index_data.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/hooks/use_index_data.ts#:~:text=title), [use_index_data.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/hooks/use_index_data.ts#:~:text=title), [use_index_data.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/hooks/use_index_data.ts#:~:text=title), [use_index_data.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/hooks/use_index_data.ts#:~:text=title)+ 50 more | - | | | [index_patterns.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/models/data_frame_analytics/index_patterns.ts#:~:text=title), [rollup.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/models/job_service/new_job_caps/rollup.ts#:~:text=title), [alerting_service.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/lib/alerts/alerting_service.ts#:~:text=title), [data_recognizer.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/models/data_recognizer/data_recognizer.ts#:~:text=title), [configuration_step_details.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/configuration_step/configuration_step_details.tsx#:~:text=title), [data_loader.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/datavisualizer/index_based/data_loader/data_loader.ts#:~:text=title), [use_index_data.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/hooks/use_index_data.ts#:~:text=title), [use_index_data.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/hooks/use_index_data.ts#:~:text=title), [use_index_data.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/hooks/use_index_data.ts#:~:text=title), [use_index_data.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/hooks/use_index_data.ts#:~:text=title)+ 20 more | - | -| | [ml_page.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/components/ml_page/ml_page.tsx#:~:text=KibanaPageTemplate), [ml_page.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/components/ml_page/ml_page.tsx#:~:text=KibanaPageTemplate), [ml_page.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/components/ml_page/ml_page.tsx#:~:text=KibanaPageTemplate) | - | -| | [ml_page.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/components/ml_page/ml_page.tsx#:~:text=RedirectAppLinks), [ml_page.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/components/ml_page/ml_page.tsx#:~:text=RedirectAppLinks), [ml_page.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/components/ml_page/ml_page.tsx#:~:text=RedirectAppLinks), [jobs_list_page.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/management/jobs_list/components/jobs_list_page/jobs_list_page.tsx#:~:text=RedirectAppLinks), [jobs_list_page.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/management/jobs_list/components/jobs_list_page/jobs_list_page.tsx#:~:text=RedirectAppLinks), [jobs_list_page.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/management/jobs_list/components/jobs_list_page/jobs_list_page.tsx#:~:text=RedirectAppLinks) | - | +| | [jobs_list_page.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/management/jobs_list/components/jobs_list_page/jobs_list_page.tsx#:~:text=RedirectAppLinks), [jobs_list_page.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/management/jobs_list/components/jobs_list_page/jobs_list_page.tsx#:~:text=RedirectAppLinks), [jobs_list_page.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/management/jobs_list/components/jobs_list_page/jobs_list_page.tsx#:~:text=RedirectAppLinks) | - | | | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/plugin.ts#:~:text=license%24) | 8.8.0 | | | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/plugin.ts#:~:text=license%24) | 8.8.0 | | | [annotations.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/routes/annotations.ts#:~:text=authc) | - | diff --git a/api_docs/deprecations_by_team.mdx b/api_docs/deprecations_by_team.mdx index 9f7358900349..d8f278d73c77 100644 --- a/api_docs/deprecations_by_team.mdx +++ b/api_docs/deprecations_by_team.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsDueByTeam slug: /kibana-dev-docs/api-meta/deprecations-due-by-team title: Deprecated APIs due to be removed, by team description: Lists the teams that are referencing deprecated APIs with a remove by date. -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/dev_tools.mdx b/api_docs/dev_tools.mdx index e16ed19cfd0b..3a56b077d95d 100644 --- a/api_docs/dev_tools.mdx +++ b/api_docs/dev_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/devTools title: "devTools" image: https://source.unsplash.com/400x175/?github description: API docs for the devTools plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'devTools'] --- import devToolsObj from './dev_tools.devdocs.json'; diff --git a/api_docs/discover.mdx b/api_docs/discover.mdx index 565b0c4d7f7c..635d2e8f9675 100644 --- a/api_docs/discover.mdx +++ b/api_docs/discover.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discover title: "discover" image: https://source.unsplash.com/400x175/?github description: API docs for the discover plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discover'] --- import discoverObj from './discover.devdocs.json'; diff --git a/api_docs/discover_enhanced.mdx b/api_docs/discover_enhanced.mdx index cfea72b74dee..8979b9bf9099 100644 --- a/api_docs/discover_enhanced.mdx +++ b/api_docs/discover_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discoverEnhanced title: "discoverEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the discoverEnhanced plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discoverEnhanced'] --- import discoverEnhancedObj from './discover_enhanced.devdocs.json'; diff --git a/api_docs/embeddable.mdx b/api_docs/embeddable.mdx index 7cf851f26648..3f599220eb93 100644 --- a/api_docs/embeddable.mdx +++ b/api_docs/embeddable.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/embeddable title: "embeddable" image: https://source.unsplash.com/400x175/?github description: API docs for the embeddable plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'embeddable'] --- import embeddableObj from './embeddable.devdocs.json'; diff --git a/api_docs/embeddable_enhanced.mdx b/api_docs/embeddable_enhanced.mdx index ca3ea6630622..d9e812b297e9 100644 --- a/api_docs/embeddable_enhanced.mdx +++ b/api_docs/embeddable_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/embeddableEnhanced title: "embeddableEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the embeddableEnhanced plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'embeddableEnhanced'] --- import embeddableEnhancedObj from './embeddable_enhanced.devdocs.json'; diff --git a/api_docs/encrypted_saved_objects.mdx b/api_docs/encrypted_saved_objects.mdx index 82087851680e..62b0a673bb7c 100644 --- a/api_docs/encrypted_saved_objects.mdx +++ b/api_docs/encrypted_saved_objects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/encryptedSavedObjects title: "encryptedSavedObjects" image: https://source.unsplash.com/400x175/?github description: API docs for the encryptedSavedObjects plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'encryptedSavedObjects'] --- import encryptedSavedObjectsObj from './encrypted_saved_objects.devdocs.json'; diff --git a/api_docs/enterprise_search.mdx b/api_docs/enterprise_search.mdx index d74e7509a532..65d10d0825dc 100644 --- a/api_docs/enterprise_search.mdx +++ b/api_docs/enterprise_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/enterpriseSearch title: "enterpriseSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the enterpriseSearch plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'enterpriseSearch'] --- import enterpriseSearchObj from './enterprise_search.devdocs.json'; diff --git a/api_docs/es_ui_shared.mdx b/api_docs/es_ui_shared.mdx index 79cb8cd8f1ab..bfc0712dafc9 100644 --- a/api_docs/es_ui_shared.mdx +++ b/api_docs/es_ui_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/esUiShared title: "esUiShared" image: https://source.unsplash.com/400x175/?github description: API docs for the esUiShared plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'esUiShared'] --- import esUiSharedObj from './es_ui_shared.devdocs.json'; diff --git a/api_docs/event_annotation.mdx b/api_docs/event_annotation.mdx index 291ef13aa8a9..bb5e46e84bb4 100644 --- a/api_docs/event_annotation.mdx +++ b/api_docs/event_annotation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventAnnotation title: "eventAnnotation" image: https://source.unsplash.com/400x175/?github description: API docs for the eventAnnotation plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventAnnotation'] --- import eventAnnotationObj from './event_annotation.devdocs.json'; diff --git a/api_docs/event_log.devdocs.json b/api_docs/event_log.devdocs.json index e847693888d0..a0ae8ae8dd26 100644 --- a/api_docs/event_log.devdocs.json +++ b/api_docs/event_log.devdocs.json @@ -1228,7 +1228,7 @@ }, ", options?: Partial<", "AggregateOptionsType", - "> | undefined, namespaces?: (string | undefined)[] | undefined) => Promise<", + "> | undefined, namespaces?: (string | undefined)[] | undefined, includeSpaceAgnostic?: boolean | undefined) => Promise<", { "pluginId": "eventLog", "scope": "server", @@ -1309,6 +1309,21 @@ "deprecated": false, "trackAdoption": false, "isRequired": false + }, + { + "parentPluginId": "eventLog", + "id": "def-server.IEventLogClient.aggregateEventsWithAuthFilter.$5", + "type": "CompoundType", + "tags": [], + "label": "includeSpaceAgnostic", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "x-pack/plugins/event_log/server/types.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false } ], "returnComment": [] @@ -1499,7 +1514,7 @@ "label": "data", "description": [], "signature": [ - "(Readonly<{ error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; tags?: string[] | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; message?: string | undefined; kibana?: Readonly<{ alert?: Readonly<{ rule?: Readonly<{ consumer?: string | undefined; execution?: Readonly<{ status?: string | undefined; metrics?: Readonly<{ number_of_triggered_actions?: string | number | undefined; number_of_generated_actions?: string | number | undefined; alert_counts?: Readonly<{ recovered?: string | number | undefined; active?: string | number | undefined; new?: string | number | undefined; } & {}> | undefined; number_of_searches?: string | number | undefined; total_indexing_duration_ms?: string | number | undefined; es_search_duration_ms?: string | number | undefined; total_search_duration_ms?: string | number | undefined; execution_gap_duration_s?: string | number | undefined; rule_type_run_duration_ms?: string | number | undefined; process_alerts_duration_ms?: string | number | undefined; trigger_actions_duration_ms?: string | number | undefined; process_rule_duration_ms?: string | number | undefined; claim_to_start_duration_ms?: string | number | undefined; prepare_rule_duration_ms?: string | number | undefined; total_run_duration_ms?: string | number | undefined; total_enrichment_duration_ms?: string | number | undefined; } & {}> | undefined; uuid?: string | undefined; status_order?: string | number | undefined; } & {}> | undefined; rule_type_id?: string | undefined; } & {}> | undefined; flapping?: boolean | undefined; } & {}> | undefined; version?: string | undefined; alerting?: Readonly<{ status?: string | undefined; outcome?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ id?: string | undefined; schedule_delay?: string | number | undefined; scheduled?: string | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; namespace?: string | undefined; rel?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; space_ids?: string[] | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; rule?: Readonly<{ name?: string | undefined; description?: string | undefined; category?: string | undefined; id?: string | undefined; version?: string | undefined; license?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; event?: Readonly<{ start?: string | undefined; category?: string[] | undefined; type?: string[] | undefined; id?: string | undefined; reason?: string | undefined; created?: string | undefined; outcome?: string | undefined; end?: string | undefined; original?: string | undefined; duration?: string | number | undefined; kind?: string | undefined; hash?: string | undefined; code?: string | undefined; url?: string | undefined; action?: string | undefined; severity?: string | number | undefined; dataset?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: string | number | undefined; timezone?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; } & {}> | undefined)[]" + "(Readonly<{ error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; tags?: string[] | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; message?: string | undefined; kibana?: Readonly<{ alert?: Readonly<{ rule?: Readonly<{ consumer?: string | undefined; execution?: Readonly<{ status?: string | undefined; metrics?: Readonly<{ number_of_triggered_actions?: string | number | undefined; number_of_generated_actions?: string | number | undefined; alert_counts?: Readonly<{ recovered?: string | number | undefined; active?: string | number | undefined; new?: string | number | undefined; } & {}> | undefined; number_of_searches?: string | number | undefined; total_indexing_duration_ms?: string | number | undefined; es_search_duration_ms?: string | number | undefined; total_search_duration_ms?: string | number | undefined; execution_gap_duration_s?: string | number | undefined; rule_type_run_duration_ms?: string | number | undefined; process_alerts_duration_ms?: string | number | undefined; trigger_actions_duration_ms?: string | number | undefined; process_rule_duration_ms?: string | number | undefined; claim_to_start_duration_ms?: string | number | undefined; prepare_rule_duration_ms?: string | number | undefined; total_run_duration_ms?: string | number | undefined; total_enrichment_duration_ms?: string | number | undefined; } & {}> | undefined; uuid?: string | undefined; status_order?: string | number | undefined; } & {}> | undefined; rule_type_id?: string | undefined; } & {}> | undefined; flapping?: boolean | undefined; } & {}> | undefined; version?: string | undefined; action?: Readonly<{ name?: string | undefined; id?: string | undefined; execution?: Readonly<{ uuid?: string | undefined; } & {}> | undefined; } & {}> | undefined; alerting?: Readonly<{ status?: string | undefined; outcome?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ id?: string | undefined; schedule_delay?: string | number | undefined; scheduled?: string | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; namespace?: string | undefined; rel?: string | undefined; type_id?: string | undefined; space_agnostic?: boolean | undefined; } & {}>[] | undefined; space_ids?: string[] | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; rule?: Readonly<{ name?: string | undefined; description?: string | undefined; category?: string | undefined; id?: string | undefined; version?: string | undefined; license?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; event?: Readonly<{ start?: string | undefined; category?: string[] | undefined; type?: string[] | undefined; id?: string | undefined; reason?: string | undefined; created?: string | undefined; outcome?: string | undefined; end?: string | undefined; original?: string | undefined; duration?: string | number | undefined; kind?: string | undefined; hash?: string | undefined; code?: string | undefined; url?: string | undefined; action?: string | undefined; severity?: string | number | undefined; dataset?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: string | number | undefined; timezone?: string | undefined; } & {}> | undefined; } & {}> | undefined)[]" ], "path": "x-pack/plugins/event_log/server/es/cluster_client_adapter.ts", "deprecated": false, @@ -1519,7 +1534,7 @@ "label": "IEvent", "description": [], "signature": [ - "DeepPartial | undefined; tags?: string[] | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; message?: string | undefined; kibana?: Readonly<{ alert?: Readonly<{ rule?: Readonly<{ consumer?: string | undefined; execution?: Readonly<{ status?: string | undefined; metrics?: Readonly<{ number_of_triggered_actions?: string | number | undefined; number_of_generated_actions?: string | number | undefined; alert_counts?: Readonly<{ recovered?: string | number | undefined; active?: string | number | undefined; new?: string | number | undefined; } & {}> | undefined; number_of_searches?: string | number | undefined; total_indexing_duration_ms?: string | number | undefined; es_search_duration_ms?: string | number | undefined; total_search_duration_ms?: string | number | undefined; execution_gap_duration_s?: string | number | undefined; rule_type_run_duration_ms?: string | number | undefined; process_alerts_duration_ms?: string | number | undefined; trigger_actions_duration_ms?: string | number | undefined; process_rule_duration_ms?: string | number | undefined; claim_to_start_duration_ms?: string | number | undefined; prepare_rule_duration_ms?: string | number | undefined; total_run_duration_ms?: string | number | undefined; total_enrichment_duration_ms?: string | number | undefined; } & {}> | undefined; uuid?: string | undefined; status_order?: string | number | undefined; } & {}> | undefined; rule_type_id?: string | undefined; } & {}> | undefined; flapping?: boolean | undefined; } & {}> | undefined; version?: string | undefined; alerting?: Readonly<{ status?: string | undefined; outcome?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ id?: string | undefined; schedule_delay?: string | number | undefined; scheduled?: string | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; namespace?: string | undefined; rel?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; space_ids?: string[] | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; rule?: Readonly<{ name?: string | undefined; description?: string | undefined; category?: string | undefined; id?: string | undefined; version?: string | undefined; license?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; event?: Readonly<{ start?: string | undefined; category?: string[] | undefined; type?: string[] | undefined; id?: string | undefined; reason?: string | undefined; created?: string | undefined; outcome?: string | undefined; end?: string | undefined; original?: string | undefined; duration?: string | number | undefined; kind?: string | undefined; hash?: string | undefined; code?: string | undefined; url?: string | undefined; action?: string | undefined; severity?: string | number | undefined; dataset?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: string | number | undefined; timezone?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; } & {}>>> | undefined" + "DeepPartial | undefined; tags?: string[] | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; message?: string | undefined; kibana?: Readonly<{ alert?: Readonly<{ rule?: Readonly<{ consumer?: string | undefined; execution?: Readonly<{ status?: string | undefined; metrics?: Readonly<{ number_of_triggered_actions?: string | number | undefined; number_of_generated_actions?: string | number | undefined; alert_counts?: Readonly<{ recovered?: string | number | undefined; active?: string | number | undefined; new?: string | number | undefined; } & {}> | undefined; number_of_searches?: string | number | undefined; total_indexing_duration_ms?: string | number | undefined; es_search_duration_ms?: string | number | undefined; total_search_duration_ms?: string | number | undefined; execution_gap_duration_s?: string | number | undefined; rule_type_run_duration_ms?: string | number | undefined; process_alerts_duration_ms?: string | number | undefined; trigger_actions_duration_ms?: string | number | undefined; process_rule_duration_ms?: string | number | undefined; claim_to_start_duration_ms?: string | number | undefined; prepare_rule_duration_ms?: string | number | undefined; total_run_duration_ms?: string | number | undefined; total_enrichment_duration_ms?: string | number | undefined; } & {}> | undefined; uuid?: string | undefined; status_order?: string | number | undefined; } & {}> | undefined; rule_type_id?: string | undefined; } & {}> | undefined; flapping?: boolean | undefined; } & {}> | undefined; version?: string | undefined; action?: Readonly<{ name?: string | undefined; id?: string | undefined; execution?: Readonly<{ uuid?: string | undefined; } & {}> | undefined; } & {}> | undefined; alerting?: Readonly<{ status?: string | undefined; outcome?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ id?: string | undefined; schedule_delay?: string | number | undefined; scheduled?: string | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; namespace?: string | undefined; rel?: string | undefined; type_id?: string | undefined; space_agnostic?: boolean | undefined; } & {}>[] | undefined; space_ids?: string[] | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; rule?: Readonly<{ name?: string | undefined; description?: string | undefined; category?: string | undefined; id?: string | undefined; version?: string | undefined; license?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; event?: Readonly<{ start?: string | undefined; category?: string[] | undefined; type?: string[] | undefined; id?: string | undefined; reason?: string | undefined; created?: string | undefined; outcome?: string | undefined; end?: string | undefined; original?: string | undefined; duration?: string | number | undefined; kind?: string | undefined; hash?: string | undefined; code?: string | undefined; url?: string | undefined; action?: string | undefined; severity?: string | number | undefined; dataset?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: string | number | undefined; timezone?: string | undefined; } & {}> | undefined; } & {}>>> | undefined" ], "path": "x-pack/plugins/event_log/generated/schemas.ts", "deprecated": false, @@ -1534,7 +1549,7 @@ "label": "IValidatedEvent", "description": [], "signature": [ - "Readonly<{ error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; tags?: string[] | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; message?: string | undefined; kibana?: Readonly<{ alert?: Readonly<{ rule?: Readonly<{ consumer?: string | undefined; execution?: Readonly<{ status?: string | undefined; metrics?: Readonly<{ number_of_triggered_actions?: string | number | undefined; number_of_generated_actions?: string | number | undefined; alert_counts?: Readonly<{ recovered?: string | number | undefined; active?: string | number | undefined; new?: string | number | undefined; } & {}> | undefined; number_of_searches?: string | number | undefined; total_indexing_duration_ms?: string | number | undefined; es_search_duration_ms?: string | number | undefined; total_search_duration_ms?: string | number | undefined; execution_gap_duration_s?: string | number | undefined; rule_type_run_duration_ms?: string | number | undefined; process_alerts_duration_ms?: string | number | undefined; trigger_actions_duration_ms?: string | number | undefined; process_rule_duration_ms?: string | number | undefined; claim_to_start_duration_ms?: string | number | undefined; prepare_rule_duration_ms?: string | number | undefined; total_run_duration_ms?: string | number | undefined; total_enrichment_duration_ms?: string | number | undefined; } & {}> | undefined; uuid?: string | undefined; status_order?: string | number | undefined; } & {}> | undefined; rule_type_id?: string | undefined; } & {}> | undefined; flapping?: boolean | undefined; } & {}> | undefined; version?: string | undefined; alerting?: Readonly<{ status?: string | undefined; outcome?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ id?: string | undefined; schedule_delay?: string | number | undefined; scheduled?: string | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; namespace?: string | undefined; rel?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; space_ids?: string[] | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; rule?: Readonly<{ name?: string | undefined; description?: string | undefined; category?: string | undefined; id?: string | undefined; version?: string | undefined; license?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; event?: Readonly<{ start?: string | undefined; category?: string[] | undefined; type?: string[] | undefined; id?: string | undefined; reason?: string | undefined; created?: string | undefined; outcome?: string | undefined; end?: string | undefined; original?: string | undefined; duration?: string | number | undefined; kind?: string | undefined; hash?: string | undefined; code?: string | undefined; url?: string | undefined; action?: string | undefined; severity?: string | number | undefined; dataset?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: string | number | undefined; timezone?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; } & {}> | undefined" + "Readonly<{ error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; tags?: string[] | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; message?: string | undefined; kibana?: Readonly<{ alert?: Readonly<{ rule?: Readonly<{ consumer?: string | undefined; execution?: Readonly<{ status?: string | undefined; metrics?: Readonly<{ number_of_triggered_actions?: string | number | undefined; number_of_generated_actions?: string | number | undefined; alert_counts?: Readonly<{ recovered?: string | number | undefined; active?: string | number | undefined; new?: string | number | undefined; } & {}> | undefined; number_of_searches?: string | number | undefined; total_indexing_duration_ms?: string | number | undefined; es_search_duration_ms?: string | number | undefined; total_search_duration_ms?: string | number | undefined; execution_gap_duration_s?: string | number | undefined; rule_type_run_duration_ms?: string | number | undefined; process_alerts_duration_ms?: string | number | undefined; trigger_actions_duration_ms?: string | number | undefined; process_rule_duration_ms?: string | number | undefined; claim_to_start_duration_ms?: string | number | undefined; prepare_rule_duration_ms?: string | number | undefined; total_run_duration_ms?: string | number | undefined; total_enrichment_duration_ms?: string | number | undefined; } & {}> | undefined; uuid?: string | undefined; status_order?: string | number | undefined; } & {}> | undefined; rule_type_id?: string | undefined; } & {}> | undefined; flapping?: boolean | undefined; } & {}> | undefined; version?: string | undefined; action?: Readonly<{ name?: string | undefined; id?: string | undefined; execution?: Readonly<{ uuid?: string | undefined; } & {}> | undefined; } & {}> | undefined; alerting?: Readonly<{ status?: string | undefined; outcome?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ id?: string | undefined; schedule_delay?: string | number | undefined; scheduled?: string | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; namespace?: string | undefined; rel?: string | undefined; type_id?: string | undefined; space_agnostic?: boolean | undefined; } & {}>[] | undefined; space_ids?: string[] | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; rule?: Readonly<{ name?: string | undefined; description?: string | undefined; category?: string | undefined; id?: string | undefined; version?: string | undefined; license?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; event?: Readonly<{ start?: string | undefined; category?: string[] | undefined; type?: string[] | undefined; id?: string | undefined; reason?: string | undefined; created?: string | undefined; outcome?: string | undefined; end?: string | undefined; original?: string | undefined; duration?: string | number | undefined; kind?: string | undefined; hash?: string | undefined; code?: string | undefined; url?: string | undefined; action?: string | undefined; severity?: string | number | undefined; dataset?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: string | number | undefined; timezone?: string | undefined; } & {}> | undefined; } & {}> | undefined" ], "path": "x-pack/plugins/event_log/generated/schemas.ts", "deprecated": false, diff --git a/api_docs/event_log.mdx b/api_docs/event_log.mdx index fc2109c0d7dc..55a604878d14 100644 --- a/api_docs/event_log.mdx +++ b/api_docs/event_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventLog title: "eventLog" image: https://source.unsplash.com/400x175/?github description: API docs for the eventLog plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventLog'] --- import eventLogObj from './event_log.devdocs.json'; @@ -21,7 +21,7 @@ Contact [Response Ops](https://github.com/orgs/elastic/teams/response-ops) for q | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 115 | 0 | 115 | 11 | +| 116 | 0 | 116 | 11 | ## Server diff --git a/api_docs/expression_error.mdx b/api_docs/expression_error.mdx index 03dde1c92713..f44cfffda3f2 100644 --- a/api_docs/expression_error.mdx +++ b/api_docs/expression_error.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionError title: "expressionError" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionError plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionError'] --- import expressionErrorObj from './expression_error.devdocs.json'; diff --git a/api_docs/expression_gauge.mdx b/api_docs/expression_gauge.mdx index a5727fca7e08..a04a2957503b 100644 --- a/api_docs/expression_gauge.mdx +++ b/api_docs/expression_gauge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionGauge title: "expressionGauge" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionGauge plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionGauge'] --- import expressionGaugeObj from './expression_gauge.devdocs.json'; diff --git a/api_docs/expression_heatmap.mdx b/api_docs/expression_heatmap.mdx index 836bb3313c2c..2fadac1a0934 100644 --- a/api_docs/expression_heatmap.mdx +++ b/api_docs/expression_heatmap.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionHeatmap title: "expressionHeatmap" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionHeatmap plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionHeatmap'] --- import expressionHeatmapObj from './expression_heatmap.devdocs.json'; diff --git a/api_docs/expression_image.mdx b/api_docs/expression_image.mdx index 14604257af61..f05ebe8c92ee 100644 --- a/api_docs/expression_image.mdx +++ b/api_docs/expression_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionImage title: "expressionImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionImage plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionImage'] --- import expressionImageObj from './expression_image.devdocs.json'; diff --git a/api_docs/expression_legacy_metric_vis.mdx b/api_docs/expression_legacy_metric_vis.mdx index bfc5df0096f6..903e5983afa5 100644 --- a/api_docs/expression_legacy_metric_vis.mdx +++ b/api_docs/expression_legacy_metric_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionLegacyMetricVis title: "expressionLegacyMetricVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionLegacyMetricVis plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionLegacyMetricVis'] --- import expressionLegacyMetricVisObj from './expression_legacy_metric_vis.devdocs.json'; diff --git a/api_docs/expression_metric.mdx b/api_docs/expression_metric.mdx index 3349475198cf..ac58336f0cfc 100644 --- a/api_docs/expression_metric.mdx +++ b/api_docs/expression_metric.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionMetric title: "expressionMetric" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionMetric plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionMetric'] --- import expressionMetricObj from './expression_metric.devdocs.json'; diff --git a/api_docs/expression_metric_vis.mdx b/api_docs/expression_metric_vis.mdx index b55cf7dd6a34..229f0f2ae93d 100644 --- a/api_docs/expression_metric_vis.mdx +++ b/api_docs/expression_metric_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionMetricVis title: "expressionMetricVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionMetricVis plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionMetricVis'] --- import expressionMetricVisObj from './expression_metric_vis.devdocs.json'; diff --git a/api_docs/expression_partition_vis.mdx b/api_docs/expression_partition_vis.mdx index 576953499ecf..87ae065fedd5 100644 --- a/api_docs/expression_partition_vis.mdx +++ b/api_docs/expression_partition_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionPartitionVis title: "expressionPartitionVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionPartitionVis plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionPartitionVis'] --- import expressionPartitionVisObj from './expression_partition_vis.devdocs.json'; diff --git a/api_docs/expression_repeat_image.mdx b/api_docs/expression_repeat_image.mdx index 87da8eee58eb..cf907eaf211a 100644 --- a/api_docs/expression_repeat_image.mdx +++ b/api_docs/expression_repeat_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionRepeatImage title: "expressionRepeatImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionRepeatImage plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionRepeatImage'] --- import expressionRepeatImageObj from './expression_repeat_image.devdocs.json'; diff --git a/api_docs/expression_reveal_image.mdx b/api_docs/expression_reveal_image.mdx index ec8c9a1a71a1..97ce462e90ef 100644 --- a/api_docs/expression_reveal_image.mdx +++ b/api_docs/expression_reveal_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionRevealImage title: "expressionRevealImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionRevealImage plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionRevealImage'] --- import expressionRevealImageObj from './expression_reveal_image.devdocs.json'; diff --git a/api_docs/expression_shape.mdx b/api_docs/expression_shape.mdx index 660533d209ed..b18d830e6d93 100644 --- a/api_docs/expression_shape.mdx +++ b/api_docs/expression_shape.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionShape title: "expressionShape" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionShape plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionShape'] --- import expressionShapeObj from './expression_shape.devdocs.json'; diff --git a/api_docs/expression_tagcloud.mdx b/api_docs/expression_tagcloud.mdx index 28d1142fed4e..f66a0e664662 100644 --- a/api_docs/expression_tagcloud.mdx +++ b/api_docs/expression_tagcloud.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionTagcloud title: "expressionTagcloud" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionTagcloud plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionTagcloud'] --- import expressionTagcloudObj from './expression_tagcloud.devdocs.json'; diff --git a/api_docs/expression_x_y.mdx b/api_docs/expression_x_y.mdx index 1e75b8cf5945..93691067e1d8 100644 --- a/api_docs/expression_x_y.mdx +++ b/api_docs/expression_x_y.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionXY title: "expressionXY" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionXY plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionXY'] --- import expressionXYObj from './expression_x_y.devdocs.json'; diff --git a/api_docs/expressions.mdx b/api_docs/expressions.mdx index 8b8ddd01e44e..b6635cc643d2 100644 --- a/api_docs/expressions.mdx +++ b/api_docs/expressions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressions title: "expressions" image: https://source.unsplash.com/400x175/?github description: API docs for the expressions plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressions'] --- import expressionsObj from './expressions.devdocs.json'; diff --git a/api_docs/features.mdx b/api_docs/features.mdx index 685c5af44bf6..4f153b0d369f 100644 --- a/api_docs/features.mdx +++ b/api_docs/features.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/features title: "features" image: https://source.unsplash.com/400x175/?github description: API docs for the features plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'features'] --- import featuresObj from './features.devdocs.json'; diff --git a/api_docs/field_formats.mdx b/api_docs/field_formats.mdx index 4a995c075955..2092476ac17b 100644 --- a/api_docs/field_formats.mdx +++ b/api_docs/field_formats.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fieldFormats title: "fieldFormats" image: https://source.unsplash.com/400x175/?github description: API docs for the fieldFormats plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fieldFormats'] --- import fieldFormatsObj from './field_formats.devdocs.json'; diff --git a/api_docs/file_upload.mdx b/api_docs/file_upload.mdx index e1ad0971791c..7cb01a67883d 100644 --- a/api_docs/file_upload.mdx +++ b/api_docs/file_upload.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fileUpload title: "fileUpload" image: https://source.unsplash.com/400x175/?github description: API docs for the fileUpload plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fileUpload'] --- import fileUploadObj from './file_upload.devdocs.json'; diff --git a/api_docs/files.mdx b/api_docs/files.mdx index a68ca7b2dbd9..0ab83d560695 100644 --- a/api_docs/files.mdx +++ b/api_docs/files.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/files title: "files" image: https://source.unsplash.com/400x175/?github description: API docs for the files plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'files'] --- import filesObj from './files.devdocs.json'; diff --git a/api_docs/files_management.mdx b/api_docs/files_management.mdx index e13d523ab4b5..99cf4542f5de 100644 --- a/api_docs/files_management.mdx +++ b/api_docs/files_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/filesManagement title: "filesManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the filesManagement plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'filesManagement'] --- import filesManagementObj from './files_management.devdocs.json'; diff --git a/api_docs/fleet.devdocs.json b/api_docs/fleet.devdocs.json index 54d1eaeee0c9..f3e224cdb290 100644 --- a/api_docs/fleet.devdocs.json +++ b/api_docs/fleet.devdocs.json @@ -9155,6 +9155,21 @@ "path": "x-pack/plugins/fleet/common/types/models/agent.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "fleet", + "id": "def-common.Agent.metrics", + "type": "Object", + "tags": [], + "label": "metrics", + "description": [], + "signature": [ + "AgentMetrics", + " | undefined" + ], + "path": "x-pack/plugins/fleet/common/types/models/agent.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false diff --git a/api_docs/fleet.mdx b/api_docs/fleet.mdx index ed7baca4ce87..821e254c5015 100644 --- a/api_docs/fleet.mdx +++ b/api_docs/fleet.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fleet title: "fleet" image: https://source.unsplash.com/400x175/?github description: API docs for the fleet plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fleet'] --- import fleetObj from './fleet.devdocs.json'; @@ -21,7 +21,7 @@ Contact [Fleet](https://github.com/orgs/elastic/teams/fleet) for questions regar | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 1039 | 3 | 934 | 24 | +| 1040 | 3 | 935 | 25 | ## Client diff --git a/api_docs/global_search.mdx b/api_docs/global_search.mdx index 654e51d6c43a..150d16bb72c9 100644 --- a/api_docs/global_search.mdx +++ b/api_docs/global_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/globalSearch title: "globalSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the globalSearch plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'globalSearch'] --- import globalSearchObj from './global_search.devdocs.json'; diff --git a/api_docs/guided_onboarding.mdx b/api_docs/guided_onboarding.mdx index 64a6caf49b72..3a528d8f2355 100644 --- a/api_docs/guided_onboarding.mdx +++ b/api_docs/guided_onboarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/guidedOnboarding title: "guidedOnboarding" image: https://source.unsplash.com/400x175/?github description: API docs for the guidedOnboarding plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'guidedOnboarding'] --- import guidedOnboardingObj from './guided_onboarding.devdocs.json'; diff --git a/api_docs/home.mdx b/api_docs/home.mdx index 77ad2143f7b2..2283ab599fa4 100644 --- a/api_docs/home.mdx +++ b/api_docs/home.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/home title: "home" image: https://source.unsplash.com/400x175/?github description: API docs for the home plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'home'] --- import homeObj from './home.devdocs.json'; diff --git a/api_docs/image_embeddable.mdx b/api_docs/image_embeddable.mdx index 4440519f019a..7c4e2831dc9e 100644 --- a/api_docs/image_embeddable.mdx +++ b/api_docs/image_embeddable.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/imageEmbeddable title: "imageEmbeddable" image: https://source.unsplash.com/400x175/?github description: API docs for the imageEmbeddable plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'imageEmbeddable'] --- import imageEmbeddableObj from './image_embeddable.devdocs.json'; diff --git a/api_docs/index_lifecycle_management.mdx b/api_docs/index_lifecycle_management.mdx index 317230f20ad2..3e031c32d4b2 100644 --- a/api_docs/index_lifecycle_management.mdx +++ b/api_docs/index_lifecycle_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/indexLifecycleManagement title: "indexLifecycleManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the indexLifecycleManagement plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'indexLifecycleManagement'] --- import indexLifecycleManagementObj from './index_lifecycle_management.devdocs.json'; diff --git a/api_docs/index_management.mdx b/api_docs/index_management.mdx index 5559e8468357..cb17975618c5 100644 --- a/api_docs/index_management.mdx +++ b/api_docs/index_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/indexManagement title: "indexManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the indexManagement plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'indexManagement'] --- import indexManagementObj from './index_management.devdocs.json'; diff --git a/api_docs/infra.devdocs.json b/api_docs/infra.devdocs.json index 78b72a4e776f..a72f1be0fe33 100644 --- a/api_docs/infra.devdocs.json +++ b/api_docs/infra.devdocs.json @@ -337,6 +337,20 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "infra", + "id": "def-public.InfraClientStartExports.telemetry", + "type": "Object", + "tags": [], + "label": "telemetry", + "description": [], + "signature": [ + "ITelemetryClient" + ], + "path": "x-pack/plugins/infra/public/types.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "infra", "id": "def-public.InfraClientStartExports.ContainerMetricsTable", diff --git a/api_docs/infra.mdx b/api_docs/infra.mdx index 6d60a22acbdc..4c0c6adc0c50 100644 --- a/api_docs/infra.mdx +++ b/api_docs/infra.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/infra title: "infra" image: https://source.unsplash.com/400x175/?github description: API docs for the infra plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'infra'] --- import infraObj from './infra.devdocs.json'; @@ -21,7 +21,7 @@ Contact [Logs and Metrics UI](https://github.com/orgs/elastic/teams/logs-metrics | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 42 | 0 | 39 | 8 | +| 43 | 0 | 40 | 9 | ## Client diff --git a/api_docs/inspector.mdx b/api_docs/inspector.mdx index c1cf59533b56..0b32fc334b64 100644 --- a/api_docs/inspector.mdx +++ b/api_docs/inspector.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/inspector title: "inspector" image: https://source.unsplash.com/400x175/?github description: API docs for the inspector plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'inspector'] --- import inspectorObj from './inspector.devdocs.json'; diff --git a/api_docs/interactive_setup.mdx b/api_docs/interactive_setup.mdx index 207535b488d0..ac6ca29095a6 100644 --- a/api_docs/interactive_setup.mdx +++ b/api_docs/interactive_setup.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/interactiveSetup title: "interactiveSetup" image: https://source.unsplash.com/400x175/?github description: API docs for the interactiveSetup plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'interactiveSetup'] --- import interactiveSetupObj from './interactive_setup.devdocs.json'; diff --git a/api_docs/kbn_ace.mdx b/api_docs/kbn_ace.mdx index 647c83071adf..fac86811fdce 100644 --- a/api_docs/kbn_ace.mdx +++ b/api_docs/kbn_ace.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ace title: "@kbn/ace" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ace plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ace'] --- import kbnAceObj from './kbn_ace.devdocs.json'; diff --git a/api_docs/kbn_aiops_components.mdx b/api_docs/kbn_aiops_components.mdx index 0a861cecc1ec..9523d4da7a6f 100644 --- a/api_docs/kbn_aiops_components.mdx +++ b/api_docs/kbn_aiops_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-components title: "@kbn/aiops-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/aiops-components plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-components'] --- import kbnAiopsComponentsObj from './kbn_aiops_components.devdocs.json'; diff --git a/api_docs/kbn_aiops_utils.mdx b/api_docs/kbn_aiops_utils.mdx index e895507a8bf9..3658c5b1c973 100644 --- a/api_docs/kbn_aiops_utils.mdx +++ b/api_docs/kbn_aiops_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-utils title: "@kbn/aiops-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/aiops-utils plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-utils'] --- import kbnAiopsUtilsObj from './kbn_aiops_utils.devdocs.json'; diff --git a/api_docs/kbn_alerts.mdx b/api_docs/kbn_alerts.mdx index cf0d2f46adbe..ee1c6e83f952 100644 --- a/api_docs/kbn_alerts.mdx +++ b/api_docs/kbn_alerts.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts title: "@kbn/alerts" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerts plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts'] --- import kbnAlertsObj from './kbn_alerts.devdocs.json'; diff --git a/api_docs/kbn_analytics.mdx b/api_docs/kbn_analytics.mdx index 3608cf3a13b8..9d3dce0e9d66 100644 --- a/api_docs/kbn_analytics.mdx +++ b/api_docs/kbn_analytics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics title: "@kbn/analytics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics'] --- import kbnAnalyticsObj from './kbn_analytics.devdocs.json'; diff --git a/api_docs/kbn_analytics_client.devdocs.json b/api_docs/kbn_analytics_client.devdocs.json index e078afaecdac..47bd94ed1644 100644 --- a/api_docs/kbn_analytics_client.devdocs.json +++ b/api_docs/kbn_analytics_client.devdocs.json @@ -710,6 +710,14 @@ "plugin": "fleet", "path": "x-pack/plugins/fleet/server/services/telemetry/fleet_usage_sender.ts" }, + { + "plugin": "infra", + "path": "x-pack/plugins/infra/public/services/telemetry/telemetry_client.ts" + }, + { + "plugin": "infra", + "path": "x-pack/plugins/infra/public/services/telemetry/telemetry_client.ts" + }, { "plugin": "osquery", "path": "x-pack/plugins/osquery/server/lib/telemetry/sender.ts" @@ -778,6 +786,30 @@ "plugin": "security", "path": "x-pack/plugins/security/server/analytics/analytics_service.test.ts" }, + { + "plugin": "infra", + "path": "x-pack/plugins/infra/public/services/telemetry/telemetry_service.test.ts" + }, + { + "plugin": "infra", + "path": "x-pack/plugins/infra/public/services/telemetry/telemetry_service.test.ts" + }, + { + "plugin": "infra", + "path": "x-pack/plugins/infra/public/services/telemetry/telemetry_service.test.ts" + }, + { + "plugin": "infra", + "path": "x-pack/plugins/infra/public/services/telemetry/telemetry_service.test.ts" + }, + { + "plugin": "infra", + "path": "x-pack/plugins/infra/public/services/telemetry/telemetry_service.test.ts" + }, + { + "plugin": "infra", + "path": "x-pack/plugins/infra/public/services/telemetry/telemetry_service.test.ts" + }, { "plugin": "@kbn/core-status-server-internal", "path": "packages/core/status/core-status-server-internal/src/status_service.test.ts" diff --git a/api_docs/kbn_analytics_client.mdx b/api_docs/kbn_analytics_client.mdx index 7b1769cff3cb..fe7efff171e8 100644 --- a/api_docs/kbn_analytics_client.mdx +++ b/api_docs/kbn_analytics_client.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-client title: "@kbn/analytics-client" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-client plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-client'] --- import kbnAnalyticsClientObj from './kbn_analytics_client.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx b/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx index fcf036f77b56..22bee408c209 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-browser title: "@kbn/analytics-shippers-elastic-v3-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-browser plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-elastic-v3-browser'] --- import kbnAnalyticsShippersElasticV3BrowserObj from './kbn_analytics_shippers_elastic_v3_browser.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx b/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx index 29a259b8828c..e67370d7f53b 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-common title: "@kbn/analytics-shippers-elastic-v3-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-common plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-elastic-v3-common'] --- import kbnAnalyticsShippersElasticV3CommonObj from './kbn_analytics_shippers_elastic_v3_common.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx b/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx index 9a1c30af89cd..ee2ae4c4cf20 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-server title: "@kbn/analytics-shippers-elastic-v3-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-server plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-elastic-v3-server'] --- import kbnAnalyticsShippersElasticV3ServerObj from './kbn_analytics_shippers_elastic_v3_server.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_fullstory.mdx b/api_docs/kbn_analytics_shippers_fullstory.mdx index cb8390087c87..f504e359989f 100644 --- a/api_docs/kbn_analytics_shippers_fullstory.mdx +++ b/api_docs/kbn_analytics_shippers_fullstory.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-fullstory title: "@kbn/analytics-shippers-fullstory" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-fullstory plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-fullstory'] --- import kbnAnalyticsShippersFullstoryObj from './kbn_analytics_shippers_fullstory.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_gainsight.mdx b/api_docs/kbn_analytics_shippers_gainsight.mdx index e4c5124db35f..33d0840e0d6f 100644 --- a/api_docs/kbn_analytics_shippers_gainsight.mdx +++ b/api_docs/kbn_analytics_shippers_gainsight.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-gainsight title: "@kbn/analytics-shippers-gainsight" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-gainsight plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-gainsight'] --- import kbnAnalyticsShippersGainsightObj from './kbn_analytics_shippers_gainsight.devdocs.json'; diff --git a/api_docs/kbn_apm_config_loader.mdx b/api_docs/kbn_apm_config_loader.mdx index 97321b2ba432..535f185f730e 100644 --- a/api_docs/kbn_apm_config_loader.mdx +++ b/api_docs/kbn_apm_config_loader.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-config-loader title: "@kbn/apm-config-loader" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-config-loader plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-config-loader'] --- import kbnApmConfigLoaderObj from './kbn_apm_config_loader.devdocs.json'; diff --git a/api_docs/kbn_apm_synthtrace.mdx b/api_docs/kbn_apm_synthtrace.mdx index 5bdc3f4fc1fc..b0c73499eb35 100644 --- a/api_docs/kbn_apm_synthtrace.mdx +++ b/api_docs/kbn_apm_synthtrace.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-synthtrace title: "@kbn/apm-synthtrace" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-synthtrace plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-synthtrace'] --- import kbnApmSynthtraceObj from './kbn_apm_synthtrace.devdocs.json'; diff --git a/api_docs/kbn_apm_synthtrace_client.mdx b/api_docs/kbn_apm_synthtrace_client.mdx index bb35b450cc19..84f2cd32521f 100644 --- a/api_docs/kbn_apm_synthtrace_client.mdx +++ b/api_docs/kbn_apm_synthtrace_client.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-synthtrace-client title: "@kbn/apm-synthtrace-client" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-synthtrace-client plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-synthtrace-client'] --- import kbnApmSynthtraceClientObj from './kbn_apm_synthtrace_client.devdocs.json'; diff --git a/api_docs/kbn_apm_utils.mdx b/api_docs/kbn_apm_utils.mdx index b27258335c69..f34ba6396445 100644 --- a/api_docs/kbn_apm_utils.mdx +++ b/api_docs/kbn_apm_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-utils title: "@kbn/apm-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-utils plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-utils'] --- import kbnApmUtilsObj from './kbn_apm_utils.devdocs.json'; diff --git a/api_docs/kbn_axe_config.mdx b/api_docs/kbn_axe_config.mdx index 0eca8f52fc3d..66c0531adba6 100644 --- a/api_docs/kbn_axe_config.mdx +++ b/api_docs/kbn_axe_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-axe-config title: "@kbn/axe-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/axe-config plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/axe-config'] --- import kbnAxeConfigObj from './kbn_axe_config.devdocs.json'; diff --git a/api_docs/kbn_cases_components.mdx b/api_docs/kbn_cases_components.mdx index 6b2e9df19fa4..22074415bac7 100644 --- a/api_docs/kbn_cases_components.mdx +++ b/api_docs/kbn_cases_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cases-components title: "@kbn/cases-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cases-components plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cases-components'] --- import kbnCasesComponentsObj from './kbn_cases_components.devdocs.json'; diff --git a/api_docs/kbn_cell_actions.mdx b/api_docs/kbn_cell_actions.mdx index 377d46d92f22..798d1ea47cc4 100644 --- a/api_docs/kbn_cell_actions.mdx +++ b/api_docs/kbn_cell_actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cell-actions title: "@kbn/cell-actions" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cell-actions plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cell-actions'] --- import kbnCellActionsObj from './kbn_cell_actions.devdocs.json'; diff --git a/api_docs/kbn_chart_icons.mdx b/api_docs/kbn_chart_icons.mdx index 52af95292454..c7e89ef4fda0 100644 --- a/api_docs/kbn_chart_icons.mdx +++ b/api_docs/kbn_chart_icons.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-chart-icons title: "@kbn/chart-icons" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/chart-icons plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/chart-icons'] --- import kbnChartIconsObj from './kbn_chart_icons.devdocs.json'; diff --git a/api_docs/kbn_ci_stats_core.mdx b/api_docs/kbn_ci_stats_core.mdx index c7505d1eced6..62fd9645d31a 100644 --- a/api_docs/kbn_ci_stats_core.mdx +++ b/api_docs/kbn_ci_stats_core.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-core title: "@kbn/ci-stats-core" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-core plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ci-stats-core'] --- import kbnCiStatsCoreObj from './kbn_ci_stats_core.devdocs.json'; diff --git a/api_docs/kbn_ci_stats_performance_metrics.mdx b/api_docs/kbn_ci_stats_performance_metrics.mdx index 54136bd2a7f4..d41d71233203 100644 --- a/api_docs/kbn_ci_stats_performance_metrics.mdx +++ b/api_docs/kbn_ci_stats_performance_metrics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-performance-metrics title: "@kbn/ci-stats-performance-metrics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-performance-metrics plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ci-stats-performance-metrics'] --- import kbnCiStatsPerformanceMetricsObj from './kbn_ci_stats_performance_metrics.devdocs.json'; diff --git a/api_docs/kbn_ci_stats_reporter.mdx b/api_docs/kbn_ci_stats_reporter.mdx index 8d2d4da328de..ccd4730a24b7 100644 --- a/api_docs/kbn_ci_stats_reporter.mdx +++ b/api_docs/kbn_ci_stats_reporter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-reporter title: "@kbn/ci-stats-reporter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-reporter plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ci-stats-reporter'] --- import kbnCiStatsReporterObj from './kbn_ci_stats_reporter.devdocs.json'; diff --git a/api_docs/kbn_cli_dev_mode.mdx b/api_docs/kbn_cli_dev_mode.mdx index 5833acfb320b..68ff2a75efc6 100644 --- a/api_docs/kbn_cli_dev_mode.mdx +++ b/api_docs/kbn_cli_dev_mode.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cli-dev-mode title: "@kbn/cli-dev-mode" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cli-dev-mode plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cli-dev-mode'] --- import kbnCliDevModeObj from './kbn_cli_dev_mode.devdocs.json'; diff --git a/api_docs/kbn_coloring.mdx b/api_docs/kbn_coloring.mdx index ce6d0657d130..72d29bf9709a 100644 --- a/api_docs/kbn_coloring.mdx +++ b/api_docs/kbn_coloring.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-coloring title: "@kbn/coloring" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/coloring plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/coloring'] --- import kbnColoringObj from './kbn_coloring.devdocs.json'; diff --git a/api_docs/kbn_config.mdx b/api_docs/kbn_config.mdx index 476811ca4558..8b3dffb1858c 100644 --- a/api_docs/kbn_config.mdx +++ b/api_docs/kbn_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config title: "@kbn/config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config'] --- import kbnConfigObj from './kbn_config.devdocs.json'; diff --git a/api_docs/kbn_config_mocks.mdx b/api_docs/kbn_config_mocks.mdx index 80231df09314..52c56bf87d4a 100644 --- a/api_docs/kbn_config_mocks.mdx +++ b/api_docs/kbn_config_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config-mocks title: "@kbn/config-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config-mocks'] --- import kbnConfigMocksObj from './kbn_config_mocks.devdocs.json'; diff --git a/api_docs/kbn_config_schema.mdx b/api_docs/kbn_config_schema.mdx index 3d28d2b615eb..222f3df422cb 100644 --- a/api_docs/kbn_config_schema.mdx +++ b/api_docs/kbn_config_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config-schema title: "@kbn/config-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config-schema plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config-schema'] --- import kbnConfigSchemaObj from './kbn_config_schema.devdocs.json'; diff --git a/api_docs/kbn_content_management_content_editor.mdx b/api_docs/kbn_content_management_content_editor.mdx index 5254c0366a74..4a09f7943097 100644 --- a/api_docs/kbn_content_management_content_editor.mdx +++ b/api_docs/kbn_content_management_content_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-content-editor title: "@kbn/content-management-content-editor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-content-editor plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-content-editor'] --- import kbnContentManagementContentEditorObj from './kbn_content_management_content_editor.devdocs.json'; diff --git a/api_docs/kbn_content_management_table_list.mdx b/api_docs/kbn_content_management_table_list.mdx index 895bf144d26d..6af82a887451 100644 --- a/api_docs/kbn_content_management_table_list.mdx +++ b/api_docs/kbn_content_management_table_list.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-table-list title: "@kbn/content-management-table-list" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-table-list plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-table-list'] --- import kbnContentManagementTableListObj from './kbn_content_management_table_list.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_browser.mdx b/api_docs/kbn_core_analytics_browser.mdx index 3a32fe0dc523..9e766ec2e133 100644 --- a/api_docs/kbn_core_analytics_browser.mdx +++ b/api_docs/kbn_core_analytics_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser title: "@kbn/core-analytics-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-browser'] --- import kbnCoreAnalyticsBrowserObj from './kbn_core_analytics_browser.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_browser_internal.mdx b/api_docs/kbn_core_analytics_browser_internal.mdx index cd7600238a5c..5e2c89aaaa06 100644 --- a/api_docs/kbn_core_analytics_browser_internal.mdx +++ b/api_docs/kbn_core_analytics_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser-internal title: "@kbn/core-analytics-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser-internal plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-browser-internal'] --- import kbnCoreAnalyticsBrowserInternalObj from './kbn_core_analytics_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_browser_mocks.mdx b/api_docs/kbn_core_analytics_browser_mocks.mdx index 848a7ab61c7f..80032ec02352 100644 --- a/api_docs/kbn_core_analytics_browser_mocks.mdx +++ b/api_docs/kbn_core_analytics_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser-mocks title: "@kbn/core-analytics-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-browser-mocks'] --- import kbnCoreAnalyticsBrowserMocksObj from './kbn_core_analytics_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_server.mdx b/api_docs/kbn_core_analytics_server.mdx index 39772b9012db..6b58db6685a1 100644 --- a/api_docs/kbn_core_analytics_server.mdx +++ b/api_docs/kbn_core_analytics_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server title: "@kbn/core-analytics-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-server'] --- import kbnCoreAnalyticsServerObj from './kbn_core_analytics_server.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_server_internal.mdx b/api_docs/kbn_core_analytics_server_internal.mdx index b0673db8e595..5aa03d4cfe62 100644 --- a/api_docs/kbn_core_analytics_server_internal.mdx +++ b/api_docs/kbn_core_analytics_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server-internal title: "@kbn/core-analytics-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server-internal plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-server-internal'] --- import kbnCoreAnalyticsServerInternalObj from './kbn_core_analytics_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_server_mocks.mdx b/api_docs/kbn_core_analytics_server_mocks.mdx index 931895d86d68..5f5251fd39c7 100644 --- a/api_docs/kbn_core_analytics_server_mocks.mdx +++ b/api_docs/kbn_core_analytics_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server-mocks title: "@kbn/core-analytics-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-server-mocks'] --- import kbnCoreAnalyticsServerMocksObj from './kbn_core_analytics_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_application_browser.mdx b/api_docs/kbn_core_application_browser.mdx index 1b000222f38d..64a1af8376e1 100644 --- a/api_docs/kbn_core_application_browser.mdx +++ b/api_docs/kbn_core_application_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser title: "@kbn/core-application-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-browser'] --- import kbnCoreApplicationBrowserObj from './kbn_core_application_browser.devdocs.json'; diff --git a/api_docs/kbn_core_application_browser_internal.mdx b/api_docs/kbn_core_application_browser_internal.mdx index 19d0499b0d44..f1084c72fd02 100644 --- a/api_docs/kbn_core_application_browser_internal.mdx +++ b/api_docs/kbn_core_application_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser-internal title: "@kbn/core-application-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser-internal plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-browser-internal'] --- import kbnCoreApplicationBrowserInternalObj from './kbn_core_application_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_application_browser_mocks.mdx b/api_docs/kbn_core_application_browser_mocks.mdx index 13bca83e605e..7e07f95b9f9d 100644 --- a/api_docs/kbn_core_application_browser_mocks.mdx +++ b/api_docs/kbn_core_application_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser-mocks title: "@kbn/core-application-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-browser-mocks'] --- import kbnCoreApplicationBrowserMocksObj from './kbn_core_application_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_application_common.mdx b/api_docs/kbn_core_application_common.mdx index f99343223f08..db1f77402c1d 100644 --- a/api_docs/kbn_core_application_common.mdx +++ b/api_docs/kbn_core_application_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-common title: "@kbn/core-application-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-common plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-common'] --- import kbnCoreApplicationCommonObj from './kbn_core_application_common.devdocs.json'; diff --git a/api_docs/kbn_core_apps_browser_internal.mdx b/api_docs/kbn_core_apps_browser_internal.mdx index 2f932e711b11..c316f8c6ab3f 100644 --- a/api_docs/kbn_core_apps_browser_internal.mdx +++ b/api_docs/kbn_core_apps_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-browser-internal title: "@kbn/core-apps-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-browser-internal plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-apps-browser-internal'] --- import kbnCoreAppsBrowserInternalObj from './kbn_core_apps_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_apps_browser_mocks.mdx b/api_docs/kbn_core_apps_browser_mocks.mdx index 1529828daf54..726af557d00b 100644 --- a/api_docs/kbn_core_apps_browser_mocks.mdx +++ b/api_docs/kbn_core_apps_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-browser-mocks title: "@kbn/core-apps-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-browser-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-apps-browser-mocks'] --- import kbnCoreAppsBrowserMocksObj from './kbn_core_apps_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_apps_server_internal.mdx b/api_docs/kbn_core_apps_server_internal.mdx index 183c14f1074b..ff8abdcb2b50 100644 --- a/api_docs/kbn_core_apps_server_internal.mdx +++ b/api_docs/kbn_core_apps_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-server-internal title: "@kbn/core-apps-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-server-internal plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-apps-server-internal'] --- import kbnCoreAppsServerInternalObj from './kbn_core_apps_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_base_browser_mocks.mdx b/api_docs/kbn_core_base_browser_mocks.mdx index 2d43ce87eb23..65d3fcd35af2 100644 --- a/api_docs/kbn_core_base_browser_mocks.mdx +++ b/api_docs/kbn_core_base_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-browser-mocks title: "@kbn/core-base-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-browser-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-browser-mocks'] --- import kbnCoreBaseBrowserMocksObj from './kbn_core_base_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_base_common.mdx b/api_docs/kbn_core_base_common.mdx index 873cef04fdd0..12776a9260da 100644 --- a/api_docs/kbn_core_base_common.mdx +++ b/api_docs/kbn_core_base_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-common title: "@kbn/core-base-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-common plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-common'] --- import kbnCoreBaseCommonObj from './kbn_core_base_common.devdocs.json'; diff --git a/api_docs/kbn_core_base_server_internal.mdx b/api_docs/kbn_core_base_server_internal.mdx index 098e8edbb8a9..f9418e8420a0 100644 --- a/api_docs/kbn_core_base_server_internal.mdx +++ b/api_docs/kbn_core_base_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-server-internal title: "@kbn/core-base-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-server-internal plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-server-internal'] --- import kbnCoreBaseServerInternalObj from './kbn_core_base_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_base_server_mocks.mdx b/api_docs/kbn_core_base_server_mocks.mdx index 7b250f1e8721..6a8bee0c7e79 100644 --- a/api_docs/kbn_core_base_server_mocks.mdx +++ b/api_docs/kbn_core_base_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-server-mocks title: "@kbn/core-base-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-server-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-server-mocks'] --- import kbnCoreBaseServerMocksObj from './kbn_core_base_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_capabilities_browser_mocks.mdx b/api_docs/kbn_core_capabilities_browser_mocks.mdx index dc8063c1895e..69274413d9f4 100644 --- a/api_docs/kbn_core_capabilities_browser_mocks.mdx +++ b/api_docs/kbn_core_capabilities_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-browser-mocks title: "@kbn/core-capabilities-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-browser-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-browser-mocks'] --- import kbnCoreCapabilitiesBrowserMocksObj from './kbn_core_capabilities_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_capabilities_common.mdx b/api_docs/kbn_core_capabilities_common.mdx index 2eb70a4ab56b..86d77bfdffbc 100644 --- a/api_docs/kbn_core_capabilities_common.mdx +++ b/api_docs/kbn_core_capabilities_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-common title: "@kbn/core-capabilities-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-common plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-common'] --- import kbnCoreCapabilitiesCommonObj from './kbn_core_capabilities_common.devdocs.json'; diff --git a/api_docs/kbn_core_capabilities_server.mdx b/api_docs/kbn_core_capabilities_server.mdx index e2b31bbf1094..d3a5adc910f2 100644 --- a/api_docs/kbn_core_capabilities_server.mdx +++ b/api_docs/kbn_core_capabilities_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-server title: "@kbn/core-capabilities-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-server plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-server'] --- import kbnCoreCapabilitiesServerObj from './kbn_core_capabilities_server.devdocs.json'; diff --git a/api_docs/kbn_core_capabilities_server_mocks.mdx b/api_docs/kbn_core_capabilities_server_mocks.mdx index 1b568f5f13fb..09da55bed853 100644 --- a/api_docs/kbn_core_capabilities_server_mocks.mdx +++ b/api_docs/kbn_core_capabilities_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-server-mocks title: "@kbn/core-capabilities-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-server-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-server-mocks'] --- import kbnCoreCapabilitiesServerMocksObj from './kbn_core_capabilities_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_chrome_browser.mdx b/api_docs/kbn_core_chrome_browser.mdx index f472ed6332be..03e27d229a06 100644 --- a/api_docs/kbn_core_chrome_browser.mdx +++ b/api_docs/kbn_core_chrome_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-chrome-browser title: "@kbn/core-chrome-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-chrome-browser plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-chrome-browser'] --- import kbnCoreChromeBrowserObj from './kbn_core_chrome_browser.devdocs.json'; diff --git a/api_docs/kbn_core_chrome_browser_mocks.mdx b/api_docs/kbn_core_chrome_browser_mocks.mdx index 210d293b7643..b981fc083f25 100644 --- a/api_docs/kbn_core_chrome_browser_mocks.mdx +++ b/api_docs/kbn_core_chrome_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-chrome-browser-mocks title: "@kbn/core-chrome-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-chrome-browser-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-chrome-browser-mocks'] --- import kbnCoreChromeBrowserMocksObj from './kbn_core_chrome_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_config_server_internal.mdx b/api_docs/kbn_core_config_server_internal.mdx index f9497e608049..7c8ecb21590f 100644 --- a/api_docs/kbn_core_config_server_internal.mdx +++ b/api_docs/kbn_core_config_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-config-server-internal title: "@kbn/core-config-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-config-server-internal plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-config-server-internal'] --- import kbnCoreConfigServerInternalObj from './kbn_core_config_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_browser.mdx b/api_docs/kbn_core_custom_branding_browser.mdx index c41905d6975c..9e8126faa7eb 100644 --- a/api_docs/kbn_core_custom_branding_browser.mdx +++ b/api_docs/kbn_core_custom_branding_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser title: "@kbn/core-custom-branding-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser'] --- import kbnCoreCustomBrandingBrowserObj from './kbn_core_custom_branding_browser.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_browser_internal.mdx b/api_docs/kbn_core_custom_branding_browser_internal.mdx index 4f962aece540..b52a28ca1c58 100644 --- a/api_docs/kbn_core_custom_branding_browser_internal.mdx +++ b/api_docs/kbn_core_custom_branding_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser-internal title: "@kbn/core-custom-branding-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser-internal plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser-internal'] --- import kbnCoreCustomBrandingBrowserInternalObj from './kbn_core_custom_branding_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_browser_mocks.mdx b/api_docs/kbn_core_custom_branding_browser_mocks.mdx index 28552060b6c6..9e881465cb9a 100644 --- a/api_docs/kbn_core_custom_branding_browser_mocks.mdx +++ b/api_docs/kbn_core_custom_branding_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser-mocks title: "@kbn/core-custom-branding-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser-mocks'] --- import kbnCoreCustomBrandingBrowserMocksObj from './kbn_core_custom_branding_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_common.mdx b/api_docs/kbn_core_custom_branding_common.mdx index 7add27a8fe2c..0d26238cb547 100644 --- a/api_docs/kbn_core_custom_branding_common.mdx +++ b/api_docs/kbn_core_custom_branding_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-common title: "@kbn/core-custom-branding-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-common plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-common'] --- import kbnCoreCustomBrandingCommonObj from './kbn_core_custom_branding_common.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_server.mdx b/api_docs/kbn_core_custom_branding_server.mdx index 56d3987a2495..0dc300439629 100644 --- a/api_docs/kbn_core_custom_branding_server.mdx +++ b/api_docs/kbn_core_custom_branding_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server title: "@kbn/core-custom-branding-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server'] --- import kbnCoreCustomBrandingServerObj from './kbn_core_custom_branding_server.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_server_internal.mdx b/api_docs/kbn_core_custom_branding_server_internal.mdx index e2d93648e181..adf1c10887c6 100644 --- a/api_docs/kbn_core_custom_branding_server_internal.mdx +++ b/api_docs/kbn_core_custom_branding_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server-internal title: "@kbn/core-custom-branding-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server-internal plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server-internal'] --- import kbnCoreCustomBrandingServerInternalObj from './kbn_core_custom_branding_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_server_mocks.mdx b/api_docs/kbn_core_custom_branding_server_mocks.mdx index 1819a2f2e49e..22dcd664f082 100644 --- a/api_docs/kbn_core_custom_branding_server_mocks.mdx +++ b/api_docs/kbn_core_custom_branding_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server-mocks title: "@kbn/core-custom-branding-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server-mocks'] --- import kbnCoreCustomBrandingServerMocksObj from './kbn_core_custom_branding_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_browser.mdx b/api_docs/kbn_core_deprecations_browser.mdx index 1d72cb261fe8..d0ca52e0c4db 100644 --- a/api_docs/kbn_core_deprecations_browser.mdx +++ b/api_docs/kbn_core_deprecations_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser title: "@kbn/core-deprecations-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-browser'] --- import kbnCoreDeprecationsBrowserObj from './kbn_core_deprecations_browser.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_browser_internal.mdx b/api_docs/kbn_core_deprecations_browser_internal.mdx index 4fa0c0e572d0..0342c3cee558 100644 --- a/api_docs/kbn_core_deprecations_browser_internal.mdx +++ b/api_docs/kbn_core_deprecations_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser-internal title: "@kbn/core-deprecations-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser-internal plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-browser-internal'] --- import kbnCoreDeprecationsBrowserInternalObj from './kbn_core_deprecations_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_browser_mocks.mdx b/api_docs/kbn_core_deprecations_browser_mocks.mdx index 2af5f8ccb7d2..03acb31d0719 100644 --- a/api_docs/kbn_core_deprecations_browser_mocks.mdx +++ b/api_docs/kbn_core_deprecations_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser-mocks title: "@kbn/core-deprecations-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-browser-mocks'] --- import kbnCoreDeprecationsBrowserMocksObj from './kbn_core_deprecations_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_common.mdx b/api_docs/kbn_core_deprecations_common.mdx index 553f8f1f00da..eced494bc827 100644 --- a/api_docs/kbn_core_deprecations_common.mdx +++ b/api_docs/kbn_core_deprecations_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-common title: "@kbn/core-deprecations-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-common plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-common'] --- import kbnCoreDeprecationsCommonObj from './kbn_core_deprecations_common.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_server.mdx b/api_docs/kbn_core_deprecations_server.mdx index a32f121c72c7..c7c79d7eddaf 100644 --- a/api_docs/kbn_core_deprecations_server.mdx +++ b/api_docs/kbn_core_deprecations_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server title: "@kbn/core-deprecations-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-server'] --- import kbnCoreDeprecationsServerObj from './kbn_core_deprecations_server.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_server_internal.mdx b/api_docs/kbn_core_deprecations_server_internal.mdx index 9d052148bbe1..535bc28fd892 100644 --- a/api_docs/kbn_core_deprecations_server_internal.mdx +++ b/api_docs/kbn_core_deprecations_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server-internal title: "@kbn/core-deprecations-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server-internal plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-server-internal'] --- import kbnCoreDeprecationsServerInternalObj from './kbn_core_deprecations_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_server_mocks.mdx b/api_docs/kbn_core_deprecations_server_mocks.mdx index 19cc520cdd97..9c154ed89a33 100644 --- a/api_docs/kbn_core_deprecations_server_mocks.mdx +++ b/api_docs/kbn_core_deprecations_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server-mocks title: "@kbn/core-deprecations-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-server-mocks'] --- import kbnCoreDeprecationsServerMocksObj from './kbn_core_deprecations_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_doc_links_browser.mdx b/api_docs/kbn_core_doc_links_browser.mdx index cfe7fc58d8f2..64ed8ea4a392 100644 --- a/api_docs/kbn_core_doc_links_browser.mdx +++ b/api_docs/kbn_core_doc_links_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-browser title: "@kbn/core-doc-links-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-browser plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-browser'] --- import kbnCoreDocLinksBrowserObj from './kbn_core_doc_links_browser.devdocs.json'; diff --git a/api_docs/kbn_core_doc_links_browser_mocks.mdx b/api_docs/kbn_core_doc_links_browser_mocks.mdx index d3e5f36af222..f0980fd0c0d6 100644 --- a/api_docs/kbn_core_doc_links_browser_mocks.mdx +++ b/api_docs/kbn_core_doc_links_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-browser-mocks title: "@kbn/core-doc-links-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-browser-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-browser-mocks'] --- import kbnCoreDocLinksBrowserMocksObj from './kbn_core_doc_links_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_doc_links_server.mdx b/api_docs/kbn_core_doc_links_server.mdx index 32f3a48ee976..834a2b4c0cb0 100644 --- a/api_docs/kbn_core_doc_links_server.mdx +++ b/api_docs/kbn_core_doc_links_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-server title: "@kbn/core-doc-links-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-server plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-server'] --- import kbnCoreDocLinksServerObj from './kbn_core_doc_links_server.devdocs.json'; diff --git a/api_docs/kbn_core_doc_links_server_mocks.mdx b/api_docs/kbn_core_doc_links_server_mocks.mdx index 0feff8677eb7..d6ea3c3dbced 100644 --- a/api_docs/kbn_core_doc_links_server_mocks.mdx +++ b/api_docs/kbn_core_doc_links_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-server-mocks title: "@kbn/core-doc-links-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-server-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-server-mocks'] --- import kbnCoreDocLinksServerMocksObj from './kbn_core_doc_links_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_elasticsearch_client_server_internal.mdx b/api_docs/kbn_core_elasticsearch_client_server_internal.mdx index 9744c7e7fe8d..ff0e09cb04f1 100644 --- a/api_docs/kbn_core_elasticsearch_client_server_internal.mdx +++ b/api_docs/kbn_core_elasticsearch_client_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-client-server-internal title: "@kbn/core-elasticsearch-client-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-client-server-internal plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-client-server-internal'] --- import kbnCoreElasticsearchClientServerInternalObj from './kbn_core_elasticsearch_client_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx b/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx index d3fff24d4de3..7697ff7fcb5d 100644 --- a/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx +++ b/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-client-server-mocks title: "@kbn/core-elasticsearch-client-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-client-server-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-client-server-mocks'] --- import kbnCoreElasticsearchClientServerMocksObj from './kbn_core_elasticsearch_client_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_elasticsearch_server.mdx b/api_docs/kbn_core_elasticsearch_server.mdx index 33e7486d780d..5cc3b38046f3 100644 --- a/api_docs/kbn_core_elasticsearch_server.mdx +++ b/api_docs/kbn_core_elasticsearch_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server title: "@kbn/core-elasticsearch-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-server'] --- import kbnCoreElasticsearchServerObj from './kbn_core_elasticsearch_server.devdocs.json'; diff --git a/api_docs/kbn_core_elasticsearch_server_internal.mdx b/api_docs/kbn_core_elasticsearch_server_internal.mdx index cde7facd14d4..3def6c9accfe 100644 --- a/api_docs/kbn_core_elasticsearch_server_internal.mdx +++ b/api_docs/kbn_core_elasticsearch_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server-internal title: "@kbn/core-elasticsearch-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server-internal plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-server-internal'] --- import kbnCoreElasticsearchServerInternalObj from './kbn_core_elasticsearch_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_elasticsearch_server_mocks.mdx b/api_docs/kbn_core_elasticsearch_server_mocks.mdx index d3a536598824..02e845ca5b1b 100644 --- a/api_docs/kbn_core_elasticsearch_server_mocks.mdx +++ b/api_docs/kbn_core_elasticsearch_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server-mocks title: "@kbn/core-elasticsearch-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-server-mocks'] --- import kbnCoreElasticsearchServerMocksObj from './kbn_core_elasticsearch_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_environment_server_internal.mdx b/api_docs/kbn_core_environment_server_internal.mdx index 409cdcd49870..bcd2f6fe7859 100644 --- a/api_docs/kbn_core_environment_server_internal.mdx +++ b/api_docs/kbn_core_environment_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-environment-server-internal title: "@kbn/core-environment-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-environment-server-internal plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-environment-server-internal'] --- import kbnCoreEnvironmentServerInternalObj from './kbn_core_environment_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_environment_server_mocks.mdx b/api_docs/kbn_core_environment_server_mocks.mdx index b89670e17ae5..13930259b84b 100644 --- a/api_docs/kbn_core_environment_server_mocks.mdx +++ b/api_docs/kbn_core_environment_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-environment-server-mocks title: "@kbn/core-environment-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-environment-server-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-environment-server-mocks'] --- import kbnCoreEnvironmentServerMocksObj from './kbn_core_environment_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_browser.mdx b/api_docs/kbn_core_execution_context_browser.mdx index 37296a79ebb5..b9782ac654b1 100644 --- a/api_docs/kbn_core_execution_context_browser.mdx +++ b/api_docs/kbn_core_execution_context_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser title: "@kbn/core-execution-context-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-browser'] --- import kbnCoreExecutionContextBrowserObj from './kbn_core_execution_context_browser.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_browser_internal.mdx b/api_docs/kbn_core_execution_context_browser_internal.mdx index d409c9739834..819f665a21d0 100644 --- a/api_docs/kbn_core_execution_context_browser_internal.mdx +++ b/api_docs/kbn_core_execution_context_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser-internal title: "@kbn/core-execution-context-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser-internal plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-browser-internal'] --- import kbnCoreExecutionContextBrowserInternalObj from './kbn_core_execution_context_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_browser_mocks.mdx b/api_docs/kbn_core_execution_context_browser_mocks.mdx index 922fedcafe11..db447a0679a4 100644 --- a/api_docs/kbn_core_execution_context_browser_mocks.mdx +++ b/api_docs/kbn_core_execution_context_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser-mocks title: "@kbn/core-execution-context-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-browser-mocks'] --- import kbnCoreExecutionContextBrowserMocksObj from './kbn_core_execution_context_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_common.mdx b/api_docs/kbn_core_execution_context_common.mdx index 1f5aabaa1661..1b0e91521177 100644 --- a/api_docs/kbn_core_execution_context_common.mdx +++ b/api_docs/kbn_core_execution_context_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-common title: "@kbn/core-execution-context-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-common plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-common'] --- import kbnCoreExecutionContextCommonObj from './kbn_core_execution_context_common.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_server.mdx b/api_docs/kbn_core_execution_context_server.mdx index c8d9ee7269bc..62ed8b99d97c 100644 --- a/api_docs/kbn_core_execution_context_server.mdx +++ b/api_docs/kbn_core_execution_context_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server title: "@kbn/core-execution-context-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-server'] --- import kbnCoreExecutionContextServerObj from './kbn_core_execution_context_server.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_server_internal.mdx b/api_docs/kbn_core_execution_context_server_internal.mdx index d585b6312d6d..9802b6523355 100644 --- a/api_docs/kbn_core_execution_context_server_internal.mdx +++ b/api_docs/kbn_core_execution_context_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server-internal title: "@kbn/core-execution-context-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server-internal plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-server-internal'] --- import kbnCoreExecutionContextServerInternalObj from './kbn_core_execution_context_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_server_mocks.mdx b/api_docs/kbn_core_execution_context_server_mocks.mdx index 88c8a458f00f..19f5f8c79c86 100644 --- a/api_docs/kbn_core_execution_context_server_mocks.mdx +++ b/api_docs/kbn_core_execution_context_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server-mocks title: "@kbn/core-execution-context-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-server-mocks'] --- import kbnCoreExecutionContextServerMocksObj from './kbn_core_execution_context_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_fatal_errors_browser.mdx b/api_docs/kbn_core_fatal_errors_browser.mdx index 3054d95b86f6..b54a3b4081f5 100644 --- a/api_docs/kbn_core_fatal_errors_browser.mdx +++ b/api_docs/kbn_core_fatal_errors_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-fatal-errors-browser title: "@kbn/core-fatal-errors-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-fatal-errors-browser plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-fatal-errors-browser'] --- import kbnCoreFatalErrorsBrowserObj from './kbn_core_fatal_errors_browser.devdocs.json'; diff --git a/api_docs/kbn_core_fatal_errors_browser_mocks.mdx b/api_docs/kbn_core_fatal_errors_browser_mocks.mdx index 886c87b57eee..805d4d19251f 100644 --- a/api_docs/kbn_core_fatal_errors_browser_mocks.mdx +++ b/api_docs/kbn_core_fatal_errors_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-fatal-errors-browser-mocks title: "@kbn/core-fatal-errors-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-fatal-errors-browser-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-fatal-errors-browser-mocks'] --- import kbnCoreFatalErrorsBrowserMocksObj from './kbn_core_fatal_errors_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_browser.mdx b/api_docs/kbn_core_http_browser.mdx index 87b58d6de05c..81f5d1b60e84 100644 --- a/api_docs/kbn_core_http_browser.mdx +++ b/api_docs/kbn_core_http_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser title: "@kbn/core-http-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-browser'] --- import kbnCoreHttpBrowserObj from './kbn_core_http_browser.devdocs.json'; diff --git a/api_docs/kbn_core_http_browser_internal.mdx b/api_docs/kbn_core_http_browser_internal.mdx index 0ef208f015bd..30281d6ae449 100644 --- a/api_docs/kbn_core_http_browser_internal.mdx +++ b/api_docs/kbn_core_http_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser-internal title: "@kbn/core-http-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser-internal plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-browser-internal'] --- import kbnCoreHttpBrowserInternalObj from './kbn_core_http_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_http_browser_mocks.mdx b/api_docs/kbn_core_http_browser_mocks.mdx index bf50cf439122..dce9f917dd8c 100644 --- a/api_docs/kbn_core_http_browser_mocks.mdx +++ b/api_docs/kbn_core_http_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser-mocks title: "@kbn/core-http-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-browser-mocks'] --- import kbnCoreHttpBrowserMocksObj from './kbn_core_http_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_common.mdx b/api_docs/kbn_core_http_common.mdx index a277903e323c..007d98bf4219 100644 --- a/api_docs/kbn_core_http_common.mdx +++ b/api_docs/kbn_core_http_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-common title: "@kbn/core-http-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-common plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-common'] --- import kbnCoreHttpCommonObj from './kbn_core_http_common.devdocs.json'; diff --git a/api_docs/kbn_core_http_context_server_mocks.mdx b/api_docs/kbn_core_http_context_server_mocks.mdx index ee17e87ef09c..ecfbdab08484 100644 --- a/api_docs/kbn_core_http_context_server_mocks.mdx +++ b/api_docs/kbn_core_http_context_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-context-server-mocks title: "@kbn/core-http-context-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-context-server-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-context-server-mocks'] --- import kbnCoreHttpContextServerMocksObj from './kbn_core_http_context_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_request_handler_context_server.mdx b/api_docs/kbn_core_http_request_handler_context_server.mdx index 94ca69a24b30..aa400917eb71 100644 --- a/api_docs/kbn_core_http_request_handler_context_server.mdx +++ b/api_docs/kbn_core_http_request_handler_context_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-request-handler-context-server title: "@kbn/core-http-request-handler-context-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-request-handler-context-server plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-request-handler-context-server'] --- import kbnCoreHttpRequestHandlerContextServerObj from './kbn_core_http_request_handler_context_server.devdocs.json'; diff --git a/api_docs/kbn_core_http_resources_server.mdx b/api_docs/kbn_core_http_resources_server.mdx index 954223310027..6776e6987716 100644 --- a/api_docs/kbn_core_http_resources_server.mdx +++ b/api_docs/kbn_core_http_resources_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server title: "@kbn/core-http-resources-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-resources-server'] --- import kbnCoreHttpResourcesServerObj from './kbn_core_http_resources_server.devdocs.json'; diff --git a/api_docs/kbn_core_http_resources_server_internal.mdx b/api_docs/kbn_core_http_resources_server_internal.mdx index 518aad2c5b60..7e3574a7a789 100644 --- a/api_docs/kbn_core_http_resources_server_internal.mdx +++ b/api_docs/kbn_core_http_resources_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server-internal title: "@kbn/core-http-resources-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server-internal plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-resources-server-internal'] --- import kbnCoreHttpResourcesServerInternalObj from './kbn_core_http_resources_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_http_resources_server_mocks.mdx b/api_docs/kbn_core_http_resources_server_mocks.mdx index dc3cd6de83c1..766915cbb308 100644 --- a/api_docs/kbn_core_http_resources_server_mocks.mdx +++ b/api_docs/kbn_core_http_resources_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server-mocks title: "@kbn/core-http-resources-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-resources-server-mocks'] --- import kbnCoreHttpResourcesServerMocksObj from './kbn_core_http_resources_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_router_server_internal.mdx b/api_docs/kbn_core_http_router_server_internal.mdx index b3f7f41ffe83..019a83b152e2 100644 --- a/api_docs/kbn_core_http_router_server_internal.mdx +++ b/api_docs/kbn_core_http_router_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-router-server-internal title: "@kbn/core-http-router-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-router-server-internal plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-router-server-internal'] --- import kbnCoreHttpRouterServerInternalObj from './kbn_core_http_router_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_http_router_server_mocks.mdx b/api_docs/kbn_core_http_router_server_mocks.mdx index 8c6969e813f2..c8ef99d88dfc 100644 --- a/api_docs/kbn_core_http_router_server_mocks.mdx +++ b/api_docs/kbn_core_http_router_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-router-server-mocks title: "@kbn/core-http-router-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-router-server-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-router-server-mocks'] --- import kbnCoreHttpRouterServerMocksObj from './kbn_core_http_router_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_server.mdx b/api_docs/kbn_core_http_server.mdx index d2526b5cb105..f8368d9b5d76 100644 --- a/api_docs/kbn_core_http_server.mdx +++ b/api_docs/kbn_core_http_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server title: "@kbn/core-http-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-server'] --- import kbnCoreHttpServerObj from './kbn_core_http_server.devdocs.json'; diff --git a/api_docs/kbn_core_http_server_internal.mdx b/api_docs/kbn_core_http_server_internal.mdx index e62536c2d2a4..516f74ee059c 100644 --- a/api_docs/kbn_core_http_server_internal.mdx +++ b/api_docs/kbn_core_http_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server-internal title: "@kbn/core-http-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server-internal plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-server-internal'] --- import kbnCoreHttpServerInternalObj from './kbn_core_http_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_http_server_mocks.mdx b/api_docs/kbn_core_http_server_mocks.mdx index 63b6a2407f6f..d5535294fc4b 100644 --- a/api_docs/kbn_core_http_server_mocks.mdx +++ b/api_docs/kbn_core_http_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server-mocks title: "@kbn/core-http-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-server-mocks'] --- import kbnCoreHttpServerMocksObj from './kbn_core_http_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_i18n_browser.mdx b/api_docs/kbn_core_i18n_browser.mdx index 4c6d63a4828c..65f67046738a 100644 --- a/api_docs/kbn_core_i18n_browser.mdx +++ b/api_docs/kbn_core_i18n_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-browser title: "@kbn/core-i18n-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-browser plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-browser'] --- import kbnCoreI18nBrowserObj from './kbn_core_i18n_browser.devdocs.json'; diff --git a/api_docs/kbn_core_i18n_browser_mocks.mdx b/api_docs/kbn_core_i18n_browser_mocks.mdx index cf1254721cb5..261dfc9f5c20 100644 --- a/api_docs/kbn_core_i18n_browser_mocks.mdx +++ b/api_docs/kbn_core_i18n_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-browser-mocks title: "@kbn/core-i18n-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-browser-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-browser-mocks'] --- import kbnCoreI18nBrowserMocksObj from './kbn_core_i18n_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_i18n_server.mdx b/api_docs/kbn_core_i18n_server.mdx index 625ceb08bcf0..6644269274ed 100644 --- a/api_docs/kbn_core_i18n_server.mdx +++ b/api_docs/kbn_core_i18n_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server title: "@kbn/core-i18n-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-server'] --- import kbnCoreI18nServerObj from './kbn_core_i18n_server.devdocs.json'; diff --git a/api_docs/kbn_core_i18n_server_internal.mdx b/api_docs/kbn_core_i18n_server_internal.mdx index 93bdcb9321d8..071bfeb50e69 100644 --- a/api_docs/kbn_core_i18n_server_internal.mdx +++ b/api_docs/kbn_core_i18n_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server-internal title: "@kbn/core-i18n-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server-internal plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-server-internal'] --- import kbnCoreI18nServerInternalObj from './kbn_core_i18n_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_i18n_server_mocks.mdx b/api_docs/kbn_core_i18n_server_mocks.mdx index 10598881110b..cdf161002403 100644 --- a/api_docs/kbn_core_i18n_server_mocks.mdx +++ b/api_docs/kbn_core_i18n_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server-mocks title: "@kbn/core-i18n-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-server-mocks'] --- import kbnCoreI18nServerMocksObj from './kbn_core_i18n_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_injected_metadata_browser_mocks.mdx b/api_docs/kbn_core_injected_metadata_browser_mocks.mdx index 2f88cec57f52..0da436dd1372 100644 --- a/api_docs/kbn_core_injected_metadata_browser_mocks.mdx +++ b/api_docs/kbn_core_injected_metadata_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-injected-metadata-browser-mocks title: "@kbn/core-injected-metadata-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-injected-metadata-browser-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-injected-metadata-browser-mocks'] --- import kbnCoreInjectedMetadataBrowserMocksObj from './kbn_core_injected_metadata_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_integrations_browser_internal.mdx b/api_docs/kbn_core_integrations_browser_internal.mdx index 2cba92c218bd..06fc4b6f72f7 100644 --- a/api_docs/kbn_core_integrations_browser_internal.mdx +++ b/api_docs/kbn_core_integrations_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-integrations-browser-internal title: "@kbn/core-integrations-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-integrations-browser-internal plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-integrations-browser-internal'] --- import kbnCoreIntegrationsBrowserInternalObj from './kbn_core_integrations_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_integrations_browser_mocks.mdx b/api_docs/kbn_core_integrations_browser_mocks.mdx index c6f406e88079..199da06e16dc 100644 --- a/api_docs/kbn_core_integrations_browser_mocks.mdx +++ b/api_docs/kbn_core_integrations_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-integrations-browser-mocks title: "@kbn/core-integrations-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-integrations-browser-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-integrations-browser-mocks'] --- import kbnCoreIntegrationsBrowserMocksObj from './kbn_core_integrations_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_lifecycle_browser.mdx b/api_docs/kbn_core_lifecycle_browser.mdx index 69e573268cbc..9b6c9a35bc24 100644 --- a/api_docs/kbn_core_lifecycle_browser.mdx +++ b/api_docs/kbn_core_lifecycle_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-browser title: "@kbn/core-lifecycle-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-browser plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-browser'] --- import kbnCoreLifecycleBrowserObj from './kbn_core_lifecycle_browser.devdocs.json'; diff --git a/api_docs/kbn_core_lifecycle_browser_mocks.mdx b/api_docs/kbn_core_lifecycle_browser_mocks.mdx index 274783a40d08..01a96d04157e 100644 --- a/api_docs/kbn_core_lifecycle_browser_mocks.mdx +++ b/api_docs/kbn_core_lifecycle_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-browser-mocks title: "@kbn/core-lifecycle-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-browser-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-browser-mocks'] --- import kbnCoreLifecycleBrowserMocksObj from './kbn_core_lifecycle_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_lifecycle_server.mdx b/api_docs/kbn_core_lifecycle_server.mdx index cfdc040d4e0c..210800431c18 100644 --- a/api_docs/kbn_core_lifecycle_server.mdx +++ b/api_docs/kbn_core_lifecycle_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-server title: "@kbn/core-lifecycle-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-server plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-server'] --- import kbnCoreLifecycleServerObj from './kbn_core_lifecycle_server.devdocs.json'; diff --git a/api_docs/kbn_core_lifecycle_server_mocks.mdx b/api_docs/kbn_core_lifecycle_server_mocks.mdx index cc6400c24d1a..060fc3df1251 100644 --- a/api_docs/kbn_core_lifecycle_server_mocks.mdx +++ b/api_docs/kbn_core_lifecycle_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-server-mocks title: "@kbn/core-lifecycle-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-server-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-server-mocks'] --- import kbnCoreLifecycleServerMocksObj from './kbn_core_lifecycle_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_logging_browser_mocks.mdx b/api_docs/kbn_core_logging_browser_mocks.mdx index df6588cb48cf..f681c2f225cd 100644 --- a/api_docs/kbn_core_logging_browser_mocks.mdx +++ b/api_docs/kbn_core_logging_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-browser-mocks title: "@kbn/core-logging-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-browser-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-browser-mocks'] --- import kbnCoreLoggingBrowserMocksObj from './kbn_core_logging_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_logging_common_internal.mdx b/api_docs/kbn_core_logging_common_internal.mdx index 62a28a0da1b2..fb31a2c42a0f 100644 --- a/api_docs/kbn_core_logging_common_internal.mdx +++ b/api_docs/kbn_core_logging_common_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-common-internal title: "@kbn/core-logging-common-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-common-internal plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-common-internal'] --- import kbnCoreLoggingCommonInternalObj from './kbn_core_logging_common_internal.devdocs.json'; diff --git a/api_docs/kbn_core_logging_server.mdx b/api_docs/kbn_core_logging_server.mdx index 664842a6d95e..a37300afb1b3 100644 --- a/api_docs/kbn_core_logging_server.mdx +++ b/api_docs/kbn_core_logging_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server title: "@kbn/core-logging-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-server'] --- import kbnCoreLoggingServerObj from './kbn_core_logging_server.devdocs.json'; diff --git a/api_docs/kbn_core_logging_server_internal.mdx b/api_docs/kbn_core_logging_server_internal.mdx index 93f4f02353be..a86ead740e84 100644 --- a/api_docs/kbn_core_logging_server_internal.mdx +++ b/api_docs/kbn_core_logging_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server-internal title: "@kbn/core-logging-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server-internal plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-server-internal'] --- import kbnCoreLoggingServerInternalObj from './kbn_core_logging_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_logging_server_mocks.mdx b/api_docs/kbn_core_logging_server_mocks.mdx index 84e9c85e9766..33c5afe3a488 100644 --- a/api_docs/kbn_core_logging_server_mocks.mdx +++ b/api_docs/kbn_core_logging_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server-mocks title: "@kbn/core-logging-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-server-mocks'] --- import kbnCoreLoggingServerMocksObj from './kbn_core_logging_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_metrics_collectors_server_internal.mdx b/api_docs/kbn_core_metrics_collectors_server_internal.mdx index 203ebe611de3..f5b792b3025c 100644 --- a/api_docs/kbn_core_metrics_collectors_server_internal.mdx +++ b/api_docs/kbn_core_metrics_collectors_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-collectors-server-internal title: "@kbn/core-metrics-collectors-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-collectors-server-internal plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-collectors-server-internal'] --- import kbnCoreMetricsCollectorsServerInternalObj from './kbn_core_metrics_collectors_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_metrics_collectors_server_mocks.mdx b/api_docs/kbn_core_metrics_collectors_server_mocks.mdx index 49b197ea3675..f8f18a24c933 100644 --- a/api_docs/kbn_core_metrics_collectors_server_mocks.mdx +++ b/api_docs/kbn_core_metrics_collectors_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-collectors-server-mocks title: "@kbn/core-metrics-collectors-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-collectors-server-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-collectors-server-mocks'] --- import kbnCoreMetricsCollectorsServerMocksObj from './kbn_core_metrics_collectors_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_metrics_server.mdx b/api_docs/kbn_core_metrics_server.mdx index 4d882da48b40..464e2d46494a 100644 --- a/api_docs/kbn_core_metrics_server.mdx +++ b/api_docs/kbn_core_metrics_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server title: "@kbn/core-metrics-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-server'] --- import kbnCoreMetricsServerObj from './kbn_core_metrics_server.devdocs.json'; diff --git a/api_docs/kbn_core_metrics_server_internal.mdx b/api_docs/kbn_core_metrics_server_internal.mdx index e2cb895ca1e8..094f75f31c31 100644 --- a/api_docs/kbn_core_metrics_server_internal.mdx +++ b/api_docs/kbn_core_metrics_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server-internal title: "@kbn/core-metrics-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server-internal plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-server-internal'] --- import kbnCoreMetricsServerInternalObj from './kbn_core_metrics_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_metrics_server_mocks.mdx b/api_docs/kbn_core_metrics_server_mocks.mdx index 49b847bc56d4..de7e7f97c8dc 100644 --- a/api_docs/kbn_core_metrics_server_mocks.mdx +++ b/api_docs/kbn_core_metrics_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server-mocks title: "@kbn/core-metrics-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-server-mocks'] --- import kbnCoreMetricsServerMocksObj from './kbn_core_metrics_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_mount_utils_browser.mdx b/api_docs/kbn_core_mount_utils_browser.mdx index 7454e4b96f39..bf619a78e1e0 100644 --- a/api_docs/kbn_core_mount_utils_browser.mdx +++ b/api_docs/kbn_core_mount_utils_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-mount-utils-browser title: "@kbn/core-mount-utils-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-mount-utils-browser plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-mount-utils-browser'] --- import kbnCoreMountUtilsBrowserObj from './kbn_core_mount_utils_browser.devdocs.json'; diff --git a/api_docs/kbn_core_node_server.mdx b/api_docs/kbn_core_node_server.mdx index 8589ce61a40c..2db60dd10163 100644 --- a/api_docs/kbn_core_node_server.mdx +++ b/api_docs/kbn_core_node_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server title: "@kbn/core-node-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-node-server'] --- import kbnCoreNodeServerObj from './kbn_core_node_server.devdocs.json'; diff --git a/api_docs/kbn_core_node_server_internal.mdx b/api_docs/kbn_core_node_server_internal.mdx index f3fbd7c7b524..d018c18c3c89 100644 --- a/api_docs/kbn_core_node_server_internal.mdx +++ b/api_docs/kbn_core_node_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server-internal title: "@kbn/core-node-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server-internal plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-node-server-internal'] --- import kbnCoreNodeServerInternalObj from './kbn_core_node_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_node_server_mocks.mdx b/api_docs/kbn_core_node_server_mocks.mdx index 642b8b95caa7..34505b85debe 100644 --- a/api_docs/kbn_core_node_server_mocks.mdx +++ b/api_docs/kbn_core_node_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server-mocks title: "@kbn/core-node-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-node-server-mocks'] --- import kbnCoreNodeServerMocksObj from './kbn_core_node_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_notifications_browser.mdx b/api_docs/kbn_core_notifications_browser.mdx index 18afafa3e4e4..2319eb24e323 100644 --- a/api_docs/kbn_core_notifications_browser.mdx +++ b/api_docs/kbn_core_notifications_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser title: "@kbn/core-notifications-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-notifications-browser'] --- import kbnCoreNotificationsBrowserObj from './kbn_core_notifications_browser.devdocs.json'; diff --git a/api_docs/kbn_core_notifications_browser_internal.mdx b/api_docs/kbn_core_notifications_browser_internal.mdx index e762f3cc1833..792f9e511e53 100644 --- a/api_docs/kbn_core_notifications_browser_internal.mdx +++ b/api_docs/kbn_core_notifications_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser-internal title: "@kbn/core-notifications-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser-internal plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-notifications-browser-internal'] --- import kbnCoreNotificationsBrowserInternalObj from './kbn_core_notifications_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_notifications_browser_mocks.mdx b/api_docs/kbn_core_notifications_browser_mocks.mdx index 8d744247102d..9055549a9a98 100644 --- a/api_docs/kbn_core_notifications_browser_mocks.mdx +++ b/api_docs/kbn_core_notifications_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser-mocks title: "@kbn/core-notifications-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-notifications-browser-mocks'] --- import kbnCoreNotificationsBrowserMocksObj from './kbn_core_notifications_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_overlays_browser.mdx b/api_docs/kbn_core_overlays_browser.mdx index 5fb5df0a165f..bef91754d489 100644 --- a/api_docs/kbn_core_overlays_browser.mdx +++ b/api_docs/kbn_core_overlays_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser title: "@kbn/core-overlays-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-overlays-browser'] --- import kbnCoreOverlaysBrowserObj from './kbn_core_overlays_browser.devdocs.json'; diff --git a/api_docs/kbn_core_overlays_browser_internal.mdx b/api_docs/kbn_core_overlays_browser_internal.mdx index 9d736da13c6a..bb6a05dfae46 100644 --- a/api_docs/kbn_core_overlays_browser_internal.mdx +++ b/api_docs/kbn_core_overlays_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser-internal title: "@kbn/core-overlays-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser-internal plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-overlays-browser-internal'] --- import kbnCoreOverlaysBrowserInternalObj from './kbn_core_overlays_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_overlays_browser_mocks.mdx b/api_docs/kbn_core_overlays_browser_mocks.mdx index 84186f5aa5e8..3f33090639c1 100644 --- a/api_docs/kbn_core_overlays_browser_mocks.mdx +++ b/api_docs/kbn_core_overlays_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser-mocks title: "@kbn/core-overlays-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-overlays-browser-mocks'] --- import kbnCoreOverlaysBrowserMocksObj from './kbn_core_overlays_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_plugins_browser.mdx b/api_docs/kbn_core_plugins_browser.mdx index 09a935a357a9..228c897892a6 100644 --- a/api_docs/kbn_core_plugins_browser.mdx +++ b/api_docs/kbn_core_plugins_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-browser title: "@kbn/core-plugins-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-browser plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-browser'] --- import kbnCorePluginsBrowserObj from './kbn_core_plugins_browser.devdocs.json'; diff --git a/api_docs/kbn_core_plugins_browser_mocks.mdx b/api_docs/kbn_core_plugins_browser_mocks.mdx index 44e109ab96e0..abed367940dd 100644 --- a/api_docs/kbn_core_plugins_browser_mocks.mdx +++ b/api_docs/kbn_core_plugins_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-browser-mocks title: "@kbn/core-plugins-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-browser-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-browser-mocks'] --- import kbnCorePluginsBrowserMocksObj from './kbn_core_plugins_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_plugins_server.mdx b/api_docs/kbn_core_plugins_server.mdx index fe77adc758a7..9e9e808ed978 100644 --- a/api_docs/kbn_core_plugins_server.mdx +++ b/api_docs/kbn_core_plugins_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-server title: "@kbn/core-plugins-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-server plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-server'] --- import kbnCorePluginsServerObj from './kbn_core_plugins_server.devdocs.json'; diff --git a/api_docs/kbn_core_plugins_server_mocks.mdx b/api_docs/kbn_core_plugins_server_mocks.mdx index c64f8ce4218b..4fa5e21be672 100644 --- a/api_docs/kbn_core_plugins_server_mocks.mdx +++ b/api_docs/kbn_core_plugins_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-server-mocks title: "@kbn/core-plugins-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-server-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-server-mocks'] --- import kbnCorePluginsServerMocksObj from './kbn_core_plugins_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_preboot_server.mdx b/api_docs/kbn_core_preboot_server.mdx index a476f68c9a39..6db32880dd1c 100644 --- a/api_docs/kbn_core_preboot_server.mdx +++ b/api_docs/kbn_core_preboot_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-preboot-server title: "@kbn/core-preboot-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-preboot-server plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-preboot-server'] --- import kbnCorePrebootServerObj from './kbn_core_preboot_server.devdocs.json'; diff --git a/api_docs/kbn_core_preboot_server_mocks.mdx b/api_docs/kbn_core_preboot_server_mocks.mdx index 00147b623fbe..fc964a4fb546 100644 --- a/api_docs/kbn_core_preboot_server_mocks.mdx +++ b/api_docs/kbn_core_preboot_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-preboot-server-mocks title: "@kbn/core-preboot-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-preboot-server-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-preboot-server-mocks'] --- import kbnCorePrebootServerMocksObj from './kbn_core_preboot_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_rendering_browser_mocks.mdx b/api_docs/kbn_core_rendering_browser_mocks.mdx index d462be6b5780..9930dae2f0b0 100644 --- a/api_docs/kbn_core_rendering_browser_mocks.mdx +++ b/api_docs/kbn_core_rendering_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-browser-mocks title: "@kbn/core-rendering-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-browser-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-rendering-browser-mocks'] --- import kbnCoreRenderingBrowserMocksObj from './kbn_core_rendering_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_rendering_server_internal.mdx b/api_docs/kbn_core_rendering_server_internal.mdx index a35914791ff7..86134874c46c 100644 --- a/api_docs/kbn_core_rendering_server_internal.mdx +++ b/api_docs/kbn_core_rendering_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-server-internal title: "@kbn/core-rendering-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-server-internal plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-rendering-server-internal'] --- import kbnCoreRenderingServerInternalObj from './kbn_core_rendering_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_rendering_server_mocks.mdx b/api_docs/kbn_core_rendering_server_mocks.mdx index c35af9a1a24f..d5a444f71090 100644 --- a/api_docs/kbn_core_rendering_server_mocks.mdx +++ b/api_docs/kbn_core_rendering_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-server-mocks title: "@kbn/core-rendering-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-server-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-rendering-server-mocks'] --- import kbnCoreRenderingServerMocksObj from './kbn_core_rendering_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_root_server_internal.mdx b/api_docs/kbn_core_root_server_internal.mdx index 9d0e6a16bdac..105aed347dfa 100644 --- a/api_docs/kbn_core_root_server_internal.mdx +++ b/api_docs/kbn_core_root_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-root-server-internal title: "@kbn/core-root-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-root-server-internal plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-root-server-internal'] --- import kbnCoreRootServerInternalObj from './kbn_core_root_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_api_browser.mdx b/api_docs/kbn_core_saved_objects_api_browser.mdx index 0b08cf4d4b8d..5a16d5efe770 100644 --- a/api_docs/kbn_core_saved_objects_api_browser.mdx +++ b/api_docs/kbn_core_saved_objects_api_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-browser title: "@kbn/core-saved-objects-api-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-browser plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-browser'] --- import kbnCoreSavedObjectsApiBrowserObj from './kbn_core_saved_objects_api_browser.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_api_server.mdx b/api_docs/kbn_core_saved_objects_api_server.mdx index a6f7b8a32b30..6641a815ba25 100644 --- a/api_docs/kbn_core_saved_objects_api_server.mdx +++ b/api_docs/kbn_core_saved_objects_api_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server title: "@kbn/core-saved-objects-api-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-server'] --- import kbnCoreSavedObjectsApiServerObj from './kbn_core_saved_objects_api_server.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_api_server_internal.mdx b/api_docs/kbn_core_saved_objects_api_server_internal.mdx index 152bf3a7fcf0..1abd1ea4b0de 100644 --- a/api_docs/kbn_core_saved_objects_api_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_api_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server-internal title: "@kbn/core-saved-objects-api-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server-internal plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-server-internal'] --- import kbnCoreSavedObjectsApiServerInternalObj from './kbn_core_saved_objects_api_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_api_server_mocks.mdx b/api_docs/kbn_core_saved_objects_api_server_mocks.mdx index 5157ab0d0e8a..ad3ee348eb01 100644 --- a/api_docs/kbn_core_saved_objects_api_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_api_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server-mocks title: "@kbn/core-saved-objects-api-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-server-mocks'] --- import kbnCoreSavedObjectsApiServerMocksObj from './kbn_core_saved_objects_api_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_base_server_internal.mdx b/api_docs/kbn_core_saved_objects_base_server_internal.mdx index f2d436180b98..f1926383ca67 100644 --- a/api_docs/kbn_core_saved_objects_base_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_base_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-base-server-internal title: "@kbn/core-saved-objects-base-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-base-server-internal plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-base-server-internal'] --- import kbnCoreSavedObjectsBaseServerInternalObj from './kbn_core_saved_objects_base_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_base_server_mocks.mdx b/api_docs/kbn_core_saved_objects_base_server_mocks.mdx index a21e9f0c82eb..1d1b233d2cee 100644 --- a/api_docs/kbn_core_saved_objects_base_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_base_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-base-server-mocks title: "@kbn/core-saved-objects-base-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-base-server-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-base-server-mocks'] --- import kbnCoreSavedObjectsBaseServerMocksObj from './kbn_core_saved_objects_base_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_browser.mdx b/api_docs/kbn_core_saved_objects_browser.mdx index 8de23a03d05b..b1ec0efe5ab1 100644 --- a/api_docs/kbn_core_saved_objects_browser.mdx +++ b/api_docs/kbn_core_saved_objects_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser title: "@kbn/core-saved-objects-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-browser'] --- import kbnCoreSavedObjectsBrowserObj from './kbn_core_saved_objects_browser.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_browser_internal.mdx b/api_docs/kbn_core_saved_objects_browser_internal.mdx index 93077b2ab4e1..33fbc5f8f82d 100644 --- a/api_docs/kbn_core_saved_objects_browser_internal.mdx +++ b/api_docs/kbn_core_saved_objects_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser-internal title: "@kbn/core-saved-objects-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser-internal plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-browser-internal'] --- import kbnCoreSavedObjectsBrowserInternalObj from './kbn_core_saved_objects_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_browser_mocks.mdx b/api_docs/kbn_core_saved_objects_browser_mocks.mdx index 6802de7eda5c..96619cb4cbaa 100644 --- a/api_docs/kbn_core_saved_objects_browser_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser-mocks title: "@kbn/core-saved-objects-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-browser-mocks'] --- import kbnCoreSavedObjectsBrowserMocksObj from './kbn_core_saved_objects_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_common.devdocs.json b/api_docs/kbn_core_saved_objects_common.devdocs.json index c003cedc52ad..748f954221ef 100644 --- a/api_docs/kbn_core_saved_objects_common.devdocs.json +++ b/api_docs/kbn_core_saved_objects_common.devdocs.json @@ -2276,6 +2276,18 @@ "plugin": "cases", "path": "x-pack/plugins/cases/server/common/types.ts" }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/operations/find.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/operations/find.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/operations/find.ts" + }, { "plugin": "synthetics", "path": "x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_list/api.ts" @@ -2348,6 +2360,50 @@ "plugin": "alerting", "path": "x-pack/plugins/alerting/server/rules_client/tests/bulk_disable.test.ts" }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, { "plugin": "fleet", "path": "x-pack/plugins/fleet/server/services/agents/action.mock.ts" @@ -4229,6 +4285,14 @@ "plugin": "lens", "path": "x-pack/plugins/lens/public/app_plugin/share_action.ts" }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/services/user_actions/test_utils.ts" + }, { "plugin": "@kbn/core-saved-objects-api-server-internal", "path": "packages/core/saved-objects/core-saved-objects-api-server-internal/src/test_helpers/repository.test.common.ts" diff --git a/api_docs/kbn_core_saved_objects_common.mdx b/api_docs/kbn_core_saved_objects_common.mdx index ffccec3a507d..768ef4d59b25 100644 --- a/api_docs/kbn_core_saved_objects_common.mdx +++ b/api_docs/kbn_core_saved_objects_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-common title: "@kbn/core-saved-objects-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-common plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-common'] --- import kbnCoreSavedObjectsCommonObj from './kbn_core_saved_objects_common.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx b/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx index cc62d033aa6e..c1ca4b00a400 100644 --- a/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-import-export-server-internal title: "@kbn/core-saved-objects-import-export-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-import-export-server-internal plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-import-export-server-internal'] --- import kbnCoreSavedObjectsImportExportServerInternalObj from './kbn_core_saved_objects_import_export_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx b/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx index 5cab7b35648b..9f2862d610d8 100644 --- a/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-import-export-server-mocks title: "@kbn/core-saved-objects-import-export-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-import-export-server-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-import-export-server-mocks'] --- import kbnCoreSavedObjectsImportExportServerMocksObj from './kbn_core_saved_objects_import_export_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_migration_server_internal.mdx b/api_docs/kbn_core_saved_objects_migration_server_internal.mdx index b1821791a0b2..c54bcdb0fda6 100644 --- a/api_docs/kbn_core_saved_objects_migration_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_migration_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-migration-server-internal title: "@kbn/core-saved-objects-migration-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-migration-server-internal plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-migration-server-internal'] --- import kbnCoreSavedObjectsMigrationServerInternalObj from './kbn_core_saved_objects_migration_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx b/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx index f5272120b547..a7f195711ddf 100644 --- a/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-migration-server-mocks title: "@kbn/core-saved-objects-migration-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-migration-server-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-migration-server-mocks'] --- import kbnCoreSavedObjectsMigrationServerMocksObj from './kbn_core_saved_objects_migration_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_server.devdocs.json b/api_docs/kbn_core_saved_objects_server.devdocs.json index bda94ef25320..b4dac3d8ec4e 100644 --- a/api_docs/kbn_core_saved_objects_server.devdocs.json +++ b/api_docs/kbn_core_saved_objects_server.devdocs.json @@ -1751,6 +1751,32 @@ "children": [], "returnComment": [] }, + { + "parentPluginId": "@kbn/core-saved-objects-server", + "id": "def-common.ISavedObjectTypeRegistry.getVisibleToHttpApisTypes", + "type": "Function", + "tags": [], + "label": "getVisibleToHttpApisTypes", + "description": [ + "\nReturns all visible {@link SavedObjectsType | types} exposed to the global SO HTTP APIs\n\nA visibleToHttpApis type is a type that doesn't explicitly define `hidden=true` nor `hiddenFromHttpApis=true` during registration." + ], + "signature": [ + "() => ", + { + "pluginId": "@kbn/core-saved-objects-server", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsServerPluginApi", + "section": "def-common.SavedObjectsType", + "text": "SavedObjectsType" + }, + "[]" + ], + "path": "packages/core/saved-objects/core-saved-objects-server/src/type_registry.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, { "parentPluginId": "@kbn/core-saved-objects-server", "id": "def-common.ISavedObjectTypeRegistry.getAllTypes", @@ -1973,6 +1999,40 @@ ], "returnComment": [] }, + { + "parentPluginId": "@kbn/core-saved-objects-server", + "id": "def-common.ISavedObjectTypeRegistry.isHiddenFromHttpApis", + "type": "Function", + "tags": [], + "label": "isHiddenFromHttpApis", + "description": [ + "\nReturns the `hiddenFromHttpApis` property for a given type, or `false` if\nthe type is not registered" + ], + "signature": [ + "(type: string) => boolean" + ], + "path": "packages/core/saved-objects/core-saved-objects-server/src/type_registry.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-saved-objects-server", + "id": "def-common.ISavedObjectTypeRegistry.isHiddenFromHttpApis.$1", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + "string" + ], + "path": "packages/core/saved-objects/core-saved-objects-server/src/type_registry.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, { "parentPluginId": "@kbn/core-saved-objects-server", "id": "def-common.ISavedObjectTypeRegistry.getIndex", @@ -5427,6 +5487,22 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "@kbn/core-saved-objects-server", + "id": "def-common.SavedObjectsType.hiddenFromHttpApis", + "type": "CompoundType", + "tags": [], + "label": "hiddenFromHttpApis", + "description": [ + "\nIs the type hidden from the http APIs. If `hiddenFromHttpApis:true`, repositories will have access to the type but the type is not exposed via the HTTP APIs.\nIt is recommended to hide types registered with 'hidden=false' from the httpApis for backward compatibility in the HTTP layer.\n" + ], + "signature": [ + "boolean | undefined" + ], + "path": "packages/core/saved-objects/core-saved-objects-server/src/saved_objects_type.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "@kbn/core-saved-objects-server", "id": "def-common.SavedObjectsType.namespaceType", diff --git a/api_docs/kbn_core_saved_objects_server.mdx b/api_docs/kbn_core_saved_objects_server.mdx index 498d44f20b7b..53b2d7dcc691 100644 --- a/api_docs/kbn_core_saved_objects_server.mdx +++ b/api_docs/kbn_core_saved_objects_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server title: "@kbn/core-saved-objects-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-server'] --- import kbnCoreSavedObjectsServerObj from './kbn_core_saved_objects_server.devdocs.json'; @@ -21,7 +21,7 @@ Contact Kibana Core for questions regarding this plugin. | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 325 | 0 | 95 | 1 | +| 329 | 0 | 96 | 1 | ## Common diff --git a/api_docs/kbn_core_saved_objects_server_internal.mdx b/api_docs/kbn_core_saved_objects_server_internal.mdx index 65f6a11727c7..e97e6cd8cd6c 100644 --- a/api_docs/kbn_core_saved_objects_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server-internal title: "@kbn/core-saved-objects-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server-internal plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-server-internal'] --- import kbnCoreSavedObjectsServerInternalObj from './kbn_core_saved_objects_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_server_mocks.mdx b/api_docs/kbn_core_saved_objects_server_mocks.mdx index 443f548de486..1657ac443b71 100644 --- a/api_docs/kbn_core_saved_objects_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server-mocks title: "@kbn/core-saved-objects-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-server-mocks'] --- import kbnCoreSavedObjectsServerMocksObj from './kbn_core_saved_objects_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_utils_server.mdx b/api_docs/kbn_core_saved_objects_utils_server.mdx index e08eda23d4c2..063d8c1cecbd 100644 --- a/api_docs/kbn_core_saved_objects_utils_server.mdx +++ b/api_docs/kbn_core_saved_objects_utils_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-utils-server title: "@kbn/core-saved-objects-utils-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-utils-server plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-utils-server'] --- import kbnCoreSavedObjectsUtilsServerObj from './kbn_core_saved_objects_utils_server.devdocs.json'; diff --git a/api_docs/kbn_core_status_common.mdx b/api_docs/kbn_core_status_common.mdx index e5652924ff4d..1fc00a209891 100644 --- a/api_docs/kbn_core_status_common.mdx +++ b/api_docs/kbn_core_status_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-common title: "@kbn/core-status-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-common plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-common'] --- import kbnCoreStatusCommonObj from './kbn_core_status_common.devdocs.json'; diff --git a/api_docs/kbn_core_status_common_internal.mdx b/api_docs/kbn_core_status_common_internal.mdx index b6e53b6f864f..c7f2f42f724e 100644 --- a/api_docs/kbn_core_status_common_internal.mdx +++ b/api_docs/kbn_core_status_common_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-common-internal title: "@kbn/core-status-common-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-common-internal plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-common-internal'] --- import kbnCoreStatusCommonInternalObj from './kbn_core_status_common_internal.devdocs.json'; diff --git a/api_docs/kbn_core_status_server.mdx b/api_docs/kbn_core_status_server.mdx index 3ffd9064a22d..aa8ff77011a2 100644 --- a/api_docs/kbn_core_status_server.mdx +++ b/api_docs/kbn_core_status_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server title: "@kbn/core-status-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-server'] --- import kbnCoreStatusServerObj from './kbn_core_status_server.devdocs.json'; diff --git a/api_docs/kbn_core_status_server_internal.mdx b/api_docs/kbn_core_status_server_internal.mdx index 2987aadb73ff..6d8279fdebe4 100644 --- a/api_docs/kbn_core_status_server_internal.mdx +++ b/api_docs/kbn_core_status_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server-internal title: "@kbn/core-status-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server-internal plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-server-internal'] --- import kbnCoreStatusServerInternalObj from './kbn_core_status_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_status_server_mocks.mdx b/api_docs/kbn_core_status_server_mocks.mdx index 376a85065714..2f2c50e13ce6 100644 --- a/api_docs/kbn_core_status_server_mocks.mdx +++ b/api_docs/kbn_core_status_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server-mocks title: "@kbn/core-status-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-server-mocks'] --- import kbnCoreStatusServerMocksObj from './kbn_core_status_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_deprecations_getters.mdx b/api_docs/kbn_core_test_helpers_deprecations_getters.mdx index 4796e7fc7169..afea67842ab8 100644 --- a/api_docs/kbn_core_test_helpers_deprecations_getters.mdx +++ b/api_docs/kbn_core_test_helpers_deprecations_getters.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-deprecations-getters title: "@kbn/core-test-helpers-deprecations-getters" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-deprecations-getters plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-deprecations-getters'] --- import kbnCoreTestHelpersDeprecationsGettersObj from './kbn_core_test_helpers_deprecations_getters.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_http_setup_browser.mdx b/api_docs/kbn_core_test_helpers_http_setup_browser.mdx index 8d108bf8ebea..c728a8ce7fea 100644 --- a/api_docs/kbn_core_test_helpers_http_setup_browser.mdx +++ b/api_docs/kbn_core_test_helpers_http_setup_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-http-setup-browser title: "@kbn/core-test-helpers-http-setup-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-http-setup-browser plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-http-setup-browser'] --- import kbnCoreTestHelpersHttpSetupBrowserObj from './kbn_core_test_helpers_http_setup_browser.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_kbn_server.mdx b/api_docs/kbn_core_test_helpers_kbn_server.mdx index 9d1522dc7f37..f4cf62e8bf3d 100644 --- a/api_docs/kbn_core_test_helpers_kbn_server.mdx +++ b/api_docs/kbn_core_test_helpers_kbn_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-kbn-server title: "@kbn/core-test-helpers-kbn-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-kbn-server plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-kbn-server'] --- import kbnCoreTestHelpersKbnServerObj from './kbn_core_test_helpers_kbn_server.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_so_type_serializer.mdx b/api_docs/kbn_core_test_helpers_so_type_serializer.mdx index 4b677a212118..4d858126647f 100644 --- a/api_docs/kbn_core_test_helpers_so_type_serializer.mdx +++ b/api_docs/kbn_core_test_helpers_so_type_serializer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-so-type-serializer title: "@kbn/core-test-helpers-so-type-serializer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-so-type-serializer plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-so-type-serializer'] --- import kbnCoreTestHelpersSoTypeSerializerObj from './kbn_core_test_helpers_so_type_serializer.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_test_utils.devdocs.json b/api_docs/kbn_core_test_helpers_test_utils.devdocs.json index 19a3e987a1c0..062b442c0c8d 100644 --- a/api_docs/kbn_core_test_helpers_test_utils.devdocs.json +++ b/api_docs/kbn_core_test_helpers_test_utils.devdocs.json @@ -60,6 +60,84 @@ "returnComment": [], "initialIsOpen": false }, + { + "parentPluginId": "@kbn/core-test-helpers-test-utils", + "id": "def-common.createHiddenTypeVariants", + "type": "Function", + "tags": [], + "label": "createHiddenTypeVariants", + "description": [], + "signature": [ + "(createOptions: { name: string; hide?: boolean | undefined; hideFromHttpApis?: boolean | undefined; }) => ", + { + "pluginId": "@kbn/core-saved-objects-server", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsServerPluginApi", + "section": "def-common.SavedObjectsType", + "text": "SavedObjectsType" + }, + "" + ], + "path": "packages/core/test-helpers/core-test-helpers-test-utils/src/create_hidden_type_variants.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-test-helpers-test-utils", + "id": "def-common.createHiddenTypeVariants.$1", + "type": "Object", + "tags": [], + "label": "createOptions", + "description": [], + "path": "packages/core/test-helpers/core-test-helpers-test-utils/src/create_hidden_type_variants.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-test-helpers-test-utils", + "id": "def-common.createHiddenTypeVariants.$1.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "packages/core/test-helpers/core-test-helpers-test-utils/src/create_hidden_type_variants.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-test-helpers-test-utils", + "id": "def-common.createHiddenTypeVariants.$1.hide", + "type": "CompoundType", + "tags": [], + "label": "hide", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "packages/core/test-helpers/core-test-helpers-test-utils/src/create_hidden_type_variants.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-test-helpers-test-utils", + "id": "def-common.createHiddenTypeVariants.$1.hideFromHttpApis", + "type": "CompoundType", + "tags": [], + "label": "hideFromHttpApis", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "packages/core/test-helpers/core-test-helpers-test-utils/src/create_hidden_type_variants.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ], + "returnComment": [], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/core-test-helpers-test-utils", "id": "def-common.setupServer", diff --git a/api_docs/kbn_core_test_helpers_test_utils.mdx b/api_docs/kbn_core_test_helpers_test_utils.mdx index 984f1a813ecf..65fa5075b909 100644 --- a/api_docs/kbn_core_test_helpers_test_utils.mdx +++ b/api_docs/kbn_core_test_helpers_test_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-test-utils title: "@kbn/core-test-helpers-test-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-test-utils plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-test-utils'] --- import kbnCoreTestHelpersTestUtilsObj from './kbn_core_test_helpers_test_utils.devdocs.json'; @@ -21,7 +21,7 @@ Contact [Owner missing] for questions regarding this plugin. | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 4 | 0 | 4 | 0 | +| 9 | 0 | 9 | 0 | ## Common diff --git a/api_docs/kbn_core_theme_browser.mdx b/api_docs/kbn_core_theme_browser.mdx index 5fde0f497a4f..fd90e7d6443a 100644 --- a/api_docs/kbn_core_theme_browser.mdx +++ b/api_docs/kbn_core_theme_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser title: "@kbn/core-theme-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-theme-browser'] --- import kbnCoreThemeBrowserObj from './kbn_core_theme_browser.devdocs.json'; diff --git a/api_docs/kbn_core_theme_browser_internal.mdx b/api_docs/kbn_core_theme_browser_internal.mdx index 2917abdc32db..d97e70cd225d 100644 --- a/api_docs/kbn_core_theme_browser_internal.mdx +++ b/api_docs/kbn_core_theme_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser-internal title: "@kbn/core-theme-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser-internal plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-theme-browser-internal'] --- import kbnCoreThemeBrowserInternalObj from './kbn_core_theme_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_theme_browser_mocks.mdx b/api_docs/kbn_core_theme_browser_mocks.mdx index a117efe0aa9a..dd5793ef7c4a 100644 --- a/api_docs/kbn_core_theme_browser_mocks.mdx +++ b/api_docs/kbn_core_theme_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser-mocks title: "@kbn/core-theme-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-theme-browser-mocks'] --- import kbnCoreThemeBrowserMocksObj from './kbn_core_theme_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_browser.mdx b/api_docs/kbn_core_ui_settings_browser.mdx index 7a064c001fdd..93d4939ec91f 100644 --- a/api_docs/kbn_core_ui_settings_browser.mdx +++ b/api_docs/kbn_core_ui_settings_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser title: "@kbn/core-ui-settings-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-browser'] --- import kbnCoreUiSettingsBrowserObj from './kbn_core_ui_settings_browser.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_browser_internal.mdx b/api_docs/kbn_core_ui_settings_browser_internal.mdx index 9f60fb3ca565..2e858c6a0873 100644 --- a/api_docs/kbn_core_ui_settings_browser_internal.mdx +++ b/api_docs/kbn_core_ui_settings_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser-internal title: "@kbn/core-ui-settings-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser-internal plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-browser-internal'] --- import kbnCoreUiSettingsBrowserInternalObj from './kbn_core_ui_settings_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_browser_mocks.mdx b/api_docs/kbn_core_ui_settings_browser_mocks.mdx index 025fe2b2ccd8..842158f180cc 100644 --- a/api_docs/kbn_core_ui_settings_browser_mocks.mdx +++ b/api_docs/kbn_core_ui_settings_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser-mocks title: "@kbn/core-ui-settings-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-browser-mocks'] --- import kbnCoreUiSettingsBrowserMocksObj from './kbn_core_ui_settings_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_common.mdx b/api_docs/kbn_core_ui_settings_common.mdx index 12f827a8d3e2..e5b20fe13d50 100644 --- a/api_docs/kbn_core_ui_settings_common.mdx +++ b/api_docs/kbn_core_ui_settings_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-common title: "@kbn/core-ui-settings-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-common plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-common'] --- import kbnCoreUiSettingsCommonObj from './kbn_core_ui_settings_common.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_server.mdx b/api_docs/kbn_core_ui_settings_server.mdx index 6ac60a431b02..05ac4447ffd3 100644 --- a/api_docs/kbn_core_ui_settings_server.mdx +++ b/api_docs/kbn_core_ui_settings_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server title: "@kbn/core-ui-settings-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-server'] --- import kbnCoreUiSettingsServerObj from './kbn_core_ui_settings_server.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_server_internal.mdx b/api_docs/kbn_core_ui_settings_server_internal.mdx index db6593bca566..bab23e0a2500 100644 --- a/api_docs/kbn_core_ui_settings_server_internal.mdx +++ b/api_docs/kbn_core_ui_settings_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server-internal title: "@kbn/core-ui-settings-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server-internal plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-server-internal'] --- import kbnCoreUiSettingsServerInternalObj from './kbn_core_ui_settings_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_server_mocks.mdx b/api_docs/kbn_core_ui_settings_server_mocks.mdx index 9af9f2624fdd..7e26b8099776 100644 --- a/api_docs/kbn_core_ui_settings_server_mocks.mdx +++ b/api_docs/kbn_core_ui_settings_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server-mocks title: "@kbn/core-ui-settings-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-server-mocks'] --- import kbnCoreUiSettingsServerMocksObj from './kbn_core_ui_settings_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_usage_data_server.mdx b/api_docs/kbn_core_usage_data_server.mdx index 76075508b2a4..69cbad0a2203 100644 --- a/api_docs/kbn_core_usage_data_server.mdx +++ b/api_docs/kbn_core_usage_data_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server title: "@kbn/core-usage-data-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-usage-data-server'] --- import kbnCoreUsageDataServerObj from './kbn_core_usage_data_server.devdocs.json'; diff --git a/api_docs/kbn_core_usage_data_server_internal.mdx b/api_docs/kbn_core_usage_data_server_internal.mdx index 9f06f3559ee2..8738ce3716ab 100644 --- a/api_docs/kbn_core_usage_data_server_internal.mdx +++ b/api_docs/kbn_core_usage_data_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server-internal title: "@kbn/core-usage-data-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server-internal plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-usage-data-server-internal'] --- import kbnCoreUsageDataServerInternalObj from './kbn_core_usage_data_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_usage_data_server_mocks.mdx b/api_docs/kbn_core_usage_data_server_mocks.mdx index 54536fb0a1d4..fb415f6540e2 100644 --- a/api_docs/kbn_core_usage_data_server_mocks.mdx +++ b/api_docs/kbn_core_usage_data_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server-mocks title: "@kbn/core-usage-data-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-usage-data-server-mocks'] --- import kbnCoreUsageDataServerMocksObj from './kbn_core_usage_data_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_crypto.mdx b/api_docs/kbn_crypto.mdx index 496c0c4f87d8..ca954ce0af38 100644 --- a/api_docs/kbn_crypto.mdx +++ b/api_docs/kbn_crypto.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-crypto title: "@kbn/crypto" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/crypto plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/crypto'] --- import kbnCryptoObj from './kbn_crypto.devdocs.json'; diff --git a/api_docs/kbn_crypto_browser.mdx b/api_docs/kbn_crypto_browser.mdx index d107ebc63b5f..a88fe8da6ab9 100644 --- a/api_docs/kbn_crypto_browser.mdx +++ b/api_docs/kbn_crypto_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-crypto-browser title: "@kbn/crypto-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/crypto-browser plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/crypto-browser'] --- import kbnCryptoBrowserObj from './kbn_crypto_browser.devdocs.json'; diff --git a/api_docs/kbn_cypress_config.mdx b/api_docs/kbn_cypress_config.mdx index 9ef92d10cc3e..92b77f212f1f 100644 --- a/api_docs/kbn_cypress_config.mdx +++ b/api_docs/kbn_cypress_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cypress-config title: "@kbn/cypress-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cypress-config plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cypress-config'] --- import kbnCypressConfigObj from './kbn_cypress_config.devdocs.json'; diff --git a/api_docs/kbn_datemath.mdx b/api_docs/kbn_datemath.mdx index 39e105ac7457..0a775810aa37 100644 --- a/api_docs/kbn_datemath.mdx +++ b/api_docs/kbn_datemath.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-datemath title: "@kbn/datemath" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/datemath plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/datemath'] --- import kbnDatemathObj from './kbn_datemath.devdocs.json'; diff --git a/api_docs/kbn_dev_cli_errors.mdx b/api_docs/kbn_dev_cli_errors.mdx index b4d658801f86..03346fd31c1f 100644 --- a/api_docs/kbn_dev_cli_errors.mdx +++ b/api_docs/kbn_dev_cli_errors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-cli-errors title: "@kbn/dev-cli-errors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-cli-errors plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-cli-errors'] --- import kbnDevCliErrorsObj from './kbn_dev_cli_errors.devdocs.json'; diff --git a/api_docs/kbn_dev_cli_runner.mdx b/api_docs/kbn_dev_cli_runner.mdx index 9a20fc6293d5..9b8b589af34d 100644 --- a/api_docs/kbn_dev_cli_runner.mdx +++ b/api_docs/kbn_dev_cli_runner.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-cli-runner title: "@kbn/dev-cli-runner" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-cli-runner plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-cli-runner'] --- import kbnDevCliRunnerObj from './kbn_dev_cli_runner.devdocs.json'; diff --git a/api_docs/kbn_dev_proc_runner.mdx b/api_docs/kbn_dev_proc_runner.mdx index 36b94669e7b4..b1d312a5768a 100644 --- a/api_docs/kbn_dev_proc_runner.mdx +++ b/api_docs/kbn_dev_proc_runner.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-proc-runner title: "@kbn/dev-proc-runner" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-proc-runner plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-proc-runner'] --- import kbnDevProcRunnerObj from './kbn_dev_proc_runner.devdocs.json'; diff --git a/api_docs/kbn_dev_utils.mdx b/api_docs/kbn_dev_utils.mdx index 1701745ef59c..22ad4c8e3b36 100644 --- a/api_docs/kbn_dev_utils.mdx +++ b/api_docs/kbn_dev_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-utils title: "@kbn/dev-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-utils plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-utils'] --- import kbnDevUtilsObj from './kbn_dev_utils.devdocs.json'; diff --git a/api_docs/kbn_doc_links.mdx b/api_docs/kbn_doc_links.mdx index e842cad2f799..80fb1ae2f83b 100644 --- a/api_docs/kbn_doc_links.mdx +++ b/api_docs/kbn_doc_links.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-doc-links title: "@kbn/doc-links" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/doc-links plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/doc-links'] --- import kbnDocLinksObj from './kbn_doc_links.devdocs.json'; diff --git a/api_docs/kbn_docs_utils.mdx b/api_docs/kbn_docs_utils.mdx index 10110ac3f8ca..58c7a91d1e43 100644 --- a/api_docs/kbn_docs_utils.mdx +++ b/api_docs/kbn_docs_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-docs-utils title: "@kbn/docs-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/docs-utils plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/docs-utils'] --- import kbnDocsUtilsObj from './kbn_docs_utils.devdocs.json'; diff --git a/api_docs/kbn_ebt_tools.mdx b/api_docs/kbn_ebt_tools.mdx index 31c1ab1c0d5d..a165433669f8 100644 --- a/api_docs/kbn_ebt_tools.mdx +++ b/api_docs/kbn_ebt_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ebt-tools title: "@kbn/ebt-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ebt-tools plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ebt-tools'] --- import kbnEbtToolsObj from './kbn_ebt_tools.devdocs.json'; diff --git a/api_docs/kbn_ecs.mdx b/api_docs/kbn_ecs.mdx index 124c46468f7e..08bc67936497 100644 --- a/api_docs/kbn_ecs.mdx +++ b/api_docs/kbn_ecs.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ecs title: "@kbn/ecs" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ecs plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ecs'] --- import kbnEcsObj from './kbn_ecs.devdocs.json'; diff --git a/api_docs/kbn_es.mdx b/api_docs/kbn_es.mdx index d641daaad2c7..715bfaf2a8d8 100644 --- a/api_docs/kbn_es.mdx +++ b/api_docs/kbn_es.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es title: "@kbn/es" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es'] --- import kbnEsObj from './kbn_es.devdocs.json'; diff --git a/api_docs/kbn_es_archiver.mdx b/api_docs/kbn_es_archiver.mdx index 23d0777f86cf..77840497e205 100644 --- a/api_docs/kbn_es_archiver.mdx +++ b/api_docs/kbn_es_archiver.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-archiver title: "@kbn/es-archiver" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-archiver plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-archiver'] --- import kbnEsArchiverObj from './kbn_es_archiver.devdocs.json'; diff --git a/api_docs/kbn_es_errors.mdx b/api_docs/kbn_es_errors.mdx index c6fd6f8989ba..5e8e2ff6f15d 100644 --- a/api_docs/kbn_es_errors.mdx +++ b/api_docs/kbn_es_errors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-errors title: "@kbn/es-errors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-errors plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-errors'] --- import kbnEsErrorsObj from './kbn_es_errors.devdocs.json'; diff --git a/api_docs/kbn_es_query.mdx b/api_docs/kbn_es_query.mdx index fd96d569985e..9d9f179978bc 100644 --- a/api_docs/kbn_es_query.mdx +++ b/api_docs/kbn_es_query.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-query title: "@kbn/es-query" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-query plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-query'] --- import kbnEsQueryObj from './kbn_es_query.devdocs.json'; diff --git a/api_docs/kbn_es_types.mdx b/api_docs/kbn_es_types.mdx index 7927337a9317..ec25924354dd 100644 --- a/api_docs/kbn_es_types.mdx +++ b/api_docs/kbn_es_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-types title: "@kbn/es-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-types plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-types'] --- import kbnEsTypesObj from './kbn_es_types.devdocs.json'; diff --git a/api_docs/kbn_eslint_plugin_imports.mdx b/api_docs/kbn_eslint_plugin_imports.mdx index 1deab7ed261f..4b1d7030c1d7 100644 --- a/api_docs/kbn_eslint_plugin_imports.mdx +++ b/api_docs/kbn_eslint_plugin_imports.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-eslint-plugin-imports title: "@kbn/eslint-plugin-imports" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/eslint-plugin-imports plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/eslint-plugin-imports'] --- import kbnEslintPluginImportsObj from './kbn_eslint_plugin_imports.devdocs.json'; diff --git a/api_docs/kbn_field_types.mdx b/api_docs/kbn_field_types.mdx index 7b31fab5cdbb..a9e8aa9f8ca4 100644 --- a/api_docs/kbn_field_types.mdx +++ b/api_docs/kbn_field_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-field-types title: "@kbn/field-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/field-types plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/field-types'] --- import kbnFieldTypesObj from './kbn_field_types.devdocs.json'; diff --git a/api_docs/kbn_find_used_node_modules.mdx b/api_docs/kbn_find_used_node_modules.mdx index 51be1282f94a..a4845ffedca9 100644 --- a/api_docs/kbn_find_used_node_modules.mdx +++ b/api_docs/kbn_find_used_node_modules.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-find-used-node-modules title: "@kbn/find-used-node-modules" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/find-used-node-modules plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/find-used-node-modules'] --- import kbnFindUsedNodeModulesObj from './kbn_find_used_node_modules.devdocs.json'; diff --git a/api_docs/kbn_ftr_common_functional_services.mdx b/api_docs/kbn_ftr_common_functional_services.mdx index 7254847469ee..b77c117435bc 100644 --- a/api_docs/kbn_ftr_common_functional_services.mdx +++ b/api_docs/kbn_ftr_common_functional_services.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ftr-common-functional-services title: "@kbn/ftr-common-functional-services" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ftr-common-functional-services plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ftr-common-functional-services'] --- import kbnFtrCommonFunctionalServicesObj from './kbn_ftr_common_functional_services.devdocs.json'; diff --git a/api_docs/kbn_generate.mdx b/api_docs/kbn_generate.mdx index db0c85be22a9..ea21d29eb454 100644 --- a/api_docs/kbn_generate.mdx +++ b/api_docs/kbn_generate.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate title: "@kbn/generate" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/generate plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate'] --- import kbnGenerateObj from './kbn_generate.devdocs.json'; diff --git a/api_docs/kbn_get_repo_files.mdx b/api_docs/kbn_get_repo_files.mdx index 571a2b46d426..991d96a252e8 100644 --- a/api_docs/kbn_get_repo_files.mdx +++ b/api_docs/kbn_get_repo_files.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-get-repo-files title: "@kbn/get-repo-files" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/get-repo-files plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/get-repo-files'] --- import kbnGetRepoFilesObj from './kbn_get_repo_files.devdocs.json'; diff --git a/api_docs/kbn_guided_onboarding.mdx b/api_docs/kbn_guided_onboarding.mdx index 38490c1d489f..fda449bd2b77 100644 --- a/api_docs/kbn_guided_onboarding.mdx +++ b/api_docs/kbn_guided_onboarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-guided-onboarding title: "@kbn/guided-onboarding" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/guided-onboarding plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/guided-onboarding'] --- import kbnGuidedOnboardingObj from './kbn_guided_onboarding.devdocs.json'; diff --git a/api_docs/kbn_handlebars.mdx b/api_docs/kbn_handlebars.mdx index a05df194e13d..90bd183da873 100644 --- a/api_docs/kbn_handlebars.mdx +++ b/api_docs/kbn_handlebars.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-handlebars title: "@kbn/handlebars" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/handlebars plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/handlebars'] --- import kbnHandlebarsObj from './kbn_handlebars.devdocs.json'; diff --git a/api_docs/kbn_hapi_mocks.mdx b/api_docs/kbn_hapi_mocks.mdx index a8c67ce4dea2..05f826ccec91 100644 --- a/api_docs/kbn_hapi_mocks.mdx +++ b/api_docs/kbn_hapi_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-hapi-mocks title: "@kbn/hapi-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/hapi-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/hapi-mocks'] --- import kbnHapiMocksObj from './kbn_hapi_mocks.devdocs.json'; diff --git a/api_docs/kbn_health_gateway_server.mdx b/api_docs/kbn_health_gateway_server.mdx index 0c9e6106d5c2..6fbc6cd54119 100644 --- a/api_docs/kbn_health_gateway_server.mdx +++ b/api_docs/kbn_health_gateway_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-health-gateway-server title: "@kbn/health-gateway-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/health-gateway-server plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/health-gateway-server'] --- import kbnHealthGatewayServerObj from './kbn_health_gateway_server.devdocs.json'; diff --git a/api_docs/kbn_home_sample_data_card.mdx b/api_docs/kbn_home_sample_data_card.mdx index 3d0ce27a1863..6e00d68e0ae2 100644 --- a/api_docs/kbn_home_sample_data_card.mdx +++ b/api_docs/kbn_home_sample_data_card.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-home-sample-data-card title: "@kbn/home-sample-data-card" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/home-sample-data-card plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/home-sample-data-card'] --- import kbnHomeSampleDataCardObj from './kbn_home_sample_data_card.devdocs.json'; diff --git a/api_docs/kbn_home_sample_data_tab.mdx b/api_docs/kbn_home_sample_data_tab.mdx index f0589392ae3e..0b39341ced45 100644 --- a/api_docs/kbn_home_sample_data_tab.mdx +++ b/api_docs/kbn_home_sample_data_tab.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-home-sample-data-tab title: "@kbn/home-sample-data-tab" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/home-sample-data-tab plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/home-sample-data-tab'] --- import kbnHomeSampleDataTabObj from './kbn_home_sample_data_tab.devdocs.json'; diff --git a/api_docs/kbn_i18n.mdx b/api_docs/kbn_i18n.mdx index 1a62fe290d58..24ed79105479 100644 --- a/api_docs/kbn_i18n.mdx +++ b/api_docs/kbn_i18n.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-i18n title: "@kbn/i18n" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/i18n plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/i18n'] --- import kbnI18nObj from './kbn_i18n.devdocs.json'; diff --git a/api_docs/kbn_i18n_react.mdx b/api_docs/kbn_i18n_react.mdx index 7c60554aaa4c..d2f66504a3c9 100644 --- a/api_docs/kbn_i18n_react.mdx +++ b/api_docs/kbn_i18n_react.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-i18n-react title: "@kbn/i18n-react" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/i18n-react plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/i18n-react'] --- import kbnI18nReactObj from './kbn_i18n_react.devdocs.json'; diff --git a/api_docs/kbn_import_resolver.mdx b/api_docs/kbn_import_resolver.mdx index 1ec60d6cf613..e02fa3bc6764 100644 --- a/api_docs/kbn_import_resolver.mdx +++ b/api_docs/kbn_import_resolver.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-import-resolver title: "@kbn/import-resolver" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/import-resolver plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/import-resolver'] --- import kbnImportResolverObj from './kbn_import_resolver.devdocs.json'; diff --git a/api_docs/kbn_interpreter.mdx b/api_docs/kbn_interpreter.mdx index b1ce63fe6e33..4d77a5e34696 100644 --- a/api_docs/kbn_interpreter.mdx +++ b/api_docs/kbn_interpreter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-interpreter title: "@kbn/interpreter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/interpreter plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/interpreter'] --- import kbnInterpreterObj from './kbn_interpreter.devdocs.json'; diff --git a/api_docs/kbn_io_ts_utils.mdx b/api_docs/kbn_io_ts_utils.mdx index 92d85b85d6c5..992ba877b798 100644 --- a/api_docs/kbn_io_ts_utils.mdx +++ b/api_docs/kbn_io_ts_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-io-ts-utils title: "@kbn/io-ts-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/io-ts-utils plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/io-ts-utils'] --- import kbnIoTsUtilsObj from './kbn_io_ts_utils.devdocs.json'; diff --git a/api_docs/kbn_jest_serializers.mdx b/api_docs/kbn_jest_serializers.mdx index cf02593010ff..0ee55ace691d 100644 --- a/api_docs/kbn_jest_serializers.mdx +++ b/api_docs/kbn_jest_serializers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-jest-serializers title: "@kbn/jest-serializers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/jest-serializers plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/jest-serializers'] --- import kbnJestSerializersObj from './kbn_jest_serializers.devdocs.json'; diff --git a/api_docs/kbn_journeys.mdx b/api_docs/kbn_journeys.mdx index 6e75fe6e2719..943925cee2d6 100644 --- a/api_docs/kbn_journeys.mdx +++ b/api_docs/kbn_journeys.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-journeys title: "@kbn/journeys" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/journeys plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/journeys'] --- import kbnJourneysObj from './kbn_journeys.devdocs.json'; diff --git a/api_docs/kbn_json_ast.mdx b/api_docs/kbn_json_ast.mdx index cd8e2019d316..57a83483c206 100644 --- a/api_docs/kbn_json_ast.mdx +++ b/api_docs/kbn_json_ast.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-json-ast title: "@kbn/json-ast" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/json-ast plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/json-ast'] --- import kbnJsonAstObj from './kbn_json_ast.devdocs.json'; diff --git a/api_docs/kbn_kibana_manifest_schema.mdx b/api_docs/kbn_kibana_manifest_schema.mdx index 0e9c0ceeacf0..9107a16c20ab 100644 --- a/api_docs/kbn_kibana_manifest_schema.mdx +++ b/api_docs/kbn_kibana_manifest_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-kibana-manifest-schema title: "@kbn/kibana-manifest-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/kibana-manifest-schema plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/kibana-manifest-schema'] --- import kbnKibanaManifestSchemaObj from './kbn_kibana_manifest_schema.devdocs.json'; diff --git a/api_docs/kbn_language_documentation_popover.mdx b/api_docs/kbn_language_documentation_popover.mdx index 3a07b50a034d..719c40e99f35 100644 --- a/api_docs/kbn_language_documentation_popover.mdx +++ b/api_docs/kbn_language_documentation_popover.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-language-documentation-popover title: "@kbn/language-documentation-popover" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/language-documentation-popover plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/language-documentation-popover'] --- import kbnLanguageDocumentationPopoverObj from './kbn_language_documentation_popover.devdocs.json'; diff --git a/api_docs/kbn_logging.mdx b/api_docs/kbn_logging.mdx index 979b3532a0cb..3a562a3d16c9 100644 --- a/api_docs/kbn_logging.mdx +++ b/api_docs/kbn_logging.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-logging title: "@kbn/logging" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/logging plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/logging'] --- import kbnLoggingObj from './kbn_logging.devdocs.json'; diff --git a/api_docs/kbn_logging_mocks.mdx b/api_docs/kbn_logging_mocks.mdx index 79f513ec72e9..297920b1f118 100644 --- a/api_docs/kbn_logging_mocks.mdx +++ b/api_docs/kbn_logging_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-logging-mocks title: "@kbn/logging-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/logging-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/logging-mocks'] --- import kbnLoggingMocksObj from './kbn_logging_mocks.devdocs.json'; diff --git a/api_docs/kbn_managed_vscode_config.mdx b/api_docs/kbn_managed_vscode_config.mdx index 5f33dafa8258..f7d88e64a127 100644 --- a/api_docs/kbn_managed_vscode_config.mdx +++ b/api_docs/kbn_managed_vscode_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-managed-vscode-config title: "@kbn/managed-vscode-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/managed-vscode-config plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/managed-vscode-config'] --- import kbnManagedVscodeConfigObj from './kbn_managed_vscode_config.devdocs.json'; diff --git a/api_docs/kbn_mapbox_gl.mdx b/api_docs/kbn_mapbox_gl.mdx index 1a2cab74c82b..79fd443a6c80 100644 --- a/api_docs/kbn_mapbox_gl.mdx +++ b/api_docs/kbn_mapbox_gl.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-mapbox-gl title: "@kbn/mapbox-gl" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/mapbox-gl plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/mapbox-gl'] --- import kbnMapboxGlObj from './kbn_mapbox_gl.devdocs.json'; diff --git a/api_docs/kbn_ml_agg_utils.mdx b/api_docs/kbn_ml_agg_utils.mdx index 5e400664bc9b..c237b3a552fb 100644 --- a/api_docs/kbn_ml_agg_utils.mdx +++ b/api_docs/kbn_ml_agg_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-agg-utils title: "@kbn/ml-agg-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-agg-utils plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-agg-utils'] --- import kbnMlAggUtilsObj from './kbn_ml_agg_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_date_picker.mdx b/api_docs/kbn_ml_date_picker.mdx index ca520e74ffd3..8ecf5eb6323e 100644 --- a/api_docs/kbn_ml_date_picker.mdx +++ b/api_docs/kbn_ml_date_picker.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-date-picker title: "@kbn/ml-date-picker" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-date-picker plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-date-picker'] --- import kbnMlDatePickerObj from './kbn_ml_date_picker.devdocs.json'; diff --git a/api_docs/kbn_ml_is_defined.mdx b/api_docs/kbn_ml_is_defined.mdx index 0eb5d578d1e9..771070a756f5 100644 --- a/api_docs/kbn_ml_is_defined.mdx +++ b/api_docs/kbn_ml_is_defined.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-is-defined title: "@kbn/ml-is-defined" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-is-defined plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-is-defined'] --- import kbnMlIsDefinedObj from './kbn_ml_is_defined.devdocs.json'; diff --git a/api_docs/kbn_ml_is_populated_object.mdx b/api_docs/kbn_ml_is_populated_object.mdx index 9e6074d54406..a765ee3ffb8c 100644 --- a/api_docs/kbn_ml_is_populated_object.mdx +++ b/api_docs/kbn_ml_is_populated_object.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-is-populated-object title: "@kbn/ml-is-populated-object" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-is-populated-object plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-is-populated-object'] --- import kbnMlIsPopulatedObjectObj from './kbn_ml_is_populated_object.devdocs.json'; diff --git a/api_docs/kbn_ml_local_storage.mdx b/api_docs/kbn_ml_local_storage.mdx index 4689081d128e..36093fb82384 100644 --- a/api_docs/kbn_ml_local_storage.mdx +++ b/api_docs/kbn_ml_local_storage.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-local-storage title: "@kbn/ml-local-storage" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-local-storage plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-local-storage'] --- import kbnMlLocalStorageObj from './kbn_ml_local_storage.devdocs.json'; diff --git a/api_docs/kbn_ml_nested_property.mdx b/api_docs/kbn_ml_nested_property.mdx index eda64de3f028..2c8f7bded28e 100644 --- a/api_docs/kbn_ml_nested_property.mdx +++ b/api_docs/kbn_ml_nested_property.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-nested-property title: "@kbn/ml-nested-property" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-nested-property plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-nested-property'] --- import kbnMlNestedPropertyObj from './kbn_ml_nested_property.devdocs.json'; diff --git a/api_docs/kbn_ml_query_utils.mdx b/api_docs/kbn_ml_query_utils.mdx index c0b13e9c7227..b090bfe6ee68 100644 --- a/api_docs/kbn_ml_query_utils.mdx +++ b/api_docs/kbn_ml_query_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-query-utils title: "@kbn/ml-query-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-query-utils plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-query-utils'] --- import kbnMlQueryUtilsObj from './kbn_ml_query_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_string_hash.mdx b/api_docs/kbn_ml_string_hash.mdx index e04d96f9a187..75301de28a62 100644 --- a/api_docs/kbn_ml_string_hash.mdx +++ b/api_docs/kbn_ml_string_hash.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-string-hash title: "@kbn/ml-string-hash" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-string-hash plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-string-hash'] --- import kbnMlStringHashObj from './kbn_ml_string_hash.devdocs.json'; diff --git a/api_docs/kbn_ml_url_state.mdx b/api_docs/kbn_ml_url_state.mdx index 18ab9ffa8e81..2e9ffed1a40c 100644 --- a/api_docs/kbn_ml_url_state.mdx +++ b/api_docs/kbn_ml_url_state.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-url-state title: "@kbn/ml-url-state" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-url-state plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-url-state'] --- import kbnMlUrlStateObj from './kbn_ml_url_state.devdocs.json'; diff --git a/api_docs/kbn_monaco.mdx b/api_docs/kbn_monaco.mdx index 7320d0544bdb..81f0803e5c88 100644 --- a/api_docs/kbn_monaco.mdx +++ b/api_docs/kbn_monaco.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-monaco title: "@kbn/monaco" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/monaco plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/monaco'] --- import kbnMonacoObj from './kbn_monaco.devdocs.json'; diff --git a/api_docs/kbn_optimizer.mdx b/api_docs/kbn_optimizer.mdx index f3297ae4678c..fae9269cdd0d 100644 --- a/api_docs/kbn_optimizer.mdx +++ b/api_docs/kbn_optimizer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-optimizer title: "@kbn/optimizer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/optimizer plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/optimizer'] --- import kbnOptimizerObj from './kbn_optimizer.devdocs.json'; diff --git a/api_docs/kbn_optimizer_webpack_helpers.mdx b/api_docs/kbn_optimizer_webpack_helpers.mdx index 9d47cab3d0a4..0d661b2bd530 100644 --- a/api_docs/kbn_optimizer_webpack_helpers.mdx +++ b/api_docs/kbn_optimizer_webpack_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-optimizer-webpack-helpers title: "@kbn/optimizer-webpack-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/optimizer-webpack-helpers plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/optimizer-webpack-helpers'] --- import kbnOptimizerWebpackHelpersObj from './kbn_optimizer_webpack_helpers.devdocs.json'; diff --git a/api_docs/kbn_osquery_io_ts_types.mdx b/api_docs/kbn_osquery_io_ts_types.mdx index 5546f8af6583..ca09b63a28fd 100644 --- a/api_docs/kbn_osquery_io_ts_types.mdx +++ b/api_docs/kbn_osquery_io_ts_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-osquery-io-ts-types title: "@kbn/osquery-io-ts-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/osquery-io-ts-types plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/osquery-io-ts-types'] --- import kbnOsqueryIoTsTypesObj from './kbn_osquery_io_ts_types.devdocs.json'; diff --git a/api_docs/kbn_performance_testing_dataset_extractor.mdx b/api_docs/kbn_performance_testing_dataset_extractor.mdx index fcbc28f5c082..41bd576dc38d 100644 --- a/api_docs/kbn_performance_testing_dataset_extractor.mdx +++ b/api_docs/kbn_performance_testing_dataset_extractor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-performance-testing-dataset-extractor title: "@kbn/performance-testing-dataset-extractor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/performance-testing-dataset-extractor plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/performance-testing-dataset-extractor'] --- import kbnPerformanceTestingDatasetExtractorObj from './kbn_performance_testing_dataset_extractor.devdocs.json'; diff --git a/api_docs/kbn_plugin_generator.mdx b/api_docs/kbn_plugin_generator.mdx index dbb2a8bb0009..06b05e085c04 100644 --- a/api_docs/kbn_plugin_generator.mdx +++ b/api_docs/kbn_plugin_generator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-generator title: "@kbn/plugin-generator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/plugin-generator plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/plugin-generator'] --- import kbnPluginGeneratorObj from './kbn_plugin_generator.devdocs.json'; diff --git a/api_docs/kbn_plugin_helpers.mdx b/api_docs/kbn_plugin_helpers.mdx index f84da983ddfc..6df3b3513312 100644 --- a/api_docs/kbn_plugin_helpers.mdx +++ b/api_docs/kbn_plugin_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-helpers title: "@kbn/plugin-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/plugin-helpers plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/plugin-helpers'] --- import kbnPluginHelpersObj from './kbn_plugin_helpers.devdocs.json'; diff --git a/api_docs/kbn_react_field.mdx b/api_docs/kbn_react_field.mdx index bb775ec7f651..aa726ae629b7 100644 --- a/api_docs/kbn_react_field.mdx +++ b/api_docs/kbn_react_field.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-field title: "@kbn/react-field" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-field plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-field'] --- import kbnReactFieldObj from './kbn_react_field.devdocs.json'; diff --git a/api_docs/kbn_repo_file_maps.mdx b/api_docs/kbn_repo_file_maps.mdx index 67c9ae2a153a..ee54a3ef7017 100644 --- a/api_docs/kbn_repo_file_maps.mdx +++ b/api_docs/kbn_repo_file_maps.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-file-maps title: "@kbn/repo-file-maps" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-file-maps plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-file-maps'] --- import kbnRepoFileMapsObj from './kbn_repo_file_maps.devdocs.json'; diff --git a/api_docs/kbn_repo_linter.mdx b/api_docs/kbn_repo_linter.mdx index 47cd7750790c..0f7a2a7e57d9 100644 --- a/api_docs/kbn_repo_linter.mdx +++ b/api_docs/kbn_repo_linter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-linter title: "@kbn/repo-linter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-linter plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-linter'] --- import kbnRepoLinterObj from './kbn_repo_linter.devdocs.json'; diff --git a/api_docs/kbn_repo_path.mdx b/api_docs/kbn_repo_path.mdx index 1b95e4143d6a..6def69c3ce2a 100644 --- a/api_docs/kbn_repo_path.mdx +++ b/api_docs/kbn_repo_path.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-path title: "@kbn/repo-path" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-path plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-path'] --- import kbnRepoPathObj from './kbn_repo_path.devdocs.json'; diff --git a/api_docs/kbn_repo_source_classifier.mdx b/api_docs/kbn_repo_source_classifier.mdx index be3e88db7f55..ac153a55c642 100644 --- a/api_docs/kbn_repo_source_classifier.mdx +++ b/api_docs/kbn_repo_source_classifier.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-source-classifier title: "@kbn/repo-source-classifier" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-source-classifier plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-source-classifier'] --- import kbnRepoSourceClassifierObj from './kbn_repo_source_classifier.devdocs.json'; diff --git a/api_docs/kbn_rison.mdx b/api_docs/kbn_rison.mdx index d6bcd91d7110..3a768818b2a4 100644 --- a/api_docs/kbn_rison.mdx +++ b/api_docs/kbn_rison.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rison title: "@kbn/rison" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/rison plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rison'] --- import kbnRisonObj from './kbn_rison.devdocs.json'; diff --git a/api_docs/kbn_rule_data_utils.devdocs.json b/api_docs/kbn_rule_data_utils.devdocs.json index 2882bd4b1b87..fdab2a321e5f 100644 --- a/api_docs/kbn_rule_data_utils.devdocs.json +++ b/api_docs/kbn_rule_data_utils.devdocs.json @@ -188,7 +188,7 @@ "signature": [ "\"kibana.alert.action_group\"" ], - "path": "packages/kbn-rule-data-utils/src/technical_field_names.ts", + "path": "packages/kbn-rule-data-utils/src/default_alerts_as_data.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -233,7 +233,7 @@ "signature": [ "\"kibana.alert.duration.us\"" ], - "path": "packages/kbn-rule-data-utils/src/technical_field_names.ts", + "path": "packages/kbn-rule-data-utils/src/default_alerts_as_data.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -248,7 +248,7 @@ "signature": [ "\"kibana.alert.end\"" ], - "path": "packages/kbn-rule-data-utils/src/technical_field_names.ts", + "path": "packages/kbn-rule-data-utils/src/default_alerts_as_data.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -293,7 +293,22 @@ "signature": [ "\"kibana.alert.flapping\"" ], - "path": "packages/kbn-rule-data-utils/src/technical_field_names.ts", + "path": "packages/kbn-rule-data-utils/src/default_alerts_as_data.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/rule-data-utils", + "id": "def-common.ALERT_ID", + "type": "string", + "tags": [], + "label": "ALERT_ID", + "description": [], + "signature": [ + "\"kibana.alert.id\"" + ], + "path": "packages/kbn-rule-data-utils/src/default_alerts_as_data.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -323,7 +338,7 @@ "signature": [ "\"kibana.alert\"" ], - "path": "packages/kbn-rule-data-utils/src/technical_field_names.ts", + "path": "packages/kbn-rule-data-utils/src/default_alerts_as_data.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -338,7 +353,7 @@ "signature": [ "\"kibana.alert.reason\"" ], - "path": "packages/kbn-rule-data-utils/src/technical_field_names.ts", + "path": "packages/kbn-rule-data-utils/src/default_alerts_as_data.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -383,7 +398,7 @@ "signature": [ "\"kibana.alert.rule.category\"" ], - "path": "packages/kbn-rule-data-utils/src/technical_field_names.ts", + "path": "packages/kbn-rule-data-utils/src/default_alerts_as_data.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -398,7 +413,7 @@ "signature": [ "\"kibana.alert.rule.consumer\"" ], - "path": "packages/kbn-rule-data-utils/src/technical_field_names.ts", + "path": "packages/kbn-rule-data-utils/src/default_alerts_as_data.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -488,7 +503,7 @@ "signature": [ "\"kibana.alert.rule.execution.uuid\"" ], - "path": "packages/kbn-rule-data-utils/src/technical_field_names.ts", + "path": "packages/kbn-rule-data-utils/src/default_alerts_as_data.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -548,7 +563,7 @@ "signature": [ "\"kibana.alert.rule.name\"" ], - "path": "packages/kbn-rule-data-utils/src/technical_field_names.ts", + "path": "packages/kbn-rule-data-utils/src/default_alerts_as_data.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -563,7 +578,7 @@ "signature": [ "\"kibana.alert.rule\"" ], - "path": "packages/kbn-rule-data-utils/src/technical_field_names.ts", + "path": "packages/kbn-rule-data-utils/src/default_alerts_as_data.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -608,7 +623,7 @@ "signature": [ "\"kibana.alert.rule.parameters\"" ], - "path": "packages/kbn-rule-data-utils/src/technical_field_names.ts", + "path": "packages/kbn-rule-data-utils/src/default_alerts_as_data.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -623,7 +638,7 @@ "signature": [ "\"kibana.alert.rule.producer\"" ], - "path": "packages/kbn-rule-data-utils/src/technical_field_names.ts", + "path": "packages/kbn-rule-data-utils/src/default_alerts_as_data.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -683,7 +698,7 @@ "signature": [ "\"kibana.alert.rule.tags\"" ], - "path": "packages/kbn-rule-data-utils/src/technical_field_names.ts", + "path": "packages/kbn-rule-data-utils/src/default_alerts_as_data.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -728,7 +743,7 @@ "signature": [ "\"kibana.alert.rule.rule_type_id\"" ], - "path": "packages/kbn-rule-data-utils/src/technical_field_names.ts", + "path": "packages/kbn-rule-data-utils/src/default_alerts_as_data.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -773,7 +788,7 @@ "signature": [ "\"kibana.alert.rule.uuid\"" ], - "path": "packages/kbn-rule-data-utils/src/technical_field_names.ts", + "path": "packages/kbn-rule-data-utils/src/default_alerts_as_data.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -848,7 +863,7 @@ "signature": [ "\"kibana.alert.start\"" ], - "path": "packages/kbn-rule-data-utils/src/technical_field_names.ts", + "path": "packages/kbn-rule-data-utils/src/default_alerts_as_data.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -863,7 +878,7 @@ "signature": [ "\"kibana.alert.status\"" ], - "path": "packages/kbn-rule-data-utils/src/technical_field_names.ts", + "path": "packages/kbn-rule-data-utils/src/default_alerts_as_data.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -1163,7 +1178,7 @@ "signature": [ "\"kibana.alert.time_range\"" ], - "path": "packages/kbn-rule-data-utils/src/technical_field_names.ts", + "path": "packages/kbn-rule-data-utils/src/default_alerts_as_data.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -1178,7 +1193,7 @@ "signature": [ "\"kibana.alert.uuid\"" ], - "path": "packages/kbn-rule-data-utils/src/technical_field_names.ts", + "path": "packages/kbn-rule-data-utils/src/default_alerts_as_data.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -1208,7 +1223,7 @@ "signature": [ "\"kibana.alert.workflow_status\"" ], - "path": "packages/kbn-rule-data-utils/src/technical_field_names.ts", + "path": "packages/kbn-rule-data-utils/src/default_alerts_as_data.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -1273,6 +1288,21 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "@kbn/rule-data-utils", + "id": "def-common.DefaultAlertFieldName", + "type": "Type", + "tags": [], + "label": "DefaultAlertFieldName", + "description": [], + "signature": [ + "\"kibana\" | \"kibana.alert.rule.rule_type_id\" | \"kibana.alert.rule.consumer\" | \"kibana.alert.rule.execution.uuid\" | \"kibana.alert\" | \"kibana.alert.rule\" | \"kibana.alert.rule.parameters\" | \"kibana.alert.rule.producer\" | \"kibana.space_ids\" | \"kibana.alert.uuid\" | \"kibana.alert.start\" | \"kibana.alert.time_range\" | \"kibana.alert.end\" | \"kibana.alert.duration.us\" | \"kibana.alert.status\" | \"kibana.alert.flapping\" | \"kibana.version\" | \"kibana.alert.workflow_status\" | \"kibana.alert.action_group\" | \"kibana.alert.reason\" | \"kibana.alert.rule.category\" | \"kibana.alert.rule.uuid\" | \"kibana.alert.rule.name\" | \"kibana.alert.rule.tags\" | \"kibana.alert.id\"" + ], + "path": "packages/kbn-rule-data-utils/src/default_alerts_as_data.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "@kbn/rule-data-utils", "id": "def-common.ECS_VERSION", @@ -1343,7 +1373,7 @@ "signature": [ "\"kibana\"" ], - "path": "packages/kbn-rule-data-utils/src/technical_field_names.ts", + "path": "packages/kbn-rule-data-utils/src/default_alerts_as_data.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -1373,7 +1403,7 @@ "signature": [ "\"kibana.space_ids\"" ], - "path": "packages/kbn-rule-data-utils/src/technical_field_names.ts", + "path": "packages/kbn-rule-data-utils/src/default_alerts_as_data.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -1416,7 +1446,7 @@ "label": "TechnicalRuleDataFieldName", "description": [], "signature": [ - "\"tags\" | \"kibana\" | \"@timestamp\" | \"event.action\" | \"kibana.alert.rule.execution.uuid\" | \"kibana.alert.rule.rule_type_id\" | \"kibana.alert.rule.consumer\" | \"kibana.alert\" | \"kibana.alert.rule\" | \"kibana.alert.rule.parameters\" | \"kibana.alert.rule.producer\" | \"kibana.space_ids\" | \"kibana.alert.uuid\" | \"kibana.alert.instance.id\" | \"kibana.alert.start\" | \"kibana.alert.time_range\" | \"kibana.alert.end\" | \"kibana.alert.duration.us\" | \"kibana.alert.severity\" | \"kibana.alert.status\" | \"kibana.alert.flapping\" | \"kibana.version\" | \"ecs.version\" | \"kibana.alert.risk_score\" | \"kibana.alert.workflow_status\" | \"kibana.alert.workflow_user\" | \"kibana.alert.workflow_reason\" | \"kibana.alert.system_status\" | \"kibana.alert.action_group\" | \"kibana.alert.reason\" | \"kibana.alert.case_ids\" | \"kibana.alert.rule.author\" | \"kibana.alert.rule.category\" | \"kibana.alert.rule.uuid\" | \"kibana.alert.rule.created_at\" | \"kibana.alert.rule.created_by\" | \"kibana.alert.rule.description\" | \"kibana.alert.rule.enabled\" | \"kibana.alert.rule.from\" | \"kibana.alert.rule.interval\" | \"kibana.alert.rule.license\" | \"kibana.alert.rule.name\" | \"kibana.alert.rule.note\" | \"kibana.alert.rule.references\" | \"kibana.alert.rule.rule_id\" | \"kibana.alert.rule.rule_name_override\" | \"kibana.alert.rule.tags\" | \"kibana.alert.rule.to\" | \"kibana.alert.rule.type\" | \"kibana.alert.rule.updated_at\" | \"kibana.alert.rule.updated_by\" | \"kibana.alert.rule.version\" | \"kibana.alert.suppression.terms\" | \"kibana.alert.suppression.terms.field\" | \"kibana.alert.suppression.terms.value\" | \"kibana.alert.suppression.start\" | \"kibana.alert.suppression.end\" | \"kibana.alert.suppression.docs_count\" | \"event.kind\" | \"event.module\" | \"kibana.alert.evaluation.threshold\" | \"kibana.alert.evaluation.value\" | \"kibana.alert.building_block_type\" | \"kibana.alert.rule.exceptions_list\" | \"kibana.alert.rule.namespace\" | \"kibana.alert.rule.threat.framework\" | \"kibana.alert.rule.threat.tactic.id\" | \"kibana.alert.rule.threat.tactic.name\" | \"kibana.alert.rule.threat.tactic.reference\" | \"kibana.alert.rule.threat.technique.id\" | \"kibana.alert.rule.threat.technique.name\" | \"kibana.alert.rule.threat.technique.reference\" | \"kibana.alert.rule.threat.technique.subtechnique.id\" | \"kibana.alert.rule.threat.technique.subtechnique.name\" | \"kibana.alert.rule.threat.technique.subtechnique.reference\"" + "\"tags\" | \"kibana\" | \"@timestamp\" | \"event.action\" | \"kibana.alert.rule.rule_type_id\" | \"kibana.alert.rule.consumer\" | \"kibana.alert.rule.execution.uuid\" | \"kibana.alert\" | \"kibana.alert.rule\" | \"kibana.alert.rule.parameters\" | \"kibana.alert.rule.producer\" | \"kibana.space_ids\" | \"kibana.alert.uuid\" | \"kibana.alert.instance.id\" | \"kibana.alert.start\" | \"kibana.alert.time_range\" | \"kibana.alert.end\" | \"kibana.alert.duration.us\" | \"kibana.alert.severity\" | \"kibana.alert.status\" | \"kibana.alert.flapping\" | \"kibana.version\" | \"ecs.version\" | \"kibana.alert.risk_score\" | \"kibana.alert.workflow_status\" | \"kibana.alert.workflow_user\" | \"kibana.alert.workflow_reason\" | \"kibana.alert.system_status\" | \"kibana.alert.action_group\" | \"kibana.alert.reason\" | \"kibana.alert.case_ids\" | \"kibana.alert.rule.author\" | \"kibana.alert.rule.category\" | \"kibana.alert.rule.uuid\" | \"kibana.alert.rule.created_at\" | \"kibana.alert.rule.created_by\" | \"kibana.alert.rule.description\" | \"kibana.alert.rule.enabled\" | \"kibana.alert.rule.from\" | \"kibana.alert.rule.interval\" | \"kibana.alert.rule.license\" | \"kibana.alert.rule.name\" | \"kibana.alert.rule.note\" | \"kibana.alert.rule.references\" | \"kibana.alert.rule.rule_id\" | \"kibana.alert.rule.rule_name_override\" | \"kibana.alert.rule.tags\" | \"kibana.alert.rule.to\" | \"kibana.alert.rule.type\" | \"kibana.alert.rule.updated_at\" | \"kibana.alert.rule.updated_by\" | \"kibana.alert.rule.version\" | \"kibana.alert.suppression.terms\" | \"kibana.alert.suppression.terms.field\" | \"kibana.alert.suppression.terms.value\" | \"kibana.alert.suppression.start\" | \"kibana.alert.suppression.end\" | \"kibana.alert.suppression.docs_count\" | \"event.kind\" | \"event.module\" | \"kibana.alert.evaluation.threshold\" | \"kibana.alert.evaluation.value\" | \"kibana.alert.building_block_type\" | \"kibana.alert.rule.exceptions_list\" | \"kibana.alert.rule.namespace\" | \"kibana.alert.rule.threat.framework\" | \"kibana.alert.rule.threat.tactic.id\" | \"kibana.alert.rule.threat.tactic.name\" | \"kibana.alert.rule.threat.tactic.reference\" | \"kibana.alert.rule.threat.technique.id\" | \"kibana.alert.rule.threat.technique.name\" | \"kibana.alert.rule.threat.technique.reference\" | \"kibana.alert.rule.threat.technique.subtechnique.id\" | \"kibana.alert.rule.threat.technique.subtechnique.name\" | \"kibana.alert.rule.threat.technique.subtechnique.reference\"" ], "path": "packages/kbn-rule-data-utils/src/technical_field_names.ts", "deprecated": false, @@ -1493,7 +1523,7 @@ "signature": [ "\"kibana.version\"" ], - "path": "packages/kbn-rule-data-utils/src/technical_field_names.ts", + "path": "packages/kbn-rule-data-utils/src/default_alerts_as_data.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false diff --git a/api_docs/kbn_rule_data_utils.mdx b/api_docs/kbn_rule_data_utils.mdx index 54c70b242db5..c1457a8a99e9 100644 --- a/api_docs/kbn_rule_data_utils.mdx +++ b/api_docs/kbn_rule_data_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rule-data-utils title: "@kbn/rule-data-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/rule-data-utils plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rule-data-utils'] --- import kbnRuleDataUtilsObj from './kbn_rule_data_utils.devdocs.json'; @@ -21,7 +21,7 @@ Contact [Owner missing] for questions regarding this plugin. | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 97 | 0 | 94 | 0 | +| 99 | 0 | 96 | 0 | ## Common diff --git a/api_docs/kbn_securitysolution_autocomplete.mdx b/api_docs/kbn_securitysolution_autocomplete.mdx index 59a965a6c409..941ba15d506b 100644 --- a/api_docs/kbn_securitysolution_autocomplete.mdx +++ b/api_docs/kbn_securitysolution_autocomplete.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-autocomplete title: "@kbn/securitysolution-autocomplete" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-autocomplete plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-autocomplete'] --- import kbnSecuritysolutionAutocompleteObj from './kbn_securitysolution_autocomplete.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_ecs.devdocs.json b/api_docs/kbn_securitysolution_ecs.devdocs.json new file mode 100644 index 000000000000..d6503dc7fa76 --- /dev/null +++ b/api_docs/kbn_securitysolution_ecs.devdocs.json @@ -0,0 +1,4948 @@ +{ + "id": "@kbn/securitysolution-ecs", + "client": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "server": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "common": { + "classes": [], + "functions": [], + "interfaces": [ + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.AgentEcs", + "type": "Interface", + "tags": [], + "label": "AgentEcs", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/agent/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.AgentEcs.type", + "type": "Array", + "tags": [], + "label": "type", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/agent/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.AgentEcs.id", + "type": "Array", + "tags": [], + "label": "id", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/agent/index.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.AuditdEcs", + "type": "Interface", + "tags": [], + "label": "AuditdEcs", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/auditd/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.AuditdEcs.result", + "type": "Array", + "tags": [], + "label": "result", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/auditd/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.AuditdEcs.session", + "type": "Array", + "tags": [], + "label": "session", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/auditd/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.AuditdEcs.data", + "type": "Object", + "tags": [], + "label": "data", + "description": [], + "signature": [ + "AuditdDataEcs", + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/auditd/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.AuditdEcs.summary", + "type": "Object", + "tags": [], + "label": "summary", + "description": [], + "signature": [ + "SummaryEcs", + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/auditd/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.AuditdEcs.sequence", + "type": "Array", + "tags": [], + "label": "sequence", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/auditd/index.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.CloudEcs", + "type": "Interface", + "tags": [], + "label": "CloudEcs", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/cloud/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.CloudEcs.instance", + "type": "Object", + "tags": [], + "label": "instance", + "description": [], + "signature": [ + "CloudInstanceEcs", + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/cloud/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.CloudEcs.machine", + "type": "Object", + "tags": [], + "label": "machine", + "description": [], + "signature": [ + "CloudMachineEcs", + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/cloud/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.CloudEcs.provider", + "type": "Array", + "tags": [], + "label": "provider", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/cloud/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.CloudEcs.region", + "type": "Array", + "tags": [], + "label": "region", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/cloud/index.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.CodeSignature", + "type": "Interface", + "tags": [], + "label": "CodeSignature", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/file/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.CodeSignature.subject_name", + "type": "Array", + "tags": [], + "label": "subject_name", + "description": [], + "signature": [ + "string[]" + ], + "path": "packages/kbn-securitysolution-ecs/src/file/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.CodeSignature.trusted", + "type": "Array", + "tags": [], + "label": "trusted", + "description": [], + "signature": [ + "string[]" + ], + "path": "packages/kbn-securitysolution-ecs/src/file/index.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.DestinationEcs", + "type": "Interface", + "tags": [], + "label": "DestinationEcs", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/destination/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.DestinationEcs.bytes", + "type": "Array", + "tags": [], + "label": "bytes", + "description": [], + "signature": [ + "number[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/destination/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.DestinationEcs.ip", + "type": "Array", + "tags": [], + "label": "ip", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/destination/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.DestinationEcs.port", + "type": "Array", + "tags": [], + "label": "port", + "description": [], + "signature": [ + "number[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/destination/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.DestinationEcs.domain", + "type": "Array", + "tags": [], + "label": "domain", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/destination/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.DestinationEcs.geo", + "type": "Object", + "tags": [], + "label": "geo", + "description": [], + "signature": [ + { + "pluginId": "@kbn/securitysolution-ecs", + "scope": "common", + "docId": "kibKbnSecuritysolutionEcsPluginApi", + "section": "def-common.GeoEcs", + "text": "GeoEcs" + }, + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/destination/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.DestinationEcs.packets", + "type": "Array", + "tags": [], + "label": "packets", + "description": [], + "signature": [ + "number[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/destination/index.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.DllEcs", + "type": "Interface", + "tags": [], + "label": "DllEcs", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/dll/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.DllEcs.path", + "type": "string", + "tags": [], + "label": "path", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/dll/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.DllEcs.code_signature", + "type": "Object", + "tags": [], + "label": "code_signature", + "description": [], + "signature": [ + { + "pluginId": "@kbn/securitysolution-ecs", + "scope": "common", + "docId": "kibKbnSecuritysolutionEcsPluginApi", + "section": "def-common.CodeSignature", + "text": "CodeSignature" + }, + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/dll/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.DllEcs.pe", + "type": "Object", + "tags": [], + "label": "pe", + "description": [], + "signature": [ + "ProcessPe", + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/dll/index.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.DnsEcs", + "type": "Interface", + "tags": [], + "label": "DnsEcs", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/dns/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.DnsEcs.question", + "type": "Object", + "tags": [], + "label": "question", + "description": [], + "signature": [ + "DnsQuestionEcs", + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/dns/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.DnsEcs.resolved_ip", + "type": "Array", + "tags": [], + "label": "resolved_ip", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/dns/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.DnsEcs.response_code", + "type": "Array", + "tags": [], + "label": "response_code", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/dns/index.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EcsSecurityExtension", + "type": "Interface", + "tags": [], + "label": "EcsSecurityExtension", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EcsSecurityExtension.agent", + "type": "Object", + "tags": [], + "label": "agent", + "description": [], + "signature": [ + { + "pluginId": "@kbn/securitysolution-ecs", + "scope": "common", + "docId": "kibKbnSecuritysolutionEcsPluginApi", + "section": "def-common.AgentEcs", + "text": "AgentEcs" + }, + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EcsSecurityExtension.destination", + "type": "Object", + "tags": [], + "label": "destination", + "description": [], + "signature": [ + { + "pluginId": "@kbn/securitysolution-ecs", + "scope": "common", + "docId": "kibKbnSecuritysolutionEcsPluginApi", + "section": "def-common.DestinationEcs", + "text": "DestinationEcs" + }, + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EcsSecurityExtension.dns", + "type": "Object", + "tags": [], + "label": "dns", + "description": [], + "signature": [ + { + "pluginId": "@kbn/securitysolution-ecs", + "scope": "common", + "docId": "kibKbnSecuritysolutionEcsPluginApi", + "section": "def-common.DnsEcs", + "text": "DnsEcs" + }, + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EcsSecurityExtension.event", + "type": "Object", + "tags": [], + "label": "event", + "description": [], + "signature": [ + { + "pluginId": "@kbn/securitysolution-ecs", + "scope": "common", + "docId": "kibKbnSecuritysolutionEcsPluginApi", + "section": "def-common.EventEcs", + "text": "EventEcs" + }, + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EcsSecurityExtension.file", + "type": "Object", + "tags": [], + "label": "file", + "description": [], + "signature": [ + { + "pluginId": "@kbn/securitysolution-ecs", + "scope": "common", + "docId": "kibKbnSecuritysolutionEcsPluginApi", + "section": "def-common.FileEcs", + "text": "FileEcs" + }, + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EcsSecurityExtension.host", + "type": "Object", + "tags": [], + "label": "host", + "description": [], + "signature": [ + { + "pluginId": "@kbn/securitysolution-ecs", + "scope": "common", + "docId": "kibKbnSecuritysolutionEcsPluginApi", + "section": "def-common.HostEcs", + "text": "HostEcs" + }, + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EcsSecurityExtension.http", + "type": "Object", + "tags": [], + "label": "http", + "description": [], + "signature": [ + { + "pluginId": "@kbn/securitysolution-ecs", + "scope": "common", + "docId": "kibKbnSecuritysolutionEcsPluginApi", + "section": "def-common.HttpEcs", + "text": "HttpEcs" + }, + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EcsSecurityExtension.message", + "type": "Array", + "tags": [], + "label": "message", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EcsSecurityExtension.network", + "type": "Object", + "tags": [], + "label": "network", + "description": [], + "signature": [ + { + "pluginId": "@kbn/securitysolution-ecs", + "scope": "common", + "docId": "kibKbnSecuritysolutionEcsPluginApi", + "section": "def-common.NetworkEcs", + "text": "NetworkEcs" + }, + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EcsSecurityExtension.process", + "type": "Object", + "tags": [], + "label": "process", + "description": [], + "signature": [ + { + "pluginId": "@kbn/securitysolution-ecs", + "scope": "common", + "docId": "kibKbnSecuritysolutionEcsPluginApi", + "section": "def-common.ProcessEcs", + "text": "ProcessEcs" + }, + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EcsSecurityExtension.registry", + "type": "Object", + "tags": [], + "label": "registry", + "description": [], + "signature": [ + { + "pluginId": "@kbn/securitysolution-ecs", + "scope": "common", + "docId": "kibKbnSecuritysolutionEcsPluginApi", + "section": "def-common.RegistryEcs", + "text": "RegistryEcs" + }, + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EcsSecurityExtension.rule", + "type": "Object", + "tags": [], + "label": "rule", + "description": [], + "signature": [ + { + "pluginId": "@kbn/securitysolution-ecs", + "scope": "common", + "docId": "kibKbnSecuritysolutionEcsPluginApi", + "section": "def-common.RuleEcs", + "text": "RuleEcs" + }, + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EcsSecurityExtension.source", + "type": "Object", + "tags": [], + "label": "source", + "description": [], + "signature": [ + { + "pluginId": "@kbn/securitysolution-ecs", + "scope": "common", + "docId": "kibKbnSecuritysolutionEcsPluginApi", + "section": "def-common.SourceEcs", + "text": "SourceEcs" + }, + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EcsSecurityExtension.threat", + "type": "Object", + "tags": [], + "label": "threat", + "description": [], + "signature": [ + { + "pluginId": "@kbn/securitysolution-ecs", + "scope": "common", + "docId": "kibKbnSecuritysolutionEcsPluginApi", + "section": "def-common.ThreatEcs", + "text": "ThreatEcs" + }, + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EcsSecurityExtension.tls", + "type": "Object", + "tags": [], + "label": "tls", + "description": [], + "signature": [ + { + "pluginId": "@kbn/securitysolution-ecs", + "scope": "common", + "docId": "kibKbnSecuritysolutionEcsPluginApi", + "section": "def-common.TlsEcs", + "text": "TlsEcs" + }, + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EcsSecurityExtension.url", + "type": "Object", + "tags": [], + "label": "url", + "description": [], + "signature": [ + { + "pluginId": "@kbn/securitysolution-ecs", + "scope": "common", + "docId": "kibKbnSecuritysolutionEcsPluginApi", + "section": "def-common.UrlEcs", + "text": "UrlEcs" + }, + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EcsSecurityExtension.user", + "type": "Object", + "tags": [], + "label": "user", + "description": [], + "signature": [ + { + "pluginId": "@kbn/securitysolution-ecs", + "scope": "common", + "docId": "kibKbnSecuritysolutionEcsPluginApi", + "section": "def-common.UserEcs", + "text": "UserEcs" + }, + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EcsSecurityExtension._id", + "type": "string", + "tags": [], + "label": "_id", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EcsSecurityExtension._index", + "type": "string", + "tags": [], + "label": "_index", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EcsSecurityExtension.auditd", + "type": "Object", + "tags": [], + "label": "auditd", + "description": [], + "signature": [ + { + "pluginId": "@kbn/securitysolution-ecs", + "scope": "common", + "docId": "kibKbnSecuritysolutionEcsPluginApi", + "section": "def-common.AuditdEcs", + "text": "AuditdEcs" + }, + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EcsSecurityExtension.endgame", + "type": "Object", + "tags": [], + "label": "endgame", + "description": [], + "signature": [ + { + "pluginId": "@kbn/securitysolution-ecs", + "scope": "common", + "docId": "kibKbnSecuritysolutionEcsPluginApi", + "section": "def-common.EndgameEcs", + "text": "EndgameEcs" + }, + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EcsSecurityExtension.geo", + "type": "Object", + "tags": [], + "label": "geo", + "description": [], + "signature": [ + { + "pluginId": "@kbn/securitysolution-ecs", + "scope": "common", + "docId": "kibKbnSecuritysolutionEcsPluginApi", + "section": "def-common.GeoEcs", + "text": "GeoEcs" + }, + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EcsSecurityExtension.kibana", + "type": "Object", + "tags": [], + "label": "kibana", + "description": [], + "signature": [ + "{ alert: ", + "SignalEcsAAD", + "; } | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EcsSecurityExtension.kibana.alert.rule.parameters", + "type": "Object", + "tags": [], + "label": "'kibana.alert.rule.parameters'", + "description": [], + "signature": [ + "{ index: string[]; data_view_id?: string | undefined; } | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EcsSecurityExtension.kibana.alert.workflow_status", + "type": "CompoundType", + "tags": [], + "label": "'kibana.alert.workflow_status'", + "description": [], + "signature": [ + "\"open\" | \"in-progress\" | \"closed\" | \"acknowledged\" | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EcsSecurityExtension.Memory_protection", + "type": "Object", + "tags": [], + "label": "Memory_protection", + "description": [], + "signature": [ + { + "pluginId": "@kbn/securitysolution-ecs", + "scope": "common", + "docId": "kibKbnSecuritysolutionEcsPluginApi", + "section": "def-common.MemoryProtection", + "text": "MemoryProtection" + }, + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EcsSecurityExtension.Ransomware", + "type": "Object", + "tags": [], + "label": "Ransomware", + "description": [], + "signature": [ + { + "pluginId": "@kbn/securitysolution-ecs", + "scope": "common", + "docId": "kibKbnSecuritysolutionEcsPluginApi", + "section": "def-common.Ransomware", + "text": "Ransomware" + }, + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EcsSecurityExtension.Target", + "type": "Object", + "tags": [], + "label": "Target", + "description": [], + "signature": [ + { + "pluginId": "@kbn/securitysolution-ecs", + "scope": "common", + "docId": "kibKbnSecuritysolutionEcsPluginApi", + "section": "def-common.Target", + "text": "Target" + }, + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EcsSecurityExtension.dll", + "type": "Object", + "tags": [], + "label": "dll", + "description": [], + "signature": [ + { + "pluginId": "@kbn/securitysolution-ecs", + "scope": "common", + "docId": "kibKbnSecuritysolutionEcsPluginApi", + "section": "def-common.DllEcs", + "text": "DllEcs" + }, + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EcsSecurityExtension.eql", + "type": "Object", + "tags": [], + "label": "eql", + "description": [], + "signature": [ + "{ parentId: string; sequenceNumber: string; } | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EcsSecurityExtension.signal", + "type": "Object", + "tags": [], + "label": "signal", + "description": [], + "signature": [ + { + "pluginId": "@kbn/securitysolution-ecs", + "scope": "common", + "docId": "kibKbnSecuritysolutionEcsPluginApi", + "section": "def-common.SignalEcs", + "text": "SignalEcs" + }, + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EcsSecurityExtension.suricata", + "type": "Object", + "tags": [], + "label": "suricata", + "description": [], + "signature": [ + { + "pluginId": "@kbn/securitysolution-ecs", + "scope": "common", + "docId": "kibKbnSecuritysolutionEcsPluginApi", + "section": "def-common.SuricataEcs", + "text": "SuricataEcs" + }, + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EcsSecurityExtension.system", + "type": "Object", + "tags": [], + "label": "system", + "description": [], + "signature": [ + { + "pluginId": "@kbn/securitysolution-ecs", + "scope": "common", + "docId": "kibKbnSecuritysolutionEcsPluginApi", + "section": "def-common.SystemEcs", + "text": "SystemEcs" + }, + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EcsSecurityExtension.timestamp", + "type": "string", + "tags": [], + "label": "timestamp", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EcsSecurityExtension.winlog", + "type": "Object", + "tags": [], + "label": "winlog", + "description": [], + "signature": [ + { + "pluginId": "@kbn/securitysolution-ecs", + "scope": "common", + "docId": "kibKbnSecuritysolutionEcsPluginApi", + "section": "def-common.WinlogEcs", + "text": "WinlogEcs" + }, + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EcsSecurityExtension.zeek", + "type": "Object", + "tags": [], + "label": "zeek", + "description": [], + "signature": [ + { + "pluginId": "@kbn/securitysolution-ecs", + "scope": "common", + "docId": "kibKbnSecuritysolutionEcsPluginApi", + "section": "def-common.ZeekEcs", + "text": "ZeekEcs" + }, + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/index.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EndgameEcs", + "type": "Interface", + "tags": [], + "label": "EndgameEcs", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/endgame/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EndgameEcs.exit_code", + "type": "Array", + "tags": [], + "label": "exit_code", + "description": [], + "signature": [ + "number[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/endgame/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EndgameEcs.file_name", + "type": "Array", + "tags": [], + "label": "file_name", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/endgame/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EndgameEcs.file_path", + "type": "Array", + "tags": [], + "label": "file_path", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/endgame/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EndgameEcs.logon_type", + "type": "Array", + "tags": [], + "label": "logon_type", + "description": [], + "signature": [ + "number[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/endgame/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EndgameEcs.parent_process_name", + "type": "Array", + "tags": [], + "label": "parent_process_name", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/endgame/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EndgameEcs.pid", + "type": "Array", + "tags": [], + "label": "pid", + "description": [], + "signature": [ + "number[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/endgame/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EndgameEcs.process_name", + "type": "Array", + "tags": [], + "label": "process_name", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/endgame/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EndgameEcs.subject_domain_name", + "type": "Array", + "tags": [], + "label": "subject_domain_name", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/endgame/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EndgameEcs.subject_logon_id", + "type": "Array", + "tags": [], + "label": "subject_logon_id", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/endgame/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EndgameEcs.subject_user_name", + "type": "Array", + "tags": [], + "label": "subject_user_name", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/endgame/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EndgameEcs.target_domain_name", + "type": "Array", + "tags": [], + "label": "target_domain_name", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/endgame/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EndgameEcs.target_logon_id", + "type": "Array", + "tags": [], + "label": "target_logon_id", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/endgame/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EndgameEcs.target_user_name", + "type": "Array", + "tags": [], + "label": "target_user_name", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/endgame/index.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EventEcs", + "type": "Interface", + "tags": [], + "label": "EventEcs", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/event/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EventEcs.action", + "type": "Array", + "tags": [], + "label": "action", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/event/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EventEcs.category", + "type": "Array", + "tags": [], + "label": "category", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/event/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EventEcs.code", + "type": "Array", + "tags": [], + "label": "code", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/event/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EventEcs.created", + "type": "Array", + "tags": [], + "label": "created", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/event/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EventEcs.dataset", + "type": "Array", + "tags": [], + "label": "dataset", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/event/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EventEcs.duration", + "type": "Array", + "tags": [], + "label": "duration", + "description": [], + "signature": [ + "number[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/event/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EventEcs.end", + "type": "Array", + "tags": [], + "label": "end", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/event/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EventEcs.hash", + "type": "Array", + "tags": [], + "label": "hash", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/event/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EventEcs.id", + "type": "Array", + "tags": [], + "label": "id", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/event/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EventEcs.kind", + "type": "Array", + "tags": [], + "label": "kind", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/event/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EventEcs.module", + "type": "Array", + "tags": [], + "label": "module", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/event/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EventEcs.original", + "type": "Array", + "tags": [], + "label": "original", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/event/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EventEcs.outcome", + "type": "Array", + "tags": [], + "label": "outcome", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/event/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EventEcs.risk_score", + "type": "Array", + "tags": [], + "label": "risk_score", + "description": [], + "signature": [ + "number[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/event/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EventEcs.risk_score_norm", + "type": "Array", + "tags": [], + "label": "risk_score_norm", + "description": [], + "signature": [ + "number[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/event/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EventEcs.severity", + "type": "Array", + "tags": [], + "label": "severity", + "description": [], + "signature": [ + "number[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/event/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EventEcs.start", + "type": "Array", + "tags": [], + "label": "start", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/event/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EventEcs.timezone", + "type": "Array", + "tags": [], + "label": "timezone", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/event/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EventEcs.type", + "type": "Array", + "tags": [], + "label": "type", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/event/index.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.FileEcs", + "type": "Interface", + "tags": [], + "label": "FileEcs", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/file/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.FileEcs.name", + "type": "Array", + "tags": [], + "label": "name", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/file/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.FileEcs.path", + "type": "Array", + "tags": [], + "label": "path", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/file/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.FileEcs.target_path", + "type": "Array", + "tags": [], + "label": "target_path", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/file/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.FileEcs.extension", + "type": "Array", + "tags": [], + "label": "extension", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/file/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.FileEcs.Ext", + "type": "Object", + "tags": [], + "label": "Ext", + "description": [], + "signature": [ + "Ext", + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/file/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.FileEcs.type", + "type": "Array", + "tags": [], + "label": "type", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/file/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.FileEcs.device", + "type": "Array", + "tags": [], + "label": "device", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/file/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.FileEcs.inode", + "type": "Array", + "tags": [], + "label": "inode", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/file/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.FileEcs.uid", + "type": "Array", + "tags": [], + "label": "uid", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/file/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.FileEcs.owner", + "type": "Array", + "tags": [], + "label": "owner", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/file/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.FileEcs.gid", + "type": "Array", + "tags": [], + "label": "gid", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/file/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.FileEcs.group", + "type": "Array", + "tags": [], + "label": "group", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/file/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.FileEcs.mode", + "type": "Array", + "tags": [], + "label": "mode", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/file/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.FileEcs.size", + "type": "Array", + "tags": [], + "label": "size", + "description": [], + "signature": [ + "number[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/file/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.FileEcs.mtime", + "type": "Array", + "tags": [], + "label": "mtime", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/file/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.FileEcs.ctime", + "type": "Array", + "tags": [], + "label": "ctime", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/file/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.FileEcs.hash", + "type": "Object", + "tags": [], + "label": "hash", + "description": [], + "signature": [ + "Hash", + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/file/index.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.GeoEcs", + "type": "Interface", + "tags": [], + "label": "GeoEcs", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/geo/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.GeoEcs.city_name", + "type": "Array", + "tags": [], + "label": "city_name", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/geo/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.GeoEcs.continent_name", + "type": "Array", + "tags": [], + "label": "continent_name", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/geo/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.GeoEcs.country_iso_code", + "type": "Array", + "tags": [], + "label": "country_iso_code", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/geo/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.GeoEcs.country_name", + "type": "Array", + "tags": [], + "label": "country_name", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/geo/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.GeoEcs.location", + "type": "Object", + "tags": [], + "label": "location", + "description": [], + "signature": [ + "Location", + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/geo/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.GeoEcs.region_iso_code", + "type": "Array", + "tags": [], + "label": "region_iso_code", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/geo/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.GeoEcs.region_name", + "type": "Array", + "tags": [], + "label": "region_name", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/geo/index.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.HostEcs", + "type": "Interface", + "tags": [], + "label": "HostEcs", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/host/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.HostEcs.architecture", + "type": "Array", + "tags": [], + "label": "architecture", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/host/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.HostEcs.id", + "type": "Array", + "tags": [], + "label": "id", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/host/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.HostEcs.ip", + "type": "Array", + "tags": [], + "label": "ip", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/host/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.HostEcs.mac", + "type": "Array", + "tags": [], + "label": "mac", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/host/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.HostEcs.name", + "type": "Array", + "tags": [], + "label": "name", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/host/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.HostEcs.os", + "type": "Object", + "tags": [], + "label": "os", + "description": [], + "signature": [ + { + "pluginId": "@kbn/securitysolution-ecs", + "scope": "common", + "docId": "kibKbnSecuritysolutionEcsPluginApi", + "section": "def-common.OsEcs", + "text": "OsEcs" + }, + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/host/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.HostEcs.type", + "type": "Array", + "tags": [], + "label": "type", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/host/index.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.HttpEcs", + "type": "Interface", + "tags": [], + "label": "HttpEcs", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/http/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.HttpEcs.version", + "type": "Array", + "tags": [], + "label": "version", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/http/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.HttpEcs.request", + "type": "Object", + "tags": [], + "label": "request", + "description": [], + "signature": [ + "HttpRequestData", + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/http/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.HttpEcs.response", + "type": "Object", + "tags": [], + "label": "response", + "description": [], + "signature": [ + "HttpResponseData", + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/http/index.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.MemoryProtection", + "type": "Interface", + "tags": [], + "label": "MemoryProtection", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/memory_protection/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.MemoryProtection.cross_session", + "type": "CompoundType", + "tags": [], + "label": "cross_session", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/memory_protection/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.MemoryProtection.feature", + "type": "string", + "tags": [], + "label": "feature", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/memory_protection/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.MemoryProtection.parent_to_child", + "type": "CompoundType", + "tags": [], + "label": "parent_to_child", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/memory_protection/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.MemoryProtection.self_injection", + "type": "CompoundType", + "tags": [], + "label": "self_injection", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/memory_protection/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.MemoryProtection.unique_key_v1", + "type": "string", + "tags": [], + "label": "unique_key_v1", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/memory_protection/index.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.NetworkEcs", + "type": "Interface", + "tags": [], + "label": "NetworkEcs", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/network/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.NetworkEcs.bytes", + "type": "Array", + "tags": [], + "label": "bytes", + "description": [], + "signature": [ + "number[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/network/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.NetworkEcs.community_id", + "type": "Array", + "tags": [], + "label": "community_id", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/network/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.NetworkEcs.direction", + "type": "Array", + "tags": [], + "label": "direction", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/network/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.NetworkEcs.packets", + "type": "Array", + "tags": [], + "label": "packets", + "description": [], + "signature": [ + "number[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/network/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.NetworkEcs.protocol", + "type": "Array", + "tags": [], + "label": "protocol", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/network/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.NetworkEcs.transport", + "type": "Array", + "tags": [], + "label": "transport", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/network/index.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.OsEcs", + "type": "Interface", + "tags": [], + "label": "OsEcs", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/host/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.OsEcs.platform", + "type": "Array", + "tags": [], + "label": "platform", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/host/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.OsEcs.name", + "type": "Array", + "tags": [], + "label": "name", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/host/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.OsEcs.full", + "type": "Array", + "tags": [], + "label": "full", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/host/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.OsEcs.family", + "type": "Array", + "tags": [], + "label": "family", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/host/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.OsEcs.version", + "type": "Array", + "tags": [], + "label": "version", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/host/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.OsEcs.kernel", + "type": "Array", + "tags": [], + "label": "kernel", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/host/index.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.ProcessEcs", + "type": "Interface", + "tags": [], + "label": "ProcessEcs", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/process/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.ProcessEcs.Ext", + "type": "Object", + "tags": [], + "label": "Ext", + "description": [], + "signature": [ + "Ext", + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/process/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.ProcessEcs.command_line", + "type": "Array", + "tags": [], + "label": "command_line", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/process/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.ProcessEcs.entity_id", + "type": "Array", + "tags": [], + "label": "entity_id", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/process/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.ProcessEcs.entry_leader", + "type": "Object", + "tags": [], + "label": "entry_leader", + "description": [], + "signature": [ + "ProcessSessionData", + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/process/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.ProcessEcs.session_leader", + "type": "Object", + "tags": [], + "label": "session_leader", + "description": [], + "signature": [ + "ProcessSessionData", + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/process/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.ProcessEcs.group_leader", + "type": "Object", + "tags": [], + "label": "group_leader", + "description": [], + "signature": [ + "ProcessSessionData", + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/process/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.ProcessEcs.exit_code", + "type": "Array", + "tags": [], + "label": "exit_code", + "description": [], + "signature": [ + "number[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/process/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.ProcessEcs.hash", + "type": "Object", + "tags": [], + "label": "hash", + "description": [], + "signature": [ + "ProcessHashData", + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/process/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.ProcessEcs.parent", + "type": "Object", + "tags": [], + "label": "parent", + "description": [], + "signature": [ + "ProcessParentData", + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/process/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.ProcessEcs.code_signature", + "type": "Object", + "tags": [], + "label": "code_signature", + "description": [], + "signature": [ + { + "pluginId": "@kbn/securitysolution-ecs", + "scope": "common", + "docId": "kibKbnSecuritysolutionEcsPluginApi", + "section": "def-common.CodeSignature", + "text": "CodeSignature" + }, + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/process/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.ProcessEcs.pid", + "type": "Array", + "tags": [], + "label": "pid", + "description": [], + "signature": [ + "number[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/process/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.ProcessEcs.name", + "type": "Array", + "tags": [], + "label": "name", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/process/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.ProcessEcs.ppid", + "type": "Array", + "tags": [], + "label": "ppid", + "description": [], + "signature": [ + "number[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/process/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.ProcessEcs.args", + "type": "Array", + "tags": [], + "label": "args", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/process/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.ProcessEcs.executable", + "type": "Array", + "tags": [], + "label": "executable", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/process/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.ProcessEcs.title", + "type": "Array", + "tags": [], + "label": "title", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/process/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.ProcessEcs.thread", + "type": "Object", + "tags": [], + "label": "thread", + "description": [], + "signature": [ + "Thread", + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/process/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.ProcessEcs.working_directory", + "type": "Array", + "tags": [], + "label": "working_directory", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/process/index.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.Ransomware", + "type": "Interface", + "tags": [], + "label": "Ransomware", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/ransomware/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.Ransomware.feature", + "type": "Array", + "tags": [], + "label": "feature", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/ransomware/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.Ransomware.score", + "type": "Array", + "tags": [], + "label": "score", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/ransomware/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.Ransomware.version", + "type": "Array", + "tags": [], + "label": "version", + "description": [], + "signature": [ + "number[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/ransomware/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.Ransomware.child_pids", + "type": "Array", + "tags": [], + "label": "child_pids", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/ransomware/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.Ransomware.files", + "type": "Object", + "tags": [], + "label": "files", + "description": [], + "signature": [ + "RansomwareFiles", + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/ransomware/index.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.RegistryEcs", + "type": "Interface", + "tags": [], + "label": "RegistryEcs", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/registry/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.RegistryEcs.hive", + "type": "Array", + "tags": [], + "label": "hive", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/registry/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.RegistryEcs.key", + "type": "Array", + "tags": [], + "label": "key", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/registry/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.RegistryEcs.path", + "type": "Array", + "tags": [], + "label": "path", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/registry/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.RegistryEcs.value", + "type": "Array", + "tags": [], + "label": "value", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/registry/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.RegistryEcs.data", + "type": "Object", + "tags": [], + "label": "data", + "description": [], + "signature": [ + "RegistryEcsData", + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/registry/index.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.RuleEcs", + "type": "Interface", + "tags": [], + "label": "RuleEcs", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/rule/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.RuleEcs.id", + "type": "Array", + "tags": [], + "label": "id", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/rule/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.RuleEcs.rule_id", + "type": "Array", + "tags": [], + "label": "rule_id", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/rule/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.RuleEcs.name", + "type": "Array", + "tags": [], + "label": "name", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/rule/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.RuleEcs.false_positives", + "type": "Array", + "tags": [], + "label": "false_positives", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/rule/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.RuleEcs.saved_id", + "type": "Array", + "tags": [], + "label": "saved_id", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/rule/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.RuleEcs.timeline_id", + "type": "Array", + "tags": [], + "label": "timeline_id", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/rule/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.RuleEcs.timeline_title", + "type": "Array", + "tags": [], + "label": "timeline_title", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/rule/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.RuleEcs.max_signals", + "type": "Array", + "tags": [], + "label": "max_signals", + "description": [], + "signature": [ + "number[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/rule/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.RuleEcs.risk_score", + "type": "Array", + "tags": [], + "label": "risk_score", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/rule/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.RuleEcs.output_index", + "type": "Array", + "tags": [], + "label": "output_index", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/rule/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.RuleEcs.description", + "type": "Array", + "tags": [], + "label": "description", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/rule/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.RuleEcs.exceptions_list", + "type": "Array", + "tags": [], + "label": "exceptions_list", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/rule/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.RuleEcs.from", + "type": "Array", + "tags": [], + "label": "from", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/rule/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.RuleEcs.immutable", + "type": "Array", + "tags": [], + "label": "immutable", + "description": [], + "signature": [ + "boolean[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/rule/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.RuleEcs.index", + "type": "Array", + "tags": [], + "label": "index", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/rule/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.RuleEcs.data_view_id", + "type": "string", + "tags": [], + "label": "data_view_id", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/rule/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.RuleEcs.interval", + "type": "Array", + "tags": [], + "label": "interval", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/rule/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.RuleEcs.language", + "type": "Array", + "tags": [], + "label": "language", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/rule/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.RuleEcs.query", + "type": "Array", + "tags": [], + "label": "query", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/rule/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.RuleEcs.references", + "type": "Array", + "tags": [], + "label": "references", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/rule/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.RuleEcs.severity", + "type": "Array", + "tags": [], + "label": "severity", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/rule/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.RuleEcs.tags", + "type": "Array", + "tags": [], + "label": "tags", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/rule/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.RuleEcs.threat", + "type": "Unknown", + "tags": [], + "label": "threat", + "description": [], + "signature": [ + "unknown" + ], + "path": "packages/kbn-securitysolution-ecs/src/rule/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.RuleEcs.threshold", + "type": "Unknown", + "tags": [], + "label": "threshold", + "description": [], + "signature": [ + "unknown" + ], + "path": "packages/kbn-securitysolution-ecs/src/rule/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.RuleEcs.type", + "type": "Array", + "tags": [], + "label": "type", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/rule/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.RuleEcs.size", + "type": "Array", + "tags": [], + "label": "size", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/rule/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.RuleEcs.to", + "type": "Array", + "tags": [], + "label": "to", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/rule/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.RuleEcs.enabled", + "type": "Array", + "tags": [], + "label": "enabled", + "description": [], + "signature": [ + "boolean[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/rule/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.RuleEcs.filters", + "type": "Unknown", + "tags": [], + "label": "filters", + "description": [], + "signature": [ + "unknown" + ], + "path": "packages/kbn-securitysolution-ecs/src/rule/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.RuleEcs.created_at", + "type": "Array", + "tags": [], + "label": "created_at", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/rule/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.RuleEcs.updated_at", + "type": "Array", + "tags": [], + "label": "updated_at", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/rule/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.RuleEcs.created_by", + "type": "Array", + "tags": [], + "label": "created_by", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/rule/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.RuleEcs.updated_by", + "type": "Array", + "tags": [], + "label": "updated_by", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/rule/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.RuleEcs.version", + "type": "Array", + "tags": [], + "label": "version", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/rule/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.RuleEcs.note", + "type": "Array", + "tags": [], + "label": "note", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/rule/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.RuleEcs.building_block_type", + "type": "Array", + "tags": [], + "label": "building_block_type", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/rule/index.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.SignalEcs", + "type": "Interface", + "tags": [], + "label": "SignalEcs", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/signal/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.SignalEcs.rule", + "type": "Object", + "tags": [], + "label": "rule", + "description": [], + "signature": [ + { + "pluginId": "@kbn/securitysolution-ecs", + "scope": "common", + "docId": "kibKbnSecuritysolutionEcsPluginApi", + "section": "def-common.RuleEcs", + "text": "RuleEcs" + }, + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/signal/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.SignalEcs.original_time", + "type": "Array", + "tags": [], + "label": "original_time", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/signal/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.SignalEcs.status", + "type": "Array", + "tags": [], + "label": "status", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/signal/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.SignalEcs.group", + "type": "Object", + "tags": [], + "label": "group", + "description": [], + "signature": [ + "{ id?: string[] | undefined; } | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/signal/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.SignalEcs.threshold_result", + "type": "Unknown", + "tags": [], + "label": "threshold_result", + "description": [], + "signature": [ + "unknown" + ], + "path": "packages/kbn-securitysolution-ecs/src/signal/index.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.SourceEcs", + "type": "Interface", + "tags": [], + "label": "SourceEcs", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/source/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.SourceEcs.bytes", + "type": "Array", + "tags": [], + "label": "bytes", + "description": [], + "signature": [ + "number[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/source/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.SourceEcs.ip", + "type": "Array", + "tags": [], + "label": "ip", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/source/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.SourceEcs.port", + "type": "Array", + "tags": [], + "label": "port", + "description": [], + "signature": [ + "number[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/source/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.SourceEcs.domain", + "type": "Array", + "tags": [], + "label": "domain", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/source/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.SourceEcs.geo", + "type": "Object", + "tags": [], + "label": "geo", + "description": [], + "signature": [ + { + "pluginId": "@kbn/securitysolution-ecs", + "scope": "common", + "docId": "kibKbnSecuritysolutionEcsPluginApi", + "section": "def-common.GeoEcs", + "text": "GeoEcs" + }, + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/source/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.SourceEcs.packets", + "type": "Array", + "tags": [], + "label": "packets", + "description": [], + "signature": [ + "number[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/source/index.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.SuricataEcs", + "type": "Interface", + "tags": [], + "label": "SuricataEcs", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/suricata/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.SuricataEcs.eve", + "type": "Object", + "tags": [], + "label": "eve", + "description": [], + "signature": [ + "SuricataEveData", + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/suricata/index.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.SystemEcs", + "type": "Interface", + "tags": [], + "label": "SystemEcs", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/system/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.SystemEcs.audit", + "type": "Object", + "tags": [], + "label": "audit", + "description": [], + "signature": [ + "AuditEcs", + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/system/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.SystemEcs.auth", + "type": "Object", + "tags": [], + "label": "auth", + "description": [], + "signature": [ + "AuthEcs", + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/system/index.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.Target", + "type": "Interface", + "tags": [], + "label": "Target", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/target_type/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.Target.process", + "type": "Object", + "tags": [], + "label": "process", + "description": [], + "signature": [ + { + "pluginId": "@kbn/securitysolution-ecs", + "scope": "common", + "docId": "kibKbnSecuritysolutionEcsPluginApi", + "section": "def-common.ProcessEcs", + "text": "ProcessEcs" + } + ], + "path": "packages/kbn-securitysolution-ecs/src/target_type/index.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.ThreatEcs", + "type": "Interface", + "tags": [], + "label": "ThreatEcs", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/threat/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.ThreatEcs.indicator", + "type": "Array", + "tags": [], + "label": "indicator", + "description": [], + "signature": [ + "LegacyThreatIndicatorEcs", + "[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/threat/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.ThreatEcs.enrichments", + "type": "Array", + "tags": [], + "label": "enrichments", + "description": [], + "signature": [ + "ThreatEnrichmentEcs", + "[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/threat/index.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.ThreatIndicatorEcs", + "type": "Interface", + "tags": [], + "label": "ThreatIndicatorEcs", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/threat/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.ThreatIndicatorEcs.url", + "type": "Object", + "tags": [], + "label": "url", + "description": [], + "signature": [ + { + "pluginId": "@kbn/securitysolution-ecs", + "scope": "common", + "docId": "kibKbnSecuritysolutionEcsPluginApi", + "section": "def-common.UrlEcs", + "text": "UrlEcs" + }, + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/threat/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.ThreatIndicatorEcs.provider", + "type": "Array", + "tags": [], + "label": "provider", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/threat/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.ThreatIndicatorEcs.reference", + "type": "Array", + "tags": [], + "label": "reference", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/threat/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.ThreatIndicatorEcs.type", + "type": "Array", + "tags": [], + "label": "type", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/threat/index.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.TlsEcs", + "type": "Interface", + "tags": [], + "label": "TlsEcs", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/tls/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.TlsEcs.client_certificate", + "type": "Object", + "tags": [], + "label": "client_certificate", + "description": [], + "signature": [ + "TlsClientCertificateData", + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/tls/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.TlsEcs.fingerprints", + "type": "Object", + "tags": [], + "label": "fingerprints", + "description": [], + "signature": [ + "TlsFingerprintsData", + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/tls/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.TlsEcs.server_certificate", + "type": "Object", + "tags": [], + "label": "server_certificate", + "description": [], + "signature": [ + "TlsServerCertificateData", + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/tls/index.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.UrlEcs", + "type": "Interface", + "tags": [], + "label": "UrlEcs", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/url/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.UrlEcs.domain", + "type": "Array", + "tags": [], + "label": "domain", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/url/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.UrlEcs.original", + "type": "Array", + "tags": [], + "label": "original", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/url/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.UrlEcs.username", + "type": "Array", + "tags": [], + "label": "username", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/url/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.UrlEcs.password", + "type": "Array", + "tags": [], + "label": "password", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/url/index.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.UserEcs", + "type": "Interface", + "tags": [], + "label": "UserEcs", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/user/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.UserEcs.domain", + "type": "Array", + "tags": [], + "label": "domain", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/user/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.UserEcs.id", + "type": "Array", + "tags": [], + "label": "id", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/user/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.UserEcs.name", + "type": "Array", + "tags": [], + "label": "name", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/user/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.UserEcs.full_name", + "type": "Array", + "tags": [], + "label": "full_name", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/user/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.UserEcs.email", + "type": "Array", + "tags": [], + "label": "email", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/user/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.UserEcs.hash", + "type": "Array", + "tags": [], + "label": "hash", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/user/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.UserEcs.group", + "type": "Array", + "tags": [], + "label": "group", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/user/index.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.WinlogEcs", + "type": "Interface", + "tags": [], + "label": "WinlogEcs", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/winlog/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.WinlogEcs.event_id", + "type": "Array", + "tags": [], + "label": "event_id", + "description": [], + "signature": [ + "number[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/winlog/index.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.ZeekEcs", + "type": "Interface", + "tags": [], + "label": "ZeekEcs", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/zeek/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.ZeekEcs.session_id", + "type": "Array", + "tags": [], + "label": "session_id", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/zeek/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.ZeekEcs.connection", + "type": "Object", + "tags": [], + "label": "connection", + "description": [], + "signature": [ + "ZeekConnectionData", + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/zeek/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.ZeekEcs.notice", + "type": "Object", + "tags": [], + "label": "notice", + "description": [], + "signature": [ + "ZeekNoticeData", + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/zeek/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.ZeekEcs.dns", + "type": "Object", + "tags": [], + "label": "dns", + "description": [], + "signature": [ + "ZeekDnsData", + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/zeek/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.ZeekEcs.http", + "type": "Object", + "tags": [], + "label": "http", + "description": [], + "signature": [ + "ZeekHttpData", + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/zeek/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.ZeekEcs.files", + "type": "Object", + "tags": [], + "label": "files", + "description": [], + "signature": [ + "ZeekFileData", + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/zeek/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.ZeekEcs.ssl", + "type": "Object", + "tags": [], + "label": "ssl", + "description": [], + "signature": [ + "ZeekSslData", + " | undefined" + ], + "path": "packages/kbn-securitysolution-ecs/src/zeek/index.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + } + ], + "enums": [ + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EventCategory", + "type": "Enum", + "tags": [], + "label": "EventCategory", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/event/index.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.EventCode", + "type": "Enum", + "tags": [], + "label": "EventCode", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/event/index.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + } + ], + "misc": [], + "objects": [ + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.cloudFieldsMap", + "type": "Object", + "tags": [], + "label": "cloudFieldsMap", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.cloudFieldsMap.cloud.account.id", + "type": "string", + "tags": [], + "label": "'cloud.account.id'", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.cloudFieldsMap.cloud.availability_zone", + "type": "string", + "tags": [], + "label": "'cloud.availability_zone'", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.cloudFieldsMap.cloud.instance.id", + "type": "string", + "tags": [], + "label": "'cloud.instance.id'", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.cloudFieldsMap.cloud.instance.name", + "type": "string", + "tags": [], + "label": "'cloud.instance.name'", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.cloudFieldsMap.cloud.machine.type", + "type": "string", + "tags": [], + "label": "'cloud.machine.type'", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.cloudFieldsMap.cloud.provider", + "type": "string", + "tags": [], + "label": "'cloud.provider'", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.cloudFieldsMap.cloud.region", + "type": "string", + "tags": [], + "label": "'cloud.region'", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.hostFieldsMap", + "type": "Object", + "tags": [], + "label": "hostFieldsMap", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.hostFieldsMap.host.architecture", + "type": "string", + "tags": [], + "label": "'host.architecture'", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.hostFieldsMap.host.id", + "type": "string", + "tags": [], + "label": "'host.id'", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.hostFieldsMap.host.ip", + "type": "string", + "tags": [], + "label": "'host.ip'", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.hostFieldsMap.host.mac", + "type": "string", + "tags": [], + "label": "'host.mac'", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.hostFieldsMap.host.name", + "type": "string", + "tags": [], + "label": "'host.name'", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.hostFieldsMap.Unnamed", + "type": "Any", + "tags": [], + "label": "Unnamed", + "description": [], + "signature": [ + "any" + ], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.osFieldsMap", + "type": "Object", + "tags": [], + "label": "osFieldsMap", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.osFieldsMap.os.platform", + "type": "string", + "tags": [], + "label": "'os.platform'", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.osFieldsMap.os.name", + "type": "string", + "tags": [], + "label": "'os.name'", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.osFieldsMap.os.full", + "type": "string", + "tags": [], + "label": "'os.full'", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.osFieldsMap.os.family", + "type": "string", + "tags": [], + "label": "'os.family'", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.osFieldsMap.os.version", + "type": "string", + "tags": [], + "label": "'os.version'", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.osFieldsMap.os.kernel", + "type": "string", + "tags": [], + "label": "'os.kernel'", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.processFieldsMap", + "type": "Object", + "tags": [], + "label": "processFieldsMap", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.processFieldsMap.process.hash.md5", + "type": "string", + "tags": [], + "label": "'process.hash.md5'", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.processFieldsMap.process.hash.sha1", + "type": "string", + "tags": [], + "label": "'process.hash.sha1'", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.processFieldsMap.process.hash.sha256", + "type": "string", + "tags": [], + "label": "'process.hash.sha256'", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.processFieldsMap.process.pid", + "type": "string", + "tags": [], + "label": "'process.pid'", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.processFieldsMap.process.name", + "type": "string", + "tags": [], + "label": "'process.name'", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.processFieldsMap.process.ppid", + "type": "string", + "tags": [], + "label": "'process.ppid'", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.processFieldsMap.process.args", + "type": "string", + "tags": [], + "label": "'process.args'", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.processFieldsMap.process.entity_id", + "type": "string", + "tags": [], + "label": "'process.entity_id'", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.processFieldsMap.process.executable", + "type": "string", + "tags": [], + "label": "'process.executable'", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.processFieldsMap.process.title", + "type": "string", + "tags": [], + "label": "'process.title'", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.processFieldsMap.process.thread", + "type": "string", + "tags": [], + "label": "'process.thread'", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.processFieldsMap.process.working_directory", + "type": "string", + "tags": [], + "label": "'process.working_directory'", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.sourceFieldsMap", + "type": "Object", + "tags": [], + "label": "sourceFieldsMap", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.sourceFieldsMap.source.bytes", + "type": "string", + "tags": [], + "label": "'source.bytes'", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.sourceFieldsMap.source.ip", + "type": "string", + "tags": [], + "label": "'source.ip'", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.sourceFieldsMap.source.packets", + "type": "string", + "tags": [], + "label": "'source.packets'", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.sourceFieldsMap.source.port", + "type": "string", + "tags": [], + "label": "'source.port'", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.sourceFieldsMap.source.domain", + "type": "string", + "tags": [], + "label": "'source.domain'", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.sourceFieldsMap.source.geo.continent_name", + "type": "string", + "tags": [], + "label": "'source.geo.continent_name'", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.sourceFieldsMap.source.geo.country_name", + "type": "string", + "tags": [], + "label": "'source.geo.country_name'", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.sourceFieldsMap.source.geo.country_iso_code", + "type": "string", + "tags": [], + "label": "'source.geo.country_iso_code'", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.sourceFieldsMap.source.geo.city_name", + "type": "string", + "tags": [], + "label": "'source.geo.city_name'", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.sourceFieldsMap.source.geo.region_iso_code", + "type": "string", + "tags": [], + "label": "'source.geo.region_iso_code'", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.sourceFieldsMap.source.geo.region_name", + "type": "string", + "tags": [], + "label": "'source.geo.region_name'", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.userFieldsMap", + "type": "Object", + "tags": [], + "label": "userFieldsMap", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.userFieldsMap.user.domain", + "type": "string", + "tags": [], + "label": "'user.domain'", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.userFieldsMap.user.id", + "type": "string", + "tags": [], + "label": "'user.id'", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.userFieldsMap.user.name", + "type": "string", + "tags": [], + "label": "'user.name'", + "description": [], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.userFieldsMap.user.full_name", + "type": "string", + "tags": [], + "label": "'user.full_name'", + "description": [ + "// NOTE: This field is not tested and available from ECS. Please remove this tag once it is" + ], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.userFieldsMap.user.email", + "type": "string", + "tags": [], + "label": "'user.email'", + "description": [ + "// NOTE: This field is not tested and available from ECS. Please remove this tag once it is" + ], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.userFieldsMap.user.hash", + "type": "string", + "tags": [], + "label": "'user.hash'", + "description": [ + "// NOTE: This field is not tested and available from ECS. Please remove this tag once it is" + ], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/securitysolution-ecs", + "id": "def-common.userFieldsMap.user.group", + "type": "string", + "tags": [], + "label": "'user.group'", + "description": [ + "// NOTE: This field is not tested and available from ECS. Please remove this tag once it is" + ], + "path": "packages/kbn-securitysolution-ecs/src/ecs_fields/index.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + } + ] + } +} \ No newline at end of file diff --git a/api_docs/kbn_securitysolution_ecs.mdx b/api_docs/kbn_securitysolution_ecs.mdx new file mode 100644 index 000000000000..ec137d55a30e --- /dev/null +++ b/api_docs/kbn_securitysolution_ecs.mdx @@ -0,0 +1,36 @@ +--- +#### +#### This document is auto-generated and is meant to be viewed inside our experimental, new docs system. +#### Reach out in #docs-engineering for more info. +#### +id: kibKbnSecuritysolutionEcsPluginApi +slug: /kibana-dev-docs/api/kbn-securitysolution-ecs +title: "@kbn/securitysolution-ecs" +image: https://source.unsplash.com/400x175/?github +description: API docs for the @kbn/securitysolution-ecs plugin +date: 2023-01-24 +tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-ecs'] +--- +import kbnSecuritysolutionEcsObj from './kbn_securitysolution_ecs.devdocs.json'; + + + +Contact [Owner missing] for questions regarding this plugin. + +**Code health stats** + +| Public API count | Any count | Items lacking comments | Missing exports | +|-------------------|-----------|------------------------|-----------------| +| 341 | 1 | 337 | 32 | + +## Common + +### Objects + + +### Interfaces + + +### Enums + + diff --git a/api_docs/kbn_securitysolution_es_utils.mdx b/api_docs/kbn_securitysolution_es_utils.mdx index 28b54b60bbaa..99687e53e5f5 100644 --- a/api_docs/kbn_securitysolution_es_utils.mdx +++ b/api_docs/kbn_securitysolution_es_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-es-utils title: "@kbn/securitysolution-es-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-es-utils plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-es-utils'] --- import kbnSecuritysolutionEsUtilsObj from './kbn_securitysolution_es_utils.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_exception_list_components.devdocs.json b/api_docs/kbn_securitysolution_exception_list_components.devdocs.json index 6e10def35b04..3c97016f1c1c 100644 --- a/api_docs/kbn_securitysolution_exception_list_components.devdocs.json +++ b/api_docs/kbn_securitysolution_exception_list_components.devdocs.json @@ -834,7 +834,7 @@ "label": "formattedDateComponent", "description": [], "signature": [ - "\"symbol\" | \"object\" | React.ComponentType | \"body\" | \"path\" | \"circle\" | \"filter\" | \"data\" | \"line\" | \"area\" | \"time\" | \"label\" | \"legend\" | \"article\" | \"image\" | \"link\" | \"menu\" | \"stop\" | \"base\" | \"text\" | \"title\" | \"s\" | \"small\" | \"source\" | \"output\" | \"svg\" | \"meta\" | \"script\" | \"summary\" | \"desc\" | \"q\" | \"pattern\" | \"mask\" | \"input\" | \"slot\" | \"style\" | \"head\" | \"section\" | \"animate\" | \"progress\" | \"view\" | \"big\" | \"sub\" | \"sup\" | \"var\" | \"map\" | \"html\" | \"a\" | \"img\" | \"audio\" | \"br\" | \"form\" | \"main\" | \"abbr\" | \"address\" | \"aside\" | \"b\" | \"bdi\" | \"bdo\" | \"blockquote\" | \"button\" | \"canvas\" | \"caption\" | \"cite\" | \"code\" | \"col\" | \"colgroup\" | \"datalist\" | \"dd\" | \"del\" | \"details\" | \"dfn\" | \"dialog\" | \"div\" | \"dl\" | \"dt\" | \"em\" | \"embed\" | \"fieldset\" | \"figcaption\" | \"figure\" | \"footer\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"header\" | \"hgroup\" | \"hr\" | \"i\" | \"iframe\" | \"ins\" | \"kbd\" | \"keygen\" | \"li\" | \"mark\" | \"menuitem\" | \"meter\" | \"nav\" | \"noindex\" | \"noscript\" | \"ol\" | \"optgroup\" | \"option\" | \"p\" | \"param\" | \"picture\" | \"pre\" | \"rp\" | \"rt\" | \"ruby\" | \"samp\" | \"select\" | \"span\" | \"strong\" | \"table\" | \"template\" | \"tbody\" | \"td\" | \"textarea\" | \"tfoot\" | \"th\" | \"thead\" | \"tr\" | \"track\" | \"u\" | \"ul\" | \"video\" | \"wbr\" | \"webview\" | \"animateMotion\" | \"animateTransform\" | \"clipPath\" | \"defs\" | \"ellipse\" | \"feBlend\" | \"feColorMatrix\" | \"feComponentTransfer\" | \"feComposite\" | \"feConvolveMatrix\" | \"feDiffuseLighting\" | \"feDisplacementMap\" | \"feDistantLight\" | \"feDropShadow\" | \"feFlood\" | \"feFuncA\" | \"feFuncB\" | \"feFuncG\" | \"feFuncR\" | \"feGaussianBlur\" | \"feImage\" | \"feMerge\" | \"feMergeNode\" | \"feMorphology\" | \"feOffset\" | \"fePointLight\" | \"feSpecularLighting\" | \"feSpotLight\" | \"feTile\" | \"feTurbulence\" | \"foreignObject\" | \"g\" | \"linearGradient\" | \"marker\" | \"metadata\" | \"mpath\" | \"polygon\" | \"polyline\" | \"radialGradient\" | \"rect\" | \"switch\" | \"textPath\" | \"tspan\" | \"use\"" + "\"symbol\" | \"object\" | React.ComponentType | \"body\" | \"path\" | \"circle\" | \"filter\" | \"data\" | \"line\" | \"area\" | \"time\" | \"label\" | \"legend\" | \"article\" | \"image\" | \"link\" | \"menu\" | \"stop\" | \"base\" | \"text\" | \"title\" | \"s\" | \"small\" | \"source\" | \"output\" | \"svg\" | \"map\" | \"meta\" | \"script\" | \"summary\" | \"desc\" | \"q\" | \"pattern\" | \"mask\" | \"input\" | \"slot\" | \"style\" | \"head\" | \"section\" | \"animate\" | \"progress\" | \"view\" | \"big\" | \"sub\" | \"sup\" | \"var\" | \"html\" | \"a\" | \"img\" | \"audio\" | \"br\" | \"form\" | \"main\" | \"abbr\" | \"address\" | \"aside\" | \"b\" | \"bdi\" | \"bdo\" | \"blockquote\" | \"button\" | \"canvas\" | \"caption\" | \"cite\" | \"code\" | \"col\" | \"colgroup\" | \"datalist\" | \"dd\" | \"del\" | \"details\" | \"dfn\" | \"dialog\" | \"div\" | \"dl\" | \"dt\" | \"em\" | \"embed\" | \"fieldset\" | \"figcaption\" | \"figure\" | \"footer\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"header\" | \"hgroup\" | \"hr\" | \"i\" | \"iframe\" | \"ins\" | \"kbd\" | \"keygen\" | \"li\" | \"mark\" | \"menuitem\" | \"meter\" | \"nav\" | \"noindex\" | \"noscript\" | \"ol\" | \"optgroup\" | \"option\" | \"p\" | \"param\" | \"picture\" | \"pre\" | \"rp\" | \"rt\" | \"ruby\" | \"samp\" | \"select\" | \"span\" | \"strong\" | \"table\" | \"template\" | \"tbody\" | \"td\" | \"textarea\" | \"tfoot\" | \"th\" | \"thead\" | \"tr\" | \"track\" | \"u\" | \"ul\" | \"video\" | \"wbr\" | \"webview\" | \"animateMotion\" | \"animateTransform\" | \"clipPath\" | \"defs\" | \"ellipse\" | \"feBlend\" | \"feColorMatrix\" | \"feComponentTransfer\" | \"feComposite\" | \"feConvolveMatrix\" | \"feDiffuseLighting\" | \"feDisplacementMap\" | \"feDistantLight\" | \"feDropShadow\" | \"feFlood\" | \"feFuncA\" | \"feFuncB\" | \"feFuncG\" | \"feFuncR\" | \"feGaussianBlur\" | \"feImage\" | \"feMerge\" | \"feMergeNode\" | \"feMorphology\" | \"feOffset\" | \"fePointLight\" | \"feSpecularLighting\" | \"feSpotLight\" | \"feTile\" | \"feTurbulence\" | \"foreignObject\" | \"g\" | \"linearGradient\" | \"marker\" | \"metadata\" | \"mpath\" | \"polygon\" | \"polyline\" | \"radialGradient\" | \"rect\" | \"switch\" | \"textPath\" | \"tspan\" | \"use\"" ], "path": "packages/kbn-securitysolution-exception-list-components/src/exception_item_card/meta/index.tsx", "deprecated": false, @@ -848,7 +848,7 @@ "label": "securityLinkAnchorComponent", "description": [], "signature": [ - "\"symbol\" | \"object\" | React.ComponentType | \"body\" | \"path\" | \"circle\" | \"filter\" | \"data\" | \"line\" | \"area\" | \"time\" | \"label\" | \"legend\" | \"article\" | \"image\" | \"link\" | \"menu\" | \"stop\" | \"base\" | \"text\" | \"title\" | \"s\" | \"small\" | \"source\" | \"output\" | \"svg\" | \"meta\" | \"script\" | \"summary\" | \"desc\" | \"q\" | \"pattern\" | \"mask\" | \"input\" | \"slot\" | \"style\" | \"head\" | \"section\" | \"animate\" | \"progress\" | \"view\" | \"big\" | \"sub\" | \"sup\" | \"var\" | \"map\" | \"html\" | \"a\" | \"img\" | \"audio\" | \"br\" | \"form\" | \"main\" | \"abbr\" | \"address\" | \"aside\" | \"b\" | \"bdi\" | \"bdo\" | \"blockquote\" | \"button\" | \"canvas\" | \"caption\" | \"cite\" | \"code\" | \"col\" | \"colgroup\" | \"datalist\" | \"dd\" | \"del\" | \"details\" | \"dfn\" | \"dialog\" | \"div\" | \"dl\" | \"dt\" | \"em\" | \"embed\" | \"fieldset\" | \"figcaption\" | \"figure\" | \"footer\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"header\" | \"hgroup\" | \"hr\" | \"i\" | \"iframe\" | \"ins\" | \"kbd\" | \"keygen\" | \"li\" | \"mark\" | \"menuitem\" | \"meter\" | \"nav\" | \"noindex\" | \"noscript\" | \"ol\" | \"optgroup\" | \"option\" | \"p\" | \"param\" | \"picture\" | \"pre\" | \"rp\" | \"rt\" | \"ruby\" | \"samp\" | \"select\" | \"span\" | \"strong\" | \"table\" | \"template\" | \"tbody\" | \"td\" | \"textarea\" | \"tfoot\" | \"th\" | \"thead\" | \"tr\" | \"track\" | \"u\" | \"ul\" | \"video\" | \"wbr\" | \"webview\" | \"animateMotion\" | \"animateTransform\" | \"clipPath\" | \"defs\" | \"ellipse\" | \"feBlend\" | \"feColorMatrix\" | \"feComponentTransfer\" | \"feComposite\" | \"feConvolveMatrix\" | \"feDiffuseLighting\" | \"feDisplacementMap\" | \"feDistantLight\" | \"feDropShadow\" | \"feFlood\" | \"feFuncA\" | \"feFuncB\" | \"feFuncG\" | \"feFuncR\" | \"feGaussianBlur\" | \"feImage\" | \"feMerge\" | \"feMergeNode\" | \"feMorphology\" | \"feOffset\" | \"fePointLight\" | \"feSpecularLighting\" | \"feSpotLight\" | \"feTile\" | \"feTurbulence\" | \"foreignObject\" | \"g\" | \"linearGradient\" | \"marker\" | \"metadata\" | \"mpath\" | \"polygon\" | \"polyline\" | \"radialGradient\" | \"rect\" | \"switch\" | \"textPath\" | \"tspan\" | \"use\"" + "\"symbol\" | \"object\" | React.ComponentType | \"body\" | \"path\" | \"circle\" | \"filter\" | \"data\" | \"line\" | \"area\" | \"time\" | \"label\" | \"legend\" | \"article\" | \"image\" | \"link\" | \"menu\" | \"stop\" | \"base\" | \"text\" | \"title\" | \"s\" | \"small\" | \"source\" | \"output\" | \"svg\" | \"map\" | \"meta\" | \"script\" | \"summary\" | \"desc\" | \"q\" | \"pattern\" | \"mask\" | \"input\" | \"slot\" | \"style\" | \"head\" | \"section\" | \"animate\" | \"progress\" | \"view\" | \"big\" | \"sub\" | \"sup\" | \"var\" | \"html\" | \"a\" | \"img\" | \"audio\" | \"br\" | \"form\" | \"main\" | \"abbr\" | \"address\" | \"aside\" | \"b\" | \"bdi\" | \"bdo\" | \"blockquote\" | \"button\" | \"canvas\" | \"caption\" | \"cite\" | \"code\" | \"col\" | \"colgroup\" | \"datalist\" | \"dd\" | \"del\" | \"details\" | \"dfn\" | \"dialog\" | \"div\" | \"dl\" | \"dt\" | \"em\" | \"embed\" | \"fieldset\" | \"figcaption\" | \"figure\" | \"footer\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"header\" | \"hgroup\" | \"hr\" | \"i\" | \"iframe\" | \"ins\" | \"kbd\" | \"keygen\" | \"li\" | \"mark\" | \"menuitem\" | \"meter\" | \"nav\" | \"noindex\" | \"noscript\" | \"ol\" | \"optgroup\" | \"option\" | \"p\" | \"param\" | \"picture\" | \"pre\" | \"rp\" | \"rt\" | \"ruby\" | \"samp\" | \"select\" | \"span\" | \"strong\" | \"table\" | \"template\" | \"tbody\" | \"td\" | \"textarea\" | \"tfoot\" | \"th\" | \"thead\" | \"tr\" | \"track\" | \"u\" | \"ul\" | \"video\" | \"wbr\" | \"webview\" | \"animateMotion\" | \"animateTransform\" | \"clipPath\" | \"defs\" | \"ellipse\" | \"feBlend\" | \"feColorMatrix\" | \"feComponentTransfer\" | \"feComposite\" | \"feConvolveMatrix\" | \"feDiffuseLighting\" | \"feDisplacementMap\" | \"feDistantLight\" | \"feDropShadow\" | \"feFlood\" | \"feFuncA\" | \"feFuncB\" | \"feFuncG\" | \"feFuncR\" | \"feGaussianBlur\" | \"feImage\" | \"feMerge\" | \"feMergeNode\" | \"feMorphology\" | \"feOffset\" | \"fePointLight\" | \"feSpecularLighting\" | \"feSpotLight\" | \"feTile\" | \"feTurbulence\" | \"foreignObject\" | \"g\" | \"linearGradient\" | \"marker\" | \"metadata\" | \"mpath\" | \"polygon\" | \"polyline\" | \"radialGradient\" | \"rect\" | \"switch\" | \"textPath\" | \"tspan\" | \"use\"" ], "path": "packages/kbn-securitysolution-exception-list-components/src/exception_item_card/meta/index.tsx", "deprecated": false, @@ -987,7 +987,7 @@ "label": "securityLinkAnchorComponent", "description": [], "signature": [ - "\"symbol\" | \"object\" | React.ComponentType | \"body\" | \"path\" | \"circle\" | \"filter\" | \"data\" | \"line\" | \"area\" | \"time\" | \"label\" | \"legend\" | \"article\" | \"image\" | \"link\" | \"menu\" | \"stop\" | \"base\" | \"text\" | \"title\" | \"s\" | \"small\" | \"source\" | \"output\" | \"svg\" | \"meta\" | \"script\" | \"summary\" | \"desc\" | \"q\" | \"pattern\" | \"mask\" | \"input\" | \"slot\" | \"style\" | \"head\" | \"section\" | \"animate\" | \"progress\" | \"view\" | \"big\" | \"sub\" | \"sup\" | \"var\" | \"map\" | \"html\" | \"a\" | \"img\" | \"audio\" | \"br\" | \"form\" | \"main\" | \"abbr\" | \"address\" | \"aside\" | \"b\" | \"bdi\" | \"bdo\" | \"blockquote\" | \"button\" | \"canvas\" | \"caption\" | \"cite\" | \"code\" | \"col\" | \"colgroup\" | \"datalist\" | \"dd\" | \"del\" | \"details\" | \"dfn\" | \"dialog\" | \"div\" | \"dl\" | \"dt\" | \"em\" | \"embed\" | \"fieldset\" | \"figcaption\" | \"figure\" | \"footer\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"header\" | \"hgroup\" | \"hr\" | \"i\" | \"iframe\" | \"ins\" | \"kbd\" | \"keygen\" | \"li\" | \"mark\" | \"menuitem\" | \"meter\" | \"nav\" | \"noindex\" | \"noscript\" | \"ol\" | \"optgroup\" | \"option\" | \"p\" | \"param\" | \"picture\" | \"pre\" | \"rp\" | \"rt\" | \"ruby\" | \"samp\" | \"select\" | \"span\" | \"strong\" | \"table\" | \"template\" | \"tbody\" | \"td\" | \"textarea\" | \"tfoot\" | \"th\" | \"thead\" | \"tr\" | \"track\" | \"u\" | \"ul\" | \"video\" | \"wbr\" | \"webview\" | \"animateMotion\" | \"animateTransform\" | \"clipPath\" | \"defs\" | \"ellipse\" | \"feBlend\" | \"feColorMatrix\" | \"feComponentTransfer\" | \"feComposite\" | \"feConvolveMatrix\" | \"feDiffuseLighting\" | \"feDisplacementMap\" | \"feDistantLight\" | \"feDropShadow\" | \"feFlood\" | \"feFuncA\" | \"feFuncB\" | \"feFuncG\" | \"feFuncR\" | \"feGaussianBlur\" | \"feImage\" | \"feMerge\" | \"feMergeNode\" | \"feMorphology\" | \"feOffset\" | \"fePointLight\" | \"feSpecularLighting\" | \"feSpotLight\" | \"feTile\" | \"feTurbulence\" | \"foreignObject\" | \"g\" | \"linearGradient\" | \"marker\" | \"metadata\" | \"mpath\" | \"polygon\" | \"polyline\" | \"radialGradient\" | \"rect\" | \"switch\" | \"textPath\" | \"tspan\" | \"use\"" + "\"symbol\" | \"object\" | React.ComponentType | \"body\" | \"path\" | \"circle\" | \"filter\" | \"data\" | \"line\" | \"area\" | \"time\" | \"label\" | \"legend\" | \"article\" | \"image\" | \"link\" | \"menu\" | \"stop\" | \"base\" | \"text\" | \"title\" | \"s\" | \"small\" | \"source\" | \"output\" | \"svg\" | \"map\" | \"meta\" | \"script\" | \"summary\" | \"desc\" | \"q\" | \"pattern\" | \"mask\" | \"input\" | \"slot\" | \"style\" | \"head\" | \"section\" | \"animate\" | \"progress\" | \"view\" | \"big\" | \"sub\" | \"sup\" | \"var\" | \"html\" | \"a\" | \"img\" | \"audio\" | \"br\" | \"form\" | \"main\" | \"abbr\" | \"address\" | \"aside\" | \"b\" | \"bdi\" | \"bdo\" | \"blockquote\" | \"button\" | \"canvas\" | \"caption\" | \"cite\" | \"code\" | \"col\" | \"colgroup\" | \"datalist\" | \"dd\" | \"del\" | \"details\" | \"dfn\" | \"dialog\" | \"div\" | \"dl\" | \"dt\" | \"em\" | \"embed\" | \"fieldset\" | \"figcaption\" | \"figure\" | \"footer\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"header\" | \"hgroup\" | \"hr\" | \"i\" | \"iframe\" | \"ins\" | \"kbd\" | \"keygen\" | \"li\" | \"mark\" | \"menuitem\" | \"meter\" | \"nav\" | \"noindex\" | \"noscript\" | \"ol\" | \"optgroup\" | \"option\" | \"p\" | \"param\" | \"picture\" | \"pre\" | \"rp\" | \"rt\" | \"ruby\" | \"samp\" | \"select\" | \"span\" | \"strong\" | \"table\" | \"template\" | \"tbody\" | \"td\" | \"textarea\" | \"tfoot\" | \"th\" | \"thead\" | \"tr\" | \"track\" | \"u\" | \"ul\" | \"video\" | \"wbr\" | \"webview\" | \"animateMotion\" | \"animateTransform\" | \"clipPath\" | \"defs\" | \"ellipse\" | \"feBlend\" | \"feColorMatrix\" | \"feComponentTransfer\" | \"feComposite\" | \"feConvolveMatrix\" | \"feDiffuseLighting\" | \"feDisplacementMap\" | \"feDistantLight\" | \"feDropShadow\" | \"feFlood\" | \"feFuncA\" | \"feFuncB\" | \"feFuncG\" | \"feFuncR\" | \"feGaussianBlur\" | \"feImage\" | \"feMerge\" | \"feMergeNode\" | \"feMorphology\" | \"feOffset\" | \"fePointLight\" | \"feSpecularLighting\" | \"feSpotLight\" | \"feTile\" | \"feTurbulence\" | \"foreignObject\" | \"g\" | \"linearGradient\" | \"marker\" | \"metadata\" | \"mpath\" | \"polygon\" | \"polyline\" | \"radialGradient\" | \"rect\" | \"switch\" | \"textPath\" | \"tspan\" | \"use\"" ], "path": "packages/kbn-securitysolution-exception-list-components/src/exception_item_card/exception_item_card.tsx", "deprecated": false, @@ -1001,7 +1001,7 @@ "label": "formattedDateComponent", "description": [], "signature": [ - "\"symbol\" | \"object\" | React.ComponentType | \"body\" | \"path\" | \"circle\" | \"filter\" | \"data\" | \"line\" | \"area\" | \"time\" | \"label\" | \"legend\" | \"article\" | \"image\" | \"link\" | \"menu\" | \"stop\" | \"base\" | \"text\" | \"title\" | \"s\" | \"small\" | \"source\" | \"output\" | \"svg\" | \"meta\" | \"script\" | \"summary\" | \"desc\" | \"q\" | \"pattern\" | \"mask\" | \"input\" | \"slot\" | \"style\" | \"head\" | \"section\" | \"animate\" | \"progress\" | \"view\" | \"big\" | \"sub\" | \"sup\" | \"var\" | \"map\" | \"html\" | \"a\" | \"img\" | \"audio\" | \"br\" | \"form\" | \"main\" | \"abbr\" | \"address\" | \"aside\" | \"b\" | \"bdi\" | \"bdo\" | \"blockquote\" | \"button\" | \"canvas\" | \"caption\" | \"cite\" | \"code\" | \"col\" | \"colgroup\" | \"datalist\" | \"dd\" | \"del\" | \"details\" | \"dfn\" | \"dialog\" | \"div\" | \"dl\" | \"dt\" | \"em\" | \"embed\" | \"fieldset\" | \"figcaption\" | \"figure\" | \"footer\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"header\" | \"hgroup\" | \"hr\" | \"i\" | \"iframe\" | \"ins\" | \"kbd\" | \"keygen\" | \"li\" | \"mark\" | \"menuitem\" | \"meter\" | \"nav\" | \"noindex\" | \"noscript\" | \"ol\" | \"optgroup\" | \"option\" | \"p\" | \"param\" | \"picture\" | \"pre\" | \"rp\" | \"rt\" | \"ruby\" | \"samp\" | \"select\" | \"span\" | \"strong\" | \"table\" | \"template\" | \"tbody\" | \"td\" | \"textarea\" | \"tfoot\" | \"th\" | \"thead\" | \"tr\" | \"track\" | \"u\" | \"ul\" | \"video\" | \"wbr\" | \"webview\" | \"animateMotion\" | \"animateTransform\" | \"clipPath\" | \"defs\" | \"ellipse\" | \"feBlend\" | \"feColorMatrix\" | \"feComponentTransfer\" | \"feComposite\" | \"feConvolveMatrix\" | \"feDiffuseLighting\" | \"feDisplacementMap\" | \"feDistantLight\" | \"feDropShadow\" | \"feFlood\" | \"feFuncA\" | \"feFuncB\" | \"feFuncG\" | \"feFuncR\" | \"feGaussianBlur\" | \"feImage\" | \"feMerge\" | \"feMergeNode\" | \"feMorphology\" | \"feOffset\" | \"fePointLight\" | \"feSpecularLighting\" | \"feSpotLight\" | \"feTile\" | \"feTurbulence\" | \"foreignObject\" | \"g\" | \"linearGradient\" | \"marker\" | \"metadata\" | \"mpath\" | \"polygon\" | \"polyline\" | \"radialGradient\" | \"rect\" | \"switch\" | \"textPath\" | \"tspan\" | \"use\"" + "\"symbol\" | \"object\" | React.ComponentType | \"body\" | \"path\" | \"circle\" | \"filter\" | \"data\" | \"line\" | \"area\" | \"time\" | \"label\" | \"legend\" | \"article\" | \"image\" | \"link\" | \"menu\" | \"stop\" | \"base\" | \"text\" | \"title\" | \"s\" | \"small\" | \"source\" | \"output\" | \"svg\" | \"map\" | \"meta\" | \"script\" | \"summary\" | \"desc\" | \"q\" | \"pattern\" | \"mask\" | \"input\" | \"slot\" | \"style\" | \"head\" | \"section\" | \"animate\" | \"progress\" | \"view\" | \"big\" | \"sub\" | \"sup\" | \"var\" | \"html\" | \"a\" | \"img\" | \"audio\" | \"br\" | \"form\" | \"main\" | \"abbr\" | \"address\" | \"aside\" | \"b\" | \"bdi\" | \"bdo\" | \"blockquote\" | \"button\" | \"canvas\" | \"caption\" | \"cite\" | \"code\" | \"col\" | \"colgroup\" | \"datalist\" | \"dd\" | \"del\" | \"details\" | \"dfn\" | \"dialog\" | \"div\" | \"dl\" | \"dt\" | \"em\" | \"embed\" | \"fieldset\" | \"figcaption\" | \"figure\" | \"footer\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"header\" | \"hgroup\" | \"hr\" | \"i\" | \"iframe\" | \"ins\" | \"kbd\" | \"keygen\" | \"li\" | \"mark\" | \"menuitem\" | \"meter\" | \"nav\" | \"noindex\" | \"noscript\" | \"ol\" | \"optgroup\" | \"option\" | \"p\" | \"param\" | \"picture\" | \"pre\" | \"rp\" | \"rt\" | \"ruby\" | \"samp\" | \"select\" | \"span\" | \"strong\" | \"table\" | \"template\" | \"tbody\" | \"td\" | \"textarea\" | \"tfoot\" | \"th\" | \"thead\" | \"tr\" | \"track\" | \"u\" | \"ul\" | \"video\" | \"wbr\" | \"webview\" | \"animateMotion\" | \"animateTransform\" | \"clipPath\" | \"defs\" | \"ellipse\" | \"feBlend\" | \"feColorMatrix\" | \"feComponentTransfer\" | \"feComposite\" | \"feConvolveMatrix\" | \"feDiffuseLighting\" | \"feDisplacementMap\" | \"feDistantLight\" | \"feDropShadow\" | \"feFlood\" | \"feFuncA\" | \"feFuncB\" | \"feFuncG\" | \"feFuncR\" | \"feGaussianBlur\" | \"feImage\" | \"feMerge\" | \"feMergeNode\" | \"feMorphology\" | \"feOffset\" | \"fePointLight\" | \"feSpecularLighting\" | \"feSpotLight\" | \"feTile\" | \"feTurbulence\" | \"foreignObject\" | \"g\" | \"linearGradient\" | \"marker\" | \"metadata\" | \"mpath\" | \"polygon\" | \"polyline\" | \"radialGradient\" | \"rect\" | \"switch\" | \"textPath\" | \"tspan\" | \"use\"" ], "path": "packages/kbn-securitysolution-exception-list-components/src/exception_item_card/exception_item_card.tsx", "deprecated": false, diff --git a/api_docs/kbn_securitysolution_exception_list_components.mdx b/api_docs/kbn_securitysolution_exception_list_components.mdx index 59fcefcdfa11..24f44065a875 100644 --- a/api_docs/kbn_securitysolution_exception_list_components.mdx +++ b/api_docs/kbn_securitysolution_exception_list_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-exception-list-components title: "@kbn/securitysolution-exception-list-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-exception-list-components plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-exception-list-components'] --- import kbnSecuritysolutionExceptionListComponentsObj from './kbn_securitysolution_exception_list_components.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_hook_utils.mdx b/api_docs/kbn_securitysolution_hook_utils.mdx index 7bc28e515130..149e7ea6ae96 100644 --- a/api_docs/kbn_securitysolution_hook_utils.mdx +++ b/api_docs/kbn_securitysolution_hook_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-hook-utils title: "@kbn/securitysolution-hook-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-hook-utils plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-hook-utils'] --- import kbnSecuritysolutionHookUtilsObj from './kbn_securitysolution_hook_utils.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx b/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx index 38e354a34d90..fbcebfc8d337 100644 --- a/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-alerting-types title: "@kbn/securitysolution-io-ts-alerting-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-alerting-types plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-alerting-types'] --- import kbnSecuritysolutionIoTsAlertingTypesObj from './kbn_securitysolution_io_ts_alerting_types.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_io_ts_list_types.mdx b/api_docs/kbn_securitysolution_io_ts_list_types.mdx index 69ec65afd927..985be2cd11a4 100644 --- a/api_docs/kbn_securitysolution_io_ts_list_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_list_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-list-types title: "@kbn/securitysolution-io-ts-list-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-list-types plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-list-types'] --- import kbnSecuritysolutionIoTsListTypesObj from './kbn_securitysolution_io_ts_list_types.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_io_ts_types.mdx b/api_docs/kbn_securitysolution_io_ts_types.mdx index 1b57af66bd2b..bbd9089552ad 100644 --- a/api_docs/kbn_securitysolution_io_ts_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-types title: "@kbn/securitysolution-io-ts-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-types plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-types'] --- import kbnSecuritysolutionIoTsTypesObj from './kbn_securitysolution_io_ts_types.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_io_ts_utils.mdx b/api_docs/kbn_securitysolution_io_ts_utils.mdx index e6262fd1f7da..77849eae26fb 100644 --- a/api_docs/kbn_securitysolution_io_ts_utils.mdx +++ b/api_docs/kbn_securitysolution_io_ts_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-utils title: "@kbn/securitysolution-io-ts-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-utils plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-utils'] --- import kbnSecuritysolutionIoTsUtilsObj from './kbn_securitysolution_io_ts_utils.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_list_api.mdx b/api_docs/kbn_securitysolution_list_api.mdx index b605738ffcc4..71ec9815ec58 100644 --- a/api_docs/kbn_securitysolution_list_api.mdx +++ b/api_docs/kbn_securitysolution_list_api.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-api title: "@kbn/securitysolution-list-api" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-api plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-api'] --- import kbnSecuritysolutionListApiObj from './kbn_securitysolution_list_api.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_list_constants.mdx b/api_docs/kbn_securitysolution_list_constants.mdx index 371ac74d4728..c495bb3b37aa 100644 --- a/api_docs/kbn_securitysolution_list_constants.mdx +++ b/api_docs/kbn_securitysolution_list_constants.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-constants title: "@kbn/securitysolution-list-constants" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-constants plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-constants'] --- import kbnSecuritysolutionListConstantsObj from './kbn_securitysolution_list_constants.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_list_hooks.mdx b/api_docs/kbn_securitysolution_list_hooks.mdx index 32147fbf4a55..8fbe26d6bc7e 100644 --- a/api_docs/kbn_securitysolution_list_hooks.mdx +++ b/api_docs/kbn_securitysolution_list_hooks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-hooks title: "@kbn/securitysolution-list-hooks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-hooks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-hooks'] --- import kbnSecuritysolutionListHooksObj from './kbn_securitysolution_list_hooks.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_list_utils.mdx b/api_docs/kbn_securitysolution_list_utils.mdx index f2af83a6ab71..ec852a2c263a 100644 --- a/api_docs/kbn_securitysolution_list_utils.mdx +++ b/api_docs/kbn_securitysolution_list_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-utils title: "@kbn/securitysolution-list-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-utils plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-utils'] --- import kbnSecuritysolutionListUtilsObj from './kbn_securitysolution_list_utils.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_rules.mdx b/api_docs/kbn_securitysolution_rules.mdx index b50cf28def8b..faea93f5db66 100644 --- a/api_docs/kbn_securitysolution_rules.mdx +++ b/api_docs/kbn_securitysolution_rules.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-rules title: "@kbn/securitysolution-rules" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-rules plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-rules'] --- import kbnSecuritysolutionRulesObj from './kbn_securitysolution_rules.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_t_grid.mdx b/api_docs/kbn_securitysolution_t_grid.mdx index f78cca87ae20..f2fe3f812fde 100644 --- a/api_docs/kbn_securitysolution_t_grid.mdx +++ b/api_docs/kbn_securitysolution_t_grid.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-t-grid title: "@kbn/securitysolution-t-grid" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-t-grid plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-t-grid'] --- import kbnSecuritysolutionTGridObj from './kbn_securitysolution_t_grid.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_utils.mdx b/api_docs/kbn_securitysolution_utils.mdx index ab4c98e6d53c..1e1c309e9a76 100644 --- a/api_docs/kbn_securitysolution_utils.mdx +++ b/api_docs/kbn_securitysolution_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-utils title: "@kbn/securitysolution-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-utils plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-utils'] --- import kbnSecuritysolutionUtilsObj from './kbn_securitysolution_utils.devdocs.json'; diff --git a/api_docs/kbn_server_http_tools.mdx b/api_docs/kbn_server_http_tools.mdx index 70f2390cc5d4..d3e3a06f1a33 100644 --- a/api_docs/kbn_server_http_tools.mdx +++ b/api_docs/kbn_server_http_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-http-tools title: "@kbn/server-http-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/server-http-tools plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/server-http-tools'] --- import kbnServerHttpToolsObj from './kbn_server_http_tools.devdocs.json'; diff --git a/api_docs/kbn_server_route_repository.mdx b/api_docs/kbn_server_route_repository.mdx index c72fd19fc9b9..b7226dd53976 100644 --- a/api_docs/kbn_server_route_repository.mdx +++ b/api_docs/kbn_server_route_repository.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-route-repository title: "@kbn/server-route-repository" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/server-route-repository plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/server-route-repository'] --- import kbnServerRouteRepositoryObj from './kbn_server_route_repository.devdocs.json'; diff --git a/api_docs/kbn_shared_svg.mdx b/api_docs/kbn_shared_svg.mdx index 271e40a1c7c0..80f96559dbd0 100644 --- a/api_docs/kbn_shared_svg.mdx +++ b/api_docs/kbn_shared_svg.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-svg title: "@kbn/shared-svg" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-svg plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-svg'] --- import kbnSharedSvgObj from './kbn_shared_svg.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_avatar_solution.mdx b/api_docs/kbn_shared_ux_avatar_solution.mdx index 0bb24cdb1f26..63335382ce4c 100644 --- a/api_docs/kbn_shared_ux_avatar_solution.mdx +++ b/api_docs/kbn_shared_ux_avatar_solution.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-avatar-solution title: "@kbn/shared-ux-avatar-solution" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-avatar-solution plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-avatar-solution'] --- import kbnSharedUxAvatarSolutionObj from './kbn_shared_ux_avatar_solution.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx b/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx index baac2ac3b249..74e5ac3bcc27 100644 --- a/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx +++ b/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-avatar-user-profile-components title: "@kbn/shared-ux-avatar-user-profile-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-avatar-user-profile-components plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-avatar-user-profile-components'] --- import kbnSharedUxAvatarUserProfileComponentsObj from './kbn_shared_ux_avatar_user_profile_components.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_button_exit_full_screen.mdx b/api_docs/kbn_shared_ux_button_exit_full_screen.mdx index f1575d2ec0d7..0b95a337c5b1 100644 --- a/api_docs/kbn_shared_ux_button_exit_full_screen.mdx +++ b/api_docs/kbn_shared_ux_button_exit_full_screen.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-exit-full-screen title: "@kbn/shared-ux-button-exit-full-screen" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-exit-full-screen plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-button-exit-full-screen'] --- import kbnSharedUxButtonExitFullScreenObj from './kbn_shared_ux_button_exit_full_screen.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx b/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx index ab031950e37c..fed1be27cb37 100644 --- a/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx +++ b/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-exit-full-screen-mocks title: "@kbn/shared-ux-button-exit-full-screen-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-exit-full-screen-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-button-exit-full-screen-mocks'] --- import kbnSharedUxButtonExitFullScreenMocksObj from './kbn_shared_ux_button_exit_full_screen_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_button_toolbar.mdx b/api_docs/kbn_shared_ux_button_toolbar.mdx index 56a4ef437baa..5ee9f7aeed7d 100644 --- a/api_docs/kbn_shared_ux_button_toolbar.mdx +++ b/api_docs/kbn_shared_ux_button_toolbar.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-toolbar title: "@kbn/shared-ux-button-toolbar" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-toolbar plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-button-toolbar'] --- import kbnSharedUxButtonToolbarObj from './kbn_shared_ux_button_toolbar.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_card_no_data.mdx b/api_docs/kbn_shared_ux_card_no_data.mdx index c9b627ea2778..934cc0685730 100644 --- a/api_docs/kbn_shared_ux_card_no_data.mdx +++ b/api_docs/kbn_shared_ux_card_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-card-no-data title: "@kbn/shared-ux-card-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-card-no-data plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-card-no-data'] --- import kbnSharedUxCardNoDataObj from './kbn_shared_ux_card_no_data.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_card_no_data_mocks.mdx b/api_docs/kbn_shared_ux_card_no_data_mocks.mdx index 9ea7d653fc31..79cec7695d40 100644 --- a/api_docs/kbn_shared_ux_card_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_card_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-card-no-data-mocks title: "@kbn/shared-ux-card-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-card-no-data-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-card-no-data-mocks'] --- import kbnSharedUxCardNoDataMocksObj from './kbn_shared_ux_card_no_data_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_context.mdx b/api_docs/kbn_shared_ux_file_context.mdx index c601160e9c0e..1b3c24be94d9 100644 --- a/api_docs/kbn_shared_ux_file_context.mdx +++ b/api_docs/kbn_shared_ux_file_context.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-context title: "@kbn/shared-ux-file-context" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-context plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-context'] --- import kbnSharedUxFileContextObj from './kbn_shared_ux_file_context.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_image.mdx b/api_docs/kbn_shared_ux_file_image.mdx index 4091baad1d0a..c7b8ca812703 100644 --- a/api_docs/kbn_shared_ux_file_image.mdx +++ b/api_docs/kbn_shared_ux_file_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-image title: "@kbn/shared-ux-file-image" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-image plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-image'] --- import kbnSharedUxFileImageObj from './kbn_shared_ux_file_image.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_image_mocks.mdx b/api_docs/kbn_shared_ux_file_image_mocks.mdx index c46ec896a61a..6a92caa56e94 100644 --- a/api_docs/kbn_shared_ux_file_image_mocks.mdx +++ b/api_docs/kbn_shared_ux_file_image_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-image-mocks title: "@kbn/shared-ux-file-image-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-image-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-image-mocks'] --- import kbnSharedUxFileImageMocksObj from './kbn_shared_ux_file_image_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_mocks.mdx b/api_docs/kbn_shared_ux_file_mocks.mdx index 3dcd98229eef..0079df083f4f 100644 --- a/api_docs/kbn_shared_ux_file_mocks.mdx +++ b/api_docs/kbn_shared_ux_file_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-mocks title: "@kbn/shared-ux-file-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-mocks'] --- import kbnSharedUxFileMocksObj from './kbn_shared_ux_file_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_picker.mdx b/api_docs/kbn_shared_ux_file_picker.mdx index 6d7ad8f51789..f64e39b85256 100644 --- a/api_docs/kbn_shared_ux_file_picker.mdx +++ b/api_docs/kbn_shared_ux_file_picker.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-picker title: "@kbn/shared-ux-file-picker" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-picker plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-picker'] --- import kbnSharedUxFilePickerObj from './kbn_shared_ux_file_picker.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_upload.mdx b/api_docs/kbn_shared_ux_file_upload.mdx index 9bd718ec1170..561112c471bc 100644 --- a/api_docs/kbn_shared_ux_file_upload.mdx +++ b/api_docs/kbn_shared_ux_file_upload.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-upload title: "@kbn/shared-ux-file-upload" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-upload plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-upload'] --- import kbnSharedUxFileUploadObj from './kbn_shared_ux_file_upload.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_util.mdx b/api_docs/kbn_shared_ux_file_util.mdx index fb858c3a998d..b3af472a664d 100644 --- a/api_docs/kbn_shared_ux_file_util.mdx +++ b/api_docs/kbn_shared_ux_file_util.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-util title: "@kbn/shared-ux-file-util" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-util plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-util'] --- import kbnSharedUxFileUtilObj from './kbn_shared_ux_file_util.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_link_redirect_app.mdx b/api_docs/kbn_shared_ux_link_redirect_app.mdx index 90f08d26ce0b..f894a306a78a 100644 --- a/api_docs/kbn_shared_ux_link_redirect_app.mdx +++ b/api_docs/kbn_shared_ux_link_redirect_app.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-link-redirect-app title: "@kbn/shared-ux-link-redirect-app" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-link-redirect-app plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-link-redirect-app'] --- import kbnSharedUxLinkRedirectAppObj from './kbn_shared_ux_link_redirect_app.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx b/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx index b6b577824309..c059864f3cda 100644 --- a/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx +++ b/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-link-redirect-app-mocks title: "@kbn/shared-ux-link-redirect-app-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-link-redirect-app-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-link-redirect-app-mocks'] --- import kbnSharedUxLinkRedirectAppMocksObj from './kbn_shared_ux_link_redirect_app_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_markdown.mdx b/api_docs/kbn_shared_ux_markdown.mdx index 21523bac6f41..17189623a529 100644 --- a/api_docs/kbn_shared_ux_markdown.mdx +++ b/api_docs/kbn_shared_ux_markdown.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-markdown title: "@kbn/shared-ux-markdown" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-markdown plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-markdown'] --- import kbnSharedUxMarkdownObj from './kbn_shared_ux_markdown.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_markdown_mocks.mdx b/api_docs/kbn_shared_ux_markdown_mocks.mdx index 1f326700d14a..1817408a1435 100644 --- a/api_docs/kbn_shared_ux_markdown_mocks.mdx +++ b/api_docs/kbn_shared_ux_markdown_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-markdown-mocks title: "@kbn/shared-ux-markdown-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-markdown-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-markdown-mocks'] --- import kbnSharedUxMarkdownMocksObj from './kbn_shared_ux_markdown_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_analytics_no_data.mdx b/api_docs/kbn_shared_ux_page_analytics_no_data.mdx index 88be05c18afa..78b88625273a 100644 --- a/api_docs/kbn_shared_ux_page_analytics_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_analytics_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-analytics-no-data title: "@kbn/shared-ux-page-analytics-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-analytics-no-data plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-analytics-no-data'] --- import kbnSharedUxPageAnalyticsNoDataObj from './kbn_shared_ux_page_analytics_no_data.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx b/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx index 74152788e10e..9885b9811f0b 100644 --- a/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-analytics-no-data-mocks title: "@kbn/shared-ux-page-analytics-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-analytics-no-data-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-analytics-no-data-mocks'] --- import kbnSharedUxPageAnalyticsNoDataMocksObj from './kbn_shared_ux_page_analytics_no_data_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_kibana_no_data.mdx b/api_docs/kbn_shared_ux_page_kibana_no_data.mdx index 594ac5aa94e0..3f0495e05e64 100644 --- a/api_docs/kbn_shared_ux_page_kibana_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-no-data title: "@kbn/shared-ux-page-kibana-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-no-data plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-no-data'] --- import kbnSharedUxPageKibanaNoDataObj from './kbn_shared_ux_page_kibana_no_data.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx b/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx index d0bc1d4e016e..cceee7a34091 100644 --- a/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-no-data-mocks title: "@kbn/shared-ux-page-kibana-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-no-data-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-no-data-mocks'] --- import kbnSharedUxPageKibanaNoDataMocksObj from './kbn_shared_ux_page_kibana_no_data_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_kibana_template.mdx b/api_docs/kbn_shared_ux_page_kibana_template.mdx index ce6ff349ee37..0c26d2e6c663 100644 --- a/api_docs/kbn_shared_ux_page_kibana_template.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_template.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-template title: "@kbn/shared-ux-page-kibana-template" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-template plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-template'] --- import kbnSharedUxPageKibanaTemplateObj from './kbn_shared_ux_page_kibana_template.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx b/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx index 48b2e927b75f..35224a1d3723 100644 --- a/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-template-mocks title: "@kbn/shared-ux-page-kibana-template-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-template-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-template-mocks'] --- import kbnSharedUxPageKibanaTemplateMocksObj from './kbn_shared_ux_page_kibana_template_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_no_data.mdx b/api_docs/kbn_shared_ux_page_no_data.mdx index f8bd74793a86..891c1ef5cf11 100644 --- a/api_docs/kbn_shared_ux_page_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data title: "@kbn/shared-ux-page-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data'] --- import kbnSharedUxPageNoDataObj from './kbn_shared_ux_page_no_data.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_no_data_config.mdx b/api_docs/kbn_shared_ux_page_no_data_config.mdx index 3032aa1c1582..1f708fb570cb 100644 --- a/api_docs/kbn_shared_ux_page_no_data_config.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-config title: "@kbn/shared-ux-page-no-data-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-config plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data-config'] --- import kbnSharedUxPageNoDataConfigObj from './kbn_shared_ux_page_no_data_config.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx b/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx index e8d023533e89..5a5fcda5e929 100644 --- a/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-config-mocks title: "@kbn/shared-ux-page-no-data-config-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-config-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data-config-mocks'] --- import kbnSharedUxPageNoDataConfigMocksObj from './kbn_shared_ux_page_no_data_config_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_no_data_mocks.mdx b/api_docs/kbn_shared_ux_page_no_data_mocks.mdx index 729c1581c427..da7cdb477d8c 100644 --- a/api_docs/kbn_shared_ux_page_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-mocks title: "@kbn/shared-ux-page-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data-mocks'] --- import kbnSharedUxPageNoDataMocksObj from './kbn_shared_ux_page_no_data_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_solution_nav.mdx b/api_docs/kbn_shared_ux_page_solution_nav.mdx index 0bd68b9280d3..014c5a61ad30 100644 --- a/api_docs/kbn_shared_ux_page_solution_nav.mdx +++ b/api_docs/kbn_shared_ux_page_solution_nav.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-solution-nav title: "@kbn/shared-ux-page-solution-nav" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-solution-nav plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-solution-nav'] --- import kbnSharedUxPageSolutionNavObj from './kbn_shared_ux_page_solution_nav.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_prompt_no_data_views.mdx b/api_docs/kbn_shared_ux_prompt_no_data_views.mdx index 36c550d5909b..2328a4397af5 100644 --- a/api_docs/kbn_shared_ux_prompt_no_data_views.mdx +++ b/api_docs/kbn_shared_ux_prompt_no_data_views.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-no-data-views title: "@kbn/shared-ux-prompt-no-data-views" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-no-data-views plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-no-data-views'] --- import kbnSharedUxPromptNoDataViewsObj from './kbn_shared_ux_prompt_no_data_views.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx b/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx index f44f46d1bf3e..e4a5ad98a694 100644 --- a/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx +++ b/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-no-data-views-mocks title: "@kbn/shared-ux-prompt-no-data-views-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-no-data-views-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-no-data-views-mocks'] --- import kbnSharedUxPromptNoDataViewsMocksObj from './kbn_shared_ux_prompt_no_data_views_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_prompt_not_found.mdx b/api_docs/kbn_shared_ux_prompt_not_found.mdx index 7b4b611ba749..f4f357b10800 100644 --- a/api_docs/kbn_shared_ux_prompt_not_found.mdx +++ b/api_docs/kbn_shared_ux_prompt_not_found.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-not-found title: "@kbn/shared-ux-prompt-not-found" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-not-found plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-not-found'] --- import kbnSharedUxPromptNotFoundObj from './kbn_shared_ux_prompt_not_found.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_router.mdx b/api_docs/kbn_shared_ux_router.mdx index f2f10aaa7090..cf843b74cfaf 100644 --- a/api_docs/kbn_shared_ux_router.mdx +++ b/api_docs/kbn_shared_ux_router.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-router title: "@kbn/shared-ux-router" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-router plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-router'] --- import kbnSharedUxRouterObj from './kbn_shared_ux_router.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_router_mocks.mdx b/api_docs/kbn_shared_ux_router_mocks.mdx index 875eeebf0386..411da85281a0 100644 --- a/api_docs/kbn_shared_ux_router_mocks.mdx +++ b/api_docs/kbn_shared_ux_router_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-router-mocks title: "@kbn/shared-ux-router-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-router-mocks plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-router-mocks'] --- import kbnSharedUxRouterMocksObj from './kbn_shared_ux_router_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_storybook_config.mdx b/api_docs/kbn_shared_ux_storybook_config.mdx index 954c13d4b4c8..3dcd3fd16c31 100644 --- a/api_docs/kbn_shared_ux_storybook_config.mdx +++ b/api_docs/kbn_shared_ux_storybook_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-storybook-config title: "@kbn/shared-ux-storybook-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-storybook-config plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-storybook-config'] --- import kbnSharedUxStorybookConfigObj from './kbn_shared_ux_storybook_config.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_storybook_mock.mdx b/api_docs/kbn_shared_ux_storybook_mock.mdx index ea21ea7c03bc..aaff3cbae701 100644 --- a/api_docs/kbn_shared_ux_storybook_mock.mdx +++ b/api_docs/kbn_shared_ux_storybook_mock.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-storybook-mock title: "@kbn/shared-ux-storybook-mock" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-storybook-mock plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-storybook-mock'] --- import kbnSharedUxStorybookMockObj from './kbn_shared_ux_storybook_mock.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_utility.mdx b/api_docs/kbn_shared_ux_utility.mdx index 6239fedcc9cb..728833559ff3 100644 --- a/api_docs/kbn_shared_ux_utility.mdx +++ b/api_docs/kbn_shared_ux_utility.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-utility title: "@kbn/shared-ux-utility" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-utility plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-utility'] --- import kbnSharedUxUtilityObj from './kbn_shared_ux_utility.devdocs.json'; diff --git a/api_docs/kbn_slo_schema.mdx b/api_docs/kbn_slo_schema.mdx index 4826a46c18d1..eafeacdc3873 100644 --- a/api_docs/kbn_slo_schema.mdx +++ b/api_docs/kbn_slo_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-slo-schema title: "@kbn/slo-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/slo-schema plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/slo-schema'] --- import kbnSloSchemaObj from './kbn_slo_schema.devdocs.json'; diff --git a/api_docs/kbn_some_dev_log.mdx b/api_docs/kbn_some_dev_log.mdx index b1ce48eac65c..2a905ca49cda 100644 --- a/api_docs/kbn_some_dev_log.mdx +++ b/api_docs/kbn_some_dev_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-some-dev-log title: "@kbn/some-dev-log" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/some-dev-log plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/some-dev-log'] --- import kbnSomeDevLogObj from './kbn_some_dev_log.devdocs.json'; diff --git a/api_docs/kbn_std.mdx b/api_docs/kbn_std.mdx index a88939913f53..e459334f636d 100644 --- a/api_docs/kbn_std.mdx +++ b/api_docs/kbn_std.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-std title: "@kbn/std" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/std plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/std'] --- import kbnStdObj from './kbn_std.devdocs.json'; diff --git a/api_docs/kbn_stdio_dev_helpers.mdx b/api_docs/kbn_stdio_dev_helpers.mdx index 0e70e03dd440..e1f166ac9e07 100644 --- a/api_docs/kbn_stdio_dev_helpers.mdx +++ b/api_docs/kbn_stdio_dev_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-stdio-dev-helpers title: "@kbn/stdio-dev-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/stdio-dev-helpers plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/stdio-dev-helpers'] --- import kbnStdioDevHelpersObj from './kbn_stdio_dev_helpers.devdocs.json'; diff --git a/api_docs/kbn_storybook.mdx b/api_docs/kbn_storybook.mdx index 3b468a59d469..42170d62a044 100644 --- a/api_docs/kbn_storybook.mdx +++ b/api_docs/kbn_storybook.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-storybook title: "@kbn/storybook" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/storybook plugin -date: 2023-01-23 +date: 2023-01-24 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 674fb0b25ffa..991491f0751f 100644 --- a/api_docs/kbn_telemetry_tools.mdx +++ b/api_docs/kbn_telemetry_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-telemetry-tools title: "@kbn/telemetry-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/telemetry-tools plugin -date: 2023-01-23 +date: 2023-01-24 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 8bc63b61812a..24e08a2548f0 100644 --- a/api_docs/kbn_test.mdx +++ b/api_docs/kbn_test.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test title: "@kbn/test" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test'] --- import kbnTestObj from './kbn_test.devdocs.json'; diff --git a/api_docs/kbn_test_jest_helpers.mdx b/api_docs/kbn_test_jest_helpers.mdx index db8abf09889d..4f47a743598a 100644 --- a/api_docs/kbn_test_jest_helpers.mdx +++ b/api_docs/kbn_test_jest_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-jest-helpers title: "@kbn/test-jest-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test-jest-helpers plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test-jest-helpers'] --- import kbnTestJestHelpersObj from './kbn_test_jest_helpers.devdocs.json'; diff --git a/api_docs/kbn_test_subj_selector.mdx b/api_docs/kbn_test_subj_selector.mdx index cf8b64c5240a..de9f86c2a275 100644 --- a/api_docs/kbn_test_subj_selector.mdx +++ b/api_docs/kbn_test_subj_selector.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-subj-selector title: "@kbn/test-subj-selector" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test-subj-selector plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test-subj-selector'] --- import kbnTestSubjSelectorObj from './kbn_test_subj_selector.devdocs.json'; diff --git a/api_docs/kbn_tooling_log.mdx b/api_docs/kbn_tooling_log.mdx index 82d2693bbba4..0a67dd81eaf7 100644 --- a/api_docs/kbn_tooling_log.mdx +++ b/api_docs/kbn_tooling_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-tooling-log title: "@kbn/tooling-log" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/tooling-log plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/tooling-log'] --- import kbnToolingLogObj from './kbn_tooling_log.devdocs.json'; diff --git a/api_docs/kbn_ts_projects.mdx b/api_docs/kbn_ts_projects.mdx index 1534dd1aeb10..4a3866d17e3a 100644 --- a/api_docs/kbn_ts_projects.mdx +++ b/api_docs/kbn_ts_projects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ts-projects title: "@kbn/ts-projects" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ts-projects plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ts-projects'] --- import kbnTsProjectsObj from './kbn_ts_projects.devdocs.json'; diff --git a/api_docs/kbn_typed_react_router_config.mdx b/api_docs/kbn_typed_react_router_config.mdx index 3f48fac5959e..5f0109460453 100644 --- a/api_docs/kbn_typed_react_router_config.mdx +++ b/api_docs/kbn_typed_react_router_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-typed-react-router-config title: "@kbn/typed-react-router-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/typed-react-router-config plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/typed-react-router-config'] --- import kbnTypedReactRouterConfigObj from './kbn_typed_react_router_config.devdocs.json'; diff --git a/api_docs/kbn_ui_actions_browser.mdx b/api_docs/kbn_ui_actions_browser.mdx index dc0896b76d2a..0c07efce09e5 100644 --- a/api_docs/kbn_ui_actions_browser.mdx +++ b/api_docs/kbn_ui_actions_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-actions-browser title: "@kbn/ui-actions-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-actions-browser plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-actions-browser'] --- import kbnUiActionsBrowserObj from './kbn_ui_actions_browser.devdocs.json'; diff --git a/api_docs/kbn_ui_shared_deps_src.mdx b/api_docs/kbn_ui_shared_deps_src.mdx index d235a96b1940..6bf235465a72 100644 --- a/api_docs/kbn_ui_shared_deps_src.mdx +++ b/api_docs/kbn_ui_shared_deps_src.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-shared-deps-src title: "@kbn/ui-shared-deps-src" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-shared-deps-src plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-shared-deps-src'] --- import kbnUiSharedDepsSrcObj from './kbn_ui_shared_deps_src.devdocs.json'; diff --git a/api_docs/kbn_ui_theme.mdx b/api_docs/kbn_ui_theme.mdx index 2062c1cec80b..17a19f4939f3 100644 --- a/api_docs/kbn_ui_theme.mdx +++ b/api_docs/kbn_ui_theme.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-theme title: "@kbn/ui-theme" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-theme plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-theme'] --- import kbnUiThemeObj from './kbn_ui_theme.devdocs.json'; diff --git a/api_docs/kbn_user_profile_components.mdx b/api_docs/kbn_user_profile_components.mdx index ec8b39956d5f..44336a7dba89 100644 --- a/api_docs/kbn_user_profile_components.mdx +++ b/api_docs/kbn_user_profile_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-user-profile-components title: "@kbn/user-profile-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/user-profile-components plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/user-profile-components'] --- import kbnUserProfileComponentsObj from './kbn_user_profile_components.devdocs.json'; diff --git a/api_docs/kbn_utility_types.mdx b/api_docs/kbn_utility_types.mdx index 1427c0d970bf..0b3c7a242736 100644 --- a/api_docs/kbn_utility_types.mdx +++ b/api_docs/kbn_utility_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utility-types title: "@kbn/utility-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utility-types plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/utility-types'] --- import kbnUtilityTypesObj from './kbn_utility_types.devdocs.json'; diff --git a/api_docs/kbn_utility_types_jest.mdx b/api_docs/kbn_utility_types_jest.mdx index d2240f2ca4d6..2fef44fc5b17 100644 --- a/api_docs/kbn_utility_types_jest.mdx +++ b/api_docs/kbn_utility_types_jest.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utility-types-jest title: "@kbn/utility-types-jest" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utility-types-jest plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/utility-types-jest'] --- import kbnUtilityTypesJestObj from './kbn_utility_types_jest.devdocs.json'; diff --git a/api_docs/kbn_utils.mdx b/api_docs/kbn_utils.mdx index 25cb237a4ade..f0570e9080b4 100644 --- a/api_docs/kbn_utils.mdx +++ b/api_docs/kbn_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utils title: "@kbn/utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utils plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/utils'] --- import kbnUtilsObj from './kbn_utils.devdocs.json'; diff --git a/api_docs/kbn_yarn_lock_validator.mdx b/api_docs/kbn_yarn_lock_validator.mdx index cffb97c1d533..a260131c2477 100644 --- a/api_docs/kbn_yarn_lock_validator.mdx +++ b/api_docs/kbn_yarn_lock_validator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-yarn-lock-validator title: "@kbn/yarn-lock-validator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/yarn-lock-validator plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/yarn-lock-validator'] --- import kbnYarnLockValidatorObj from './kbn_yarn_lock_validator.devdocs.json'; diff --git a/api_docs/kibana_overview.mdx b/api_docs/kibana_overview.mdx index 85b8bd0f9880..ec5441569c8d 100644 --- a/api_docs/kibana_overview.mdx +++ b/api_docs/kibana_overview.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaOverview title: "kibanaOverview" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaOverview plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaOverview'] --- import kibanaOverviewObj from './kibana_overview.devdocs.json'; diff --git a/api_docs/kibana_react.devdocs.json b/api_docs/kibana_react.devdocs.json index 38fd13a5e66a..9d5150e97522 100644 --- a/api_docs/kibana_react.devdocs.json +++ b/api_docs/kibana_react.devdocs.json @@ -580,18 +580,6 @@ "plugin": "home", "path": "src/plugins/home/public/application/components/tutorial/tutorial.js" }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/components/ml_page/ml_page.tsx" - }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/components/ml_page/ml_page.tsx" - }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/components/ml_page/ml_page.tsx" - }, { "plugin": "canvas", "path": "x-pack/plugins/canvas/public/components/home/home.component.tsx" @@ -1316,18 +1304,6 @@ "plugin": "observability", "path": "x-pack/plugins/observability/public/application/index.tsx" }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/components/ml_page/ml_page.tsx" - }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/components/ml_page/ml_page.tsx" - }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/components/ml_page/ml_page.tsx" - }, { "plugin": "ml", "path": "x-pack/plugins/ml/public/application/management/jobs_list/components/jobs_list_page/jobs_list_page.tsx" diff --git a/api_docs/kibana_react.mdx b/api_docs/kibana_react.mdx index 751d6620108a..291b5ca3202c 100644 --- a/api_docs/kibana_react.mdx +++ b/api_docs/kibana_react.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaReact title: "kibanaReact" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaReact plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaReact'] --- import kibanaReactObj from './kibana_react.devdocs.json'; diff --git a/api_docs/kibana_utils.mdx b/api_docs/kibana_utils.mdx index 118b109e5689..e4801f606a94 100644 --- a/api_docs/kibana_utils.mdx +++ b/api_docs/kibana_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaUtils title: "kibanaUtils" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaUtils plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaUtils'] --- import kibanaUtilsObj from './kibana_utils.devdocs.json'; diff --git a/api_docs/kubernetes_security.mdx b/api_docs/kubernetes_security.mdx index 95212ed32d42..5c623d4de19e 100644 --- a/api_docs/kubernetes_security.mdx +++ b/api_docs/kubernetes_security.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kubernetesSecurity title: "kubernetesSecurity" image: https://source.unsplash.com/400x175/?github description: API docs for the kubernetesSecurity plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kubernetesSecurity'] --- import kubernetesSecurityObj from './kubernetes_security.devdocs.json'; diff --git a/api_docs/lens.devdocs.json b/api_docs/lens.devdocs.json index 2a328fffb3a3..222009d8f902 100644 --- a/api_docs/lens.devdocs.json +++ b/api_docs/lens.devdocs.json @@ -181,6 +181,57 @@ ], "returnComment": [] }, + { + "parentPluginId": "lens", + "id": "def-public.Embeddable.getUserMessages", + "type": "Function", + "tags": [], + "label": "getUserMessages", + "description": [], + "signature": [ + "(locationId: \"banner\" | \"toolbar\" | \"visualization\" | \"embeddableBadge\" | \"visualizationOnEmbeddable\" | \"visualizationInEditor\" | \"textBasedLanguagesQueryInput\" | \"dimensionTrigger\" | (\"banner\" | \"toolbar\" | \"visualization\" | \"embeddableBadge\" | \"visualizationOnEmbeddable\" | \"visualizationInEditor\" | \"textBasedLanguagesQueryInput\" | \"dimensionTrigger\")[] | undefined, filters: ", + "UserMessageFilters", + ") => ", + "UserMessage", + "[]" + ], + "path": "x-pack/plugins/lens/public/embeddable/embeddable.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "lens", + "id": "def-public.Embeddable.getUserMessages.$1", + "type": "CompoundType", + "tags": [], + "label": "locationId", + "description": [], + "signature": [ + "\"banner\" | \"toolbar\" | \"visualization\" | \"embeddableBadge\" | \"visualizationOnEmbeddable\" | \"visualizationInEditor\" | \"textBasedLanguagesQueryInput\" | \"dimensionTrigger\" | (\"banner\" | \"toolbar\" | \"visualization\" | \"embeddableBadge\" | \"visualizationOnEmbeddable\" | \"visualizationInEditor\" | \"textBasedLanguagesQueryInput\" | \"dimensionTrigger\")[] | undefined" + ], + "path": "x-pack/plugins/lens/public/embeddable/embeddable.tsx", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + }, + { + "parentPluginId": "lens", + "id": "def-public.Embeddable.getUserMessages.$2", + "type": "Object", + "tags": [], + "label": "filters", + "description": [], + "signature": [ + "UserMessageFilters" + ], + "path": "x-pack/plugins/lens/public/embeddable/embeddable.tsx", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, { "parentPluginId": "lens", "id": "def-public.Embeddable.reportsEmbeddableLoad", @@ -6394,7 +6445,7 @@ "\nRenders dimension trigger. Used only for noDatasource layers" ], "signature": [ - "((props: { columnId: string; label: string; hideTooltip?: boolean | undefined; invalid?: boolean | undefined; invalidMessage?: string | undefined; }) => JSX.Element | null) | undefined" + "((props: { columnId: string; label: string; hideTooltip?: boolean | undefined; invalid?: boolean | undefined; invalidMessage?: React.ReactNode; }) => JSX.Element | null) | undefined" ], "path": "x-pack/plugins/lens/public/types.ts", "deprecated": false, @@ -6464,12 +6515,12 @@ { "parentPluginId": "lens", "id": "def-public.Visualization.renderDimensionTrigger.$1.invalidMessage", - "type": "string", + "type": "CompoundType", "tags": [], "label": "invalidMessage", "description": [], "signature": [ - "string | undefined" + "boolean | React.ReactChild | React.ReactFragment | React.ReactPortal | null | undefined" ], "path": "x-pack/plugins/lens/public/types.ts", "deprecated": false, @@ -6794,169 +6845,19 @@ }, { "parentPluginId": "lens", - "id": "def-public.Visualization.getErrorMessages", + "id": "def-public.Visualization.getUserMessages", "type": "Function", "tags": [], - "label": "getErrorMessages", + "label": "getUserMessages", "description": [ "\nThe frame will call this function on all visualizations at few stages (pre-build/build error) in order\nto provide more context to the error and show it to the user" ], "signature": [ - "(state: T, frame?: Pick<", - "FramePublicAPI", - ", \"dataViews\" | \"datasourceLayers\"> | undefined) => { shortMessage: string; longMessage: React.ReactNode; }[] | undefined" - ], - "path": "x-pack/plugins/lens/public/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "lens", - "id": "def-public.Visualization.getErrorMessages.$1", - "type": "Uncategorized", - "tags": [], - "label": "state", - "description": [], - "signature": [ - "T" - ], - "path": "x-pack/plugins/lens/public/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "lens", - "id": "def-public.Visualization.getErrorMessages.$2", - "type": "Object", - "tags": [], - "label": "frame", - "description": [], - "signature": [ - "Pick<", - "FramePublicAPI", - ", \"dataViews\" | \"datasourceLayers\"> | undefined" - ], - "path": "x-pack/plugins/lens/public/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "lens", - "id": "def-public.Visualization.validateColumn", - "type": "Function", - "tags": [], - "label": "validateColumn", - "description": [], - "signature": [ - "((state: T, frame: Pick<", - "FramePublicAPI", - ", \"dataViews\">, layerId: string, columnId: string, group?: ", - "VisualizationDimensionGroupConfig", - " | undefined) => { invalid: boolean; invalidMessage?: string | undefined; }) | undefined" - ], - "path": "x-pack/plugins/lens/public/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "lens", - "id": "def-public.Visualization.validateColumn.$1", - "type": "Uncategorized", - "tags": [], - "label": "state", - "description": [], - "signature": [ - "T" - ], - "path": "x-pack/plugins/lens/public/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "lens", - "id": "def-public.Visualization.validateColumn.$2", - "type": "Object", - "tags": [], - "label": "frame", - "description": [], - "signature": [ - "Pick<", - "FramePublicAPI", - ", \"dataViews\">" - ], - "path": "x-pack/plugins/lens/public/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "lens", - "id": "def-public.Visualization.validateColumn.$3", - "type": "string", - "tags": [], - "label": "layerId", - "description": [], - "signature": [ - "string" - ], - "path": "x-pack/plugins/lens/public/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "lens", - "id": "def-public.Visualization.validateColumn.$4", - "type": "string", - "tags": [], - "label": "columnId", - "description": [], - "signature": [ - "string" - ], - "path": "x-pack/plugins/lens/public/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "lens", - "id": "def-public.Visualization.validateColumn.$5", - "type": "CompoundType", - "tags": [], - "label": "group", - "description": [], - "signature": [ - "VisualizationDimensionGroupConfig", - " | undefined" - ], - "path": "x-pack/plugins/lens/public/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "lens", - "id": "def-public.Visualization.getWarningMessages", - "type": "Function", - "tags": [], - "label": "getWarningMessages", - "description": [ - "\nThe frame calls this function to display warnings about visualization" - ], - "signature": [ - "((state: T, frame: ", + "((state: T, deps: { frame: ", "FramePublicAPI", - ") => React.ReactNode[] | undefined) | undefined" + "; }) => ", + "UserMessage", + "[]) | undefined" ], "path": "x-pack/plugins/lens/public/types.ts", "deprecated": false, @@ -6964,7 +6865,7 @@ "children": [ { "parentPluginId": "lens", - "id": "def-public.Visualization.getWarningMessages.$1", + "id": "def-public.Visualization.getUserMessages.$1", "type": "Uncategorized", "tags": [], "label": "state", @@ -6979,18 +6880,30 @@ }, { "parentPluginId": "lens", - "id": "def-public.Visualization.getWarningMessages.$2", + "id": "def-public.Visualization.getUserMessages.$2", "type": "Object", "tags": [], - "label": "frame", + "label": "deps", "description": [], - "signature": [ - "FramePublicAPI" - ], "path": "x-pack/plugins/lens/public/types.ts", "deprecated": false, "trackAdoption": false, - "isRequired": true + "children": [ + { + "parentPluginId": "lens", + "id": "def-public.Visualization.getUserMessages.$2.frame", + "type": "Object", + "tags": [], + "label": "frame", + "description": [], + "signature": [ + "FramePublicAPI" + ], + "path": "x-pack/plugins/lens/public/types.ts", + "deprecated": false, + "trackAdoption": false + } + ] } ], "returnComment": [] diff --git a/api_docs/lens.mdx b/api_docs/lens.mdx index dea24ab0fa93..91643daa835c 100644 --- a/api_docs/lens.mdx +++ b/api_docs/lens.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/lens title: "lens" image: https://source.unsplash.com/400x175/?github description: API docs for the lens plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'lens'] --- import lensObj from './lens.devdocs.json'; @@ -21,7 +21,7 @@ Contact [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualization | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 698 | 0 | 602 | 50 | +| 693 | 0 | 598 | 52 | ## Client diff --git a/api_docs/license_api_guard.mdx b/api_docs/license_api_guard.mdx index 54678407a88b..ef480ba5f928 100644 --- a/api_docs/license_api_guard.mdx +++ b/api_docs/license_api_guard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licenseApiGuard title: "licenseApiGuard" image: https://source.unsplash.com/400x175/?github description: API docs for the licenseApiGuard plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'licenseApiGuard'] --- import licenseApiGuardObj from './license_api_guard.devdocs.json'; diff --git a/api_docs/license_management.mdx b/api_docs/license_management.mdx index 7a327d7e8cd8..8ca729ecbd00 100644 --- a/api_docs/license_management.mdx +++ b/api_docs/license_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licenseManagement title: "licenseManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the licenseManagement plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'licenseManagement'] --- import licenseManagementObj from './license_management.devdocs.json'; diff --git a/api_docs/licensing.mdx b/api_docs/licensing.mdx index 50959f018867..35357f5f36bd 100644 --- a/api_docs/licensing.mdx +++ b/api_docs/licensing.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licensing title: "licensing" image: https://source.unsplash.com/400x175/?github description: API docs for the licensing plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'licensing'] --- import licensingObj from './licensing.devdocs.json'; diff --git a/api_docs/lists.mdx b/api_docs/lists.mdx index 3bf51da3689e..c22bfac5d3dd 100644 --- a/api_docs/lists.mdx +++ b/api_docs/lists.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/lists title: "lists" image: https://source.unsplash.com/400x175/?github description: API docs for the lists plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'lists'] --- import listsObj from './lists.devdocs.json'; diff --git a/api_docs/management.mdx b/api_docs/management.mdx index 3843f133a7c0..9c49a4bacd7c 100644 --- a/api_docs/management.mdx +++ b/api_docs/management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/management title: "management" image: https://source.unsplash.com/400x175/?github description: API docs for the management plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'management'] --- import managementObj from './management.devdocs.json'; diff --git a/api_docs/maps.mdx b/api_docs/maps.mdx index 308a442d8440..32a3531008d0 100644 --- a/api_docs/maps.mdx +++ b/api_docs/maps.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/maps title: "maps" image: https://source.unsplash.com/400x175/?github description: API docs for the maps plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'maps'] --- import mapsObj from './maps.devdocs.json'; diff --git a/api_docs/maps_ems.mdx b/api_docs/maps_ems.mdx index df2378722a4f..6d42c9f0a0fd 100644 --- a/api_docs/maps_ems.mdx +++ b/api_docs/maps_ems.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/mapsEms title: "mapsEms" image: https://source.unsplash.com/400x175/?github description: API docs for the mapsEms plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'mapsEms'] --- import mapsEmsObj from './maps_ems.devdocs.json'; diff --git a/api_docs/ml.mdx b/api_docs/ml.mdx index b862c56eda85..e9fff64a1894 100644 --- a/api_docs/ml.mdx +++ b/api_docs/ml.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ml title: "ml" image: https://source.unsplash.com/400x175/?github description: API docs for the ml plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ml'] --- import mlObj from './ml.devdocs.json'; diff --git a/api_docs/monitoring.mdx b/api_docs/monitoring.mdx index 7037c88bc93f..1496a072adbd 100644 --- a/api_docs/monitoring.mdx +++ b/api_docs/monitoring.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/monitoring title: "monitoring" image: https://source.unsplash.com/400x175/?github description: API docs for the monitoring plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'monitoring'] --- import monitoringObj from './monitoring.devdocs.json'; diff --git a/api_docs/monitoring_collection.mdx b/api_docs/monitoring_collection.mdx index 9759dd3c2cf7..15be10b40cc4 100644 --- a/api_docs/monitoring_collection.mdx +++ b/api_docs/monitoring_collection.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/monitoringCollection title: "monitoringCollection" image: https://source.unsplash.com/400x175/?github description: API docs for the monitoringCollection plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'monitoringCollection'] --- import monitoringCollectionObj from './monitoring_collection.devdocs.json'; diff --git a/api_docs/navigation.mdx b/api_docs/navigation.mdx index d0595e73e6ae..7637ab1a93ad 100644 --- a/api_docs/navigation.mdx +++ b/api_docs/navigation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/navigation title: "navigation" image: https://source.unsplash.com/400x175/?github description: API docs for the navigation plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'navigation'] --- import navigationObj from './navigation.devdocs.json'; diff --git a/api_docs/newsfeed.mdx b/api_docs/newsfeed.mdx index 65ae4a25bb31..22e51d34dcff 100644 --- a/api_docs/newsfeed.mdx +++ b/api_docs/newsfeed.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/newsfeed title: "newsfeed" image: https://source.unsplash.com/400x175/?github description: API docs for the newsfeed plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'newsfeed'] --- import newsfeedObj from './newsfeed.devdocs.json'; diff --git a/api_docs/notifications.mdx b/api_docs/notifications.mdx index b340b24159c7..ecd955659daa 100644 --- a/api_docs/notifications.mdx +++ b/api_docs/notifications.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/notifications title: "notifications" image: https://source.unsplash.com/400x175/?github description: API docs for the notifications plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'notifications'] --- import notificationsObj from './notifications.devdocs.json'; diff --git a/api_docs/observability.mdx b/api_docs/observability.mdx index 8d3b351cc81d..1100bdcab6fd 100644 --- a/api_docs/observability.mdx +++ b/api_docs/observability.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observability title: "observability" image: https://source.unsplash.com/400x175/?github description: API docs for the observability plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observability'] --- import observabilityObj from './observability.devdocs.json'; diff --git a/api_docs/osquery.mdx b/api_docs/osquery.mdx index b8b655381310..2ae28294b8cd 100644 --- a/api_docs/osquery.mdx +++ b/api_docs/osquery.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/osquery title: "osquery" image: https://source.unsplash.com/400x175/?github description: API docs for the osquery plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'osquery'] --- import osqueryObj from './osquery.devdocs.json'; diff --git a/api_docs/plugin_directory.mdx b/api_docs/plugin_directory.mdx index 52b572450a0e..b2886a71063e 100644 --- a/api_docs/plugin_directory.mdx +++ b/api_docs/plugin_directory.mdx @@ -7,7 +7,7 @@ id: kibDevDocsPluginDirectory slug: /kibana-dev-docs/api-meta/plugin-api-directory title: Directory description: Directory of public APIs available through plugins or packages. -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- @@ -15,22 +15,22 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Count | Plugins or Packages with a
public API | Number of teams | |--------------|----------|------------------------| -| 561 | 463 | 42 | +| 562 | 464 | 42 | ### Public API health stats | API Count | Any Count | Missing comments | Missing exports | |--------------|----------|-----------------|--------| -| 34429 | 526 | 24089 | 1200 | +| 34879 | 527 | 24525 | 1244 | ## Plugin Directory | Plugin name           | Maintaining team | Description | API Cnt | Any Cnt | Missing
comments | Missing
exports | |--------------|----------------|-----------|--------------|----------|---------------|--------| -| | [Response Ops](https://github.com/orgs/elastic/teams/response-ops) | - | 220 | 8 | 215 | 24 | +| | [Response Ops](https://github.com/orgs/elastic/teams/response-ops) | - | 256 | 8 | 251 | 24 | | | [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) | - | 36 | 1 | 32 | 2 | | | [Machine Learning UI](https://github.com/orgs/elastic/teams/ml-ui) | AIOps plugin maintained by ML team. | 12 | 0 | 1 | 2 | -| | [Response Ops](https://github.com/orgs/elastic/teams/response-ops) | - | 465 | 0 | 456 | 38 | +| | [Response Ops](https://github.com/orgs/elastic/teams/response-ops) | - | 467 | 0 | 457 | 39 | | | [APM UI](https://github.com/orgs/elastic/teams/apm-ui) | The user interface for Elastic APM | 42 | 0 | 42 | 61 | | | [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) | - | 9 | 0 | 9 | 0 | | | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | Considering using bfetch capabilities when fetching large amounts of data. This services supports batching HTTP requests and streaming responses back. | 89 | 1 | 74 | 2 | @@ -48,11 +48,11 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [Cloud Security Posture](https://github.com/orgs/elastic/teams/cloud-posture-security) | The cloud security posture plugin | 17 | 0 | 2 | 2 | | | [Stack Management](https://github.com/orgs/elastic/teams/kibana-stack-management) | - | 13 | 0 | 13 | 1 | | | [Kibana Presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | The Controls Plugin contains embeddable components intended to create a simple query interface for end users, and a powerful editing suite that allows dashboard authors to build controls | 264 | 0 | 260 | 9 | -| | [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) | - | 2806 | 17 | 1017 | 0 | +| | [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) | - | 2810 | 17 | 1018 | 0 | | crossClusterReplication | [Stack Management](https://github.com/orgs/elastic/teams/kibana-stack-management) | - | 0 | 0 | 0 | 0 | | customBranding | [global-experience](https://github.com/orgs/elastic/teams/kibana-global-experience) | Enables customization of Kibana | 0 | 0 | 0 | 0 | | | [Fleet](https://github.com/orgs/elastic/teams/fleet) | Add custom data integrations so they can be displayed in the Fleet integrations app | 107 | 0 | 88 | 1 | -| | [Kibana Presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds the Dashboard app to Kibana | 113 | 0 | 109 | 2 | +| | [Kibana Presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds the Dashboard app to Kibana | 171 | 0 | 163 | 10 | | | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | - | 54 | 0 | 51 | 0 | | | [Data Discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | Data services are useful for searching and querying data from Elasticsearch. Helpful utilities include: a re-usable react query bar, KQL autocomplete, async search, Data Views (Index Patterns) and field formatters. | 3276 | 119 | 2578 | 27 | | | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | This plugin provides the ability to create data views via a modal flyout inside Kibana apps | 16 | 0 | 7 | 0 | @@ -69,7 +69,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [Enterprise Search](https://github.com/orgs/elastic/teams/enterprise-search-frontend) | Adds dashboards for discovering and managing Enterprise Search products. | 9 | 0 | 9 | 0 | | | [Stack Management](https://github.com/orgs/elastic/teams/kibana-stack-management) | - | 114 | 3 | 110 | 5 | | | [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) | The Event Annotation service contains expressions for event annotations | 172 | 30 | 172 | 3 | -| | [Response Ops](https://github.com/orgs/elastic/teams/response-ops) | - | 115 | 0 | 115 | 11 | +| | [Response Ops](https://github.com/orgs/elastic/teams/response-ops) | - | 116 | 0 | 116 | 11 | | | [Kibana Presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds 'error' renderer to expressions | 17 | 0 | 15 | 2 | | | [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) | Expression Gauge plugin adds a `gauge` renderer and function to the expression plugin. The renderer will display the `gauge` chart. | 58 | 0 | 58 | 2 | | | [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) | Expression Heatmap plugin adds a `heatmap` renderer and function to the expression plugin. The renderer will display the `heatmap` chart. | 111 | 14 | 107 | 2 | @@ -89,7 +89,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [Machine Learning UI](https://github.com/orgs/elastic/teams/ml-ui) | The file upload plugin contains components and services for uploading a file, analyzing its data, and then importing the data into an Elasticsearch index. Supported file types include CSV, TSV, newline-delimited JSON and GeoJSON. | 62 | 0 | 62 | 2 | | | [@elastic/kibana-app-services](https://github.com/orgs/elastic/teams/team:AppServicesUx) | File upload, download, sharing, and serving over HTTP implementation in Kibana. | 254 | 1 | 45 | 5 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/@elastic/appex-sharedux) | Simple UI for managing files in Kibana | 2 | 1 | 2 | 0 | -| | [Fleet](https://github.com/orgs/elastic/teams/fleet) | - | 1039 | 3 | 934 | 24 | +| | [Fleet](https://github.com/orgs/elastic/teams/fleet) | - | 1040 | 3 | 935 | 25 | | | [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) | - | 68 | 0 | 14 | 5 | | globalSearchBar | [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) | - | 0 | 0 | 0 | 0 | | globalSearchProviders | [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) | - | 0 | 0 | 0 | 0 | @@ -100,7 +100,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/@elastic/appex-sharedux) | Image embeddable | 3 | 0 | 3 | 1 | | | [Stack Management](https://github.com/orgs/elastic/teams/kibana-stack-management) | - | 4 | 0 | 4 | 0 | | | [Stack Management](https://github.com/orgs/elastic/teams/kibana-stack-management) | - | 177 | 0 | 172 | 3 | -| | [Logs and Metrics UI](https://github.com/orgs/elastic/teams/logs-metrics-ui) | This plugin visualizes data from Filebeat and Metricbeat, and integrates with other Observability solutions | 42 | 0 | 39 | 8 | +| | [Logs and Metrics UI](https://github.com/orgs/elastic/teams/logs-metrics-ui) | This plugin visualizes data from Filebeat and Metricbeat, and integrates with other Observability solutions | 43 | 0 | 40 | 9 | | ingestPipelines | [Stack Management](https://github.com/orgs/elastic/teams/kibana-stack-management) | - | 0 | 0 | 0 | 0 | | inputControlVis | [Kibana Presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds Input Control visualization to Kibana | 0 | 0 | 0 | 0 | | | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | - | 123 | 2 | 96 | 4 | @@ -110,7 +110,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | kibanaUsageCollection | [Kibana Telemetry](https://github.com/orgs/elastic/teams/kibana-telemetry) | - | 0 | 0 | 0 | 0 | | | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | - | 609 | 3 | 416 | 9 | | | [Security Team](https://github.com/orgs/elastic/teams/security-team) | - | 3 | 0 | 3 | 1 | -| | [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) | Visualization editor allowing to quickly and easily configure compelling visualizations to use on dashboards and canvas workpads. Exposes components to embed visualizations and link into the Lens editor from within other apps in Kibana. | 698 | 0 | 602 | 50 | +| | [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) | Visualization editor allowing to quickly and easily configure compelling visualizations to use on dashboards and canvas workpads. Exposes components to embed visualizations and link into the Lens editor from within other apps in Kibana. | 693 | 0 | 598 | 52 | | | [Stack Management](https://github.com/orgs/elastic/teams/kibana-stack-management) | - | 8 | 0 | 8 | 0 | | | [Stack Management](https://github.com/orgs/elastic/teams/kibana-stack-management) | - | 3 | 0 | 3 | 0 | | | [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) | - | 117 | 0 | 42 | 10 | @@ -159,7 +159,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [Kibana Telemetry](https://github.com/orgs/elastic/teams/kibana-telemetry) | - | 1 | 0 | 1 | 0 | | | [Kibana Telemetry](https://github.com/orgs/elastic/teams/kibana-telemetry) | - | 5 | 0 | 0 | 0 | | | [Protections Experience Team](https://github.com/orgs/elastic/teams/protections-experience) | Elastic threat intelligence helps you see if you are open to or have been subject to current or historical known threats | 35 | 0 | 15 | 5 | -| | [Security solution](https://github.com/orgs/elastic/teams/security-solution) | - | 257 | 1 | 214 | 21 | +| | [Security solution](https://github.com/orgs/elastic/teams/security-solution) | - | 257 | 1 | 214 | 20 | | | [Machine Learning UI](https://github.com/orgs/elastic/teams/ml-ui) | This plugin provides access to the transforms features provided by Elastic. Transforms enable you to convert existing Elasticsearch indices into summarized indices, which provide opportunities for new insights and analytics. | 4 | 0 | 4 | 1 | | translations | [Kibana Localization](https://github.com/orgs/elastic/teams/kibana-localization) | - | 0 | 0 | 0 | 0 | | | [Response Ops](https://github.com/orgs/elastic/teams/response-ops) | - | 586 | 11 | 557 | 53 | @@ -350,7 +350,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | Kibana Core | - | 4 | 0 | 4 | 0 | | | Kibana Core | - | 112 | 0 | 79 | 45 | | | Kibana Core | - | 12 | 0 | 12 | 0 | -| | Kibana Core | - | 325 | 0 | 95 | 1 | +| | Kibana Core | - | 329 | 0 | 96 | 1 | | | Kibana Core | - | 69 | 0 | 69 | 4 | | | Kibana Core | - | 14 | 0 | 14 | 0 | | | Kibana Core | - | 108 | 1 | 84 | 0 | @@ -363,7 +363,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | Kibana Core | - | 5 | 0 | 5 | 0 | | | Kibana Core | - | 54 | 1 | 48 | 0 | | | Kibana Core | - | 13 | 0 | 12 | 0 | -| | [Owner missing] | - | 4 | 0 | 4 | 0 | +| | [Owner missing] | - | 9 | 0 | 9 | 0 | | | Kibana Core | - | 6 | 0 | 4 | 0 | | | Kibana Core | - | 2 | 0 | 1 | 0 | | | Kibana Core | - | 6 | 0 | 6 | 0 | @@ -442,8 +442,9 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [Owner missing] | - | 13 | 0 | 9 | 0 | | | [Owner missing] | - | 6 | 0 | 6 | 1 | | | [Owner missing] | - | 13 | 2 | 8 | 0 | -| | [Owner missing] | - | 97 | 0 | 94 | 0 | +| | [Owner missing] | - | 99 | 0 | 96 | 0 | | | [Owner missing] | Security Solution auto complete | 56 | 1 | 41 | 1 | +| | [Owner missing] | - | 341 | 1 | 337 | 32 | | | [Owner missing] | security solution elastic search utilities to use across plugins such lists, security_solution, cases, etc... | 67 | 0 | 61 | 1 | | | [Owner missing] | - | 104 | 0 | 93 | 1 | | | [Owner missing] | Security Solution utilities for React hooks | 15 | 0 | 7 | 0 | diff --git a/api_docs/presentation_util.mdx b/api_docs/presentation_util.mdx index 26e7e1c57f34..4a667dbf1b54 100644 --- a/api_docs/presentation_util.mdx +++ b/api_docs/presentation_util.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/presentationUtil title: "presentationUtil" image: https://source.unsplash.com/400x175/?github description: API docs for the presentationUtil plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'presentationUtil'] --- import presentationUtilObj from './presentation_util.devdocs.json'; diff --git a/api_docs/profiling.mdx b/api_docs/profiling.mdx index 90201aa39ea3..f43795525994 100644 --- a/api_docs/profiling.mdx +++ b/api_docs/profiling.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/profiling title: "profiling" image: https://source.unsplash.com/400x175/?github description: API docs for the profiling plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'profiling'] --- import profilingObj from './profiling.devdocs.json'; diff --git a/api_docs/remote_clusters.mdx b/api_docs/remote_clusters.mdx index a6124e49fcec..ae3edb3cae30 100644 --- a/api_docs/remote_clusters.mdx +++ b/api_docs/remote_clusters.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/remoteClusters title: "remoteClusters" image: https://source.unsplash.com/400x175/?github description: API docs for the remoteClusters plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'remoteClusters'] --- import remoteClustersObj from './remote_clusters.devdocs.json'; diff --git a/api_docs/reporting.mdx b/api_docs/reporting.mdx index 6816029fa712..15328235b2ff 100644 --- a/api_docs/reporting.mdx +++ b/api_docs/reporting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/reporting title: "reporting" image: https://source.unsplash.com/400x175/?github description: API docs for the reporting plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'reporting'] --- import reportingObj from './reporting.devdocs.json'; diff --git a/api_docs/rollup.mdx b/api_docs/rollup.mdx index 4a0fe211a688..bb4cd6405283 100644 --- a/api_docs/rollup.mdx +++ b/api_docs/rollup.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/rollup title: "rollup" image: https://source.unsplash.com/400x175/?github description: API docs for the rollup plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'rollup'] --- import rollupObj from './rollup.devdocs.json'; diff --git a/api_docs/rule_registry.devdocs.json b/api_docs/rule_registry.devdocs.json index cc9725bb52f3..7ccd61d57cad 100644 --- a/api_docs/rule_registry.devdocs.json +++ b/api_docs/rule_registry.devdocs.json @@ -1803,7 +1803,9 @@ }, ") => Promise<{ new: { count: number; data: {}[]; }; ongoing: { count: number; data: {}[]; }; recovered: { count: number; data: {}[]; }; }>; name: string; validate?: { params?: ", "RuleTypeParamsValidator", - " | undefined; } | undefined; id: string; cancelAlertsOnRuleTimeout?: boolean | undefined; actionGroups: ", + " | undefined; } | undefined; id: string; cancelAlertsOnRuleTimeout?: boolean | undefined; alerts?: ", + "IRuleTypeAlerts", + " | undefined; actionGroups: ", { "pluginId": "alerting", "scope": "common", @@ -1859,7 +1861,7 @@ "section": "def-common.SavedObjectReference", "text": "SavedObjectReference" }, - "[]) => TParams; } | undefined; isExportable: boolean; defaultScheduleInterval?: string | undefined; ruleTaskTimeout?: string | undefined; doesSetRecoveryContext?: boolean | undefined; }" + "[]) => TParams; } | undefined; isExportable: boolean; defaultScheduleInterval?: string | undefined; ruleTaskTimeout?: string | undefined; doesSetRecoveryContext?: boolean | undefined; autoRecoverAlerts?: boolean | undefined; }" ], "path": "x-pack/plugins/rule_registry/server/utils/create_persistence_rule_type_wrapper.ts", "deprecated": false, diff --git a/api_docs/rule_registry.mdx b/api_docs/rule_registry.mdx index cd5bb058babc..dc7f15d44c7b 100644 --- a/api_docs/rule_registry.mdx +++ b/api_docs/rule_registry.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ruleRegistry title: "ruleRegistry" image: https://source.unsplash.com/400x175/?github description: API docs for the ruleRegistry plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ruleRegistry'] --- import ruleRegistryObj from './rule_registry.devdocs.json'; diff --git a/api_docs/runtime_fields.mdx b/api_docs/runtime_fields.mdx index 9e4c1c5da5b8..5e7496106952 100644 --- a/api_docs/runtime_fields.mdx +++ b/api_docs/runtime_fields.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/runtimeFields title: "runtimeFields" image: https://source.unsplash.com/400x175/?github description: API docs for the runtimeFields plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'runtimeFields'] --- import runtimeFieldsObj from './runtime_fields.devdocs.json'; diff --git a/api_docs/saved_objects.mdx b/api_docs/saved_objects.mdx index e51aa85cd0f3..4773de4ce748 100644 --- a/api_docs/saved_objects.mdx +++ b/api_docs/saved_objects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjects title: "savedObjects" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjects plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjects'] --- import savedObjectsObj from './saved_objects.devdocs.json'; diff --git a/api_docs/saved_objects_finder.mdx b/api_docs/saved_objects_finder.mdx index c187fc74f315..a208b590d5b5 100644 --- a/api_docs/saved_objects_finder.mdx +++ b/api_docs/saved_objects_finder.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsFinder title: "savedObjectsFinder" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsFinder plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsFinder'] --- import savedObjectsFinderObj from './saved_objects_finder.devdocs.json'; diff --git a/api_docs/saved_objects_management.mdx b/api_docs/saved_objects_management.mdx index f181460eda72..c2d4542264ec 100644 --- a/api_docs/saved_objects_management.mdx +++ b/api_docs/saved_objects_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsManagement title: "savedObjectsManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsManagement plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsManagement'] --- import savedObjectsManagementObj from './saved_objects_management.devdocs.json'; diff --git a/api_docs/saved_objects_tagging.mdx b/api_docs/saved_objects_tagging.mdx index 893fbb88ed64..6d87e255e34a 100644 --- a/api_docs/saved_objects_tagging.mdx +++ b/api_docs/saved_objects_tagging.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsTagging title: "savedObjectsTagging" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsTagging plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsTagging'] --- import savedObjectsTaggingObj from './saved_objects_tagging.devdocs.json'; diff --git a/api_docs/saved_objects_tagging_oss.mdx b/api_docs/saved_objects_tagging_oss.mdx index 86d1e07bdf8c..db3a99f65f89 100644 --- a/api_docs/saved_objects_tagging_oss.mdx +++ b/api_docs/saved_objects_tagging_oss.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsTaggingOss title: "savedObjectsTaggingOss" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsTaggingOss plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsTaggingOss'] --- import savedObjectsTaggingOssObj from './saved_objects_tagging_oss.devdocs.json'; diff --git a/api_docs/saved_search.mdx b/api_docs/saved_search.mdx index 48c1a4fc3605..199899b2a42d 100644 --- a/api_docs/saved_search.mdx +++ b/api_docs/saved_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedSearch title: "savedSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the savedSearch plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedSearch'] --- import savedSearchObj from './saved_search.devdocs.json'; diff --git a/api_docs/screenshot_mode.mdx b/api_docs/screenshot_mode.mdx index 9b1d4ee4f94d..afb40e68ed0a 100644 --- a/api_docs/screenshot_mode.mdx +++ b/api_docs/screenshot_mode.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/screenshotMode title: "screenshotMode" image: https://source.unsplash.com/400x175/?github description: API docs for the screenshotMode plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'screenshotMode'] --- import screenshotModeObj from './screenshot_mode.devdocs.json'; diff --git a/api_docs/screenshotting.mdx b/api_docs/screenshotting.mdx index 8646d20df3da..7a4f77ad57fa 100644 --- a/api_docs/screenshotting.mdx +++ b/api_docs/screenshotting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/screenshotting title: "screenshotting" image: https://source.unsplash.com/400x175/?github description: API docs for the screenshotting plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'screenshotting'] --- import screenshottingObj from './screenshotting.devdocs.json'; diff --git a/api_docs/security.mdx b/api_docs/security.mdx index 34a52cb1cce4..b2110708e7ad 100644 --- a/api_docs/security.mdx +++ b/api_docs/security.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/security title: "security" image: https://source.unsplash.com/400x175/?github description: API docs for the security plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'security'] --- import securityObj from './security.devdocs.json'; diff --git a/api_docs/security_solution.mdx b/api_docs/security_solution.mdx index 467e61b1e170..1f4d03c54951 100644 --- a/api_docs/security_solution.mdx +++ b/api_docs/security_solution.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/securitySolution title: "securitySolution" image: https://source.unsplash.com/400x175/?github description: API docs for the securitySolution plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'securitySolution'] --- import securitySolutionObj from './security_solution.devdocs.json'; diff --git a/api_docs/session_view.mdx b/api_docs/session_view.mdx index 6f2a5232ed00..c373e4ac895f 100644 --- a/api_docs/session_view.mdx +++ b/api_docs/session_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/sessionView title: "sessionView" image: https://source.unsplash.com/400x175/?github description: API docs for the sessionView plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'sessionView'] --- import sessionViewObj from './session_view.devdocs.json'; diff --git a/api_docs/share.mdx b/api_docs/share.mdx index 789b2d605394..eb765b8abb7d 100644 --- a/api_docs/share.mdx +++ b/api_docs/share.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/share title: "share" image: https://source.unsplash.com/400x175/?github description: API docs for the share plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'share'] --- import shareObj from './share.devdocs.json'; diff --git a/api_docs/snapshot_restore.mdx b/api_docs/snapshot_restore.mdx index 9e0d060b3751..6a4bec58b36b 100644 --- a/api_docs/snapshot_restore.mdx +++ b/api_docs/snapshot_restore.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/snapshotRestore title: "snapshotRestore" image: https://source.unsplash.com/400x175/?github description: API docs for the snapshotRestore plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'snapshotRestore'] --- import snapshotRestoreObj from './snapshot_restore.devdocs.json'; diff --git a/api_docs/spaces.mdx b/api_docs/spaces.mdx index 3a2e632b21f5..e2196c70e2a0 100644 --- a/api_docs/spaces.mdx +++ b/api_docs/spaces.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/spaces title: "spaces" image: https://source.unsplash.com/400x175/?github description: API docs for the spaces plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'spaces'] --- import spacesObj from './spaces.devdocs.json'; diff --git a/api_docs/stack_alerts.mdx b/api_docs/stack_alerts.mdx index 65ccf5447dc6..6bb32b038969 100644 --- a/api_docs/stack_alerts.mdx +++ b/api_docs/stack_alerts.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/stackAlerts title: "stackAlerts" image: https://source.unsplash.com/400x175/?github description: API docs for the stackAlerts plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'stackAlerts'] --- import stackAlertsObj from './stack_alerts.devdocs.json'; diff --git a/api_docs/stack_connectors.mdx b/api_docs/stack_connectors.mdx index 1a4818419f40..c9b5c7b67b4d 100644 --- a/api_docs/stack_connectors.mdx +++ b/api_docs/stack_connectors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/stackConnectors title: "stackConnectors" image: https://source.unsplash.com/400x175/?github description: API docs for the stackConnectors plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'stackConnectors'] --- import stackConnectorsObj from './stack_connectors.devdocs.json'; diff --git a/api_docs/task_manager.mdx b/api_docs/task_manager.mdx index bebc8d16ce63..6c7b69bc6639 100644 --- a/api_docs/task_manager.mdx +++ b/api_docs/task_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/taskManager title: "taskManager" image: https://source.unsplash.com/400x175/?github description: API docs for the taskManager plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'taskManager'] --- import taskManagerObj from './task_manager.devdocs.json'; diff --git a/api_docs/telemetry.mdx b/api_docs/telemetry.mdx index 9819227f0371..34a58c9c6dfa 100644 --- a/api_docs/telemetry.mdx +++ b/api_docs/telemetry.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetry title: "telemetry" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetry plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetry'] --- import telemetryObj from './telemetry.devdocs.json'; diff --git a/api_docs/telemetry_collection_manager.mdx b/api_docs/telemetry_collection_manager.mdx index 7cdcf1aeb4e4..ddac6ac33dfa 100644 --- a/api_docs/telemetry_collection_manager.mdx +++ b/api_docs/telemetry_collection_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryCollectionManager title: "telemetryCollectionManager" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryCollectionManager plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetryCollectionManager'] --- import telemetryCollectionManagerObj from './telemetry_collection_manager.devdocs.json'; diff --git a/api_docs/telemetry_collection_xpack.mdx b/api_docs/telemetry_collection_xpack.mdx index 03f3319a24a2..4d1e3231f88c 100644 --- a/api_docs/telemetry_collection_xpack.mdx +++ b/api_docs/telemetry_collection_xpack.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryCollectionXpack title: "telemetryCollectionXpack" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryCollectionXpack plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetryCollectionXpack'] --- import telemetryCollectionXpackObj from './telemetry_collection_xpack.devdocs.json'; diff --git a/api_docs/telemetry_management_section.mdx b/api_docs/telemetry_management_section.mdx index 9177ef6b274d..147d3edc5794 100644 --- a/api_docs/telemetry_management_section.mdx +++ b/api_docs/telemetry_management_section.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryManagementSection title: "telemetryManagementSection" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryManagementSection plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetryManagementSection'] --- import telemetryManagementSectionObj from './telemetry_management_section.devdocs.json'; diff --git a/api_docs/threat_intelligence.mdx b/api_docs/threat_intelligence.mdx index a1aa998ce889..04ea56346a8e 100644 --- a/api_docs/threat_intelligence.mdx +++ b/api_docs/threat_intelligence.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/threatIntelligence title: "threatIntelligence" image: https://source.unsplash.com/400x175/?github description: API docs for the threatIntelligence plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'threatIntelligence'] --- import threatIntelligenceObj from './threat_intelligence.devdocs.json'; diff --git a/api_docs/timelines.devdocs.json b/api_docs/timelines.devdocs.json index 2f347aa6d81a..a0b03b6f182b 100644 --- a/api_docs/timelines.devdocs.json +++ b/api_docs/timelines.devdocs.json @@ -2459,7 +2459,13 @@ "description": [], "signature": [ "(data: ", - "Ecs", + { + "pluginId": "@kbn/securitysolution-ecs", + "scope": "common", + "docId": "kibKbnSecuritysolutionEcsPluginApi", + "section": "def-common.EcsSecurityExtension", + "text": "EcsSecurityExtension" + }, ") => boolean" ], "path": "x-pack/plugins/timelines/common/types/timeline/rows/index.ts", @@ -2474,7 +2480,13 @@ "label": "data", "description": [], "signature": [ - "Ecs" + { + "pluginId": "@kbn/securitysolution-ecs", + "scope": "common", + "docId": "kibKbnSecuritysolutionEcsPluginApi", + "section": "def-common.EcsSecurityExtension", + "text": "EcsSecurityExtension" + } ], "path": "x-pack/plugins/timelines/common/types/timeline/rows/index.ts", "deprecated": false, @@ -2493,7 +2505,13 @@ "description": [], "signature": [ "({ contextId, data, isDraggable, scopeId, }: { contextId?: string | undefined; data: ", - "Ecs", + { + "pluginId": "@kbn/securitysolution-ecs", + "scope": "common", + "docId": "kibKbnSecuritysolutionEcsPluginApi", + "section": "def-common.EcsSecurityExtension", + "text": "EcsSecurityExtension" + }, "; isDraggable: boolean; scopeId: string; }) => React.ReactNode" ], "path": "x-pack/plugins/timelines/common/types/timeline/rows/index.ts", @@ -2533,7 +2551,13 @@ "label": "data", "description": [], "signature": [ - "Ecs" + { + "pluginId": "@kbn/securitysolution-ecs", + "scope": "common", + "docId": "kibKbnSecuritysolutionEcsPluginApi", + "section": "def-common.EcsSecurityExtension", + "text": "EcsSecurityExtension" + } ], "path": "x-pack/plugins/timelines/common/types/timeline/rows/index.ts", "deprecated": false, @@ -3351,7 +3375,13 @@ "signature": [ "Maybe", "<", - "Ecs", + { + "pluginId": "@kbn/securitysolution-ecs", + "scope": "common", + "docId": "kibKbnSecuritysolutionEcsPluginApi", + "section": "def-common.EcsSecurityExtension", + "text": "EcsSecurityExtension" + }, "> | undefined" ], "path": "x-pack/plugins/timelines/common/search_strategy/timeline/events/details/index.ts", @@ -3600,7 +3630,13 @@ "label": "ecs", "description": [], "signature": [ - "Ecs" + { + "pluginId": "@kbn/securitysolution-ecs", + "scope": "common", + "docId": "kibKbnSecuritysolutionEcsPluginApi", + "section": "def-common.EcsSecurityExtension", + "text": "EcsSecurityExtension" + } ], "path": "x-pack/plugins/timelines/common/search_strategy/timeline/events/all/index.ts", "deprecated": false, @@ -3974,7 +4010,13 @@ "text": "TimelineNonEcsData" }, "[]; ecsData?: ", - "Ecs", + { + "pluginId": "@kbn/securitysolution-ecs", + "scope": "common", + "docId": "kibKbnSecuritysolutionEcsPluginApi", + "section": "def-common.EcsSecurityExtension", + "text": "EcsSecurityExtension" + }, " | undefined; eventId: string; globalFilters?: ", { "pluginId": "@kbn/es-query", diff --git a/api_docs/timelines.mdx b/api_docs/timelines.mdx index 60e78dee3b9a..bc205c49a267 100644 --- a/api_docs/timelines.mdx +++ b/api_docs/timelines.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/timelines title: "timelines" image: https://source.unsplash.com/400x175/?github description: API docs for the timelines plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'timelines'] --- import timelinesObj from './timelines.devdocs.json'; @@ -21,7 +21,7 @@ Contact [Security solution](https://github.com/orgs/elastic/teams/security-solut | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 257 | 1 | 214 | 21 | +| 257 | 1 | 214 | 20 | ## Client diff --git a/api_docs/transform.mdx b/api_docs/transform.mdx index 851a2bcde33e..c80559eab8dc 100644 --- a/api_docs/transform.mdx +++ b/api_docs/transform.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/transform title: "transform" image: https://source.unsplash.com/400x175/?github description: API docs for the transform plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'transform'] --- import transformObj from './transform.devdocs.json'; diff --git a/api_docs/triggers_actions_ui.devdocs.json b/api_docs/triggers_actions_ui.devdocs.json index 4987c06f62d1..1f9c656c50a7 100644 --- a/api_docs/triggers_actions_ui.devdocs.json +++ b/api_docs/triggers_actions_ui.devdocs.json @@ -3365,7 +3365,7 @@ "description": [], "signature": [ "BasicFields", - " & { tags?: string[] | undefined; kibana?: string[] | undefined; \"@timestamp\"?: string[] | undefined; \"event.action\"?: string[] | undefined; \"kibana.alert.rule.execution.uuid\"?: string[] | undefined; \"kibana.alert.rule.rule_type_id\"?: string[] | undefined; \"kibana.alert.rule.consumer\"?: string[] | undefined; \"kibana.alert\"?: string[] | undefined; \"kibana.alert.rule\"?: string[] | undefined; \"kibana.alert.rule.parameters\"?: string[] | undefined; \"kibana.alert.rule.producer\"?: string[] | undefined; \"kibana.space_ids\"?: string[] | undefined; \"kibana.alert.uuid\"?: string[] | undefined; \"kibana.alert.instance.id\"?: string[] | undefined; \"kibana.alert.start\"?: string[] | undefined; \"kibana.alert.time_range\"?: string[] | undefined; \"kibana.alert.end\"?: string[] | undefined; \"kibana.alert.duration.us\"?: string[] | undefined; \"kibana.alert.severity\"?: string[] | undefined; \"kibana.alert.status\"?: string[] | undefined; \"kibana.alert.flapping\"?: string[] | undefined; \"kibana.version\"?: string[] | undefined; \"ecs.version\"?: string[] | undefined; \"kibana.alert.risk_score\"?: string[] | undefined; \"kibana.alert.workflow_status\"?: string[] | undefined; \"kibana.alert.workflow_user\"?: string[] | undefined; \"kibana.alert.workflow_reason\"?: string[] | undefined; \"kibana.alert.system_status\"?: string[] | undefined; \"kibana.alert.action_group\"?: string[] | undefined; \"kibana.alert.reason\"?: string[] | undefined; \"kibana.alert.case_ids\"?: string[] | undefined; \"kibana.alert.rule.author\"?: string[] | undefined; \"kibana.alert.rule.category\"?: string[] | undefined; \"kibana.alert.rule.uuid\"?: string[] | undefined; \"kibana.alert.rule.created_at\"?: string[] | undefined; \"kibana.alert.rule.created_by\"?: string[] | undefined; \"kibana.alert.rule.description\"?: string[] | undefined; \"kibana.alert.rule.enabled\"?: string[] | undefined; \"kibana.alert.rule.from\"?: string[] | undefined; \"kibana.alert.rule.interval\"?: string[] | undefined; \"kibana.alert.rule.license\"?: string[] | undefined; \"kibana.alert.rule.name\"?: string[] | undefined; \"kibana.alert.rule.note\"?: string[] | undefined; \"kibana.alert.rule.references\"?: string[] | undefined; \"kibana.alert.rule.rule_id\"?: string[] | undefined; \"kibana.alert.rule.rule_name_override\"?: string[] | undefined; \"kibana.alert.rule.tags\"?: string[] | undefined; \"kibana.alert.rule.to\"?: string[] | undefined; \"kibana.alert.rule.type\"?: string[] | undefined; \"kibana.alert.rule.updated_at\"?: string[] | undefined; \"kibana.alert.rule.updated_by\"?: string[] | undefined; \"kibana.alert.rule.version\"?: string[] | undefined; \"kibana.alert.suppression.terms\"?: string[] | undefined; \"kibana.alert.suppression.terms.field\"?: string[] | undefined; \"kibana.alert.suppression.terms.value\"?: string[] | undefined; \"kibana.alert.suppression.start\"?: string[] | undefined; \"kibana.alert.suppression.end\"?: string[] | undefined; \"kibana.alert.suppression.docs_count\"?: string[] | undefined; \"event.kind\"?: string[] | undefined; \"event.module\"?: string[] | undefined; \"kibana.alert.evaluation.threshold\"?: string[] | undefined; \"kibana.alert.evaluation.value\"?: string[] | undefined; \"kibana.alert.building_block_type\"?: string[] | undefined; \"kibana.alert.rule.exceptions_list\"?: string[] | undefined; \"kibana.alert.rule.namespace\"?: string[] | undefined; \"kibana.alert.rule.threat.framework\"?: string[] | undefined; \"kibana.alert.rule.threat.tactic.id\"?: string[] | undefined; \"kibana.alert.rule.threat.tactic.name\"?: string[] | undefined; \"kibana.alert.rule.threat.tactic.reference\"?: string[] | undefined; \"kibana.alert.rule.threat.technique.id\"?: string[] | undefined; \"kibana.alert.rule.threat.technique.name\"?: string[] | undefined; \"kibana.alert.rule.threat.technique.reference\"?: string[] | undefined; \"kibana.alert.rule.threat.technique.subtechnique.id\"?: string[] | undefined; \"kibana.alert.rule.threat.technique.subtechnique.name\"?: string[] | undefined; \"kibana.alert.rule.threat.technique.subtechnique.reference\"?: string[] | undefined; } & { [x: string]: unknown[]; }" + " & { tags?: string[] | undefined; kibana?: string[] | undefined; \"@timestamp\"?: string[] | undefined; \"event.action\"?: string[] | undefined; \"kibana.alert.rule.rule_type_id\"?: string[] | undefined; \"kibana.alert.rule.consumer\"?: string[] | undefined; \"kibana.alert.rule.execution.uuid\"?: string[] | undefined; \"kibana.alert\"?: string[] | undefined; \"kibana.alert.rule\"?: string[] | undefined; \"kibana.alert.rule.parameters\"?: string[] | undefined; \"kibana.alert.rule.producer\"?: string[] | undefined; \"kibana.space_ids\"?: string[] | undefined; \"kibana.alert.uuid\"?: string[] | undefined; \"kibana.alert.instance.id\"?: string[] | undefined; \"kibana.alert.start\"?: string[] | undefined; \"kibana.alert.time_range\"?: string[] | undefined; \"kibana.alert.end\"?: string[] | undefined; \"kibana.alert.duration.us\"?: string[] | undefined; \"kibana.alert.severity\"?: string[] | undefined; \"kibana.alert.status\"?: string[] | undefined; \"kibana.alert.flapping\"?: string[] | undefined; \"kibana.version\"?: string[] | undefined; \"ecs.version\"?: string[] | undefined; \"kibana.alert.risk_score\"?: string[] | undefined; \"kibana.alert.workflow_status\"?: string[] | undefined; \"kibana.alert.workflow_user\"?: string[] | undefined; \"kibana.alert.workflow_reason\"?: string[] | undefined; \"kibana.alert.system_status\"?: string[] | undefined; \"kibana.alert.action_group\"?: string[] | undefined; \"kibana.alert.reason\"?: string[] | undefined; \"kibana.alert.case_ids\"?: string[] | undefined; \"kibana.alert.rule.author\"?: string[] | undefined; \"kibana.alert.rule.category\"?: string[] | undefined; \"kibana.alert.rule.uuid\"?: string[] | undefined; \"kibana.alert.rule.created_at\"?: string[] | undefined; \"kibana.alert.rule.created_by\"?: string[] | undefined; \"kibana.alert.rule.description\"?: string[] | undefined; \"kibana.alert.rule.enabled\"?: string[] | undefined; \"kibana.alert.rule.from\"?: string[] | undefined; \"kibana.alert.rule.interval\"?: string[] | undefined; \"kibana.alert.rule.license\"?: string[] | undefined; \"kibana.alert.rule.name\"?: string[] | undefined; \"kibana.alert.rule.note\"?: string[] | undefined; \"kibana.alert.rule.references\"?: string[] | undefined; \"kibana.alert.rule.rule_id\"?: string[] | undefined; \"kibana.alert.rule.rule_name_override\"?: string[] | undefined; \"kibana.alert.rule.tags\"?: string[] | undefined; \"kibana.alert.rule.to\"?: string[] | undefined; \"kibana.alert.rule.type\"?: string[] | undefined; \"kibana.alert.rule.updated_at\"?: string[] | undefined; \"kibana.alert.rule.updated_by\"?: string[] | undefined; \"kibana.alert.rule.version\"?: string[] | undefined; \"kibana.alert.suppression.terms\"?: string[] | undefined; \"kibana.alert.suppression.terms.field\"?: string[] | undefined; \"kibana.alert.suppression.terms.value\"?: string[] | undefined; \"kibana.alert.suppression.start\"?: string[] | undefined; \"kibana.alert.suppression.end\"?: string[] | undefined; \"kibana.alert.suppression.docs_count\"?: string[] | undefined; \"event.kind\"?: string[] | undefined; \"event.module\"?: string[] | undefined; \"kibana.alert.evaluation.threshold\"?: string[] | undefined; \"kibana.alert.evaluation.value\"?: string[] | undefined; \"kibana.alert.building_block_type\"?: string[] | undefined; \"kibana.alert.rule.exceptions_list\"?: string[] | undefined; \"kibana.alert.rule.namespace\"?: string[] | undefined; \"kibana.alert.rule.threat.framework\"?: string[] | undefined; \"kibana.alert.rule.threat.tactic.id\"?: string[] | undefined; \"kibana.alert.rule.threat.tactic.name\"?: string[] | undefined; \"kibana.alert.rule.threat.tactic.reference\"?: string[] | undefined; \"kibana.alert.rule.threat.technique.id\"?: string[] | undefined; \"kibana.alert.rule.threat.technique.name\"?: string[] | undefined; \"kibana.alert.rule.threat.technique.reference\"?: string[] | undefined; \"kibana.alert.rule.threat.technique.subtechnique.id\"?: string[] | undefined; \"kibana.alert.rule.threat.technique.subtechnique.name\"?: string[] | undefined; \"kibana.alert.rule.threat.technique.subtechnique.reference\"?: string[] | undefined; } & { [x: string]: unknown[]; }" ], "path": "x-pack/plugins/triggers_actions_ui/public/types.ts", "deprecated": false, diff --git a/api_docs/triggers_actions_ui.mdx b/api_docs/triggers_actions_ui.mdx index 5d981ba61183..c3bab17c76d1 100644 --- a/api_docs/triggers_actions_ui.mdx +++ b/api_docs/triggers_actions_ui.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/triggersActionsUi title: "triggersActionsUi" image: https://source.unsplash.com/400x175/?github description: API docs for the triggersActionsUi plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'triggersActionsUi'] --- import triggersActionsUiObj from './triggers_actions_ui.devdocs.json'; diff --git a/api_docs/ui_actions.mdx b/api_docs/ui_actions.mdx index 8c47375d5532..5768d4d47e19 100644 --- a/api_docs/ui_actions.mdx +++ b/api_docs/ui_actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uiActions title: "uiActions" image: https://source.unsplash.com/400x175/?github description: API docs for the uiActions plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'uiActions'] --- import uiActionsObj from './ui_actions.devdocs.json'; diff --git a/api_docs/ui_actions_enhanced.mdx b/api_docs/ui_actions_enhanced.mdx index cfedc3f66a91..9a2e2688c618 100644 --- a/api_docs/ui_actions_enhanced.mdx +++ b/api_docs/ui_actions_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uiActionsEnhanced title: "uiActionsEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the uiActionsEnhanced plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'uiActionsEnhanced'] --- import uiActionsEnhancedObj from './ui_actions_enhanced.devdocs.json'; diff --git a/api_docs/unified_field_list.mdx b/api_docs/unified_field_list.mdx index 7ee1f3878b56..4af77b69a2a5 100644 --- a/api_docs/unified_field_list.mdx +++ b/api_docs/unified_field_list.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedFieldList title: "unifiedFieldList" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedFieldList plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedFieldList'] --- import unifiedFieldListObj from './unified_field_list.devdocs.json'; diff --git a/api_docs/unified_histogram.mdx b/api_docs/unified_histogram.mdx index c72e5eb087f3..d426e0f5750f 100644 --- a/api_docs/unified_histogram.mdx +++ b/api_docs/unified_histogram.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedHistogram title: "unifiedHistogram" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedHistogram plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedHistogram'] --- import unifiedHistogramObj from './unified_histogram.devdocs.json'; diff --git a/api_docs/unified_search.mdx b/api_docs/unified_search.mdx index fb4bd4dba142..7b5afe12f981 100644 --- a/api_docs/unified_search.mdx +++ b/api_docs/unified_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedSearch title: "unifiedSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedSearch plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedSearch'] --- import unifiedSearchObj from './unified_search.devdocs.json'; diff --git a/api_docs/unified_search_autocomplete.mdx b/api_docs/unified_search_autocomplete.mdx index 5735e950dd9e..548439614f53 100644 --- a/api_docs/unified_search_autocomplete.mdx +++ b/api_docs/unified_search_autocomplete.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedSearch-autocomplete title: "unifiedSearch.autocomplete" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedSearch.autocomplete plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedSearch.autocomplete'] --- import unifiedSearchAutocompleteObj from './unified_search_autocomplete.devdocs.json'; diff --git a/api_docs/url_forwarding.mdx b/api_docs/url_forwarding.mdx index 82ed77a953e2..2bbad182b743 100644 --- a/api_docs/url_forwarding.mdx +++ b/api_docs/url_forwarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/urlForwarding title: "urlForwarding" image: https://source.unsplash.com/400x175/?github description: API docs for the urlForwarding plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'urlForwarding'] --- import urlForwardingObj from './url_forwarding.devdocs.json'; diff --git a/api_docs/usage_collection.mdx b/api_docs/usage_collection.mdx index 7af3d592999e..f22ed712c50b 100644 --- a/api_docs/usage_collection.mdx +++ b/api_docs/usage_collection.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/usageCollection title: "usageCollection" image: https://source.unsplash.com/400x175/?github description: API docs for the usageCollection plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'usageCollection'] --- import usageCollectionObj from './usage_collection.devdocs.json'; diff --git a/api_docs/ux.mdx b/api_docs/ux.mdx index cbcd05f096a1..fb4ae1f8b063 100644 --- a/api_docs/ux.mdx +++ b/api_docs/ux.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ux title: "ux" image: https://source.unsplash.com/400x175/?github description: API docs for the ux plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ux'] --- import uxObj from './ux.devdocs.json'; diff --git a/api_docs/vis_default_editor.mdx b/api_docs/vis_default_editor.mdx index 01b4a9f98e7b..bd7955854a36 100644 --- a/api_docs/vis_default_editor.mdx +++ b/api_docs/vis_default_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visDefaultEditor title: "visDefaultEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the visDefaultEditor plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visDefaultEditor'] --- import visDefaultEditorObj from './vis_default_editor.devdocs.json'; diff --git a/api_docs/vis_type_gauge.mdx b/api_docs/vis_type_gauge.mdx index 7bff9670c581..97eb2a8aa1d2 100644 --- a/api_docs/vis_type_gauge.mdx +++ b/api_docs/vis_type_gauge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeGauge title: "visTypeGauge" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeGauge plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeGauge'] --- import visTypeGaugeObj from './vis_type_gauge.devdocs.json'; diff --git a/api_docs/vis_type_heatmap.mdx b/api_docs/vis_type_heatmap.mdx index 492901d663c0..710d90af79da 100644 --- a/api_docs/vis_type_heatmap.mdx +++ b/api_docs/vis_type_heatmap.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeHeatmap title: "visTypeHeatmap" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeHeatmap plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeHeatmap'] --- import visTypeHeatmapObj from './vis_type_heatmap.devdocs.json'; diff --git a/api_docs/vis_type_pie.mdx b/api_docs/vis_type_pie.mdx index 278d71b3f350..52dad7f78830 100644 --- a/api_docs/vis_type_pie.mdx +++ b/api_docs/vis_type_pie.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypePie title: "visTypePie" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypePie plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypePie'] --- import visTypePieObj from './vis_type_pie.devdocs.json'; diff --git a/api_docs/vis_type_table.mdx b/api_docs/vis_type_table.mdx index 22516a52290b..f35350542f02 100644 --- a/api_docs/vis_type_table.mdx +++ b/api_docs/vis_type_table.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTable title: "visTypeTable" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTable plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeTable'] --- import visTypeTableObj from './vis_type_table.devdocs.json'; diff --git a/api_docs/vis_type_timelion.mdx b/api_docs/vis_type_timelion.mdx index 388541ac59fc..eb1a93c15b37 100644 --- a/api_docs/vis_type_timelion.mdx +++ b/api_docs/vis_type_timelion.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTimelion title: "visTypeTimelion" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTimelion plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeTimelion'] --- import visTypeTimelionObj from './vis_type_timelion.devdocs.json'; diff --git a/api_docs/vis_type_timeseries.mdx b/api_docs/vis_type_timeseries.mdx index e36f7b12a10c..0f545cb502b3 100644 --- a/api_docs/vis_type_timeseries.mdx +++ b/api_docs/vis_type_timeseries.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTimeseries title: "visTypeTimeseries" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTimeseries plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeTimeseries'] --- import visTypeTimeseriesObj from './vis_type_timeseries.devdocs.json'; diff --git a/api_docs/vis_type_vega.mdx b/api_docs/vis_type_vega.mdx index ed72bfafabc6..c581d4537320 100644 --- a/api_docs/vis_type_vega.mdx +++ b/api_docs/vis_type_vega.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeVega title: "visTypeVega" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeVega plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeVega'] --- import visTypeVegaObj from './vis_type_vega.devdocs.json'; diff --git a/api_docs/vis_type_vislib.mdx b/api_docs/vis_type_vislib.mdx index b6a172489358..8a598f2a8af5 100644 --- a/api_docs/vis_type_vislib.mdx +++ b/api_docs/vis_type_vislib.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeVislib title: "visTypeVislib" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeVislib plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeVislib'] --- import visTypeVislibObj from './vis_type_vislib.devdocs.json'; diff --git a/api_docs/vis_type_xy.mdx b/api_docs/vis_type_xy.mdx index 3e497b1426b5..9181fa899b68 100644 --- a/api_docs/vis_type_xy.mdx +++ b/api_docs/vis_type_xy.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeXy title: "visTypeXy" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeXy plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeXy'] --- import visTypeXyObj from './vis_type_xy.devdocs.json'; diff --git a/api_docs/visualizations.devdocs.json b/api_docs/visualizations.devdocs.json index 504fa443dabb..2d07aa3db8e2 100644 --- a/api_docs/visualizations.devdocs.json +++ b/api_docs/visualizations.devdocs.json @@ -6320,7 +6320,7 @@ "section": "def-public.VisualizeInput", "text": "VisualizeInput" }, - "; getDescription: () => string; destroy: () => void; readonly parent?: ", + "; getDescription: () => string; reload: () => Promise; destroy: () => void; readonly parent?: ", { "pluginId": "embeddable", "scope": "public", @@ -6416,7 +6416,7 @@ "section": "def-public.ExpressionRenderError", "text": "ExpressionRenderError" }, - ") => void; reload: () => Promise; supportedTriggers: () => string[]; getExpressionVariables$: () => ", + ") => void; supportedTriggers: () => string[]; getExpressionVariables$: () => ", "Observable", " | undefined>; getExpressionVariables: () => Record | undefined; inputIsRefType: (input: ", { diff --git a/api_docs/visualizations.mdx b/api_docs/visualizations.mdx index a09b11b2250f..fbb176e39d39 100644 --- a/api_docs/visualizations.mdx +++ b/api_docs/visualizations.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visualizations title: "visualizations" image: https://source.unsplash.com/400x175/?github description: API docs for the visualizations plugin -date: 2023-01-23 +date: 2023-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visualizations'] --- import visualizationsObj from './visualizations.devdocs.json'; From 45256085db0bcd0b13436acd6801673555b6de7d Mon Sep 17 00:00:00 2001 From: Alexander Wert Date: Tue, 24 Jan 2023 07:21:13 +0100 Subject: [PATCH 07/26] Added LDAP icon to span icons (#149330) ## Summary With https://github.com/elastic/apm-agent-java/pull/2977 the Java agent adds instrumentation for LDAP spans. Added span icon for LDAP spans: image --- .../public/components/shared/span_icon/get_span_icon.ts | 2 ++ .../public/components/shared/span_icon/icons/ldap.svg | 9 +++++++++ 2 files changed, 11 insertions(+) create mode 100644 x-pack/plugins/apm/public/components/shared/span_icon/icons/ldap.svg diff --git a/x-pack/plugins/apm/public/components/shared/span_icon/get_span_icon.ts b/x-pack/plugins/apm/public/components/shared/span_icon/get_span_icon.ts index 96b1cd45fbdc..5c719d51d457 100644 --- a/x-pack/plugins/apm/public/components/shared/span_icon/get_span_icon.ts +++ b/x-pack/plugins/apm/public/components/shared/span_icon/get_span_icon.ts @@ -33,6 +33,7 @@ import fileShareStorageIcon from './icons/file_share_storage.svg'; import serviceBusIcon from './icons/service_bus.svg'; import storageQueueIcon from './icons/storage_queue.svg'; import tableStorageIcon from './icons/table_storage.svg'; +import ldapIcon from './icons/ldap.svg'; const defaultSpanTypeIcons: { [key: string]: string } = { cache: databaseIcon, @@ -64,6 +65,7 @@ export const spanTypeIcons: { graphql: graphqlIcon, grpc: grpcIcon, websocket: websocketIcon, + ldap: ldapIcon, }, messaging: { azurequeue: storageQueueIcon, diff --git a/x-pack/plugins/apm/public/components/shared/span_icon/icons/ldap.svg b/x-pack/plugins/apm/public/components/shared/span_icon/icons/ldap.svg new file mode 100644 index 000000000000..c77b4ccd670a --- /dev/null +++ b/x-pack/plugins/apm/public/components/shared/span_icon/icons/ldap.svg @@ -0,0 +1,9 @@ + + + unblock-user + + Layer 1 + LDAP + + + \ No newline at end of file From badf9a808e3e3e0dab24847175ec249591d6fda9 Mon Sep 17 00:00:00 2001 From: Maja Grubic Date: Tue, 24 Jan 2023 08:19:57 +0100 Subject: [PATCH 08/26] [Custom Branding] Replace EuiLoadingElastic with EuiLoadingSpinner (#149261) ## Summary As part of the Custom Branding project, we need to replace `EuiLoadingElastic` in places where it appears and replace it with a plain `EuiLoadingSpinner`. This PR does so in saved objects table and related modals and `share` plugin. ### Checklist Delete any items that are not applicable to this PR. - [X] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md) - [X] [Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials - [X] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios - [X] Any UI touched in this PR is usable by keyboard only (learn more about [keyboard accessibility](https://webaim.org/techniques/keyboard/)) - [X] Any UI touched in this PR does not create any new axe failures (run axe in browser: [FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/), [Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US)) ~- [ ] If a plugin configuration key changed, check if it needs to be allowlisted in the cloud and added to the [docker list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)~ ~- [ ] This renders correctly on smaller devices using a responsive layout. (You can test this [in your browser](https://www.browserstack.com/guide/responsive-testing-on-local-server))~ - [ X This was checked for [cross-browser compatibility](https://www.elastic.co/support/matrix#matrix_browsers) ### For maintainers - [ ] This was checked for breaking API changes and was [labeled appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process) Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- .../saved_objects_table.test.tsx.snap | 1 + .../components/delete_confirm_modal.test.tsx | 17 ++++++++++++++++- .../components/delete_confirm_modal.tsx | 5 ++++- .../objects_table/components/flyout.tsx | 6 ++++-- .../components/relationships.test.tsx | 3 ++- .../objects_table/components/relationships.tsx | 6 ++++-- .../objects_table/saved_objects_table.test.tsx | 2 ++ .../objects_table/saved_objects_table.tsx | 18 +++++++++++++++++- .../saved_objects_table_page.tsx | 1 + .../saved_objects_management/tsconfig.json | 2 ++ .../url_service/redirect/components/page.tsx | 7 +++++-- .../redirect/components/spinner.tsx | 12 +++++++++--- .../url_service/redirect/redirect_manager.ts | 6 +++++- src/plugins/share/tsconfig.json | 1 + 14 files changed, 73 insertions(+), 14 deletions(-) diff --git a/src/plugins/saved_objects_management/public/management_section/objects_table/__snapshots__/saved_objects_table.test.tsx.snap b/src/plugins/saved_objects_management/public/management_section/objects_table/__snapshots__/saved_objects_table.test.tsx.snap index e0a7bada5c43..1893231609eb 100644 --- a/src/plugins/saved_objects_management/public/management_section/objects_table/__snapshots__/saved_objects_table.test.tsx.snap +++ b/src/plugins/saved_objects_management/public/management_section/objects_table/__snapshots__/saved_objects_table.test.tsx.snap @@ -47,6 +47,7 @@ exports[`SavedObjectsTable delete should show a confirm modal 1`] = ` }, ] } + showPlainSpinner={false} /> `; diff --git a/src/plugins/saved_objects_management/public/management_section/objects_table/components/delete_confirm_modal.test.tsx b/src/plugins/saved_objects_management/public/management_section/objects_table/components/delete_confirm_modal.test.tsx index 8bcc940514d6..8f3209c5fee1 100644 --- a/src/plugins/saved_objects_management/public/management_section/objects_table/components/delete_confirm_modal.test.tsx +++ b/src/plugins/saved_objects_management/public/management_section/objects_table/components/delete_confirm_modal.test.tsx @@ -41,7 +41,7 @@ describe('DeleteConfirmModal', () => { onCancel = jest.fn(); }); - it('displays a loader if `isDeleting` is true', () => { + it('displays a EuiLoadingElastic spinner if `isDeleting` is true', () => { const wrapper = mountWithIntl( { expect(wrapper.find('EuiModal')).toHaveLength(0); }); + it('displays a EuiLoadingSpinner if `isDeleting` is true and `showPlainSpinner` is true', () => { + const wrapper = mountWithIntl( + + ); + expect(wrapper.find('EuiLoadingElastic')).toHaveLength(0); + expect(wrapper.find('EuiLoadingSpinner')).toHaveLength(1); + }); + it('lists the objects to delete', () => { const objs = [createObject(), createObject(), createObject()]; const wrapper = mountWithIntl( diff --git a/src/plugins/saved_objects_management/public/management_section/objects_table/components/delete_confirm_modal.tsx b/src/plugins/saved_objects_management/public/management_section/objects_table/components/delete_confirm_modal.tsx index 784709451f83..65e29fb1fd19 100644 --- a/src/plugins/saved_objects_management/public/management_section/objects_table/components/delete_confirm_modal.tsx +++ b/src/plugins/saved_objects_management/public/management_section/objects_table/components/delete_confirm_modal.tsx @@ -24,6 +24,7 @@ import { EuiButton, EuiSpacer, EuiCallOut, + EuiLoadingSpinner, } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n-react'; @@ -36,6 +37,7 @@ export interface DeleteConfirmModalProps { onCancel: () => void; selectedObjects: SavedObjectWithMetadata[]; allowedTypes: SavedObjectManagementTypeInfo[]; + showPlainSpinner?: boolean; } export const DeleteConfirmModal: FC = ({ @@ -44,6 +46,7 @@ export const DeleteConfirmModal: FC = ({ onCancel, selectedObjects, allowedTypes, + showPlainSpinner, }) => { const undeletableObjects = useMemo(() => { return selectedObjects.filter((obj) => obj.meta.hiddenType); @@ -64,7 +67,7 @@ export const DeleteConfirmModal: FC = ({ if (isDeleting) { return ( - + {showPlainSpinner ? : } ); } diff --git a/src/plugins/saved_objects_management/public/management_section/objects_table/components/flyout.tsx b/src/plugins/saved_objects_management/public/management_section/objects_table/components/flyout.tsx index 8e376fe7c7e6..8f0be4c8515f 100644 --- a/src/plugins/saved_objects_management/public/management_section/objects_table/components/flyout.tsx +++ b/src/plugins/saved_objects_management/public/management_section/objects_table/components/flyout.tsx @@ -28,6 +28,7 @@ import { EuiCallOut, EuiSpacer, EuiLink, + EuiLoadingSpinner, } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n-react'; @@ -58,6 +59,7 @@ export interface FlyoutProps { basePath: IBasePath; search: ISearchStart; allowedTypes: SavedObjectManagementTypeInfo[]; + showPlainSpinner?: boolean; } export interface FlyoutState { @@ -413,7 +415,7 @@ export class Flyout extends Component { } renderBody() { - const { allowedTypes } = this.props; + const { allowedTypes, showPlainSpinner } = this.props; const { status, loadingMessage, @@ -427,7 +429,7 @@ export class Flyout extends Component { return ( - + {showPlainSpinner ? : }

{loadingMessage}

diff --git a/src/plugins/saved_objects_management/public/management_section/objects_table/components/relationships.test.tsx b/src/plugins/saved_objects_management/public/management_section/objects_table/components/relationships.test.tsx index adb920d3a613..bffd933ef2e0 100644 --- a/src/plugins/saved_objects_management/public/management_section/objects_table/components/relationships.test.tsx +++ b/src/plugins/saved_objects_management/public/management_section/objects_table/components/relationships.test.tsx @@ -288,12 +288,13 @@ describe('Relationships', () => { }, allowedTypes, close: jest.fn(), + showPlainSpinner: true, }; const component = shallowWithI18nProvider(); // Make sure we are showing loading - expect(component.find('EuiLoadingElastic').length).toBe(1); + expect(component.find('EuiLoadingSpinner').length).toBe(1); // Ensure all promises resolve await new Promise((resolve) => process.nextTick(resolve)); diff --git a/src/plugins/saved_objects_management/public/management_section/objects_table/components/relationships.tsx b/src/plugins/saved_objects_management/public/management_section/objects_table/components/relationships.tsx index 75614ba83ec1..bb097f64c443 100644 --- a/src/plugins/saved_objects_management/public/management_section/objects_table/components/relationships.tsx +++ b/src/plugins/saved_objects_management/public/management_section/objects_table/components/relationships.tsx @@ -20,6 +20,7 @@ import { EuiToolTip, EuiText, EuiSpacer, + EuiLoadingSpinner, } from '@elastic/eui'; import { SearchFilterConfig } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; @@ -43,6 +44,7 @@ export interface RelationshipsProps { goInspectObject: (obj: SavedObjectWithMetadata) => void; canGoInApp: (obj: SavedObjectWithMetadata) => boolean; allowedTypes: SavedObjectManagementTypeInfo[]; + showPlainSpinner?: boolean; } export interface RelationshipsState { @@ -215,7 +217,7 @@ export class Relationships extends Component; + return showPlainSpinner ? : ; } const columns = [ diff --git a/src/plugins/saved_objects_management/public/management_section/objects_table/saved_objects_table.test.tsx b/src/plugins/saved_objects_management/public/management_section/objects_table/saved_objects_table.test.tsx index e08d0cde6c7c..69ced5010c56 100644 --- a/src/plugins/saved_objects_management/public/management_section/objects_table/saved_objects_table.test.tsx +++ b/src/plugins/saved_objects_management/public/management_section/objects_table/saved_objects_table.test.tsx @@ -41,6 +41,7 @@ import { } from './saved_objects_table'; import { Flyout, Relationships } from './components'; import { SavedObjectWithMetadata } from '../../types'; +import { customBrandingServiceMock } from '@kbn/core-custom-branding-browser-mocks'; const convertType = (type: string): SavedObjectManagementTypeInfo => ({ name: type, @@ -141,6 +142,7 @@ describe('SavedObjectsTable', () => { goInspectObject: () => {}, canGoInApp: () => true, search, + customBranding: customBrandingServiceMock.createStartContract(), }; findObjectsMock.mockImplementation(() => ({ diff --git a/src/plugins/saved_objects_management/public/management_section/objects_table/saved_objects_table.tsx b/src/plugins/saved_objects_management/public/management_section/objects_table/saved_objects_table.tsx index 0ecd3e0d78a0..1762ccafe698 100644 --- a/src/plugins/saved_objects_management/public/management_section/objects_table/saved_objects_table.tsx +++ b/src/plugins/saved_objects_management/public/management_section/objects_table/saved_objects_table.tsx @@ -18,6 +18,8 @@ import { RedirectAppLinks } from '@kbn/kibana-react-plugin/public'; import { SavedObjectsTaggingApi } from '@kbn/saved-objects-tagging-oss-plugin/public'; import { DataViewsContract } from '@kbn/data-views-plugin/public'; import { DataPublicPluginStart } from '@kbn/data-plugin/public'; +import { CustomBrandingStart } from '@kbn/core-custom-branding-browser'; +import { Subscription } from 'rxjs'; import type { SavedObjectManagementTypeInfo } from '../../../common/types'; import { parseQuery, @@ -66,6 +68,7 @@ export interface SavedObjectsTableProps { goInspectObject: (obj: SavedObjectWithMetadata) => void; canGoInApp: (obj: SavedObjectWithMetadata) => boolean; initialQuery?: Query; + customBranding: CustomBrandingStart; } export interface SavedObjectsTableState { @@ -88,6 +91,7 @@ export interface SavedObjectsTableState { exportAllOptions: ExportAllOption[]; exportAllSelectedOptions: Record; isIncludeReferencesDeepChecked: boolean; + hasCustomBranding: boolean; } const unableFindSavedObjectsNotificationMessage = i18n.translate( @@ -101,6 +105,7 @@ const unableFindSavedObjectNotificationMessage = i18n.translate( export class SavedObjectsTable extends Component { private _isMounted = false; + private hasCustomBrandingSubscription?: Subscription; constructor(props: SavedObjectsTableProps) { super(props); @@ -131,6 +136,7 @@ export class SavedObjectsTable extends Component { + this.setState({ ...this.state, hasCustomBranding: next }); + } + ); } componentWillUnmount() { this._isMounted = false; this.debouncedFindObjects.cancel(); this.debouncedBulkGetObjects.cancel(); + this.hasCustomBrandingSubscription?.unsubscribe(); } fetchCounts = async () => { @@ -574,6 +586,7 @@ export class SavedObjectsTable extends Component ); } @@ -592,12 +605,14 @@ export class SavedObjectsTable extends Component ); } renderDeleteConfirmModal() { - const { isShowingDeleteConfirmModal, isDeleting, selectedSavedObjects } = this.state; + const { isShowingDeleteConfirmModal, isDeleting, selectedSavedObjects, hasCustomBranding } = + this.state; const { allowedTypes } = this.props; if (!isShowingDeleteConfirmModal) { @@ -615,6 +630,7 @@ export class SavedObjectsTable extends Component ); } diff --git a/src/plugins/saved_objects_management/public/management_section/saved_objects_table_page.tsx b/src/plugins/saved_objects_management/public/management_section/saved_objects_table_page.tsx index ec083bf2f5c0..ef5b8a30d91d 100644 --- a/src/plugins/saved_objects_management/public/management_section/saved_objects_table_page.tsx +++ b/src/plugins/saved_objects_management/public/management_section/saved_objects_table_page.tsx @@ -102,6 +102,7 @@ const SavedObjectsTablePage = ({ if (!inAppUrl.uiCapabilitiesPath) return true; return Boolean(get(capabilities, inAppUrl.uiCapabilitiesPath)); }} + customBranding={coreStart.customBranding} /> ); diff --git a/src/plugins/saved_objects_management/tsconfig.json b/src/plugins/saved_objects_management/tsconfig.json index aa1449d4a9c2..98dcb8c30317 100644 --- a/src/plugins/saved_objects_management/tsconfig.json +++ b/src/plugins/saved_objects_management/tsconfig.json @@ -25,6 +25,8 @@ "@kbn/core-saved-objects-common", "@kbn/monaco", "@kbn/config-schema", + "@kbn/core-custom-branding-browser-mocks", + "@kbn/core-custom-branding-browser", ], "exclude": [ "target/**/*", diff --git a/src/plugins/share/public/url_service/redirect/components/page.tsx b/src/plugins/share/public/url_service/redirect/components/page.tsx index 504e5955faca..38aeafa5920d 100644 --- a/src/plugins/share/public/url_service/redirect/components/page.tsx +++ b/src/plugins/share/public/url_service/redirect/components/page.tsx @@ -11,6 +11,7 @@ import useObservable from 'react-use/lib/useObservable'; import { EuiPageTemplate_Deprecated as EuiPageTemplate } from '@elastic/eui'; import { ThemeServiceSetup } from '@kbn/core/public'; import { KibanaThemeProvider } from '@kbn/kibana-react-plugin/public'; +import { CustomBrandingStart } from '@kbn/core-custom-branding-browser'; import { Error } from './error'; import { RedirectManager } from '../redirect_manager'; import { Spinner } from './spinner'; @@ -18,10 +19,12 @@ import { Spinner } from './spinner'; export interface PageProps { manager: Pick; theme: ThemeServiceSetup; + customBranding: CustomBrandingStart; } -export const Page: React.FC = ({ manager, theme }) => { +export const Page: React.FC = ({ manager, theme, customBranding }) => { const error = useObservable(manager.error$); + const hasCustomBranding = useObservable(customBranding.hasCustomBranding$); if (error) { return ( @@ -46,7 +49,7 @@ export const Page: React.FC = ({ manager, theme }) => { color: 'primary', }} > - + ); diff --git a/src/plugins/share/public/url_service/redirect/components/spinner.tsx b/src/plugins/share/public/url_service/redirect/components/spinner.tsx index a70ae5eb096a..61b09069f095 100644 --- a/src/plugins/share/public/url_service/redirect/components/spinner.tsx +++ b/src/plugins/share/public/url_service/redirect/components/spinner.tsx @@ -7,7 +7,13 @@ */ import * as React from 'react'; -import { EuiFlexGroup, EuiFlexItem, EuiLoadingElastic, EuiText } from '@elastic/eui'; +import { + EuiFlexGroup, + EuiFlexItem, + EuiLoadingElastic, + EuiLoadingSpinner, + EuiText, +} from '@elastic/eui'; import { i18n } from '@kbn/i18n'; const text = i18n.translate('share.urlService.redirect.components.Spinner.label', { @@ -15,13 +21,13 @@ const text = i18n.translate('share.urlService.redirect.components.Spinner.label' description: 'Redirect endpoint spinner label.', }); -export const Spinner: React.FC = () => { +export const Spinner: React.FC<{ showPlainSpinner: boolean }> = ({ showPlainSpinner }) => { return ( - + {showPlainSpinner ? : } diff --git a/src/plugins/share/public/url_service/redirect/redirect_manager.ts b/src/plugins/share/public/url_service/redirect/redirect_manager.ts index 1bcf2eeea34d..330ded65a5b8 100644 --- a/src/plugins/share/public/url_service/redirect/redirect_manager.ts +++ b/src/plugins/share/public/url_service/redirect/redirect_manager.ts @@ -34,7 +34,11 @@ export class RedirectManager { chromeless: true, mount: async (params) => { const { render } = await import('./render'); - const unmount = render(params.element, { manager: this, theme: core.theme }); + const unmount = render(params.element, { + manager: this, + theme: core.theme, + customBranding: core.customBranding, + }); this.onMount(params.history.location); return () => { unmount(); diff --git a/src/plugins/share/tsconfig.json b/src/plugins/share/tsconfig.json index f0d79515d0dc..914c4661d0ea 100644 --- a/src/plugins/share/tsconfig.json +++ b/src/plugins/share/tsconfig.json @@ -12,6 +12,7 @@ "@kbn/i18n", "@kbn/i18n-react", "@kbn/config-schema", + "@kbn/core-custom-branding-browser", ], "exclude": [ "target/**/*", From afb84dcbcd99c6d754b5e1ff4691adc7bed6a90e Mon Sep 17 00:00:00 2001 From: James Gowdy Date: Tue, 24 Jan 2023 07:58:42 +0000 Subject: [PATCH 09/26] [ML] Adding ML execution context to es requests (#148746) Adds the page path as the ID to our existing execution context and adds an additional context entry to every ml kibana endpoint. In the search slow log, the id for each slow search from ML will look like this: `"a90d5297-fd77-4ea0-ac0d-c302963d7e75;kibana:application:ml:%2Fjobs%2Fnew_job%2Fsingle_metric;application:ml:%2Fapi%2Fml%2Fjobs%2Fnew_job_line_chart` Separating by semicolon: `a90d5297-fd77-4ea0-ac0d-c302963d7e75` -> kibana ID `kibana:application:ml:%2Fjobs%2Fnew_job%2Fsingle_metric` -> default context items added on the client side to show the source page. `application:ml:%2Fapi%2Fml%2Fjobs%2Fnew_job_line_chart` -> new items added by the server to show the source endpoint path. Note, the paths have been encoded to replace the forward slashes. Part of https://github.com/elastic/kibana/issues/147378 --- .../application/routing/use_active_route.tsx | 1 + x-pack/plugins/ml/server/lib/route_guard.ts | 57 +++++++++++++------ x-pack/plugins/ml/server/plugin.ts | 3 +- 3 files changed, 44 insertions(+), 17 deletions(-) diff --git a/x-pack/plugins/ml/public/application/routing/use_active_route.tsx b/x-pack/plugins/ml/public/application/routing/use_active_route.tsx index cf5f43843dbe..d3dd543f3ecd 100644 --- a/x-pack/plugins/ml/public/application/routing/use_active_route.tsx +++ b/x-pack/plugins/ml/public/application/routing/use_active_route.tsx @@ -96,6 +96,7 @@ export const useActiveRoute = (routesList: MlRoute[]): MlRoute => { name: PLUGIN_ID, type: 'application', page: activeRoute?.path ?? '/overview', + id: activeRoute?.path, }); return activeRoute ?? routesMap['/overview']; diff --git a/x-pack/plugins/ml/server/lib/route_guard.ts b/x-pack/plugins/ml/server/lib/route_guard.ts index fa3fb88a109b..734ea877ba18 100644 --- a/x-pack/plugins/ml/server/lib/route_guard.ts +++ b/x-pack/plugins/ml/server/lib/route_guard.ts @@ -12,6 +12,8 @@ import type { IScopedClusterClient, RequestHandler, SavedObjectsClientContract, + CoreSetup, + CoreStart, } from '@kbn/core/server'; import type { SpacesPluginSetup } from '@kbn/spaces-plugin/server'; import type { SecurityPluginSetup } from '@kbn/security-plugin/server'; @@ -19,6 +21,7 @@ import type { SecurityPluginSetup } from '@kbn/security-plugin/server'; import type { AlertingApiRequestHandlerContext } from '@kbn/alerting-plugin/server'; import type { PluginStart as DataViewsPluginStart } from '@kbn/data-views-plugin/server'; import type { DataViewsService } from '@kbn/data-views-plugin/common'; +import { PLUGIN_ID } from '../../common/constants/app'; import { mlSavedObjectServiceFactory, MLSavedObjectService } from '../saved_objects'; import type { MlLicense } from '../../common/license'; @@ -51,6 +54,7 @@ export class RouteGuard { private _authorization: SecurityPluginSetup['authz'] | undefined; private _isMlReady: () => Promise; private _getDataViews: GetDataViews; + private _getStartServices: CoreSetup['getStartServices']; constructor( mlLicense: MlLicense, @@ -59,7 +63,8 @@ export class RouteGuard { spacesPlugin: SpacesPluginSetup | undefined, authorization: SecurityPluginSetup['authz'] | undefined, isMlReady: () => Promise, - getDataViews: GetDataViews + getDataViews: GetDataViews, + getStartServices: CoreSetup['getStartServices'] ) { this._mlLicense = mlLicense; this._getMlSavedObjectClient = getSavedObject; @@ -68,6 +73,7 @@ export class RouteGuard { this._authorization = authorization; this._isMlReady = isMlReady; this._getDataViews = getDataViews; + this._getStartServices = getStartServices; } public fullLicenseAPIGuard(handler: Handler) { @@ -88,8 +94,11 @@ export class RouteGuard { return response.forbidden(); } - const { elasticsearch, savedObjects } = await context.core; - const client = elasticsearch.client; + const { + elasticsearch: { client }, + savedObjects: { client: savedObjectClient }, + } = await context.core; + const mlSavedObjectClient = this._getMlSavedObjectClient(request); const internalSavedObjectsClient = this._getInternalSavedObjectClient(); if (mlSavedObjectClient === null || internalSavedObjectsClient === null) { @@ -107,20 +116,36 @@ export class RouteGuard { this._isMlReady ); - return handler({ - client, - request, - response, - context, - mlSavedObjectService, - mlClient: getMlClient(client, mlSavedObjectService), - getDataViewsService: getDataViewsServiceFactory( - this._getDataViews, - savedObjects.client, + const [coreStart] = await this._getStartServices(); + const executionContext = await createExecutionContext(coreStart, request.route.path); + + return await coreStart.executionContext.withContext(executionContext, () => + handler({ client, - request - ), - }); + request, + response, + context, + mlSavedObjectService, + mlClient: getMlClient(client, mlSavedObjectService), + getDataViewsService: getDataViewsServiceFactory( + this._getDataViews, + savedObjectClient, + client, + request + ), + }) + ); }; } } + +async function createExecutionContext(coreStart: CoreStart, id?: string) { + const labels = coreStart.executionContext.getAsLabels(); + const page = labels.page as string; + return { + type: 'application', + name: PLUGIN_ID, + id: id ?? page, + page, + }; +} diff --git a/x-pack/plugins/ml/server/plugin.ts b/x-pack/plugins/ml/server/plugin.ts index 34a578d909f6..fc12a261031e 100644 --- a/x-pack/plugins/ml/server/plugin.ts +++ b/x-pack/plugins/ml/server/plugin.ts @@ -198,7 +198,8 @@ export class MlServerPlugin plugins.spaces, plugins.security?.authz, () => this.isMlReady, - () => this.dataViews + () => this.dataViews, + coreSetup.getStartServices ), mlLicense: this.mlLicense, }; From 611e5af179a4c0ae3ff4094d2a3e0bf315cbbe72 Mon Sep 17 00:00:00 2001 From: Julian Gernun <17549662+jcger@users.noreply.github.com> Date: Tue, 24 Jan 2023 09:04:00 +0100 Subject: [PATCH 10/26] renderCustomActionsRow with named params instead of args (#149304) ## Summary Closes https://github.com/elastic/kibana/issues/149303 ## QA Run the alerts table and check that the actions cell is working. https://user-images.githubusercontent.com/17549662/214009339-afc1fe7f-fb2a-4461-aec9-70a2335a875b.mov --- .../containers/alerts_table/get_row_actions.tsx | 7 ++----- .../sections/alerts_table/alerts_table.test.tsx | 4 ++-- .../sections/alerts_table/alerts_table.tsx | 12 ++++++------ x-pack/plugins/triggers_actions_ui/public/types.ts | 14 ++++++++------ 4 files changed, 18 insertions(+), 19 deletions(-) diff --git a/x-pack/plugins/observability/public/pages/alerts/containers/alerts_table/get_row_actions.tsx b/x-pack/plugins/observability/public/pages/alerts/containers/alerts_table/get_row_actions.tsx index 74a5e7ac7ec1..419743228a8a 100644 --- a/x-pack/plugins/observability/public/pages/alerts/containers/alerts_table/get_row_actions.tsx +++ b/x-pack/plugins/observability/public/pages/alerts/containers/alerts_table/get_row_actions.tsx @@ -6,6 +6,7 @@ */ import React from 'react'; import { EcsFieldsResponse } from '@kbn/rule-registry-plugin/common/search_strategy'; +import { RenderCustomActionsRowArgs } from '@kbn/triggers-actions-ui-plugin/public/types'; import { ObservabilityRuleTypeRegistry } from '../../../../rules/create_observability_rule_type_registry'; import { ObservabilityActions } from '../../components/observability_actions'; import type { ObservabilityActionsProps } from '../../components/observability_actions'; @@ -22,11 +23,7 @@ export const getRowActions = ( config: ConfigSchema ) => { return () => ({ - renderCustomActionsRow: ( - alert: EcsFieldsResponse, - setFlyoutAlert: (data: unknown, id?: string) => void, - id?: string - ) => { + renderCustomActionsRow: ({ alert, setFlyoutAlert, id }: RenderCustomActionsRowArgs) => { return ( { fireEvent.click((await screen.findAllByTestId('testActionColumn'))[0]); // the callback given to our clients to run when they want to update the loading state - mockedFn.mock.calls[0][3](true); + mockedFn.mock.calls[0][0].setIsActionLoading(true); expect(await screen.findAllByTestId('row-loader')).toHaveLength(1); const selectedOptions = await screen.findAllByTestId('dataGridRowCell'); @@ -351,7 +351,7 @@ describe('AlertsTable', () => { fireEvent.click((await screen.findAllByTestId('testActionColumn'))[0]); // the callback given to our clients to run when they want to update the loading state - mockedFn.mock.calls[0][3](false); + mockedFn.mock.calls[0][0].setIsActionLoading(false); expect(screen.queryByTestId('row-loader')).not.toBeInTheDocument(); }); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/alerts_table.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/alerts_table.tsx index 288ca1f62595..22b3d4f87008 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/alerts_table.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/alerts_table.tsx @@ -173,12 +173,12 @@ const AlertsTable: React.FunctionComponent = (props: AlertsTab )} {renderCustomActionsRow && alerts[visibleRowIndex] && - renderCustomActionsRow( - alerts[visibleRowIndex], - handleFlyoutAlert, - props.id, - getSetIsActionLoadingCallback(visibleRowIndex) - )} + renderCustomActionsRow({ + alert: alerts[visibleRowIndex], + setFlyoutAlert: handleFlyoutAlert, + id: props.id, + setIsActionLoading: getSetIsActionLoadingCallback(visibleRowIndex), + })} ); }, diff --git a/x-pack/plugins/triggers_actions_ui/public/types.ts b/x-pack/plugins/triggers_actions_ui/public/types.ts index d35db04f58b8..a9ccf210abe3 100644 --- a/x-pack/plugins/triggers_actions_ui/public/types.ts +++ b/x-pack/plugins/triggers_actions_ui/public/types.ts @@ -518,13 +518,15 @@ export interface BulkActionsConfig { ) => void; } +export interface RenderCustomActionsRowArgs { + alert: EcsFieldsResponse; + setFlyoutAlert: (data: unknown) => void; + id?: string; + setIsActionLoading?: (isLoading: boolean) => void; +} + export type UseActionsColumnRegistry = () => { - renderCustomActionsRow: ( - alert: EcsFieldsResponse, - setFlyoutAlert: (data: unknown) => void, - id?: string, - setIsActionLoading?: (isLoading: boolean) => void - ) => JSX.Element; + renderCustomActionsRow: (args: RenderCustomActionsRowArgs) => JSX.Element; width?: number; }; From 95c2493e77abc47f93c639e5e17fc2d5833ff6dc Mon Sep 17 00:00:00 2001 From: LEE SEUNGHYO <64775829+dawn023349@users.noreply.github.com> Date: Tue, 24 Jan 2023 17:29:11 +0900 Subject: [PATCH 11/26] [Dashboard] Fix Phrase_filter query for scripted fields (#148942) (#148943) - ISSUE [Dashboard] Visualize Library doesn't work filter on scripted fields of Array Type. #148942 Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Co-authored-by: Lukas Olson --- .../src/filters/build_filters/phrase_filter.test.ts | 2 +- .../kbn-es-query/src/filters/build_filters/phrase_filter.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/kbn-es-query/src/filters/build_filters/phrase_filter.test.ts b/packages/kbn-es-query/src/filters/build_filters/phrase_filter.test.ts index 1088ba196840..f2fc685b2e18 100644 --- a/packages/kbn-es-query/src/filters/build_filters/phrase_filter.test.ts +++ b/packages/kbn-es-query/src/filters/build_filters/phrase_filter.test.ts @@ -134,7 +134,7 @@ describe('buildInlineScriptForPhraseFilter', () => { }; const expected = - `boolean compare(Supplier s, def v) {return s.get() == v;}` + + `boolean compare(Supplier s, def v) {if(s.get() instanceof List){List list = s.get(); for(def k : list){if(k==v){return true;}}return false;}else{return s.get() == v;}}` + `compare(() -> { return foo; }, params.value);`; expect(buildInlineScriptForPhraseFilter(field)).toBe(expected); diff --git a/packages/kbn-es-query/src/filters/build_filters/phrase_filter.ts b/packages/kbn-es-query/src/filters/build_filters/phrase_filter.ts index 3bbf94cd0722..4adc8fdc0fdd 100644 --- a/packages/kbn-es-query/src/filters/build_filters/phrase_filter.ts +++ b/packages/kbn-es-query/src/filters/build_filters/phrase_filter.ts @@ -148,7 +148,7 @@ export const buildInlineScriptForPhraseFilter = (scriptedField: DataViewFieldBas // We must wrap painless scripts in a lambda in case they're more than a simple expression if (scriptedField.lang === 'painless') { return ( - `boolean compare(Supplier s, def v) {return s.get() == v;}` + + `boolean compare(Supplier s, def v) {if(s.get() instanceof List){List list = s.get(); for(def k : list){if(k==v){return true;}}return false;}else{return s.get() == v;}}` + `compare(() -> { ${scriptedField.script} }, params.value);` ); } else { From 199f115916b6dd9d47055001d3414f24fdb19fa9 Mon Sep 17 00:00:00 2001 From: Katerina Patticha Date: Tue, 24 Jan 2023 09:30:43 +0100 Subject: [PATCH 12/26] [APM] Fix mobile indices (#149230) ## Summary Refactor mobile endpoints and fix indices - rename `getSessionsChart` to `getMobileSessions` - rename `getHttpRequestsChart` to `getMobileHttpRequests` - split queries for `mobile_stats` instead of queries all indices. Extend `getMobileSessions` and `getMobileHttpRequests` so they can be used in `mobile_stats` - remove the metrics 'crashCount` and `maxLoadTime` since they are not captured yet related: https://github.com/elastic/kibana/issues/146615 Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../app/mobile/charts/http_requests_chart.tsx | 8 +- .../app/mobile/charts/sessions_chart.tsx | 8 +- .../mobile/service_overview/stats/index.tsx | 16 +- .../routes/mobile/get_mobile_filters.ts | 7 +- ...s_chart.ts => get_mobile_http_requests.ts} | 47 +++-- ...ssions_chart.ts => get_mobile_sessions.ts} | 53 +++-- .../server/routes/mobile/get_mobile_stats.ts | 199 ++++++++---------- .../plugins/apm/server/routes/mobile/route.ts | 16 +- ...> mobile_http_requests_timeseries.spec.ts} | 34 +-- ....ts => mobile_sessions_timeseries.spec.ts} | 58 ++--- .../tests/mobile/mobile_stats.spec.ts | 74 ++----- 11 files changed, 229 insertions(+), 291 deletions(-) rename x-pack/plugins/apm/server/routes/mobile/{get_http_requests_chart.ts => get_mobile_http_requests.ts} (78%) rename x-pack/plugins/apm/server/routes/mobile/{get_sessions_chart.ts => get_mobile_sessions.ts} (77%) rename x-pack/test/apm_api_integration/tests/mobile/{mobile_http_requests_chart.spec.ts => mobile_http_requests_timeseries.spec.ts} (78%) rename x-pack/test/apm_api_integration/tests/mobile/{mobile_sessions_chart.spec.ts => mobile_sessions_timeseries.spec.ts} (71%) diff --git a/x-pack/plugins/apm/public/components/app/mobile/charts/http_requests_chart.tsx b/x-pack/plugins/apm/public/components/app/mobile/charts/http_requests_chart.tsx index 0b530a6cc4e2..e625c94a9d16 100644 --- a/x-pack/plugins/apm/public/components/app/mobile/charts/http_requests_chart.tsx +++ b/x-pack/plugins/apm/public/components/app/mobile/charts/http_requests_chart.tsx @@ -23,8 +23,8 @@ import { import { usePreviousPeriodLabel } from '../../../../hooks/use_previous_period_text'; const INITIAL_STATE = { - currentPeriod: [], - previousPeriod: [], + currentPeriod: { timeseries: [] }, + previousPeriod: { timeseries: [] }, }; export function HttpRequestsChart({ @@ -89,7 +89,7 @@ export function HttpRequestsChart({ const timeseries = [ { - data: data.currentPeriod, + data: data.currentPeriod.timeseries, type: 'linemark', color: currentPeriodColor, title: i18n.translate('xpack.apm.transactions.httpRequestsTitle', { @@ -99,7 +99,7 @@ export function HttpRequestsChart({ ...(comparisonEnabled ? [ { - data: data.previousPeriod, + data: data.previousPeriod.timeseries, type: 'area', color: previousPeriodColor, title: previousPeriodLabel, diff --git a/x-pack/plugins/apm/public/components/app/mobile/charts/sessions_chart.tsx b/x-pack/plugins/apm/public/components/app/mobile/charts/sessions_chart.tsx index 8c0b806cce6b..cfbc9864e461 100644 --- a/x-pack/plugins/apm/public/components/app/mobile/charts/sessions_chart.tsx +++ b/x-pack/plugins/apm/public/components/app/mobile/charts/sessions_chart.tsx @@ -24,8 +24,8 @@ import { import { usePreviousPeriodLabel } from '../../../../hooks/use_previous_period_text'; const INITIAL_STATE = { - currentPeriod: [], - previousPeriod: [], + currentPeriod: { timeseries: [] }, + previousPeriod: { timeseries: [] }, }; type SessionsChart = @@ -95,7 +95,7 @@ export function SessionsChart({ const timeseries = [ { - data: data.currentPeriod, + data: data.currentPeriod.timeseries, type: 'linemark', color: currentPeriodColor, title: i18n.translate('xpack.apm.transactions.sessionsChartTitle', { @@ -105,7 +105,7 @@ export function SessionsChart({ ...(comparisonEnabled ? [ { - data: data.previousPeriod, + data: data.previousPeriod.timeseries, type: 'area', color: previousPeriodColor, title: previousPeriodLabel, diff --git a/x-pack/plugins/apm/public/components/app/mobile/service_overview/stats/index.tsx b/x-pack/plugins/apm/public/components/app/mobile/service_overview/stats/index.tsx index 744cfb13f3c7..d94e988ba6d7 100644 --- a/x-pack/plugins/apm/public/components/app/mobile/service_overview/stats/index.tsx +++ b/x-pack/plugins/apm/public/components/app/mobile/service_overview/stats/index.tsx @@ -74,9 +74,9 @@ export function MobileStats({ defaultMessage: 'Crash Rate', }), icon: getIcon('bug'), - value: data?.crashCount?.value ?? NaN, + value: 'N/A', valueFormatter: (value: number) => valueFormatter(value, 'cpm'), - trend: data?.maxLoadTime?.timeseries, + trend: [], trendShape: MetricTrendShape.Area, }, { @@ -85,9 +85,9 @@ export function MobileStats({ defaultMessage: 'Slowest App load time', }), icon: getIcon('visGauge'), - value: data?.maxLoadTime?.value ?? NaN, + value: 'N/A', valueFormatter: (value: number) => valueFormatter(value, 's'), - trend: data?.maxLoadTime.timeseries, + trend: [], trendShape: MetricTrendShape.Area, }, { @@ -96,9 +96,9 @@ export function MobileStats({ defaultMessage: 'Sessions', }), icon: getIcon('timeslider'), - value: data?.sessions?.value ?? NaN, + value: data?.currentPeriod?.sessions?.value ?? NaN, valueFormatter: (value: number) => valueFormatter(value), - trend: data?.sessions.timeseries, + trend: data?.currentPeriod?.sessions?.timeseries, trendShape: MetricTrendShape.Area, }, { @@ -107,9 +107,9 @@ export function MobileStats({ defaultMessage: 'HTTP requests', }), icon: getIcon('kubernetesPod'), - value: data?.requests?.value ?? NaN, + value: data?.currentPeriod?.requests?.value ?? NaN, valueFormatter: (value: number) => valueFormatter(value), - trend: data?.requests.timeseries, + trend: data?.currentPeriod?.requests?.timeseries ?? [], trendShape: MetricTrendShape.Area, }, ]; diff --git a/x-pack/plugins/apm/server/routes/mobile/get_mobile_filters.ts b/x-pack/plugins/apm/server/routes/mobile/get_mobile_filters.ts index cc648513a896..ff6292eddb27 100644 --- a/x-pack/plugins/apm/server/routes/mobile/get_mobile_filters.ts +++ b/x-pack/plugins/apm/server/routes/mobile/get_mobile_filters.ts @@ -52,12 +52,7 @@ export async function getMobileFilters({ }): Promise { const response = await apmEventClient.search('get_mobile_filters', { apm: { - events: [ - ProcessorEvent.error, - ProcessorEvent.metric, - ProcessorEvent.transaction, - ProcessorEvent.span, - ], + events: [ProcessorEvent.transaction], }, body: { track_total_hits: false, diff --git a/x-pack/plugins/apm/server/routes/mobile/get_http_requests_chart.ts b/x-pack/plugins/apm/server/routes/mobile/get_mobile_http_requests.ts similarity index 78% rename from x-pack/plugins/apm/server/routes/mobile/get_http_requests_chart.ts rename to x-pack/plugins/apm/server/routes/mobile/get_mobile_http_requests.ts index e1e9ef59c94e..d2c7abe691d7 100644 --- a/x-pack/plugins/apm/server/routes/mobile/get_http_requests_chart.ts +++ b/x-pack/plugins/apm/server/routes/mobile/get_mobile_http_requests.ts @@ -15,6 +15,7 @@ import { SERVICE_NAME, TRANSACTION_NAME, SERVICE_TARGET_TYPE, + METRICSET_NAME, } from '../../../common/es_fields/apm'; import { environmentQuery } from '../../../common/utils/environment_query'; import { getOffsetInMs } from '../../../common/utils/get_offset_in_ms'; @@ -22,10 +23,11 @@ import { offsetPreviousPeriodCoordinates } from '../../../common/utils/offset_pr import { APMEventClient } from '../../lib/helpers/create_es_client/create_apm_event_client'; import { getBucketSize } from '../../lib/helpers/get_bucket_size'; import { Coordinate } from '../../../typings/timeseries'; +import { Maybe } from '../../../typings/common'; export interface HttpRequestsTimeseries { - currentPeriod: Coordinate[]; - previousPeriod: Coordinate[]; + currentPeriod: { timeseries: Coordinate[]; value: Maybe }; + previousPeriod: { timeseries: Coordinate[]; value: Maybe }; } interface Props { apmEventClient: APMEventClient; @@ -60,6 +62,12 @@ async function getHttpRequestsTimeseries({ minBucketSize: 60, }); + const aggs = { + requests: { + filter: { term: { [SERVICE_TARGET_TYPE]: 'http' } }, + }, + }; + const response = await apmEventClient.search('get_http_requests_chart', { apm: { events: [ProcessorEvent.metric] }, body: { @@ -69,6 +77,7 @@ async function getHttpRequestsTimeseries({ bool: { filter: [ { exists: { field: SERVICE_TARGET_TYPE } }, + ...termQuery(METRICSET_NAME, 'service_destination'), ...termQuery(SERVICE_NAME, serviceName), ...termQuery(TRANSACTION_NAME, transactionName), ...rangeQuery(startWithOffset, endWithOffset), @@ -85,27 +94,28 @@ async function getHttpRequestsTimeseries({ min_doc_count: 0, extended_bounds: { min: startWithOffset, max: endWithOffset }, }, - aggs: { - requests: { - filter: { term: { [SERVICE_TARGET_TYPE]: 'http' } }, - }, - }, + aggs, }, + ...aggs, }, }, }); - return ( + const timeseries = response?.aggregations?.timeseries.buckets.map((bucket) => { return { x: bucket.key, - y: bucket.doc_count ?? 0, + y: bucket.requests.doc_count, }; - }) ?? [] - ); + }) ?? []; + + return { + timeseries, + value: response.aggregations?.requests?.doc_count, + }; } -export async function getHttpRequestsChart({ +export async function getMobileHttpRequests({ kuery, apmEventClient, serviceName, @@ -136,7 +146,7 @@ export async function getHttpRequestsChart({ end, offset, }) - : []; + : { timeseries: [], value: null }; const [currentPeriod, previousPeriod] = await Promise.all([ currentPeriodPromise, @@ -145,9 +155,12 @@ export async function getHttpRequestsChart({ return { currentPeriod, - previousPeriod: offsetPreviousPeriodCoordinates({ - currentPeriodTimeseries: currentPeriod, - previousPeriodTimeseries: previousPeriod, - }), + previousPeriod: { + timeseries: offsetPreviousPeriodCoordinates({ + currentPeriodTimeseries: currentPeriod.timeseries, + previousPeriodTimeseries: previousPeriod.timeseries, + }), + value: previousPeriod?.value, + }, }; } diff --git a/x-pack/plugins/apm/server/routes/mobile/get_sessions_chart.ts b/x-pack/plugins/apm/server/routes/mobile/get_mobile_sessions.ts similarity index 77% rename from x-pack/plugins/apm/server/routes/mobile/get_sessions_chart.ts rename to x-pack/plugins/apm/server/routes/mobile/get_mobile_sessions.ts index 874743af6334..3414a91b00c2 100644 --- a/x-pack/plugins/apm/server/routes/mobile/get_sessions_chart.ts +++ b/x-pack/plugins/apm/server/routes/mobile/get_mobile_sessions.ts @@ -22,10 +22,11 @@ import { getOffsetInMs } from '../../../common/utils/get_offset_in_ms'; import { APMEventClient } from '../../lib/helpers/create_es_client/create_apm_event_client'; import { getBucketSize } from '../../lib/helpers/get_bucket_size'; import { Coordinate } from '../../../typings/timeseries'; +import { Maybe } from '../../../typings/common'; export interface SessionsTimeseries { - currentPeriod: Coordinate[]; - previousPeriod: Coordinate[]; + currentPeriod: { timeseries: Coordinate[]; value: Maybe }; + previousPeriod: { timeseries: Coordinate[]; value: Maybe }; } interface Props { @@ -61,13 +62,15 @@ async function getSessionTimeseries({ minBucketSize: 60, }); - const response = await apmEventClient.search('get_sessions_chart', { + const aggs = { + sessions: { + cardinality: { field: SESSION_ID }, + }, + }; + + const response = await apmEventClient.search('get_mobile_sessions', { apm: { - events: [ - ProcessorEvent.transaction, - ProcessorEvent.error, - ProcessorEvent.span, - ], + events: [ProcessorEvent.transaction], }, body: { track_total_hits: false, @@ -92,27 +95,28 @@ async function getSessionTimeseries({ min_doc_count: 0, extended_bounds: { min: startWithOffset, max: endWithOffset }, }, - aggs: { - sessions: { - cardinality: { field: SESSION_ID }, - }, - }, + aggs, }, + ...aggs, }, }, }); - return ( + const timeseries = response?.aggregations?.timeseries.buckets.map((bucket) => { return { x: bucket.key, - y: bucket.doc_count ?? 0, + y: bucket.sessions.value, }; - }) ?? [] - ); + }) ?? []; + + return { + timeseries, + value: response.aggregations?.sessions?.value, + }; } -export async function getSessionsChart({ +export async function getMobileSessions({ kuery, apmEventClient, serviceName, @@ -143,7 +147,7 @@ export async function getSessionsChart({ end, offset, }) - : []; + : { timeseries: [], value: null }; const [currentPeriod, previousPeriod] = await Promise.all([ currentPeriodPromise, @@ -152,9 +156,12 @@ export async function getSessionsChart({ return { currentPeriod, - previousPeriod: offsetPreviousPeriodCoordinates({ - currentPeriodTimeseries: currentPeriod, - previousPeriodTimeseries: previousPeriod, - }), + previousPeriod: { + timeseries: offsetPreviousPeriodCoordinates({ + currentPeriodTimeseries: currentPeriod.timeseries, + previousPeriodTimeseries: previousPeriod.timeseries, + }), + value: previousPeriod?.value, + }, }; } diff --git a/x-pack/plugins/apm/server/routes/mobile/get_mobile_stats.ts b/x-pack/plugins/apm/server/routes/mobile/get_mobile_stats.ts index e37f4ec9616c..70d51360ff89 100644 --- a/x-pack/plugins/apm/server/routes/mobile/get_mobile_stats.ts +++ b/x-pack/plugins/apm/server/routes/mobile/get_mobile_stats.ts @@ -5,140 +5,117 @@ * 2.0. */ -import { - termQuery, - kqlQuery, - rangeQuery, -} from '@kbn/observability-plugin/server'; -import { ProcessorEvent } from '@kbn/observability-plugin/common'; -import { - SERVICE_NAME, - SESSION_ID, - SERVICE_TARGET_TYPE, - APP_LAUNCH_TIME, - EVENT_NAME, -} from '../../../common/es_fields/apm'; -import { environmentQuery } from '../../../common/utils/environment_query'; import { APMEventClient } from '../../lib/helpers/create_es_client/create_apm_event_client'; -import { getBucketSize } from '../../lib/helpers/get_bucket_size'; +import { getOffsetInMs } from '../../../common/utils/get_offset_in_ms'; +import { getMobileSessions } from './get_mobile_sessions'; +import { getMobileHttpRequests } from './get_mobile_http_requests'; +import { Maybe } from '../../../typings/common'; -type Timeseries = Array<{ x: number; y: number }>; -export interface MobileStats { - sessions: { value?: number; timeseries: Timeseries }; - requests: { value?: number | null; timeseries: Timeseries }; - maxLoadTime: { value?: number | null; timeseries: Timeseries }; - crashCount: { value?: number | null; timeseries: Timeseries }; +export interface Timeseries { + x: number; + y: number; +} +interface MobileStats { + sessions: { timeseries: Timeseries[]; value: Maybe }; + requests: { timeseries: Timeseries[]; value: Maybe }; } -export async function getMobileStats({ - kuery, - apmEventClient, - serviceName, - transactionType, - environment, - start, - end, -}: { +export interface MobilePeriodStats { + currentPeriod: MobileStats; + previousPeriod: MobileStats; +} + +interface Props { kuery: string; apmEventClient: APMEventClient; serviceName: string; - transactionType?: string; environment: string; start: number; end: number; -}): Promise { - const { intervalString } = getBucketSize({ + offset?: string; +} + +async function getMobileStats({ + kuery, + apmEventClient, + serviceName, + environment, + start, + end, + offset, +}: Props): Promise { + const { startWithOffset, endWithOffset } = getOffsetInMs({ start, end, - minBucketSize: 60, + offset, }); - const aggs = { + const commonProps = { + kuery, + apmEventClient, + serviceName, + environment, + start: startWithOffset, + end: endWithOffset, + offset, + }; + + const [sessions, httpRequests] = await Promise.all([ + getMobileSessions({ ...commonProps }), + getMobileHttpRequests({ ...commonProps }), + ]); + + return { sessions: { - cardinality: { field: SESSION_ID }, + value: sessions.currentPeriod.value, + timeseries: sessions.currentPeriod.timeseries as Timeseries[], }, requests: { - filter: { term: { [SERVICE_TARGET_TYPE]: 'http' } }, - }, - maxLoadTime: { - max: { field: APP_LAUNCH_TIME }, - }, - crashCount: { - filter: { term: { [EVENT_NAME]: 'crash' } }, + value: httpRequests.currentPeriod.value, + timeseries: httpRequests.currentPeriod.timeseries as Timeseries[], }, }; +} - const response = await apmEventClient.search('get_mobile_stats', { - apm: { - events: [ - ProcessorEvent.error, - ProcessorEvent.metric, - ProcessorEvent.transaction, - ProcessorEvent.span, - ], - }, - body: { - track_total_hits: false, - size: 0, - query: { - bool: { - filter: [ - ...termQuery(SERVICE_NAME, serviceName), - ...rangeQuery(start, end), - ...environmentQuery(environment), - ...kqlQuery(kuery), - ], - }, - }, - aggs: { - timeseries: { - date_histogram: { - field: '@timestamp', - fixed_interval: intervalString, - min_doc_count: 0, - }, - aggs, - }, - ...aggs, - }, - }, +export async function getMobileStatsPeriods({ + kuery, + apmEventClient, + serviceName, + environment, + start, + end, + offset, +}: Props): Promise { + const commonProps = { + kuery, + apmEventClient, + serviceName, + environment, + start, + end, + }; + + const currentPeriodPromise = getMobileStats({ + ...commonProps, }); - const durationAsMinutes = (end - start) / 1000 / 60; + const previousPeriodPromise = offset + ? getMobileStats({ + ...commonProps, + offset, + }) + : { + sessions: { timeseries: [], value: null }, + requests: { timeseries: [], value: null }, + }; + + const [currentPeriod, previousPeriod] = await Promise.all([ + currentPeriodPromise, + previousPeriodPromise, + ]); return { - sessions: { - value: response.aggregations?.sessions?.value, - timeseries: - response.aggregations?.timeseries?.buckets.map((bucket) => ({ - x: bucket.key, - y: bucket.sessions.value ?? 0, - })) ?? [], - }, - requests: { - value: response.aggregations?.requests?.doc_count, - timeseries: - response.aggregations?.timeseries?.buckets.map((bucket) => ({ - x: bucket.key, - y: bucket.requests.doc_count ?? 0, - })) ?? [], - }, - maxLoadTime: { - value: response.aggregations?.maxLoadTime?.value, - timeseries: - response.aggregations?.timeseries?.buckets.map((bucket) => ({ - x: bucket.key, - y: bucket.maxLoadTime?.value ?? 0, - })) ?? [], - }, - crashCount: { - value: - response.aggregations?.crashCount?.doc_count ?? 0 / durationAsMinutes, - timeseries: - response.aggregations?.timeseries?.buckets.map((bucket) => ({ - x: bucket.key, - y: bucket.crashCount.doc_count ?? 0, - })) ?? [], - }, + currentPeriod, + previousPeriod, }; } diff --git a/x-pack/plugins/apm/server/routes/mobile/route.ts b/x-pack/plugins/apm/server/routes/mobile/route.ts index e18e7cae75c8..e8fe0515f11c 100644 --- a/x-pack/plugins/apm/server/routes/mobile/route.ts +++ b/x-pack/plugins/apm/server/routes/mobile/route.ts @@ -11,12 +11,12 @@ import { createApmServerRoute } from '../apm_routes/create_apm_server_route'; import { environmentRt, kueryRt, rangeRt } from '../default_api_types'; import { offsetRt } from '../../../common/comparison_rt'; import { - getHttpRequestsChart, + getMobileHttpRequests, HttpRequestsTimeseries, -} from './get_http_requests_chart'; +} from './get_mobile_http_requests'; import { getMobileFilters } from './get_mobile_filters'; -import { getSessionsChart, SessionsTimeseries } from './get_sessions_chart'; -import { getMobileStats, MobileStats } from './get_mobile_stats'; +import { getMobileSessions, SessionsTimeseries } from './get_mobile_sessions'; +import { getMobileStatsPeriods, MobilePeriodStats } from './get_mobile_stats'; const mobileFiltersRoute = createApmServerRoute({ endpoint: 'GET /internal/apm/services/{serviceName}/mobile/filters', @@ -73,13 +73,13 @@ const mobileStatsRoute = createApmServerRoute({ ]), }), options: { tags: ['access:apm'] }, - handler: async (resources): Promise => { + handler: async (resources): Promise => { const apmEventClient = await getApmEventClient(resources); const { params } = resources; const { serviceName } = params.path; const { kuery, environment, start, end } = params.query; - const stats = await getMobileStats({ + const stats = await getMobileStatsPeriods({ kuery, environment, start, @@ -118,7 +118,7 @@ const sessionsChartRoute = createApmServerRoute({ const { kuery, environment, start, end, transactionName, offset } = params.query; - const { currentPeriod, previousPeriod } = await getSessionsChart({ + const { currentPeriod, previousPeriod } = await getMobileSessions({ kuery, environment, transactionName, @@ -159,7 +159,7 @@ const httpRequestsChartRoute = createApmServerRoute({ const { kuery, environment, start, end, transactionName, offset } = params.query; - const { currentPeriod, previousPeriod } = await getHttpRequestsChart({ + const { currentPeriod, previousPeriod } = await getMobileHttpRequests({ kuery, environment, transactionName, diff --git a/x-pack/test/apm_api_integration/tests/mobile/mobile_http_requests_chart.spec.ts b/x-pack/test/apm_api_integration/tests/mobile/mobile_http_requests_timeseries.spec.ts similarity index 78% rename from x-pack/test/apm_api_integration/tests/mobile/mobile_http_requests_chart.spec.ts rename to x-pack/test/apm_api_integration/tests/mobile/mobile_http_requests_timeseries.spec.ts index 33467b486704..451a3d803d8c 100644 --- a/x-pack/test/apm_api_integration/tests/mobile/mobile_http_requests_chart.spec.ts +++ b/x-pack/test/apm_api_integration/tests/mobile/mobile_http_requests_timeseries.spec.ts @@ -51,8 +51,8 @@ export default function ApiTest({ getService }: FtrProviderContext) { describe('when no data', () => { it('handles empty state', async () => { const response = await getHttpRequestsChart({ serviceName: 'foo' }); - expect(response.body.currentPeriod).to.eql([]); - expect(response.body.previousPeriod).to.eql([]); + expect(response.body.currentPeriod.timeseries).to.eql([]); + expect(response.body.previousPeriod.timeseries).to.eql([]); expect(response.status).to.be(200); }); }); @@ -75,11 +75,9 @@ export default function ApiTest({ getService }: FtrProviderContext) { expect(response.status).to.be(200); expect( - response.body.currentPeriod.some( - (item: { x: number; y?: number | null }) => item.y === 0 && item.x - ) + response.body.currentPeriod.timeseries.some((item) => item.y === 0 && item.x) ).to.eql(true); - expect(response.body.previousPeriod[0].y).to.eql(0); + expect(response.body.previousPeriod.timeseries[0].y).to.eql(0); }); it('returns only current period timeseries when offset is not available', async () => { @@ -87,13 +85,11 @@ export default function ApiTest({ getService }: FtrProviderContext) { expect(response.status).to.be(200); expect( - response.body.currentPeriod.some( - (item: { x: number; y?: number | null }) => item.y === 0 && item.x - ) + response.body.currentPeriod.timeseries.some((item) => item.y === 0 && item.x) ).to.eql(true); - expect(response.body.currentPeriod[0].y).to.eql(0); - expect(response.body.previousPeriod).to.eql([]); + expect(response.body.currentPeriod.timeseries[0].y).to.eql(0); + expect(response.body.previousPeriod.timeseries).to.eql([]); }); }); @@ -106,16 +102,8 @@ export default function ApiTest({ getService }: FtrProviderContext) { }); expect(response.status).to.be(200); - expect( - response.body.currentPeriod.every( - (item: { x: number; y?: number | null }) => item.y === 0 - ) - ).to.eql(true); - expect( - response.body.previousPeriod.every( - (item: { x: number; y?: number | null }) => item.y === 0 - ) - ).to.eql(true); + expect(response.body.currentPeriod.timeseries.every((item) => item.y === 0)).to.eql(true); + expect(response.body.previousPeriod.timeseries.every((item) => item.y === 0)).to.eql(true); }); it('returns the correct values when filter is applied', async () => { @@ -133,8 +121,8 @@ export default function ApiTest({ getService }: FtrProviderContext) { expect(response.status).to.be(200); expect(ntcCell.status).to.be(200); - expect(response.body.currentPeriod[0].y).to.eql(0); - expect(ntcCell.body.currentPeriod[0].y).to.eql(0); + expect(response.body.currentPeriod.timeseries[0].y).to.eql(0); + expect(ntcCell.body.currentPeriod.timeseries[0].y).to.eql(0); }); }); }); diff --git a/x-pack/test/apm_api_integration/tests/mobile/mobile_sessions_chart.spec.ts b/x-pack/test/apm_api_integration/tests/mobile/mobile_sessions_timeseries.spec.ts similarity index 71% rename from x-pack/test/apm_api_integration/tests/mobile/mobile_sessions_chart.spec.ts rename to x-pack/test/apm_api_integration/tests/mobile/mobile_sessions_timeseries.spec.ts index fe3c9863af8d..aeb6122cd7d1 100644 --- a/x-pack/test/apm_api_integration/tests/mobile/mobile_sessions_chart.spec.ts +++ b/x-pack/test/apm_api_integration/tests/mobile/mobile_sessions_timeseries.spec.ts @@ -51,8 +51,8 @@ export default function ApiTest({ getService }: FtrProviderContext) { describe('when no data', () => { it('handles empty state', async () => { const response = await getSessionsChart({ serviceName: 'foo' }); - expect(response.body.currentPeriod).to.eql([]); - expect(response.body.previousPeriod).to.eql([]); + expect(response.body.currentPeriod.timeseries).to.eql([]); + expect(response.body.previousPeriod.timeseries).to.eql([]); expect(response.status).to.be(200); }); }); @@ -74,28 +74,24 @@ export default function ApiTest({ getService }: FtrProviderContext) { const response = await getSessionsChart({ serviceName: 'synth-android', offset: '1d' }); expect(response.status).to.be(200); - expect( - response.body.currentPeriod.some( - (item: { x: number; y?: number | null }) => item.x && item.y - ) - ).to.eql(true); - - expect(response.body.currentPeriod[0].y).to.eql(8); - expect(response.body.previousPeriod[0].y).to.eql(0); + expect(response.body.currentPeriod.timeseries.some((item) => item.x && item.y)).to.eql( + true + ); + + expect(response.body.currentPeriod.timeseries[0].y).to.eql(2); + expect(response.body.previousPeriod.timeseries[0].y).to.eql(0); }); it('returns only current period timeseries when offset is not available', async () => { const response = await getSessionsChart({ serviceName: 'synth-android' }); expect(response.status).to.be(200); - expect( - response.body.currentPeriod.some( - (item: { x: number; y?: number | null }) => item.x && item.y - ) - ).to.eql(true); - - expect(response.body.currentPeriod[0].y).to.eql(8); - expect(response.body.previousPeriod).to.eql([]); + expect(response.body.currentPeriod.timeseries.some((item) => item.x && item.y)).to.eql( + true + ); + + expect(response.body.currentPeriod.timeseries[0].y).to.eql(2); + expect(response.body.previousPeriod.timeseries).to.eql([]); }); }); @@ -107,16 +103,8 @@ export default function ApiTest({ getService }: FtrProviderContext) { kuery: `app.version:"none"`, }); - expect( - response.body.currentPeriod.every( - (item: { x: number; y?: number | null }) => item.y === 0 - ) - ).to.eql(true); - expect( - response.body.previousPeriod.every( - (item: { x: number; y?: number | null }) => item.y === 0 - ) - ).to.eql(true); + expect(response.body.currentPeriod.timeseries.every((item) => item.y === 0)).to.eql(true); + expect(response.body.previousPeriod.timeseries.every((item) => item.y === 0)).to.eql(true); }); it('returns the correct values filter is applied', async () => { @@ -127,14 +115,12 @@ export default function ApiTest({ getService }: FtrProviderContext) { }); expect(response.status).to.be(200); - expect( - response.body.currentPeriod.some( - (item: { x: number; y?: number | null }) => item.x && item.y - ) - ).to.eql(true); - - expect(response.body.currentPeriod[0].y).to.eql(2); - expect(response.body.previousPeriod).to.eql([]); + expect(response.body.currentPeriod.timeseries.some((item) => item.x && item.y)).to.eql( + true + ); + + expect(response.body.currentPeriod.timeseries[0].y).to.eql(2); + expect(response.body.previousPeriod.timeseries).to.eql([]); }); }); }); diff --git a/x-pack/test/apm_api_integration/tests/mobile/mobile_stats.spec.ts b/x-pack/test/apm_api_integration/tests/mobile/mobile_stats.spec.ts index 32ff956a7000..77508a34d7dd 100644 --- a/x-pack/test/apm_api_integration/tests/mobile/mobile_stats.spec.ts +++ b/x-pack/test/apm_api_integration/tests/mobile/mobile_stats.spec.ts @@ -54,21 +54,12 @@ export default function ApiTest({ getService }: FtrProviderContext) { describe('when no data', () => { it('handles empty state', async () => { const response = await getMobileStats({ serviceName: 'foo' }); - expect(response).to.eql({ - sessions: { - timeseries: [], - }, - requests: { - timeseries: [], - }, - maxLoadTime: { - timeseries: [], - }, - crashCount: { - value: 0, - timeseries: [], - }, - }); + expect(response.currentPeriod.sessions.timeseries.every((item) => item.y === 0)).to.eql( + true + ); + expect(response.currentPeriod.requests.timeseries.every((item) => item.y === 0)).to.eql( + true + ); }); }); }); @@ -95,19 +86,13 @@ export default function ApiTest({ getService }: FtrProviderContext) { }); it('returns same sessions', () => { - const { value, timeseries } = response.sessions; - const timeseriesTotal = sumBy(timeseries, 'y'); - expect(value).to.be(timeseriesTotal); - }); - - it('returns same crashCount', () => { - const { value, timeseries } = response.crashCount; + const { value, timeseries } = response.currentPeriod.sessions; const timeseriesTotal = sumBy(timeseries, 'y'); expect(value).to.be(timeseriesTotal); }); it('returns same requests', () => { - const { value, timeseries } = response.requests; + const { value, timeseries } = response.currentPeriod.requests; const timeseriesTotal = sumBy(timeseries, 'y'); expect(value).to.be(timeseriesTotal); }); @@ -121,49 +106,36 @@ export default function ApiTest({ getService }: FtrProviderContext) { kuery: `app.version:"none"`, }); - expect(response).to.eql({ - sessions: { - value: 0, - timeseries: [], - }, - requests: { - value: 0, - timeseries: [], - }, - maxLoadTime: { - value: null, - timeseries: [], - }, - crashCount: { - value: 0, - timeseries: [], - }, - }); + expect(response.currentPeriod.sessions.value).to.eql(0); + expect(response.currentPeriod.requests.value).to.eql(0); + + expect(response.currentPeriod.sessions.timeseries.every((item) => item.y === 0)).to.eql( + true + ); + expect(response.currentPeriod.requests.timeseries.every((item) => item.y === 0)).to.eql( + true + ); }); it('returns the correct values when single filter is applied', async () => { const response = await getMobileStats({ serviceName: 'synth-android', environment: 'production', - kuery: `network.connection.type:"wifi"`, + kuery: `service.version:"1.0"`, }); - expect(response.sessions.value).to.eql(3); - expect(response.requests.value).to.eql(0); - expect(response.crashCount.value).to.eql(0); - expect(response.maxLoadTime.value).to.eql(null); + expect(response.currentPeriod.sessions.value).to.eql(6); + expect(response.currentPeriod.requests.value).to.eql(0); }); it('returns the correct values when multiple filters are applied', async () => { const response = await getMobileStats({ serviceName: 'synth-android', - kuery: `app.version:"1.0" and environment: "production"`, + kuery: `service.version:"1.0" and service.environment: "production"`, }); - expect(response.sessions.value).to.eql(0); - expect(response.requests.value).to.eql(0); - expect(response.crashCount.value).to.eql(0); - expect(response.maxLoadTime.value).to.eql(null); + expect(response.currentPeriod.sessions.value).to.eql(6); + expect(response.currentPeriod.requests.value).to.eql(0); }); }); }); From d68e9c7e0734d65594496c43027e83841e572ed9 Mon Sep 17 00:00:00 2001 From: Elena Stoeva <59341489+ElenaStoeva@users.noreply.github.com> Date: Tue, 24 Jan 2023 09:21:34 +0000 Subject: [PATCH 13/26] Fix a11y issue with dev tool tabs (#149349) Fixes https://github.com/elastic/kibana/issues/148538 ## Summary This PR fixes the a11y issue with the Beta badge used in the Dev Tools tabs. The proposed solution in the GH issue (moving `EuiBetaBadge` outside of the `EuiTab` component) didn't work well as it introduced another a11y issue - `EuiTabs` would contain an `EuiBetaBadge` component which is not its direct child (it needs to wrap `EuiTab` components only). Also, this solution caused some styling issues. Removing the `tooltipContent` prop from `EuiBetaBadge` resolves the a11y issue without introducing other a11y issues. Also, the `Beta` text is still announced by screen readers as part of the `Painless Lab` tab (tested on Mac's VoiceOver and the Screen Reader Chrome extension) and the design is not changed. Screenshot 2023-01-23 at 16 17 55 ### Checklist - [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)) --- src/plugins/dev_tools/public/application.tsx | 3 --- x-pack/plugins/translations/translations/fr-FR.json | 1 - x-pack/plugins/translations/translations/ja-JP.json | 1 - x-pack/plugins/translations/translations/zh-CN.json | 1 - 4 files changed, 6 deletions(-) diff --git a/src/plugins/dev_tools/public/application.tsx b/src/plugins/dev_tools/public/application.tsx index 1a1d7ca9fb43..0499c4ab5ccb 100644 --- a/src/plugins/dev_tools/public/application.tsx +++ b/src/plugins/dev_tools/public/application.tsx @@ -108,9 +108,6 @@ function DevToolsWrapper({ label={i18n.translate('devTools.badge.betaLabel', { defaultMessage: 'Beta', })} - tooltipContent={i18n.translate('devTools.badge.betaTooltipText', { - defaultMessage: 'This feature might change drastically in future releases', - })} /> )} diff --git a/x-pack/plugins/translations/translations/fr-FR.json b/x-pack/plugins/translations/translations/fr-FR.json index 2aae3ce7817d..ae0994252e74 100644 --- a/x-pack/plugins/translations/translations/fr-FR.json +++ b/x-pack/plugins/translations/translations/fr-FR.json @@ -36206,7 +36206,6 @@ "cases.components.status.inProgress": "En cours", "cases.components.status.open": "Ouvrir", "devTools.badge.betaLabel": "Bêta", - "devTools.badge.betaTooltipText": "Cette fonctionnalité pourra considérablement changer dans les futures versions", "devTools.badge.readOnly.text": "Lecture seule", "devTools.badge.readOnly.tooltip": "Enregistrement impossible", "devTools.breadcrumb.homeLabel": "Outils de développement", diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index 22956f832c5b..1082e2930eff 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -36175,7 +36175,6 @@ "cases.components.status.inProgress": "進行中", "cases.components.status.open": "開く", "devTools.badge.betaLabel": "ベータ", - "devTools.badge.betaTooltipText": "この機能は将来のリリースで大幅に変更される可能性があります", "devTools.badge.readOnly.text": "読み取り専用", "devTools.badge.readOnly.tooltip": "を保存できませんでした", "devTools.breadcrumb.homeLabel": "開発ツール", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index 565b78843a81..9a3d2c6a2b0b 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -36211,7 +36211,6 @@ "cases.components.status.inProgress": "进行中", "cases.components.status.open": "打开", "devTools.badge.betaLabel": "公测版", - "devTools.badge.betaTooltipText": "此功能在未来的版本中可能会变化很大", "devTools.badge.readOnly.text": "只读", "devTools.badge.readOnly.tooltip": "无法保存", "devTools.breadcrumb.homeLabel": "开发工具", From ca815a7f5bba7b6444cee93f5cbe2e7d3d288cc6 Mon Sep 17 00:00:00 2001 From: claracruz Date: Tue, 24 Jan 2023 09:30:19 +0000 Subject: [PATCH 14/26] 148790 - Fix scroll style for setup guide flyout (#149242) Fixes #148790 --- .../guided_onboarding/public/components/guide_panel.styles.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/guided_onboarding/public/components/guide_panel.styles.ts b/src/plugins/guided_onboarding/public/components/guide_panel.styles.ts index 46ad2de0906f..4768d4112bce 100644 --- a/src/plugins/guided_onboarding/public/components/guide_panel.styles.ts +++ b/src/plugins/guided_onboarding/public/components/guide_panel.styles.ts @@ -36,7 +36,7 @@ export const getGuidePanelStyles = (euiTheme: EuiThemeComputed) => ({ } `, flyoutBody: css` - overflow: scroll; + overflow: auto; .euiFlyoutBody__overflowContent { width: 480px; padding-top: 10px; From ccecb2581ed167d59fdd4accde0d30927ca8f79f Mon Sep 17 00:00:00 2001 From: Julia Bardi <90178898+juliaElastic@users.noreply.github.com> Date: Tue, 24 Jan 2023 11:08:09 +0100 Subject: [PATCH 15/26] [Fleet] added back batch exec for update tags (#148618) ## Summary Closes https://github.com/elastic/kibana/issues/148233 Fixing issue of bulk update tags not working with the new agent status runtime field. Refactored update tags to use batching again, resolving 10k agent ids at a time and `updateByQuery` on batches. Works locally with dummy agents, has to be tested on cloud with horde to simulate conflicts. ### 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 Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../fleet/server/routes/agent/handlers.ts | 2 +- .../server/services/agents/action_runner.ts | 24 ++- .../services/agents/bulk_action_types.ts | 14 ++ .../services/agents/bulk_actions_resolver.ts | 24 +-- .../services/agents/reassign_action_runner.ts | 2 +- .../request_diagnostics_action_runner.ts | 2 +- .../server/services/agents/retry_helper.ts | 30 ++++ .../services/agents/unenroll_action_runner.ts | 2 +- .../services/agents/update_agent_tags.test.ts | 167 +++++++----------- .../services/agents/update_agent_tags.ts | 33 +++- .../agents/update_agent_tags_action_runner.ts | 83 +++------ .../services/agents/upgrade_action_runner.ts | 2 +- 12 files changed, 184 insertions(+), 201 deletions(-) create mode 100644 x-pack/plugins/fleet/server/services/agents/bulk_action_types.ts create mode 100644 x-pack/plugins/fleet/server/services/agents/retry_helper.ts diff --git a/x-pack/plugins/fleet/server/routes/agent/handlers.ts b/x-pack/plugins/fleet/server/routes/agent/handlers.ts index 696e05e9c18b..bb43d32b6cfa 100644 --- a/x-pack/plugins/fleet/server/routes/agent/handlers.ts +++ b/x-pack/plugins/fleet/server/routes/agent/handlers.ts @@ -186,7 +186,7 @@ export const getAgentsHandler: RequestHandler< kuery: request.query.kuery, sortField: request.query.sortField, sortOrder: request.query.sortOrder, - getTotalInactive: true, + getTotalInactive: request.query.showInactive, }); const { total, page, perPage, totalInactive = 0 } = agentRes; diff --git a/x-pack/plugins/fleet/server/services/agents/action_runner.ts b/x-pack/plugins/fleet/server/services/agents/action_runner.ts index cba8f677c8b0..ce338b3d637f 100644 --- a/x-pack/plugins/fleet/server/services/agents/action_runner.ts +++ b/x-pack/plugins/fleet/server/services/agents/action_runner.ts @@ -6,7 +6,6 @@ */ import { v4 as uuidv4 } from 'uuid'; -import type { SortResults } from '@elastic/elasticsearch/lib/api/types'; import type { ElasticsearchClient, SavedObjectsClientContract } from '@kbn/core/server'; import { withSpan } from '@kbn/apm-utils'; @@ -21,8 +20,8 @@ import { SO_SEARCH_LIMIT } from '../../../common/constants'; import { getAgentActions } from './actions'; import { closePointInTime, getAgentsByKuery } from './crud'; import type { BulkActionsResolver } from './bulk_actions_resolver'; - -export const MAX_RETRY_COUNT = 5; +import type { RetryParams } from './retry_helper'; +import { getRetryParams, MAX_RETRY_COUNT } from './retry_helper'; export interface ActionParams { kuery: string; @@ -34,13 +33,6 @@ export interface ActionParams { [key: string]: any; } -export interface RetryParams { - pitId: string; - searchAfter?: SortResults; - retryCount?: number; - taskId?: string; -} - export abstract class ActionRunner { protected esClient: ElasticsearchClient; protected soClient: SavedObjectsClientContract; @@ -79,7 +71,9 @@ export abstract class ActionRunner { appContextService .getLogger() .info( - `Running action asynchronously, actionId: ${this.actionParams.actionId}, total agents: ${this.actionParams.total}` + `Running action asynchronously, actionId: ${this.actionParams.actionId}${ + this.actionParams.total ? ', total agents:' + this.actionParams.total : '' + }` ); if (!this.bulkActionsResolver) { @@ -153,10 +147,12 @@ export abstract class ActionRunner { this.actionParams.actionId!, this.getTaskType() + ':check' ); + const retryParams: RetryParams = getRetryParams(this.getTaskType(), this.retryParams); + return await this.bulkActionsResolver!.run( this.actionParams, { - ...this.retryParams, + ...retryParams, retryCount: 1, }, this.getTaskType(), @@ -233,7 +229,9 @@ export abstract class ActionRunner { } } - await closePointInTime(this.esClient, pitId!); + if (pitId) { + await closePointInTime(this.esClient, pitId!); + } appContextService .getLogger() diff --git a/x-pack/plugins/fleet/server/services/agents/bulk_action_types.ts b/x-pack/plugins/fleet/server/services/agents/bulk_action_types.ts new file mode 100644 index 000000000000..44ab84e0bc72 --- /dev/null +++ b/x-pack/plugins/fleet/server/services/agents/bulk_action_types.ts @@ -0,0 +1,14 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export enum BulkActionTaskType { + REASSIGN_RETRY = 'fleet:reassign_action:retry', + UNENROLL_RETRY = 'fleet:unenroll_action:retry', + UPGRADE_RETRY = 'fleet:upgrade_action:retry', + UPDATE_AGENT_TAGS_RETRY = 'fleet:update_agent_tags:retry', + REQUEST_DIAGNOSTICS_RETRY = 'fleet:request_diagnostics:retry', +} diff --git a/x-pack/plugins/fleet/server/services/agents/bulk_actions_resolver.ts b/x-pack/plugins/fleet/server/services/agents/bulk_actions_resolver.ts index b6ec1d082b39..b68bae611252 100644 --- a/x-pack/plugins/fleet/server/services/agents/bulk_actions_resolver.ts +++ b/x-pack/plugins/fleet/server/services/agents/bulk_actions_resolver.ts @@ -19,16 +19,11 @@ import { ReassignActionRunner } from './reassign_action_runner'; import { UpgradeActionRunner } from './upgrade_action_runner'; import { UpdateAgentTagsActionRunner } from './update_agent_tags_action_runner'; import { UnenrollActionRunner } from './unenroll_action_runner'; -import type { ActionParams, RetryParams } from './action_runner'; +import type { ActionParams } from './action_runner'; import { RequestDiagnosticsActionRunner } from './request_diagnostics_action_runner'; - -export enum BulkActionTaskType { - REASSIGN_RETRY = 'fleet:reassign_action:retry', - UNENROLL_RETRY = 'fleet:unenroll_action:retry', - UPGRADE_RETRY = 'fleet:upgrade_action:retry', - UPDATE_AGENT_TAGS_RETRY = 'fleet:update_agent_tags:retry', - REQUEST_DIAGNOSTICS_RETRY = 'fleet:request_diagnostics:retry', -} +import type { RetryParams } from './retry_helper'; +import { getRetryParams } from './retry_helper'; +import { BulkActionTaskType } from './bulk_action_types'; /** * Create and run retry tasks of agent bulk actions @@ -114,11 +109,7 @@ export class BulkActionsResolver { scope: ['fleet'], state: {}, params: { actionParams, retryParams }, - runAt: - runAt ?? - moment(new Date()) - .add(Math.pow(3, retryParams.retryCount ?? 1), 's') - .toDate(), + runAt: runAt ?? moment(new Date()).add(3, 's').toDate(), }); appContextService.getLogger().info('Scheduling task ' + taskId); return taskId; @@ -146,7 +137,10 @@ export function createRetryTask( const { esClient, soClient } = await getDeps(); - const retryParams = taskInstance.params.retryParams; + const retryParams: RetryParams = getRetryParams( + taskInstance.taskType, + taskInstance.params.retryParams + ); appContextService .getLogger() diff --git a/x-pack/plugins/fleet/server/services/agents/reassign_action_runner.ts b/x-pack/plugins/fleet/server/services/agents/reassign_action_runner.ts index cf6e3988e7be..b03146ab6b38 100644 --- a/x-pack/plugins/fleet/server/services/agents/reassign_action_runner.ts +++ b/x-pack/plugins/fleet/server/services/agents/reassign_action_runner.ts @@ -18,7 +18,7 @@ import { ActionRunner } from './action_runner'; import { bulkUpdateAgents } from './crud'; import { createErrorActionResults, createAgentAction } from './actions'; import { getHostedPolicies, isHostedAgent } from './hosted_agent'; -import { BulkActionTaskType } from './bulk_actions_resolver'; +import { BulkActionTaskType } from './bulk_action_types'; export class ReassignActionRunner extends ActionRunner { protected async processAgents(agents: Agent[]): Promise<{ actionId: string }> { diff --git a/x-pack/plugins/fleet/server/services/agents/request_diagnostics_action_runner.ts b/x-pack/plugins/fleet/server/services/agents/request_diagnostics_action_runner.ts index 9728afedbb02..d9552f3a1a41 100644 --- a/x-pack/plugins/fleet/server/services/agents/request_diagnostics_action_runner.ts +++ b/x-pack/plugins/fleet/server/services/agents/request_diagnostics_action_runner.ts @@ -12,7 +12,7 @@ import type { Agent } from '../../types'; import { ActionRunner } from './action_runner'; import { createAgentAction } from './actions'; -import { BulkActionTaskType } from './bulk_actions_resolver'; +import { BulkActionTaskType } from './bulk_action_types'; export class RequestDiagnosticsActionRunner extends ActionRunner { protected async processAgents(agents: Agent[]): Promise<{ actionId: string }> { diff --git a/x-pack/plugins/fleet/server/services/agents/retry_helper.ts b/x-pack/plugins/fleet/server/services/agents/retry_helper.ts new file mode 100644 index 000000000000..b15d5faa87c4 --- /dev/null +++ b/x-pack/plugins/fleet/server/services/agents/retry_helper.ts @@ -0,0 +1,30 @@ +/* + * 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 { SortResults } from '@elastic/elasticsearch/lib/api/types'; + +import { BulkActionTaskType } from './bulk_action_types'; + +export const MAX_RETRY_COUNT = 20; + +export interface RetryParams { + pitId?: string; + searchAfter?: SortResults; + retryCount?: number; + taskId?: string; +} + +export function getRetryParams(taskType: string, retryParams: RetryParams): RetryParams { + // update tags will retry with tags filter + return taskType === BulkActionTaskType.UPDATE_AGENT_TAGS_RETRY + ? { + ...retryParams, + pitId: undefined, + searchAfter: undefined, + } + : retryParams; +} diff --git a/x-pack/plugins/fleet/server/services/agents/unenroll_action_runner.ts b/x-pack/plugins/fleet/server/services/agents/unenroll_action_runner.ts index 359b016bd1b8..8f9a7f3763cc 100644 --- a/x-pack/plugins/fleet/server/services/agents/unenroll_action_runner.ts +++ b/x-pack/plugins/fleet/server/services/agents/unenroll_action_runner.ts @@ -29,7 +29,7 @@ import { getUnenrollAgentActions, } from './actions'; import { getHostedPolicies, isHostedAgent } from './hosted_agent'; -import { BulkActionTaskType } from './bulk_actions_resolver'; +import { BulkActionTaskType } from './bulk_action_types'; export class UnenrollActionRunner extends ActionRunner { protected async processAgents(agents: Agent[]): Promise<{ actionId: string }> { diff --git a/x-pack/plugins/fleet/server/services/agents/update_agent_tags.test.ts b/x-pack/plugins/fleet/server/services/agents/update_agent_tags.test.ts index d59aee0c700b..30c56b53640a 100644 --- a/x-pack/plugins/fleet/server/services/agents/update_agent_tags.test.ts +++ b/x-pack/plugins/fleet/server/services/agents/update_agent_tags.test.ts @@ -8,9 +8,12 @@ import type { SavedObjectsClientContract } from '@kbn/core/server'; import type { ElasticsearchClientMock } from '@kbn/core/server/mocks'; import { elasticsearchServiceMock, savedObjectsClientMock } from '@kbn/core/server/mocks'; +import type { Agent } from '../../types'; + import { createClientMock } from './action.mock'; +import { MAX_RETRY_COUNT } from './retry_helper'; import { updateAgentTags } from './update_agent_tags'; -import { updateTagsBatch } from './update_agent_tags_action_runner'; +import { UpdateAgentTagsActionRunner, updateTagsBatch } from './update_agent_tags_action_runner'; jest.mock('../app_context', () => { return { @@ -74,6 +77,7 @@ describe('update_agent_tags', () => { esClient.updateByQuery.mockResolvedValue({ failures: [], updated: 1 } as any); mockRunAsync.mockClear(); + (UpdateAgentTagsActionRunner as jest.Mock).mockClear(); }); it('should remove duplicate tags', async () => { @@ -83,7 +87,9 @@ describe('update_agent_tags', () => { expect.objectContaining({ conflicts: 'proceed', index: '.fleet-agents', - query: { terms: { _id: ['agent1'] } }, + query: { + terms: { _id: ['agent1'] }, + }, script: expect.objectContaining({ lang: 'painless', params: expect.objectContaining({ @@ -121,37 +127,16 @@ describe('update_agent_tags', () => { expect(actionResults.body[1].error).not.toBeDefined(); }); - it('should update action results on success - kuery', async () => { - await updateTagsBatch( - soClient, - esClient, - [], - {}, - { - tagsToAdd: ['new'], - tagsToRemove: [], - kuery: '', - } - ); - - const actionResults = esClient.bulk.mock.calls[0][0] as any; - const agentIds = actionResults?.body - ?.filter((i: any) => i.agent_id) - .map((i: any) => i.agent_id); - expect(agentIds[0]).toHaveLength(36); // uuid - expect(actionResults.body[1].error).not.toBeDefined(); - }); - it('should skip hosted agent from total when agentIds are passed', async () => { - const { esClient: esClientMock, agentInHostedDoc } = createClientMock(); + const { esClient: esClientMock, agentInHostedDoc, agentInRegularDoc } = createClientMock(); esClientMock.updateByQuery.mockReset(); - esClientMock.updateByQuery.mockResolvedValue({ failures: [], updated: 0, total: 0 } as any); + esClientMock.updateByQuery.mockResolvedValue({ failures: [], updated: 1, total: 1 } as any); await updateAgentTags( soClient, esClientMock, - { agentIds: [agentInHostedDoc._id] }, + { agentIds: [agentInHostedDoc._id, agentInRegularDoc._id] }, ['newName'], [] ); @@ -160,9 +145,9 @@ describe('update_agent_tags', () => { expect(agentAction?.body).toEqual( expect.objectContaining({ action_id: expect.anything(), - agents: [], + agents: [agentInRegularDoc._id], type: 'UPDATE_TAGS', - total: 0, + total: 1, }) ); }); @@ -205,14 +190,14 @@ describe('update_agent_tags', () => { updateTagsBatch( soClient, esClient, - [], + [{ id: 'agent1' } as Agent], {}, { tagsToAdd: ['new'], tagsToRemove: [], kuery: '', total: 100, - retryCount: 5, + retryCount: MAX_RETRY_COUNT, } ) ).rejects.toThrowError('version conflict of 100 agents'); @@ -247,13 +232,24 @@ describe('update_agent_tags', () => { await updateAgentTags(soClient, esClient, { kuery: '', batchSize: 2 }, ['newName'], []); expect(mockRunAsync).toHaveBeenCalled(); + expect(UpdateAgentTagsActionRunner).toHaveBeenCalledWith( + expect.anything(), + expect.anything(), + expect.objectContaining({ + batchSize: 2, + kuery: '(NOT (tags:newName))', + tagsToAdd: ['newName'], + tagsToRemove: [], + }), + expect.anything() + ); }); it('should add tags filter if only one tag to add', async () => { await updateTagsBatch( soClient, esClient, - [], + [{ id: 'agent1' } as Agent, { id: 'agent2' } as Agent], {}, { tagsToAdd: ['new'], @@ -263,94 +259,57 @@ describe('update_agent_tags', () => { ); const updateByQuery = esClient.updateByQuery.mock.calls[0][0] as any; - expect(updateByQuery.query).toMatchInlineSnapshot(` - Object { - "bool": Object { - "filter": Array [ - Object { - "bool": Object { - "must_not": Object { - "bool": Object { - "minimum_should_match": 1, - "should": Array [ - Object { - "bool": Object { - "minimum_should_match": 1, - "should": Array [ - Object { - "match": Object { - "status": "inactive", - }, - }, - ], - }, - }, - Object { - "bool": Object { - "minimum_should_match": 1, - "should": Array [ - Object { - "match": Object { - "status": "unenrolled", - }, - }, - ], - }, - }, - ], - }, - }, - }, - }, - Object { - "bool": Object { - "must_not": Object { - "bool": Object { - "minimum_should_match": 1, - "should": Array [ - Object { - "match": Object { - "tags": "new", - }, - }, - ], - }, - }, - }, - }, - ], - }, - } - `); + expect(updateByQuery.query).toEqual({ + terms: { _id: ['agent1', 'agent2'] }, + }); }); it('should add tags filter if only one tag to remove', async () => { - await updateTagsBatch( + await updateAgentTags(soClient, esClient, { kuery: '' }, [], ['remove']); + + expect(UpdateAgentTagsActionRunner).toHaveBeenCalledWith( + expect.anything(), + expect.anything(), + expect.objectContaining({ + batchSize: 10000, + kuery: '(tags:remove)', + tagsToAdd: [], + tagsToRemove: ['remove'], + }), + expect.anything() + ); + }); + + it('should add tags filter to existing kuery if only one tag to remove', async () => { + await updateAgentTags( soClient, esClient, + { kuery: 'status:healthy OR status:offline' }, [], - {}, - { - tagsToAdd: [], - tagsToRemove: ['remove'], - kuery: '', - } + ['remove'] ); - const updateByQuery = esClient.updateByQuery.mock.calls[0][0] as any; - expect(JSON.stringify(updateByQuery.query)).toContain( - '{"bool":{"should":[{"match":{"tags":"remove"}}],"minimum_should_match":1}}' + expect(UpdateAgentTagsActionRunner).toHaveBeenCalledWith( + expect.anything(), + expect.anything(), + expect.objectContaining({ + batchSize: 10000, + kuery: '(status:healthy OR status:offline) AND (tags:remove)', + tagsToAdd: [], + tagsToRemove: ['remove'], + }), + expect.anything() ); }); - it('should write total from updateByQuery result if query returns less results', async () => { + it('should write total from total param if updateByQuery returns less results', async () => { esClient.updateByQuery.mockReset(); esClient.updateByQuery.mockResolvedValue({ failures: [], updated: 0, total: 50 } as any); await updateTagsBatch( soClient, esClient, - [], + [{ id: 'agent1' } as Agent], {}, { tagsToAdd: ['new'], @@ -364,9 +323,9 @@ describe('update_agent_tags', () => { expect(agentAction?.body).toEqual( expect.objectContaining({ action_id: expect.anything(), - agents: [], + agents: ['agent1'], type: 'UPDATE_TAGS', - total: 50, + total: 100, }) ); }); diff --git a/x-pack/plugins/fleet/server/services/agents/update_agent_tags.ts b/x-pack/plugins/fleet/server/services/agents/update_agent_tags.ts index a53a5f453642..5e335bfd4199 100644 --- a/x-pack/plugins/fleet/server/services/agents/update_agent_tags.ts +++ b/x-pack/plugins/fleet/server/services/agents/update_agent_tags.ts @@ -10,7 +10,9 @@ import type { ElasticsearchClient, SavedObjectsClientContract } from '@kbn/core/ import type { Agent } from '../../types'; import { AgentReassignmentError } from '../../errors'; -import { getAgentsById } from './crud'; +import { SO_SEARCH_LIMIT } from '../../constants'; + +import { getAgentsById, getAgentsByKuery, openPointInTime } from './crud'; import type { GetAgentsOptions } from '.'; import { UpdateAgentTagsActionRunner, updateTagsBatch } from './update_agent_tags_action_runner'; @@ -36,16 +38,41 @@ export async function updateAgentTags( } } } else if ('kuery' in options) { + const batchSize = options.batchSize ?? SO_SEARCH_LIMIT; + + const filters = []; + if (options.kuery !== '') { + filters.push(options.kuery); + } + if (tagsToAdd.length === 1 && tagsToRemove.length === 0) { + filters.push(`NOT (tags:${tagsToAdd[0]})`); + } else if (tagsToRemove.length === 1 && tagsToAdd.length === 0) { + filters.push(`tags:${tagsToRemove[0]}`); + } + + const kuery = filters.map((filter) => `(${filter})`).join(' AND '); + const pitId = await openPointInTime(esClient); + + // calculate total count + const res = await getAgentsByKuery(esClient, soClient, { + kuery, + showInactive: options.showInactive ?? false, + perPage: 0, + pitId, + }); + return await new UpdateAgentTagsActionRunner( esClient, soClient, { ...options, - kuery: options.kuery, + kuery, tagsToAdd, tagsToRemove, + batchSize, + total: res.total, }, - { pitId: '' } + { pitId } ).runActionAsyncWithRetry(); } diff --git a/x-pack/plugins/fleet/server/services/agents/update_agent_tags_action_runner.ts b/x-pack/plugins/fleet/server/services/agents/update_agent_tags_action_runner.ts index 9c8725945249..1f12968b67c3 100644 --- a/x-pack/plugins/fleet/server/services/agents/update_agent_tags_action_runner.ts +++ b/x-pack/plugins/fleet/server/services/agents/update_agent_tags_action_runner.ts @@ -8,24 +8,19 @@ import type { SavedObjectsClientContract, ElasticsearchClient } from '@kbn/core/server'; import { v4 as uuidv4 } from 'uuid'; import { uniq } from 'lodash'; -import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import type { Agent } from '../../types'; -import { AGENTS_INDEX, AGENT_POLICY_SAVED_OBJECT_TYPE } from '../../constants'; +import { AGENTS_INDEX } from '../../constants'; import { appContextService } from '../app_context'; -import { agentPolicyService } from '../agent_policy'; +import { ActionRunner } from './action_runner'; -import { SO_SEARCH_LIMIT } from '../../../common/constants'; - -import { ActionRunner, MAX_RETRY_COUNT } from './action_runner'; - -import { BulkActionTaskType } from './bulk_actions_resolver'; +import { BulkActionTaskType } from './bulk_action_types'; import { filterHostedPolicies } from './filter_hosted_agents'; import { bulkCreateAgentActionResults, createAgentAction } from './actions'; -import { getElasticsearchQuery } from './crud'; +import { MAX_RETRY_COUNT } from './retry_helper'; export class UpdateAgentTagsActionRunner extends ActionRunner { protected async processAgents(agents: Agent[]): Promise<{ actionId: string }> { @@ -50,26 +45,6 @@ export class UpdateAgentTagsActionRunner extends ActionRunner { protected getActionType() { return 'UPDATE_TAGS'; } - - async processAgentsInBatches(): Promise<{ actionId: string }> { - const { updated, took } = await updateTagsBatch( - this.soClient, - this.esClient, - [], - {}, - { - tagsToAdd: this.actionParams?.tagsToAdd, - tagsToRemove: this.actionParams?.tagsToRemove, - actionId: this.actionParams.actionId, - total: this.actionParams.total, - kuery: this.actionParams.kuery, - retryCount: this.retryParams.retryCount, - } - ); - - appContextService.getLogger().info(`processed ${updated} agents, took ${took}ms`); - return { actionId: this.actionParams.actionId! }; - } } export async function updateTagsBatch( @@ -97,38 +72,26 @@ export async function updateTagsBatch( ); const agentIds = filteredAgents.map((agent) => agent.id); - let query: estypes.QueryDslQueryContainer | undefined; - if (options.kuery !== undefined) { - const hostedPolicies = await agentPolicyService.list(soClient, { - kuery: `${AGENT_POLICY_SAVED_OBJECT_TYPE}.is_managed:true`, - perPage: SO_SEARCH_LIMIT, - }); - const hostedIds = hostedPolicies.items.map((item) => item.id); - - const extraFilters = []; - if (options.tagsToAdd.length === 1 && options.tagsToRemove.length === 0) { - extraFilters.push(`NOT (tags:${options.tagsToAdd[0]})`); - } else if (options.tagsToRemove.length === 1 && options.tagsToAdd.length === 0) { - extraFilters.push(`tags:${options.tagsToRemove[0]}`); - } - const DEFAULT_STATUS_FILTER = - 'status:online or (status:error or status:degraded) or (status:updating or status:unenrolling or status:enrolling) or status:offline'; - // removing default staus filters, as it is a runtime field and doesn't work with updateByQuery - // this is a quick fix for bulk update tags with default filters - const kuery = options.kuery === DEFAULT_STATUS_FILTER ? '' : options.kuery; - query = getElasticsearchQuery(kuery, false, false, hostedIds, extraFilters); - } else { - query = { - terms: { - _id: agentIds, - }, - }; + const actionId = options.actionId ?? uuidv4(); + if (agentIds.length === 0) { + appContextService.getLogger().debug('No agents to update tags, returning'); + return { actionId, updated: 0, took: 0 }; } + appContextService + .getLogger() + .debug( + `Agents to update tags in batch: ${agentIds.length}, tagsToAdd: ${options.tagsToAdd}, tagsToRemove: ${options.tagsToRemove}` + ); + let res; try { res = await esClient.updateByQuery({ - query, + query: { + terms: { + _id: agentIds, + }, + }, index: AGENTS_INDEX, refresh: true, wait_for_completion: true, @@ -166,16 +129,14 @@ export async function updateTagsBatch( appContextService.getLogger().debug(JSON.stringify(res).slice(0, 1000)); - const actionId = options.actionId ?? uuidv4(); - if (options.retryCount === undefined) { // creating an action doc so that update tags shows up in activity await createAgentAction(esClient, { id: actionId, - agents: options.kuery === undefined ? agentIds : [], + agents: agentIds, created_at: new Date().toISOString(), type: 'UPDATE_TAGS', - total: res.total, + total: options.total ?? res.total, }); } @@ -186,7 +147,7 @@ export async function updateTagsBatch( if (res.updated ?? 0 > 0) { await bulkCreateAgentActionResults( esClient, - (options.kuery === undefined ? agentIds : getUuidArray(res.updated!)).map((id) => ({ + agentIds.map((id) => ({ agentId: id, actionId, })) diff --git a/x-pack/plugins/fleet/server/services/agents/upgrade_action_runner.ts b/x-pack/plugins/fleet/server/services/agents/upgrade_action_runner.ts index 501afe0d5404..ff677db23cac 100644 --- a/x-pack/plugins/fleet/server/services/agents/upgrade_action_runner.ts +++ b/x-pack/plugins/fleet/server/services/agents/upgrade_action_runner.ts @@ -24,7 +24,7 @@ import type { GetAgentsOptions } from './crud'; import { bulkUpdateAgents } from './crud'; import { createErrorActionResults, createAgentAction } from './actions'; import { getHostedPolicies, isHostedAgent } from './hosted_agent'; -import { BulkActionTaskType } from './bulk_actions_resolver'; +import { BulkActionTaskType } from './bulk_action_types'; export class UpgradeActionRunner extends ActionRunner { protected async processAgents(agents: Agent[]): Promise<{ actionId: string }> { From d692d4095797538aa73a140cb69e3072a3456bf5 Mon Sep 17 00:00:00 2001 From: Shahzad Date: Tue, 24 Jan 2023 11:12:37 +0100 Subject: [PATCH 16/26] [Synthetics] Object types panel and thresholds (#149099) Fixes https://github.com/elastic/kibana/issues/145395 Fixes https://github.com/elastic/kibana/issues/145892 --- .../e2e/journeys/synthetics/index.ts | 1 + .../synthetics/step_details.journey.ts | 55 +++++++ .../synthetics/synthetics_app.tsx | 18 +++ .../hooks/use_object_metrics.ts | 81 ++++++++-- .../hooks/use_prev_object_metrics.ts | 141 ++++++++++++++++++ .../network_timings_breakdown.tsx | 11 ++ .../step_details_page/step_detail_page.tsx | 2 +- .../step_metrics/step_metrics.tsx | 2 +- .../step_objects/color_palette.tsx | 59 +++++++- .../step_objects/object_count_list.tsx | 10 +- .../step_objects/object_weight_list.tsx | 10 +- .../network_timings_donut.tsx | 2 +- .../synthetics/hooks/use_redux_es_search.ts | 9 +- .../server/queries/get_journey_details.ts | 5 + 14 files changed, 378 insertions(+), 28 deletions(-) create mode 100644 x-pack/plugins/synthetics/e2e/journeys/synthetics/step_details.journey.ts create mode 100644 x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/hooks/use_prev_object_metrics.ts diff --git a/x-pack/plugins/synthetics/e2e/journeys/synthetics/index.ts b/x-pack/plugins/synthetics/e2e/journeys/synthetics/index.ts index c7232fefb6ef..15dd3c2b8724 100644 --- a/x-pack/plugins/synthetics/e2e/journeys/synthetics/index.ts +++ b/x-pack/plugins/synthetics/e2e/journeys/synthetics/index.ts @@ -22,3 +22,4 @@ export * from './test_now_mode.journey'; export * from './data_retention.journey'; export * from './monitor_details_page/monitor_summary.journey'; export * from './test_run_details.journey'; +export * from './step_details.journey'; diff --git a/x-pack/plugins/synthetics/e2e/journeys/synthetics/step_details.journey.ts b/x-pack/plugins/synthetics/e2e/journeys/synthetics/step_details.journey.ts new file mode 100644 index 000000000000..94172d2c2bde --- /dev/null +++ b/x-pack/plugins/synthetics/e2e/journeys/synthetics/step_details.journey.ts @@ -0,0 +1,55 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { journey, step, before, after } from '@elastic/synthetics'; +import { recordVideo } from '@kbn/observability-plugin/e2e/record_video'; +import { syntheticsAppPageProvider } from '../../page_objects/synthetics/synthetics_app'; +import { SyntheticsServices } from './services/synthetics_services'; + +journey(`StepDetailsPage`, async ({ page, params }) => { + recordVideo(page); + + page.setDefaultTimeout(60 * 1000); + const syntheticsApp = syntheticsAppPageProvider({ page, kibanaUrl: params.kibanaUrl }); + + const services = new SyntheticsServices(params); + + before(async () => { + await services.cleaUp(); + await services.enableMonitorManagedViaApi(); + await services.addTestMonitor( + 'https://www.google.com', + { + type: 'browser', + urls: 'https://www.google.com', + custom_heartbeat_id: 'a47bfc4e-361a-4eb0-83f3-b5bb68781b5b', + locations: [ + { id: 'us_central', label: 'North America - US Central', isServiceManaged: true }, + ], + }, + 'a47bfc4e-361a-4eb0-83f3-b5bb68781b5b' + ); + }); + + after(async () => { + await services.cleaUp(); + }); + + step('Go to step details page', async () => { + await syntheticsApp.navigateToStepDetails({ + stepIndex: 1, + checkGroup: 'ab240846-8d22-11ed-8fac-52bb19a2321e', + configId: 'a47bfc4e-361a-4eb0-83f3-b5bb68781b5b', + }); + }); + + step('it shows metrics', async () => { + await page.waitForSelector('text=558 KB'); + await page.waitForSelector('text=402 ms'); + await page.waitForSelector('text=521 ms'); + }); +}); diff --git a/x-pack/plugins/synthetics/e2e/page_objects/synthetics/synthetics_app.tsx b/x-pack/plugins/synthetics/e2e/page_objects/synthetics/synthetics_app.tsx index 1732c3f0e91b..f9e57b952961 100644 --- a/x-pack/plugins/synthetics/e2e/page_objects/synthetics/synthetics_app.tsx +++ b/x-pack/plugins/synthetics/e2e/page_objects/synthetics/synthetics_app.tsx @@ -50,6 +50,24 @@ export function syntheticsAppPageProvider({ page, kibanaUrl }: { page: Page; kib } }, + async navigateToStepDetails({ + configId, + stepIndex, + checkGroup, + doLogin = true, + }: { + checkGroup: string; + configId: string; + stepIndex: number; + doLogin?: boolean; + }) { + const stepDetails = `/monitor/${configId}/test-run/${checkGroup}/step/${stepIndex}?locationId=us_central`; + await page.goto(overview + stepDetails, { waitUntil: 'networkidle' }); + if (doLogin) { + await this.loginToKibana(); + } + }, + async waitForMonitorManagementLoadingToFinish() { while (true) { if ((await page.$(this.byTestId('uptimeLoader'))) === null) break; diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/hooks/use_object_metrics.ts b/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/hooks/use_object_metrics.ts index fd19ec7675ec..6cc622c8e19b 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/hooks/use_object_metrics.ts +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/hooks/use_object_metrics.ts @@ -7,31 +7,59 @@ import { useSelector } from 'react-redux'; import { useParams } from 'react-router-dom'; +import { usePreviousObjectMetrics } from './use_prev_object_metrics'; import { MIME_FILTERS, MimeType, MimeTypesMap } from '../common/network_data/types'; import { networkEventsSelector } from '../../../state/network_events/selectors'; export const useObjectMetrics = () => { const { checkGroupId, stepIndex } = useParams<{ checkGroupId: string; stepIndex: string }>(); + const { mimeData: prevMimeData } = usePreviousObjectMetrics(); + const _networkEvents = useSelector(networkEventsSelector); const networkEvents = _networkEvents[checkGroupId ?? '']?.[Number(stepIndex)]; - const objectTypeCounts: Record = {}; - const objectTypeWeights: Record = {}; + const objectTypeCounts: Record = {}; + const objectTypeWeights: Record = {}; networkEvents?.events.forEach((event) => { if (event.mimeType) { - objectTypeCounts[MimeTypesMap[event.mimeType] ?? MimeType.Other] = - (objectTypeCounts[MimeTypesMap[event.mimeType] ?? MimeType.Other] ?? 0) + 1; - objectTypeWeights[MimeTypesMap[event.mimeType] ?? MimeType.Other] = - (objectTypeWeights[MimeTypesMap[event.mimeType] ?? MimeType.Other] ?? 0) + - (event.transferSize || 0); + const mimeType = MimeTypesMap[event.mimeType] ?? MimeType.Other; + + if (objectTypeCounts[mimeType]) { + objectTypeCounts[mimeType].value++; + } else { + objectTypeCounts[mimeType] = { value: 1, prevValue: 0 }; + } + + if (objectTypeWeights[mimeType]) { + objectTypeWeights[mimeType].value += event.transferSize || 0; + } else { + objectTypeWeights[mimeType] = { + value: event.transferSize || 0, + prevValue: 0, + }; + } } }); - const totalObjects = Object.values(objectTypeCounts).reduce((acc, val) => acc + val, 0); + const totalObjects = Object.values(objectTypeCounts).reduce((acc, val) => acc + val.value, 0); - const totalObjectsWeight = Object.values(objectTypeWeights).reduce((acc, val) => acc + val, 0); + const totalObjectsWeight = Object.values(objectTypeWeights).reduce( + (acc, val) => acc + val.value, + 0 + ); + + Object.keys(prevMimeData).forEach((mimeType) => { + const mimeTypeKey = MimeTypesMap[mimeType] ?? MimeType.Other; + if (objectTypeCounts[mimeTypeKey]) { + objectTypeCounts[mimeTypeKey].prevValue += prevMimeData[mimeType].count; + } + + if (objectTypeWeights[mimeTypeKey]) { + objectTypeWeights[mimeTypeKey].prevValue += prevMimeData[mimeType].weight; + } + }); return { loading: networkEvents?.loading ?? true, @@ -39,16 +67,41 @@ export const useObjectMetrics = () => { totalObjectsWeight: formatBytes(totalObjectsWeight), items: MIME_FILTERS.map(({ label, mimeType }) => ({ label, - count: objectTypeCounts[mimeType] ?? 0, - total: totalObjects, mimeType, - percent: ((objectTypeCounts[mimeType] ?? 0) / totalObjects) * 100, - weight: formatBytes(objectTypeWeights[mimeType] ?? 0), - weightPercent: ((objectTypeWeights[mimeType] ?? 0) / totalObjectsWeight) * 100, + total: totalObjects, + count: objectTypeCounts?.[mimeType]?.value ?? 0, + percent: ((objectTypeCounts?.[mimeType]?.value ?? 0) / totalObjects) * 100, + weight: formatBytes(objectTypeWeights[mimeType]?.value ?? 0), + weightPercent: ((objectTypeWeights[mimeType]?.value ?? 0) / totalObjectsWeight) * 100, + + countDelta: getDeltaPercent( + objectTypeCounts?.[mimeType]?.value ?? 0, + objectTypeCounts?.[mimeType]?.prevValue ?? 0 + ), + weightDelta: getWeightDeltaPercent( + objectTypeWeights?.[mimeType]?.value, + objectTypeWeights?.[mimeType]?.prevValue + ), })), }; }; +export const getWeightDeltaPercent = (current: number, previous: number) => { + if (previous === 0 || !previous) { + return 0; + } + + return (((current - previous) / previous) * 100).toFixed(0); +}; + +export const getDeltaPercent = (current: number, previous: number) => { + if (previous === 0) { + return 0; + } + + return (((current - previous) / previous) * 100).toFixed(0); +}; + export const formatBytes = (bytes: number, decimals = 0) => { if (bytes === 0) return '0 Bytes'; diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/hooks/use_prev_object_metrics.ts b/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/hooks/use_prev_object_metrics.ts new file mode 100644 index 000000000000..1a5d31415dec --- /dev/null +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/hooks/use_prev_object_metrics.ts @@ -0,0 +1,141 @@ +/* + * 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 { useParams } from 'react-router-dom'; +import moment from 'moment'; +import { useJourneySteps } from '../../monitor_details/hooks/use_journey_steps'; +import { useReduxEsSearch } from '../../../hooks/use_redux_es_search'; +import { SYNTHETICS_INDEX_PATTERN } from '../../../../../../common/constants'; + +export const MONITOR_DURATION_US = 'monitor.duration.us'; +export const SYNTHETICS_CLS = 'browser.experience.cls'; +export const SYNTHETICS_LCP = 'browser.experience.lcp.us'; +export const SYNTHETICS_FCP = 'browser.experience.fcp.us'; +export const SYNTHETICS_ONLOAD_EVENT = 'browser.experience.load.us'; +export const SYNTHETICS_DCL = 'browser.experience.dcl.us'; +export const SYNTHETICS_STEP_NAME = 'synthetics.step.name.keyword'; +export const SYNTHETICS_STEP_DURATION = 'synthetics.step.duration.us'; + +export type PreviousObjectMetrics = ReturnType; + +export const usePreviousObjectMetrics = () => { + const { monitorId, stepIndex, checkGroupId } = useParams<{ + monitorId: string; + stepIndex: string; + checkGroupId: string; + }>(); + + const { data } = useJourneySteps(); + + const timestamp = data?.details?.timestamp; + + const { data: prevObjectMetrics } = useReduxEsSearch( + { + index: SYNTHETICS_INDEX_PATTERN, + body: { + track_total_hits: false, + sort: [ + { + '@timestamp': { + order: 'desc', + }, + }, + ], + size: 0, + runtime_mappings: { + 'synthetics.payload.transfer_size': { + type: 'long', + }, + }, + query: { + bool: { + filter: [ + { + range: { + '@timestamp': { + lte: timestamp ?? 'now', + gte: moment(timestamp).subtract(1, 'day').toISOString(), + }, + }, + }, + { + term: { + config_id: monitorId, + }, + }, + { + term: { + 'synthetics.type': 'journey/network_info', + }, + }, + { + term: { + 'synthetics.step.index': stepIndex, + }, + }, + { + range: { + '@timestamp': { + gte: 'now-24h/h', + lte: 'now', + }, + }, + }, + ], + must_not: [ + { + term: { + 'monitor.check_group': { + value: checkGroupId, + }, + }, + }, + ], + }, + }, + aggs: { + testRuns: { + cardinality: { + field: 'monitor.check_group', + }, + }, + objectCounts: { + terms: { + field: 'http.response.mime_type', + size: 500, + }, + aggs: { + weight: { + sum: { + field: 'synthetics.payload.transfer_size', + }, + }, + }, + }, + }, + }, + }, + [stepIndex, monitorId, checkGroupId], + { + name: `previousObjectMetrics/${monitorId}/${checkGroupId}/${stepIndex}/`, + isRequestReady: !!timestamp, + } + ); + + const mimeData: Record = {}; + + const testRuns = prevObjectMetrics?.aggregations?.testRuns?.value ?? 0; + + prevObjectMetrics?.aggregations?.objectCounts?.buckets?.forEach((bucket) => { + mimeData[bucket.key] = { + weight: bucket.weight.value ? bucket.weight.value / testRuns : 0, + count: bucket.doc_count / testRuns, + }; + }); + + return { mimeData }; +}; diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/network_timings_breakdown.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/network_timings_breakdown.tsx index 27ec3e6deffb..cd9a89c7e539 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/network_timings_breakdown.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/network_timings_breakdown.tsx @@ -11,6 +11,8 @@ import { ReportTypes } from '@kbn/observability-plugin/public'; import { EuiSpacer, EuiTitle } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { ClientPluginsStart } from '../../../../plugin'; +import { useSelectedLocation } from '../monitor_details/hooks/use_selected_location'; +import { LoadingState } from '../monitors_page/overview/overview/monitor_detail_flyout'; export const NetworkTimingsBreakdown = ({ monitorId }: { monitorId: string }) => { const { observability } = useKibana().services; @@ -19,6 +21,11 @@ export const NetworkTimingsBreakdown = ({ monitorId }: { monitorId: string }) => const { stepIndex } = useParams<{ checkGroupId: string; stepIndex: string }>(); + const selectedLocation = useSelectedLocation(); + if (!selectedLocation) { + return ; + } + return ( <> @@ -47,6 +54,10 @@ export const NetworkTimingsBreakdown = ({ monitorId }: { monitorId: string }) => field: 'synthetics.step.index', values: [stepIndex], }, + { + field: 'observer.geo.name', + values: [selectedLocation.label], + }, ], }, ]} diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/step_detail_page.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/step_detail_page.tsx index dfb72e3315cb..e190a45bd38b 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/step_detail_page.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/step_detail_page.tsx @@ -89,7 +89,7 @@ export const StepDetailPage = () => { - + diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/step_metrics/step_metrics.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/step_metrics/step_metrics.tsx index 3845fdf2def5..1539c98111c5 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/step_metrics/step_metrics.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/step_metrics/step_metrics.tsx @@ -134,7 +134,7 @@ const StatThreshold = ({ {title} {isSame ? ( - + ) : ( )} diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/step_objects/color_palette.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/step_objects/color_palette.tsx index 7d43f7d1dd26..78fbc568a098 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/step_objects/color_palette.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/step_objects/color_palette.tsx @@ -6,9 +6,17 @@ */ import React, { useState, useEffect } from 'react'; -import { EuiFlexGroup, EuiFlexItem, EuiText, EuiLoadingContent } from '@elastic/eui'; +import { + EuiFlexGroup, + EuiFlexItem, + EuiText, + EuiLoadingContent, + EuiIcon, + EuiToolTip, +} from '@elastic/eui'; import { useTheme } from '@kbn/observability-plugin/public'; import styled from 'styled-components'; +import { i18n } from '@kbn/i18n'; import { colourPalette } from '../common/network_data/data_formatting'; export const ColorPalette = ({ @@ -17,17 +25,52 @@ export const ColorPalette = ({ percent, value, loading, + delta, + hasAnyThresholdBreach, labelWidth = 40, - valueWidth = 60, + valueWidth = 65, }: { label: string; mimeType: string; percent: number; + delta: number; value: string; loading: boolean; + hasAnyThresholdBreach: boolean; labelWidth?: number; valueWidth?: number; }) => { + const getToolTipContent = () => { + return i18n.translate('xpack.synthetics.stepDetails.palette.tooltip.label', { + defaultMessage: 'Value is {deltaLabel} compared to steps in previous 24 hours.', + values: { + deltaLabel: + Math.abs(delta) === 0 + ? i18n.translate('xpack.synthetics.stepDetails.palette.tooltip.noChange', { + defaultMessage: 'same', + }) + : delta > 0 + ? i18n.translate('xpack.synthetics.stepDetails.palette.increased', { + defaultMessage: '{delta}% higher', + values: { delta }, + }) + : i18n.translate('xpack.synthetics.stepDetails.palette.decreased', { + defaultMessage: '{delta}% lower', + values: { delta }, + }), + }, + }); + }; + + const getColor = () => { + if (Math.abs(delta) < 5) { + return 'default'; + } + return delta > 5 ? 'danger' : 'success'; + }; + + const hasDelta = Math.abs(delta) > 0; + return ( @@ -45,10 +88,22 @@ export const ColorPalette = ({ size="s" style={{ fontWeight: 'bold', whiteSpace: 'nowrap' }} className="eui-textRight" + color={getColor()} > {value}
+ {hasAnyThresholdBreach && ( + + + {hasDelta ? ( + 0 ? 'sortUp' : 'sortDown'} size="m" color={getColor()} /> + ) : ( + + )} + + + )}
); }; diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/step_objects/object_count_list.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/step_objects/object_count_list.tsx index bbfec1d56fc2..ec4555da24dc 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/step_objects/object_count_list.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/step_objects/object_count_list.tsx @@ -14,6 +14,10 @@ import { useObjectMetrics } from '../hooks/use_object_metrics'; export const ObjectCountList = () => { const objectMetrics = useObjectMetrics(); + const hasAnyThresholdBreach = objectMetrics.items.some( + ({ countDelta }) => Math.abs(Number(countDelta)) > 5 + ); + return ( <> @@ -28,17 +32,19 @@ export const ObjectCountList = () => { - +
- {objectMetrics.items.map(({ label, mimeType, percent, count }) => ( + {objectMetrics.items.map(({ label, mimeType, percent, count, countDelta }) => ( diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/step_objects/object_weight_list.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/step_objects/object_weight_list.tsx index c787fcc0711b..186f92b9782d 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/step_objects/object_weight_list.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/step_objects/object_weight_list.tsx @@ -13,7 +13,9 @@ import { useObjectMetrics } from '../hooks/use_object_metrics'; export const ObjectWeightList = () => { const objectMetrics = useObjectMetrics(); - + const hasAnyThresholdBreach = objectMetrics.items.some( + ({ weightDelta }) => Math.abs(Number(weightDelta)) > 5 + ); return ( <> @@ -29,16 +31,18 @@ export const ObjectWeightList = () => { - +
- {objectMetrics.items.map(({ label, mimeType, weightPercent, weight }) => ( + {objectMetrics.items.map(({ label, mimeType, weightPercent, weight, weightDelta }) => ( {' '} diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/step_timing_breakdown/network_timings_donut.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/step_timing_breakdown/network_timings_donut.tsx index 439cc300afe4..e9d58427e882 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/step_timing_breakdown/network_timings_donut.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/step_timing_breakdown/network_timings_donut.tsx @@ -51,7 +51,7 @@ export const NetworkTimingsDonut = () => {

{TIMINGS_BREAKDOWN}

- + ( params: TParams, fnDeps: any[], - options: { inspector?: IInspectorInfo; name: string } + options: { inspector?: IInspectorInfo; name: string; isRequestReady?: boolean } ) => { - const { name } = options ?? {}; + const { name, isRequestReady = true } = options ?? {}; + const dispatch = useDispatch(); const loadings = useSelector(selectEsQueryLoading); @@ -33,11 +34,11 @@ export const useReduxEsSearch = < const errors = useSelector(selectEsQueryError); useEffect(() => { - if (params.index) { + if (params.index && isRequestReady) { dispatch(executeEsQueryAction.get({ params, name })); } // eslint-disable-next-line react-hooks/exhaustive-deps - }, [dispatch, name, JSON.stringify(params)]); + }, [dispatch, name, JSON.stringify(params), isRequestReady]); return useMemo(() => { return { diff --git a/x-pack/plugins/synthetics/server/queries/get_journey_details.ts b/x-pack/plugins/synthetics/server/queries/get_journey_details.ts index bacc3cf64ae4..f5b67f8e0e6a 100644 --- a/x-pack/plugins/synthetics/server/queries/get_journey_details.ts +++ b/x-pack/plugins/synthetics/server/queries/get_journey_details.ts @@ -65,6 +65,11 @@ export const getJourneyDetails: UMElasticsearchQueryFn< 'monitor.id': thisJourneySource.monitor.id, }, }, + { + term: { + 'observer.geo.name': thisJourneySource.observer?.geo?.name, + }, + }, { term: { 'synthetics.type': 'journey/start', From 06cec014790130a59d0e860beda2f5b325d3b20c Mon Sep 17 00:00:00 2001 From: Marco Liberati Date: Tue, 24 Jan 2023 11:32:17 +0100 Subject: [PATCH 17/26] [Lens] Enable previous time shift when using a date histogram (#149126) ## Summary Fixes #104259 This PR expands the support of the `previous` time shift for visualisations with a date histogram defined. On the implementation side, an absolute time shift in the shape of `endAt( startRange )` is leveraged to make it work the `previous` shift: anchoring the shift to the beginning of the current range will make sure to compute the right shift in terms of buckets in order to avoid misaligned shifts and the main reason why this feature has been disabled initially. I've tried to condense an explanation here with this diagram of the misalignment problem: ![previous_before](https://user-images.githubusercontent.com/924948/213234848-40e3382a-843d-43fa-83d1-769a5f2e7953.png) With the current approach, there's a small time range overlap between the two requested interval, but that's the result of the rounding logic to get both shifts aligned. ![previous_2](https://user-images.githubusercontent.com/924948/213235429-1c99aefb-e18b-450a-b2d7-45b7d74c9e71.png) The only alternative to avoid the overlap is to get a gap between the two, but the former seems a better result to me. ### Checklist Delete any items that are not applicable to this PR. - [ ] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md) - [ ] [Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials - [ ] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios - [ ] Any UI touched in this PR is usable by keyboard only (learn more about [keyboard accessibility](https://webaim.org/techniques/keyboard/)) - [ ] Any UI touched in this PR does not create any new axe failures (run axe in browser: [FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/), [Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US)) - [ ] If a plugin configuration key changed, check if it needs to be allowlisted in the cloud and added to the [docker list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker) - [ ] This renders correctly on smaller devices using a responsive layout. (You can test this [in your browser](https://www.browserstack.com/guide/responsive-testing-on-local-server)) - [ ] This was checked for [cross-browser compatibility](https://www.elastic.co/support/matrix#matrix_browsers) ### 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 --- .../form_based/dimension_panel/time_shift.tsx | 5 +- .../definitions/calculations/counter_rate.tsx | 20 ++--- .../calculations/cumulative_sum.tsx | 20 ++--- .../definitions/calculations/differences.tsx | 20 ++--- .../calculations/moving_average.tsx | 25 ++---- .../definitions/calculations/time_scale.tsx | 4 +- .../operations/definitions/cardinality.tsx | 2 - .../operations/definitions/count.tsx | 2 - .../formula/editor/math_completion.ts | 6 +- .../operations/definitions/last_value.tsx | 2 - .../operations/definitions/metrics.tsx | 2 - .../operations/definitions/percentile.tsx | 2 - .../definitions/percentile_ranks.tsx | 2 - .../form_based/time_shift_utils.test.tsx | 77 ++----------------- .../form_based/time_shift_utils.tsx | 52 ++++--------- .../datasources/form_based/to_expression.ts | 21 ++++- .../translations/translations/fr-FR.json | 1 - .../translations/translations/ja-JP.json | 1 - .../translations/translations/zh-CN.json | 1 - 19 files changed, 74 insertions(+), 191 deletions(-) diff --git a/x-pack/plugins/lens/public/datasources/form_based/dimension_panel/time_shift.tsx b/x-pack/plugins/lens/public/datasources/form_based/dimension_panel/time_shift.tsx index 1d3cfefa66a4..8bf26114416d 100644 --- a/x-pack/plugins/lens/public/datasources/form_based/dimension_panel/time_shift.tsx +++ b/x-pack/plugins/lens/public/datasources/form_based/dimension_panel/time_shift.tsx @@ -151,10 +151,7 @@ export function TimeShift({ options={timeShiftOptions.filter(({ value }) => { const parsedValue = parseTimeShift(value); return ( - parsedValue && - !isValueTooSmall(parsedValue) && - !isValueNotMultiple(parsedValue) && - !(parsedValue === 'previous' && dateHistogramInterval.interval) + parsedValue && !isValueTooSmall(parsedValue) && !isValueNotMultiple(parsedValue) // && ); })} selectedOptions={getSelectedOption()} diff --git a/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/calculations/counter_rate.tsx b/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/calculations/counter_rate.tsx index 3b89de8e94c5..e516ce206eb8 100644 --- a/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/calculations/counter_rate.tsx +++ b/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/calculations/counter_rate.tsx @@ -18,8 +18,7 @@ import { } from './utils'; import { DEFAULT_TIME_SCALE } from '../../time_scale_utils'; import { OperationDefinition } from '..'; -import { getFormatFromPreviousColumn, getFilter, combineErrorMessages } from '../helpers'; -import { getDisallowedPreviousShiftMessage } from '../../../time_shift_utils'; +import { getFormatFromPreviousColumn, getFilter } from '../helpers'; const ofName = buildLabelFunction((name?: string) => { return i18n.translate('xpack.lens.indexPattern.CounterRateOf', { @@ -107,16 +106,13 @@ export const counterRateOperation: OperationDefinition< return hasDateField(newIndexPattern); }, getErrorMessage: (layer: FormBasedLayer, columnId: string) => { - return combineErrorMessages([ - getErrorsForDateReference( - layer, - columnId, - i18n.translate('xpack.lens.indexPattern.counterRate', { - defaultMessage: 'Counter rate', - }) - ), - getDisallowedPreviousShiftMessage(layer, columnId), - ]); + return getErrorsForDateReference( + layer, + columnId, + i18n.translate('xpack.lens.indexPattern.counterRate', { + defaultMessage: 'Counter rate', + }) + ); }, getDisabledStatus(indexPattern, layer, layerType) { const opName = i18n.translate('xpack.lens.indexPattern.counterRate', { diff --git a/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/calculations/cumulative_sum.tsx b/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/calculations/cumulative_sum.tsx index 339f5e4bc400..773f36699079 100644 --- a/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/calculations/cumulative_sum.tsx +++ b/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/calculations/cumulative_sum.tsx @@ -17,8 +17,7 @@ import { checkForDataLayerType, } from './utils'; import { OperationDefinition } from '..'; -import { getFormatFromPreviousColumn, getFilter, combineErrorMessages } from '../helpers'; -import { getDisallowedPreviousShiftMessage } from '../../../time_shift_utils'; +import { getFormatFromPreviousColumn, getFilter } from '../helpers'; import { DOCUMENT_FIELD_NAME } from '../../../../../../common'; const ofName = buildLabelFunction((name?: string) => { @@ -107,16 +106,13 @@ export const cumulativeSumOperation: OperationDefinition< return true; }, getErrorMessage: (layer: FormBasedLayer, columnId: string) => { - return combineErrorMessages([ - getErrorsForDateReference( - layer, - columnId, - i18n.translate('xpack.lens.indexPattern.cumulativeSum', { - defaultMessage: 'Cumulative sum', - }) - ), - getDisallowedPreviousShiftMessage(layer, columnId), - ]); + return getErrorsForDateReference( + layer, + columnId, + i18n.translate('xpack.lens.indexPattern.cumulativeSum', { + defaultMessage: 'Cumulative sum', + }) + ); }, getDisabledStatus(indexPattern, layer, layerType) { const opName = i18n.translate('xpack.lens.indexPattern.cumulativeSum', { diff --git a/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/calculations/differences.tsx b/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/calculations/differences.tsx index f2c379b5af5c..f6ce789859b8 100644 --- a/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/calculations/differences.tsx +++ b/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/calculations/differences.tsx @@ -17,8 +17,7 @@ import { checkForDataLayerType, } from './utils'; import { OperationDefinition } from '..'; -import { getFormatFromPreviousColumn, getFilter, combineErrorMessages } from '../helpers'; -import { getDisallowedPreviousShiftMessage } from '../../../time_shift_utils'; +import { getFormatFromPreviousColumn, getFilter } from '../helpers'; const OPERATION_NAME = 'differences'; @@ -93,16 +92,13 @@ export const derivativeOperation: OperationDefinition< return hasDateField(newIndexPattern); }, getErrorMessage: (layer: FormBasedLayer, columnId: string) => { - return combineErrorMessages([ - getErrorsForDateReference( - layer, - columnId, - i18n.translate('xpack.lens.indexPattern.derivative', { - defaultMessage: 'Differences', - }) - ), - getDisallowedPreviousShiftMessage(layer, columnId), - ]); + return getErrorsForDateReference( + layer, + columnId, + i18n.translate('xpack.lens.indexPattern.derivative', { + defaultMessage: 'Differences', + }) + ); }, getDisabledStatus(indexPattern, layer, layerType) { const opName = i18n.translate('xpack.lens.indexPattern.derivative', { diff --git a/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/calculations/moving_average.tsx b/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/calculations/moving_average.tsx index d7b46d09c0f1..1d20f2052169 100644 --- a/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/calculations/moving_average.tsx +++ b/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/calculations/moving_average.tsx @@ -21,14 +21,8 @@ import { checkForDataLayerType, } from './utils'; import { updateColumnParam } from '../../layer_helpers'; -import { - getFormatFromPreviousColumn, - isValidNumber, - getFilter, - combineErrorMessages, -} from '../helpers'; +import { getFormatFromPreviousColumn, isValidNumber, getFilter } from '../helpers'; import type { OperationDefinition, ParamEditorProps } from '..'; -import { getDisallowedPreviousShiftMessage } from '../../../time_shift_utils'; const ofName = buildLabelFunction((name?: string) => { return i18n.translate('xpack.lens.indexPattern.movingAverageOf', { @@ -115,16 +109,13 @@ export const movingAverageOperation: OperationDefinition< return hasDateField(newIndexPattern); }, getErrorMessage: (layer: FormBasedLayer, columnId: string) => { - return combineErrorMessages([ - getErrorsForDateReference( - layer, - columnId, - i18n.translate('xpack.lens.indexPattern.movingAverage', { - defaultMessage: 'Moving average', - }) - ), - getDisallowedPreviousShiftMessage(layer, columnId), - ]); + return getErrorsForDateReference( + layer, + columnId, + i18n.translate('xpack.lens.indexPattern.movingAverage', { + defaultMessage: 'Moving average', + }) + ); }, helpComponent: () => , helpComponentTitle: i18n.translate('xpack.lens.indexPattern.movingAverage.titleHelp', { diff --git a/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/calculations/time_scale.tsx b/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/calculations/time_scale.tsx index 59eb7fea4623..ecf91b9bd360 100644 --- a/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/calculations/time_scale.tsx +++ b/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/calculations/time_scale.tsx @@ -14,7 +14,6 @@ import { getErrorsForDateReference } from './utils'; import type { OperationDefinition } from '..'; import { combineErrorMessages, getFormatFromPreviousColumn } from '../helpers'; import { FormBasedLayer } from '../../../types'; -import { getDisallowedPreviousShiftMessage } from '../../../time_shift_utils'; type OverallMetricIndexPatternColumn = FormattedIndexPatternColumn & ReferenceBasedIndexPatternColumn & { @@ -110,7 +109,6 @@ export const timeScaleOperation: OperationDefinition combineErrorMessages([ getInvalidFieldMessage(layer.columns[columnId] as FieldBasedIndexPatternColumn, indexPattern), - getDisallowedPreviousShiftMessage(layer, columnId), getColumnReducedTimeRangeError(layer, columnId, indexPattern), ]), isTransferable: (column, newIndexPattern) => { diff --git a/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/count.tsx b/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/count.tsx index 60c1a0cdf0f5..b5bd36d94225 100644 --- a/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/count.tsx +++ b/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/count.tsx @@ -23,7 +23,6 @@ import { isColumnOfType, } from './helpers'; import { adjustTimeScaleLabelSuffix } from '../time_scale_utils'; -import { getDisallowedPreviousShiftMessage } from '../../time_shift_utils'; import { updateColumnParam } from '../layer_helpers'; import { getColumnReducedTimeRangeError } from '../../reduced_time_range_utils'; import { getGroupByKey } from './get_group_by_key'; @@ -92,7 +91,6 @@ export const countOperation: OperationDefinition combineErrorMessages([ getInvalidFieldMessage(layer.columns[columnId] as FieldBasedIndexPatternColumn, indexPattern), - getDisallowedPreviousShiftMessage(layer, columnId), getColumnReducedTimeRangeError(layer, columnId, indexPattern), ]), allowAsReference: true, diff --git a/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/formula/editor/math_completion.ts b/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/formula/editor/math_completion.ts index a0a968a13688..11d6797a1c99 100644 --- a/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/formula/editor/math_completion.ts +++ b/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/formula/editor/math_completion.ts @@ -395,9 +395,9 @@ export async function getNamedArgumentSuggestions({ if (dateHistogramInterval == null) return true; const parsedValue = parseTimeShift(value); return ( - parsedValue !== 'previous' && - (parsedValue === 'invalid' || - Number.isInteger(parsedValue.asMilliseconds() / dateHistogramInterval)) + parsedValue === 'previous' || + parsedValue === 'invalid' || + Number.isInteger(parsedValue.asMilliseconds() / dateHistogramInterval) ); }) .map(({ value }) => value); diff --git a/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/last_value.tsx b/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/last_value.tsx index db9c7c0d6ab0..cde3f10b64c0 100644 --- a/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/last_value.tsx +++ b/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/last_value.tsx @@ -29,7 +29,6 @@ import { getFilter, } from './helpers'; import { adjustTimeScaleLabelSuffix } from '../time_scale_utils'; -import { getDisallowedPreviousShiftMessage } from '../../time_shift_utils'; import { isRuntimeField, isScriptedField } from './terms/helpers'; import { FormRow } from './shared_components/form_row'; import { getColumnReducedTimeRangeError } from '../../reduced_time_range_utils'; @@ -214,7 +213,6 @@ export const lastValueOperation: OperationDefinition< if (invalidSortFieldMessage) { errorMessages = [invalidSortFieldMessage]; } - errorMessages.push(...(getDisallowedPreviousShiftMessage(layer, columnId) || [])); errorMessages.push(...(getColumnReducedTimeRangeError(layer, columnId, indexPattern) || [])); return errorMessages.length ? errorMessages : undefined; }, diff --git a/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/metrics.tsx b/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/metrics.tsx index bb15831a3185..4c11393af08e 100644 --- a/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/metrics.tsx +++ b/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/metrics.tsx @@ -25,7 +25,6 @@ import { ValueFormatConfig, } from './column_types'; import { adjustTimeScaleLabelSuffix } from '../time_scale_utils'; -import { getDisallowedPreviousShiftMessage } from '../../time_shift_utils'; import { updateColumnParam } from '../layer_helpers'; import { getColumnReducedTimeRangeError } from '../../reduced_time_range_utils'; import { getGroupByKey } from './get_group_by_key'; @@ -215,7 +214,6 @@ function buildMetricOperation>({ layer.columns[columnId] as FieldBasedIndexPatternColumn, indexPattern ), - getDisallowedPreviousShiftMessage(layer, columnId), getColumnReducedTimeRangeError(layer, columnId, indexPattern), ]), filterable: true, diff --git a/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/percentile.tsx b/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/percentile.tsx index b55b1325a245..34f9f854d374 100644 --- a/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/percentile.tsx +++ b/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/percentile.tsx @@ -28,7 +28,6 @@ import { import { FieldBasedIndexPatternColumn } from './column_types'; import { adjustTimeScaleLabelSuffix } from '../time_scale_utils'; import { useDebouncedValue } from '../../../../shared_components'; -import { getDisallowedPreviousShiftMessage } from '../../time_shift_utils'; import { FormRow } from './shared_components'; import { getColumnReducedTimeRangeError } from '../../reduced_time_range_utils'; import { getGroupByKey, groupByKey } from './get_group_by_key'; @@ -290,7 +289,6 @@ export const percentileOperation: OperationDefinition< getErrorMessage: (layer, columnId, indexPattern) => combineErrorMessages([ getInvalidFieldMessage(layer.columns[columnId] as FieldBasedIndexPatternColumn, indexPattern), - getDisallowedPreviousShiftMessage(layer, columnId), getColumnReducedTimeRangeError(layer, columnId, indexPattern), ]), paramEditor: function PercentileParamEditor({ diff --git a/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/percentile_ranks.tsx b/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/percentile_ranks.tsx index 3d7b12802858..3aadcb293114 100644 --- a/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/percentile_ranks.tsx +++ b/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/percentile_ranks.tsx @@ -23,7 +23,6 @@ import { import { FieldBasedIndexPatternColumn } from './column_types'; import { adjustTimeScaleLabelSuffix } from '../time_scale_utils'; import { useDebouncedValue } from '../../../../shared_components'; -import { getDisallowedPreviousShiftMessage } from '../../time_shift_utils'; import { FormRow } from './shared_components'; import { getColumnReducedTimeRangeError } from '../../reduced_time_range_utils'; @@ -168,7 +167,6 @@ export const percentileRanksOperation: OperationDefinition< getErrorMessage: (layer, columnId, indexPattern) => combineErrorMessages([ getInvalidFieldMessage(layer.columns[columnId] as FieldBasedIndexPatternColumn, indexPattern), - getDisallowedPreviousShiftMessage(layer, columnId), getColumnReducedTimeRangeError(layer, columnId, indexPattern), ]), paramEditor: function PercentileParamEditor({ diff --git a/x-pack/plugins/lens/public/datasources/form_based/time_shift_utils.test.tsx b/x-pack/plugins/lens/public/datasources/form_based/time_shift_utils.test.tsx index 3405752d3ec4..a2495fbbbc1f 100644 --- a/x-pack/plugins/lens/public/datasources/form_based/time_shift_utils.test.tsx +++ b/x-pack/plugins/lens/public/datasources/form_based/time_shift_utils.test.tsx @@ -6,80 +6,9 @@ */ import moment from 'moment'; -import { getDisallowedPreviousShiftMessage, resolveTimeShift } from './time_shift_utils'; -import { FormBasedLayer } from './types'; +import { resolveTimeShift } from './time_shift_utils'; describe('time_shift_utils', () => { - describe('getDisallowedPreviousShiftMessage', () => { - const layer: FormBasedLayer = { - indexPatternId: '', - columnOrder: [], - columns: { - a: { - operationType: 'date_histogram', - dataType: 'date', - isBucketed: true, - label: '', - references: [], - sourceField: 'timestamp', - }, - b: { - operationType: 'count', - dataType: 'number', - isBucketed: false, - label: 'non shifted', - references: [], - sourceField: 'records', - }, - c: { - operationType: 'count', - dataType: 'number', - isBucketed: false, - label: 'shifted', - timeShift: '1d', - references: [], - sourceField: 'records', - }, - }, - }; - - it('shoud not produce an error for no shift', () => { - expect(getDisallowedPreviousShiftMessage(layer, 'b')).toBeUndefined(); - }); - - it('shoud not produce an error for non-previous shift', () => { - expect(getDisallowedPreviousShiftMessage(layer, 'c')).toBeUndefined(); - }); - - it('shoud produce an error for previous shift with date histogram', () => { - expect( - getDisallowedPreviousShiftMessage( - { - ...layer, - columns: { ...layer.columns, c: { ...layer.columns.c, timeShift: 'previous' } }, - }, - 'c' - ) - ).toHaveLength(1); - }); - - it('shoud not produce an error for previous shift without date histogram', () => { - expect( - getDisallowedPreviousShiftMessage( - { - ...layer, - columns: { - ...layer.columns, - a: { ...layer.columns.a, operationType: 'terms' }, - c: { ...layer.columns.c, timeShift: 'previous' }, - }, - }, - 'c' - ) - ).toBeUndefined(); - }); - }); - describe('resolveTimeShift', () => { const dateString = '2022-11-02T00:00:00.000Z'; // shift by 2 days + 2500 s (to get a shift which is not a multiple of the given interval) @@ -113,6 +42,10 @@ describe('time_shift_utils', () => { .toBe('261000s'); }); + it('should convert previous relative time shift to seconds (rounded) when a date histogram is present', () => { + expect(resolveTimeShift(`previous`, getDateRange(), 100, true)).toBe('171000s'); + }); + it('should always include the passed date in the computed interval', () => { const dateRange = getDateRange(); for (const anchor of ['startAt', 'endAt']) { diff --git a/x-pack/plugins/lens/public/datasources/form_based/time_shift_utils.tsx b/x-pack/plugins/lens/public/datasources/form_based/time_shift_utils.tsx index b673f00a3439..c287a93675f6 100644 --- a/x-pack/plugins/lens/public/datasources/form_based/time_shift_utils.tsx +++ b/x-pack/plugins/lens/public/datasources/form_based/time_shift_utils.tsx @@ -23,10 +23,13 @@ import type { FormBasedLayer, FormBasedPrivateState } from './types'; import type { FramePublicAPI, IndexPattern } from '../../types'; export function parseTimeShiftWrapper(timeShiftString: string, dateRange: DateRange) { - return isAbsoluteTimeShift(timeShiftString.trim()) - ? parseAbsoluteTimeShift(timeShiftString, { from: dateRange.fromDate, to: dateRange.toDate }) - .value - : parseTimeShift(timeShiftString); + if (isAbsoluteTimeShift(timeShiftString.trim())) { + return parseAbsoluteTimeShift(timeShiftString, { + from: dateRange.fromDate, + to: dateRange.toDate, + }).value; + } + return parseTimeShift(timeShiftString); } export const timeShiftOptions = [ @@ -142,7 +145,6 @@ export function getDateHistogramInterval( export function getLayerTimeShiftChecks({ interval: dateHistogramInterval, - hasDateHistogram, canShift, }: ReturnType) { return { @@ -164,42 +166,11 @@ export function getLayerTimeShiftChecks({ ); }, isInvalid: (parsedValue: ReturnType) => { - return Boolean( - parsedValue === 'invalid' || (hasDateHistogram && parsedValue && parsedValue === 'previous') - ); + return Boolean(parsedValue === 'invalid'); }, }; } -export function getDisallowedPreviousShiftMessage( - layer: FormBasedLayer, - columnId: string -): string[] | undefined { - const currentColumn = layer.columns[columnId]; - const hasPreviousShift = - currentColumn.timeShift && - !isAbsoluteTimeShift(currentColumn.timeShift) && - parseTimeShift(currentColumn.timeShift) === 'previous'; - if (!hasPreviousShift) { - return; - } - const hasDateHistogram = Object.values(layer.columns).some( - (column) => column.operationType === 'date_histogram' - ); - if (!hasDateHistogram) { - return; - } - return [ - i18n.translate('xpack.lens.indexPattern.dateHistogramTimeShift', { - defaultMessage: - 'In a single layer, you are unable to combine previous time range shift with date histograms. Either use an explicit time shift duration in "{column}" or replace the date histogram.', - values: { - column: currentColumn.label, - }, - }), - ]; -} - export function getStateTimeShiftWarningMessages( datatableUtilities: DatatableUtilitiesService, state: FormBasedPrivateState, @@ -346,10 +317,15 @@ function roundAbsoluteInterval(timeShift: string, dateRange: DateRange, targetBa export function resolveTimeShift( timeShift: string | undefined, dateRange: DateRange, - targetBars: number + targetBars: number, + hasDateHistogram: boolean = false ) { if (timeShift && isAbsoluteTimeShift(timeShift)) { return roundAbsoluteInterval(timeShift, dateRange, targetBars); } + // Translate a relative "previous" shift into an absolute endAt() + if (timeShift && hasDateHistogram && timeShift === 'previous') { + return roundAbsoluteInterval(`endAt(${dateRange.fromDate})`, dateRange, targetBars); + } return timeShift; } diff --git a/x-pack/plugins/lens/public/datasources/form_based/to_expression.ts b/x-pack/plugins/lens/public/datasources/form_based/to_expression.ts index 61e17c72ca82..9ec654c47868 100644 --- a/x-pack/plugins/lens/public/datasources/form_based/to_expression.ts +++ b/x-pack/plugins/lens/public/datasources/form_based/to_expression.ts @@ -158,7 +158,12 @@ function getExpressionForLayer( let aggAst = def.toEsAggsFn( { ...col, - timeShift: resolveTimeShift(col.timeShift, dateRange, histogramBarsTarget), + timeShift: resolveTimeShift( + col.timeShift, + dateRange, + histogramBarsTarget, + hasDateHistogram + ), }, wrapInFilter || wrapInTimeFilter ? `${aggId}-metric` : aggId, indexPattern, @@ -181,11 +186,21 @@ function getExpressionForLayer( schema: 'bucket', filter: col.filter && queryToAst(col.filter), timeWindow: wrapInTimeFilter ? col.reducedTimeRange : undefined, - timeShift: resolveTimeShift(col.timeShift, dateRange, histogramBarsTarget), + timeShift: resolveTimeShift( + col.timeShift, + dateRange, + histogramBarsTarget, + hasDateHistogram + ), }), ]), customMetric: buildExpression({ type: 'expression', chain: [aggAst] }), - timeShift: resolveTimeShift(col.timeShift, dateRange, histogramBarsTarget), + timeShift: resolveTimeShift( + col.timeShift, + dateRange, + histogramBarsTarget, + hasDateHistogram + ), } ).toAst(); } diff --git a/x-pack/plugins/translations/translations/fr-FR.json b/x-pack/plugins/translations/translations/fr-FR.json index ae0994252e74..eb0d05782eaa 100644 --- a/x-pack/plugins/translations/translations/fr-FR.json +++ b/x-pack/plugins/translations/translations/fr-FR.json @@ -18116,7 +18116,6 @@ "xpack.lens.indexPattern.cumulativeSumOf": "Somme cumulée de {name}", "xpack.lens.indexPattern.dateHistogram.autoLongerExplanation": "Pour choisir l'intervalle, Lens divise la plage temporelle spécifiée par le paramètre avancé {targetBarSetting} et calcule le meilleur intervalle pour vos données. Par exemple, lorsque la plage temporelle est de 4 jours, les données sont divisées en compartiments horaires. Pour configurer le nombre de barres maximal, utilisez le paramètre avancé {maxBarSetting}.", "xpack.lens.indexPattern.dateHistogram.restrictedInterval": "Intervalle fixé à {intervalValue} en raison de restrictions d'agrégation.", - "xpack.lens.indexPattern.dateHistogramTimeShift": "Dans un calque unique, vous ne pouvez pas combiner un décalage de plage temporelle précédent avec des histogrammes de dates. Utilisez une durée de décalage temporel explicite dans \"{column}\" ou remplacez l’histogramme de dates.", "xpack.lens.indexPattern.derivativeOf": "Différences de {name}", "xpack.lens.indexPattern.fieldNoOperation": "Le champ {field} ne peut pas être utilisé sans opération", "xpack.lens.indexPattern.fieldsNotFound": "{count, plural, one {Champ} other {Champs}} {missingFields} {count, plural, one {introuvable} other {introuvables}}", diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index 1082e2930eff..cfaed97466f3 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -18098,7 +18098,6 @@ "xpack.lens.indexPattern.cumulativeSumOf": "{name}の累積和", "xpack.lens.indexPattern.dateHistogram.autoLongerExplanation": "間隔を選択するために、Lensでは、指定された時間範囲が{targetBarSetting}詳細設定で分割され、データに最適な間隔が計算されます。たとえば、時間範囲が4日の場合、データは1時間のバケットに分割されます。バーの最大数を設定するには、{maxBarSetting}詳細設定を使用します。", "xpack.lens.indexPattern.dateHistogram.restrictedInterval": "集約の制限により間隔は {intervalValue} に固定されています。", - "xpack.lens.indexPattern.dateHistogramTimeShift": "単一のレイヤーでは、前の時間範囲シフトと日付ヒストグラムを結合できません。\"{column}\"で明示的な時間シフト期間を使用するか、日付ヒストグラムを置換してください。", "xpack.lens.indexPattern.derivativeOf": "{name} の差異", "xpack.lens.indexPattern.fieldNoOperation": "フィールド{field}は演算なしで使用できません", "xpack.lens.indexPattern.fieldsNotFound": "{count, plural, other {個のフィールド}} {missingFields} {count, plural, other {が}}見つかりません", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index 9a3d2c6a2b0b..add5fcecf5ea 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -18121,7 +18121,6 @@ "xpack.lens.indexPattern.cumulativeSumOf": "{name} 的累计和", "xpack.lens.indexPattern.dateHistogram.autoLongerExplanation": "要选择时间间隔,Lens 会按 {targetBarSetting} 高级设置分割指定的时间范围,并为您的数据计算最佳时间间隔。例如,当时间间隔为 4 天时,数据将分割为每小时存储桶。要配置最大条形数,请使用 {maxBarSetting} 高级设置。", "xpack.lens.indexPattern.dateHistogram.restrictedInterval": "由于聚合限制,时间间隔固定为 {intervalValue}。", - "xpack.lens.indexPattern.dateHistogramTimeShift": "在单个图层中,您无法组合上一时间范围偏移与 Date Histogram。在“{column}”中使用显式时间偏移持续时间,或替换 Date Histogram。", "xpack.lens.indexPattern.derivativeOf": "{name} 的差异", "xpack.lens.indexPattern.fieldNoOperation": "没有运算,无法使用字段 {field}", "xpack.lens.indexPattern.fieldsNotFound": "找不到{count, plural, other {字段}} {missingFields} {count, plural, other {}}", From 48eb4d51d12a0c37a0e197ff7bb43db8d3d23d20 Mon Sep 17 00:00:00 2001 From: Jordan <51442161+JordanSh@users.noreply.github.com> Date: Tue, 24 Jan 2023 12:54:15 +0200 Subject: [PATCH 18/26] [Cloud Posture] CIS AWS support - changes to findings tables (#148945) --- .../common/schemas/csp_rule_metadata.ts | 1 + .../common/utils/helpers.ts | 14 +++- .../components/compliance_score_bar.tsx | 77 +++++++++++++++++++ .../compliance_charts/risks_table.tsx | 63 +-------------- .../pages/findings/__mocks__/findings.ts | 1 + .../latest_findings_table.test.tsx | 6 +- .../latest_findings/latest_findings_table.tsx | 7 +- .../findings_by_resource_container.tsx | 4 +- .../findings_by_resource_table.test.tsx | 32 ++++---- .../findings_by_resource_table.tsx | 42 +++------- .../resource_findings_table.tsx | 2 +- .../use_findings_by_resource.ts | 32 ++++++-- .../pages/findings/layout/findings_layout.tsx | 39 +++++++--- .../collectors/accounts_stats_collector.ts | 2 +- .../get_grouped_findings_evaluation.ts | 2 +- .../compliance_dashboard/get_stats.test.ts | 8 +- .../routes/compliance_dashboard/get_stats.ts | 11 +-- .../routes/compliance_dashboard/get_trends.ts | 2 +- .../saved_objects/migrations/csp_rule.ts | 2 +- .../migrations/csp_rule_template.ts | 2 +- .../translations/translations/fr-FR.json | 4 - .../translations/translations/ja-JP.json | 4 - .../translations/translations/zh-CN.json | 4 - .../pages/findings.ts | 20 ++--- 24 files changed, 206 insertions(+), 175 deletions(-) create mode 100644 x-pack/plugins/cloud_security_posture/public/components/compliance_score_bar.tsx diff --git a/x-pack/plugins/cloud_security_posture/common/schemas/csp_rule_metadata.ts b/x-pack/plugins/cloud_security_posture/common/schemas/csp_rule_metadata.ts index 9bfd8eb5b8f2..40d84e952433 100644 --- a/x-pack/plugins/cloud_security_posture/common/schemas/csp_rule_metadata.ts +++ b/x-pack/plugins/cloud_security_posture/common/schemas/csp_rule_metadata.ts @@ -12,6 +12,7 @@ export const cspRuleMetadataSchema = rt.object({ name: rt.string(), id: rt.string(), version: rt.string(), + rule_number: rt.maybe(rt.string()), }), default_value: rt.maybe(rt.string()), description: rt.string(), diff --git a/x-pack/plugins/cloud_security_posture/common/utils/helpers.ts b/x-pack/plugins/cloud_security_posture/common/utils/helpers.ts index d128713e6fdd..a7f07f70fd89 100644 --- a/x-pack/plugins/cloud_security_posture/common/utils/helpers.ts +++ b/x-pack/plugins/cloud_security_posture/common/utils/helpers.ts @@ -18,7 +18,7 @@ import { CLOUDBEAT_VANILLA, CSP_RULE_TEMPLATE_SAVED_OBJECT_TYPE, } from '../constants'; -import { BenchmarkId } from '../types'; +import type { BenchmarkId, Score } from '../types'; /** * @example @@ -72,3 +72,15 @@ export function assert(condition: any, msg?: string): asserts condition { throw new Error(msg); } } + +/** + * @param value value is [0, 1] range + */ +export const roundScore = (value: number): Score => Number((value * 100).toFixed(1)); + +export const calculatePostureScore = (passed: number, failed: number): Score => { + const total = passed + failed; + if (total === 0) return total; + + return roundScore(passed / (passed + failed)); +}; diff --git a/x-pack/plugins/cloud_security_posture/public/components/compliance_score_bar.tsx b/x-pack/plugins/cloud_security_posture/public/components/compliance_score_bar.tsx new file mode 100644 index 000000000000..cc5a6de2a6c5 --- /dev/null +++ b/x-pack/plugins/cloud_security_posture/public/components/compliance_score_bar.tsx @@ -0,0 +1,77 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { EuiFlexGroup, EuiFlexItem, EuiText, EuiToolTip, useEuiTheme } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; +import React from 'react'; +import { calculatePostureScore } from '../../common/utils/helpers'; +import { statusColors } from '../common/constants'; + +export const ComplianceScoreBar = ({ + totalPassed, + totalFailed, +}: { + totalPassed: number; + totalFailed: number; +}) => { + const { euiTheme } = useEuiTheme(); + const complianceScore = calculatePostureScore(totalPassed, totalFailed); + + return ( + + + + + {!!totalFailed && ( + + )} + {!!totalPassed && ( + + )} + + + + + {`${complianceScore.toFixed(0)}%`} + + + ); +}; diff --git a/x-pack/plugins/cloud_security_posture/public/pages/compliance_dashboard/compliance_charts/risks_table.tsx b/x-pack/plugins/cloud_security_posture/public/pages/compliance_dashboard/compliance_charts/risks_table.tsx index 34fdff3eac69..51f7847ffe5a 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/compliance_dashboard/compliance_charts/risks_table.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/compliance_dashboard/compliance_charts/risks_table.tsx @@ -13,12 +13,9 @@ import { EuiFlexItem, EuiInMemoryTable, EuiLink, - EuiText, - EuiToolTip, - useEuiTheme, } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; -import { statusColors } from '../../../common/constants'; +import { ComplianceScoreBar } from '../../../components/compliance_score_bar'; import { ComplianceDashboardData, GroupedFindingsEvaluation } from '../../../../common/types'; export interface RisksTableProps { @@ -49,8 +46,6 @@ export const RisksTable = ({ viewAllButtonTitle, compact, }: RisksTableProps) => { - const { euiTheme } = useEuiTheme(); - const columns: Array> = useMemo( () => [ { @@ -76,63 +71,11 @@ export const RisksTable = ({ defaultMessage: 'Compliance', }), render: (postureScore: GroupedFindingsEvaluation['postureScore'], data) => ( - - - - - - - - - - - {`${ - postureScore?.toFixed(0) || 0 - }%`} - - + ), }, ], - [ - compact, - euiTheme.border.radius.medium, - euiTheme.font.weight.bold, - euiTheme.size.s, - euiTheme.size.xs, - onCellClick, - ] + [compact, onCellClick] ); const sortedByComplianceScore = getTopRisks(cisSectionsEvaluations, maxItems); diff --git a/x-pack/plugins/cloud_security_posture/public/pages/findings/__mocks__/findings.ts b/x-pack/plugins/cloud_security_posture/public/pages/findings/__mocks__/findings.ts index 48956856bf31..274d5a789b98 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/findings/__mocks__/findings.ts +++ b/x-pack/plugins/cloud_security_posture/public/pages/findings/__mocks__/findings.ts @@ -89,6 +89,7 @@ export const mockFindingsHit: CspFinding = { 'Kubernetes provides a `default` service account which is used by cluster workloads where no specific service account is assigned to the pod. Where access to the Kubernetes API from a pod is required, a specific service account should be created for that pod, and rights granted to that service account. The default service account should be configured such that it does not provide a service account token and does not have any explicit rights assignments.\n', version: '1.0', benchmark: { + rule_number: '1.1.1', name: 'CIS Kubernetes V1.23', id: 'cis_k8s', version: 'v1.0.0', diff --git a/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings/latest_findings_table.test.tsx b/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings/latest_findings_table.test.tsx index 56b7c624287e..f082171b22da 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings/latest_findings_table.test.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings/latest_findings_table.test.tsx @@ -32,6 +32,7 @@ const getFakeFindings = (name: string): CspFinding & { id: string } => ({ rule: { audit: chance.paragraph(), benchmark: { + rule_number: '1.1.1', name: 'CIS Kubernetes', version: '1.6.0', id: 'cis_k8s', @@ -140,12 +141,11 @@ describe('', () => { const row = data[0]; const columns = [ - 'resource.id', 'result.evaluation', - 'resource.sub_type', + 'resource.id', 'resource.name', + 'resource.sub_type', 'rule.name', - 'cluster_id', ]; columns.forEach((field) => { diff --git a/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings/latest_findings_table.tsx b/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings/latest_findings_table.tsx index 12b26f1b94bd..34f29fa6473a 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings/latest_findings_table.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings/latest_findings_table.tsx @@ -64,14 +64,13 @@ const FindingsTableComponent = ({ ] = useMemo( () => [ getExpandColumn({ onClick: setSelectedFinding }), - createColumnWithFilters(baseFindingsColumns['resource.id'], { onAddFilter }), createColumnWithFilters(baseFindingsColumns['result.evaluation'], { onAddFilter }), - createColumnWithFilters(baseFindingsColumns['resource.sub_type'], { onAddFilter }), + createColumnWithFilters(baseFindingsColumns['resource.id'], { onAddFilter }), createColumnWithFilters(baseFindingsColumns['resource.name'], { onAddFilter }), + createColumnWithFilters(baseFindingsColumns['resource.sub_type'], { onAddFilter }), + baseFindingsColumns['rule.benchmark.rule_number'], createColumnWithFilters(baseFindingsColumns['rule.name'], { onAddFilter }), - createColumnWithFilters(baseFindingsColumns['rule.benchmark.name'], { onAddFilter }), baseFindingsColumns['rule.section'], - createColumnWithFilters(baseFindingsColumns.cluster_id, { onAddFilter }), baseFindingsColumns['@timestamp'], ], [onAddFilter] diff --git a/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings_by_resource/findings_by_resource_container.tsx b/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings_by_resource/findings_by_resource_container.tsx index 10f2ef8dcec2..9964077f42f4 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings_by_resource/findings_by_resource_container.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings_by_resource/findings_by_resource_container.tsx @@ -42,7 +42,7 @@ const getDefaultQuery = ({ query, filters, pageIndex: 0, - sortDirection: 'desc', + sortDirection: 'asc', }); export const FindingsByResourceContainer = ({ dataView }: FindingsBaseProps) => ( @@ -179,7 +179,7 @@ const LatestFindingsByResource = ({ dataView }: FindingsBaseProps) => { }); }} sorting={{ - sort: { field: 'failed_findings', direction: urlQuery.sortDirection }, + sort: { field: 'compliance_score', direction: urlQuery.sortDirection }, }} onAddFilter={(field, value, negate) => setUrlQuery({ diff --git a/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings_by_resource/findings_by_resource_table.test.tsx b/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings_by_resource/findings_by_resource_table.test.tsx index f3f05fcc9f9f..a98cedafc661 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings_by_resource/findings_by_resource_table.test.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings_by_resource/findings_by_resource_table.test.tsx @@ -7,20 +7,19 @@ import React from 'react'; import { render, screen, within } from '@testing-library/react'; import * as TEST_SUBJECTS from '../test_subjects'; -import { FindingsByResourceTable, formatNumber, getResourceId } from './findings_by_resource_table'; +import { FindingsByResourceTable, getResourceId } from './findings_by_resource_table'; import type { PropsOf } from '@elastic/eui'; import Chance from 'chance'; -import numeral from '@elastic/numeral'; import { TestProvider } from '../../../test/test_provider'; import type { FindingsByResourcePage } from './use_findings_by_resource'; +import { calculatePostureScore } from '../../../../common/utils/helpers'; const chance = new Chance(); const getFakeFindingsByResource = (): FindingsByResourcePage => { - const count = chance.integer(); - const total = chance.integer() + count + 1; - const normalized = count / total; - + const failed = chance.natural(); + const passed = chance.natural(); + const total = failed + passed; const [resourceName, resourceSubtype, ruleBenchmarkName, ...cisSections] = chance.unique( chance.word, 5 @@ -33,9 +32,11 @@ const getFakeFindingsByResource = (): FindingsByResourcePage => { 'resource.sub_type': resourceSubtype, 'rule.section': cisSections, 'rule.benchmark.name': ruleBenchmarkName, - failed_findings: { - count, - normalized, + compliance_score: passed / total, + findings: { + failed_findings: failed, + passed_findings: passed, + normalized: passed / total, total_findings: total, }, }; @@ -50,7 +51,7 @@ describe('', () => { items: [], pagination: { pageIndex: 0, pageSize: 10, totalItemCount: 0 }, sorting: { - sort: { field: 'failed_findings', direction: 'desc' }, + sort: { field: 'compliance_score', direction: 'desc' }, }, setTableOptions: jest.fn(), onAddFilter: jest.fn(), @@ -75,7 +76,7 @@ describe('', () => { items: data, pagination: { pageIndex: 0, pageSize: 10, totalItemCount: 0 }, sorting: { - sort: { field: 'failed_findings', direction: 'desc' }, + sort: { field: 'compliance_score', direction: 'desc' }, }, setTableOptions: jest.fn(), onAddFilter: jest.fn(), @@ -97,10 +98,13 @@ describe('', () => { expect(within(row).getByText(item['resource.name'])).toBeInTheDocument(); if (item['resource.sub_type']) expect(within(row).getByText(item['resource.sub_type'])).toBeInTheDocument(); - expect(within(row).getByText(item['rule.section'].join(', '))).toBeInTheDocument(); - expect(within(row).getByText(formatNumber(item.failed_findings.count))).toBeInTheDocument(); expect( - within(row).getByText(new RegExp(numeral(item.failed_findings.normalized).format('0%'))) + within(row).getByText( + `${calculatePostureScore( + item.findings.passed_findings, + item.findings.failed_findings + ).toFixed(0)}%` + ) ).toBeInTheDocument(); }); }); diff --git a/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings_by_resource/findings_by_resource_table.tsx b/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings_by_resource/findings_by_resource_table.tsx index 18ddb34256df..630edd6cb8dc 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings_by_resource/findings_by_resource_table.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings_by_resource/findings_by_resource_table.tsx @@ -8,17 +8,16 @@ import React, { useMemo } from 'react'; import { EuiEmptyPrompt, EuiBasicTable, - EuiTextColor, type EuiTableFieldDataColumnType, type CriteriaWithPagination, type Pagination, EuiToolTip, EuiBasicTableProps, } from '@elastic/eui'; -import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n-react'; import numeral from '@elastic/numeral'; import { Link, generatePath } from 'react-router-dom'; +import { ComplianceScoreBar } from '../../../components/compliance_score_bar'; import * as TEST_SUBJECTS from '../test_subjects'; import type { FindingsByResourcePage } from './use_findings_by_resource'; import { findingsNavigation } from '../../../common/navigation/constants'; @@ -31,9 +30,7 @@ import { export const formatNumber = (value: number) => value < 1000 ? value : numeral(value).format('0.0a'); -type Sorting = Required< - EuiBasicTableProps> ->['sorting']; +type Sorting = Required>['sorting']; interface Props { items: FindingsByResourcePage[]; @@ -66,9 +63,8 @@ const FindingsByResourceTableComponent = ({ createColumnWithFilters(findingsByResourceColumns['resource.sub_type'], { onAddFilter }), createColumnWithFilters(findingsByResourceColumns['resource.name'], { onAddFilter }), createColumnWithFilters(findingsByResourceColumns['rule.benchmark.name'], { onAddFilter }), - findingsByResourceColumns['rule.section'], createColumnWithFilters(findingsByResourceColumns.cluster_id, { onAddFilter }), - findingsByResourceColumns.failed_findings, + findingsByResourceColumns.compliance_score, ], [onAddFilter] ); @@ -106,6 +102,7 @@ const baseColumns: Array> = { ...baseFindingsColumns['resource.id'], field: 'resource_id', + width: '15%', render: (resourceId: FindingsByResourcePage['resource_id']) => ( > = }, baseFindingsColumns.cluster_id, { - field: 'failed_findings', + field: 'compliance_score', width: '150px', truncateText: true, sortable: true, name: ( ), - render: (failedFindings: FindingsByResourcePage['failed_findings']) => ( - - <> - - {formatNumber(failedFindings.count)} - - ({numeral(failedFindings.normalized).format('0%')}) - - + render: (complianceScore: FindingsByResourcePage['compliance_score'], data) => ( + ), dataType: 'number', }, diff --git a/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings_by_resource/resource_findings/resource_findings_table.tsx b/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings_by_resource/resource_findings/resource_findings_table.tsx index 2de252b5515e..41f18af723b8 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings_by_resource/resource_findings/resource_findings_table.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings_by_resource/resource_findings/resource_findings_table.tsx @@ -57,8 +57,8 @@ const ResourceFindingsTableComponent = ({ () => [ getExpandColumn({ onClick: setSelectedFinding }), createColumnWithFilters(baseFindingsColumns['result.evaluation'], { onAddFilter }), + baseFindingsColumns['rule.benchmark.rule_number'], createColumnWithFilters(baseFindingsColumns['rule.name'], { onAddFilter }), - createColumnWithFilters(baseFindingsColumns['rule.benchmark.name'], { onAddFilter }), baseFindingsColumns['rule.section'], baseFindingsColumns['@timestamp'], ], diff --git a/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings_by_resource/use_findings_by_resource.ts b/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings_by_resource/use_findings_by_resource.ts index 139013d88cec..4a0110e0d536 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings_by_resource/use_findings_by_resource.ts +++ b/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings_by_resource/use_findings_by_resource.ts @@ -9,12 +9,12 @@ import { lastValueFrom } from 'rxjs'; import { IKibanaSearchRequest, IKibanaSearchResponse } from '@kbn/data-plugin/common'; import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import type { Pagination } from '@elastic/eui'; +import { MAX_FINDINGS_TO_LOAD } from '../../../common/constants'; import { useKibana } from '../../../common/hooks/use_kibana'; import { showErrorToast } from '../latest_findings/use_latest_findings'; import type { FindingsBaseEsQuery, Sort } from '../types'; import { getAggregationCount, getFindingsCountAggQuery } from '../utils/utils'; import { CSP_LATEST_FINDINGS_DATA_VIEW } from '../../../../common/constants'; -import { MAX_FINDINGS_TO_LOAD } from '../../../common/constants'; interface UseFindingsByResourceOptions extends FindingsBaseEsQuery { enabled: boolean; @@ -35,11 +35,13 @@ type FindingsAggResponse = IKibanaSearchResponse< >; export interface FindingsByResourcePage { - failed_findings: { - count: number; + findings: { + failed_findings: number; + passed_findings: number; normalized: number; total_findings: number; }; + compliance_score: number; resource_id: string; cluster_id: string; 'resource.name': string; @@ -56,6 +58,8 @@ interface FindingsByResourceAggs { interface FindingsAggBucket extends estypes.AggregationsStringRareTermsBucketKeys { failed_findings: estypes.AggregationsMultiBucketBase; + compliance_score: estypes.AggregationsScriptedMetricAggregate; + passed_findings: estypes.AggregationsMultiBucketBase; name: estypes.AggregationsMultiBucketAggregateBase; subtype: estypes.AggregationsMultiBucketAggregateBase; cluster_id: estypes.AggregationsMultiBucketAggregateBase; @@ -92,15 +96,27 @@ export const getFindingsByResourceAggQuery = ({ failed_findings: { filter: { term: { 'result.evaluation': 'failed' } }, }, + passed_findings: { + filter: { term: { 'result.evaluation': 'passed' } }, + }, cluster_id: { terms: { field: 'cluster_id', size: 1 }, }, - sort_failed_findings: { + compliance_score: { + bucket_script: { + buckets_path: { + passed: 'passed_findings>_count', + failed: 'failed_findings>_count', + }, + script: 'params.passed / (params.passed + params.failed)', + }, + }, + sort_by_compliance_score: { bucket_sort: { size: MAX_FINDINGS_TO_LOAD, sort: [ { - 'failed_findings>_count': { order: sortDirection }, + compliance_score: { order: sortDirection }, _count: { order: 'desc' }, _key: { order: 'asc' }, }, @@ -177,11 +193,13 @@ const createFindingsByResource = (resource: FindingsAggBucket): FindingsByResour cluster_id: resource.cluster_id.buckets[0]?.key, ['rule.section']: resource.cis_sections.buckets.map((v) => v.key), ['rule.benchmark.name']: resource.benchmarkName.buckets[0]?.key, - failed_findings: { - count: resource.failed_findings.doc_count, + compliance_score: resource.compliance_score.value, + findings: { + failed_findings: resource.failed_findings.doc_count, normalized: resource.doc_count > 0 ? resource.failed_findings.doc_count / resource.doc_count : 0, total_findings: resource.doc_count, + passed_findings: resource.passed_findings.doc_count, }, }; }; diff --git a/x-pack/plugins/cloud_security_posture/public/pages/findings/layout/findings_layout.tsx b/x-pack/plugins/cloud_security_posture/public/pages/findings/layout/findings_layout.tsx index e279d78ac0b7..1112d1f9d368 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/findings/layout/findings_layout.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/findings/layout/findings_layout.tsx @@ -123,9 +123,10 @@ const baseColumns = [ }, { field: 'rule.name', - name: i18n.translate('xpack.csp.findings.findingsTable.findingsTableColumn.ruleColumnLabel', { - defaultMessage: 'Rule', - }), + name: i18n.translate( + 'xpack.csp.findings.findingsTable.findingsTableColumn.ruleNameColumnLabel', + { defaultMessage: 'Rule Name' } + ), sortable: true, render: (name: string) => ( @@ -134,12 +135,29 @@ const baseColumns = [ ), }, { - field: 'rule.benchmark.name', + field: 'rule.benchmark.rule_number', name: i18n.translate( - 'xpack.csp.findings.findingsTable.findingsTableColumn.ruleBenchmarkColumnLabel', - { defaultMessage: 'Benchmark' } + 'xpack.csp.findings.findingsTable.findingsTableColumn.ruleNumberColumnLabel', + { + defaultMessage: 'Rule Number', + } + ), + width: '120px', + }, + { + field: 'rule.benchmark.name', + name: ( + ), - width: '10%', sortable: true, truncateText: true, }, @@ -149,7 +167,6 @@ const baseColumns = [ 'xpack.csp.findings.findingsTable.findingsTableColumn.ruleSectionColumnLabel', { defaultMessage: 'CIS Section' } ), - width: '7%', sortable: true, truncateText: true, render: (section: string) => ( @@ -164,15 +181,14 @@ const baseColumns = [ ), - width: '150px', sortable: true, truncateText: true, render: (section: string) => ( @@ -183,6 +199,7 @@ const baseColumns = [ }, { field: '@timestamp', + align: 'right', width: '10%', name: i18n.translate( 'xpack.csp.findings.findingsTable.findingsTableColumn.lastCheckedColumnLabel', diff --git a/x-pack/plugins/cloud_security_posture/server/lib/telemetry/collectors/accounts_stats_collector.ts b/x-pack/plugins/cloud_security_posture/server/lib/telemetry/collectors/accounts_stats_collector.ts index 01637f43a5de..cf28f5b07113 100644 --- a/x-pack/plugins/cloud_security_posture/server/lib/telemetry/collectors/accounts_stats_collector.ts +++ b/x-pack/plugins/cloud_security_posture/server/lib/telemetry/collectors/accounts_stats_collector.ts @@ -7,7 +7,7 @@ import type { ElasticsearchClient } from '@kbn/core-elasticsearch-server'; import type { Logger } from '@kbn/core/server'; import type { SearchRequest } from '@elastic/elasticsearch/lib/api/types'; -import { calculatePostureScore } from '../../../routes/compliance_dashboard/get_stats'; +import { calculatePostureScore } from '../../../../common/utils/helpers'; import type { CspmAccountsStats } from './types'; import { LATEST_FINDINGS_INDEX_DEFAULT_NS } from '../../../../common/constants'; diff --git a/x-pack/plugins/cloud_security_posture/server/routes/compliance_dashboard/get_grouped_findings_evaluation.ts b/x-pack/plugins/cloud_security_posture/server/routes/compliance_dashboard/get_grouped_findings_evaluation.ts index 4f295ad7a2fd..f20b43619e91 100644 --- a/x-pack/plugins/cloud_security_posture/server/routes/compliance_dashboard/get_grouped_findings_evaluation.ts +++ b/x-pack/plugins/cloud_security_posture/server/routes/compliance_dashboard/get_grouped_findings_evaluation.ts @@ -11,7 +11,7 @@ import type { QueryDslQueryContainer, SearchRequest, } from '@elastic/elasticsearch/lib/api/types'; -import { calculatePostureScore } from './get_stats'; +import { calculatePostureScore } from '../../../common/utils/helpers'; import type { ComplianceDashboardData } from '../../../common/types'; import { KeyDocCount } from './compliance_dashboard'; diff --git a/x-pack/plugins/cloud_security_posture/server/routes/compliance_dashboard/get_stats.test.ts b/x-pack/plugins/cloud_security_posture/server/routes/compliance_dashboard/get_stats.test.ts index aff4e39f9d49..1a824e167122 100644 --- a/x-pack/plugins/cloud_security_posture/server/routes/compliance_dashboard/get_stats.test.ts +++ b/x-pack/plugins/cloud_security_posture/server/routes/compliance_dashboard/get_stats.test.ts @@ -5,12 +5,8 @@ * 2.0. */ -import { - calculatePostureScore, - FindingsEvaluationsQueryResult, - getStatsFromFindingsEvaluationsAggs, - roundScore, -} from './get_stats'; +import { FindingsEvaluationsQueryResult, getStatsFromFindingsEvaluationsAggs } from './get_stats'; +import { calculatePostureScore, roundScore } from '../../../common/utils/helpers'; const standardQueryResult: FindingsEvaluationsQueryResult = { resources_evaluated: { diff --git a/x-pack/plugins/cloud_security_posture/server/routes/compliance_dashboard/get_stats.ts b/x-pack/plugins/cloud_security_posture/server/routes/compliance_dashboard/get_stats.ts index d0fcd5b79677..a59d7487488e 100644 --- a/x-pack/plugins/cloud_security_posture/server/routes/compliance_dashboard/get_stats.ts +++ b/x-pack/plugins/cloud_security_posture/server/routes/compliance_dashboard/get_stats.ts @@ -7,15 +7,8 @@ import { ElasticsearchClient } from '@kbn/core/server'; import type { QueryDslQueryContainer, SearchRequest } from '@elastic/elasticsearch/lib/api/types'; -import type { ComplianceDashboardData, Score } from '../../../common/types'; - -/** - * @param value value is [0, 1] range - */ -export const roundScore = (value: number): Score => Number((value * 100).toFixed(1)); - -export const calculatePostureScore = (passed: number, failed: number): Score => - roundScore(passed / (passed + failed)); +import { calculatePostureScore } from '../../../common/utils/helpers'; +import type { ComplianceDashboardData } from '../../../common/types'; export interface FindingsEvaluationsQueryResult { failed_findings: { diff --git a/x-pack/plugins/cloud_security_posture/server/routes/compliance_dashboard/get_trends.ts b/x-pack/plugins/cloud_security_posture/server/routes/compliance_dashboard/get_trends.ts index a47b63e1fb92..cc8234fa6d7a 100644 --- a/x-pack/plugins/cloud_security_posture/server/routes/compliance_dashboard/get_trends.ts +++ b/x-pack/plugins/cloud_security_posture/server/routes/compliance_dashboard/get_trends.ts @@ -6,9 +6,9 @@ */ import { ElasticsearchClient } from '@kbn/core/server'; +import { calculatePostureScore } from '../../../common/utils/helpers'; import { BENCHMARK_SCORE_INDEX_DEFAULT_NS } from '../../../common/constants'; import type { PosturePolicyTemplate, Stats } from '../../../common/types'; -import { calculatePostureScore } from './get_stats'; export interface ScoreTrendDoc { '@timestamp': string; diff --git a/x-pack/plugins/cloud_security_posture/server/saved_objects/migrations/csp_rule.ts b/x-pack/plugins/cloud_security_posture/server/saved_objects/migrations/csp_rule.ts index 9e4dea8a1a78..1ebb4199231e 100644 --- a/x-pack/plugins/cloud_security_posture/server/saved_objects/migrations/csp_rule.ts +++ b/x-pack/plugins/cloud_security_posture/server/saved_objects/migrations/csp_rule.ts @@ -28,7 +28,7 @@ function migrateCspRuleMetadata( policy_id, metadata: { ...metadata, - benchmark: { ...benchmark, id: 'cis_k8s' }, + benchmark: { ...benchmark, id: 'cis_k8s', rule_number: '' }, impact: metadata.impact || undefined, default_value: metadata.default_value || undefined, references: metadata.references || undefined, diff --git a/x-pack/plugins/cloud_security_posture/server/saved_objects/migrations/csp_rule_template.ts b/x-pack/plugins/cloud_security_posture/server/saved_objects/migrations/csp_rule_template.ts index b25fd7feb3e7..bd46457c7628 100644 --- a/x-pack/plugins/cloud_security_posture/server/saved_objects/migrations/csp_rule_template.ts +++ b/x-pack/plugins/cloud_security_posture/server/saved_objects/migrations/csp_rule_template.ts @@ -28,7 +28,7 @@ function migrateCspRuleMetadata( muted, metadata: { ...metadata, - benchmark: { ...benchmark, id: 'cis_k8s' }, + benchmark: { ...benchmark, id: 'cis_k8s', rule_number: '' }, impact: metadata.impact || undefined, default_value: metadata.default_value || undefined, references: metadata.references || undefined, diff --git a/x-pack/plugins/translations/translations/fr-FR.json b/x-pack/plugins/translations/translations/fr-FR.json index eb0d05782eaa..a178a7b0014f 100644 --- a/x-pack/plugins/translations/translations/fr-FR.json +++ b/x-pack/plugins/translations/translations/fr-FR.json @@ -10135,12 +10135,10 @@ "xpack.csp.benchmarks.benchmarkEmptyState.integrationsNotFoundForNameTitle": " pour \"{name}\"", "xpack.csp.benchmarks.totalIntegrationsCountMessage": "Affichage de {pageCount} sur {totalCount, plural, one {# intégration} other {# intégrations}}", "xpack.csp.cloudPosturePage.errorRenderer.errorDescription": "{error} {statusCode} : {body}", - "xpack.csp.complianceDashboard.complianceByCisSection.complianceColumnTooltip": "{passed}/{total}", "xpack.csp.dashboard.benchmarkSection.clusterTitle": "{title} - {shortId}", "xpack.csp.dashboard.benchmarkSection.clusterTitleTooltip.clusterTitle": "{title} - {shortId}", "xpack.csp.dashboard.benchmarkSection.lastEvaluatedTitle": "Dernière évaluation {dateFromNow}", "xpack.csp.findings.distributionBar.showingPageOfTotalLabel": "Affichage de {pageStart}-{pageEnd} sur {total} {type}", - "xpack.csp.findings.findingsByResourceTable.failedFindingsToolTip": "{failed} sur {total}", "xpack.csp.findings.findingsTableCell.addFilterButton": "Ajouter un filtre {field}", "xpack.csp.findings.findingsTableCell.addNegateFilterButton": "Ajouter un filtre {field} négatif", "xpack.csp.findings.resourceFindings.resourceFindingsPageTitle": "{resourceName} - Résultats", @@ -10198,7 +10196,6 @@ "xpack.csp.findings.findingsByResource.noFindingsTitle": "Il n'y a aucun résultat", "xpack.csp.findings.findingsByResource.tableRowTypeLabel": "Ressources", "xpack.csp.findings.findingsByResourceTable.cisSectionsColumnLabel": "Sections CIS", - "xpack.csp.findings.findingsByResourceTable.failedFindingsColumnLabel": "Échec des résultats", "xpack.csp.findings.findingsErrorToast.searchFailedTitle": "Échec de la recherche", "xpack.csp.findings.findingsFlyout.jsonTabTitle": "JSON", "xpack.csp.findings.findingsFlyout.overviewTab.actualTitle": "Réel", @@ -10240,7 +10237,6 @@ "xpack.csp.findings.findingsTable.findingsTableColumn.resourceTypeColumnLabel": "Type de ressource", "xpack.csp.findings.findingsTable.findingsTableColumn.resultColumnLabel": "Résultat", "xpack.csp.findings.findingsTable.findingsTableColumn.ruleBenchmarkColumnLabel": "Benchmark", - "xpack.csp.findings.findingsTable.findingsTableColumn.ruleColumnLabel": "Règle", "xpack.csp.findings.findingsTable.findingsTableColumn.ruleSectionColumnLabel": "Section CIS", "xpack.csp.findings.groupBySelector.groupByLabel": "Regrouper par", "xpack.csp.findings.groupBySelector.groupByNoneLabel": "Aucun", diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index cfaed97466f3..3cfdf2f6d909 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -10124,12 +10124,10 @@ "xpack.csp.benchmarks.benchmarkEmptyState.integrationsNotFoundForNameTitle": " \"{name}\"", "xpack.csp.benchmarks.totalIntegrationsCountMessage": "{pageCount}/{totalCount, plural, other {#個の統合}}を表示しています", "xpack.csp.cloudPosturePage.errorRenderer.errorDescription": "{error} {statusCode}: {body}", - "xpack.csp.complianceDashboard.complianceByCisSection.complianceColumnTooltip": "{passed}/{total}", "xpack.csp.dashboard.benchmarkSection.clusterTitle": "{title} - {shortId}", "xpack.csp.dashboard.benchmarkSection.clusterTitleTooltip.clusterTitle": "{title} - {shortId}", "xpack.csp.dashboard.benchmarkSection.lastEvaluatedTitle": "前回の評価{dateFromNow}", "xpack.csp.findings.distributionBar.showingPageOfTotalLabel": "{total}件中{pageStart}-{pageEnd}件の{type}を表示しています", - "xpack.csp.findings.findingsByResourceTable.failedFindingsToolTip": "{total}件中{failed}件", "xpack.csp.findings.findingsTableCell.addFilterButton": "{field}フィルターを追加", "xpack.csp.findings.findingsTableCell.addNegateFilterButton": "{field}否定フィルターを追加", "xpack.csp.findings.resourceFindings.resourceFindingsPageTitle": "{resourceName} - 調査結果", @@ -10187,7 +10185,6 @@ "xpack.csp.findings.findingsByResource.noFindingsTitle": "調査結果はありません", "xpack.csp.findings.findingsByResource.tableRowTypeLabel": "リソース", "xpack.csp.findings.findingsByResourceTable.cisSectionsColumnLabel": "CISセクション", - "xpack.csp.findings.findingsByResourceTable.failedFindingsColumnLabel": "失敗した調査結果", "xpack.csp.findings.findingsErrorToast.searchFailedTitle": "検索失敗", "xpack.csp.findings.findingsFlyout.jsonTabTitle": "JSON", "xpack.csp.findings.findingsFlyout.overviewTab.actualTitle": "実際", @@ -10229,7 +10226,6 @@ "xpack.csp.findings.findingsTable.findingsTableColumn.resourceTypeColumnLabel": "リソースタイプ", "xpack.csp.findings.findingsTable.findingsTableColumn.resultColumnLabel": "結果", "xpack.csp.findings.findingsTable.findingsTableColumn.ruleBenchmarkColumnLabel": "ベンチマーク", - "xpack.csp.findings.findingsTable.findingsTableColumn.ruleColumnLabel": "ルール", "xpack.csp.findings.findingsTable.findingsTableColumn.ruleSectionColumnLabel": "CISセクション", "xpack.csp.findings.groupBySelector.groupByLabel": "グループ分けの条件", "xpack.csp.findings.groupBySelector.groupByNoneLabel": "なし", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index add5fcecf5ea..6f7c68de2494 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -10139,12 +10139,10 @@ "xpack.csp.benchmarks.benchmarkEmptyState.integrationsNotFoundForNameTitle": " 对于“{name}”", "xpack.csp.benchmarks.totalIntegrationsCountMessage": "正在显示 {pageCount}/{totalCount, plural, other {# 个集成}}", "xpack.csp.cloudPosturePage.errorRenderer.errorDescription": "{error} {statusCode}:{body}", - "xpack.csp.complianceDashboard.complianceByCisSection.complianceColumnTooltip": "{passed}/{total}", "xpack.csp.dashboard.benchmarkSection.clusterTitle": "{title} - {shortId}", "xpack.csp.dashboard.benchmarkSection.clusterTitleTooltip.clusterTitle": "{title} - {shortId}", "xpack.csp.dashboard.benchmarkSection.lastEvaluatedTitle": "上次评估于 {dateFromNow}", "xpack.csp.findings.distributionBar.showingPageOfTotalLabel": "正在显示第 {pageStart}-{pageEnd} 个(共 {total} 个){type}", - "xpack.csp.findings.findingsByResourceTable.failedFindingsToolTip": "{failed} 个(共 {total} 个)", "xpack.csp.findings.findingsTableCell.addFilterButton": "添加 {field} 筛选", "xpack.csp.findings.findingsTableCell.addNegateFilterButton": "添加 {field} 作废筛选", "xpack.csp.findings.resourceFindings.resourceFindingsPageTitle": "{resourceName} - 结果", @@ -10202,7 +10200,6 @@ "xpack.csp.findings.findingsByResource.noFindingsTitle": "无结果", "xpack.csp.findings.findingsByResource.tableRowTypeLabel": "资源", "xpack.csp.findings.findingsByResourceTable.cisSectionsColumnLabel": "CIS 部分", - "xpack.csp.findings.findingsByResourceTable.failedFindingsColumnLabel": "失败的结果", "xpack.csp.findings.findingsErrorToast.searchFailedTitle": "搜索失败", "xpack.csp.findings.findingsFlyout.jsonTabTitle": "JSON", "xpack.csp.findings.findingsFlyout.overviewTab.actualTitle": "实际", @@ -10244,7 +10241,6 @@ "xpack.csp.findings.findingsTable.findingsTableColumn.resourceTypeColumnLabel": "资源类型", "xpack.csp.findings.findingsTable.findingsTableColumn.resultColumnLabel": "结果", "xpack.csp.findings.findingsTable.findingsTableColumn.ruleBenchmarkColumnLabel": "基准", - "xpack.csp.findings.findingsTable.findingsTableColumn.ruleColumnLabel": "规则", "xpack.csp.findings.findingsTable.findingsTableColumn.ruleSectionColumnLabel": "CIS 部分", "xpack.csp.findings.groupBySelector.groupByLabel": "分组依据", "xpack.csp.findings.groupBySelector.groupByNoneLabel": "无", diff --git a/x-pack/test/cloud_security_posture_functional/pages/findings.ts b/x-pack/test/cloud_security_posture_functional/pages/findings.ts index 3cfbc0234388..afba99a5542e 100644 --- a/x-pack/test/cloud_security_posture_functional/pages/findings.ts +++ b/x-pack/test/cloud_security_posture_functional/pages/findings.ts @@ -88,7 +88,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { await filterBar.addFilter({ field: 'rule.name', operation: 'is', value: ruleName1 }); expect(await filterBar.hasFilter('rule.name', ruleName1)).to.be(true); - expect(await table.hasColumnValue('Rule', ruleName1)).to.be(true); + expect(await table.hasColumnValue('Rule Name', ruleName1)).to.be(true); }); it('remove filter', async () => { @@ -102,8 +102,8 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { await queryBar.setQuery(ruleName1); await queryBar.submitQuery(); - expect(await table.hasColumnValue('Rule', ruleName1)).to.be(true); - expect(await table.hasColumnValue('Rule', ruleName2)).to.be(false); + expect(await table.hasColumnValue('Rule Name', ruleName1)).to.be(true); + expect(await table.hasColumnValue('Rule Name', ruleName2)).to.be(false); await queryBar.setQuery(''); await queryBar.submitQuery(); @@ -114,18 +114,18 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { describe('Table Filters', () => { it('add cell value filter', async () => { - await table.addCellFilter('Rule', ruleName1, false); + await table.addCellFilter('Rule Name', ruleName1, false); expect(await filterBar.hasFilter('rule.name', ruleName1)).to.be(true); - expect(await table.hasColumnValue('Rule', ruleName1)).to.be(true); + expect(await table.hasColumnValue('Rule Name', ruleName1)).to.be(true); }); it('add negated cell value filter', async () => { - await table.addCellFilter('Rule', ruleName1, true); + await table.addCellFilter('Rule Name', ruleName1, true); expect(await filterBar.hasFilter('rule.name', ruleName1, true, false, true)).to.be(true); - expect(await table.hasColumnValue('Rule', ruleName1)).to.be(false); - expect(await table.hasColumnValue('Rule', ruleName2)).to.be(true); + expect(await table.hasColumnValue('Rule Name', ruleName1)).to.be(false); + expect(await table.hasColumnValue('Rule Name', ruleName2)).to.be(true); await filterBar.removeFilter('rule.name'); }); @@ -147,8 +147,8 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { const testCases: TestCase[] = [ ['CIS Section', 'asc', sortByAlphabeticalOrder], ['CIS Section', 'desc', sortByAlphabeticalOrder], - ['Cluster ID', 'asc', compareStringByLexicographicOrder], - ['Cluster ID', 'desc', compareStringByLexicographicOrder], + ['Resource ID', 'asc', compareStringByLexicographicOrder], + ['Resource ID', 'desc', compareStringByLexicographicOrder], ['Resource Name', 'asc', sortByAlphabeticalOrder], ['Resource Name', 'desc', sortByAlphabeticalOrder], ['Resource Type', 'asc', sortByAlphabeticalOrder], From 83d799a9c789b39b09456bead4ca750adf714298 Mon Sep 17 00:00:00 2001 From: Abdul Wahab Zahid Date: Tue, 24 Jan 2023 11:59:45 +0100 Subject: [PATCH 19/26] [Synthetics] Better formatting for waterfall timeline tooltips (#149142) Co-authored-by: Shahzad --- .../common/monitor_test_result/result_details.tsx | 4 ++-- .../common/network_data/data_formatting.ts | 7 +++++-- .../step_timing_breakdown/breakdown_legend.tsx | 2 +- .../step_timing_breakdown/network_timings_donut.tsx | 2 +- .../waterfall/waterfall_marker/waterfall_markers.tsx | 6 ++---- 5 files changed, 11 insertions(+), 10 deletions(-) diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/common/monitor_test_result/result_details.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/common/monitor_test_result/result_details.tsx index 54f0fe841255..dc5a2b2f3f62 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/common/monitor_test_result/result_details.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/common/monitor_test_result/result_details.tsx @@ -54,10 +54,10 @@ export const TimingDetails = ({ step }: { step: JourneyStep }) => { ) : ( ), }; diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/common/network_data/data_formatting.ts b/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/common/network_data/data_formatting.ts index fb12506065cd..aa1a64d9eb44 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/common/network_data/data_formatting.ts +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/common/network_data/data_formatting.ts @@ -491,8 +491,11 @@ export const colourPalette: ColourPalette = { ...TIMING_PALETTE, ...MIME_TYPE_PA export const formatTooltipHeading = (index: number, fullText: string): string => isNaN(index) ? fullText : `${index}. ${fullText}`; -export const formatMillisecond = (ms: number, digits?: number) => { - if (ms < 1000) { +export const formatMillisecond = ( + ms: number, + { maxMillis = 1000, digits }: { digits?: number; maxMillis?: number } +) => { + if (ms < maxMillis) { return `${ms.toFixed(digits ?? 0)} ms`; } return `${(ms / 1000).toFixed(digits ?? 1)} s`; diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/step_timing_breakdown/breakdown_legend.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/step_timing_breakdown/breakdown_legend.tsx index 46c81f98198b..6e2e0a144755 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/step_timing_breakdown/breakdown_legend.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/step_timing_breakdown/breakdown_legend.tsx @@ -32,7 +32,7 @@ export const BreakdownLegend = () => { - {formatMillisecond(value)} + {formatMillisecond(value, {})} diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/step_timing_breakdown/network_timings_donut.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/step_timing_breakdown/network_timings_donut.tsx index e9d58427e882..075ae8a4ce84 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/step_timing_breakdown/network_timings_donut.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/step_timing_breakdown/network_timings_donut.tsx @@ -58,7 +58,7 @@ export const NetworkTimingsDonut = () => { data={networkTimings.timingsWithLabels} layout={PartitionLayout.sunburst} valueAccessor={(d: Datum) => d?.value} - valueFormatter={(d: number) => formatMillisecond(d)} + valueFormatter={(d: number) => formatMillisecond(d, {})} layers={[ { groupByRollup: (d: Datum) => d.label, diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/step_waterfall_chart/waterfall/waterfall_marker/waterfall_markers.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/step_waterfall_chart/waterfall/waterfall_marker/waterfall_markers.tsx index e2337746cbcd..c1a8db93c3e6 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/step_waterfall_chart/waterfall/waterfall_marker/waterfall_markers.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/step_waterfall_chart/waterfall/waterfall_marker/waterfall_markers.tsx @@ -13,6 +13,7 @@ import { euiStyled } from '@kbn/kibana-react-plugin/common'; import { MarkerItems, useWaterfallContext } from '../context/waterfall_context'; import { WaterfallMarkerIcon } from './waterfall_marker_icon'; +import { formatMillisecond } from '../../../common/network_data/data_formatting'; export const FIELD_SYNTHETICS_LCP = 'browser.experience.lcp.us'; export const FIELD_SYNTHETICS_FCP = 'browser.experience.fcp.us'; @@ -98,10 +99,7 @@ export function WaterfallChartMarkers() { { dataValue: offset, details: label, - header: i18n.translate('xpack.synthetics.synthetics.waterfall.offsetUnit', { - defaultMessage: '{offset} ms', - values: { offset }, - }), + header: formatMillisecond(offset, { maxMillis: 4000 }), }, ]} marker={} From 05d04ce1e0592b8f02a1752e5b31f0578cdf2fb1 Mon Sep 17 00:00:00 2001 From: Walter Rafelsberger Date: Tue, 24 Jan 2023 13:07:43 +0100 Subject: [PATCH 20/26] [ML] Consolidate `query_utils` into package `@kbn/ml-query-utils` (#149224) Consolidates more `query_utils` into package `@kbn/ml-query-utils`. --- x-pack/packages/ml/query_utils/README.md | 2 +- x-pack/packages/ml/query_utils/index.ts | 2 + .../src/add_exclude_frozen_to_query.test.ts | 2 +- .../src/build_base_filter_criteria.test.ts | 49 ++++++++++++++++++ .../src/build_base_filter_criteria.ts} | 23 ++++----- .../src/get_safe_aggregation_name.test.ts | 20 ++++++++ .../src/get_safe_aggregation_name.ts | 20 ++++++++ x-pack/packages/ml/query_utils/tsconfig.json | 1 + ...ild_extended_base_filter_criteria.test.ts} | 16 +++--- ...=> build_extended_base_filter_criteria.ts} | 22 ++------ .../aiops/public/get_document_stats.ts | 4 +- x-pack/plugins/aiops/tsconfig.json | 1 + .../correlations/utils/field_stats_utils.ts | 38 -------------- .../hooks/use_field_stats.ts | 5 +- .../requests/get_document_stats.ts | 2 +- .../requests/get_field_examples.ts | 2 +- .../search_strategy/requests/overall_stats.ts | 5 +- x-pack/plugins/data_visualizer/tsconfig.json | 1 + .../plugins/ml/common/util/job_utils.test.ts | 13 ----- x-pack/plugins/ml/common/util/job_utils.ts | 8 --- .../fill_missing_chart_data.test.ts | 2 +- .../plugins/ml/server/lib/query_utils.test.ts | 51 ------------------- x-pack/plugins/ml/server/lib/query_utils.ts | 38 -------------- .../models/data_visualizer/data_visualizer.ts | 3 +- 24 files changed, 127 insertions(+), 203 deletions(-) create mode 100644 x-pack/packages/ml/query_utils/src/build_base_filter_criteria.test.ts rename x-pack/{plugins/data_visualizer/common/utils/query_utils.ts => packages/ml/query_utils/src/build_base_filter_criteria.ts} (56%) create mode 100644 x-pack/packages/ml/query_utils/src/get_safe_aggregation_name.test.ts create mode 100644 x-pack/packages/ml/query_utils/src/get_safe_aggregation_name.ts rename x-pack/plugins/aiops/public/application/utils/{query_utils.test.ts => build_extended_base_filter_criteria.test.ts} (91%) rename x-pack/plugins/aiops/public/application/utils/{query_utils.ts => build_extended_base_filter_criteria.ts} (85%) delete mode 100644 x-pack/plugins/apm/server/routes/correlations/utils/field_stats_utils.ts delete mode 100644 x-pack/plugins/ml/server/lib/query_utils.test.ts delete mode 100644 x-pack/plugins/ml/server/lib/query_utils.ts diff --git a/x-pack/packages/ml/query_utils/README.md b/x-pack/packages/ml/query_utils/README.md index 69a1d5972b7d..2a60cf71496b 100644 --- a/x-pack/packages/ml/query_utils/README.md +++ b/x-pack/packages/ml/query_utils/README.md @@ -1,3 +1,3 @@ # @kbn/ml-query-utils -Query utilities. +Query utilities to be used in UIs maintained by the @elastic/ml-ui team. diff --git a/x-pack/packages/ml/query_utils/index.ts b/x-pack/packages/ml/query_utils/index.ts index f016fa6475c8..3e2ac6d532aa 100644 --- a/x-pack/packages/ml/query_utils/index.ts +++ b/x-pack/packages/ml/query_utils/index.ts @@ -6,3 +6,5 @@ */ export { addExcludeFrozenToQuery } from './src/add_exclude_frozen_to_query'; +export { buildBaseFilterCriteria } from './src/build_base_filter_criteria'; +export { getSafeAggregationName } from './src/get_safe_aggregation_name'; diff --git a/x-pack/packages/ml/query_utils/src/add_exclude_frozen_to_query.test.ts b/x-pack/packages/ml/query_utils/src/add_exclude_frozen_to_query.test.ts index 4193b1486bdf..9c2e5cf0a38c 100644 --- a/x-pack/packages/ml/query_utils/src/add_exclude_frozen_to_query.test.ts +++ b/x-pack/packages/ml/query_utils/src/add_exclude_frozen_to_query.test.ts @@ -7,7 +7,7 @@ import { addExcludeFrozenToQuery } from './add_exclude_frozen_to_query'; -describe('Util: addExcludeFrozenToQuery()', () => { +describe('addExcludeFrozenToQuery', () => { test('Validation checks.', () => { expect( addExcludeFrozenToQuery({ diff --git a/x-pack/packages/ml/query_utils/src/build_base_filter_criteria.test.ts b/x-pack/packages/ml/query_utils/src/build_base_filter_criteria.test.ts new file mode 100644 index 000000000000..6fd293e5dbb6 --- /dev/null +++ b/x-pack/packages/ml/query_utils/src/build_base_filter_criteria.test.ts @@ -0,0 +1,49 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { buildBaseFilterCriteria } from './build_base_filter_criteria'; + +describe('buildBaseFilterCriteria', () => { + const earliestMs = 1483228800000; // 1 Jan 2017 00:00:00 + const latestMs = 1485907199000; // 31 Jan 2017 23:59:59 + const query = { + query_string: { + query: 'region:sa-east-1', + analyze_wildcard: true, + default_field: '*', + }, + }; + + test('returns correct criteria for time range', () => { + expect(buildBaseFilterCriteria('timestamp', earliestMs, latestMs)).toEqual([ + { + range: { + timestamp: { + gte: earliestMs, + lte: latestMs, + format: 'epoch_millis', + }, + }, + }, + ]); + }); + + test('returns correct criteria for time range and query', () => { + expect(buildBaseFilterCriteria('timestamp', earliestMs, latestMs, query)).toEqual([ + { + range: { + timestamp: { + gte: earliestMs, + lte: latestMs, + format: 'epoch_millis', + }, + }, + }, + query, + ]); + }); +}); diff --git a/x-pack/plugins/data_visualizer/common/utils/query_utils.ts b/x-pack/packages/ml/query_utils/src/build_base_filter_criteria.ts similarity index 56% rename from x-pack/plugins/data_visualizer/common/utils/query_utils.ts rename to x-pack/packages/ml/query_utils/src/build_base_filter_criteria.ts index 9f0f746f8909..28a70d053214 100644 --- a/x-pack/plugins/data_visualizer/common/utils/query_utils.ts +++ b/x-pack/packages/ml/query_utils/src/build_base_filter_criteria.ts @@ -8,12 +8,16 @@ import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import { Query } from '@kbn/es-query'; -/* - * Contains utility functions for building and processing queries. +/** + * Builds the base filter criteria used in queries, + * adding criteria for the time range and an optional query. + * + * @param timeFieldName - optional time field name of the data view + * @param earliestMs - optional earliest timestamp of the selected time range + * @param latestMs - optional latest timestamp of the selected time range + * @param query - optional query + * @returns filter criteria */ - -// Builds the base filter criteria used in queries, -// adding criteria for the time range and an optional query. export function buildBaseFilterCriteria( timeFieldName?: string, earliestMs?: number, @@ -21,6 +25,7 @@ export function buildBaseFilterCriteria( query?: Query['query'] ): estypes.QueryDslQueryContainer[] { const filterCriteria = []; + if (timeFieldName && earliestMs && latestMs) { filterCriteria.push({ range: { @@ -39,11 +44,3 @@ export function buildBaseFilterCriteria( return filterCriteria; } - -// Returns a name which is safe to use in elasticsearch aggregations for the supplied -// field name. Aggregation names must be alpha-numeric and can only contain '_' and '-' characters, -// so if the supplied field names contains disallowed characters, the provided index -// identifier is used to return a safe 'dummy' name in the format 'field_index' e.g. field_0, field_1 -export function getSafeAggregationName(fieldName: string, index: number): string { - return fieldName.match(/^[a-zA-Z0-9-_.]+$/) ? fieldName : `field_${index}`; -} diff --git a/x-pack/packages/ml/query_utils/src/get_safe_aggregation_name.test.ts b/x-pack/packages/ml/query_utils/src/get_safe_aggregation_name.test.ts new file mode 100644 index 000000000000..822e46d19b74 --- /dev/null +++ b/x-pack/packages/ml/query_utils/src/get_safe_aggregation_name.test.ts @@ -0,0 +1,20 @@ +/* + * 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 { getSafeAggregationName } from './get_safe_aggregation_name'; + +describe('getSafeAggregationName', () => { + test('"foo" should be "foo"', () => { + expect(getSafeAggregationName('foo', 0)).toBe('foo'); + }); + test('"foo.bar" should be "foo.bar"', () => { + expect(getSafeAggregationName('foo.bar', 0)).toBe('foo.bar'); + }); + test('"foo&bar" should be "field_0"', () => { + expect(getSafeAggregationName('foo&bar', 0)).toBe('field_0'); + }); +}); diff --git a/x-pack/packages/ml/query_utils/src/get_safe_aggregation_name.ts b/x-pack/packages/ml/query_utils/src/get_safe_aggregation_name.ts new file mode 100644 index 000000000000..df1be7628cef --- /dev/null +++ b/x-pack/packages/ml/query_utils/src/get_safe_aggregation_name.ts @@ -0,0 +1,20 @@ +/* + * 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. + */ + +/** + * Returns a name which is safe to use in elasticsearch aggregations for the supplied + * field name. Aggregation names must be alpha-numeric and can only contain '_' and '-' characters, + * so if the supplied field names contains disallowed characters, the provided index + * identifier is used to return a safe 'dummy' name in the format 'field_index' e.g. field_0, field_1 + * + * @param fieldName - the field name to check + * @param index - the index number to be used for the safe aggregation name + * @returns safe aggregation name + */ +export function getSafeAggregationName(fieldName: string, index: number): string { + return fieldName.match(/^[a-zA-Z0-9-_.]+$/) ? fieldName : `field_${index}`; +} diff --git a/x-pack/packages/ml/query_utils/tsconfig.json b/x-pack/packages/ml/query_utils/tsconfig.json index 1db807def57b..acdb082c874b 100644 --- a/x-pack/packages/ml/query_utils/tsconfig.json +++ b/x-pack/packages/ml/query_utils/tsconfig.json @@ -17,5 +17,6 @@ ], "kbn_references": [ "@kbn/ml-is-populated-object", + "@kbn/es-query", ] } diff --git a/x-pack/plugins/aiops/public/application/utils/query_utils.test.ts b/x-pack/plugins/aiops/public/application/utils/build_extended_base_filter_criteria.test.ts similarity index 91% rename from x-pack/plugins/aiops/public/application/utils/query_utils.test.ts rename to x-pack/plugins/aiops/public/application/utils/build_extended_base_filter_criteria.test.ts index 7a2650f02d3a..c19dbbdb203c 100644 --- a/x-pack/plugins/aiops/public/application/utils/query_utils.test.ts +++ b/x-pack/plugins/aiops/public/application/utils/build_extended_base_filter_criteria.test.ts @@ -9,7 +9,7 @@ import type { ChangePoint } from '@kbn/ml-agg-utils'; import type { GroupTableItem } from '../../components/spike_analysis_table/types'; -import { buildBaseFilterCriteria } from './query_utils'; +import { buildExtendedBaseFilterCriteria } from './build_extended_base_filter_criteria'; const selectedChangePointMock: ChangePoint = { doc_count: 53408, @@ -41,9 +41,9 @@ const selectedGroupMock: GroupTableItem = { }; describe('query_utils', () => { - describe('buildBaseFilterCriteria', () => { + describe('buildExtendedBaseFilterCriteria', () => { it('returns range filter based on minimum supplied arguments', () => { - const baseFilterCriteria = buildBaseFilterCriteria('the-time-field-name', 1234, 5678); + const baseFilterCriteria = buildExtendedBaseFilterCriteria('the-time-field-name', 1234, 5678); expect(baseFilterCriteria).toEqual([ { @@ -59,7 +59,7 @@ describe('query_utils', () => { }); it('returns filters including default query with supplied arguments provided via UI', () => { - const baseFilterCriteria = buildBaseFilterCriteria( + const baseFilterCriteria = buildExtendedBaseFilterCriteria( '@timestamp', 1640082000012, 1640103600906, @@ -81,7 +81,7 @@ describe('query_utils', () => { }); it('includes a term filter when including a selectedChangePoint', () => { - const baseFilterCriteria = buildBaseFilterCriteria( + const baseFilterCriteria = buildExtendedBaseFilterCriteria( '@timestamp', 1640082000012, 1640103600906, @@ -105,7 +105,7 @@ describe('query_utils', () => { }); it('includes a term filter with must_not when excluding a selectedChangePoint', () => { - const baseFilterCriteria = buildBaseFilterCriteria( + const baseFilterCriteria = buildExtendedBaseFilterCriteria( '@timestamp', 1640082000012, 1640103600906, @@ -130,7 +130,7 @@ describe('query_utils', () => { }); it('includes multiple term filters when including a selectedGroupMock', () => { - const baseFilterCriteria = buildBaseFilterCriteria( + const baseFilterCriteria = buildExtendedBaseFilterCriteria( '@timestamp', 1640082000012, 1640103600906, @@ -185,7 +185,7 @@ describe('query_utils', () => { }); it('includes a must_not with nested term filters when excluding a selectedGroup', () => { - const baseFilterCriteria = buildBaseFilterCriteria( + const baseFilterCriteria = buildExtendedBaseFilterCriteria( '@timestamp', 1640082000012, 1640103600906, diff --git a/x-pack/plugins/aiops/public/application/utils/query_utils.ts b/x-pack/plugins/aiops/public/application/utils/build_extended_base_filter_criteria.ts similarity index 85% rename from x-pack/plugins/aiops/public/application/utils/query_utils.ts rename to x-pack/plugins/aiops/public/application/utils/build_extended_base_filter_criteria.ts index c39aa62b377c..b8a2ad55f468 100644 --- a/x-pack/plugins/aiops/public/application/utils/query_utils.ts +++ b/x-pack/plugins/aiops/public/application/utils/build_extended_base_filter_criteria.ts @@ -12,6 +12,9 @@ import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import type { Query } from '@kbn/es-query'; import type { ChangePoint, FieldValuePair } from '@kbn/ml-agg-utils'; + +import { buildBaseFilterCriteria } from '@kbn/ml-query-utils'; + import type { GroupTableItem } from '../../components/spike_analysis_table/types'; /* @@ -20,7 +23,7 @@ import type { GroupTableItem } from '../../components/spike_analysis_table/types // Builds the base filter criteria used in queries, // adding criteria for the time range and an optional query. -export function buildBaseFilterCriteria( +export function buildExtendedBaseFilterCriteria( timeFieldName?: string, earliestMs?: number, latestMs?: number, @@ -29,22 +32,7 @@ export function buildBaseFilterCriteria( includeSelectedChangePoint = true, selectedGroup?: GroupTableItem | null ): estypes.QueryDslQueryContainer[] { - const filterCriteria = []; - if (timeFieldName && earliestMs && latestMs) { - filterCriteria.push({ - range: { - [timeFieldName]: { - gte: earliestMs, - lte: latestMs, - format: 'epoch_millis', - }, - }, - }); - } - - if (query && typeof query === 'object') { - filterCriteria.push(query); - } + const filterCriteria = buildBaseFilterCriteria(timeFieldName, earliestMs, latestMs, query); const groupFilter = []; if (selectedGroup) { diff --git a/x-pack/plugins/aiops/public/get_document_stats.ts b/x-pack/plugins/aiops/public/get_document_stats.ts index f95e0eb2cc61..4f76cb8244e6 100644 --- a/x-pack/plugins/aiops/public/get_document_stats.ts +++ b/x-pack/plugins/aiops/public/get_document_stats.ts @@ -13,7 +13,7 @@ import { isPopulatedObject } from '@kbn/ml-is-populated-object'; import type { ChangePoint } from '@kbn/ml-agg-utils'; import type { Query } from '@kbn/es-query'; -import { buildBaseFilterCriteria } from './application/utils/query_utils'; +import { buildExtendedBaseFilterCriteria } from './application/utils/build_extended_base_filter_criteria'; import { GroupTableItem } from './components/spike_analysis_table/types'; export interface DocumentCountStats { @@ -54,7 +54,7 @@ export const getDocumentCountStatsRequest = (params: DocumentStatsSearchStrategy } = params; const size = 0; - const filterCriteria = buildBaseFilterCriteria( + const filterCriteria = buildExtendedBaseFilterCriteria( timeFieldName, earliestMs, latestMs, diff --git a/x-pack/plugins/aiops/tsconfig.json b/x-pack/plugins/aiops/tsconfig.json index 6e130d66384d..a5f260e695cb 100644 --- a/x-pack/plugins/aiops/tsconfig.json +++ b/x-pack/plugins/aiops/tsconfig.json @@ -46,6 +46,7 @@ "@kbn/ml-local-storage", "@kbn/ml-date-picker", "@kbn/ml-local-storage", + "@kbn/ml-query-utils", ], "exclude": [ "target/**/*", diff --git a/x-pack/plugins/apm/server/routes/correlations/utils/field_stats_utils.ts b/x-pack/plugins/apm/server/routes/correlations/utils/field_stats_utils.ts deleted file mode 100644 index a60622583781..000000000000 --- a/x-pack/plugins/apm/server/routes/correlations/utils/field_stats_utils.ts +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -/* - * Contains utility functions for building and processing queries. - */ - -// Builds the base filter criteria used in queries, -// adding criteria for the time range and an optional query. -export function buildBaseFilterCriteria( - timeFieldName?: string, - earliestMs?: number, - latestMs?: number, - query?: object -) { - const filterCriteria = []; - if (timeFieldName && earliestMs && latestMs) { - filterCriteria.push({ - range: { - [timeFieldName]: { - gte: earliestMs, - lte: latestMs, - format: 'epoch_millis', - }, - }, - }); - } - - if (query) { - filterCriteria.push(query); - } - - return filterCriteria; -} diff --git a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/hooks/use_field_stats.ts b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/hooks/use_field_stats.ts index 2a91f9aa5366..06e7725f2565 100644 --- a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/hooks/use_field_stats.ts +++ b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/hooks/use_field_stats.ts @@ -12,6 +12,7 @@ import { last, cloneDeep } from 'lodash'; import { mergeMap, switchMap } from 'rxjs/operators'; import { Comparators } from '@elastic/eui'; import type { ISearchOptions } from '@kbn/data-plugin/common'; +import { buildBaseFilterCriteria, getSafeAggregationName } from '@kbn/ml-query-utils'; import type { DataStatsFetchProgress, FieldStatsSearchStrategyReturnBase, @@ -22,10 +23,6 @@ import type { import { useDataVisualizerKibana } from '../../kibana_context'; import type { FieldRequestConfig } from '../../../../common/types'; import type { DataVisualizerIndexBasedAppState } from '../types/index_data_visualizer_state'; -import { - buildBaseFilterCriteria, - getSafeAggregationName, -} from '../../../../common/utils/query_utils'; import type { FieldStats, FieldStatsError } from '../../../../common/types/field_stats'; import { getInitialProgress, getReducer } from '../progress_utils'; import { MAX_EXAMPLES_DEFAULT } from '../search_strategy/requests/constants'; diff --git a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/requests/get_document_stats.ts b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/requests/get_document_stats.ts index e6fc220ea7f3..690b8ec29740 100644 --- a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/requests/get_document_stats.ts +++ b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/requests/get_document_stats.ts @@ -11,8 +11,8 @@ import { isPopulatedObject } from '@kbn/ml-is-populated-object'; import { DataPublicPluginStart, ISearchOptions } from '@kbn/data-plugin/public'; import seedrandom from 'seedrandom'; import { isDefined } from '@kbn/ml-is-defined'; +import { buildBaseFilterCriteria } from '@kbn/ml-query-utils'; import { RANDOM_SAMPLER_PROBABILITIES } from '../../constants/random_sampler'; -import { buildBaseFilterCriteria } from '../../../../../common/utils/query_utils'; import type { DocumentCountStats, OverallStatsSearchStrategyParams, diff --git a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/requests/get_field_examples.ts b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/requests/get_field_examples.ts index dfc68e6dac9a..df7afb16479f 100644 --- a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/requests/get_field_examples.ts +++ b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/requests/get_field_examples.ts @@ -16,8 +16,8 @@ import type { } from '@kbn/data-plugin/public'; import { isPopulatedObject } from '@kbn/ml-is-populated-object'; import type { SearchHit } from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; +import { buildBaseFilterCriteria } from '@kbn/ml-query-utils'; import { getUniqGeoOrStrExamples } from '../../../common/util/example_utils'; -import { buildBaseFilterCriteria } from '../../../../../common/utils/query_utils'; import type { Field, FieldExamples, diff --git a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/requests/overall_stats.ts b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/requests/overall_stats.ts index 28bf46bfd7c0..c6643410b148 100644 --- a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/requests/overall_stats.ts +++ b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/requests/overall_stats.ts @@ -11,11 +11,8 @@ import { Query } from '@kbn/es-query'; import type { IKibanaSearchResponse } from '@kbn/data-plugin/common'; import type { AggCardinality } from '@kbn/ml-agg-utils'; import { isPopulatedObject } from '@kbn/ml-is-populated-object'; +import { buildBaseFilterCriteria, getSafeAggregationName } from '@kbn/ml-query-utils'; import { buildAggregationWithSamplingOption } from './build_random_sampler_agg'; -import { - buildBaseFilterCriteria, - getSafeAggregationName, -} from '../../../../../common/utils/query_utils'; import { getDatafeedAggregations } from '../../../../../common/utils/datafeed_utils'; import { AggregatableField, NonAggregatableField } from '../../types/overall_stats'; import { Aggs, SamplingOption } from '../../../../../common/types/field_stats'; diff --git a/x-pack/plugins/data_visualizer/tsconfig.json b/x-pack/plugins/data_visualizer/tsconfig.json index 4730c35cd365..fd61172e3158 100644 --- a/x-pack/plugins/data_visualizer/tsconfig.json +++ b/x-pack/plugins/data_visualizer/tsconfig.json @@ -55,6 +55,7 @@ "@kbn/ml-local-storage", "@kbn/ml-date-picker", "@kbn/ml-is-defined", + "@kbn/ml-query-utils", ], "exclude": [ "target/**/*", diff --git a/x-pack/plugins/ml/common/util/job_utils.test.ts b/x-pack/plugins/ml/common/util/job_utils.test.ts index 3318001a6f3d..d003710bb57e 100644 --- a/x-pack/plugins/ml/common/util/job_utils.test.ts +++ b/x-pack/plugins/ml/common/util/job_utils.test.ts @@ -17,7 +17,6 @@ import { mlFunctionToESAggregation, isJobIdValid, prefixDatafeedId, - getSafeAggregationName, getLatestDataOrBucketTimestamp, getEarliestDatafeedStartTime, resolveMaxTimeInterval, @@ -566,18 +565,6 @@ describe('ML - job utils', () => { }); }); - describe('getSafeAggregationName', () => { - test('"foo" should be "foo"', () => { - expect(getSafeAggregationName('foo', 0)).toBe('foo'); - }); - test('"foo.bar" should be "foo.bar"', () => { - expect(getSafeAggregationName('foo.bar', 0)).toBe('foo.bar'); - }); - test('"foo&bar" should be "field_0"', () => { - expect(getSafeAggregationName('foo&bar', 0)).toBe('field_0'); - }); - }); - describe('getLatestDataOrBucketTimestamp', () => { test('returns expected value when no gap in data at end of bucket processing', () => { expect(getLatestDataOrBucketTimestamp(1549929594000, 1549928700000)).toBe(1549929594000); diff --git a/x-pack/plugins/ml/common/util/job_utils.ts b/x-pack/plugins/ml/common/util/job_utils.ts index a0cbb5d5762d..dd68ef6d59d8 100644 --- a/x-pack/plugins/ml/common/util/job_utils.ts +++ b/x-pack/plugins/ml/common/util/job_utils.ts @@ -424,14 +424,6 @@ export function createDatafeedId(jobId: string) { return `datafeed-${jobId}`; } -// Returns a name which is safe to use in elasticsearch aggregations for the supplied -// field name. Aggregation names must be alpha-numeric and can only contain '_' and '-' characters, -// so if the supplied field names contains disallowed characters, the provided index -// identifier is used to return a safe 'dummy' name in the format 'field_index' e.g. field_0, field_1 -export function getSafeAggregationName(fieldName: string, index: number): string { - return fieldName.match(/^[a-zA-Z0-9-_.]+$/) ? fieldName : `field_${index}`; -} - export function uniqWithIsEqual(arr: T): T { return arr.reduce((dedupedArray, value) => { if (dedupedArray.filter((compareValue: any) => isEqual(compareValue, value)).length === 0) { diff --git a/x-pack/plugins/ml/public/application/jobs/jobs_list/components/datafeed_chart_flyout/fill_missing_chart_data.test.ts b/x-pack/plugins/ml/public/application/jobs/jobs_list/components/datafeed_chart_flyout/fill_missing_chart_data.test.ts index 5ef38a4a0e51..891d9432afe3 100644 --- a/x-pack/plugins/ml/public/application/jobs/jobs_list/components/datafeed_chart_flyout/fill_missing_chart_data.test.ts +++ b/x-pack/plugins/ml/public/application/jobs/jobs_list/components/datafeed_chart_flyout/fill_missing_chart_data.test.ts @@ -16,7 +16,7 @@ const completeData: ChartDataWithNullValues = [ [1666846800000, 6], ]; -describe('buildBaseFilterCriteria', () => { +describe('fillMissingChartData', () => { it('returns chart data with missing timestamps in middle of dataset filled in to null', () => { const dataWithMissingValues: ChartDataWithNullValues = [ [1666828800000, 7], diff --git a/x-pack/plugins/ml/server/lib/query_utils.test.ts b/x-pack/plugins/ml/server/lib/query_utils.test.ts deleted file mode 100644 index c505a8a9b1fa..000000000000 --- a/x-pack/plugins/ml/server/lib/query_utils.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 { buildBaseFilterCriteria } from './query_utils'; - -describe('ML - query utils', () => { - describe('buildBaseFilterCriteria', () => { - const earliestMs = 1483228800000; // 1 Jan 2017 00:00:00 - const latestMs = 1485907199000; // 31 Jan 2017 23:59:59 - const query = { - query_string: { - query: 'region:sa-east-1', - analyze_wildcard: true, - default_field: '*', - }, - }; - - test('returns correct criteria for time range', () => { - expect(buildBaseFilterCriteria('timestamp', earliestMs, latestMs)).toEqual([ - { - range: { - timestamp: { - gte: earliestMs, - lte: latestMs, - format: 'epoch_millis', - }, - }, - }, - ]); - }); - - test('returns correct criteria for time range and query', () => { - expect(buildBaseFilterCriteria('timestamp', earliestMs, latestMs, query)).toEqual([ - { - range: { - timestamp: { - gte: earliestMs, - lte: latestMs, - format: 'epoch_millis', - }, - }, - }, - query, - ]); - }); - }); -}); diff --git a/x-pack/plugins/ml/server/lib/query_utils.ts b/x-pack/plugins/ml/server/lib/query_utils.ts deleted file mode 100644 index a60622583781..000000000000 --- a/x-pack/plugins/ml/server/lib/query_utils.ts +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -/* - * Contains utility functions for building and processing queries. - */ - -// Builds the base filter criteria used in queries, -// adding criteria for the time range and an optional query. -export function buildBaseFilterCriteria( - timeFieldName?: string, - earliestMs?: number, - latestMs?: number, - query?: object -) { - const filterCriteria = []; - if (timeFieldName && earliestMs && latestMs) { - filterCriteria.push({ - range: { - [timeFieldName]: { - gte: earliestMs, - lte: latestMs, - format: 'epoch_millis', - }, - }, - }); - } - - if (query) { - filterCriteria.push(query); - } - - return filterCriteria; -} diff --git a/x-pack/plugins/ml/server/models/data_visualizer/data_visualizer.ts b/x-pack/plugins/ml/server/models/data_visualizer/data_visualizer.ts index e34afb42cde9..824ded33f8ef 100644 --- a/x-pack/plugins/ml/server/models/data_visualizer/data_visualizer.ts +++ b/x-pack/plugins/ml/server/models/data_visualizer/data_visualizer.ts @@ -15,9 +15,8 @@ import { } from '@kbn/ml-agg-utils'; import type { AggCardinality, FieldsForHistograms } from '@kbn/ml-agg-utils'; import { isPopulatedObject } from '@kbn/ml-is-populated-object'; +import { buildBaseFilterCriteria, getSafeAggregationName } from '@kbn/ml-query-utils'; import { ML_JOB_FIELD_TYPES } from '../../../common/constants/field_types'; -import { getSafeAggregationName } from '../../../common/util/job_utils'; -import { buildBaseFilterCriteria } from '../../lib/query_utils'; import { RuntimeMappings } from '../../../common/types/fields'; import { getDatafeedAggregations } from '../../../common/util/datafeed_utils'; import { Datafeed } from '../../../common/types/anomaly_detection_jobs'; From b87dca93c3c1ee9d199aae60ee9ec9071586387a Mon Sep 17 00:00:00 2001 From: David Roberts Date: Tue, 24 Jan 2023 12:08:54 +0000 Subject: [PATCH 21/26] [ML] Remove job_type from job definitions in modules (#149247) All the job definitions in ML modules contain the field `job_type`. For anomaly detection jobs this is always `anomaly_detector`. Officially it is not a valid input to the create job API. Elasticsearch accepts it (which is technically a bug as it's out-of-spec) which is why it has never been noticed before. However, the language clients do not accept it, which causes problems if somebody wants to create module jobs using a language client. It's best that the jobs in our modules conform accurately to the specification of a valid job creation request. --- .../modules/apm_transaction/ml/apm_tx_metrics.json | 1 - .../ml/docker_high_count_process_events_ecs.json | 1 - .../ml/docker_rare_process_activity_ecs.json | 1 - .../modules/logs_ui_analysis/ml/log_entry_rate.json | 1 - .../logs_ui_categories/ml/log_entry_categories_count.json | 1 - .../metricbeat_system_ecs/ml/high_mean_cpu_iowait_ecs.json | 1 - .../metricbeat_system_ecs/ml/max_disk_utilization_ecs.json | 1 - .../modules/metricbeat_system_ecs/ml/metricbeat_outages_ecs.json | 1 - .../modules/metrics_ui_hosts/ml/hosts_memory_usage.json | 1 - .../modules/metrics_ui_hosts/ml/hosts_network_in.json | 1 - .../modules/metrics_ui_hosts/ml/hosts_network_out.json | 1 - .../modules/metrics_ui_k8s/ml/k8s_memory_usage.json | 1 - .../modules/metrics_ui_k8s/ml/k8s_network_in.json | 1 - .../modules/metrics_ui_k8s/ml/k8s_network_out.json | 1 - .../modules/security_auth/ml/auth_high_count_logon_events.json | 1 - .../ml/auth_high_count_logon_events_for_a_source_ip.json | 1 - .../modules/security_auth/ml/auth_high_count_logon_fails.json | 1 - .../modules/security_auth/ml/auth_rare_hour_for_a_user.json | 1 - .../modules/security_auth/ml/auth_rare_source_ip_for_a_user.json | 1 - .../data_recognizer/modules/security_auth/ml/auth_rare_user.json | 1 - .../modules/security_auth/ml/suspicious_login_activity.json | 1 - .../ml/high_distinct_count_error_message.json | 1 - .../modules/security_cloudtrail/ml/rare_error_code.json | 1 - .../modules/security_cloudtrail/ml/rare_method_for_a_city.json | 1 - .../security_cloudtrail/ml/rare_method_for_a_country.json | 1 - .../security_cloudtrail/ml/rare_method_for_a_username.json | 1 - .../security_linux/ml/v3_linux_anomalous_network_activity.json | 1 - .../ml/v3_linux_anomalous_network_port_activity.json | 1 - .../security_linux/ml/v3_linux_anomalous_process_all_hosts.json | 1 - .../modules/security_linux/ml/v3_linux_anomalous_user_name.json | 1 - .../ml/v3_linux_network_configuration_discovery.json | 1 - .../security_linux/ml/v3_linux_network_connection_discovery.json | 1 - .../security_linux/ml/v3_linux_rare_metadata_process.json | 1 - .../modules/security_linux/ml/v3_linux_rare_metadata_user.json | 1 - .../modules/security_linux/ml/v3_linux_rare_sudo_user.json | 1 - .../modules/security_linux/ml/v3_linux_rare_user_compiler.json | 1 - .../security_linux/ml/v3_linux_system_information_discovery.json | 1 - .../security_linux/ml/v3_linux_system_process_discovery.json | 1 - .../security_linux/ml/v3_linux_system_user_discovery.json | 1 - .../modules/security_linux/ml/v3_rare_process_by_host_linux.json | 1 - .../security_network/ml/high_count_by_destination_country.json | 1 - .../modules/security_network/ml/high_count_network_denies.json | 1 - .../modules/security_network/ml/high_count_network_events.json | 1 - .../modules/security_network/ml/rare_destination_country.json | 1 - .../modules/security_packetbeat/ml/packetbeat_dns_tunneling.json | 1 - .../security_packetbeat/ml/packetbeat_rare_dns_question.json | 1 - .../security_packetbeat/ml/packetbeat_rare_server_domain.json | 1 - .../modules/security_packetbeat/ml/packetbeat_rare_urls.json | 1 - .../security_packetbeat/ml/packetbeat_rare_user_agent.json | 1 - .../security_windows/ml/v3_rare_process_by_host_windows.json | 1 - .../ml/v3_windows_anomalous_network_activity.json | 1 - .../security_windows/ml/v3_windows_anomalous_path_activity.json | 1 - .../ml/v3_windows_anomalous_process_all_hosts.json | 1 - .../ml/v3_windows_anomalous_process_creation.json | 1 - .../modules/security_windows/ml/v3_windows_anomalous_script.json | 1 - .../security_windows/ml/v3_windows_anomalous_service.json | 1 - .../security_windows/ml/v3_windows_anomalous_user_name.json | 1 - .../security_windows/ml/v3_windows_rare_metadata_process.json | 1 - .../security_windows/ml/v3_windows_rare_metadata_user.json | 1 - .../security_windows/ml/v3_windows_rare_user_runas_event.json | 1 - .../ml/v3_windows_rare_user_type10_remote_login.json | 1 - .../modules/uptime_heartbeat/ml/high_latency_by_geo.json | 1 - 62 files changed, 62 deletions(-) diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/apm_transaction/ml/apm_tx_metrics.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/apm_transaction/ml/apm_tx_metrics.json index 9f67527ba677..c6815fca7602 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/apm_transaction/ml/apm_tx_metrics.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/apm_transaction/ml/apm_tx_metrics.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "groups": [ "apm" ], diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/auditbeat_process_docker_ecs/ml/docker_high_count_process_events_ecs.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/auditbeat_process_docker_ecs/ml/docker_high_count_process_events_ecs.json index 046736b6f555..ae9d5d9140b5 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/auditbeat_process_docker_ecs/ml/docker_high_count_process_events_ecs.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/auditbeat_process_docker_ecs/ml/docker_high_count_process_events_ecs.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Auditbeat: Detect unusual increases in process execution rates in docker containers (ECS)", "groups": ["auditd"], "analysis_config": { diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/auditbeat_process_docker_ecs/ml/docker_rare_process_activity_ecs.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/auditbeat_process_docker_ecs/ml/docker_rare_process_activity_ecs.json index ab405d47484d..4eca07b03784 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/auditbeat_process_docker_ecs/ml/docker_rare_process_activity_ecs.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/auditbeat_process_docker_ecs/ml/docker_rare_process_activity_ecs.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Auditbeat: Detect rare process executions in docker containers (ECS)", "groups": ["auditd"], "analysis_config": { diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/logs_ui_analysis/ml/log_entry_rate.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/logs_ui_analysis/ml/log_entry_rate.json index 0cd99ae71765..eaa12cb74efd 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/logs_ui_analysis/ml/log_entry_rate.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/logs_ui_analysis/ml/log_entry_rate.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Logs UI: Detects anomalies in the log entry ingestion rate", "groups": ["logs-ui"], "analysis_config": { diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/logs_ui_categories/ml/log_entry_categories_count.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/logs_ui_categories/ml/log_entry_categories_count.json index 74f434f36e4e..5b20815cfb2a 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/logs_ui_categories/ml/log_entry_categories_count.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/logs_ui_categories/ml/log_entry_categories_count.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Logs UI: Detects anomalies in count of log entries by category", "groups": [ "logs-ui" diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/metricbeat_system_ecs/ml/high_mean_cpu_iowait_ecs.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/metricbeat_system_ecs/ml/high_mean_cpu_iowait_ecs.json index d6218acfae84..ff318f91e00f 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/metricbeat_system_ecs/ml/high_mean_cpu_iowait_ecs.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/metricbeat_system_ecs/ml/high_mean_cpu_iowait_ecs.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Metricbeat CPU: Detect unusual increases in cpu time spent in iowait (ECS)", "groups": [ "metricbeat" diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/metricbeat_system_ecs/ml/max_disk_utilization_ecs.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/metricbeat_system_ecs/ml/max_disk_utilization_ecs.json index dd502c1d6ae3..ed60473b1f31 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/metricbeat_system_ecs/ml/max_disk_utilization_ecs.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/metricbeat_system_ecs/ml/max_disk_utilization_ecs.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Metricbeat filesystem: Detect unusual increases in disk utilization (ECS)", "groups": [ "metricbeat" diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/metricbeat_system_ecs/ml/metricbeat_outages_ecs.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/metricbeat_system_ecs/ml/metricbeat_outages_ecs.json index fb2838ac5785..312b2d964347 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/metricbeat_system_ecs/ml/metricbeat_outages_ecs.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/metricbeat_system_ecs/ml/metricbeat_outages_ecs.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Metricbeat outages: Detect unusual decreases in metricbeat documents (ECS)", "groups": [ "metricbeat" diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/hosts_memory_usage.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/hosts_memory_usage.json index 6448d32b65f1..7bf5aa5ea61c 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/hosts_memory_usage.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/hosts_memory_usage.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "groups": [ "hosts", "metrics" diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/hosts_network_in.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/hosts_network_in.json index 3c78907bf73a..e21581e68119 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/hosts_network_in.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/hosts_network_in.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Metrics: Hosts - Identify unusual spikes in inbound traffic across hosts.", "groups": [ "hosts", diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/hosts_network_out.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/hosts_network_out.json index 9d7c39cf0aab..cd87289c0354 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/hosts_network_out.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/hosts_network_out.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Metrics: Hosts - Identify unusual spikes in outbound traffic across hosts.", "groups": [ "hosts", diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/k8s_memory_usage.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/k8s_memory_usage.json index 5c60137655ca..2a633f2b6ff1 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/k8s_memory_usage.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/k8s_memory_usage.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "groups": [ "k8s", "metrics" diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/k8s_network_in.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/k8s_network_in.json index 35cbe5c28205..4e2d7cbf48b5 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/k8s_network_in.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/k8s_network_in.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Metrics: Kubernetes - Identify unusual spikes in inbound traffic across Kubernetes pods.", "groups": [ "k8s", diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/k8s_network_out.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/k8s_network_out.json index a9e8a1fa8b22..dff1bfacddfc 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/k8s_network_out.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/k8s_network_out.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Metrics: Kubernetes - Identify unusual spikes in outbound traffic across Kubernetes pods.", "groups": [ "k8s", diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_auth/ml/auth_high_count_logon_events.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_auth/ml/auth_high_count_logon_events.json index 65f3bf5966bb..7ca7a5ebd71e 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_auth/ml/auth_high_count_logon_events.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_auth/ml/auth_high_count_logon_events.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Security: Authentication - Looks for an unusually large spike in successful authentication events. This can be due to password spraying, user enumeration, or brute force activity.", "groups": [ "security", diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_auth/ml/auth_high_count_logon_events_for_a_source_ip.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_auth/ml/auth_high_count_logon_events_for_a_source_ip.json index 22594cbacc48..47096f4c6413 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_auth/ml/auth_high_count_logon_events_for_a_source_ip.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_auth/ml/auth_high_count_logon_events_for_a_source_ip.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Security: Authentication - Looks for an unusually large spike in successful authentication events from a particular source IP address. This can be due to password spraying, user enumeration, or brute force activity.", "groups": [ "security", diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_auth/ml/auth_high_count_logon_fails.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_auth/ml/auth_high_count_logon_fails.json index d335f7b0128f..48586ef642ca 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_auth/ml/auth_high_count_logon_fails.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_auth/ml/auth_high_count_logon_fails.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Security: Authentication - Looks for an unusually large spike in authentication failure events. This can be due to password spraying, user enumeration, or brute force activity and may be a precursor to account takeover or credentialed access.", "groups": [ "security", diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_auth/ml/auth_rare_hour_for_a_user.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_auth/ml/auth_rare_hour_for_a_user.json index afe905a02283..1f421ed298b9 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_auth/ml/auth_rare_hour_for_a_user.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_auth/ml/auth_rare_hour_for_a_user.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Security: Authentication - looks for a user logging in at a time of day that is unusual for the user. This can be due to credentialed access via a compromised account when the user and the threat actor are in different time zones. In addition, unauthorized user activity often takes place during non-business hours.", "groups": [ "security", diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_auth/ml/auth_rare_source_ip_for_a_user.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_auth/ml/auth_rare_source_ip_for_a_user.json index 7d4e9e022915..98a249074a67 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_auth/ml/auth_rare_source_ip_for_a_user.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_auth/ml/auth_rare_source_ip_for_a_user.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Security: Authentication - looks for a user logging in from an IP address that is unusual for the user. This can be due to credentialed access via a compromised account when the user and the threat actor are in different locations. An unusual source IP address for a username could also be due to lateral movement when a compromised account is used to pivot between hosts.", "groups": [ "security", diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_auth/ml/auth_rare_user.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_auth/ml/auth_rare_user.json index 5f31cc6aaa43..e2488480e61d 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_auth/ml/auth_rare_user.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_auth/ml/auth_rare_user.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Security: Authentication - looks for an unusual user name in the authentication logs. An unusual user name is one way of detecting credentialed access by means of a new or dormant user account. A user account that is normally inactive, because the user has left the organization, which becomes active, may be due to credentialed access using a compromised account password. Threat actors will sometimes also create new users as a means of persisting in a compromised web application.", "groups": [ "security", diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_auth/ml/suspicious_login_activity.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_auth/ml/suspicious_login_activity.json index f96537b85e98..00e810b5348e 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_auth/ml/suspicious_login_activity.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_auth/ml/suspicious_login_activity.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Security: Auditbeat - Detect unusually high number of authentication attempts.", "groups": [ "security", diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_cloudtrail/ml/high_distinct_count_error_message.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_cloudtrail/ml/high_distinct_count_error_message.json index 59dc155b96d3..11b5f4625a48 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_cloudtrail/ml/high_distinct_count_error_message.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_cloudtrail/ml/high_distinct_count_error_message.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Security: Cloudtrail - Looks for a spike in the rate of an error message which may simply indicate an impending service failure but these can also be byproducts of attempted or successful persistence, privilege escalation, defense evasion, discovery, lateral movement, or collection activity by a threat actor.", "groups": [ "security", diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_cloudtrail/ml/rare_error_code.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_cloudtrail/ml/rare_error_code.json index 7c62eb4d8905..c54c8e8378f2 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_cloudtrail/ml/rare_error_code.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_cloudtrail/ml/rare_error_code.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Security: Cloudtrail - Looks for unusual errors. Rare and unusual errors may simply indicate an impending service failure but they can also be byproducts of attempted or successful persistence, privilege escalation, defense evasion, discovery, lateral movement, or collection activity by a threat actor.", "groups": [ "security", diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_cloudtrail/ml/rare_method_for_a_city.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_cloudtrail/ml/rare_method_for_a_city.json index 1d220f4c87b5..2ed28884be94 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_cloudtrail/ml/rare_method_for_a_city.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_cloudtrail/ml/rare_method_for_a_city.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Security: Cloudtrail - Looks for AWS API calls that, while not inherently suspicious or abnormal, are sourcing from a geolocation (city) that is unusual. This can be the result of compromised credentials or keys.", "groups": [ "security", diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_cloudtrail/ml/rare_method_for_a_country.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_cloudtrail/ml/rare_method_for_a_country.json index cd772b49ae2e..1f14357e7344 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_cloudtrail/ml/rare_method_for_a_country.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_cloudtrail/ml/rare_method_for_a_country.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Security: Cloudtrail - Looks for AWS API calls that, while not inherently suspicious or abnormal, are sourcing from a geolocation (country) that is unusual. This can be the result of compromised credentials or keys.", "groups": [ "security", diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_cloudtrail/ml/rare_method_for_a_username.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_cloudtrail/ml/rare_method_for_a_username.json index 36ff1d0cfb83..76cce7fb829c 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_cloudtrail/ml/rare_method_for_a_username.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_cloudtrail/ml/rare_method_for_a_username.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Security: Cloudtrail - Looks for AWS API calls that, while not inherently suspicious or abnormal, are sourcing from a user context that does not normally call the method. This can be the result of compromised credentials or keys as someone uses a valid account to persist, move laterally, or exfil data.", "groups": [ "security", diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_linux_anomalous_network_activity.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_linux_anomalous_network_activity.json index 9c3dfc3f59e9..29f6bf1d9841 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_linux_anomalous_network_activity.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_linux_anomalous_network_activity.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Security: Linux - Looks for unusual processes using the network which could indicate command-and-control, lateral movement, persistence, or data exfiltration activity.", "groups": [ "auditbeat", diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_linux_anomalous_network_port_activity.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_linux_anomalous_network_port_activity.json index 945b99b1bb65..34b97358260a 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_linux_anomalous_network_port_activity.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_linux_anomalous_network_port_activity.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Security: Linux - Looks for unusual destination port activity that could indicate command-and-control, persistence mechanism, or data exfiltration activity.", "groups": [ "security", diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_linux_anomalous_process_all_hosts.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_linux_anomalous_process_all_hosts.json index ececcb0b9d0a..a20a508391fb 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_linux_anomalous_process_all_hosts.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_linux_anomalous_process_all_hosts.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Security: Linux - Looks for processes that are unusual to all Linux hosts. Such unusual processes may indicate unauthorized software, malware, or persistence mechanisms.", "groups": [ "auditbeat", diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_linux_anomalous_user_name.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_linux_anomalous_user_name.json index 7bbacf6d0999..72be89bd79aa 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_linux_anomalous_user_name.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_linux_anomalous_user_name.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Security: Linux - Rare and unusual users that are not normally active may indicate unauthorized changes or activity by an unauthorized user which may be credentialed access or lateral movement.", "groups": [ "auditbeat", diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_linux_network_configuration_discovery.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_linux_network_configuration_discovery.json index e04140a850b5..1481b7a03a55 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_linux_network_configuration_discovery.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_linux_network_configuration_discovery.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Security: Linux - Looks for commands related to system network configuration discovery from an unusual user context. This can be due to uncommon troubleshooting activity or due to a compromised account. A compromised account may be used by a threat actor to engage in system network configuration discovery to increase their understanding of connected networks and hosts. This information may be used to shape follow-up behaviors such as lateral movement or additional discovery.", "groups": [ "security", diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_linux_network_connection_discovery.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_linux_network_connection_discovery.json index 0975d1139828..2b1cf43ac94d 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_linux_network_connection_discovery.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_linux_network_connection_discovery.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Security: Linux - Looks for commands related to system network connection discovery from an unusual user context. This can be due to uncommon troubleshooting activity or due to a compromised account. A compromised account may be used by a threat actor to engage in system network connection discovery to increase their understanding of connected services and systems. This information may be used to shape follow-up behaviors such as lateral movement or additional discovery.", "groups": [ "security", diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_linux_rare_metadata_process.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_linux_rare_metadata_process.json index 00a2bde273f9..fcec32acd69b 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_linux_rare_metadata_process.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_linux_rare_metadata_process.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Security: Linux - Looks for anomalous access to the metadata service by an unusual process. The metadata service may be targeted in order to harvest credentials or user data scripts containing secrets.", "groups": [ "auditbeat", diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_linux_rare_metadata_user.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_linux_rare_metadata_user.json index 0320ec941231..d8414c8bf22b 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_linux_rare_metadata_user.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_linux_rare_metadata_user.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Security: Linux - Looks for anomalous access to the metadata service by an unusual user. The metadata service may be targeted in order to harvest credentials or user data scripts containing secrets.", "groups": [ "auditbeat", diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_linux_rare_sudo_user.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_linux_rare_sudo_user.json index 6f403653ab72..a99e5f95572f 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_linux_rare_sudo_user.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_linux_rare_sudo_user.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Security: Linux - Looks for sudo activity from an unusual user context. Unusual user context changes can be due to privilege escalation.", "groups": [ "security", diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_linux_rare_user_compiler.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_linux_rare_user_compiler.json index 4f5e47bd26d2..9c8ca5316ace 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_linux_rare_user_compiler.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_linux_rare_user_compiler.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Security: Linux - Looks for compiler activity by a user context which does not normally run compilers. This can be ad-hoc software changes or unauthorized software deployment. This can also be due to local privilege elevation via locally run exploits or malware activity.", "groups": [ "security", diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_linux_system_information_discovery.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_linux_system_information_discovery.json index 32ee1c4342d6..020285493428 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_linux_system_information_discovery.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_linux_system_information_discovery.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Security: Linux - Looks for commands related to system information discovery from an unusual user context. This can be due to uncommon troubleshooting activity or due to a compromised account. A compromised account may be used to engage in system information discovery to gather detailed information about system configuration and software versions. This may be a precursor to the selection of a persistence mechanism or a method of privilege elevation.", "groups": [ "security", diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_linux_system_process_discovery.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_linux_system_process_discovery.json index 1451416dc0cb..23e6e607ccf0 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_linux_system_process_discovery.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_linux_system_process_discovery.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Security: Linux - Looks for commands related to system process discovery from an unusual user context. This can be due to uncommon troubleshooting activity or due to a compromised account. A compromised account may be used to engage in system process discovery to increase their understanding of software applications running on a target host or network. This may be a precursor to the selection of a persistence mechanism or a method of privilege elevation.", "groups": [ "security", diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_linux_system_user_discovery.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_linux_system_user_discovery.json index 22485ed6071c..8659e7a8f1f9 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_linux_system_user_discovery.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_linux_system_user_discovery.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Security: Linux - Looks for commands related to system user or owner discovery from an unusual user context. This can be due to uncommon troubleshooting activity or due to a compromised account. A compromised account may be used to engage in system owner or user discovery to identify currently active or primary users of a system. This may be a precursor to additional discovery, credential dumping, or privilege elevation activity.", "groups": [ "security", diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_rare_process_by_host_linux.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_rare_process_by_host_linux.json index b36913d68e62..a072007a0f13 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_rare_process_by_host_linux.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_linux/ml/v3_rare_process_by_host_linux.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Security: Linux - Looks for processes that are unusual to a particular Linux host. Such unusual processes may indicate unauthorized software, malware, or persistence mechanisms.", "groups": [ "auditbeat", diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_network/ml/high_count_by_destination_country.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_network/ml/high_count_by_destination_country.json index 653001a45345..4479fe8f8c66 100755 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_network/ml/high_count_by_destination_country.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_network/ml/high_count_by_destination_country.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Security: Network - Looks for an unusually large spike in network activity to one destination country in the network logs. This could be due to unusually large amounts of reconnaissance or enumeration traffic. Data exfiltration activity may also produce such a surge in traffic to a destination country which does not normally appear in network traffic or business work-flows. Malware instances and persistence mechanisms may communicate with command-and-control (C2) infrastructure in their country of origin, which may be an unusual destination country for the source network.", "groups": [ "security", diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_network/ml/high_count_network_denies.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_network/ml/high_count_network_denies.json index 5b1600d12454..984bfea22fa2 100755 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_network/ml/high_count_network_denies.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_network/ml/high_count_network_denies.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Security: Network - Looks for an unusually large spike in network traffic that was denied by network ACLs or firewall rules. Such a burst of denied traffic is usually either 1) a misconfigured application or firewall or 2) suspicious or malicious activity. Unsuccessful attempts at network transit, in order to connect to command-and-control (C2), or engage in data exfiltration, may produce a burst of failed connections. This could also be due to unusually large amounts of reconnaissance or enumeration traffic. Denial-of-service attacks or traffic floods may also produce such a surge in traffic.", "groups": [ "security", diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_network/ml/high_count_network_events.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_network/ml/high_count_network_events.json index 7c0a5d9537cb..ba740d581a27 100755 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_network/ml/high_count_network_events.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_network/ml/high_count_network_events.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Security: Network - Looks for an unusually large spike in network traffic. Such a burst of traffic, if not caused by a surge in business activity, can be due to suspicious or malicious activity. Large-scale data exfiltration may produce a burst of network traffic; this could also be due to unusually large amounts of reconnaissance or enumeration traffic. Denial-of-service attacks or traffic floods may also produce such a surge in traffic.", "groups": [ "security", diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_network/ml/rare_destination_country.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_network/ml/rare_destination_country.json index 7becc6599e31..123b802c475f 100755 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_network/ml/rare_destination_country.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_network/ml/rare_destination_country.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Security: Network - looks for an unusual destination country name in the network logs. This can be due to initial access, persistence, command-and-control, or exfiltration activity. For example, when a user clicks on a link in a phishing email or opens a malicious document, a request may be sent to download and run a payload from a server in a country which does not normally appear in network traffic or business work-flows. Malware instances and persistence mechanisms may communicate with command-and-control (C2) infrastructure in their country of origin, which may be an unusual destination country for the source network.", "groups": [ "security", diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_packetbeat/ml/packetbeat_dns_tunneling.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_packetbeat/ml/packetbeat_dns_tunneling.json index 61fa894ab1dc..313bd8e1bea3 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_packetbeat/ml/packetbeat_dns_tunneling.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_packetbeat/ml/packetbeat_dns_tunneling.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Security: Packetbeat - Looks for unusual DNS activity that could indicate command-and-control or data exfiltration activity.", "groups": [ "security", diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_packetbeat/ml/packetbeat_rare_dns_question.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_packetbeat/ml/packetbeat_rare_dns_question.json index a9663f3cd085..36c8b3acd722 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_packetbeat/ml/packetbeat_rare_dns_question.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_packetbeat/ml/packetbeat_rare_dns_question.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Security: Packetbeat - Looks for unusual DNS activity that could indicate command-and-control activity.", "groups": [ "security", diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_packetbeat/ml/packetbeat_rare_server_domain.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_packetbeat/ml/packetbeat_rare_server_domain.json index fd29b6616011..3f3c137e8fd3 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_packetbeat/ml/packetbeat_rare_server_domain.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_packetbeat/ml/packetbeat_rare_server_domain.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Security: Packetbeat - Looks for unusual HTTP or TLS destination domain activity that could indicate execution, persistence, command-and-control or data exfiltration activity.", "groups": [ "security", diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_packetbeat/ml/packetbeat_rare_urls.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_packetbeat/ml/packetbeat_rare_urls.json index c10dd74ac6ec..afa430bd835f 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_packetbeat/ml/packetbeat_rare_urls.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_packetbeat/ml/packetbeat_rare_urls.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Security: Packetbeat - Looks for unusual web browsing URL activity that could indicate execution, persistence, command-and-control or data exfiltration activity.", "groups": [ "security", diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_packetbeat/ml/packetbeat_rare_user_agent.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_packetbeat/ml/packetbeat_rare_user_agent.json index 8c54ea747cd1..bb2d524b41c1 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_packetbeat/ml/packetbeat_rare_user_agent.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_packetbeat/ml/packetbeat_rare_user_agent.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Security: Packetbeat - Looks for unusual HTTP user agent activity that could indicate execution, persistence, command-and-control or data exfiltration activity.", "groups": [ "security", diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_windows/ml/v3_rare_process_by_host_windows.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_windows/ml/v3_rare_process_by_host_windows.json index fdc6d38bb103..6b7e5dcf56f1 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_windows/ml/v3_rare_process_by_host_windows.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_windows/ml/v3_rare_process_by_host_windows.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Security: Windows - Looks for processes that are unusual to a particular Windows host. Such unusual processes may indicate unauthorized software, malware, or persistence mechanisms.", "groups": [ "endpoint", diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_windows/ml/v3_windows_anomalous_network_activity.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_windows/ml/v3_windows_anomalous_network_activity.json index 08e2df605c38..04ee9912c15e 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_windows/ml/v3_windows_anomalous_network_activity.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_windows/ml/v3_windows_anomalous_network_activity.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Security: Windows - Looks for unusual processes using the network which could indicate command-and-control, lateral movement, persistence, or data exfiltration activity.", "groups": [ "endpoint", diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_windows/ml/v3_windows_anomalous_path_activity.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_windows/ml/v3_windows_anomalous_path_activity.json index f370980d5a6a..d5c931b3c46e 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_windows/ml/v3_windows_anomalous_path_activity.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_windows/ml/v3_windows_anomalous_path_activity.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Security: Windows - Looks for activity in unusual paths that may indicate execution of malware or persistence mechanisms. Windows payloads often execute from user profile paths.", "groups": [ "endpoint", diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_windows/ml/v3_windows_anomalous_process_all_hosts.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_windows/ml/v3_windows_anomalous_process_all_hosts.json index f099c277e46a..1474763cec7b 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_windows/ml/v3_windows_anomalous_process_all_hosts.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_windows/ml/v3_windows_anomalous_process_all_hosts.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Security: Windows - Looks for processes that are unusual to all Windows hosts. Such unusual processes may indicate execution of unauthorized software, malware, or persistence mechanisms.", "groups": [ "endpoint", diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_windows/ml/v3_windows_anomalous_process_creation.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_windows/ml/v3_windows_anomalous_process_creation.json index f299ef5e3051..2966630fad87 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_windows/ml/v3_windows_anomalous_process_creation.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_windows/ml/v3_windows_anomalous_process_creation.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Security: Windows - Looks for unusual process relationships which may indicate execution of malware or persistence mechanisms.", "groups": [ "endpoint", diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_windows/ml/v3_windows_anomalous_script.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_windows/ml/v3_windows_anomalous_script.json index d9b8b69cfa27..b01641b2ef3a 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_windows/ml/v3_windows_anomalous_script.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_windows/ml/v3_windows_anomalous_script.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Security: Windows - Looks for unusual powershell scripts that may indicate execution of malware, or persistence mechanisms.", "groups": [ "endpoint", diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_windows/ml/v3_windows_anomalous_service.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_windows/ml/v3_windows_anomalous_service.json index 77e88567fc8a..9716c8365e31 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_windows/ml/v3_windows_anomalous_service.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_windows/ml/v3_windows_anomalous_service.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "groups": [ "endpoint", "event-log", diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_windows/ml/v3_windows_anomalous_user_name.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_windows/ml/v3_windows_anomalous_user_name.json index 6709ea75a186..eda4b768b530 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_windows/ml/v3_windows_anomalous_user_name.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_windows/ml/v3_windows_anomalous_user_name.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Security: Windows - Rare and unusual users that are not normally active may indicate unauthorized changes or activity by an unauthorized user which may be credentialed access or lateral movement.", "groups": [ "endpoint", diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_windows/ml/v3_windows_rare_metadata_process.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_windows/ml/v3_windows_rare_metadata_process.json index 93e1b716ff30..ab4fd311d664 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_windows/ml/v3_windows_rare_metadata_process.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_windows/ml/v3_windows_rare_metadata_process.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Security: Windows - Looks for anomalous access to the metadata service by an unusual process. The metadata service may be targeted in order to harvest credentials or user data scripts containing secrets.", "groups": [ "security", diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_windows/ml/v3_windows_rare_metadata_user.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_windows/ml/v3_windows_rare_metadata_user.json index 048b7927e72c..fe8a634d4992 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_windows/ml/v3_windows_rare_metadata_user.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_windows/ml/v3_windows_rare_metadata_user.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Security: Windows - Looks for anomalous access to the metadata service by an unusual user. The metadata service may be targeted in order to harvest credentials or user data scripts containing secrets.", "groups": [ "endpoint", diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_windows/ml/v3_windows_rare_user_runas_event.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_windows/ml/v3_windows_rare_user_runas_event.json index 9db2159e18bc..b95aa1144f44 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_windows/ml/v3_windows_rare_user_runas_event.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_windows/ml/v3_windows_rare_user_runas_event.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Security: Windows - Unusual user context switches can be due to privilege escalation.", "groups": [ "endpoint", diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_windows/ml/v3_windows_rare_user_type10_remote_login.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_windows/ml/v3_windows_rare_user_type10_remote_login.json index 053a61ab04fd..a6ec19401190 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/security_windows/ml/v3_windows_rare_user_type10_remote_login.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/security_windows/ml/v3_windows_rare_user_type10_remote_login.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "description": "Security: Windows - Unusual RDP (remote desktop protocol) user logins can indicate account takeover or credentialed access.", "groups": [ "endpoint", diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/uptime_heartbeat/ml/high_latency_by_geo.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/uptime_heartbeat/ml/high_latency_by_geo.json index c4f06daf97d0..98529de688e3 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/uptime_heartbeat/ml/high_latency_by_geo.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/uptime_heartbeat/ml/high_latency_by_geo.json @@ -1,5 +1,4 @@ { - "job_type": "anomaly_detector", "groups": ["uptime"], "description": "Uptime Heartbeat: Identify periods of increased latency across geographical regions.", "analysis_config": { From f7a1ce95a91700e2c70dd26bb47488c9f38f27c9 Mon Sep 17 00:00:00 2001 From: Mark Hopkin Date: Tue, 24 Jan 2023 12:38:25 +0000 Subject: [PATCH 22/26] [Fleet] Use optimistic locking when updating `installed_es` on input package policy creation (#148883) ## Summary Part of #145529 When creating an input package policy, we now create index templates and ingest pipelines. As part of this operation we have to update installed_es on the installation saved object, there is a risk of lost updates if multiple package policies are created at the same time, to combat this i have used the in built saved object optimistic concurrency. I have tested this locally, we do start see conflicts occur if I create 500 package policies in concurrent batches of 25, but I think we should have a dedicated bulk endpoint if we want to handle more than that. I haven't pushed the automated tests as they take a few minutes to run and I don't think there is a big enough benefit to running them as part of CI every time. Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../server/services/epm/packages/install.ts | 93 +++++++++++++++---- 1 file changed, 75 insertions(+), 18 deletions(-) diff --git a/x-pack/plugins/fleet/server/services/epm/packages/install.ts b/x-pack/plugins/fleet/server/services/epm/packages/install.ts index a16b0c28cff8..cf00ec4e3aed 100644 --- a/x-pack/plugins/fleet/server/services/epm/packages/install.ts +++ b/x-pack/plugins/fleet/server/services/epm/packages/install.ts @@ -15,11 +15,14 @@ import type { SavedObjectsClientContract, Logger, } from '@kbn/core/server'; +import { SavedObjectsErrorHelpers } from '@kbn/core/server'; import { DEFAULT_SPACE_ID } from '@kbn/spaces-plugin/common/constants'; import pRetry from 'p-retry'; +import { uniqBy } from 'lodash'; + import { isPackagePrerelease, getNormalizedDataStreams } from '../../../../common/services'; import { FLEET_INSTALL_FORMAT_VERSION } from '../../../constants/fleet_es_assets'; @@ -797,15 +800,10 @@ export const updateEsAssetReferences = async ( return true; }); - const deduplicatedAssets = - [...withAssetsRemoved, ...assetsToAdd].reduce((acc, currentAsset) => { - const foundAsset = acc.find((asset: EsAssetReference) => asset.id === currentAsset.id); - if (!foundAsset) { - return acc.concat([currentAsset]); - } else { - return acc; - } - }, [] as EsAssetReference[]) || []; + const deduplicatedAssets = uniqBy( + [...withAssetsRemoved, ...assetsToAdd], + ({ type, id }) => `${type}-${id}` + ); const { attributes: { installed_es: updatedAssets }, @@ -832,6 +830,49 @@ export const updateEsAssetReferences = async ( return updatedAssets ?? []; }; +/** + * Utility function for adding assets the installed_es field of a package + * uses optimistic concurrency control to prevent missed updates + */ +export const optimisticallyAddEsAssetReferences = async ( + savedObjectsClient: SavedObjectsClientContract, + pkgName: string, + assetsToAdd: EsAssetReference[] +): Promise => { + const addEsAssets = async () => { + const so = await savedObjectsClient.get(PACKAGES_SAVED_OBJECT_TYPE, pkgName); + + const installedEs = so.attributes.installed_es ?? []; + + const deduplicatedAssets = uniqBy( + [...installedEs, ...assetsToAdd], + ({ type, id }) => `${type}-${id}` + ); + + const { + attributes: { installed_es: updatedAssets }, + } = await savedObjectsClient.update( + PACKAGES_SAVED_OBJECT_TYPE, + pkgName, + { + installed_es: deduplicatedAssets, + }, + { + version: so.version, + } + ); + + return updatedAssets ?? []; + }; + + const onlyRetryConflictErrors = (err: Error) => { + if (!SavedObjectsErrorHelpers.isConflictError(err)) { + throw err; + } + }; + + return pRetry(addEsAssets, { retries: 10, onFailedAttempt: onlyRetryConflictErrors }); +}; export async function ensurePackagesCompletedInstall( savedObjectsClient: SavedObjectsClientContract, @@ -910,15 +951,31 @@ export async function installIndexTemplatesAndPipelines({ // conditions on updating the installed_es field at the same time // These must be saved before we actually attempt to install the templates or pipelines so that we know what to // cleanup in the case that a single asset fails to install. - const newEsReferences = await updateEsAssetReferences( - savedObjectsClient, - packageInfo.name, - esReferences, - { - assetsToRemove: onlyForDataStreams ? [] : preparedIndexTemplates.assetsToRemove, - assetsToAdd: [...preparedIngestPipelines.assetsToAdd, ...preparedIndexTemplates.assetsToAdd], - } - ); + let newEsReferences: EsAssetReference[] = []; + + if (onlyForDataStreams) { + // if onlyForDataStreams is present that means we are in create package policy flow + // not install flow, meaning we do not have a lock on the installation SO + // so we need to use optimistic concurrency control + newEsReferences = await optimisticallyAddEsAssetReferences( + savedObjectsClient, + packageInfo.name, + [...preparedIngestPipelines.assetsToAdd, ...preparedIndexTemplates.assetsToAdd] + ); + } else { + newEsReferences = await updateEsAssetReferences( + savedObjectsClient, + packageInfo.name, + esReferences, + { + assetsToRemove: preparedIndexTemplates.assetsToRemove, + assetsToAdd: [ + ...preparedIngestPipelines.assetsToAdd, + ...preparedIndexTemplates.assetsToAdd, + ], + } + ); + } // Install index templates and ingest pipelines in parallel since they typically take the longest const [installedTemplates] = await Promise.all([ From cfee703139b89086f6919e9d03768c72aa403006 Mon Sep 17 00:00:00 2001 From: Rudolf Meijering Date: Tue, 24 Jan 2023 13:49:30 +0100 Subject: [PATCH 23/26] Bump elasticsearch-js to 8.6.0-canary.3 (#148521) ## Summary Bump elasticsearch-js to 8.6.0-canary.3 to unblock https://github.com/elastic/kibana/issues/145653 The updated version of elasticsearch-js comes with some type changes that causes typescript type checking to fail. I've fixed the type errors that were obvious/easy but left todo's for some types which were harder for me to figure out. If any of these todo's are in your team's code, please contribute directly to the branch to fix them. ### Checklist Delete any items that are not applicable to this PR. - [ ] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md) - [ ] [Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials - [ ] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios - [ ] Any UI touched in this PR is usable by keyboard only (learn more about [keyboard accessibility](https://webaim.org/techniques/keyboard/)) - [ ] Any UI touched in this PR does not create any new axe failures (run axe in browser: [FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/), [Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US)) - [ ] If a plugin configuration key changed, check if it needs to be allowlisted in the cloud and added to the [docker list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker) - [ ] This renders correctly on smaller devices using a responsive layout. (You can test this [in your browser](https://www.browserstack.com/guide/responsive-testing-on-local-server)) - [ ] This was checked for [cross-browser compatibility](https://www.elastic.co/support/matrix#matrix_browsers) ### 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: kibanamachine <42973632+kibanamachine@users.noreply.github.com> Co-authored-by: Thom Heymann Co-authored-by: weltenwort --- package.json | 2 +- .../src/lib/point_in_time_finder.ts | 6 +-- .../src/lib/search_dsl/search_dsl.ts | 2 +- .../src/apis/find.ts | 6 +-- .../validation/log_entry_rate_indices.ts | 3 +- .../common/http_api/shared/es_request.ts | 52 +++++++++++++++++++ .../infra/common/http_api/shared/index.ts | 1 + .../lib/adapters/framework/adapter_types.ts | 7 +-- .../framework/kibana_framework_adapter.ts | 12 ----- .../routes/log_analysis/validation/indices.ts | 4 +- .../license_management/server/lib/license.ts | 7 +-- .../api/license/register_license_route.ts | 2 +- .../items/write_list_items_to_stream.ts | 8 +-- .../rollup/server/collectors/helpers.ts | 3 +- .../tests/anonymous/login.ts | 3 +- yarn.lock | 48 ++++++++++------- 16 files changed, 109 insertions(+), 57 deletions(-) create mode 100644 x-pack/plugins/infra/common/http_api/shared/es_request.ts diff --git a/package.json b/package.json index b9a9b3b1e338..72682515edd0 100644 --- a/package.json +++ b/package.json @@ -105,7 +105,7 @@ "@elastic/apm-rum-react": "^1.4.2", "@elastic/charts": "51.3.0", "@elastic/datemath": "5.0.3", - "@elastic/elasticsearch": "npm:@elastic/elasticsearch-canary@8.5.0-canary.1", + "@elastic/elasticsearch": "npm:@elastic/elasticsearch-canary@8.6.0-canary.3", "@elastic/ems-client": "8.3.3", "@elastic/eui": "73.0.0", "@elastic/filesaver": "1.1.2", diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/point_in_time_finder.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/point_in_time_finder.ts index 7dffbbdaa356..834a64552a1e 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/point_in_time_finder.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/point_in_time_finder.ts @@ -75,7 +75,7 @@ export class PointInTimeFinder await this.open(); let lastResultsCount: number; - let lastHitSortValue: estypes.Id[] | undefined; + let lastHitSortValue: estypes.SortResults | undefined; do { const results = await this.findNext({ findOptions: this.#findOptions, @@ -142,7 +142,7 @@ export class PointInTimeFinder }: { findOptions: SavedObjectsFindOptions; id?: string; - searchAfter?: estypes.Id[]; + searchAfter?: estypes.SortResults; }) { try { return await this.#client.find( @@ -167,7 +167,7 @@ export class PointInTimeFinder } } - private getLastHitSortValue(res: SavedObjectsFindResponse): estypes.Id[] | undefined { + private getLastHitSortValue(res: SavedObjectsFindResponse): estypes.SortResults | undefined { if (res.saved_objects.length < 1) { return undefined; } diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search_dsl/search_dsl.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search_dsl/search_dsl.ts index bcc705da1282..5af44df7172e 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search_dsl/search_dsl.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search_dsl/search_dsl.ts @@ -25,7 +25,7 @@ interface GetSearchDslOptions { defaultSearchOperator?: SearchOperator; searchFields?: string[]; rootSearchFields?: string[]; - searchAfter?: estypes.Id[]; + searchAfter?: estypes.SortResults; sortField?: string; sortOrder?: estypes.SortOrder; namespaces?: string[]; diff --git a/packages/core/saved-objects/core-saved-objects-api-server/src/apis/find.ts b/packages/core/saved-objects/core-saved-objects-api-server/src/apis/find.ts index 8e754d26533c..5c5704375416 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server/src/apis/find.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server/src/apis/find.ts @@ -9,7 +9,7 @@ import type { SortOrder, AggregationsAggregationContainer, - Id as EsId, + SortResults, } from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import type { SavedObject } from '@kbn/core-saved-objects-common'; @@ -68,7 +68,7 @@ export interface SavedObjectsFindOptions { /** * Use the sort values from the previous page to retrieve the next page of results. */ - searchAfter?: EsId[]; + searchAfter?: SortResults; /** * The fields to perform the parsed query against. Unlike the `searchFields` argument, these are expected to be root fields and will not * be modified. If used in conjunction with `searchFields`, both are concatenated together. @@ -176,7 +176,7 @@ export interface SavedObjectsFindResult extends SavedObject { * await savedObjectsClient.closePointInTime(page2.pit_id); * ``` */ - sort?: string[]; + sort?: SortResults; } /** diff --git a/x-pack/plugins/infra/common/http_api/log_analysis/validation/log_entry_rate_indices.ts b/x-pack/plugins/infra/common/http_api/log_analysis/validation/log_entry_rate_indices.ts index a6a7a9996d26..73b88e052398 100644 --- a/x-pack/plugins/infra/common/http_api/log_analysis/validation/log_entry_rate_indices.ts +++ b/x-pack/plugins/infra/common/http_api/log_analysis/validation/log_entry_rate_indices.ts @@ -6,6 +6,7 @@ */ import * as rt from 'io-ts'; +import { mappingRuntimeFieldRT } from '../../shared/es_request'; export const LOG_ANALYSIS_VALIDATE_INDICES_PATH = '/api/infra/log_analysis/validation/log_entry_rate_indices'; @@ -26,7 +27,7 @@ export const validationIndicesRequestPayloadRT = rt.type({ data: rt.type({ fields: rt.array(validationIndicesFieldSpecificationRT), indices: rt.array(rt.string), - runtimeMappings: rt.UnknownRecord, + runtimeMappings: rt.record(rt.string, mappingRuntimeFieldRT), }), }); diff --git a/x-pack/plugins/infra/common/http_api/shared/es_request.ts b/x-pack/plugins/infra/common/http_api/shared/es_request.ts new file mode 100644 index 000000000000..f0583876569b --- /dev/null +++ b/x-pack/plugins/infra/common/http_api/shared/es_request.ts @@ -0,0 +1,52 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import * as rt from 'io-ts'; + +const scriptBaseRT = rt.partial({ + params: rt.record(rt.string, rt.any), +}); + +const inlineScriptRT = rt.intersection([ + scriptBaseRT, + rt.partial({ + lang: rt.string, + options: rt.record(rt.string, rt.string), + }), + rt.type({ + source: rt.string, + }), +]); + +const storedScriptIdRT = rt.intersection([ + scriptBaseRT, + rt.type({ + id: rt.string, + }), +]); + +const scriptRT = rt.union([inlineScriptRT, rt.string, storedScriptIdRT]); + +export const mappingRuntimeFieldTypeRT = rt.keyof({ + boolean: null, + date: null, + double: null, + geo_point: null, + ip: null, + keyword: null, + long: null, +}); + +export const mappingRuntimeFieldRT = rt.intersection([ + rt.partial({ + format: rt.string, + script: scriptRT, + }), + rt.type({ + type: mappingRuntimeFieldTypeRT, + }), +]); diff --git a/x-pack/plugins/infra/common/http_api/shared/index.ts b/x-pack/plugins/infra/common/http_api/shared/index.ts index da113cb16abd..a869e96144a7 100644 --- a/x-pack/plugins/infra/common/http_api/shared/index.ts +++ b/x-pack/plugins/infra/common/http_api/shared/index.ts @@ -6,6 +6,7 @@ */ export * from './errors'; +export * from './es_request'; export * from './metric_statistics'; export * from './time_range'; export * from './timing'; diff --git a/x-pack/plugins/infra/server/lib/adapters/framework/adapter_types.ts b/x-pack/plugins/infra/server/lib/adapters/framework/adapter_types.ts index 55b847d33f87..29d9656bc040 100644 --- a/x-pack/plugins/infra/server/lib/adapters/framework/adapter_types.ts +++ b/x-pack/plugins/infra/server/lib/adapters/framework/adapter_types.ts @@ -50,7 +50,7 @@ export interface CallWithRequestParams extends estypes.RequestBase { allow_no_indices?: boolean; size?: number; terminate_after?: number; - fields?: string | string[]; + fields?: estypes.Fields; path?: string; query?: string | object; track_total_hits?: boolean | number; @@ -92,11 +92,6 @@ export interface InfraDatabaseMultiResponse extends InfraDatab responses: Array>; } -export interface InfraDatabaseFieldCapsResponse extends InfraDatabaseResponse { - indices: string[]; - fields: InfraFieldsResponse; -} - export interface InfraDatabaseGetIndicesAliasResponse { [indexName: string]: { aliases: { diff --git a/x-pack/plugins/infra/server/lib/adapters/framework/kibana_framework_adapter.ts b/x-pack/plugins/infra/server/lib/adapters/framework/kibana_framework_adapter.ts index 7c0f59d2c807..5c6cde7480c7 100644 --- a/x-pack/plugins/infra/server/lib/adapters/framework/kibana_framework_adapter.ts +++ b/x-pack/plugins/infra/server/lib/adapters/framework/kibana_framework_adapter.ts @@ -16,7 +16,6 @@ import { InfraConfig } from '../../../plugin'; import type { InfraPluginRequestHandlerContext } from '../../../types'; import { CallWithRequestParams, - InfraDatabaseFieldCapsResponse, InfraDatabaseGetIndicesAliasResponse, InfraDatabaseGetIndicesResponse, InfraDatabaseMultiResponse, @@ -88,11 +87,6 @@ export class KibanaFramework { endpoint: 'msearch', options?: CallWithRequestParams ): Promise>; - callWithRequest( - requestContext: InfraPluginRequestHandlerContext, - endpoint: 'fieldCaps', - options?: CallWithRequestParams - ): Promise; callWithRequest( requestContext: InfraPluginRequestHandlerContext, endpoint: 'indices.existsAlias', @@ -118,7 +112,6 @@ export class KibanaFramework { endpoint: string, options?: CallWithRequestParams ): Promise; - public async callWithRequest( requestContext: InfraPluginRequestHandlerContext, endpoint: string, @@ -162,11 +155,6 @@ export class KibanaFramework { ...frozenIndicesParams, } as estypes.MsearchRequest); break; - case 'fieldCaps': - apiResult = elasticsearch.client.asCurrentUser.fieldCaps({ - ...params, - }); - break; case 'indices.existsAlias': apiResult = elasticsearch.client.asCurrentUser.indices.existsAlias({ ...params, diff --git a/x-pack/plugins/infra/server/routes/log_analysis/validation/indices.ts b/x-pack/plugins/infra/server/routes/log_analysis/validation/indices.ts index 4fd7096db06e..6b7293e4c855 100644 --- a/x-pack/plugins/infra/server/routes/log_analysis/validation/indices.ts +++ b/x-pack/plugins/infra/server/routes/log_analysis/validation/indices.ts @@ -42,7 +42,9 @@ export const initValidateLogAnalysisIndicesRoute = ({ framework }: InfraBackendL // Query each pattern individually, to map correctly the errors await Promise.all( indices.map(async (index) => { - const fieldCaps = await framework.callWithRequest(requestContext, 'fieldCaps', { + const fieldCaps = await ( + await requestContext.core + ).elasticsearch.client.asCurrentUser.fieldCaps({ allow_no_indices: true, fields: fields.map((field) => field.name), ignore_unavailable: true, diff --git a/x-pack/plugins/license_management/server/lib/license.ts b/x-pack/plugins/license_management/server/lib/license.ts index 557d9122e967..2d4d1b70e644 100644 --- a/x-pack/plugins/license_management/server/lib/license.ts +++ b/x-pack/plugins/license_management/server/lib/license.ts @@ -5,6 +5,7 @@ * 2.0. */ +import { LicenseLicense } from '@elastic/elasticsearch/lib/api/types'; import { IScopedClusterClient } from '@kbn/core/server'; import { LicensingPluginStart } from '@kbn/licensing-plugin/server'; @@ -12,13 +13,13 @@ interface PutLicenseArg { acknowledge: boolean; client: IScopedClusterClient; licensing: LicensingPluginStart; - license: { [key: string]: any }; + licenses: LicenseLicense[]; } -export async function putLicense({ acknowledge, client, licensing, license }: PutLicenseArg) { +export async function putLicense({ acknowledge, client, licensing, licenses }: PutLicenseArg) { try { const response = await client.asCurrentUser.license.post({ - body: license, + licenses, acknowledge, }); const { acknowledged, license_status: licenseStatus } = response; diff --git a/x-pack/plugins/license_management/server/routes/api/license/register_license_route.ts b/x-pack/plugins/license_management/server/routes/api/license/register_license_route.ts index 0a9bbacaff4d..a9a7ef596b3a 100644 --- a/x-pack/plugins/license_management/server/routes/api/license/register_license_route.ts +++ b/x-pack/plugins/license_management/server/routes/api/license/register_license_route.ts @@ -33,7 +33,7 @@ export function registerLicenseRoute({ acknowledge: Boolean(req.query.acknowledge), client, licensing, - license: req.body, + licenses: [req.body.license as any], }), }); } catch (error) { diff --git a/x-pack/plugins/lists/server/services/items/write_list_items_to_stream.ts b/x-pack/plugins/lists/server/services/items/write_list_items_to_stream.ts index e59ac23b9d44..8c375a3c178e 100644 --- a/x-pack/plugins/lists/server/services/items/write_list_items_to_stream.ts +++ b/x-pack/plugins/lists/server/services/items/write_list_items_to_stream.ts @@ -65,7 +65,7 @@ export interface WriteNextResponseOptions { esClient: ElasticsearchClient; listItemIndex: string; stream: PassThrough; - searchAfter: string[] | undefined; + searchAfter: estypes.SortResults | undefined; stringToAppend: string | null | undefined; } @@ -76,7 +76,7 @@ export const writeNextResponse = async ({ listItemIndex, searchAfter, stringToAppend, -}: WriteNextResponseOptions): Promise => { +}: WriteNextResponseOptions): Promise => { const response = await getResponse({ esClient, listId, @@ -96,7 +96,7 @@ export const getSearchAfterFromResponse = ({ response, }: { response: estypes.SearchResponse; -}): string[] | undefined => +}): estypes.SortResults | undefined => response.hits.hits.length > 0 ? response.hits.hits[response.hits.hits.length - 1].sort : undefined; @@ -104,7 +104,7 @@ export const getSearchAfterFromResponse = ({ export interface GetResponseOptions { esClient: ElasticsearchClient; listId: string; - searchAfter: undefined | string[]; + searchAfter: estypes.SortResults | undefined; listItemIndex: string; size?: number; } diff --git a/x-pack/plugins/rollup/server/collectors/helpers.ts b/x-pack/plugins/rollup/server/collectors/helpers.ts index 27dc3aaf89c5..e1158133c77e 100644 --- a/x-pack/plugins/rollup/server/collectors/helpers.ts +++ b/x-pack/plugins/rollup/server/collectors/helpers.ts @@ -6,6 +6,7 @@ */ import { get } from 'lodash'; import { ElasticsearchClient } from '@kbn/core/server'; +import { estypes } from '@elastic/elasticsearch'; // elasticsearch index.max_result_window default value const ES_MAX_RESULT_WINDOW_DEFAULT_VALUE = 1000; @@ -63,7 +64,7 @@ const getSavedObjectsList = async ({ filter, }: { esClient: ElasticsearchClient; - searchAfter: string[] | undefined; + searchAfter: estypes.SortResults | undefined; kibanaIndex: string; filterPath: string[]; filter: ESFilterProps; diff --git a/x-pack/test/security_api_integration/tests/anonymous/login.ts b/x-pack/test/security_api_integration/tests/anonymous/login.ts index fe211fae7f7f..7a8a4110c8fc 100644 --- a/x-pack/test/security_api_integration/tests/anonymous/login.ts +++ b/x-pack/test/security_api_integration/tests/anonymous/login.ts @@ -168,9 +168,8 @@ export default function ({ getService }: FtrProviderContext) { expect(apiResponse.body.statusCode).to.be(401); expect(apiResponse.body.error).to.be('Unauthorized'); expect(apiResponse.body.message).to.include.string( - '[security_exception] Reason: unable to authenticate user [dummy_hacker] for REST request [/_security/_authenticate]' + 'unable to authenticate user [dummy_hacker] for REST request [/_security/_authenticate]' ); - expect(apiResponse.headers['set-cookie']).to.be(undefined); }); }); diff --git a/yarn.lock b/yarn.lock index eb2f9402c68e..3bcf0a089a78 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1503,12 +1503,12 @@ dependencies: "@elastic/ecs-helpers" "^1.1.0" -"@elastic/elasticsearch@npm:@elastic/elasticsearch-canary@8.5.0-canary.1": - version "8.5.0-canary.1" - resolved "https://registry.yarnpkg.com/@elastic/elasticsearch-canary/-/elasticsearch-canary-8.5.0-canary.1.tgz#3e2f40bc2e58d4f1c1cc391b2d594db59c5e0cd8" - integrity sha512-WmiK5A04tUwpAdbPeLo9ONV/T6foYYa1EjGQFxTPmEPLyY9s0B14o1JAJ7OnzQe9qmDahSJksSA1xLr0LdutmA== +"@elastic/elasticsearch@npm:@elastic/elasticsearch-canary@8.6.0-canary.3": + version "8.6.0-canary.3" + resolved "https://registry.yarnpkg.com/@elastic/elasticsearch-canary/-/elasticsearch-canary-8.6.0-canary.3.tgz#dc518f5ae4bb502b08ff70e4d86fa7b859b3cbe3" + integrity sha512-NvTZrRT/d5mJZ46pDlbgdKVIhA7ac504IGVaf7OV/7wHDmXjm8d/cG2UeQd8v37zMplGq2/853uFWGlXXjD0lQ== dependencies: - "@elastic/transport" "^8.2.0" + "@elastic/transport" "^8.3.1" tslib "^2.4.0" "@elastic/ems-client@8.3.3": @@ -1680,17 +1680,17 @@ undici "^5.11.0" yaml "^2.1.3" -"@elastic/transport@^8.2.0": - version "8.2.0" - resolved "https://registry.yarnpkg.com/@elastic/transport/-/transport-8.2.0.tgz#f292cb79c918a36268dd853431e41f13544814ad" - integrity sha512-H/HmefMNQfLiBSVTmNExu2lYs5EzwipUnQB53WLr17RCTDaQX0oOLHcWpDsbKQSRhDAMPPzp5YZsZMJxuxPh7A== +"@elastic/transport@^8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@elastic/transport/-/transport-8.3.1.tgz#e7569d7df35b03108ea7aa886113800245faa17f" + integrity sha512-jv/Yp2VLvv5tSMEOF8iGrtL2YsYHbpf4s+nDsItxUTLFTzuJGpnsB/xBlfsoT2kAYEnWHiSJuqrbRcpXEI/SEQ== dependencies: debug "^4.3.4" hpagent "^1.0.0" ms "^2.1.3" secure-json-parse "^2.4.0" tslib "^2.4.0" - undici "^5.1.1" + undici "^5.5.1" "@emotion/babel-plugin-jsx-pragmatic@^0.2.0": version "0.2.0" @@ -15982,9 +15982,9 @@ hpack.js@^2.1.6: wbuf "^1.1.0" hpagent@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hpagent/-/hpagent-1.0.0.tgz#c68f68b3df845687dbdc4896546713ce09cc6bee" - integrity sha512-SCleE2Uc1bM752ymxg8QXYGW0TWtAV4ZW3TqH1aOnyi6T6YW2xadCcclm5qeVjvMvfQ2RKNtZxO7uVb9CTPt1A== + version "1.2.0" + resolved "https://registry.yarnpkg.com/hpagent/-/hpagent-1.2.0.tgz#0ae417895430eb3770c03443456b8d90ca464903" + integrity sha512-A91dYTeIB6NoXG+PxTQpCCDDnfHsW9kc06Lvpu1TEe9gnd6ZFeiBoRO9JvzEv6xK7EX97/dUE8g/vBMTqTS3CA== html-element-map@^1.2.0: version "1.2.0" @@ -24535,9 +24535,9 @@ scss-tokenizer@^0.4.3: source-map "^0.7.3" secure-json-parse@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/secure-json-parse/-/secure-json-parse-2.4.0.tgz#5aaeaaef85c7a417f76271a4f5b0cc3315ddca85" - integrity sha512-Q5Z/97nbON5t/L/sH6mY2EacfjVGwrCcSi5D3btRO2GZ8pf1K1UN7Z9H5J57hjVU2Qzxr1xO+FmBhOvEkzCMmg== + version "2.6.0" + resolved "https://registry.yarnpkg.com/secure-json-parse/-/secure-json-parse-2.6.0.tgz#95d89f84adf32d76ff7800e68a673b129fe918b0" + integrity sha512-B9osKohb6L+EZ6Kve3wHKfsAClzOC/iISA2vSuCe5Jx5NAKiwitfxx8ZKYapHXr0sYRj7UZInT7pLb3rp2Yx6A== seedrandom@^3.0.5: version "3.0.5" @@ -26627,11 +26627,16 @@ tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== -tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.2.0, tslib@^2.3.1, tslib@^2.4.0, tslib@~2.4.0: +tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.2.0, tslib@^2.3.1, tslib@~2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== +tslib@^2.4.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e" + integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA== + tslib@~2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a" @@ -26802,13 +26807,20 @@ unc-path-regex@^0.1.2: resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" integrity sha1-5z3T17DXxe2G+6xrCufYxqadUPo= -undici@^5.1.1, undici@^5.11.0: +undici@^5.11.0: version "5.11.0" resolved "https://registry.yarnpkg.com/undici/-/undici-5.11.0.tgz#1db25f285821828fc09d3804b9e2e934ae86fc13" integrity sha512-oWjWJHzFet0Ow4YZBkyiJwiK5vWqEYoH7BINzJAJOLedZ++JpAlCbUktW2GQ2DS2FpKmxD/JMtWUUWl1BtghGw== dependencies: busboy "^1.6.0" +undici@^5.5.1: + version "5.14.0" + resolved "https://registry.yarnpkg.com/undici/-/undici-5.14.0.tgz#1169d0cdee06a4ffdd30810f6228d57998884d00" + integrity sha512-yJlHYw6yXPPsuOH0x2Ib1Km61vu4hLiRRQoafs+WUgX1vO64vgnxiCEN9dpIrhZyHFsai3F0AEj4P9zy19enEQ== + dependencies: + busboy "^1.6.0" + unfetch@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/unfetch/-/unfetch-4.2.0.tgz#7e21b0ef7d363d8d9af0fb929a5555f6ef97a3be" From cb599840e3cc3eeafa14354d65b99ccb282e1e7d Mon Sep 17 00:00:00 2001 From: ofiriro3 Date: Tue, 24 Jan 2023 14:50:54 +0200 Subject: [PATCH 24/26] [Cloud Posture] - Deprecate csp rule remove migration object (#148530) --- ...grations_state_action_machine.test.ts.snap | 30 +++++++++++++ .../src/core/unused_types.ts | 2 + .../src/initial_state.test.ts | 5 +++ .../migrations/check_registered_types.test.ts | 1 - .../common/constants.ts | 1 - .../common/schemas/csp_finding.ts | 4 +- .../common/schemas/csp_rule.ts | 42 ------------------- .../common/schemas/csp_rule_template.ts | 6 +-- ...adata.ts => csp_rule_template_metadata.ts} | 4 +- .../common/schemas/csp_rules_configuration.ts | 16 ------- .../common/schemas/index.ts | 4 +- .../cloud_security_posture/common/types.ts | 6 +-- .../pages/rules/rules_container.test.tsx | 8 ++-- .../public/pages/rules/rules_container.tsx | 4 +- .../public/pages/rules/rules_table.tsx | 2 +- .../public/pages/rules/test_subjects.ts | 2 +- .../public/pages/rules/use_csp_rules.ts | 4 +- .../routes/benchmarks/benchmarks.test.ts | 2 +- .../server/saved_objects/mappings.ts | 33 --------------- .../saved_objects/migrations/csp_rule.ts | 42 ------------------- .../migrations/csp_rule_template.ts | 8 ++-- .../server/saved_objects/migrations/index.ts | 1 - .../server/saved_objects/saved_objects.ts | 36 ++-------------- .../translations/translations/fr-FR.json | 1 - .../translations/translations/ja-JP.json | 1 - .../translations/translations/zh-CN.json | 1 - 26 files changed, 67 insertions(+), 199 deletions(-) delete mode 100644 x-pack/plugins/cloud_security_posture/common/schemas/csp_rule.ts rename x-pack/plugins/cloud_security_posture/common/schemas/{csp_rule_metadata.ts => csp_rule_template_metadata.ts} (85%) delete mode 100644 x-pack/plugins/cloud_security_posture/common/schemas/csp_rules_configuration.ts delete mode 100644 x-pack/plugins/cloud_security_posture/server/saved_objects/migrations/csp_rule.ts diff --git a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/__snapshots__/migrations_state_action_machine.test.ts.snap b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/__snapshots__/migrations_state_action_machine.test.ts.snap index 4e19c9bf6269..b0c7fd0f3728 100644 --- a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/__snapshots__/migrations_state_action_machine.test.ts.snap +++ b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/__snapshots__/migrations_state_action_machine.test.ts.snap @@ -46,6 +46,11 @@ Object { "type": "cases-sub-case", }, }, + Object { + "term": Object { + "type": "csp_rule", + }, + }, Object { "term": Object { "type": "file-upload-telemetry", @@ -227,6 +232,11 @@ Object { "type": "cases-sub-case", }, }, + Object { + "term": Object { + "type": "csp_rule", + }, + }, Object { "term": Object { "type": "file-upload-telemetry", @@ -412,6 +422,11 @@ Object { "type": "cases-sub-case", }, }, + Object { + "term": Object { + "type": "csp_rule", + }, + }, Object { "term": Object { "type": "file-upload-telemetry", @@ -601,6 +616,11 @@ Object { "type": "cases-sub-case", }, }, + Object { + "term": Object { + "type": "csp_rule", + }, + }, Object { "term": Object { "type": "file-upload-telemetry", @@ -832,6 +852,11 @@ Object { "type": "cases-sub-case", }, }, + Object { + "term": Object { + "type": "csp_rule", + }, + }, Object { "term": Object { "type": "file-upload-telemetry", @@ -1024,6 +1049,11 @@ Object { "type": "cases-sub-case", }, }, + Object { + "term": Object { + "type": "csp_rule", + }, + }, Object { "term": Object { "type": "file-upload-telemetry", diff --git a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/unused_types.ts b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/unused_types.ts index 7dbcf2c270ba..60ace4e28de0 100644 --- a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/unused_types.ts +++ b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/unused_types.ts @@ -39,6 +39,8 @@ export const REMOVED_TYPES: string[] = [ 'ui-counter', // Deprecated, no longer used since 7.13 https://github.com/elastic/kibana/pull/94923/files 'application_usage_transactional', + // Deprecated, no longer used since 8.7 https://github.com/elastic/kibana/pull/148530 + 'csp_rule', ].sort(); // When migrating from the outdated index we use a read query which excludes diff --git a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/initial_state.test.ts b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/initial_state.test.ts index 35d22e69f724..ee99e599a998 100644 --- a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/initial_state.test.ts +++ b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/initial_state.test.ts @@ -83,6 +83,11 @@ describe('createInitialState', () => { "type": "cases-sub-case", }, }, + Object { + "term": Object { + "type": "csp_rule", + }, + }, Object { "term": Object { "type": "file-upload-telemetry", diff --git a/src/core/server/integration_tests/saved_objects/migrations/check_registered_types.test.ts b/src/core/server/integration_tests/saved_objects/migrations/check_registered_types.test.ts index 569e8b81afd2..5f148325d6f5 100644 --- a/src/core/server/integration_tests/saved_objects/migrations/check_registered_types.test.ts +++ b/src/core/server/integration_tests/saved_objects/migrations/check_registered_types.test.ts @@ -80,7 +80,6 @@ describe('checking migration metadata changes on all registered SO types', () => "connector_token": "fa5301aa5a2914795d3b1b82d0a49939444009da", "core-usage-stats": "f40a213da2c597b0de94e364a4326a5a1baa4ca9", "csp-rule-template": "d6104585d0b032355c64a7dbf2a834163351cb1c", - "csp_rule": "d2bb53ea5d2bdfba1a835ad8956dfcd2b2c32e19", "dashboard": "7e37790f802b39c852f905c010e13674e893105a", "endpoint:user-artifact": "f94c250a52b30d0a2d32635f8b4c5bdabd1e25c0", "endpoint:user-artifact-manifest": "8c14d49a385d5d1307d956aa743ec78de0b2be88", diff --git a/x-pack/plugins/cloud_security_posture/common/constants.ts b/x-pack/plugins/cloud_security_posture/common/constants.ts index 794ec8b91229..7cc587df5d49 100644 --- a/x-pack/plugins/cloud_security_posture/common/constants.ts +++ b/x-pack/plugins/cloud_security_posture/common/constants.ts @@ -41,7 +41,6 @@ export const INTERNAL_FEATURE_FLAGS = { showFindingsGroupBy: true, } as const; -export const CSP_RULE_SAVED_OBJECT_TYPE = 'csp_rule'; export const CSP_RULE_TEMPLATE_SAVED_OBJECT_TYPE = 'csp-rule-template'; export const CLOUDBEAT_VANILLA = 'cloudbeat/cis_k8s'; // Integration input diff --git a/x-pack/plugins/cloud_security_posture/common/schemas/csp_finding.ts b/x-pack/plugins/cloud_security_posture/common/schemas/csp_finding.ts index af99c609832d..27690c714c0c 100644 --- a/x-pack/plugins/cloud_security_posture/common/schemas/csp_finding.ts +++ b/x-pack/plugins/cloud_security_posture/common/schemas/csp_finding.ts @@ -7,7 +7,7 @@ // TODO: this needs to be defined in a versioned schema import type { EcsEvent } from '@kbn/ecs'; -import type { CspRuleMetadata } from './csp_rule_metadata'; +import type { CspRuleTemplateMetadata } from './csp_rule_template_metadata'; export interface CspFinding { '@timestamp': string; @@ -19,7 +19,7 @@ export interface CspFinding { }; result: CspFindingResult; resource: CspFindingResource; - rule: CspRuleMetadata; + rule: CspRuleTemplateMetadata; host: CspFindingHost; event: EcsEvent; agent: CspFindingAgent; diff --git a/x-pack/plugins/cloud_security_posture/common/schemas/csp_rule.ts b/x-pack/plugins/cloud_security_posture/common/schemas/csp_rule.ts deleted file mode 100644 index 13e237ef5637..000000000000 --- a/x-pack/plugins/cloud_security_posture/common/schemas/csp_rule.ts +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ -import { schema as rt, TypeOf } from '@kbn/config-schema'; -import { cspRuleMetadataSchema } from './csp_rule_metadata'; - -export const cspRuleSchemaV830 = rt.object({ - audit: rt.string(), - benchmark: rt.object({ name: rt.string(), version: rt.string() }), - default_value: rt.nullable(rt.string()), - description: rt.string(), - enabled: rt.boolean(), - id: rt.string(), - impact: rt.nullable(rt.string()), - muted: rt.boolean(), - name: rt.string(), - package_policy_id: rt.string(), - policy_id: rt.string(), - profile_applicability: rt.string(), - rationale: rt.string(), - references: rt.nullable(rt.string()), - rego_rule_id: rt.string(), - remediation: rt.string(), - section: rt.string(), - tags: rt.arrayOf(rt.string()), - version: rt.string(), -}); - -export const cspRuleSchemaV840 = rt.object({ - enabled: rt.boolean(), - metadata: cspRuleMetadataSchema, - muted: rt.boolean(), - package_policy_id: rt.string(), - policy_id: rt.string(), -}); - -export type CspRuleV830 = TypeOf; -export type CspRuleV840 = TypeOf; -export type CspRule = CspRuleV840; diff --git a/x-pack/plugins/cloud_security_posture/common/schemas/csp_rule_template.ts b/x-pack/plugins/cloud_security_posture/common/schemas/csp_rule_template.ts index c1c92f7bd690..d2ccff064eb5 100644 --- a/x-pack/plugins/cloud_security_posture/common/schemas/csp_rule_template.ts +++ b/x-pack/plugins/cloud_security_posture/common/schemas/csp_rule_template.ts @@ -5,7 +5,7 @@ * 2.0. */ import { schema as rt, TypeOf } from '@kbn/config-schema'; -import { cspRuleMetadataSchema } from './csp_rule_metadata'; +import { cspRuleTemplateMetadataSchema } from './csp_rule_template_metadata'; export const cspRuleTemplateSchemaV830 = rt.object({ audit: rt.string(), @@ -29,12 +29,12 @@ export const cspRuleTemplateSchemaV830 = rt.object({ export const cspRuleTemplateSchemaV840 = rt.object({ enabled: rt.boolean(), - metadata: cspRuleMetadataSchema, + metadata: cspRuleTemplateMetadataSchema, muted: rt.boolean(), }); export const cspRuleTemplateSchemaV870 = rt.object({ - metadata: cspRuleMetadataSchema, + metadata: cspRuleTemplateMetadataSchema, }); export type CspRuleTemplateV830 = TypeOf; diff --git a/x-pack/plugins/cloud_security_posture/common/schemas/csp_rule_metadata.ts b/x-pack/plugins/cloud_security_posture/common/schemas/csp_rule_template_metadata.ts similarity index 85% rename from x-pack/plugins/cloud_security_posture/common/schemas/csp_rule_metadata.ts rename to x-pack/plugins/cloud_security_posture/common/schemas/csp_rule_template_metadata.ts index 40d84e952433..aa6c8347b821 100644 --- a/x-pack/plugins/cloud_security_posture/common/schemas/csp_rule_metadata.ts +++ b/x-pack/plugins/cloud_security_posture/common/schemas/csp_rule_template_metadata.ts @@ -6,7 +6,7 @@ */ import { schema as rt, TypeOf } from '@kbn/config-schema'; -export const cspRuleMetadataSchema = rt.object({ +export const cspRuleTemplateMetadataSchema = rt.object({ audit: rt.string(), benchmark: rt.object({ name: rt.string(), @@ -29,4 +29,4 @@ export const cspRuleMetadataSchema = rt.object({ version: rt.string(), }); -export type CspRuleMetadata = TypeOf; +export type CspRuleTemplateMetadata = TypeOf; diff --git a/x-pack/plugins/cloud_security_posture/common/schemas/csp_rules_configuration.ts b/x-pack/plugins/cloud_security_posture/common/schemas/csp_rules_configuration.ts deleted file mode 100644 index 13726e1f34ea..000000000000 --- a/x-pack/plugins/cloud_security_posture/common/schemas/csp_rules_configuration.ts +++ /dev/null @@ -1,16 +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 { schema as rt, TypeOf } from '@kbn/config-schema'; - -// cspRulesConfigSchema has to match the 'RuntimeCfg' struct in https://github.com/elastic/cloudbeat/blob/main/config/config.go#L45-L51 -export const cspRulesConfigSchema = rt.object({ - runtime_cfg: rt.object({ - activated_rules: rt.recordOf(rt.string(), rt.arrayOf(rt.string())), - }), -}); - -export type CspRulesConfiguration = TypeOf; diff --git a/x-pack/plugins/cloud_security_posture/common/schemas/index.ts b/x-pack/plugins/cloud_security_posture/common/schemas/index.ts index 5b681a5450c2..9b6034b4489f 100644 --- a/x-pack/plugins/cloud_security_posture/common/schemas/index.ts +++ b/x-pack/plugins/cloud_security_posture/common/schemas/index.ts @@ -5,7 +5,5 @@ * 2.0. */ -export * from './csp_rule'; -export * from './csp_rule_metadata'; +export * from './csp_rule_template_metadata'; export * from './csp_rule_template'; -export * from './csp_rules_configuration'; diff --git a/x-pack/plugins/cloud_security_posture/common/types.ts b/x-pack/plugins/cloud_security_posture/common/types.ts index 797cb5ddc86c..a922d363d9db 100644 --- a/x-pack/plugins/cloud_security_posture/common/types.ts +++ b/x-pack/plugins/cloud_security_posture/common/types.ts @@ -7,7 +7,7 @@ import type { PackagePolicy, AgentPolicy } from '@kbn/fleet-plugin/common'; import { SUPPORTED_CLOUDBEAT_INPUTS, SUPPORTED_POLICY_TEMPLATES } from './constants'; -import type { CspRuleMetadata } from './schemas/csp_rule_metadata'; +import type { CspRuleTemplateMetadata } from './schemas/csp_rule_template_metadata'; export type Evaluation = 'passed' | 'failed' | 'NA'; /** number between 1-100 */ @@ -100,8 +100,8 @@ export interface Benchmark { rules_count: number; } -export type BenchmarkId = CspRuleMetadata['benchmark']['id']; -export type BenchmarkName = CspRuleMetadata['benchmark']['name']; +export type BenchmarkId = CspRuleTemplateMetadata['benchmark']['id']; +export type BenchmarkName = CspRuleTemplateMetadata['benchmark']['name']; // Fleet Integration types export type PostureInput = typeof SUPPORTED_CLOUDBEAT_INPUTS[number]; diff --git a/x-pack/plugins/cloud_security_posture/public/pages/rules/rules_container.test.tsx b/x-pack/plugins/cloud_security_posture/public/pages/rules/rules_container.test.tsx index 66c6a820b99e..3311fd8b81fb 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/rules/rules_container.test.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/rules/rules_container.test.tsx @@ -9,7 +9,7 @@ import React from 'react'; import { RulesContainer } from './rules_container'; import { render, screen } from '@testing-library/react'; import { QueryClient } from '@tanstack/react-query'; -import { useFindCspRules, type RuleSavedObject } from './use_csp_rules'; +import { useFindCspRuleTemplates, type RuleSavedObject } from './use_csp_rules'; import * as TEST_SUBJECTS from './test_subjects'; import { Chance } from 'chance'; import { TestProvider } from '../../test/test_provider'; @@ -19,8 +19,8 @@ import { coreMock } from '@kbn/core/public/mocks'; const chance = new Chance(); jest.mock('./use_csp_rules', () => ({ - useFindCspRules: jest.fn(), - useBulkUpdateCspRules: jest.fn(), + useFindCspRuleTemplates: jest.fn(), + useBulkUpdateCspRuleTemplates: jest.fn(), })); jest.mock('react-router-dom', () => ({ @@ -103,7 +103,7 @@ describe('', () => { const Wrapper = getWrapper(); const rule1 = getRuleMock({ enabled: true }); - (useFindCspRules as jest.Mock).mockReturnValue({ + (useFindCspRuleTemplates as jest.Mock).mockReturnValue({ status: 'success', data: { total: 1, diff --git a/x-pack/plugins/cloud_security_posture/public/pages/rules/rules_container.tsx b/x-pack/plugins/cloud_security_posture/public/pages/rules/rules_container.tsx index 1f0d4ae84be9..6351071bc496 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/rules/rules_container.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/rules/rules_container.tsx @@ -11,7 +11,7 @@ import { extractErrorMessage, isNonNullable } from '../../../common/utils/helper import { RulesTable } from './rules_table'; import { RulesTableHeader } from './rules_table_header'; import { - useFindCspRules, + useFindCspRuleTemplates, type RuleSavedObject, type RulesQuery, type RulesQueryResult, @@ -74,7 +74,7 @@ export const RulesContainer = () => { perPage: pageSize || 10, }); - const { data, status, error } = useFindCspRules( + const { data, status, error } = useFindCspRuleTemplates( { filter: rulesQuery.filter, search: rulesQuery.search, diff --git a/x-pack/plugins/cloud_security_posture/public/pages/rules/rules_table.tsx b/x-pack/plugins/cloud_security_posture/public/pages/rules/rules_table.tsx index 9dca77a4d017..968cece8b40e 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/rules/rules_table.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/rules/rules_table.tsx @@ -54,7 +54,7 @@ export const RulesTable = ({ }; const rowProps = (row: RuleSavedObject) => ({ - ['data-test-subj']: TEST_SUBJECTS.getCspRulesTableRowItemTestId(row.id), + ['data-test-subj']: TEST_SUBJECTS.getCspRuleTemplatesTableRowItemTestId(row.id), style: { background: row.id === selectedRuleId ? euiTheme.colors.highlight : undefined }, onClick: (e: MouseEvent) => { const tag = (e.target as HTMLDivElement).tagName; diff --git a/x-pack/plugins/cloud_security_posture/public/pages/rules/test_subjects.ts b/x-pack/plugins/cloud_security_posture/public/pages/rules/test_subjects.ts index a40ccff5b5e6..dbbc6877e2dc 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/rules/test_subjects.ts +++ b/x-pack/plugins/cloud_security_posture/public/pages/rules/test_subjects.ts @@ -13,5 +13,5 @@ export const CSP_RULES_TABLE = 'csp_rules_table'; export const CSP_RULES_TABLE_ROW_ITEM_NAME = 'csp_rules_table_row_item_name'; export const CSP_RULES_FLYOUT_CONTAINER = 'csp_rules_flyout_container'; -export const getCspRulesTableRowItemTestId = (id: string) => +export const getCspRuleTemplatesTableRowItemTestId = (id: string) => `${CSP_RULES_TABLE_ROW_ITEM_NAME}_${id}`; diff --git a/x-pack/plugins/cloud_security_posture/public/pages/rules/use_csp_rules.ts b/x-pack/plugins/cloud_security_posture/public/pages/rules/use_csp_rules.ts index 3e9f6594a7f4..818dbeba76c7 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/rules/use_csp_rules.ts +++ b/x-pack/plugins/cloud_security_posture/public/pages/rules/use_csp_rules.ts @@ -24,9 +24,9 @@ export type RuleSavedObject = Omit< export type RulesQuery = Required< Pick >; -export type RulesQueryResult = ReturnType; +export type RulesQueryResult = ReturnType; -export const useFindCspRules = ( +export const useFindCspRuleTemplates = ( { search, page, perPage, filter }: RulesQuery, packagePolicyId: string ) => { diff --git a/x-pack/plugins/cloud_security_posture/server/routes/benchmarks/benchmarks.test.ts b/x-pack/plugins/cloud_security_posture/server/routes/benchmarks/benchmarks.test.ts index 656d34462464..d8b432bb0391 100644 --- a/x-pack/plugins/cloud_security_posture/server/routes/benchmarks/benchmarks.test.ts +++ b/x-pack/plugins/cloud_security_posture/server/routes/benchmarks/benchmarks.test.ts @@ -258,7 +258,7 @@ describe('benchmarks API', () => { }); }); - describe('test addPackagePolicyCspRules', () => { + describe('test addPackagePolicyCspRuleTemplates', () => { it('should retrieve the rules count by the filtered benchmark type', async () => { const benchmark = 'cis_k8s'; mockSoClient.find.mockResolvedValueOnce({ diff --git a/x-pack/plugins/cloud_security_posture/server/saved_objects/mappings.ts b/x-pack/plugins/cloud_security_posture/server/saved_objects/mappings.ts index f0b21b1cb980..445e839d4162 100644 --- a/x-pack/plugins/cloud_security_posture/server/saved_objects/mappings.ts +++ b/x-pack/plugins/cloud_security_posture/server/saved_objects/mappings.ts @@ -7,39 +7,6 @@ import { SavedObjectsTypeMappingDefinition } from '@kbn/core/server'; -export const cspRuleSavedObjectMapping: SavedObjectsTypeMappingDefinition = { - dynamic: false, - properties: { - metadata: { - type: 'object', - properties: { - name: { - type: 'keyword', - fields: { - text: { - type: 'text', - }, - }, - }, - }, - }, - package_policy_id: { - type: 'keyword', - }, - policy_id: { - type: 'keyword', - }, - enabled: { - type: 'boolean', - fields: { - keyword: { - type: 'keyword', - }, - }, - }, - }, -}; - export const cspRuleTemplateSavedObjectMapping: SavedObjectsTypeMappingDefinition = { dynamic: false, properties: { diff --git a/x-pack/plugins/cloud_security_posture/server/saved_objects/migrations/csp_rule.ts b/x-pack/plugins/cloud_security_posture/server/saved_objects/migrations/csp_rule.ts deleted file mode 100644 index 1ebb4199231e..000000000000 --- a/x-pack/plugins/cloud_security_posture/server/saved_objects/migrations/csp_rule.ts +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { - SavedObjectMigrationMap, - SavedObjectUnsanitizedDoc, - SavedObjectMigrationContext, -} from '@kbn/core/server'; -import { CspRuleV830, CspRuleV840 } from '../../../common/schemas/csp_rule'; - -function migrateCspRuleMetadata( - doc: SavedObjectUnsanitizedDoc, - context: SavedObjectMigrationContext -): SavedObjectUnsanitizedDoc { - // eslint-disable-next-line @typescript-eslint/naming-convention - const { enabled, muted, package_policy_id, policy_id, benchmark, ...metadata } = doc.attributes; - - return { - ...doc, - attributes: { - enabled, - muted, - package_policy_id, - policy_id, - metadata: { - ...metadata, - benchmark: { ...benchmark, id: 'cis_k8s', rule_number: '' }, - impact: metadata.impact || undefined, - default_value: metadata.default_value || undefined, - references: metadata.references || undefined, - }, - }, - }; -} - -export const cspRuleMigrations: SavedObjectMigrationMap = { - '8.4.0': migrateCspRuleMetadata, -}; diff --git a/x-pack/plugins/cloud_security_posture/server/saved_objects/migrations/csp_rule_template.ts b/x-pack/plugins/cloud_security_posture/server/saved_objects/migrations/csp_rule_template.ts index bd46457c7628..10f693e9ea7c 100644 --- a/x-pack/plugins/cloud_security_posture/server/saved_objects/migrations/csp_rule_template.ts +++ b/x-pack/plugins/cloud_security_posture/server/saved_objects/migrations/csp_rule_template.ts @@ -16,7 +16,7 @@ import { CspRuleTemplateV870, } from '../../../common/schemas/csp_rule_template'; -function migrateCspRuleMetadata( +function migrateCspRuleTemplatesToV840( doc: SavedObjectUnsanitizedDoc, context: SavedObjectMigrationContext ): SavedObjectUnsanitizedDoc { @@ -37,7 +37,7 @@ function migrateCspRuleMetadata( }; } -function migrateCspRuleTemplateDeprecateState( +function migrateCspRuleTemplatesToV870( doc: SavedObjectUnsanitizedDoc, context: SavedObjectMigrationContext ): SavedObjectUnsanitizedDoc { @@ -50,6 +50,6 @@ function migrateCspRuleTemplateDeprecateState( } export const cspRuleTemplateMigrations: SavedObjectMigrationMap = { - '8.4.0': migrateCspRuleMetadata, - '8.7.0': migrateCspRuleTemplateDeprecateState, + '8.4.0': migrateCspRuleTemplatesToV840, + '8.7.0': migrateCspRuleTemplatesToV870, }; diff --git a/x-pack/plugins/cloud_security_posture/server/saved_objects/migrations/index.ts b/x-pack/plugins/cloud_security_posture/server/saved_objects/migrations/index.ts index 01120e57d4ef..991b7469a912 100644 --- a/x-pack/plugins/cloud_security_posture/server/saved_objects/migrations/index.ts +++ b/x-pack/plugins/cloud_security_posture/server/saved_objects/migrations/index.ts @@ -5,5 +5,4 @@ * 2.0. */ -export * from './csp_rule'; export * from './csp_rule_template'; diff --git a/x-pack/plugins/cloud_security_posture/server/saved_objects/saved_objects.ts b/x-pack/plugins/cloud_security_posture/server/saved_objects/saved_objects.ts index 29c25e4789ae..92b709db1825 100644 --- a/x-pack/plugins/cloud_security_posture/server/saved_objects/saved_objects.ts +++ b/x-pack/plugins/cloud_security_posture/server/saved_objects/saved_objects.ts @@ -5,47 +5,19 @@ * 2.0. */ -import { i18n } from '@kbn/i18n'; import { SavedObjectsServiceSetup } from '@kbn/core/server'; -import { cspRuleSavedObjectMapping, cspRuleTemplateSavedObjectMapping } from './mappings'; -import { cspRuleMigrations, cspRuleTemplateMigrations } from './migrations'; +import { cspRuleTemplateSavedObjectMapping } from './mappings'; +import { cspRuleTemplateMigrations } from './migrations'; import { - cspRuleSchemaV830, - cspRuleSchemaV840, cspRuleTemplateSchemaV830, cspRuleTemplateSchemaV840, - CspRuleTemplate, - CspRule, cspRuleTemplateSchemaV870, + CspRuleTemplate, } from '../../common/schemas'; -import { - CSP_RULE_SAVED_OBJECT_TYPE, - CSP_RULE_TEMPLATE_SAVED_OBJECT_TYPE, -} from '../../common/constants'; +import { CSP_RULE_TEMPLATE_SAVED_OBJECT_TYPE } from '../../common/constants'; export function setupSavedObjects(savedObjects: SavedObjectsServiceSetup) { - savedObjects.registerType({ - name: CSP_RULE_SAVED_OBJECT_TYPE, - hidden: false, - namespaceType: 'agnostic', - management: { - importableAndExportable: true, - visibleInManagement: true, - getTitle: (savedObject) => - `${i18n.translate('xpack.csp.cspSettings.rules', { - defaultMessage: `CSP Security Rules - `, - })} ${savedObject.attributes.metadata.benchmark.name} ${ - savedObject.attributes.metadata.benchmark.version - } ${savedObject.attributes.metadata.name}`, - }, - schemas: { - '8.3.0': cspRuleSchemaV830, - '8.4.0': cspRuleSchemaV840, - }, - migrations: cspRuleMigrations, - mappings: cspRuleSavedObjectMapping, - }); savedObjects.registerType({ name: CSP_RULE_TEMPLATE_SAVED_OBJECT_TYPE, hidden: false, diff --git a/x-pack/plugins/translations/translations/fr-FR.json b/x-pack/plugins/translations/translations/fr-FR.json index a178a7b0014f..fd10f3281b25 100644 --- a/x-pack/plugins/translations/translations/fr-FR.json +++ b/x-pack/plugins/translations/translations/fr-FR.json @@ -10172,7 +10172,6 @@ "xpack.csp.createPackagePolicy.customAssetsTab.rulesViewLabel": "Afficher les règles CSP ", "xpack.csp.cspEvaluationBadge.failLabel": "Échec", "xpack.csp.cspEvaluationBadge.passLabel": "Réussite", - "xpack.csp.cspSettings.rules": "Règles de sécurité du CSP - ", "xpack.csp.dashboard.benchmarkSection.clusterTitleTooltip.clusterPrefixTitle": "Afficher tous les résultats pour ", "xpack.csp.dashboard.benchmarkSection.defaultClusterTitle": "ID cluster", "xpack.csp.dashboard.benchmarkSection.manageRulesButton": "Gérer les règles", diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index 3cfdf2f6d909..f7fe9e893d3d 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -10161,7 +10161,6 @@ "xpack.csp.createPackagePolicy.customAssetsTab.rulesViewLabel": "CSPルールを表示 ", "xpack.csp.cspEvaluationBadge.failLabel": "失敗", "xpack.csp.cspEvaluationBadge.passLabel": "合格", - "xpack.csp.cspSettings.rules": "CSPセキュリティルール - ", "xpack.csp.dashboard.benchmarkSection.clusterTitleTooltip.clusterPrefixTitle": "すべての調査結果を表示 ", "xpack.csp.dashboard.benchmarkSection.defaultClusterTitle": "クラスターID", "xpack.csp.dashboard.benchmarkSection.manageRulesButton": "ルールの管理", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index 6f7c68de2494..64b94583cc67 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -10176,7 +10176,6 @@ "xpack.csp.createPackagePolicy.customAssetsTab.rulesViewLabel": "查看 CSP 规则 ", "xpack.csp.cspEvaluationBadge.failLabel": "失败", "xpack.csp.cspEvaluationBadge.passLabel": "通过", - "xpack.csp.cspSettings.rules": "CSP 安全规则 - ", "xpack.csp.dashboard.benchmarkSection.clusterTitleTooltip.clusterPrefixTitle": "显示以下所有结果 ", "xpack.csp.dashboard.benchmarkSection.defaultClusterTitle": "集群 ID", "xpack.csp.dashboard.benchmarkSection.manageRulesButton": "管理规则", From 09c11131271bec1b794d5a472294e6e125116f4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20Fern=C3=A1ndez=20Haro?= Date: Tue, 24 Jan 2023 15:03:37 +0100 Subject: [PATCH 25/26] [FTRs] Execution Context: fix no data flakiness (#149406) Resolves https://github.com/elastic/kibana/issues/112102 --- .../tests/browser.ts | 520 ++++++++++-------- 1 file changed, 283 insertions(+), 237 deletions(-) diff --git a/x-pack/test/functional_execution_context/tests/browser.ts b/x-pack/test/functional_execution_context/tests/browser.ts index 1265fa205f7b..085fae8ed0d6 100644 --- a/x-pack/test/functional_execution_context/tests/browser.ts +++ b/x-pack/test/functional_execution_context/tests/browser.ts @@ -10,7 +10,7 @@ import type { FtrProviderContext } from '../ftr_provider_context'; import { assertLogContains, forceSyncLogFile, isExecutionContextLog } from '../test_utils'; export default function ({ getService, getPageObjects }: FtrProviderContext) { - const PageObjects = getPageObjects(['common', 'dashboard', 'header', 'home']); + const PageObjects = getPageObjects(['common', 'dashboard', 'header', 'home', 'timePicker']); const retry = getService('retry'); describe('Browser apps', () => { @@ -33,6 +33,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { describe('discover app', () => { before(async () => { await PageObjects.common.navigateToApp('discover'); + await PageObjects.timePicker.setCommonlyUsedTime('Last_7 days'); await PageObjects.header.waitUntilLoadingHasFinished(); await forceSyncLogFile(); }); @@ -48,56 +49,62 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); } - it('propagates context for Discover', async () => { - await assertLogContains({ - description: 'execution context propagates to Elasticsearch via "x-opaque-id" header', - predicate: (record) => - Boolean(record.http?.request?.id?.includes('kibana:application:discover')), - retry, + describe('propagates context for Discover', () => { + it('propagates to Elasticsearch via "x-opaque-id" header', async () => { + await assertLogContains({ + description: 'execution context propagates to Elasticsearch via "x-opaque-id" header', + predicate: (record) => + Boolean(record.http?.request?.id?.includes('kibana:application:discover')), + retry, + }); }); - await assertLogContains({ - description: 'execution context propagates to Kibana logs (fetch documents)', - predicate: checkExecutionContextEntry({ - type: 'application', - name: 'discover', - url: '/app/discover', - child: { + it('propagates to Kibana logs (fetch documents)', async () => { + await assertLogContains({ + description: 'execution context propagates to Kibana logs (fetch documents)', + predicate: checkExecutionContextEntry({ + type: 'application', name: 'discover', url: '/app/discover', - type: 'application', - page: 'app', - id: 'new', - description: 'fetch documents', - }, - }), - retry, + child: { + name: 'discover', + url: '/app/discover', + type: 'application', + page: 'app', + id: 'new', + description: 'fetch documents', + }, + }), + retry, + }); }); - await assertLogContains({ - description: - 'execution context propagates to Kibana logs (fetch chart data and total hits)', - predicate: checkExecutionContextEntry({ - type: 'application', - name: 'discover', - url: '/app/discover', - child: { + it('propagates to Kibana logs (fetch chart data and total hits)', async () => { + await assertLogContains({ + description: + 'execution context propagates to Kibana logs (fetch chart data and total hits)', + predicate: checkExecutionContextEntry({ + type: 'application', name: 'discover', url: '/app/discover', - type: 'application', - page: 'app', - id: 'new', - description: 'fetch chart data and total hits', child: { - type: 'lens', - name: 'lnsXY', - id: 'unifiedHistogramLensComponent', - description: 'Edit visualization', - url: '/app/lens#/edit_by_value', + name: 'discover', + url: '/app/discover', + type: 'application', + page: 'app', + id: 'new', + description: 'fetch chart data and total hits', + child: { + type: 'lens', + name: 'lnsXY', + id: 'unifiedHistogramLensComponent', + description: 'Edit visualization', + url: '/app/lens#/edit_by_value', + }, }, - }, - }), - retry, + }), + retry, + }); }); }); }); @@ -106,6 +113,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { before(async () => { await PageObjects.common.navigateToApp('dashboard'); await PageObjects.dashboard.loadSavedDashboard('[Flights] Global Flight Dashboard'); + await PageObjects.timePicker.setCommonlyUsedTime('Last_7 days'); await PageObjects.dashboard.waitForRenderComplete(); await PageObjects.header.waitUntilLoadingHasFinished(); await forceSyncLogFile(); @@ -156,15 +164,175 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { } describe('propagates context for Lens visualizations', () => { - it('lnsXY', async () => { + describe('lnsXY', () => { + it('propagates to Elasticsearch via "x-opaque-id" header', async () => { + await assertLogContains({ + description: 'execution context propagates to Elasticsearch via "x-opaque-id" header', + predicate: checkHttpRequestId( + 'dashboard:dashboards:7adfa750-4c81-11e8-b3d7-01146121b73d;lens:lnsXY:086ac2e9-dd16-4b45-92b8-1e43ff7e3f65' + ), + retry, + }); + }); + + it('propagates to Kibana logs', async () => { + await assertLogContains({ + description: 'execution context propagates to Kibana logs', + predicate: checkExecutionContextEntry({ + type: 'application', + name: 'dashboards', + url: '/app/dashboards', + child: { + name: 'dashboards', + url: '/app/dashboards', + type: 'dashboard', + page: 'app', + id: '7adfa750-4c81-11e8-b3d7-01146121b73d', + description: '[Flights] Global Flight Dashboard', + child: { + type: 'lens', + name: 'lnsXY', + id: '086ac2e9-dd16-4b45-92b8-1e43ff7e3f65', + description: '[Flights] Flight count', + url: '/app/lens#/edit_by_value', + }, + }, + }), + retry, + }); + }); + }); + + describe('lnsMetric', () => { + it('propagates to Elasticsearch via "x-opaque-id" header', async () => { + await assertLogContains({ + description: 'execution context propagates to Elasticsearch via "x-opaque-id" header', + predicate: checkHttpRequestId( + 'dashboard:dashboards:7adfa750-4c81-11e8-b3d7-01146121b73d;lens:lnsLegacyMetric:b766e3b8-4544-46ed-99e6-9ecc4847e2a2' + ), + retry, + }); + }); + + it('propagates to Kibana logs', async () => { + await assertLogContains({ + description: 'execution context propagates to Kibana logs', + predicate: checkExecutionContextEntry({ + name: 'dashboards', + url: '/app/dashboards', + type: 'application', + child: { + name: 'dashboards', + url: '/app/dashboards', + type: 'dashboard', + page: 'app', + id: '7adfa750-4c81-11e8-b3d7-01146121b73d', + description: '[Flights] Global Flight Dashboard', + child: { + type: 'lens', + name: 'lnsLegacyMetric', + id: 'b766e3b8-4544-46ed-99e6-9ecc4847e2a2', + description: '', + url: '/app/lens#/edit_by_value', + }, + }, + }), + retry, + }); + }); + }); + + describe('lnsDatatable', () => { + it('propagates to Elasticsearch via "x-opaque-id" header', async () => { + await assertLogContains({ + description: 'execution context propagates to Elasticsearch via "x-opaque-id" header', + predicate: checkHttpRequestId( + 'dashboard:dashboards:7adfa750-4c81-11e8-b3d7-01146121b73d;lens:lnsDatatable:fb86b32f-fb7a-45cf-9511-f366fef51bbd' + ), + retry, + }); + }); + + it('propagates to Kibana logs', async () => { + await assertLogContains({ + description: 'execution context propagates to Kibana logs', + predicate: checkExecutionContextEntry({ + name: 'dashboards', + url: '/app/dashboards', + type: 'application', + child: { + name: 'dashboards', + url: '/app/dashboards', + type: 'dashboard', + page: 'app', + id: '7adfa750-4c81-11e8-b3d7-01146121b73d', + description: '[Flights] Global Flight Dashboard', + child: { + type: 'lens', + name: 'lnsDatatable', + id: 'fb86b32f-fb7a-45cf-9511-f366fef51bbd', + description: 'Cities by delay, cancellation', + url: '/app/lens#/edit_by_value', + }, + }, + }), + retry, + }); + }); + }); + + describe('lnsPie', () => { + it('propagates to Elasticsearch via "x-opaque-id" header', async () => { + await assertLogContains({ + description: 'execution context propagates to Elasticsearch via "x-opaque-id" header', + predicate: checkHttpRequestId( + 'dashboard:dashboards:7adfa750-4c81-11e8-b3d7-01146121b73d;lens:lnsPie:5d53db36-2d5a-4adc-af7b-cec4c1a294e0' + ), + retry, + }); + }); + + it('propagates to Kibana logs', async () => { + await assertLogContains({ + description: 'execution context propagates to Kibana logs', + predicate: checkExecutionContextEntry({ + name: 'dashboards', + url: '/app/dashboards', + type: 'application', + child: { + name: 'dashboards', + url: '/app/dashboards', + type: 'dashboard', + page: 'app', + id: '7adfa750-4c81-11e8-b3d7-01146121b73d', + description: '[Flights] Global Flight Dashboard', + child: { + type: 'lens', + name: 'lnsPie', + id: '5d53db36-2d5a-4adc-af7b-cec4c1a294e0', + description: '[Flights] Delay Type', + url: '/app/lens#/edit_by_value', + }, + }, + }), + retry, + }); + }); + }); + }); + + describe('propagates context for built-in Discover', () => { + it('propagates to Elasticsearch via "x-opaque-id" header', async () => { await assertLogContains({ description: 'execution context propagates to Elasticsearch via "x-opaque-id" header', predicate: checkHttpRequestId( - 'dashboard:dashboards:7adfa750-4c81-11e8-b3d7-01146121b73d;lens:lnsXY:086ac2e9-dd16-4b45-92b8-1e43ff7e3f65' + 'dashboard:dashboards:7adfa750-4c81-11e8-b3d7-01146121b73d;search:discover:571aaf70-4c88-11e8-b3d7-01146121b73d' ), retry, }); + }); + it('propagates to Kibana logs', async () => { await assertLogContains({ description: 'execution context propagates to Kibana logs', predicate: checkExecutionContextEntry({ @@ -172,69 +340,69 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { name: 'dashboards', url: '/app/dashboards', child: { + type: 'dashboard', name: 'dashboards', url: '/app/dashboards', - type: 'dashboard', page: 'app', id: '7adfa750-4c81-11e8-b3d7-01146121b73d', description: '[Flights] Global Flight Dashboard', child: { - type: 'lens', - name: 'lnsXY', - id: '086ac2e9-dd16-4b45-92b8-1e43ff7e3f65', - description: '[Flights] Flight count', - url: '/app/lens#/edit_by_value', + type: 'search', + name: 'discover', + id: '571aaf70-4c88-11e8-b3d7-01146121b73d', + description: '[Flights] Flight Log', + url: '/app/discover#/view/571aaf70-4c88-11e8-b3d7-01146121b73d', }, }, }), retry, }); }); + }); - it('lnsMetric', async () => { + describe('propagates context for TSVB visualizations', () => { + it('propagates to Elasticsearch via "x-opaque-id" header', async () => { await assertLogContains({ description: 'execution context propagates to Elasticsearch via "x-opaque-id" header', - predicate: checkHttpRequestId( - 'dashboard:dashboards:7adfa750-4c81-11e8-b3d7-01146121b73d;lens:lnsLegacyMetric:b766e3b8-4544-46ed-99e6-9ecc4847e2a2' - ), + predicate: checkHttpRequestId('agg_based:metrics:bcb63b50-4c89-11e8-b3d7-01146121b73d'), retry, }); + }); + it('propagates to Kibana logs', async () => { await assertLogContains({ description: 'execution context propagates to Kibana logs', predicate: checkExecutionContextEntry({ name: 'dashboards', url: '/app/dashboards', type: 'application', + page: 'app', + description: '[Flights] Global Flight Dashboard', child: { - name: 'dashboards', - url: '/app/dashboards', - type: 'dashboard', - page: 'app', - id: '7adfa750-4c81-11e8-b3d7-01146121b73d', - description: '[Flights] Global Flight Dashboard', - child: { - type: 'lens', - name: 'lnsLegacyMetric', - id: 'b766e3b8-4544-46ed-99e6-9ecc4847e2a2', - description: '', - url: '/app/lens#/edit_by_value', - }, + type: 'agg_based', + name: 'metrics', + id: 'bcb63b50-4c89-11e8-b3d7-01146121b73d', + description: '[Flights] Delays & Cancellations', + url: '/app/visualize#/edit/bcb63b50-4c89-11e8-b3d7-01146121b73d', }, }), retry, }); }); + }); - it('lnsDatatable', async () => { + describe('propagates context for Vega visualizations', () => { + it('propagates to Elasticsearch via "x-opaque-id" header', async () => { await assertLogContains({ description: 'execution context propagates to Elasticsearch via "x-opaque-id" header', predicate: checkHttpRequestId( - 'dashboard:dashboards:7adfa750-4c81-11e8-b3d7-01146121b73d;lens:lnsDatatable:fb86b32f-fb7a-45cf-9511-f366fef51bbd' + 'dashboard:dashboards:7adfa750-4c81-11e8-b3d7-01146121b73d;agg_based:vega:ed78a660-53a0-11e8-acbd-0be0ad9d822b' ), retry, }); + }); + it('propagates to Kibana logs', async () => { await assertLogContains({ description: 'execution context propagates to Kibana logs', predicate: checkExecutionContextEntry({ @@ -249,26 +417,31 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { id: '7adfa750-4c81-11e8-b3d7-01146121b73d', description: '[Flights] Global Flight Dashboard', child: { - type: 'lens', - name: 'lnsDatatable', - id: 'fb86b32f-fb7a-45cf-9511-f366fef51bbd', - description: 'Cities by delay, cancellation', - url: '/app/lens#/edit_by_value', + type: 'agg_based', + name: 'vega', + id: 'ed78a660-53a0-11e8-acbd-0be0ad9d822b', + description: '[Flights] Airport Connections (Hover Over Airport)', + url: '/app/visualize#/edit/ed78a660-53a0-11e8-acbd-0be0ad9d822b', }, }, }), retry, }); }); + }); - it('lnsPie', async () => { + describe('propagates context for Tag Cloud visualization', () => { + it('propagates to Elasticsearch via "x-opaque-id" header', async () => { await assertLogContains({ description: 'execution context propagates to Elasticsearch via "x-opaque-id" header', predicate: checkHttpRequestId( - 'dashboard:dashboards:7adfa750-4c81-11e8-b3d7-01146121b73d;lens:lnsPie:5d53db36-2d5a-4adc-af7b-cec4c1a294e0' + 'dashboard:dashboards:7adfa750-4c81-11e8-b3d7-01146121b73d;agg_based:tagcloud:293b5a30-4c8f-11e8-b3d7-01146121b73d' ), retry, }); + }); + + it('propagates to Kibana logs', async () => { await assertLogContains({ description: 'execution context propagates to Kibana logs', predicate: checkExecutionContextEntry({ @@ -283,11 +456,11 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { id: '7adfa750-4c81-11e8-b3d7-01146121b73d', description: '[Flights] Global Flight Dashboard', child: { - type: 'lens', - name: 'lnsPie', - id: '5d53db36-2d5a-4adc-af7b-cec4c1a294e0', - description: '[Flights] Delay Type', - url: '/app/lens#/edit_by_value', + type: 'agg_based', + name: 'tagcloud', + id: '293b5a30-4c8f-11e8-b3d7-01146121b73d', + description: '[Flights] Destination Weather', + url: '/app/visualize#/edit/293b5a30-4c8f-11e8-b3d7-01146121b73d', }, }, }), @@ -296,169 +469,42 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); }); - it('propagates context for built-in Discover', async () => { - await assertLogContains({ - description: 'execution context propagates to Elasticsearch via "x-opaque-id" header', - predicate: checkHttpRequestId( - 'dashboard:dashboards:7adfa750-4c81-11e8-b3d7-01146121b73d;search:discover:571aaf70-4c88-11e8-b3d7-01146121b73d' - ), - retry, - }); - await assertLogContains({ - description: 'execution context propagates to Kibana logs', - predicate: checkExecutionContextEntry({ - type: 'application', - name: 'dashboards', - url: '/app/dashboards', - child: { - type: 'dashboard', - name: 'dashboards', - url: '/app/dashboards', - page: 'app', - id: '7adfa750-4c81-11e8-b3d7-01146121b73d', - description: '[Flights] Global Flight Dashboard', - child: { - type: 'search', - name: 'discover', - id: '571aaf70-4c88-11e8-b3d7-01146121b73d', - description: '[Flights] Flight Log', - url: '/app/discover#/view/571aaf70-4c88-11e8-b3d7-01146121b73d', - }, - }, - }), - retry, - }); - }); - - it('propagates context for TSVB visualizations', async () => { - await assertLogContains({ - description: 'execution context propagates to Elasticsearch via "x-opaque-id" header', - predicate: checkHttpRequestId('agg_based:metrics:bcb63b50-4c89-11e8-b3d7-01146121b73d'), - retry, - }); - - await assertLogContains({ - description: 'execution context propagates to Kibana logs', - predicate: checkExecutionContextEntry({ - name: 'dashboards', - url: '/app/dashboards', - type: 'application', - page: 'app', - description: '[Flights] Global Flight Dashboard', - child: { - type: 'agg_based', - name: 'metrics', - id: 'bcb63b50-4c89-11e8-b3d7-01146121b73d', - description: '[Flights] Delays & Cancellations', - url: '/app/visualize#/edit/bcb63b50-4c89-11e8-b3d7-01146121b73d', - }, - }), - retry, - }); - }); - - it('propagates context for Vega visualizations', async () => { - await assertLogContains({ - description: 'execution context propagates to Elasticsearch via "x-opaque-id" header', - predicate: checkHttpRequestId( - 'dashboard:dashboards:7adfa750-4c81-11e8-b3d7-01146121b73d;agg_based:vega:ed78a660-53a0-11e8-acbd-0be0ad9d822b' - ), - retry, - }); - - await assertLogContains({ - description: 'execution context propagates to Kibana logs', - predicate: checkExecutionContextEntry({ - name: 'dashboards', - url: '/app/dashboards', - type: 'application', - child: { - name: 'dashboards', - url: '/app/dashboards', - type: 'dashboard', - page: 'app', - id: '7adfa750-4c81-11e8-b3d7-01146121b73d', - description: '[Flights] Global Flight Dashboard', - child: { - type: 'agg_based', - name: 'vega', - id: 'ed78a660-53a0-11e8-acbd-0be0ad9d822b', - description: '[Flights] Airport Connections (Hover Over Airport)', - url: '/app/visualize#/edit/ed78a660-53a0-11e8-acbd-0be0ad9d822b', - }, - }, - }), - retry, - }); - }); - - it('propagates context for Tag Cloud visualization', async () => { - await assertLogContains({ - description: 'execution context propagates to Elasticsearch via "x-opaque-id" header', - predicate: checkHttpRequestId( - 'dashboard:dashboards:7adfa750-4c81-11e8-b3d7-01146121b73d;agg_based:tagcloud:293b5a30-4c8f-11e8-b3d7-01146121b73d' - ), - retry, - }); - - await assertLogContains({ - description: 'execution context propagates to Kibana logs', - predicate: checkExecutionContextEntry({ - name: 'dashboards', - url: '/app/dashboards', - type: 'application', - child: { - name: 'dashboards', - url: '/app/dashboards', - type: 'dashboard', - page: 'app', - id: '7adfa750-4c81-11e8-b3d7-01146121b73d', - description: '[Flights] Global Flight Dashboard', - child: { - type: 'agg_based', - name: 'tagcloud', - id: '293b5a30-4c8f-11e8-b3d7-01146121b73d', - description: '[Flights] Destination Weather', - url: '/app/visualize#/edit/293b5a30-4c8f-11e8-b3d7-01146121b73d', - }, - }, - }), - retry, - }); - }); - - it('propagates context for Vertical bar visualization', async () => { - await assertLogContains({ - description: 'execution context propagates to Elasticsearch via "x-opaque-id" header', - predicate: checkHttpRequestId( - 'dashboard:dashboards:7adfa750-4c81-11e8-b3d7-01146121b73d;agg_based:histogram:9886b410-4c8b-11e8-b3d7-01146121b73d' - ), - retry, + describe('propagates context for Vertical bar visualization', () => { + it('propagates to Elasticsearch via "x-opaque-id" header', async () => { + await assertLogContains({ + description: 'execution context propagates to Elasticsearch via "x-opaque-id" header', + predicate: checkHttpRequestId( + 'dashboard:dashboards:7adfa750-4c81-11e8-b3d7-01146121b73d;agg_based:histogram:9886b410-4c8b-11e8-b3d7-01146121b73d' + ), + retry, + }); }); - await assertLogContains({ - description: 'execution context propagates to Kibana logs', - predicate: checkExecutionContextEntry({ - type: 'application', - name: 'dashboards', - url: '/app/dashboards', - child: { - type: 'dashboard', + it('propagates to Kibana logs', async () => { + await assertLogContains({ + description: 'execution context propagates to Kibana logs', + predicate: checkExecutionContextEntry({ + type: 'application', name: 'dashboards', url: '/app/dashboards', - page: 'app', - id: '7adfa750-4c81-11e8-b3d7-01146121b73d', - description: '[Flights] Global Flight Dashboard', child: { - type: 'agg_based', - name: 'histogram', - id: '9886b410-4c8b-11e8-b3d7-01146121b73d', - description: '[Flights] Delay Buckets', - url: '/app/visualize#/edit/9886b410-4c8b-11e8-b3d7-01146121b73d', + type: 'dashboard', + name: 'dashboards', + url: '/app/dashboards', + page: 'app', + id: '7adfa750-4c81-11e8-b3d7-01146121b73d', + description: '[Flights] Global Flight Dashboard', + child: { + type: 'agg_based', + name: 'histogram', + id: '9886b410-4c8b-11e8-b3d7-01146121b73d', + description: '[Flights] Delay Buckets', + url: '/app/visualize#/edit/9886b410-4c8b-11e8-b3d7-01146121b73d', + }, }, - }, - }), - retry, + }), + retry, + }); }); }); }); From 1dc5748d5d7df2aa00d28d0771c23c25a79e34ad Mon Sep 17 00:00:00 2001 From: Shahzad Date: Tue, 24 Jan 2023 15:20:53 +0100 Subject: [PATCH 26/26] [Synthetics] Errors list active state (#149387) Fixes https://github.com/elastic/kibana/issues/145373 --- .../common/runtime_types/ping/ping.ts | 9 ++ .../hooks/use_monitor_errors.tsx | 16 ++- .../monitor_details_last_run.tsx | 17 ++- .../monitor_errors/errors_list.tsx | 132 ++++++++++++------ .../monitor_errors/errors_tab_content.tsx | 4 +- .../monitor_errors/monitor_errors.tsx | 4 +- 6 files changed, 124 insertions(+), 58 deletions(-) diff --git a/x-pack/plugins/synthetics/common/runtime_types/ping/ping.ts b/x-pack/plugins/synthetics/common/runtime_types/ping/ping.ts index 7fb0a799605a..b15c47070911 100644 --- a/x-pack/plugins/synthetics/common/runtime_types/ping/ping.ts +++ b/x-pack/plugins/synthetics/common/runtime_types/ping/ping.ts @@ -242,7 +242,16 @@ export const PingType = t.intersection([ }), ]); +export const PingStateType = t.type({ + timestamp: t.string, + '@timestamp': t.string, + monitor: MonitorType, + docId: t.string, + state: ErrorStateCodec, + error: PingErrorType, +}); export type Ping = t.TypeOf; +export type PingState = t.TypeOf; export const PingStatusType = t.intersection([ t.type({ diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/hooks/use_monitor_errors.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/hooks/use_monitor_errors.tsx index dd8f9b9ff7c7..dcecbb5f9df8 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/hooks/use_monitor_errors.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/hooks/use_monitor_errors.tsx @@ -5,10 +5,10 @@ * 2.0. */ -import { useEsSearch } from '@kbn/observability-plugin/public'; +import { useEsSearch, useTimeZone } from '@kbn/observability-plugin/public'; import { useParams } from 'react-router-dom'; import { useMemo } from 'react'; -import { Ping } from '../../../../../../common/runtime_types'; +import { PingState } from '../../../../../../common/runtime_types'; import { EXCLUDE_RUN_ONCE_FILTER, SUMMARY_FILTER, @@ -24,6 +24,8 @@ export function useMonitorErrors(monitorIdArg?: string) { const { dateRangeStart, dateRangeEnd } = useGetUrlParams(); + const timeZone = useTimeZone(); + const { data, loading } = useEsSearch( { index: SYNTHETICS_INDEX_PATTERN, @@ -39,6 +41,7 @@ export function useMonitorErrors(monitorIdArg?: string) { '@timestamp': { gte: dateRangeStart, lte: dateRangeEnd, + time_zone: timeZone, }, }, }, @@ -55,18 +58,18 @@ export function useMonitorErrors(monitorIdArg?: string) { ], }, }, - sort: [{ '@timestamp': 'desc' }], + sort: [{ 'state.started_at': 'desc' }], aggs: { errorStates: { terms: { field: 'state.id', - size: 1000, + size: 10000, }, aggs: { summary: { top_hits: { size: 1, - _source: ['error', 'state', 'monitor'], + _source: ['error', 'state', 'monitor', '@timestamp'], sort: [{ '@timestamp': 'desc' }], }, }, @@ -81,12 +84,13 @@ export function useMonitorErrors(monitorIdArg?: string) { return useMemo(() => { const errorStates = (data?.aggregations?.errorStates.buckets ?? []).map((loc) => { - return loc.summary.hits.hits?.[0]._source as Ping; + return loc.summary.hits.hits?.[0]._source as PingState; }); return { errorStates, loading, + data, }; }, [data, loading]); } diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_details_last_run.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_details_last_run.tsx index 311f1b49b8e7..4fe7c9a2ecef 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_details_last_run.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_details_last_run.tsx @@ -6,7 +6,7 @@ */ import React, { ReactElement } from 'react'; import moment from 'moment'; -import { EuiDescriptionList, EuiLoadingContent } from '@elastic/eui'; +import { EuiDescriptionList, EuiLoadingContent, EuiToolTip } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { useMonitorLatestPing } from './hooks/use_monitor_latest_ping'; @@ -21,7 +21,20 @@ export const MonitorDetailsLastRun: React.FC = () => { description = ; } - return ; + return ( + + <>{description} + + ), + }, + ]} + /> + ); }; const LAST_RUN_LABEL = i18n.translate('xpack.synthetics.monitorLastRun.lastRunLabel', { diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_errors/errors_list.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_errors/errors_list.tsx index b7b801b5a1b9..7533b7307d61 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_errors/errors_list.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_errors/errors_list.tsx @@ -6,34 +6,39 @@ */ import { i18n } from '@kbn/i18n'; -import React, { MouseEvent, useMemo, useState } from 'react'; -import { EuiBasicTable, EuiSpacer, EuiText } from '@elastic/eui'; +import React, { MouseEvent, useMemo } from 'react'; +import { + EuiSpacer, + EuiText, + EuiInMemoryTable, + EuiFlexGroup, + EuiFlexItem, + EuiBadge, +} from '@elastic/eui'; import { useHistory, useParams } from 'react-router-dom'; +import moment from 'moment'; import { ErrorDetailsLink } from '../../common/links/error_details_link'; import { useSelectedLocation } from '../hooks/use_selected_location'; import { useKibanaDateFormat } from '../../../../../hooks/use_kibana_date_format'; -import { Ping } from '../../../../../../common/runtime_types'; +import { Ping, PingState } from '../../../../../../common/runtime_types'; import { useErrorFailedStep } from '../hooks/use_error_failed_step'; import { formatTestDuration, formatTestRunAt, } from '../../../utils/monitor_test_result/test_time_formats'; -export const ErrorsList = ({ errorStates, loading }: { errorStates: Ping[]; loading: boolean }) => { - const [pageIndex, setPageIndex] = useState(0); - const [pageSize, setPageSize] = useState(10); - const [sortField, setSortField] = useState('@timestamp'); - const [sortDirection, setSortDirection] = useState<'asc' | 'desc'>('desc'); - +export const ErrorsList = ({ + errorStates, + loading, +}: { + errorStates: PingState[]; + loading: boolean; +}) => { const { monitorId } = useParams<{ monitorId: string }>(); - const items = errorStates.slice(pageIndex * pageSize, pageIndex * pageSize + pageSize); - const checkGroups = useMemo(() => { - const currentPage = errorStates.slice(pageIndex * pageSize, pageIndex * pageSize + pageSize); - - return currentPage.map((error) => error.monitor.check_group!); - }, [errorStates, pageIndex, pageSize]); + return errorStates.map((error) => error.monitor.check_group!); + }, [errorStates]); const { failedSteps } = useErrorFailedStep(checkGroups); @@ -47,26 +52,52 @@ export const ErrorsList = ({ errorStates, loading }: { errorStates: Ping[]; load const columns = [ { - field: '@timestamp', + field: 'item.state.started_at', name: TIMESTAMP_LABEL, - sortable: true, - render: (value: string, item: Ping) => { - return ( + sortable: (a: PingState) => { + return moment(a.state.started_at).valueOf(); + }, + render: (value: string, item: PingState) => { + const link = ( ); + const isActive = isActiveState(item); + if (!isActive) { + return link; + } + + return ( + + {link} + + + Active + + + + ); }, }, { field: 'monitor.check_group', name: !isBrowserType ? ERROR_MESSAGE_LABEL : FAILED_STEP_LABEL, truncateText: true, - render: (value: string, item: Ping) => { + sortable: (a: PingState) => { + const failedStep = failedSteps.find( + (step) => step.monitor.check_group === a.monitor.check_group + ); + if (!failedStep) { + return a.monitor.check_group; + } + return failedStep.synthetics?.step?.name; + }, + render: (value: string, item: PingState) => { if (!isBrowserType) { - return {item.error?.message ?? '--'}; + return {item.error.message ?? '--'}; } const failedStep = failedSteps.find((step) => step.monitor.check_group === value); if (!failedStep) { @@ -83,22 +114,32 @@ export const ErrorsList = ({ errorStates, loading }: { errorStates: Ping[]; load field: 'state.duration_ms', name: ERROR_DURATION_LABEL, align: 'right' as const, - render: (value: number) => {formatTestDuration(value, true)}, + sortable: true, + render: (value: number, item: PingState) => { + const isActive = isActiveState(item); + let activeDuration = 0; + if (item.monitor.timespan) { + const diff = moment(item.monitor.timespan.lt).diff( + moment(item.monitor.timespan.gte), + 'millisecond' + ); + if (isActive) { + const currentDiff = moment().diff(item['@timestamp']); + + activeDuration = currentDiff < diff ? currentDiff : diff; + } else { + activeDuration = diff; + } + } + return {formatTestDuration(value + activeDuration, true)}; + }, }, ]; - const pagination = { - pageIndex, - pageSize, - totalItemCount: errorStates.length, - pageSizeOptions: [3, 5, 8], - }; - const getRowProps = (item: Ping) => { const { state } = item; if (state?.id) { return { - height: '85px', 'data-test-subj': `row-${state.id}`, onClick: (evt: MouseEvent) => { history.push( @@ -112,29 +153,19 @@ export const ErrorsList = ({ errorStates, loading }: { errorStates: Ping[]; load return (
- { - const { index: pIndex, size: pSize } = page; - - const { field: sField, direction: sDirection } = sort; - - setPageIndex(pIndex!); - setPageSize(pSize!); - setSortField(sField!); - setSortDirection(sDirection!); - }} - rowProps={getRowProps} />
); @@ -154,6 +185,15 @@ export const getErrorDetailsUrl = ({ return `${basePath}/app/synthetics/monitor/${configId}/errors/${stateId}?locationId=${locationId}`; }; +const isActiveState = (item: PingState) => { + const timestamp = item['@timestamp']; + const interval = moment(item.monitor.timespan?.lt).diff( + moment(item.monitor.timespan?.gte), + 'milliseconds' + ); + return moment().diff(moment(timestamp), 'milliseconds') < interval; +}; + const ERRORS_LIST_LABEL = i18n.translate('xpack.synthetics.errorsList.label', { defaultMessage: 'Errors list', }); diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_errors/errors_tab_content.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_errors/errors_tab_content.tsx index 8317614ef889..d7b1c3357f60 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_errors/errors_tab_content.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_errors/errors_tab_content.tsx @@ -8,7 +8,7 @@ import React from 'react'; import { EuiFlexGroup, EuiFlexItem, EuiSpacer } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; -import { Ping } from '../../../../../../common/runtime_types'; +import { PingState } from '../../../../../../common/runtime_types'; import { PanelWithTitle } from '../../common/components/panel_with_title'; import { MonitorErrorsCount } from '../monitor_summary/monitor_errors_count'; import { FailedTestsCount } from './failed_tests_count'; @@ -21,7 +21,7 @@ export const ErrorsTabContent = ({ errorStates, loading, }: { - errorStates: Ping[]; + errorStates: PingState[]; loading: boolean; }) => { const { dateRangeStart, dateRangeEnd } = useGetUrlParams(); diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_errors/monitor_errors.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_errors/monitor_errors.tsx index b92c8c8fdd7d..527033f16c7c 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_errors/monitor_errors.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_errors/monitor_errors.tsx @@ -20,9 +20,9 @@ import { SyntheticsDatePicker } from '../../common/date_picker/synthetics_date_p import { ErrorsTabContent } from './errors_tab_content'; export const MonitorErrors = () => { - const { errorStates, loading } = useMonitorErrors(); + const { errorStates, loading, data } = useMonitorErrors(); - const initialLoading = loading && errorStates.length === 0; + const initialLoading = loading && !data; const emptyState = !loading && errorStates.length === 0;