From 7d5a2753d5c80a40afe570218cc8f55df3735892 Mon Sep 17 00:00:00 2001 From: Julia Date: Wed, 11 Oct 2023 09:21:20 +0200 Subject: [PATCH 01/79] [RAM] Bulk disable versioning (#167503) Summary Part of https://github.com/elastic/kibana/issues/157883 Converts _bulk_disable to new HTTP versioned model Checklist [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios --- .../routes/rule/apis/bulk_delete/index.ts | 4 +- .../rule/apis/bulk_delete/validation/v1.ts | 2 +- .../routes/rule/apis/bulk_disable/index.ts | 23 +++ .../rule/apis/bulk_disable/schemas/latest.ts | 8 + .../rule/apis/bulk_disable/schemas/v1.ts | 13 ++ .../rule/apis/bulk_disable/types/latest.ts | 8 + .../routes/rule/apis/bulk_disable/types/v1.ts | 28 ++++ .../apis/bulk_disable/validation/latest.ts | 8 + .../rule/apis/bulk_disable/validation/v1.ts | 30 ++++ .../bulk_delete/bulk_delete_rules.test.ts | 59 +++---- .../methods/bulk_delete/bulk_delete_rules.ts | 10 +- .../methods/bulk_delete/validation/index.ts | 2 +- .../bulk_disable/bulk_disable_rules.test.ts} | 152 ++++++++++-------- .../bulk_disable/bulk_disable_rules.ts} | 120 +++++++++----- .../rule/methods/bulk_disable/index.ts | 9 ++ .../methods/bulk_disable/schemas/index.ts | 13 ++ .../rule/methods/bulk_disable/types/index.ts | 27 ++++ .../methods/bulk_disable/validation/index.ts | 30 ++++ .../alerting/server/data/rule/index.ts | 2 + .../rule/methods/bulk_disable_rules_so.ts | 31 ++++ .../server/routes/bulk_disable_rules.ts | 50 ------ .../plugins/alerting/server/routes/index.ts | 2 +- .../bulk_delete/bulk_delete_rules_route.ts | 6 +- .../bulk_disable_rules_route.test.ts} | 14 +- .../bulk_disable/bulk_disable_rules_route.ts | 69 ++++++++ .../server/rules_client/rules_client.ts | 8 +- .../server/rules_client/tests/test_helpers.ts | 98 ++++++++++- .../group3/tests/alerting/bulk_disable.ts | 42 ++--- 28 files changed, 636 insertions(+), 232 deletions(-) create mode 100644 x-pack/plugins/alerting/common/routes/rule/apis/bulk_disable/index.ts create mode 100644 x-pack/plugins/alerting/common/routes/rule/apis/bulk_disable/schemas/latest.ts create mode 100644 x-pack/plugins/alerting/common/routes/rule/apis/bulk_disable/schemas/v1.ts create mode 100644 x-pack/plugins/alerting/common/routes/rule/apis/bulk_disable/types/latest.ts create mode 100644 x-pack/plugins/alerting/common/routes/rule/apis/bulk_disable/types/v1.ts create mode 100644 x-pack/plugins/alerting/common/routes/rule/apis/bulk_disable/validation/latest.ts create mode 100644 x-pack/plugins/alerting/common/routes/rule/apis/bulk_disable/validation/v1.ts rename x-pack/plugins/alerting/server/{rules_client/tests/bulk_disable.test.ts => application/rule/methods/bulk_disable/bulk_disable_rules.test.ts} (82%) rename x-pack/plugins/alerting/server/{rules_client/methods/bulk_disable.ts => application/rule/methods/bulk_disable/bulk_disable_rules.ts} (65%) create mode 100644 x-pack/plugins/alerting/server/application/rule/methods/bulk_disable/index.ts create mode 100644 x-pack/plugins/alerting/server/application/rule/methods/bulk_disable/schemas/index.ts create mode 100644 x-pack/plugins/alerting/server/application/rule/methods/bulk_disable/types/index.ts create mode 100644 x-pack/plugins/alerting/server/application/rule/methods/bulk_disable/validation/index.ts create mode 100644 x-pack/plugins/alerting/server/data/rule/methods/bulk_disable_rules_so.ts delete mode 100644 x-pack/plugins/alerting/server/routes/bulk_disable_rules.ts rename x-pack/plugins/alerting/server/routes/{bulk_disable_rules.test.ts => rule/apis/bulk_disable/bulk_disable_rules_route.test.ts} (87%) create mode 100644 x-pack/plugins/alerting/server/routes/rule/apis/bulk_disable/bulk_disable_rules_route.ts diff --git a/x-pack/plugins/alerting/common/routes/rule/apis/bulk_delete/index.ts b/x-pack/plugins/alerting/common/routes/rule/apis/bulk_delete/index.ts index 69a79adfab2e9..3d5f96a9257bd 100644 --- a/x-pack/plugins/alerting/common/routes/rule/apis/bulk_delete/index.ts +++ b/x-pack/plugins/alerting/common/routes/rule/apis/bulk_delete/index.ts @@ -19,5 +19,5 @@ export type { BulkDeleteRulesRequestBody as BulkDeleteRulesRequestBodyV1, } from './types/v1'; -export { validateCommonBulkOptions } from './validation/latest'; -export { validateCommonBulkOptions as validateCommonBulkOptionsV1 } from './validation/v1'; +export { validateBulkDeleteRulesBody } from './validation/latest'; +export { validateBulkDeleteRulesBody as validateBulkDeleteRulesBodyV1 } from './validation/v1'; diff --git a/x-pack/plugins/alerting/common/routes/rule/apis/bulk_delete/validation/v1.ts b/x-pack/plugins/alerting/common/routes/rule/apis/bulk_delete/validation/v1.ts index e429d75db3e0c..86972849da204 100644 --- a/x-pack/plugins/alerting/common/routes/rule/apis/bulk_delete/validation/v1.ts +++ b/x-pack/plugins/alerting/common/routes/rule/apis/bulk_delete/validation/v1.ts @@ -8,7 +8,7 @@ import Boom from '@hapi/boom'; import { BulkDeleteRulesRequestBody } from '..'; -export const validateCommonBulkOptions = (options: BulkDeleteRulesRequestBody) => { +export const validateBulkDeleteRulesBody = (options: BulkDeleteRulesRequestBody) => { const filter = options.filter; const ids = options.ids; diff --git a/x-pack/plugins/alerting/common/routes/rule/apis/bulk_disable/index.ts b/x-pack/plugins/alerting/common/routes/rule/apis/bulk_disable/index.ts new file mode 100644 index 0000000000000..1bafd4c9e9770 --- /dev/null +++ b/x-pack/plugins/alerting/common/routes/rule/apis/bulk_disable/index.ts @@ -0,0 +1,23 @@ +/* + * 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 { bulkDisableRulesRequestBodySchema } from './schemas/latest'; +export { bulkDisableRulesRequestBodySchema as bulkDisableRulesRequestBodySchemaV1 } from './schemas/v1'; + +export type { + BulkDisableRulesResponse, + BulkOperationError, + BulkDisableRulesRequestBody, +} from './types/latest'; +export type { + BulkDisableRulesResponse as BulkDisableRulesResponseV1, + BulkOperationError as BulkOperationErrorV1, + BulkDisableRulesRequestBody as BulkDisableRulesRequestBodyV1, +} from './types/v1'; + +export { validateBulkDisableRulesBody } from './validation/latest'; +export { validateBulkDisableRulesBody as validateBulkDisableRulesBodyV1 } from './validation/v1'; diff --git a/x-pack/plugins/alerting/common/routes/rule/apis/bulk_disable/schemas/latest.ts b/x-pack/plugins/alerting/common/routes/rule/apis/bulk_disable/schemas/latest.ts new file mode 100644 index 0000000000000..25300c97a6d2e --- /dev/null +++ b/x-pack/plugins/alerting/common/routes/rule/apis/bulk_disable/schemas/latest.ts @@ -0,0 +1,8 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export * from './v1'; diff --git a/x-pack/plugins/alerting/common/routes/rule/apis/bulk_disable/schemas/v1.ts b/x-pack/plugins/alerting/common/routes/rule/apis/bulk_disable/schemas/v1.ts new file mode 100644 index 0000000000000..3e74ed88ff0f8 --- /dev/null +++ b/x-pack/plugins/alerting/common/routes/rule/apis/bulk_disable/schemas/v1.ts @@ -0,0 +1,13 @@ +/* + * 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 } from '@kbn/config-schema'; + +export const bulkDisableRulesRequestBodySchema = schema.object({ + filter: schema.maybe(schema.string()), + ids: schema.maybe(schema.arrayOf(schema.string(), { minSize: 1, maxSize: 1000 })), +}); diff --git a/x-pack/plugins/alerting/common/routes/rule/apis/bulk_disable/types/latest.ts b/x-pack/plugins/alerting/common/routes/rule/apis/bulk_disable/types/latest.ts new file mode 100644 index 0000000000000..25300c97a6d2e --- /dev/null +++ b/x-pack/plugins/alerting/common/routes/rule/apis/bulk_disable/types/latest.ts @@ -0,0 +1,8 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export * from './v1'; diff --git a/x-pack/plugins/alerting/common/routes/rule/apis/bulk_disable/types/v1.ts b/x-pack/plugins/alerting/common/routes/rule/apis/bulk_disable/types/v1.ts new file mode 100644 index 0000000000000..ed537d6dbb653 --- /dev/null +++ b/x-pack/plugins/alerting/common/routes/rule/apis/bulk_disable/types/v1.ts @@ -0,0 +1,28 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import type { TypeOf } from '@kbn/config-schema'; +import { bulkDisableRulesRequestBodySchemaV1 } from '..'; +import { RuleParamsV1, RuleResponseV1 } from '../../../response'; + +export interface BulkOperationError { + message: string; + status?: number; + rule: { + id: string; + name: string; + }; +} + +export type BulkDisableRulesRequestBody = TypeOf; + +export interface BulkDisableRulesResponse { + body: { + rules: Array>; + errors: BulkOperationError[]; + total: number; + }; +} diff --git a/x-pack/plugins/alerting/common/routes/rule/apis/bulk_disable/validation/latest.ts b/x-pack/plugins/alerting/common/routes/rule/apis/bulk_disable/validation/latest.ts new file mode 100644 index 0000000000000..25300c97a6d2e --- /dev/null +++ b/x-pack/plugins/alerting/common/routes/rule/apis/bulk_disable/validation/latest.ts @@ -0,0 +1,8 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export * from './v1'; diff --git a/x-pack/plugins/alerting/common/routes/rule/apis/bulk_disable/validation/v1.ts b/x-pack/plugins/alerting/common/routes/rule/apis/bulk_disable/validation/v1.ts new file mode 100644 index 0000000000000..560e61017cd57 --- /dev/null +++ b/x-pack/plugins/alerting/common/routes/rule/apis/bulk_disable/validation/v1.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 Boom from '@hapi/boom'; +import { BulkDisableRulesRequestBody } from '..'; + +export const validateBulkDisableRulesBody = (options: BulkDisableRulesRequestBody) => { + const filter = options.filter; + const ids = options.ids; + + if (!ids && !filter) { + throw Boom.badRequest( + "Either 'ids' or 'filter' property in method's arguments should be provided" + ); + } + + if (ids?.length === 0) { + throw Boom.badRequest("'ids' property should not be an empty array"); + } + + if (ids && filter) { + throw Boom.badRequest( + "Both 'filter' and 'ids' are supplied. Define either 'ids' or 'filter' properties in method's arguments" + ); + } +}; diff --git a/x-pack/plugins/alerting/server/application/rule/methods/bulk_delete/bulk_delete_rules.test.ts b/x-pack/plugins/alerting/server/application/rule/methods/bulk_delete/bulk_delete_rules.test.ts index 037791c07effa..d5f18db2f1065 100644 --- a/x-pack/plugins/alerting/server/application/rule/methods/bulk_delete/bulk_delete_rules.test.ts +++ b/x-pack/plugins/alerting/server/application/rule/methods/bulk_delete/bulk_delete_rules.test.ts @@ -21,13 +21,13 @@ import { AlertingAuthorization } from '../../../../authorization/alerting_author import { getBeforeSetup, setGlobalDate } from '../../../../rules_client/tests/lib'; import { bulkMarkApiKeysForInvalidation } from '../../../../invalidate_pending_api_keys/bulk_mark_api_keys_for_invalidation'; import { - enabledRuleForBulkDelete1, - enabledRuleForBulkDelete2, - enabledRuleForBulkDelete3, + enabledRuleForBulkOps1, + enabledRuleForBulkOps2, + enabledRuleForBulkOps3, returnedRuleForBulkDelete1, returnedRuleForBulkDelete2, returnedRuleForBulkDelete3, - siemRuleForBulkDelete1, + siemRuleForBulkOps1, } from '../../../../rules_client/tests/test_helpers'; import { migrateLegacyActions } from '../../../../rules_client/lib'; @@ -106,11 +106,7 @@ describe('bulkDelete', () => { const mockCreatePointInTimeFinderAsInternalUser = ( response = { - saved_objects: [ - enabledRuleForBulkDelete1, - enabledRuleForBulkDelete2, - enabledRuleForBulkDelete3, - ], + saved_objects: [enabledRuleForBulkOps1, enabledRuleForBulkOps2, enabledRuleForBulkOps3], } ) => { encryptedSavedObjects.createPointInTimeFinderDecryptedAsInternalUser = jest @@ -178,9 +174,10 @@ describe('bulkDelete', () => { expect(unsecuredSavedObjectsClient.bulkDelete).toHaveBeenCalledTimes(1); expect(unsecuredSavedObjectsClient.bulkDelete).toHaveBeenCalledWith( - [enabledRuleForBulkDelete1, enabledRuleForBulkDelete2, enabledRuleForBulkDelete3].map( - ({ id }) => ({ id, type: 'alert' }) - ), + [enabledRuleForBulkOps1, enabledRuleForBulkOps2, enabledRuleForBulkOps3].map(({ id }) => ({ + id, + type: 'alert', + })), undefined ); @@ -223,25 +220,25 @@ describe('bulkDelete', () => { .mockResolvedValueOnce({ close: jest.fn(), find: function* asyncGenerator() { - yield { saved_objects: [enabledRuleForBulkDelete1, enabledRuleForBulkDelete2] }; + yield { saved_objects: [enabledRuleForBulkOps1, enabledRuleForBulkOps2] }; }, }) .mockResolvedValueOnce({ close: jest.fn(), find: function* asyncGenerator() { - yield { saved_objects: [enabledRuleForBulkDelete2] }; + yield { saved_objects: [enabledRuleForBulkOps2] }; }, }) .mockResolvedValueOnce({ close: jest.fn(), find: function* asyncGenerator() { - yield { saved_objects: [enabledRuleForBulkDelete2] }; + yield { saved_objects: [enabledRuleForBulkOps2] }; }, }) .mockResolvedValueOnce({ close: jest.fn(), find: function* asyncGenerator() { - yield { saved_objects: [enabledRuleForBulkDelete2] }; + yield { saved_objects: [enabledRuleForBulkOps2] }; }, }); @@ -287,19 +284,19 @@ describe('bulkDelete', () => { .mockResolvedValueOnce({ close: jest.fn(), find: function* asyncGenerator() { - yield { saved_objects: [enabledRuleForBulkDelete1, enabledRuleForBulkDelete2] }; + yield { saved_objects: [enabledRuleForBulkOps1, enabledRuleForBulkOps2] }; }, }) .mockResolvedValueOnce({ close: jest.fn(), find: function* asyncGenerator() { - yield { saved_objects: [enabledRuleForBulkDelete2] }; + yield { saved_objects: [enabledRuleForBulkOps2] }; }, }) .mockResolvedValueOnce({ close: jest.fn(), find: function* asyncGenerator() { - yield { saved_objects: [enabledRuleForBulkDelete2] }; + yield { saved_objects: [enabledRuleForBulkOps2] }; }, }); @@ -464,20 +461,16 @@ describe('bulkDelete', () => { close: jest.fn(), find: function* asyncGenerator() { yield { - saved_objects: [ - enabledRuleForBulkDelete1, - enabledRuleForBulkDelete2, - siemRuleForBulkDelete1, - ], + saved_objects: [enabledRuleForBulkOps1, enabledRuleForBulkOps2, siemRuleForBulkOps1], }; }, }); unsecuredSavedObjectsClient.bulkDelete.mockResolvedValue({ statuses: [ - { id: enabledRuleForBulkDelete1.id, type: 'alert', success: true }, - { id: enabledRuleForBulkDelete2.id, type: 'alert', success: true }, - { id: siemRuleForBulkDelete1.id, type: 'alert', success: true }, + { id: enabledRuleForBulkOps1.id, type: 'alert', success: true }, + { id: enabledRuleForBulkOps2.id, type: 'alert', success: true }, + { id: siemRuleForBulkOps1.id, type: 'alert', success: true }, ], }); @@ -485,19 +478,19 @@ describe('bulkDelete', () => { expect(migrateLegacyActions).toHaveBeenCalledTimes(3); expect(migrateLegacyActions).toHaveBeenCalledWith(expect.any(Object), { - ruleId: enabledRuleForBulkDelete1.id, + ruleId: enabledRuleForBulkOps1.id, skipActionsValidation: true, - attributes: enabledRuleForBulkDelete1.attributes, + attributes: enabledRuleForBulkOps1.attributes, }); expect(migrateLegacyActions).toHaveBeenCalledWith(expect.any(Object), { - ruleId: enabledRuleForBulkDelete2.id, + ruleId: enabledRuleForBulkOps2.id, skipActionsValidation: true, - attributes: enabledRuleForBulkDelete2.attributes, + attributes: enabledRuleForBulkOps2.attributes, }); expect(migrateLegacyActions).toHaveBeenCalledWith(expect.any(Object), { - ruleId: siemRuleForBulkDelete1.id, + ruleId: siemRuleForBulkOps1.id, skipActionsValidation: true, - attributes: siemRuleForBulkDelete1.attributes, + attributes: siemRuleForBulkOps1.attributes, }); }); }); diff --git a/x-pack/plugins/alerting/server/application/rule/methods/bulk_delete/bulk_delete_rules.ts b/x-pack/plugins/alerting/server/application/rule/methods/bulk_delete/bulk_delete_rules.ts index 37eae940e1669..33da0fd6b2e07 100644 --- a/x-pack/plugins/alerting/server/application/rule/methods/bulk_delete/bulk_delete_rules.ts +++ b/x-pack/plugins/alerting/server/application/rule/methods/bulk_delete/bulk_delete_rules.ts @@ -29,7 +29,7 @@ import type { BulkDeleteRulesResult, BulkDeleteRulesRequestBody, } from './types'; -import { validateCommonBulkOptions } from './validation'; +import { validateBulkDeleteRulesBody } from './validation'; import type { RuleAttributes } from '../../../../data/rule/types'; import { bulkDeleteRulesSo } from '../../../../data/rule'; import { transformRuleAttributesToRuleDomain, transformRuleDomainToRule } from '../../transforms'; @@ -43,7 +43,7 @@ export const bulkDeleteRules = async ( options: BulkDeleteRulesRequestBody ): Promise> => { try { - validateCommonBulkOptions(options); + validateBulkDeleteRulesBody(options); } catch (error) { throw Boom.badRequest(`Error validating bulk delete data - ${error.message}`); } @@ -93,7 +93,7 @@ export const bulkDeleteRules = async ( const deletedRules = rules.map(({ id, attributes, references }) => { // TODO (http-versioning): alertTypeId should never be null, but we need to // fix the type cast from SavedObjectsBulkUpdateObject to SavedObjectsBulkUpdateObject - // when we are doing the bulk create and this should fix itself + // when we are doing the bulk delete and this should fix itself const ruleType = context.ruleTypeRegistry.get(attributes.alertTypeId!); const ruleDomain = transformRuleAttributesToRuleDomain(attributes as RuleAttributes, { id, @@ -106,7 +106,7 @@ export const bulkDeleteRules = async ( try { ruleDomainSchema.validate(ruleDomain); } catch (e) { - context.logger.warn(`Error validating bulk edited rule domain object for id: ${id}, ${e}`); + context.logger.warn(`Error validating bulk deleted rule domain object for id: ${id}, ${e}`); } return ruleDomain; }); @@ -218,7 +218,7 @@ const bulkDeleteWithOCC = async ( const rules = rulesToDelete.filter((rule) => deletedRuleIds.includes(rule.id)); // migrate legacy actions only for SIEM rules - // TODO (http-versioning) Remove RawRuleAction and RawRule casts + // TODO (http-versioning) Remove RawRule casts await pMap( rules, async (rule) => { diff --git a/x-pack/plugins/alerting/server/application/rule/methods/bulk_delete/validation/index.ts b/x-pack/plugins/alerting/server/application/rule/methods/bulk_delete/validation/index.ts index 35893977bb06c..746802899efc4 100644 --- a/x-pack/plugins/alerting/server/application/rule/methods/bulk_delete/validation/index.ts +++ b/x-pack/plugins/alerting/server/application/rule/methods/bulk_delete/validation/index.ts @@ -8,7 +8,7 @@ import Boom from '@hapi/boom'; import { BulkDeleteRulesRequestBody } from '../types'; -export const validateCommonBulkOptions = (options: BulkDeleteRulesRequestBody) => { +export const validateBulkDeleteRulesBody = (options: BulkDeleteRulesRequestBody) => { const filter = options.filter; const ids = options.ids; diff --git a/x-pack/plugins/alerting/server/rules_client/tests/bulk_disable.test.ts b/x-pack/plugins/alerting/server/application/rule/methods/bulk_disable/bulk_disable_rules.test.ts similarity index 82% rename from x-pack/plugins/alerting/server/rules_client/tests/bulk_disable.test.ts rename to x-pack/plugins/alerting/server/application/rule/methods/bulk_disable/bulk_disable_rules.test.ts index 966a87c695d10..f7e8eff33591f 100644 --- a/x-pack/plugins/alerting/server/rules_client/tests/bulk_disable.test.ts +++ b/x-pack/plugins/alerting/server/application/rule/methods/bulk_disable/bulk_disable_rules.test.ts @@ -5,53 +5,59 @@ * 2.0. */ import { AlertConsumers } from '@kbn/rule-data-utils'; -import { RulesClient, ConstructorOptions } from '../rules_client'; +import { RulesClient, ConstructorOptions } from '../../../../rules_client/rules_client'; import { savedObjectsClientMock, savedObjectsRepositoryMock } from '@kbn/core/server/mocks'; import { taskManagerMock } from '@kbn/task-manager-plugin/server/mocks'; import type { SavedObject } from '@kbn/core-saved-objects-server'; -import { ruleTypeRegistryMock } from '../../rule_type_registry.mock'; -import { alertingAuthorizationMock } from '../../authorization/alerting_authorization.mock'; +import { ruleTypeRegistryMock } from '../../../../rule_type_registry.mock'; +import { alertingAuthorizationMock } from '../../../../authorization/alerting_authorization.mock'; import { encryptedSavedObjectsMock } from '@kbn/encrypted-saved-objects-plugin/server/mocks'; import { actionsAuthorizationMock } from '@kbn/actions-plugin/server/mocks'; -import { AlertingAuthorization } from '../../authorization/alerting_authorization'; +import { AlertingAuthorization } from '../../../../authorization/alerting_authorization'; import { ActionsAuthorization } from '@kbn/actions-plugin/server'; import { auditLoggerMock } from '@kbn/security-plugin/server/audit/mocks'; -import { getBeforeSetup, setGlobalDate } from './lib'; +import { getBeforeSetup, setGlobalDate } from '../../../../rules_client/tests/lib'; import { loggerMock } from '@kbn/logging-mocks'; import { BulkUpdateTaskResult } from '@kbn/task-manager-plugin/server/task_scheduling'; import { eventLoggerMock } from '@kbn/event-log-plugin/server/mocks'; import { - disabledRule1, - disabledRule2, enabledRule1, enabledRule2, savedObjectWith409Error, savedObjectWith500Error, - returnedDisabledRule1, - returnedDisabledRule2, - siemRule1, - siemRule2, -} from './test_helpers'; -import { migrateLegacyActions } from '../lib'; - -jest.mock('../lib/siem_legacy_actions/migrate_legacy_actions', () => { + disabledRuleForBulkDisable1, + disabledRuleForBulkDisable2, + enabledRuleForBulkOps1, + enabledRuleForBulkOps2, + returnedRuleForBulkDisable1, + returnedRuleForBulkDisable2, + siemRuleForBulkOps1, + siemRuleForBulkOps2, +} from '../../../../rules_client/tests/test_helpers'; +import { migrateLegacyActions } from '../../../../rules_client/lib'; + +jest.mock('../../../../task_runner/alert_task_instance', () => ({ + taskInstanceToAlertTaskInstance: jest.fn(), +})); + +const { taskInstanceToAlertTaskInstance } = jest.requireMock( + '../../../../task_runner/alert_task_instance' +); + +jest.mock('../../../../rules_client/lib/siem_legacy_actions/migrate_legacy_actions', () => { return { - migrateLegacyActions: jest.fn(), + migrateLegacyActions: jest.fn().mockResolvedValue({ + hasLegacyActions: false, + resultedActions: [], + resultedReferences: [], + }), }; }); -jest.mock('../../invalidate_pending_api_keys/bulk_mark_api_keys_for_invalidation', () => ({ +jest.mock('../../../../invalidate_pending_api_keys/bulk_mark_api_keys_for_invalidation', () => ({ bulkMarkApiKeysForInvalidation: jest.fn(), })); -jest.mock('../../task_runner/alert_task_instance', () => ({ - taskInstanceToAlertTaskInstance: jest.fn(), -})); - -const { taskInstanceToAlertTaskInstance } = jest.requireMock( - '../../task_runner/alert_task_instance' -); - const taskManager = taskManagerMock.createStart(); const ruleTypeRegistry = ruleTypeRegistryMock.create(); const unsecuredSavedObjectsClient = savedObjectsClientMock.create(); @@ -149,7 +155,7 @@ describe('bulkDisableRules', () => { test('should disable two rule', async () => { unsecuredSavedObjectsClient.bulkCreate.mockResolvedValue({ - saved_objects: [disabledRule1, disabledRule2], + saved_objects: [disabledRuleForBulkDisable1, disabledRuleForBulkDisable2], }); const result = await rulesClient.bulkDisableRules({ filter: 'fake_filter' }); @@ -175,14 +181,14 @@ describe('bulkDisableRules', () => { expect(result).toStrictEqual({ errors: [], - rules: [returnedDisabledRule1, returnedDisabledRule2], + rules: [returnedRuleForBulkDisable1, returnedRuleForBulkDisable2], total: 2, }); }); test('should try to disable rules, one successful and one with 500 error', async () => { unsecuredSavedObjectsClient.bulkCreate.mockResolvedValue({ - saved_objects: [disabledRule1, savedObjectWith500Error], + saved_objects: [disabledRuleForBulkDisable1, savedObjectWith500Error], }); const result = await rulesClient.bulkDisableRules({ filter: 'fake_filter' }); @@ -202,7 +208,7 @@ describe('bulkDisableRules', () => { expect(result).toStrictEqual({ errors: [{ message: 'UPS', rule: { id: 'id2', name: 'fakeName' }, status: 500 }], - rules: [returnedDisabledRule1], + rules: [returnedRuleForBulkDisable1], total: 2, }); }); @@ -210,7 +216,7 @@ describe('bulkDisableRules', () => { test('should try to disable rules, one successful and one with 409 error, which will not be deleted with retry', async () => { unsecuredSavedObjectsClient.bulkCreate .mockResolvedValueOnce({ - saved_objects: [disabledRule1, savedObjectWith409Error], + saved_objects: [disabledRuleForBulkDisable1, savedObjectWith409Error], }) .mockResolvedValueOnce({ saved_objects: [savedObjectWith409Error], @@ -227,25 +233,25 @@ describe('bulkDisableRules', () => { .mockResolvedValueOnce({ close: jest.fn(), find: function* asyncGenerator() { - yield { saved_objects: [enabledRule1, enabledRule2] }; + yield { saved_objects: [enabledRuleForBulkOps1, enabledRuleForBulkOps2] }; }, }) .mockResolvedValueOnce({ close: jest.fn(), find: function* asyncGenerator() { - yield { saved_objects: [enabledRule2] }; + yield { saved_objects: [enabledRuleForBulkOps2] }; }, }) .mockResolvedValueOnce({ close: jest.fn(), find: function* asyncGenerator() { - yield { saved_objects: [enabledRule2] }; + yield { saved_objects: [enabledRuleForBulkOps2] }; }, }) .mockResolvedValueOnce({ close: jest.fn(), find: function* asyncGenerator() { - yield { saved_objects: [enabledRule2] }; + yield { saved_objects: [enabledRuleForBulkOps2] }; }, }); @@ -256,7 +262,7 @@ describe('bulkDisableRules', () => { expect(taskManager.bulkDisable).toHaveBeenCalledWith(['id1'], []); expect(result).toStrictEqual({ errors: [{ message: 'UPS', rule: { id: 'id2', name: 'fakeName' }, status: 409 }], - rules: [returnedDisabledRule1], + rules: [returnedRuleForBulkDisable1], total: 2, }); }); @@ -264,10 +270,10 @@ describe('bulkDisableRules', () => { test('should try to disable rules, one successful and one with 409 error, which successfully will be disabled with retry', async () => { unsecuredSavedObjectsClient.bulkCreate .mockResolvedValueOnce({ - saved_objects: [disabledRule1, savedObjectWith409Error], + saved_objects: [disabledRuleForBulkDisable1, savedObjectWith409Error], }) .mockResolvedValueOnce({ - saved_objects: [disabledRule2], + saved_objects: [disabledRuleForBulkDisable1], }); encryptedSavedObjects.createPointInTimeFinderDecryptedAsInternalUser = jest @@ -275,19 +281,19 @@ describe('bulkDisableRules', () => { .mockResolvedValueOnce({ close: jest.fn(), find: function* asyncGenerator() { - yield { saved_objects: [enabledRule1, enabledRule2] }; + yield { saved_objects: [enabledRuleForBulkOps1, enabledRuleForBulkOps2] }; }, }) .mockResolvedValueOnce({ close: jest.fn(), find: function* asyncGenerator() { - yield { saved_objects: [enabledRule1] }; + yield { saved_objects: [enabledRuleForBulkOps1] }; }, }) .mockResolvedValueOnce({ close: jest.fn(), find: function* asyncGenerator() { - yield { saved_objects: [enabledRule1] }; + yield { saved_objects: [enabledRuleForBulkOps1] }; }, }); @@ -297,7 +303,7 @@ describe('bulkDisableRules', () => { expect(result).toStrictEqual({ errors: [], - rules: [returnedDisabledRule1, returnedDisabledRule2], + rules: [returnedRuleForBulkDisable1, returnedRuleForBulkDisable1], total: 2, }); }); @@ -338,10 +344,10 @@ describe('bulkDisableRules', () => { test('should skip rule if it is already disabled', async () => { mockCreatePointInTimeFinderAsInternalUser({ - saved_objects: [enabledRule1, disabledRule2], + saved_objects: [enabledRuleForBulkOps1, disabledRuleForBulkDisable2], }); unsecuredSavedObjectsClient.bulkCreate.mockResolvedValue({ - saved_objects: [disabledRule1], + saved_objects: [disabledRuleForBulkDisable1], }); const result = await rulesClient.bulkDisableRules({ filter: 'fake_filter' }); @@ -361,7 +367,7 @@ describe('bulkDisableRules', () => { expect(result).toStrictEqual({ errors: [], - rules: [returnedDisabledRule1], + rules: [returnedRuleForBulkDisable1], total: 2, }); }); @@ -369,7 +375,7 @@ describe('bulkDisableRules', () => { describe('taskManager', () => { test('should call task manager bulkDisable', async () => { unsecuredSavedObjectsClient.bulkCreate.mockResolvedValue({ - saved_objects: [disabledRule1, disabledRule2], + saved_objects: [disabledRuleForBulkDisable1, disabledRuleForBulkDisable2], }); taskManager.bulkDisable.mockResolvedValue({ @@ -404,16 +410,16 @@ describe('bulkDisableRules', () => { unsecuredSavedObjectsClient.bulkCreate.mockResolvedValue({ saved_objects: [ { - ...enabledRule1, + ...enabledRuleForBulkOps1, attributes: { - ...enabledRule1.attributes, + ...enabledRuleForBulkOps1.attributes, scheduledTaskId: 'taskId1', }, } as SavedObject, { - ...enabledRule2, + ...enabledRuleForBulkOps2, attributes: { - ...enabledRule1, + ...enabledRuleForBulkOps2.attributes, scheduledTaskId: 'taskId2', }, } as SavedObject, @@ -442,7 +448,7 @@ describe('bulkDisableRules', () => { test('should disable one task if one rule was successfully disabled and one has 500 error', async () => { unsecuredSavedObjectsClient.bulkCreate.mockResolvedValue({ - saved_objects: [disabledRule1, savedObjectWith500Error], + saved_objects: [disabledRuleForBulkDisable1, savedObjectWith500Error], }); taskManager.bulkDisable.mockResolvedValue({ @@ -465,15 +471,15 @@ describe('bulkDisableRules', () => { test('should disable one task if one rule was successfully disabled and one was disabled from beginning', async () => { mockCreatePointInTimeFinderAsInternalUser({ saved_objects: [ - enabledRule1, + enabledRuleForBulkOps1, { ...enabledRule2, - attributes: { ...enabledRule2.attributes, enabled: false }, + attributes: { ...enabledRuleForBulkOps2.attributes, enabled: false }, }, ], }); unsecuredSavedObjectsClient.bulkCreate.mockResolvedValue({ - saved_objects: [disabledRule1], + saved_objects: [disabledRuleForBulkDisable1], }); await rulesClient.bulkDisableRules({ filter: 'fake_filter' }); @@ -484,7 +490,7 @@ describe('bulkDisableRules', () => { test('should not throw an error if taskManager.bulkDisable throw an error', async () => { unsecuredSavedObjectsClient.bulkCreate.mockResolvedValue({ - saved_objects: [disabledRule1, disabledRule2], + saved_objects: [disabledRuleForBulkDisable1, disabledRuleForBulkDisable2], }); taskManager.bulkDisable.mockImplementation(() => { throw new Error('Something happend during bulkDisable'); @@ -502,9 +508,9 @@ describe('bulkDisableRules', () => { unsecuredSavedObjectsClient.bulkCreate.mockResolvedValue({ saved_objects: [ { - ...disabledRule1, + ...disabledRuleForBulkDisable1, attributes: { - ...disabledRule1.attributes, + ...disabledRuleForBulkDisable1.attributes, scheduledTaskId: 'taskId1', }, } as SavedObject, @@ -529,7 +535,7 @@ describe('bulkDisableRules', () => { test('logs audit event when disabling rules', async () => { unsecuredSavedObjectsClient.bulkCreate.mockResolvedValue({ - saved_objects: [disabledRule1], + saved_objects: [disabledRuleForBulkDisable1], }); await rulesClient.bulkDisableRules({ filter: 'fake_filter' }); @@ -593,7 +599,7 @@ describe('bulkDisableRules', () => { }); test('should call logEvent', async () => { unsecuredSavedObjectsClient.bulkCreate.mockResolvedValue({ - saved_objects: [disabledRule1, disabledRule2], + saved_objects: [disabledRuleForBulkDisable1, disabledRuleForBulkDisable2], }); await rulesClient.bulkDisableRules({ filter: 'fake_filter' }); @@ -606,7 +612,7 @@ describe('bulkDisableRules', () => { throw new Error('UPS'); }); unsecuredSavedObjectsClient.bulkCreate.mockResolvedValue({ - saved_objects: [disabledRule1, disabledRule2], + saved_objects: [disabledRuleForBulkDisable1, disabledRuleForBulkDisable2], }); await rulesClient.bulkDisableRules({ filter: 'fake_filter' }); @@ -625,38 +631,50 @@ describe('bulkDisableRules', () => { .mockResolvedValueOnce({ close: jest.fn(), find: function* asyncGenerator() { - yield { saved_objects: [enabledRule1, enabledRule2, siemRule1, siemRule2] }; + yield { + saved_objects: [ + enabledRuleForBulkOps1, + enabledRuleForBulkOps2, + siemRuleForBulkOps1, + siemRuleForBulkOps2, + ], + }; }, }); unsecuredSavedObjectsClient.bulkCreate.mockResolvedValue({ - saved_objects: [enabledRule1, enabledRule2, siemRule1, siemRule2], + saved_objects: [ + enabledRuleForBulkOps1, + enabledRuleForBulkOps2, + siemRuleForBulkOps1, + siemRuleForBulkOps2, + ], }); await rulesClient.bulkDisableRules({ filter: 'fake_filter' }); expect(migrateLegacyActions).toHaveBeenCalledTimes(4); expect(migrateLegacyActions).toHaveBeenCalledWith(expect.any(Object), { - attributes: enabledRule1.attributes, - ruleId: enabledRule1.id, + attributes: enabledRuleForBulkOps1.attributes, + ruleId: enabledRuleForBulkOps1.id, actions: [], references: [], }); expect(migrateLegacyActions).toHaveBeenCalledWith(expect.any(Object), { - attributes: enabledRule2.attributes, - ruleId: enabledRule2.id, + attributes: enabledRuleForBulkOps2.attributes, + ruleId: enabledRuleForBulkOps2.id, actions: [], references: [], }); expect(migrateLegacyActions).toHaveBeenCalledWith(expect.any(Object), { attributes: expect.objectContaining({ consumer: AlertConsumers.SIEM }), - ruleId: siemRule1.id, + ruleId: siemRuleForBulkOps1.id, actions: [], references: [], }); expect(migrateLegacyActions).toHaveBeenCalledWith(expect.any(Object), { attributes: expect.objectContaining({ consumer: AlertConsumers.SIEM }), - ruleId: siemRule2.id, + ruleId: siemRuleForBulkOps2.id, actions: [], references: [], }); diff --git a/x-pack/plugins/alerting/server/rules_client/methods/bulk_disable.ts b/x-pack/plugins/alerting/server/application/rule/methods/bulk_disable/bulk_disable_rules.ts similarity index 65% rename from x-pack/plugins/alerting/server/rules_client/methods/bulk_disable.ts rename to x-pack/plugins/alerting/server/application/rule/methods/bulk_disable/bulk_disable_rules.ts index 0a1af5511fe38..e981a30181a49 100644 --- a/x-pack/plugins/alerting/server/rules_client/methods/bulk_disable.ts +++ b/x-pack/plugins/alerting/server/application/rule/methods/bulk_disable/bulk_disable_rules.ts @@ -5,33 +5,51 @@ * 2.0. */ import { KueryNode, nodeBuilder } from '@kbn/es-query'; -import { SavedObjectsBulkUpdateObject } from '@kbn/core/server'; +import { SavedObjectsBulkUpdateObject, SavedObjectsBulkCreateObject } from '@kbn/core/server'; +import Boom from '@hapi/boom'; import { withSpan } from '@kbn/apm-utils'; import pMap from 'p-map'; import { Logger } from '@kbn/core/server'; import { TaskManagerStartContract } from '@kbn/task-manager-plugin/server'; -import { RawRule } from '../../types'; -import { convertRuleIdsToKueryNode } from '../../lib'; -import { ruleAuditEvent, RuleAuditAction } from '../common/audit_events'; +import type { RawRule, SanitizedRule, RawRuleAction } from '../../../../types'; +import { convertRuleIdsToKueryNode } from '../../../../lib'; +import { ruleAuditEvent, RuleAuditAction } from '../../../../rules_client/common/audit_events'; import { retryIfBulkOperationConflicts, buildKueryNodeFilter, - getAndValidateCommonBulkOptions, -} from '../common'; + tryToRemoveTasks, +} from '../../../../rules_client/common'; import { getAuthorizationFilter, checkAuthorizationAndGetTotal, - getAlertFromRaw, untrackRuleAlerts, updateMeta, migrateLegacyActions, -} from '../lib'; -import { BulkOptions, BulkOperationError, RulesClientContext } from '../types'; -import { tryToRemoveTasks } from '../common'; -import { RuleAttributes } from '../../data/rule/types'; +} from '../../../../rules_client/lib'; +import { transformRuleAttributesToRuleDomain, transformRuleDomainToRule } from '../../transforms'; +import type { + BulkOperationError, + BulkDisableRulesResult, + BulkDisableRulesRequestBody, +} from './types'; +import type { RuleAttributes } from '../../../../data/rule/types'; +import { validateBulkDisableRulesBody } from './validation'; +import { ruleDomainSchema } from '../../schemas'; +import type { RulesClientContext } from '../../../../rules_client/types'; +import type { RuleParams, RuleDomain } from '../../types'; +import { bulkDisableRulesSo } from '../../../../data/rule'; -export const bulkDisableRules = async (context: RulesClientContext, options: BulkOptions) => { - const { ids, filter } = getAndValidateCommonBulkOptions(options); +export const bulkDisableRules = async ( + context: RulesClientContext, + options: BulkDisableRulesRequestBody +): Promise> => { + try { + validateBulkDisableRulesBody(options); + } catch (error) { + throw Boom.badRequest(`Error validating bulk disable data - ${error.message}`); + } + + const { ids, filter } = options; const kueryNodeFilter = ids ? convertRuleIdsToKueryNode(ids) : buildKueryNodeFilter(filter); const authorizationFilter = await getAuthorizationFilter(context, { action: 'DISABLE' }); @@ -70,18 +88,33 @@ export const bulkDisableRules = async (context: RulesClientContext, options: Bul tryToRemoveTasks({ taskIdsToDelete, logger: context.logger, taskManager: context.taskManager }), ]); - const updatedRules = rules.map(({ id, attributes, references }) => { - return getAlertFromRaw( - context, + const disabledRules = rules.map(({ id, attributes, references }) => { + // TODO (http-versioning): alertTypeId should never be null, but we need to + // fix the type cast from SavedObjectsBulkUpdateObject to SavedObjectsBulkUpdateObject + // when we are doing the bulk disable and this should fix itself + const ruleType = context.ruleTypeRegistry.get(attributes.alertTypeId!); + const ruleDomain = transformRuleAttributesToRuleDomain(attributes as RuleAttributes, { id, - attributes.alertTypeId as string, - attributes as RawRule, + logger: context.logger, + ruleType, references, - false - ); + omitGeneratedValues: false, + }); + + try { + ruleDomainSchema.validate(ruleDomain); + } catch (e) { + context.logger.warn(`Error validating bulk disabled rule domain object for id: ${id}, ${e}`); + } + return ruleDomain; }); - return { errors, rules: updatedRules, total }; + // TODO (http-versioning): This should be of type Rule, change this when all rule types are fixed + const disabledPublicRules = disabledRules.map((rule: RuleDomain) => { + return transformRuleDomainToRule(rule); + }) as Array>; + + return { errors, rules: disabledPublicRules, total }; }; const bulkDisableRulesWithOCC = async ( @@ -96,15 +129,17 @@ const bulkDisableRulesWithOCC = async ( type: 'rules', }, () => - context.encryptedSavedObjectsClient.createPointInTimeFinderDecryptedAsInternalUser({ - filter: filter ? nodeBuilder.and([filter, additionalFilter]) : additionalFilter, - type: 'alert', - perPage: 100, - ...(context.namespace ? { namespaces: [context.namespace] } : undefined), - }) + context.encryptedSavedObjectsClient.createPointInTimeFinderDecryptedAsInternalUser( + { + filter: filter ? nodeBuilder.and([filter, additionalFilter]) : additionalFilter, + type: 'alert', + perPage: 100, + ...(context.namespace ? { namespaces: [context.namespace] } : undefined), + } + ) ); - const rulesToDisable: Array> = []; + const rulesToDisable: Array> = []; const errors: BulkOperationError[] = []; const ruleNameToRuleIdMapping: Record = {}; const username = await context.getUserName(); @@ -115,21 +150,25 @@ const bulkDisableRulesWithOCC = async ( for await (const response of rulesFinder.find()) { await pMap(response.saved_objects, async (rule) => { try { - await untrackRuleAlerts(context, rule.id, rule.attributes as RuleAttributes); + await untrackRuleAlerts(context, rule.id, rule.attributes); if (rule.attributes.name) { ruleNameToRuleIdMapping[rule.id] = rule.attributes.name; } + // migrate legacy actions only for SIEM rules + // TODO (http-versioning) Remove RawRuleAction and RawRule casts const migratedActions = await migrateLegacyActions(context, { ruleId: rule.id, - actions: rule.attributes.actions, + actions: rule.attributes.actions as RawRuleAction[], references: rule.references, - attributes: rule.attributes, + attributes: rule.attributes as RawRule, }); + // TODO (http-versioning) Remove casts when updateMeta has been converted + const castedAttributes = rule.attributes as RawRule; const updatedAttributes = updateMeta(context, { - ...rule.attributes, + ...castedAttributes, ...(migratedActions.hasLegacyActions ? { actions: migratedActions.resultedActions, @@ -148,9 +187,10 @@ const bulkDisableRulesWithOCC = async ( rulesToDisable.push({ ...rule, + // TODO (http-versioning) Remove casts when updateMeta has been converted attributes: { ...updatedAttributes, - }, + } as RuleAttributes, ...(migratedActions.hasLegacyActions ? { references: migratedActions.resultedReferences } : {}), @@ -184,18 +224,26 @@ const bulkDisableRulesWithOCC = async ( } ); + // TODO (http-versioning): for whatever reasoning we are using SavedObjectsBulkUpdateObject + // everywhere when it should be SavedObjectsBulkCreateObject. We need to fix it in + // bulk_disable, bulk_enable, etc. to fix this cast + const result = await withSpan( { name: 'unsecuredSavedObjectsClient.bulkCreate', type: 'rules' }, () => - context.unsecuredSavedObjectsClient.bulkCreate(rulesToDisable, { - overwrite: true, + bulkDisableRulesSo({ + savedObjectsClient: context.unsecuredSavedObjectsClient, + bulkDisableRuleAttributes: rulesToDisable as Array< + SavedObjectsBulkCreateObject + >, + savedObjectsBulkCreateOptions: { overwrite: true }, }) ); const taskIdsToDisable: string[] = []; const taskIdsToDelete: string[] = []; const taskIdsToClearState: string[] = []; - const disabledRules: Array> = []; + const disabledRules: Array> = []; result.saved_objects.forEach((rule) => { if (rule.error === undefined) { diff --git a/x-pack/plugins/alerting/server/application/rule/methods/bulk_disable/index.ts b/x-pack/plugins/alerting/server/application/rule/methods/bulk_disable/index.ts new file mode 100644 index 0000000000000..3cc98307ff3e5 --- /dev/null +++ b/x-pack/plugins/alerting/server/application/rule/methods/bulk_disable/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 { bulkDisableRules } from './bulk_disable_rules'; +export type { BulkDisableRulesResult, BulkDisableRulesRequestBody } from './types'; diff --git a/x-pack/plugins/alerting/server/application/rule/methods/bulk_disable/schemas/index.ts b/x-pack/plugins/alerting/server/application/rule/methods/bulk_disable/schemas/index.ts new file mode 100644 index 0000000000000..3e74ed88ff0f8 --- /dev/null +++ b/x-pack/plugins/alerting/server/application/rule/methods/bulk_disable/schemas/index.ts @@ -0,0 +1,13 @@ +/* + * 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 } from '@kbn/config-schema'; + +export const bulkDisableRulesRequestBodySchema = schema.object({ + filter: schema.maybe(schema.string()), + ids: schema.maybe(schema.arrayOf(schema.string(), { minSize: 1, maxSize: 1000 })), +}); diff --git a/x-pack/plugins/alerting/server/application/rule/methods/bulk_disable/types/index.ts b/x-pack/plugins/alerting/server/application/rule/methods/bulk_disable/types/index.ts new file mode 100644 index 0000000000000..9966fefdd921f --- /dev/null +++ b/x-pack/plugins/alerting/server/application/rule/methods/bulk_disable/types/index.ts @@ -0,0 +1,27 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import type { TypeOf } from '@kbn/config-schema'; +import { bulkDisableRulesRequestBodySchema } from '../schemas'; +import type { SanitizedRule } from '../../../../../types'; +import type { RuleParams } from '../../../types'; + +export interface BulkOperationError { + message: string; + status?: number; + rule: { + id: string; + name: string; + }; +} + +export type BulkDisableRulesRequestBody = TypeOf; + +export interface BulkDisableRulesResult { + rules: Array>; + errors: BulkOperationError[]; + total: number; +} diff --git a/x-pack/plugins/alerting/server/application/rule/methods/bulk_disable/validation/index.ts b/x-pack/plugins/alerting/server/application/rule/methods/bulk_disable/validation/index.ts new file mode 100644 index 0000000000000..a162a510e9fa2 --- /dev/null +++ b/x-pack/plugins/alerting/server/application/rule/methods/bulk_disable/validation/index.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 Boom from '@hapi/boom'; +import { BulkDisableRulesRequestBody } from '../types'; + +export const validateBulkDisableRulesBody = (options: BulkDisableRulesRequestBody) => { + const filter = options.filter; + const ids = options.ids; + + if (!ids && !filter) { + throw Boom.badRequest( + "Either 'ids' or 'filter' property in method's arguments should be provided" + ); + } + + if (ids?.length === 0) { + throw Boom.badRequest("'ids' property should not be an empty array"); + } + + if (ids && filter) { + throw Boom.badRequest( + "Both 'filter' and 'ids' are supplied. Define either 'ids' or 'filter' properties in method's arguments" + ); + } +}; diff --git a/x-pack/plugins/alerting/server/data/rule/index.ts b/x-pack/plugins/alerting/server/data/rule/index.ts index 08306a281ac52..f926adc23f39c 100644 --- a/x-pack/plugins/alerting/server/data/rule/index.ts +++ b/x-pack/plugins/alerting/server/data/rule/index.ts @@ -17,3 +17,5 @@ export { bulkCreateRulesSo } from './methods/bulk_create_rule_so'; export type { BulkCreateRulesSoParams } from './methods/bulk_create_rule_so'; export { bulkDeleteRulesSo } from './methods/bulk_delete_rules_so'; export type { BulkDeleteRulesSoParams } from './methods/bulk_delete_rules_so'; +export { bulkDisableRulesSo } from './methods/bulk_disable_rules_so'; +export type { BulkDisableRulesSoParams } from './methods/bulk_disable_rules_so'; diff --git a/x-pack/plugins/alerting/server/data/rule/methods/bulk_disable_rules_so.ts b/x-pack/plugins/alerting/server/data/rule/methods/bulk_disable_rules_so.ts new file mode 100644 index 0000000000000..59c22765081ad --- /dev/null +++ b/x-pack/plugins/alerting/server/data/rule/methods/bulk_disable_rules_so.ts @@ -0,0 +1,31 @@ +/* + * 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 { + SavedObjectsClientContract, + SavedObjectsCreateOptions, + SavedObjectsBulkCreateObject, + SavedObjectsBulkResponse, +} from '@kbn/core/server'; +import { RuleAttributes } from '../types'; + +export interface BulkDisableRulesSoParams { + savedObjectsClient: SavedObjectsClientContract; + bulkDisableRuleAttributes: Array>; + savedObjectsBulkCreateOptions?: SavedObjectsCreateOptions; +} + +export const bulkDisableRulesSo = ( + params: BulkDisableRulesSoParams +): Promise> => { + const { savedObjectsClient, bulkDisableRuleAttributes, savedObjectsBulkCreateOptions } = params; + + return savedObjectsClient.bulkCreate( + bulkDisableRuleAttributes, + savedObjectsBulkCreateOptions + ); +}; diff --git a/x-pack/plugins/alerting/server/routes/bulk_disable_rules.ts b/x-pack/plugins/alerting/server/routes/bulk_disable_rules.ts deleted file mode 100644 index baacd73c90efd..0000000000000 --- a/x-pack/plugins/alerting/server/routes/bulk_disable_rules.ts +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { schema } from '@kbn/config-schema'; -import { IRouter } from '@kbn/core/server'; -import { verifyAccessAndContext, handleDisabledApiKeysError } from './lib'; -import { ILicenseState, RuleTypeDisabledError } from '../lib'; -import { AlertingRequestHandlerContext, INTERNAL_BASE_ALERTING_API_PATH } from '../types'; - -export const bulkDisableRulesRoute = ({ - router, - licenseState, -}: { - router: IRouter; - licenseState: ILicenseState; -}) => { - router.patch( - { - path: `${INTERNAL_BASE_ALERTING_API_PATH}/rules/_bulk_disable`, - validate: { - body: schema.object({ - filter: schema.maybe(schema.string()), - ids: schema.maybe(schema.arrayOf(schema.string(), { minSize: 1, maxSize: 1000 })), - }), - }, - }, - handleDisabledApiKeysError( - router.handleLegacyErrors( - verifyAccessAndContext(licenseState, async (context, req, res) => { - const rulesClient = (await context.alerting).getRulesClient(); - const { filter, ids } = req.body; - - try { - const result = await rulesClient.bulkDisableRules({ filter, ids }); - return res.ok({ body: result }); - } catch (e) { - if (e instanceof RuleTypeDisabledError) { - return e.sendResponse(res); - } - throw e; - } - }) - ) - ) - ); -}; diff --git a/x-pack/plugins/alerting/server/routes/index.ts b/x-pack/plugins/alerting/server/routes/index.ts index d0dc928173ef8..f13533921f16b 100644 --- a/x-pack/plugins/alerting/server/routes/index.ts +++ b/x-pack/plugins/alerting/server/routes/index.ts @@ -42,7 +42,7 @@ import { unsnoozeRuleRoute } from './unsnooze_rule'; import { runSoonRoute } from './run_soon'; import { bulkDeleteRulesRoute } from './rule/apis/bulk_delete/bulk_delete_rules_route'; import { bulkEnableRulesRoute } from './bulk_enable_rules'; -import { bulkDisableRulesRoute } from './bulk_disable_rules'; +import { bulkDisableRulesRoute } from './rule/apis/bulk_disable/bulk_disable_rules_route'; import { cloneRuleRoute } from './clone_rule'; import { getFlappingSettingsRoute } from './get_flapping_settings'; import { updateFlappingSettingsRoute } from './update_flapping_settings'; diff --git a/x-pack/plugins/alerting/server/routes/rule/apis/bulk_delete/bulk_delete_rules_route.ts b/x-pack/plugins/alerting/server/routes/rule/apis/bulk_delete/bulk_delete_rules_route.ts index 24dff47131978..ad9b77b3aba83 100644 --- a/x-pack/plugins/alerting/server/routes/rule/apis/bulk_delete/bulk_delete_rules_route.ts +++ b/x-pack/plugins/alerting/server/routes/rule/apis/bulk_delete/bulk_delete_rules_route.ts @@ -41,14 +41,14 @@ export const bulkDeleteRulesRoute = ({ const { filter, ids } = body; try { - const bulkDeleteResults = await rulesClient.bulkDeleteRules({ + const bulkDeleteResult = await rulesClient.bulkDeleteRules({ filter, ids, }); const resultBody: BulkDeleteRulesResponseV1 = { body: { - ...bulkDeleteResults, - rules: bulkDeleteResults.rules.map((rule) => { + ...bulkDeleteResult, + rules: bulkDeleteResult.rules.map((rule) => { // TODO (http-versioning): Remove this cast, this enables us to move forward // without fixing all of other solution types return transformRuleToRuleResponseV1(rule as Rule); diff --git a/x-pack/plugins/alerting/server/routes/bulk_disable_rules.test.ts b/x-pack/plugins/alerting/server/routes/rule/apis/bulk_disable/bulk_disable_rules_route.test.ts similarity index 87% rename from x-pack/plugins/alerting/server/routes/bulk_disable_rules.test.ts rename to x-pack/plugins/alerting/server/routes/rule/apis/bulk_disable/bulk_disable_rules_route.test.ts index e310ec92d779d..a53501060a39f 100644 --- a/x-pack/plugins/alerting/server/routes/bulk_disable_rules.test.ts +++ b/x-pack/plugins/alerting/server/routes/rule/apis/bulk_disable/bulk_disable_rules_route.test.ts @@ -7,16 +7,16 @@ import { httpServiceMock } from '@kbn/core/server/mocks'; -import { bulkDisableRulesRoute } from './bulk_disable_rules'; -import { licenseStateMock } from '../lib/license_state.mock'; -import { mockHandlerArguments } from './_mock_handler_arguments'; -import { rulesClientMock } from '../rules_client.mock'; -import { RuleTypeDisabledError } from '../lib/errors/rule_type_disabled'; -import { verifyApiAccess } from '../lib/license_api_access'; +import { bulkDisableRulesRoute } from './bulk_disable_rules_route'; +import { licenseStateMock } from '../../../../lib/license_state.mock'; +import { mockHandlerArguments } from '../../../_mock_handler_arguments'; +import { rulesClientMock } from '../../../../rules_client.mock'; +import { RuleTypeDisabledError } from '../../../../lib/errors/rule_type_disabled'; +import { verifyApiAccess } from '../../../../lib/license_api_access'; const rulesClient = rulesClientMock.create(); -jest.mock('../lib/license_api_access', () => ({ +jest.mock('../../../../lib/license_api_access', () => ({ verifyApiAccess: jest.fn(), })); diff --git a/x-pack/plugins/alerting/server/routes/rule/apis/bulk_disable/bulk_disable_rules_route.ts b/x-pack/plugins/alerting/server/routes/rule/apis/bulk_disable/bulk_disable_rules_route.ts new file mode 100644 index 0000000000000..03afb4a95d25a --- /dev/null +++ b/x-pack/plugins/alerting/server/routes/rule/apis/bulk_disable/bulk_disable_rules_route.ts @@ -0,0 +1,69 @@ +/* + * 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 { IRouter } from '@kbn/core/server'; +import { verifyAccessAndContext, handleDisabledApiKeysError } from '../../../lib'; +import { ILicenseState, RuleTypeDisabledError } from '../../../../lib'; +import { AlertingRequestHandlerContext, INTERNAL_BASE_ALERTING_API_PATH } from '../../../../types'; + +import { + bulkDisableRulesRequestBodySchemaV1, + BulkDisableRulesRequestBodyV1, + BulkDisableRulesResponseV1, +} from '../../../../../common/routes/rule/apis/bulk_disable'; +import type { RuleParamsV1 } from '../../../../../common/routes/rule/response'; +import { transformRuleToRuleResponseV1 } from '../../transforms'; +import { Rule } from '../../../../application/rule/types'; + +export const bulkDisableRulesRoute = ({ + router, + licenseState, +}: { + router: IRouter; + licenseState: ILicenseState; +}) => { + router.patch( + { + path: `${INTERNAL_BASE_ALERTING_API_PATH}/rules/_bulk_disable`, + validate: { + body: bulkDisableRulesRequestBodySchemaV1, + }, + }, + handleDisabledApiKeysError( + router.handleLegacyErrors( + verifyAccessAndContext(licenseState, async (context, req, res) => { + const rulesClient = (await context.alerting).getRulesClient(); + + const body: BulkDisableRulesRequestBodyV1 = req.body; + const { filter, ids } = body; + + try { + const bulkDisableResults = await rulesClient.bulkDisableRules({ filter, ids }); + + const resultBody: BulkDisableRulesResponseV1 = { + body: { + ...bulkDisableResults, + rules: bulkDisableResults.rules.map((rule) => { + // TODO (http-versioning): Remove this cast, this enables us to move forward + // without fixing all of other solution types + return transformRuleToRuleResponseV1(rule as Rule); + }), + }, + }; + + return res.ok(resultBody); + } catch (e) { + if (e instanceof RuleTypeDisabledError) { + return e.sendResponse(res); + } + throw e; + } + }) + ) + ) + ); +}; diff --git a/x-pack/plugins/alerting/server/rules_client/rules_client.ts b/x-pack/plugins/alerting/server/rules_client/rules_client.ts index 8664a0c42b9be..09021f1df8520 100644 --- a/x-pack/plugins/alerting/server/rules_client/rules_client.ts +++ b/x-pack/plugins/alerting/server/rules_client/rules_client.ts @@ -41,12 +41,15 @@ import { bulkDeleteRules, BulkDeleteRulesRequestBody, } from '../application/rule/methods/bulk_delete'; +import { + bulkDisableRules, + BulkDisableRulesRequestBody, +} from '../application/rule/methods/bulk_disable'; import { bulkEditRules, BulkEditOptions, } from '../application/rule/methods/bulk_edit/bulk_edit_rules'; import { bulkEnableRules } from './methods/bulk_enable'; -import { bulkDisableRules } from './methods/bulk_disable'; import { updateApiKey } from './methods/update_api_key'; import { enable } from './methods/enable'; import { disable } from './methods/disable'; @@ -151,7 +154,8 @@ export class RulesClient { public bulkEdit = (options: BulkEditOptions) => bulkEditRules(this.context, options); public bulkEnableRules = (options: BulkOptions) => bulkEnableRules(this.context, options); - public bulkDisableRules = (options: BulkOptions) => bulkDisableRules(this.context, options); + public bulkDisableRules = (options: BulkDisableRulesRequestBody) => + bulkDisableRules(this.context, options); public updateApiKey = (options: { id: string }) => updateApiKey(this.context, options); diff --git a/x-pack/plugins/alerting/server/rules_client/tests/test_helpers.ts b/x-pack/plugins/alerting/server/rules_client/tests/test_helpers.ts index ac8f482e88c5b..8b2db34686577 100644 --- a/x-pack/plugins/alerting/server/rules_client/tests/test_helpers.ts +++ b/x-pack/plugins/alerting/server/rules_client/tests/test_helpers.ts @@ -46,6 +46,11 @@ export const defaultRuleForBulkDelete = { id: 'id1', type: 'alert', attributes: { + tags: ['ups'], + params: { param: 1 }, + muteAll: false, + mutedInstanceIds: [], + revision: 1, name: 'fakeName', consumer: 'fakeConsumer', alertTypeId: 'fakeType', @@ -69,7 +74,7 @@ export const siemRule1 = { id: 'siem-id1', }; -export const siemRuleForBulkDelete1 = { +export const siemRuleForBulkOps1 = { ...defaultRuleForBulkDelete, attributes: { ...defaultRuleForBulkDelete.attributes, @@ -83,6 +88,11 @@ export const siemRule2 = { id: 'siem-id2', }; +export const siemRuleForBulkOps2 = { + ...siemRuleForBulkOps1, + id: 'siem-id2', +}; + export const enabledRule1 = { ...defaultRule, attributes: { @@ -116,7 +126,7 @@ export const enabledRule3 = { }, }; -export const enabledRuleForBulkDelete1 = { +export const enabledRuleForBulkOps1 = { ...defaultRuleForBulkDelete, attributes: { ...defaultRuleForBulkDelete.attributes, @@ -126,7 +136,7 @@ export const enabledRuleForBulkDelete1 = { }, }; -export const enabledRuleForBulkDelete2 = { +export const enabledRuleForBulkOps2 = { ...defaultRuleForBulkDelete, id: 'id2', attributes: { @@ -137,7 +147,7 @@ export const enabledRuleForBulkDelete2 = { }, }; -export const enabledRuleForBulkDelete3 = { +export const enabledRuleForBulkOps3 = { ...defaultRuleForBulkDelete, id: 'id3', attributes: { @@ -204,6 +214,61 @@ export const disabledRuleWithAction2 = { }, }; +export const disabledRuleForBulkDisable1 = { + ...defaultRuleForBulkDelete, + attributes: { + ...defaultRuleForBulkDelete.attributes, + enabled: false, + scheduledTaskId: 'id1', + apiKey: Buffer.from('123:abc').toString('base64'), + }, +}; + +export const disabledRuleForBulkDisable2 = { + ...defaultRuleForBulkDelete, + id: 'id2', + attributes: { + ...defaultRuleForBulkDelete.attributes, + enabled: false, + scheduledTaskId: 'id2', + apiKey: Buffer.from('321:abc').toString('base64'), + }, +}; + +export const disabledRuleForBulkWithAction1 = { + ...disabledRuleForBulkDisable1, + attributes: { + ...disabledRuleForBulkDisable1.attributes, + actions: [ + { + group: 'default', + actionTypeId: '1', + actionRef: '1', + params: { + foo: true, + }, + }, + ], + }, +}; + +export const disabledRuleForBulkWithAction2 = { + ...disabledRuleForBulkDisable2, + attributes: { + ...disabledRuleForBulkDisable2.attributes, + actions: [ + { + group: 'default', + actionTypeId: '1', + actionRef: '1', + params: { + foo: true, + }, + }, + ], + }, +}; + export const returnedRule1 = { actions: [], alertTypeId: 'fakeType', @@ -256,6 +321,11 @@ export const returnedRuleForBulkDelete1 = { }, scheduledTaskId: 'id1', snoozeSchedule: [], + tags: ['ups'], + params: { param: 1 }, + muteAll: false, + mutedInstanceIds: [], + revision: 1, }; export const returnedRuleForBulkDelete2 = { @@ -276,6 +346,11 @@ export const returnedRuleForBulkDelete2 = { }, scheduledTaskId: 'id2', snoozeSchedule: [], + tags: ['ups'], + params: { param: 1 }, + muteAll: false, + mutedInstanceIds: [], + revision: 1, }; export const returnedRuleForBulkDelete3 = { @@ -297,6 +372,21 @@ export const returnedRuleForBulkDelete3 = { }, scheduledTaskId: 'id3', snoozeSchedule: [], + tags: ['ups'], + params: { param: 1 }, + muteAll: false, + mutedInstanceIds: [], + revision: 1, +}; + +export const returnedRuleForBulkDisable1 = { + ...returnedRuleForBulkDelete1, + enabled: false, +}; + +export const returnedRuleForBulkDisable2 = { + ...returnedRuleForBulkDelete2, + enabled: false, }; export const returnedDisabledRule1 = { diff --git a/x-pack/test/alerting_api_integration/security_and_spaces/group3/tests/alerting/bulk_disable.ts b/x-pack/test/alerting_api_integration/security_and_spaces/group3/tests/alerting/bulk_disable.ts index 8ea0b913620aa..bf31e09fa5819 100644 --- a/x-pack/test/alerting_api_integration/security_and_spaces/group3/tests/alerting/bulk_disable.ts +++ b/x-pack/test/alerting_api_integration/security_and_spaces/group3/tests/alerting/bulk_disable.ts @@ -17,32 +17,32 @@ import { const getDefaultRules = (response: any) => ({ id: response.body.rules[0].id, - notifyWhen: 'onThrottleInterval', + notify_when: 'onThrottleInterval', enabled: false, name: 'abc', tags: ['foo'], consumer: 'alertsFixture', throttle: '1m', - alertTypeId: 'test.noop', - apiKeyCreatedByUser: false, - apiKeyOwner: response.body.rules[0].apiKeyOwner, - createdBy: 'elastic', - updatedBy: response.body.rules[0].updatedBy, - muteAll: false, - mutedInstanceIds: [], + rule_type_id: 'test.noop', + api_key_created_by_user: false, + api_key_owner: response.body.rules[0].api_key_owner, + created_by: 'elastic', + updated_by: response.body.rules[0].updated_by, + mute_all: false, + muted_alert_ids: [], schedule: { interval: '1m' }, actions: [], params: {}, running: false, - snoozeSchedule: [], - updatedAt: response.body.rules[0].updatedAt, - createdAt: response.body.rules[0].createdAt, - scheduledTaskId: response.body.rules[0].scheduledTaskId, - executionStatus: response.body.rules[0].executionStatus, + snooze_schedule: [], + updated_at: response.body.rules[0].updated_at, + created_at: response.body.rules[0].created_at, + scheduled_task_id: response.body.rules[0].scheduled_task_id, + execution_status: response.body.rules[0].execution_status, monitoring: response.body.rules[0].monitoring, revision: 0, - ...(response.body.rules[0].nextRun ? { nextRun: response.body.rules[0].nextRun } : {}), - ...(response.body.rules[0].lastRun ? { lastRun: response.body.rules[0].lastRun } : {}), + ...(response.body.rules[0].next_run ? { next_run: response.body.rules[0].next_run } : {}), + ...(response.body.rules[0].last_run ? { last_run: response.body.rules[0].last_run } : {}), }); const getDefaultResponse = (response: any) => ({ @@ -174,7 +174,7 @@ export default ({ getService }: FtrProviderContext) => { rules: [ { ...getDefaultRules(response), - alertTypeId: 'test.restricted-noop', + rule_type_id: 'test.restricted-noop', consumer: 'alertsRestrictedFixture', }, ], @@ -233,7 +233,7 @@ export default ({ getService }: FtrProviderContext) => { rules: [ { ...getDefaultRules(response), - alertTypeId: 'test.restricted-noop', + rule_type_id: 'test.restricted-noop', }, ], errors: [], @@ -470,7 +470,7 @@ export default ({ getService }: FtrProviderContext) => { expect(response.statusCode).to.eql(400); expect(response.body.message).to.eql( - "Both 'filter' and 'ids' are supplied. Define either 'ids' or 'filter' properties in method's arguments" + "Error validating bulk disable data - Both 'filter' and 'ids' are supplied. Define either 'ids' or 'filter' properties in method's arguments" ); }); @@ -506,7 +506,8 @@ export default ({ getService }: FtrProviderContext) => { expect(response.body).to.eql({ error: 'Bad Request', - message: "Either 'ids' or 'filter' property in method's arguments should be provided", + message: + "Error validating bulk disable data - Either 'ids' or 'filter' property in method's arguments should be provided", statusCode: 400, }); }); @@ -534,7 +535,8 @@ export default ({ getService }: FtrProviderContext) => { expect(response.body).to.eql({ error: 'Bad Request', - message: "Either 'ids' or 'filter' property in method's arguments should be provided", + message: + "Error validating bulk disable data - Either 'ids' or 'filter' property in method's arguments should be provided", statusCode: 400, }); }); From ec0379848acdbccdf415d727dfbd82b88ebaa945 Mon Sep 17 00:00:00 2001 From: Alex Szabo Date: Wed, 11 Oct 2023 09:47:15 +0200 Subject: [PATCH 02/79] [Ops] Snapshot saved object migrations (#167983) ## Goal We'd like to increase visibility to when Saved Object migrations and schema changes are added to serverless releases. ## Plan - add post-build step to export Saved Object schema snapshot, upload it to google storage, by commit hash. - build comparison logic, that when given 2 hashes (e.g.: #current -> #to-be-released) it can highlight schema changes - display the output from the comparison where it would make most sense, ideas: - prior to release, as a script that can be ran (or a browser-based inspector) - prior to release, as a buildkite step, that displays the output, and waits for a confirmation on it - during the quality-gating, as an output during the quality-gate run, to be confirmed by the RM ## Summary The PR intends to satisfy the first step of the plan, to add a post-merge step to snapshot SO schema/migration states for later use. Example run: https://buildkite.com/elastic/kibana-pull-request/builds/165992#018b0583-c575-47f4-bade-7b45f6cf3f4d The files are not public, they require google cloud access, but could be accessed by scripts we create. --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- .buildkite/pipelines/on_merge.yml | 7 + .../steps/archive_so_migration_snapshot.sh | 19 +++ packages/kbn-dev-cli-runner/src/run.ts | 34 ++-- scripts/snapshot_plugin_types.js | 10 ++ src/dev/so_migration/snapshot_plugin_types.ts | 153 ++++++++++++++++++ src/dev/so_migration/so_migration_cli.ts | 50 ++++++ src/dev/tsconfig.json | 2 + 7 files changed, 260 insertions(+), 15 deletions(-) create mode 100755 .buildkite/scripts/steps/archive_so_migration_snapshot.sh create mode 100644 scripts/snapshot_plugin_types.js create mode 100644 src/dev/so_migration/snapshot_plugin_types.ts create mode 100644 src/dev/so_migration/so_migration_cli.ts diff --git a/.buildkite/pipelines/on_merge.yml b/.buildkite/pipelines/on_merge.yml index 5427a3081730d..25b22ff8e6a95 100644 --- a/.buildkite/pipelines/on_merge.yml +++ b/.buildkite/pipelines/on_merge.yml @@ -270,6 +270,13 @@ steps: - exit_status: '-1' limit: 3 + - command: .buildkite/scripts/steps/archive_so_migration_snapshot.sh target/plugin_so_types_snapshot.json + label: 'Extract Saved Object migration plugin types' + agents: + queue: n2-4-spot + artifact_paths: + "target/plugin_so_types_snapshot.json" + - wait: ~ continue_on_failure: true diff --git a/.buildkite/scripts/steps/archive_so_migration_snapshot.sh b/.buildkite/scripts/steps/archive_so_migration_snapshot.sh new file mode 100755 index 0000000000000..3cff06507bc6d --- /dev/null +++ b/.buildkite/scripts/steps/archive_so_migration_snapshot.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash +set -euo pipefail + +.buildkite/scripts/bootstrap.sh + +SO_MIGRATIONS_SNAPSHOT_FOLDER=kibana-so-types-snapshots +SNAPSHOT_FILE_PATH="${1:-target/plugin_so_types_snapshot.json}" + +echo "--- Creating snapshot of Saved Object migration info" +node scripts/snapshot_plugin_types --outputPath "$SNAPSHOT_FILE_PATH" + +echo "--- Uploading as ${BUILDKITE_COMMIT}.json" +SNAPSHOT_PATH="${SO_MIGRATIONS_SNAPSHOT_FOLDER}/${BUILDKITE_COMMIT}.json" +gsutil cp "$SNAPSHOT_FILE_PATH" "gs://$SNAPSHOT_PATH" + +buildkite-agent annotate --context so_migration_snapshot --style success \ + 'Saved Object type snapshot is available at '"$SNAPSHOT_PATH"'' + +echo "Success!" diff --git a/packages/kbn-dev-cli-runner/src/run.ts b/packages/kbn-dev-cli-runner/src/run.ts index 2ef90c2e2c27a..d84c7b9a4edf2 100644 --- a/packages/kbn-dev-cli-runner/src/run.ts +++ b/packages/kbn-dev-cli-runner/src/run.ts @@ -24,7 +24,7 @@ export interface RunContext { addCleanupTask: (task: CleanupTask) => void; flagsReader: FlagsReader; } -export type RunFn = (context: RunContext) => Promise | void; +export type RunFn = (context: RunContext) => Promise | void; export interface RunOptions { usage?: string; @@ -35,7 +35,7 @@ export interface RunOptions { flags?: FlagOptions; } -export async function run(fn: RunFn, options: RunOptions = {}) { +export async function run(fn: RunFn, options: RunOptions = {}): Promise { const flags = getFlags(process.argv.slice(2), options.flags, options.log?.defaultLevel); const log = new ToolingLog({ level: pickLevelFromFlags(flags, { @@ -66,21 +66,23 @@ export async function run(fn: RunFn, options: RunOptions = {}) { return; } + let result: T | undefined; try { await withProcRunner(log, async (procRunner) => { - await fn({ - log, - flags, - procRunner, - statsMeta: metrics.meta, - addCleanupTask: cleanup.add.bind(cleanup), - flagsReader: new FlagsReader(flags, { - aliases: { - ...options.flags?.alias, - ...DEFAULT_FLAG_ALIASES, - }, - }), - }); + result = + (await fn({ + log, + flags, + procRunner, + statsMeta: metrics.meta, + addCleanupTask: cleanup.add.bind(cleanup), + flagsReader: new FlagsReader(flags, { + aliases: { + ...options.flags?.alias, + ...DEFAULT_FLAG_ALIASES, + }, + }), + })) || undefined; }); } catch (error) { cleanup.execute(error); @@ -92,4 +94,6 @@ export async function run(fn: RunFn, options: RunOptions = {}) { } await metrics.reportSuccess(); + + return result; } diff --git a/scripts/snapshot_plugin_types.js b/scripts/snapshot_plugin_types.js new file mode 100644 index 0000000000000..151d9b96185c0 --- /dev/null +++ b/scripts/snapshot_plugin_types.js @@ -0,0 +1,10 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 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. + */ + +require('../src/setup_node_env'); +require('../src/dev/so_migration/so_migration_cli'); diff --git a/src/dev/so_migration/snapshot_plugin_types.ts b/src/dev/so_migration/snapshot_plugin_types.ts new file mode 100644 index 0000000000000..26cca555e28c5 --- /dev/null +++ b/src/dev/so_migration/snapshot_plugin_types.ts @@ -0,0 +1,153 @@ +/* + * 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 * as fs from 'fs'; +import * as path from 'path'; +import * as cp from 'child_process'; + +import { + extractMigrationInfo, + getMigrationHash, + SavedObjectTypeMigrationInfo, + // TODO: how to resolve this? Where to place this script? + // eslint-disable-next-line @kbn/imports/no_boundary_crossing +} from '@kbn/core-test-helpers-so-type-serializer'; +import { + createTestServers, + createRootWithCorePlugins, + // TODO: how to resolve this? Where to place this script? + // eslint-disable-next-line @kbn/imports/no_boundary_crossing +} from '@kbn/core-test-helpers-kbn-server'; +import { REPO_ROOT } from '@kbn/repo-info'; +import { ToolingLog } from '@kbn/tooling-log'; + +import { mkdirp } from '../build/lib'; + +type MigrationInfoRecord = Pick< + SavedObjectTypeMigrationInfo, + 'name' | 'migrationVersions' | 'schemaVersions' | 'modelVersions' | 'mappings' +> & { + hash: string; +}; + +type ServerHandles = Awaited> | undefined; + +/** + * Starts up ES & Kibana to extract plugin migration information, and save it to @param outputPath. + * @param log Tooling log handed over from CLI runner + * @param outputPath Path (absolute or relative to) where the extracted migration info should be saved to in a JSON format. + */ +async function takeSnapshot({ log, outputPath }: { log: ToolingLog; outputPath: string }) { + let serverHandles: ServerHandles; + + const snapshotOutputPath = path.isAbsolute(outputPath) + ? outputPath + : path.resolve(REPO_ROOT, outputPath); + + try { + serverHandles = await startServers(); + + const typeRegistry = serverHandles.coreStart.savedObjects.getTypeRegistry(); + const allTypes = typeRegistry.getAllTypes(); + + const migrationInfoMap = allTypes.reduce((map, type) => { + const migrationInfo = extractMigrationInfo(type); + map[type.name] = { + name: migrationInfo.name, + migrationVersions: migrationInfo.migrationVersions, + hash: getMigrationHash(type), + modelVersions: migrationInfo.modelVersions, + schemaVersions: migrationInfo.schemaVersions, + mappings: migrationInfo.mappings, + }; + return map; + }, {} as Record); + + await writeSnapshotFile(snapshotOutputPath, migrationInfoMap); + log.info('Snapshot taken!'); + + return migrationInfoMap; + } finally { + log.debug('Shutting down servers'); + await shutdown(log, serverHandles); + } +} + +async function startServers() { + const { startES } = createTestServers({ + adjustTimeout: () => {}, + }); + + const esServer = await startES(); + const kibanaRoot = createRootWithCorePlugins({}, { oss: false }); + await kibanaRoot.preboot(); + await kibanaRoot.setup(); + const coreStart = await kibanaRoot.start(); + return { esServer, kibanaRoot, coreStart }; +} + +async function writeSnapshotFile( + snapshotOutputPath: string, + typeDefinitions: Record +) { + const timestamp = Date.now(); + const date = new Date().toISOString(); + const buildUrl = process.env.BUILDKITE_BUILD_URL; + const prId = process.env.BUILDKITE_MESSAGE?.match(/\(#(\d+)\)/)?.[1]; + const pullRequestUrl = prId ? `https://github.com/elastic/kibana/pulls/${prId}` : null; + const kibanaCommitHash = process.env.BUILDKITE_COMMIT || getLocalHash(); + + const payload = { + meta: { + timestamp, + date, + kibanaCommitHash, + buildUrl, + pullRequestUrl, + }, + typeDefinitions, + }; + + await mkdirp(path.dirname(snapshotOutputPath)); + fs.writeFileSync(snapshotOutputPath, JSON.stringify(payload, null, 2)); +} + +async function shutdown(log: ToolingLog, serverHandles: ServerHandles) { + if (!serverHandles) { + log.debug('No server to terminate.'); + return; + } + + try { + await serverHandles.kibanaRoot.shutdown(); + + log.info("Kibana's shutdown done!"); + } catch (ex) { + log.error('Error while stopping kibana.'); + log.error(ex); + } + + try { + await serverHandles.esServer.stop(); + log.info('ES Stopped!'); + } catch (ex) { + log.error('Error while stopping ES.'); + log.error(ex); + } +} + +function getLocalHash() { + try { + const stdout = cp.execSync('git rev-parse HEAD'); + return stdout.toString().trim(); + } catch (e) { + return null; + } +} + +export { takeSnapshot }; diff --git a/src/dev/so_migration/so_migration_cli.ts b/src/dev/so_migration/so_migration_cli.ts new file mode 100644 index 0000000000000..3701efac70353 --- /dev/null +++ b/src/dev/so_migration/so_migration_cli.ts @@ -0,0 +1,50 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 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 { run } from '@kbn/dev-cli-runner'; + +import { takeSnapshot } from './snapshot_plugin_types'; + +const scriptName = process.argv[1].replace(/^.*scripts\//, 'scripts/'); +const DEFAULT_OUTPUT_PATH = 'target/plugin_so_types_snapshot.json'; + +run( + async ({ log, flagsReader, procRunner }) => { + const outputPath = flagsReader.getPositionals()[0] || DEFAULT_OUTPUT_PATH; + + const result = await takeSnapshot({ outputPath, log }); + + return { + outputPath, + result, + log, + }; + }, + { + usage: [process.argv0, scriptName, '[outputPath]'].join(' '), + description: `Takes a snapshot of all Kibana plugin Saved Object migrations' information, in a JSON format.`, + flags: { + string: ['outputPath'], + help: ` + --outputPath\tA path (absolute or relative to the repo root) where to output the snapshot of the SO migration info (default: ${DEFAULT_OUTPUT_PATH}) + `, + }, + } +) + .then((success) => { + if (success) { + success.log.info('Snapshot successfully taken to: ' + success.outputPath); + } + // Kibana won't stop because some async processes are stuck polling, we need to shut down the process. + process.exit(0); + }) + .catch((err) => { + // eslint-disable-next-line no-console + console.error(err); + process.exit(1); + }); diff --git a/src/dev/tsconfig.json b/src/dev/tsconfig.json index 73638af0d0d41..806af4b68384f 100644 --- a/src/dev/tsconfig.json +++ b/src/dev/tsconfig.json @@ -40,5 +40,7 @@ "@kbn/import-locator", "@kbn/config-schema", "@kbn/journeys", + "@kbn/core-test-helpers-so-type-serializer", + "@kbn/core-test-helpers-kbn-server", ] } From 3a48bc9289b7dc9b8ecdebbf224a55686a5078f1 Mon Sep 17 00:00:00 2001 From: Alex Szabo Date: Wed, 11 Oct 2023 09:49:46 +0200 Subject: [PATCH 03/79] [Ops] ES Serverless verification: tag based filtering (#168374) ## Summary Allows for env-var controlled filtering of executed test suites in the ES Serverless verification job, and adjusts existing flags and behaviour to better-fit future usage. We're changing the job to not publish the `latest-verified` tag by default. This is to prevent external calls to the job from accidentally promoting random tags to `latest-verified`, see changes below. Flag changes: - `PUBLISH_DOCKER_TAG`: if set to 1/true, passing runs will promote the tested ES Serverless tag to `latest-verified`. - (used to be default, now it requires this flag) - `PUBLISH_MANIFEST`: if set to 1/true, passing runs will upload the manifest attesting what (kibana + es) combination was used in the test - (used to be called `UPLOAD_MANIFEST`) - `SKIP_CYPRESS`: if set to 1/true, it will skip running the cypress tests - new flag - `FTR_EXTRA_ARGS`: a string argument, if passed, it will be forwarded verbatim to the FTR run script - new flag, can be used to control the filtering required for #167611 (eg.: `FTR_EXTRA_ARGS="--include-tag=ml"`) Example run: https://buildkite.com/elastic/kibana-elasticsearch-serverless-verify-and-promote/builds/64#018b1a30-3360-4995-874a-864f18e104d5 Closes: #168376 --- .../ci-stats/pick_test_group_run_order.ts | 5 +++++ .../es_serverless/verify_es_serverless_image.yml | 16 +++++++++++++++- .../es_serverless/promote_es_serverless_image.sh | 11 ++++++++--- .buildkite/scripts/steps/test/ftr_configs.sh | 10 ++++++++-- 4 files changed, 36 insertions(+), 6 deletions(-) diff --git a/.buildkite/pipeline-utils/ci-stats/pick_test_group_run_order.ts b/.buildkite/pipeline-utils/ci-stats/pick_test_group_run_order.ts index 99f107d56f02b..4f95553d073ec 100644 --- a/.buildkite/pipeline-utils/ci-stats/pick_test_group_run_order.ts +++ b/.buildkite/pipeline-utils/ci-stats/pick_test_group_run_order.ts @@ -226,6 +226,10 @@ export async function pickTestGroupRunOrder() { .filter(Boolean) : ['build']; + const FTR_EXTRA_ARGS: Record = process.env.FTR_EXTRA_ARGS + ? { FTR_EXTRA_ARGS: process.env.FTR_EXTRA_ARGS } + : {}; + const { defaultQueue, ftrConfigsByQueue } = getEnabledFtrConfigs(FTR_CONFIG_PATTERNS); const ftrConfigsIncluded = LIMIT_CONFIG_TYPE.includes('functional'); @@ -464,6 +468,7 @@ export async function pickTestGroupRunOrder() { }, env: { FTR_CONFIG_GROUP_KEY: key, + ...FTR_EXTRA_ARGS, }, retry: { automatic: [ diff --git a/.buildkite/pipelines/es_serverless/verify_es_serverless_image.yml b/.buildkite/pipelines/es_serverless/verify_es_serverless_image.yml index aabbcbd3255a4..48d0b61d7902a 100644 --- a/.buildkite/pipelines/es_serverless/verify_es_serverless_image.yml +++ b/.buildkite/pipelines/es_serverless/verify_es_serverless_image.yml @@ -1,4 +1,14 @@ # https://buildkite.com/elastic/kibana-elasticsearch-serverless-verify-and-promote/ + +### Parameters for this job: +# PUBLISH_DOCKER_TAG: if set to 1/true, passing runs will promote the tested ES Serverless tag to latest-verified. +# PUBLISH_MANIFEST: if set to 1/true, passing runs will upload the manifest attesting what (kibana + es) combination was used in the test +# SKIP_VERIFICATION: if set to 1/true, it will skip running all tests +# SKIP_CYPRESS: if set to 1/true, it will skip running the cypress tests +# FTR_EXTRA_ARGS: a string argument, if passed, it will be forwarded verbatim to the FTR run script +# ES_SERVERLESS_IMAGE: the tag for the docker image to test, in the form of docker.elastic.co/elasticsearch-ci/elasticsearch-serverless:$TAG +# BUILDKITE_COMMIT: the commit hash of the kibana branch to test + agents: queue: kibana-default @@ -24,7 +34,6 @@ steps: queue: n2-16-spot key: build depends_on: pre-build - if: "build.env('KIBANA_BUILD_ID') == null || build.env('KIBANA_BUILD_ID') == ''" timeout_in_minutes: 60 retry: automatic: @@ -35,10 +44,12 @@ steps: command: .buildkite/scripts/steps/test/pick_test_group_run_order.sh agents: queue: kibana-default + depends_on: build timeout_in_minutes: 10 env: FTR_CONFIGS_SCRIPT: 'TEST_ES_SERVERLESS_IMAGE=$ES_SERVERLESS_IMAGE .buildkite/scripts/steps/test/ftr_configs.sh' FTR_CONFIG_PATTERNS: '**/test_serverless/**' + FTR_EXTRA_ARGS: '$FTR_EXTRA_ARGS' LIMIT_CONFIG_TYPE: 'functional' retry: automatic: @@ -47,6 +58,7 @@ steps: - command: .buildkite/scripts/steps/functional/security_serverless.sh label: 'Serverless Security Cypress Tests' + if: "build.env('SKIP_CYPRESS') != '1' && build.env('SKIP_CYPRESS') != 'true'" agents: queue: n2-4-spot depends_on: build @@ -59,6 +71,7 @@ steps: - command: .buildkite/scripts/steps/functional/security_serverless_explore.sh label: 'Serverless Explore - Security Solution Cypress Tests' + if: "build.env('SKIP_CYPRESS') != '1' && build.env('SKIP_CYPRESS') != 'true'" agents: queue: n2-4-spot depends_on: build @@ -71,6 +84,7 @@ steps: - command: .buildkite/scripts/steps/functional/security_serverless_investigations.sh label: 'Serverless Investigations - Security Solution Cypress Tests' + if: "build.env('SKIP_CYPRESS') != '1' && build.env('SKIP_CYPRESS') != 'true'" agents: queue: n2-4-spot depends_on: build diff --git a/.buildkite/scripts/steps/es_serverless/promote_es_serverless_image.sh b/.buildkite/scripts/steps/es_serverless/promote_es_serverless_image.sh index c0a5a0d4e8407..c15d6011da3e9 100755 --- a/.buildkite/scripts/steps/es_serverless/promote_es_serverless_image.sh +++ b/.buildkite/scripts/steps/es_serverless/promote_es_serverless_image.sh @@ -19,7 +19,12 @@ else SOURCE_IMAGE="$BASE_ES_SERVERLESS_REPO:$SOURCE_IMAGE_OR_TAG" fi -echo "--- Promoting ${SOURCE_IMAGE_OR_TAG} to ':latest-verified'" +if [[ "${PUBLISH_DOCKER_TAG:-}" =~ ^(1|true)$ ]]; then + echo "--- Promoting ${SOURCE_IMAGE_OR_TAG} to ':latest-verified'" +else + echo "--- Skipping ES Serverless image because PUBLISH_DOCKER_TAG is not set" + exit 0 +fi echo "Re-tagging $SOURCE_IMAGE -> $TARGET_IMAGE" @@ -63,7 +68,7 @@ echo "Image push to $TARGET_IMAGE successful." echo "Promotion successful! Henceforth, thou shall be named Sir $TARGET_IMAGE" MANIFEST_UPLOAD_PATH="Skipped" -if [[ "${UPLOAD_MANIFEST:-}" =~ ^(1|true)$ && "$SOURCE_IMAGE_OR_TAG" =~ ^git-[0-9a-fA-F]{12}$ ]]; then +if [[ "${PUBLISH_MANIFEST:-}" =~ ^(1|true)$ && "$SOURCE_IMAGE_OR_TAG" =~ ^git-[0-9a-fA-F]{12}$ ]]; then echo "--- Uploading latest-verified manifest to GCS" cat << EOT >> $MANIFEST_FILE_NAME { @@ -84,7 +89,7 @@ EOT gsutil acl ch -u AllUsers:R "gs://$ES_SERVERLESS_BUCKET/$MANIFEST_FILE_NAME" MANIFEST_UPLOAD_PATH="$MANIFEST_FILE_NAME" -elif [[ "${UPLOAD_MANIFEST:-}" =~ ^(1|true)$ ]]; then +elif [[ "${PUBLISH_MANIFEST:-}" =~ ^(1|true)$ ]]; then echo "--- Skipping upload of latest-verified manifest to GCS, ES Serverless build tag is not pointing to a hash" elif [[ "$SOURCE_IMAGE_OR_TAG" =~ ^git-[0-9a-fA-F]{12}$ ]]; then echo "--- Skipping upload of latest-verified manifest to GCS, flag was not provided" diff --git a/.buildkite/scripts/steps/test/ftr_configs.sh b/.buildkite/scripts/steps/test/ftr_configs.sh index fca1f78469256..e9500a2244707 100755 --- a/.buildkite/scripts/steps/test/ftr_configs.sh +++ b/.buildkite/scripts/steps/test/ftr_configs.sh @@ -11,6 +11,9 @@ if [ "$FTR_CONFIG_GROUP_KEY" == "" ] && [ "$BUILDKITE_PARALLEL_JOB" == "" ]; the exit 1 fi +EXTRA_ARGS=${FTR_EXTRA_ARGS:-} +test -z "$EXTRA_ARGS" || buildkite-agent meta-data set "ftr-extra-args" "$EXTRA_ARGS" + export JOB="$FTR_CONFIG_GROUP_KEY" FAILED_CONFIGS_KEY="${BUILDKITE_STEP_ID}${FTR_CONFIG_GROUP_KEY}" @@ -49,7 +52,9 @@ while read -r config; do continue; fi - echo "--- $ node scripts/functional_tests --bail --config $config" + FULL_COMMAND="node scripts/functional_tests --bail --config $config $EXTRA_ARGS" + echo "--- $ $FULL_COMMAND" + start=$(date +%s) # prevent non-zero exit code from breaking the loop @@ -57,7 +62,8 @@ while read -r config; do node ./scripts/functional_tests \ --bail \ --kibana-install-dir "$KIBANA_BUILD_LOCATION" \ - --config="$config" + --config="$config" \ + "$EXTRA_ARGS" lastCode=$? set -e; From 3c81ea10a2a404895b39a48850d10ebafb994a4d Mon Sep 17 00:00:00 2001 From: Khristinin Nikita Date: Wed, 11 Oct 2023 11:21:38 +0200 Subject: [PATCH 04/79] Use datastream lifecycle instead of ILM (#168155) ## Use datastream lifecycle instead of ILM [DS lifecycle](https://www.elastic.co/guide/en/elasticsearch/reference/8.11/data-stream-lifecycle.html) [properties of lifecycle](https://www.elastic.co/guide/en/elasticsearch/reference/8.11/data-streams-put-lifecycle.html) As I understand from docs, with these chagnes we will have ``` Automatic [rollover](https://www.elastic.co/guide/en/elasticsearch/reference/8.11/index-rollover.html), which chunks your incoming data in smaller pieces to facilitate better performance and backward incompatible mapping changes. ``` Also with `data_retention` not present: ``` When empty, every document in this data stream will be stored indefinitely. ``` --------- Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../server/lib/risk_engine/configurations.ts | 17 ---------- .../risk_engine_data_client.test.ts | 34 ++----------------- .../risk_engine/risk_engine_data_client.ts | 16 +-------- .../risk_engine/tasks/risk_scoring_task.ts | 7 ---- .../server/request_context_factory.ts | 1 - .../risk_engine/init_and_status_apis.ts | 34 +++---------------- 6 files changed, 8 insertions(+), 101 deletions(-) diff --git a/x-pack/plugins/security_solution/server/lib/risk_engine/configurations.ts b/x-pack/plugins/security_solution/server/lib/risk_engine/configurations.ts index 16bc346d545ea..6f9a49bb47bbb 100644 --- a/x-pack/plugins/security_solution/server/lib/risk_engine/configurations.ts +++ b/x-pack/plugins/security_solution/server/lib/risk_engine/configurations.ts @@ -9,22 +9,6 @@ import type { IdentifierType } from '../../../common/risk_engine'; import { RiskScoreEntity, riskScoreBaseIndexName } from '../../../common/risk_engine'; import type { IIndexPatternString } from './utils/create_datastream'; -export const ilmPolicy = { - _meta: { - managed: true, - }, - phases: { - hot: { - actions: { - rollover: { - max_age: '30d', - max_primary_shard_size: '50gb', - }, - }, - }, - }, -}; - const commonRiskFields: FieldMap = { id_field: { type: 'keyword', @@ -140,7 +124,6 @@ export const riskScoreFieldMap: FieldMap = { ...buildIdentityRiskFields(RiskScoreEntity.user), } as const; -export const ilmPolicyName = '.risk-score-ilm-policy'; export const mappingComponentName = '.risk-score-mappings'; export const totalFieldsLimit = 1000; diff --git a/x-pack/plugins/security_solution/server/lib/risk_engine/risk_engine_data_client.test.ts b/x-pack/plugins/security_solution/server/lib/risk_engine/risk_engine_data_client.test.ts index 53cc07e5c4455..c4b16b72894dc 100644 --- a/x-pack/plugins/security_solution/server/lib/risk_engine/risk_engine_data_client.test.ts +++ b/x-pack/plugins/security_solution/server/lib/risk_engine/risk_engine_data_client.test.ts @@ -7,9 +7,7 @@ import { createOrUpdateComponentTemplate, - createOrUpdateIlmPolicy, createOrUpdateIndexTemplate, - getDataStreamAdapter, } from '@kbn/alerting-plugin/server'; import { loggingSystemMock, @@ -62,9 +60,7 @@ const transformsMock = { jest.mock('@kbn/alerting-plugin/server', () => ({ createOrUpdateComponentTemplate: jest.fn(), - createOrUpdateIlmPolicy: jest.fn(), createOrUpdateIndexTemplate: jest.fn(), - getDataStreamAdapter: jest.fn(), })); jest.mock('./utils/create_datastream', () => ({ @@ -102,7 +98,6 @@ describe('RiskEngineDataClient', () => { esClient, soClient: mockSavedObjectClient, namespace: 'default', - dataStreamAdapter: getDataStreamAdapter({ useDataStreamForAlerts }), }; riskEngineDataClient = new RiskEngineDataClient(options); }); @@ -132,29 +127,6 @@ describe('RiskEngineDataClient', () => { it('should initialize risk engine resources', async () => { await riskEngineDataClient.initializeResources({ namespace: 'default' }); - expect(getDataStreamAdapter).toHaveBeenCalledWith({ useDataStreamForAlerts }); - - expect(createOrUpdateIlmPolicy).toHaveBeenCalledWith({ - logger, - esClient, - name: '.risk-score-ilm-policy', - policy: { - _meta: { - managed: true, - }, - phases: { - hot: { - actions: { - rollover: { - max_age: '30d', - max_primary_shard_size: '50gb', - }, - }, - }, - }, - }, - }); - expect(createOrUpdateComponentTemplate).toHaveBeenCalledWith( expect.objectContaining({ logger, @@ -312,12 +284,10 @@ describe('RiskEngineDataClient', () => { index_patterns: ['risk-score.risk-score-default'], composed_of: ['.risk-score-mappings'], template: { + lifecycle: {}, settings: { auto_expand_replicas: '0-1', hidden: true, - 'index.lifecycle': { - name: '.risk-score-ilm-policy', - }, 'index.mapping.total_fields.limit': totalFieldsLimit, }, mappings: { @@ -517,7 +487,7 @@ describe('RiskEngineDataClient', () => { describe('initializeResources error', () => { it('should handle errors during initialization', async () => { const error = new Error('There error'); - (createOrUpdateIlmPolicy as jest.Mock).mockRejectedValueOnce(error); + (createOrUpdateIndexTemplate as jest.Mock).mockRejectedValueOnce(error); try { await riskEngineDataClient.initializeResources({ namespace: 'default' }); diff --git a/x-pack/plugins/security_solution/server/lib/risk_engine/risk_engine_data_client.ts b/x-pack/plugins/security_solution/server/lib/risk_engine/risk_engine_data_client.ts index 869351585e363..6244bec573a6b 100644 --- a/x-pack/plugins/security_solution/server/lib/risk_engine/risk_engine_data_client.ts +++ b/x-pack/plugins/security_solution/server/lib/risk_engine/risk_engine_data_client.ts @@ -9,9 +9,7 @@ import type { Metadata } from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import type { ClusterPutComponentTemplateRequest } from '@elastic/elasticsearch/lib/api/types'; import { createOrUpdateComponentTemplate, - createOrUpdateIlmPolicy, createOrUpdateIndexTemplate, - type DataStreamAdapter, } from '@kbn/alerting-plugin/server'; import { mappingFromFieldMap } from '@kbn/alerting-plugin/common'; import { DEFAULT_NAMESPACE_STRING } from '@kbn/core-saved-objects-utils-server'; @@ -23,8 +21,6 @@ import { getIndexPatternDataStream, totalFieldsLimit, mappingComponentName, - ilmPolicyName, - ilmPolicy, getTransformOptions, } from './configurations'; import { createDataStream } from './utils/create_datastream'; @@ -69,7 +65,6 @@ interface RiskEngineDataClientOpts { esClient: ElasticsearchClient; namespace: string; soClient: SavedObjectsClientContract; - dataStreamAdapter: DataStreamAdapter; } export class RiskEngineDataClient { @@ -281,13 +276,6 @@ export class RiskEngineDataClient { }; await Promise.all([ - createOrUpdateIlmPolicy({ - logger: this.options.logger, - esClient, - name: ilmPolicyName, - policy: ilmPolicy, - dataStreamAdapter: this.options.dataStreamAdapter, - }), createOrUpdateComponentTemplate({ logger: this.options.logger, esClient, @@ -315,12 +303,10 @@ export class RiskEngineDataClient { index_patterns: [indexPatterns.alias], composed_of: [mappingComponentName], template: { + lifecycle: {}, settings: { auto_expand_replicas: '0-1', hidden: true, - 'index.lifecycle': { - name: ilmPolicyName, - }, 'index.mapping.total_fields.limit': totalFieldsLimit, }, mappings: { diff --git a/x-pack/plugins/security_solution/server/lib/risk_engine/tasks/risk_scoring_task.ts b/x-pack/plugins/security_solution/server/lib/risk_engine/tasks/risk_scoring_task.ts index 65ecce6e234ca..b0482b43b5c13 100644 --- a/x-pack/plugins/security_solution/server/lib/risk_engine/tasks/risk_scoring_task.ts +++ b/x-pack/plugins/security_solution/server/lib/risk_engine/tasks/risk_scoring_task.ts @@ -17,7 +17,6 @@ import type { TaskManagerSetupContract, TaskManagerStartContract, } from '@kbn/task-manager-plugin/server'; -import { getDataStreamAdapter } from '@kbn/alerting-plugin/server'; import type { AnalyticsServiceSetup } from '@kbn/core-analytics-server'; import type { AfterKeys, IdentifierType } from '../../../../common/risk_engine'; import type { StartPlugins } from '../../../plugin'; @@ -71,18 +70,12 @@ export const registerRiskScoringTask = ({ getStartServices().then(([coreStart, _]) => { const esClient = coreStart.elasticsearch.client.asInternalUser; const soClient = buildScopedInternalSavedObjectsClientUnsafe({ coreStart, namespace }); - // the risk engine seems to be using alerts-as-data innards for it's - // own purposes. It appears the client is using ILM, and this won't work - // on serverless, so we hardcode "not using datastreams" here, since that - // code will have to change someday ... - const dataStreamAdapter = getDataStreamAdapter({ useDataStreamForAlerts: false }); const riskEngineDataClient = new RiskEngineDataClient({ logger, kibanaVersion, esClient, namespace, soClient, - dataStreamAdapter, }); return riskScoreServiceFactory({ diff --git a/x-pack/plugins/security_solution/server/request_context_factory.ts b/x-pack/plugins/security_solution/server/request_context_factory.ts index 76a4149e11519..be810fd5ae41e 100644 --- a/x-pack/plugins/security_solution/server/request_context_factory.ts +++ b/x-pack/plugins/security_solution/server/request_context_factory.ts @@ -139,7 +139,6 @@ export class RequestContextFactory implements IRequestContextFactory { esClient: coreContext.elasticsearch.client.asCurrentUser, soClient: coreContext.savedObjects.client, namespace: getSpaceId(), - dataStreamAdapter: plugins.alerting.getDataStreamAdapter(), }) ), }; diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/risk_engine/init_and_status_apis.ts b/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/risk_engine/init_and_status_apis.ts index 5693c0a37c5f5..8f651ae70b5c7 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/risk_engine/init_and_status_apis.ts +++ b/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/risk_engine/init_and_status_apis.ts @@ -63,7 +63,6 @@ export default ({ getService }: FtrProviderContext) => { }); it('should install resources on init call', async () => { - const ilmPolicyName = '.risk-score-ilm-policy'; const componentTemplateName = '.risk-score-mappings'; const indexTemplateName = '.risk-score.risk-score-default-index-template'; const dataStreamName = 'risk-score.risk-score-default'; @@ -72,27 +71,6 @@ export default ({ getService }: FtrProviderContext) => { await riskEngineRoutes.init(); - const ilmPolicy = await es.ilm.getLifecycle({ - name: ilmPolicyName, - }); - - expect(ilmPolicy[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: componentTemplates1 } = await es.cluster.getComponentTemplate({ name: componentTemplateName, }); @@ -245,11 +223,9 @@ export default ({ getService }: FtrProviderContext) => { expect(indexTemplate.index_template.template!.mappings?._meta?.kibana?.version).to.be.a( 'string' ); + expect(indexTemplate.index_template.template!.settings).to.eql({ index: { - lifecycle: { - name: '.risk-score-ilm-policy', - }, mapping: { total_fields: { limit: '1000', @@ -260,6 +236,10 @@ export default ({ getService }: FtrProviderContext) => { }, }); + expect(indexTemplate.index_template.template!.lifecycle).to.eql({ + enabled: true, + }); + const dsResponse = await es.indices.get({ index: dataStreamName, }); @@ -273,10 +253,6 @@ export default ({ getService }: FtrProviderContext) => { expect(dataStream?.mappings?._meta?.kibana?.version).to.be.a('string'); expect(dataStream?.mappings?.dynamic).to.eql('false'); - expect(dataStream?.settings?.index?.lifecycle).to.eql({ - name: '.risk-score-ilm-policy', - }); - expect(dataStream?.settings?.index?.mapping).to.eql({ total_fields: { limit: '1000', From fc08c42c58bac3ec3217730ab368ceae04710b7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cau=C3=AA=20Marcondes?= <55978943+cauemarcondes@users.noreply.github.com> Date: Wed, 11 Oct 2023 10:39:16 +0100 Subject: [PATCH 05/79] [Profiling] Enabling Integration by default (#168450) I forgot to change the value to true to automatically enable the Profiling integration on APM --- x-pack/plugins/apm/public/hooks/use_profiling_plugin.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x-pack/plugins/apm/public/hooks/use_profiling_plugin.tsx b/x-pack/plugins/apm/public/hooks/use_profiling_plugin.tsx index e28d8f22e08ff..61b8554a940a7 100644 --- a/x-pack/plugins/apm/public/hooks/use_profiling_plugin.tsx +++ b/x-pack/plugins/apm/public/hooks/use_profiling_plugin.tsx @@ -13,7 +13,7 @@ export function useProfilingPlugin() { const { plugins, core } = useApmPluginContext(); const isProfilingIntegrationEnabled = core.uiSettings.get( apmEnableProfilingIntegration, - false + true ); const { data } = useFetcher((callApmApi) => { From f08818d098b04bdf3e1baaefa0ada6ca03af338c Mon Sep 17 00:00:00 2001 From: Gloria Hornero Date: Wed, 11 Oct 2023 12:09:42 +0200 Subject: [PATCH 06/79] [Security Solution] Unskipping `x-pack/test/security_solution_cypress/cypress/e2e/explore/cases/` working tests on serverless (#167878) Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../explore/cases/attach_alert_to_case.cy.ts | 2 +- .../e2e/explore/cases/attach_timeline.cy.ts | 130 +++++++++--------- .../e2e/explore/cases/connector_options.cy.ts | 112 +++++++-------- .../cypress/e2e/explore/cases/creation.cy.ts | 14 +- .../e2e/explore/cases/privileges.cy.ts | 2 +- .../cypress/screens/create_new_case.ts | 2 + .../cypress/tasks/create_new_case.ts | 29 +++- 7 files changed, 154 insertions(+), 137 deletions(-) diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/explore/cases/attach_alert_to_case.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/explore/cases/attach_alert_to_case.cy.ts index 0d9253ff2bd30..caa560f13aead 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/explore/cases/attach_alert_to_case.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/explore/cases/attach_alert_to_case.cy.ts @@ -25,7 +25,7 @@ const loadDetectionsPage = (role: ROLES) => { waitForAlertsToPopulate(); }; -describe('Alerts timeline', { tags: ['@ess', '@serverless', '@brokenInServerless'] }, () => { +describe('Alerts timeline', { tags: ['@ess'] }, () => { before(() => { // First we login as a privileged user to create alerts. cleanKibana(); diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/explore/cases/attach_timeline.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/explore/cases/attach_timeline.cy.ts index fbcaaf22dc0c0..446f34632f4cd 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/explore/cases/attach_timeline.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/explore/cases/attach_timeline.cy.ts @@ -20,87 +20,83 @@ import { createTimeline } from '../../../tasks/api_calls/timelines'; import { cleanKibana, deleteTimelines } from '../../../tasks/common'; import { createCase } from '../../../tasks/api_calls/cases'; -describe( - 'attach timeline to case', - { tags: ['@ess', '@serverless', '@brokenInServerless'] }, - () => { - context('without cases created', () => { - before(() => { - cleanKibana(); - }); +describe('attach timeline to case', { tags: ['@ess', '@serverless'] }, () => { + context('without cases created', () => { + before(() => { + cleanKibana(); + }); - beforeEach(() => { - login(); - deleteTimelines(); - createTimeline(getTimeline()).then((response) => { - cy.wrap(response.body.data.persistTimeline.timeline).as('myTimeline'); - }); + beforeEach(() => { + login(); + deleteTimelines(); + createTimeline(getTimeline()).then((response) => { + cy.wrap(response.body.data.persistTimeline.timeline).as('myTimeline'); }); + }); - it('attach timeline to a new case', function () { - visitTimeline(this.myTimeline.savedObjectId); - attachTimelineToNewCase(); + it('attach timeline to a new case', function () { + visitTimeline(this.myTimeline.savedObjectId); + attachTimelineToNewCase(); - cy.location('origin').then((origin) => { - cy.get(DESCRIPTION_INPUT).should( - 'have.text', - `[${this.myTimeline.title}](${origin}/app/security/timelines?timeline=(id:%27${this.myTimeline.savedObjectId}%27,isOpen:!t))` - ); - }); + cy.location('origin').then((origin) => { + cy.get(DESCRIPTION_INPUT).should( + 'have.text', + `[${this.myTimeline.title}](${origin}/app/security/timelines?timeline=(id:%27${this.myTimeline.savedObjectId}%27,isOpen:!t))` + ); }); + }); - it('attach timeline to an existing case with no case', function () { - visitTimeline(this.myTimeline.savedObjectId); - attachTimelineToExistingCase(); - addNewCase(); + it('attach timeline to an existing case with no case', function () { + visitTimeline(this.myTimeline.savedObjectId); + attachTimelineToExistingCase(); + addNewCase(); - cy.location('origin').then((origin) => { - cy.get(DESCRIPTION_INPUT).should( - 'have.text', - `[${this.myTimeline.title}](${origin}/app/security/timelines?timeline=(id:%27${this.myTimeline.savedObjectId}%27,isOpen:!t))` - ); - }); + cy.location('origin').then((origin) => { + cy.get(DESCRIPTION_INPUT).should( + 'have.text', + `[${this.myTimeline.title}](${origin}/app/security/timelines?timeline=(id:%27${this.myTimeline.savedObjectId}%27,isOpen:!t))` + ); }); }); + }); - context('with cases created', () => { - before(() => { - login(); - deleteTimelines(); - createTimeline(getTimeline()).then((response) => - cy.wrap(response.body.data.persistTimeline.timeline.savedObjectId).as('timelineId') - ); - createCase(getCase1()).then((response) => cy.wrap(response.body.id).as('caseId')); - }); + context('with cases created', () => { + before(() => { + login(); + deleteTimelines(); + createTimeline(getTimeline()).then((response) => + cy.wrap(response.body.data.persistTimeline.timeline.savedObjectId).as('timelineId') + ); + createCase(getCase1()).then((response) => cy.wrap(response.body.id).as('caseId')); + }); - beforeEach(() => { - login(); - }); + beforeEach(() => { + login(); + }); - it('attach timeline to an existing case', function () { - visitTimeline(this.timelineId); - attachTimelineToExistingCase(); - selectCase(this.caseId); + it('attach timeline to an existing case', function () { + visitTimeline(this.timelineId); + attachTimelineToExistingCase(); + selectCase(this.caseId); - cy.location('origin').then((origin) => { - cy.get(ADD_COMMENT_INPUT).should( - 'have.text', - `[${getTimeline().title}](${origin}/app/security/timelines?timeline=(id:%27${ - this.timelineId - }%27,isOpen:!t))` - ); - }); + cy.location('origin').then((origin) => { + cy.get(ADD_COMMENT_INPUT).should( + 'have.text', + `[${getTimeline().title}](${origin}/app/security/timelines?timeline=(id:%27${ + this.timelineId + }%27,isOpen:!t))` + ); }); + }); - it('modal can be re-opened once closed', function () { - visitTimeline(this.timelineId); - attachTimelineToExistingCase(); - cy.get('[data-test-subj="all-cases-modal-cancel-button"]').click({ force: true }); + it('modal can be re-opened once closed', function () { + visitTimeline(this.timelineId); + attachTimelineToExistingCase(); + cy.get('[data-test-subj="all-cases-modal-cancel-button"]').click({ force: true }); - cy.get('[data-test-subj="all-cases-modal"]').should('not.exist'); - attachTimelineToExistingCase(); - cy.get('[data-test-subj="all-cases-modal"]').should('be.visible'); - }); + cy.get('[data-test-subj="all-cases-modal"]').should('not.exist'); + attachTimelineToExistingCase(); + cy.get('[data-test-subj="all-cases-modal"]').should('be.visible'); }); - } -); + }); +}); diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/explore/cases/connector_options.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/explore/cases/connector_options.cy.ts index 77deb29731726..8bc8d67d9e1be 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/explore/cases/connector_options.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/explore/cases/connector_options.cy.ts @@ -30,69 +30,61 @@ import { CONNECTOR_CARD_DETAILS, CONNECTOR_TITLE } from '../../../screens/case_d import { cleanKibana } from '../../../tasks/common'; // FLAKY: https://github.com/elastic/kibana/issues/165712 -describe( - 'Cases connector incident fields', - { tags: ['@ess', '@serverless', '@brokenInServerless'] }, - () => { - before(() => { - cleanKibana(); - login(); - }); +describe('Cases connector incident fields', { tags: ['@ess', '@serverless'] }, () => { + before(() => { + cleanKibana(); + login(); + }); - beforeEach(() => { - login(); - cy.intercept('GET', '/api/cases/configure/connectors/_find', getMockConnectorsResponse()); - cy.intercept('POST', `/api/actions/connector/${getConnectorIds().sn}/_execute`, (req) => { - const response = - req.body.params.subAction === 'getChoices' - ? getExecuteResponses().servicenow.choices - : { status: 'ok', data: [] }; - req.reply(response); - }); - cy.intercept('POST', `/api/actions/connector/${getConnectorIds().jira}/_execute`, (req) => { + beforeEach(() => { + login(); + cy.intercept('GET', '/api/cases/configure/connectors/_find', getMockConnectorsResponse()); + cy.intercept('POST', `/api/actions/connector/${getConnectorIds().sn}/_execute`, (req) => { + const response = + req.body.params.subAction === 'getChoices' + ? getExecuteResponses().servicenow.choices + : { status: 'ok', data: [] }; + req.reply(response); + }); + cy.intercept('POST', `/api/actions/connector/${getConnectorIds().jira}/_execute`, (req) => { + const response = + req.body.params.subAction === 'issueTypes' + ? getExecuteResponses().jira.issueTypes + : getExecuteResponses().jira.fieldsByIssueType; + req.reply(response); + }); + cy.intercept( + 'POST', + `/api/actions/connector/${getConnectorIds().resilient}/_execute`, + (req) => { const response = - req.body.params.subAction === 'issueTypes' - ? getExecuteResponses().jira.issueTypes - : getExecuteResponses().jira.fieldsByIssueType; - req.reply(response); - }); - cy.intercept( - 'POST', - `/api/actions/connector/${getConnectorIds().resilient}/_execute`, - (req) => { - const response = - req.body.params.subAction === 'incidentTypes' - ? getExecuteResponses().resilient.incidentTypes - : getExecuteResponses().resilient.severity; + req.body.params.subAction === 'incidentTypes' + ? getExecuteResponses().resilient.incidentTypes + : getExecuteResponses().resilient.severity; - req.reply(response); - } - ); - cy.intercept( - 'POST', - `/api/cases/**/connector/${getConnectorIds().resilient}/_push`, - (req) => { - req.reply(getCaseResponse()); - } - ); + req.reply(response); + } + ); + cy.intercept('POST', `/api/cases/**/connector/${getConnectorIds().resilient}/_push`, (req) => { + req.reply(getCaseResponse()); }); + }); - it('Correct incident fields show when connector is changed', () => { - visit(CASES_URL); - goToCreateNewCase(); - fillCasesMandatoryfields(getCase1()); - fillJiraConnectorOptions(getJiraConnectorOptions()); - fillServiceNowConnectorOptions(getServiceNowConnectorOptions()); - fillIbmResilientConnectorOptions(getIbmResilientConnectorOptions()); - createCase(); + it('Correct incident fields show when connector is changed', () => { + visit(CASES_URL); + goToCreateNewCase(); + fillCasesMandatoryfields(getCase1()); + fillJiraConnectorOptions(getJiraConnectorOptions()); + fillServiceNowConnectorOptions(getServiceNowConnectorOptions()); + fillIbmResilientConnectorOptions(getIbmResilientConnectorOptions()); + createCase(); - cy.get(CONNECTOR_TITLE).should('have.text', getIbmResilientConnectorOptions().title); - cy.get(CONNECTOR_CARD_DETAILS).should( - 'have.text', - `Incident Types: ${getIbmResilientConnectorOptions().incidentTypes.join(', ')}Severity: ${ - getIbmResilientConnectorOptions().severity - }` - ); - }); - } -); + cy.get(CONNECTOR_TITLE).should('have.text', getIbmResilientConnectorOptions().title); + cy.get(CONNECTOR_CARD_DETAILS).should( + 'have.text', + `Incident Types: ${getIbmResilientConnectorOptions().incidentTypes.join(', ')}Severity: ${ + getIbmResilientConnectorOptions().severity + }` + ); + }); +}); diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/explore/cases/creation.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/explore/cases/creation.cy.ts index ca279e69f336c..79730b3c45854 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/explore/cases/creation.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/explore/cases/creation.cy.ts @@ -49,13 +49,13 @@ import { fillCasesMandatoryfields, filterStatusOpen, } from '../../../tasks/create_new_case'; -import { loginWithUser } from '../../../tasks/login'; +import { login } from '../../../tasks/login'; import { visit, visitWithTimeRange } from '../../../tasks/navigation'; import { CASES_URL, OVERVIEW_URL } from '../../../urls/navigation'; // Tracked by https://github.com/elastic/security-team/issues/7696 -describe.skip('Cases', { tags: ['@ess', '@serverless', '@brokenInServerless'] }, () => { +describe('Cases', { tags: ['@ess', '@serverless'] }, () => { before(() => { cleanKibana(); createTimeline(getCase1().timeline).then((response) => @@ -72,7 +72,7 @@ describe.skip('Cases', { tags: ['@ess', '@serverless', '@brokenInServerless'] }, }); it('Creates a new case with timeline and opens the timeline', function () { - loginWithUser({ username: 'elastic', password: 'changeme' }); + login(); visit(CASES_URL); goToCreateNewCase(); fillCasesMandatoryfields(this.mycase); @@ -105,8 +105,12 @@ describe.skip('Cases', { tags: ['@ess', '@serverless', '@brokenInServerless'] }, 'have.text', `${this.mycase.description} ${this.mycase.timeline.title}` ); - cy.get(CASE_DETAILS_USERNAMES).eq(REPORTER).should('have.text', this.mycase.reporter); - cy.get(CASE_DETAILS_USERNAMES).eq(PARTICIPANTS).should('have.text', this.mycase.reporter); + cy.get(CASE_DETAILS_USERNAMES) + .eq(REPORTER) + .should('have.text', Cypress.env('ELASTICSEARCH_USERNAME')); + cy.get(CASE_DETAILS_USERNAMES) + .eq(PARTICIPANTS) + .should('have.text', Cypress.env('ELASTICSEARCH_USERNAME')); cy.get(CASE_DETAILS_TAGS).should('have.text', expectedTags); EXPECTED_METRICS.forEach((metric) => { diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/explore/cases/privileges.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/explore/cases/privileges.cy.ts index 73836e1cd913a..b866fb01475b4 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/explore/cases/privileges.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/explore/cases/privileges.cy.ts @@ -49,7 +49,7 @@ const testCase: TestCaseWithoutTimeline = { owner: 'securitySolution', }; -describe('Cases privileges', { tags: ['@ess', '@serverless', '@brokenInServerless'] }, () => { +describe('Cases privileges', { tags: ['@ess'] }, () => { before(() => { cleanKibana(); createUsersAndRoles(usersToCreate, rolesToCreate); diff --git a/x-pack/test/security_solution_cypress/cypress/screens/create_new_case.ts b/x-pack/test/security_solution_cypress/cypress/screens/create_new_case.ts index c2272de50f80a..ad7e26d209d5c 100644 --- a/x-pack/test/security_solution_cypress/cypress/screens/create_new_case.ts +++ b/x-pack/test/security_solution_cypress/cypress/screens/create_new_case.ts @@ -11,6 +11,8 @@ export const BACK_TO_CASES_BTN = '[data-test-subj="backToCases"]'; export const DESCRIPTION_INPUT = '[data-test-subj="caseDescription"] textarea'; +export const EMPTY_TIMELINE = '[data-test-subj="euiSelectableMessage"]'; + export const INSERT_TIMELINE_BTN = '.euiMarkdownEditorToolbar [aria-label="Insert timeline link"]'; export const LOADING_SPINNER = '[data-test-subj="create-case-loading-spinner"]'; diff --git a/x-pack/test/security_solution_cypress/cypress/tasks/create_new_case.ts b/x-pack/test/security_solution_cypress/cypress/tasks/create_new_case.ts index 3b72e6acc6050..65da5e0a7d5fd 100644 --- a/x-pack/test/security_solution_cypress/cypress/tasks/create_new_case.ts +++ b/x-pack/test/security_solution_cypress/cypress/tasks/create_new_case.ts @@ -13,8 +13,8 @@ import type { TestCaseWithoutTimeline, } from '../objects/case'; import { ALL_CASES_OPEN_CASES_COUNT, ALL_CASES_OPEN_FILTER } from '../screens/all_cases'; - import { TIMELINE_SEARCHBOX } from '../screens/common/controls'; + import { BACK_TO_CASES_BTN, DESCRIPTION_INPUT, @@ -23,6 +23,8 @@ import { LOADING_SPINNER, TAGS_INPUT, TITLE_INPUT, + TIMELINE, + EMPTY_TIMELINE, } from '../screens/create_new_case'; import { CONNECTOR_RESILIENT, @@ -37,6 +39,7 @@ import { SELECT_SN, SELECT_URGENCY, } from '../screens/edit_connector'; +import { LOADING_INDICATOR } from '../screens/security_header'; export const backToCases = () => { cy.get(BACK_TO_CASES_BTN).click({ force: true }); @@ -56,8 +59,28 @@ export const fillCasesMandatoryfields = (newCase: TestCaseWithoutTimeline) => { }; export const attachTimeline = (newCase: TestCase) => { - cy.get(INSERT_TIMELINE_BTN).click({ force: true }); - cy.get(TIMELINE_SEARCHBOX).type(`${newCase.timeline.title}{enter}`); + cy.waitUntil( + () => { + cy.log('Waiting for timeline to appear'); + cy.get('body').type('{esc}'); + cy.get(INSERT_TIMELINE_BTN).click(); + cy.get(LOADING_INDICATOR).should('not.exist'); + cy.get(TIMELINE_SEARCHBOX).should('exist'); + cy.get(TIMELINE_SEARCHBOX).should('be.visible'); + + return cy.root().then(($el) => { + const emptyTimelineState = $el.find(EMPTY_TIMELINE); + if (emptyTimelineState.length > 0) { + cy.log('Timeline dropdown is empty'); + return false; + } else { + return true; + } + }); + }, + { interval: 500, timeout: 12000 } + ); + cy.get(TIMELINE).eq(1).click(); }; export const createCase = () => { From 2df247a75b97a7c538bea3993876e9e98418ba7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Efe=20G=C3=BCrkan=20YALAMAN?= Date: Wed, 11 Oct 2023 12:17:15 +0200 Subject: [PATCH 07/79] [Enterprise Search] Group Connector Advanced Config together (#168533) ## Summary Advanced Connector configuration from Rich Configurable Fields are grouped together. Screenshot 2023-10-10 at 22 21 52 Screenshot 2023-10-10 at 22 22 03 ### 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] [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] This renders correctly on smaller devices using a responsive layout. (You can test this [in your browser](https://www.browserstack.com/guide/responsive-testing-on-local-server)) - [x] This was checked for [cross-browser compatibility](https://www.elastic.co/support/matrix#matrix_browsers) --------- Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../connector_configuration_field.tsx | 8 +- .../connector_configuration_form.tsx | 20 ++ .../connector_configuration_logic.test.ts | 90 +++++--- .../connector_configuration_logic.ts | 178 +------------- .../utils/connector_configuration_utils.ts | 217 ++++++++++++++++++ .../translations/translations/ja-JP.json | 2 +- .../translations/translations/zh-CN.json | 2 +- 7 files changed, 299 insertions(+), 218 deletions(-) create mode 100644 x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/utils/connector_configuration_utils.ts diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_configuration_field.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_configuration_field.tsx index 2408d58e4c5f2..3f3de6ce0eca6 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_configuration_field.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_configuration_field.tsx @@ -34,13 +34,9 @@ import { ConnectorConfigurationApiLogic } from '../../../api/connector/update_co import { PlatinumLicensePopover } from '../../shared/platinum_license_popover/platinum_license_popover'; -import { - ConnectorConfigurationLogic, - ConfigEntryView, - ensureStringType, - ensureBooleanType, -} from './connector_configuration_logic'; +import { ConnectorConfigurationLogic, ConfigEntryView } from './connector_configuration_logic'; import { DocumentLevelSecurityPanel } from './document_level_security/document_level_security_panel'; +import { ensureBooleanType, ensureStringType } from './utils/connector_configuration_utils'; interface ConnectorConfigurationFieldProps { configEntry: ConfigEntryView; diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_configuration_form.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_configuration_form.tsx index 9d7f9841f16f3..818ffc7ccb4c9 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_configuration_form.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_configuration_form.tsx @@ -17,6 +17,7 @@ import { EuiForm, EuiFormRow, EuiSpacer, + EuiPanel, EuiTitle, } from '@elastic/eui'; @@ -63,6 +64,25 @@ export const ConnectorConfigurationForm = () => { /> ))} + {localConfigView.advancedConfigurations.length > 0 && ( + + + +

+ {i18n.translate( + 'xpack.enterpriseSearch.content.indices.configurationConnector.config.advancedConfigurations.title', + { defaultMessage: 'Advanced Configurations' } + )} +

+
+ + + +
+ )} diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_configuration_logic.test.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_configuration_logic.test.ts index 2360b0f9290c6..ba8c94871b130 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_configuration_logic.test.ts +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_configuration_logic.test.ts @@ -20,11 +20,15 @@ import { ConnectorConfigurationLogic } from './connector_configuration_logic'; const DEFAULT_VALUES = { configState: {}, - configView: { categories: [], unCategorizedItems: [] }, + configView: { + advancedConfigurations: [], + categories: [], + unCategorizedItems: [], + }, index: null, isEditing: false, localConfigState: {}, - localConfigView: { categories: [], unCategorizedItems: [] }, + localConfigView: { advancedConfigurations: [], categories: [], unCategorizedItems: [] }, shouldStartInEditMode: false, }; @@ -89,6 +93,7 @@ describe('ConnectorConfigurationLogic', () => { }, }, configView: { + advancedConfigurations: [], categories: [], unCategorizedItems: [ { @@ -151,6 +156,7 @@ describe('ConnectorConfigurationLogic', () => { }, }, configView: { + advancedConfigurations: [], categories: [], unCategorizedItems: [ { @@ -554,6 +560,26 @@ describe('ConnectorConfigurationLogic', () => { }, }, configView: { + advancedConfigurations: [ + { + default_value: '', + depends_on: [], + display: DisplayType.TEXTBOX, + is_valid: true, + key: 'restricted', + label: 'Restricted', + options: [], + order: 3, + required: false, + sensitive: true, + tooltip: '', + type: FieldType.STRING, + ui_restrictions: ['advanced'], + validations: [], + validation_errors: [], + value: 'I am restricted', + }, + ], categories: [ { configEntries: [ @@ -602,24 +628,6 @@ describe('ConnectorConfigurationLogic', () => { validation_errors: [], value: 'fourthBar', }, - { - default_value: '', - depends_on: [], - display: DisplayType.TEXTBOX, - is_valid: true, - key: 'restricted', - label: 'Restricted', - options: [], - order: 3, - required: false, - sensitive: true, - tooltip: '', - type: FieldType.STRING, - ui_restrictions: ['advanced'], - validations: [], - validation_errors: [], - value: 'I am restricted', - }, { default_value: '', depends_on: [{ field: 'bar', value: 'foofoo' }], @@ -781,6 +789,27 @@ describe('ConnectorConfigurationLogic', () => { }, }, localConfigView: { + advancedConfigurations: [ + { + default_value: '', + depends_on: [], + display: DisplayType.TEXTBOX, + is_valid: true, + key: 'restricted', + label: 'Restricted', + options: [], + order: 3, + required: false, + sensitive: true, + tooltip: '', + type: FieldType.STRING, + ui_restrictions: ['advanced'], + validations: [], + validation_errors: [], + value: 'I am restricted', + }, + ], + categories: [ { key: 'category', @@ -829,24 +858,6 @@ describe('ConnectorConfigurationLogic', () => { validation_errors: [], value: 'fourthBar', }, - { - default_value: '', - depends_on: [], - display: DisplayType.TEXTBOX, - is_valid: true, - key: 'restricted', - label: 'Restricted', - options: [], - order: 3, - required: false, - sensitive: true, - tooltip: '', - type: FieldType.STRING, - ui_restrictions: ['advanced'], - validations: [], - validation_errors: [], - value: 'I am restricted', - }, { default_value: '', @@ -899,6 +910,7 @@ describe('ConnectorConfigurationLogic', () => { ...DEFAULT_VALUES, configState: connectorIndex.connector.configuration, configView: { + advancedConfigurations: [], categories: [], unCategorizedItems: [ { @@ -943,6 +955,7 @@ describe('ConnectorConfigurationLogic', () => { ...DEFAULT_VALUES, configState: connectorIndex.connector.configuration, configView: { + advancedConfigurations: [], categories: [], unCategorizedItems: [ { @@ -972,6 +985,7 @@ describe('ConnectorConfigurationLogic', () => { isEditing: true, localConfigState: connectorIndex.connector.configuration, localConfigView: { + advancedConfigurations: [], categories: [], unCategorizedItems: [ { diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_configuration_logic.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_configuration_logic.ts index 4bf874b3b3ea0..f4368fe3e806b 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_configuration_logic.ts +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_configuration_logic.ts @@ -7,14 +7,10 @@ import { kea, MakeLogicType } from 'kea'; -import { i18n } from '@kbn/i18n'; - import { ConnectorConfigProperties, ConnectorConfiguration, ConnectorStatus, - Dependency, - FieldType, } from '@kbn/search-connectors'; import { isCategoryEntry } from '../../../../../../common/connectors/is_category_entry'; @@ -31,6 +27,11 @@ import { import { FetchIndexApiResponse } from '../../../api/index/fetch_index_api_logic'; import { isConnectorIndex } from '../../../utils/indices'; +import { + ensureCorrectTyping, + sortAndFilterConnectorConfiguration, +} from './utils/connector_configuration_utils'; + type ConnectorConfigurationActions = Pick< PostConnectorConfigurationActions, 'apiSuccess' | 'makeRequest' @@ -75,178 +76,11 @@ export interface CategoryEntry { } export interface ConfigView { + advancedConfigurations: ConfigEntryView[]; categories: CategoryEntry[]; unCategorizedItems: ConfigEntryView[]; } -/** - * - * Sorts and filters the connector configuration - * - * Sorting is done by specified order (if present) - * otherwise by alphabetic order of keys - * - * Filtering is done on any fields with ui_restrictions - * or that have not had their dependencies met - * - */ -function sortAndFilterConnectorConfiguration( - config: ConnectorConfiguration, - isNative: boolean -): ConfigView { - // This casting is ugly but makes all of the iteration below work for TypeScript - // extract_full_html is only defined for crawlers, who don't use this config screen - // we explicitly filter it out as well - const entries = Object.entries( - config as Omit - ).filter(([key]) => key !== 'extract_full_html'); - const groupedConfigView = entries - .map(([key, entry]) => { - if (!entry || !isCategoryEntry(entry)) { - return null; - } - const configEntries = entries - .map(([configKey, configEntry]) => { - if (!configEntry || isCategoryEntry(configEntry) || configEntry.category !== key) { - return null; - } - return { key: configKey, ...configEntry }; - }) - .filter(isNotNullish); - return { ...entry, configEntries, key }; - }) - .filter(isNotNullish); - - const unCategorizedItems = filterSortValidateEntries( - entries - .map(([key, entry]) => - entry && !isCategoryEntry(entry) && !entry.category ? { key, ...entry } : null - ) - .filter(isNotNullish), - config, - isNative - ); - const categories = groupedConfigView - .map((category) => { - const configEntries = filterSortValidateEntries(category.configEntries, config, isNative); - - return configEntries.length > 0 ? { ...category, configEntries } : null; - }) - .filter(isNotNullish); - - return { categories, unCategorizedItems }; -} - -function filterSortValidateEntries( - configEntries: Array, - config: ConnectorConfiguration, - isNative: boolean -): ConfigEntryView[] { - return configEntries - .filter( - (configEntry) => - ((configEntry.ui_restrictions ?? []).length <= 0 || !isNative) && - dependenciesSatisfied(configEntry.depends_on, config) - ) - .sort((a, b) => { - if (isNotNullish(a.order)) { - if (isNotNullish(b.order)) { - return a.order - b.order; - } - return -1; - } - if (isNotNullish(b.order)) { - // a doesn't have an order, but b has an order so takes precedence - return 1; - } - return a.key.localeCompare(b.key); - }) - .map((configEntry) => { - const label = configEntry.label; - - const validationErrors = []; - - if (configEntry.type === FieldType.INTEGER && !validIntInput(configEntry.value)) { - validationErrors.push( - i18n.translate( - 'xpack.enterpriseSearch.content.indices.configurationConnector.config.invalidInteger', - { - defaultMessage: '{label} must be an integer.', - values: { label }, - } - ) - ); - } - - return { - ...configEntry, - is_valid: validationErrors.length <= 0, - validation_errors: validationErrors, - }; - }); -} - -function validIntInput(value: string | number | boolean | null): boolean { - // reject non integers (including x.0 floats), but don't validate if empty - return (value !== null || value !== '') && - (isNaN(Number(value)) || - !Number.isSafeInteger(Number(value)) || - ensureStringType(value).indexOf('.') >= 0) - ? false - : true; -} - -function ensureCorrectTyping( - type: FieldType, - value: string | number | boolean | null -): string | number | boolean | null { - switch (type) { - case FieldType.INTEGER: - return validIntInput(value) ? ensureIntType(value) : value; - case FieldType.BOOLEAN: - return ensureBooleanType(value); - default: - return ensureStringType(value); - } -} - -export function ensureStringType(value: string | number | boolean | null): string { - return value !== null ? String(value) : ''; -} - -export function ensureIntType(value: string | number | boolean | null): number | null { - // int is null-safe to prevent empty values from becoming zeroes - if (value === null || value === '') { - return null; - } - - return parseInt(String(value), 10); -} - -export function ensureBooleanType(value: string | number | boolean | null): boolean { - return Boolean(value); -} - -export function dependenciesSatisfied( - dependencies: Dependency[], - dependencyLookup: ConnectorConfiguration -): boolean { - if (!dependencies) { - return true; - } - - for (const dependency of dependencies) { - // casting here because this is always going to be a ConnectorConfigProperties and not a Category - if ( - dependency.value !== (dependencyLookup[dependency.field] as ConnectorConfigProperties)?.value - ) { - return false; - } - } - - return true; -} - export const ConnectorConfigurationLogic = kea< MakeLogicType >({ diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/utils/connector_configuration_utils.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/utils/connector_configuration_utils.ts new file mode 100644 index 0000000000000..b34f586898dd2 --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/utils/connector_configuration_utils.ts @@ -0,0 +1,217 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; +import { + ConnectorConfigProperties, + ConnectorConfiguration, + Dependency, + FieldType, + isConfigEntry, +} from '@kbn/search-connectors'; + +import { isCategoryEntry } from '../../../../../../../common/connectors/is_category_entry'; + +import { isNotNullish } from '../../../../../../../common/utils/is_not_nullish'; + +import type { ConfigEntryView, ConfigView } from '../connector_configuration_logic'; + +export type ConnectorConfigEntry = ConnectorConfigProperties & { key: string }; + +export const validIntInput = (value: string | number | boolean | null): boolean => { + // reject non integers (including x.0 floats), but don't validate if empty + return (value !== null || value !== '') && + (isNaN(Number(value)) || + !Number.isSafeInteger(Number(value)) || + ensureStringType(value).indexOf('.') >= 0) + ? false + : true; +}; + +export const ensureCorrectTyping = ( + type: FieldType, + value: string | number | boolean | null +): string | number | boolean | null => { + switch (type) { + case FieldType.INTEGER: + return validIntInput(value) ? ensureIntType(value) : value; + case FieldType.BOOLEAN: + return ensureBooleanType(value); + default: + return ensureStringType(value); + } +}; + +export const ensureStringType = (value: string | number | boolean | null): string => { + return value !== null ? String(value) : ''; +}; + +export const ensureIntType = (value: string | number | boolean | null): number | null => { + // int is null-safe to prevent empty values from becoming zeroes + if (value === null || value === '') { + return null; + } + + return parseInt(String(value), 10); +}; + +export const ensureBooleanType = (value: string | number | boolean | null): boolean => { + return Boolean(value); +}; + +export function dependenciesSatisfied( + dependencies: Dependency[], + dependencyLookup: ConnectorConfiguration +): boolean { + if (!dependencies) { + return true; + } + + for (const dependency of dependencies) { + // casting here because this is always going to be a ConnectorConfigProperties and not a Category + if ( + dependency.value !== (dependencyLookup[dependency.field] as ConnectorConfigProperties)?.value + ) { + return false; + } + } + + return true; +} + +export const sortByConfigOrder = (a: ConnectorConfigEntry, b: ConnectorConfigEntry) => { + if (isNotNullish(a.order)) { + if (isNotNullish(b.order)) { + return a.order - b.order; + } + return -1; + } + if (isNotNullish(b.order)) { + // a doesn't have an order, but b has an order so takes precedence + return 1; + } + return a.key.localeCompare(b.key); +}; + +export const hasUiRestrictions = (configEntry: Partial) => { + return (configEntry.ui_restrictions ?? []).length > 0; +}; + +export const filterSortValidateEntries = ( + configEntries: ConnectorConfigEntry[], + config: ConnectorConfiguration, + isNative: boolean +): ConfigEntryView[] => { + return configEntries + .filter((configEntry) => + isNative + ? !hasUiRestrictions(configEntry) && dependenciesSatisfied(configEntry.depends_on, config) + : dependenciesSatisfied(configEntry.depends_on, config) + ) + .sort(sortByConfigOrder) + .map((configEntry) => { + const label = configEntry.label; + + const validationErrors = []; + + if (configEntry.type === FieldType.INTEGER && !validIntInput(configEntry.value)) { + validationErrors.push( + i18n.translate( + 'xpack.enterpriseSearch.content.indices.configurationConnector.config.invalidInteger', + { + defaultMessage: '{label} must be an integer.', + values: { label }, + } + ) + ); + } + + return { + ...configEntry, + is_valid: validationErrors.length <= 0, + validation_errors: validationErrors, + }; + }); +}; + +/** + * + * Sorts and filters the connector configuration + * + * Sorting is done by specified order (if present) + * otherwise by alphabetic order of keys + * + * Filtering is done on any fields with ui_restrictions + * or that have not had their dependencies met + * + */ +export const sortAndFilterConnectorConfiguration = ( + config: ConnectorConfiguration, + isNative: boolean +): ConfigView => { + // This casting is ugly but makes all of the iteration below work for TypeScript + // extract_full_html is only defined for crawlers, who don't use this config screen + // we explicitly filter it out as well + const entries = Object.entries( + config as Omit + ).filter(([key]) => key !== 'extract_full_html'); + + const groupedConfigView = entries + .map(([key, entry]) => { + if (!entry || !isCategoryEntry(entry)) { + return null; + } + const configEntries = entries + .map(([configKey, configEntry]) => { + if (!configEntry || isCategoryEntry(configEntry) || configEntry.category !== key) { + return null; + } + return { key: configKey, ...configEntry }; + }) + .filter(isNotNullish); + return { ...entry, configEntries, key }; + }) + .filter(isNotNullish); + + const unCategorizedItems = filterSortValidateEntries( + entries + .map(([key, entry]) => + entry && !isCategoryEntry(entry) && !entry.category && !hasUiRestrictions(entry) + ? { key, ...entry } + : null + ) + .filter(isNotNullish), + config, + isNative + ); + const categories = groupedConfigView + .map((category) => { + const configEntries = filterSortValidateEntries(category.configEntries, config, isNative); + + return configEntries.length > 0 ? { ...category, configEntries } : null; + }) + .filter(isNotNullish); + + const advancedConfigurations = isNative + ? [] + : filterSortValidateEntries( + entries + .map(([key, entry]) => { + return entry && isConfigEntry(entry) && entry.ui_restrictions.includes('advanced') + ? { key, ...entry } + : null; + }) + .filter(isNotNullish), + config, + isNative + ); + return { + advancedConfigurations: advancedConfigurations || [], + categories, + unCategorizedItems, + }; +}; diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index 5efc40199e164..1b553f1774fee 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -229,7 +229,7 @@ "coloring.dynamicColoring.rangeType.label": "値型", "coloring.dynamicColoring.rangeType.number": "数字", "coloring.dynamicColoring.rangeType.percent": "割合(%)", - "coloring.colorMapping.terms.otherBucketLabel":"その他", + "coloring.colorMapping.terms.otherBucketLabel": "その他", "coloring.colorMapping.terms.emptyLabel": "(空)", "console.helpPage.learnAboutConsoleAndQueryDslText": "{console}と{queryDsl}についてさらに詳しく", "console.historyPage.itemOfRequestListAriaLabel": "リクエスト:{historyItem}", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index 37c95c19b5b3e..e7cd86ac59572 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -229,7 +229,7 @@ "coloring.dynamicColoring.rangeType.label": "值类型", "coloring.dynamicColoring.rangeType.number": "数字", "coloring.dynamicColoring.rangeType.percent": "百分比", - "coloring.colorMapping.terms.otherBucketLabel":"其他", + "coloring.colorMapping.terms.otherBucketLabel": "其他", "coloring.colorMapping.terms.emptyLabel": "(空)", "console.helpPage.learnAboutConsoleAndQueryDslText": "了解 {console} 和 {queryDsl}", "console.historyPage.itemOfRequestListAriaLabel": "请求:{historyItem}", From 3afef435deb1d6b2667b0b676b2e5897c0a07ec6 Mon Sep 17 00:00:00 2001 From: Pierre Gayvallet Date: Wed, 11 Oct 2023 12:21:15 +0200 Subject: [PATCH 08/79] Add namespaceType to SavedObjectModelTransformationContext (#168489) ## Summary Required for https://github.com/elastic/kibana/issues/161002 Add `namespaceType` to the SO migration context that is passed down to MV transformation functions --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- .../model_version/build_transform_fn.test.ts | 1 + .../document_migrator/model_version.test.ts | 12 +++++--- .../src/document_migrator/model_version.ts | 12 +++++--- .../core-saved-objects-server/index.ts | 1 - .../src/model_version/index.ts | 1 - .../src/model_version/transformations.ts | 28 ++++--------------- 6 files changed, 22 insertions(+), 33 deletions(-) diff --git a/packages/core/saved-objects/core-saved-objects-base-server-internal/src/model_version/build_transform_fn.test.ts b/packages/core/saved-objects/core-saved-objects-base-server-internal/src/model_version/build_transform_fn.test.ts index 6a93f45832bb1..8fb3f3c7f8cf2 100644 --- a/packages/core/saved-objects/core-saved-objects-base-server-internal/src/model_version/build_transform_fn.test.ts +++ b/packages/core/saved-objects/core-saved-objects-base-server-internal/src/model_version/build_transform_fn.test.ts @@ -22,6 +22,7 @@ describe('buildModelVersionTransformFn', () => { const createContext = (): SavedObjectModelTransformationContext => ({ log: loggerMock.create(), modelVersion: 42, + namespaceType: 'single', }); const createDoc = (attributes: T = {} as T): SavedObjectModelTransformationDoc => ({ diff --git a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/model_version.test.ts b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/model_version.test.ts index daaf21ef2194b..9b05cfbcdf223 100644 --- a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/model_version.test.ts +++ b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/model_version.test.ts @@ -112,6 +112,7 @@ describe('convertModelVersionTransformFn', () => { }; it('generates a transform function calling the model transform', () => { + const typeDefinition = createType({}); const upTransform = createModelTransformFn(); const definition: SavedObjectsModelVersion = { @@ -127,13 +128,14 @@ describe('convertModelVersionTransformFn', () => { log, modelVersion: 1, virtualVersion: '10.1.0', - definition, + modelVersionDefinition: definition, + typeDefinition, }); expect(upTransform).not.toHaveBeenCalled(); const doc = createDoc(); - const context = { log, modelVersion: 1 }; + const context = { log, modelVersion: 1, namespaceType: typeDefinition.namespaceType }; transform(doc); @@ -142,6 +144,7 @@ describe('convertModelVersionTransformFn', () => { }); it('generates a transform function calling all model transforms of the version', () => { + const typeDefinition = createType({}); const upTransform1 = createModelTransformFn(); const upTransform2 = createModelTransformFn(); @@ -162,11 +165,12 @@ describe('convertModelVersionTransformFn', () => { log, modelVersion: 1, virtualVersion: '10.1.0', - definition, + typeDefinition, + modelVersionDefinition: definition, }); const doc = createDoc(); - const context = { log, modelVersion: 1 }; + const context = { log, modelVersion: 1, namespaceType: typeDefinition.namespaceType }; transform(doc); diff --git a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/model_version.ts b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/model_version.ts index 5801bfe56f162..89766a7daf549 100644 --- a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/model_version.ts +++ b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/model_version.ts @@ -61,10 +61,11 @@ export const getModelVersionTransforms = ({ return { version: virtualVersion, transform: convertModelVersionTransformFn({ + typeDefinition, log, modelVersion, virtualVersion, - definition, + modelVersionDefinition: definition, }), transformType: TransformType.Migrate, }; @@ -72,21 +73,24 @@ export const getModelVersionTransforms = ({ }; export const convertModelVersionTransformFn = ({ + typeDefinition, virtualVersion, modelVersion, - definition, + modelVersionDefinition, log, }: { + typeDefinition: SavedObjectsType; virtualVersion: string; modelVersion: number; - definition: SavedObjectsModelVersion; + modelVersionDefinition: SavedObjectsModelVersion; log: Logger; }): TransformFn => { const context: SavedObjectModelTransformationContext = { log, modelVersion, + namespaceType: typeDefinition.namespaceType, }; - const modelTransformFn = buildModelVersionTransformFn(definition.changes); + const modelTransformFn = buildModelVersionTransformFn(modelVersionDefinition.changes); return function convertedTransform(doc: SavedObjectUnsanitizedDoc) { try { diff --git a/packages/core/saved-objects/core-saved-objects-server/index.ts b/packages/core/saved-objects/core-saved-objects-server/index.ts index 6d55353f5d94f..ce042d392d6f4 100644 --- a/packages/core/saved-objects/core-saved-objects-server/index.ts +++ b/packages/core/saved-objects/core-saved-objects-server/index.ts @@ -133,7 +133,6 @@ export type { SavedObjectModelTransformationDoc, SavedObjectModelTransformationContext, SavedObjectModelTransformationFn, - SavedObjectModelBidirectionalTransformation, SavedObjectModelTransformationResult, SavedObjectModelDataBackfillFn, SavedObjectModelDataBackfillResult, diff --git a/packages/core/saved-objects/core-saved-objects-server/src/model_version/index.ts b/packages/core/saved-objects/core-saved-objects-server/src/model_version/index.ts index c6815ecdb9456..dcc16bad54472 100644 --- a/packages/core/saved-objects/core-saved-objects-server/src/model_version/index.ts +++ b/packages/core/saved-objects/core-saved-objects-server/src/model_version/index.ts @@ -25,7 +25,6 @@ export type { SavedObjectModelTransformationDoc, SavedObjectModelTransformationContext, SavedObjectModelTransformationFn, - SavedObjectModelBidirectionalTransformation, SavedObjectModelTransformationResult, SavedObjectModelDataBackfillFn, SavedObjectModelDataBackfillResult, diff --git a/packages/core/saved-objects/core-saved-objects-server/src/model_version/transformations.ts b/packages/core/saved-objects/core-saved-objects-server/src/model_version/transformations.ts index cf6792713eddb..9263b10263281 100644 --- a/packages/core/saved-objects/core-saved-objects-server/src/model_version/transformations.ts +++ b/packages/core/saved-objects/core-saved-objects-server/src/model_version/transformations.ts @@ -6,6 +6,7 @@ * Side Public License, v 1. */ +import type { SavedObjectsNamespaceType } from '@kbn/core-saved-objects-common'; import type { SavedObjectUnsanitizedDoc } from '../serialization'; import type { SavedObjectsMigrationLogger } from '../migration'; @@ -30,6 +31,10 @@ export interface SavedObjectModelTransformationContext { * The model version this migration is registered for */ readonly modelVersion: number; + /** + * The namespace type of the savedObject type this migration is registered for + */ + readonly namespaceType: SavedObjectsNamespaceType; } /** @@ -57,29 +62,6 @@ export type SavedObjectModelTransformationFn< context: SavedObjectModelTransformationContext ) => SavedObjectModelTransformationResult; -/** - * A bidirectional transformation. - * - * Bidirectional transformations define migration functions that can be used to - * transform a document from the lower version to the higher one (`up`), and - * the other way around, from the higher version to the lower one (`down`) - * - * @public - */ -export interface SavedObjectModelBidirectionalTransformation< - PreviousAttributes = unknown, - NewAttributes = unknown -> { - /** - * The upward (previous=>next) transformation. - */ - up: SavedObjectModelTransformationFn; - /** - * The downward (next=>previous) transformation. - */ - down: SavedObjectModelTransformationFn; -} - /** * Return type for the {@link SavedObjectModelTransformationFn | transformation functions} * From ef109cf5c85b9db51ccbdd1005ae4418d4a4a777 Mon Sep 17 00:00:00 2001 From: jennypavlova Date: Wed, 11 Oct 2023 12:36:37 +0200 Subject: [PATCH 09/79] [Infra UI] Add Infra Serverless API Tests (#167684) Closes [#166802](https://github.com/elastic/kibana/issues/166802) ## Summary This PR adds API tests for the Infra APIs used in the serverless. The tests cover the endpoints: - /api/infra/metadata - /api/metrics/infra - /api/metrics/process_list - /api/metrics/snapshot The tests use a [separate fixture](https://github.com/elastic/kibana/pull/167684/files#diff-58cd3d70e2df2426acb0d9e9a1fffa3c8e953cf34ae865660819b20f94707542) to make them more flexible in the future and independent from the current tests (also it has less data for a single host for better performance). ## Testing To run the tests use serverless env for **observability**: - Server: `node scripts/functional_tests_server.js --config test_serverless/functional/test_suites/observability/config.ts` - Tests: `node scripts/functional_test_runner --config=x-pack/test_serverless/api_integration/test_suites/observability/config.ts --info` - `--info` is added to help read the results excluding the debug messages --- .../infra/server/routes/infra/README.md | 30 +- .../serverless_testing_host/data.json.gz | Bin 0 -> 3429 bytes .../serverless_testing_host/mappings.json | 26353 ++++++++++++++++ .../test_suites/observability/config.ts | 1 + .../test_suites/observability/index.ts | 1 + .../observability/infra/constants.ts | 19 + .../test_suites/observability/infra/index.ts | 17 + .../test_suites/observability/infra/infra.ts | 142 + .../observability/infra/metadata.ts | 120 + .../observability/infra/processes.ts | 61 + .../observability/infra/snapshot.ts | 79 + 11 files changed, 26808 insertions(+), 15 deletions(-) create mode 100644 x-pack/test/functional/es_archives/infra/serverless_testing_host/data.json.gz create mode 100644 x-pack/test/functional/es_archives/infra/serverless_testing_host/mappings.json create mode 100644 x-pack/test_serverless/api_integration/test_suites/observability/infra/constants.ts create mode 100644 x-pack/test_serverless/api_integration/test_suites/observability/infra/index.ts create mode 100644 x-pack/test_serverless/api_integration/test_suites/observability/infra/infra.ts create mode 100644 x-pack/test_serverless/api_integration/test_suites/observability/infra/metadata.ts create mode 100644 x-pack/test_serverless/api_integration/test_suites/observability/infra/processes.ts create mode 100644 x-pack/test_serverless/api_integration/test_suites/observability/infra/snapshot.ts diff --git a/x-pack/plugins/infra/server/routes/infra/README.md b/x-pack/plugins/infra/server/routes/infra/README.md index 50a65ce9c89ba..9cd99357202eb 100644 --- a/x-pack/plugins/infra/server/routes/infra/README.md +++ b/x-pack/plugins/infra/server/routes/infra/README.md @@ -43,11 +43,11 @@ curl --location -u elastic:changeme 'http://0.0.0.0:5601/ftw/api/metrics/infra' "type": "cpu" }, { - "type": "diskLatency" + type: 'diskSpaceUsage', }, { - "type": "memoryTotal" - } + type: 'memoryFree', + }, ], "query": { "bool": { @@ -84,29 +84,29 @@ Response ], "metrics":[ { - "name":"cpu", - "value":0.13271302652800487 + "name":"rx", + "value":3959.4930095127706 }, { - "name":"diskLatency", - "value":0 - }, + "name":"tx", + "value":100.26926542816672 + } { "name":"memory", "value":0.542838307852529 }, { - "name":"memoryTotal", - "value":66640704.099216014 + "name":"cpu", + "value":0.13271302652800487 }, { - "name":"rx", - "value":3959.4930095127706 + "name":"diskSpaceUsage", + "value":0 }, { - "name":"tx", - "value":100.26926542816672 - } + "name":"memoryFree", + "value":66640704.099216014 + }, ], "name":"host-0" } diff --git a/x-pack/test/functional/es_archives/infra/serverless_testing_host/data.json.gz b/x-pack/test/functional/es_archives/infra/serverless_testing_host/data.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..d247002059721f0540e747562ad9a979e3f897c3 GIT binary patch literal 3429 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 HLGAzmp|6cP literal 0 HcmV?d00001 diff --git a/x-pack/test/functional/es_archives/infra/serverless_testing_host/mappings.json b/x-pack/test/functional/es_archives/infra/serverless_testing_host/mappings.json new file mode 100644 index 0000000000000..968a66f96219b --- /dev/null +++ b/x-pack/test/functional/es_archives/infra/serverless_testing_host/mappings.json @@ -0,0 +1,26353 @@ +{ + "type": "data_stream", + "value": { + "data_stream": "metricbeat-8.5.0", + "template": { + "data_stream": { + "allow_custom_routing": false, + "hidden": false + }, + "index_patterns": [ + "metricbeat-8.5.0" + ], + "name": "metricbeat-8.5.0", + "priority": 150, + "template": { + "mappings": { + "_meta": { + "beat": "metricbeat", + "version": "8.5.0" + }, + "date_detection": false, + "dynamic_templates": [ + { + "labels": { + "mapping": { + "type": "keyword" + }, + "match_mapping_type": "string", + "path_match": "labels.*" + } + }, + { + "container.labels": { + "mapping": { + "type": "keyword" + }, + "match_mapping_type": "string", + "path_match": "container.labels.*" + } + }, + { + "fields": { + "mapping": { + "type": "keyword" + }, + "match_mapping_type": "string", + "path_match": "fields.*" + } + }, + { + "docker.container.labels": { + "mapping": { + "type": "keyword" + }, + "match_mapping_type": "string", + "path_match": "docker.container.labels.*" + } + }, + { + "kubernetes.labels.*": { + "mapping": { + "type": "keyword" + }, + "match_mapping_type": "*", + "path_match": "kubernetes.labels.*" + } + }, + { + "kubernetes.annotations.*": { + "mapping": { + "type": "keyword" + }, + "match_mapping_type": "*", + "path_match": "kubernetes.annotations.*" + } + }, + { + "kubernetes.selectors.*": { + "mapping": { + "type": "keyword" + }, + "match_mapping_type": "*", + "path_match": "kubernetes.selectors.*" + } + }, + { + "docker.cpu.core.*.pct": { + "mapping": { + "scaling_factor": 1000, + "type": "scaled_float" + }, + "match_mapping_type": "*", + "path_match": "docker.cpu.core.*.pct" + } + }, + { + "docker.cpu.core.*.norm.pct": { + "mapping": { + "scaling_factor": 1000, + "type": "scaled_float" + }, + "match_mapping_type": "*", + "path_match": "docker.cpu.core.*.norm.pct" + } + }, + { + "docker.cpu.core.*.ticks": { + "mapping": { + "type": "long" + }, + "match_mapping_type": "long", + "path_match": "docker.cpu.core.*.ticks" + } + }, + { + "docker.event.actor.attributes": { + "mapping": { + "type": "keyword" + }, + "match_mapping_type": "string", + "path_match": "docker.event.actor.attributes.*" + } + }, + { + "docker.image.labels": { + "mapping": { + "type": "keyword" + }, + "match_mapping_type": "string", + "path_match": "docker.image.labels.*" + } + }, + { + "docker.memory.stats.*": { + "mapping": { + "type": "long" + }, + "match_mapping_type": "*", + "path_match": "docker.memory.stats.*" + } + }, + { + "etcd.disk.wal_fsync_duration.ns.bucket.*": { + "mapping": { + "type": "long" + }, + "match_mapping_type": "long", + "path_match": "etcd.disk.wal_fsync_duration.ns.bucket.*" + } + }, + { + "etcd.disk.backend_commit_duration.ns.bucket.*": { + "mapping": { + "type": "long" + }, + "match_mapping_type": "long", + "path_match": "etcd.disk.backend_commit_duration.ns.bucket.*" + } + }, + { + "kubernetes.apiserver.watch.events.size.bytes.bucket.*": { + "mapping": { + "type": "long" + }, + "match_mapping_type": "long", + "path_match": "kubernetes.apiserver.watch.events.size.bytes.bucket.*" + } + }, + { + "kubernetes.apiserver.response.size.bytes.bucket.*": { + "mapping": { + "type": "long" + }, + "match_mapping_type": "long", + "path_match": "kubernetes.apiserver.response.size.bytes.bucket.*" + } + }, + { + "kubernetes.apiserver.request.duration.us.bucket.*": { + "mapping": { + "type": "long" + }, + "match_mapping_type": "long", + "path_match": "kubernetes.apiserver.request.duration.us.bucket.*" + } + }, + { + "kubernetes.controllermanager.client.request.duration.us.bucket.*": { + "mapping": { + "type": "long" + }, + "match_mapping_type": "long", + "path_match": "kubernetes.controllermanager.client.request.duration.us.bucket.*" + } + }, + { + "kubernetes.proxy.http.request.duration.us.percentile.*": { + "mapping": { + "type": "double" + }, + "match_mapping_type": "double", + "path_match": "kubernetes.proxy.http.request.duration.us.percentile.*" + } + }, + { + "kubernetes.proxy.http.request.size.bytes.percentile.*": { + "mapping": { + "type": "long" + }, + "match_mapping_type": "long", + "path_match": "kubernetes.proxy.http.request.size.bytes.percentile.*" + } + }, + { + "kubernetes.proxy.http.response.size.bytes.percentile.*": { + "mapping": { + "type": "long" + }, + "match_mapping_type": "long", + "path_match": "kubernetes.proxy.http.response.size.bytes.percentile.*" + } + }, + { + "kubernetes.proxy.sync.rules.duration.us.bucket.*": { + "mapping": { + "type": "long" + }, + "match_mapping_type": "long", + "path_match": "kubernetes.proxy.sync.rules.duration.us.bucket.*" + } + }, + { + "kubernetes.proxy.sync.networkprogramming.duration.us.bucket.*": { + "mapping": { + "type": "long" + }, + "match_mapping_type": "long", + "path_match": "kubernetes.proxy.sync.networkprogramming.duration.us.bucket.*" + } + }, + { + "kubernetes.scheduler.http.request.duration.us.percentile.*": { + "mapping": { + "type": "double" + }, + "match_mapping_type": "double", + "path_match": "kubernetes.scheduler.http.request.duration.us.percentile.*" + } + }, + { + "kubernetes.scheduler.http.request.size.bytes.percentile.*": { + "mapping": { + "type": "long" + }, + "match_mapping_type": "long", + "path_match": "kubernetes.scheduler.http.request.size.bytes.percentile.*" + } + }, + { + "kubernetes.scheduler.http.response.size.bytes.percentile.*": { + "mapping": { + "type": "long" + }, + "match_mapping_type": "long", + "path_match": "kubernetes.scheduler.http.response.size.bytes.percentile.*" + } + }, + { + "kubernetes.scheduler.scheduling.e2e.duration.us.bucket.*": { + "mapping": { + "type": "long" + }, + "match_mapping_type": "long", + "path_match": "kubernetes.scheduler.scheduling.e2e.duration.us.bucket.*" + } + }, + { + "kubernetes.scheduler.scheduling.duration.seconds.percentile.*": { + "mapping": { + "type": "double" + }, + "match_mapping_type": "double", + "path_match": "kubernetes.scheduler.scheduling.duration.seconds.percentile.*" + } + }, + { + "munin.metrics.*": { + "mapping": { + "type": "double" + }, + "match_mapping_type": "*", + "path_match": "munin.metrics.*" + } + }, + { + "openmetrics.labels.*": { + "mapping": { + "type": "keyword" + }, + "match_mapping_type": "string", + "path_match": "openmetrics.labels.*" + } + }, + { + "openmetrics.metrics.*": { + "mapping": { + "type": "double" + }, + "match_mapping_type": "*", + "path_match": "openmetrics.metrics.*" + } + }, + { + "openmetrics.exemplar.*": { + "mapping": { + "type": "keyword" + }, + "match_mapping_type": "string", + "path_match": "openmetrics.exemplar.*" + } + }, + { + "openmetrics.exemplar.labels.*": { + "mapping": { + "type": "keyword" + }, + "match_mapping_type": "string", + "path_match": "openmetrics.exemplar.labels.*" + } + }, + { + "prometheus.labels.*": { + "mapping": { + "type": "keyword" + }, + "match_mapping_type": "string", + "path_match": "prometheus.labels.*" + } + }, + { + "prometheus.metrics.*": { + "mapping": { + "type": "double" + }, + "match_mapping_type": "*", + "path_match": "prometheus.metrics.*" + } + }, + { + "prometheus.query.*": { + "mapping": { + "type": "double" + }, + "match_mapping_type": "*", + "path_match": "prometheus.query.*" + } + }, + { + "system.process.env": { + "mapping": { + "type": "keyword" + }, + "match_mapping_type": "string", + "path_match": "system.process.env.*" + } + }, + { + "system.process.cgroup.cpuacct.percpu": { + "mapping": { + "type": "long" + }, + "match_mapping_type": "long", + "path_match": "system.process.cgroup.cpuacct.percpu.*" + } + }, + { + "system.raid.disks.states.*": { + "mapping": { + "type": "keyword" + }, + "match_mapping_type": "string", + "path_match": "system.raid.disks.states.*" + } + }, + { + "traefik.health.response.status_codes.*": { + "mapping": { + "type": "long" + }, + "match_mapping_type": "long", + "path_match": "traefik.health.response.status_codes.*" + } + }, + { + "vsphere.virtualmachine.custom_fields": { + "mapping": { + "type": "keyword" + }, + "match_mapping_type": "string", + "path_match": "vsphere.virtualmachine.custom_fields.*" + } + }, + { + "windows.perfmon.metrics.*.*": { + "mapping": { + "type": "float" + }, + "match_mapping_type": "*", + "path_match": "windows.perfmon.metrics.*.*" + } + }, + { + "strings_as_keyword": { + "mapping": { + "ignore_above": 1024, + "type": "keyword" + }, + "match_mapping_type": "string" + } + } + ], + "properties": { + "@timestamp": { + "type": "date" + }, + "aerospike": { + "properties": { + "namespace": { + "properties": { + "client": { + "properties": { + "delete": { + "properties": { + "error": { + "type": "long" + }, + "not_found": { + "type": "long" + }, + "success": { + "type": "long" + }, + "timeout": { + "type": "long" + } + } + }, + "read": { + "properties": { + "error": { + "type": "long" + }, + "not_found": { + "type": "long" + }, + "success": { + "type": "long" + }, + "timeout": { + "type": "long" + } + } + }, + "write": { + "properties": { + "error": { + "type": "long" + }, + "success": { + "type": "long" + }, + "timeout": { + "type": "long" + } + } + } + } + }, + "device": { + "properties": { + "available": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + }, + "free": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + }, + "total": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "used": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "hwm_breached": { + "type": "boolean" + }, + "memory": { + "properties": { + "free": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + }, + "used": { + "properties": { + "data": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "index": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "sindex": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "total": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + } + } + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "node": { + "properties": { + "host": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "objects": { + "properties": { + "master": { + "type": "long" + }, + "total": { + "type": "long" + } + } + }, + "stop_writes": { + "type": "boolean" + } + } + } + } + }, + "agent": { + "properties": { + "build": { + "properties": { + "original": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "ephemeral_id": { + "ignore_above": 1024, + "type": "keyword" + }, + "hostname": { + "path": "agent.name", + "type": "alias" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "apache": { + "properties": { + "status": { + "properties": { + "bytes_per_request": { + "scaling_factor": 1000, + "type": "scaled_float" + }, + "bytes_per_sec": { + "scaling_factor": 1000, + "type": "scaled_float" + }, + "connections": { + "properties": { + "async": { + "properties": { + "closing": { + "type": "long" + }, + "keep_alive": { + "type": "long" + }, + "writing": { + "type": "long" + } + } + }, + "total": { + "type": "long" + } + } + }, + "cpu": { + "properties": { + "children_system": { + "scaling_factor": 1000, + "type": "scaled_float" + }, + "children_user": { + "scaling_factor": 1000, + "type": "scaled_float" + }, + "load": { + "scaling_factor": 1000, + "type": "scaled_float" + }, + "system": { + "scaling_factor": 1000, + "type": "scaled_float" + }, + "user": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + }, + "hostname": { + "ignore_above": 1024, + "type": "keyword" + }, + "load": { + "properties": { + "1": { + "scaling_factor": 100, + "type": "scaled_float" + }, + "15": { + "scaling_factor": 100, + "type": "scaled_float" + }, + "5": { + "scaling_factor": 100, + "type": "scaled_float" + } + } + }, + "requests_per_sec": { + "scaling_factor": 1000, + "type": "scaled_float" + }, + "scoreboard": { + "properties": { + "closing_connection": { + "type": "long" + }, + "dns_lookup": { + "type": "long" + }, + "gracefully_finishing": { + "type": "long" + }, + "idle_cleanup": { + "type": "long" + }, + "keepalive": { + "type": "long" + }, + "logging": { + "type": "long" + }, + "open_slot": { + "type": "long" + }, + "reading_request": { + "type": "long" + }, + "sending_reply": { + "type": "long" + }, + "starting_up": { + "type": "long" + }, + "total": { + "type": "long" + }, + "waiting_for_connection": { + "type": "long" + } + } + }, + "total_accesses": { + "type": "long" + }, + "total_kbytes": { + "type": "long" + }, + "uptime": { + "properties": { + "server_uptime": { + "type": "long" + }, + "uptime": { + "type": "long" + } + } + }, + "workers": { + "properties": { + "busy": { + "type": "long" + }, + "idle": { + "type": "long" + } + } + } + } + } + } + }, + "as": { + "properties": { + "number": { + "type": "long" + }, + "organization": { + "properties": { + "name": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + }, + "beat": { + "properties": { + "elasticsearch": { + "properties": { + "cluster": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "state": { + "properties": { + "beat": { + "properties": { + "host": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + }, + "uuid": { + "ignore_above": 1024, + "type": "keyword" + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "cluster": { + "properties": { + "uuid": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "host": { + "properties": { + "containerized": { + "ignore_above": 1024, + "type": "keyword" + }, + "os": { + "properties": { + "kernel": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "platform": { + "ignore_above": 1024, + "type": "keyword" + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + }, + "input": { + "properties": { + "count": { + "type": "long" + }, + "names": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "management": { + "properties": { + "enabled": { + "type": "boolean" + } + } + }, + "module": { + "properties": { + "count": { + "type": "long" + }, + "names": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "output": { + "properties": { + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "queue": { + "properties": { + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "service": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + }, + "stats": { + "properties": { + "apm_server": { + "properties": { + "acm": { + "properties": { + "request": { + "properties": { + "count": { + "type": "long" + } + } + }, + "response": { + "properties": { + "count": { + "type": "long" + }, + "errors": { + "properties": { + "closed": { + "type": "long" + }, + "count": { + "type": "long" + }, + "decode": { + "type": "long" + }, + "forbidden": { + "type": "long" + }, + "internal": { + "type": "long" + }, + "invalidquery": { + "type": "long" + }, + "method": { + "type": "long" + }, + "notfound": { + "type": "long" + }, + "queue": { + "type": "long" + }, + "ratelimit": { + "type": "long" + }, + "toolarge": { + "type": "long" + }, + "unauthorized": { + "type": "long" + }, + "unavailable": { + "type": "long" + }, + "validate": { + "type": "long" + } + } + }, + "request": { + "properties": { + "count": { + "type": "long" + } + } + }, + "unset": { + "type": "long" + }, + "valid": { + "properties": { + "accepted": { + "type": "long" + }, + "count": { + "type": "long" + }, + "notmodified": { + "type": "long" + }, + "ok": { + "type": "long" + } + } + } + } + } + } + }, + "decoder": { + "properties": { + "deflate": { + "properties": { + "content-length": { + "type": "long" + }, + "count": { + "type": "long" + } + } + }, + "gzip": { + "properties": { + "content-length": { + "type": "long" + }, + "count": { + "type": "long" + } + } + }, + "missing-content-length": { + "properties": { + "count": { + "type": "long" + } + } + }, + "reader": { + "properties": { + "count": { + "type": "long" + }, + "size": { + "type": "long" + } + } + }, + "uncompressed": { + "properties": { + "content-length": { + "type": "long" + }, + "count": { + "type": "long" + } + } + } + } + }, + "processor": { + "properties": { + "error": { + "properties": { + "decoding": { + "properties": { + "count": { + "type": "long" + }, + "errors": { + "type": "long" + } + } + }, + "frames": { + "type": "long" + }, + "spans": { + "type": "long" + }, + "stacktraces": { + "type": "long" + }, + "transformations": { + "type": "long" + }, + "validation": { + "properties": { + "count": { + "type": "long" + }, + "errors": { + "type": "long" + } + } + } + } + }, + "metric": { + "properties": { + "decoding": { + "properties": { + "count": { + "type": "long" + }, + "errors": { + "type": "long" + } + } + }, + "transformations": { + "type": "long" + }, + "validation": { + "properties": { + "count": { + "type": "long" + }, + "errors": { + "type": "long" + } + } + } + } + }, + "sourcemap": { + "properties": { + "counter": { + "type": "long" + }, + "decoding": { + "properties": { + "count": { + "type": "long" + }, + "errors": { + "type": "long" + } + } + }, + "validation": { + "properties": { + "count": { + "type": "long" + }, + "errors": { + "type": "long" + } + } + } + } + }, + "span": { + "properties": { + "transformations": { + "type": "long" + } + } + }, + "transaction": { + "properties": { + "decoding": { + "properties": { + "count": { + "type": "long" + }, + "errors": { + "type": "long" + } + } + }, + "frames": { + "type": "long" + }, + "spans": { + "type": "long" + }, + "stacktraces": { + "type": "long" + }, + "transactions": { + "type": "long" + }, + "transformations": { + "type": "long" + }, + "validation": { + "properties": { + "count": { + "type": "long" + }, + "errors": { + "type": "long" + } + } + } + } + } + } + }, + "server": { + "properties": { + "concurrent": { + "properties": { + "wait": { + "properties": { + "ms": { + "type": "long" + } + } + } + } + }, + "request": { + "properties": { + "count": { + "type": "long" + } + } + }, + "response": { + "properties": { + "count": { + "type": "long" + }, + "errors": { + "properties": { + "closed": { + "type": "long" + }, + "concurrency": { + "type": "long" + }, + "count": { + "type": "long" + }, + "decode": { + "type": "long" + }, + "forbidden": { + "type": "long" + }, + "internal": { + "type": "long" + }, + "method": { + "type": "long" + }, + "queue": { + "type": "long" + }, + "ratelimit": { + "type": "long" + }, + "toolarge": { + "type": "long" + }, + "unauthorized": { + "type": "long" + }, + "validate": { + "type": "long" + } + } + }, + "valid": { + "properties": { + "accepted": { + "type": "long" + }, + "count": { + "type": "long" + }, + "ok": { + "type": "long" + } + } + } + } + } + } + } + } + }, + "beat": { + "properties": { + "host": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + }, + "uuid": { + "ignore_above": 1024, + "type": "keyword" + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "cgroup": { + "properties": { + "cpu": { + "properties": { + "cfs": { + "properties": { + "period": { + "properties": { + "us": { + "type": "long" + } + } + }, + "quota": { + "properties": { + "us": { + "type": "long" + } + } + } + } + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "stats": { + "properties": { + "periods": { + "type": "long" + }, + "throttled": { + "properties": { + "ns": { + "type": "long" + }, + "periods": { + "type": "long" + } + } + } + } + } + } + }, + "cpuacct": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "total": { + "properties": { + "ns": { + "type": "long" + } + } + } + } + }, + "memory": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "mem": { + "properties": { + "limit": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "usage": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + } + } + } + } + }, + "cpu": { + "properties": { + "system": { + "properties": { + "ticks": { + "type": "long" + }, + "time": { + "properties": { + "ms": { + "type": "long" + } + } + } + } + }, + "total": { + "properties": { + "ticks": { + "type": "long" + }, + "time": { + "properties": { + "ms": { + "type": "long" + } + } + }, + "value": { + "type": "long" + } + } + }, + "user": { + "properties": { + "ticks": { + "type": "long" + }, + "time": { + "properties": { + "ms": { + "type": "long" + } + } + } + } + } + } + }, + "handles": { + "properties": { + "limit": { + "properties": { + "hard": { + "type": "long" + }, + "soft": { + "type": "long" + } + } + }, + "open": { + "type": "long" + } + } + }, + "info": { + "properties": { + "ephemeral_id": { + "ignore_above": 1024, + "type": "keyword" + }, + "host": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + }, + "uptime": { + "properties": { + "ms": { + "type": "long" + } + } + }, + "uuid": { + "ignore_above": 1024, + "type": "keyword" + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "libbeat": { + "properties": { + "config": { + "properties": { + "reloads": { + "type": "short" + }, + "running": { + "type": "short" + }, + "starts": { + "type": "short" + }, + "stops": { + "type": "short" + } + } + }, + "output": { + "properties": { + "events": { + "properties": { + "acked": { + "type": "long" + }, + "active": { + "type": "long" + }, + "batches": { + "type": "long" + }, + "dropped": { + "type": "long" + }, + "duplicates": { + "type": "long" + }, + "failed": { + "type": "long" + }, + "toomany": { + "type": "long" + }, + "total": { + "type": "long" + } + } + }, + "read": { + "properties": { + "bytes": { + "type": "long" + }, + "errors": { + "type": "long" + } + } + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + }, + "write": { + "properties": { + "bytes": { + "type": "long" + }, + "errors": { + "type": "long" + } + } + } + } + }, + "pipeline": { + "properties": { + "clients": { + "type": "long" + }, + "events": { + "properties": { + "active": { + "type": "long" + }, + "dropped": { + "type": "long" + }, + "failed": { + "type": "long" + }, + "filtered": { + "type": "long" + }, + "published": { + "type": "long" + }, + "retry": { + "type": "long" + }, + "total": { + "type": "long" + } + } + }, + "queue": { + "properties": { + "acked": { + "type": "long" + } + } + } + } + } + } + }, + "memstats": { + "properties": { + "gc_next": { + "type": "long" + }, + "memory": { + "properties": { + "alloc": { + "type": "long" + }, + "total": { + "type": "long" + } + } + }, + "rss": { + "type": "long" + } + } + }, + "runtime": { + "properties": { + "goroutines": { + "type": "long" + } + } + }, + "system": { + "properties": { + "cpu": { + "properties": { + "cores": { + "type": "long" + } + } + }, + "load": { + "properties": { + "1": { + "type": "double" + }, + "15": { + "type": "double" + }, + "5": { + "type": "double" + }, + "norm": { + "properties": { + "1": { + "type": "double" + }, + "15": { + "type": "double" + }, + "5": { + "type": "double" + } + } + } + } + } + } + }, + "uptime": { + "properties": { + "ms": { + "type": "long" + } + } + } + } + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "beats_state": { + "properties": { + "beat": { + "properties": { + "host": { + "path": "beat.state.beat.host", + "type": "alias" + }, + "name": { + "path": "beat.state.beat.name", + "type": "alias" + }, + "type": { + "path": "beat.state.beat.type", + "type": "alias" + }, + "uuid": { + "path": "beat.state.beat.uuid", + "type": "alias" + }, + "version": { + "path": "beat.state.beat.version", + "type": "alias" + } + } + }, + "state": { + "properties": { + "beat": { + "properties": { + "name": { + "path": "beat.state.beat.name", + "type": "alias" + } + } + }, + "host": { + "properties": { + "architecture": { + "path": "host.architecture", + "type": "alias" + }, + "hostname": { + "path": "host.hostname", + "type": "alias" + }, + "name": { + "path": "host.name", + "type": "alias" + }, + "os": { + "properties": { + "platform": { + "path": "beat.state.host.os.platform", + "type": "alias" + }, + "version": { + "path": "beat.state.host.os.version", + "type": "alias" + } + } + } + } + }, + "input": { + "properties": { + "count": { + "path": "beat.state.input.count", + "type": "alias" + }, + "names": { + "path": "beat.state.input.names", + "type": "alias" + } + } + }, + "module": { + "properties": { + "count": { + "path": "beat.state.module.count", + "type": "alias" + }, + "names": { + "path": "beat.state.module.names", + "type": "alias" + } + } + }, + "output": { + "properties": { + "name": { + "path": "beat.state.output.name", + "type": "alias" + } + } + }, + "service": { + "properties": { + "id": { + "path": "beat.state.service.id", + "type": "alias" + }, + "name": { + "path": "beat.state.service.name", + "type": "alias" + }, + "version": { + "path": "beat.state.service.version", + "type": "alias" + } + } + } + } + }, + "timestamp": { + "path": "@timestamp", + "type": "alias" + } + } + }, + "beats_stats": { + "properties": { + "apm-server": { + "properties": { + "acm": { + "properties": { + "request": { + "properties": { + "count": { + "path": "beat.stats.apm_server.acm.request.count", + "type": "alias" + } + } + }, + "response": { + "properties": { + "count": { + "path": "beat.stats.apm_server.acm.response.count", + "type": "alias" + }, + "errors": { + "properties": { + "closed": { + "path": "beat.stats.apm_server.acm.response.errors.closed", + "type": "alias" + }, + "count": { + "path": "beat.stats.apm_server.acm.response.errors.count", + "type": "alias" + }, + "decode": { + "path": "beat.stats.apm_server.acm.response.errors.decode", + "type": "alias" + }, + "forbidden": { + "path": "beat.stats.apm_server.acm.response.errors.forbidden", + "type": "alias" + }, + "internal": { + "path": "beat.stats.apm_server.acm.response.errors.internal", + "type": "alias" + }, + "invalidquery": { + "path": "beat.stats.apm_server.acm.response.errors.invalidquery", + "type": "alias" + }, + "method": { + "path": "beat.stats.apm_server.acm.response.errors.method", + "type": "alias" + }, + "notfound": { + "path": "beat.stats.apm_server.acm.response.errors.notfound", + "type": "alias" + }, + "queue": { + "path": "beat.stats.apm_server.acm.response.errors.queue", + "type": "alias" + }, + "ratelimit": { + "path": "beat.stats.apm_server.acm.response.errors.ratelimit", + "type": "alias" + }, + "toolarge": { + "path": "beat.stats.apm_server.acm.response.errors.toolarge", + "type": "alias" + }, + "unauthorized": { + "path": "beat.stats.apm_server.acm.response.errors.unauthorized", + "type": "alias" + }, + "unavailable": { + "path": "beat.stats.apm_server.acm.response.errors.unavailable", + "type": "alias" + }, + "validate": { + "path": "beat.stats.apm_server.acm.response.errors.validate", + "type": "alias" + } + } + }, + "request": { + "properties": { + "count": { + "path": "beat.stats.apm_server.acm.response.request.count", + "type": "alias" + } + } + }, + "unset": { + "path": "beat.stats.apm_server.acm.response.unset", + "type": "alias" + }, + "valid": { + "properties": { + "accepted": { + "path": "beat.stats.apm_server.acm.response.valid.accepted", + "type": "alias" + }, + "count": { + "path": "beat.stats.apm_server.acm.response.valid.count", + "type": "alias" + }, + "notmodified": { + "path": "beat.stats.apm_server.acm.response.valid.notmodified", + "type": "alias" + }, + "ok": { + "path": "beat.stats.apm_server.acm.response.valid.ok", + "type": "alias" + } + } + } + } + } + } + }, + "decoder": { + "properties": { + "deflate": { + "properties": { + "content-length": { + "path": "beat.stats.apm_server.decoder.deflate.content-length", + "type": "alias" + }, + "count": { + "path": "beat.stats.apm_server.decoder.deflate.count", + "type": "alias" + } + } + }, + "gzip": { + "properties": { + "content-length": { + "path": "beat.stats.apm_server.decoder.gzip.content-length", + "type": "alias" + }, + "count": { + "path": "beat.stats.apm_server.decoder.gzip.count", + "type": "alias" + } + } + }, + "missing-content-length": { + "properties": { + "count": { + "path": "beat.stats.apm_server.decoder.missing-content-length.count", + "type": "alias" + } + } + }, + "reader": { + "properties": { + "count": { + "path": "beat.stats.apm_server.decoder.reader.count", + "type": "alias" + }, + "size": { + "path": "beat.stats.apm_server.decoder.reader.size", + "type": "alias" + } + } + }, + "uncompressed": { + "properties": { + "content-length": { + "path": "beat.stats.apm_server.decoder.uncompressed.content-length", + "type": "alias" + }, + "count": { + "path": "beat.stats.apm_server.decoder.uncompressed.count", + "type": "alias" + } + } + } + } + }, + "processor": { + "properties": { + "error": { + "properties": { + "decoding": { + "properties": { + "count": { + "path": "beat.stats.apm_server.processor.error.decoding.count", + "type": "alias" + }, + "errors": { + "path": "beat.stats.apm_server.processor.error.decoding.errors", + "type": "alias" + } + } + }, + "frames": { + "path": "beat.stats.apm_server.processor.error.frames", + "type": "alias" + }, + "spans": { + "path": "beat.stats.apm_server.processor.error.spans", + "type": "alias" + }, + "stacktraces": { + "path": "beat.stats.apm_server.processor.error.stacktraces", + "type": "alias" + }, + "transformations": { + "path": "beat.stats.apm_server.processor.error.transformations", + "type": "alias" + }, + "validation": { + "properties": { + "count": { + "path": "beat.stats.apm_server.processor.error.validation.count", + "type": "alias" + }, + "errors": { + "path": "beat.stats.apm_server.processor.error.validation.errors", + "type": "alias" + } + } + } + } + }, + "metric": { + "properties": { + "decoding": { + "properties": { + "count": { + "path": "beat.stats.apm_server.processor.metric.decoding.count", + "type": "alias" + }, + "errors": { + "path": "beat.stats.apm_server.processor.metric.decoding.errors", + "type": "alias" + } + } + }, + "transformations": { + "path": "beat.stats.apm_server.processor.metric.transformations", + "type": "alias" + }, + "validation": { + "properties": { + "count": { + "path": "beat.stats.apm_server.processor.metric.validation.count", + "type": "alias" + }, + "errors": { + "path": "beat.stats.apm_server.processor.metric.validation.errors", + "type": "alias" + } + } + } + } + }, + "sourcemap": { + "properties": { + "counter": { + "path": "beat.stats.apm_server.processor.sourcemap.counter", + "type": "alias" + }, + "decoding": { + "properties": { + "count": { + "path": "beat.stats.apm_server.processor.sourcemap.decoding.count", + "type": "alias" + }, + "errors": { + "path": "beat.stats.apm_server.processor.sourcemap.decoding.errors", + "type": "alias" + } + } + }, + "validation": { + "properties": { + "count": { + "path": "beat.stats.apm_server.processor.sourcemap.validation.count", + "type": "alias" + }, + "errors": { + "path": "beat.stats.apm_server.processor.sourcemap.validation.errors", + "type": "alias" + } + } + } + } + }, + "span": { + "properties": { + "transformations": { + "path": "beat.stats.apm_server.processor.span.transformations", + "type": "alias" + } + } + }, + "transaction": { + "properties": { + "decoding": { + "properties": { + "count": { + "path": "beat.stats.apm_server.processor.transaction.decoding.count", + "type": "alias" + }, + "errors": { + "path": "beat.stats.apm_server.processor.transaction.decoding.errors", + "type": "alias" + } + } + }, + "frames": { + "path": "beat.stats.apm_server.processor.transaction.frames", + "type": "alias" + }, + "spans": { + "path": "beat.stats.apm_server.processor.transaction.spans", + "type": "alias" + }, + "stacktraces": { + "path": "beat.stats.apm_server.processor.transaction.stacktraces", + "type": "alias" + }, + "transactions": { + "path": "beat.stats.apm_server.processor.transaction.transactions", + "type": "alias" + }, + "transformations": { + "path": "beat.stats.apm_server.processor.transaction.transformations", + "type": "alias" + }, + "validation": { + "properties": { + "count": { + "path": "beat.stats.apm_server.processor.transaction.validation.count", + "type": "alias" + }, + "errors": { + "path": "beat.stats.apm_server.processor.transaction.validation.errors", + "type": "alias" + } + } + } + } + } + } + }, + "server": { + "properties": { + "concurrent": { + "properties": { + "wait": { + "properties": { + "ms": { + "path": "beat.stats.apm_server.server.concurrent.wait.ms", + "type": "alias" + } + } + } + } + }, + "request": { + "properties": { + "count": { + "path": "beat.stats.apm_server.server.request.count", + "type": "alias" + } + } + }, + "response": { + "properties": { + "count": { + "path": "beat.stats.apm_server.server.response.count", + "type": "alias" + }, + "errors": { + "properties": { + "closed": { + "path": "beat.stats.apm_server.server.response.errors.closed", + "type": "alias" + }, + "concurrency": { + "path": "beat.stats.apm_server.server.response.errors.concurrency", + "type": "alias" + }, + "count": { + "path": "beat.stats.apm_server.server.response.errors.count", + "type": "alias" + }, + "decode": { + "path": "beat.stats.apm_server.server.response.errors.decode", + "type": "alias" + }, + "forbidden": { + "path": "beat.stats.apm_server.server.response.errors.forbidden", + "type": "alias" + }, + "internal": { + "path": "beat.stats.apm_server.server.response.errors.internal", + "type": "alias" + }, + "method": { + "path": "beat.stats.apm_server.server.response.errors.method", + "type": "alias" + }, + "queue": { + "path": "beat.stats.apm_server.server.response.errors.queue", + "type": "alias" + }, + "ratelimit": { + "path": "beat.stats.apm_server.server.response.errors.ratelimit", + "type": "alias" + }, + "toolarge": { + "path": "beat.stats.apm_server.server.response.errors.toolarge", + "type": "alias" + }, + "unauthorized": { + "path": "beat.stats.apm_server.server.response.errors.unauthorized", + "type": "alias" + }, + "validate": { + "path": "beat.stats.apm_server.server.response.errors.validate", + "type": "alias" + } + } + }, + "valid": { + "properties": { + "accepted": { + "path": "beat.stats.apm_server.server.response.valid.accepted", + "type": "alias" + }, + "count": { + "path": "beat.stats.apm_server.server.response.valid.count", + "type": "alias" + }, + "ok": { + "path": "beat.stats.apm_server.server.response.valid.ok", + "type": "alias" + } + } + } + } + } + } + } + } + }, + "beat": { + "properties": { + "host": { + "path": "beat.stats.info.host", + "type": "alias" + }, + "name": { + "path": "beat.stats.info.name", + "type": "alias" + }, + "type": { + "path": "beat.stats.info.type", + "type": "alias" + }, + "uuid": { + "path": "beat.stats.info.uuid", + "type": "alias" + }, + "version": { + "path": "beat.stats.info.version", + "type": "alias" + } + } + }, + "metrics": { + "properties": { + "beat": { + "properties": { + "cgroup": { + "properties": { + "cpu": { + "properties": { + "cfs": { + "properties": { + "period": { + "properties": { + "us": { + "path": "beat.stats.cgroup.cpu.cfs.period.us", + "type": "alias" + } + } + }, + "quota": { + "properties": { + "us": { + "path": "beat.stats.cgroup.cpu.cfs.quota.us", + "type": "alias" + } + } + } + } + }, + "id": { + "path": "beat.stats.cgroup.cpu.id", + "type": "alias" + }, + "stats": { + "properties": { + "periods": { + "path": "beat.stats.cgroup.cpu.stats.periods", + "type": "alias" + }, + "throttled": { + "properties": { + "ns": { + "path": "beat.stats.cgroup.cpu.stats.throttled.ns", + "type": "alias" + }, + "periods": { + "path": "beat.stats.cgroup.cpu.stats.throttled.periods", + "type": "alias" + } + } + } + } + } + } + }, + "cpuacct": { + "properties": { + "id": { + "path": "beat.stats.cgroup.cpuacct.id", + "type": "alias" + }, + "total": { + "properties": { + "ns": { + "path": "beat.stats.cgroup.cpuacct.total.ns", + "type": "alias" + } + } + } + } + }, + "mem": { + "properties": { + "limit": { + "properties": { + "bytes": { + "path": "beat.stats.cgroup.memory.mem.limit.bytes", + "type": "alias" + } + } + }, + "usage": { + "properties": { + "bytes": { + "path": "beat.stats.cgroup.memory.mem.usage.bytes", + "type": "alias" + } + } + } + } + }, + "memory": { + "properties": { + "id": { + "path": "beat.stats.cgroup.memory.id", + "type": "alias" + } + } + } + } + }, + "cpu": { + "properties": { + "system": { + "properties": { + "ticks": { + "path": "beat.stats.cpu.system.ticks", + "type": "alias" + }, + "time": { + "properties": { + "ms": { + "path": "beat.stats.cpu.system.time.ms", + "type": "alias" + } + } + } + } + }, + "total": { + "properties": { + "ticks": { + "path": "beat.stats.cpu.total.ticks", + "type": "alias" + }, + "time": { + "properties": { + "ms": { + "path": "beat.stats.cpu.total.time.ms", + "type": "alias" + } + } + }, + "value": { + "path": "beat.stats.cpu.total.value", + "type": "alias" + } + } + }, + "user": { + "properties": { + "ticks": { + "path": "beat.stats.cpu.user.ticks", + "type": "alias" + }, + "time": { + "properties": { + "ms": { + "path": "beat.stats.cpu.user.time.ms", + "type": "alias" + } + } + } + } + } + } + }, + "handles": { + "properties": { + "limit": { + "properties": { + "hard": { + "path": "beat.stats.handles.limit.hard", + "type": "alias" + }, + "soft": { + "path": "beat.stats.handles.limit.soft", + "type": "alias" + } + } + }, + "open": { + "path": "beat.stats.handles.open", + "type": "alias" + } + } + }, + "info": { + "properties": { + "ephemeral_id": { + "path": "beat.stats.info.ephemeral_id", + "type": "alias" + }, + "uptime": { + "properties": { + "ms": { + "path": "beat.stats.info.uptime.ms", + "type": "alias" + } + } + } + } + }, + "memstats": { + "properties": { + "gc_next": { + "path": "beat.stats.memstats.gc_next", + "type": "alias" + }, + "memory_alloc": { + "path": "beat.stats.memstats.memory.alloc", + "type": "alias" + }, + "memory_total": { + "path": "beat.stats.memstats.memory.total", + "type": "alias" + }, + "rss": { + "path": "beat.stats.memstats.rss", + "type": "alias" + } + } + } + } + }, + "libbeat": { + "properties": { + "config": { + "properties": { + "module": { + "properties": { + "running": { + "path": "beat.stats.libbeat.config.running", + "type": "alias" + }, + "starts": { + "path": "beat.stats.libbeat.config.starts", + "type": "alias" + }, + "stops": { + "path": "beat.stats.libbeat.config.stops", + "type": "alias" + } + } + } + } + }, + "output": { + "properties": { + "events": { + "properties": { + "acked": { + "path": "beat.stats.libbeat.output.events.acked", + "type": "alias" + }, + "active": { + "path": "beat.stats.libbeat.output.events.active", + "type": "alias" + }, + "batches": { + "path": "beat.stats.libbeat.output.events.batches", + "type": "alias" + }, + "dropped": { + "path": "beat.stats.libbeat.output.events.dropped", + "type": "alias" + }, + "duplicated": { + "path": "beat.stats.libbeat.output.events.duplicates", + "type": "alias" + }, + "failed": { + "path": "beat.stats.libbeat.output.events.failed", + "type": "alias" + }, + "toomany": { + "path": "beat.stats.libbeat.output.events.toomany", + "type": "alias" + }, + "total": { + "path": "beat.stats.libbeat.output.events.total", + "type": "alias" + } + } + }, + "read": { + "properties": { + "bytes": { + "path": "beat.stats.libbeat.output.read.bytes", + "type": "alias" + }, + "errors": { + "path": "beat.stats.libbeat.output.read.errors", + "type": "alias" + } + } + }, + "type": { + "path": "beat.stats.libbeat.output.type", + "type": "alias" + }, + "write": { + "properties": { + "bytes": { + "path": "beat.stats.libbeat.output.write.bytes", + "type": "alias" + }, + "errors": { + "path": "beat.stats.libbeat.output.write.errors", + "type": "alias" + } + } + } + } + }, + "pipeline": { + "properties": { + "clients": { + "path": "beat.stats.libbeat.pipeline.clients", + "type": "alias" + }, + "event": { + "properties": { + "active": { + "path": "beat.stats.libbeat.pipeline.events.active", + "type": "alias" + }, + "dropped": { + "path": "beat.stats.libbeat.pipeline.events.dropped", + "type": "alias" + }, + "failed": { + "path": "beat.stats.libbeat.pipeline.events.failed", + "type": "alias" + }, + "filtered": { + "path": "beat.stats.libbeat.pipeline.events.filtered", + "type": "alias" + }, + "published": { + "path": "beat.stats.libbeat.pipeline.events.published", + "type": "alias" + }, + "retry": { + "path": "beat.stats.libbeat.pipeline.events.retry", + "type": "alias" + }, + "total": { + "path": "beat.stats.libbeat.pipeline.events.total", + "type": "alias" + } + } + }, + "queue": { + "properties": { + "acked": { + "path": "beat.stats.libbeat.pipeline.queue.acked", + "type": "alias" + } + } + } + } + } + } + }, + "system": { + "properties": { + "cpu": { + "properties": { + "cores": { + "path": "beat.stats.system.cpu.cores", + "type": "alias" + } + } + }, + "load": { + "properties": { + "1": { + "path": "beat.stats.system.load.1", + "type": "alias" + }, + "15": { + "path": "beat.stats.system.load.15", + "type": "alias" + }, + "5": { + "path": "beat.stats.system.load.5", + "type": "alias" + }, + "norm": { + "properties": { + "1": { + "path": "beat.stats.system.load.norm.1", + "type": "alias" + }, + "15": { + "path": "beat.stats.system.load.norm.15", + "type": "alias" + }, + "5": { + "path": "beat.stats.system.load.norm.5", + "type": "alias" + } + } + } + } + } + } + } + } + } + } + }, + "ccr_auto_follow_stats": { + "properties": { + "follower": { + "properties": { + "failed_read_requests": { + "path": "elasticsearch.ccr.requests.failed.read.count", + "type": "alias" + } + } + }, + "number_of_failed_follow_indices": { + "path": "elasticsearch.ccr.auto_follow.failed.follow_indices.count", + "type": "alias" + }, + "number_of_failed_remote_cluster_state_requests": { + "path": "elasticsearch.ccr.auto_follow.failed.remote_cluster_state_requests.count", + "type": "alias" + }, + "number_of_successful_follow_indices": { + "path": "elasticsearch.ccr.auto_follow.success.follow_indices.count", + "type": "alias" + } + } + }, + "ccr_stats": { + "properties": { + "bytes_read": { + "path": "elasticsearch.ccr.bytes_read", + "type": "alias" + }, + "failed_read_requests": { + "path": "elasticsearch.ccr.requests.failed.read.count", + "type": "alias" + }, + "failed_write_requests": { + "path": "elasticsearch.ccr.requests.failed.write.count", + "type": "alias" + }, + "follower_aliases_version": { + "path": "elasticsearch.ccr.follower.aliases_version", + "type": "alias" + }, + "follower_global_checkpoint": { + "path": "elasticsearch.ccr.follower.global_checkpoint", + "type": "alias" + }, + "follower_index": { + "path": "elasticsearch.ccr.follower.index", + "type": "alias" + }, + "follower_mapping_version": { + "path": "elasticsearch.ccr.follower.mapping_version", + "type": "alias" + }, + "follower_max_seq_no": { + "path": "elasticsearch.ccr.follower.max_seq_no", + "type": "alias" + }, + "follower_settings_version": { + "path": "elasticsearch.ccr.follower.settings_version", + "type": "alias" + }, + "last_requested_seq_no": { + "path": "elasticsearch.ccr.last_requested_seq_no", + "type": "alias" + }, + "leader_global_checkpoint": { + "path": "elasticsearch.ccr.leader.global_checkpoint", + "type": "alias" + }, + "leader_index": { + "path": "elasticsearch.ccr.leader.index", + "type": "alias" + }, + "leader_max_seq_no": { + "path": "elasticsearch.ccr.leader.max_seq_no", + "type": "alias" + }, + "operations_read": { + "path": "elasticsearch.ccr.follower.operations.read.count", + "type": "alias" + }, + "operations_written": { + "path": "elasticsearch.ccr.follower.operations_written", + "type": "alias" + }, + "outstanding_read_requests": { + "path": "elasticsearch.ccr.requests.outstanding.read.count", + "type": "alias" + }, + "outstanding_write_requests": { + "path": "elasticsearch.ccr.requests.outstanding.write.count", + "type": "alias" + }, + "remote_cluster": { + "path": "elasticsearch.ccr.remote_cluster", + "type": "alias" + }, + "shard_id": { + "path": "elasticsearch.ccr.follower.shard.number", + "type": "alias" + }, + "successful_read_requests": { + "path": "elasticsearch.ccr.requests.successful.read.count", + "type": "alias" + }, + "successful_write_requests": { + "path": "elasticsearch.ccr.requests.successful.write.count", + "type": "alias" + }, + "total_read_remote_exec_time_millis": { + "path": "elasticsearch.ccr.total_time.read.remote_exec.ms", + "type": "alias" + }, + "total_read_time_millis": { + "path": "elasticsearch.ccr.total_time.read.ms", + "type": "alias" + }, + "total_write_time_millis": { + "path": "elasticsearch.ccr.total_time.write.ms", + "type": "alias" + }, + "write_buffer_operation_count": { + "path": "elasticsearch.ccr.write_buffer.operation.count", + "type": "alias" + }, + "write_buffer_size_in_bytes": { + "path": "elasticsearch.ccr.write_buffer.size.bytes", + "type": "alias" + } + } + }, + "ceph": { + "properties": { + "cluster_disk": { + "properties": { + "available": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "total": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "used": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "cluster_health": { + "properties": { + "overall_status": { + "ignore_above": 1024, + "type": "keyword" + }, + "timechecks": { + "properties": { + "epoch": { + "type": "long" + }, + "round": { + "properties": { + "status": { + "ignore_above": 1024, + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + } + } + } + }, + "cluster_status": { + "properties": { + "degraded": { + "properties": { + "objects": { + "type": "long" + }, + "ratio": { + "scaling_factor": 1000, + "type": "scaled_float" + }, + "total": { + "type": "long" + } + } + }, + "misplace": { + "properties": { + "objects": { + "type": "long" + }, + "ratio": { + "scaling_factor": 1000, + "type": "scaled_float" + }, + "total": { + "type": "long" + } + } + }, + "osd": { + "properties": { + "epoch": { + "type": "long" + }, + "full": { + "type": "boolean" + }, + "nearfull": { + "type": "boolean" + }, + "num_in_osds": { + "type": "long" + }, + "num_osds": { + "type": "long" + }, + "num_remapped_pgs": { + "type": "long" + }, + "num_up_osds": { + "type": "long" + } + } + }, + "pg": { + "properties": { + "avail_bytes": { + "type": "long" + }, + "data_bytes": { + "type": "long" + }, + "total_bytes": { + "type": "long" + }, + "used_bytes": { + "type": "long" + } + } + }, + "pg_state": { + "properties": { + "count": { + "type": "long" + }, + "state_name": { + "type": "long" + }, + "version": { + "type": "long" + } + } + }, + "traffic": { + "properties": { + "read_bytes": { + "type": "long" + }, + "read_op_per_sec": { + "type": "long" + }, + "write_bytes": { + "type": "long" + }, + "write_op_per_sec": { + "type": "long" + } + } + }, + "version": { + "type": "long" + } + } + }, + "mgr_osd_perf": { + "properties": { + "id": { + "type": "long" + }, + "stats": { + "properties": { + "apply_latency_ms": { + "type": "long" + }, + "apply_latency_ns": { + "type": "long" + }, + "commit_latency_ms": { + "type": "long" + }, + "commit_latency_ns": { + "type": "long" + } + } + } + } + }, + "mgr_osd_pool_stats": { + "properties": { + "client_io_rate": { + "type": "object" + }, + "pool_id": { + "type": "long" + }, + "pool_name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "monitor_health": { + "properties": { + "available": { + "properties": { + "kb": { + "type": "long" + }, + "pct": { + "type": "long" + } + } + }, + "health": { + "ignore_above": 1024, + "type": "keyword" + }, + "last_updated": { + "type": "date" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "store_stats": { + "properties": { + "last_updated": { + "type": "long" + }, + "log": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "misc": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "sst": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "total": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "total": { + "properties": { + "kb": { + "type": "long" + } + } + }, + "used": { + "properties": { + "kb": { + "type": "long" + } + } + } + } + }, + "osd_df": { + "properties": { + "available": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "device_class": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "type": "long" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "pg_num": { + "type": "long" + }, + "total": { + "properties": { + "byte": { + "type": "long" + } + } + }, + "used": { + "properties": { + "byte": { + "type": "long" + }, + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + } + } + }, + "osd_tree": { + "properties": { + "children": { + "ignore_above": 1024, + "type": "keyword" + }, + "crush_weight": { + "type": "float" + }, + "depth": { + "type": "long" + }, + "device_class": { + "ignore_above": 1024, + "type": "keyword" + }, + "exists": { + "type": "boolean" + }, + "father": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "type": "long" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "primary_affinity": { + "type": "float" + }, + "reweight": { + "type": "long" + }, + "status": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + }, + "type_id": { + "type": "long" + } + } + }, + "pool_disk": { + "properties": { + "id": { + "type": "long" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "stats": { + "properties": { + "available": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "objects": { + "type": "long" + }, + "used": { + "properties": { + "bytes": { + "type": "long" + }, + "kb": { + "type": "long" + } + } + } + } + } + } + } + } + }, + "client": { + "properties": { + "address": { + "ignore_above": 1024, + "type": "keyword" + }, + "as": { + "properties": { + "number": { + "type": "long" + }, + "organization": { + "properties": { + "name": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + }, + "bytes": { + "type": "long" + }, + "domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "geo": { + "properties": { + "city_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "continent_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "continent_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "country_iso_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "country_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "location": { + "type": "geo_point" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "postal_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "region_iso_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "region_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "timezone": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "ip": { + "type": "ip" + }, + "mac": { + "ignore_above": 1024, + "type": "keyword" + }, + "nat": { + "properties": { + "ip": { + "type": "ip" + }, + "port": { + "type": "long" + } + } + }, + "packets": { + "type": "long" + }, + "port": { + "type": "long" + }, + "registered_domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "subdomain": { + "ignore_above": 1024, + "type": "keyword" + }, + "top_level_domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "user": { + "properties": { + "domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "email": { + "ignore_above": 1024, + "type": "keyword" + }, + "full_name": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "group": { + "properties": { + "domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "hash": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "roles": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + }, + "cloud": { + "properties": { + "account": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "availability_zone": { + "ignore_above": 1024, + "type": "keyword" + }, + "image": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "instance": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "machine": { + "properties": { + "type": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "origin": { + "properties": { + "account": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "availability_zone": { + "ignore_above": 1024, + "type": "keyword" + }, + "instance": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "machine": { + "properties": { + "type": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "project": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "provider": { + "ignore_above": 1024, + "type": "keyword" + }, + "region": { + "ignore_above": 1024, + "type": "keyword" + }, + "service": { + "properties": { + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + }, + "project": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "provider": { + "ignore_above": 1024, + "type": "keyword" + }, + "region": { + "ignore_above": 1024, + "type": "keyword" + }, + "service": { + "properties": { + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "target": { + "properties": { + "account": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "availability_zone": { + "ignore_above": 1024, + "type": "keyword" + }, + "instance": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "machine": { + "properties": { + "type": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "project": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "provider": { + "ignore_above": 1024, + "type": "keyword" + }, + "region": { + "ignore_above": 1024, + "type": "keyword" + }, + "service": { + "properties": { + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + } + } + }, + "cluster_state": { + "properties": { + "master_node": { + "path": "elasticsearch.cluster.stats.state.master_node", + "type": "alias" + }, + "nodes_hash": { + "path": "elasticsearch.cluster.stats.state.nodes_hash", + "type": "alias" + }, + "state_uuid": { + "path": "elasticsearch.cluster.stats.state.state_uuid", + "type": "alias" + }, + "status": { + "path": "elasticsearch.cluster.stats.status", + "type": "alias" + }, + "version": { + "path": "elasticsearch.cluster.stats.state.version", + "type": "alias" + } + } + }, + "cluster_stats": { + "properties": { + "indices": { + "properties": { + "count": { + "path": "elasticsearch.cluster.stats.indices.total", + "type": "alias" + }, + "shards": { + "properties": { + "total": { + "path": "elasticsearch.cluster.stats.indices.shards.count", + "type": "alias" + } + } + } + } + }, + "nodes": { + "properties": { + "count": { + "properties": { + "total": { + "path": "elasticsearch.cluster.stats.nodes.count", + "type": "alias" + } + } + }, + "jvm": { + "properties": { + "max_uptime_in_millis": { + "path": "elasticsearch.cluster.stats.nodes.jvm.max_uptime.ms", + "type": "alias" + }, + "mem": { + "properties": { + "heap_max_in_bytes": { + "path": "elasticsearch.cluster.stats.nodes.jvm.memory.heap.max.bytes", + "type": "alias" + }, + "heap_used_in_bytes": { + "path": "elasticsearch.cluster.stats.nodes.jvm.memory.heap.used.bytes", + "type": "alias" + } + } + } + } + } + } + } + } + }, + "cluster_uuid": { + "path": "elasticsearch.cluster.id", + "type": "alias" + }, + "code_signature": { + "properties": { + "digest_algorithm": { + "ignore_above": 1024, + "type": "keyword" + }, + "exists": { + "type": "boolean" + }, + "signing_id": { + "ignore_above": 1024, + "type": "keyword" + }, + "status": { + "ignore_above": 1024, + "type": "keyword" + }, + "subject_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "team_id": { + "ignore_above": 1024, + "type": "keyword" + }, + "timestamp": { + "type": "date" + }, + "trusted": { + "type": "boolean" + }, + "valid": { + "type": "boolean" + } + } + }, + "consul": { + "properties": { + "agent": { + "properties": { + "autopilot": { + "properties": { + "healthy": { + "type": "boolean" + } + } + }, + "runtime": { + "properties": { + "alloc": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "garbage_collector": { + "properties": { + "pause": { + "properties": { + "current": { + "properties": { + "ns": { + "type": "long" + } + } + }, + "total": { + "properties": { + "ns": { + "type": "long" + } + } + } + } + }, + "runs": { + "type": "long" + } + } + }, + "goroutines": { + "type": "long" + }, + "heap_objects": { + "type": "long" + }, + "malloc_count": { + "type": "long" + }, + "sys": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + } + } + } + } + }, + "container": { + "properties": { + "cpu": { + "properties": { + "usage": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + }, + "disk": { + "properties": { + "read": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "write": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "image": { + "properties": { + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "tag": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "labels": { + "type": "object" + }, + "memory": { + "properties": { + "usage": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "network": { + "properties": { + "egress": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "ingress": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "runtime": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "couchbase": { + "properties": { + "bucket": { + "properties": { + "data": { + "properties": { + "used": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "disk": { + "properties": { + "fetches": { + "type": "double" + }, + "used": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "item_count": { + "type": "long" + }, + "memory": { + "properties": { + "used": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "ops_per_sec": { + "type": "double" + }, + "quota": { + "properties": { + "ram": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "use": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + } + } + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "cluster": { + "properties": { + "hdd": { + "properties": { + "free": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "quota": { + "properties": { + "total": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "total": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "used": { + "properties": { + "by_data": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "value": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + } + } + }, + "max_bucket_count": { + "type": "long" + }, + "quota": { + "properties": { + "index_memory": { + "properties": { + "mb": { + "type": "double" + } + } + }, + "memory": { + "properties": { + "mb": { + "type": "double" + } + } + } + } + }, + "ram": { + "properties": { + "quota": { + "properties": { + "total": { + "properties": { + "per_node": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "value": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "used": { + "properties": { + "per_node": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "value": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + } + } + }, + "total": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "used": { + "properties": { + "by_data": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "value": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + } + } + } + } + }, + "node": { + "properties": { + "cmd_get": { + "type": "double" + }, + "couch": { + "properties": { + "docs": { + "properties": { + "data_size": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "disk_size": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "spatial": { + "properties": { + "data_size": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "disk_size": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "views": { + "properties": { + "data_size": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "disk_size": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + } + } + }, + "cpu_utilization_rate": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + }, + "current_items": { + "properties": { + "total": { + "type": "long" + }, + "value": { + "type": "long" + } + } + }, + "ep_bg_fetched": { + "type": "long" + }, + "get_hits": { + "type": "double" + }, + "hostname": { + "ignore_above": 1024, + "type": "keyword" + }, + "mcd_memory": { + "properties": { + "allocated": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "reserved": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "memory": { + "properties": { + "free": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "total": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "used": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "ops": { + "type": "double" + }, + "swap": { + "properties": { + "total": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "used": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "uptime": { + "properties": { + "sec": { + "type": "long" + } + } + }, + "vb_replica_curr_items": { + "type": "long" + } + } + } + } + }, + "couchdb": { + "properties": { + "server": { + "properties": { + "couchdb": { + "properties": { + "auth_cache_hits": { + "type": "long" + }, + "auth_cache_misses": { + "type": "long" + }, + "database_reads": { + "type": "long" + }, + "database_writes": { + "type": "long" + }, + "open_databases": { + "type": "long" + }, + "open_os_files": { + "type": "long" + }, + "request_time": { + "type": "long" + } + } + }, + "httpd": { + "properties": { + "bulk_requests": { + "type": "long" + }, + "clients_requesting_changes": { + "type": "long" + }, + "requests": { + "type": "long" + }, + "temporary_view_reads": { + "type": "long" + }, + "view_reads": { + "type": "long" + } + } + }, + "httpd_request_methods": { + "properties": { + "COPY": { + "type": "long" + }, + "DELETE": { + "type": "long" + }, + "GET": { + "type": "long" + }, + "HEAD": { + "type": "long" + }, + "POST": { + "type": "long" + }, + "PUT": { + "type": "long" + } + } + }, + "httpd_status_codes": { + "properties": { + "200": { + "type": "long" + }, + "201": { + "type": "long" + }, + "202": { + "type": "long" + }, + "301": { + "type": "long" + }, + "304": { + "type": "long" + }, + "400": { + "type": "long" + }, + "401": { + "type": "long" + }, + "403": { + "type": "long" + }, + "404": { + "type": "long" + }, + "405": { + "type": "long" + }, + "409": { + "type": "long" + }, + "412": { + "type": "long" + }, + "500": { + "type": "long" + } + } + } + } + } + } + }, + "data_stream": { + "properties": { + "dataset": { + "type": "constant_keyword" + }, + "namespace": { + "type": "constant_keyword" + }, + "type": { + "type": "constant_keyword" + } + } + }, + "destination": { + "properties": { + "address": { + "ignore_above": 1024, + "type": "keyword" + }, + "as": { + "properties": { + "number": { + "type": "long" + }, + "organization": { + "properties": { + "name": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + }, + "bytes": { + "type": "long" + }, + "domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "geo": { + "properties": { + "city_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "continent_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "continent_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "country_iso_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "country_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "location": { + "type": "geo_point" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "postal_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "region_iso_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "region_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "timezone": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "ip": { + "type": "ip" + }, + "mac": { + "ignore_above": 1024, + "type": "keyword" + }, + "nat": { + "properties": { + "ip": { + "type": "ip" + }, + "port": { + "type": "long" + } + } + }, + "packets": { + "type": "long" + }, + "port": { + "type": "long" + }, + "registered_domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "subdomain": { + "ignore_above": 1024, + "type": "keyword" + }, + "top_level_domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "user": { + "properties": { + "domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "email": { + "ignore_above": 1024, + "type": "keyword" + }, + "full_name": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "group": { + "properties": { + "domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "hash": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "roles": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + }, + "dll": { + "properties": { + "code_signature": { + "properties": { + "digest_algorithm": { + "ignore_above": 1024, + "type": "keyword" + }, + "exists": { + "type": "boolean" + }, + "signing_id": { + "ignore_above": 1024, + "type": "keyword" + }, + "status": { + "ignore_above": 1024, + "type": "keyword" + }, + "subject_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "team_id": { + "ignore_above": 1024, + "type": "keyword" + }, + "timestamp": { + "type": "date" + }, + "trusted": { + "type": "boolean" + }, + "valid": { + "type": "boolean" + } + } + }, + "hash": { + "properties": { + "md5": { + "ignore_above": 1024, + "type": "keyword" + }, + "sha1": { + "ignore_above": 1024, + "type": "keyword" + }, + "sha256": { + "ignore_above": 1024, + "type": "keyword" + }, + "sha512": { + "ignore_above": 1024, + "type": "keyword" + }, + "ssdeep": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "path": { + "ignore_above": 1024, + "type": "keyword" + }, + "pe": { + "properties": { + "architecture": { + "ignore_above": 1024, + "type": "keyword" + }, + "company": { + "ignore_above": 1024, + "type": "keyword" + }, + "description": { + "ignore_above": 1024, + "type": "keyword" + }, + "file_version": { + "ignore_above": 1024, + "type": "keyword" + }, + "imphash": { + "ignore_above": 1024, + "type": "keyword" + }, + "original_file_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "product": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + }, + "dns": { + "properties": { + "answers": { + "properties": { + "class": { + "ignore_above": 1024, + "type": "keyword" + }, + "data": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "ttl": { + "type": "long" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + } + }, + "type": "object" + }, + "header_flags": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "op_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "question": { + "properties": { + "class": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "registered_domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "subdomain": { + "ignore_above": 1024, + "type": "keyword" + }, + "top_level_domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "resolved_ip": { + "type": "ip" + }, + "response_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "docker": { + "properties": { + "container": { + "properties": { + "command": { + "ignore_above": 1024, + "type": "keyword" + }, + "created": { + "type": "date" + }, + "ip_addresses": { + "type": "ip" + }, + "labels": { + "type": "object" + }, + "size": { + "properties": { + "root_fs": { + "type": "long" + }, + "rw": { + "type": "long" + } + } + }, + "status": { + "ignore_above": 1024, + "type": "keyword" + }, + "tags": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "cpu": { + "properties": { + "core": { + "properties": { + "*": { + "properties": { + "norm": { + "properties": { + "pct": { + "type": "object" + } + } + }, + "pct": { + "type": "object" + }, + "ticks": { + "type": "object" + } + } + } + } + }, + "kernel": { + "properties": { + "norm": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + }, + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + }, + "ticks": { + "type": "long" + } + } + }, + "system": { + "properties": { + "norm": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + }, + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + }, + "ticks": { + "type": "long" + } + } + }, + "total": { + "properties": { + "norm": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + }, + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + }, + "user": { + "properties": { + "norm": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + }, + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + }, + "ticks": { + "type": "long" + } + } + } + } + }, + "diskio": { + "properties": { + "read": { + "properties": { + "bytes": { + "type": "long" + }, + "ops": { + "type": "long" + }, + "queued": { + "type": "long" + }, + "rate": { + "type": "long" + }, + "service_time": { + "type": "long" + }, + "wait_time": { + "type": "long" + } + } + }, + "summary": { + "properties": { + "bytes": { + "type": "long" + }, + "ops": { + "type": "long" + }, + "queued": { + "type": "long" + }, + "rate": { + "type": "long" + }, + "service_time": { + "type": "long" + }, + "wait_time": { + "type": "long" + } + } + }, + "write": { + "properties": { + "bytes": { + "type": "long" + }, + "ops": { + "type": "long" + }, + "queued": { + "type": "long" + }, + "rate": { + "type": "long" + }, + "service_time": { + "type": "long" + }, + "wait_time": { + "type": "long" + } + } + } + } + }, + "event": { + "properties": { + "action": { + "ignore_above": 1024, + "type": "keyword" + }, + "actor": { + "properties": { + "attributes": { + "type": "object" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "from": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "status": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "healthcheck": { + "properties": { + "event": { + "properties": { + "end_date": { + "type": "date" + }, + "exit_code": { + "type": "long" + }, + "output": { + "ignore_above": 1024, + "type": "keyword" + }, + "start_date": { + "type": "date" + } + } + }, + "failingstreak": { + "type": "long" + }, + "status": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "image": { + "properties": { + "created": { + "type": "date" + }, + "id": { + "properties": { + "current": { + "ignore_above": 1024, + "type": "keyword" + }, + "parent": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "labels": { + "type": "object" + }, + "size": { + "properties": { + "regular": { + "type": "long" + }, + "virtual": { + "type": "long" + } + } + }, + "tags": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "info": { + "properties": { + "containers": { + "properties": { + "paused": { + "type": "long" + }, + "running": { + "type": "long" + }, + "stopped": { + "type": "long" + }, + "total": { + "type": "long" + } + } + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "images": { + "type": "long" + } + } + }, + "memory": { + "properties": { + "commit": { + "properties": { + "peak": { + "type": "long" + }, + "total": { + "type": "long" + } + } + }, + "fail": { + "properties": { + "count": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + }, + "limit": { + "type": "long" + }, + "private_working_set": { + "properties": { + "total": { + "type": "long" + } + } + }, + "rss": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + }, + "total": { + "type": "long" + } + } + }, + "stats": { + "properties": { + "*": { + "type": "object" + } + } + }, + "usage": { + "properties": { + "max": { + "type": "long" + }, + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + }, + "total": { + "type": "long" + } + } + } + } + }, + "network": { + "properties": { + "inbound": { + "properties": { + "bytes": { + "type": "long" + }, + "dropped": { + "type": "long" + }, + "errors": { + "type": "long" + }, + "packets": { + "type": "long" + } + } + }, + "interface": { + "ignore_above": 1024, + "type": "keyword" + }, + "outbound": { + "properties": { + "bytes": { + "type": "long" + }, + "dropped": { + "type": "long" + }, + "errors": { + "type": "long" + }, + "packets": { + "type": "long" + } + } + } + } + }, + "network_summary": { + "properties": { + "icmp": { + "properties": { + "*": { + "type": "object" + } + } + }, + "ip": { + "properties": { + "*": { + "type": "object" + } + } + }, + "namespace": { + "properties": { + "id": { + "type": "long" + }, + "pid": { + "type": "long" + } + } + }, + "tcp": { + "properties": { + "*": { + "type": "object" + } + } + }, + "udp": { + "properties": { + "*": { + "type": "object" + } + } + }, + "udp_lite": { + "properties": { + "*": { + "type": "object" + } + } + } + } + } + } + }, + "ecs": { + "properties": { + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "elasticsearch": { + "properties": { + "ccr": { + "properties": { + "auto_follow": { + "properties": { + "failed": { + "properties": { + "follow_indices": { + "properties": { + "count": { + "type": "long" + } + } + }, + "remote_cluster_state_requests": { + "properties": { + "count": { + "type": "long" + } + } + } + } + }, + "success": { + "properties": { + "follow_indices": { + "properties": { + "count": { + "type": "long" + } + } + } + } + } + } + }, + "bytes_read": { + "type": "long" + }, + "follower": { + "properties": { + "aliases_version": { + "type": "long" + }, + "global_checkpoint": { + "type": "long" + }, + "index": { + "ignore_above": 1024, + "type": "keyword" + }, + "mapping_version": { + "type": "long" + }, + "max_seq_no": { + "type": "long" + }, + "operations": { + "properties": { + "read": { + "properties": { + "count": { + "type": "long" + } + } + } + } + }, + "operations_written": { + "type": "long" + }, + "settings_version": { + "type": "long" + }, + "shard": { + "properties": { + "number": { + "type": "long" + } + } + }, + "time_since_last_read": { + "properties": { + "ms": { + "type": "long" + } + } + } + } + }, + "last_requested_seq_no": { + "type": "long" + }, + "leader": { + "properties": { + "global_checkpoint": { + "type": "long" + }, + "index": { + "ignore_above": 1024, + "type": "keyword" + }, + "max_seq_no": { + "type": "long" + } + } + }, + "read_exceptions": { + "type": "nested" + }, + "remote_cluster": { + "ignore_above": 1024, + "type": "keyword" + }, + "requests": { + "properties": { + "failed": { + "properties": { + "read": { + "properties": { + "count": { + "type": "long" + } + } + }, + "write": { + "properties": { + "count": { + "type": "long" + } + } + } + } + }, + "outstanding": { + "properties": { + "read": { + "properties": { + "count": { + "type": "long" + } + } + }, + "write": { + "properties": { + "count": { + "type": "long" + } + } + } + } + }, + "successful": { + "properties": { + "read": { + "properties": { + "count": { + "type": "long" + } + } + }, + "write": { + "properties": { + "count": { + "type": "long" + } + } + } + } + } + } + }, + "shard_id": { + "type": "long" + }, + "total_time": { + "properties": { + "read": { + "properties": { + "ms": { + "type": "long" + }, + "remote_exec": { + "properties": { + "ms": { + "type": "long" + } + } + } + } + }, + "write": { + "properties": { + "ms": { + "type": "long" + } + } + } + } + }, + "write_buffer": { + "properties": { + "operation": { + "properties": { + "count": { + "type": "long" + } + } + }, + "size": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + } + } + }, + "cluster": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "pending_task": { + "properties": { + "insert_order": { + "type": "long" + }, + "priority": { + "type": "long" + }, + "source": { + "ignore_above": 1024, + "type": "keyword" + }, + "time_in_queue": { + "properties": { + "ms": { + "type": "long" + } + } + } + } + }, + "state": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "stats": { + "properties": { + "indices": { + "properties": { + "fielddata": { + "properties": { + "memory": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "shards": { + "properties": { + "count": { + "type": "long" + }, + "docs": { + "properties": { + "total": { + "type": "long" + } + } + }, + "primaries": { + "type": "long" + } + } + }, + "store": { + "properties": { + "size": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "total": { + "type": "long" + } + } + }, + "license": { + "properties": { + "expiry_date_in_millis": { + "type": "long" + }, + "status": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "nodes": { + "properties": { + "count": { + "type": "long" + }, + "data": { + "type": "long" + }, + "fs": { + "properties": { + "available": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "total": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "jvm": { + "properties": { + "max_uptime": { + "properties": { + "ms": { + "type": "long" + } + } + }, + "memory": { + "properties": { + "heap": { + "properties": { + "max": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "used": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + } + } + } + } + }, + "master": { + "type": "long" + }, + "stats": { + "properties": { + "data": { + "type": "long" + } + } + } + } + }, + "stack": { + "properties": { + "apm": { + "properties": { + "found": { + "type": "boolean" + } + } + }, + "xpack": { + "properties": { + "ccr": { + "properties": { + "available": { + "type": "boolean" + }, + "enabled": { + "type": "boolean" + } + } + } + } + } + } + }, + "state": { + "properties": { + "master_node": { + "ignore_above": 1024, + "type": "keyword" + }, + "nodes_hash": { + "ignore_above": 1024, + "type": "keyword" + }, + "state_uuid": { + "ignore_above": 1024, + "type": "keyword" + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "status": { + "ignore_above": 1024, + "type": "keyword" + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + }, + "enrich": { + "properties": { + "executed_searches": { + "properties": { + "total": { + "type": "long" + } + } + }, + "executing_policy": { + "properties": { + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "task": { + "properties": { + "action": { + "ignore_above": 1024, + "type": "keyword" + }, + "cancellable": { + "type": "boolean" + }, + "id": { + "type": "long" + }, + "parent_task_id": { + "ignore_above": 1024, + "type": "keyword" + }, + "task": { + "ignore_above": 1024, + "type": "keyword" + }, + "time": { + "properties": { + "running": { + "properties": { + "nano": { + "type": "long" + } + } + }, + "start": { + "properties": { + "ms": { + "type": "long" + } + } + } + } + } + } + } + } + }, + "queue": { + "properties": { + "size": { + "type": "long" + } + } + }, + "remote_requests": { + "properties": { + "current": { + "type": "long" + }, + "total": { + "type": "long" + } + } + } + } + }, + "index": { + "properties": { + "created": { + "type": "long" + }, + "hidden": { + "type": "boolean" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "primaries": { + "properties": { + "docs": { + "properties": { + "count": { + "type": "long" + }, + "deleted": { + "type": "long" + } + } + }, + "indexing": { + "properties": { + "index_time_in_millis": { + "type": "long" + }, + "index_total": { + "type": "long" + }, + "throttle_time_in_millis": { + "type": "long" + } + } + }, + "merges": { + "properties": { + "total_size_in_bytes": { + "type": "long" + } + } + }, + "query_cache": { + "properties": { + "hit_count": { + "type": "long" + }, + "memory_size_in_bytes": { + "type": "long" + }, + "miss_count": { + "type": "long" + } + } + }, + "refresh": { + "properties": { + "external_total_time_in_millis": { + "type": "long" + }, + "total_time_in_millis": { + "type": "long" + } + } + }, + "request_cache": { + "properties": { + "evictions": { + "type": "long" + }, + "hit_count": { + "type": "long" + }, + "memory_size_in_bytes": { + "type": "long" + }, + "miss_count": { + "type": "long" + } + } + }, + "search": { + "properties": { + "query_time_in_millis": { + "type": "long" + }, + "query_total": { + "type": "long" + } + } + }, + "segments": { + "properties": { + "count": { + "type": "long" + }, + "doc_values_memory_in_bytes": { + "type": "long" + }, + "fixed_bit_set_memory_in_bytes": { + "type": "long" + }, + "index_writer_memory_in_bytes": { + "type": "long" + }, + "memory_in_bytes": { + "type": "long" + }, + "norms_memory_in_bytes": { + "type": "long" + }, + "points_memory_in_bytes": { + "type": "long" + }, + "stored_fields_memory_in_bytes": { + "type": "long" + }, + "term_vectors_memory_in_bytes": { + "type": "long" + }, + "terms_memory_in_bytes": { + "type": "long" + }, + "version_map_memory_in_bytes": { + "type": "long" + } + } + }, + "store": { + "properties": { + "size_in_bytes": { + "type": "long" + } + } + } + } + }, + "recovery": { + "properties": { + "id": { + "type": "long" + }, + "index": { + "properties": { + "files": { + "properties": { + "percent": { + "ignore_above": 1024, + "type": "keyword" + }, + "recovered": { + "type": "long" + }, + "reused": { + "type": "long" + }, + "total": { + "type": "long" + } + } + }, + "size": { + "properties": { + "recovered_in_bytes": { + "type": "long" + }, + "reused_in_bytes": { + "type": "long" + }, + "total_in_bytes": { + "type": "long" + } + } + } + } + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "host": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "transport_address": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "stage": { + "ignore_above": 1024, + "type": "keyword" + }, + "start_time": { + "properties": { + "ms": { + "type": "long" + } + } + }, + "stop_time": { + "properties": { + "ms": { + "type": "long" + } + } + }, + "target": { + "properties": { + "host": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "transport_address": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "total_time": { + "properties": { + "ms": { + "type": "long" + } + } + }, + "translog": { + "properties": { + "percent": { + "ignore_above": 1024, + "type": "keyword" + }, + "total": { + "type": "long" + }, + "total_on_start": { + "type": "long" + } + } + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + }, + "verify_index": { + "properties": { + "check_index_time": { + "properties": { + "ms": { + "type": "long" + } + } + }, + "total_time": { + "properties": { + "ms": { + "type": "long" + } + } + } + } + } + } + }, + "shards": { + "properties": { + "primaries": { + "type": "long" + }, + "total": { + "type": "long" + } + } + }, + "status": { + "ignore_above": 1024, + "type": "keyword" + }, + "summary": { + "properties": { + "primaries": { + "properties": { + "bulk": { + "properties": { + "operations": { + "properties": { + "count": { + "type": "long" + } + } + }, + "size": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "time": { + "properties": { + "avg": { + "properties": { + "bytes": { + "type": "long" + }, + "ms": { + "type": "long" + } + } + }, + "count": { + "properties": { + "ms": { + "type": "long" + } + } + } + } + } + } + }, + "docs": { + "properties": { + "count": { + "type": "long" + }, + "deleted": { + "type": "long" + } + } + }, + "indexing": { + "properties": { + "index": { + "properties": { + "count": { + "type": "long" + }, + "time": { + "properties": { + "ms": { + "type": "long" + } + } + } + } + } + } + }, + "search": { + "properties": { + "query": { + "properties": { + "count": { + "type": "long" + }, + "time": { + "properties": { + "ms": { + "type": "long" + } + } + } + } + } + } + }, + "segments": { + "properties": { + "count": { + "type": "long" + }, + "memory": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "store": { + "properties": { + "size": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + } + } + }, + "total": { + "properties": { + "bulk": { + "properties": { + "operations": { + "properties": { + "count": { + "type": "long" + } + } + }, + "size": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "time": { + "properties": { + "avg": { + "properties": { + "bytes": { + "type": "long" + }, + "ms": { + "type": "long" + } + } + } + } + } + } + }, + "docs": { + "properties": { + "count": { + "type": "long" + }, + "deleted": { + "type": "long" + } + } + }, + "indexing": { + "properties": { + "index": { + "properties": { + "count": { + "type": "long" + }, + "time": { + "properties": { + "ms": { + "type": "long" + } + } + } + } + }, + "is_throttled": { + "type": "boolean" + }, + "throttle_time": { + "properties": { + "ms": { + "type": "long" + } + } + } + } + }, + "search": { + "properties": { + "query": { + "properties": { + "count": { + "type": "long" + }, + "time": { + "properties": { + "ms": { + "type": "long" + } + } + } + } + } + } + }, + "segments": { + "properties": { + "count": { + "type": "long" + }, + "memory": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "store": { + "properties": { + "size": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + } + } + } + } + }, + "total": { + "properties": { + "bulk": { + "properties": { + "avg_size_in_bytes": { + "type": "long" + }, + "avg_time_in_millis": { + "type": "long" + }, + "total_operations": { + "type": "long" + }, + "total_size_in_bytes": { + "type": "long" + }, + "total_time_in_millis": { + "type": "long" + } + } + }, + "docs": { + "properties": { + "count": { + "type": "long" + }, + "deleted": { + "type": "long" + } + } + }, + "fielddata": { + "properties": { + "evictions": { + "type": "long" + }, + "memory_size_in_bytes": { + "type": "long" + } + } + }, + "indexing": { + "properties": { + "index_time_in_millis": { + "type": "long" + }, + "index_total": { + "type": "long" + }, + "throttle_time_in_millis": { + "type": "long" + } + } + }, + "merges": { + "properties": { + "total_size_in_bytes": { + "type": "long" + } + } + }, + "query_cache": { + "properties": { + "evictions": { + "type": "long" + }, + "hit_count": { + "type": "long" + }, + "memory_size_in_bytes": { + "type": "long" + }, + "miss_count": { + "type": "long" + } + } + }, + "refresh": { + "properties": { + "external_total_time_in_millis": { + "type": "long" + }, + "total_time_in_millis": { + "type": "long" + } + } + }, + "request_cache": { + "properties": { + "evictions": { + "type": "long" + }, + "hit_count": { + "type": "long" + }, + "memory_size_in_bytes": { + "type": "long" + }, + "miss_count": { + "type": "long" + } + } + }, + "search": { + "properties": { + "query_time_in_millis": { + "type": "long" + }, + "query_total": { + "type": "long" + } + } + }, + "segments": { + "properties": { + "count": { + "type": "long" + }, + "doc_values_memory_in_bytes": { + "type": "long" + }, + "fixed_bit_set_memory_in_bytes": { + "type": "long" + }, + "index_writer_memory_in_bytes": { + "type": "long" + }, + "memory_in_bytes": { + "type": "long" + }, + "norms_memory_in_bytes": { + "type": "long" + }, + "points_memory_in_bytes": { + "type": "long" + }, + "stored_fields_memory_in_bytes": { + "type": "long" + }, + "term_vectors_memory_in_bytes": { + "type": "long" + }, + "terms_memory_in_bytes": { + "type": "long" + }, + "version_map_memory_in_bytes": { + "type": "long" + } + } + }, + "store": { + "properties": { + "size_in_bytes": { + "type": "long" + } + } + } + } + }, + "uuid": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "ml": { + "properties": { + "job": { + "properties": { + "data": { + "properties": { + "invalid_date": { + "properties": { + "count": { + "type": "long" + } + } + } + } + }, + "data_counts": { + "properties": { + "invalid_date_count": { + "type": "long" + }, + "processed_record_count": { + "type": "long" + } + } + }, + "forecasts_stats": { + "properties": { + "total": { + "type": "long" + } + } + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "model_size": { + "properties": { + "memory_status": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "state": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + }, + "node": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "jvm": { + "properties": { + "memory": { + "properties": { + "heap": { + "properties": { + "init": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "max": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "nonheap": { + "properties": { + "init": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "max": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + } + } + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "master": { + "type": "boolean" + }, + "mlockall": { + "type": "boolean" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "process": { + "properties": { + "mlockall": { + "type": "boolean" + } + } + }, + "stats": { + "properties": { + "fs": { + "properties": { + "io_stats": { + "properties": { + "total": { + "properties": { + "operations": { + "properties": { + "count": { + "type": "long" + } + } + }, + "read": { + "properties": { + "operations": { + "properties": { + "count": { + "type": "long" + } + } + } + } + }, + "write": { + "properties": { + "operations": { + "properties": { + "count": { + "type": "long" + } + } + } + } + } + } + } + } + }, + "summary": { + "properties": { + "available": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "free": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "total": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "total": { + "properties": { + "available_in_bytes": { + "type": "long" + }, + "total_in_bytes": { + "type": "long" + } + } + } + } + }, + "indexing_pressure": { + "properties": { + "memory": { + "properties": { + "current": { + "properties": { + "all": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "combined_coordinating_and_primary": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "coordinating": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "primary": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "replica": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "limit_in_bytes": { + "type": "long" + }, + "total": { + "properties": { + "all": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "combined_coordinating_and_primary": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "coordinating": { + "properties": { + "bytes": { + "type": "long" + }, + "rejections": { + "type": "long" + } + } + }, + "primary": { + "properties": { + "bytes": { + "type": "long" + }, + "rejections": { + "type": "long" + } + } + }, + "replica": { + "properties": { + "bytes": { + "type": "long" + }, + "rejections": { + "type": "long" + } + } + } + } + } + } + } + } + }, + "indices": { + "properties": { + "bulk": { + "properties": { + "avg_size": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "avg_time": { + "properties": { + "bytes": { + "type": "long" + }, + "ms": { + "type": "long" + } + } + }, + "operations": { + "properties": { + "total": { + "properties": { + "count": { + "type": "long" + } + } + } + } + }, + "total_size": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "total_time": { + "properties": { + "ms": { + "type": "long" + } + } + } + } + }, + "docs": { + "properties": { + "count": { + "type": "long" + }, + "deleted": { + "type": "long" + } + } + }, + "fielddata": { + "properties": { + "memory": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "indexing": { + "properties": { + "index_time": { + "properties": { + "ms": { + "type": "long" + } + } + }, + "index_total": { + "properties": { + "count": { + "type": "long" + } + } + }, + "throttle_time": { + "properties": { + "ms": { + "type": "long" + } + } + } + } + }, + "query_cache": { + "properties": { + "memory": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "request_cache": { + "properties": { + "memory": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "search": { + "properties": { + "query_time": { + "properties": { + "ms": { + "type": "long" + } + } + }, + "query_total": { + "properties": { + "count": { + "type": "long" + } + } + } + } + }, + "segments": { + "properties": { + "count": { + "type": "long" + }, + "doc_values": { + "properties": { + "memory": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "fixed_bit_set": { + "properties": { + "memory": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "index_writer": { + "properties": { + "memory": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "memory": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "norms": { + "properties": { + "memory": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "points": { + "properties": { + "memory": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "stored_fields": { + "properties": { + "memory": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "term_vectors": { + "properties": { + "memory": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "terms": { + "properties": { + "memory": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "version_map": { + "properties": { + "memory": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + } + } + }, + "store": { + "properties": { + "size": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + } + } + }, + "ingest": { + "properties": { + "total": { + "properties": { + "count": { + "type": "long" + }, + "current": { + "type": "long" + }, + "failed": { + "type": "long" + }, + "time_in_millis": { + "type": "long" + } + } + } + } + }, + "jvm": { + "properties": { + "gc": { + "properties": { + "collectors": { + "properties": { + "old": { + "properties": { + "collection": { + "properties": { + "count": { + "type": "long" + }, + "ms": { + "type": "long" + } + } + } + } + }, + "young": { + "properties": { + "collection": { + "properties": { + "count": { + "type": "long" + }, + "ms": { + "type": "long" + } + } + } + } + } + } + } + } + }, + "mem": { + "properties": { + "heap": { + "properties": { + "max": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "used": { + "properties": { + "bytes": { + "type": "long" + }, + "pct": { + "type": "double" + } + } + } + } + }, + "pools": { + "properties": { + "old": { + "properties": { + "max": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "peak": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "peak_max": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "used": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "survivor": { + "properties": { + "max": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "peak": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "peak_max": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "used": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "young": { + "properties": { + "max": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "peak": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "peak_max": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "used": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + } + } + } + } + } + } + }, + "os": { + "properties": { + "cgroup": { + "properties": { + "cpu": { + "properties": { + "cfs": { + "properties": { + "quota": { + "properties": { + "us": { + "type": "long" + } + } + } + } + }, + "stat": { + "properties": { + "elapsed_periods": { + "properties": { + "count": { + "type": "long" + } + } + }, + "time_throttled": { + "properties": { + "ns": { + "type": "long" + } + } + }, + "times_throttled": { + "properties": { + "count": { + "type": "long" + } + } + } + } + } + } + }, + "cpuacct": { + "properties": { + "usage": { + "properties": { + "ns": { + "type": "long" + } + } + } + } + }, + "memory": { + "properties": { + "control_group": { + "ignore_above": 1024, + "type": "keyword" + }, + "limit": { + "properties": { + "bytes": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "usage": { + "properties": { + "bytes": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + } + } + }, + "cpu": { + "properties": { + "load_avg": { + "properties": { + "1m": { + "type": "half_float" + } + } + } + } + } + } + }, + "process": { + "properties": { + "cpu": { + "properties": { + "pct": { + "type": "double" + } + } + } + } + }, + "thread_pool": { + "properties": { + "bulk": { + "properties": { + "queue": { + "properties": { + "count": { + "type": "long" + } + } + }, + "rejected": { + "properties": { + "count": { + "type": "long" + } + } + } + } + }, + "get": { + "properties": { + "queue": { + "properties": { + "count": { + "type": "long" + } + } + }, + "rejected": { + "properties": { + "count": { + "type": "long" + } + } + } + } + }, + "index": { + "properties": { + "queue": { + "properties": { + "count": { + "type": "long" + } + } + }, + "rejected": { + "properties": { + "count": { + "type": "long" + } + } + } + } + }, + "search": { + "properties": { + "queue": { + "properties": { + "count": { + "type": "long" + } + } + }, + "rejected": { + "properties": { + "count": { + "type": "long" + } + } + } + } + }, + "write": { + "properties": { + "queue": { + "properties": { + "count": { + "type": "long" + } + } + }, + "rejected": { + "properties": { + "count": { + "type": "long" + } + } + } + } + } + } + } + } + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "shard": { + "properties": { + "number": { + "type": "long" + }, + "primary": { + "type": "boolean" + }, + "relocating_node": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "source_node": { + "properties": { + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "uuid": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "state": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + }, + "elf": { + "properties": { + "architecture": { + "ignore_above": 1024, + "type": "keyword" + }, + "byte_order": { + "ignore_above": 1024, + "type": "keyword" + }, + "cpu_type": { + "ignore_above": 1024, + "type": "keyword" + }, + "creation_date": { + "type": "date" + }, + "exports": { + "type": "flattened" + }, + "header": { + "properties": { + "abi_version": { + "ignore_above": 1024, + "type": "keyword" + }, + "class": { + "ignore_above": 1024, + "type": "keyword" + }, + "data": { + "ignore_above": 1024, + "type": "keyword" + }, + "entrypoint": { + "type": "long" + }, + "object_version": { + "ignore_above": 1024, + "type": "keyword" + }, + "os_abi": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "imports": { + "type": "flattened" + }, + "sections": { + "properties": { + "chi2": { + "type": "long" + }, + "entropy": { + "type": "long" + }, + "flags": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "physical_offset": { + "ignore_above": 1024, + "type": "keyword" + }, + "physical_size": { + "type": "long" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + }, + "virtual_address": { + "type": "long" + }, + "virtual_size": { + "type": "long" + } + }, + "type": "nested" + }, + "segments": { + "properties": { + "sections": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + } + }, + "type": "nested" + }, + "shared_libraries": { + "ignore_above": 1024, + "type": "keyword" + }, + "telfhash": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "envoyproxy": { + "properties": { + "server": { + "properties": { + "cluster_manager": { + "properties": { + "active_clusters": { + "type": "long" + }, + "cluster_added": { + "type": "long" + }, + "cluster_modified": { + "type": "long" + }, + "cluster_removed": { + "type": "long" + }, + "cluster_updated": { + "type": "long" + }, + "cluster_updated_via_merge": { + "type": "long" + }, + "update_merge_cancelled": { + "type": "long" + }, + "update_out_of_merge_window": { + "type": "long" + }, + "warming_clusters": { + "type": "long" + } + } + }, + "filesystem": { + "properties": { + "flushed_by_timer": { + "type": "long" + }, + "reopen_failed": { + "type": "long" + }, + "write_buffered": { + "type": "long" + }, + "write_completed": { + "type": "long" + }, + "write_failed": { + "type": "long" + }, + "write_total_buffered": { + "type": "long" + } + } + }, + "http2": { + "properties": { + "header_overflow": { + "type": "long" + }, + "headers_cb_no_stream": { + "type": "long" + }, + "rx_messaging_error": { + "type": "long" + }, + "rx_reset": { + "type": "long" + }, + "too_many_header_frames": { + "type": "long" + }, + "trailers": { + "type": "long" + }, + "tx_reset": { + "type": "long" + } + } + }, + "listener_manager": { + "properties": { + "listener_added": { + "type": "long" + }, + "listener_create_failure": { + "type": "long" + }, + "listener_create_success": { + "type": "long" + }, + "listener_modified": { + "type": "long" + }, + "listener_removed": { + "type": "long" + }, + "listener_stopped": { + "type": "long" + }, + "total_listeners_active": { + "type": "long" + }, + "total_listeners_draining": { + "type": "long" + }, + "total_listeners_warming": { + "type": "long" + } + } + }, + "runtime": { + "properties": { + "admin_overrides_active": { + "type": "long" + }, + "deprecated_feature_use": { + "type": "long" + }, + "load_error": { + "type": "long" + }, + "load_success": { + "type": "long" + }, + "num_keys": { + "type": "long" + }, + "num_layers": { + "type": "long" + }, + "override_dir_exists": { + "type": "long" + }, + "override_dir_not_exists": { + "type": "long" + } + } + }, + "server": { + "properties": { + "concurrency": { + "type": "long" + }, + "days_until_first_cert_expiring": { + "type": "long" + }, + "debug_assertion_failures": { + "type": "long" + }, + "dynamic_unknown_fields": { + "type": "long" + }, + "hot_restart_epoch": { + "type": "long" + }, + "live": { + "type": "long" + }, + "memory_allocated": { + "type": "long" + }, + "memory_heap_size": { + "type": "long" + }, + "parent_connections": { + "type": "long" + }, + "state": { + "type": "long" + }, + "static_unknown_fields": { + "type": "long" + }, + "stats_recent_lookups": { + "type": "long" + }, + "total_connections": { + "type": "long" + }, + "uptime": { + "type": "long" + }, + "version": { + "type": "long" + }, + "watchdog_mega_miss": { + "type": "long" + }, + "watchdog_miss": { + "type": "long" + } + } + }, + "stats": { + "properties": { + "overflow": { + "type": "long" + } + } + } + } + } + } + }, + "error": { + "properties": { + "code": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "message": { + "norms": false, + "type": "text" + }, + "stack_trace": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "etcd": { + "properties": { + "api_version": { + "ignore_above": 1024, + "type": "keyword" + }, + "disk": { + "properties": { + "backend_commit_duration": { + "properties": { + "ns": { + "properties": { + "bucket": { + "properties": { + "*": { + "type": "object" + } + } + }, + "count": { + "type": "long" + }, + "sum": { + "type": "long" + } + } + } + } + }, + "mvcc_db_total_size": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "wal_fsync_duration": { + "properties": { + "ns": { + "properties": { + "bucket": { + "properties": { + "*": { + "type": "object" + } + } + }, + "count": { + "type": "long" + }, + "sum": { + "type": "long" + } + } + } + } + } + } + }, + "leader": { + "properties": { + "follower": { + "properties": { + "failed_operations": { + "type": "long" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "latency": { + "properties": { + "ms": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + }, + "leader": { + "ignore_above": 1024, + "type": "keyword" + }, + "success_operations": { + "type": "long" + } + } + } + } + }, + "memory": { + "properties": { + "go_memstats_alloc": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "network": { + "properties": { + "client_grpc_received": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "client_grpc_sent": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "self": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "leaderinfo": { + "properties": { + "leader": { + "ignore_above": 1024, + "type": "keyword" + }, + "starttime": { + "ignore_above": 1024, + "type": "keyword" + }, + "uptime": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "recv": { + "properties": { + "appendrequest": { + "properties": { + "count": { + "type": "long" + } + } + }, + "bandwidthrate": { + "scaling_factor": 1000, + "type": "scaled_float" + }, + "pkgrate": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + }, + "send": { + "properties": { + "appendrequest": { + "properties": { + "count": { + "type": "long" + } + } + }, + "bandwidthrate": { + "scaling_factor": 1000, + "type": "scaled_float" + }, + "pkgrate": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + }, + "starttime": { + "ignore_above": 1024, + "type": "keyword" + }, + "state": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "server": { + "properties": { + "grpc_handled": { + "properties": { + "count": { + "type": "long" + } + } + }, + "grpc_started": { + "properties": { + "count": { + "type": "long" + } + } + }, + "has_leader": { + "type": "byte" + }, + "leader_changes": { + "properties": { + "count": { + "type": "long" + } + } + }, + "proposals_committed": { + "properties": { + "count": { + "type": "long" + } + } + }, + "proposals_failed": { + "properties": { + "count": { + "type": "long" + } + } + }, + "proposals_pending": { + "properties": { + "count": { + "type": "long" + } + } + } + } + }, + "store": { + "properties": { + "compareanddelete": { + "properties": { + "fail": { + "type": "long" + }, + "success": { + "type": "long" + } + } + }, + "compareandswap": { + "properties": { + "fail": { + "type": "long" + }, + "success": { + "type": "long" + } + } + }, + "create": { + "properties": { + "fail": { + "type": "long" + }, + "success": { + "type": "long" + } + } + }, + "delete": { + "properties": { + "fail": { + "type": "long" + }, + "success": { + "type": "long" + } + } + }, + "expire": { + "properties": { + "count": { + "type": "long" + } + } + }, + "gets": { + "properties": { + "fail": { + "type": "long" + }, + "success": { + "type": "long" + } + } + }, + "sets": { + "properties": { + "fail": { + "type": "long" + }, + "success": { + "type": "long" + } + } + }, + "update": { + "properties": { + "fail": { + "type": "long" + }, + "success": { + "type": "long" + } + } + }, + "watchers": { + "type": "long" + } + } + } + } + }, + "event": { + "properties": { + "action": { + "ignore_above": 1024, + "type": "keyword" + }, + "agent_id_status": { + "ignore_above": 1024, + "type": "keyword" + }, + "category": { + "ignore_above": 1024, + "type": "keyword" + }, + "code": { + "ignore_above": 1024, + "type": "keyword" + }, + "created": { + "type": "date" + }, + "dataset": { + "ignore_above": 1024, + "type": "keyword" + }, + "duration": { + "type": "long" + }, + "end": { + "type": "date" + }, + "hash": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "ingested": { + "type": "date" + }, + "kind": { + "ignore_above": 1024, + "type": "keyword" + }, + "module": { + "ignore_above": 1024, + "type": "keyword" + }, + "original": { + "doc_values": false, + "ignore_above": 1024, + "index": false, + "type": "keyword" + }, + "outcome": { + "ignore_above": 1024, + "type": "keyword" + }, + "provider": { + "ignore_above": 1024, + "type": "keyword" + }, + "reason": { + "ignore_above": 1024, + "type": "keyword" + }, + "reference": { + "ignore_above": 1024, + "type": "keyword" + }, + "risk_score": { + "type": "float" + }, + "risk_score_norm": { + "type": "float" + }, + "sequence": { + "type": "long" + }, + "severity": { + "type": "long" + }, + "start": { + "type": "date" + }, + "timezone": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + }, + "url": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "faas": { + "properties": { + "coldstart": { + "type": "boolean" + }, + "execution": { + "ignore_above": 1024, + "type": "keyword" + }, + "trigger": { + "properties": { + "request_id": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + } + }, + "type": "nested" + } + } + }, + "fields": { + "type": "object" + }, + "file": { + "properties": { + "accessed": { + "type": "date" + }, + "attributes": { + "ignore_above": 1024, + "type": "keyword" + }, + "code_signature": { + "properties": { + "digest_algorithm": { + "ignore_above": 1024, + "type": "keyword" + }, + "exists": { + "type": "boolean" + }, + "signing_id": { + "ignore_above": 1024, + "type": "keyword" + }, + "status": { + "ignore_above": 1024, + "type": "keyword" + }, + "subject_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "team_id": { + "ignore_above": 1024, + "type": "keyword" + }, + "timestamp": { + "type": "date" + }, + "trusted": { + "type": "boolean" + }, + "valid": { + "type": "boolean" + } + } + }, + "created": { + "type": "date" + }, + "ctime": { + "type": "date" + }, + "device": { + "ignore_above": 1024, + "type": "keyword" + }, + "directory": { + "ignore_above": 1024, + "type": "keyword" + }, + "drive_letter": { + "ignore_above": 1, + "type": "keyword" + }, + "elf": { + "properties": { + "architecture": { + "ignore_above": 1024, + "type": "keyword" + }, + "byte_order": { + "ignore_above": 1024, + "type": "keyword" + }, + "cpu_type": { + "ignore_above": 1024, + "type": "keyword" + }, + "creation_date": { + "type": "date" + }, + "exports": { + "type": "flattened" + }, + "header": { + "properties": { + "abi_version": { + "ignore_above": 1024, + "type": "keyword" + }, + "class": { + "ignore_above": 1024, + "type": "keyword" + }, + "data": { + "ignore_above": 1024, + "type": "keyword" + }, + "entrypoint": { + "type": "long" + }, + "object_version": { + "ignore_above": 1024, + "type": "keyword" + }, + "os_abi": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "imports": { + "type": "flattened" + }, + "sections": { + "properties": { + "chi2": { + "type": "long" + }, + "entropy": { + "type": "long" + }, + "flags": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "physical_offset": { + "ignore_above": 1024, + "type": "keyword" + }, + "physical_size": { + "type": "long" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + }, + "virtual_address": { + "type": "long" + }, + "virtual_size": { + "type": "long" + } + }, + "type": "nested" + }, + "segments": { + "properties": { + "sections": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + } + }, + "type": "nested" + }, + "shared_libraries": { + "ignore_above": 1024, + "type": "keyword" + }, + "telfhash": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "extension": { + "ignore_above": 1024, + "type": "keyword" + }, + "fork_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "gid": { + "ignore_above": 1024, + "type": "keyword" + }, + "group": { + "ignore_above": 1024, + "type": "keyword" + }, + "hash": { + "properties": { + "md5": { + "ignore_above": 1024, + "type": "keyword" + }, + "sha1": { + "ignore_above": 1024, + "type": "keyword" + }, + "sha256": { + "ignore_above": 1024, + "type": "keyword" + }, + "sha512": { + "ignore_above": 1024, + "type": "keyword" + }, + "ssdeep": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "inode": { + "ignore_above": 1024, + "type": "keyword" + }, + "mime_type": { + "ignore_above": 1024, + "type": "keyword" + }, + "mode": { + "ignore_above": 1024, + "type": "keyword" + }, + "mtime": { + "type": "date" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "owner": { + "ignore_above": 1024, + "type": "keyword" + }, + "path": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "pe": { + "properties": { + "architecture": { + "ignore_above": 1024, + "type": "keyword" + }, + "company": { + "ignore_above": 1024, + "type": "keyword" + }, + "description": { + "ignore_above": 1024, + "type": "keyword" + }, + "file_version": { + "ignore_above": 1024, + "type": "keyword" + }, + "imphash": { + "ignore_above": 1024, + "type": "keyword" + }, + "original_file_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "product": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "size": { + "type": "long" + }, + "target_path": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + }, + "uid": { + "ignore_above": 1024, + "type": "keyword" + }, + "x509": { + "properties": { + "alternative_names": { + "ignore_above": 1024, + "type": "keyword" + }, + "issuer": { + "properties": { + "common_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "country": { + "ignore_above": 1024, + "type": "keyword" + }, + "distinguished_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "locality": { + "ignore_above": 1024, + "type": "keyword" + }, + "organization": { + "ignore_above": 1024, + "type": "keyword" + }, + "organizational_unit": { + "ignore_above": 1024, + "type": "keyword" + }, + "state_or_province": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "not_after": { + "type": "date" + }, + "not_before": { + "type": "date" + }, + "public_key_algorithm": { + "ignore_above": 1024, + "type": "keyword" + }, + "public_key_curve": { + "ignore_above": 1024, + "type": "keyword" + }, + "public_key_exponent": { + "doc_values": false, + "index": false, + "type": "long" + }, + "public_key_size": { + "type": "long" + }, + "serial_number": { + "ignore_above": 1024, + "type": "keyword" + }, + "signature_algorithm": { + "ignore_above": 1024, + "type": "keyword" + }, + "subject": { + "properties": { + "common_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "country": { + "ignore_above": 1024, + "type": "keyword" + }, + "distinguished_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "locality": { + "ignore_above": 1024, + "type": "keyword" + }, + "organization": { + "ignore_above": 1024, + "type": "keyword" + }, + "organizational_unit": { + "ignore_above": 1024, + "type": "keyword" + }, + "state_or_province": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "version_number": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + }, + "geo": { + "properties": { + "city_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "continent_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "continent_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "country_iso_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "country_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "location": { + "type": "geo_point" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "postal_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "region_iso_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "region_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "timezone": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "golang": { + "properties": { + "expvar": { + "properties": { + "cmdline": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "heap": { + "properties": { + "allocations": { + "properties": { + "active": { + "type": "long" + }, + "allocated": { + "type": "long" + }, + "frees": { + "type": "long" + }, + "idle": { + "type": "long" + }, + "mallocs": { + "type": "long" + }, + "objects": { + "type": "long" + }, + "total": { + "type": "long" + } + } + }, + "cmdline": { + "ignore_above": 1024, + "type": "keyword" + }, + "gc": { + "properties": { + "cpu_fraction": { + "type": "float" + }, + "next_gc_limit": { + "type": "long" + }, + "pause": { + "properties": { + "avg": { + "properties": { + "ns": { + "type": "long" + } + } + }, + "count": { + "type": "long" + }, + "max": { + "properties": { + "ns": { + "type": "long" + } + } + }, + "sum": { + "properties": { + "ns": { + "type": "long" + } + } + } + } + }, + "total_count": { + "type": "long" + }, + "total_pause": { + "properties": { + "ns": { + "type": "long" + } + } + } + } + }, + "system": { + "properties": { + "obtained": { + "type": "long" + }, + "released": { + "type": "long" + }, + "stack": { + "type": "long" + }, + "total": { + "type": "long" + } + } + } + } + } + } + }, + "graphite": { + "properties": { + "server": { + "properties": { + "example": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + }, + "group": { + "properties": { + "domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "haproxy": { + "properties": { + "info": { + "properties": { + "busy_polling": { + "type": "long" + }, + "bytes": { + "properties": { + "out": { + "properties": { + "rate": { + "type": "long" + }, + "total": { + "type": "long" + } + } + } + } + }, + "compress": { + "properties": { + "bps": { + "properties": { + "in": { + "type": "long" + }, + "out": { + "type": "long" + }, + "rate_limit": { + "type": "long" + } + } + } + } + }, + "connection": { + "properties": { + "current": { + "type": "long" + }, + "hard_max": { + "type": "long" + }, + "max": { + "type": "long" + }, + "rate": { + "properties": { + "limit": { + "type": "long" + }, + "max": { + "type": "long" + }, + "value": { + "type": "long" + } + } + }, + "ssl": { + "properties": { + "current": { + "type": "long" + }, + "max": { + "type": "long" + }, + "total": { + "type": "long" + } + } + }, + "total": { + "type": "long" + } + } + }, + "dropped_logs": { + "type": "long" + }, + "failed_resolutions": { + "type": "long" + }, + "idle": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + }, + "jobs": { + "type": "long" + }, + "listeners": { + "type": "long" + }, + "memory": { + "properties": { + "max": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "peers": { + "properties": { + "active": { + "type": "long" + }, + "connected": { + "type": "long" + } + } + }, + "pipes": { + "properties": { + "free": { + "type": "long" + }, + "max": { + "type": "long" + }, + "used": { + "type": "long" + } + } + }, + "pool": { + "properties": { + "allocated": { + "type": "long" + }, + "failed": { + "type": "long" + }, + "used": { + "type": "long" + } + } + }, + "process_num": { + "type": "long" + }, + "processes": { + "type": "long" + }, + "requests": { + "properties": { + "max": { + "type": "long" + }, + "total": { + "type": "long" + } + } + }, + "run_queue": { + "type": "long" + }, + "session": { + "properties": { + "rate": { + "properties": { + "limit": { + "type": "long" + }, + "max": { + "type": "long" + }, + "value": { + "type": "long" + } + } + } + } + }, + "sockets": { + "properties": { + "max": { + "type": "long" + } + } + }, + "ssl": { + "properties": { + "backend": { + "properties": { + "key_rate": { + "properties": { + "max": { + "type": "long" + }, + "value": { + "type": "long" + } + } + } + } + }, + "cache_misses": { + "type": "long" + }, + "cached_lookups": { + "type": "long" + }, + "frontend": { + "properties": { + "key_rate": { + "properties": { + "max": { + "type": "long" + }, + "value": { + "type": "long" + } + } + }, + "session_reuse": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + } + } + }, + "rate": { + "properties": { + "limit": { + "type": "long" + }, + "max": { + "type": "long" + }, + "value": { + "type": "long" + } + } + } + } + }, + "stopping": { + "type": "long" + }, + "tasks": { + "type": "long" + }, + "threads": { + "type": "long" + }, + "ulimit_n": { + "type": "long" + }, + "unstoppable_jobs": { + "type": "long" + }, + "uptime": { + "properties": { + "sec": { + "type": "long" + } + } + }, + "zlib_mem_usage": { + "properties": { + "max": { + "type": "long" + }, + "value": { + "type": "long" + } + } + } + } + }, + "stat": { + "properties": { + "agent": { + "properties": { + "check": { + "properties": { + "description": { + "ignore_above": 1024, + "type": "keyword" + }, + "fall": { + "type": "long" + }, + "health": { + "type": "long" + }, + "rise": { + "type": "long" + } + } + }, + "code": { + "type": "long" + }, + "description": { + "ignore_above": 1024, + "type": "keyword" + }, + "duration": { + "type": "long" + }, + "fall": { + "type": "long" + }, + "health": { + "type": "long" + }, + "rise": { + "type": "long" + }, + "status": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "check": { + "properties": { + "agent": { + "properties": { + "last": { + "type": "long" + } + } + }, + "code": { + "type": "long" + }, + "down": { + "type": "long" + }, + "duration": { + "type": "long" + }, + "failed": { + "type": "long" + }, + "health": { + "properties": { + "fail": { + "type": "long" + }, + "last": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "status": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "client": { + "properties": { + "aborted": { + "type": "long" + } + } + }, + "component_type": { + "type": "long" + }, + "compressor": { + "properties": { + "bypassed": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "in": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "out": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "response": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "connection": { + "properties": { + "attempt": { + "properties": { + "total": { + "type": "long" + } + } + }, + "cache": { + "properties": { + "hits": { + "type": "long" + }, + "lookup": { + "properties": { + "total": { + "type": "long" + } + } + } + } + }, + "idle": { + "properties": { + "limit": { + "type": "long" + }, + "total": { + "type": "long" + } + } + }, + "rate": { + "type": "long" + }, + "rate_max": { + "type": "long" + }, + "retried": { + "type": "long" + }, + "reuse": { + "properties": { + "total": { + "type": "long" + } + } + }, + "time": { + "properties": { + "avg": { + "type": "long" + } + } + }, + "total": { + "type": "long" + } + } + }, + "cookie": { + "ignore_above": 1024, + "type": "keyword" + }, + "downtime": { + "type": "long" + }, + "header": { + "properties": { + "rewrite": { + "properties": { + "failed": { + "properties": { + "total": { + "type": "long" + } + } + } + } + } + } + }, + "in": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "last_change": { + "type": "long" + }, + "load_balancing_algorithm": { + "ignore_above": 1024, + "type": "keyword" + }, + "out": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "proxy": { + "properties": { + "id": { + "type": "long" + }, + "mode": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "queue": { + "properties": { + "limit": { + "type": "long" + }, + "time": { + "properties": { + "avg": { + "type": "long" + } + } + } + } + }, + "request": { + "properties": { + "connection": { + "properties": { + "errors": { + "type": "long" + } + } + }, + "denied": { + "type": "long" + }, + "denied_by_connection_rules": { + "type": "long" + }, + "denied_by_session_rules": { + "type": "long" + }, + "errors": { + "type": "long" + }, + "intercepted": { + "type": "long" + }, + "queued": { + "properties": { + "current": { + "type": "long" + }, + "max": { + "type": "long" + } + } + }, + "rate": { + "properties": { + "max": { + "type": "long" + }, + "value": { + "type": "long" + } + } + }, + "redispatched": { + "type": "long" + }, + "total": { + "type": "long" + } + } + }, + "response": { + "properties": { + "denied": { + "type": "long" + }, + "errors": { + "type": "long" + }, + "http": { + "properties": { + "1xx": { + "type": "long" + }, + "2xx": { + "type": "long" + }, + "3xx": { + "type": "long" + }, + "4xx": { + "type": "long" + }, + "5xx": { + "type": "long" + }, + "other": { + "type": "long" + } + } + }, + "time": { + "properties": { + "avg": { + "type": "long" + } + } + } + } + }, + "selected": { + "properties": { + "total": { + "type": "long" + } + } + }, + "server": { + "properties": { + "aborted": { + "type": "long" + }, + "active": { + "type": "long" + }, + "backup": { + "type": "long" + }, + "id": { + "type": "long" + } + } + }, + "service_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "session": { + "properties": { + "current": { + "type": "long" + }, + "limit": { + "type": "long" + }, + "max": { + "type": "long" + }, + "rate": { + "properties": { + "limit": { + "type": "long" + }, + "max": { + "type": "long" + }, + "value": { + "type": "long" + } + } + }, + "total": { + "type": "long" + } + } + }, + "source": { + "properties": { + "address": { + "norms": false, + "type": "text" + } + } + }, + "status": { + "ignore_above": 1024, + "type": "keyword" + }, + "throttle": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + }, + "tracked": { + "properties": { + "id": { + "type": "long" + } + } + }, + "weight": { + "type": "long" + } + } + } + } + }, + "hash": { + "properties": { + "md5": { + "ignore_above": 1024, + "type": "keyword" + }, + "sha1": { + "ignore_above": 1024, + "type": "keyword" + }, + "sha256": { + "ignore_above": 1024, + "type": "keyword" + }, + "sha512": { + "ignore_above": 1024, + "type": "keyword" + }, + "ssdeep": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "host": { + "properties": { + "architecture": { + "ignore_above": 1024, + "type": "keyword" + }, + "containerized": { + "type": "boolean" + }, + "cpu": { + "properties": { + "usage": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + }, + "disk": { + "properties": { + "read": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "write": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "geo": { + "properties": { + "city_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "continent_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "continent_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "country_iso_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "country_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "location": { + "type": "geo_point" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "postal_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "region_iso_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "region_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "timezone": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "hostname": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "ip": { + "type": "ip" + }, + "mac": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "network": { + "properties": { + "egress": { + "properties": { + "bytes": { + "type": "long" + }, + "packets": { + "type": "long" + } + } + }, + "ingress": { + "properties": { + "bytes": { + "type": "long" + }, + "packets": { + "type": "long" + } + } + } + } + }, + "os": { + "properties": { + "build": { + "ignore_above": 1024, + "type": "keyword" + }, + "codename": { + "ignore_above": 1024, + "type": "keyword" + }, + "family": { + "ignore_above": 1024, + "type": "keyword" + }, + "full": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "kernel": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "platform": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + }, + "uptime": { + "type": "long" + } + } + }, + "http": { + "properties": { + "request": { + "properties": { + "body": { + "properties": { + "bytes": { + "type": "long" + }, + "content": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "bytes": { + "type": "long" + }, + "headers": { + "type": "object" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "method": { + "ignore_above": 1024, + "type": "keyword" + }, + "mime_type": { + "ignore_above": 1024, + "type": "keyword" + }, + "referrer": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "response": { + "properties": { + "body": { + "properties": { + "bytes": { + "type": "long" + }, + "content": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "bytes": { + "type": "long" + }, + "code": { + "ignore_above": 1024, + "type": "keyword" + }, + "headers": { + "type": "object" + }, + "mime_type": { + "ignore_above": 1024, + "type": "keyword" + }, + "phrase": { + "ignore_above": 1024, + "type": "keyword" + }, + "status_code": { + "type": "long" + } + } + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "index_recovery": { + "properties": { + "shards": { + "properties": { + "start_time_in_millis": { + "path": "elasticsearch.index.recovery.start_time.ms", + "type": "alias" + }, + "stop_time_in_millis": { + "path": "elasticsearch.index.recovery.stop_time.ms", + "type": "alias" + } + } + } + } + }, + "index_stats": { + "properties": { + "index": { + "path": "elasticsearch.index.name", + "type": "alias" + }, + "primaries": { + "properties": { + "docs": { + "properties": { + "count": { + "path": "elasticsearch.index.primaries.docs.count", + "type": "alias" + } + } + }, + "indexing": { + "properties": { + "index_time_in_millis": { + "path": "elasticsearch.index.primaries.indexing.index_time_in_millis", + "type": "alias" + }, + "index_total": { + "path": "elasticsearch.index.primaries.indexing.index_total", + "type": "alias" + }, + "throttle_time_in_millis": { + "path": "elasticsearch.index.primaries.indexing.throttle_time_in_millis", + "type": "alias" + } + } + }, + "merges": { + "properties": { + "total_size_in_bytes": { + "path": "elasticsearch.index.primaries.merges.total_size_in_bytes", + "type": "alias" + } + } + }, + "refresh": { + "properties": { + "total_time_in_millis": { + "path": "elasticsearch.index.primaries.refresh.total_time_in_millis", + "type": "alias" + } + } + }, + "segments": { + "properties": { + "count": { + "path": "elasticsearch.index.primaries.segments.count", + "type": "alias" + } + } + }, + "store": { + "properties": { + "size_in_bytes": { + "path": "elasticsearch.index.primaries.store.size_in_bytes", + "type": "alias" + } + } + } + } + }, + "total": { + "properties": { + "fielddata": { + "properties": { + "memory_size_in_bytes": { + "path": "elasticsearch.index.total.fielddata.memory_size_in_bytes", + "type": "alias" + } + } + }, + "indexing": { + "properties": { + "index_time_in_millis": { + "path": "elasticsearch.index.total.indexing.index_time_in_millis", + "type": "alias" + }, + "index_total": { + "path": "elasticsearch.index.total.indexing.index_total", + "type": "alias" + }, + "throttle_time_in_millis": { + "path": "elasticsearch.index.total.indexing.throttle_time_in_millis", + "type": "alias" + } + } + }, + "merges": { + "properties": { + "total_size_in_bytes": { + "path": "elasticsearch.index.total.merges.total_size_in_bytes", + "type": "alias" + } + } + }, + "query_cache": { + "properties": { + "memory_size_in_bytes": { + "path": "elasticsearch.index.total.query_cache.memory_size_in_bytes", + "type": "alias" + } + } + }, + "refresh": { + "properties": { + "total_time_in_millis": { + "path": "elasticsearch.index.total.refresh.total_time_in_millis", + "type": "alias" + } + } + }, + "request_cache": { + "properties": { + "memory_size_in_bytes": { + "path": "elasticsearch.index.total.request_cache.memory_size_in_bytes", + "type": "alias" + } + } + }, + "search": { + "properties": { + "query_time_in_millis": { + "path": "elasticsearch.index.total.search.query_time_in_millis", + "type": "alias" + }, + "query_total": { + "path": "elasticsearch.index.total.search.query_total", + "type": "alias" + } + } + }, + "segments": { + "properties": { + "count": { + "path": "elasticsearch.index.total.segments.count", + "type": "alias" + }, + "doc_values_memory_in_bytes": { + "path": "elasticsearch.index.total.segments.doc_values_memory_in_bytes", + "type": "alias" + }, + "fixed_bit_set_memory_in_bytes": { + "path": "elasticsearch.index.total.segments.fixed_bit_set_memory_in_bytes", + "type": "alias" + }, + "index_writer_memory_in_bytes": { + "path": "elasticsearch.index.total.segments.index_writer_memory_in_bytes", + "type": "alias" + }, + "memory_in_bytes": { + "path": "elasticsearch.index.total.segments.memory_in_bytes", + "type": "alias" + }, + "norms_memory_in_bytes": { + "path": "elasticsearch.index.total.segments.norms_memory_in_bytes", + "type": "alias" + }, + "points_memory_in_bytes": { + "path": "elasticsearch.index.total.segments.points_memory_in_bytes", + "type": "alias" + }, + "stored_fields_memory_in_bytes": { + "path": "elasticsearch.index.total.segments.stored_fields_memory_in_bytes", + "type": "alias" + }, + "term_vectors_memory_in_bytes": { + "path": "elasticsearch.index.total.segments.term_vectors_memory_in_bytes", + "type": "alias" + }, + "terms_memory_in_bytes": { + "path": "elasticsearch.index.total.segments.terms_memory_in_bytes", + "type": "alias" + }, + "version_map_memory_in_bytes": { + "path": "elasticsearch.index.total.segments.version_map_memory_in_bytes", + "type": "alias" + } + } + }, + "store": { + "properties": { + "size_in_bytes": { + "path": "elasticsearch.index.total.store.size_in_bytes", + "type": "alias" + } + } + } + } + } + } + }, + "indices_stats": { + "properties": { + "_all": { + "properties": { + "primaries": { + "properties": { + "indexing": { + "properties": { + "index_time_in_millis": { + "path": "elasticsearch.index.summary.primaries.indexing.index.time.ms", + "type": "alias" + }, + "index_total": { + "path": "elasticsearch.index.summary.primaries.indexing.index.count", + "type": "alias" + } + } + } + } + }, + "total": { + "properties": { + "indexing": { + "properties": { + "index_total": { + "path": "elasticsearch.index.summary.total.indexing.index.count", + "type": "alias" + } + } + }, + "search": { + "properties": { + "query_time_in_millis": { + "path": "elasticsearch.index.summary.total.search.query.time.ms", + "type": "alias" + }, + "query_total": { + "path": "elasticsearch.index.summary.total.search.query.count", + "type": "alias" + } + } + } + } + } + } + } + } + }, + "interface": { + "properties": { + "alias": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "job_stats": { + "properties": { + "forecasts_stats": { + "properties": { + "total": { + "path": "elasticsearch.ml.job.forecasts_stats.total", + "type": "alias" + } + } + }, + "job_id": { + "path": "elasticsearch.ml.job.id", + "type": "alias" + } + } + }, + "jolokia": { + "properties": { + "agent": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "secured": { + "type": "boolean" + }, + "server": { + "properties": { + "product": { + "ignore_above": 1024, + "type": "keyword" + }, + "vendor": { + "ignore_above": 1024, + "type": "keyword" + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "url": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "kafka": { + "properties": { + "broker": { + "properties": { + "address": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "type": "long" + }, + "log": { + "properties": { + "flush_rate": { + "type": "float" + } + } + }, + "mbean": { + "ignore_above": 1024, + "type": "keyword" + }, + "messages_in": { + "type": "float" + }, + "net": { + "properties": { + "in": { + "properties": { + "bytes_per_sec": { + "type": "float" + } + } + }, + "out": { + "properties": { + "bytes_per_sec": { + "type": "float" + } + } + }, + "rejected": { + "properties": { + "bytes_per_sec": { + "type": "float" + } + } + } + } + }, + "replication": { + "properties": { + "leader_elections": { + "type": "float" + }, + "unclean_leader_elections": { + "type": "float" + } + } + }, + "request": { + "properties": { + "channel": { + "properties": { + "queue": { + "properties": { + "size": { + "type": "long" + } + } + } + } + }, + "fetch": { + "properties": { + "failed": { + "type": "float" + }, + "failed_per_second": { + "type": "float" + } + } + }, + "produce": { + "properties": { + "failed": { + "type": "float" + }, + "failed_per_second": { + "type": "float" + } + } + } + } + }, + "session": { + "properties": { + "zookeeper": { + "properties": { + "disconnect": { + "type": "float" + }, + "expire": { + "type": "float" + }, + "readonly": { + "type": "float" + }, + "sync": { + "type": "float" + } + } + } + } + }, + "topic": { + "properties": { + "messages_in": { + "type": "float" + }, + "net": { + "properties": { + "in": { + "properties": { + "bytes_per_sec": { + "type": "float" + } + } + }, + "out": { + "properties": { + "bytes_per_sec": { + "type": "float" + } + } + }, + "rejected": { + "properties": { + "bytes_per_sec": { + "type": "float" + } + } + } + } + } + } + } + } + }, + "consumer": { + "properties": { + "bytes_consumed": { + "type": "float" + }, + "fetch_rate": { + "type": "float" + }, + "in": { + "properties": { + "bytes_per_sec": { + "type": "float" + } + } + }, + "kafka_commits": { + "type": "float" + }, + "max_lag": { + "type": "float" + }, + "mbean": { + "ignore_above": 1024, + "type": "keyword" + }, + "messages_in": { + "type": "float" + }, + "records_consumed": { + "type": "float" + }, + "zookeeper_commits": { + "type": "float" + } + } + }, + "consumergroup": { + "properties": { + "client": { + "properties": { + "host": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "member_id": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "consumer_lag": { + "type": "long" + }, + "error": { + "properties": { + "code": { + "type": "long" + } + } + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "meta": { + "ignore_above": 1024, + "type": "keyword" + }, + "offset": { + "type": "long" + } + } + }, + "partition": { + "properties": { + "id": { + "type": "long" + }, + "offset": { + "properties": { + "newest": { + "type": "long" + }, + "oldest": { + "type": "long" + } + } + }, + "partition": { + "properties": { + "error": { + "properties": { + "code": { + "type": "long" + } + } + }, + "insync_replica": { + "type": "boolean" + }, + "is_leader": { + "type": "boolean" + }, + "leader": { + "type": "long" + }, + "replica": { + "type": "long" + } + } + }, + "topic_broker_id": { + "ignore_above": 1024, + "type": "keyword" + }, + "topic_id": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "producer": { + "properties": { + "available_buffer_bytes": { + "type": "float" + }, + "batch_size_avg": { + "type": "float" + }, + "batch_size_max": { + "type": "long" + }, + "io_wait": { + "type": "float" + }, + "mbean": { + "ignore_above": 1024, + "type": "keyword" + }, + "message_rate": { + "type": "float" + }, + "out": { + "properties": { + "bytes_per_sec": { + "type": "float" + } + } + }, + "record_error_rate": { + "type": "float" + }, + "record_retry_rate": { + "type": "float" + }, + "record_send_rate": { + "type": "float" + }, + "record_size_avg": { + "type": "float" + }, + "record_size_max": { + "type": "long" + }, + "records_per_request": { + "type": "float" + }, + "request_rate": { + "type": "float" + }, + "response_rate": { + "type": "float" + } + } + }, + "topic": { + "properties": { + "error": { + "properties": { + "code": { + "type": "long" + } + } + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + }, + "kibana": { + "properties": { + "cluster_actions": { + "properties": { + "kibana": { + "properties": { + "status": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "overdue": { + "properties": { + "count": { + "type": "long" + }, + "delay": { + "properties": { + "p50": { + "type": "float" + }, + "p99": { + "type": "float" + } + } + } + } + } + } + }, + "cluster_rules": { + "properties": { + "kibana": { + "properties": { + "status": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "overdue": { + "properties": { + "count": { + "type": "long" + }, + "delay": { + "properties": { + "p50": { + "type": "float" + }, + "p99": { + "type": "float" + } + } + } + } + } + } + }, + "elasticsearch": { + "properties": { + "cluster": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + }, + "node_actions": { + "properties": { + "executions": { + "type": "long" + }, + "failures": { + "type": "long" + }, + "kibana": { + "properties": { + "status": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "timeouts": { + "type": "long" + } + } + }, + "node_rules": { + "properties": { + "executions": { + "type": "long" + }, + "failures": { + "type": "long" + }, + "kibana": { + "properties": { + "status": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "timeouts": { + "type": "long" + } + } + }, + "settings": { + "properties": { + "host": { + "ignore_above": 1024, + "type": "keyword" + }, + "index": { + "ignore_above": 1024, + "type": "keyword" + }, + "locale": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "port": { + "type": "long" + }, + "snapshot": { + "type": "boolean" + }, + "status": { + "ignore_above": 1024, + "type": "keyword" + }, + "transport_address": { + "ignore_above": 1024, + "type": "keyword" + }, + "uuid": { + "ignore_above": 1024, + "type": "keyword" + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "stats": { + "properties": { + "concurrent_connections": { + "type": "long" + }, + "host": { + "properties": { + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "index": { + "ignore_above": 1024, + "type": "keyword" + }, + "kibana": { + "properties": { + "status": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "os": { + "properties": { + "distro": { + "ignore_above": 1024, + "type": "keyword" + }, + "distroRelease": { + "ignore_above": 1024, + "type": "keyword" + }, + "load": { + "properties": { + "15m": { + "type": "half_float" + }, + "1m": { + "type": "half_float" + }, + "5m": { + "type": "half_float" + } + } + }, + "memory": { + "properties": { + "free_in_bytes": { + "type": "long" + }, + "total_in_bytes": { + "type": "long" + }, + "used_in_bytes": { + "type": "long" + } + } + }, + "platform": { + "ignore_above": 1024, + "type": "keyword" + }, + "platformRelease": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "process": { + "properties": { + "event_loop_delay": { + "properties": { + "ms": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + }, + "memory": { + "properties": { + "heap": { + "properties": { + "size_limit": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "total": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "uptime": { + "properties": { + "ms": { + "type": "long" + } + } + }, + "used": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "resident_set_size": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "uptime": { + "properties": { + "ms": { + "type": "long" + } + } + } + } + }, + "request": { + "properties": { + "disconnects": { + "type": "long" + }, + "total": { + "type": "long" + } + } + }, + "response_time": { + "properties": { + "avg": { + "properties": { + "ms": { + "type": "long" + } + } + }, + "max": { + "properties": { + "ms": { + "type": "long" + } + } + } + } + }, + "snapshot": { + "type": "boolean" + }, + "status": { + "ignore_above": 1024, + "type": "keyword" + }, + "usage": { + "properties": { + "index": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + }, + "status": { + "properties": { + "metrics": { + "properties": { + "concurrent_connections": { + "type": "long" + }, + "requests": { + "properties": { + "disconnects": { + "type": "long" + }, + "total": { + "type": "long" + } + } + } + } + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "status": { + "properties": { + "overall": { + "properties": { + "state": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + } + } + } + } + }, + "kibana_stats": { + "properties": { + "concurrent_connections": { + "path": "kibana.stats.concurrent_connections", + "type": "alias" + }, + "kibana": { + "properties": { + "response_time": { + "properties": { + "max": { + "path": "kibana.stats.response_time.max.ms", + "type": "alias" + } + } + }, + "status": { + "path": "kibana.stats.kibana.status", + "type": "alias" + }, + "uuid": { + "path": "service.id", + "type": "alias" + } + } + }, + "os": { + "properties": { + "load": { + "properties": { + "15m": { + "path": "kibana.stats.os.load.15m", + "type": "alias" + }, + "1m": { + "path": "kibana.stats.os.load.1m", + "type": "alias" + }, + "5m": { + "path": "kibana.stats.os.load.5m", + "type": "alias" + } + } + }, + "memory": { + "properties": { + "free_in_bytes": { + "path": "kibana.stats.os.memory.free_in_bytes", + "type": "alias" + } + } + } + } + }, + "process": { + "properties": { + "event_loop_delay": { + "path": "kibana.stats.process.event_loop_delay.ms", + "type": "alias" + }, + "memory": { + "properties": { + "heap": { + "properties": { + "size_limit": { + "path": "kibana.stats.process.memory.heap.size_limit.bytes", + "type": "alias" + } + } + }, + "resident_set_size_in_bytes": { + "path": "kibana.stats.process.memory.resident_set_size.bytes", + "type": "alias" + } + } + }, + "uptime_in_millis": { + "path": "kibana.stats.process.uptime.ms", + "type": "alias" + } + } + }, + "requests": { + "properties": { + "disconnects": { + "path": "kibana.stats.request.disconnects", + "type": "alias" + }, + "total": { + "path": "kibana.stats.request.total", + "type": "alias" + } + } + }, + "response_times": { + "properties": { + "average": { + "path": "kibana.stats.response_time.avg.ms", + "type": "alias" + }, + "max": { + "path": "kibana.stats.response_time.max.ms", + "type": "alias" + } + } + }, + "timestamp": { + "path": "@timestamp", + "type": "alias" + } + } + }, + "kubernetes": { + "properties": { + "annotations": { + "properties": { + "*": { + "type": "object" + } + } + }, + "apiserver": { + "properties": { + "audit": { + "properties": { + "event": { + "properties": { + "count": { + "type": "long" + } + } + }, + "rejected": { + "properties": { + "count": { + "type": "long" + } + } + } + } + }, + "client": { + "properties": { + "request": { + "properties": { + "count": { + "type": "long" + } + } + } + } + }, + "etcd": { + "properties": { + "object": { + "properties": { + "count": { + "type": "long" + } + } + } + } + }, + "process": { + "properties": { + "cpu": { + "properties": { + "sec": { + "type": "double" + } + } + }, + "fds": { + "properties": { + "open": { + "properties": { + "count": { + "type": "long" + } + } + } + } + }, + "memory": { + "properties": { + "resident": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "virtual": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "started": { + "properties": { + "sec": { + "type": "double" + } + } + } + } + }, + "request": { + "properties": { + "code": { + "ignore_above": 1024, + "type": "keyword" + }, + "component": { + "ignore_above": 1024, + "type": "keyword" + }, + "content_type": { + "ignore_above": 1024, + "type": "keyword" + }, + "count": { + "type": "long" + }, + "current": { + "properties": { + "count": { + "type": "long" + } + } + }, + "dry_run": { + "ignore_above": 1024, + "type": "keyword" + }, + "duration": { + "properties": { + "us": { + "properties": { + "bucket": { + "properties": { + "*": { + "type": "object" + } + } + }, + "count": { + "type": "long" + }, + "sum": { + "type": "long" + } + } + } + } + }, + "group": { + "ignore_above": 1024, + "type": "keyword" + }, + "handler": { + "ignore_above": 1024, + "type": "keyword" + }, + "host": { + "ignore_above": 1024, + "type": "keyword" + }, + "kind": { + "ignore_above": 1024, + "type": "keyword" + }, + "longrunning": { + "properties": { + "count": { + "type": "long" + } + } + }, + "method": { + "ignore_above": 1024, + "type": "keyword" + }, + "resource": { + "ignore_above": 1024, + "type": "keyword" + }, + "scope": { + "ignore_above": 1024, + "type": "keyword" + }, + "subresource": { + "ignore_above": 1024, + "type": "keyword" + }, + "verb": { + "ignore_above": 1024, + "type": "keyword" + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "response": { + "properties": { + "size": { + "properties": { + "bytes": { + "properties": { + "bucket": { + "properties": { + "*": { + "type": "object" + } + } + }, + "count": { + "type": "long" + }, + "sum": { + "type": "long" + } + } + } + } + } + } + }, + "watch": { + "properties": { + "events": { + "properties": { + "kind": { + "ignore_above": 1024, + "type": "keyword" + }, + "size": { + "properties": { + "bytes": { + "properties": { + "bucket": { + "properties": { + "*": { + "type": "object" + } + } + }, + "count": { + "type": "long" + }, + "sum": { + "type": "long" + } + } + } + } + } + } + } + } + } + } + }, + "container": { + "properties": { + "cpu": { + "properties": { + "limit": { + "properties": { + "cores": { + "type": "float" + } + } + }, + "request": { + "properties": { + "cores": { + "type": "float" + } + } + }, + "usage": { + "properties": { + "core": { + "properties": { + "ns": { + "type": "double" + } + } + }, + "limit": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + }, + "nanocores": { + "type": "double" + }, + "node": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + } + } + } + } + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "logs": { + "properties": { + "available": { + "properties": { + "bytes": { + "type": "double" + } + } + }, + "capacity": { + "properties": { + "bytes": { + "type": "double" + } + } + }, + "inodes": { + "properties": { + "count": { + "type": "double" + }, + "free": { + "type": "double" + }, + "used": { + "type": "double" + } + } + }, + "used": { + "properties": { + "bytes": { + "type": "double" + } + } + } + } + }, + "memory": { + "properties": { + "available": { + "properties": { + "bytes": { + "type": "double" + } + } + }, + "limit": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "majorpagefaults": { + "type": "double" + }, + "pagefaults": { + "type": "double" + }, + "request": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "rss": { + "properties": { + "bytes": { + "type": "double" + } + } + }, + "usage": { + "properties": { + "bytes": { + "type": "double" + }, + "limit": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + }, + "node": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + } + } + }, + "workingset": { + "properties": { + "bytes": { + "type": "double" + }, + "limit": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + } + } + } + } + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "rootfs": { + "properties": { + "available": { + "properties": { + "bytes": { + "type": "double" + } + } + }, + "capacity": { + "properties": { + "bytes": { + "type": "double" + } + } + }, + "inodes": { + "properties": { + "used": { + "type": "double" + } + } + }, + "used": { + "properties": { + "bytes": { + "type": "double" + } + } + } + } + }, + "start_time": { + "type": "date" + }, + "status": { + "properties": { + "last_terminated_reason": { + "ignore_above": 1024, + "type": "keyword" + }, + "phase": { + "ignore_above": 1024, + "type": "keyword" + }, + "ready": { + "type": "boolean" + }, + "reason": { + "ignore_above": 1024, + "type": "keyword" + }, + "restarts": { + "type": "long" + } + } + } + } + }, + "controllermanager": { + "properties": { + "client": { + "properties": { + "request": { + "properties": { + "count": { + "type": "long" + }, + "duration": { + "properties": { + "us": { + "properties": { + "bucket": { + "properties": { + "*": { + "type": "object" + } + } + }, + "count": { + "type": "long" + }, + "sum": { + "type": "long" + } + } + } + } + } + } + } + } + }, + "code": { + "ignore_above": 1024, + "type": "keyword" + }, + "host": { + "ignore_above": 1024, + "type": "keyword" + }, + "leader": { + "properties": { + "is_master": { + "type": "boolean" + } + } + }, + "method": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "node": { + "properties": { + "collector": { + "properties": { + "count": { + "type": "long" + }, + "eviction": { + "properties": { + "count": { + "type": "long" + } + } + }, + "health": { + "properties": { + "pct": { + "type": "long" + } + } + }, + "unhealthy": { + "properties": { + "count": { + "type": "long" + } + } + } + } + } + } + }, + "process": { + "properties": { + "cpu": { + "properties": { + "sec": { + "type": "double" + } + } + }, + "fds": { + "properties": { + "max": { + "properties": { + "count": { + "type": "long" + } + } + }, + "open": { + "properties": { + "count": { + "type": "long" + } + } + } + } + }, + "memory": { + "properties": { + "resident": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "virtual": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "started": { + "properties": { + "sec": { + "type": "double" + } + } + } + } + }, + "url": { + "ignore_above": 1024, + "type": "keyword" + }, + "verb": { + "ignore_above": 1024, + "type": "keyword" + }, + "workqueue": { + "properties": { + "adds": { + "properties": { + "count": { + "type": "long" + } + } + }, + "depth": { + "properties": { + "count": { + "type": "long" + } + } + }, + "longestrunning": { + "properties": { + "sec": { + "type": "double" + } + } + }, + "retries": { + "properties": { + "count": { + "type": "long" + } + } + }, + "unfinished": { + "properties": { + "sec": { + "type": "double" + } + } + } + } + }, + "zone": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "cronjob": { + "properties": { + "active": { + "properties": { + "count": { + "type": "long" + } + } + }, + "concurrency": { + "ignore_above": 1024, + "type": "keyword" + }, + "created": { + "properties": { + "sec": { + "type": "double" + } + } + }, + "deadline": { + "properties": { + "sec": { + "type": "long" + } + } + }, + "is_suspended": { + "type": "boolean" + }, + "last_schedule": { + "properties": { + "sec": { + "type": "double" + } + } + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "next_schedule": { + "properties": { + "sec": { + "type": "double" + } + } + }, + "schedule": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "daemonset": { + "properties": { + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "replicas": { + "properties": { + "available": { + "type": "long" + }, + "desired": { + "type": "long" + }, + "ready": { + "type": "long" + }, + "unavailable": { + "type": "long" + } + } + } + } + }, + "deployment": { + "properties": { + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "paused": { + "type": "boolean" + }, + "replicas": { + "properties": { + "available": { + "type": "long" + }, + "desired": { + "type": "long" + }, + "unavailable": { + "type": "long" + }, + "updated": { + "type": "long" + } + } + } + } + }, + "event": { + "properties": { + "count": { + "type": "long" + }, + "involved_object": { + "properties": { + "api_version": { + "ignore_above": 1024, + "type": "keyword" + }, + "kind": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "resource_version": { + "ignore_above": 1024, + "type": "keyword" + }, + "uid": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "message": { + "copy_to": "message", + "norms": false, + "type": "text" + }, + "metadata": { + "properties": { + "generate_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "namespace": { + "ignore_above": 1024, + "type": "keyword" + }, + "resource_version": { + "ignore_above": 1024, + "type": "keyword" + }, + "self_link": { + "ignore_above": 1024, + "type": "keyword" + }, + "timestamp": { + "properties": { + "created": { + "type": "date" + } + } + }, + "uid": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "reason": { + "ignore_above": 1024, + "type": "keyword" + }, + "source": { + "properties": { + "component": { + "ignore_above": 1024, + "type": "keyword" + }, + "host": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "timestamp": { + "properties": { + "first_occurrence": { + "type": "date" + }, + "last_occurrence": { + "type": "date" + } + } + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "job": { + "properties": { + "completions": { + "properties": { + "desired": { + "type": "long" + } + } + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "owner": { + "properties": { + "is_controller": { + "ignore_above": 1024, + "type": "keyword" + }, + "kind": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "parallelism": { + "properties": { + "desired": { + "type": "long" + } + } + }, + "pods": { + "properties": { + "active": { + "type": "long" + }, + "failed": { + "type": "long" + }, + "succeeded": { + "type": "long" + } + } + }, + "status": { + "properties": { + "complete": { + "ignore_above": 1024, + "type": "keyword" + }, + "failed": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "time": { + "properties": { + "completed": { + "type": "date" + }, + "created": { + "type": "date" + } + } + } + } + }, + "labels": { + "properties": { + "*": { + "type": "object" + } + } + }, + "namespace": { + "ignore_above": 1024, + "type": "keyword" + }, + "node": { + "properties": { + "cpu": { + "properties": { + "allocatable": { + "properties": { + "cores": { + "type": "float" + } + } + }, + "capacity": { + "properties": { + "cores": { + "type": "long" + } + } + }, + "usage": { + "properties": { + "core": { + "properties": { + "ns": { + "type": "double" + } + } + }, + "nanocores": { + "type": "double" + } + } + } + } + }, + "fs": { + "properties": { + "available": { + "properties": { + "bytes": { + "type": "double" + } + } + }, + "capacity": { + "properties": { + "bytes": { + "type": "double" + } + } + }, + "inodes": { + "properties": { + "count": { + "type": "double" + }, + "free": { + "type": "double" + }, + "used": { + "type": "double" + } + } + }, + "used": { + "properties": { + "bytes": { + "type": "double" + } + } + } + } + }, + "hostname": { + "ignore_above": 1024, + "type": "keyword" + }, + "memory": { + "properties": { + "allocatable": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "available": { + "properties": { + "bytes": { + "type": "double" + } + } + }, + "capacity": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "majorpagefaults": { + "type": "double" + }, + "pagefaults": { + "type": "double" + }, + "rss": { + "properties": { + "bytes": { + "type": "double" + } + } + }, + "usage": { + "properties": { + "bytes": { + "type": "double" + } + } + }, + "workingset": { + "properties": { + "bytes": { + "type": "double" + } + } + } + } + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "network": { + "properties": { + "rx": { + "properties": { + "bytes": { + "type": "double" + }, + "errors": { + "type": "double" + } + } + }, + "tx": { + "properties": { + "bytes": { + "type": "double" + }, + "errors": { + "type": "double" + } + } + } + } + }, + "pod": { + "properties": { + "allocatable": { + "properties": { + "total": { + "type": "long" + } + } + }, + "capacity": { + "properties": { + "total": { + "type": "long" + } + } + } + } + }, + "runtime": { + "properties": { + "imagefs": { + "properties": { + "available": { + "properties": { + "bytes": { + "type": "double" + } + } + }, + "capacity": { + "properties": { + "bytes": { + "type": "double" + } + } + }, + "used": { + "properties": { + "bytes": { + "type": "double" + } + } + } + } + } + } + }, + "start_time": { + "type": "date" + }, + "status": { + "properties": { + "disk_pressure": { + "ignore_above": 1024, + "type": "keyword" + }, + "memory_pressure": { + "ignore_above": 1024, + "type": "keyword" + }, + "out_of_disk": { + "ignore_above": 1024, + "type": "keyword" + }, + "pid_pressure": { + "ignore_above": 1024, + "type": "keyword" + }, + "ready": { + "ignore_above": 1024, + "type": "keyword" + }, + "unschedulable": { + "type": "boolean" + } + } + } + } + }, + "persistentvolume": { + "properties": { + "capacity": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "phase": { + "ignore_above": 1024, + "type": "keyword" + }, + "storage_class": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "persistentvolumeclaim": { + "properties": { + "access_mode": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "phase": { + "ignore_above": 1024, + "type": "keyword" + }, + "request_storage": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "storage_class": { + "ignore_above": 1024, + "type": "keyword" + }, + "volume_name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "pod": { + "properties": { + "cpu": { + "properties": { + "usage": { + "properties": { + "limit": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + }, + "nanocores": { + "type": "double" + }, + "node": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + } + } + } + } + }, + "host_ip": { + "type": "ip" + }, + "ip": { + "type": "ip" + }, + "memory": { + "properties": { + "available": { + "properties": { + "bytes": { + "type": "double" + } + } + }, + "major_page_faults": { + "type": "double" + }, + "page_faults": { + "type": "double" + }, + "rss": { + "properties": { + "bytes": { + "type": "double" + } + } + }, + "usage": { + "properties": { + "bytes": { + "type": "double" + }, + "limit": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + }, + "node": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + } + } + }, + "working_set": { + "properties": { + "bytes": { + "type": "double" + }, + "limit": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + } + } + } + } + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "network": { + "properties": { + "rx": { + "properties": { + "bytes": { + "type": "double" + }, + "errors": { + "type": "double" + } + } + }, + "tx": { + "properties": { + "bytes": { + "type": "double" + }, + "errors": { + "type": "double" + } + } + } + } + }, + "start_time": { + "type": "date" + }, + "status": { + "properties": { + "phase": { + "ignore_above": 1024, + "type": "keyword" + }, + "ready": { + "ignore_above": 1024, + "type": "keyword" + }, + "scheduled": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "uid": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "proxy": { + "properties": { + "client": { + "properties": { + "request": { + "properties": { + "count": { + "type": "long" + } + } + } + } + }, + "code": { + "ignore_above": 1024, + "type": "keyword" + }, + "handler": { + "ignore_above": 1024, + "type": "keyword" + }, + "host": { + "ignore_above": 1024, + "type": "keyword" + }, + "http": { + "properties": { + "request": { + "properties": { + "count": { + "type": "long" + }, + "duration": { + "properties": { + "us": { + "properties": { + "count": { + "type": "long" + }, + "percentile": { + "properties": { + "*": { + "type": "object" + } + } + }, + "sum": { + "type": "double" + } + } + } + } + }, + "size": { + "properties": { + "bytes": { + "properties": { + "count": { + "type": "long" + }, + "percentile": { + "properties": { + "*": { + "type": "object" + } + } + }, + "sum": { + "type": "long" + } + } + } + } + } + } + }, + "response": { + "properties": { + "size": { + "properties": { + "bytes": { + "properties": { + "count": { + "type": "long" + }, + "percentile": { + "properties": { + "*": { + "type": "object" + } + } + }, + "sum": { + "type": "long" + } + } + } + } + } + } + } + } + }, + "method": { + "ignore_above": 1024, + "type": "keyword" + }, + "process": { + "properties": { + "cpu": { + "properties": { + "sec": { + "type": "double" + } + } + }, + "fds": { + "properties": { + "open": { + "properties": { + "count": { + "type": "long" + } + } + } + } + }, + "memory": { + "properties": { + "resident": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "virtual": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "started": { + "properties": { + "sec": { + "type": "double" + } + } + } + } + }, + "sync": { + "properties": { + "networkprogramming": { + "properties": { + "duration": { + "properties": { + "us": { + "properties": { + "bucket": { + "properties": { + "*": { + "type": "object" + } + } + }, + "count": { + "type": "long" + }, + "sum": { + "type": "long" + } + } + } + } + } + } + }, + "rules": { + "properties": { + "duration": { + "properties": { + "us": { + "properties": { + "bucket": { + "properties": { + "*": { + "type": "object" + } + } + }, + "count": { + "type": "long" + }, + "sum": { + "type": "long" + } + } + } + } + } + } + } + } + } + } + }, + "replicaset": { + "properties": { + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "replicas": { + "properties": { + "available": { + "type": "long" + }, + "desired": { + "type": "long" + }, + "labeled": { + "type": "long" + }, + "observed": { + "type": "long" + }, + "ready": { + "type": "long" + } + } + } + } + }, + "resourcequota": { + "properties": { + "created": { + "properties": { + "sec": { + "type": "double" + } + } + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "quota": { + "type": "double" + }, + "resource": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "scheduler": { + "properties": { + "client": { + "properties": { + "request": { + "properties": { + "count": { + "type": "long" + } + } + } + } + }, + "code": { + "ignore_above": 1024, + "type": "keyword" + }, + "handler": { + "ignore_above": 1024, + "type": "keyword" + }, + "host": { + "ignore_above": 1024, + "type": "keyword" + }, + "http": { + "properties": { + "request": { + "properties": { + "count": { + "type": "long" + }, + "duration": { + "properties": { + "us": { + "properties": { + "count": { + "type": "long" + }, + "percentile": { + "properties": { + "*": { + "type": "object" + } + } + }, + "sum": { + "type": "double" + } + } + } + } + }, + "size": { + "properties": { + "bytes": { + "properties": { + "count": { + "type": "long" + }, + "percentile": { + "properties": { + "*": { + "type": "object" + } + } + }, + "sum": { + "type": "long" + } + } + } + } + } + } + }, + "response": { + "properties": { + "size": { + "properties": { + "bytes": { + "properties": { + "count": { + "type": "long" + }, + "percentile": { + "properties": { + "*": { + "type": "object" + } + } + }, + "sum": { + "type": "long" + } + } + } + } + } + } + } + } + }, + "leader": { + "properties": { + "is_master": { + "type": "boolean" + } + } + }, + "method": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "operation": { + "ignore_above": 1024, + "type": "keyword" + }, + "process": { + "properties": { + "cpu": { + "properties": { + "sec": { + "type": "double" + } + } + }, + "fds": { + "properties": { + "open": { + "properties": { + "count": { + "type": "long" + } + } + } + } + }, + "memory": { + "properties": { + "resident": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "virtual": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "started": { + "properties": { + "sec": { + "type": "double" + } + } + } + } + }, + "result": { + "ignore_above": 1024, + "type": "keyword" + }, + "scheduling": { + "properties": { + "duration": { + "properties": { + "seconds": { + "properties": { + "count": { + "type": "long" + }, + "percentile": { + "properties": { + "*": { + "type": "object" + } + } + }, + "sum": { + "type": "double" + } + } + } + } + }, + "e2e": { + "properties": { + "duration": { + "properties": { + "us": { + "properties": { + "bucket": { + "properties": { + "*": { + "type": "object" + } + } + }, + "count": { + "type": "long" + }, + "sum": { + "type": "long" + } + } + } + } + } + } + }, + "pod": { + "properties": { + "attempts": { + "properties": { + "count": { + "type": "long" + } + } + }, + "preemption": { + "properties": { + "victims": { + "properties": { + "bucket": { + "properties": { + "*": { + "type": "long" + } + } + }, + "count": { + "type": "long" + }, + "sum": { + "type": "long" + } + } + } + } + } + } + } + } + } + } + }, + "selectors": { + "properties": { + "*": { + "type": "object" + } + } + }, + "service": { + "properties": { + "cluster_ip": { + "ignore_above": 1024, + "type": "keyword" + }, + "created": { + "type": "date" + }, + "external_ip": { + "ignore_above": 1024, + "type": "keyword" + }, + "external_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "ingress_hostname": { + "ignore_above": 1024, + "type": "keyword" + }, + "ingress_ip": { + "ignore_above": 1024, + "type": "keyword" + }, + "load_balancer_ip": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "statefulset": { + "properties": { + "created": { + "type": "long" + }, + "generation": { + "properties": { + "desired": { + "type": "long" + }, + "observed": { + "type": "long" + } + } + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "replicas": { + "properties": { + "desired": { + "type": "long" + }, + "observed": { + "type": "long" + }, + "ready": { + "type": "long" + } + } + } + } + }, + "storageclass": { + "properties": { + "created": { + "type": "date" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "provisioner": { + "ignore_above": 1024, + "type": "keyword" + }, + "reclaim_policy": { + "ignore_above": 1024, + "type": "keyword" + }, + "volume_binding_mode": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "system": { + "properties": { + "container": { + "ignore_above": 1024, + "type": "keyword" + }, + "cpu": { + "properties": { + "usage": { + "properties": { + "core": { + "properties": { + "ns": { + "type": "double" + } + } + }, + "nanocores": { + "type": "double" + } + } + } + } + }, + "memory": { + "properties": { + "majorpagefaults": { + "type": "double" + }, + "pagefaults": { + "type": "double" + }, + "rss": { + "properties": { + "bytes": { + "type": "double" + } + } + }, + "usage": { + "properties": { + "bytes": { + "type": "double" + } + } + }, + "workingset": { + "properties": { + "bytes": { + "type": "double" + } + } + } + } + }, + "start_time": { + "type": "date" + } + } + }, + "volume": { + "properties": { + "fs": { + "properties": { + "available": { + "properties": { + "bytes": { + "type": "double" + } + } + }, + "capacity": { + "properties": { + "bytes": { + "type": "double" + } + } + }, + "inodes": { + "properties": { + "count": { + "type": "double" + }, + "free": { + "type": "double" + }, + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + }, + "used": { + "type": "double" + } + } + }, + "used": { + "properties": { + "bytes": { + "type": "double" + }, + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + } + } + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + }, + "kvm": { + "properties": { + "dommemstat": { + "properties": { + "id": { + "type": "long" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "stat": { + "properties": { + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + } + }, + "id": { + "type": "long" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "status": { + "properties": { + "state": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + }, + "labels": { + "type": "object" + }, + "license": { + "properties": { + "status": { + "path": "elasticsearch.cluster.stats.license.status", + "type": "alias" + }, + "type": { + "path": "elasticsearch.cluster.stats.license.type", + "type": "alias" + } + } + }, + "linux": { + "properties": { + "conntrack": { + "properties": { + "summary": { + "properties": { + "drop": { + "type": "long" + }, + "early_drop": { + "type": "long" + }, + "entries": { + "type": "long" + }, + "found": { + "type": "long" + }, + "ignore": { + "type": "long" + }, + "insert_failed": { + "type": "long" + }, + "invalid": { + "type": "long" + }, + "search_restart": { + "type": "long" + } + } + } + } + }, + "iostat": { + "properties": { + "await": { + "type": "float" + }, + "busy": { + "type": "float" + }, + "queue": { + "properties": { + "avg_size": { + "type": "float" + } + } + }, + "read": { + "properties": { + "await": { + "type": "float" + }, + "per_sec": { + "properties": { + "bytes": { + "type": "float" + } + } + }, + "request": { + "properties": { + "merges_per_sec": { + "type": "float" + }, + "per_sec": { + "type": "float" + } + } + } + } + }, + "request": { + "properties": { + "avg_size": { + "type": "float" + } + } + }, + "service_time": { + "type": "float" + }, + "write": { + "properties": { + "await": { + "type": "float" + }, + "per_sec": { + "properties": { + "bytes": { + "type": "float" + } + } + }, + "request": { + "properties": { + "merges_per_sec": { + "type": "float" + }, + "per_sec": { + "type": "float" + } + } + } + } + } + } + }, + "ksm": { + "properties": { + "stats": { + "properties": { + "full_scans": { + "type": "long" + }, + "pages_shared": { + "type": "long" + }, + "pages_sharing": { + "type": "long" + }, + "pages_unshared": { + "type": "long" + }, + "stable_node_chains": { + "type": "long" + }, + "stable_node_dups": { + "type": "long" + } + } + } + } + }, + "memory": { + "properties": { + "hugepages": { + "properties": { + "default_size": { + "type": "long" + }, + "free": { + "type": "long" + }, + "reserved": { + "type": "long" + }, + "surplus": { + "type": "long" + }, + "total": { + "type": "long" + }, + "used": { + "properties": { + "bytes": { + "type": "long" + }, + "pct": { + "type": "long" + } + } + } + } + }, + "page_stats": { + "properties": { + "direct_efficiency": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + }, + "kswapd_efficiency": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + }, + "pgfree": { + "properties": { + "pages": { + "type": "long" + } + } + }, + "pgscan_direct": { + "properties": { + "pages": { + "type": "long" + } + } + }, + "pgscan_kswapd": { + "properties": { + "pages": { + "type": "long" + } + } + }, + "pgsteal_direct": { + "properties": { + "pages": { + "type": "long" + } + } + }, + "pgsteal_kswapd": { + "properties": { + "pages": { + "type": "long" + } + } + } + } + }, + "swap": { + "properties": { + "free": { + "type": "long" + }, + "in": { + "properties": { + "pages": { + "type": "long" + } + } + }, + "out": { + "properties": { + "pages": { + "type": "long" + } + } + }, + "readahead": { + "properties": { + "cached": { + "type": "long" + }, + "pages": { + "type": "long" + } + } + }, + "total": { + "type": "long" + }, + "used": { + "properties": { + "bytes": { + "type": "long" + }, + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + } + } + } + } + }, + "pageinfo": { + "properties": { + "buddy_info": { + "properties": { + "DMA": { + "properties": { + "0": { + "type": "long" + }, + "1": { + "type": "long" + }, + "10": { + "type": "long" + }, + "2": { + "type": "long" + }, + "3": { + "type": "long" + }, + "4": { + "type": "long" + }, + "5": { + "type": "long" + }, + "6": { + "type": "long" + }, + "7": { + "type": "long" + }, + "8": { + "type": "long" + }, + "9": { + "type": "long" + } + } + } + } + }, + "nodes": { + "properties": { + "*": { + "type": "object" + } + } + } + } + }, + "pressure": { + "properties": { + "cpu": { + "properties": { + "some": { + "properties": { + "10": { + "properties": { + "pct": { + "type": "float" + } + } + }, + "300": { + "properties": { + "pct": { + "type": "float" + } + } + }, + "60": { + "properties": { + "pct": { + "type": "float" + } + } + }, + "total": { + "properties": { + "time": { + "properties": { + "us": { + "type": "long" + } + } + } + } + } + } + } + } + }, + "io": { + "properties": { + "full": { + "properties": { + "10": { + "properties": { + "pct": { + "type": "float" + } + } + }, + "300": { + "properties": { + "pct": { + "type": "float" + } + } + }, + "60": { + "properties": { + "pct": { + "type": "float" + } + } + }, + "total": { + "properties": { + "time": { + "properties": { + "us": { + "type": "long" + } + } + } + } + } + } + }, + "some": { + "properties": { + "10": { + "properties": { + "pct": { + "type": "float" + } + } + }, + "300": { + "properties": { + "pct": { + "type": "float" + } + } + }, + "60": { + "properties": { + "pct": { + "type": "float" + } + } + }, + "total": { + "properties": { + "time": { + "properties": { + "us": { + "type": "long" + } + } + } + } + } + } + } + } + }, + "memory": { + "properties": { + "full": { + "properties": { + "10": { + "properties": { + "pct": { + "type": "float" + } + } + }, + "300": { + "properties": { + "pct": { + "type": "float" + } + } + }, + "60": { + "properties": { + "pct": { + "type": "float" + } + } + }, + "total": { + "properties": { + "time": { + "properties": { + "us": { + "type": "long" + } + } + } + } + } + } + }, + "some": { + "properties": { + "10": { + "properties": { + "pct": { + "type": "float" + } + } + }, + "300": { + "properties": { + "pct": { + "type": "float" + } + } + }, + "60": { + "properties": { + "pct": { + "type": "float" + } + } + }, + "total": { + "properties": { + "time": { + "properties": { + "us": { + "type": "long" + } + } + } + } + } + } + } + } + } + } + }, + "rapl": { + "properties": { + "core": { + "type": "long" + }, + "dram": { + "properties": { + "joules": { + "type": "float" + }, + "watts": { + "type": "float" + } + } + }, + "package": { + "properties": { + "joules": { + "type": "float" + }, + "watts": { + "type": "float" + } + } + }, + "pp0": { + "properties": { + "joules": { + "type": "float" + }, + "watts": { + "type": "float" + } + } + }, + "pp1": { + "properties": { + "joules": { + "type": "float" + }, + "watts": { + "type": "float" + } + } + } + } + } + } + }, + "log": { + "properties": { + "file": { + "properties": { + "path": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "level": { + "ignore_above": 1024, + "type": "keyword" + }, + "logger": { + "ignore_above": 1024, + "type": "keyword" + }, + "origin": { + "properties": { + "file": { + "properties": { + "line": { + "type": "long" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "function": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "syslog": { + "properties": { + "facility": { + "properties": { + "code": { + "type": "long" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "priority": { + "type": "long" + }, + "severity": { + "properties": { + "code": { + "type": "long" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + }, + "type": "object" + } + } + }, + "logstash": { + "properties": { + "elasticsearch": { + "properties": { + "cluster": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + }, + "node": { + "properties": { + "jvm": { + "properties": { + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "state": { + "properties": { + "pipeline": { + "properties": { + "hash": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + }, + "stats": { + "properties": { + "events": { + "properties": { + "duration_in_millis": { + "type": "long" + }, + "filtered": { + "type": "long" + }, + "in": { + "type": "long" + }, + "out": { + "type": "long" + } + } + }, + "jvm": { + "properties": { + "mem": { + "properties": { + "heap_max_in_bytes": { + "type": "long" + }, + "heap_used_in_bytes": { + "type": "long" + } + } + }, + "uptime_in_millis": { + "type": "long" + } + } + }, + "logstash": { + "properties": { + "uuid": { + "ignore_above": 1024, + "type": "keyword" + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "os": { + "properties": { + "cgroup": { + "properties": { + "cpu": { + "properties": { + "stat": { + "properties": { + "number_of_elapsed_periods": { + "type": "long" + }, + "number_of_times_throttled": { + "type": "long" + }, + "time_throttled_nanos": { + "type": "long" + } + } + } + } + }, + "cpuacct": { + "properties": { + "usage_nanos": { + "type": "long" + } + } + } + } + }, + "cpu": { + "properties": { + "load_average": { + "properties": { + "15m": { + "type": "long" + }, + "1m": { + "type": "long" + }, + "5m": { + "type": "long" + } + } + } + } + } + } + }, + "pipelines": { + "properties": { + "events": { + "properties": { + "duration_in_millis": { + "type": "long" + }, + "out": { + "type": "long" + } + } + }, + "hash": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "queue": { + "properties": { + "events_count": { + "type": "long" + }, + "max_queue_size_in_bytes": { + "type": "long" + }, + "queue_size_in_bytes": { + "type": "long" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "vertices": { + "properties": { + "duration_in_millis": { + "type": "long" + }, + "events_in": { + "type": "long" + }, + "events_out": { + "type": "long" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "pipeline_ephemeral_id": { + "ignore_above": 1024, + "type": "keyword" + }, + "queue_push_duration_in_millis": { + "type": "float" + } + } + } + }, + "type": "nested" + }, + "process": { + "properties": { + "cpu": { + "properties": { + "percent": { + "type": "double" + } + } + } + } + }, + "queue": { + "properties": { + "events_count": { + "type": "long" + } + } + } + } + } + } + } + } + }, + "logstash_state": { + "properties": { + "pipeline": { + "properties": { + "hash": { + "path": "logstash.node.state.pipeline.hash", + "type": "alias" + }, + "id": { + "path": "logstash.node.state.pipeline.id", + "type": "alias" + } + } + } + } + }, + "logstash_stats": { + "properties": { + "events": { + "properties": { + "duration_in_millis": { + "path": "logstash.node.stats.events.duration_in_millis", + "type": "alias" + }, + "in": { + "path": "logstash.node.stats.events.in", + "type": "alias" + }, + "out": { + "path": "logstash.node.stats.events.out", + "type": "alias" + } + } + }, + "jvm": { + "properties": { + "mem": { + "properties": { + "heap_max_in_bytes": { + "path": "logstash.node.stats.jvm.mem.heap_max_in_bytes", + "type": "alias" + }, + "heap_used_in_bytes": { + "path": "logstash.node.stats.jvm.mem.heap_used_in_bytes", + "type": "alias" + } + } + }, + "uptime_in_millis": { + "path": "logstash.node.stats.jvm.uptime_in_millis", + "type": "alias" + } + } + }, + "logstash": { + "properties": { + "uuid": { + "path": "logstash.node.stats.logstash.uuid", + "type": "alias" + }, + "version": { + "path": "logstash.node.stats.logstash.version", + "type": "alias" + } + } + }, + "os": { + "properties": { + "cgroup": { + "properties": { + "cpuacct": { + "properties": { + "usage_nanos": { + "path": "logstash.node.stats.os.cgroup.cpuacct.usage_nanos", + "type": "alias" + } + } + } + } + }, + "cpu": { + "properties": { + "load_average": { + "properties": { + "15m": { + "path": "logstash.node.stats.os.cpu.load_average.15m", + "type": "alias" + }, + "1m": { + "path": "logstash.node.stats.os.cpu.load_average.1m", + "type": "alias" + }, + "5m": { + "path": "logstash.node.stats.os.cpu.load_average.5m", + "type": "alias" + } + } + }, + "stat": { + "properties": { + "number_of_elapsed_periods": { + "path": "logstash.node.stats.os.cgroup.cpu.stat.number_of_elapsed_periods", + "type": "alias" + }, + "number_of_times_throttled": { + "path": "logstash.node.stats.os.cgroup.cpu.stat.number_of_times_throttled", + "type": "alias" + }, + "time_throttled_nanos": { + "path": "logstash.node.stats.os.cgroup.cpu.stat.time_throttled_nanos", + "type": "alias" + } + } + } + } + } + } + }, + "pipelines": { + "type": "nested" + }, + "process": { + "properties": { + "cpu": { + "properties": { + "percent": { + "path": "logstash.node.stats.process.cpu.percent", + "type": "alias" + } + } + } + } + }, + "queue": { + "properties": { + "events_count": { + "path": "logstash.node.stats.queue.events_count", + "type": "alias" + } + } + }, + "timestamp": { + "path": "@timestamp", + "type": "alias" + } + } + }, + "memcached": { + "properties": { + "stats": { + "properties": { + "bytes": { + "properties": { + "current": { + "type": "long" + }, + "limit": { + "type": "long" + } + } + }, + "cmd": { + "properties": { + "get": { + "type": "long" + }, + "set": { + "type": "long" + } + } + }, + "connections": { + "properties": { + "current": { + "type": "long" + }, + "total": { + "type": "long" + } + } + }, + "evictions": { + "type": "long" + }, + "get": { + "properties": { + "hits": { + "type": "long" + }, + "misses": { + "type": "long" + } + } + }, + "items": { + "properties": { + "current": { + "type": "long" + }, + "total": { + "type": "long" + } + } + }, + "pid": { + "type": "long" + }, + "read": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "threads": { + "type": "long" + }, + "uptime": { + "properties": { + "sec": { + "type": "long" + } + } + }, + "written": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + } + } + }, + "message": { + "norms": false, + "type": "text" + }, + "metricset": { + "properties": { + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "period": { + "type": "long" + } + } + }, + "mongodb": { + "properties": { + "collstats": { + "properties": { + "collection": { + "ignore_above": 1024, + "type": "keyword" + }, + "commands": { + "properties": { + "count": { + "type": "long" + }, + "time": { + "properties": { + "us": { + "type": "long" + } + } + } + } + }, + "db": { + "ignore_above": 1024, + "type": "keyword" + }, + "getmore": { + "properties": { + "count": { + "type": "long" + }, + "time": { + "properties": { + "us": { + "type": "long" + } + } + } + } + }, + "insert": { + "properties": { + "count": { + "type": "long" + }, + "time": { + "properties": { + "us": { + "type": "long" + } + } + } + } + }, + "lock": { + "properties": { + "read": { + "properties": { + "count": { + "type": "long" + }, + "time": { + "properties": { + "us": { + "type": "long" + } + } + } + } + }, + "write": { + "properties": { + "count": { + "type": "long" + }, + "time": { + "properties": { + "us": { + "type": "long" + } + } + } + } + } + } + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "queries": { + "properties": { + "count": { + "type": "long" + }, + "time": { + "properties": { + "us": { + "type": "long" + } + } + } + } + }, + "remove": { + "properties": { + "count": { + "type": "long" + }, + "time": { + "properties": { + "us": { + "type": "long" + } + } + } + } + }, + "total": { + "properties": { + "count": { + "type": "long" + }, + "time": { + "properties": { + "us": { + "type": "long" + } + } + } + } + }, + "update": { + "properties": { + "count": { + "type": "long" + }, + "time": { + "properties": { + "us": { + "type": "long" + } + } + } + } + } + } + }, + "dbstats": { + "properties": { + "avg_obj_size": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "collections": { + "type": "long" + }, + "data_file_version": { + "properties": { + "major": { + "type": "long" + }, + "minor": { + "type": "long" + } + } + }, + "data_size": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "db": { + "ignore_above": 1024, + "type": "keyword" + }, + "extent_free_list": { + "properties": { + "num": { + "type": "long" + }, + "size": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "file_size": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "index_size": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "indexes": { + "type": "long" + }, + "ns_size_mb": { + "properties": { + "mb": { + "type": "long" + } + } + }, + "num_extents": { + "type": "long" + }, + "objects": { + "type": "long" + }, + "storage_size": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "metrics": { + "properties": { + "commands": { + "properties": { + "aggregate": { + "properties": { + "failed": { + "type": "long" + }, + "total": { + "type": "long" + } + } + }, + "build_info": { + "properties": { + "failed": { + "type": "long" + }, + "total": { + "type": "long" + } + } + }, + "coll_stats": { + "properties": { + "failed": { + "type": "long" + }, + "total": { + "type": "long" + } + } + }, + "connection_pool_stats": { + "properties": { + "failed": { + "type": "long" + }, + "total": { + "type": "long" + } + } + }, + "count": { + "properties": { + "failed": { + "type": "long" + }, + "total": { + "type": "long" + } + } + }, + "db_stats": { + "properties": { + "failed": { + "type": "long" + }, + "total": { + "type": "long" + } + } + }, + "distinct": { + "properties": { + "failed": { + "type": "long" + }, + "total": { + "type": "long" + } + } + }, + "find": { + "properties": { + "failed": { + "type": "long" + }, + "total": { + "type": "long" + } + } + }, + "get_cmd_line_opts": { + "properties": { + "failed": { + "type": "long" + }, + "total": { + "type": "long" + } + } + }, + "get_last_error": { + "properties": { + "failed": { + "type": "long" + }, + "total": { + "type": "long" + } + } + }, + "get_log": { + "properties": { + "failed": { + "type": "long" + }, + "total": { + "type": "long" + } + } + }, + "get_more": { + "properties": { + "failed": { + "type": "long" + }, + "total": { + "type": "long" + } + } + }, + "get_parameter": { + "properties": { + "failed": { + "type": "long" + }, + "total": { + "type": "long" + } + } + }, + "host_info": { + "properties": { + "failed": { + "type": "long" + }, + "total": { + "type": "long" + } + } + }, + "insert": { + "properties": { + "failed": { + "type": "long" + }, + "total": { + "type": "long" + } + } + }, + "is_master": { + "properties": { + "failed": { + "type": "long" + }, + "total": { + "type": "long" + } + } + }, + "is_self": { + "properties": { + "failed": { + "type": "long" + }, + "total": { + "type": "long" + } + } + }, + "last_collections": { + "properties": { + "failed": { + "type": "long" + }, + "total": { + "type": "long" + } + } + }, + "last_commands": { + "properties": { + "failed": { + "type": "long" + }, + "total": { + "type": "long" + } + } + }, + "list_databased": { + "properties": { + "failed": { + "type": "long" + }, + "total": { + "type": "long" + } + } + }, + "list_indexes": { + "properties": { + "failed": { + "type": "long" + }, + "total": { + "type": "long" + } + } + }, + "ping": { + "properties": { + "failed": { + "type": "long" + }, + "total": { + "type": "long" + } + } + }, + "profile": { + "properties": { + "failed": { + "type": "long" + }, + "total": { + "type": "long" + } + } + }, + "replset_get_rbid": { + "properties": { + "failed": { + "type": "long" + }, + "total": { + "type": "long" + } + } + }, + "replset_get_status": { + "properties": { + "failed": { + "type": "long" + }, + "total": { + "type": "long" + } + } + }, + "replset_heartbeat": { + "properties": { + "failed": { + "type": "long" + }, + "total": { + "type": "long" + } + } + }, + "replset_update_position": { + "properties": { + "failed": { + "type": "long" + }, + "total": { + "type": "long" + } + } + }, + "server_status": { + "properties": { + "failed": { + "type": "long" + }, + "total": { + "type": "long" + } + } + }, + "update": { + "properties": { + "failed": { + "type": "long" + }, + "total": { + "type": "long" + } + } + }, + "whatsmyuri": { + "properties": { + "failed": { + "type": "long" + }, + "total": { + "type": "long" + } + } + } + } + }, + "cursor": { + "properties": { + "open": { + "properties": { + "no_timeout": { + "type": "long" + }, + "pinned": { + "type": "long" + }, + "total": { + "type": "long" + } + } + }, + "timed_out": { + "type": "long" + } + } + }, + "document": { + "properties": { + "deleted": { + "type": "long" + }, + "inserted": { + "type": "long" + }, + "returned": { + "type": "long" + }, + "updated": { + "type": "long" + } + } + }, + "get_last_error": { + "properties": { + "write_timeouts": { + "type": "long" + }, + "write_wait": { + "properties": { + "count": { + "type": "long" + }, + "ms": { + "type": "long" + } + } + } + } + }, + "operation": { + "properties": { + "scan_and_order": { + "type": "long" + }, + "write_conflicts": { + "type": "long" + } + } + }, + "query_executor": { + "properties": { + "scanned_documents": { + "properties": { + "count": { + "type": "long" + } + } + }, + "scanned_indexes": { + "properties": { + "count": { + "type": "long" + } + } + } + } + }, + "replication": { + "properties": { + "apply": { + "properties": { + "attempts_to_become_secondary": { + "type": "long" + }, + "batches": { + "properties": { + "count": { + "type": "long" + }, + "time": { + "properties": { + "ms": { + "type": "long" + } + } + } + } + }, + "ops": { + "type": "long" + } + } + }, + "buffer": { + "properties": { + "count": { + "type": "long" + }, + "max_size": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "size": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "executor": { + "properties": { + "counters": { + "properties": { + "cancels": { + "type": "long" + }, + "event_created": { + "type": "long" + }, + "event_wait": { + "type": "long" + }, + "scheduled": { + "properties": { + "dbwork": { + "type": "long" + }, + "exclusive": { + "type": "long" + }, + "failures": { + "type": "long" + }, + "netcmd": { + "type": "long" + }, + "work": { + "type": "long" + }, + "work_at": { + "type": "long" + } + } + }, + "waits": { + "type": "long" + } + } + }, + "event_waiters": { + "type": "long" + }, + "network_interface": { + "ignore_above": 1024, + "type": "keyword" + }, + "queues": { + "properties": { + "free": { + "type": "long" + }, + "in_progress": { + "properties": { + "dbwork": { + "type": "long" + }, + "exclusive": { + "type": "long" + }, + "network": { + "type": "long" + } + } + }, + "ready": { + "type": "long" + }, + "sleepers": { + "type": "long" + } + } + }, + "shutting_down": { + "type": "boolean" + }, + "unsignaled_events": { + "type": "long" + } + } + }, + "initial_sync": { + "properties": { + "completed": { + "type": "long" + }, + "failed_attempts": { + "type": "long" + }, + "failures": { + "type": "long" + } + } + }, + "network": { + "properties": { + "bytes": { + "type": "long" + }, + "getmores": { + "properties": { + "count": { + "type": "long" + }, + "time": { + "properties": { + "ms": { + "type": "long" + } + } + } + } + }, + "ops": { + "type": "long" + }, + "reders_created": { + "type": "long" + } + } + }, + "preload": { + "properties": { + "docs": { + "properties": { + "count": { + "type": "long" + }, + "time": { + "properties": { + "ms": { + "type": "long" + } + } + } + } + }, + "indexes": { + "properties": { + "count": { + "type": "long" + }, + "time": { + "properties": { + "ms": { + "type": "long" + } + } + } + } + } + } + } + } + }, + "storage": { + "properties": { + "free_list": { + "properties": { + "search": { + "properties": { + "bucket_exhausted": { + "type": "long" + }, + "requests": { + "type": "long" + }, + "scanned": { + "type": "long" + } + } + } + } + } + } + }, + "ttl": { + "properties": { + "deleted_documents": { + "properties": { + "count": { + "type": "long" + } + } + }, + "passes": { + "properties": { + "count": { + "type": "long" + } + } + } + } + } + } + }, + "replstatus": { + "properties": { + "headroom": { + "properties": { + "max": { + "type": "long" + }, + "min": { + "type": "long" + } + } + }, + "lag": { + "properties": { + "max": { + "type": "long" + }, + "min": { + "type": "long" + } + } + }, + "members": { + "properties": { + "arbiter": { + "properties": { + "count": { + "type": "long" + }, + "hosts": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "down": { + "properties": { + "count": { + "type": "long" + }, + "hosts": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "primary": { + "properties": { + "host": { + "ignore_above": 1024, + "type": "keyword" + }, + "optime": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "recovering": { + "properties": { + "count": { + "type": "long" + }, + "hosts": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "rollback": { + "properties": { + "count": { + "type": "long" + }, + "hosts": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "secondary": { + "properties": { + "count": { + "type": "long" + }, + "hosts": { + "ignore_above": 1024, + "type": "keyword" + }, + "optimes": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "startup2": { + "properties": { + "count": { + "type": "long" + }, + "hosts": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "unhealthy": { + "properties": { + "count": { + "type": "long" + }, + "hosts": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "unknown": { + "properties": { + "count": { + "type": "long" + }, + "hosts": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + }, + "oplog": { + "properties": { + "first": { + "properties": { + "timestamp": { + "type": "long" + } + } + }, + "last": { + "properties": { + "timestamp": { + "type": "long" + } + } + }, + "size": { + "properties": { + "allocated": { + "type": "long" + }, + "used": { + "type": "long" + } + } + }, + "window": { + "type": "long" + } + } + }, + "optimes": { + "properties": { + "applied": { + "type": "long" + }, + "durable": { + "type": "long" + }, + "last_committed": { + "type": "long" + } + } + }, + "server_date": { + "type": "date" + }, + "set_name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "status": { + "properties": { + "asserts": { + "properties": { + "msg": { + "type": "long" + }, + "regular": { + "type": "long" + }, + "rollovers": { + "type": "long" + }, + "user": { + "type": "long" + }, + "warning": { + "type": "long" + } + } + }, + "background_flushing": { + "properties": { + "average": { + "properties": { + "ms": { + "type": "long" + } + } + }, + "flushes": { + "type": "long" + }, + "last": { + "properties": { + "ms": { + "type": "long" + } + } + }, + "last_finished": { + "type": "date" + }, + "total": { + "properties": { + "ms": { + "type": "long" + } + } + } + } + }, + "connections": { + "properties": { + "available": { + "type": "long" + }, + "current": { + "type": "long" + }, + "total_created": { + "type": "long" + } + } + }, + "extra_info": { + "properties": { + "heap_usage": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "page_faults": { + "type": "long" + } + } + }, + "global_lock": { + "properties": { + "active_clients": { + "properties": { + "readers": { + "type": "long" + }, + "total": { + "type": "long" + }, + "writers": { + "type": "long" + } + } + }, + "current_queue": { + "properties": { + "readers": { + "type": "long" + }, + "total": { + "type": "long" + }, + "writers": { + "type": "long" + } + } + }, + "total_time": { + "properties": { + "us": { + "type": "long" + } + } + } + } + }, + "journaling": { + "properties": { + "commits": { + "type": "long" + }, + "commits_in_write_lock": { + "type": "long" + }, + "compression": { + "type": "long" + }, + "early_commits": { + "type": "long" + }, + "journaled": { + "properties": { + "mb": { + "type": "long" + } + } + }, + "times": { + "properties": { + "commits": { + "properties": { + "ms": { + "type": "long" + } + } + }, + "commits_in_write_lock": { + "properties": { + "ms": { + "type": "long" + } + } + }, + "dt": { + "properties": { + "ms": { + "type": "long" + } + } + }, + "prep_log_buffer": { + "properties": { + "ms": { + "type": "long" + } + } + }, + "remap_private_view": { + "properties": { + "ms": { + "type": "long" + } + } + }, + "write_to_data_files": { + "properties": { + "ms": { + "type": "long" + } + } + }, + "write_to_journal": { + "properties": { + "ms": { + "type": "long" + } + } + } + } + }, + "write_to_data_files": { + "properties": { + "mb": { + "type": "long" + } + } + } + } + }, + "local_time": { + "type": "date" + }, + "locks": { + "properties": { + "collection": { + "properties": { + "acquire": { + "properties": { + "count": { + "properties": { + "R": { + "type": "long" + }, + "W": { + "type": "long" + }, + "r": { + "type": "long" + }, + "w": { + "type": "long" + } + } + } + } + }, + "deadlock": { + "properties": { + "count": { + "properties": { + "R": { + "type": "long" + }, + "W": { + "type": "long" + }, + "r": { + "type": "long" + }, + "w": { + "type": "long" + } + } + } + } + }, + "wait": { + "properties": { + "count": { + "properties": { + "R": { + "type": "long" + }, + "W": { + "type": "long" + }, + "r": { + "type": "long" + }, + "w": { + "type": "long" + } + } + }, + "us": { + "properties": { + "R": { + "type": "long" + }, + "W": { + "type": "long" + }, + "r": { + "type": "long" + }, + "w": { + "type": "long" + } + } + } + } + } + } + }, + "database": { + "properties": { + "acquire": { + "properties": { + "count": { + "properties": { + "R": { + "type": "long" + }, + "W": { + "type": "long" + }, + "r": { + "type": "long" + }, + "w": { + "type": "long" + } + } + } + } + }, + "deadlock": { + "properties": { + "count": { + "properties": { + "R": { + "type": "long" + }, + "W": { + "type": "long" + }, + "r": { + "type": "long" + }, + "w": { + "type": "long" + } + } + } + } + }, + "wait": { + "properties": { + "count": { + "properties": { + "R": { + "type": "long" + }, + "W": { + "type": "long" + }, + "r": { + "type": "long" + }, + "w": { + "type": "long" + } + } + }, + "us": { + "properties": { + "R": { + "type": "long" + }, + "W": { + "type": "long" + }, + "r": { + "type": "long" + }, + "w": { + "type": "long" + } + } + } + } + } + } + }, + "global": { + "properties": { + "acquire": { + "properties": { + "count": { + "properties": { + "R": { + "type": "long" + }, + "W": { + "type": "long" + }, + "r": { + "type": "long" + }, + "w": { + "type": "long" + } + } + } + } + }, + "deadlock": { + "properties": { + "count": { + "properties": { + "R": { + "type": "long" + }, + "W": { + "type": "long" + }, + "r": { + "type": "long" + }, + "w": { + "type": "long" + } + } + } + } + }, + "wait": { + "properties": { + "count": { + "properties": { + "R": { + "type": "long" + }, + "W": { + "type": "long" + }, + "r": { + "type": "long" + }, + "w": { + "type": "long" + } + } + }, + "us": { + "properties": { + "R": { + "type": "long" + }, + "W": { + "type": "long" + }, + "r": { + "type": "long" + }, + "w": { + "type": "long" + } + } + } + } + } + } + }, + "meta_data": { + "properties": { + "acquire": { + "properties": { + "count": { + "properties": { + "R": { + "type": "long" + }, + "W": { + "type": "long" + }, + "r": { + "type": "long" + }, + "w": { + "type": "long" + } + } + } + } + }, + "deadlock": { + "properties": { + "count": { + "properties": { + "R": { + "type": "long" + }, + "W": { + "type": "long" + }, + "r": { + "type": "long" + }, + "w": { + "type": "long" + } + } + } + } + }, + "wait": { + "properties": { + "count": { + "properties": { + "R": { + "type": "long" + }, + "W": { + "type": "long" + }, + "r": { + "type": "long" + }, + "w": { + "type": "long" + } + } + }, + "us": { + "properties": { + "R": { + "type": "long" + }, + "W": { + "type": "long" + }, + "r": { + "type": "long" + }, + "w": { + "type": "long" + } + } + } + } + } + } + }, + "oplog": { + "properties": { + "acquire": { + "properties": { + "count": { + "properties": { + "R": { + "type": "long" + }, + "W": { + "type": "long" + }, + "r": { + "type": "long" + }, + "w": { + "type": "long" + } + } + } + } + }, + "deadlock": { + "properties": { + "count": { + "properties": { + "R": { + "type": "long" + }, + "W": { + "type": "long" + }, + "r": { + "type": "long" + }, + "w": { + "type": "long" + } + } + } + } + }, + "wait": { + "properties": { + "count": { + "properties": { + "R": { + "type": "long" + }, + "W": { + "type": "long" + }, + "r": { + "type": "long" + }, + "w": { + "type": "long" + } + } + }, + "us": { + "properties": { + "R": { + "type": "long" + }, + "W": { + "type": "long" + }, + "r": { + "type": "long" + }, + "w": { + "type": "long" + } + } + } + } + } + } + } + } + }, + "memory": { + "properties": { + "bits": { + "type": "long" + }, + "mapped": { + "properties": { + "mb": { + "type": "long" + } + } + }, + "mapped_with_journal": { + "properties": { + "mb": { + "type": "long" + } + } + }, + "resident": { + "properties": { + "mb": { + "type": "long" + } + } + }, + "virtual": { + "properties": { + "mb": { + "type": "long" + } + } + } + } + }, + "network": { + "properties": { + "in": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "out": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "requests": { + "type": "long" + } + } + }, + "ops": { + "properties": { + "counters": { + "properties": { + "command": { + "type": "long" + }, + "delete": { + "type": "long" + }, + "getmore": { + "type": "long" + }, + "insert": { + "type": "long" + }, + "query": { + "type": "long" + }, + "update": { + "type": "long" + } + } + }, + "latencies": { + "properties": { + "commands": { + "properties": { + "count": { + "type": "long" + }, + "latency": { + "type": "long" + } + } + }, + "reads": { + "properties": { + "count": { + "type": "long" + }, + "latency": { + "type": "long" + } + } + }, + "writes": { + "properties": { + "count": { + "type": "long" + }, + "latency": { + "type": "long" + } + } + } + } + }, + "replicated": { + "properties": { + "command": { + "type": "long" + }, + "delete": { + "type": "long" + }, + "getmore": { + "type": "long" + }, + "insert": { + "type": "long" + }, + "query": { + "type": "long" + }, + "update": { + "type": "long" + } + } + } + } + }, + "process": { + "path": "process.name", + "type": "alias" + }, + "storage_engine": { + "properties": { + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "uptime": { + "properties": { + "ms": { + "type": "long" + } + } + }, + "version": { + "path": "service.version", + "type": "alias" + }, + "wired_tiger": { + "properties": { + "cache": { + "properties": { + "dirty": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "maximum": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "pages": { + "properties": { + "evicted": { + "type": "long" + }, + "read": { + "type": "long" + }, + "write": { + "type": "long" + } + } + }, + "used": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "concurrent_transactions": { + "properties": { + "read": { + "properties": { + "available": { + "type": "long" + }, + "out": { + "type": "long" + }, + "total_tickets": { + "type": "long" + } + } + }, + "write": { + "properties": { + "available": { + "type": "long" + }, + "out": { + "type": "long" + }, + "total_tickets": { + "type": "long" + } + } + } + } + }, + "log": { + "properties": { + "flushes": { + "type": "long" + }, + "max_file_size": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "scans": { + "type": "long" + }, + "size": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "syncs": { + "type": "long" + }, + "write": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "writes": { + "type": "long" + } + } + } + } + }, + "write_backs_queued": { + "type": "boolean" + } + } + } + } + }, + "munin": { + "properties": { + "metrics": { + "properties": { + "*": { + "type": "object" + } + } + }, + "plugin": { + "properties": { + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + }, + "mysql": { + "properties": { + "galera_status": { + "properties": { + "apply": { + "properties": { + "oooe": { + "type": "double" + }, + "oool": { + "type": "double" + }, + "window": { + "type": "double" + } + } + }, + "cert": { + "properties": { + "deps_distance": { + "type": "double" + }, + "index_size": { + "type": "long" + }, + "interval": { + "type": "double" + } + } + }, + "cluster": { + "properties": { + "conf_id": { + "type": "long" + }, + "size": { + "type": "long" + }, + "status": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "commit": { + "properties": { + "oooe": { + "type": "double" + }, + "window": { + "type": "long" + } + } + }, + "connected": { + "ignore_above": 1024, + "type": "keyword" + }, + "evs": { + "properties": { + "evict": { + "ignore_above": 1024, + "type": "keyword" + }, + "state": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "flow_ctl": { + "properties": { + "paused": { + "type": "double" + }, + "paused_ns": { + "type": "long" + }, + "recv": { + "type": "long" + }, + "sent": { + "type": "long" + } + } + }, + "last_committed": { + "type": "long" + }, + "local": { + "properties": { + "bf_aborts": { + "type": "long" + }, + "cert_failures": { + "type": "long" + }, + "commits": { + "type": "long" + }, + "recv": { + "properties": { + "queue": { + "type": "long" + }, + "queue_avg": { + "type": "double" + }, + "queue_max": { + "type": "long" + }, + "queue_min": { + "type": "long" + } + } + }, + "replays": { + "type": "long" + }, + "send": { + "properties": { + "queue": { + "type": "long" + }, + "queue_avg": { + "type": "double" + }, + "queue_max": { + "type": "long" + }, + "queue_min": { + "type": "long" + } + } + }, + "state": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "ready": { + "ignore_above": 1024, + "type": "keyword" + }, + "received": { + "properties": { + "bytes": { + "type": "long" + }, + "count": { + "type": "long" + } + } + }, + "repl": { + "properties": { + "bytes": { + "type": "long" + }, + "count": { + "type": "long" + }, + "data_bytes": { + "type": "long" + }, + "keys": { + "type": "long" + }, + "keys_bytes": { + "type": "long" + }, + "other_bytes": { + "type": "long" + } + } + } + } + }, + "performance": { + "properties": { + "events_statements": { + "properties": { + "avg": { + "properties": { + "timer": { + "properties": { + "wait": { + "type": "long" + } + } + } + } + }, + "count": { + "properties": { + "star": { + "type": "long" + } + } + }, + "digest": { + "norms": false, + "type": "text" + }, + "last": { + "properties": { + "seen": { + "type": "date" + } + } + }, + "max": { + "properties": { + "timer": { + "properties": { + "wait": { + "type": "long" + } + } + } + } + }, + "quantile": { + "properties": { + "95": { + "type": "long" + } + } + } + } + }, + "table_io_waits": { + "properties": { + "count": { + "properties": { + "fetch": { + "type": "long" + } + } + }, + "index": { + "properties": { + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "object": { + "properties": { + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "schema": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + } + } + }, + "status": { + "properties": { + "aborted": { + "properties": { + "clients": { + "type": "long" + }, + "connects": { + "type": "long" + } + } + }, + "binlog": { + "properties": { + "cache": { + "properties": { + "disk_use": { + "type": "long" + }, + "use": { + "type": "long" + } + } + } + } + }, + "bytes": { + "properties": { + "received": { + "type": "long" + }, + "sent": { + "type": "long" + } + } + }, + "cache": { + "properties": { + "ssl": { + "properties": { + "hits": { + "type": "long" + }, + "misses": { + "type": "long" + }, + "size": { + "type": "long" + } + } + }, + "table": { + "properties": { + "open_cache": { + "properties": { + "hits": { + "type": "long" + }, + "misses": { + "type": "long" + }, + "overflows": { + "type": "long" + } + } + } + } + } + } + }, + "command": { + "properties": { + "delete": { + "type": "long" + }, + "insert": { + "type": "long" + }, + "select": { + "type": "long" + }, + "update": { + "type": "long" + } + } + }, + "connection": { + "properties": { + "errors": { + "properties": { + "accept": { + "type": "long" + }, + "internal": { + "type": "long" + }, + "max": { + "type": "long" + }, + "peer_address": { + "type": "long" + }, + "select": { + "type": "long" + }, + "tcpwrap": { + "type": "long" + } + } + } + } + }, + "connections": { + "type": "long" + }, + "created": { + "properties": { + "tmp": { + "properties": { + "disk_tables": { + "type": "long" + }, + "files": { + "type": "long" + }, + "tables": { + "type": "long" + } + } + } + } + }, + "delayed": { + "properties": { + "errors": { + "type": "long" + }, + "insert_threads": { + "type": "long" + }, + "writes": { + "type": "long" + } + } + }, + "flush_commands": { + "type": "long" + }, + "handler": { + "properties": { + "commit": { + "type": "long" + }, + "delete": { + "type": "long" + }, + "external_lock": { + "type": "long" + }, + "mrr_init": { + "type": "long" + }, + "prepare": { + "type": "long" + }, + "read": { + "properties": { + "first": { + "type": "long" + }, + "key": { + "type": "long" + }, + "last": { + "type": "long" + }, + "next": { + "type": "long" + }, + "prev": { + "type": "long" + }, + "rnd": { + "type": "long" + }, + "rnd_next": { + "type": "long" + } + } + }, + "rollback": { + "type": "long" + }, + "savepoint": { + "type": "long" + }, + "savepoint_rollback": { + "type": "long" + }, + "update": { + "type": "long" + }, + "write": { + "type": "long" + } + } + }, + "innodb": { + "properties": { + "buffer_pool": { + "properties": { + "bytes": { + "properties": { + "data": { + "type": "long" + }, + "dirty": { + "type": "long" + } + } + }, + "dump_status": { + "type": "long" + }, + "load_status": { + "type": "long" + }, + "pages": { + "properties": { + "data": { + "type": "long" + }, + "dirty": { + "type": "long" + }, + "flushed": { + "type": "long" + }, + "free": { + "type": "long" + }, + "latched": { + "type": "long" + }, + "misc": { + "type": "long" + }, + "total": { + "type": "long" + } + } + }, + "pool": { + "properties": { + "reads": { + "type": "long" + }, + "resize_status": { + "type": "long" + }, + "wait_free": { + "type": "long" + } + } + }, + "read": { + "properties": { + "ahead": { + "type": "long" + }, + "ahead_evicted": { + "type": "long" + }, + "ahead_rnd": { + "type": "long" + }, + "requests": { + "type": "long" + } + } + }, + "write_requests": { + "type": "long" + } + } + }, + "rows": { + "properties": { + "deleted": { + "type": "long" + }, + "inserted": { + "type": "long" + }, + "reads": { + "type": "long" + }, + "updated": { + "type": "long" + } + } + } + } + }, + "max_used_connections": { + "type": "long" + }, + "open": { + "properties": { + "files": { + "type": "long" + }, + "streams": { + "type": "long" + }, + "tables": { + "type": "long" + } + } + }, + "opened_tables": { + "type": "long" + }, + "queries": { + "type": "long" + }, + "questions": { + "type": "long" + }, + "threads": { + "properties": { + "cached": { + "type": "long" + }, + "connected": { + "type": "long" + }, + "created": { + "type": "long" + }, + "running": { + "type": "long" + } + } + } + } + } + } + }, + "nats": { + "properties": { + "connection": { + "properties": { + "idle_time": { + "type": "long" + }, + "in": { + "properties": { + "bytes": { + "type": "long" + }, + "messages": { + "type": "long" + } + } + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "out": { + "properties": { + "bytes": { + "type": "long" + }, + "messages": { + "type": "long" + } + } + }, + "pending_bytes": { + "type": "long" + }, + "subscriptions": { + "type": "long" + }, + "uptime": { + "type": "long" + } + } + }, + "connections": { + "properties": { + "total": { + "type": "long" + } + } + }, + "route": { + "properties": { + "in": { + "properties": { + "bytes": { + "type": "long" + }, + "messages": { + "type": "long" + } + } + }, + "ip": { + "type": "ip" + }, + "out": { + "properties": { + "bytes": { + "type": "long" + }, + "messages": { + "type": "long" + } + } + }, + "pending_size": { + "type": "long" + }, + "port": { + "type": "long" + }, + "remote_id": { + "ignore_above": 1024, + "type": "keyword" + }, + "subscriptions": { + "type": "long" + } + } + }, + "routes": { + "properties": { + "total": { + "type": "long" + } + } + }, + "server": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "time": { + "type": "date" + } + } + }, + "stats": { + "properties": { + "cores": { + "type": "long" + }, + "cpu": { + "scaling_factor": 1000, + "type": "scaled_float" + }, + "http": { + "properties": { + "req_stats": { + "properties": { + "uri": { + "properties": { + "connz": { + "type": "long" + }, + "root": { + "type": "long" + }, + "routez": { + "type": "long" + }, + "subsz": { + "type": "long" + }, + "varz": { + "type": "long" + } + } + } + } + } + } + }, + "in": { + "properties": { + "bytes": { + "type": "long" + }, + "messages": { + "type": "long" + } + } + }, + "mem": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "out": { + "properties": { + "bytes": { + "type": "long" + }, + "messages": { + "type": "long" + } + } + }, + "remotes": { + "type": "long" + }, + "slow_consumers": { + "type": "long" + }, + "total_connections": { + "type": "long" + }, + "uptime": { + "type": "long" + } + } + }, + "subscriptions": { + "properties": { + "cache": { + "properties": { + "fanout": { + "properties": { + "avg": { + "type": "double" + }, + "max": { + "type": "long" + } + } + }, + "hit_rate": { + "scaling_factor": 1000, + "type": "scaled_float" + }, + "size": { + "type": "long" + } + } + }, + "inserts": { + "type": "long" + }, + "matches": { + "type": "long" + }, + "removes": { + "type": "long" + }, + "total": { + "type": "long" + } + } + } + } + }, + "network": { + "properties": { + "application": { + "ignore_above": 1024, + "type": "keyword" + }, + "bytes": { + "type": "long" + }, + "community_id": { + "ignore_above": 1024, + "type": "keyword" + }, + "direction": { + "ignore_above": 1024, + "type": "keyword" + }, + "forwarded_ip": { + "type": "ip" + }, + "iana_number": { + "ignore_above": 1024, + "type": "keyword" + }, + "inner": { + "properties": { + "vlan": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + }, + "type": "object" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "packets": { + "type": "long" + }, + "protocol": { + "ignore_above": 1024, + "type": "keyword" + }, + "transport": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + }, + "vlan": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + }, + "nginx": { + "properties": { + "stubstatus": { + "properties": { + "accepts": { + "type": "long" + }, + "active": { + "type": "long" + }, + "current": { + "type": "long" + }, + "dropped": { + "type": "long" + }, + "handled": { + "type": "long" + }, + "hostname": { + "ignore_above": 1024, + "type": "keyword" + }, + "reading": { + "type": "long" + }, + "requests": { + "type": "long" + }, + "waiting": { + "type": "long" + }, + "writing": { + "type": "long" + } + } + } + } + }, + "node_stats": { + "properties": { + "fs": { + "properties": { + "io_stats": { + "properties": { + "total": { + "properties": { + "operations": { + "path": "elasticsearch.node.stats.fs.io_stats.total.operations.count", + "type": "alias" + }, + "read_operations": { + "path": "elasticsearch.node.stats.fs.io_stats.total.read.operations.count", + "type": "alias" + }, + "write_operations": { + "path": "elasticsearch.node.stats.fs.io_stats.total.write.operations.count", + "type": "alias" + } + } + } + } + }, + "summary": { + "properties": { + "available": { + "properties": { + "bytes": { + "path": "elasticsearch.node.stats.fs.summary.available.bytes", + "type": "alias" + } + } + }, + "total": { + "properties": { + "bytes": { + "path": "elasticsearch.node.stats.fs.summary.total.bytes", + "type": "alias" + } + } + } + } + }, + "total": { + "properties": { + "available_in_bytes": { + "path": "elasticsearch.node.stats.fs.summary.available.bytes", + "type": "alias" + }, + "total_in_bytes": { + "path": "elasticsearch.node.stats.fs.summary.total.bytes", + "type": "alias" + } + } + } + } + }, + "indices": { + "properties": { + "docs": { + "properties": { + "count": { + "path": "elasticsearch.node.stats.indices.docs.count", + "type": "alias" + } + } + }, + "fielddata": { + "properties": { + "memory_size_in_bytes": { + "path": "elasticsearch.node.stats.indices.fielddata.memory.bytes", + "type": "alias" + } + } + }, + "indexing": { + "properties": { + "index_time_in_millis": { + "path": "elasticsearch.node.stats.indices.indexing.index_time.ms", + "type": "alias" + }, + "index_total": { + "path": "elasticsearch.node.stats.indices.indexing.index_total.count", + "type": "alias" + }, + "throttle_time_in_millis": { + "path": "elasticsearch.node.stats.indices.indexing.throttle_time.ms", + "type": "alias" + } + } + }, + "query_cache": { + "properties": { + "memory_size_in_bytes": { + "path": "elasticsearch.node.stats.indices.query_cache.memory.bytes", + "type": "alias" + } + } + }, + "request_cache": { + "properties": { + "memory_size_in_bytes": { + "path": "elasticsearch.node.stats.indices.request_cache.memory.bytes", + "type": "alias" + } + } + }, + "search": { + "properties": { + "query_time_in_millis": { + "path": "elasticsearch.node.stats.indices.search.query_time.ms", + "type": "alias" + }, + "query_total": { + "path": "elasticsearch.node.stats.indices.search.query_total.count", + "type": "alias" + } + } + }, + "segments": { + "properties": { + "count": { + "path": "elasticsearch.node.stats.indices.segments.count", + "type": "alias" + }, + "doc_values_memory_in_bytes": { + "path": "elasticsearch.node.stats.indices.segments.doc_values.memory.bytes", + "type": "alias" + }, + "fixed_bit_set_memory_in_bytes": { + "path": "elasticsearch.node.stats.indices.segments.fixed_bit_set.memory.bytes", + "type": "alias" + }, + "index_writer_memory_in_bytes": { + "path": "elasticsearch.node.stats.indices.segments.index_writer.memory.bytes", + "type": "alias" + }, + "memory_in_bytes": { + "path": "elasticsearch.node.stats.indices.segments.memory.bytes", + "type": "alias" + }, + "norms_memory_in_bytes": { + "path": "elasticsearch.node.stats.indices.segments.norms.memory.bytes", + "type": "alias" + }, + "points_memory_in_bytes": { + "path": "elasticsearch.node.stats.indices.segments.points.memory.bytes", + "type": "alias" + }, + "stored_fields_memory_in_bytes": { + "path": "elasticsearch.node.stats.indices.segments.stored_fields.memory.bytes", + "type": "alias" + }, + "term_vectors_memory_in_bytes": { + "path": "elasticsearch.node.stats.indices.segments.term_vectors.memory.bytes", + "type": "alias" + }, + "terms_memory_in_bytes": { + "path": "elasticsearch.node.stats.indices.segments.terms.memory.bytes", + "type": "alias" + }, + "version_map_memory_in_bytes": { + "path": "elasticsearch.node.stats.indices.segments.version_map.memory.bytes", + "type": "alias" + } + } + }, + "store": { + "properties": { + "size": { + "properties": { + "bytes": { + "path": "elasticsearch.node.stats.indices.store.size.bytes", + "type": "alias" + } + } + }, + "size_in_bytes": { + "path": "elasticsearch.node.stats.indices.store.size.bytes", + "type": "alias" + } + } + } + } + }, + "jvm": { + "properties": { + "gc": { + "properties": { + "collectors": { + "properties": { + "old": { + "properties": { + "collection_count": { + "path": "elasticsearch.node.stats.jvm.gc.collectors.old.collection.count", + "type": "alias" + }, + "collection_time_in_millis": { + "path": "elasticsearch.node.stats.jvm.gc.collectors.old.collection.ms", + "type": "alias" + } + } + }, + "young": { + "properties": { + "collection_count": { + "path": "elasticsearch.node.stats.jvm.gc.collectors.young.collection.count", + "type": "alias" + }, + "collection_time_in_millis": { + "path": "elasticsearch.node.stats.jvm.gc.collectors.young.collection.ms", + "type": "alias" + } + } + } + } + } + } + }, + "mem": { + "properties": { + "heap_max_in_bytes": { + "path": "elasticsearch.node.stats.jvm.mem.heap.max.bytes", + "type": "alias" + }, + "heap_used_in_bytes": { + "path": "elasticsearch.node.stats.jvm.mem.heap.used.bytes", + "type": "alias" + }, + "heap_used_percent": { + "path": "elasticsearch.node.stats.jvm.mem.heap.used.pct", + "type": "alias" + } + } + } + } + }, + "node_id": { + "path": "elasticsearch.node.id", + "type": "alias" + }, + "os": { + "properties": { + "cgroup": { + "properties": { + "cpu": { + "properties": { + "cfs_quota_micros": { + "path": "elasticsearch.node.stats.os.cgroup.cpu.cfs.quota.us", + "type": "alias" + }, + "stat": { + "properties": { + "number_of_elapsed_periods": { + "path": "elasticsearch.node.stats.os.cgroup.cpu.stat.elapsed_periods.count", + "type": "alias" + }, + "number_of_times_throttled": { + "path": "elasticsearch.node.stats.os.cgroup.cpu.stat.times_throttled.count", + "type": "alias" + }, + "time_throttled_nanos": { + "path": "elasticsearch.node.stats.os.cgroup.cpu.stat.time_throttled.ns", + "type": "alias" + } + } + } + } + }, + "cpuacct": { + "properties": { + "usage_nanos": { + "path": "elasticsearch.node.stats.os.cgroup.cpuacct.usage.ns", + "type": "alias" + } + } + }, + "memory": { + "properties": { + "control_group": { + "path": "elasticsearch.node.stats.os.cgroup.memory.control_group", + "type": "alias" + }, + "limit_in_bytes": { + "path": "elasticsearch.node.stats.os.cgroup.memory.limit.bytes", + "type": "alias" + }, + "usage_in_bytes": { + "path": "elasticsearch.node.stats.os.cgroup.memory.usage.bytes", + "type": "alias" + } + } + } + } + }, + "cpu": { + "properties": { + "load_average": { + "properties": { + "1m": { + "path": "elasticsearch.node.stats.os.cpu.load_avg.1m", + "type": "alias" + } + } + } + } + } + } + }, + "process": { + "properties": { + "cpu": { + "properties": { + "percent": { + "path": "elasticsearch.node.stats.process.cpu.pct", + "type": "alias" + } + } + } + } + }, + "thread_pool": { + "properties": { + "bulk": { + "properties": { + "queue": { + "path": "elasticsearch.node.stats.thread_pool.bulk.queue.count", + "type": "alias" + }, + "rejected": { + "path": "elasticsearch.node.stats.thread_pool.bulk.rejected.count", + "type": "alias" + } + } + }, + "get": { + "properties": { + "queue": { + "path": "elasticsearch.node.stats.thread_pool.get.queue.count", + "type": "alias" + }, + "rejected": { + "path": "elasticsearch.node.stats.thread_pool.get.rejected.count", + "type": "alias" + } + } + }, + "index": { + "properties": { + "queue": { + "path": "elasticsearch.node.stats.thread_pool.index.queue.count", + "type": "alias" + }, + "rejected": { + "path": "elasticsearch.node.stats.thread_pool.index.rejected.count", + "type": "alias" + } + } + }, + "search": { + "properties": { + "queue": { + "path": "elasticsearch.node.stats.thread_pool.search.queue.count", + "type": "alias" + }, + "rejected": { + "path": "elasticsearch.node.stats.thread_pool.search.rejected.count", + "type": "alias" + } + } + }, + "write": { + "properties": { + "queue": { + "path": "elasticsearch.node.stats.thread_pool.write.queue.count", + "type": "alias" + }, + "rejected": { + "path": "elasticsearch.node.stats.thread_pool.write.rejected.count", + "type": "alias" + } + } + } + } + } + } + }, + "observer": { + "properties": { + "egress": { + "properties": { + "interface": { + "properties": { + "alias": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "vlan": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "zone": { + "ignore_above": 1024, + "type": "keyword" + } + }, + "type": "object" + }, + "geo": { + "properties": { + "city_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "continent_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "continent_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "country_iso_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "country_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "location": { + "type": "geo_point" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "postal_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "region_iso_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "region_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "timezone": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "hostname": { + "ignore_above": 1024, + "type": "keyword" + }, + "ingress": { + "properties": { + "interface": { + "properties": { + "alias": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "vlan": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "zone": { + "ignore_above": 1024, + "type": "keyword" + } + }, + "type": "object" + }, + "ip": { + "type": "ip" + }, + "mac": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "os": { + "properties": { + "family": { + "ignore_above": 1024, + "type": "keyword" + }, + "full": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "kernel": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "platform": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "product": { + "ignore_above": 1024, + "type": "keyword" + }, + "serial_number": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + }, + "vendor": { + "ignore_above": 1024, + "type": "keyword" + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "openmetrics": { + "properties": { + "exemplar": { + "properties": { + "*": { + "type": "object" + }, + "labels": { + "properties": { + "*": { + "type": "object" + } + } + } + } + }, + "help": { + "ignore_above": 1024, + "type": "keyword" + }, + "labels": { + "properties": { + "*": { + "type": "object" + } + } + }, + "metrics": { + "properties": { + "*": { + "type": "object" + } + } + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + }, + "unit": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "orchestrator": { + "properties": { + "api_version": { + "ignore_above": 1024, + "type": "keyword" + }, + "cluster": { + "properties": { + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "url": { + "ignore_above": 1024, + "type": "keyword" + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "namespace": { + "ignore_above": 1024, + "type": "keyword" + }, + "organization": { + "ignore_above": 1024, + "type": "keyword" + }, + "resource": { + "properties": { + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "organization": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "os": { + "properties": { + "family": { + "ignore_above": 1024, + "type": "keyword" + }, + "full": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "kernel": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "platform": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "package": { + "properties": { + "architecture": { + "ignore_above": 1024, + "type": "keyword" + }, + "build_version": { + "ignore_above": 1024, + "type": "keyword" + }, + "checksum": { + "ignore_above": 1024, + "type": "keyword" + }, + "description": { + "ignore_above": 1024, + "type": "keyword" + }, + "install_scope": { + "ignore_above": 1024, + "type": "keyword" + }, + "installed": { + "type": "date" + }, + "license": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "path": { + "ignore_above": 1024, + "type": "keyword" + }, + "reference": { + "ignore_above": 1024, + "type": "keyword" + }, + "size": { + "type": "long" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "pe": { + "properties": { + "architecture": { + "ignore_above": 1024, + "type": "keyword" + }, + "company": { + "ignore_above": 1024, + "type": "keyword" + }, + "description": { + "ignore_above": 1024, + "type": "keyword" + }, + "file_version": { + "ignore_above": 1024, + "type": "keyword" + }, + "imphash": { + "ignore_above": 1024, + "type": "keyword" + }, + "original_file_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "product": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "php_fpm": { + "properties": { + "pool": { + "properties": { + "connections": { + "properties": { + "accepted": { + "type": "long" + }, + "listen_queue_len": { + "type": "long" + }, + "max_listen_queue": { + "type": "long" + }, + "queued": { + "type": "long" + } + } + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "process_manager": { + "ignore_above": 1024, + "type": "keyword" + }, + "processes": { + "properties": { + "active": { + "type": "long" + }, + "idle": { + "type": "long" + }, + "max_active": { + "type": "long" + }, + "max_children_reached": { + "type": "long" + }, + "total": { + "type": "long" + } + } + }, + "slow_requests": { + "type": "long" + }, + "start_since": { + "type": "long" + }, + "start_time": { + "type": "date" + } + } + }, + "process": { + "properties": { + "last_request_cpu": { + "type": "long" + }, + "last_request_memory": { + "type": "long" + }, + "request_duration": { + "type": "long" + }, + "requests": { + "type": "long" + }, + "script": { + "ignore_above": 1024, + "type": "keyword" + }, + "start_since": { + "type": "long" + }, + "start_time": { + "type": "date" + }, + "state": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + }, + "postgresql": { + "properties": { + "activity": { + "properties": { + "application_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "backend_start": { + "type": "date" + }, + "backend_type": { + "ignore_above": 1024, + "type": "keyword" + }, + "client": { + "properties": { + "address": { + "ignore_above": 1024, + "type": "keyword" + }, + "hostname": { + "ignore_above": 1024, + "type": "keyword" + }, + "port": { + "type": "long" + } + } + }, + "database": { + "properties": { + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "oid": { + "type": "long" + } + } + }, + "pid": { + "type": "long" + }, + "query": { + "ignore_above": 1024, + "type": "keyword" + }, + "query_start": { + "type": "date" + }, + "state": { + "ignore_above": 1024, + "type": "keyword" + }, + "state_change": { + "type": "date" + }, + "transaction_start": { + "type": "date" + }, + "user": { + "properties": { + "id": { + "type": "long" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "wait_event": { + "ignore_above": 1024, + "type": "keyword" + }, + "wait_event_type": { + "ignore_above": 1024, + "type": "keyword" + }, + "waiting": { + "type": "boolean" + } + } + }, + "bgwriter": { + "properties": { + "buffers": { + "properties": { + "allocated": { + "type": "long" + }, + "backend": { + "type": "long" + }, + "backend_fsync": { + "type": "long" + }, + "checkpoints": { + "type": "long" + }, + "clean": { + "type": "long" + }, + "clean_full": { + "type": "long" + } + } + }, + "checkpoints": { + "properties": { + "requested": { + "type": "long" + }, + "scheduled": { + "type": "long" + }, + "times": { + "properties": { + "sync": { + "properties": { + "ms": { + "type": "float" + } + } + }, + "write": { + "properties": { + "ms": { + "type": "float" + } + } + } + } + } + } + }, + "stats_reset": { + "type": "date" + } + } + }, + "database": { + "properties": { + "blocks": { + "properties": { + "hit": { + "type": "long" + }, + "read": { + "type": "long" + }, + "time": { + "properties": { + "read": { + "properties": { + "ms": { + "type": "long" + } + } + }, + "write": { + "properties": { + "ms": { + "type": "long" + } + } + } + } + } + } + }, + "conflicts": { + "type": "long" + }, + "deadlocks": { + "type": "long" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "number_of_backends": { + "type": "long" + }, + "oid": { + "type": "long" + }, + "rows": { + "properties": { + "deleted": { + "type": "long" + }, + "fetched": { + "type": "long" + }, + "inserted": { + "type": "long" + }, + "returned": { + "type": "long" + }, + "updated": { + "type": "long" + } + } + }, + "stats_reset": { + "type": "date" + }, + "temporary": { + "properties": { + "bytes": { + "type": "long" + }, + "files": { + "type": "long" + } + } + }, + "transactions": { + "properties": { + "commit": { + "type": "long" + }, + "rollback": { + "type": "long" + } + } + } + } + }, + "statement": { + "properties": { + "database": { + "properties": { + "oid": { + "type": "long" + } + } + }, + "query": { + "properties": { + "calls": { + "type": "long" + }, + "id": { + "type": "long" + }, + "memory": { + "properties": { + "local": { + "properties": { + "dirtied": { + "type": "long" + }, + "hit": { + "type": "long" + }, + "read": { + "type": "long" + }, + "written": { + "type": "long" + } + } + }, + "shared": { + "properties": { + "dirtied": { + "type": "long" + }, + "hit": { + "type": "long" + }, + "read": { + "type": "long" + }, + "written": { + "type": "long" + } + } + }, + "temp": { + "properties": { + "read": { + "type": "long" + }, + "written": { + "type": "long" + } + } + } + } + }, + "rows": { + "type": "long" + }, + "text": { + "ignore_above": 1024, + "type": "keyword" + }, + "time": { + "properties": { + "max": { + "properties": { + "ms": { + "type": "float" + } + } + }, + "mean": { + "properties": { + "ms": { + "type": "long" + } + } + }, + "min": { + "properties": { + "ms": { + "type": "float" + } + } + }, + "stddev": { + "properties": { + "ms": { + "type": "long" + } + } + }, + "total": { + "properties": { + "ms": { + "type": "float" + } + } + } + } + } + } + }, + "user": { + "properties": { + "id": { + "type": "long" + } + } + } + } + } + } + }, + "process": { + "properties": { + "args": { + "ignore_above": 1024, + "type": "keyword" + }, + "args_count": { + "type": "long" + }, + "code_signature": { + "properties": { + "digest_algorithm": { + "ignore_above": 1024, + "type": "keyword" + }, + "exists": { + "type": "boolean" + }, + "signing_id": { + "ignore_above": 1024, + "type": "keyword" + }, + "status": { + "ignore_above": 1024, + "type": "keyword" + }, + "subject_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "team_id": { + "ignore_above": 1024, + "type": "keyword" + }, + "timestamp": { + "type": "date" + }, + "trusted": { + "type": "boolean" + }, + "valid": { + "type": "boolean" + } + } + }, + "command_line": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "cpu": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + }, + "start_time": { + "type": "date" + } + } + }, + "elf": { + "properties": { + "architecture": { + "ignore_above": 1024, + "type": "keyword" + }, + "byte_order": { + "ignore_above": 1024, + "type": "keyword" + }, + "cpu_type": { + "ignore_above": 1024, + "type": "keyword" + }, + "creation_date": { + "type": "date" + }, + "exports": { + "type": "flattened" + }, + "header": { + "properties": { + "abi_version": { + "ignore_above": 1024, + "type": "keyword" + }, + "class": { + "ignore_above": 1024, + "type": "keyword" + }, + "data": { + "ignore_above": 1024, + "type": "keyword" + }, + "entrypoint": { + "type": "long" + }, + "object_version": { + "ignore_above": 1024, + "type": "keyword" + }, + "os_abi": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "imports": { + "type": "flattened" + }, + "sections": { + "properties": { + "chi2": { + "type": "long" + }, + "entropy": { + "type": "long" + }, + "flags": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "physical_offset": { + "ignore_above": 1024, + "type": "keyword" + }, + "physical_size": { + "type": "long" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + }, + "virtual_address": { + "type": "long" + }, + "virtual_size": { + "type": "long" + } + }, + "type": "nested" + }, + "segments": { + "properties": { + "sections": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + } + }, + "type": "nested" + }, + "shared_libraries": { + "ignore_above": 1024, + "type": "keyword" + }, + "telfhash": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "end": { + "type": "date" + }, + "entity_id": { + "ignore_above": 1024, + "type": "keyword" + }, + "executable": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "exit_code": { + "type": "long" + }, + "hash": { + "properties": { + "md5": { + "ignore_above": 1024, + "type": "keyword" + }, + "sha1": { + "ignore_above": 1024, + "type": "keyword" + }, + "sha256": { + "ignore_above": 1024, + "type": "keyword" + }, + "sha512": { + "ignore_above": 1024, + "type": "keyword" + }, + "ssdeep": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "memory": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + }, + "name": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "owner": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "parent": { + "properties": { + "args": { + "ignore_above": 1024, + "type": "keyword" + }, + "args_count": { + "type": "long" + }, + "code_signature": { + "properties": { + "digest_algorithm": { + "ignore_above": 1024, + "type": "keyword" + }, + "exists": { + "type": "boolean" + }, + "signing_id": { + "ignore_above": 1024, + "type": "keyword" + }, + "status": { + "ignore_above": 1024, + "type": "keyword" + }, + "subject_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "team_id": { + "ignore_above": 1024, + "type": "keyword" + }, + "timestamp": { + "type": "date" + }, + "trusted": { + "type": "boolean" + }, + "valid": { + "type": "boolean" + } + } + }, + "command_line": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "elf": { + "properties": { + "architecture": { + "ignore_above": 1024, + "type": "keyword" + }, + "byte_order": { + "ignore_above": 1024, + "type": "keyword" + }, + "cpu_type": { + "ignore_above": 1024, + "type": "keyword" + }, + "creation_date": { + "type": "date" + }, + "exports": { + "type": "flattened" + }, + "header": { + "properties": { + "abi_version": { + "ignore_above": 1024, + "type": "keyword" + }, + "class": { + "ignore_above": 1024, + "type": "keyword" + }, + "data": { + "ignore_above": 1024, + "type": "keyword" + }, + "entrypoint": { + "type": "long" + }, + "object_version": { + "ignore_above": 1024, + "type": "keyword" + }, + "os_abi": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "imports": { + "type": "flattened" + }, + "sections": { + "properties": { + "chi2": { + "type": "long" + }, + "entropy": { + "type": "long" + }, + "flags": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "physical_offset": { + "ignore_above": 1024, + "type": "keyword" + }, + "physical_size": { + "type": "long" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + }, + "virtual_address": { + "type": "long" + }, + "virtual_size": { + "type": "long" + } + }, + "type": "nested" + }, + "segments": { + "properties": { + "sections": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + } + }, + "type": "nested" + }, + "shared_libraries": { + "ignore_above": 1024, + "type": "keyword" + }, + "telfhash": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "end": { + "type": "date" + }, + "entity_id": { + "ignore_above": 1024, + "type": "keyword" + }, + "executable": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "exit_code": { + "type": "long" + }, + "hash": { + "properties": { + "md5": { + "ignore_above": 1024, + "type": "keyword" + }, + "sha1": { + "ignore_above": 1024, + "type": "keyword" + }, + "sha256": { + "ignore_above": 1024, + "type": "keyword" + }, + "sha512": { + "ignore_above": 1024, + "type": "keyword" + }, + "ssdeep": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "name": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "pe": { + "properties": { + "architecture": { + "ignore_above": 1024, + "type": "keyword" + }, + "company": { + "ignore_above": 1024, + "type": "keyword" + }, + "description": { + "ignore_above": 1024, + "type": "keyword" + }, + "file_version": { + "ignore_above": 1024, + "type": "keyword" + }, + "imphash": { + "ignore_above": 1024, + "type": "keyword" + }, + "original_file_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "product": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "pgid": { + "type": "long" + }, + "pid": { + "type": "long" + }, + "start": { + "type": "date" + }, + "thread": { + "properties": { + "id": { + "type": "long" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "title": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "uptime": { + "type": "long" + }, + "working_directory": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "pe": { + "properties": { + "architecture": { + "ignore_above": 1024, + "type": "keyword" + }, + "company": { + "ignore_above": 1024, + "type": "keyword" + }, + "description": { + "ignore_above": 1024, + "type": "keyword" + }, + "file_version": { + "ignore_above": 1024, + "type": "keyword" + }, + "imphash": { + "ignore_above": 1024, + "type": "keyword" + }, + "original_file_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "product": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "pgid": { + "type": "long" + }, + "pid": { + "type": "long" + }, + "start": { + "type": "date" + }, + "state": { + "ignore_above": 1024, + "type": "keyword" + }, + "thread": { + "properties": { + "id": { + "type": "long" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "title": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "uptime": { + "type": "long" + }, + "working_directory": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "prometheus": { + "properties": { + "labels": { + "properties": { + "*": { + "type": "object" + } + } + }, + "metrics": { + "properties": { + "*": { + "type": "object" + } + } + }, + "query": { + "properties": { + "*": { + "type": "object" + } + } + } + } + }, + "rabbitmq": { + "properties": { + "connection": { + "properties": { + "channel_max": { + "type": "long" + }, + "channels": { + "type": "long" + }, + "client_provided": { + "properties": { + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "frame_max": { + "type": "long" + }, + "host": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "octet_count": { + "properties": { + "received": { + "type": "long" + }, + "sent": { + "type": "long" + } + } + }, + "packet_count": { + "properties": { + "pending": { + "type": "long" + }, + "received": { + "type": "long" + }, + "sent": { + "type": "long" + } + } + }, + "peer": { + "properties": { + "host": { + "ignore_above": 1024, + "type": "keyword" + }, + "port": { + "type": "long" + } + } + }, + "port": { + "type": "long" + }, + "state": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "exchange": { + "properties": { + "auto_delete": { + "type": "boolean" + }, + "durable": { + "type": "boolean" + }, + "internal": { + "type": "boolean" + }, + "messages": { + "properties": { + "publish_in": { + "properties": { + "count": { + "type": "long" + }, + "details": { + "properties": { + "rate": { + "type": "float" + } + } + } + } + }, + "publish_out": { + "properties": { + "count": { + "type": "long" + }, + "details": { + "properties": { + "rate": { + "type": "float" + } + } + } + } + } + } + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "node": { + "properties": { + "disk": { + "properties": { + "free": { + "properties": { + "bytes": { + "type": "long" + }, + "limit": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + } + } + }, + "fd": { + "properties": { + "total": { + "type": "long" + }, + "used": { + "type": "long" + } + } + }, + "gc": { + "properties": { + "num": { + "properties": { + "count": { + "type": "long" + } + } + }, + "reclaimed": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "io": { + "properties": { + "file_handle": { + "properties": { + "open_attempt": { + "properties": { + "avg": { + "properties": { + "ms": { + "type": "long" + } + } + }, + "count": { + "type": "long" + } + } + } + } + }, + "read": { + "properties": { + "avg": { + "properties": { + "ms": { + "type": "long" + } + } + }, + "bytes": { + "type": "long" + }, + "count": { + "type": "long" + } + } + }, + "reopen": { + "properties": { + "count": { + "type": "long" + } + } + }, + "seek": { + "properties": { + "avg": { + "properties": { + "ms": { + "type": "long" + } + } + }, + "count": { + "type": "long" + } + } + }, + "sync": { + "properties": { + "avg": { + "properties": { + "ms": { + "type": "long" + } + } + }, + "count": { + "type": "long" + } + } + }, + "write": { + "properties": { + "avg": { + "properties": { + "ms": { + "type": "long" + } + } + }, + "bytes": { + "type": "long" + }, + "count": { + "type": "long" + } + } + } + } + }, + "mem": { + "properties": { + "limit": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "used": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "mnesia": { + "properties": { + "disk": { + "properties": { + "tx": { + "properties": { + "count": { + "type": "long" + } + } + } + } + }, + "ram": { + "properties": { + "tx": { + "properties": { + "count": { + "type": "long" + } + } + } + } + } + } + }, + "msg": { + "properties": { + "store_read": { + "properties": { + "count": { + "type": "long" + } + } + }, + "store_write": { + "properties": { + "count": { + "type": "long" + } + } + } + } + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "proc": { + "properties": { + "total": { + "type": "long" + }, + "used": { + "type": "long" + } + } + }, + "processors": { + "type": "long" + }, + "queue": { + "properties": { + "index": { + "properties": { + "journal_write": { + "properties": { + "count": { + "type": "long" + } + } + }, + "read": { + "properties": { + "count": { + "type": "long" + } + } + }, + "write": { + "properties": { + "count": { + "type": "long" + } + } + } + } + } + } + }, + "run": { + "properties": { + "queue": { + "type": "long" + } + } + }, + "socket": { + "properties": { + "total": { + "type": "long" + }, + "used": { + "type": "long" + } + } + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + }, + "uptime": { + "type": "long" + } + } + }, + "queue": { + "properties": { + "arguments": { + "properties": { + "max_priority": { + "type": "long" + } + } + }, + "auto_delete": { + "type": "boolean" + }, + "consumers": { + "properties": { + "count": { + "type": "long" + }, + "utilisation": { + "properties": { + "pct": { + "type": "long" + } + } + } + } + }, + "disk": { + "properties": { + "reads": { + "properties": { + "count": { + "type": "long" + } + } + }, + "writes": { + "properties": { + "count": { + "type": "long" + } + } + } + } + }, + "durable": { + "type": "boolean" + }, + "exclusive": { + "type": "boolean" + }, + "memory": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "messages": { + "properties": { + "persistent": { + "properties": { + "count": { + "type": "long" + } + } + }, + "ready": { + "properties": { + "count": { + "type": "long" + }, + "details": { + "properties": { + "rate": { + "type": "float" + } + } + } + } + }, + "total": { + "properties": { + "count": { + "type": "long" + }, + "details": { + "properties": { + "rate": { + "type": "float" + } + } + } + } + }, + "unacknowledged": { + "properties": { + "count": { + "type": "long" + }, + "details": { + "properties": { + "rate": { + "type": "float" + } + } + } + } + } + } + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "state": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "shovel": { + "properties": { + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "state": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "vhost": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "redis": { + "properties": { + "info": { + "properties": { + "clients": { + "properties": { + "blocked": { + "type": "long" + }, + "connected": { + "type": "long" + }, + "max_input_buffer": { + "type": "long" + }, + "max_output_buffer": { + "type": "long" + } + } + }, + "cluster": { + "properties": { + "enabled": { + "type": "boolean" + } + } + }, + "commandstats": { + "properties": { + "*": { + "properties": { + "calls": { + "type": "long" + }, + "failed_calls": { + "type": "long" + }, + "rejected_calls": { + "type": "long" + }, + "usec": { + "type": "long" + }, + "usec_per_call": { + "type": "float" + } + } + } + } + }, + "cpu": { + "properties": { + "used": { + "properties": { + "sys": { + "scaling_factor": 1000, + "type": "scaled_float" + }, + "sys_children": { + "scaling_factor": 1000, + "type": "scaled_float" + }, + "user": { + "scaling_factor": 1000, + "type": "scaled_float" + }, + "user_children": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + } + } + }, + "memory": { + "properties": { + "active_defrag": { + "properties": { + "is_running": { + "type": "boolean" + } + } + }, + "allocator": { + "ignore_above": 1024, + "type": "keyword" + }, + "allocator_stats": { + "properties": { + "active": { + "type": "long" + }, + "allocated": { + "type": "long" + }, + "fragmentation": { + "properties": { + "bytes": { + "type": "long" + }, + "ratio": { + "type": "float" + } + } + }, + "resident": { + "type": "long" + }, + "rss": { + "properties": { + "bytes": { + "type": "long" + }, + "ratio": { + "type": "float" + } + } + } + } + }, + "fragmentation": { + "properties": { + "bytes": { + "type": "long" + }, + "ratio": { + "type": "float" + } + } + }, + "max": { + "properties": { + "policy": { + "ignore_above": 1024, + "type": "keyword" + }, + "value": { + "type": "long" + } + } + }, + "used": { + "properties": { + "dataset": { + "type": "long" + }, + "lua": { + "type": "long" + }, + "peak": { + "type": "long" + }, + "rss": { + "type": "long" + }, + "value": { + "type": "long" + } + } + } + } + }, + "persistence": { + "properties": { + "aof": { + "properties": { + "bgrewrite": { + "properties": { + "last_status": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "buffer": { + "properties": { + "size": { + "type": "long" + } + } + }, + "copy_on_write": { + "properties": { + "last_size": { + "type": "long" + } + } + }, + "enabled": { + "type": "boolean" + }, + "fsync": { + "properties": { + "delayed": { + "type": "long" + }, + "pending": { + "type": "long" + } + } + }, + "rewrite": { + "properties": { + "buffer": { + "properties": { + "size": { + "type": "long" + } + } + }, + "current_time": { + "properties": { + "sec": { + "type": "long" + } + } + }, + "in_progress": { + "type": "boolean" + }, + "last_time": { + "properties": { + "sec": { + "type": "long" + } + } + }, + "scheduled": { + "type": "boolean" + } + } + }, + "size": { + "properties": { + "base": { + "type": "long" + }, + "current": { + "type": "long" + } + } + }, + "write": { + "properties": { + "last_status": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + }, + "loading": { + "type": "boolean" + }, + "rdb": { + "properties": { + "bgsave": { + "properties": { + "current_time": { + "properties": { + "sec": { + "type": "long" + } + } + }, + "in_progress": { + "type": "boolean" + }, + "last_status": { + "ignore_above": 1024, + "type": "keyword" + }, + "last_time": { + "properties": { + "sec": { + "type": "long" + } + } + } + } + }, + "copy_on_write": { + "properties": { + "last_size": { + "type": "long" + } + } + }, + "last_save": { + "properties": { + "changes_since": { + "type": "long" + }, + "time": { + "type": "long" + } + } + } + } + } + } + }, + "replication": { + "properties": { + "backlog": { + "properties": { + "active": { + "type": "long" + }, + "first_byte_offset": { + "type": "long" + }, + "histlen": { + "type": "long" + }, + "size": { + "type": "long" + } + } + }, + "connected_slaves": { + "type": "long" + }, + "master": { + "properties": { + "last_io_seconds_ago": { + "type": "long" + }, + "link_status": { + "ignore_above": 1024, + "type": "keyword" + }, + "offset": { + "type": "long" + }, + "second_offset": { + "type": "long" + }, + "sync": { + "properties": { + "in_progress": { + "type": "boolean" + }, + "last_io_seconds_ago": { + "type": "long" + }, + "left_bytes": { + "type": "long" + } + } + } + } + }, + "role": { + "ignore_above": 1024, + "type": "keyword" + }, + "slave": { + "properties": { + "is_readonly": { + "type": "boolean" + }, + "offset": { + "type": "long" + }, + "priority": { + "type": "long" + } + } + } + } + }, + "server": { + "properties": { + "arch_bits": { + "ignore_above": 1024, + "type": "keyword" + }, + "build_id": { + "ignore_above": 1024, + "type": "keyword" + }, + "config_file": { + "ignore_above": 1024, + "type": "keyword" + }, + "gcc_version": { + "ignore_above": 1024, + "type": "keyword" + }, + "git_dirty": { + "ignore_above": 1024, + "type": "keyword" + }, + "git_sha1": { + "ignore_above": 1024, + "type": "keyword" + }, + "hz": { + "type": "long" + }, + "lru_clock": { + "type": "long" + }, + "mode": { + "ignore_above": 1024, + "type": "keyword" + }, + "multiplexing_api": { + "ignore_above": 1024, + "type": "keyword" + }, + "run_id": { + "ignore_above": 1024, + "type": "keyword" + }, + "tcp_port": { + "type": "long" + }, + "uptime": { + "type": "long" + } + } + }, + "slowlog": { + "properties": { + "count": { + "type": "long" + } + } + }, + "stats": { + "properties": { + "active_defrag": { + "properties": { + "hits": { + "type": "long" + }, + "key_hits": { + "type": "long" + }, + "key_misses": { + "type": "long" + }, + "misses": { + "type": "long" + } + } + }, + "commands_processed": { + "type": "long" + }, + "connections": { + "properties": { + "received": { + "type": "long" + }, + "rejected": { + "type": "long" + } + } + }, + "instantaneous": { + "properties": { + "input_kbps": { + "scaling_factor": 1000, + "type": "scaled_float" + }, + "ops_per_sec": { + "type": "long" + }, + "output_kbps": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + }, + "keys": { + "properties": { + "evicted": { + "type": "long" + }, + "expired": { + "type": "long" + } + } + }, + "keyspace": { + "properties": { + "hits": { + "type": "long" + }, + "misses": { + "type": "long" + } + } + }, + "latest_fork_usec": { + "type": "long" + }, + "migrate_cached_sockets": { + "type": "long" + }, + "net": { + "properties": { + "input": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "output": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "pubsub": { + "properties": { + "channels": { + "type": "long" + }, + "patterns": { + "type": "long" + } + } + }, + "slave_expires_tracked_keys": { + "type": "long" + }, + "sync": { + "properties": { + "full": { + "type": "long" + }, + "partial": { + "properties": { + "err": { + "type": "long" + }, + "ok": { + "type": "long" + } + } + } + } + } + } + } + } + }, + "key": { + "properties": { + "expire": { + "properties": { + "ttl": { + "type": "long" + } + } + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "length": { + "type": "long" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "keyspace": { + "properties": { + "avg_ttl": { + "type": "long" + }, + "expires": { + "type": "long" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "keys": { + "type": "long" + } + } + } + } + }, + "registry": { + "properties": { + "data": { + "properties": { + "bytes": { + "ignore_above": 1024, + "type": "keyword" + }, + "strings": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "hive": { + "ignore_above": 1024, + "type": "keyword" + }, + "key": { + "ignore_above": 1024, + "type": "keyword" + }, + "path": { + "ignore_above": 1024, + "type": "keyword" + }, + "value": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "related": { + "properties": { + "hash": { + "ignore_above": 1024, + "type": "keyword" + }, + "hosts": { + "ignore_above": 1024, + "type": "keyword" + }, + "ip": { + "type": "ip" + }, + "user": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "rule": { + "properties": { + "author": { + "ignore_above": 1024, + "type": "keyword" + }, + "category": { + "ignore_above": 1024, + "type": "keyword" + }, + "description": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "license": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "reference": { + "ignore_above": 1024, + "type": "keyword" + }, + "ruleset": { + "ignore_above": 1024, + "type": "keyword" + }, + "uuid": { + "ignore_above": 1024, + "type": "keyword" + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "server": { + "properties": { + "address": { + "ignore_above": 1024, + "type": "keyword" + }, + "as": { + "properties": { + "number": { + "type": "long" + }, + "organization": { + "properties": { + "name": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + }, + "bytes": { + "type": "long" + }, + "domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "geo": { + "properties": { + "city_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "continent_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "continent_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "country_iso_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "country_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "location": { + "type": "geo_point" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "postal_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "region_iso_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "region_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "timezone": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "ip": { + "type": "ip" + }, + "mac": { + "ignore_above": 1024, + "type": "keyword" + }, + "nat": { + "properties": { + "ip": { + "type": "ip" + }, + "port": { + "type": "long" + } + } + }, + "packets": { + "type": "long" + }, + "port": { + "type": "long" + }, + "registered_domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "subdomain": { + "ignore_above": 1024, + "type": "keyword" + }, + "top_level_domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "user": { + "properties": { + "domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "email": { + "ignore_above": 1024, + "type": "keyword" + }, + "full_name": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "group": { + "properties": { + "domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "hash": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "roles": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + }, + "service": { + "properties": { + "address": { + "ignore_above": 1024, + "type": "keyword" + }, + "environment": { + "ignore_above": 1024, + "type": "keyword" + }, + "ephemeral_id": { + "ignore_above": 1024, + "type": "keyword" + }, + "hostname": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "node": { + "properties": { + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "origin": { + "properties": { + "address": { + "ignore_above": 1024, + "type": "keyword" + }, + "environment": { + "ignore_above": 1024, + "type": "keyword" + }, + "ephemeral_id": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "node": { + "properties": { + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "state": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "state": { + "ignore_above": 1024, + "type": "keyword" + }, + "target": { + "properties": { + "address": { + "ignore_above": 1024, + "type": "keyword" + }, + "environment": { + "ignore_above": 1024, + "type": "keyword" + }, + "ephemeral_id": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "node": { + "properties": { + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "state": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "shard": { + "properties": { + "index": { + "path": "elasticsearch.index.name", + "type": "alias" + }, + "node": { + "path": "elasticsearch.node.id", + "type": "alias" + }, + "primary": { + "path": "elasticsearch.shard.primary", + "type": "alias" + }, + "shard": { + "path": "elasticsearch.shard.number", + "type": "alias" + }, + "state": { + "path": "elasticsearch.shard.state", + "type": "alias" + } + } + }, + "source": { + "properties": { + "address": { + "ignore_above": 1024, + "type": "keyword" + }, + "as": { + "properties": { + "number": { + "type": "long" + }, + "organization": { + "properties": { + "name": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + }, + "bytes": { + "type": "long" + }, + "domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "geo": { + "properties": { + "city_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "continent_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "continent_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "country_iso_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "country_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "location": { + "type": "geo_point" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "postal_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "region_iso_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "region_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "timezone": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "ip": { + "type": "ip" + }, + "mac": { + "ignore_above": 1024, + "type": "keyword" + }, + "nat": { + "properties": { + "ip": { + "type": "ip" + }, + "port": { + "type": "long" + } + } + }, + "packets": { + "type": "long" + }, + "port": { + "type": "long" + }, + "registered_domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "subdomain": { + "ignore_above": 1024, + "type": "keyword" + }, + "top_level_domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "user": { + "properties": { + "domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "email": { + "ignore_above": 1024, + "type": "keyword" + }, + "full_name": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "group": { + "properties": { + "domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "hash": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "roles": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + }, + "source_node": { + "properties": { + "name": { + "path": "elasticsearch.node.name", + "type": "alias" + }, + "uuid": { + "path": "elasticsearch.node.id", + "type": "alias" + } + } + }, + "span": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "stack_stats": { + "properties": { + "apm": { + "properties": { + "found": { + "path": "elasticsearch.cluster.stats.stack.apm.found", + "type": "alias" + } + } + }, + "xpack": { + "properties": { + "ccr": { + "properties": { + "available": { + "path": "elasticsearch.cluster.stats.stack.xpack.ccr.available", + "type": "alias" + }, + "enabled": { + "path": "elasticsearch.cluster.stats.stack.xpack.ccr.enabled", + "type": "alias" + } + } + } + } + } + } + }, + "system": { + "properties": { + "core": { + "properties": { + "core_id": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "type": "long" + }, + "idle": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + }, + "ticks": { + "type": "long" + } + } + }, + "iowait": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + }, + "ticks": { + "type": "long" + } + } + }, + "irq": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + }, + "ticks": { + "type": "long" + } + } + }, + "mhz": { + "type": "float" + }, + "model_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "model_number": { + "ignore_above": 1024, + "type": "keyword" + }, + "nice": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + }, + "ticks": { + "type": "long" + } + } + }, + "physical_id": { + "ignore_above": 1024, + "type": "keyword" + }, + "softirq": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + }, + "ticks": { + "type": "long" + } + } + }, + "steal": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + }, + "ticks": { + "type": "long" + } + } + }, + "system": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + }, + "ticks": { + "type": "long" + } + } + }, + "total": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + }, + "user": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + }, + "ticks": { + "type": "long" + } + } + } + } + }, + "cpu": { + "properties": { + "cores": { + "type": "long" + }, + "idle": { + "properties": { + "norm": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + }, + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + }, + "ticks": { + "type": "long" + } + } + }, + "iowait": { + "properties": { + "norm": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + }, + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + }, + "ticks": { + "type": "long" + } + } + }, + "irq": { + "properties": { + "norm": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + }, + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + }, + "ticks": { + "type": "long" + } + } + }, + "nice": { + "properties": { + "norm": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + }, + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + }, + "ticks": { + "type": "long" + } + } + }, + "softirq": { + "properties": { + "norm": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + }, + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + }, + "ticks": { + "type": "long" + } + } + }, + "steal": { + "properties": { + "norm": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + }, + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + }, + "ticks": { + "type": "long" + } + } + }, + "system": { + "properties": { + "norm": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + }, + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + }, + "ticks": { + "type": "long" + } + } + }, + "total": { + "properties": { + "norm": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + }, + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + }, + "user": { + "properties": { + "norm": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + }, + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + }, + "ticks": { + "type": "long" + } + } + } + } + }, + "diskio": { + "properties": { + "io": { + "properties": { + "ops": { + "type": "long" + }, + "time": { + "type": "long" + } + } + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "read": { + "properties": { + "bytes": { + "type": "long" + }, + "count": { + "type": "long" + }, + "time": { + "type": "long" + } + } + }, + "serial_number": { + "ignore_above": 1024, + "type": "keyword" + }, + "write": { + "properties": { + "bytes": { + "type": "long" + }, + "count": { + "type": "long" + }, + "time": { + "type": "long" + } + } + } + } + }, + "entropy": { + "properties": { + "available_bits": { + "type": "long" + }, + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + }, + "filesystem": { + "properties": { + "available": { + "type": "long" + }, + "device_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "files": { + "type": "long" + }, + "free": { + "type": "long" + }, + "free_files": { + "type": "long" + }, + "mount_point": { + "ignore_above": 1024, + "type": "keyword" + }, + "options": { + "ignore_above": 1024, + "type": "keyword" + }, + "total": { + "type": "long" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + }, + "used": { + "properties": { + "bytes": { + "type": "long" + }, + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + } + } + }, + "fsstat": { + "properties": { + "count": { + "type": "long" + }, + "total_files": { + "type": "long" + }, + "total_size": { + "properties": { + "free": { + "type": "long" + }, + "total": { + "type": "long" + }, + "used": { + "type": "long" + } + } + } + } + }, + "load": { + "properties": { + "1": { + "scaling_factor": 100, + "type": "scaled_float" + }, + "15": { + "scaling_factor": 100, + "type": "scaled_float" + }, + "5": { + "scaling_factor": 100, + "type": "scaled_float" + }, + "cores": { + "type": "long" + }, + "norm": { + "properties": { + "1": { + "scaling_factor": 100, + "type": "scaled_float" + }, + "15": { + "scaling_factor": 100, + "type": "scaled_float" + }, + "5": { + "scaling_factor": 100, + "type": "scaled_float" + } + } + } + } + }, + "memory": { + "properties": { + "actual": { + "properties": { + "free": { + "type": "long" + }, + "used": { + "properties": { + "bytes": { + "type": "long" + }, + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + } + } + }, + "cached": { + "type": "long" + }, + "free": { + "type": "long" + }, + "swap": { + "properties": { + "free": { + "type": "long" + }, + "total": { + "type": "long" + }, + "used": { + "properties": { + "bytes": { + "type": "long" + }, + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + } + } + }, + "total": { + "type": "long" + }, + "used": { + "properties": { + "bytes": { + "type": "long" + }, + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + } + } + }, + "network": { + "properties": { + "in": { + "properties": { + "bytes": { + "type": "long" + }, + "dropped": { + "type": "long" + }, + "errors": { + "type": "long" + }, + "packets": { + "type": "long" + } + } + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "out": { + "properties": { + "bytes": { + "type": "long" + }, + "dropped": { + "type": "long" + }, + "errors": { + "type": "long" + }, + "packets": { + "type": "long" + } + } + } + } + }, + "network_summary": { + "properties": { + "icmp": { + "properties": { + "*": { + "type": "object" + } + } + }, + "ip": { + "properties": { + "*": { + "type": "object" + } + } + }, + "tcp": { + "properties": { + "*": { + "type": "object" + } + } + }, + "udp": { + "properties": { + "*": { + "type": "object" + } + } + }, + "udp_lite": { + "properties": { + "*": { + "type": "object" + } + } + } + } + }, + "process": { + "properties": { + "cgroup": { + "properties": { + "blkio": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "path": { + "ignore_above": 1024, + "type": "keyword" + }, + "total": { + "properties": { + "bytes": { + "type": "long" + }, + "ios": { + "type": "long" + } + } + } + } + }, + "cgroups_version": { + "type": "long" + }, + "cpu": { + "properties": { + "cfs": { + "properties": { + "period": { + "properties": { + "us": { + "type": "long" + } + } + }, + "quota": { + "properties": { + "us": { + "type": "long" + } + } + }, + "shares": { + "type": "long" + } + } + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "path": { + "ignore_above": 1024, + "type": "keyword" + }, + "pressure": { + "properties": { + "full": { + "properties": { + "10": { + "properties": { + "pct": { + "type": "float" + } + } + }, + "300": { + "properties": { + "pct": { + "type": "float" + } + } + }, + "60": { + "properties": { + "pct": { + "type": "float" + } + } + }, + "total": { + "type": "long" + } + } + }, + "some": { + "properties": { + "10": { + "properties": { + "pct": { + "type": "float" + } + } + }, + "300": { + "properties": { + "pct": { + "type": "float" + } + } + }, + "60": { + "properties": { + "pct": { + "type": "float" + } + } + }, + "total": { + "type": "long" + } + } + } + } + }, + "rt": { + "properties": { + "period": { + "properties": { + "us": { + "type": "long" + } + } + }, + "runtime": { + "properties": { + "us": { + "type": "long" + } + } + } + } + }, + "stats": { + "properties": { + "periods": { + "type": "long" + }, + "system": { + "properties": { + "norm": { + "properties": { + "pct": { + "type": "float" + } + } + }, + "ns": { + "type": "long" + }, + "pct": { + "type": "float" + } + } + }, + "throttled": { + "properties": { + "ns": { + "type": "long" + }, + "periods": { + "type": "long" + }, + "us": { + "type": "long" + } + } + }, + "usage": { + "properties": { + "norm": { + "properties": { + "pct": { + "type": "float" + } + } + }, + "ns": { + "type": "long" + }, + "pct": { + "type": "float" + } + } + }, + "user": { + "properties": { + "norm": { + "properties": { + "pct": { + "type": "float" + } + } + }, + "ns": { + "type": "long" + }, + "pct": { + "type": "float" + } + } + } + } + } + } + }, + "cpuacct": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "path": { + "ignore_above": 1024, + "type": "keyword" + }, + "percpu": { + "type": "object" + }, + "stats": { + "properties": { + "system": { + "properties": { + "norm": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + }, + "ns": { + "type": "long" + }, + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + }, + "user": { + "properties": { + "norm": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + }, + "ns": { + "type": "long" + }, + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + } + } + }, + "total": { + "properties": { + "norm": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + }, + "ns": { + "type": "long" + }, + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + } + } + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "io": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "path": { + "ignore_above": 1024, + "type": "keyword" + }, + "pressure": { + "properties": { + "full": { + "properties": { + "10": { + "properties": { + "pct": { + "type": "float" + } + } + }, + "300": { + "properties": { + "pct": { + "type": "float" + } + } + }, + "60": { + "properties": { + "pct": { + "type": "float" + } + } + }, + "total": { + "type": "long" + } + } + }, + "some": { + "properties": { + "10": { + "properties": { + "pct": { + "type": "float" + } + } + }, + "300": { + "properties": { + "pct": { + "type": "float" + } + } + }, + "60": { + "properties": { + "pct": { + "type": "float" + } + } + }, + "total": { + "type": "long" + } + } + } + } + }, + "stats": { + "properties": { + "*": { + "properties": { + "*": { + "properties": { + "bytes": { + "type": "object" + }, + "ios": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + } + } + } + } + }, + "memory": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "kmem": { + "properties": { + "failures": { + "type": "long" + }, + "limit": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "usage": { + "properties": { + "bytes": { + "type": "long" + }, + "max": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + } + } + }, + "kmem_tcp": { + "properties": { + "failures": { + "type": "long" + }, + "limit": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "usage": { + "properties": { + "bytes": { + "type": "long" + }, + "max": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + } + } + }, + "mem": { + "properties": { + "events": { + "properties": { + "fail": { + "type": "long" + }, + "high": { + "type": "long" + }, + "low": { + "type": "long" + }, + "max": { + "type": "long" + }, + "oom": { + "type": "long" + }, + "oom_kill": { + "type": "long" + } + } + }, + "failures": { + "type": "long" + }, + "high": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "limit": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "low": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "max": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "usage": { + "properties": { + "bytes": { + "type": "long" + }, + "max": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + } + } + }, + "memsw": { + "properties": { + "events": { + "properties": { + "fail": { + "type": "long" + }, + "high": { + "type": "long" + }, + "low": { + "type": "long" + }, + "max": { + "type": "long" + }, + "oom": { + "type": "long" + }, + "oom_kill": { + "type": "long" + } + } + }, + "failures": { + "type": "long" + }, + "high": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "limit": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "low": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "max": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "usage": { + "properties": { + "bytes": { + "type": "long" + }, + "max": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + } + } + }, + "path": { + "ignore_above": 1024, + "type": "keyword" + }, + "stats": { + "properties": { + "*": { + "properties": { + "bytes": { + "type": "object" + } + }, + "type": "object" + }, + "active_anon": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "active_file": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "cache": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "hierarchical_memory_limit": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "hierarchical_memsw_limit": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "inactive_anon": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "inactive_file": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "major_page_faults": { + "type": "long" + }, + "mapped_file": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "page_faults": { + "type": "long" + }, + "pages_in": { + "type": "long" + }, + "pages_out": { + "type": "long" + }, + "rss": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "rss_huge": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "swap": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "unevictable": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + } + } + }, + "path": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "cmdline": { + "ignore_above": 2048, + "type": "keyword" + }, + "cpu": { + "properties": { + "start_time": { + "type": "date" + }, + "system": { + "properties": { + "ticks": { + "type": "long" + } + } + }, + "total": { + "properties": { + "norm": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + }, + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + }, + "ticks": { + "type": "long" + }, + "value": { + "type": "long" + } + } + }, + "user": { + "properties": { + "ticks": { + "type": "long" + } + } + } + } + }, + "env": { + "type": "object" + }, + "fd": { + "properties": { + "limit": { + "properties": { + "hard": { + "type": "long" + }, + "soft": { + "type": "long" + } + } + }, + "open": { + "type": "long" + } + } + }, + "memory": { + "properties": { + "rss": { + "properties": { + "bytes": { + "type": "long" + }, + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + }, + "share": { + "type": "long" + }, + "size": { + "type": "long" + } + } + }, + "state": { + "ignore_above": 1024, + "type": "keyword" + }, + "summary": { + "properties": { + "dead": { + "type": "long" + }, + "idle": { + "type": "long" + }, + "parked": { + "type": "long" + }, + "running": { + "type": "long" + }, + "sleeping": { + "type": "long" + }, + "stopped": { + "type": "long" + }, + "total": { + "type": "long" + }, + "unknown": { + "type": "long" + }, + "wake": { + "type": "long" + }, + "wakekill": { + "type": "long" + }, + "zombie": { + "type": "long" + } + } + } + } + }, + "raid": { + "properties": { + "blocks": { + "properties": { + "synced": { + "type": "long" + }, + "total": { + "type": "long" + } + } + }, + "disks": { + "properties": { + "active": { + "type": "long" + }, + "failed": { + "type": "long" + }, + "spare": { + "type": "long" + }, + "states": { + "properties": { + "*": { + "type": "object" + } + } + }, + "total": { + "type": "long" + } + } + }, + "level": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "status": { + "ignore_above": 1024, + "type": "keyword" + }, + "sync_action": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "service": { + "properties": { + "exec_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "load_state": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "resources": { + "properties": { + "cpu": { + "properties": { + "usage": { + "properties": { + "ns": { + "type": "long" + } + } + } + } + }, + "memory": { + "properties": { + "usage": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "network": { + "properties": { + "in": { + "properties": { + "bytes": { + "type": "long" + }, + "packets": { + "type": "long" + } + } + }, + "out": { + "properties": { + "bytes": { + "type": "long" + }, + "packets": { + "type": "long" + } + } + } + } + }, + "tasks": { + "properties": { + "count": { + "type": "long" + } + } + } + } + }, + "state": { + "ignore_above": 1024, + "type": "keyword" + }, + "state_since": { + "type": "date" + }, + "sub_state": { + "ignore_above": 1024, + "type": "keyword" + }, + "unit_file": { + "properties": { + "state": { + "ignore_above": 1024, + "type": "keyword" + }, + "vendor_preset": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + }, + "socket": { + "properties": { + "local": { + "properties": { + "ip": { + "type": "ip" + }, + "port": { + "type": "long" + } + } + }, + "process": { + "properties": { + "cmdline": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "remote": { + "properties": { + "etld_plus_one": { + "ignore_above": 1024, + "type": "keyword" + }, + "host": { + "ignore_above": 1024, + "type": "keyword" + }, + "host_error": { + "ignore_above": 1024, + "type": "keyword" + }, + "ip": { + "type": "ip" + }, + "port": { + "type": "long" + } + } + }, + "summary": { + "properties": { + "all": { + "properties": { + "count": { + "type": "long" + }, + "listening": { + "type": "long" + } + } + }, + "tcp": { + "properties": { + "all": { + "properties": { + "close_wait": { + "type": "long" + }, + "closing": { + "type": "long" + }, + "count": { + "type": "long" + }, + "established": { + "type": "long" + }, + "fin_wait1": { + "type": "long" + }, + "fin_wait2": { + "type": "long" + }, + "last_ack": { + "type": "long" + }, + "listening": { + "type": "long" + }, + "orphan": { + "type": "long" + }, + "syn_recv": { + "type": "long" + }, + "syn_sent": { + "type": "long" + }, + "time_wait": { + "type": "long" + } + } + }, + "memory": { + "type": "long" + } + } + }, + "udp": { + "properties": { + "all": { + "properties": { + "count": { + "type": "long" + } + } + }, + "memory": { + "type": "long" + } + } + } + } + } + } + }, + "uptime": { + "properties": { + "duration": { + "properties": { + "ms": { + "type": "long" + } + } + } + } + }, + "users": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "leader": { + "type": "long" + }, + "path": { + "ignore_above": 1024, + "type": "keyword" + }, + "remote": { + "type": "boolean" + }, + "remote_host": { + "ignore_above": 1024, + "type": "keyword" + }, + "scope": { + "ignore_above": 1024, + "type": "keyword" + }, + "seat": { + "ignore_above": 1024, + "type": "keyword" + }, + "service": { + "ignore_above": 1024, + "type": "keyword" + }, + "state": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + }, + "systemd": { + "properties": { + "fragment_path": { + "ignore_above": 1024, + "type": "keyword" + }, + "unit": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "tags": { + "ignore_above": 1024, + "type": "keyword" + }, + "threat": { + "properties": { + "enrichments": { + "properties": { + "indicator": { + "properties": { + "as": { + "properties": { + "number": { + "type": "long" + }, + "organization": { + "properties": { + "name": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + }, + "confidence": { + "ignore_above": 1024, + "type": "keyword" + }, + "description": { + "ignore_above": 1024, + "type": "keyword" + }, + "email": { + "properties": { + "address": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "file": { + "properties": { + "accessed": { + "type": "date" + }, + "attributes": { + "ignore_above": 1024, + "type": "keyword" + }, + "code_signature": { + "properties": { + "digest_algorithm": { + "ignore_above": 1024, + "type": "keyword" + }, + "exists": { + "type": "boolean" + }, + "signing_id": { + "ignore_above": 1024, + "type": "keyword" + }, + "status": { + "ignore_above": 1024, + "type": "keyword" + }, + "subject_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "team_id": { + "ignore_above": 1024, + "type": "keyword" + }, + "timestamp": { + "type": "date" + }, + "trusted": { + "type": "boolean" + }, + "valid": { + "type": "boolean" + } + } + }, + "created": { + "type": "date" + }, + "ctime": { + "type": "date" + }, + "device": { + "ignore_above": 1024, + "type": "keyword" + }, + "directory": { + "ignore_above": 1024, + "type": "keyword" + }, + "drive_letter": { + "ignore_above": 1, + "type": "keyword" + }, + "elf": { + "properties": { + "architecture": { + "ignore_above": 1024, + "type": "keyword" + }, + "byte_order": { + "ignore_above": 1024, + "type": "keyword" + }, + "cpu_type": { + "ignore_above": 1024, + "type": "keyword" + }, + "creation_date": { + "type": "date" + }, + "exports": { + "type": "flattened" + }, + "header": { + "properties": { + "abi_version": { + "ignore_above": 1024, + "type": "keyword" + }, + "class": { + "ignore_above": 1024, + "type": "keyword" + }, + "data": { + "ignore_above": 1024, + "type": "keyword" + }, + "entrypoint": { + "type": "long" + }, + "object_version": { + "ignore_above": 1024, + "type": "keyword" + }, + "os_abi": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "imports": { + "type": "flattened" + }, + "sections": { + "properties": { + "chi2": { + "type": "long" + }, + "entropy": { + "type": "long" + }, + "flags": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "physical_offset": { + "ignore_above": 1024, + "type": "keyword" + }, + "physical_size": { + "type": "long" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + }, + "virtual_address": { + "type": "long" + }, + "virtual_size": { + "type": "long" + } + }, + "type": "nested" + }, + "segments": { + "properties": { + "sections": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + } + }, + "type": "nested" + }, + "shared_libraries": { + "ignore_above": 1024, + "type": "keyword" + }, + "telfhash": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "extension": { + "ignore_above": 1024, + "type": "keyword" + }, + "fork_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "gid": { + "ignore_above": 1024, + "type": "keyword" + }, + "group": { + "ignore_above": 1024, + "type": "keyword" + }, + "hash": { + "properties": { + "md5": { + "ignore_above": 1024, + "type": "keyword" + }, + "sha1": { + "ignore_above": 1024, + "type": "keyword" + }, + "sha256": { + "ignore_above": 1024, + "type": "keyword" + }, + "sha512": { + "ignore_above": 1024, + "type": "keyword" + }, + "ssdeep": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "inode": { + "ignore_above": 1024, + "type": "keyword" + }, + "mime_type": { + "ignore_above": 1024, + "type": "keyword" + }, + "mode": { + "ignore_above": 1024, + "type": "keyword" + }, + "mtime": { + "type": "date" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "owner": { + "ignore_above": 1024, + "type": "keyword" + }, + "path": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "pe": { + "properties": { + "architecture": { + "ignore_above": 1024, + "type": "keyword" + }, + "company": { + "ignore_above": 1024, + "type": "keyword" + }, + "description": { + "ignore_above": 1024, + "type": "keyword" + }, + "file_version": { + "ignore_above": 1024, + "type": "keyword" + }, + "imphash": { + "ignore_above": 1024, + "type": "keyword" + }, + "original_file_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "product": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "size": { + "type": "long" + }, + "target_path": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + }, + "uid": { + "ignore_above": 1024, + "type": "keyword" + }, + "x509": { + "properties": { + "alternative_names": { + "ignore_above": 1024, + "type": "keyword" + }, + "issuer": { + "properties": { + "common_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "country": { + "ignore_above": 1024, + "type": "keyword" + }, + "distinguished_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "locality": { + "ignore_above": 1024, + "type": "keyword" + }, + "organization": { + "ignore_above": 1024, + "type": "keyword" + }, + "organizational_unit": { + "ignore_above": 1024, + "type": "keyword" + }, + "state_or_province": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "not_after": { + "type": "date" + }, + "not_before": { + "type": "date" + }, + "public_key_algorithm": { + "ignore_above": 1024, + "type": "keyword" + }, + "public_key_curve": { + "ignore_above": 1024, + "type": "keyword" + }, + "public_key_exponent": { + "doc_values": false, + "index": false, + "type": "long" + }, + "public_key_size": { + "type": "long" + }, + "serial_number": { + "ignore_above": 1024, + "type": "keyword" + }, + "signature_algorithm": { + "ignore_above": 1024, + "type": "keyword" + }, + "subject": { + "properties": { + "common_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "country": { + "ignore_above": 1024, + "type": "keyword" + }, + "distinguished_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "locality": { + "ignore_above": 1024, + "type": "keyword" + }, + "organization": { + "ignore_above": 1024, + "type": "keyword" + }, + "organizational_unit": { + "ignore_above": 1024, + "type": "keyword" + }, + "state_or_province": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "version_number": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + }, + "first_seen": { + "type": "date" + }, + "geo": { + "properties": { + "city_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "continent_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "continent_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "country_iso_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "country_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "location": { + "type": "geo_point" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "postal_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "region_iso_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "region_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "timezone": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "ip": { + "type": "ip" + }, + "last_seen": { + "type": "date" + }, + "marking": { + "properties": { + "tlp": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "modified_at": { + "type": "date" + }, + "port": { + "type": "long" + }, + "provider": { + "ignore_above": 1024, + "type": "keyword" + }, + "reference": { + "ignore_above": 1024, + "type": "keyword" + }, + "registry": { + "properties": { + "data": { + "properties": { + "bytes": { + "ignore_above": 1024, + "type": "keyword" + }, + "strings": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "hive": { + "ignore_above": 1024, + "type": "keyword" + }, + "key": { + "ignore_above": 1024, + "type": "keyword" + }, + "path": { + "ignore_above": 1024, + "type": "keyword" + }, + "value": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "scanner_stats": { + "type": "long" + }, + "sightings": { + "type": "long" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + }, + "url": { + "properties": { + "domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "extension": { + "ignore_above": 1024, + "type": "keyword" + }, + "fragment": { + "ignore_above": 1024, + "type": "keyword" + }, + "full": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "original": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "password": { + "ignore_above": 1024, + "type": "keyword" + }, + "path": { + "ignore_above": 1024, + "type": "keyword" + }, + "port": { + "type": "long" + }, + "query": { + "ignore_above": 1024, + "type": "keyword" + }, + "registered_domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "scheme": { + "ignore_above": 1024, + "type": "keyword" + }, + "subdomain": { + "ignore_above": 1024, + "type": "keyword" + }, + "top_level_domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "username": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "x509": { + "properties": { + "alternative_names": { + "ignore_above": 1024, + "type": "keyword" + }, + "issuer": { + "properties": { + "common_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "country": { + "ignore_above": 1024, + "type": "keyword" + }, + "distinguished_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "locality": { + "ignore_above": 1024, + "type": "keyword" + }, + "organization": { + "ignore_above": 1024, + "type": "keyword" + }, + "organizational_unit": { + "ignore_above": 1024, + "type": "keyword" + }, + "state_or_province": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "not_after": { + "type": "date" + }, + "not_before": { + "type": "date" + }, + "public_key_algorithm": { + "ignore_above": 1024, + "type": "keyword" + }, + "public_key_curve": { + "ignore_above": 1024, + "type": "keyword" + }, + "public_key_exponent": { + "doc_values": false, + "index": false, + "type": "long" + }, + "public_key_size": { + "type": "long" + }, + "serial_number": { + "ignore_above": 1024, + "type": "keyword" + }, + "signature_algorithm": { + "ignore_above": 1024, + "type": "keyword" + }, + "subject": { + "properties": { + "common_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "country": { + "ignore_above": 1024, + "type": "keyword" + }, + "distinguished_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "locality": { + "ignore_above": 1024, + "type": "keyword" + }, + "organization": { + "ignore_above": 1024, + "type": "keyword" + }, + "organizational_unit": { + "ignore_above": 1024, + "type": "keyword" + }, + "state_or_province": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "version_number": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + }, + "type": "object" + }, + "matched": { + "properties": { + "atomic": { + "ignore_above": 1024, + "type": "keyword" + }, + "field": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "index": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + }, + "type": "nested" + }, + "framework": { + "ignore_above": 1024, + "type": "keyword" + }, + "group": { + "properties": { + "alias": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "reference": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "indicator": { + "properties": { + "as": { + "properties": { + "number": { + "type": "long" + }, + "organization": { + "properties": { + "name": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + }, + "confidence": { + "ignore_above": 1024, + "type": "keyword" + }, + "description": { + "ignore_above": 1024, + "type": "keyword" + }, + "email": { + "properties": { + "address": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "file": { + "properties": { + "accessed": { + "type": "date" + }, + "attributes": { + "ignore_above": 1024, + "type": "keyword" + }, + "code_signature": { + "properties": { + "digest_algorithm": { + "ignore_above": 1024, + "type": "keyword" + }, + "exists": { + "type": "boolean" + }, + "signing_id": { + "ignore_above": 1024, + "type": "keyword" + }, + "status": { + "ignore_above": 1024, + "type": "keyword" + }, + "subject_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "team_id": { + "ignore_above": 1024, + "type": "keyword" + }, + "timestamp": { + "type": "date" + }, + "trusted": { + "type": "boolean" + }, + "valid": { + "type": "boolean" + } + } + }, + "created": { + "type": "date" + }, + "ctime": { + "type": "date" + }, + "device": { + "ignore_above": 1024, + "type": "keyword" + }, + "directory": { + "ignore_above": 1024, + "type": "keyword" + }, + "drive_letter": { + "ignore_above": 1, + "type": "keyword" + }, + "elf": { + "properties": { + "architecture": { + "ignore_above": 1024, + "type": "keyword" + }, + "byte_order": { + "ignore_above": 1024, + "type": "keyword" + }, + "cpu_type": { + "ignore_above": 1024, + "type": "keyword" + }, + "creation_date": { + "type": "date" + }, + "exports": { + "type": "flattened" + }, + "header": { + "properties": { + "abi_version": { + "ignore_above": 1024, + "type": "keyword" + }, + "class": { + "ignore_above": 1024, + "type": "keyword" + }, + "data": { + "ignore_above": 1024, + "type": "keyword" + }, + "entrypoint": { + "type": "long" + }, + "object_version": { + "ignore_above": 1024, + "type": "keyword" + }, + "os_abi": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "imports": { + "type": "flattened" + }, + "sections": { + "properties": { + "chi2": { + "type": "long" + }, + "entropy": { + "type": "long" + }, + "flags": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "physical_offset": { + "ignore_above": 1024, + "type": "keyword" + }, + "physical_size": { + "type": "long" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + }, + "virtual_address": { + "type": "long" + }, + "virtual_size": { + "type": "long" + } + }, + "type": "nested" + }, + "segments": { + "properties": { + "sections": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + } + }, + "type": "nested" + }, + "shared_libraries": { + "ignore_above": 1024, + "type": "keyword" + }, + "telfhash": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "extension": { + "ignore_above": 1024, + "type": "keyword" + }, + "fork_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "gid": { + "ignore_above": 1024, + "type": "keyword" + }, + "group": { + "ignore_above": 1024, + "type": "keyword" + }, + "hash": { + "properties": { + "md5": { + "ignore_above": 1024, + "type": "keyword" + }, + "sha1": { + "ignore_above": 1024, + "type": "keyword" + }, + "sha256": { + "ignore_above": 1024, + "type": "keyword" + }, + "sha512": { + "ignore_above": 1024, + "type": "keyword" + }, + "ssdeep": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "inode": { + "ignore_above": 1024, + "type": "keyword" + }, + "mime_type": { + "ignore_above": 1024, + "type": "keyword" + }, + "mode": { + "ignore_above": 1024, + "type": "keyword" + }, + "mtime": { + "type": "date" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "owner": { + "ignore_above": 1024, + "type": "keyword" + }, + "path": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "pe": { + "properties": { + "architecture": { + "ignore_above": 1024, + "type": "keyword" + }, + "company": { + "ignore_above": 1024, + "type": "keyword" + }, + "description": { + "ignore_above": 1024, + "type": "keyword" + }, + "file_version": { + "ignore_above": 1024, + "type": "keyword" + }, + "imphash": { + "ignore_above": 1024, + "type": "keyword" + }, + "original_file_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "product": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "size": { + "type": "long" + }, + "target_path": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + }, + "uid": { + "ignore_above": 1024, + "type": "keyword" + }, + "x509": { + "properties": { + "alternative_names": { + "ignore_above": 1024, + "type": "keyword" + }, + "issuer": { + "properties": { + "common_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "country": { + "ignore_above": 1024, + "type": "keyword" + }, + "distinguished_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "locality": { + "ignore_above": 1024, + "type": "keyword" + }, + "organization": { + "ignore_above": 1024, + "type": "keyword" + }, + "organizational_unit": { + "ignore_above": 1024, + "type": "keyword" + }, + "state_or_province": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "not_after": { + "type": "date" + }, + "not_before": { + "type": "date" + }, + "public_key_algorithm": { + "ignore_above": 1024, + "type": "keyword" + }, + "public_key_curve": { + "ignore_above": 1024, + "type": "keyword" + }, + "public_key_exponent": { + "doc_values": false, + "index": false, + "type": "long" + }, + "public_key_size": { + "type": "long" + }, + "serial_number": { + "ignore_above": 1024, + "type": "keyword" + }, + "signature_algorithm": { + "ignore_above": 1024, + "type": "keyword" + }, + "subject": { + "properties": { + "common_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "country": { + "ignore_above": 1024, + "type": "keyword" + }, + "distinguished_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "locality": { + "ignore_above": 1024, + "type": "keyword" + }, + "organization": { + "ignore_above": 1024, + "type": "keyword" + }, + "organizational_unit": { + "ignore_above": 1024, + "type": "keyword" + }, + "state_or_province": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "version_number": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + }, + "first_seen": { + "type": "date" + }, + "geo": { + "properties": { + "city_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "continent_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "continent_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "country_iso_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "country_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "location": { + "type": "geo_point" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "postal_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "region_iso_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "region_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "timezone": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "ip": { + "type": "ip" + }, + "last_seen": { + "type": "date" + }, + "marking": { + "properties": { + "tlp": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "modified_at": { + "type": "date" + }, + "port": { + "type": "long" + }, + "provider": { + "ignore_above": 1024, + "type": "keyword" + }, + "reference": { + "ignore_above": 1024, + "type": "keyword" + }, + "registry": { + "properties": { + "data": { + "properties": { + "bytes": { + "ignore_above": 1024, + "type": "keyword" + }, + "strings": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "hive": { + "ignore_above": 1024, + "type": "keyword" + }, + "key": { + "ignore_above": 1024, + "type": "keyword" + }, + "path": { + "ignore_above": 1024, + "type": "keyword" + }, + "value": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "scanner_stats": { + "type": "long" + }, + "sightings": { + "type": "long" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + }, + "url": { + "properties": { + "domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "extension": { + "ignore_above": 1024, + "type": "keyword" + }, + "fragment": { + "ignore_above": 1024, + "type": "keyword" + }, + "full": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "original": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "password": { + "ignore_above": 1024, + "type": "keyword" + }, + "path": { + "ignore_above": 1024, + "type": "keyword" + }, + "port": { + "type": "long" + }, + "query": { + "ignore_above": 1024, + "type": "keyword" + }, + "registered_domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "scheme": { + "ignore_above": 1024, + "type": "keyword" + }, + "subdomain": { + "ignore_above": 1024, + "type": "keyword" + }, + "top_level_domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "username": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "x509": { + "properties": { + "alternative_names": { + "ignore_above": 1024, + "type": "keyword" + }, + "issuer": { + "properties": { + "common_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "country": { + "ignore_above": 1024, + "type": "keyword" + }, + "distinguished_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "locality": { + "ignore_above": 1024, + "type": "keyword" + }, + "organization": { + "ignore_above": 1024, + "type": "keyword" + }, + "organizational_unit": { + "ignore_above": 1024, + "type": "keyword" + }, + "state_or_province": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "not_after": { + "type": "date" + }, + "not_before": { + "type": "date" + }, + "public_key_algorithm": { + "ignore_above": 1024, + "type": "keyword" + }, + "public_key_curve": { + "ignore_above": 1024, + "type": "keyword" + }, + "public_key_exponent": { + "doc_values": false, + "index": false, + "type": "long" + }, + "public_key_size": { + "type": "long" + }, + "serial_number": { + "ignore_above": 1024, + "type": "keyword" + }, + "signature_algorithm": { + "ignore_above": 1024, + "type": "keyword" + }, + "subject": { + "properties": { + "common_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "country": { + "ignore_above": 1024, + "type": "keyword" + }, + "distinguished_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "locality": { + "ignore_above": 1024, + "type": "keyword" + }, + "organization": { + "ignore_above": 1024, + "type": "keyword" + }, + "organizational_unit": { + "ignore_above": 1024, + "type": "keyword" + }, + "state_or_province": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "version_number": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + }, + "software": { + "properties": { + "alias": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "platforms": { + "ignore_above": 1024, + "type": "keyword" + }, + "reference": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "tactic": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "reference": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "technique": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "reference": { + "ignore_above": 1024, + "type": "keyword" + }, + "subtechnique": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "reference": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + } + } + }, + "timeseries": { + "properties": { + "instance": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "timestamp": { + "path": "@timestamp", + "type": "alias" + }, + "tls": { + "properties": { + "cipher": { + "ignore_above": 1024, + "type": "keyword" + }, + "client": { + "properties": { + "certificate": { + "ignore_above": 1024, + "type": "keyword" + }, + "certificate_chain": { + "ignore_above": 1024, + "type": "keyword" + }, + "hash": { + "properties": { + "md5": { + "ignore_above": 1024, + "type": "keyword" + }, + "sha1": { + "ignore_above": 1024, + "type": "keyword" + }, + "sha256": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "issuer": { + "ignore_above": 1024, + "type": "keyword" + }, + "ja3": { + "ignore_above": 1024, + "type": "keyword" + }, + "not_after": { + "type": "date" + }, + "not_before": { + "type": "date" + }, + "server_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "subject": { + "ignore_above": 1024, + "type": "keyword" + }, + "supported_ciphers": { + "ignore_above": 1024, + "type": "keyword" + }, + "x509": { + "properties": { + "alternative_names": { + "ignore_above": 1024, + "type": "keyword" + }, + "issuer": { + "properties": { + "common_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "country": { + "ignore_above": 1024, + "type": "keyword" + }, + "distinguished_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "locality": { + "ignore_above": 1024, + "type": "keyword" + }, + "organization": { + "ignore_above": 1024, + "type": "keyword" + }, + "organizational_unit": { + "ignore_above": 1024, + "type": "keyword" + }, + "state_or_province": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "not_after": { + "type": "date" + }, + "not_before": { + "type": "date" + }, + "public_key_algorithm": { + "ignore_above": 1024, + "type": "keyword" + }, + "public_key_curve": { + "ignore_above": 1024, + "type": "keyword" + }, + "public_key_exponent": { + "doc_values": false, + "index": false, + "type": "long" + }, + "public_key_size": { + "type": "long" + }, + "serial_number": { + "ignore_above": 1024, + "type": "keyword" + }, + "signature_algorithm": { + "ignore_above": 1024, + "type": "keyword" + }, + "subject": { + "properties": { + "common_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "country": { + "ignore_above": 1024, + "type": "keyword" + }, + "distinguished_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "locality": { + "ignore_above": 1024, + "type": "keyword" + }, + "organization": { + "ignore_above": 1024, + "type": "keyword" + }, + "organizational_unit": { + "ignore_above": 1024, + "type": "keyword" + }, + "state_or_province": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "version_number": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + }, + "curve": { + "ignore_above": 1024, + "type": "keyword" + }, + "established": { + "type": "boolean" + }, + "next_protocol": { + "ignore_above": 1024, + "type": "keyword" + }, + "resumed": { + "type": "boolean" + }, + "server": { + "properties": { + "certificate": { + "ignore_above": 1024, + "type": "keyword" + }, + "certificate_chain": { + "ignore_above": 1024, + "type": "keyword" + }, + "hash": { + "properties": { + "md5": { + "ignore_above": 1024, + "type": "keyword" + }, + "sha1": { + "ignore_above": 1024, + "type": "keyword" + }, + "sha256": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "issuer": { + "ignore_above": 1024, + "type": "keyword" + }, + "ja3s": { + "ignore_above": 1024, + "type": "keyword" + }, + "not_after": { + "type": "date" + }, + "not_before": { + "type": "date" + }, + "subject": { + "ignore_above": 1024, + "type": "keyword" + }, + "x509": { + "properties": { + "alternative_names": { + "ignore_above": 1024, + "type": "keyword" + }, + "issuer": { + "properties": { + "common_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "country": { + "ignore_above": 1024, + "type": "keyword" + }, + "distinguished_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "locality": { + "ignore_above": 1024, + "type": "keyword" + }, + "organization": { + "ignore_above": 1024, + "type": "keyword" + }, + "organizational_unit": { + "ignore_above": 1024, + "type": "keyword" + }, + "state_or_province": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "not_after": { + "type": "date" + }, + "not_before": { + "type": "date" + }, + "public_key_algorithm": { + "ignore_above": 1024, + "type": "keyword" + }, + "public_key_curve": { + "ignore_above": 1024, + "type": "keyword" + }, + "public_key_exponent": { + "doc_values": false, + "index": false, + "type": "long" + }, + "public_key_size": { + "type": "long" + }, + "serial_number": { + "ignore_above": 1024, + "type": "keyword" + }, + "signature_algorithm": { + "ignore_above": 1024, + "type": "keyword" + }, + "subject": { + "properties": { + "common_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "country": { + "ignore_above": 1024, + "type": "keyword" + }, + "distinguished_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "locality": { + "ignore_above": 1024, + "type": "keyword" + }, + "organization": { + "ignore_above": 1024, + "type": "keyword" + }, + "organizational_unit": { + "ignore_above": 1024, + "type": "keyword" + }, + "state_or_province": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "version_number": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + }, + "version_protocol": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "trace": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "traefik": { + "properties": { + "health": { + "properties": { + "response": { + "properties": { + "avg_time": { + "properties": { + "us": { + "type": "long" + } + } + }, + "count": { + "type": "long" + }, + "status_codes": { + "properties": { + "*": { + "type": "object" + } + } + } + } + }, + "uptime": { + "properties": { + "sec": { + "type": "long" + } + } + } + } + } + } + }, + "transaction": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + }, + "url": { + "properties": { + "domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "extension": { + "ignore_above": 1024, + "type": "keyword" + }, + "fragment": { + "ignore_above": 1024, + "type": "keyword" + }, + "full": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "original": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "password": { + "ignore_above": 1024, + "type": "keyword" + }, + "path": { + "ignore_above": 1024, + "type": "keyword" + }, + "port": { + "type": "long" + }, + "query": { + "ignore_above": 1024, + "type": "keyword" + }, + "registered_domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "scheme": { + "ignore_above": 1024, + "type": "keyword" + }, + "subdomain": { + "ignore_above": 1024, + "type": "keyword" + }, + "top_level_domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "username": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "user": { + "properties": { + "changes": { + "properties": { + "domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "email": { + "ignore_above": 1024, + "type": "keyword" + }, + "full_name": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "group": { + "properties": { + "domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "hash": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "roles": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "effective": { + "properties": { + "domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "email": { + "ignore_above": 1024, + "type": "keyword" + }, + "full_name": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "group": { + "properties": { + "domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "hash": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "roles": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "email": { + "ignore_above": 1024, + "type": "keyword" + }, + "full_name": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "group": { + "properties": { + "domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "hash": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "roles": { + "ignore_above": 1024, + "type": "keyword" + }, + "target": { + "properties": { + "domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "email": { + "ignore_above": 1024, + "type": "keyword" + }, + "full_name": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "group": { + "properties": { + "domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "hash": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "roles": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + }, + "user_agent": { + "properties": { + "device": { + "properties": { + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "original": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "os": { + "properties": { + "family": { + "ignore_above": 1024, + "type": "keyword" + }, + "full": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "kernel": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "platform": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "uwsgi": { + "properties": { + "status": { + "properties": { + "core": { + "properties": { + "id": { + "type": "long" + }, + "read_errors": { + "type": "long" + }, + "requests": { + "properties": { + "offloaded": { + "type": "long" + }, + "routed": { + "type": "long" + }, + "static": { + "type": "long" + }, + "total": { + "type": "long" + } + } + }, + "worker_pid": { + "type": "long" + }, + "write_errors": { + "type": "long" + } + } + }, + "total": { + "properties": { + "exceptions": { + "type": "long" + }, + "pid": { + "type": "long" + }, + "read_errors": { + "type": "long" + }, + "requests": { + "type": "long" + }, + "write_errors": { + "type": "long" + } + } + }, + "worker": { + "properties": { + "accepting": { + "type": "long" + }, + "avg_rt": { + "type": "long" + }, + "delta_requests": { + "type": "long" + }, + "exceptions": { + "type": "long" + }, + "harakiri_count": { + "type": "long" + }, + "id": { + "type": "long" + }, + "pid": { + "type": "long" + }, + "requests": { + "type": "long" + }, + "respawn_count": { + "type": "long" + }, + "rss": { + "type": "long" + }, + "running_time": { + "type": "long" + }, + "signal_queue": { + "type": "long" + }, + "signals": { + "type": "long" + }, + "status": { + "ignore_above": 1024, + "type": "keyword" + }, + "tx": { + "type": "long" + }, + "vsz": { + "type": "long" + } + } + } + } + } + } + }, + "vlan": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "vsphere": { + "properties": { + "datastore": { + "properties": { + "capacity": { + "properties": { + "free": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "total": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "used": { + "properties": { + "bytes": { + "type": "long" + }, + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + } + } + }, + "fstype": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "host": { + "properties": { + "cpu": { + "properties": { + "free": { + "properties": { + "mhz": { + "type": "long" + } + } + }, + "total": { + "properties": { + "mhz": { + "type": "long" + } + } + }, + "used": { + "properties": { + "mhz": { + "type": "long" + } + } + } + } + }, + "memory": { + "properties": { + "free": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "total": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "used": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "network_names": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "virtualmachine": { + "properties": { + "cpu": { + "properties": { + "free": { + "properties": { + "mhz": { + "type": "long" + } + } + }, + "total": { + "properties": { + "mhz": { + "type": "long" + } + } + }, + "used": { + "properties": { + "mhz": { + "type": "long" + } + } + } + } + }, + "custom_fields": { + "type": "object" + }, + "host": { + "properties": { + "hostname": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "memory": { + "properties": { + "free": { + "properties": { + "guest": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "total": { + "properties": { + "guest": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "used": { + "properties": { + "guest": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "host": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + } + } + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "network_names": { + "ignore_above": 1024, + "type": "keyword" + }, + "os": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + }, + "vulnerability": { + "properties": { + "category": { + "ignore_above": 1024, + "type": "keyword" + }, + "classification": { + "ignore_above": 1024, + "type": "keyword" + }, + "description": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "enumeration": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "reference": { + "ignore_above": 1024, + "type": "keyword" + }, + "report_id": { + "ignore_above": 1024, + "type": "keyword" + }, + "scanner": { + "properties": { + "vendor": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "score": { + "properties": { + "base": { + "type": "float" + }, + "environmental": { + "type": "float" + }, + "temporal": { + "type": "float" + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "severity": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "windows": { + "properties": { + "perfmon": { + "properties": { + "instance": { + "ignore_above": 1024, + "type": "keyword" + }, + "metrics": { + "properties": { + "*": { + "properties": { + "*": { + "type": "object" + } + } + } + } + } + } + }, + "service": { + "properties": { + "display_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "exit_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "path_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "pid": { + "type": "long" + }, + "start_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "start_type": { + "ignore_above": 1024, + "type": "keyword" + }, + "state": { + "ignore_above": 1024, + "type": "keyword" + }, + "uptime": { + "properties": { + "ms": { + "type": "long" + } + } + } + } + } + } + }, + "x509": { + "properties": { + "alternative_names": { + "ignore_above": 1024, + "type": "keyword" + }, + "issuer": { + "properties": { + "common_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "country": { + "ignore_above": 1024, + "type": "keyword" + }, + "distinguished_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "locality": { + "ignore_above": 1024, + "type": "keyword" + }, + "organization": { + "ignore_above": 1024, + "type": "keyword" + }, + "organizational_unit": { + "ignore_above": 1024, + "type": "keyword" + }, + "state_or_province": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "not_after": { + "type": "date" + }, + "not_before": { + "type": "date" + }, + "public_key_algorithm": { + "ignore_above": 1024, + "type": "keyword" + }, + "public_key_curve": { + "ignore_above": 1024, + "type": "keyword" + }, + "public_key_exponent": { + "doc_values": false, + "index": false, + "type": "long" + }, + "public_key_size": { + "type": "long" + }, + "serial_number": { + "ignore_above": 1024, + "type": "keyword" + }, + "signature_algorithm": { + "ignore_above": 1024, + "type": "keyword" + }, + "subject": { + "properties": { + "common_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "country": { + "ignore_above": 1024, + "type": "keyword" + }, + "distinguished_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "locality": { + "ignore_above": 1024, + "type": "keyword" + }, + "organization": { + "ignore_above": 1024, + "type": "keyword" + }, + "organizational_unit": { + "ignore_above": 1024, + "type": "keyword" + }, + "state_or_province": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "version_number": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "zookeeper": { + "properties": { + "connection": { + "properties": { + "interest_ops": { + "type": "long" + }, + "queued": { + "type": "long" + }, + "received": { + "type": "long" + }, + "sent": { + "type": "long" + } + } + }, + "mntr": { + "properties": { + "approximate_data_size": { + "type": "long" + }, + "ephemerals_count": { + "type": "long" + }, + "followers": { + "type": "long" + }, + "hostname": { + "ignore_above": 1024, + "type": "keyword" + }, + "latency": { + "properties": { + "avg": { + "type": "long" + }, + "max": { + "type": "long" + }, + "min": { + "type": "long" + } + } + }, + "learners": { + "type": "long" + }, + "max_file_descriptor_count": { + "type": "long" + }, + "num_alive_connections": { + "type": "long" + }, + "open_file_descriptor_count": { + "type": "long" + }, + "outstanding_requests": { + "type": "long" + }, + "packets": { + "properties": { + "received": { + "type": "long" + }, + "sent": { + "type": "long" + } + } + }, + "pending_syncs": { + "type": "long" + }, + "server_state": { + "ignore_above": 1024, + "type": "keyword" + }, + "synced_followers": { + "type": "long" + }, + "version": { + "path": "service.version", + "type": "alias" + }, + "watch_count": { + "type": "long" + }, + "znode_count": { + "type": "long" + } + } + }, + "server": { + "properties": { + "connections": { + "type": "long" + }, + "count": { + "type": "long" + }, + "epoch": { + "type": "long" + }, + "latency": { + "properties": { + "avg": { + "type": "long" + }, + "max": { + "type": "long" + }, + "min": { + "type": "long" + } + } + }, + "mode": { + "ignore_above": 1024, + "type": "keyword" + }, + "node_count": { + "type": "long" + }, + "outstanding": { + "type": "long" + }, + "received": { + "type": "long" + }, + "sent": { + "type": "long" + }, + "version_date": { + "type": "date" + }, + "zxid": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + } + } + }, + "settings": { + "index": { + "mapping": { + "total_fields": { + "limit": "10000" + } + }, + "max_docvalue_fields_search": "200", + "query": { + "default_field": [ + "message", + "tags", + "agent.ephemeral_id", + "agent.id", + "agent.name", + "agent.type", + "agent.version", + "as.organization.name", + "client.address", + "client.as.organization.name", + "client.domain", + "client.geo.city_name", + "client.geo.continent_name", + "client.geo.country_iso_code", + "client.geo.country_name", + "client.geo.name", + "client.geo.region_iso_code", + "client.geo.region_name", + "client.mac", + "client.registered_domain", + "client.top_level_domain", + "client.user.domain", + "client.user.email", + "client.user.full_name", + "client.user.group.domain", + "client.user.group.id", + "client.user.group.name", + "client.user.hash", + "client.user.id", + "client.user.name", + "cloud.account.id", + "cloud.availability_zone", + "cloud.instance.id", + "cloud.instance.name", + "cloud.machine.type", + "cloud.provider", + "cloud.region", + "container.id", + "container.image.name", + "container.image.tag", + "container.name", + "container.runtime", + "destination.address", + "destination.as.organization.name", + "destination.domain", + "destination.geo.city_name", + "destination.geo.continent_name", + "destination.geo.country_iso_code", + "destination.geo.country_name", + "destination.geo.name", + "destination.geo.region_iso_code", + "destination.geo.region_name", + "destination.mac", + "destination.registered_domain", + "destination.top_level_domain", + "destination.user.domain", + "destination.user.email", + "destination.user.full_name", + "destination.user.group.domain", + "destination.user.group.id", + "destination.user.group.name", + "destination.user.hash", + "destination.user.id", + "destination.user.name", + "dns.answers.class", + "dns.answers.data", + "dns.answers.name", + "dns.answers.type", + "dns.header_flags", + "dns.id", + "dns.op_code", + "dns.question.class", + "dns.question.name", + "dns.question.registered_domain", + "dns.question.subdomain", + "dns.question.top_level_domain", + "dns.question.type", + "dns.response_code", + "dns.type", + "ecs.version", + "error.code", + "error.id", + "error.message", + "error.stack_trace", + "error.type", + "event.action", + "event.category", + "event.code", + "event.dataset", + "event.hash", + "event.id", + "event.kind", + "event.module", + "event.outcome", + "event.provider", + "event.timezone", + "event.type", + "file.device", + "file.directory", + "file.extension", + "file.gid", + "file.group", + "file.hash.md5", + "file.hash.sha1", + "file.hash.sha256", + "file.hash.sha512", + "file.inode", + "file.mode", + "file.name", + "file.owner", + "file.path", + "file.target_path", + "file.type", + "file.uid", + "geo.city_name", + "geo.continent_name", + "geo.country_iso_code", + "geo.country_name", + "geo.name", + "geo.region_iso_code", + "geo.region_name", + "group.domain", + "group.id", + "group.name", + "hash.md5", + "hash.sha1", + "hash.sha256", + "hash.sha512", + "host.architecture", + "host.geo.city_name", + "host.geo.continent_name", + "host.geo.country_iso_code", + "host.geo.country_name", + "host.geo.name", + "host.geo.region_iso_code", + "host.geo.region_name", + "host.hostname", + "host.id", + "host.mac", + "host.name", + "host.os.family", + "host.os.full", + "host.os.kernel", + "host.os.name", + "host.os.platform", + "host.os.version", + "host.type", + "http.request.body.content", + "http.request.method", + "http.request.referrer", + "http.response.body.content", + "http.version", + "log.level", + "log.logger", + "log.origin.file.name", + "log.origin.function", + "log.syslog.facility.name", + "log.syslog.severity.name", + "network.application", + "network.community_id", + "network.direction", + "network.iana_number", + "network.name", + "network.protocol", + "network.transport", + "network.type", + "observer.geo.city_name", + "observer.geo.continent_name", + "observer.geo.country_iso_code", + "observer.geo.country_name", + "observer.geo.name", + "observer.geo.region_iso_code", + "observer.geo.region_name", + "observer.hostname", + "observer.mac", + "observer.name", + "observer.os.family", + "observer.os.full", + "observer.os.kernel", + "observer.os.name", + "observer.os.platform", + "observer.os.version", + "observer.product", + "observer.serial_number", + "observer.type", + "observer.vendor", + "observer.version", + "organization.id", + "organization.name", + "os.family", + "os.full", + "os.kernel", + "os.name", + "os.platform", + "os.version", + "package.architecture", + "package.checksum", + "package.description", + "package.install_scope", + "package.license", + "package.name", + "package.path", + "package.version", + "process.args", + "process.executable", + "process.hash.md5", + "process.hash.sha1", + "process.hash.sha256", + "process.hash.sha512", + "process.name", + "process.thread.name", + "process.title", + "process.working_directory", + "server.address", + "server.as.organization.name", + "server.domain", + "server.geo.city_name", + "server.geo.continent_name", + "server.geo.country_iso_code", + "server.geo.country_name", + "server.geo.name", + "server.geo.region_iso_code", + "server.geo.region_name", + "server.mac", + "server.registered_domain", + "server.top_level_domain", + "server.user.domain", + "server.user.email", + "server.user.full_name", + "server.user.group.domain", + "server.user.group.id", + "server.user.group.name", + "server.user.hash", + "server.user.id", + "server.user.name", + "service.ephemeral_id", + "service.id", + "service.name", + "service.node.name", + "service.state", + "service.type", + "service.version", + "source.address", + "source.as.organization.name", + "source.domain", + "source.geo.city_name", + "source.geo.continent_name", + "source.geo.country_iso_code", + "source.geo.country_name", + "source.geo.name", + "source.geo.region_iso_code", + "source.geo.region_name", + "source.mac", + "source.registered_domain", + "source.top_level_domain", + "source.user.domain", + "source.user.email", + "source.user.full_name", + "source.user.group.domain", + "source.user.group.id", + "source.user.group.name", + "source.user.hash", + "source.user.id", + "source.user.name", + "threat.framework", + "threat.tactic.id", + "threat.tactic.name", + "threat.tactic.reference", + "threat.technique.id", + "threat.technique.name", + "threat.technique.reference", + "trace.id", + "transaction.id", + "url.domain", + "url.extension", + "url.fragment", + "url.full", + "url.original", + "url.password", + "url.path", + "url.query", + "url.registered_domain", + "url.scheme", + "url.top_level_domain", + "url.username", + "user.domain", + "user.email", + "user.full_name", + "user.group.domain", + "user.group.id", + "user.group.name", + "user.hash", + "user.id", + "user.name", + "user_agent.device.name", + "user_agent.name", + "user_agent.original.text", + "user_agent.original", + "user_agent.os.family", + "user_agent.os.full", + "user_agent.os.kernel", + "user_agent.os.name", + "user_agent.os.platform", + "user_agent.os.version", + "user_agent.version", + "cloud.image.id", + "host.os.build", + "host.os.codename", + "kubernetes.pod.name", + "kubernetes.pod.uid", + "kubernetes.namespace", + "kubernetes.node.name", + "kubernetes.node.hostname", + "kubernetes.replicaset.name", + "kubernetes.deployment.name", + "kubernetes.statefulset.name", + "kubernetes.container.name", + "process.owner.id", + "process.owner.name.text", + "process.owner.name", + "jolokia.agent.version", + "jolokia.agent.id", + "jolokia.server.product", + "jolokia.server.version", + "jolokia.server.vendor", + "jolokia.url", + "fields.*" + ] + }, + "refresh_interval": "5s" + } + } + } + } + } +} \ No newline at end of file diff --git a/x-pack/test_serverless/api_integration/test_suites/observability/config.ts b/x-pack/test_serverless/api_integration/test_suites/observability/config.ts index 9901c9736b9aa..a9484f1aee7bf 100644 --- a/x-pack/test_serverless/api_integration/test_suites/observability/config.ts +++ b/x-pack/test_serverless/api_integration/test_suites/observability/config.ts @@ -20,4 +20,5 @@ export default createTestConfig({ // include settings from project controller // https://github.com/elastic/project-controller/blob/main/internal/project/observability/config/elasticsearch.yml esServerArgs: ['xpack.ml.dfa.enabled=false', 'xpack.ml.nlp.enabled=false'], + kbnServerArgs: ['--xpack.infra.enabled=true'], }); diff --git a/x-pack/test_serverless/api_integration/test_suites/observability/index.ts b/x-pack/test_serverless/api_integration/test_suites/observability/index.ts index 847b85c9c2e2e..9ff9af85e855b 100644 --- a/x-pack/test_serverless/api_integration/test_suites/observability/index.ts +++ b/x-pack/test_serverless/api_integration/test_suites/observability/index.ts @@ -14,5 +14,6 @@ export default function ({ loadTestFile }: FtrProviderContext) { loadTestFile(require.resolve('./telemetry/telemetry_config')); loadTestFile(require.resolve('./apm_api_integration/feature_flags.ts')); loadTestFile(require.resolve('./cases')); + loadTestFile(require.resolve('./infra')); }); } diff --git a/x-pack/test_serverless/api_integration/test_suites/observability/infra/constants.ts b/x-pack/test_serverless/api_integration/test_suites/observability/infra/constants.ts new file mode 100644 index 0000000000000..368ff72a388c2 --- /dev/null +++ b/x-pack/test_serverless/api_integration/test_suites/observability/infra/constants.ts @@ -0,0 +1,19 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export const DATES = { + serverlessTestingHost: { + min: 1679873400139, + max: 1680027672003, + }, + serverlessTestingHostDateString: { + min: '2023-03-26T23:30:00.139Z', + max: '2023-03-28T23:30:00.139Z', + }, +}; + +export const ARCHIVE_NAME = 'x-pack/test/functional/es_archives/infra/serverless_testing_host'; diff --git a/x-pack/test_serverless/api_integration/test_suites/observability/infra/index.ts b/x-pack/test_serverless/api_integration/test_suites/observability/infra/index.ts new file mode 100644 index 0000000000000..7769ffa652e6f --- /dev/null +++ b/x-pack/test_serverless/api_integration/test_suites/observability/infra/index.ts @@ -0,0 +1,17 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { FtrProviderContext } from '../../../ftr_provider_context'; + +export default function ({ loadTestFile }: FtrProviderContext) { + describe('Infra UI', function () { + loadTestFile(require.resolve('./metadata')); + loadTestFile(require.resolve('./snapshot')); + loadTestFile(require.resolve('./processes')); + loadTestFile(require.resolve('./infra')); + }); +} diff --git a/x-pack/test_serverless/api_integration/test_suites/observability/infra/infra.ts b/x-pack/test_serverless/api_integration/test_suites/observability/infra/infra.ts new file mode 100644 index 0000000000000..0d8db0d0c0783 --- /dev/null +++ b/x-pack/test_serverless/api_integration/test_suites/observability/infra/infra.ts @@ -0,0 +1,142 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import expect from '@kbn/expect'; +import type { + GetInfraMetricsRequestBodyPayload, + GetInfraMetricsResponsePayload, +} from '@kbn/infra-plugin/common/http_api'; + +import { kbnTestConfig, kibanaTestSuperuserServerless } from '@kbn/test'; +import type { FtrProviderContext } from '../../../ftr_provider_context'; + +import { DATES, ARCHIVE_NAME } from './constants'; + +const timeRange = { + from: DATES.serverlessTestingHostDateString.min, + to: DATES.serverlessTestingHostDateString.max, +}; + +export default function ({ getService }: FtrProviderContext) { + const esArchiver = getService('esArchiver'); + const supertest = getService('supertest'); + const username = kbnTestConfig.getUrlParts(kibanaTestSuperuserServerless).username || ''; + const password = kbnTestConfig.getUrlParts(kibanaTestSuperuserServerless).password || ''; + + const fetchInfraHosts = async ( + body: GetInfraMetricsRequestBodyPayload + ): Promise => { + const response = await supertest + .post('/api/metrics/infra') + .set('kbn-xsrf', 'foo') + .set('x-elastic-internal-origin', 'foo') + .auth(username, password) + .send(body) + .expect(200); + return response.body; + }; + + describe('API /metrics/infra', () => { + describe('works', () => { + describe('with host asset', () => { + before(() => esArchiver.load(ARCHIVE_NAME)); + after(() => esArchiver.unload(ARCHIVE_NAME)); + + it('received data', async () => { + const infraHosts = await fetchInfraHosts({ + type: 'host', + limit: 100, + metrics: [ + { + type: 'rx', + }, + { + type: 'tx', + }, + { + type: 'memory', + }, + { + type: 'cpu', + }, + { + type: 'diskSpaceUsage', + }, + { + type: 'memoryFree', + }, + ], + query: { + bool: { + must: [], + filter: [], + should: [], + must_not: [], + }, + }, + range: { + from: timeRange.from, + to: timeRange.to, + }, + sourceId: 'default', + }); + + if (infraHosts) { + const { nodes } = infraHosts; + expect(nodes.length).to.equal(1); + const firstNode = nodes[0]; + expect(firstNode).to.eql({ + metadata: [ + { + name: 'host.os.name', + value: 'macOS', + }, + { + name: 'cloud.provider', + value: null, + }, + { + name: 'host.ip', + value: '192.168.1.79', + }, + ], + metrics: [ + { + name: 'rx', + value: 133425.6, + }, + { + name: 'tx', + value: 135892.3, + }, + { + name: 'memory', + value: 0.9490000000000001, + }, + { + name: 'cpu', + value: 1.021, + }, + { + name: 'diskSpaceUsage', + value: 0, + }, + { + name: 'memoryFree', + value: 1753829376, + }, + ], + name: 'serverless-host', + }); + } else { + throw new Error('Hosts response should not be empty'); + } + }); + }); + }); + }); +} diff --git a/x-pack/test_serverless/api_integration/test_suites/observability/infra/metadata.ts b/x-pack/test_serverless/api_integration/test_suites/observability/infra/metadata.ts new file mode 100644 index 0000000000000..ee75931cb528a --- /dev/null +++ b/x-pack/test_serverless/api_integration/test_suites/observability/infra/metadata.ts @@ -0,0 +1,120 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import expect from '@kbn/expect'; +import type { + InfraMetadata, + InfraMetadataRequest, +} from '@kbn/infra-plugin/common/http_api/metadata_api'; +import { kbnTestConfig, kibanaTestSuperuserServerless } from '@kbn/test'; +import type { FtrProviderContext } from '../../../ftr_provider_context'; + +import { DATES, ARCHIVE_NAME } from './constants'; + +const timeRange = { + from: DATES.serverlessTestingHost.min, + to: DATES.serverlessTestingHost.max, +}; + +export default function ({ getService }: FtrProviderContext) { + const esArchiver = getService('esArchiver'); + const supertest = getService('supertest'); + const username = kbnTestConfig.getUrlParts(kibanaTestSuperuserServerless).username || ''; + const password = kbnTestConfig.getUrlParts(kibanaTestSuperuserServerless).password || ''; + + const fetchMetadata = async (body: InfraMetadataRequest): Promise => { + const response = await supertest + .post('/api/infra/metadata') + .set('kbn-xsrf', 'foo') + .set('x-elastic-internal-origin', 'foo') + .auth(username, password) + .send(body) + .expect(200); + return response.body; + }; + + describe('API /infra/metadata', () => { + describe('works', () => { + describe('Host asset type', () => { + before(() => esArchiver.load(ARCHIVE_NAME)); + after(() => esArchiver.unload(ARCHIVE_NAME)); + + it('with serverless existing host', async () => { + const metadata = await fetchMetadata({ + sourceId: 'default', + nodeId: 'serverless-host', + nodeType: 'host', + timeRange, + }); + + if (metadata) { + expect(metadata.features.length).to.be(4); + expect(metadata.name).to.equal('serverless-host'); + expect(new Date(metadata.info?.timestamp ?? '')?.getTime()).to.be.above(timeRange.from); + expect(new Date(metadata.info?.timestamp ?? '')?.getTime()).to.be.below(timeRange.to); + expect(metadata.info?.agent).to.eql({ + ephemeral_id: '64624d22-1eeb-4267-ac92-b11a1d09c0ba', + id: '3ce5be59-af6a-4668-8f6d-90282a3f820e', + name: 'serverless-host', + type: 'metricbeat', + version: '8.5.0', + }); + expect(metadata.info?.host).to.eql({ + hostname: 'serverless-host', + os: { + build: '22D68', + family: 'darwin', + kernel: '22.3.0', + name: 'macOS', + platform: 'darwin', + type: 'macos', + version: '13.2.1', + }, + id: '47B6A5A5-3134-516A-831B-A9BCA597470C', + ip: [ + 'fe80::3cdd:4bff:fe37:4ce2', + 'fe80::3cdd:4bff:fe37:4ce3', + 'fe80::3cdd:4bff:fe37:4ce1', + 'fe80::bcd0:74ff:fe6e:f2d2', + 'fe80::10cb:77ec:4d5f:e2c7', + 'fd00::47e:cfa4:41d8:c1f6', + '192.168.1.79', + '2003:cd:373d:9600:1f:71d7:cd48:92d4', + '2003:cd:373d:9600:98e0:7ccf:7d02:9ca', + '2003:cd:373d:9600:58a5:f02:405:6cd8', + '2003:cd:373d:9600:f068:9ad1:7ed4:d706', + 'fe80::1ca7:1dff:fe98:2d66', + 'fe80::1ca7:1dff:fe98:2d66', + 'fe80::564c:747a:5670:520c', + 'fe80::205d:bb00:46bf:10e1', + 'fe80::ce81:b1c:bd2c:69e', + ], + mac: [ + '1E-A7-1D-98-2D-66', + '36-5D-68-05-71-00', + '36-5D-68-05-71-04', + '36-5D-68-05-71-08', + '3E-DD-4B-37-4C-C1', + '3E-DD-4B-37-4C-C2', + '3E-DD-4B-37-4C-C3', + '3E-DD-4B-37-4C-E1', + '3E-DD-4B-37-4C-E2', + '3E-DD-4B-37-4C-E3', + 'BC-D0-74-6E-F2-D2', + 'BE-D0-74-6E-F2-D2', + ], + name: 'serverless-host', + architecture: 'arm64', + }); + } else { + throw new Error('Metadata should never be empty'); + } + }); + }); + }); + }); +} diff --git a/x-pack/test_serverless/api_integration/test_suites/observability/infra/processes.ts b/x-pack/test_serverless/api_integration/test_suites/observability/infra/processes.ts new file mode 100644 index 0000000000000..ca34a7f79ad0a --- /dev/null +++ b/x-pack/test_serverless/api_integration/test_suites/observability/infra/processes.ts @@ -0,0 +1,61 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import expect from '@kbn/expect'; +import { + ProcessListAPIRequestRT, + ProcessListAPIResponseRT, +} from '@kbn/infra-plugin/common/http_api/host_details/process_list'; +import { decodeOrThrow } from '@kbn/infra-plugin/common/runtime_types'; +import { kbnTestConfig, kibanaTestSuperuserServerless } from '@kbn/test'; +import type { FtrProviderContext } from '../../../ftr_provider_context'; +import { DATES, ARCHIVE_NAME } from './constants'; + +export default function ({ getService }: FtrProviderContext) { + const esArchiver = getService('esArchiver'); + const supertest = getService('supertest'); + + describe('API /metrics/process_list', () => { + const username = kbnTestConfig.getUrlParts(kibanaTestSuperuserServerless).username || ''; + const password = kbnTestConfig.getUrlParts(kibanaTestSuperuserServerless).password || ''; + + before(() => esArchiver.load(ARCHIVE_NAME)); + after(() => esArchiver.unload(ARCHIVE_NAME)); + + it('works', async () => { + const response = await supertest + .post('/api/metrics/process_list') + .set('kbn-xsrf', 'foo') + .set('x-elastic-internal-origin', 'foo') + .auth(username, password) + .send( + ProcessListAPIRequestRT.encode({ + hostTerm: { + 'host.name': 'serverless-host', + }, + indexPattern: 'metrics-*,metricbeat-*', + to: DATES.serverlessTestingHost.max, + sortBy: { + name: 'cpu', + isAscending: false, + }, + searchFilter: [ + { + match_all: {}, + }, + ], + }) + ) + .expect(200); + + const { processList, summary } = decodeOrThrow(ProcessListAPIResponseRT)(response.body); + + expect(processList.length).to.be(3); + expect(summary.total).to.be(313); + }); + }); +} diff --git a/x-pack/test_serverless/api_integration/test_suites/observability/infra/snapshot.ts b/x-pack/test_serverless/api_integration/test_suites/observability/infra/snapshot.ts new file mode 100644 index 0000000000000..36c73b6388453 --- /dev/null +++ b/x-pack/test_serverless/api_integration/test_suites/observability/infra/snapshot.ts @@ -0,0 +1,79 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import expect from '@kbn/expect'; +import type { + SnapshotNodeResponse, + SnapshotRequest, +} from '@kbn/infra-plugin/common/http_api/snapshot_api'; +import { kbnTestConfig, kibanaTestSuperuserServerless } from '@kbn/test'; +import type { FtrProviderContext } from '../../../ftr_provider_context'; + +import { DATES, ARCHIVE_NAME } from './constants'; + +export default function ({ getService }: FtrProviderContext) { + const esArchiver = getService('esArchiver'); + const supertest = getService('supertest'); + const fetchSnapshot = async ( + body: SnapshotRequest + ): Promise => { + const username = kbnTestConfig.getUrlParts(kibanaTestSuperuserServerless).username || ''; + const password = kbnTestConfig.getUrlParts(kibanaTestSuperuserServerless).password || ''; + const response = await supertest + .post('/api/metrics/snapshot') + .set('kbn-xsrf', 'foo') + .set('x-elastic-internal-origin', 'foo') + .auth(username, password) + .send(body) + .expect(200); + return response.body; + }; + + describe('API /metrics/snapshot', () => { + describe('Snapshot nodes', () => { + const { min, max } = DATES.serverlessTestingHost; + before(() => esArchiver.load(ARCHIVE_NAME)); + after(() => esArchiver.unload(ARCHIVE_NAME)); + + it('should work', async () => { + const snapshot = await fetchSnapshot({ + sourceId: 'default', + timerange: { + to: max, + from: min, + interval: '10m', + }, + metrics: [{ type: 'cpu' }], + nodeType: 'host', + groupBy: [], + includeTimeseries: false, + }); + + if (!snapshot) { + return; + } + + expect(snapshot).to.have.property('nodes'); + + const { nodes } = snapshot; + expect(nodes.length).to.equal(1); + if (snapshot) { + const firstNode = nodes[0]; + expect(firstNode).to.have.property('path'); + expect(firstNode.path.length).to.equal(1); + expect(firstNode.path[0]).to.eql({ + value: 'serverless-host', + label: 'serverless-host', + ip: '192.168.1.79', + os: 'macOS', + cloudProvider: null, + }); + } + }); + }); + }); +} From 650c156b764e2a42e890ae67562c8d1136bfde07 Mon Sep 17 00:00:00 2001 From: Wafaa Nasr Date: Wed, 11 Oct 2023 12:38:14 +0200 Subject: [PATCH 10/79] [Security Solution][Detection Engine] Running API tests in Serverless using Mocha Tagging (#166755) # Summary - Addresses https://github.com/elastic/kibana/issues/161537 ## Description - This PR follows the second option defined in this [document](https://docs.google.com/document/d/1mqkpjDdFQRFvx_RPvNmjstVj8SXYMr2mrETMv3esda8/edit#heading=h.rpv1zyeb04ay) the [Mocha tagging ](https://github.com/mochajs/mocha/wiki/Tagging) - It introduces a new folder `x-pack/test/security_solution_api_integration` which will serve as a centralized location to meet all the requirements related to renaming tests appropriately and grouping similar tests together. It will facilitate the management of tests that must be run in Serverless and ESS environments. - Within this folder, there is a "config" subdirectory that stores base configurations specific to both the [Serverless](https://github.com/elastic/kibana/pull/166755/files#diff-afe1f42d5ac2006de8dc09069448b9e8734a6a950586376cd6e8eeb9110ab5f1R1) and [ESS](https://github.com/elastic/kibana/pull/166755/files#diff-4a60bd8c91da08a3f7ec14bf3bfef8449af155611374c32579b0318da03e292cR1) environments, These configurations build upon the base configuration provided by test_serverless and api_integrations, incorporating additional settings such as environment variables and tagging options. - It demonstrates scenarios involving `@ess`, `@serverless`, and `@brokenInServerless`. - The file` x-pack/test/security_solution_api_integration/test_suites/detections_response/rule_creation/create_rules.ts` is functional in both **Serverless** and **ESS**. However, some tests related to roles are currently skipped for Serverless until they are resolved, and these tests are tagged with `@brokenInServerless` ![image](https://github.com/elastic/kibana/assets/12671903/93ad5698-8776-40c4-875d-3308fedd11cb) ## CI - It includes a new entry in the ftr_configs.yml to execute the newly added tests in the pipeline. - It involves the addition of mochaOptions in both serverless/config.base.ts and ess/config.base.ts. In the case of serverless, it includes **@serverless** while excluding @brokenInServerless. Similarly, for **ess**, it includes @ess and excludes **@brokenInEss**. from `x-pack/test/security_solution_api_integration/config/serverless` ![image](https://github.com/elastic/kibana/assets/12671903/9413ba0f-0384-4125-a1a9-7108211f4848) ## Update in x-pack/test/detection_engine_api_integration - The `create_rules.ts` and `create_rule_exceptions` files have been relocated from `x-pack/test/detection_engine_api_integration/security_and_spaces/group1` to their respective domains within the `x-pack/test/security_solution_api_integration` folder. - The util files now are copied over from the old folder `x-pack/test/detection_engine_api_integration` to the new folder and will be removed once all tests are moved to the new folder to don't break the existing tests --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- .buildkite/ftr_configs.yml | 9 + .eslintrc.js | 2 + .github/CODEOWNERS | 4 + .../security_and_spaces/group1/index.ts | 2 - .../README.md | 46 + .../config/ess/config.base.trial.ts | 13 + .../config/ess/config.base.ts | 113 + .../config/serverless/config.base.ts | 35 + .../serverless/auditbeat/hosts/data.json.gz | Bin 0 -> 186535 bytes .../serverless/auditbeat/hosts/mappings.json | 2603 +++++++++++++++++ .../es_archive_path_builder/constants.ts | 11 + .../es_archive_path_builder/index.ts | 27 + .../ftr_provider_context.d.ts | 10 + .../package.json | 13 + .../detections_response/ess.config.ts | 22 + .../detections_response/exceptions/index.ts | 13 + .../rule_exception}/create_rule_exceptions.ts | 26 +- .../test_suites/detections_response/index.ts | 15 + .../rule_creation}/create_rules.ts | 101 +- .../rule_creation/index.ts | 13 + .../detections_response/serverless.config.ts | 15 + .../utils/action/get_slack_action.ts | 14 + .../utils/action/get_web_hook_action.ts | 19 + .../utils/action/remove_uuid_from_actions.ts | 14 + .../utils/alert/create_alerts_index.ts | 37 + .../utils/alert/delete_all_alerts.ts | 49 + .../utils/alert/get_alerts_by_ids.ts | 56 + .../utils/alert/get_query_alerts_ids.ts | 23 + .../utils/alert/wait_for_alert_to_complete.ts | 33 + .../alert/wait_for_alerts_to_be_present.ts | 34 + .../utils/count_down_test.ts | 78 + .../exception_list/create_exception_list.ts | 68 + .../exception_list/delete_exception_list.ts | 37 + .../detections_response/utils/index.ts | 41 + .../utils/route_with_namespace.ts | 14 + .../utils/rule/create_rule.ts | 74 + .../utils/rule/delete_all_rules.ts | 47 + .../utils/rule/delete_rule.ts | 30 + .../utils/rule/get_rule.ts | 38 + .../utils/rule/get_rule_actions.ts | 96 + .../utils/rule/get_rule_for_alert_testing.ts | 32 + ...r_alert_testing_with_timestamp_override.ts | 27 + .../utils/rule/get_simple_ml_rule.ts | 25 + .../utils/rule/get_simple_ml_rule_output.ts | 25 + .../utils/rule/get_simple_rule.ts | 25 + .../utils/rule/get_simple_rule_output.ts | 85 + .../get_simple_rule_output_without_rule_id.ts | 21 + .../rule/get_simple_rule_without_rule_id.ts | 19 + .../get_threshold_rule_for_alert_testing.ts | 31 + .../remove_server_generated_properties.ts | 29 + ..._generated_properties_including_rule_id.ts | 23 + .../utils/rule/wait_for_rule_status.ts | 82 + .../utils/update_username.ts | 16 + .../detections_response/utils/wait_for.ts | 35 + .../test_suites/index.ts | 14 + .../tsconfig.json | 31 + x-pack/test/tsconfig.json | 2 +- 57 files changed, 4356 insertions(+), 61 deletions(-) create mode 100644 x-pack/test/security_solution_api_integration/README.md create mode 100644 x-pack/test/security_solution_api_integration/config/ess/config.base.trial.ts create mode 100644 x-pack/test/security_solution_api_integration/config/ess/config.base.ts create mode 100644 x-pack/test/security_solution_api_integration/config/serverless/config.base.ts create mode 100644 x-pack/test/security_solution_api_integration/es_archive/serverless/auditbeat/hosts/data.json.gz create mode 100644 x-pack/test/security_solution_api_integration/es_archive/serverless/auditbeat/hosts/mappings.json create mode 100644 x-pack/test/security_solution_api_integration/es_archive_path_builder/constants.ts create mode 100644 x-pack/test/security_solution_api_integration/es_archive_path_builder/index.ts create mode 100644 x-pack/test/security_solution_api_integration/ftr_provider_context.d.ts create mode 100644 x-pack/test/security_solution_api_integration/package.json create mode 100644 x-pack/test/security_solution_api_integration/test_suites/detections_response/ess.config.ts create mode 100644 x-pack/test/security_solution_api_integration/test_suites/detections_response/exceptions/index.ts rename x-pack/test/{detection_engine_api_integration/security_and_spaces/group1 => security_solution_api_integration/test_suites/detections_response/exceptions/rule_exception}/create_rule_exceptions.ts (92%) create mode 100644 x-pack/test/security_solution_api_integration/test_suites/detections_response/index.ts rename x-pack/test/{detection_engine_api_integration/security_and_spaces/group1 => security_solution_api_integration/test_suites/detections_response/rule_creation}/create_rules.ts (89%) create mode 100644 x-pack/test/security_solution_api_integration/test_suites/detections_response/rule_creation/index.ts create mode 100644 x-pack/test/security_solution_api_integration/test_suites/detections_response/serverless.config.ts create mode 100644 x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/action/get_slack_action.ts create mode 100644 x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/action/get_web_hook_action.ts create mode 100644 x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/action/remove_uuid_from_actions.ts create mode 100644 x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/alert/create_alerts_index.ts create mode 100644 x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/alert/delete_all_alerts.ts create mode 100644 x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/alert/get_alerts_by_ids.ts create mode 100644 x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/alert/get_query_alerts_ids.ts create mode 100644 x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/alert/wait_for_alert_to_complete.ts create mode 100644 x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/alert/wait_for_alerts_to_be_present.ts create mode 100644 x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/count_down_test.ts create mode 100644 x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/exception_list_and_item/exception_list/create_exception_list.ts create mode 100644 x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/exception_list_and_item/exception_list/delete_exception_list.ts create mode 100644 x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/index.ts create mode 100644 x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/route_with_namespace.ts create mode 100644 x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/create_rule.ts create mode 100644 x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/delete_all_rules.ts create mode 100644 x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/delete_rule.ts create mode 100644 x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/get_rule.ts create mode 100644 x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/get_rule_actions.ts create mode 100644 x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/get_rule_for_alert_testing.ts create mode 100644 x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/get_rule_for_alert_testing_with_timestamp_override.ts create mode 100644 x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/get_simple_ml_rule.ts create mode 100644 x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/get_simple_ml_rule_output.ts create mode 100644 x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/get_simple_rule.ts create mode 100644 x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/get_simple_rule_output.ts create mode 100644 x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/get_simple_rule_output_without_rule_id.ts create mode 100644 x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/get_simple_rule_without_rule_id.ts create mode 100644 x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/get_threshold_rule_for_alert_testing.ts create mode 100644 x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/remove_server_generated_properties.ts create mode 100644 x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/remove_server_generated_properties_including_rule_id.ts create mode 100644 x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/wait_for_rule_status.ts create mode 100644 x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/update_username.ts create mode 100644 x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/wait_for.ts create mode 100644 x-pack/test/security_solution_api_integration/test_suites/index.ts create mode 100644 x-pack/test/security_solution_api_integration/tsconfig.json diff --git a/.buildkite/ftr_configs.yml b/.buildkite/ftr_configs.yml index 05738be182699..b8c70aa567697 100644 --- a/.buildkite/ftr_configs.yml +++ b/.buildkite/ftr_configs.yml @@ -13,6 +13,9 @@ disabled: - x-pack/test/functional_with_es_ssl/config.base.ts - x-pack/test/api_integration/config.ts - x-pack/test/fleet_api_integration/config.base.ts + - x-pack/test/security_solution_api_integration/config/ess/config.base.ts + - x-pack/test/security_solution_api_integration/config/serverless/config.base.ts + # QA suites that are run out-of-band - x-pack/test/stack_functional_integration/configs/config.stack_functional_integration_base.js @@ -449,3 +452,9 @@ enabled: - x-pack/performance/journeys/apm_service_inventory.ts - x-pack/test/custom_branding/config.ts - x-pack/test/profiling_api_integration/cloud/config.ts + - x-pack/test/security_solution_api_integration/test_suites/detections_response/serverless.config.ts + - x-pack/test/security_solution_api_integration/test_suites/detections_response/ess.config.ts + + + + diff --git a/.eslintrc.js b/.eslintrc.js index 4e46336ec70ae..7b18904722c26 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -606,6 +606,8 @@ module.exports = { 'x-pack/test_serverless/**/config*.ts', 'x-pack/test_serverless/*/test_suites/**/*', 'x-pack/test/profiling_api_integration/**/*.ts', + 'x-pack/test/security_solution_api_integration/*/test_suites/**/*', + 'x-pack/test/security_solution_api_integration/**/config*.ts', ], rules: { 'import/no-default-export': 'off', diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index c2037209e5949..7090f368b0165 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1302,6 +1302,8 @@ x-pack/plugins/cloud_integrations/cloud_full_story/server/config.ts @elastic/kib /x-pack/test/security_solution_cypress/cypress/e2e/entity_analytics @elastic/security-detection-engine /x-pack/test/security_solution_cypress/cypress/e2e/exceptions @elastic/security-detection-engine /x-pack/test/security_solution_cypress/cypress/e2e/overview @elastic/security-detection-engine +x-pack/test/security_solution_api_integration/test_suites/detections_response/exceptions @elastic/security-detection-engine +x-pack/test/security_solution_api_integration/test_suites/detections_response/rule_creation @elastic/security-detection-engine ## Security Threat Intelligence - Under Security Platform /x-pack/plugins/security_solution/public/common/components/threat_match @elastic/security-detection-engine @@ -1323,6 +1325,8 @@ x-pack/plugins/cloud_integrations/cloud_full_story/server/config.ts @elastic/kib /x-pack/plugins/security_solution/server/routes @elastic/security-detections-response @elastic/security-threat-hunting /x-pack/plugins/security_solution/server/utils @elastic/security-detections-response @elastic/security-threat-hunting +x-pack/test/security_solution_api_integration/test_suites/detections_response/utils @elastic/security-detections-response + ## Security Solution sub teams - security-defend-workflows /x-pack/plugins/security_solution/public/management/ @elastic/security-defend-workflows diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/group1/index.ts b/x-pack/test/detection_engine_api_integration/security_and_spaces/group1/index.ts index f181b10e25bbc..2969429494b28 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/group1/index.ts +++ b/x-pack/test/detection_engine_api_integration/security_and_spaces/group1/index.ts @@ -19,11 +19,9 @@ export default ({ loadTestFile }: FtrProviderContext): void => { loadTestFile(require.resolve('./update_actions')); loadTestFile(require.resolve('./check_privileges')); loadTestFile(require.resolve('./create_index')); - loadTestFile(require.resolve('./create_rules')); loadTestFile(require.resolve('./preview_rules')); loadTestFile(require.resolve('./create_rules_bulk')); loadTestFile(require.resolve('./create_new_terms')); - loadTestFile(require.resolve('./create_rule_exceptions')); loadTestFile(require.resolve('./delete_rules')); loadTestFile(require.resolve('./delete_rules_bulk')); loadTestFile(require.resolve('./export_rules')); diff --git a/x-pack/test/security_solution_api_integration/README.md b/x-pack/test/security_solution_api_integration/README.md new file mode 100644 index 0000000000000..5995b41164aec --- /dev/null +++ b/x-pack/test/security_solution_api_integration/README.md @@ -0,0 +1,46 @@ +# security_solution_api_integration + +This directory serves as a centralized location to place the security solution tests that run in Serverless and ESS environments. + +## Subdirectories + +1. `config` stores base configurations specific to both the Serverless and ESS environments, These configurations build upon the base configuration provided by `xpack/test_serverless` and `x-pack-api_integrations`, incorporating additional settings such as environment variables and tagging options. + + +2. `test_suites` directory now houses all the tests along with their utility functions. As an initial step, +we have introduced the `detection_response` directory to consolidate all the integration tests related to detection and response APIs. + + +## Overview + +- In this directory, Mocha tagging is utilized to assign tags to specific test suites and individual test cases. This tagging system enables the ability to selectively apply tags to test suites and test cases, facilitating the exclusion of specific test cases within a test suite as needed. + +- There are three primary tags that have been defined: @ess, @serverless, and @brokenInServerless + +- Test suites and cases are prefixed with specific tags to determine their execution in particular environments or to exclude them from specific environments. + +ex: +``` + describe('@serverless @ess create_rules', () => { ==> tests in this suite will run in both Ess and Serverless + describe('creating rules', () => {}); + + describe('@brokenInServerless missing timestamps', () => {}); ==> tests in this suite will be excluded in Serverless + + ``` + +## Adding new security area's tests + +1. Within the `test_suites` directory, create a new area folder. +2. Introduce `ess.config` and `serverless.config` files to reference the new test files and incorporate any additional custom properties defined in the `CreateTestConfigOptions` interface. +3. In these new configuration files, include references to the base configurations located under the config directory to inherit CI configurations, environment variables, and other settings. +4. Append a new entry in the `ftr_configs.yml` file to enable the execution of the newly added tests within the CI pipeline. + + +## Testing locally + +In the `package.json` file, you'll find commands to configure the server for each environment and to run tests against that specific environment. These commands adhere to the Mocha tagging system, allowing for the inclusion and exclusion of tags, mirroring the setup of the CI pipeline. + + + + + diff --git a/x-pack/test/security_solution_api_integration/config/ess/config.base.trial.ts b/x-pack/test/security_solution_api_integration/config/ess/config.base.trial.ts new file mode 100644 index 0000000000000..3dabd49fb4830 --- /dev/null +++ b/x-pack/test/security_solution_api_integration/config/ess/config.base.trial.ts @@ -0,0 +1,13 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { createTestConfig } from './config.base'; + +export default createTestConfig({ + license: 'trial', + ssl: true, +}); diff --git a/x-pack/test/security_solution_api_integration/config/ess/config.base.ts b/x-pack/test/security_solution_api_integration/config/ess/config.base.ts new file mode 100644 index 0000000000000..b4fbdba6de4c4 --- /dev/null +++ b/x-pack/test/security_solution_api_integration/config/ess/config.base.ts @@ -0,0 +1,113 @@ +/* + * 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 { CA_CERT_PATH } from '@kbn/dev-utils'; +import { FtrConfigProviderContext, kbnTestConfig, kibanaTestUser } from '@kbn/test'; +import { services } from '../../../api_integration/services'; + +interface CreateTestConfigOptions { + license: string; + ssl?: boolean; +} + +// test.not-enabled is specifically not enabled +const enabledActionTypes = [ + '.email', + '.index', + '.pagerduty', + '.swimlane', + '.server-log', + '.servicenow', + '.slack', + '.webhook', + 'test.authorization', + 'test.failing', + 'test.index-record', + 'test.noop', + 'test.rate-limit', +]; + +export function createTestConfig(options: CreateTestConfigOptions, testFiles?: string[]) { + const { license = 'trial', ssl = false } = options; + + return async ({ readConfigFile }: FtrConfigProviderContext) => { + const xPackApiIntegrationTestsConfig = await readConfigFile( + require.resolve('../../../api_integration/config.ts') + ); + const servers = { + ...xPackApiIntegrationTestsConfig.get('servers'), + elasticsearch: { + ...xPackApiIntegrationTestsConfig.get('servers.elasticsearch'), + protocol: ssl ? 'https' : 'http', + }, + }; + + return { + testFiles, + servers, + services, + junit: { + reportName: 'X-Pack Detection Engine API Integration Tests', + }, + esTestCluster: { + ...xPackApiIntegrationTestsConfig.get('esTestCluster'), + license, + ssl, + serverArgs: [`xpack.license.self_generated.type=${license}`], + }, + kbnTestServer: { + ...xPackApiIntegrationTestsConfig.get('kbnTestServer'), + env: { + ELASTICSEARCH_USERNAME: kbnTestConfig.getUrlParts(kibanaTestUser).username, + }, + serverArgs: [ + ...xPackApiIntegrationTestsConfig.get('kbnTestServer.serverArgs'), + `--xpack.actions.allowedHosts=${JSON.stringify(['localhost', 'some.non.existent.com'])}`, + `--xpack.actions.enabledActionTypes=${JSON.stringify(enabledActionTypes)}`, + '--xpack.eventLog.logEntries=true', + `--xpack.securitySolution.alertIgnoreFields=${JSON.stringify([ + 'testing_ignored.constant', + '/testing_regex*/', + ])}`, // See tests within the file "ignore_fields.ts" which use these values in "alertIgnoreFields" + '--xpack.ruleRegistry.write.enabled=true', + '--xpack.ruleRegistry.write.cache.enabled=false', + '--xpack.ruleRegistry.unsafe.indexUpgrade.enabled=true', + '--xpack.ruleRegistry.unsafe.legacyMultiTenancy.enabled=true', + `--xpack.securitySolution.enableExperimental=${JSON.stringify([ + 'previewTelemetryUrlEnabled', + 'riskScoringPersistence', + 'riskScoringRoutesEnabled', + ])}`, + '--xpack.task_manager.poll_interval=1000', + `--xpack.actions.preconfigured=${JSON.stringify({ + 'my-test-email': { + actionTypeId: '.email', + name: 'TestEmail#xyz', + config: { + from: 'me@test.com', + service: '__json', + }, + secrets: { + user: 'user', + password: 'password', + }, + }, + })}`, + ...(ssl + ? [ + `--elasticsearch.hosts=${servers.elasticsearch.protocol}://${servers.elasticsearch.hostname}:${servers.elasticsearch.port}`, + `--elasticsearch.ssl.certificateAuthorities=${CA_CERT_PATH}`, + ] + : []), + ], + }, + mochaOpts: { + grep: '/^(?!.*@brokenInEss).*@ess.*/', + }, + }; + }; +} diff --git a/x-pack/test/security_solution_api_integration/config/serverless/config.base.ts b/x-pack/test/security_solution_api_integration/config/serverless/config.base.ts new file mode 100644 index 0000000000000..3dfa29a28b4de --- /dev/null +++ b/x-pack/test/security_solution_api_integration/config/serverless/config.base.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 { FtrConfigProviderContext } from '@kbn/test'; + +export interface CreateTestConfigOptions { + testFiles: string[]; + junit: { reportName: string }; +} + +export function createTestConfig(options: CreateTestConfigOptions) { + return async ({ readConfigFile }: FtrConfigProviderContext) => { + const svlSharedConfig = await readConfigFile( + require.resolve('../../../../test_serverless/shared/config.base.ts') + ); + + return { + ...svlSharedConfig.getAll(), + kbnTestServer: { + ...svlSharedConfig.get('kbnTestServer'), + serverArgs: [...svlSharedConfig.get('kbnTestServer.serverArgs'), '--serverless=security'], + }, + testFiles: options.testFiles, + junit: options.junit, + + mochaOpts: { + ...svlSharedConfig.get('mochaOpts'), + grep: '/^(?!.*@brokenInServerless).*@serverless.*/', + }, + }; + }; +} diff --git a/x-pack/test/security_solution_api_integration/es_archive/serverless/auditbeat/hosts/data.json.gz b/x-pack/test/security_solution_api_integration/es_archive/serverless/auditbeat/hosts/data.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..00c6963b16937c6c0d0397f4d082a03a781f6536 GIT binary patch literal 186535 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

    SfP1v5 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 literal 0 HcmV?d00001 diff --git a/x-pack/test/security_solution_api_integration/es_archive/serverless/auditbeat/hosts/mappings.json b/x-pack/test/security_solution_api_integration/es_archive/serverless/auditbeat/hosts/mappings.json new file mode 100644 index 0000000000000..df93f770f2c14 --- /dev/null +++ b/x-pack/test/security_solution_api_integration/es_archive/serverless/auditbeat/hosts/mappings.json @@ -0,0 +1,2603 @@ +{ + "type": "index", + "value": { + "aliases": { + "auditbeat-8.0.0": { + "is_write_index": true + } + }, + "index": "auditbeat-8.0.0-2019.02.19-000001", + "mappings": { + "_meta": { + "beat": "auditbeat", + "version": "8.0.0" + }, + "date_detection": false, + "dynamic_templates": [ + { + "container.labels": { + "mapping": { + "type": "keyword" + }, + "match_mapping_type": "string", + "path_match": "container.labels.*" + } + }, + { + "fields": { + "mapping": { + "type": "keyword" + }, + "match_mapping_type": "string", + "path_match": "fields.*" + } + }, + { + "docker.container.labels": { + "mapping": { + "type": "keyword" + }, + "match_mapping_type": "string", + "path_match": "docker.container.labels.*" + } + }, + { + "strings_as_keyword": { + "mapping": { + "ignore_above": 1024, + "type": "keyword" + }, + "match_mapping_type": "string" + } + } + ], + "properties": { + "@timestamp": { + "type": "date" + }, + "agent": { + "properties": { + "ephemeral_id": { + "ignore_above": 1024, + "type": "keyword" + }, + "hostname": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "auditd": { + "properties": { + "data": { + "properties": { + "a0": { + "ignore_above": 1024, + "type": "keyword" + }, + "a1": { + "ignore_above": 1024, + "type": "keyword" + }, + "a2": { + "ignore_above": 1024, + "type": "keyword" + }, + "a3": { + "ignore_above": 1024, + "type": "keyword" + }, + "a[0-3]": { + "ignore_above": 1024, + "type": "keyword" + }, + "acct": { + "ignore_above": 1024, + "type": "keyword" + }, + "acl": { + "ignore_above": 1024, + "type": "keyword" + }, + "action": { + "ignore_above": 1024, + "type": "keyword" + }, + "added": { + "ignore_above": 1024, + "type": "keyword" + }, + "addr": { + "ignore_above": 1024, + "type": "keyword" + }, + "apparmor": { + "ignore_above": 1024, + "type": "keyword" + }, + "arch": { + "ignore_above": 1024, + "type": "keyword" + }, + "argc": { + "ignore_above": 1024, + "type": "keyword" + }, + "audit_backlog_limit": { + "ignore_above": 1024, + "type": "keyword" + }, + "audit_backlog_wait_time": { + "ignore_above": 1024, + "type": "keyword" + }, + "audit_enabled": { + "ignore_above": 1024, + "type": "keyword" + }, + "audit_failure": { + "ignore_above": 1024, + "type": "keyword" + }, + "auid": { + "ignore_above": 1024, + "type": "keyword" + }, + "banners": { + "ignore_above": 1024, + "type": "keyword" + }, + "bool": { + "ignore_above": 1024, + "type": "keyword" + }, + "bus": { + "ignore_above": 1024, + "type": "keyword" + }, + "cap_fe": { + "ignore_above": 1024, + "type": "keyword" + }, + "cap_fi": { + "ignore_above": 1024, + "type": "keyword" + }, + "cap_fp": { + "ignore_above": 1024, + "type": "keyword" + }, + "cap_fver": { + "ignore_above": 1024, + "type": "keyword" + }, + "cap_pe": { + "ignore_above": 1024, + "type": "keyword" + }, + "cap_pi": { + "ignore_above": 1024, + "type": "keyword" + }, + "cap_pp": { + "ignore_above": 1024, + "type": "keyword" + }, + "capability": { + "ignore_above": 1024, + "type": "keyword" + }, + "cgroup": { + "ignore_above": 1024, + "type": "keyword" + }, + "changed": { + "ignore_above": 1024, + "type": "keyword" + }, + "cipher": { + "ignore_above": 1024, + "type": "keyword" + }, + "class": { + "ignore_above": 1024, + "type": "keyword" + }, + "cmd": { + "ignore_above": 1024, + "type": "keyword" + }, + "code": { + "ignore_above": 1024, + "type": "keyword" + }, + "compat": { + "ignore_above": 1024, + "type": "keyword" + }, + "daddr": { + "ignore_above": 1024, + "type": "keyword" + }, + "data": { + "ignore_above": 1024, + "type": "keyword" + }, + "default-context": { + "ignore_above": 1024, + "type": "keyword" + }, + "dev": { + "ignore_above": 1024, + "type": "keyword" + }, + "device": { + "ignore_above": 1024, + "type": "keyword" + }, + "dir": { + "ignore_above": 1024, + "type": "keyword" + }, + "direction": { + "ignore_above": 1024, + "type": "keyword" + }, + "dmac": { + "ignore_above": 1024, + "type": "keyword" + }, + "dport": { + "ignore_above": 1024, + "type": "keyword" + }, + "enforcing": { + "ignore_above": 1024, + "type": "keyword" + }, + "entries": { + "ignore_above": 1024, + "type": "keyword" + }, + "exit": { + "ignore_above": 1024, + "type": "keyword" + }, + "fam": { + "ignore_above": 1024, + "type": "keyword" + }, + "family": { + "ignore_above": 1024, + "type": "keyword" + }, + "fd": { + "ignore_above": 1024, + "type": "keyword" + }, + "fe": { + "ignore_above": 1024, + "type": "keyword" + }, + "feature": { + "ignore_above": 1024, + "type": "keyword" + }, + "fi": { + "ignore_above": 1024, + "type": "keyword" + }, + "file": { + "ignore_above": 1024, + "type": "keyword" + }, + "flags": { + "ignore_above": 1024, + "type": "keyword" + }, + "format": { + "ignore_above": 1024, + "type": "keyword" + }, + "fp": { + "ignore_above": 1024, + "type": "keyword" + }, + "fver": { + "ignore_above": 1024, + "type": "keyword" + }, + "gid": { + "ignore_above": 1024, + "type": "keyword" + }, + "grantors": { + "ignore_above": 1024, + "type": "keyword" + }, + "grp": { + "ignore_above": 1024, + "type": "keyword" + }, + "hook": { + "ignore_above": 1024, + "type": "keyword" + }, + "hostname": { + "ignore_above": 1024, + "type": "keyword" + }, + "icmp_type": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "igid": { + "ignore_above": 1024, + "type": "keyword" + }, + "img-ctx": { + "ignore_above": 1024, + "type": "keyword" + }, + "inif": { + "ignore_above": 1024, + "type": "keyword" + }, + "ino": { + "ignore_above": 1024, + "type": "keyword" + }, + "inode_gid": { + "ignore_above": 1024, + "type": "keyword" + }, + "inode_uid": { + "ignore_above": 1024, + "type": "keyword" + }, + "invalid_context": { + "ignore_above": 1024, + "type": "keyword" + }, + "ioctlcmd": { + "ignore_above": 1024, + "type": "keyword" + }, + "ip": { + "ignore_above": 1024, + "type": "keyword" + }, + "ipid": { + "ignore_above": 1024, + "type": "keyword" + }, + "ipx-net": { + "ignore_above": 1024, + "type": "keyword" + }, + "items": { + "ignore_above": 1024, + "type": "keyword" + }, + "iuid": { + "ignore_above": 1024, + "type": "keyword" + }, + "kernel": { + "ignore_above": 1024, + "type": "keyword" + }, + "kind": { + "ignore_above": 1024, + "type": "keyword" + }, + "ksize": { + "ignore_above": 1024, + "type": "keyword" + }, + "laddr": { + "ignore_above": 1024, + "type": "keyword" + }, + "len": { + "ignore_above": 1024, + "type": "keyword" + }, + "list": { + "ignore_above": 1024, + "type": "keyword" + }, + "lport": { + "ignore_above": 1024, + "type": "keyword" + }, + "mac": { + "ignore_above": 1024, + "type": "keyword" + }, + "macproto": { + "ignore_above": 1024, + "type": "keyword" + }, + "maj": { + "ignore_above": 1024, + "type": "keyword" + }, + "major": { + "ignore_above": 1024, + "type": "keyword" + }, + "minor": { + "ignore_above": 1024, + "type": "keyword" + }, + "model": { + "ignore_above": 1024, + "type": "keyword" + }, + "msg": { + "ignore_above": 1024, + "type": "keyword" + }, + "nargs": { + "ignore_above": 1024, + "type": "keyword" + }, + "net": { + "ignore_above": 1024, + "type": "keyword" + }, + "new": { + "ignore_above": 1024, + "type": "keyword" + }, + "new-chardev": { + "ignore_above": 1024, + "type": "keyword" + }, + "new-disk": { + "ignore_above": 1024, + "type": "keyword" + }, + "new-enabled": { + "ignore_above": 1024, + "type": "keyword" + }, + "new-fs": { + "ignore_above": 1024, + "type": "keyword" + }, + "new-level": { + "ignore_above": 1024, + "type": "keyword" + }, + "new-log_passwd": { + "ignore_above": 1024, + "type": "keyword" + }, + "new-mem": { + "ignore_above": 1024, + "type": "keyword" + }, + "new-net": { + "ignore_above": 1024, + "type": "keyword" + }, + "new-range": { + "ignore_above": 1024, + "type": "keyword" + }, + "new-rng": { + "ignore_above": 1024, + "type": "keyword" + }, + "new-role": { + "ignore_above": 1024, + "type": "keyword" + }, + "new-seuser": { + "ignore_above": 1024, + "type": "keyword" + }, + "new-vcpu": { + "ignore_above": 1024, + "type": "keyword" + }, + "new_gid": { + "ignore_above": 1024, + "type": "keyword" + }, + "new_lock": { + "ignore_above": 1024, + "type": "keyword" + }, + "new_pe": { + "ignore_above": 1024, + "type": "keyword" + }, + "new_pi": { + "ignore_above": 1024, + "type": "keyword" + }, + "new_pp": { + "ignore_above": 1024, + "type": "keyword" + }, + "nlnk-fam": { + "ignore_above": 1024, + "type": "keyword" + }, + "nlnk-grp": { + "ignore_above": 1024, + "type": "keyword" + }, + "nlnk-pid": { + "ignore_above": 1024, + "type": "keyword" + }, + "oauid": { + "ignore_above": 1024, + "type": "keyword" + }, + "obj": { + "ignore_above": 1024, + "type": "keyword" + }, + "obj_gid": { + "ignore_above": 1024, + "type": "keyword" + }, + "obj_uid": { + "ignore_above": 1024, + "type": "keyword" + }, + "ocomm": { + "ignore_above": 1024, + "type": "keyword" + }, + "oflag": { + "ignore_above": 1024, + "type": "keyword" + }, + "old": { + "ignore_above": 1024, + "type": "keyword" + }, + "old-auid": { + "ignore_above": 1024, + "type": "keyword" + }, + "old-chardev": { + "ignore_above": 1024, + "type": "keyword" + }, + "old-disk": { + "ignore_above": 1024, + "type": "keyword" + }, + "old-enabled": { + "ignore_above": 1024, + "type": "keyword" + }, + "old-fs": { + "ignore_above": 1024, + "type": "keyword" + }, + "old-level": { + "ignore_above": 1024, + "type": "keyword" + }, + "old-log_passwd": { + "ignore_above": 1024, + "type": "keyword" + }, + "old-mem": { + "ignore_above": 1024, + "type": "keyword" + }, + "old-net": { + "ignore_above": 1024, + "type": "keyword" + }, + "old-range": { + "ignore_above": 1024, + "type": "keyword" + }, + "old-rng": { + "ignore_above": 1024, + "type": "keyword" + }, + "old-role": { + "ignore_above": 1024, + "type": "keyword" + }, + "old-ses": { + "ignore_above": 1024, + "type": "keyword" + }, + "old-seuser": { + "ignore_above": 1024, + "type": "keyword" + }, + "old-vcpu": { + "ignore_above": 1024, + "type": "keyword" + }, + "old_enforcing": { + "ignore_above": 1024, + "type": "keyword" + }, + "old_lock": { + "ignore_above": 1024, + "type": "keyword" + }, + "old_pe": { + "ignore_above": 1024, + "type": "keyword" + }, + "old_pi": { + "ignore_above": 1024, + "type": "keyword" + }, + "old_pp": { + "ignore_above": 1024, + "type": "keyword" + }, + "old_prom": { + "ignore_above": 1024, + "type": "keyword" + }, + "old_val": { + "ignore_above": 1024, + "type": "keyword" + }, + "op": { + "ignore_above": 1024, + "type": "keyword" + }, + "opid": { + "ignore_above": 1024, + "type": "keyword" + }, + "oses": { + "ignore_above": 1024, + "type": "keyword" + }, + "outif": { + "ignore_above": 1024, + "type": "keyword" + }, + "parent": { + "ignore_above": 1024, + "type": "keyword" + }, + "per": { + "ignore_above": 1024, + "type": "keyword" + }, + "perm": { + "ignore_above": 1024, + "type": "keyword" + }, + "perm_mask": { + "ignore_above": 1024, + "type": "keyword" + }, + "permissive": { + "ignore_above": 1024, + "type": "keyword" + }, + "pfs": { + "ignore_above": 1024, + "type": "keyword" + }, + "printer": { + "ignore_above": 1024, + "type": "keyword" + }, + "prom": { + "ignore_above": 1024, + "type": "keyword" + }, + "proto": { + "ignore_above": 1024, + "type": "keyword" + }, + "qbytes": { + "ignore_above": 1024, + "type": "keyword" + }, + "range": { + "ignore_above": 1024, + "type": "keyword" + }, + "reason": { + "ignore_above": 1024, + "type": "keyword" + }, + "removed": { + "ignore_above": 1024, + "type": "keyword" + }, + "res": { + "ignore_above": 1024, + "type": "keyword" + }, + "resrc": { + "ignore_above": 1024, + "type": "keyword" + }, + "rport": { + "ignore_above": 1024, + "type": "keyword" + }, + "sauid": { + "ignore_above": 1024, + "type": "keyword" + }, + "scontext": { + "ignore_above": 1024, + "type": "keyword" + }, + "selected-context": { + "ignore_above": 1024, + "type": "keyword" + }, + "seperm": { + "ignore_above": 1024, + "type": "keyword" + }, + "seperms": { + "ignore_above": 1024, + "type": "keyword" + }, + "seqno": { + "ignore_above": 1024, + "type": "keyword" + }, + "seresult": { + "ignore_above": 1024, + "type": "keyword" + }, + "ses": { + "ignore_above": 1024, + "type": "keyword" + }, + "seuser": { + "ignore_above": 1024, + "type": "keyword" + }, + "sig": { + "ignore_above": 1024, + "type": "keyword" + }, + "sigev_signo": { + "ignore_above": 1024, + "type": "keyword" + }, + "smac": { + "ignore_above": 1024, + "type": "keyword" + }, + "socket": { + "properties": { + "addr": { + "ignore_above": 1024, + "type": "keyword" + }, + "family": { + "ignore_above": 1024, + "type": "keyword" + }, + "path": { + "ignore_above": 1024, + "type": "keyword" + }, + "port": { + "ignore_above": 1024, + "type": "keyword" + }, + "saddr": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "spid": { + "ignore_above": 1024, + "type": "keyword" + }, + "sport": { + "ignore_above": 1024, + "type": "keyword" + }, + "state": { + "ignore_above": 1024, + "type": "keyword" + }, + "subj": { + "ignore_above": 1024, + "type": "keyword" + }, + "success": { + "ignore_above": 1024, + "type": "keyword" + }, + "syscall": { + "ignore_above": 1024, + "type": "keyword" + }, + "table": { + "ignore_above": 1024, + "type": "keyword" + }, + "tclass": { + "ignore_above": 1024, + "type": "keyword" + }, + "tcontext": { + "ignore_above": 1024, + "type": "keyword" + }, + "terminal": { + "ignore_above": 1024, + "type": "keyword" + }, + "tty": { + "ignore_above": 1024, + "type": "keyword" + }, + "uid": { + "ignore_above": 1024, + "type": "keyword" + }, + "unit": { + "ignore_above": 1024, + "type": "keyword" + }, + "uri": { + "ignore_above": 1024, + "type": "keyword" + }, + "uuid": { + "ignore_above": 1024, + "type": "keyword" + }, + "val": { + "ignore_above": 1024, + "type": "keyword" + }, + "ver": { + "ignore_above": 1024, + "type": "keyword" + }, + "virt": { + "ignore_above": 1024, + "type": "keyword" + }, + "vm": { + "ignore_above": 1024, + "type": "keyword" + }, + "vm-ctx": { + "ignore_above": 1024, + "type": "keyword" + }, + "vm-pid": { + "ignore_above": 1024, + "type": "keyword" + }, + "watch": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "message_type": { + "ignore_above": 1024, + "type": "keyword" + }, + "paths": { + "properties": { + "dev": { + "ignore_above": 1024, + "type": "keyword" + }, + "inode": { + "ignore_above": 1024, + "type": "keyword" + }, + "item": { + "ignore_above": 1024, + "type": "keyword" + }, + "mode": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "nametype": { + "ignore_above": 1024, + "type": "keyword" + }, + "obj_domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "obj_level": { + "ignore_above": 1024, + "type": "keyword" + }, + "obj_role": { + "ignore_above": 1024, + "type": "keyword" + }, + "obj_user": { + "ignore_above": 1024, + "type": "keyword" + }, + "objtype": { + "ignore_above": 1024, + "type": "keyword" + }, + "ogid": { + "ignore_above": 1024, + "type": "keyword" + }, + "ouid": { + "ignore_above": 1024, + "type": "keyword" + }, + "rdev": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "result": { + "ignore_above": 1024, + "type": "keyword" + }, + "sequence": { + "type": "long" + }, + "session": { + "ignore_above": 1024, + "type": "keyword" + }, + "summary": { + "properties": { + "actor": { + "properties": { + "primary": { + "ignore_above": 1024, + "type": "keyword" + }, + "secondary": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "how": { + "ignore_above": 1024, + "type": "keyword" + }, + "object": { + "properties": { + "primary": { + "ignore_above": 1024, + "type": "keyword" + }, + "secondary": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + } + } + }, + "client": { + "properties": { + "address": { + "ignore_above": 1024, + "type": "keyword" + }, + "bytes": { + "type": "long" + }, + "domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "geo": { + "properties": { + "city_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "continent_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "country_iso_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "country_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "location": { + "type": "geo_point" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "region_iso_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "region_name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "ip": { + "type": "ip" + }, + "mac": { + "ignore_above": 1024, + "type": "keyword" + }, + "packets": { + "type": "long" + }, + "port": { + "type": "long" + } + } + }, + "cloud": { + "properties": { + "account": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "availability_zone": { + "ignore_above": 1024, + "type": "keyword" + }, + "instance": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "machine": { + "properties": { + "type": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "project": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "provider": { + "ignore_above": 1024, + "type": "keyword" + }, + "region": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "container": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "image": { + "properties": { + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "tag": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "labels": { + "type": "object" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "runtime": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "destination": { + "properties": { + "address": { + "ignore_above": 1024, + "type": "keyword" + }, + "bytes": { + "type": "long" + }, + "domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "geo": { + "properties": { + "city_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "continent_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "country_iso_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "country_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "location": { + "type": "geo_point" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "region_iso_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "region_name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "ip": { + "type": "ip" + }, + "mac": { + "ignore_above": 1024, + "type": "keyword" + }, + "packets": { + "type": "long" + }, + "path": { + "ignore_above": 1024, + "type": "keyword" + }, + "port": { + "type": "long" + } + } + }, + "docker": { + "properties": { + "container": { + "properties": { + "labels": { + "type": "object" + } + } + } + } + }, + "ecs": { + "properties": { + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "error": { + "properties": { + "code": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "message": { + "norms": false, + "type": "text" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "event": { + "properties": { + "action": { + "ignore_above": 1024, + "type": "keyword" + }, + "category": { + "ignore_above": 1024, + "type": "keyword" + }, + "created": { + "type": "date" + }, + "dataset": { + "ignore_above": 1024, + "type": "keyword" + }, + "duration": { + "type": "long" + }, + "end": { + "type": "date" + }, + "hash": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "kind": { + "ignore_above": 1024, + "type": "keyword" + }, + "module": { + "ignore_above": 1024, + "type": "keyword" + }, + "origin": { + "ignore_above": 1024, + "type": "keyword" + }, + "original": { + "doc_values": false, + "ignore_above": 1024, + "index": false, + "type": "keyword" + }, + "outcome": { + "ignore_above": 1024, + "type": "keyword" + }, + "risk_score": { + "type": "float" + }, + "risk_score_norm": { + "type": "float" + }, + "severity": { + "type": "long" + }, + "start": { + "type": "date" + }, + "timezone": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "fields": { + "type": "object" + }, + "file": { + "properties": { + "ctime": { + "type": "date" + }, + "device": { + "ignore_above": 1024, + "type": "keyword" + }, + "extension": { + "ignore_above": 1024, + "type": "keyword" + }, + "gid": { + "ignore_above": 1024, + "type": "keyword" + }, + "group": { + "ignore_above": 1024, + "type": "keyword" + }, + "inode": { + "ignore_above": 1024, + "type": "keyword" + }, + "mode": { + "ignore_above": 1024, + "type": "keyword" + }, + "mtime": { + "type": "date" + }, + "origin": { + "fields": { + "raw": { + "ignore_above": 1024, + "type": "keyword" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "owner": { + "ignore_above": 1024, + "type": "keyword" + }, + "path": { + "ignore_above": 1024, + "type": "keyword" + }, + "selinux": { + "properties": { + "domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "level": { + "ignore_above": 1024, + "type": "keyword" + }, + "role": { + "ignore_above": 1024, + "type": "keyword" + }, + "user": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "setgid": { + "type": "boolean" + }, + "setuid": { + "type": "boolean" + }, + "size": { + "type": "long" + }, + "target_path": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + }, + "uid": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "geoip": { + "properties": { + "city_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "continent_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "country_iso_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "location": { + "type": "geo_point" + }, + "region_name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "group": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "hash": { + "properties": { + "blake2b_256": { + "ignore_above": 1024, + "type": "keyword" + }, + "blake2b_384": { + "ignore_above": 1024, + "type": "keyword" + }, + "blake2b_512": { + "ignore_above": 1024, + "type": "keyword" + }, + "md5": { + "ignore_above": 1024, + "type": "keyword" + }, + "sha1": { + "ignore_above": 1024, + "type": "keyword" + }, + "sha224": { + "ignore_above": 1024, + "type": "keyword" + }, + "sha256": { + "ignore_above": 1024, + "type": "keyword" + }, + "sha384": { + "ignore_above": 1024, + "type": "keyword" + }, + "sha3_224": { + "ignore_above": 1024, + "type": "keyword" + }, + "sha3_256": { + "ignore_above": 1024, + "type": "keyword" + }, + "sha3_384": { + "ignore_above": 1024, + "type": "keyword" + }, + "sha3_512": { + "ignore_above": 1024, + "type": "keyword" + }, + "sha512": { + "ignore_above": 1024, + "type": "keyword" + }, + "sha512_224": { + "ignore_above": 1024, + "type": "keyword" + }, + "sha512_256": { + "ignore_above": 1024, + "type": "keyword" + }, + "xxh64": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "host": { + "properties": { + "architecture": { + "ignore_above": 1024, + "type": "keyword" + }, + "containerized": { + "type": "boolean" + }, + "geo": { + "properties": { + "city_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "continent_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "country_iso_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "country_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "location": { + "type": "geo_point" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "region_iso_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "region_name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "hostname": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "ip": { + "type": "ip" + }, + "mac": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "os": { + "properties": { + "codename": { + "ignore_above": 1024, + "type": "keyword" + }, + "family": { + "ignore_above": 1024, + "type": "keyword" + }, + "full": { + "ignore_above": 1024, + "type": "keyword" + }, + "kernel": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "platform": { + "ignore_above": 1024, + "type": "keyword" + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "http": { + "properties": { + "request": { + "properties": { + "body": { + "properties": { + "bytes": { + "type": "long" + }, + "content": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "bytes": { + "type": "long" + }, + "method": { + "ignore_above": 1024, + "type": "keyword" + }, + "referrer": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "response": { + "properties": { + "body": { + "properties": { + "bytes": { + "type": "long" + }, + "content": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "bytes": { + "type": "long" + }, + "status_code": { + "type": "long" + } + } + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "kubernetes": { + "properties": { + "annotations": { + "type": "object" + }, + "container": { + "properties": { + "image": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "labels": { + "type": "object" + }, + "namespace": { + "ignore_above": 1024, + "type": "keyword" + }, + "node": { + "properties": { + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "pod": { + "properties": { + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "uid": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + }, + "labels": { + "type": "object" + }, + "log": { + "properties": { + "level": { + "ignore_above": 1024, + "type": "keyword" + }, + "original": { + "doc_values": false, + "ignore_above": 1024, + "index": false, + "type": "keyword" + } + } + }, + "message": { + "norms": false, + "type": "text" + }, + "network": { + "properties": { + "application": { + "ignore_above": 1024, + "type": "keyword" + }, + "bytes": { + "type": "long" + }, + "community_id": { + "ignore_above": 1024, + "type": "keyword" + }, + "direction": { + "ignore_above": 1024, + "type": "keyword" + }, + "forwarded_ip": { + "type": "ip" + }, + "iana_number": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "packets": { + "type": "long" + }, + "protocol": { + "ignore_above": 1024, + "type": "keyword" + }, + "transport": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "observer": { + "properties": { + "geo": { + "properties": { + "city_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "continent_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "country_iso_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "country_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "location": { + "type": "geo_point" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "region_iso_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "region_name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "hostname": { + "ignore_above": 1024, + "type": "keyword" + }, + "ip": { + "type": "ip" + }, + "mac": { + "ignore_above": 1024, + "type": "keyword" + }, + "os": { + "properties": { + "family": { + "ignore_above": 1024, + "type": "keyword" + }, + "full": { + "ignore_above": 1024, + "type": "keyword" + }, + "kernel": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "platform": { + "ignore_above": 1024, + "type": "keyword" + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "serial_number": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + }, + "vendor": { + "ignore_above": 1024, + "type": "keyword" + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "organization": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "os": { + "properties": { + "family": { + "ignore_above": 1024, + "type": "keyword" + }, + "full": { + "ignore_above": 1024, + "type": "keyword" + }, + "kernel": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "platform": { + "ignore_above": 1024, + "type": "keyword" + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "process": { + "properties": { + "args": { + "ignore_above": 1024, + "type": "keyword" + }, + "entity_id": { + "ignore_above": 1024, + "type": "keyword" + }, + "executable": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "pid": { + "type": "long" + }, + "ppid": { + "type": "long" + }, + "start": { + "type": "date" + }, + "thread": { + "properties": { + "id": { + "type": "long" + } + } + }, + "title": { + "ignore_above": 1024, + "type": "keyword" + }, + "working_directory": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "related": { + "properties": { + "ip": { + "type": "ip" + } + } + }, + "server": { + "properties": { + "address": { + "ignore_above": 1024, + "type": "keyword" + }, + "bytes": { + "type": "long" + }, + "domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "geo": { + "properties": { + "city_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "continent_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "country_iso_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "country_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "location": { + "type": "geo_point" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "region_iso_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "region_name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "ip": { + "type": "ip" + }, + "mac": { + "ignore_above": 1024, + "type": "keyword" + }, + "packets": { + "type": "long" + }, + "port": { + "type": "long" + } + } + }, + "service": { + "properties": { + "ephemeral_id": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "state": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "socket": { + "properties": { + "entity_id": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "source": { + "properties": { + "address": { + "ignore_above": 1024, + "type": "keyword" + }, + "bytes": { + "type": "long" + }, + "domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "geo": { + "properties": { + "city_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "continent_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "country_iso_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "country_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "location": { + "type": "geo_point" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "region_iso_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "region_name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "ip": { + "type": "ip" + }, + "mac": { + "ignore_above": 1024, + "type": "keyword" + }, + "packets": { + "type": "long" + }, + "path": { + "ignore_above": 1024, + "type": "keyword" + }, + "port": { + "type": "long" + } + } + }, + "system": { + "properties": { + "audit": { + "properties": { + "host": { + "properties": { + "architecture": { + "ignore_above": 1024, + "type": "keyword" + }, + "boottime": { + "type": "date" + }, + "containerized": { + "type": "boolean" + }, + "hostname": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "ip": { + "type": "ip" + }, + "mac": { + "ignore_above": 1024, + "type": "keyword" + }, + "os": { + "properties": { + "family": { + "ignore_above": 1024, + "type": "keyword" + }, + "kernel": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "platform": { + "ignore_above": 1024, + "type": "keyword" + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "timezone": { + "properties": { + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "offset": { + "properties": { + "sec": { + "type": "long" + } + } + } + } + }, + "uptime": { + "type": "long" + } + } + }, + "package": { + "properties": { + "arch": { + "ignore_above": 1024, + "type": "keyword" + }, + "entity_id": { + "ignore_above": 1024, + "type": "keyword" + }, + "installtime": { + "type": "date" + }, + "license": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "release": { + "ignore_above": 1024, + "type": "keyword" + }, + "size": { + "type": "long" + }, + "summary": { + "ignore_above": 1024, + "type": "keyword" + }, + "url": { + "ignore_above": 1024, + "type": "keyword" + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "user": { + "properties": { + "dir": { + "ignore_above": 1024, + "type": "keyword" + }, + "gid": { + "ignore_above": 1024, + "type": "keyword" + }, + "group": { + "properties": { + "gid": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "password": { + "properties": { + "last_changed": { + "type": "date" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "shell": { + "ignore_above": 1024, + "type": "keyword" + }, + "uid": { + "ignore_above": 1024, + "type": "keyword" + }, + "user_information": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + } + } + }, + "tags": { + "ignore_above": 1024, + "type": "keyword" + }, + "url": { + "properties": { + "domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "fragment": { + "ignore_above": 1024, + "type": "keyword" + }, + "full": { + "ignore_above": 1024, + "type": "keyword" + }, + "original": { + "ignore_above": 1024, + "type": "keyword" + }, + "password": { + "ignore_above": 1024, + "type": "keyword" + }, + "path": { + "ignore_above": 1024, + "type": "keyword" + }, + "port": { + "type": "long" + }, + "query": { + "ignore_above": 1024, + "type": "keyword" + }, + "scheme": { + "ignore_above": 1024, + "type": "keyword" + }, + "username": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "user": { + "properties": { + "audit": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "effective": { + "properties": { + "group": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "email": { + "ignore_above": 1024, + "type": "keyword" + }, + "entity_id": { + "ignore_above": 1024, + "type": "keyword" + }, + "filesystem": { + "properties": { + "group": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "full_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "group": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "hash": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "name_map": { + "type": "object" + }, + "saved": { + "properties": { + "group": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "selinux": { + "properties": { + "category": { + "ignore_above": 1024, + "type": "keyword" + }, + "domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "level": { + "ignore_above": 1024, + "type": "keyword" + }, + "role": { + "ignore_above": 1024, + "type": "keyword" + }, + "user": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "terminal": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "user_agent": { + "properties": { + "device": { + "properties": { + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "original": { + "ignore_above": 1024, + "type": "keyword" + }, + "os": { + "properties": { + "family": { + "ignore_above": 1024, + "type": "keyword" + }, + "full": { + "ignore_above": 1024, + "type": "keyword" + }, + "kernel": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "platform": { + "ignore_above": 1024, + "type": "keyword" + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + } + } +} diff --git a/x-pack/test/security_solution_api_integration/es_archive_path_builder/constants.ts b/x-pack/test/security_solution_api_integration/es_archive_path_builder/constants.ts new file mode 100644 index 0000000000000..c2d8da5ed551e --- /dev/null +++ b/x-pack/test/security_solution_api_integration/es_archive_path_builder/constants.ts @@ -0,0 +1,11 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export const SERVERLESS_ES_ARCHIVE_PATH = + 'x-pack/test/security_solution_api_integration/es_archive/serverless'; + +export const ESS_ES_ARCHIVE_PATH = 'x-pack/test/functional/es_archives'; diff --git a/x-pack/test/security_solution_api_integration/es_archive_path_builder/index.ts b/x-pack/test/security_solution_api_integration/es_archive_path_builder/index.ts new file mode 100644 index 0000000000000..fd91f69859fc6 --- /dev/null +++ b/x-pack/test/security_solution_api_integration/es_archive_path_builder/index.ts @@ -0,0 +1,27 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { SERVERLESS_ES_ARCHIVE_PATH, ESS_ES_ARCHIVE_PATH } from './constants'; + +export class EsArchivePathBuilder { + constructor(private isServerless: boolean) { + this.isServerless = isServerless; + } + + /** + * @param resourceUri represents the data type, e.g., auditbeat, and its associated index for hosts. + * @returns the complete path based on the environment from which we intend to load the data. + */ + getPath(resourceUri: string): string { + const archivePath = this.getEsArchivePathBasedOnEnv(); + return `${archivePath}/${resourceUri}`; + } + + private getEsArchivePathBasedOnEnv(): string { + return this.isServerless ? SERVERLESS_ES_ARCHIVE_PATH : ESS_ES_ARCHIVE_PATH; + } +} diff --git a/x-pack/test/security_solution_api_integration/ftr_provider_context.d.ts b/x-pack/test/security_solution_api_integration/ftr_provider_context.d.ts new file mode 100644 index 0000000000000..ae275fcecf99d --- /dev/null +++ b/x-pack/test/security_solution_api_integration/ftr_provider_context.d.ts @@ -0,0 +1,10 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { FtrProviderContext } from '../../test_serverless/api_integration/ftr_provider_context'; + +export type { FtrProviderContext }; diff --git a/x-pack/test/security_solution_api_integration/package.json b/x-pack/test/security_solution_api_integration/package.json new file mode 100644 index 0000000000000..4cd9e44c89eb6 --- /dev/null +++ b/x-pack/test/security_solution_api_integration/package.json @@ -0,0 +1,13 @@ +{ + "author": "Elastic", + "name": "@kbn/security_solution_api_integration", + "version": "1.0.0", + "private": true, + "license": "Elastic License 2.0", + "scripts": { + "detectionResponse:server:serverless": "node ../../../scripts/functional_tests_server.js --config ./test_suites/detections_response/serverless.config.ts", + "detectionResponse:runner:serverless": "node ../../../scripts/functional_test_runner --config=test_suites/detections_response/serverless.config.ts --grep @serverless --grep @brokenInServerless --invert", + "detectionResponse:server:ess": "node ../../../scripts/functional_tests_server.js --config ./test_suites/detections_response/ess.config.ts", + "detectionResponse:runner:ess": "node ../../../scripts/functional_test_runner --config=test_suites/detections_response/ess.config.ts --grep @ess" + } +} diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/ess.config.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/ess.config.ts new file mode 100644 index 0000000000000..98564672f53c0 --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/ess.config.ts @@ -0,0 +1,22 @@ +/* + * 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 { FtrConfigProviderContext } from '@kbn/test'; + +export default async function ({ readConfigFile }: FtrConfigProviderContext) { + const functionalConfig = await readConfigFile( + require.resolve('../../config/ess/config.base.trial.ts') + ); + + return { + ...functionalConfig.getAll(), + testFiles: [require.resolve('.')], + junit: { + reportName: 'Detection Engine ESS API Integration Tests', + }, + }; +} diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/exceptions/index.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/exceptions/index.ts new file mode 100644 index 0000000000000..171e6a095d8a5 --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/exceptions/index.ts @@ -0,0 +1,13 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import { FtrProviderContext } from '../../../ftr_provider_context'; + +export default function ({ loadTestFile }: FtrProviderContext) { + describe('Exceptions API', function () { + loadTestFile(require.resolve('./rule_exception/create_rule_exceptions')); + }); +} diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/group1/create_rule_exceptions.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/exceptions/rule_exception/create_rule_exceptions.ts similarity index 92% rename from x-pack/test/detection_engine_api_integration/security_and_spaces/group1/create_rule_exceptions.ts rename to x-pack/test/security_solution_api_integration/test_suites/detections_response/exceptions/rule_exception/create_rule_exceptions.ts index 15ff9c1ad1d15..c48767b9a6586 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/group1/create_rule_exceptions.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/exceptions/rule_exception/create_rule_exceptions.ts @@ -15,12 +15,13 @@ import { ExceptionListTypeEnum, } from '@kbn/securitysolution-io-ts-list-types'; import { getCreateExceptionListMinimalSchemaMock } from '@kbn/lists-plugin/common/schemas/request/create_exception_list_schema.mock'; -import { FtrProviderContext } from '../../common/ftr_provider_context'; + +import { FtrProviderContext } from '../../../../ftr_provider_context'; import { getRule, createRule, getSimpleRule, - createSignalsIndex, + createAlertsIndex, deleteAllRules, createExceptionList, deleteAllAlerts, @@ -28,7 +29,7 @@ import { import { deleteAllExceptions, removeExceptionListItemServerGeneratedProperties, -} from '../../../lists_api_integration/utils'; +} from '../../../../../lists_api_integration/utils'; const getRuleExceptionItemMock = (): CreateRuleExceptionListItemSchema => ({ description: 'Exception item for rule default exception list', @@ -44,15 +45,16 @@ const getRuleExceptionItemMock = (): CreateRuleExceptionListItemSchema => ({ type: 'simple', }); -// eslint-disable-next-line import/no-default-export export default ({ getService }: FtrProviderContext) => { const supertest = getService('supertest'); const log = getService('log'); const es = getService('es'); + const config = getService('config'); + const ELASTICSEARCH_USERNAME = config.get('servers.kibana.username'); - describe('create_rule_exception_route', () => { + describe('@serverless @ess create_rule_exception_route', () => { before(async () => { - await createSignalsIndex(supertest, log); + await createAlertsIndex(supertest, log); }); after(async () => { @@ -84,7 +86,7 @@ export default ({ getService }: FtrProviderContext) => { expect(itemsWithoutServerGeneratedValues).to.eql([ { comments: [], - created_by: 'elastic', + created_by: ELASTICSEARCH_USERNAME, description: 'Exception item for rule default exception list', entries: [ { @@ -100,7 +102,7 @@ export default ({ getService }: FtrProviderContext) => { os_types: [], tags: [], type: 'simple', - updated_by: 'elastic', + updated_by: ELASTICSEARCH_USERNAME, }, ]); expect(udpatedRule.exceptions_list.some((list) => list.type === 'rule_default')).to.eql(true); @@ -148,7 +150,7 @@ export default ({ getService }: FtrProviderContext) => { expect(itemsWithoutServerGeneratedValues).to.eql([ { comments: [], - created_by: 'elastic', + created_by: ELASTICSEARCH_USERNAME, description: 'Exception item for rule default exception list', entries: [ { @@ -164,7 +166,7 @@ export default ({ getService }: FtrProviderContext) => { os_types: [], tags: [], type: 'simple', - updated_by: 'elastic', + updated_by: ELASTICSEARCH_USERNAME, }, ]); }); @@ -210,7 +212,7 @@ export default ({ getService }: FtrProviderContext) => { ); expect(itemsWithoutServerGeneratedValues[0]).to.eql({ comments: [], - created_by: 'elastic', + created_by: ELASTICSEARCH_USERNAME, description: 'Exception item for rule default exception list', entries: [ { @@ -226,7 +228,7 @@ export default ({ getService }: FtrProviderContext) => { os_types: [], tags: [], type: 'simple', - updated_by: 'elastic', + updated_by: ELASTICSEARCH_USERNAME, }); }); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/index.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/index.ts new file mode 100644 index 0000000000000..1a507b5ffd8e1 --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/index.ts @@ -0,0 +1,15 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { FtrProviderContext } from '../../ftr_provider_context'; + +export default function ({ loadTestFile }: FtrProviderContext) { + describe('Detections response API', function () { + loadTestFile(require.resolve('./exceptions')); + loadTestFile(require.resolve('./rule_creation')); + }); +} diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/group1/create_rules.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rule_creation/create_rules.ts similarity index 89% rename from x-pack/test/detection_engine_api_integration/security_and_spaces/group1/create_rules.ts rename to x-pack/test/security_solution_api_integration/test_suites/detections_response/rule_creation/create_rules.ts index 7df1ae742640f..2cc5afa9f7340 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/group1/create_rules.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rule_creation/create_rules.ts @@ -17,9 +17,9 @@ import { RuleCreateProps } from '@kbn/security-solution-plugin/common/api/detect import { ExceptionListTypeEnum } from '@kbn/securitysolution-io-ts-list-types'; import { ROLES } from '@kbn/security-solution-plugin/common/test'; -import { FtrProviderContext } from '../../common/ftr_provider_context'; +import { FtrProviderContext } from '../../../ftr_provider_context'; import { - createSignalsIndex, + createAlertsIndex, deleteAllRules, getSimpleRule, getSimpleRuleOutput, @@ -30,43 +30,50 @@ import { getSimpleMlRule, getSimpleMlRuleOutput, waitForRuleSuccess, - getRuleForSignalTesting, - getRuleForSignalTestingWithTimestampOverride, + getRuleForAlertTesting, + getRuleForAlertTestingWithTimestampOverride, waitForAlertToComplete, - waitForSignalsToBePresent, - getThresholdRuleForSignalTesting, + waitForAlertsToBePresent, + getThresholdRuleForAlertTesting, waitForRulePartialFailure, createRule, deleteAllAlerts, -} from '../../utils'; -import { createUserAndRole, deleteUserAndRole } from '../../../common/services/security_solution'; -import { + removeUUIDFromActions, getActionsWithFrequencies, getActionsWithoutFrequencies, getSomeActionsWithFrequencies, -} from '../../utils/get_rule_actions'; -import { removeUUIDFromActions } from '../../utils/remove_uuid_from_actions'; + updateUsername, +} from '../utils'; +import { + createUserAndRole, + deleteUserAndRole, +} from '../../../../common/services/security_solution'; +import { EsArchivePathBuilder } from '../../../es_archive_path_builder'; -// eslint-disable-next-line import/no-default-export export default ({ getService }: FtrProviderContext) => { const esArchiver = getService('esArchiver'); const supertest = getService('supertest'); const supertestWithoutAuth = getService('supertestWithoutAuth'); const log = getService('log'); const es = getService('es'); + const config = getService('config'); + const ELASTICSEARCH_USERNAME = config.get('servers.kibana.username'); + const isServerless = config.get('serverless'); + const dataPathBuilder = new EsArchivePathBuilder(isServerless); + const path = dataPathBuilder.getPath('auditbeat/hosts'); - describe('create_rules', () => { + describe('@serverless @ess create_rules', () => { describe('creating rules', () => { before(async () => { - await esArchiver.load('x-pack/test/functional/es_archives/auditbeat/hosts'); + await esArchiver.load(path); }); after(async () => { - await esArchiver.unload('x-pack/test/functional/es_archives/auditbeat/hosts'); + await esArchiver.unload(path); }); beforeEach(async () => { - await createSignalsIndex(supertest, log); + await createAlertsIndex(supertest, log); }); afterEach(async () => { @@ -103,7 +110,8 @@ export default ({ getService }: FtrProviderContext) => { .expect(200); const bodyToCompare = removeServerGeneratedProperties(body); - expect(bodyToCompare).to.eql(getSimpleRuleOutput()); + const expectedRule = updateUsername(getSimpleRuleOutput(), ELASTICSEARCH_USERNAME); + expect(bodyToCompare).to.eql(expectedRule); }); /* @@ -127,7 +135,7 @@ export default ({ getService }: FtrProviderContext) => { */ it('should create a single rule with a rule_id and validate it ran successfully', async () => { const rule = { - ...getRuleForSignalTesting(['auditbeat-*']), + ...getRuleForAlertTesting(['auditbeat-*']), query: 'process.executable: "/usr/bin/sudo"', }; const { body } = await supertest @@ -141,7 +149,7 @@ export default ({ getService }: FtrProviderContext) => { }); it('should create a single rule with a rule_id and an index pattern that does not match anything available and partial failure for the rule', async () => { - const simpleRule = getRuleForSignalTesting(['does-not-exist-*']); + const simpleRule = getRuleForAlertTesting(['does-not-exist-*']); const { body } = await supertest .post(DETECTION_ENGINE_RULES_URL) .set('kbn-xsrf', 'true') @@ -171,7 +179,7 @@ export default ({ getService }: FtrProviderContext) => { it('should create a single rule with a rule_id and an index pattern that does not match anything and an index pattern that does and the rule should be successful', async () => { const rule = { - ...getRuleForSignalTesting(['does-not-exist-*', 'auditbeat-*']), + ...getRuleForAlertTesting(['does-not-exist-*', 'auditbeat-*']), query: 'process.executable: "/usr/bin/sudo"', }; const { body } = await supertest @@ -198,7 +206,7 @@ export default ({ getService }: FtrProviderContext) => { const expected = { actions: [], author: [], - created_by: 'elastic', + created_by: ELASTICSEARCH_USERNAME, description: 'Simple Rule Query', enabled: true, false_positives: [], @@ -220,7 +228,7 @@ export default ({ getService }: FtrProviderContext) => { setup: '', severity: 'high', severity_mapping: [], - updated_by: 'elastic', + updated_by: ELASTICSEARCH_USERNAME, tags: [], to: 'now', type: 'query', @@ -249,7 +257,11 @@ export default ({ getService }: FtrProviderContext) => { .expect(200); const bodyToCompare = removeServerGeneratedPropertiesIncludingRuleId(body); - expect(bodyToCompare).to.eql(getSimpleRuleOutputWithoutRuleId()); + const expectedRule = updateUsername( + getSimpleRuleOutputWithoutRuleId(), + ELASTICSEARCH_USERNAME + ); + expect(bodyToCompare).to.eql(expectedRule); }); it('creates a single Machine Learning rule from a legacy ML Rule format', async () => { @@ -265,7 +277,8 @@ export default ({ getService }: FtrProviderContext) => { .expect(200); const bodyToCompare = removeServerGeneratedProperties(body); - expect(bodyToCompare).to.eql(getSimpleMlRuleOutput()); + const expectedRule = updateUsername(getSimpleMlRuleOutput(), ELASTICSEARCH_USERNAME); + expect(bodyToCompare).to.eql(expectedRule); }); it('should create a single Machine Learning rule', async () => { @@ -277,7 +290,8 @@ export default ({ getService }: FtrProviderContext) => { .expect(200); const bodyToCompare = removeServerGeneratedProperties(body); - expect(bodyToCompare).to.eql(getSimpleMlRuleOutput()); + const expectedRule = updateUsername(getSimpleMlRuleOutput(), ELASTICSEARCH_USERNAME); + expect(bodyToCompare).to.eql(expectedRule); }); it('should cause a 409 conflict if we attempt to create the same rule_id twice', async () => { @@ -418,7 +432,7 @@ export default ({ getService }: FtrProviderContext) => { }); }); - describe('t1_analyst', () => { + describe('@brokenInServerless t1_analyst', () => { const role = ROLES.t1_analyst; beforeEach(async () => { @@ -442,7 +456,7 @@ export default ({ getService }: FtrProviderContext) => { describe('threshold validation', () => { it('should result in 400 error if no threshold-specific fields are provided', async () => { - const { threshold, ...rule } = getThresholdRuleForSignalTesting(['*']); + const { threshold, ...rule } = getThresholdRuleForAlertTesting(['*']); const { body } = await supertest .post(DETECTION_ENGINE_RULES_URL) .set('kbn-xsrf', 'true') @@ -458,7 +472,7 @@ export default ({ getService }: FtrProviderContext) => { }); it('should result in 400 error if more than 3 threshold fields', async () => { - const rule = getThresholdRuleForSignalTesting(['*']); + const rule = getThresholdRuleForAlertTesting(['*']); const { body } = await supertest .post(DETECTION_ENGINE_RULES_URL) .set('kbn-xsrf', 'true') @@ -479,7 +493,7 @@ export default ({ getService }: FtrProviderContext) => { }); it('should result in 400 error if threshold value is less than 1', async () => { - const rule = getThresholdRuleForSignalTesting(['*']); + const rule = getThresholdRuleForAlertTesting(['*']); const { body } = await supertest .post(DETECTION_ENGINE_RULES_URL) .set('kbn-xsrf', 'true') @@ -501,7 +515,7 @@ export default ({ getService }: FtrProviderContext) => { }); it('should result in 400 error if cardinality is also an agg field', async () => { - const rule = getThresholdRuleForSignalTesting(['*']); + const rule = getThresholdRuleForAlertTesting(['*']); const { body } = await supertest .post(DETECTION_ENGINE_RULES_URL) .set('kbn-xsrf', 'true') @@ -528,9 +542,9 @@ export default ({ getService }: FtrProviderContext) => { }); }); - describe('missing timestamps', () => { + describe('@brokenInServerless missing timestamps', () => { beforeEach(async () => { - await createSignalsIndex(supertest, log); + await createAlertsIndex(supertest, log); // to edit these files run the following script // cd $HOME/kibana/x-pack && nvm use && node ../scripts/es_archiver edit security_solution/timestamp_override await esArchiver.load( @@ -549,7 +563,7 @@ export default ({ getService }: FtrProviderContext) => { // defaults to event.ingested timestamp override. // event.ingested is one of the timestamp fields set on the es archive data // inside of x-pack/test/functional/es_archives/security_solution/timestamp_override/data.json.gz - const simpleRule = getRuleForSignalTestingWithTimestampOverride(['myfakeindex-1']); + const simpleRule = getRuleForAlertTestingWithTimestampOverride(['myfakeindex-1']); const { body } = await supertest .post(DETECTION_ENGINE_RULES_URL) .set('kbn-xsrf', 'true') @@ -583,7 +597,7 @@ export default ({ getService }: FtrProviderContext) => { // defaults to event.ingested timestamp override. // event.ingested is one of the timestamp fields set on the es archive data // inside of x-pack/test/functional/es_archives/security_solution/timestamp_override/data.json.gz - const simpleRule = getRuleForSignalTestingWithTimestampOverride(['myfa*']); + const simpleRule = getRuleForAlertTestingWithTimestampOverride(['myfa*']); const { body } = await supertest .post(DETECTION_ENGINE_RULES_URL) .set('kbn-xsrf', 'true') @@ -597,7 +611,7 @@ export default ({ getService }: FtrProviderContext) => { log, id: bodyId, }); - await waitForSignalsToBePresent(supertest, log, 2, [bodyId]); + await waitForAlertsToBePresent(supertest, log, 2, [bodyId]); const { body: rule } = await supertest .get(DETECTION_ENGINE_RULES_URL) @@ -611,7 +625,7 @@ export default ({ getService }: FtrProviderContext) => { }); }); - describe('per-action frequencies', () => { + describe('@brokenInServerless per-action frequencies', () => { const createSingleRule = async (rule: RuleCreateProps) => { const createdRule = await createRule(supertest, log, rule); createdRule.actions = removeUUIDFromActions(createdRule.actions); @@ -629,8 +643,7 @@ export default ({ getService }: FtrProviderContext) => { simpleRule.actions = actionsWithoutFrequencies; const createdRule = await createSingleRule(simpleRule); - - const expectedRule = getSimpleRuleOutput(); + const expectedRule = updateUsername(getSimpleRuleOutput(), ELASTICSEARCH_USERNAME); expectedRule.actions = actionsWithoutFrequencies.map((action) => ({ ...action, frequency: NOTIFICATION_DEFAULT_FREQUENCY, @@ -652,8 +665,7 @@ export default ({ getService }: FtrProviderContext) => { simpleRule.actions = actionsWithoutFrequencies; const createdRule = await createSingleRule(simpleRule); - - const expectedRule = getSimpleRuleOutput(); + const expectedRule = updateUsername(getSimpleRuleOutput(), ELASTICSEARCH_USERNAME); expectedRule.actions = actionsWithoutFrequencies.map((action) => ({ ...action, frequency: { summary: true, throttle, notifyWhen: 'onThrottleInterval' }, @@ -683,8 +695,7 @@ export default ({ getService }: FtrProviderContext) => { simpleRule.actions = actionsWithFrequencies; const createdRule = await createSingleRule(simpleRule); - - const expectedRule = getSimpleRuleOutput(); + const expectedRule = updateUsername(getSimpleRuleOutput(), ELASTICSEARCH_USERNAME); expectedRule.actions = actionsWithFrequencies; const rule = removeServerGeneratedProperties(createdRule); @@ -704,8 +715,7 @@ export default ({ getService }: FtrProviderContext) => { simpleRule.actions = someActionsWithFrequencies; const createdRule = await createSingleRule(simpleRule); - - const expectedRule = getSimpleRuleOutput(); + const expectedRule = updateUsername(getSimpleRuleOutput(), ELASTICSEARCH_USERNAME); expectedRule.actions = someActionsWithFrequencies.map((action) => ({ ...action, frequency: action.frequency ?? NOTIFICATION_DEFAULT_FREQUENCY, @@ -727,8 +737,7 @@ export default ({ getService }: FtrProviderContext) => { simpleRule.actions = someActionsWithFrequencies; const createdRule = await createSingleRule(simpleRule); - - const expectedRule = getSimpleRuleOutput(); + const expectedRule = updateUsername(getSimpleRuleOutput(), ELASTICSEARCH_USERNAME); expectedRule.actions = someActionsWithFrequencies.map((action) => ({ ...action, frequency: action.frequency ?? { diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rule_creation/index.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rule_creation/index.ts new file mode 100644 index 0000000000000..e6069caf96ee0 --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rule_creation/index.ts @@ -0,0 +1,13 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import { FtrProviderContext } from '../../../ftr_provider_context'; + +export default function ({ loadTestFile }: FtrProviderContext) { + describe('Rule creation API', function () { + loadTestFile(require.resolve('./create_rules')); + }); +} diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/serverless.config.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/serverless.config.ts new file mode 100644 index 0000000000000..8e9cbe781e5aa --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/serverless.config.ts @@ -0,0 +1,15 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { createTestConfig } from '../../config/serverless/config.base'; + +export default createTestConfig({ + testFiles: [require.resolve('.')], + junit: { + reportName: 'Detection Engine Serverless API Integration Tests', + }, +}); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/action/get_slack_action.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/action/get_slack_action.ts new file mode 100644 index 0000000000000..1d88f2cdbce73 --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/action/get_slack_action.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 const getSlackAction = () => ({ + actionTypeId: '.slack', + secrets: { + webhookUrl: 'http://localhost:123', + }, + name: 'Slack connector', +}); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/action/get_web_hook_action.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/action/get_web_hook_action.ts new file mode 100644 index 0000000000000..27a93b396b93f --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/action/get_web_hook_action.ts @@ -0,0 +1,19 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export const getWebHookAction = () => ({ + actionTypeId: '.webhook', + config: { + method: 'post', + url: 'http://localhost', + }, + secrets: { + user: 'example', + password: 'example', + }, + name: 'Some connector', +}); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/action/remove_uuid_from_actions.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/action/remove_uuid_from_actions.ts new file mode 100644 index 0000000000000..08d95bc750212 --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/action/remove_uuid_from_actions.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. + */ + +import { RuleActionArray } from '@kbn/securitysolution-io-ts-alerting-types'; + +export const removeUUIDFromActions = (actions: RuleActionArray): RuleActionArray => { + return actions.map(({ uuid, ...restOfAction }) => ({ + ...restOfAction, + })); +}; diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/alert/create_alerts_index.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/alert/create_alerts_index.ts new file mode 100644 index 0000000000000..932db176942d9 --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/alert/create_alerts_index.ts @@ -0,0 +1,37 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type SuperTest from 'supertest'; +import { ToolingLog } from '@kbn/tooling-log'; + +import { DETECTION_ENGINE_INDEX_URL } from '@kbn/security-solution-plugin/common/constants'; +import { countDownTest } from '../count_down_test'; + +/** + * Creates the alerts index for use inside of beforeEach blocks of tests + * This will retry 50 times before giving up and hopefully still not interfere with other tests + * @param supertest The supertest client library + */ +export const createAlertsIndex = async ( + supertest: SuperTest.SuperTest, + log: ToolingLog +): Promise => { + await countDownTest( + async () => { + await supertest + .post(DETECTION_ENGINE_INDEX_URL) + .set('kbn-xsrf', 'true') + .set('elastic-api-version', '2023-10-31') + .send(); + return { + passed: true, + }; + }, + 'createAlertsIndex', + log + ); +}; diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/alert/delete_all_alerts.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/alert/delete_all_alerts.ts new file mode 100644 index 0000000000000..e15aa4453282a --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/alert/delete_all_alerts.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 type SuperTest from 'supertest'; +import type { ToolingLog } from '@kbn/tooling-log'; +import type { Client } from '@elastic/elasticsearch'; +import { DETECTION_ENGINE_INDEX_URL } from '@kbn/security-solution-plugin/common/constants'; +import { countDownTest } from '../count_down_test'; + +/** + * Deletes all alerts from a given index or indices, defaults to `.alerts-security.alerts-*` + * For use inside of afterEach blocks of tests + */ +export const deleteAllAlerts = async ( + supertest: SuperTest.SuperTest, + log: ToolingLog, + es: Client, + index: Array<'.alerts-security.alerts-*' | '.preview.alerts-security.alerts-*'> = [ + '.alerts-security.alerts-*', + ] +): Promise => { + await countDownTest( + async () => { + await supertest + .delete(DETECTION_ENGINE_INDEX_URL) + .set('kbn-xsrf', 'true') + .set('elastic-api-version', '2023-10-31') + .send(); + await es.deleteByQuery({ + index, + body: { + query: { + match_all: {}, + }, + }, + refresh: true, + }); + return { + passed: true, + }; + }, + 'deleteAllAlerts', + log + ); +}; diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/alert/get_alerts_by_ids.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/alert/get_alerts_by_ids.ts new file mode 100644 index 0000000000000..ce2b7ed1a4cf4 --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/alert/get_alerts_by_ids.ts @@ -0,0 +1,56 @@ +/* + * 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 { SearchResponse } from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; +import type { ToolingLog } from '@kbn/tooling-log'; +import type SuperTest from 'supertest'; +import type { DetectionAlert } from '@kbn/security-solution-plugin/common/api/detection_engine'; +import type { RiskEnrichmentFields } from '@kbn/security-solution-plugin/server/lib/detection_engine/rule_types/utils/enrichments/types'; + +import { DETECTION_ENGINE_QUERY_SIGNALS_URL as DETECTION_ENGINE_QUERY_ALERTS_URL } from '@kbn/security-solution-plugin/common/constants'; +import { countDownTest } from '../count_down_test'; +import { getQueryAlertsId } from './get_query_alerts_ids'; + +/** + * Given an array of rule ids this will return only alerts based on that rule id both + * open and closed + * @param supertest agent + * @param ids Array of the rule ids + */ +export const getAlertsByIds = async ( + supertest: SuperTest.SuperTest, + log: ToolingLog, + ids: string[], + size?: number +): Promise> => { + const alertsOpen = await countDownTest>( + async () => { + const response = await supertest + .post(DETECTION_ENGINE_QUERY_ALERTS_URL) + .set('kbn-xsrf', 'true') + .send(getQueryAlertsId(ids, size)); + if (response.status !== 200) { + return { + passed: false, + errorMessage: `Status is not 200 as expected, it is: ${response.status}`, + }; + } else { + return { + passed: true, + returnValue: response.body, + }; + } + }, + 'getAlertsByIds', + log + ); + if (alertsOpen == null) { + throw new Error('Alerts not defined after countdown, cannot continue'); + } else { + return alertsOpen; + } +}; diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/alert/get_query_alerts_ids.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/alert/get_query_alerts_ids.ts new file mode 100644 index 0000000000000..d40b28d74ef39 --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/alert/get_query_alerts_ids.ts @@ -0,0 +1,23 @@ +/* + * 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_RULE_UUID } from '@kbn/rule-data-utils'; + +/** + * Given an array of ids for a test this will get the alerts + * created from that rule's regular id. + * @param ids The rule_id to search for alerts + */ +export const getQueryAlertsId = (ids: string[], size = 10) => ({ + size, + sort: ['@timestamp'], + query: { + terms: { + [ALERT_RULE_UUID]: ids, + }, + }, +}); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/alert/wait_for_alert_to_complete.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/alert/wait_for_alert_to_complete.ts new file mode 100644 index 0000000000000..fc71c7fa50aaf --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/alert/wait_for_alert_to_complete.ts @@ -0,0 +1,33 @@ +/* + * 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 { ToolingLog } from '@kbn/tooling-log'; +import type SuperTest from 'supertest'; + +import { waitFor } from '../wait_for'; + +export const waitForAlertToComplete = async ( + supertest: SuperTest.SuperTest, + log: ToolingLog, + id: string +): Promise => { + await waitFor( + async () => { + const response = await supertest.get(`/api/alerts/alert/${id}/state`).set('kbn-xsrf', 'true'); + if (response.status !== 200) { + log.debug( + `Did not get an expected 200 "ok" when waiting for an alert to complete (waitForAlertToComplete). CI issues could happen. Suspect this line if you are seeing CI issues. body: ${JSON.stringify( + response.body + )}, status: ${JSON.stringify(response.status)}` + ); + } + return response.body.previousStartedAt != null; + }, + 'waitForAlertToComplete', + log + ); +}; diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/alert/wait_for_alerts_to_be_present.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/alert/wait_for_alerts_to_be_present.ts new file mode 100644 index 0000000000000..e638bacf738c2 --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/alert/wait_for_alerts_to_be_present.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. + */ + +import type { ToolingLog } from '@kbn/tooling-log'; +import type SuperTest from 'supertest'; + +import { getAlertsByIds } from './get_alerts_by_ids'; +import { waitFor } from '../wait_for'; + +/** + * Waits for the signal hits to be greater than the supplied number + * before continuing with a default of at least one signal + * @param supertest Deps + * @param numberOfAlerts The number of alerts to wait for, default is 1 + */ +export const waitForAlertsToBePresent = async ( + supertest: SuperTest.SuperTest, + log: ToolingLog, + numberOfAlerts = 1, + alertIds: string[] +): Promise => { + await waitFor( + async () => { + const alertsOpen = await getAlertsByIds(supertest, log, alertIds, numberOfAlerts); + return alertsOpen.hits.hits.length >= numberOfAlerts; + }, + 'waitForAlertsToBePresent', + log + ); +}; diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/count_down_test.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/count_down_test.ts new file mode 100644 index 0000000000000..39292a9cbbbb7 --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/count_down_test.ts @@ -0,0 +1,78 @@ +/* + * 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 { ToolingLog } from '@kbn/tooling-log'; + +/** + * Does a plain countdown and checks against a boolean to determine if to wait and try again. + * This is useful for over the wire things that can cause issues such as conflict or timeouts + * for testing resiliency. + * @param functionToTest The function to test against + * @param name The name of the function to print if we encounter errors + * @param log The tooling logger + * @param retryCount The number of times to retry before giving up (has default) + * @param timeoutWait Time to wait before trying again (has default) + */ +export const countDownTest = async ( + functionToTest: () => Promise<{ + passed: boolean; + returnValue?: T | undefined; + errorMessage?: string; + }>, + name: string, + log: ToolingLog, + retryCount: number = 50, + timeoutWait = 250, + ignoreThrow: boolean = false +): Promise => { + if (retryCount > 0) { + try { + const testReturn = await functionToTest(); + if (!testReturn.passed) { + const error = testReturn.errorMessage != null ? ` error: ${testReturn.errorMessage},` : ''; + log.error(`Failure trying to ${name},${error} retries left are: ${retryCount - 1}`); + // retry, counting down, and delay a bit before + await new Promise((resolve) => setTimeout(resolve, timeoutWait)); + const returnValue = await countDownTest( + functionToTest, + name, + log, + retryCount - 1, + timeoutWait, + ignoreThrow + ); + return returnValue; + } else { + return testReturn.returnValue; + } + } catch (err) { + if (ignoreThrow) { + throw err; + } else { + log.error( + `Failure trying to ${name}, with exception message of: ${ + err.message + }, retries left are: ${retryCount - 1}` + ); + // retry, counting down, and delay a bit before + await new Promise((resolve) => setTimeout(resolve, timeoutWait)); + const returnValue = await countDownTest( + functionToTest, + name, + log, + retryCount - 1, + timeoutWait, + ignoreThrow + ); + return returnValue; + } + } + } else { + log.error(`Could not ${name}, no retries are left`); + return undefined; + } +}; diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/exception_list_and_item/exception_list/create_exception_list.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/exception_list_and_item/exception_list/create_exception_list.ts new file mode 100644 index 0000000000000..24ebabb5243b2 --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/exception_list_and_item/exception_list/create_exception_list.ts @@ -0,0 +1,68 @@ +/* + * 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 { ToolingLog } from '@kbn/tooling-log'; +import type SuperTest from 'supertest'; +import type { + CreateExceptionListSchema, + ExceptionListSchema, +} from '@kbn/securitysolution-io-ts-list-types'; + +import { EXCEPTION_LIST_URL } from '@kbn/securitysolution-list-constants'; +import { deleteExceptionList } from './delete_exception_list'; + +/** + * Helper to cut down on the noise in some of the tests. This checks for + * an expected 200 still and does not try to any retries. Creates exception lists + * @param supertest The supertest deps + * @param exceptionList The exception list to create + * @param log The tooling logger + */ +export const createExceptionList = async ( + supertest: SuperTest.SuperTest, + log: ToolingLog, + exceptionList: CreateExceptionListSchema +): Promise => { + const response = await supertest + .post(EXCEPTION_LIST_URL) + .set('kbn-xsrf', 'true') + .send(exceptionList); + + if (response.status === 409) { + if (exceptionList.list_id != null) { + log.error( + `When creating an exception list found an unexpected conflict (409) creating an exception list (createExceptionList), will attempt a cleanup and one time re-try. This usually indicates a bad cleanup or race condition within the tests: ${JSON.stringify( + response.body + )}, status: ${JSON.stringify(response.status)}` + ); + await deleteExceptionList(supertest, log, exceptionList.list_id); + const secondResponseTry = await supertest + .post(EXCEPTION_LIST_URL) + .set('kbn-xsrf', 'true') + .send(exceptionList); + if (secondResponseTry.status !== 200) { + throw new Error( + `Unexpected non 200 ok when attempting to create an exception list (second try): ${JSON.stringify( + response.body + )}` + ); + } else { + return secondResponseTry.body; + } + } else { + throw new Error('When creating an exception list found an unexpected conflict (404)'); + } + } else if (response.status !== 200) { + throw new Error( + `Unexpected non 200 ok when attempting to create an exception list: ${JSON.stringify( + response.status + )}` + ); + } else { + return response.body; + } +}; diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/exception_list_and_item/exception_list/delete_exception_list.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/exception_list_and_item/exception_list/delete_exception_list.ts new file mode 100644 index 0000000000000..6c5558a005b97 --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/exception_list_and_item/exception_list/delete_exception_list.ts @@ -0,0 +1,37 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { ToolingLog } from '@kbn/tooling-log'; +import type SuperTest from 'supertest'; +import { EXCEPTION_LIST_URL } from '@kbn/securitysolution-list-constants'; +import type { RuleResponse } from '@kbn/security-solution-plugin/common/api/detection_engine'; + +/** + * Helper to cut down on the noise in some of the tests. Does a delete of an exception list. + * It does not check for a 200 "ok" on this. + * @param supertest The supertest deps + * @param listId The exception list to delete + * @param log The tooling logger + */ +export const deleteExceptionList = async ( + supertest: SuperTest.SuperTest, + log: ToolingLog, + listId: string +): Promise => { + const response = await supertest + .delete(`${EXCEPTION_LIST_URL}?list_id=${listId}`) + .set('kbn-xsrf', 'true'); + if (response.status !== 200) { + log.error( + `Did not get an expected 200 "ok" when deleting an exception list (deleteExceptionList). CI issues could happen. Suspect this line if you are seeing CI issues. body: ${JSON.stringify( + response.body + )}, status: ${JSON.stringify(response.status)}` + ); + } + + return response.body; +}; diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/index.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/index.ts new file mode 100644 index 0000000000000..15681d103d8a0 --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/index.ts @@ -0,0 +1,41 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +export * from './rule/get_rule'; +export * from './rule/get_simple_rule'; +export * from './rule/create_rule'; +export * from './rule/delete_all_rules'; +export * from './rule/delete_rule'; +export * from './rule/get_simple_rule_output'; +export * from './rule/get_simple_rule_output_without_rule_id'; +export * from './rule/get_simple_rule_without_rule_id'; +export * from './rule/get_simple_rule_without_rule_id'; +export * from './rule/remove_server_generated_properties'; +export * from './rule/remove_server_generated_properties_including_rule_id'; +export * from './rule/get_simple_ml_rule'; +export * from './rule/get_simple_ml_rule_output'; +export * from './rule/wait_for_rule_status'; +export * from './rule/get_rule_for_alert_testing_with_timestamp_override'; +export * from './rule/get_rule_for_alert_testing'; +export * from './rule/get_threshold_rule_for_alert_testing'; +export * from './rule/get_rule_actions'; + +export * from './exception_list_and_item/exception_list/create_exception_list'; +export * from './exception_list_and_item/exception_list/delete_exception_list'; + +// TODO rename signal to alert +export * from './alert/create_alerts_index'; +export * from './alert/delete_all_alerts'; +export * from './alert/wait_for_alert_to_complete'; +export * from './alert/wait_for_alerts_to_be_present'; +export * from './alert/wait_for_alert_to_complete'; + +export * from './action/get_slack_action'; +export * from './action/get_web_hook_action'; +export * from './action/remove_uuid_from_actions'; + +export * from './count_down_test'; +export * from './update_username'; diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/route_with_namespace.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/route_with_namespace.ts new file mode 100644 index 0000000000000..07e5c4a8049e2 --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/route_with_namespace.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. + */ + +/** + * Generates a route string with an optional namespace. + * @param route the route string + * @param namespace [optional] the namespace to account for in the route + */ +export const routeWithNamespace = (route: string, namespace?: string) => + namespace ? `/s/${namespace}${route}` : route; diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/create_rule.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/create_rule.ts new file mode 100644 index 0000000000000..cd3fb09ced4e9 --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/create_rule.ts @@ -0,0 +1,74 @@ +/* + * 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 { ToolingLog } from '@kbn/tooling-log'; +import type SuperTest from 'supertest'; +import type { + RuleCreateProps, + RuleResponse, +} from '@kbn/security-solution-plugin/common/api/detection_engine'; + +import { DETECTION_ENGINE_RULES_URL } from '@kbn/security-solution-plugin/common/constants'; +import { deleteRule } from './delete_rule'; +import { routeWithNamespace } from '../route_with_namespace'; + +/** + * Helper to cut down on the noise in some of the tests. If this detects + * a conflict it will try to manually remove the rule before re-adding the rule one time and log + * and error about the race condition. + * rule a second attempt. It only re-tries adding the rule if it encounters a conflict once. + * @param supertest The supertest deps + * @param log The tooling logger + * @param rule The rule to create + */ +export const createRule = async ( + supertest: SuperTest.SuperTest, + log: ToolingLog, + rule: RuleCreateProps, + namespace?: string +): Promise => { + const route = routeWithNamespace(DETECTION_ENGINE_RULES_URL, namespace); + const response = await supertest + .post(route) + .set('kbn-xsrf', 'true') + .set('elastic-api-version', '2023-10-31') + .send(rule); + if (response.status === 409) { + if (rule.rule_id != null) { + log.debug( + `Did not get an expected 200 "ok" when creating a rule (createRule). CI issues could happen. Suspect this line if you are seeing CI issues. body: ${JSON.stringify( + response.body + )}, status: ${JSON.stringify(response.status)}` + ); + await deleteRule(supertest, rule.rule_id); + const secondResponseTry = await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .set('elastic-api-version', '2023-10-31') + .send(rule); + if (secondResponseTry.status !== 200) { + throw new Error( + `Unexpected non 200 ok when attempting to create a rule (second try): ${JSON.stringify( + response.body + )}` + ); + } else { + return secondResponseTry.body; + } + } else { + throw new Error('When creating a rule found an unexpected conflict (404)'); + } + } else if (response.status !== 200) { + throw new Error( + `Unexpected non 200 ok when attempting to create a rule: ${JSON.stringify( + response.status + )},${JSON.stringify(response, null, 4)}` + ); + } else { + return response.body; + } +}; diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/delete_all_rules.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/delete_all_rules.ts new file mode 100644 index 0000000000000..8fe87827e4e25 --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/delete_all_rules.ts @@ -0,0 +1,47 @@ +/* + * 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 { ToolingLog } from '@kbn/tooling-log'; +import type SuperTest from 'supertest'; + +import { + DETECTION_ENGINE_RULES_BULK_ACTION, + DETECTION_ENGINE_RULES_URL, +} from '@kbn/security-solution-plugin/common/constants'; +import { countDownTest } from '../count_down_test'; + +/** + * Removes all rules by looping over any found and removing them from REST. + * @param supertest The supertest agent. + */ +export const deleteAllRules = async ( + supertest: SuperTest.SuperTest, + log: ToolingLog +): Promise => { + await countDownTest( + async () => { + await supertest + .post(DETECTION_ENGINE_RULES_BULK_ACTION) + .send({ action: 'delete', query: '' }) + .set('kbn-xsrf', 'true') + .set('elastic-api-version', '2023-10-31'); + + const { body: finalCheck } = await supertest + .get(`${DETECTION_ENGINE_RULES_URL}/_find`) + .set('kbn-xsrf', 'true') + .set('elastic-api-version', '2023-10-31') + .send(); + return { + passed: finalCheck.data.length === 0, + }; + }, + 'deleteAllRules', + log, + 50, + 1000 + ); +}; diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/delete_rule.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/delete_rule.ts new file mode 100644 index 0000000000000..f4eff397aba0b --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/delete_rule.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 SuperTest from 'supertest'; +import type { RuleResponse } from '@kbn/security-solution-plugin/common/api/detection_engine'; + +import { DETECTION_ENGINE_RULES_URL } from '@kbn/security-solution-plugin/common/constants'; + +/** + * Helper to cut down on the noise in some of the tests. Does a delete of a rule. + * It does not check for a 200 "ok" on this. + * @param supertest The supertest deps + * @param ruleId The rule id to delete + */ +export const deleteRule = async ( + supertest: SuperTest.SuperTest, + ruleId: string +): Promise => { + const response = await supertest + .delete(`${DETECTION_ENGINE_RULES_URL}?rule_id=${ruleId}`) + .set('kbn-xsrf', 'true') + .set('elastic-api-version', '2023-10-31') + .expect(200); + + return response.body; +}; diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/get_rule.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/get_rule.ts new file mode 100644 index 0000000000000..32b2c0b1d5df6 --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/get_rule.ts @@ -0,0 +1,38 @@ +/* + * 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 { ToolingLog } from '@kbn/tooling-log'; +import type SuperTest from 'supertest'; +import type { RuleResponse } from '@kbn/security-solution-plugin/common/api/detection_engine'; + +import { DETECTION_ENGINE_RULES_URL } from '@kbn/security-solution-plugin/common/constants'; + +/** + * Helper to cut down on the noise in some of the tests. This gets + * a particular rule. + * @param supertest The supertest deps + * @param rule The rule to create + */ +export const getRule = async ( + supertest: SuperTest.SuperTest, + log: ToolingLog, + ruleId: string +): Promise => { + const response = await supertest + .get(`${DETECTION_ENGINE_RULES_URL}?rule_id=${ruleId}`) + .set('kbn-xsrf', 'true') + .set('elastic-api-version', '2023-10-31'); + + if (response.status !== 200) { + log.error( + `Did not get an expected 200 "ok" when getting a rule (getRule). CI issues could happen. Suspect this line if you are seeing CI issues. body: ${JSON.stringify( + response.body + )}, status: ${JSON.stringify(response.status)}` + ); + } + return response.body; +}; diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/get_rule_actions.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/get_rule_actions.ts new file mode 100644 index 0000000000000..3251d2b0a6b56 --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/get_rule_actions.ts @@ -0,0 +1,96 @@ +/* + * 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 SuperTest from 'supertest'; + +import { RuleActionArray } from '@kbn/securitysolution-io-ts-alerting-types'; +import { getSlackAction } from '..'; +import { getWebHookAction } from '..'; + +const createConnector = async ( + supertest: SuperTest.SuperTest, + payload: Record +) => + (await supertest.post('/api/actions/action').set('kbn-xsrf', 'true').send(payload).expect(200)) + .body; +const createWebHookConnector = (supertest: SuperTest.SuperTest) => + createConnector(supertest, getWebHookAction()); +const createSlackConnector = (supertest: SuperTest.SuperTest) => + createConnector(supertest, getSlackAction()); + +export const getActionsWithoutFrequencies = async ( + supertest: SuperTest.SuperTest +): Promise => { + const webHookAction = await createWebHookConnector(supertest); + const slackConnector = await createSlackConnector(supertest); + return [ + { + group: 'default', + id: webHookAction.id, + action_type_id: '.webhook', + params: { message: 'Email message' }, + }, + { + group: 'default', + id: slackConnector.id, + action_type_id: '.slack', + params: { message: 'Slack message' }, + }, + ]; +}; + +export const getActionsWithFrequencies = async ( + supertest: SuperTest.SuperTest +): Promise => { + const webHookAction = await createWebHookConnector(supertest); + const slackConnector = await createSlackConnector(supertest); + return [ + { + group: 'default', + id: webHookAction.id, + action_type_id: '.webhook', + params: { message: 'Email message' }, + frequency: { summary: true, throttle: null, notifyWhen: 'onActiveAlert' }, + }, + { + group: 'default', + id: slackConnector.id, + action_type_id: '.slack', + params: { message: 'Slack message' }, + frequency: { summary: false, throttle: '3d', notifyWhen: 'onThrottleInterval' }, + }, + ]; +}; + +export const getSomeActionsWithFrequencies = async ( + supertest: SuperTest.SuperTest +): Promise => { + const webHookAction = await createWebHookConnector(supertest); + const slackConnector = await createSlackConnector(supertest); + return [ + { + group: 'default', + id: webHookAction.id, + action_type_id: '.webhook', + params: { message: 'Email message' }, + frequency: { summary: true, throttle: null, notifyWhen: 'onActiveAlert' }, + }, + { + group: 'default', + id: slackConnector.id, + action_type_id: '.slack', + params: { message: 'Slack message' }, + frequency: { summary: false, throttle: '3d', notifyWhen: 'onThrottleInterval' }, + }, + { + group: 'default', + id: slackConnector.id, + action_type_id: '.slack', + params: { message: 'Slack message' }, + }, + ]; +}; diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/get_rule_for_alert_testing.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/get_rule_for_alert_testing.ts new file mode 100644 index 0000000000000..d6d51ebb52d00 --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/get_rule_for_alert_testing.ts @@ -0,0 +1,32 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { QueryRuleCreateProps } from '@kbn/security-solution-plugin/common/api/detection_engine'; + +/** + * This is a typical signal testing rule that is easy for most basic testing of output of alerts. + * It starts out in an enabled true state. The 'from' is set very far back to test the basics of signal + * creation and testing by getting all the alerts at once. + * @param ruleId The optional ruleId which is rule-1 by default. + * @param enabled Enables the rule on creation or not. Defaulted to true. + */ +export const getRuleForAlertTesting = ( + index: string[], + ruleId = 'rule-1', + enabled = true +): QueryRuleCreateProps => ({ + name: 'Signal Testing Query', + description: 'Tests a simple query', + enabled, + risk_score: 1, + rule_id: ruleId, + severity: 'high', + index, + type: 'query', + query: '*:*', + from: '1900-01-01T00:00:00.000Z', +}); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/get_rule_for_alert_testing_with_timestamp_override.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/get_rule_for_alert_testing_with_timestamp_override.ts new file mode 100644 index 0000000000000..e8201ce517cff --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/get_rule_for_alert_testing_with_timestamp_override.ts @@ -0,0 +1,27 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { QueryRuleCreateProps } from '@kbn/security-solution-plugin/common/api/detection_engine'; + +export const getRuleForAlertTestingWithTimestampOverride = ( + index: string[], + ruleId = 'rule-1', + enabled = true, + timestampOverride = 'event.ingested' +): QueryRuleCreateProps => ({ + name: 'Signal Testing Query', + description: 'Tests a simple query', + enabled, + risk_score: 1, + rule_id: ruleId, + severity: 'high', + index, + type: 'query', + query: '*:*', + timestamp_override: timestampOverride, + from: '1900-01-01T00:00:00.000Z', +}); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/get_simple_ml_rule.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/get_simple_ml_rule.ts new file mode 100644 index 0000000000000..a8fe28d54f24e --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/get_simple_ml_rule.ts @@ -0,0 +1,25 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { RuleCreateProps } from '@kbn/security-solution-plugin/common/api/detection_engine'; + +/** + * This is a representative ML rule payload as expected by the server + * @param ruleId The rule id + * @param enabled Set to tru to enable it, by default it is off + */ +export const getSimpleMlRule = (ruleId = 'rule-1', enabled = false): RuleCreateProps => ({ + name: 'Simple ML Rule', + description: 'Simple Machine Learning Rule', + enabled, + anomaly_threshold: 44, + risk_score: 1, + rule_id: ruleId, + severity: 'high', + machine_learning_job_id: ['some_job_id'], + type: 'machine_learning', +}); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/get_simple_ml_rule_output.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/get_simple_ml_rule_output.ts new file mode 100644 index 0000000000000..f65c458baa71e --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/get_simple_ml_rule_output.ts @@ -0,0 +1,25 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { MachineLearningRule } from '@kbn/security-solution-plugin/common/api/detection_engine'; +import { getMockSharedResponseSchema } from './get_simple_rule_output'; +import { removeServerGeneratedProperties } from './remove_server_generated_properties'; + +const getBaseMlRuleOutput = (ruleId = 'rule-1'): MachineLearningRule => { + return { + ...getMockSharedResponseSchema(ruleId), + name: 'Simple ML Rule', + description: 'Simple Machine Learning Rule', + anomaly_threshold: 44, + machine_learning_job_id: ['some_job_id'], + type: 'machine_learning', + }; +}; + +export const getSimpleMlRuleOutput = (ruleId = 'rule-1') => { + return removeServerGeneratedProperties(getBaseMlRuleOutput(ruleId)); +}; diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/get_simple_rule.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/get_simple_rule.ts new file mode 100644 index 0000000000000..f5e88e34bd62c --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/get_simple_rule.ts @@ -0,0 +1,25 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { QueryRuleCreateProps } from '@kbn/security-solution-plugin/common/api/detection_engine'; + +/** + * This is a typical simple rule for testing that is easy for most basic testing + * @param ruleId + * @param enabled Enables the rule on creation or not. Defaulted to true. + */ +export const getSimpleRule = (ruleId = 'rule-1', enabled = false): QueryRuleCreateProps => ({ + name: 'Simple Rule Query', + description: 'Simple Rule Query', + enabled, + risk_score: 1, + rule_id: ruleId, + severity: 'high', + index: ['auditbeat-*'], + type: 'query', + query: 'user.name: root or user.name: admin', +}); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/get_simple_rule_output.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/get_simple_rule_output.ts new file mode 100644 index 0000000000000..0a9eec4906a14 --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/get_simple_rule_output.ts @@ -0,0 +1,85 @@ +/* + * 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 { + RuleResponse, + SharedResponseProps, +} from '@kbn/security-solution-plugin/common/api/detection_engine'; +import { removeServerGeneratedProperties } from './remove_server_generated_properties'; + +export const getMockSharedResponseSchema = ( + ruleId = 'rule-1', + enabled = false +): SharedResponseProps => ({ + actions: [], + author: [], + created_by: 'elastic', + description: 'Simple Rule Query', + enabled, + false_positives: [], + from: 'now-6m', + immutable: false, + interval: '5m', + rule_id: ruleId, + output_index: '', + max_signals: 100, + related_integrations: [], + required_fields: [], + risk_score: 1, + risk_score_mapping: [], + name: 'Simple Rule Query', + references: [], + setup: '', + severity: 'high' as const, + severity_mapping: [], + updated_by: 'elastic', + tags: [], + to: 'now', + threat: [], + throttle: undefined, + exceptions_list: [], + version: 1, + revision: 0, + id: 'id', + updated_at: '2020-07-08T16:36:32.377Z', + created_at: '2020-07-08T16:36:32.377Z', + building_block_type: undefined, + note: undefined, + license: undefined, + outcome: undefined, + alias_target_id: undefined, + alias_purpose: undefined, + timeline_id: undefined, + timeline_title: undefined, + meta: undefined, + rule_name_override: undefined, + timestamp_override: undefined, + timestamp_override_fallback_disabled: undefined, + namespace: undefined, + investigation_fields: undefined, +}); + +const getQueryRuleOutput = (ruleId = 'rule-1', enabled = false): RuleResponse => ({ + ...getMockSharedResponseSchema(ruleId, enabled), + index: ['auditbeat-*'], + language: 'kuery', + query: 'user.name: root or user.name: admin', + type: 'query', + data_view_id: undefined, + filters: undefined, + saved_id: undefined, + response_actions: undefined, + alert_suppression: undefined, +}); + +/** + * This is the typical output of a simple rule that Kibana will output with all the defaults + * except for the server generated properties. Useful for testing end to end tests. + */ +export const getSimpleRuleOutput = (ruleId = 'rule-1', enabled = false) => { + return removeServerGeneratedProperties(getQueryRuleOutput(ruleId, enabled)); +}; diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/get_simple_rule_output_without_rule_id.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/get_simple_rule_output_without_rule_id.ts new file mode 100644 index 0000000000000..56b5ab66773bb --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/get_simple_rule_output_without_rule_id.ts @@ -0,0 +1,21 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { getSimpleRuleOutput } from './get_simple_rule_output'; +import { RuleWithoutServerGeneratedProperties } from './remove_server_generated_properties'; + +/** + * This is the typical output of a simple rule that Kibana will output with all the defaults except + * for all the server generated properties such as created_by. Useful for testing end to end tests. + */ +export const getSimpleRuleOutputWithoutRuleId = ( + ruleId = 'rule-1' +): Omit => { + const rule = getSimpleRuleOutput(ruleId); + const { rule_id: rId, ...ruleWithoutRuleId } = rule; + return ruleWithoutRuleId; +}; diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/get_simple_rule_without_rule_id.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/get_simple_rule_without_rule_id.ts new file mode 100644 index 0000000000000..ad6ab7803ec21 --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/get_simple_rule_without_rule_id.ts @@ -0,0 +1,19 @@ +/* + * 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 { RuleCreateProps } from '@kbn/security-solution-plugin/common/api/detection_engine'; +import { getSimpleRule } from './get_simple_rule'; + +/** + * This is a typical simple rule for testing that is easy for most basic testing + */ +export const getSimpleRuleWithoutRuleId = (): RuleCreateProps => { + const simpleRule = getSimpleRule(); + // eslint-disable-next-line @typescript-eslint/naming-convention + const { rule_id, ...ruleWithoutId } = simpleRule; + return ruleWithoutId; +}; diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/get_threshold_rule_for_alert_testing.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/get_threshold_rule_for_alert_testing.ts new file mode 100644 index 0000000000000..f66e342a7431c --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/get_threshold_rule_for_alert_testing.ts @@ -0,0 +1,31 @@ +/* + * 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 { ThresholdRuleCreateProps } from '@kbn/security-solution-plugin/common/api/detection_engine'; +import { getRuleForAlertTesting } from './get_rule_for_alert_testing'; + +/** + * This is a typical signal testing rule that is easy for most basic testing of output of Threshold alerts. + * It starts out in an enabled true state. The 'from' is set very far back to test the basics of signal + * creation for Threshold and testing by getting all the alerts at once. + * @param ruleId The optional ruleId which is threshold-rule by default. + * @param enabled Enables the rule on creation or not. Defaulted to true. + */ +export const getThresholdRuleForAlertTesting = ( + index: string[], + ruleId = 'threshold-rule', + enabled = true +): ThresholdRuleCreateProps => ({ + ...getRuleForAlertTesting(index, ruleId, enabled), + type: 'threshold', + language: 'kuery', + query: '*:*', + threshold: { + field: 'process.name', + value: 21, + }, +}); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/remove_server_generated_properties.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/remove_server_generated_properties.ts new file mode 100644 index 0000000000000..9f202c464b06a --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/remove_server_generated_properties.ts @@ -0,0 +1,29 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import type { RuleResponse } from '@kbn/security-solution-plugin/common/api/detection_engine'; +import { omit, pickBy } from 'lodash'; + +const serverGeneratedProperties = ['id', 'created_at', 'updated_at', 'execution_summary'] as const; + +type ServerGeneratedProperties = typeof serverGeneratedProperties[number]; +export type RuleWithoutServerGeneratedProperties = Omit; + +/** + * This will remove server generated properties such as date times, etc... + * @param rule Rule to pass in to remove typical server generated properties + */ +export const removeServerGeneratedProperties = ( + rule: RuleResponse +): RuleWithoutServerGeneratedProperties => { + const removedProperties = omit(rule, serverGeneratedProperties); + + // We're only removing undefined values, so this cast correctly narrows the type + return pickBy( + removedProperties, + (value) => value !== undefined + ) as RuleWithoutServerGeneratedProperties; +}; diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/remove_server_generated_properties_including_rule_id.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/remove_server_generated_properties_including_rule_id.ts new file mode 100644 index 0000000000000..1b57b5663ec23 --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/remove_server_generated_properties_including_rule_id.ts @@ -0,0 +1,23 @@ +/* + * 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 { RuleResponse } from '@kbn/security-solution-plugin/common/api/detection_engine'; + +import { removeServerGeneratedProperties } from './remove_server_generated_properties'; + +/** + * This will remove server generated properties such as date times, etc... including the rule_id + * @param rule Rule to pass in to remove typical server generated properties + */ +export const removeServerGeneratedPropertiesIncludingRuleId = ( + rule: RuleResponse +): Partial => { + const ruleWithRemovedProperties = removeServerGeneratedProperties(rule); + // eslint-disable-next-line @typescript-eslint/naming-convention + const { rule_id, ...additionalRuledIdRemoved } = ruleWithRemovedProperties; + return additionalRuledIdRemoved; +}; diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/wait_for_rule_status.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/wait_for_rule_status.ts new file mode 100644 index 0000000000000..af0838b29613d --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rule/wait_for_rule_status.ts @@ -0,0 +1,82 @@ +/* + * 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 { ToolingLog } from '@kbn/tooling-log'; +import type SuperTest from 'supertest'; +import { DETECTION_ENGINE_RULES_URL } from '@kbn/security-solution-plugin/common/constants'; +import { + RuleExecutionStatus, + RuleExecutionStatusEnum, +} from '@kbn/security-solution-plugin/common/api/detection_engine/rule_monitoring'; +import { waitFor } from '../wait_for'; +import { routeWithNamespace } from '../route_with_namespace'; + +interface WaitForRuleStatusBaseParams { + supertest: SuperTest.SuperTest; + log: ToolingLog; + afterDate?: Date; + namespace?: string; +} + +interface WaitForRuleStatusWithId extends WaitForRuleStatusBaseParams { + id: string; + ruleId?: never; +} + +interface WaitForRuleStatusWithRuleId extends WaitForRuleStatusBaseParams { + ruleId: string; + id?: never; +} + +export type WaitForRuleStatusParams = WaitForRuleStatusWithId | WaitForRuleStatusWithRuleId; + +/** + * Waits for rule to settle in a provided status. + * Depending on wether `id` or `ruleId` provided it may impact the behavior. + * - `id` leads to fetching a rule via ES Get API (rulesClient.resolve -> SOClient.resolve -> ES Get API) + * - `ruleId` leads to fetching a rule via ES Search API (rulesClient.find -> SOClient.find -> ES Search API) + * ES Search API may return outdated data while ES Get API always returns fresh data + */ +export const waitForRuleStatus = async ( + expectedStatus: RuleExecutionStatus, + { supertest, log, afterDate, namespace, ...idOrRuleId }: WaitForRuleStatusParams +): Promise => { + await waitFor( + async () => { + const query = 'id' in idOrRuleId ? { id: idOrRuleId.id } : { rule_id: idOrRuleId.ruleId }; + const route = routeWithNamespace(DETECTION_ENGINE_RULES_URL, namespace); + const response = await supertest + .get(route) + .set('kbn-xsrf', 'true') + .set('elastic-api-version', '2023-10-31') + .query(query) + .expect(200); + + // TODO: https://github.com/elastic/kibana/pull/121644 clean up, make type-safe + const rule = response.body; + const ruleStatus = rule?.execution_summary?.last_execution.status; + const ruleStatusDate = rule?.execution_summary?.last_execution.date; + + return ( + rule != null && + ruleStatus === expectedStatus && + (afterDate ? new Date(ruleStatusDate) > afterDate : true) + ); + }, + 'waitForRuleStatus', + log + ); +}; + +export const waitForRuleSuccess = (params: WaitForRuleStatusParams): Promise => + waitForRuleStatus(RuleExecutionStatusEnum.succeeded, params); + +export const waitForRulePartialFailure = (params: WaitForRuleStatusParams): Promise => + waitForRuleStatus(RuleExecutionStatusEnum['partial failure'], params); + +export const waitForRuleFailure = (params: WaitForRuleStatusParams): Promise => + waitForRuleStatus(RuleExecutionStatusEnum.failed, params); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/update_username.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/update_username.ts new file mode 100644 index 0000000000000..4f8162e0eecab --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/update_username.ts @@ -0,0 +1,16 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +export const updateUsername = >( + entity: T, + username: string +): T & { created_by: string; updated_by: string } => { + return { + ...entity, + created_by: username, + updated_by: username, + }; +}; diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/wait_for.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/wait_for.ts new file mode 100644 index 0000000000000..dfa20bd7019d8 --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/wait_for.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 type { ToolingLog } from '@kbn/tooling-log'; + +// Similar to ReactJs's waitFor from here: https://testing-library.com/docs/dom-testing-library/api-async#waitfor +export const waitFor = async ( + functionToTest: () => Promise, + functionName: string, + log: ToolingLog, + maxTimeout: number = 400000, + timeoutWait: number = 250 +): Promise => { + let found = false; + let numberOfTries = 0; + const maxTries = Math.floor(maxTimeout / timeoutWait); + while (!found && numberOfTries < maxTries) { + if (await functionToTest()) { + found = true; + } else { + log.debug(`Try number ${numberOfTries} out of ${maxTries} for function ${functionName}`); + numberOfTries++; + } + + await new Promise((resolveTimeout) => setTimeout(resolveTimeout, timeoutWait)); + } + + if (!found) { + throw new Error(`timed out waiting for function condition to be true within ${functionName}`); + } +}; diff --git a/x-pack/test/security_solution_api_integration/test_suites/index.ts b/x-pack/test/security_solution_api_integration/test_suites/index.ts new file mode 100644 index 0000000000000..2f9c0eda7a61b --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/index.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. + */ + +import { FtrProviderContext } from '../ftr_provider_context'; + +export default function ({ loadTestFile }: FtrProviderContext) { + describe('Security solution API', function () { + loadTestFile(require.resolve('./detections_response')); + }); +} diff --git a/x-pack/test/security_solution_api_integration/tsconfig.json b/x-pack/test/security_solution_api_integration/tsconfig.json new file mode 100644 index 0000000000000..81d57dd0617fb --- /dev/null +++ b/x-pack/test/security_solution_api_integration/tsconfig.json @@ -0,0 +1,31 @@ +{ + "extends": "../../../tsconfig.base.json", + "compilerOptions": { + "outDir": "target/types", + "types": ["node", "jest","@kbn/ambient-ftr-types"] + }, + "include": [ + "**/*", + "../../../typings/**/*", + "../../../packages/kbn-test/types/ftr_globals/**/*", + ], + "exclude": [ + "target/**/*" + ], + "kbn_references": [ + { "path": "../../test_serverless/tsconfig.json" }, + { "path": "../../test_serverless/api_integration/**/*" }, + { "path": "../../test_serverless/shared/**/*" }, + { "path": "../../api_integration/services/**/*" }, + "@kbn/dev-utils", + "@kbn/test", + "@kbn/expect", + "@kbn/security-solution-plugin", + "@kbn/securitysolution-io-ts-list-types", + "@kbn/lists-plugin", + "@kbn/securitysolution-io-ts-alerting-types", + "@kbn/tooling-log", + "@kbn/rule-data-utils", + "@kbn/securitysolution-list-constants" + ] +} diff --git a/x-pack/test/tsconfig.json b/x-pack/test/tsconfig.json index acdfe3875a0df..5da72a7c99d5f 100644 --- a/x-pack/test/tsconfig.json +++ b/x-pack/test/tsconfig.json @@ -18,7 +18,7 @@ "../../typings/**/*", "../../packages/kbn-test/types/ftr_globals/**/*" ], - "exclude": ["security_solution_cypress/cypress/**/*", "target/**/*", "*/plugins/**/*", "*/packages/**/*", "*/*/packages/**/*" ], + "exclude": ["security_solution_cypress/cypress/**/*", "target/**/*", "*/plugins/**/*", "*/packages/**/*", "*/*/packages/**/*","security_solution_api_integration/**/*" ], "kbn_references": [ { "path": "../../test/tsconfig.json" }, "@kbn/core", From 31f285a1e1c79ee7888715959e6112da217d67a6 Mon Sep 17 00:00:00 2001 From: Maxim Kholod Date: Wed, 11 Oct 2023 13:39:40 +0200 Subject: [PATCH 11/79] [Cloud Security] Set up first api integration tests in serverless (#167169) ## Summary This PR is copying over part of the API integration tests for the `cloud_security_posture` plugin. It's a part of the work on https://github.com/elastic/security-team/issues/7439. Some tests are not yet copied over as they need more research, as they rely on either creating new users in Kibana or on fleet utils. This functionality is not yet available in serverless out of the box. Why copy? From [Kibana Serverless e2e Test Guide](https://docs.google.com/document/d/1tiax7xoDYwFXYZjRTgVKkVMjN-SQzBWk4yn1JY6Z5UY/edit): > Stateful tests should be copied over and modified as required for these features to ensure thorough coverage. which tests are copied and adopted for serverless: `tests/api_integration/apis/cloud_security_posture/status/status_not_deployed_not_installed` `tests/api_integration/apis/cloud_security_posture/status/status_indexed` `tests/api_integration/apis/cloud_security_posture/status/status_indexing` `tests/api_integration/apis/cloud_security_posture/benchmark` `tests/api_integration/apis/cloud_security_posture/get_csp_rule_template` `tests/cloud_security_posture_api/telemetry` which tests are not yet adopted for serverless: `tests/api_integration/apis/cloud_security_posture/status/status_unprivileged` (user/roles model is different in serverless) `tests/api_integration/apis/cloud_security_posture/status/status_waiting_for_results` (fleet test utils are not available) `tests/api_integration/apis/cloud_security_posture/status/status_index_timeout` (fleet test utils are not available) --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- .github/CODEOWNERS | 1 + .../apis/cloud_security_posture/benchmark.ts | 64 +-- .../get_csp_rule_template.ts | 62 +-- .../apis/cloud_security_posture/helper.ts | 5 +- .../cloud_security_posture/benchmark.ts | 165 +++++++ .../get_csp_rule_template.ts | 244 ++++++++++ .../security/cloud_security_posture/index.ts | 27 ++ .../status/status_indexed.ts | 143 ++++++ .../status/status_indexing.ts | 142 ++++++ .../status_not_deployed_not_installed.ts | 163 +++++++ .../cloud_security_posture/telemetry.ts | 415 ++++++++++++++++++ .../test_suites/security/index.ts | 1 + x-pack/test_serverless/tsconfig.json | 1 + 13 files changed, 1307 insertions(+), 126 deletions(-) create mode 100644 x-pack/test_serverless/api_integration/test_suites/security/cloud_security_posture/benchmark.ts create mode 100644 x-pack/test_serverless/api_integration/test_suites/security/cloud_security_posture/get_csp_rule_template.ts create mode 100644 x-pack/test_serverless/api_integration/test_suites/security/cloud_security_posture/index.ts create mode 100644 x-pack/test_serverless/api_integration/test_suites/security/cloud_security_posture/status/status_indexed.ts create mode 100644 x-pack/test_serverless/api_integration/test_suites/security/cloud_security_posture/status/status_indexing.ts create mode 100644 x-pack/test_serverless/api_integration/test_suites/security/cloud_security_posture/status/status_not_deployed_not_installed.ts create mode 100644 x-pack/test_serverless/api_integration/test_suites/security/cloud_security_posture/telemetry.ts diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 7090f368b0165..bd7585c307486 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1395,6 +1395,7 @@ x-pack/test/detection_engine_api_integration/security_and_spaces/group10/risk_en /x-pack/test/cloud_security_posture_api/ @elastic/kibana-cloud-security-posture /x-pack/test_serverless/functional/test_suites/security/ftr/cloud_security_posture/ @elastic/kibana-cloud-security-posture /x-pack/test_serverless/functional/test_suites/security/config.cloud_security_posture.ts @elastic/kibana-cloud-security-posture +/x-pack/test_serverless/api_integration/test_suites/security/cloud_security_posture/ @elastic/kibana-cloud-security-posture # Security Solution onboarding tour /x-pack/plugins/security_solution/public/common/components/guided_onboarding @elastic/security-threat-hunting-explore diff --git a/x-pack/test/api_integration/apis/cloud_security_posture/benchmark.ts b/x-pack/test/api_integration/apis/cloud_security_posture/benchmark.ts index 1e7cfc4c7aec7..4a22015621f1b 100644 --- a/x-pack/test/api_integration/apis/cloud_security_posture/benchmark.ts +++ b/x-pack/test/api_integration/apis/cloud_security_posture/benchmark.ts @@ -6,10 +6,9 @@ */ import expect from '@kbn/expect'; import type { GetBenchmarkResponse } from '@kbn/cloud-security-posture-plugin/common/types'; -import type { SuperTest, Test } from 'supertest'; import { ELASTIC_HTTP_VERSION_HEADER } from '@kbn/core-http-common'; import { FtrProviderContext } from '../../ftr_provider_context'; - +import { createPackagePolicy } from './helper'; export default function ({ getService }: FtrProviderContext) { const supertest = getService('supertest'); const esArchiver = getService('esArchiver'); @@ -156,64 +155,3 @@ export default function ({ getService }: FtrProviderContext) { }); }); } - -export async function createPackagePolicy( - supertest: SuperTest, - agentPolicyId: string, - policyTemplate: string, - input: string, - deployment: string, - posture: string, - packageName: string -) { - const version = posture === 'kspm' || posture === 'cspm' ? '1.2.8' : '1.3.0-preview2'; - const title = 'Security Posture Management'; - const streams = [ - { - enabled: false, - data_stream: { - type: 'logs', - dataset: 'cloud_security_posture.vulnerabilities', - }, - }, - ]; - - const inputTemplate = { - enabled: true, - type: input, - policy_template: policyTemplate, - }; - - const inputs = posture === 'vuln_mgmt' ? { ...inputTemplate, streams } : { ...inputTemplate }; - - const { body: postPackageResponse } = await supertest - .post(`/api/fleet/package_policies`) - .set('kbn-xsrf', 'xxxx') - .send({ - force: true, - name: packageName, - description: '', - namespace: 'default', - policy_id: agentPolicyId, - enabled: true, - inputs: [inputs], - package: { - name: 'cloud_security_posture', - title, - version, - }, - vars: { - deployment: { - value: deployment, - type: 'text', - }, - posture: { - value: posture, - type: 'text', - }, - }, - }) - .expect(200); - - return postPackageResponse.item; -} diff --git a/x-pack/test/api_integration/apis/cloud_security_posture/get_csp_rule_template.ts b/x-pack/test/api_integration/apis/cloud_security_posture/get_csp_rule_template.ts index 99fa403c22635..233987100ebfd 100644 --- a/x-pack/test/api_integration/apis/cloud_security_posture/get_csp_rule_template.ts +++ b/x-pack/test/api_integration/apis/cloud_security_posture/get_csp_rule_template.ts @@ -7,9 +7,9 @@ import expect from '@kbn/expect'; import { ELASTIC_HTTP_VERSION_HEADER } from '@kbn/core-http-common'; import type { GetCspRuleTemplateResponse } from '@kbn/cloud-security-posture-plugin/common/types'; -import type { SuperTest, Test } from 'supertest'; import { CspRuleTemplate } from '@kbn/cloud-security-posture-plugin/common/schemas'; import { FtrProviderContext } from '../../ftr_provider_context'; +import { createPackagePolicy } from './helper'; export default function ({ getService }: FtrProviderContext) { const supertest = getService('supertest'); @@ -232,63 +232,3 @@ export default function ({ getService }: FtrProviderContext) { }); }); } - -export async function createPackagePolicy( - supertest: SuperTest, - agentPolicyId: string, - policyTemplate: string, - input: string, - deployment: string, - posture: string -) { - const version = posture === 'kspm' || posture === 'cspm' ? '1.2.8' : '1.3.0-preview2'; - const title = 'Security Posture Management'; - const streams = [ - { - enabled: false, - data_stream: { - type: 'logs', - dataset: 'cloud_security_posture.vulnerabilities', - }, - }, - ]; - - const inputTemplate = { - enabled: true, - type: input, - policy_template: policyTemplate, - }; - - const inputs = posture === 'vuln_mgmt' ? { ...inputTemplate, streams } : { ...inputTemplate }; - - const { body: postPackageResponse } = await supertest - .post(`/api/fleet/package_policies`) - .set('kbn-xsrf', 'xxxx') - .send({ - force: true, - name: 'cloud_security_posture-1', - description: '', - namespace: 'default', - policy_id: agentPolicyId, - enabled: true, - inputs: [inputs], - package: { - name: 'cloud_security_posture', - title, - version, - }, - vars: { - deployment: { - value: deployment, - type: 'text', - }, - posture: { - value: posture, - type: 'text', - }, - }, - }) - .expect(200); - - return postPackageResponse.item; -} diff --git a/x-pack/test/api_integration/apis/cloud_security_posture/helper.ts b/x-pack/test/api_integration/apis/cloud_security_posture/helper.ts index 79aede12385db..d04d819e62bd6 100644 --- a/x-pack/test/api_integration/apis/cloud_security_posture/helper.ts +++ b/x-pack/test/api_integration/apis/cloud_security_posture/helper.ts @@ -47,7 +47,8 @@ export async function createPackagePolicy( policyTemplate: string, input: string, deployment: string, - posture: string + posture: string, + packageName: string = 'cloud_security_posture-1' ) { const version = '1.3.0'; const title = 'Security Posture Management'; @@ -74,7 +75,7 @@ export async function createPackagePolicy( .set('kbn-xsrf', 'xxxx') .send({ force: true, - name: 'cloud_security_posture-1', + name: packageName, description: '', namespace: 'default', policy_id: agentPolicyId, diff --git a/x-pack/test_serverless/api_integration/test_suites/security/cloud_security_posture/benchmark.ts b/x-pack/test_serverless/api_integration/test_suites/security/cloud_security_posture/benchmark.ts new file mode 100644 index 0000000000000..a0fd49e24e34a --- /dev/null +++ b/x-pack/test_serverless/api_integration/test_suites/security/cloud_security_posture/benchmark.ts @@ -0,0 +1,165 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import expect from '@kbn/expect'; +import type { GetBenchmarkResponse } from '@kbn/cloud-security-posture-plugin/common/types'; +import { + ELASTIC_HTTP_VERSION_HEADER, + X_ELASTIC_INTERNAL_ORIGIN_REQUEST, +} from '@kbn/core-http-common'; +import { FtrProviderContext } from '../../../ftr_provider_context'; +import { createPackagePolicy } from '../../../../../test/api_integration/apis/cloud_security_posture/helper'; // eslint-disable-line @kbn/imports/no_boundary_crossing + +export default function ({ getService }: FtrProviderContext) { + const supertest = getService('supertest'); + const esArchiver = getService('esArchiver'); + const kibanaServer = getService('kibanaServer'); + + describe('GET /internal/cloud_security_posture/benchmark', () => { + let agentPolicyId: string; + let agentPolicyId2: string; + let agentPolicyId3: string; + let agentPolicyId4: string; + + beforeEach(async () => { + await kibanaServer.savedObjects.cleanStandardList(); + await esArchiver.load('x-pack/test/functional/es_archives/fleet/empty_fleet_server'); + + const { body: agentPolicyResponse } = await supertest + .post(`/api/fleet/agent_policies`) + .set('kbn-xsrf', 'xxxx') + .send({ + name: 'Test policy', + namespace: 'default', + }); + + agentPolicyId = agentPolicyResponse.item.id; + + const { body: agentPolicyResponse2 } = await supertest + .post(`/api/fleet/agent_policies`) + .set('kbn-xsrf', 'xxxx') + .send({ + name: 'Test policy 2', + namespace: 'default', + }); + + agentPolicyId2 = agentPolicyResponse2.item.id; + + const { body: agentPolicyResponse3 } = await supertest + .post(`/api/fleet/agent_policies`) + .set('kbn-xsrf', 'xxxx') + .send({ + name: 'Test policy 3', + namespace: 'default', + }); + + agentPolicyId3 = agentPolicyResponse3.item.id; + + const { body: agentPolicyResponse4 } = await supertest + .post(`/api/fleet/agent_policies`) + .set('kbn-xsrf', 'xxxx') + .send({ + name: 'Test policy 4', + namespace: 'default', + }); + + agentPolicyId4 = agentPolicyResponse4.item.id; + + await createPackagePolicy( + supertest, + agentPolicyId, + 'cspm', + 'cloudbeat/cis_aws', + 'aws', + 'cspm', + 'CSPM-1' + ); + + await createPackagePolicy( + supertest, + agentPolicyId2, + 'kspm', + 'cloudbeat/cis_k8s', + 'vanilla', + 'kspm', + 'KSPM-1' + ); + + await createPackagePolicy( + supertest, + agentPolicyId3, + 'vuln_mgmt', + 'cloudbeat/vuln_mgmt_aws', + 'aws', + 'vuln_mgmt', + 'CNVM-1' + ); + + await createPackagePolicy( + supertest, + agentPolicyId4, + 'kspm', + 'cloudbeat/cis_k8s', + 'vanilla', + 'kspm', + 'KSPM-2' + ); + }); + + afterEach(async () => { + await kibanaServer.savedObjects.cleanStandardList(); + await esArchiver.unload('x-pack/test/functional/es_archives/fleet/empty_fleet_server'); + }); + + it(`Should return non-empty array filled with Rules if user has CSP integrations`, async () => { + const { body: res }: { body: GetBenchmarkResponse } = await supertest + .get(`/internal/cloud_security_posture/benchmarks`) + .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'xxx') + .set('kbn-xsrf', 'xxxx') + .expect(200); + + expect(res.items.length).equal(3); + expect(res.total).equal(3); + }); + + it(`Should return array size 2 when we set per page to be only 2 (total element is still 3)`, async () => { + const { body: res }: { body: GetBenchmarkResponse } = await supertest + .get(`/internal/cloud_security_posture/benchmarks?per_page=2`) + .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'xxx') + .set('kbn-xsrf', 'xxxx') + .expect(200); + + expect(res.items.length).equal(2); + expect(res.total).equal(3); + }); + + it(`Should return array size 2 when we set per page to be only 2 (total element is still 3)`, async () => { + const { body: res }: { body: GetBenchmarkResponse } = await supertest + .get(`/internal/cloud_security_posture/benchmarks?per_page=2&page=2`) + .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'xxx') + .set('kbn-xsrf', 'xxxx') + .expect(200); + + expect(res.items.length).equal(1); + expect(res.total).equal(3); + }); + + it(`Should return empty array when we set page to be above the last page number`, async () => { + const { body: res }: { body: GetBenchmarkResponse } = await supertest + .get(`/internal/cloud_security_posture/benchmarks?per_page=2&page=3`) + .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'xxx') + .set('kbn-xsrf', 'xxxx') + .expect(200); + + expect(res.items.length).equal(0); + expect(res.total).equal(3); + }); + }); +} diff --git a/x-pack/test_serverless/api_integration/test_suites/security/cloud_security_posture/get_csp_rule_template.ts b/x-pack/test_serverless/api_integration/test_suites/security/cloud_security_posture/get_csp_rule_template.ts new file mode 100644 index 0000000000000..0e8734b7b0cd6 --- /dev/null +++ b/x-pack/test_serverless/api_integration/test_suites/security/cloud_security_posture/get_csp_rule_template.ts @@ -0,0 +1,244 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import expect from '@kbn/expect'; +import { + ELASTIC_HTTP_VERSION_HEADER, + X_ELASTIC_INTERNAL_ORIGIN_REQUEST, +} from '@kbn/core-http-common'; +import type { GetCspRuleTemplateResponse } from '@kbn/cloud-security-posture-plugin/common/types'; +import { CspRuleTemplate } from '@kbn/cloud-security-posture-plugin/common/schemas'; +import { FtrProviderContext } from '../../../ftr_provider_context'; +import { createPackagePolicy } from '../../../../../test/api_integration/apis/cloud_security_posture/helper'; // eslint-disable-line @kbn/imports/no_boundary_crossing + +export default function ({ getService }: FtrProviderContext) { + const supertest = getService('supertest'); + const esArchiver = getService('esArchiver'); + const kibanaServer = getService('kibanaServer'); + + describe('GET internal/cloud_security_posture/rules/_find', () => { + let agentPolicyId: string; + + beforeEach(async () => { + await kibanaServer.savedObjects.cleanStandardList(); + await esArchiver.load('x-pack/test/functional/es_archives/fleet/empty_fleet_server'); + + const { body: agentPolicyResponse } = await supertest + .post(`/api/fleet/agent_policies`) + .set('kbn-xsrf', 'xxxx') + .send({ + name: 'Test policy', + namespace: 'default', + }); + + agentPolicyId = agentPolicyResponse.item.id; + }); + + afterEach(async () => { + await kibanaServer.savedObjects.cleanStandardList(); + await esArchiver.unload('x-pack/test/functional/es_archives/fleet/empty_fleet_server'); + }); + + it(`Should return 500 error code when not provide package policy id or benchmark id`, async () => { + await createPackagePolicy( + supertest, + agentPolicyId, + 'kspm', + 'cloudbeat/cis_k8s', + 'vanilla', + 'kspm' + ); + + const { body }: { body: { message: string } } = await supertest + .get(`/internal/cloud_security_posture/rules/_find`) + .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'xxx') + .set('kbn-xsrf', 'xxxx') + .expect(500); + + expect(body.message).to.eql( + 'Please provide either benchmarkId or packagePolicyId, but not both', + `expected message to be 'Please provide either benchmarkId or packagePolicyId, but not both' but got ${body.message} instead` + ); + }); + + it(`Should return 500 error code when provide both package policy id and benchmark id`, async () => { + await createPackagePolicy( + supertest, + agentPolicyId, + 'kspm', + 'cloudbeat/cis_k8s', + 'vanilla', + 'kspm' + ); + + const { body }: { body: { message: string } } = await supertest + .get(`/internal/cloud_security_posture/rules/_find`) + .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'xxx') + .set('kbn-xsrf', 'xxxx') + .query({ + packagePolicyId: 'your-package-policy-id', + benchmarkId: 'cis_aws', + }) + .expect(500); + + expect(body.message).to.eql( + 'Please provide either benchmarkId or packagePolicyId, but not both', + `expected message to be 'Please provide either benchmarkId or packagePolicyId, but not both' but got ${body.message} instead` + ); + }); + + it(`Should return 404 status code when the package policy ID does not exist`, async () => { + const { body }: { body: { statusCode: number; error: string } } = await supertest + .get(`/internal/cloud_security_posture/rules/_find`) + .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'xxx') + .set('kbn-xsrf', 'xxxx') + .query({ + packagePolicyId: 'non-existing-packagePolicy-id', + }) + .expect(404); + + expect(body.statusCode).to.eql( + 404, + `expected status code to be 404 but got ${body.statusCode} instead` + ); + expect(body.error).to.eql( + 'Not Found', + `expected error message to be 'Not Found' but got ${body.error} instead` + ); + }); + + it(`Should return 200 status code and filter rules by benchmarkId`, async () => { + await createPackagePolicy( + supertest, + agentPolicyId, + 'kspm', + 'cloudbeat/cis_k8s', + 'vanilla', + 'kspm' + ); + + const { body }: { body: GetCspRuleTemplateResponse } = await supertest + .get(`/internal/cloud_security_posture/rules/_find`) + .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'xxx') + .set('kbn-xsrf', 'xxxx') + .query({ + benchmarkId: 'cis_k8s', + }) + .expect(200); + + expect(body.items.length).greaterThan(0); + + const allRulesHaveCorrectBenchmarkId = body.items.every( + (rule: CspRuleTemplate) => rule.metadata.benchmark.id === 'cis_k8s' + ); + + expect(allRulesHaveCorrectBenchmarkId).to.eql( + true, + `expected true but got ${allRulesHaveCorrectBenchmarkId} instead` + ); + }); + + it(`Should return 200 status code, and only requested fields in the response`, async () => { + await createPackagePolicy( + supertest, + agentPolicyId, + 'kspm', + 'cloudbeat/cis_k8s', + 'vanilla', + 'kspm' + ); + + const { body }: { body: GetCspRuleTemplateResponse } = await supertest + .get(`/internal/cloud_security_posture/rules/_find`) + .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'xxx') + .set('kbn-xsrf', 'xxxx') + .query({ + benchmarkId: 'cis_k8s', + fields: ['metadata.name', 'metadata.section', 'metadata.id'], + }) + .expect(200); + + expect(body.items.length).greaterThan(0); + + const allowedFields = ['name', 'section', 'id']; + const fieldsMatched = body.items.every((rule: CspRuleTemplate) => { + const keys = Object.keys(rule.metadata); + return ( + keys.length === allowedFields.length && keys.every((key) => allowedFields.includes(key)) + ); + }); + + expect(fieldsMatched).to.eql(true, `expected true but got ${fieldsMatched} instead`); + }); + + it(`Should return 200 status code, items sorted by metadata.section field`, async () => { + await createPackagePolicy( + supertest, + agentPolicyId, + 'kspm', + 'cloudbeat/cis_k8s', + 'vanilla', + 'kspm' + ); + + const { body }: { body: GetCspRuleTemplateResponse } = await supertest + .get(`/internal/cloud_security_posture/rules/_find`) + .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'xxx') + .set('kbn-xsrf', 'xxxx') + .query({ + benchmarkId: 'cis_k8s', + sortField: 'metadata.section', + sortOrder: 'asc', + }) + .expect(200); + + expect(body.items.length).greaterThan(0); + + // check if the items are sorted by metadata.section field + const sections = body.items.map((rule: CspRuleTemplate) => rule.metadata.section); + const isSorted = sections.every( + (section, index) => index === 0 || section >= sections[index - 1] + ); + + expect(isSorted).to.eql(true, `expected true but got ${isSorted} instead`); + }); + + it(`Should return 200 status code and paginate rules with a limit of PerPage`, async () => { + const perPage = 10; + + await createPackagePolicy( + supertest, + agentPolicyId, + 'kspm', + 'cloudbeat/cis_k8s', + 'vanilla', + 'kspm' + ); + + const { body }: { body: GetCspRuleTemplateResponse } = await supertest + .get(`/internal/cloud_security_posture/rules/_find`) + .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set('kbn-xsrf', 'xxxx') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'xxx') + .query({ + benchmarkId: 'cis_k8s', + perPage, + }) + .expect(200); + + expect(body.items.length).to.eql( + perPage, + `expected length to be ${perPage} but got ${body.items.length} instead` + ); + }); + }); +} diff --git a/x-pack/test_serverless/api_integration/test_suites/security/cloud_security_posture/index.ts b/x-pack/test_serverless/api_integration/test_suites/security/cloud_security_posture/index.ts new file mode 100644 index 0000000000000..2e0281d1ab43f --- /dev/null +++ b/x-pack/test_serverless/api_integration/test_suites/security/cloud_security_posture/index.ts @@ -0,0 +1,27 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { FtrProviderContext } from '../../../ftr_provider_context'; + +export default function ({ loadTestFile }: FtrProviderContext) { + describe('cloud_security_posture', function () { + this.tags(['cloud_security_posture']); + loadTestFile(require.resolve('./status/status_not_deployed_not_installed')); + loadTestFile(require.resolve('./status/status_indexed')); + loadTestFile(require.resolve('./status/status_indexing')); + loadTestFile(require.resolve('./benchmark')); + loadTestFile(require.resolve('./get_csp_rule_template')); + loadTestFile(require.resolve('./telemetry')); + + // TODO: migrate status_unprivileged tests from stateful, if it feasible in serverless with the new security model + // loadTestFile(require.resolve('./status/status_unprivileged')); + + // TODO: migrate tests relying on fleet_api_integration helpers from stateful + // loadTestFile(require.resolve('./status/status_waiting_for_results')); + // loadTestFile(require.resolve('./status/status_index_timeout')); + }); +} diff --git a/x-pack/test_serverless/api_integration/test_suites/security/cloud_security_posture/status/status_indexed.ts b/x-pack/test_serverless/api_integration/test_suites/security/cloud_security_posture/status/status_indexed.ts new file mode 100644 index 0000000000000..f31d295db631d --- /dev/null +++ b/x-pack/test_serverless/api_integration/test_suites/security/cloud_security_posture/status/status_indexed.ts @@ -0,0 +1,143 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import expect from '@kbn/expect'; +import { + ELASTIC_HTTP_VERSION_HEADER, + X_ELASTIC_INTERNAL_ORIGIN_REQUEST, +} from '@kbn/core-http-common'; +import type { CspSetupStatus } from '@kbn/cloud-security-posture-plugin/common/types'; +import { + FINDINGS_INDEX_DEFAULT_NS, + LATEST_FINDINGS_INDEX_DEFAULT_NS, + LATEST_VULNERABILITIES_INDEX_DEFAULT_NS, + VULNERABILITIES_INDEX_DEFAULT_NS, +} from '@kbn/cloud-security-posture-plugin/common/constants'; +import { FtrProviderContext } from '../../../../ftr_provider_context'; +import { + deleteIndex, + addIndex, + createPackagePolicy, +} from '../../../../../../test/api_integration/apis/cloud_security_posture/helper'; // eslint-disable-line @kbn/imports/no_boundary_crossing +import { + findingsMockData, + vulnerabilityMockData, +} from '../../../../../../test/api_integration/apis/cloud_security_posture/mock_data'; // eslint-disable-line @kbn/imports/no_boundary_crossing + +const INDEX_ARRAY = [ + FINDINGS_INDEX_DEFAULT_NS, + LATEST_FINDINGS_INDEX_DEFAULT_NS, + LATEST_VULNERABILITIES_INDEX_DEFAULT_NS, + VULNERABILITIES_INDEX_DEFAULT_NS, +]; + +export default function (providerContext: FtrProviderContext) { + const { getService } = providerContext; + const supertest = getService('supertest'); + const es = getService('es'); + const esArchiver = getService('esArchiver'); + const kibanaServer = getService('kibanaServer'); + + describe('GET /internal/cloud_security_posture/status', () => { + let agentPolicyId: string; + + describe('STATUS = INDEXED TEST', () => { + beforeEach(async () => { + await kibanaServer.savedObjects.cleanStandardList(); + await esArchiver.load('x-pack/test/functional/es_archives/fleet/empty_fleet_server'); + + const { body: agentPolicyResponse } = await supertest + .post(`/api/fleet/agent_policies`) + .set('kbn-xsrf', 'xxxx') + .send({ + name: 'Test policy', + namespace: 'default', + }); + + agentPolicyId = agentPolicyResponse.item.id; + + await deleteIndex(es, INDEX_ARRAY); + await addIndex(es, findingsMockData, LATEST_FINDINGS_INDEX_DEFAULT_NS); + await addIndex(es, vulnerabilityMockData, LATEST_VULNERABILITIES_INDEX_DEFAULT_NS); + }); + + afterEach(async () => { + await deleteIndex(es, INDEX_ARRAY); + await kibanaServer.savedObjects.cleanStandardList(); + await esArchiver.unload('x-pack/test/functional/es_archives/fleet/empty_fleet_server'); + }); + + it(`Return kspm status indexed when logs-cloud_security_posture.findings_latest-default contains new kspm documents`, async () => { + await createPackagePolicy( + supertest, + agentPolicyId, + 'kspm', + 'cloudbeat/cis_k8s', + 'vanilla', + 'kspm' + ); + + const { body: res }: { body: CspSetupStatus } = await supertest + .get(`/internal/cloud_security_posture/status`) + .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'xxx') + .set('kbn-xsrf', 'xxxx') + .expect(200); + + expect(res.kspm.status).to.eql( + 'indexed', + `expected kspm status to be indexed but got ${res.kspm.status} instead` + ); + }); + + it(`Return cspm status indexed when logs-cloud_security_posture.findings_latest-default contains new cspm documents`, async () => { + await createPackagePolicy( + supertest, + agentPolicyId, + 'cspm', + 'cloudbeat/cis_aws', + 'aws', + 'cspm' + ); + + const { body: res }: { body: CspSetupStatus } = await supertest + .get(`/internal/cloud_security_posture/status`) + .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'xxx') + .set('kbn-xsrf', 'xxxx') + .expect(200); + + expect(res.cspm.status).to.eql( + 'indexed', + `expected cspm status to be indexed but got ${res.cspm.status} instead` + ); + }); + + it(`Return vuln status indexed when logs-cloud_security_posture.vulnerabilities_latest-default contains new documents`, async () => { + await createPackagePolicy( + supertest, + agentPolicyId, + 'vuln_mgmt', + 'cloudbeat/vuln_mgmt_aws', + 'aws', + 'vuln_mgmt' + ); + + const { body: res }: { body: CspSetupStatus } = await supertest + .get(`/internal/cloud_security_posture/status`) + .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'xxx') + .set('kbn-xsrf', 'xxxx') + .expect(200); + + expect(res.vuln_mgmt.status).to.eql( + 'indexed', + `expected vuln_mgmt status to be indexed but got ${res.vuln_mgmt.status} instead` + ); + }); + }); + }); +} diff --git a/x-pack/test_serverless/api_integration/test_suites/security/cloud_security_posture/status/status_indexing.ts b/x-pack/test_serverless/api_integration/test_suites/security/cloud_security_posture/status/status_indexing.ts new file mode 100644 index 0000000000000..7c7f342170c4c --- /dev/null +++ b/x-pack/test_serverless/api_integration/test_suites/security/cloud_security_posture/status/status_indexing.ts @@ -0,0 +1,142 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import expect from '@kbn/expect'; +import { + ELASTIC_HTTP_VERSION_HEADER, + X_ELASTIC_INTERNAL_ORIGIN_REQUEST, +} from '@kbn/core-http-common'; +import type { CspSetupStatus } from '@kbn/cloud-security-posture-plugin/common/types'; +import { + FINDINGS_INDEX_DEFAULT_NS, + LATEST_FINDINGS_INDEX_DEFAULT_NS, + LATEST_VULNERABILITIES_INDEX_DEFAULT_NS, + VULNERABILITIES_INDEX_DEFAULT_NS, +} from '@kbn/cloud-security-posture-plugin/common/constants'; +import { FtrProviderContext } from '../../../../ftr_provider_context'; +import { + deleteIndex, + addIndex, + createPackagePolicy, +} from '../../../../../../test/api_integration/apis/cloud_security_posture/helper'; // eslint-disable-line @kbn/imports/no_boundary_crossing +import { + findingsMockData, + vulnerabilityMockData, +} from '../../../../../../test/api_integration/apis/cloud_security_posture/mock_data'; // eslint-disable-line @kbn/imports/no_boundary_crossing + +const INDEX_ARRAY = [ + FINDINGS_INDEX_DEFAULT_NS, + LATEST_FINDINGS_INDEX_DEFAULT_NS, + LATEST_VULNERABILITIES_INDEX_DEFAULT_NS, + VULNERABILITIES_INDEX_DEFAULT_NS, +]; + +export default function (providerContext: FtrProviderContext) { + const { getService } = providerContext; + const supertest = getService('supertest'); + const es = getService('es'); + const esArchiver = getService('esArchiver'); + const kibanaServer = getService('kibanaServer'); + + describe('GET /internal/cloud_security_posture/status', () => { + let agentPolicyId: string; + + describe('STATUS = INDEXING TEST', () => { + beforeEach(async () => { + await kibanaServer.savedObjects.cleanStandardList(); + await esArchiver.load('x-pack/test/functional/es_archives/fleet/empty_fleet_server'); + + const { body: agentPolicyResponse } = await supertest + .post(`/api/fleet/agent_policies`) + .set('kbn-xsrf', 'xxxx') + .send({ + name: 'Test policy', + namespace: 'default', + }); + + agentPolicyId = agentPolicyResponse.item.id; + await deleteIndex(es, INDEX_ARRAY); + await addIndex(es, findingsMockData, FINDINGS_INDEX_DEFAULT_NS); + await addIndex(es, vulnerabilityMockData, VULNERABILITIES_INDEX_DEFAULT_NS); + }); + + afterEach(async () => { + await deleteIndex(es, INDEX_ARRAY); + await kibanaServer.savedObjects.cleanStandardList(); + await esArchiver.unload('x-pack/test/functional/es_archives/fleet/empty_fleet_server'); + }); + + it(`Return kspm status indexing when logs-cloud_security_posture.findings_latest-default doesn't contain new kspm documents, but has newly connected agents`, async () => { + await createPackagePolicy( + supertest, + agentPolicyId, + 'kspm', + 'cloudbeat/cis_k8s', + 'vanilla', + 'kspm' + ); + + const { body: res }: { body: CspSetupStatus } = await supertest + .get(`/internal/cloud_security_posture/status`) + .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'xxx') + .set('kbn-xsrf', 'xxxx') + .expect(200); + + expect(res.kspm.status).to.eql( + 'indexing', + `expected kspm status to be indexing but got ${res.kspm.status} instead` + ); + }); + + it(`Return cspm status indexing when logs-cloud_security_posture.findings_latest-default doesn't contain new cspm documents, but has newly connected agents `, async () => { + await createPackagePolicy( + supertest, + agentPolicyId, + 'cspm', + 'cloudbeat/cis_aws', + 'aws', + 'cspm' + ); + + const { body: res }: { body: CspSetupStatus } = await supertest + .get(`/internal/cloud_security_posture/status`) + .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'xxx') + .set('kbn-xsrf', 'xxxx') + .expect(200); + + expect(res.cspm.status).to.eql( + 'indexing', + `expected cspm status to be indexing but got ${res.cspm.status} instead` + ); + }); + + it(`Return vuln status indexing when logs-cloud_security_posture.vulnerabilities_latest-default doesn't contain vuln new documents, but has newly connected agents`, async () => { + await createPackagePolicy( + supertest, + agentPolicyId, + 'vuln_mgmt', + 'cloudbeat/vuln_mgmt_aws', + 'aws', + 'vuln_mgmt' + ); + + const { body: res }: { body: CspSetupStatus } = await supertest + .get(`/internal/cloud_security_posture/status`) + .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'xxx') + .set('kbn-xsrf', 'xxxx') + .expect(200); + + expect(res.vuln_mgmt.status).to.eql( + 'indexing', + `expected vuln_mgmt status to be indexing but got ${res.vuln_mgmt.status} instead` + ); + }); + }); + }); +} diff --git a/x-pack/test_serverless/api_integration/test_suites/security/cloud_security_posture/status/status_not_deployed_not_installed.ts b/x-pack/test_serverless/api_integration/test_suites/security/cloud_security_posture/status/status_not_deployed_not_installed.ts new file mode 100644 index 0000000000000..a797f47eef787 --- /dev/null +++ b/x-pack/test_serverless/api_integration/test_suites/security/cloud_security_posture/status/status_not_deployed_not_installed.ts @@ -0,0 +1,163 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import expect from '@kbn/expect'; +import type { CspSetupStatus } from '@kbn/cloud-security-posture-plugin/common/types'; +import { + ELASTIC_HTTP_VERSION_HEADER, + X_ELASTIC_INTERNAL_ORIGIN_REQUEST, +} from '@kbn/core-http-common'; +import { FtrProviderContext } from '../../../../ftr_provider_context'; +import { createPackagePolicy } from '../../../../../../test/api_integration/apis/cloud_security_posture/helper'; // eslint-disable-line @kbn/imports/no_boundary_crossing + +export default function (providerContext: FtrProviderContext) { + const { getService } = providerContext; + const supertest = getService('supertest'); + const esArchiver = getService('esArchiver'); + const kibanaServer = getService('kibanaServer'); + + describe('GET /internal/cloud_security_posture/status', () => { + let agentPolicyId: string; + + describe('STATUS = NOT-DEPLOYED and STATUS = NOT-INSTALLED TEST', () => { + beforeEach(async () => { + await kibanaServer.savedObjects.cleanStandardList(); + await esArchiver.load('x-pack/test/functional/es_archives/fleet/empty_fleet_server'); + + const { body: agentPolicyResponse } = await supertest + .post(`/api/fleet/agent_policies`) + .set('kbn-xsrf', 'xxxx') + .send({ + name: 'Test policy', + namespace: 'default', + }); + + agentPolicyId = agentPolicyResponse.item.id; + }); + + afterEach(async () => { + await kibanaServer.savedObjects.cleanStandardList(); + await esArchiver.unload('x-pack/test/functional/es_archives/fleet/empty_fleet_server'); + }); + it(`Should return not-deployed when installed kspm, no findings on either indices and no healthy agents`, async () => { + await createPackagePolicy( + supertest, + agentPolicyId, + 'kspm', + 'cloudbeat/cis_k8s', + 'vanilla', + 'kspm' + ); + + const { body: res }: { body: CspSetupStatus } = await supertest + .get(`/internal/cloud_security_posture/status`) + .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'xxx') + .set('kbn-xsrf', 'xxxx') + .expect(200); + + expect(res.kspm.status).to.eql( + 'not-deployed', + `expected kspm status to be not-deployed but got ${res.kspm.status} instead` + ); + expect(res.cspm.status).to.eql( + 'not-installed', + `expected cspm status to be not-installed but got ${res.cspm.status} instead` + ); + expect(res.vuln_mgmt.status).to.eql( + 'not-installed', + `expected vuln_mgmt status to be not-installed but got ${res.vuln_mgmt.status} instead` + ); + expect(res.kspm.healthyAgents).to.eql( + 0, + `expected number of kspm healthy agents to be 0 but got ${res.kspm.healthyAgents} instead` + ); + expect(res.kspm.installedPackagePolicies).to.eql( + 1, + `expected number of kspm installed package policies to be 1 but got ${res.kspm.installedPackagePolicies} instead` + ); + }); + + it(`Should return not-deployed when installed cspm, no findings on either indices and no healthy agents`, async () => { + await createPackagePolicy( + supertest, + agentPolicyId, + 'cspm', + 'cloudbeat/cis_aws', + 'aws', + 'cspm' + ); + + const { body: res }: { body: CspSetupStatus } = await supertest + .get(`/internal/cloud_security_posture/status`) + .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'xxx') + .set('kbn-xsrf', 'xxxx') + .expect(200); + + expect(res.cspm.status).to.eql( + 'not-deployed', + `expected cspm status to be not-deployed but got ${res.cspm.status} instead` + ); + expect(res.kspm.status).to.eql( + 'not-installed', + `expected kspm status to be not-installed but got ${res.kspm.status} instead` + ); + expect(res.vuln_mgmt.status).to.eql( + 'not-installed', + `expected vuln_mgmt status to be not-installed but got ${res.vuln_mgmt.status} instead` + ); + expect(res.cspm.healthyAgents).to.eql( + 0, + `expected number of cspm healthy agents to be 0 but got ${res.cspm.healthyAgents} instead` + ); + expect(res.cspm.installedPackagePolicies).to.eql( + 1, + `expected number of cspm installed package policies to be 1 but got ${res.cspm.installedPackagePolicies} instead` + ); + }); + + it(`Should return not-deployed when installed cnvm, no findings on either indices and no healthy agents`, async () => { + await createPackagePolicy( + supertest, + agentPolicyId, + 'vuln_mgmt', + 'cloudbeat/vuln_mgmt_aws', + 'aws', + 'vuln_mgmt' + ); + + const { body: res }: { body: CspSetupStatus } = await supertest + .get(`/internal/cloud_security_posture/status`) + .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'xxx') + .set('kbn-xsrf', 'xxxx') + .expect(200); + + expect(res.cspm.status).to.eql( + 'not-installed', + `expected cspm status to be not-installed but got ${res.cspm.status} instead` + ); + expect(res.kspm.status).to.eql( + 'not-installed', + `expected kspm status to be not-installed but got ${res.kspm.status} instead` + ); + expect(res.vuln_mgmt.status).to.eql( + 'not-deployed', + `expected vuln_mgmt status to be not-deployed but got ${res.vuln_mgmt.status} instead` + ); + expect(res.vuln_mgmt.healthyAgents).to.eql( + 0, + `expected number of vuln_mgmt healthy agents to be 0 but got ${res.vuln_mgmt.healthyAgents} instead` + ); + expect(res.vuln_mgmt.installedPackagePolicies).to.eql( + 1, + `expected number of vuln_mgmt installed package policies to be 1 but got ${res.vuln_mgmt.installedPackagePolicies} instead` + ); + }); + }); + }); +} diff --git a/x-pack/test_serverless/api_integration/test_suites/security/cloud_security_posture/telemetry.ts b/x-pack/test_serverless/api_integration/test_suites/security/cloud_security_posture/telemetry.ts new file mode 100644 index 0000000000000..aa189472eebcc --- /dev/null +++ b/x-pack/test_serverless/api_integration/test_suites/security/cloud_security_posture/telemetry.ts @@ -0,0 +1,415 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import expect from '@kbn/expect'; +import { + ELASTIC_HTTP_VERSION_HEADER, + X_ELASTIC_INTERNAL_ORIGIN_REQUEST, +} from '@kbn/core-http-common'; +import type { FtrProviderContext } from '../../../ftr_provider_context'; +import { + data as telemetryMockData, + MockTelemetryFindings, +} from '../../../../../test/cloud_security_posture_api/telemetry/data'; // eslint-disable-line @kbn/imports/no_boundary_crossing +import { createPackagePolicy } from '../../../../../test/api_integration/apis/cloud_security_posture/helper'; // eslint-disable-line @kbn/imports/no_boundary_crossing + +const FINDINGS_INDEX = 'logs-cloud_security_posture.findings_latest-default'; + +export default function ({ getService }: FtrProviderContext) { + const retry = getService('retry'); + const es = getService('es'); + const supertest = getService('supertest'); + const log = getService('log'); + const esArchiver = getService('esArchiver'); + const kibanaServer = getService('kibanaServer'); + + /** + * required before indexing findings + */ + const waitForPluginInitialized = (): Promise => + retry.try(async () => { + log.debug('Check CSP plugin is initialized'); + const response = await supertest + .get('/internal/cloud_security_posture/status?check=init') + .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'xxx') + .expect(200); + expect(response.body).to.eql({ isPluginInitialized: true }); + log.debug('CSP plugin is initialized'); + }); + + const index = { + remove: () => + es.deleteByQuery({ + index: FINDINGS_INDEX, + query: { match_all: {} }, + refresh: true, + }), + + add: async (mockTelemetryFindings: MockTelemetryFindings[]) => { + const operations = mockTelemetryFindings.flatMap((doc) => [ + { index: { _index: FINDINGS_INDEX } }, + doc, + ]); + + const response = await es.bulk({ refresh: 'wait_for', index: FINDINGS_INDEX, operations }); + expect(response.errors).to.eql(false); + }, + }; + + describe('Verify cloud_security_posture telemetry payloads', async () => { + let agentPolicyId: string; + + before(async () => { + await kibanaServer.savedObjects.cleanStandardList(); + await esArchiver.load('x-pack/test/functional/es_archives/fleet/empty_fleet_server'); + + const { body: agentPolicyResponse } = await supertest + .post(`/api/fleet/agent_policies`) + .set('kbn-xsrf', 'xxxx') + .send({ + name: 'Test policy', + namespace: 'default', + }); + + agentPolicyId = agentPolicyResponse.item.id; + + await createPackagePolicy( + supertest, + agentPolicyId, + 'cspm', + 'cloudbeat/cis_aws', + 'aws', + 'cspm', + 'CSPM-1' + ); + await waitForPluginInitialized(); + }); + + after(async () => { + await kibanaServer.savedObjects.cleanStandardList(); + await esArchiver.unload('x-pack/test/functional/es_archives/fleet/empty_fleet_server'); + }); + + afterEach(async () => { + await index.remove(); + }); + + it('includes only KSPM findings', async () => { + await index.add(telemetryMockData.kspmFindings); + + const { + body: [{ stats: apiResponse }], + } = await supertest + .post(`/internal/telemetry/clusters/_stats`) + .set(ELASTIC_HTTP_VERSION_HEADER, '2') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') + .set('kbn-xsrf', 'xxxx') + .send({ + unencrypted: true, + refreshCache: true, + }) + .expect(200); + + expect(apiResponse.stack_stats.kibana.plugins.cloud_security_posture.accounts_stats).to.eql([ + { + account_id: 'my-k8s-cluster-5555', + latest_findings_doc_count: 2, + posture_score: 100, + passed_findings_count: 2, + failed_findings_count: 0, + benchmark_name: 'CIS Kubernetes V1.23', + benchmark_id: 'cis_k8s', + kubernetes_version: 'v1.23.0', + benchmark_version: 'v1.0.0', + agents_count: 2, + nodes_count: 2, + pods_count: 0, + }, + ]); + expect(apiResponse.stack_stats.kibana.plugins.cloud_security_posture.resources_stats).to.eql([ + { + account_id: 'my-k8s-cluster-5555', + resource_type: 'k8s_object', + resource_type_doc_count: 1, + resource_sub_type: 'ServiceAccount', + resource_sub_type_doc_count: 1, + passed_findings_count: 1, + failed_findings_count: 0, + }, + { + account_id: 'my-k8s-cluster-5555', + resource_type: 'process', + resource_type_doc_count: 1, + resource_sub_type: 'process', + resource_sub_type_doc_count: 1, + passed_findings_count: 1, + failed_findings_count: 0, + }, + ]); + }); + + it('includes only CSPM findings', async () => { + await index.add(telemetryMockData.cspmFindings); + + const { + body: [{ stats: apiResponse }], + } = await supertest + .post(`/internal/telemetry/clusters/_stats`) + .set('kbn-xsrf', 'xxxx') + .set(ELASTIC_HTTP_VERSION_HEADER, '2') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') + .send({ + unencrypted: true, + refreshCache: true, + }) + .expect(200); + + expect(apiResponse.stack_stats.kibana.plugins.cloud_security_posture.accounts_stats).to.eql([ + { + account_id: 'my-aws-12345', + latest_findings_doc_count: 2, + posture_score: 50, + passed_findings_count: 1, + failed_findings_count: 1, + benchmark_name: 'CIS Amazon Web Services Foundations', + benchmark_id: 'cis_aws', + benchmark_version: 'v1.5.0', + kubernetes_version: null, + agents_count: 1, + nodes_count: 1, + pods_count: 0, + }, + ]); + + expect(apiResponse.stack_stats.kibana.plugins.cloud_security_posture.resources_stats).to.eql([ + { + account_id: 'my-aws-12345', + resource_type: 'identifyingType', + resource_type_doc_count: 2, + resource_sub_type: 'aws-password-policy', + resource_sub_type_doc_count: 2, + passed_findings_count: 1, + failed_findings_count: 1, + }, + ]); + }); + + it('includes CSPM and KSPM findings', async () => { + await index.add(telemetryMockData.kspmFindings); + await index.add(telemetryMockData.cspmFindings); + + const { + body: [{ stats: apiResponse }], + } = await supertest + .post(`/internal/telemetry/clusters/_stats`) + .set('kbn-xsrf', 'xxxx') + .set(ELASTIC_HTTP_VERSION_HEADER, '2') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') + .send({ + unencrypted: true, + refreshCache: true, + }) + .expect(200); + + expect(apiResponse.stack_stats.kibana.plugins.cloud_security_posture.accounts_stats).to.eql([ + { + account_id: 'my-aws-12345', + latest_findings_doc_count: 2, + posture_score: 50, + passed_findings_count: 1, + failed_findings_count: 1, + benchmark_name: 'CIS Amazon Web Services Foundations', + benchmark_id: 'cis_aws', + benchmark_version: 'v1.5.0', + kubernetes_version: null, + agents_count: 1, + nodes_count: 1, + pods_count: 0, + }, + { + account_id: 'my-k8s-cluster-5555', + latest_findings_doc_count: 2, + posture_score: 100, + passed_findings_count: 2, + failed_findings_count: 0, + benchmark_name: 'CIS Kubernetes V1.23', + benchmark_id: 'cis_k8s', + benchmark_version: 'v1.0.0', + kubernetes_version: 'v1.23.0', + agents_count: 2, + nodes_count: 2, + pods_count: 0, + }, + ]); + + expect(apiResponse.stack_stats.kibana.plugins.cloud_security_posture.resources_stats).to.eql([ + { + account_id: 'my-aws-12345', + resource_type: 'identifyingType', + resource_type_doc_count: 2, + resource_sub_type: 'aws-password-policy', + resource_sub_type_doc_count: 2, + passed_findings_count: 1, + failed_findings_count: 1, + }, + { + account_id: 'my-k8s-cluster-5555', + resource_type: 'k8s_object', + resource_type_doc_count: 1, + resource_sub_type: 'ServiceAccount', + resource_sub_type_doc_count: 1, + passed_findings_count: 1, + failed_findings_count: 0, + }, + { + account_id: 'my-k8s-cluster-5555', + resource_type: 'process', + resource_type_doc_count: 1, + resource_sub_type: 'process', + resource_sub_type_doc_count: 1, + passed_findings_count: 1, + failed_findings_count: 0, + }, + ]); + }); + + it(`'includes only KSPM findings without posture_type'`, async () => { + await index.add(telemetryMockData.kspmFindingsNoPostureType); + + const { + body: [{ stats: apiResponse }], + } = await supertest + .post(`/internal/telemetry/clusters/_stats`) + .set('kbn-xsrf', 'xxxx') + .set(ELASTIC_HTTP_VERSION_HEADER, '2') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') + .send({ + unencrypted: true, + refreshCache: true, + }) + .expect(200); + + expect(apiResponse.stack_stats.kibana.plugins.cloud_security_posture.accounts_stats).to.eql([ + { + account_id: 'my-k8s-cluster-5555', + latest_findings_doc_count: 2, + posture_score: 100, + passed_findings_count: 2, + failed_findings_count: 0, + benchmark_name: 'CIS Kubernetes V1.23', + benchmark_id: 'cis_k8s', + benchmark_version: 'v1.0.0', + kubernetes_version: 'v1.23.0', + agents_count: 2, + nodes_count: 2, + pods_count: 0, + }, + ]); + + expect(apiResponse.stack_stats.kibana.plugins.cloud_security_posture.resources_stats).to.eql([ + { + account_id: 'my-k8s-cluster-5555', + resource_type: 'k8s_object', + resource_type_doc_count: 1, + resource_sub_type: 'ServiceAccount', + resource_sub_type_doc_count: 1, + passed_findings_count: 1, + failed_findings_count: 0, + }, + { + account_id: 'my-k8s-cluster-5555', + resource_type: 'process', + resource_type_doc_count: 1, + resource_sub_type: 'process', + resource_sub_type_doc_count: 1, + passed_findings_count: 1, + failed_findings_count: 0, + }, + ]); + }); + + it('includes KSPM findings without posture_type and CSPM findings as well', async () => { + await index.add(telemetryMockData.kspmFindingsNoPostureType); + await index.add(telemetryMockData.cspmFindings); + + const { + body: [{ stats: apiResponse }], + } = await supertest + .post(`/internal/telemetry/clusters/_stats`) + .set('kbn-xsrf', 'xxxx') + .set(ELASTIC_HTTP_VERSION_HEADER, '2') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') + .send({ + unencrypted: true, + refreshCache: true, + }) + .expect(200); + + expect(apiResponse.stack_stats.kibana.plugins.cloud_security_posture.accounts_stats).to.eql([ + { + account_id: 'my-aws-12345', + latest_findings_doc_count: 2, + posture_score: 50, + passed_findings_count: 1, + failed_findings_count: 1, + benchmark_name: 'CIS Amazon Web Services Foundations', + benchmark_id: 'cis_aws', + benchmark_version: 'v1.5.0', + kubernetes_version: null, + agents_count: 1, + nodes_count: 1, + pods_count: 0, + }, + { + account_id: 'my-k8s-cluster-5555', + latest_findings_doc_count: 2, + posture_score: 100, + passed_findings_count: 2, + failed_findings_count: 0, + benchmark_name: 'CIS Kubernetes V1.23', + benchmark_id: 'cis_k8s', + benchmark_version: 'v1.0.0', + kubernetes_version: 'v1.23.0', + agents_count: 2, + nodes_count: 2, + pods_count: 0, + }, + ]); + + expect(apiResponse.stack_stats.kibana.plugins.cloud_security_posture.resources_stats).to.eql([ + { + account_id: 'my-aws-12345', + resource_type: 'identifyingType', + resource_type_doc_count: 2, + resource_sub_type: 'aws-password-policy', + resource_sub_type_doc_count: 2, + passed_findings_count: 1, + failed_findings_count: 1, + }, + { + account_id: 'my-k8s-cluster-5555', + resource_type: 'k8s_object', + resource_type_doc_count: 1, + resource_sub_type: 'ServiceAccount', + resource_sub_type_doc_count: 1, + passed_findings_count: 1, + failed_findings_count: 0, + }, + { + account_id: 'my-k8s-cluster-5555', + resource_type: 'process', + resource_type_doc_count: 1, + resource_sub_type: 'process', + resource_sub_type_doc_count: 1, + passed_findings_count: 1, + failed_findings_count: 0, + }, + ]); + }); + }); +} diff --git a/x-pack/test_serverless/api_integration/test_suites/security/index.ts b/x-pack/test_serverless/api_integration/test_suites/security/index.ts index eb00134311d79..5d637ee78b58d 100644 --- a/x-pack/test_serverless/api_integration/test_suites/security/index.ts +++ b/x-pack/test_serverless/api_integration/test_suites/security/index.ts @@ -13,5 +13,6 @@ export default function ({ loadTestFile }: FtrProviderContext) { loadTestFile(require.resolve('./telemetry/telemetry_config')); loadTestFile(require.resolve('./fleet/fleet')); loadTestFile(require.resolve('./cases')); + loadTestFile(require.resolve('./cloud_security_posture')); }); } diff --git a/x-pack/test_serverless/tsconfig.json b/x-pack/test_serverless/tsconfig.json index 5c2caac4af7c1..21ca495a87eaf 100644 --- a/x-pack/test_serverless/tsconfig.json +++ b/x-pack/test_serverless/tsconfig.json @@ -61,6 +61,7 @@ "@kbn/serverless-observability-settings", "@kbn/serverless-search-settings", "@kbn/serverless-security-settings", + "@kbn/cloud-security-posture-plugin", "@kbn/reporting-plugin", "@kbn/management-settings-ids", ] From d271a742d5471f4c7d84ce42a1e2336221c25783 Mon Sep 17 00:00:00 2001 From: Christos Nasikas Date: Wed, 11 Oct 2023 15:49:11 +0300 Subject: [PATCH 12/79] [Cases] Flaky test fix: Wait for toasters to close before doing any row action (#168564) Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../functional_with_es_ssl/apps/cases/group2/list_view.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/x-pack/test/functional_with_es_ssl/apps/cases/group2/list_view.ts b/x-pack/test/functional_with_es_ssl/apps/cases/group2/list_view.ts index d798dde84b77a..e9daffe92c586 100644 --- a/x-pack/test/functional_with_es_ssl/apps/cases/group2/list_view.ts +++ b/x-pack/test/functional_with_es_ssl/apps/cases/group2/list_view.ts @@ -21,6 +21,7 @@ export default ({ getPageObject, getService }: FtrProviderContext) => { const testSubjects = getService('testSubjects'); const cases = getService('cases'); const browser = getService('browser'); + const toasts = getService('toasts'); describe('cases list', () => { before(async () => { @@ -573,6 +574,10 @@ export default ({ getPageObject, getService }: FtrProviderContext) => { }); describe('row actions', () => { + afterEach(async () => { + await toasts.dismissAllToastsWithChecks(); + }); + describe('Status', () => { before(async () => { await cases.api.createNthRandomCases(1); @@ -634,8 +639,7 @@ export default ({ getPageObject, getService }: FtrProviderContext) => { }); }); - // FLAKY: https://github.com/elastic/kibana/issues/168148 - describe.skip('Delete', () => { + describe('Delete', () => { before(async () => { await cases.api.createNthRandomCases(1); await header.waitUntilLoadingHasFinished(); From 69e04df0559b40816dc1312ca6f1b461acec7129 Mon Sep 17 00:00:00 2001 From: Dzmitry Lemechko Date: Wed, 11 Oct 2023 14:58:01 +0200 Subject: [PATCH 13/79] [ftr] skip Reporting Management on MKI (#168575) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary Skipping api tests that fail on MKI ``` Reporting --   | │ Reporting Management   | │ "before each" hook for "user can not delete a report they haven't created":   | │   | │ ResponseError: security_exception   | │ Root causes:   | │ security_exception: action [indices:admin/create] is unauthorized for user [elastic] with effective roles [superuser] on restricted indices [.reporting-2020.04.19], this action is granted by the index privileges [create_index,manage,all]   | │ at SniffingTransport.request (node_modules/@elastic/transport/src/Transport.ts:535:17)   | │ at processTicksAndRejections (node:internal/process/task_queues:95:5)   | │ at Indices.create (node_modules/@elastic/elasticsearch/src/api/api/indices.ts:251:12)   | │ at attemptToCreate (create_index_stream.ts:145:9)   | │ at handleIndex (create_index_stream.ts:211:5)   | │ at Transform.transform [as _transform] (create_index_stream.ts:221:13) ``` --- .../functional/test_suites/common/reporting/management.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/x-pack/test_serverless/functional/test_suites/common/reporting/management.ts b/x-pack/test_serverless/functional/test_suites/common/reporting/management.ts index 787722f5dabff..70f0037cd17c3 100644 --- a/x-pack/test_serverless/functional/test_suites/common/reporting/management.ts +++ b/x-pack/test_serverless/functional/test_suites/common/reporting/management.ts @@ -29,6 +29,8 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { }; describe('Reporting Management app', function () { + // security_exception: action [indices:admin/create] is unauthorized for user [elastic] with effective roles [superuser] on restricted indices [.reporting-2020.04.19], this action is granted by the index privileges [create_index,manage,all] + this.tags('failsOnMKI'); const savedObjectsArchive = 'test/functional/fixtures/kbn_archiver/discover'; const job: JobParamsCsvFromSavedObject = { From 937944bf954151dfbb805d1356305afd57ef76b6 Mon Sep 17 00:00:00 2001 From: Florian Lehner Date: Wed, 11 Oct 2023 15:08:52 +0200 Subject: [PATCH 14/79] [Profiling] adjust naming (#168570) ## Summary Unify naming of Universal Profiling Agent. Fixes https://github.com/elastic/prodfiler/issues/3880 Signed-off-by: Florian Lehner --- x-pack/plugins/profiling/public/views/add_data_view/index.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/x-pack/plugins/profiling/public/views/add_data_view/index.tsx b/x-pack/plugins/profiling/public/views/add_data_view/index.tsx index de5713f30c21a..b6fef9c71c678 100644 --- a/x-pack/plugins/profiling/public/views/add_data_view/index.tsx +++ b/x-pack/plugins/profiling/public/views/add_data_view/index.tsx @@ -76,7 +76,7 @@ export function AddDataView() { steps: [ { title: i18n.translate('xpack.profiling.tabs.kubernetesRepositoryStep', { - defaultMessage: 'Configure the Universal Profiling host-agent Helm repository:', + defaultMessage: 'Configure the Universal Profiling Agent Helm repository:', }), content: ( @@ -545,7 +545,7 @@ EOF`} {i18n.translate('xpack.profiling.noDataPage.addDataTitle', { - defaultMessage: 'Select an option below to deploy the host-agent.', + defaultMessage: 'Select an option below to deploy the Universal Profiling Agent.', })} From 04ba5390f0e212b7e36ee9c4960efe5593dfc5f1 Mon Sep 17 00:00:00 2001 From: Nick Peihl Date: Wed, 11 Oct 2023 09:54:25 -0400 Subject: [PATCH 15/79] [Dashboard navigation] Fix mappings for links saved object (#168532) ## Summary This removes the `id` mapping from the Links saved object. This mapping was included by mistake and could cause future issues. I think should be no need for a migration because the Links saved object will be first released in 8.11.0. Links saved objects do not exist before 8.11.0. ### 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) --- packages/kbn-check-mappings-update-cli/current_mappings.json | 3 --- .../migrations/group2/check_registered_types.test.ts | 2 +- src/plugins/links/server/saved_objects/links.ts | 1 - 3 files changed, 1 insertion(+), 5 deletions(-) diff --git a/packages/kbn-check-mappings-update-cli/current_mappings.json b/packages/kbn-check-mappings-update-cli/current_mappings.json index 2d77538b09572..4ebb8065dbe1d 100644 --- a/packages/kbn-check-mappings-update-cli/current_mappings.json +++ b/packages/kbn-check-mappings-update-cli/current_mappings.json @@ -1065,9 +1065,6 @@ "links": { "dynamic": false, "properties": { - "id": { - "type": "text" - }, "title": { "type": "text" }, diff --git a/src/core/server/integration_tests/saved_objects/migrations/group2/check_registered_types.test.ts b/src/core/server/integration_tests/saved_objects/migrations/group2/check_registered_types.test.ts index 26ab99d41633d..01794d226e312 100644 --- a/src/core/server/integration_tests/saved_objects/migrations/group2/check_registered_types.test.ts +++ b/src/core/server/integration_tests/saved_objects/migrations/group2/check_registered_types.test.ts @@ -114,7 +114,7 @@ describe('checking migration metadata changes on all registered SO types', () => "legacy-url-alias": "9b8cca3fbb2da46fd12823d3cd38fdf1c9f24bc8", "lens": "5cfa2c52b979b4f8df56dd13c477e152183468b9", "lens-ui-telemetry": "8c47a9e393861f76e268345ecbadfc8a5fb1e0bd", - "links": "39117a08966e9082d0f47b0b2e7e508499fc1e6d", + "links": "1dd432cc94619a513b75cec43660a50be7aadc90", "maintenance-window": "d893544460abad56ff7a0e25b78f78776dfe10d1", "map": "76c71023bd198fb6b1163b31bafd926fe2ceb9da", "metrics-data-source": "81b69dc9830699d9ead5ac8dcb9264612e2a3c89", diff --git a/src/plugins/links/server/saved_objects/links.ts b/src/plugins/links/server/saved_objects/links.ts index b00f49e6d8cae..97f3d888b374e 100644 --- a/src/plugins/links/server/saved_objects/links.ts +++ b/src/plugins/links/server/saved_objects/links.ts @@ -26,7 +26,6 @@ export const linksSavedObjectType: SavedObjectsType = { mappings: { dynamic: false, properties: { - id: { type: 'text' }, title: { type: 'text' }, description: { type: 'text' }, links: { From e0dd4d135c9db406659fb809f41ffd4ac69f41b3 Mon Sep 17 00:00:00 2001 From: Julia Rechkunova Date: Wed, 11 Oct 2023 15:55:35 +0200 Subject: [PATCH 16/79] [UnifiedFieldList] Improve search for fieldnames by handling spaces like wildcards (#168381) - Closes https://github.com/elastic/kibana/issues/165821 - Extends the wilcard logic from https://github.com/elastic/kibana/pull/155540 ## Summary This PR allows to flexibly search in the fields sidebar with terms containing spaces. Screenshot 2023-10-09 at 18 28 00 ### Checklist - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios - [x] This was checked for [cross-browser compatibility](https://www.elastic.co/support/matrix#matrix_browsers) --------- Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../field_item_button.test.tsx.snap | 30 +++++++++ .../field_item_button.test.tsx | 14 ++++ .../field_item_button/field_item_button.tsx | 4 +- .../src/hooks/use_field_filters.test.tsx | 2 +- .../src/hooks/use_field_filters.ts | 2 +- .../field_name_wildcard_matcher.test.tsx | 33 +++++++--- .../src/utils/field_name_wildcard_matcher.ts | 21 ++++-- .../apps/discover/group3/_sidebar.ts | 65 +++++++++++++++++-- 8 files changed, 146 insertions(+), 25 deletions(-) diff --git a/packages/kbn-unified-field-list/src/components/field_item_button/__snapshots__/field_item_button.test.tsx.snap b/packages/kbn-unified-field-list/src/components/field_item_button/__snapshots__/field_item_button.test.tsx.snap index 09becbd7c2bf5..c230cdee040ed 100644 --- a/packages/kbn-unified-field-list/src/components/field_item_button/__snapshots__/field_item_button.test.tsx.snap +++ b/packages/kbn-unified-field-list/src/components/field_item_button/__snapshots__/field_item_button.test.tsx.snap @@ -62,6 +62,36 @@ exports[`UnifiedFieldList renders properly for Records (Lens /> `; +exports[`UnifiedFieldList renders properly for search with spaces 1`] = ` + + } + fieldName={ + + script date + + } + isActive={false} + key="field-item-button-script date" + size="s" +/> +`; + exports[`UnifiedFieldList renders properly for text-based column field 1`] = ` ', () => { ); expect(component).toMatchSnapshot(); }); + + test('renders properly for search with spaces', () => { + const component = shallow( + + ); + expect(component).toMatchSnapshot(); + }); }); diff --git a/packages/kbn-unified-field-list/src/components/field_item_button/field_item_button.tsx b/packages/kbn-unified-field-list/src/components/field_item_button/field_item_button.tsx index fda7145eeae83..8ef947fc7bb8f 100644 --- a/packages/kbn-unified-field-list/src/components/field_item_button/field_item_button.tsx +++ b/packages/kbn-unified-field-list/src/components/field_item_button/field_item_button.tsx @@ -235,9 +235,9 @@ function FieldConflictInfoIcon() { } function getSearchHighlight(displayName: string, fieldSearchHighlight?: string): string { - const searchHighlight = fieldSearchHighlight || ''; + const searchHighlight = (fieldSearchHighlight || '').trim(); if ( - searchHighlight.includes('*') && + (searchHighlight.includes('*') || searchHighlight.includes(' ')) && fieldNameWildcardMatcher({ name: displayName }, searchHighlight) ) { return displayName; diff --git a/packages/kbn-unified-field-list/src/hooks/use_field_filters.test.tsx b/packages/kbn-unified-field-list/src/hooks/use_field_filters.test.tsx index f1a30a2d8a94c..8e86535f0bb85 100644 --- a/packages/kbn-unified-field-list/src/hooks/use_field_filters.test.tsx +++ b/packages/kbn-unified-field-list/src/hooks/use_field_filters.test.tsx @@ -58,7 +58,7 @@ describe('UnifiedFieldList useFieldFilters()', () => { expect(result.current.onFilterField).toBeUndefined(); act(() => { - result.current.fieldListFiltersProps.onChangeNameFilter('Time'); + result.current.fieldListFiltersProps.onChangeNameFilter('Time '); }); expect(result.current.fieldSearchHighlight).toBe('time'); diff --git a/packages/kbn-unified-field-list/src/hooks/use_field_filters.ts b/packages/kbn-unified-field-list/src/hooks/use_field_filters.ts index a6c84fbd30622..badf101195d9e 100644 --- a/packages/kbn-unified-field-list/src/hooks/use_field_filters.ts +++ b/packages/kbn-unified-field-list/src/hooks/use_field_filters.ts @@ -58,7 +58,7 @@ export function useFieldFilters({ const docLinks = services.core.docLinks; return useMemo(() => { - const fieldSearchHighlight = nameFilter.toLowerCase(); + const fieldSearchHighlight = nameFilter.trim().toLowerCase(); return { fieldSearchHighlight, fieldListFiltersProps: { diff --git a/packages/kbn-unified-field-list/src/utils/field_name_wildcard_matcher.test.tsx b/packages/kbn-unified-field-list/src/utils/field_name_wildcard_matcher.test.tsx index 2637ddf4046d2..56ee45f5eb207 100644 --- a/packages/kbn-unified-field-list/src/utils/field_name_wildcard_matcher.test.tsx +++ b/packages/kbn-unified-field-list/src/utils/field_name_wildcard_matcher.test.tsx @@ -9,8 +9,9 @@ import { type DataViewField } from '@kbn/data-views-plugin/common'; import { fieldNameWildcardMatcher } from './field_name_wildcard_matcher'; +const name = 'test.this_value.maybe'; describe('UnifiedFieldList fieldNameWildcardMatcher()', () => { - it('should work correctly', async () => { + it('should work correctly with wildcard', async () => { expect(fieldNameWildcardMatcher({ displayName: 'test' } as DataViewField, 'no')).toBe(false); expect( fieldNameWildcardMatcher({ displayName: 'test', name: 'yes' } as DataViewField, 'yes') @@ -25,14 +26,26 @@ describe('UnifiedFieldList fieldNameWildcardMatcher()', () => { true ); expect(fieldNameWildcardMatcher({ name: 'message.test' } as DataViewField, search)).toBe(false); - expect( - fieldNameWildcardMatcher({ name: 'test.this_value.maybe' } as DataViewField, search) - ).toBe(false); - expect( - fieldNameWildcardMatcher({ name: 'test.this_value.maybe' } as DataViewField, `${search}*`) - ).toBe(true); - expect( - fieldNameWildcardMatcher({ name: 'test.this_value.maybe' } as DataViewField, '*value*') - ).toBe(true); + expect(fieldNameWildcardMatcher({ name } as DataViewField, search)).toBe(false); + expect(fieldNameWildcardMatcher({ name } as DataViewField, `${search}*`)).toBe(true); + expect(fieldNameWildcardMatcher({ name } as DataViewField, '*value*')).toBe(true); + }); + + it('should work correctly with spaces', async () => { + expect(fieldNameWildcardMatcher({ name } as DataViewField, 'test maybe ')).toBe(true); + expect(fieldNameWildcardMatcher({ name } as DataViewField, 'test maybe*')).toBe(true); + expect(fieldNameWildcardMatcher({ name } as DataViewField, 'test. this')).toBe(true); + expect(fieldNameWildcardMatcher({ name } as DataViewField, 'this _value be')).toBe(true); + expect(fieldNameWildcardMatcher({ name } as DataViewField, 'test')).toBe(true); + expect(fieldNameWildcardMatcher({ name } as DataViewField, 'this')).toBe(true); + expect(fieldNameWildcardMatcher({ name } as DataViewField, ' value ')).toBe(true); + expect(fieldNameWildcardMatcher({ name } as DataViewField, 'be')).toBe(true); + expect(fieldNameWildcardMatcher({ name } as DataViewField, 'test this here')).toBe(false); + expect(fieldNameWildcardMatcher({ name } as DataViewField, 'test that')).toBe(false); + expect(fieldNameWildcardMatcher({ name } as DataViewField, ' ')).toBe(false); + expect(fieldNameWildcardMatcher({ name: 'geo.location3' } as DataViewField, '3')).toBe(true); + expect(fieldNameWildcardMatcher({ name: 'geo_location3' } as DataViewField, 'geo 3')).toBe( + true + ); }); }); diff --git a/packages/kbn-unified-field-list/src/utils/field_name_wildcard_matcher.ts b/packages/kbn-unified-field-list/src/utils/field_name_wildcard_matcher.ts index 98b0e64b7bc78..eadf5597b171b 100644 --- a/packages/kbn-unified-field-list/src/utils/field_name_wildcard_matcher.ts +++ b/packages/kbn-unified-field-list/src/utils/field_name_wildcard_matcher.ts @@ -9,7 +9,18 @@ import { escapeRegExp, memoize } from 'lodash'; const makeRegEx = memoize(function makeRegEx(glob: string) { - const globRegex = glob.split('*').map(escapeRegExp).join('.*'); + const trimmedGlob = glob.trim(); + let globRegex = trimmedGlob + .split(/[* ]+/) // wildcard or space as a separator + .map(escapeRegExp) + .join('.*'); + + // the search with spaces is less strict than with wildcard: + // we allow any start/ending of search results + if (trimmedGlob.includes(' ')) { + globRegex = '.*' + globRegex + '.*'; + } + return new RegExp(globRegex.includes('*') ? `^${globRegex}$` : globRegex, 'i'); }); @@ -23,12 +34,10 @@ export const fieldNameWildcardMatcher = ( field: { name: string; displayName?: string }, fieldSearchHighlight: string ): boolean => { - if (!fieldSearchHighlight) { + if (!fieldSearchHighlight?.trim()) { return false; } - return ( - (!!field.displayName && makeRegEx(fieldSearchHighlight).test(field.displayName)) || - makeRegEx(fieldSearchHighlight).test(field.name) - ); + const regExp = makeRegEx(fieldSearchHighlight); + return (!!field.displayName && regExp.test(field.displayName)) || regExp.test(field.name); }; diff --git a/test/functional/apps/discover/group3/_sidebar.ts b/test/functional/apps/discover/group3/_sidebar.ts index 6a09524777487..b392384f7b304 100644 --- a/test/functional/apps/discover/group3/_sidebar.ts +++ b/test/functional/apps/discover/group3/_sidebar.ts @@ -125,15 +125,31 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { ); }); }); + }); - it('should be able to search by string', async function () { + describe('search', function () { + beforeEach(async () => { await PageObjects.header.waitUntilLoadingHasFinished(); await PageObjects.unifiedFieldList.waitUntilSidebarHasLoaded(); expect(await PageObjects.unifiedFieldList.getSidebarAriaDescription()).to.be( INITIAL_FIELD_LIST_SUMMARY ); + }); + + afterEach(async () => { + const fieldSearch = await testSubjects.find('clearSearchButton'); + await fieldSearch.click(); + await retry.waitFor('reset', async () => { + return ( + (await PageObjects.unifiedFieldList.getSidebarAriaDescription()) === + INITIAL_FIELD_LIST_SUMMARY + ); + }); + }); + + it('should be able to search by string', async function () { await PageObjects.unifiedFieldList.findFieldByName('i'); await retry.waitFor('first updates', async () => { @@ -152,15 +168,54 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { ); }); - const fieldSearch = await testSubjects.find('clearSearchButton'); - await fieldSearch.click(); + expect( + (await PageObjects.unifiedFieldList.getSidebarSectionFieldNames('available')).join(', ') + ).to.be('clientip, ip, relatedContent.og:description, relatedContent.twitter:description'); + }); - await retry.waitFor('reset', async () => { + it('should be able to search by wildcard', async function () { + await PageObjects.unifiedFieldList.findFieldByName('relatedContent*image'); + + await retry.waitFor('updates', async () => { return ( (await PageObjects.unifiedFieldList.getSidebarAriaDescription()) === - INITIAL_FIELD_LIST_SUMMARY + '2 available fields. 0 empty fields. 0 meta fields.' ); }); + + expect( + (await PageObjects.unifiedFieldList.getSidebarSectionFieldNames('available')).join(', ') + ).to.be('relatedContent.og:image, relatedContent.twitter:image'); + }); + + it('should be able to search with spaces as wildcard', async function () { + await PageObjects.unifiedFieldList.findFieldByName('relatedContent image'); + + await retry.waitFor('updates', async () => { + return ( + (await PageObjects.unifiedFieldList.getSidebarAriaDescription()) === + '4 available fields. 0 empty fields. 0 meta fields.' + ); + }); + + expect( + (await PageObjects.unifiedFieldList.getSidebarSectionFieldNames('available')).join(', ') + ).to.be( + 'relatedContent.og:image, relatedContent.og:image:height, relatedContent.og:image:width, relatedContent.twitter:image' + ); + }); + + it('should ignore empty search', async function () { + await PageObjects.unifiedFieldList.findFieldByName(' '); // only spaces + + await retry.waitFor('the clear button', async () => { + return await testSubjects.exists('clearSearchButton'); + }); + + // expect no changes in the list + expect(await PageObjects.unifiedFieldList.getSidebarAriaDescription()).to.be( + INITIAL_FIELD_LIST_SUMMARY + ); }); }); From 0e1ed719ec229b3fcf1351cb82ff175342379fab Mon Sep 17 00:00:00 2001 From: Julian Gernun <17549662+jcger@users.noreply.github.com> Date: Wed, 11 Oct 2023 15:59:58 +0200 Subject: [PATCH 17/79] Http versioning rule tags (#165849) ## Summary Meta Issue: https://github.com/elastic/kibana/issues/157883 Add HTTP versioning to GET rule tags endpoint --- .../routes/rule/apis/tags/constants/latest.ts | 7 ++ .../routes/rule/apis/tags/constants/v1.ts | 8 ++ .../common/routes/rule/apis/tags/index.ts | 18 +++++ .../routes/rule/apis/tags/schemas/latest.ts | 7 ++ .../routes/rule/apis/tags/schemas/v1.ts | 21 ++++++ .../routes/rule/apis/tags/types/latest.ts | 7 ++ .../common/routes/rule/apis/tags/types/v1.ts | 11 +++ .../rule/methods/tags/get_rule_tags.test.ts} | 14 ++-- .../rule/methods/tags/get_rule_tags.ts} | 74 +++++++------------ .../application/rule/methods/tags/index.ts | 10 +++ .../rule/methods/tags/schemas/index.ts | 8 ++ .../rule_tags_aggregation_result_schema.ts | 19 +++++ .../tags/schemas/rule_tags_params_schema.ts | 15 ++++ .../rule/methods/tags/types/index.ts | 9 +++ .../types/rule_tags_aggregation_result.ts | 11 +++ .../methods/tags/types/rule_tags_params.ts | 10 +++ .../plugins/alerting/server/routes/index.ts | 2 +- .../apis/tags}/get_rule_tags.test.ts | 10 +-- .../{ => rule/apis/tags}/get_rule_tags.ts | 41 ++++------ .../server/routes/rule/apis/tags/index.ts | 8 ++ .../routes/rule/apis/tags/transforms/index.ts | 11 +++ .../latest.ts | 7 ++ .../transform_rule_tags_body_response/v1.ts | 20 +++++ .../latest.ts | 7 ++ .../transform_rule_tags_query_request/v1.ts | 19 +++++ .../server/rules_client/rules_client.ts | 4 +- 26 files changed, 286 insertions(+), 92 deletions(-) create mode 100644 x-pack/plugins/alerting/common/routes/rule/apis/tags/constants/latest.ts create mode 100644 x-pack/plugins/alerting/common/routes/rule/apis/tags/constants/v1.ts create mode 100644 x-pack/plugins/alerting/common/routes/rule/apis/tags/index.ts create mode 100644 x-pack/plugins/alerting/common/routes/rule/apis/tags/schemas/latest.ts create mode 100644 x-pack/plugins/alerting/common/routes/rule/apis/tags/schemas/v1.ts create mode 100644 x-pack/plugins/alerting/common/routes/rule/apis/tags/types/latest.ts create mode 100644 x-pack/plugins/alerting/common/routes/rule/apis/tags/types/v1.ts rename x-pack/plugins/alerting/server/{rules_client/tests/get_tags.test.ts => application/rule/methods/tags/get_rule_tags.test.ts} (93%) rename x-pack/plugins/alerting/server/{rules_client/methods/get_tags.ts => application/rule/methods/tags/get_rule_tags.ts} (56%) create mode 100644 x-pack/plugins/alerting/server/application/rule/methods/tags/index.ts create mode 100644 x-pack/plugins/alerting/server/application/rule/methods/tags/schemas/index.ts create mode 100644 x-pack/plugins/alerting/server/application/rule/methods/tags/schemas/rule_tags_aggregation_result_schema.ts create mode 100644 x-pack/plugins/alerting/server/application/rule/methods/tags/schemas/rule_tags_params_schema.ts create mode 100644 x-pack/plugins/alerting/server/application/rule/methods/tags/types/index.ts create mode 100644 x-pack/plugins/alerting/server/application/rule/methods/tags/types/rule_tags_aggregation_result.ts create mode 100644 x-pack/plugins/alerting/server/application/rule/methods/tags/types/rule_tags_params.ts rename x-pack/plugins/alerting/server/routes/{ => rule/apis/tags}/get_rule_tags.test.ts (89%) rename x-pack/plugins/alerting/server/routes/{ => rule/apis/tags}/get_rule_tags.ts (50%) create mode 100644 x-pack/plugins/alerting/server/routes/rule/apis/tags/index.ts create mode 100644 x-pack/plugins/alerting/server/routes/rule/apis/tags/transforms/index.ts create mode 100644 x-pack/plugins/alerting/server/routes/rule/apis/tags/transforms/transform_rule_tags_body_response/latest.ts create mode 100644 x-pack/plugins/alerting/server/routes/rule/apis/tags/transforms/transform_rule_tags_body_response/v1.ts create mode 100644 x-pack/plugins/alerting/server/routes/rule/apis/tags/transforms/transform_rule_tags_query_request/latest.ts create mode 100644 x-pack/plugins/alerting/server/routes/rule/apis/tags/transforms/transform_rule_tags_query_request/v1.ts diff --git a/x-pack/plugins/alerting/common/routes/rule/apis/tags/constants/latest.ts b/x-pack/plugins/alerting/common/routes/rule/apis/tags/constants/latest.ts new file mode 100644 index 0000000000000..0f2c5b2e7a45a --- /dev/null +++ b/x-pack/plugins/alerting/common/routes/rule/apis/tags/constants/latest.ts @@ -0,0 +1,7 @@ +/* + * 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 { DEFAULT_TAGS_PER_PAGEV1 as DEFAULT_TAGS_PER_PAGE } from './v1'; diff --git a/x-pack/plugins/alerting/common/routes/rule/apis/tags/constants/v1.ts b/x-pack/plugins/alerting/common/routes/rule/apis/tags/constants/v1.ts new file mode 100644 index 0000000000000..b07047ba3dfd1 --- /dev/null +++ b/x-pack/plugins/alerting/common/routes/rule/apis/tags/constants/v1.ts @@ -0,0 +1,8 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export const DEFAULT_TAGS_PER_PAGEV1 = 50 as const; diff --git a/x-pack/plugins/alerting/common/routes/rule/apis/tags/index.ts b/x-pack/plugins/alerting/common/routes/rule/apis/tags/index.ts new file mode 100644 index 0000000000000..45f88825b578b --- /dev/null +++ b/x-pack/plugins/alerting/common/routes/rule/apis/tags/index.ts @@ -0,0 +1,18 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export { ruleTagsRequestQuerySchema, ruleTagsFormattedResponseSchema } from './schemas/latest'; +export type { RuleTagsRequestQuery, RuleTagsFormattedResponse } from './types/latest'; + +export { + ruleTagsRequestQuerySchema as ruleTagsRequestQuerySchemaV1, + ruleTagsFormattedResponseSchema as ruleTagsFormattedResponseSchemaV1, +} from './schemas/v1'; +export type { + RuleTagsRequestQuery as RuleTagsRequestQueryV1, + RuleTagsFormattedResponse as RuleTagsFormattedResponseV1, +} from './types/v1'; diff --git a/x-pack/plugins/alerting/common/routes/rule/apis/tags/schemas/latest.ts b/x-pack/plugins/alerting/common/routes/rule/apis/tags/schemas/latest.ts new file mode 100644 index 0000000000000..8b2918234cf91 --- /dev/null +++ b/x-pack/plugins/alerting/common/routes/rule/apis/tags/schemas/latest.ts @@ -0,0 +1,7 @@ +/* + * 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 { ruleTagsRequestQuerySchema, ruleTagsFormattedResponseSchema } from './v1'; diff --git a/x-pack/plugins/alerting/common/routes/rule/apis/tags/schemas/v1.ts b/x-pack/plugins/alerting/common/routes/rule/apis/tags/schemas/v1.ts new file mode 100644 index 0000000000000..eeedf16f82d30 --- /dev/null +++ b/x-pack/plugins/alerting/common/routes/rule/apis/tags/schemas/v1.ts @@ -0,0 +1,21 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import { schema } from '@kbn/config-schema'; +import { DEFAULT_TAGS_PER_PAGEV1 } from '../constants/v1'; + +export const ruleTagsRequestQuerySchema = schema.object({ + page: schema.number({ defaultValue: 1, min: 1 }), + per_page: schema.maybe(schema.number({ defaultValue: DEFAULT_TAGS_PER_PAGEV1, min: 1 })), + search: schema.maybe(schema.string()), +}); + +export const ruleTagsFormattedResponseSchema = schema.object({ + total: schema.number(), + page: schema.number(), + perPage: schema.number(), + data: schema.arrayOf(schema.string()), +}); diff --git a/x-pack/plugins/alerting/common/routes/rule/apis/tags/types/latest.ts b/x-pack/plugins/alerting/common/routes/rule/apis/tags/types/latest.ts new file mode 100644 index 0000000000000..cfde690cca3cc --- /dev/null +++ b/x-pack/plugins/alerting/common/routes/rule/apis/tags/types/latest.ts @@ -0,0 +1,7 @@ +/* + * 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 type { RuleTagsRequestQuery, RuleTagsFormattedResponse } from './v1'; diff --git a/x-pack/plugins/alerting/common/routes/rule/apis/tags/types/v1.ts b/x-pack/plugins/alerting/common/routes/rule/apis/tags/types/v1.ts new file mode 100644 index 0000000000000..bcd7680a17c97 --- /dev/null +++ b/x-pack/plugins/alerting/common/routes/rule/apis/tags/types/v1.ts @@ -0,0 +1,11 @@ +/* + * 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 { TypeOf } from '@kbn/config-schema'; +import { ruleTagsRequestQuerySchema, ruleTagsFormattedResponseSchema } from '..'; + +export type RuleTagsRequestQuery = TypeOf; +export type RuleTagsFormattedResponse = TypeOf; diff --git a/x-pack/plugins/alerting/server/rules_client/tests/get_tags.test.ts b/x-pack/plugins/alerting/server/application/rule/methods/tags/get_rule_tags.test.ts similarity index 93% rename from x-pack/plugins/alerting/server/rules_client/tests/get_tags.test.ts rename to x-pack/plugins/alerting/server/application/rule/methods/tags/get_rule_tags.test.ts index 3941318a000d6..dd1f3150d0a08 100644 --- a/x-pack/plugins/alerting/server/rules_client/tests/get_tags.test.ts +++ b/x-pack/plugins/alerting/server/application/rule/methods/tags/get_rule_tags.test.ts @@ -5,23 +5,23 @@ * 2.0. */ import { v4 } from 'uuid'; -import { RulesClient, ConstructorOptions } from '../rules_client'; +import { RulesClient, ConstructorOptions } from '../../../../rules_client/rules_client'; import { savedObjectsClientMock, loggingSystemMock, savedObjectsRepositoryMock, } from '@kbn/core/server/mocks'; import { taskManagerMock } from '@kbn/task-manager-plugin/server/mocks'; -import { ruleTypeRegistryMock } from '../../rule_type_registry.mock'; -import { alertingAuthorizationMock } from '../../authorization/alerting_authorization.mock'; +import { ruleTypeRegistryMock } from '../../../../rule_type_registry.mock'; +import { alertingAuthorizationMock } from '../../../../authorization/alerting_authorization.mock'; import { encryptedSavedObjectsMock } from '@kbn/encrypted-saved-objects-plugin/server/mocks'; import { actionsAuthorizationMock } from '@kbn/actions-plugin/server/mocks'; -import { AlertingAuthorization } from '../../authorization/alerting_authorization'; +import { AlertingAuthorization } from '../../../../authorization/alerting_authorization'; import { ActionsAuthorization } from '@kbn/actions-plugin/server'; import { auditLoggerMock } from '@kbn/security-plugin/server/audit/mocks'; -import { getBeforeSetup } from './lib'; -import { RecoveredActionGroup } from '../../../common'; -import { RegistryRuleType } from '../../rule_type_registry'; +import { getBeforeSetup } from '../../../../rules_client/tests/lib'; +import { RecoveredActionGroup } from '../../../../../common'; +import { RegistryRuleType } from '../../../../rule_type_registry'; const taskManager = taskManagerMock.createStart(); const ruleTypeRegistry = ruleTypeRegistryMock.create(); diff --git a/x-pack/plugins/alerting/server/rules_client/methods/get_tags.ts b/x-pack/plugins/alerting/server/application/rule/methods/tags/get_rule_tags.ts similarity index 56% rename from x-pack/plugins/alerting/server/rules_client/methods/get_tags.ts rename to x-pack/plugins/alerting/server/application/rule/methods/tags/get_rule_tags.ts index 1028c39a5149c..c26fae42ce324 100644 --- a/x-pack/plugins/alerting/server/rules_client/methods/get_tags.ts +++ b/x-pack/plugins/alerting/server/application/rule/methods/tags/get_rule_tags.ts @@ -5,49 +5,26 @@ * 2.0. */ import Boom from '@hapi/boom'; -import { TypeOf, schema } from '@kbn/config-schema'; import { KueryNode, nodeBuilder, nodeTypes } from '@kbn/es-query'; -import { RulesClientContext } from '../types'; -import { AlertingAuthorizationEntity } from '../../authorization'; -import { alertingAuthorizationFilterOpts } from '../common/constants'; -import { ruleAuditEvent, RuleAuditAction } from '../common/audit_events'; -import { RawRule } from '../../types'; +import { findRulesSo } from '../../../../data/rule/methods/find_rules_so'; +import { ruleTagsParamsSchema, RuleTagsParams, RuleTagsAggregationResult } from '.'; +import type { RuleTagsFormattedResponse } from '../../../../../common/routes/rule/apis/tags'; +import { DEFAULT_TAGS_PER_PAGE } from '../../../../../common/routes/rule/apis/tags/constants/latest'; +import { RulesClientContext } from '../../../../rules_client/types'; +import { AlertingAuthorizationEntity } from '../../../../authorization'; +import { alertingAuthorizationFilterOpts } from '../../../../rules_client/common/constants'; +import { ruleAuditEvent, RuleAuditAction } from '../../../../rules_client/common/audit_events'; -export const DEFAULT_TAGS_PER_PAGE = 50; const MAX_TAGS = 10000; -const getTagsParamsSchema = schema.object({ - page: schema.number({ defaultValue: 1, min: 1 }), - perPage: schema.maybe(schema.number({ defaultValue: DEFAULT_TAGS_PER_PAGE, min: 1 })), - search: schema.maybe(schema.string()), -}); - -export type GetTagsParams = TypeOf; - -export interface RuleTagsAggregationResult { - tags: { - buckets: Array<{ - key: string; - doc_count: number; - }>; - }; -} - -export interface GetTagsResult { - total: number; - page: number; - perPage: number; - data: string[]; -} - -export async function getTags( +export async function getRuleTags( context: RulesClientContext, - params: GetTagsParams -): Promise { - let validatedParams: GetTagsParams; + params: RuleTagsParams +): Promise { + let validatedParams: RuleTagsParams; try { - validatedParams = getTagsParamsSchema.validate(params); + validatedParams = ruleTagsParamsSchema.validate(params); } catch (error) { throw Boom.badRequest(`Failed to validate params: ${error.message}`); } @@ -80,20 +57,19 @@ export async function getTags( ]) : authorizationFilter; - const response = await context.unsecuredSavedObjectsClient.find< - RawRule, - RuleTagsAggregationResult - >({ - filter, - type: 'alert', - aggs: { - tags: { - terms: { - field: 'alert.attributes.tags', - order: { - _key: 'asc', + const response = await findRulesSo({ + savedObjectsClient: context.unsecuredSavedObjectsClient, + savedObjectsFindOptions: { + filter, + aggs: { + tags: { + terms: { + field: 'alert.attributes.tags', + order: { + _key: 'asc', + }, + size: MAX_TAGS, }, - size: MAX_TAGS, }, }, }, diff --git a/x-pack/plugins/alerting/server/application/rule/methods/tags/index.ts b/x-pack/plugins/alerting/server/application/rule/methods/tags/index.ts new file mode 100644 index 0000000000000..0e01180e32788 --- /dev/null +++ b/x-pack/plugins/alerting/server/application/rule/methods/tags/index.ts @@ -0,0 +1,10 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +export { ruleTagsParamsSchema, ruleTagsAggregationResultSchema } from './schemas'; +export type { RuleTagsParams, RuleTagsAggregationResult } from './types'; + +export { getRuleTags } from './get_rule_tags'; diff --git a/x-pack/plugins/alerting/server/application/rule/methods/tags/schemas/index.ts b/x-pack/plugins/alerting/server/application/rule/methods/tags/schemas/index.ts new file mode 100644 index 0000000000000..fad73f4057ba9 --- /dev/null +++ b/x-pack/plugins/alerting/server/application/rule/methods/tags/schemas/index.ts @@ -0,0 +1,8 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +export { ruleTagsParamsSchema } from './rule_tags_params_schema'; +export { ruleTagsAggregationResultSchema } from './rule_tags_aggregation_result_schema'; diff --git a/x-pack/plugins/alerting/server/application/rule/methods/tags/schemas/rule_tags_aggregation_result_schema.ts b/x-pack/plugins/alerting/server/application/rule/methods/tags/schemas/rule_tags_aggregation_result_schema.ts new file mode 100644 index 0000000000000..17b8e7e406ed6 --- /dev/null +++ b/x-pack/plugins/alerting/server/application/rule/methods/tags/schemas/rule_tags_aggregation_result_schema.ts @@ -0,0 +1,19 @@ +/* + * 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 } from '@kbn/config-schema'; + +export const ruleTagsAggregationResultSchema = schema.object({ + tags: schema.object({ + buckets: schema.arrayOf( + schema.object({ + key: schema.string(), + doc_count: schema.number(), + }) + ), + }), +}); diff --git a/x-pack/plugins/alerting/server/application/rule/methods/tags/schemas/rule_tags_params_schema.ts b/x-pack/plugins/alerting/server/application/rule/methods/tags/schemas/rule_tags_params_schema.ts new file mode 100644 index 0000000000000..9df856a7b4aa7 --- /dev/null +++ b/x-pack/plugins/alerting/server/application/rule/methods/tags/schemas/rule_tags_params_schema.ts @@ -0,0 +1,15 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { schema } from '@kbn/config-schema'; +import { DEFAULT_TAGS_PER_PAGE } from '../../../../../../common/routes/rule/apis/tags/constants/latest'; + +export const ruleTagsParamsSchema = schema.object({ + page: schema.number({ defaultValue: 1, min: 1 }), + perPage: schema.maybe(schema.number({ defaultValue: DEFAULT_TAGS_PER_PAGE, min: 1 })), + search: schema.maybe(schema.string()), +}); diff --git a/x-pack/plugins/alerting/server/application/rule/methods/tags/types/index.ts b/x-pack/plugins/alerting/server/application/rule/methods/tags/types/index.ts new file mode 100644 index 0000000000000..04f451e88dafd --- /dev/null +++ b/x-pack/plugins/alerting/server/application/rule/methods/tags/types/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 type { RuleTagsParams } from './rule_tags_params'; +export type { RuleTagsAggregationResult } from './rule_tags_aggregation_result'; diff --git a/x-pack/plugins/alerting/server/application/rule/methods/tags/types/rule_tags_aggregation_result.ts b/x-pack/plugins/alerting/server/application/rule/methods/tags/types/rule_tags_aggregation_result.ts new file mode 100644 index 0000000000000..4dabbc9393ea2 --- /dev/null +++ b/x-pack/plugins/alerting/server/application/rule/methods/tags/types/rule_tags_aggregation_result.ts @@ -0,0 +1,11 @@ +/* + * 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 { TypeOf } from '@kbn/config-schema'; +import { ruleTagsAggregationResultSchema } from '../schemas'; + +export type RuleTagsAggregationResult = TypeOf; diff --git a/x-pack/plugins/alerting/server/application/rule/methods/tags/types/rule_tags_params.ts b/x-pack/plugins/alerting/server/application/rule/methods/tags/types/rule_tags_params.ts new file mode 100644 index 0000000000000..c5142616ed56b --- /dev/null +++ b/x-pack/plugins/alerting/server/application/rule/methods/tags/types/rule_tags_params.ts @@ -0,0 +1,10 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import { TypeOf } from '@kbn/config-schema'; +import { ruleTagsParamsSchema } from '../schemas'; + +export type RuleTagsParams = TypeOf; diff --git a/x-pack/plugins/alerting/server/routes/index.ts b/x-pack/plugins/alerting/server/routes/index.ts index f13533921f16b..a90ad5feba4da 100644 --- a/x-pack/plugins/alerting/server/routes/index.ts +++ b/x-pack/plugins/alerting/server/routes/index.ts @@ -46,7 +46,7 @@ import { bulkDisableRulesRoute } from './rule/apis/bulk_disable/bulk_disable_rul import { cloneRuleRoute } from './clone_rule'; import { getFlappingSettingsRoute } from './get_flapping_settings'; import { updateFlappingSettingsRoute } from './update_flapping_settings'; -import { getRuleTagsRoute } from './get_rule_tags'; +import { getRuleTagsRoute } from './rule/apis/tags/get_rule_tags'; import { getScheduleFrequencyRoute } from './rule/apis/get_schedule_frequency'; import { bulkUntrackAlertRoute } from './rule/apis/bulk_untrack'; diff --git a/x-pack/plugins/alerting/server/routes/get_rule_tags.test.ts b/x-pack/plugins/alerting/server/routes/rule/apis/tags/get_rule_tags.test.ts similarity index 89% rename from x-pack/plugins/alerting/server/routes/get_rule_tags.test.ts rename to x-pack/plugins/alerting/server/routes/rule/apis/tags/get_rule_tags.test.ts index 1929c23628cbb..a8a1992480841 100644 --- a/x-pack/plugins/alerting/server/routes/get_rule_tags.test.ts +++ b/x-pack/plugins/alerting/server/routes/rule/apis/tags/get_rule_tags.test.ts @@ -6,15 +6,15 @@ */ import { httpServiceMock } from '@kbn/core/server/mocks'; -import { licenseStateMock } from '../lib/license_state.mock'; -import { verifyApiAccess } from '../lib/license_api_access'; -import { mockHandlerArguments } from './_mock_handler_arguments'; -import { rulesClientMock } from '../rules_client.mock'; +import { licenseStateMock } from '../../../../lib/license_state.mock'; +import { verifyApiAccess } from '../../../../lib/license_api_access'; +import { mockHandlerArguments } from '../../../_mock_handler_arguments'; +import { rulesClientMock } from '../../../../rules_client.mock'; import { getRuleTagsRoute } from './get_rule_tags'; const rulesClient = rulesClientMock.create(); -jest.mock('../lib/license_api_access', () => ({ +jest.mock('../../../../lib/license_api_access', () => ({ verifyApiAccess: jest.fn(), })); diff --git a/x-pack/plugins/alerting/server/routes/get_rule_tags.ts b/x-pack/plugins/alerting/server/routes/rule/apis/tags/get_rule_tags.ts similarity index 50% rename from x-pack/plugins/alerting/server/routes/get_rule_tags.ts rename to x-pack/plugins/alerting/server/routes/rule/apis/tags/get_rule_tags.ts index dfbfb252d968d..c115ba7fc6c6c 100644 --- a/x-pack/plugins/alerting/server/routes/get_rule_tags.ts +++ b/x-pack/plugins/alerting/server/routes/rule/apis/tags/get_rule_tags.ts @@ -4,33 +4,16 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ - import { IRouter } from '@kbn/core/server'; -import { schema } from '@kbn/config-schema'; -import { AlertingRequestHandlerContext, INTERNAL_BASE_ALERTING_API_PATH } from '../types'; -import { ILicenseState } from '../lib'; -import { RewriteResponseCase, RewriteRequestCase, verifyAccessAndContext } from './lib'; +import { transformRuleTagsBodyResponseV1 } from './transforms'; +import { transformRuleTagsQueryRequestV1 } from './transforms'; import { - DEFAULT_TAGS_PER_PAGE, - GetTagsParams, - GetTagsResult, -} from '../rules_client/methods/get_tags'; - -const querySchema = schema.object({ - page: schema.number({ defaultValue: 1, min: 1 }), - per_page: schema.maybe(schema.number({ defaultValue: DEFAULT_TAGS_PER_PAGE, min: 1 })), - search: schema.maybe(schema.string()), -}); - -const rewriteQueryReq: RewriteRequestCase = ({ per_page: perPage, ...rest }) => ({ - ...rest, - perPage, -}); - -const rewriteBodyRes: RewriteResponseCase = ({ perPage, ...rest }) => ({ - ...rest, - per_page: perPage, -}); + ruleTagsRequestQuerySchemaV1, + RuleTagsRequestQueryV1, +} from '../../../../../common/routes/rule/apis/tags'; +import { AlertingRequestHandlerContext, INTERNAL_BASE_ALERTING_API_PATH } from '../../../../types'; +import { ILicenseState } from '../../../../lib'; +import { verifyAccessAndContext } from '../../../lib'; export const getRuleTagsRoute = ( router: IRouter, @@ -40,18 +23,20 @@ export const getRuleTagsRoute = ( { path: `${INTERNAL_BASE_ALERTING_API_PATH}/rules/_tags`, validate: { - query: querySchema, + query: ruleTagsRequestQuerySchemaV1, }, }, router.handleLegacyErrors( verifyAccessAndContext(licenseState, async function (context, req, res) { const rulesClient = (await context.alerting).getRulesClient(); - const options = rewriteQueryReq(req.query); + const query: RuleTagsRequestQueryV1 = req.query; + + const options = transformRuleTagsQueryRequestV1(query); const tagsResult = await rulesClient.getTags(options); return res.ok({ - body: rewriteBodyRes(tagsResult), + body: transformRuleTagsBodyResponseV1(tagsResult), }); }) ) diff --git a/x-pack/plugins/alerting/server/routes/rule/apis/tags/index.ts b/x-pack/plugins/alerting/server/routes/rule/apis/tags/index.ts new file mode 100644 index 0000000000000..ace9be12c1040 --- /dev/null +++ b/x-pack/plugins/alerting/server/routes/rule/apis/tags/index.ts @@ -0,0 +1,8 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export { getRuleTagsRoute } from './get_rule_tags'; diff --git a/x-pack/plugins/alerting/server/routes/rule/apis/tags/transforms/index.ts b/x-pack/plugins/alerting/server/routes/rule/apis/tags/transforms/index.ts new file mode 100644 index 0000000000000..85f86cd797759 --- /dev/null +++ b/x-pack/plugins/alerting/server/routes/rule/apis/tags/transforms/index.ts @@ -0,0 +1,11 @@ +/* + * 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 { transformRuleTagsQueryRequest } from './transform_rule_tags_query_request/latest'; +export { transformRuleTagsQueryRequest as transformRuleTagsQueryRequestV1 } from './transform_rule_tags_query_request/v1'; + +export { transformRuleTagsBodyResponse } from './transform_rule_tags_body_response/latest'; +export { transformRuleTagsBodyResponse as transformRuleTagsBodyResponseV1 } from './transform_rule_tags_body_response/v1'; diff --git a/x-pack/plugins/alerting/server/routes/rule/apis/tags/transforms/transform_rule_tags_body_response/latest.ts b/x-pack/plugins/alerting/server/routes/rule/apis/tags/transforms/transform_rule_tags_body_response/latest.ts new file mode 100644 index 0000000000000..0ca75b3396a1d --- /dev/null +++ b/x-pack/plugins/alerting/server/routes/rule/apis/tags/transforms/transform_rule_tags_body_response/latest.ts @@ -0,0 +1,7 @@ +/* + * 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 { transformRuleTagsBodyResponse } from './v1'; diff --git a/x-pack/plugins/alerting/server/routes/rule/apis/tags/transforms/transform_rule_tags_body_response/v1.ts b/x-pack/plugins/alerting/server/routes/rule/apis/tags/transforms/transform_rule_tags_body_response/v1.ts new file mode 100644 index 0000000000000..dc6a1c3e1bade --- /dev/null +++ b/x-pack/plugins/alerting/server/routes/rule/apis/tags/transforms/transform_rule_tags_body_response/v1.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 { RewriteResponseCase } from '@kbn/actions-plugin/common'; +import type { RuleTagsFormattedResponse } from '../../../../../../../common/routes/rule/apis/tags'; + +export const transformRuleTagsBodyResponse: RewriteResponseCase = ({ + perPage, + total, + page, + data, +}) => ({ + total, + page, + data, + per_page: perPage, +}); diff --git a/x-pack/plugins/alerting/server/routes/rule/apis/tags/transforms/transform_rule_tags_query_request/latest.ts b/x-pack/plugins/alerting/server/routes/rule/apis/tags/transforms/transform_rule_tags_query_request/latest.ts new file mode 100644 index 0000000000000..8617749021ee4 --- /dev/null +++ b/x-pack/plugins/alerting/server/routes/rule/apis/tags/transforms/transform_rule_tags_query_request/latest.ts @@ -0,0 +1,7 @@ +/* + * 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 { transformRuleTagsQueryRequest } from './v1'; diff --git a/x-pack/plugins/alerting/server/routes/rule/apis/tags/transforms/transform_rule_tags_query_request/v1.ts b/x-pack/plugins/alerting/server/routes/rule/apis/tags/transforms/transform_rule_tags_query_request/v1.ts new file mode 100644 index 0000000000000..3fbd52521a9d5 --- /dev/null +++ b/x-pack/plugins/alerting/server/routes/rule/apis/tags/transforms/transform_rule_tags_query_request/v1.ts @@ -0,0 +1,19 @@ +/* + * 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 { RewriteRequestCase } from '@kbn/actions-plugin/common'; +import type { RuleTagsParams } from '../../../../../../application/rule/methods/tags'; + +export const transformRuleTagsQueryRequest: RewriteRequestCase = ({ + per_page: perPage, + page, + search, +}) => ({ + page, + search, + perPage, +}); diff --git a/x-pack/plugins/alerting/server/rules_client/rules_client.ts b/x-pack/plugins/alerting/server/rules_client/rules_client.ts index 09021f1df8520..12212b772ce71 100644 --- a/x-pack/plugins/alerting/server/rules_client/rules_client.ts +++ b/x-pack/plugins/alerting/server/rules_client/rules_client.ts @@ -5,6 +5,7 @@ * 2.0. */ +import { getRuleTags, RuleTagsParams } from '../application/rule/methods/tags'; import { MuteAlertParams } from '../application/rule/methods/mute_alert/types'; import { SanitizedRule, RuleTypeParams } from '../types'; import { parseDuration } from '../../common/parse_duration'; @@ -63,7 +64,6 @@ import { unmuteInstance } from './methods/unmute_instance'; import { runSoon } from './methods/run_soon'; import { listRuleTypes } from './methods/list_rule_types'; import { getAlertFromRaw, GetAlertFromRawParams } from './lib/get_alert_from_raw'; -import { getTags, GetTagsParams } from './methods/get_tags'; import { getScheduleFrequency } from '../application/rule/methods/get_schedule_frequency/get_schedule_frequency'; import { bulkUntrackAlerts, @@ -193,7 +193,7 @@ export class RulesClient { return this.context.auditLogger; } - public getTags = (params: GetTagsParams) => getTags(this.context, params); + public getTags = (params: RuleTagsParams) => getRuleTags(this.context, params); public getScheduleFrequency = () => getScheduleFrequency(this.context); From e8a996864d21e833234a0a75af290515856b3d2f Mon Sep 17 00:00:00 2001 From: Carlos Delgado <6339205+carlosdelest@users.noreply.github.com> Date: Wed, 11 Oct 2023 16:12:22 +0200 Subject: [PATCH 18/79] sparse_vector field support (#168186) --- .../kbn-field-utils/src/utils/field_types.ts | 1 + .../src/utils/get_field_type_description.ts | 4 ++++ .../src/utils/get_field_type_name.ts | 4 ++++ .../__snapshots__/field_icon.test.tsx.snap | 10 ++++++++++ .../src/field_icon/field_icon.tsx | 2 ++ .../update_ml_inference_mappings.test.ts | 4 ++-- .../update_ml_inference_mappings.ts | 4 ++-- .../constants/data_types_definition.tsx | 18 ++++++++++++++++++ .../mappings_editor/types/document_fields.ts | 1 + 9 files changed, 44 insertions(+), 4 deletions(-) diff --git a/packages/kbn-field-utils/src/utils/field_types.ts b/packages/kbn-field-utils/src/utils/field_types.ts index 88d1a46949494..1d2649552479e 100644 --- a/packages/kbn-field-utils/src/utils/field_types.ts +++ b/packages/kbn-field-utils/src/utils/field_types.ts @@ -36,6 +36,7 @@ export enum KNOWN_FIELD_TYPES { RANK_FEATURES = 'rank_features', POINT = 'point', SHAPE = 'shape', + SPARSE_VECTOR = 'sparse_vector', STRING = 'string', TEXT = 'text', VERSION = 'version', diff --git a/packages/kbn-field-utils/src/utils/get_field_type_description.ts b/packages/kbn-field-utils/src/utils/get_field_type_description.ts index 3049da4304ec7..332f013b90db7 100644 --- a/packages/kbn-field-utils/src/utils/get_field_type_description.ts +++ b/packages/kbn-field-utils/src/utils/get_field_type_description.ts @@ -118,6 +118,10 @@ export function getFieldTypeDescription(type?: string) { return i18n.translate('fieldUtils.fieldNameDescription.shapeField', { defaultMessage: 'Arbitrary cartesian geometries.', }); + case KNOWN_FIELD_TYPES.SPARSE_VECTOR: + return i18n.translate('fieldUtils.fieldNameDescription.sparseVectorField', { + defaultMessage: 'Records sparse vectors of float values.', + }); case KNOWN_FIELD_TYPES.STRING: return i18n.translate('fieldUtils.fieldNameDescription.stringField', { defaultMessage: 'Full text such as the body of an email or a product description.', diff --git a/packages/kbn-field-utils/src/utils/get_field_type_name.ts b/packages/kbn-field-utils/src/utils/get_field_type_name.ts index 65ce720385b8e..bdf88897958b9 100644 --- a/packages/kbn-field-utils/src/utils/get_field_type_name.ts +++ b/packages/kbn-field-utils/src/utils/get_field_type_name.ts @@ -123,6 +123,10 @@ export function getFieldTypeName(type?: string) { return i18n.translate('fieldUtils.fieldNameIcons.shapeFieldAriaLabel', { defaultMessage: 'Shape', }); + case KNOWN_FIELD_TYPES.SPARSE_VECTOR: + return i18n.translate('fieldUtils.fieldNameIcons.sparseVectorFieldAriaLabel', { + defaultMessage: 'Sparse vector', + }); case KNOWN_FIELD_TYPES.STRING: return i18n.translate('fieldUtils.fieldNameIcons.stringFieldAriaLabel', { defaultMessage: 'String', diff --git a/packages/kbn-react-field/src/field_icon/__snapshots__/field_icon.test.tsx.snap b/packages/kbn-react-field/src/field_icon/__snapshots__/field_icon.test.tsx.snap index ada9724ca04e5..d33152540f7ea 100644 --- a/packages/kbn-react-field/src/field_icon/__snapshots__/field_icon.test.tsx.snap +++ b/packages/kbn-react-field/src/field_icon/__snapshots__/field_icon.test.tsx.snap @@ -275,6 +275,16 @@ exports[`FieldIcon renders known field types shape is rendered 1`] = ` /> `; +exports[`FieldIcon renders known field types sparse_vector is rendered 1`] = ` + +`; + exports[`FieldIcon renders known field types string is rendered 1`] = ` { | '_source' | 'point' | 'shape' + | 'sparse_vector' | 'string' | string | 'nested' @@ -69,6 +70,7 @@ export const typeToEuiIconMap: Partial> = { _source: { iconType: 'editorCodeBlock', color: 'gray' }, point: { iconType: 'tokenShape' }, // there is no separate icon for `point` yet shape: { iconType: 'tokenShape' }, + sparse_vector: { iconType: 'tokenDenseVector' }, string: { iconType: 'tokenString' }, text: { iconType: 'tokenString' }, keyword: { iconType: 'tokenKeyword' }, diff --git a/x-pack/plugins/enterprise_search/server/lib/indices/pipelines/ml_inference/update_ml_inference_mappings.test.ts b/x-pack/plugins/enterprise_search/server/lib/indices/pipelines/ml_inference/update_ml_inference_mappings.test.ts index 59699929ec313..bb9d7395c58e5 100644 --- a/x-pack/plugins/enterprise_search/server/lib/indices/pipelines/ml_inference/update_ml_inference_mappings.test.ts +++ b/x-pack/plugins/enterprise_search/server/lib/indices/pipelines/ml_inference/update_ml_inference_mappings.test.ts @@ -44,7 +44,7 @@ describe('updateMlInferenceMappings', () => { input_one_expanded: { properties: { predicted_value: { - type: 'rank_features', + type: 'sparse_vector', }, model_id: { type: 'keyword', @@ -54,7 +54,7 @@ describe('updateMlInferenceMappings', () => { input_two_expanded: { properties: { predicted_value: { - type: 'rank_features', + type: 'sparse_vector', }, model_id: { type: 'keyword', diff --git a/x-pack/plugins/enterprise_search/server/lib/indices/pipelines/ml_inference/update_ml_inference_mappings.ts b/x-pack/plugins/enterprise_search/server/lib/indices/pipelines/ml_inference/update_ml_inference_mappings.ts index 3cc2ef3c2ed4f..fa8d06bde503f 100644 --- a/x-pack/plugins/enterprise_search/server/lib/indices/pipelines/ml_inference/update_ml_inference_mappings.ts +++ b/x-pack/plugins/enterprise_search/server/lib/indices/pipelines/ml_inference/update_ml_inference_mappings.ts @@ -77,7 +77,7 @@ const generateTextExpansionMappingProperties = (sourceFields: string[], targetFi type: 'keyword', }, predicted_value: { - type: 'rank_features', + type: 'sparse_vector', }, }, }, @@ -97,7 +97,7 @@ const formDefaultElserMappingProps = (sourceFields: string[]) => { type: 'keyword', }, predicted_value: { - type: 'rank_features', + type: 'sparse_vector', }, }, }, diff --git a/x-pack/plugins/index_management/public/application/components/mappings_editor/constants/data_types_definition.tsx b/x-pack/plugins/index_management/public/application/components/mappings_editor/constants/data_types_definition.tsx index 89043c9fd7e69..8035b6af08b48 100644 --- a/x-pack/plugins/index_management/public/application/components/mappings_editor/constants/data_types_definition.tsx +++ b/x-pack/plugins/index_management/public/application/components/mappings_editor/constants/data_types_definition.tsx @@ -851,6 +851,23 @@ export const TYPE_DEFINITION: { [key in DataType]: DataTypeDefinition } = {

    ), }, + sparse_vector: { + label: i18n.translate('xpack.idxMgmt.mappingsEditor.dataType.sparseVectorDescription', { + defaultMessage: 'Sparse vector', + }), + value: 'sparse_vector', + documentation: { + main: 'sparse-vector.html', + }, + description: () => ( +

    + +

    + ), + }, point: { label: i18n.translate('xpack.idxMgmt.mappingsEditor.dataType.pointDescription', { defaultMessage: 'Point', @@ -958,6 +975,7 @@ export const MAIN_TYPES: MainType[] = [ 'rank_features', 'search_as_you_type', 'shape', + 'sparse_vector', 'text', 'token_count', 'histogram', diff --git a/x-pack/plugins/index_management/public/application/components/mappings_editor/types/document_fields.ts b/x-pack/plugins/index_management/public/application/components/mappings_editor/types/document_fields.ts index 5f6f4c6728be0..e62414f23e3f2 100644 --- a/x-pack/plugins/index_management/public/application/components/mappings_editor/types/document_fields.ts +++ b/x-pack/plugins/index_management/public/application/components/mappings_editor/types/document_fields.ts @@ -58,6 +58,7 @@ export type MainType = | 'rank_features' | 'shape' | 'search_as_you_type' + | 'sparse_vector' | 'date' | 'date_nanos' | 'geo_point' From bf1357cb8b716e66031a4da12db7097fe6aa31b3 Mon Sep 17 00:00:00 2001 From: Konrad Szwarc Date: Wed, 11 Oct 2023 16:16:11 +0200 Subject: [PATCH 19/79] [EDR Workflows] An empty note section in read mode (#168338) https://github.com/elastic/kibana/issues/168318 Don't render Note section in View mode (no write permissions) if no note to show. ![Screenshot 2023-10-09 at 12 58 59](https://github.com/elastic/kibana/assets/29123534/fc8fbf87-4b45-4051-b4e1-30af8d842a0f) ![Screenshot 2023-10-09 at 12 59 42](https://github.com/elastic/kibana/assets/29123534/8d08480e-4c1d-408a-9642-3bb4eb9128ac) --- .../cypress/e2e/policy/policy_details.cy.ts | 120 +++++++++++++----- .../protection_updates_layout.tsx | 86 +++++++------ 2 files changed, 133 insertions(+), 73 deletions(-) diff --git a/x-pack/plugins/security_solution/public/management/cypress/e2e/policy/policy_details.cy.ts b/x-pack/plugins/security_solution/public/management/cypress/e2e/policy/policy_details.cy.ts index de8fc98bfd3d2..c391fda353e41 100644 --- a/x-pack/plugins/security_solution/public/management/cypress/e2e/policy/policy_details.cy.ts +++ b/x-pack/plugins/security_solution/public/management/cypress/e2e/policy/policy_details.cy.ts @@ -197,47 +197,99 @@ describe( }); describe('Renders read only protection updates for user without write permissions', () => { - let indexedPolicy: IndexedFleetEndpointPolicyResponse; - let policy: PolicyData; - const oneWeekAgo = moment.utc().subtract(1, 'weeks'); - - beforeEach(() => { - login(ROLE.endpoint_security_policy_management_read); - disableExpandableFlyoutAdvancedSettings(); - getEndpointIntegrationVersion().then((version) => { - createAgentPolicyTask(version).then((data) => { - indexedPolicy = data; - policy = indexedPolicy.integrationPolicies[0]; - setCustomProtectionUpdatesManifestVersion(policy.id, oneWeekAgo.format('YYYY-MM-DD')); - setCustomProtectionUpdatesNote(policy.id, testNote); + describe('With note field', () => { + let indexedPolicy: IndexedFleetEndpointPolicyResponse; + let policy: PolicyData; + const oneWeekAgo = moment.utc().subtract(1, 'weeks'); + + beforeEach(() => { + login(ROLE.endpoint_security_policy_management_read); + disableExpandableFlyoutAdvancedSettings(); + getEndpointIntegrationVersion().then((version) => { + createAgentPolicyTask(version).then((data) => { + indexedPolicy = data; + policy = indexedPolicy.integrationPolicies[0]; + setCustomProtectionUpdatesManifestVersion( + policy.id, + oneWeekAgo.format('YYYY-MM-DD') + ); + setCustomProtectionUpdatesNote(policy.id, testNote); + }); }); }); - }); - afterEach(() => { - if (indexedPolicy) { - cy.task('deleteIndexedFleetEndpointPolicies', indexedPolicy); - } + afterEach(() => { + if (indexedPolicy) { + cy.task('deleteIndexedFleetEndpointPolicies', indexedPolicy); + } + }); + + it('should render the protection updates tab content', () => { + loadProtectionUpdatesUrl(policy.id); + cy.getByTestSubj('protection-updates-manifest-switch').should('not.exist'); + cy.getByTestSubj('protection-updates-state-view-mode'); + cy.getByTestSubj('protection-updates-manifest-name-title'); + + cy.getByTestSubj('protection-updates-manifest-name-deployed-version-title'); + cy.getByTestSubj('protection-updates-deployed-version').contains( + oneWeekAgo.format('MMMM DD, YYYY') + ); + cy.getByTestSubj('protection-updates-manifest-name-version-to-deploy-title'); + cy.getByTestSubj('protection-updates-version-to-deploy-view-mode'); + cy.getByTestSubj('protection-updates-version-to-deploy-picker').should('not.exist'); + + cy.getByTestSubj('protection-updates-manifest-name-note-title'); + cy.getByTestSubj('protection-updates-manifest-note').should('not.exist'); + cy.getByTestSubj('protection-updates-manifest-note-view-mode').contains(testNote); + cy.getByTestSubj('protectionUpdatesSaveButton').should('be.disabled'); + }); }); - it('should render the protection updates tab content', () => { - loadProtectionUpdatesUrl(policy.id); - cy.getByTestSubj('protection-updates-manifest-switch').should('not.exist'); - cy.getByTestSubj('protection-updates-state-view-mode'); - cy.getByTestSubj('protection-updates-manifest-name-title'); + describe('Without note field', () => { + let indexedPolicy: IndexedFleetEndpointPolicyResponse; + let policy: PolicyData; + const oneWeekAgo = moment.utc().subtract(1, 'weeks'); + + beforeEach(() => { + login(ROLE.endpoint_security_policy_management_read); + disableExpandableFlyoutAdvancedSettings(); + getEndpointIntegrationVersion().then((version) => { + createAgentPolicyTask(version).then((data) => { + indexedPolicy = data; + policy = indexedPolicy.integrationPolicies[0]; + setCustomProtectionUpdatesManifestVersion( + policy.id, + oneWeekAgo.format('YYYY-MM-DD') + ); + }); + }); + }); - cy.getByTestSubj('protection-updates-manifest-name-deployed-version-title'); - cy.getByTestSubj('protection-updates-deployed-version').contains( - oneWeekAgo.format('MMMM DD, YYYY') - ); - cy.getByTestSubj('protection-updates-manifest-name-version-to-deploy-title'); - cy.getByTestSubj('protection-updates-version-to-deploy-view-mode'); - cy.getByTestSubj('protection-updates-version-to-deploy-picker').should('not.exist'); + afterEach(() => { + if (indexedPolicy) { + cy.task('deleteIndexedFleetEndpointPolicies', indexedPolicy); + } + }); - cy.getByTestSubj('protection-updates-manifest-name-note-title'); - cy.getByTestSubj('protection-updates-manifest-note').should('not.exist'); - cy.getByTestSubj('protection-updates-manifest-note-view-mode').contains(testNote); - cy.getByTestSubj('protectionUpdatesSaveButton').should('be.disabled'); + it('should render the protection updates tab content', () => { + loadProtectionUpdatesUrl(policy.id); + cy.getByTestSubj('protection-updates-manifest-switch').should('not.exist'); + cy.getByTestSubj('protection-updates-state-view-mode'); + cy.getByTestSubj('protection-updates-manifest-name-title'); + + cy.getByTestSubj('protection-updates-manifest-name-deployed-version-title'); + cy.getByTestSubj('protection-updates-deployed-version').contains( + oneWeekAgo.format('MMMM DD, YYYY') + ); + cy.getByTestSubj('protection-updates-manifest-name-version-to-deploy-title'); + cy.getByTestSubj('protection-updates-version-to-deploy-view-mode'); + cy.getByTestSubj('protection-updates-version-to-deploy-picker').should('not.exist'); + + cy.getByTestSubj('protection-updates-manifest-name-note-title').should('not.exist'); + cy.getByTestSubj('protection-updates-manifest-note').should('not.exist'); + cy.getByTestSubj('protection-updates-manifest-note-view-mode').should('not.exist'); + cy.getByTestSubj('protectionUpdatesSaveButton').should('be.disabled'); + }); }); }); }); diff --git a/x-pack/plugins/security_solution/public/management/pages/policy/view/protection_updates/protection_updates_layout.tsx b/x-pack/plugins/security_solution/public/management/pages/policy/view/protection_updates/protection_updates_layout.tsx index e9e023de90952..af2932e305576 100644 --- a/x-pack/plugins/security_solution/public/management/pages/policy/view/protection_updates/protection_updates_layout.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/policy/view/protection_updates/protection_updates_layout.tsx @@ -330,46 +330,54 @@ export const ProtectionUpdatesLayout = React.memo( {renderVersionToDeployPicker()} - - - - -
    - {i18n.translate('xpack.securitySolution.endpoint.protectionUpdates.note.label', { - defaultMessage: 'Note', - })} -
    -
    - - - - } - /> -
    - - {canWritePolicyManagement ? ( - setNote(e.target.value)} - fullWidth - rows={3} - placeholder={i18n.translate( - 'xpack.securitySolution.endpoint.protectionUpdates.note.placeholder', - { - defaultMessage: 'Add relevant information about update here', - } + {(canWritePolicyManagement || note) && ( + <> + + + +
    + {i18n.translate( + 'xpack.securitySolution.endpoint.protectionUpdates.note.label', + { + defaultMessage: 'Note', + } + )} +
    +
    + + + + } + /> +
    + + {canWritePolicyManagement ? ( + setNote(e.target.value)} + fullWidth + rows={3} + placeholder={i18n.translate( + 'xpack.securitySolution.endpoint.protectionUpdates.note.placeholder', + { + defaultMessage: 'Add relevant information about update here', + } + )} + data-test-subj={'protection-updates-manifest-note'} + /> + ) : ( + + {note} + )} - data-test-subj={'protection-updates-manifest-note'} - /> - ) : ( - {note} + )} ); From 91cdbe2d354100683b5d8670de88e0b2cf665ba9 Mon Sep 17 00:00:00 2001 From: Konrad Szwarc Date: Wed, 11 Oct 2023 16:26:45 +0200 Subject: [PATCH 20/79] [EDR Workflows][E2E] Increase the timeout of agent check in (#168438) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This pull request extends the agent fleet check timeout from 2 minutes to 4 minutes. We've identified a number of unreliable tests that fail during the `beforeAll` stage while executing the `createEndpointHost` task. The following logs appear before the timeout: ``` info Enrolling Elastic Agent with Fleet | Installing service....... DONE | Starting service... DONE | Enrolling Elastic Agent with Fleet..........Successfully enrolled the Elastic Agent. | Elastic Agent has been successfully installed. | info Waiting for Agent to check-in with Fleet ``` The error message we encounter is `> Timed out waiting for host [test-host-4981] to appear in Fleet.` It appears that all the preceding steps are successful, and only the final one fails due to either the agent not checking in with the fleet for 2 minutes or the agent being unhealthy for two minutes. Since I haven't been able to replicate this behavior locally, and there isn't a way to inspect what's happening on the agent, I believe the best course of action at this point is to extend the timeout and monitor the results. Reports of this error: closes https://github.com/elastic/kibana/issues/168427 closes https://github.com/elastic/kibana/issues/168394 closes https://github.com/elastic/kibana/issues/168393 closes https://github.com/elastic/kibana/issues/168390 closes https://github.com/elastic/kibana/issues/168363 closes https://github.com/elastic/kibana/issues/168362 closes https://github.com/elastic/kibana/issues/168361 closes https://github.com/elastic/kibana/issues/168360 closes https://github.com/elastic/kibana/issues/168359 Affected CI runs: https://buildkite.com/elastic/kibana-on-merge/builds/36483 https://buildkite.com/elastic/kibana-on-merge/builds/36497 https://buildkite.com/elastic/kibana-on-merge/builds/36501 https://buildkite.com/elastic/kibana-on-merge/builds/36526 Another time out happens from time to time when previously set 10 minutes timeout on `createEndpointHost` task is not enough to set up the environment. Its portrayed below, timeout happens during agent setup ```   | default: Running: inline script   | default: Reading package lists...   | default: Building dependency tree...   | default: Reading state information...   | default: Suggested packages:   | default: zip   | default: The following NEW packages will be installed:   | default: unzip   | default: 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.   | default: Need to get 174 kB of archives.   | default: After this operation, 385 kB of additional disk space will be used.   | default: Get:1 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 unzip amd64 6.0-26ubuntu3.1 [174 kB]   | default: dpkg-preconfigure: unable to re-open stdin: No such file or directory   | default: Fetched 174 kB in 1s (210 kB/s)   | default: Selecting previously unselected package unzip.   | (Reading database ... 63961 files and directories currently installed.)   | default: Preparing to unpack .../unzip_6.0-26ubuntu3.1_amd64.deb ...   | default: Unpacking unzip (6.0-26ubuntu3.1) ...   | default: Setting up unzip (6.0-26ubuntu3.1) ...   | default: Processing triggers for man-db (2.10.2-1) ...   |     | CypressError: `cy.task('createEndpointHost')` timed out after waiting `600000ms`. ``` --- .../public/management/cypress/tasks/create_endpoint_host.ts | 2 +- .../scripts/endpoint/common/endpoint_host_services.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/x-pack/plugins/security_solution/public/management/cypress/tasks/create_endpoint_host.ts b/x-pack/plugins/security_solution/public/management/cypress/tasks/create_endpoint_host.ts index cac8c284acdbd..7db2ad37317fd 100644 --- a/x-pack/plugins/security_solution/public/management/cypress/tasks/create_endpoint_host.ts +++ b/x-pack/plugins/security_solution/public/management/cypress/tasks/create_endpoint_host.ts @@ -17,6 +17,6 @@ export const createEndpointHost = ( { agentPolicyId, }, - { timeout: timeout ?? 600000 } + { timeout: timeout ?? 900000 } // 15 minutes, since setup can take 10 minutes and more. Task will time out if is not resolved within this time. ); }; diff --git a/x-pack/plugins/security_solution/scripts/endpoint/common/endpoint_host_services.ts b/x-pack/plugins/security_solution/scripts/endpoint/common/endpoint_host_services.ts index 8c4bdac30362e..0be12de4ade91 100644 --- a/x-pack/plugins/security_solution/scripts/endpoint/common/endpoint_host_services.ts +++ b/x-pack/plugins/security_solution/scripts/endpoint/common/endpoint_host_services.ts @@ -335,7 +335,7 @@ const enrollHostWithFleet = async ({ ]); } log.info(`Waiting for Agent to check-in with Fleet`); - const agent = await waitForHostToEnroll(kbnClient, vmName, 120000); + const agent = await waitForHostToEnroll(kbnClient, vmName, 240000); return { agentId: agent.id, From f088e55fdde2066f2d5f4fa528d382112b6320f8 Mon Sep 17 00:00:00 2001 From: Nathan Reese Date: Wed, 11 Oct 2023 08:31:06 -0600 Subject: [PATCH 21/79] =?UTF-8?q?fix=20flaky=20test=20Chrome=20X-Pack=20UI?= =?UTF-8?q?=20Functional=20Tests.x-pack/test/functional/apps/maps/group2/e?= =?UTF-8?q?mbeddable/add=5Fto=5Fdashboard=C2=B7js=20(#168500)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes https://github.com/elastic/kibana/issues/168029 flaky test runner https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/3447 --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- .../page_objects/time_to_visualize_page.ts | 25 +++++++++++++------ 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/test/functional/page_objects/time_to_visualize_page.ts b/test/functional/page_objects/time_to_visualize_page.ts index 9ff567fcb4ef3..ac8a4414eaa30 100644 --- a/test/functional/page_objects/time_to_visualize_page.ts +++ b/test/functional/page_objects/time_to_visualize_page.ts @@ -27,6 +27,7 @@ export class TimeToVisualizePageObject extends FtrService { private readonly find = this.ctx.getService('find'); private readonly common = this.ctx.getPageObject('common'); private readonly dashboard = this.ctx.getPageObject('dashboard'); + private readonly retry = this.ctx.getService('retry'); public async ensureSaveModalIsOpen() { await this.testSubjects.exists('savedObjectSaveModal', { timeout: 5000 }); @@ -47,6 +48,21 @@ export class TimeToVisualizePageObject extends FtrService { await this.dashboard.clickNewDashboard(false); } + private async selectDashboard(dashboardId: string) { + await this.retry.try(async () => { + await this.testSubjects.waitForEnabled('open-dashboard-picker'); + await this.testSubjects.click('open-dashboard-picker'); + await this.testSubjects.setValue('dashboard-picker-search', dashboardId); + await this.common.sleep(150); // wait for input debounce so loading starts + await this.testSubjects.waitForEnabled('open-dashboard-picker'); + await this.testSubjects.click(`dashboard-picker-option-${dashboardId.replaceAll(' ', '-')}`); + const dashboardPickerLabel = await this.testSubjects.getVisibleText('open-dashboard-picker'); + if (dashboardPickerLabel === 'Select dashboard') { + throw new Error(`Dashboard not selected`); + } + }); + } + public async setSaveModalValues( vizName: string, { saveAsNew, redirectToOrigin, addToDashboard, dashboardId, saveToLibrary }: SaveModalArgs = {} @@ -75,14 +91,7 @@ export class TimeToVisualizePageObject extends FtrService { await label.click(); if (dashboardId) { - await this.testSubjects.waitForEnabled('open-dashboard-picker'); - await this.testSubjects.click('open-dashboard-picker'); - await this.testSubjects.setValue('dashboard-picker-search', dashboardId); - await this.common.sleep(150); // wait for input debounce so loading starts - await this.testSubjects.waitForEnabled('open-dashboard-picker'); - await this.testSubjects.click( - `dashboard-picker-option-${dashboardId.replaceAll(' ', '-')}` - ); + await this.selectDashboard(dashboardId); } } From 154a93aaa9ad10e1f1f43a60338defada8c8053b Mon Sep 17 00:00:00 2001 From: Rodney Norris Date: Wed, 11 Oct 2023 09:54:52 -0500 Subject: [PATCH 22/79] [Serverless Search] Getting started - Add Java & .Net (#168413) ## Summary - Added Java language to the getting started page - Added .Net language to the getting started page - Updated the serverless search getting started page client select to use a grid with overflow "see more" - fixed a bug where CodeBox was not wrapping when it had long strings. ### Screenshots Default 3 columns (XL breakpoint) image L breakpoint - 2 columns image < L breakpoint - 1 column image .Net example snippets image Java image --- .../components/code_box.scss | 4 + .../components/code_box.tsx | 1 + .../components/languages/dotnet.ts | 51 ++++++++++ .../application/components/languages/java.ts | 92 +++++++++++++++++++ .../components/languages/language_grid.tsx | 78 ++++++++++++++++ .../components/languages/languages.ts | 4 + .../application/components/overview.tsx | 39 ++++---- .../public/application/constants.ts | 1 + 8 files changed, 253 insertions(+), 17 deletions(-) create mode 100644 x-pack/plugins/serverless_search/public/application/components/languages/dotnet.ts create mode 100644 x-pack/plugins/serverless_search/public/application/components/languages/java.ts create mode 100644 x-pack/plugins/serverless_search/public/application/components/languages/language_grid.tsx diff --git a/packages/kbn-search-api-panels/components/code_box.scss b/packages/kbn-search-api-panels/components/code_box.scss index 50e1bcb2b6168..1a7e2d99a9b40 100644 --- a/packages/kbn-search-api-panels/components/code_box.scss +++ b/packages/kbn-search-api-panels/components/code_box.scss @@ -1,3 +1,7 @@ .codeBoxPanel { border-top: $euiBorderThin $euiColorLightShade; } + +.codeBoxCodeBlock { + word-break: break-all; +} diff --git a/packages/kbn-search-api-panels/components/code_box.tsx b/packages/kbn-search-api-panels/components/code_box.tsx index 08fdd4cdf33ab..21c4085f44a9b 100644 --- a/packages/kbn-search-api-panels/components/code_box.tsx +++ b/packages/kbn-search-api-panels/components/code_box.tsx @@ -128,6 +128,7 @@ export const CodeBox: React.FC = ({ fontSize="m" language={languageType || selectedLanguage.languageStyling || selectedLanguage.id} overflowHeight={500} + className="codeBoxCodeBlock" > {codeSnippet}
    diff --git a/x-pack/plugins/serverless_search/public/application/components/languages/dotnet.ts b/x-pack/plugins/serverless_search/public/application/components/languages/dotnet.ts new file mode 100644 index 0000000000000..59b7e9e5721c7 --- /dev/null +++ b/x-pack/plugins/serverless_search/public/application/components/languages/dotnet.ts @@ -0,0 +1,51 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; +import { Languages, LanguageDefinition } from '@kbn/search-api-panels'; +// import { docLinks } from '../../../../common/doc_links'; + +export const dotnetDefinition: LanguageDefinition = { + id: Languages.DOTNET, + name: i18n.translate('xpack.serverlessSearch.languages.dotnet', { defaultMessage: '.NET' }), + iconType: 'dotnet.svg', + github: { + label: i18n.translate('xpack.serverlessSearch.languages.dotnet.githubLabel', { + defaultMessage: 'elasticsearch-serverless-net', + }), + link: 'https://github.com/elastic/elasticsearch-serverless-net', + }, + // Code Snippets, + installClient: 'dotnet add package Elastic.Clients.Elasticsearch.Serverless', + configureClient: ({ apiKey, cloudId }) => `using System; +using Elastic.Clients.Elasticsearch.Serverless; +using Elastic.Clients.Elasticsearch.QueryDsl; + +var client = new ElasticsearchClient("${cloudId}", new ApiKey("${apiKey}"));`, + testConnection: `var info = await client.InfoAsync();`, + ingestData: `var doc = new Book +{ + Id = "9780553351927", + Name = "Snow Crash", + Author = "Neal Stephenson", + ReleaseDate = new DateTime(1992, 06, 01), + PageCount = 470 +}; + +var response = await client.IndexAsync(doc, "books");`, + buildSearchQuery: `var response = await client.SearchAsync(s => s + .Index("books") + .From(0) + .Size(10) + .Query("snow") +); + +if (response.IsValidResponse) +{ + var books = response.Documents.FirstOrDefault(); +}`, +}; diff --git a/x-pack/plugins/serverless_search/public/application/components/languages/java.ts b/x-pack/plugins/serverless_search/public/application/components/languages/java.ts new file mode 100644 index 0000000000000..23566fcc67f98 --- /dev/null +++ b/x-pack/plugins/serverless_search/public/application/components/languages/java.ts @@ -0,0 +1,92 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; +import { Languages, LanguageDefinition } from '@kbn/search-api-panels'; + +export const javaDefinition: LanguageDefinition = { + id: Languages.JAVA, + name: i18n.translate('xpack.serverlessSearch.languages.java', { defaultMessage: 'Java' }), + iconType: 'java.svg', + github: { + label: i18n.translate('xpack.serverlessSearch.languages.java.githubLabel', { + defaultMessage: 'elasticsearch-java-serverless', + }), + link: 'https://github.com/elastic/elasticsearch-java/tree/main/java-client-serverless', + }, + // Code Snippets, + installClient: `dependencies { + implementation 'co.elastic.clients:elasticsearch-java-serverless:1.0.0-20231031' + implementation 'com.fasterxml.jackson.core:jackson-databind:2.12.3' +}`, + configureClient: ({ apiKey, url }) => `// URL and API key +String serverUrl = "${url}"; +String apiKey = "${apiKey}"; + +// Create the low-level client +RestClient restClient = RestClient + .builder(HttpHost.create(serverUrl)) + .setDefaultHeaders(new Header[]{ + new BasicHeader("Authorization", "ApiKey " + apiKey) + }) + .build(); + +// Create the transport with a Jackson mapper +ElasticsearchTransport transport = new RestClientTransport( + restClient, new JacksonJsonpMapper()); + +// And create the API client +ElasticsearchClient esClient = new ElasticsearchClient(transport);`, + testConnection: `InfoResponse info = esClient.info(); + +logger.info(info.toString());`, + ingestData: `List books = new ArrayList<>(); +books.add(new Book("9780553351927", "Snow Crash", "Neal Stephenson", "1992-06-01", 470)); +books.add(new Book("9780441017225", "Revelation Space", "Alastair Reynolds", "2000-03-15", 585)); +books.add(new Book("9780451524935", "1984", "George Orwell", "1985-06-01", 328)); +books.add(new Book("9781451673319", "Fahrenheit 451", "Ray Bradbury", "1953-10-15", 227)); +books.add(new Book("9780060850524", "Brave New World", "Aldous Huxley", "1932-06-01", 268)); +books.add(new Book("9780385490818", "The Handmaid's Tale", "Margaret Atwood", "1985-06-01", 311)); + +BulkRequest.Builder br = new BulkRequest.Builder(); + +for (Book book : books) { + br.operations(op -> op + .index(idx -> idx + .index("books") + .id(product.getId()) + .document(book) + ) + ); +} + +BulkResponse result = esClient.bulk(br.build()); + +// Log errors, if any +if (result.errors()) { + logger.error("Bulk had errors"); + for (BulkResponseItem item: result.items()) { + if (item.error() != null) { + logger.error(item.error().reason()); + } + } +}`, + buildSearchQuery: `String searchText = "snow"; + +SearchResponse response = esClient.search(s -> s + .index("books") + .query(q -> q + .match(t -> t + .field("name") + .query(searchText) + ) + ), + Book.class +); + +TotalHits total = response.hits().total();`, +}; diff --git a/x-pack/plugins/serverless_search/public/application/components/languages/language_grid.tsx b/x-pack/plugins/serverless_search/public/application/components/languages/language_grid.tsx new file mode 100644 index 0000000000000..58f8d0742971f --- /dev/null +++ b/x-pack/plugins/serverless_search/public/application/components/languages/language_grid.tsx @@ -0,0 +1,78 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { + EuiFlexGroup, + EuiFlexGrid, + EuiFlexItem, + EuiPanel, + EuiImage, + EuiText, + useEuiTheme, + useIsWithinBreakpoints, +} from '@elastic/eui'; + +import { LanguageDefinition, Languages } from '@kbn/search-api-panels'; + +export interface LanguageGridProps { + assetBasePath: string; + languages: LanguageDefinition[]; + selectedLanguage: Languages; + setSelectedLanguage: (language: LanguageDefinition) => void; +} + +export const LanguageGrid: React.FC = ({ + assetBasePath, + languages, + selectedLanguage, + setSelectedLanguage, +}: LanguageGridProps) => { + const { euiTheme } = useEuiTheme(); + const isLarge = useIsWithinBreakpoints(['l']); + const isXLarge = useIsWithinBreakpoints(['xl']); + const columns = isXLarge ? 3 : isLarge ? 2 : 1; + + return ( + + {languages.map((language) => ( + + setSelectedLanguage(language)} + color={language.id === selectedLanguage ? 'primary' : 'plain'} + > + + + + + + +
    {language.name}
    +
    +
    +
    +
    +
    + ))} +
    + ); +}; diff --git a/x-pack/plugins/serverless_search/public/application/components/languages/languages.ts b/x-pack/plugins/serverless_search/public/application/components/languages/languages.ts index 754b1c3386f8f..d42d88311e729 100644 --- a/x-pack/plugins/serverless_search/public/application/components/languages/languages.ts +++ b/x-pack/plugins/serverless_search/public/application/components/languages/languages.ts @@ -8,7 +8,9 @@ import { Languages, LanguageDefinition } from '@kbn/search-api-panels'; import { curlDefinition } from './curl'; +import { dotnetDefinition } from './dotnet'; import { goDefinition } from './go'; +import { javaDefinition } from './java'; import { javascriptDefinition } from './javascript'; import { phpDefinition } from './php'; import { pythonDefinition } from './python'; @@ -16,6 +18,8 @@ import { rubyDefinition } from './ruby'; const languageDefinitionRecords: Partial> = { [Languages.CURL]: curlDefinition, + [Languages.JAVA]: javaDefinition, + [Languages.DOTNET]: dotnetDefinition, [Languages.PYTHON]: pythonDefinition, [Languages.JAVASCRIPT]: javascriptDefinition, [Languages.PHP]: phpDefinition, diff --git a/x-pack/plugins/serverless_search/public/application/components/overview.tsx b/x-pack/plugins/serverless_search/public/application/components/overview.tsx index 056a13384dbfb..bff725c88034d 100644 --- a/x-pack/plugins/serverless_search/public/application/components/overview.tsx +++ b/x-pack/plugins/serverless_search/public/application/components/overview.tsx @@ -26,7 +26,6 @@ import { SelectClientPanel, OverviewPanel, CodeBox, - LanguageClientPanel, InstallClientPanel, getLanguageDefinitionCodeSnippet, getConsoleRequest, @@ -42,25 +41,33 @@ import { Connector } from '@kbn/search-connectors'; import { docLinks } from '../../../common/doc_links'; import { PLUGIN_ID } from '../../../common'; import { useKibanaServices } from '../hooks/use_kibana'; -import { API_KEY_PLACEHOLDER, ELASTICSEARCH_URL_PLACEHOLDER } from '../constants'; -import { javascriptDefinition } from './languages/javascript'; +import { + API_KEY_PLACEHOLDER, + CLOUD_ID_PLACEHOLDER, + ELASTICSEARCH_URL_PLACEHOLDER, +} from '../constants'; +import { javaDefinition } from './languages/java'; import { languageDefinitions } from './languages/languages'; +import { LanguageGrid } from './languages/language_grid'; import './overview.scss'; import { ApiKeyPanel } from './api_key/api_key'; export const ElasticsearchOverview = () => { - const [selectedLanguage, setSelectedLanguage] = - useState(javascriptDefinition); + const [selectedLanguage, setSelectedLanguage] = useState(javaDefinition); const [clientApiKey, setClientApiKey] = useState(API_KEY_PLACEHOLDER); const { application, cloud, http, user, share } = useKibanaServices(); - const elasticsearchURL = useMemo(() => { - return cloud?.elasticsearchUrl ?? ELASTICSEARCH_URL_PLACEHOLDER; + const { elasticsearchURL, cloudId } = useMemo(() => { + return { + elasticsearchURL: cloud?.elasticsearchUrl ?? ELASTICSEARCH_URL_PLACEHOLDER, + cloudId: cloud?.cloudId ?? CLOUD_ID_PLACEHOLDER, + }; }, [cloud]); const assetBasePath = http.basePath.prepend(`/plugins/${PLUGIN_ID}/assets`); const codeSnippetArguments: LanguageDefinitionSnippetArguments = { url: elasticsearchURL, apiKey: clientApiKey, + cloudId, }; const { data: _data } = useQuery({ @@ -78,16 +85,14 @@ export const ElasticsearchOverview = () => { - {languageDefinitions.map((language, index) => ( - - - - ))} + + + diff --git a/x-pack/plugins/serverless_search/public/application/constants.ts b/x-pack/plugins/serverless_search/public/application/constants.ts index b0b122fa01b5c..6c2f9775c4e04 100644 --- a/x-pack/plugins/serverless_search/public/application/constants.ts +++ b/x-pack/plugins/serverless_search/public/application/constants.ts @@ -7,4 +7,5 @@ export const API_KEY_PLACEHOLDER = 'your_api_key'; export const ELASTICSEARCH_URL_PLACEHOLDER = 'https://your_deployment_url'; +export const CLOUD_ID_PLACEHOLDER = ''; export const INDEX_NAME_PLACEHOLDER = 'index_name'; From 1495a22f703cd0d6d1f12b5f7f06533663d9a896 Mon Sep 17 00:00:00 2001 From: Elena Stoeva <59341489+ElenaStoeva@users.noreply.github.com> Date: Wed, 11 Oct 2023 16:08:38 +0100 Subject: [PATCH 23/79] [serverless] Advanced settings - Search query bar (#167925) ## Summary This PR adds a Search query bar and a Category filter to the Settings application in `packages/kbn-management/settings/application` (which is currently integrated in serverless).
    Screenshots **Search query bar:** Screenshot 2023-10-04 at 20 54 03
    **Parsing error:** Screenshot 2023-10-05 at 10 16 54
    **Empty state:** Screenshot 2023-10-04 at 20 54 31
    **Category filter:** Screenshot 2023-10-04 at 20 54 50
    ### How to test: 1. Start Es with `yarn es serverless` and Kibana with `yarn serverless-{es/oblt/security}` (also possible to test in the Storybook from the CI build). 2. Go to Management -> Advanced settings 3. Verify that the Search query bar and the Category filter work as expected. 4. Verify that clicking the "clear search" link in each category panel clears the query. 5. Verify that when no settings match the query, the empty state is rendered and clicking the "clear search" link clears the query. ### Checklist - [x] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md) - [x] [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)) - [x] This renders correctly on smaller devices using a responsive layout. (You can test this [in your browser](https://www.browserstack.com/guide/responsive-testing-on-local-server)) - [x] This was checked for [cross-browser compatibility](https://www.elastic.co/support/matrix#matrix_browsers) --------- Co-authored-by: Clint Andrew Hall Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- .../__snapshots__/query_input.test.tsx.snap | 59 +++++++++++++ .../__stories__/application.stories.tsx | 47 +++++++++++ .../__stories__/use_application_story.tsx | 13 +++ .../settings/application/application.test.tsx | 75 +++++++++++++++++ .../settings/application/application.tsx | 79 +++++++++++++++--- .../settings/application/empty_state.tsx | 54 ++++++++++++ .../settings/application/hooks/use_fields.ts | 13 ++- .../settings/application/index.tsx | 5 +- .../settings/application/mocks/context.tsx | 58 +++++++++++++ .../{jest.config.js => mocks/index.ts} | 6 +- .../settings/application/query_input.test.tsx | 82 +++++++++++++++++++ .../settings/application/query_input.tsx | 78 ++++++++++++++++++ .../settings/application/services.tsx | 15 +++- .../settings/application/tsconfig.json | 10 ++- .../__stories__/categories.stories.tsx | 19 ++++- .../__stories__/use_category_story.tsx | 12 ++- .../components/field_category/categories.tsx | 8 +- .../components/field_category/category.tsx | 6 +- .../field_category/clear_query_link.tsx | 4 +- .../settings/components/form/form.test.tsx | 37 +++++++-- .../settings/components/form/form.tsx | 18 ++-- .../form/storybook/form.stories.tsx | 6 +- .../field_definition/get_definition.ts | 4 +- src/plugins/management/public/plugin.tsx | 4 +- 24 files changed, 666 insertions(+), 46 deletions(-) create mode 100644 packages/kbn-management/settings/application/__snapshots__/query_input.test.tsx.snap create mode 100644 packages/kbn-management/settings/application/__stories__/application.stories.tsx create mode 100644 packages/kbn-management/settings/application/__stories__/use_application_story.tsx create mode 100644 packages/kbn-management/settings/application/application.test.tsx create mode 100644 packages/kbn-management/settings/application/empty_state.tsx create mode 100644 packages/kbn-management/settings/application/mocks/context.tsx rename packages/kbn-management/settings/application/{jest.config.js => mocks/index.ts} (71%) create mode 100644 packages/kbn-management/settings/application/query_input.test.tsx create mode 100644 packages/kbn-management/settings/application/query_input.tsx diff --git a/packages/kbn-management/settings/application/__snapshots__/query_input.test.tsx.snap b/packages/kbn-management/settings/application/__snapshots__/query_input.test.tsx.snap new file mode 100644 index 0000000000000..84fff87de365d --- /dev/null +++ b/packages/kbn-management/settings/application/__snapshots__/query_input.test.tsx.snap @@ -0,0 +1,59 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Search should render normally 1`] = ` + + + +`; diff --git a/packages/kbn-management/settings/application/__stories__/application.stories.tsx b/packages/kbn-management/settings/application/__stories__/application.stories.tsx new file mode 100644 index 0000000000000..b7742e8eca541 --- /dev/null +++ b/packages/kbn-management/settings/application/__stories__/application.stories.tsx @@ -0,0 +1,47 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import React from 'react'; +import type { ComponentMeta, Story } from '@storybook/react'; +import { action } from '@storybook/addon-actions'; + +import { Subscription } from 'rxjs'; +import { SettingsApplication as Component } from '../application'; +import { useApplicationStory } from './use_application_story'; +import { SettingsApplicationProvider } from '../services'; + +export default { + title: 'Settings/Settings Application', + description: '', + parameters: { + backgrounds: { + default: 'ghost', + }, + }, +} as ComponentMeta; + +export const SettingsApplication: Story = () => { + const { getAllowListedSettings } = useApplicationStory(); + + return ( + false} + isOverriddenSetting={() => false} + saveChanges={action('saveChanges')} + showError={action('showError')} + showReloadPagePrompt={action('showReloadPagePrompt')} + subscribeToUpdates={() => new Subscription()} + addUrlToHistory={action('addUrlToHistory')} + > + + + ); +}; diff --git a/packages/kbn-management/settings/application/__stories__/use_application_story.tsx b/packages/kbn-management/settings/application/__stories__/use_application_story.tsx new file mode 100644 index 0000000000000..9f91b8af4978f --- /dev/null +++ b/packages/kbn-management/settings/application/__stories__/use_application_story.tsx @@ -0,0 +1,13 @@ +/* + * 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 { getSettingsMock } from '@kbn/management-settings-utilities/mocks/settings.mock'; + +export const useApplicationStory = () => { + return { getAllowListedSettings: getSettingsMock }; +}; diff --git a/packages/kbn-management/settings/application/application.test.tsx b/packages/kbn-management/settings/application/application.test.tsx new file mode 100644 index 0000000000000..d8b32bc3bd7f8 --- /dev/null +++ b/packages/kbn-management/settings/application/application.test.tsx @@ -0,0 +1,75 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import React from 'react'; +import { act, fireEvent, render, waitFor } from '@testing-library/react'; +import { SettingsApplication, DATA_TEST_SUBJ_SETTINGS_TITLE } from './application'; +import { DATA_TEST_SUBJ_SETTINGS_SEARCH_BAR } from './query_input'; +import { + DATA_TEST_SUBJ_SETTINGS_EMPTY_STATE, + DATA_TEST_SUBJ_SETTINGS_CLEAR_SEARCH_LINK, +} from './empty_state'; +import { DATA_TEST_SUBJ_SETTINGS_CATEGORY } from '@kbn/management-settings-components-field-category/category'; +import { wrap, createSettingsApplicationServicesMock } from './mocks'; +import { SettingsApplicationServices } from './services'; + +const categories = ['general', 'dashboard', 'notifications']; + +describe('Settings application', () => { + beforeEach(() => { + jest.clearAllMocks(); + }); + + it('renders without errors', () => { + const { container, getByTestId } = render(wrap()); + + expect(container).toBeInTheDocument(); + expect(getByTestId(DATA_TEST_SUBJ_SETTINGS_TITLE)).toBeInTheDocument(); + expect(getByTestId(DATA_TEST_SUBJ_SETTINGS_SEARCH_BAR)).toBeInTheDocument(); + // Verify that all category panels are rendered + for (const category of categories) { + expect(getByTestId(`${DATA_TEST_SUBJ_SETTINGS_CATEGORY}-${category}`)).toBeInTheDocument(); + } + }); + + it('fires addUrlToHistory when a query is typed in the search bar', async () => { + const services: SettingsApplicationServices = createSettingsApplicationServicesMock(); + + const { getByTestId } = render(wrap(, services)); + + const searchBar = getByTestId(DATA_TEST_SUBJ_SETTINGS_SEARCH_BAR); + act(() => { + fireEvent.change(searchBar, { target: { value: 'test' } }); + }); + + await waitFor(() => { + expect(services.addUrlToHistory).toHaveBeenCalledWith('?query=test'); + }); + }); + + it('renders the empty state when no settings match the query', async () => { + const { getByTestId } = render(wrap()); + + const searchBar = getByTestId(DATA_TEST_SUBJ_SETTINGS_SEARCH_BAR); + act(() => { + fireEvent.change(searchBar, { target: { value: 'some-random-text' } }); + }); + + expect(getByTestId(DATA_TEST_SUBJ_SETTINGS_EMPTY_STATE)).toBeInTheDocument(); + + // Clicking the "clear search" link should return the form back + const clearSearchLink = getByTestId(DATA_TEST_SUBJ_SETTINGS_CLEAR_SEARCH_LINK); + act(() => { + fireEvent.click(clearSearchLink); + }); + + for (const category of categories) { + expect(getByTestId(`${DATA_TEST_SUBJ_SETTINGS_CATEGORY}-${category}`)).toBeInTheDocument(); + } + }); +}); diff --git a/packages/kbn-management/settings/application/application.tsx b/packages/kbn-management/settings/application/application.tsx index 603f5f0f36f41..1b79f07be628d 100644 --- a/packages/kbn-management/settings/application/application.tsx +++ b/packages/kbn-management/settings/application/application.tsx @@ -5,13 +5,18 @@ * in compliance with, at your election, the Elastic License 2.0 or the Server * Side Public License, v 1. */ -import React from 'react'; +import React, { useState } from 'react'; + +import { EuiText, EuiSpacer, EuiFlexGroup, EuiFlexItem, Query } from '@elastic/eui'; +import { i18n as i18nLib } from '@kbn/i18n'; import { Form } from '@kbn/management-settings-components-form'; +import { categorizeFields } from '@kbn/management-settings-utilities'; -import { EuiText, EuiSpacer } from '@elastic/eui'; -import { i18n as i18nLib } from '@kbn/i18n'; import { useFields } from './hooks/use_fields'; +import { QueryInput, QueryInputProps } from './query_input'; +import { EmptyState } from './empty_state'; +import { useServices } from './services'; const title = i18nLib.translate('management.settings.advancedSettingsLabel', { defaultMessage: 'Advanced Settings', @@ -19,20 +24,74 @@ const title = i18nLib.translate('management.settings.advancedSettingsLabel', { export const DATA_TEST_SUBJ_SETTINGS_TITLE = 'managementSettingsTitle'; +function addQueryParam(url: string, param: string, value: string) { + const urlObj = new URL(url); + if (value) { + urlObj.searchParams.set(param, value); + } else { + urlObj.searchParams.delete(param); + } + + return urlObj.search; +} + +function getQueryParam(url: string) { + if (url) { + const urlObj = new URL(url); + return urlObj.searchParams.get('query') || ''; + } + return ''; +} + /** - * Component for displaying a {@link Form} component. - * @param props The {@link SettingsApplicationProps} for the {@link SettingsApplication} component. + * Component for displaying the {@link SettingsApplication} component. */ export const SettingsApplication = () => { - const fields = useFields(); + const { addUrlToHistory } = useServices(); + + const queryParam = getQueryParam(window.location.href); + const [query, setQuery] = useState(Query.parse(queryParam)); + + const allFields = useFields(); + const filteredFields = useFields(query); + + const onQueryChange: QueryInputProps['onQueryChange'] = (newQuery = Query.parse('')) => { + setQuery(newQuery); + + const search = addQueryParam(window.location.href, 'query', newQuery.text); + addUrlToHistory(search); + }; + + const categorizedFields = categorizeFields(allFields); + const categories = Object.keys(categorizedFields); + const categoryCounts: { [category: string]: number } = {}; + for (const category of categories) { + categoryCounts[category] = categorizedFields[category].count; + } return (
    - -

    {title}

    -
    + + + +

    {title}

    +
    +
    + + + +
    -
    + {filteredFields.length ? ( + onQueryChange()} + /> + ) : ( + onQueryChange() }} /> + )}
    ); }; diff --git a/packages/kbn-management/settings/application/empty_state.tsx b/packages/kbn-management/settings/application/empty_state.tsx new file mode 100644 index 0000000000000..86186506f3138 --- /dev/null +++ b/packages/kbn-management/settings/application/empty_state.tsx @@ -0,0 +1,54 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 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 { EuiCallOut, EuiLink } from '@elastic/eui'; +import { FormattedMessage } from '@kbn/i18n-react'; +import React from 'react'; + +export const DATA_TEST_SUBJ_SETTINGS_EMPTY_STATE = 'settingsEmptyState'; +export const DATA_TEST_SUBJ_SETTINGS_CLEAR_SEARCH_LINK = 'settingsClearSearchLink'; + +/** + * Props for a {@link EmptyState} component. + */ +interface EmptyStateProps { + queryText: string | undefined; + onClearQuery: () => void; +} + +/** + * Component for displaying a prompt to inform that no settings are found for a given query. + */ +export const EmptyState = ({ queryText, onClearQuery }: EmptyStateProps) => ( + + + + + ), + queryText: {queryText}, + }} + /> + + } + data-test-subj={DATA_TEST_SUBJ_SETTINGS_EMPTY_STATE} + /> +); diff --git a/packages/kbn-management/settings/application/hooks/use_fields.ts b/packages/kbn-management/settings/application/hooks/use_fields.ts index 551582594107c..de8a7d0bd00cb 100644 --- a/packages/kbn-management/settings/application/hooks/use_fields.ts +++ b/packages/kbn-management/settings/application/hooks/use_fields.ts @@ -6,17 +6,24 @@ * Side Public License, v 1. */ +import { Query } from '@elastic/eui'; import { getFieldDefinitions } from '@kbn/management-settings-field-definition'; -import { FieldDefinition, SettingType } from '@kbn/management-settings-types'; +import { FieldDefinition } from '@kbn/management-settings-types'; import { useServices } from '../services'; import { useSettings } from './use_settings'; /** * React hook which retrieves settings and returns an observed collection of * {@link FieldDefinition} objects derived from those settings. + * @param query The {@link Query} to execute for filtering the fields. + * @returns An array of {@link FieldDefinition} objects. */ -export const useFields = (): Array> => { +export const useFields = (query?: Query): FieldDefinition[] => { const { isCustomSetting: isCustom, isOverriddenSetting: isOverridden } = useServices(); const settings = useSettings(); - return getFieldDefinitions(settings, { isCustom, isOverridden }); + const fields = getFieldDefinitions(settings, { isCustom, isOverridden }); + if (query) { + return Query.execute(query, fields); + } + return fields; }; diff --git a/packages/kbn-management/settings/application/index.tsx b/packages/kbn-management/settings/application/index.tsx index 0f491a5d8cff2..cfdef8f174723 100644 --- a/packages/kbn-management/settings/application/index.tsx +++ b/packages/kbn-management/settings/application/index.tsx @@ -27,8 +27,11 @@ export const KibanaSettingsApplication = ({ notifications, settings, theme, + history, }: SettingsApplicationKibanaDependencies) => ( - + ); diff --git a/packages/kbn-management/settings/application/mocks/context.tsx b/packages/kbn-management/settings/application/mocks/context.tsx new file mode 100644 index 0000000000000..6d9dae8c5bea7 --- /dev/null +++ b/packages/kbn-management/settings/application/mocks/context.tsx @@ -0,0 +1,58 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import React, { ReactChild } from 'react'; +import { I18nProvider } from '@kbn/i18n-react'; + +import { KibanaRootContextProvider } from '@kbn/react-kibana-context-root'; +import { themeServiceMock } from '@kbn/core-theme-browser-mocks'; +import { I18nStart } from '@kbn/core-i18n-browser'; + +import { createFormServicesMock } from '@kbn/management-settings-components-form/mocks'; +import { Subscription } from 'rxjs'; +import { getSettingsMock } from '@kbn/management-settings-utilities/mocks/settings.mock'; +import { SettingsApplicationProvider, SettingsApplicationServices } from '../services'; + +const createRootMock = () => { + const i18n: I18nStart = { + Context: ({ children }) => {children}, + }; + const theme = themeServiceMock.createStartContract(); + return { + i18n, + theme, + }; +}; + +export const createSettingsApplicationServicesMock = (): SettingsApplicationServices => ({ + ...createFormServicesMock(), + getAllowlistedSettings: () => getSettingsMock(), + isCustomSetting: () => false, + isOverriddenSetting: () => false, + subscribeToUpdates: () => new Subscription(), + addUrlToHistory: jest.fn(), +}); + +export const TestWrapper = ({ + children, + services = createSettingsApplicationServicesMock(), +}: { + children: ReactChild; + services?: SettingsApplicationServices; +}) => { + return ( + + {children} + + ); +}; + +export const wrap = ( + component: JSX.Element, + services: SettingsApplicationServices = createSettingsApplicationServicesMock() +) => ; diff --git a/packages/kbn-management/settings/application/jest.config.js b/packages/kbn-management/settings/application/mocks/index.ts similarity index 71% rename from packages/kbn-management/settings/application/jest.config.js rename to packages/kbn-management/settings/application/mocks/index.ts index aa4230234635b..7e2775256a026 100644 --- a/packages/kbn-management/settings/application/jest.config.js +++ b/packages/kbn-management/settings/application/mocks/index.ts @@ -6,8 +6,4 @@ * Side Public License, v 1. */ -module.exports = { - preset: '@kbn/test', - rootDir: '../../../..', - roots: ['/packages/kbn-management/settings/application'], -}; +export { TestWrapper, createSettingsApplicationServicesMock, wrap } from './context'; diff --git a/packages/kbn-management/settings/application/query_input.test.tsx b/packages/kbn-management/settings/application/query_input.test.tsx new file mode 100644 index 0000000000000..a44d5b31fa7f9 --- /dev/null +++ b/packages/kbn-management/settings/application/query_input.test.tsx @@ -0,0 +1,82 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import React from 'react'; +import { Query } from '@elastic/eui'; +import { findTestSubject } from '@elastic/eui/lib/test'; +import { act, waitFor } from '@testing-library/react'; + +import { shallowWithI18nProvider, mountWithI18nProvider } from '@kbn/test-jest-helpers'; +import { getSettingsMock } from '@kbn/management-settings-utilities/mocks/settings.mock'; + +import { QueryInput } from './query_input'; +import { getFieldDefinitions } from '@kbn/management-settings-field-definition'; +import { categorizeFields } from '@kbn/management-settings-utilities'; + +const query = Query.parse(''); +const settings = getSettingsMock(); +const categories = Object.keys( + categorizeFields( + getFieldDefinitions(settings, { isCustom: () => false, isOverridden: () => false }) + ) +); + +describe('Search', () => { + it('should render normally', async () => { + const onQueryChange = () => {}; + const component = shallowWithI18nProvider( + + ); + + expect(component).toMatchSnapshot(); + }); + + it('should call parent function when query is changed', async () => { + // This test is brittle as it knows about implementation details + // (EuiFieldSearch uses onKeyup instead of onChange to handle input) + const onQueryChange = jest.fn(); + const component = mountWithI18nProvider( + + ); + findTestSubject(component, 'settingsSearchBar').simulate('keyup', { + target: { value: 'new filter' }, + }); + expect(onQueryChange).toHaveBeenCalledTimes(1); + }); + + it('should handle query parse error', async () => { + const onQueryChange = jest.fn(); + const component = mountWithI18nProvider( + + ); + + const searchBar = findTestSubject(component, 'settingsSearchBar'); + + // Send invalid query + act(() => { + searchBar.simulate('keyup', { target: { value: '?' } }); + }); + + expect(onQueryChange).toHaveBeenCalledTimes(1); + + waitFor(() => { + expect(component.contains('Unable to parse query')).toBe(true); + }); + + // Send valid query to ensure component can recover from invalid query + act(() => { + searchBar.simulate('keyup', { target: { value: 'dateFormat' } }); + }); + + expect(onQueryChange).toHaveBeenCalledTimes(2); + + waitFor(() => { + expect(component.contains('Unable to parse query')).toBe(false); + }); + }); +}); diff --git a/packages/kbn-management/settings/application/query_input.tsx b/packages/kbn-management/settings/application/query_input.tsx new file mode 100644 index 0000000000000..bb558a344f939 --- /dev/null +++ b/packages/kbn-management/settings/application/query_input.tsx @@ -0,0 +1,78 @@ +/* + * 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 { EuiFormErrorText, EuiSearchBar, EuiSearchBarProps, Query } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; +import { getCategoryName } from '@kbn/management-settings-utilities'; +import React, { useState } from 'react'; + +export const DATA_TEST_SUBJ_SETTINGS_SEARCH_BAR = 'settingsSearchBar'; +export const CATEGORY_FIELD = 'categories'; + +/** + * Props for a {@link QueryInput} component. + */ +export interface QueryInputProps { + categories: string[]; + query?: Query; + onQueryChange: (query?: Query) => void; +} + +export const parseErrorMsg = i18n.translate( + 'management.settings.searchBar.unableToParseQueryErrorMessage', + { defaultMessage: 'Unable to parse query' } +); + +/** + * Component for displaying a {@link EuiSearchBar} component for filtering settings and setting categories. + */ +export const QueryInput = ({ categories: categoryList, query, onQueryChange }: QueryInputProps) => { + const [queryError, setQueryError] = useState(null); + + const categories = categoryList.map((category) => ({ + value: category, + name: getCategoryName(category), + })); + + const box = { + incremental: true, + 'data-test-subj': DATA_TEST_SUBJ_SETTINGS_SEARCH_BAR, + placeholder: i18n.translate('management.settings.searchBarPlaceholder', { + defaultMessage: 'Search advanced settings', + }), + }; + + const filters = [ + { + type: 'field_value_selection' as const, + field: CATEGORY_FIELD, + name: i18n.translate('management.settings.categorySearchLabel', { + defaultMessage: 'Category', + }), + multiSelect: 'or' as const, + options: categories, + }, + ]; + + const onChange: EuiSearchBarProps['onChange'] = ({ query: newQuery, error }) => { + if (error) { + setQueryError(error?.message || null); + onQueryChange(); + } else { + setQueryError(null); + onQueryChange(newQuery || Query.parse('')); + } + }; + + return ( + <> + + {queryError && {`${parseErrorMsg}. ${queryError}`}} + + ); +}; diff --git a/packages/kbn-management/settings/application/services.tsx b/packages/kbn-management/settings/application/services.tsx index b88e0787769e4..09ce0780b06d4 100644 --- a/packages/kbn-management/settings/application/services.tsx +++ b/packages/kbn-management/settings/application/services.tsx @@ -18,12 +18,14 @@ import { UiSettingMetadata } from '@kbn/management-settings-types'; import { IUiSettingsClient } from '@kbn/core-ui-settings-browser'; import { normalizeSettings } from '@kbn/management-settings-utilities'; import { Subscription } from 'rxjs'; +import { ScopedHistory } from '@kbn/core-application-browser'; export interface Services { getAllowlistedSettings: () => Record; subscribeToUpdates: (fn: () => void) => Subscription; isCustomSetting: (key: string) => boolean; isOverriddenSetting: (key: string) => boolean; + addUrlToHistory: (url: string) => void; } export type SettingsApplicationServices = Services & FormServices; @@ -32,6 +34,7 @@ export interface KibanaDependencies { settings: { client: Pick; }; + history: ScopedHistory; } export type SettingsApplicationKibanaDependencies = KibanaDependencies & FormKibanaDependencies; @@ -56,11 +59,18 @@ export const SettingsApplicationProvider: FC = ({ subscribeToUpdates, isCustomSetting, isOverriddenSetting, + addUrlToHistory, } = services; return ( {children} @@ -76,7 +86,7 @@ export const SettingsApplicationKibanaProvider: FC { - const { docLinks, notifications, theme, i18n, settings } = dependencies; + const { docLinks, notifications, theme, i18n, settings, history } = dependencies; const { client } = settings; const getAllowlistedSettings = () => { @@ -94,6 +104,7 @@ export const SettingsApplicationKibanaProvider: FC client.isCustom(key), isOverriddenSetting: (key: string) => client.isOverridden(key), subscribeToUpdates: (fn: () => void) => client.getUpdate$().subscribe(fn), + addUrlToHistory: (url: string) => history.push({ pathname: '', search: url }), }; return ( diff --git a/packages/kbn-management/settings/application/tsconfig.json b/packages/kbn-management/settings/application/tsconfig.json index 3893085e710e6..c0c85e90ca77e 100644 --- a/packages/kbn-management/settings/application/tsconfig.json +++ b/packages/kbn-management/settings/application/tsconfig.json @@ -5,7 +5,8 @@ "types": [ "jest", "node", - "react" + "react", + "@testing-library/jest-dom" ] }, "include": [ @@ -22,5 +23,12 @@ "@kbn/management-settings-utilities", "@kbn/management-settings-components-form", "@kbn/i18n", + "@kbn/test-jest-helpers", + "@kbn/core-application-browser", + "@kbn/i18n-react", + "@kbn/management-settings-components-field-category", + "@kbn/react-kibana-context-root", + "@kbn/core-theme-browser-mocks", + "@kbn/core-i18n-browser", ] } diff --git a/packages/kbn-management/settings/components/field_category/__stories__/categories.stories.tsx b/packages/kbn-management/settings/components/field_category/__stories__/categories.stories.tsx index 6ea4d96fd2b4b..1a9fb03b27532 100644 --- a/packages/kbn-management/settings/components/field_category/__stories__/categories.stories.tsx +++ b/packages/kbn-management/settings/components/field_category/__stories__/categories.stories.tsx @@ -40,8 +40,14 @@ export default { } as ComponentMeta; export const Categories: Story = (params) => { - const { onClearQuery, isSavingEnabled, onFieldChange, unsavedChanges, categorizedFields } = - useCategoryStory(params); + const { + onClearQuery, + isSavingEnabled, + onFieldChange, + unsavedChanges, + categorizedFields, + categoryCounts, + } = useCategoryStory(params); return ( = (params) => { links={{ deprecationKey: 'link/to/deprecation/docs' }} > ); diff --git a/packages/kbn-management/settings/components/field_category/__stories__/use_category_story.tsx b/packages/kbn-management/settings/components/field_category/__stories__/use_category_story.tsx index 73962fe9ed16c..a04e2aa93177e 100644 --- a/packages/kbn-management/settings/components/field_category/__stories__/use_category_story.tsx +++ b/packages/kbn-management/settings/components/field_category/__stories__/use_category_story.tsx @@ -59,5 +59,15 @@ export const useCategoryStory = ({ isFiltered, isSavingEnabled }: Params) => { setUnsavedChanges((changes) => ({ ...changes, [id]: change })); }; - return { onClearQuery, onFieldChange, isSavingEnabled, unsavedChanges, categorizedFields }; + // This is only needed for when a search query is present + const categoryCounts = {}; + + return { + onClearQuery, + onFieldChange, + isSavingEnabled, + unsavedChanges, + categorizedFields, + categoryCounts, + }; }; diff --git a/packages/kbn-management/settings/components/field_category/categories.tsx b/packages/kbn-management/settings/components/field_category/categories.tsx index c732c29c4e4a2..4b710d2c0a57c 100644 --- a/packages/kbn-management/settings/components/field_category/categories.tsx +++ b/packages/kbn-management/settings/components/field_category/categories.tsx @@ -21,6 +21,7 @@ export interface FieldCategoriesProps Pick { /** Categorized fields for display. */ categorizedFields: CategorizedFields; + categoryCounts: { [category: string]: number }; /** And unsaved changes currently managed by the parent component. */ unsavedChanges?: UnsavedFieldChanges; } @@ -33,6 +34,7 @@ export interface FieldCategoriesProps */ export const FieldCategories = ({ categorizedFields, + categoryCounts, unsavedChanges = {}, onClearQuery, isSavingEnabled, @@ -40,7 +42,11 @@ export const FieldCategories = ({ }: FieldCategoriesProps) => ( <> {Object.entries(categorizedFields).map(([category, { count, fields }]) => ( - + {fields.map((field) => ( { -

    {getCategoryName(category)}

    +

    + {getCategoryName(category)} +

    diff --git a/packages/kbn-management/settings/components/field_category/clear_query_link.tsx b/packages/kbn-management/settings/components/field_category/clear_query_link.tsx index c54b2c9ad52dc..8dd41429121f7 100644 --- a/packages/kbn-management/settings/components/field_category/clear_query_link.tsx +++ b/packages/kbn-management/settings/components/field_category/clear_query_link.tsx @@ -38,7 +38,7 @@ export const ClearQueryLink = ({ fieldCount, displayCount, onClearQuery }: Clear return ( diff --git a/packages/kbn-management/settings/components/form/form.test.tsx b/packages/kbn-management/settings/components/form/form.test.tsx index 0e149938e2146..6fbaeb7b88e31 100644 --- a/packages/kbn-management/settings/components/form/form.test.tsx +++ b/packages/kbn-management/settings/components/form/form.test.tsx @@ -21,6 +21,8 @@ import { FormServices } from './types'; const settingsMock = getSettingsMock(); const fields: FieldDefinition[] = getFieldDefinitions(settingsMock, uiSettingsClientMock); +const categoryCounts = {}; +const onClearQuery = jest.fn(); describe('Form', () => { beforeEach(() => { @@ -28,13 +30,17 @@ describe('Form', () => { }); it('renders without errors', () => { - const { container } = render(wrap()); + const { container } = render( + wrap() + ); expect(container).toBeInTheDocument(); }); it('renders as read only if saving is disabled', () => { - const { getByTestId } = render(wrap()); + const { getByTestId } = render( + wrap() + ); (Object.keys(settingsMock) as SettingType[]).forEach((type) => { if (type === 'json' || type === 'markdown') { @@ -53,7 +59,7 @@ describe('Form', () => { it('renders bottom bar when a field is changed', () => { const { getByTestId, queryByTestId } = render( - wrap() + wrap() ); expect(queryByTestId(DATA_TEST_SUBJ_SAVE_BUTTON)).not.toBeInTheDocument(); @@ -69,7 +75,9 @@ describe('Form', () => { it('fires saveChanges when Save button is clicked', async () => { const services: FormServices = createFormServicesMock(); - const { getByTestId } = render(wrap(, services)); + const { getByTestId } = render( + wrap(, services) + ); const testFieldType = 'string'; const input = getByTestId(`${TEST_SUBJ_PREFIX_FIELD}-${testFieldType}`); @@ -88,7 +96,9 @@ describe('Form', () => { }); it('clears changes when Cancel button is clicked', async () => { - const { getByTestId } = render(wrap()); + const { getByTestId } = render( + wrap() + ); const testFieldType = 'string'; const input = getByTestId(`${TEST_SUBJ_PREFIX_FIELD}-${testFieldType}`); @@ -112,7 +122,10 @@ describe('Form', () => { const testServices = { ...services, saveChanges: saveChangesWithError }; const { getByTestId } = render( - wrap(, testServices) + wrap( + , + testServices + ) ); const testFieldType = 'string'; @@ -137,7 +150,17 @@ describe('Form', () => { uiSettingsClientMock ); const { getByTestId } = render( - wrap(, services) + wrap( + , + services + ) ); const testFieldType = 'string'; diff --git a/packages/kbn-management/settings/components/form/form.tsx b/packages/kbn-management/settings/components/form/form.tsx index 0bc9d2c96fb29..261813aa8cd58 100644 --- a/packages/kbn-management/settings/components/form/form.tsx +++ b/packages/kbn-management/settings/components/form/form.tsx @@ -24,6 +24,10 @@ export interface FormProps { fields: FieldDefinition[]; /** True if saving settings is enabled, false otherwise. */ isSavingEnabled: boolean; + /** Contains the number of registered settings in each category. */ + categoryCounts: { [category: string]: number }; + /** Handler for the "clear search" link. */ + onClearQuery: () => void; } /** @@ -31,7 +35,7 @@ export interface FormProps { * @param props The {@link FormProps} for the {@link Form} component. */ export const Form = (props: FormProps) => { - const { fields, isSavingEnabled } = props; + const { fields, isSavingEnabled, categoryCounts, onClearQuery } = props; const [unsavedChanges, setUnsavedChanges] = React.useState>( {} @@ -66,13 +70,17 @@ export const Form = (props: FormProps) => { const categorizedFields = categorizeFields(fields); - /** TODO - Querying is not enabled yet. */ - const onClearQuery = () => {}; - return ( {!isEmpty(unsavedChanges) && ( uiSettingsClientMock ); - return ; + // This is only needed for when a search query is present + const categoryCounts = {}; + const onClearQuery = () => {}; + + return ; }; Form.args = { diff --git a/packages/kbn-management/settings/field_definition/get_definition.ts b/packages/kbn-management/settings/field_definition/get_definition.ts index 8e7204b137693..646cf47dcee2d 100644 --- a/packages/kbn-management/settings/field_definition/get_definition.ts +++ b/packages/kbn-management/settings/field_definition/get_definition.ts @@ -111,7 +111,9 @@ export const getFieldDefinition = ( } = setting; const { isCustom, isOverridden } = params; - const categories = category && category.length ? category : [DEFAULT_CATEGORY]; + + // We only use the first provided category so that the filter by category works correctly + const categories = category && category.length ? [category[0]] : [DEFAULT_CATEGORY]; const options = { values: optionValues || [], diff --git a/src/plugins/management/public/plugin.tsx b/src/plugins/management/public/plugin.tsx index e0c65d66d369d..cf0ec90af6682 100644 --- a/src/plugins/management/public/plugin.tsx +++ b/src/plugins/management/public/plugin.tsx @@ -188,12 +188,12 @@ export class ManagementPlugin id: 'settings', title, order: 3, - async mount({ element, setBreadcrumbs }) { + async mount({ element, setBreadcrumbs, history }) { setBreadcrumbs([{ text: title }]); ReactDOM.render( - + , element ); From 967a2f1af2cc98350462171665ab304ef1ad1f5e Mon Sep 17 00:00:00 2001 From: Shahzad Date: Wed, 11 Oct 2023 17:39:59 +0200 Subject: [PATCH 24/79] [Synthetics] Fix duration metric label (#168595) --- .../components/monitors_page/overview/overview/metric_item.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/metric_item.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/metric_item.tsx index 0ac9dfe8d80ca..ce5d1f6bbb3e3 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/metric_item.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/metric_item.tsx @@ -148,7 +148,7 @@ export const MetricItem = ({ Date: Wed, 11 Oct 2023 17:49:42 +0200 Subject: [PATCH 25/79] [EDR Workflows] Add @serverless tag to more osquery tests (#168555) --- .../cypress/e2e/all/add_integration.cy.ts | 48 +++--- .../cypress/e2e/all/live_query_run.cy.ts | 2 +- .../cypress/e2e/all/packs_create_edit.cy.ts | 38 ++--- .../cypress/e2e/all/packs_integration.cy.ts | 150 +++++++++--------- 4 files changed, 123 insertions(+), 115 deletions(-) diff --git a/x-pack/plugins/osquery/cypress/e2e/all/add_integration.cy.ts b/x-pack/plugins/osquery/cypress/e2e/all/add_integration.cy.ts index ecad2eebf5248..d11b517bd022f 100644 --- a/x-pack/plugins/osquery/cypress/e2e/all/add_integration.cy.ts +++ b/x-pack/plugins/osquery/cypress/e2e/all/add_integration.cy.ts @@ -30,7 +30,7 @@ import { } from '../../tasks/integrations'; import { findAndClickButton, findFormFieldByRowsLabelAndType } from '../../tasks/live_query'; -describe('ALL - Add Integration', { tags: ['@ess', '@brokenInServerless'] }, () => { +describe('ALL - Add Integration', { tags: ['@ess', '@serverless'] }, () => { let savedQueryId: string; before(() => { @@ -47,32 +47,36 @@ describe('ALL - Add Integration', { tags: ['@ess', '@brokenInServerless'] }, () cleanupSavedQuery(savedQueryId); }); - it('validate osquery is not available and nav search links to integration', () => { - cy.visit(OSQUERY); - cy.intercept('GET', '**/internal/osquery/status', (req) => { - req.continue((res) => res.send({ ...res.body, install_status: undefined })); - }); - cy.contains('Add this integration to run and schedule queries for Elastic Agent.'); - cy.contains('Add Osquery Manager'); - cy.getBySel('osquery-add-integration-button'); - cy.getBySel('nav-search-input').type('Osquery'); - cy.get(`[url="${NAV_SEARCH_INPUT_OSQUERY_RESULTS.MANAGEMENT}"]`).should('exist'); - cy.get(`[url="${NAV_SEARCH_INPUT_OSQUERY_RESULTS.LOGS}"]`).should('exist'); - cy.get(`[url="${NAV_SEARCH_INPUT_OSQUERY_RESULTS.MANAGER}"]`).should('exist').click(); - }); - - describe('Add and upgrade integration', { tags: ['@ess'] }, () => { + it( + 'validate osquery is not available and nav search links to integration', + { tags: ['@ess', '@brokenInServerless'] }, + () => { + cy.visit(OSQUERY); + cy.intercept('GET', '**/internal/osquery/status', (req) => { + req.continue((res) => res.send({ ...res.body, install_status: undefined })); + }); + cy.contains('Add this integration to run and schedule queries for Elastic Agent.'); + cy.contains('Add Osquery Manager'); + cy.getBySel('osquery-add-integration-button'); + cy.getBySel('nav-search-input').type('Osquery'); + cy.get(`[url="${NAV_SEARCH_INPUT_OSQUERY_RESULTS.MANAGEMENT}"]`).should('exist'); + cy.get(`[url="${NAV_SEARCH_INPUT_OSQUERY_RESULTS.LOGS}"]`).should('exist'); + cy.get(`[url="${NAV_SEARCH_INPUT_OSQUERY_RESULTS.MANAGER}"]`).should('exist').click(); + } + ); + + describe('Add and upgrade integration', { tags: ['@ess', '@serverless'] }, () => { const oldVersion = '0.7.4'; const [integrationName, policyName] = generateRandomStringName(2); let policyId: string; - before(() => { + beforeEach(() => { interceptAgentPolicyId((agentPolicyId) => { policyId = agentPolicyId; }); }); - after(() => { + afterEach(() => { cleanupAgentPolicy(policyId); }); @@ -94,13 +98,13 @@ describe('ALL - Add Integration', { tags: ['@ess', '@brokenInServerless'] }, () const [integrationName, policyName] = generateRandomStringName(2); let policyId: string; - before(() => { + beforeEach(() => { interceptAgentPolicyId((agentPolicyId) => { policyId = agentPolicyId; }); }); - after(() => { + afterEach(() => { cleanupAgentPolicy(policyId); }); @@ -134,7 +138,7 @@ describe('ALL - Add Integration', { tags: ['@ess', '@brokenInServerless'] }, () let policyId: string; let packId: string; - before(() => { + beforeEach(() => { interceptAgentPolicyId((agentPolicyId) => { policyId = agentPolicyId; }); @@ -143,7 +147,7 @@ describe('ALL - Add Integration', { tags: ['@ess', '@brokenInServerless'] }, () }); }); - after(() => { + afterEach(() => { cleanupPack(packId); cleanupAgentPolicy(policyId); }); diff --git a/x-pack/plugins/osquery/cypress/e2e/all/live_query_run.cy.ts b/x-pack/plugins/osquery/cypress/e2e/all/live_query_run.cy.ts index 871c2aac920fa..f1907c506959b 100644 --- a/x-pack/plugins/osquery/cypress/e2e/all/live_query_run.cy.ts +++ b/x-pack/plugins/osquery/cypress/e2e/all/live_query_run.cy.ts @@ -25,7 +25,7 @@ import { getAdvancedButton } from '../../screens/integrations'; import { loadSavedQuery, cleanupSavedQuery } from '../../tasks/api_fixtures'; import { ServerlessRoleName } from '../../support/roles'; -describe('ALL - Live Query run custom and saved', { tags: ['@ess'] }, () => { +describe('ALL - Live Query run custom and saved', { tags: ['@ess', '@serverless'] }, () => { let savedQueryId: string; let savedQueryName: string; diff --git a/x-pack/plugins/osquery/cypress/e2e/all/packs_create_edit.cy.ts b/x-pack/plugins/osquery/cypress/e2e/all/packs_create_edit.cy.ts index 3b03ca07fbe15..79afcb04cb9bb 100644 --- a/x-pack/plugins/osquery/cypress/e2e/all/packs_create_edit.cy.ts +++ b/x-pack/plugins/osquery/cypress/e2e/all/packs_create_edit.cy.ts @@ -100,13 +100,13 @@ describe('Packs - Create and Edit', { tags: ['@ess', '@serverless'] }, () => { describe('Check if result type is correct', { tags: ['@ess', '@serverless'] }, () => { let resultTypePackId: string; - before(() => { + beforeEach(() => { interceptPackId((pack) => { resultTypePackId = pack; }); }); - after(() => { + afterEach(() => { cleanupPack(resultTypePackId); }); @@ -225,17 +225,14 @@ describe('Packs - Create and Edit', { tags: ['@ess', '@serverless'] }, () => { let packId: string; let packName: string; - before(() => { + beforeEach(() => { interceptPackId((pack) => { packId = pack; }); - }); - - beforeEach(() => { packName = 'Pack-name' + generateRandomStringName(1)[0]; }); - after(() => { + afterEach(() => { cleanupPack(packId); }); @@ -270,7 +267,7 @@ describe('Packs - Create and Edit', { tags: ['@ess', '@serverless'] }, () => { let packName: string; let newQueryName: string; - before(() => { + beforeEach(() => { request<{ items: PackagePolicy[] }>({ url: '/internal/osquery/fleet_wrapper/package_policies', headers: { @@ -289,12 +286,10 @@ describe('Packs - Create and Edit', { tags: ['@ess', '@serverless'] }, () => { packId = pack.saved_object_id; packName = pack.name; }); - }); - beforeEach(() => { newQueryName = 'new-query-name' + generateRandomStringName(1)[0]; }); - after(() => { + afterEach(() => { cleanupPack(packId); }); @@ -374,7 +369,7 @@ describe('Packs - Create and Edit', { tags: ['@ess', '@serverless'] }, () => { let packId: string; let packName: string; - before(() => { + beforeEach(() => { request<{ items: PackagePolicy[] }>({ url: '/internal/osquery/fleet_wrapper/package_policies', headers: { @@ -399,7 +394,7 @@ describe('Packs - Create and Edit', { tags: ['@ess', '@serverless'] }, () => { }); }); - after(() => { + afterEach(() => { cleanupPack(packId); }); @@ -483,7 +478,7 @@ describe('Packs - Create and Edit', { tags: ['@ess', '@serverless'] }, () => { let packId: string; let packName: string; - before(() => { + beforeEach(() => { request<{ items: PackagePolicy[] }>({ url: '/internal/osquery/fleet_wrapper/package_policies', headers: { @@ -504,7 +499,7 @@ describe('Packs - Create and Edit', { tags: ['@ess', '@serverless'] }, () => { }); }); - after(() => { + afterEach(() => { cleanupPack(packId); }); @@ -519,7 +514,7 @@ describe('Packs - Create and Edit', { tags: ['@ess', '@serverless'] }, () => { let packId: string; let packName: string; - before(() => { + beforeEach(() => { request<{ items: PackagePolicy[] }>({ url: '/internal/osquery/fleet_wrapper/package_policies', headers: { @@ -540,7 +535,7 @@ describe('Packs - Create and Edit', { tags: ['@ess', '@serverless'] }, () => { }); }); - after(() => { + afterEach(() => { cleanupPack(packId); }); @@ -634,7 +629,7 @@ describe('Packs - Create and Edit', { tags: ['@ess', '@serverless'] }, () => { let packId: string; let packName: string; - before(() => { + beforeEach(() => { request<{ items: PackagePolicy[] }>({ url: '/internal/osquery/fleet_wrapper/package_policies', headers: { @@ -659,7 +654,7 @@ describe('Packs - Create and Edit', { tags: ['@ess', '@serverless'] }, () => { }); }); - after(() => { + afterEach(() => { cleanupPack(packId); }); @@ -704,6 +699,7 @@ describe('Packs - Create and Edit', { tags: ['@ess', '@serverless'] }, () => { describe('to click delete button', { tags: ['@ess', '@serverless'] }, () => { let packName: string; + let packId: string; beforeEach(() => { request<{ items: PackagePolicy[] }>({ @@ -722,8 +718,12 @@ describe('Packs - Create and Edit', { tags: ['@ess', '@serverless'] }, () => { ) .then((pack) => { packName = pack.name; + packId = pack.saved_object_id; }); }); + afterEach(() => { + cleanupPack(packId); + }); it('', { tags: ['@ess', '@serverless'] }, () => { preparePack(packName); diff --git a/x-pack/plugins/osquery/cypress/e2e/all/packs_integration.cy.ts b/x-pack/plugins/osquery/cypress/e2e/all/packs_integration.cy.ts index 694a6c10ed8b1..49e01b5524ab3 100644 --- a/x-pack/plugins/osquery/cypress/e2e/all/packs_integration.cy.ts +++ b/x-pack/plugins/osquery/cypress/e2e/all/packs_integration.cy.ts @@ -40,11 +40,14 @@ describe('ALL - Packs', { tags: ['@ess', '@serverless'] }, () => { 'Validate that agent policy is getting removed from pack if we remove agent policy', { tags: ['@ess'] }, () => { + let AGENT_POLICY_NAME: string; + let REMOVING_PACK: string; + beforeEach(() => { cy.login('elastic'); + AGENT_POLICY_NAME = `PackTest` + generateRandomStringName(1)[0]; + REMOVING_PACK = 'removing-pack' + generateRandomStringName(1)[0]; }); - const AGENT_POLICY_NAME = `PackTest` + generateRandomStringName(1)[0]; - const REMOVING_PACK = 'removing-pack' + generateRandomStringName(1)[0]; it('add integration', () => { cy.visit(FLEET_AGENT_POLICIES); @@ -94,86 +97,87 @@ describe('ALL - Packs', { tags: ['@ess', '@serverless'] }, () => { ); describe('Load prebuilt packs', { tags: ['@ess', '@serverless'] }, () => { - beforeEach(() => { - cy.login(ServerlessRoleName.SOC_MANAGER); - navigateTo('/app/osquery/packs'); - }); - - after(() => { + afterEach(() => { cleanupAllPrebuiltPacks(); }); const PREBUILD_PACK_NAME = 'it-compliance'; - it('should load prebuilt packs', () => { - cy.contains('Load Elastic prebuilt packs').click(); - cy.contains('Load Elastic prebuilt packs').should('not.exist'); - cy.wait(1000); - cy.react('EuiTableRow').should('have.length.above', 5); - }); + describe('', () => { + beforeEach(() => { + cy.login(ServerlessRoleName.SOC_MANAGER); + navigateTo('/app/osquery/packs'); + }); + it('should load prebuilt packs', () => { + cy.contains('Load Elastic prebuilt packs').click(); + cy.contains('Load Elastic prebuilt packs').should('not.exist'); + cy.wait(1000); + cy.react('EuiTableRow').should('have.length.above', 5); + }); - it('should be able to activate pack', () => { - activatePack(PREBUILD_PACK_NAME); - deactivatePack(PREBUILD_PACK_NAME); - }); + it('should be able to activate pack', () => { + activatePack(PREBUILD_PACK_NAME); + deactivatePack(PREBUILD_PACK_NAME); + }); - it('should be able to add policy to it', () => { - cy.contains(PREBUILD_PACK_NAME).click(); - cy.contains('Edit').click(); - findFormFieldByRowsLabelAndType( - 'Scheduled agent policies (optional)', - `${DEFAULT_POLICY} {downArrow}{enter}` - ); - cy.contains('Update pack').click(); - cy.getBySel('confirmModalConfirmButton').click(); - cy.contains(`Successfully updated "${PREBUILD_PACK_NAME}" pack`); - }); + it('should be able to add policy to it', () => { + cy.contains(PREBUILD_PACK_NAME).click(); + cy.contains('Edit').click(); + findFormFieldByRowsLabelAndType( + 'Scheduled agent policies (optional)', + `${DEFAULT_POLICY} {downArrow}{enter}` + ); + cy.contains('Update pack').click(); + cy.getBySel('confirmModalConfirmButton').click(); + cy.contains(`Successfully updated "${PREBUILD_PACK_NAME}" pack`); + }); - it('should be able to activate pack with agent inside', () => { - activatePack(PREBUILD_PACK_NAME); - deactivatePack(PREBUILD_PACK_NAME); - }); - it('should not be able to update prebuilt pack', () => { - cy.contains(PREBUILD_PACK_NAME).click(); - cy.contains('Edit').click(); - cy.react('EuiFieldText', { props: { name: 'name', isDisabled: true } }); - cy.react('EuiFieldText', { props: { name: 'description', isDisabled: true } }); - cy.contains('Add Query').should('not.exist'); - cy.react('ExpandedItemActions', { options: { timeout: 1000 } }); - cy.get('.euiTableRowCell--hasActions').should('not.exist'); - }); - it('should be able to delete prebuilt pack and add it again', () => { - cy.contains(PREBUILD_PACK_NAME).click(); - cy.contains('Edit').click(); - deleteAndConfirm('pack'); - cy.contains(PREBUILD_PACK_NAME).should('not.exist'); - cy.contains('Update Elastic prebuilt packs').click(); - cy.contains('Successfully updated prebuilt packs'); - cy.contains(PREBUILD_PACK_NAME).should('exist'); - }); + it('should be able to activate pack with agent inside', () => { + activatePack(PREBUILD_PACK_NAME); + deactivatePack(PREBUILD_PACK_NAME); + }); + it('should not be able to update prebuilt pack', () => { + cy.contains(PREBUILD_PACK_NAME).click(); + cy.contains('Edit').click(); + cy.react('EuiFieldText', { props: { name: 'name', isDisabled: true } }); + cy.react('EuiFieldText', { props: { name: 'description', isDisabled: true } }); + cy.contains('Add Query').should('not.exist'); + cy.react('ExpandedItemActions', { options: { timeout: 1000 } }); + cy.get('.euiTableRowCell--hasActions').should('not.exist'); + }); + it('should be able to delete prebuilt pack and add it again', () => { + cy.contains(PREBUILD_PACK_NAME).click(); + cy.contains('Edit').click(); + deleteAndConfirm('pack'); + cy.contains(PREBUILD_PACK_NAME).should('not.exist'); + cy.contains('Update Elastic prebuilt packs').click(); + cy.contains('Successfully updated prebuilt packs'); + cy.contains(PREBUILD_PACK_NAME).should('exist'); + }); - it('should be able to run live prebuilt pack', () => { - navigateTo('/app/osquery/live_queries'); - cy.contains('New live query').click(); - cy.contains('Run a set of queries in a pack.').click(); - cy.get(LIVE_QUERY_EDITOR).should('not.exist'); - cy.getBySel('select-live-pack').click().type('osquery-monitoring{downArrow}{enter}'); - selectAllAgents(); - submitQuery(); - cy.getBySel('toggleIcon-events').click(); - checkResults(); - checkActionItemsInResults({ - lens: true, - discover: true, - cases: true, - timeline: false, + it('should be able to run live prebuilt pack', () => { + navigateTo('/app/osquery/live_queries'); + cy.contains('New live query').click(); + cy.contains('Run a set of queries in a pack.').click(); + cy.get(LIVE_QUERY_EDITOR).should('not.exist'); + cy.getBySel('select-live-pack').click().type('osquery-monitoring{downArrow}{enter}'); + selectAllAgents(); + submitQuery(); + cy.getBySel('toggleIcon-events').click(); + checkResults(); + checkActionItemsInResults({ + lens: true, + discover: true, + cases: true, + timeline: false, + }); + navigateTo('/app/osquery'); + cy.contains('osquery-monitoring'); }); - navigateTo('/app/osquery'); - cy.contains('osquery-monitoring'); }); }); - describe('Global packs', { tags: ['@ess'] }, () => { + describe('Global packs', { tags: ['@ess', '@serverless'] }, () => { beforeEach(() => { cy.login('elastic'); navigateTo('/app/osquery/packs'); @@ -185,7 +189,7 @@ describe('ALL - Packs', { tags: ['@ess', '@serverless'] }, () => { let globalPackId: string; let agentPolicyId: string; - before(() => { + beforeEach(() => { interceptPackId((pack) => { globalPackId = pack; }); @@ -194,7 +198,7 @@ describe('ALL - Packs', { tags: ['@ess', '@serverless'] }, () => { }); }); - after(() => { + afterEach(() => { cleanupPack(globalPackId); cleanupAgentPolicy(agentPolicyId); }); @@ -251,13 +255,13 @@ describe('ALL - Packs', { tags: ['@ess', '@serverless'] }, () => { describe('add proper shard to policies packs config', () => { let shardPackId: string; - before(() => { + beforeEach(() => { interceptPackId((pack) => { shardPackId = pack; }); }); - after(() => { + afterEach(() => { cleanupPack(shardPackId); }); From 598adef415899656cdace9b45729f84c125a6a60 Mon Sep 17 00:00:00 2001 From: Abdul Wahab Zahid Date: Wed, 11 Oct 2023 17:56:10 +0200 Subject: [PATCH 26/79] [Synthetics] Fix doc links for alerts and documentation (#168486) Fixes #167688 ## Summary Updates the links to Synthetics from Uptime on the following: 1. "learn more" link on Monitor Status alert flyout 2. "learn more" link on TLS alert flyout 3. Synthetics app "Documentation" link (under _help_ top header button) --- packages/kbn-doc-links/src/get_doc_links.ts | 1 + packages/kbn-doc-links/src/types.ts | 1 + .../public/apps/synthetics/lib/alert_types/monitor_status.tsx | 2 +- .../synthetics/public/apps/synthetics/lib/alert_types/tls.tsx | 2 +- .../plugins/synthetics/public/apps/synthetics/render_app.tsx | 4 ++-- 5 files changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/kbn-doc-links/src/get_doc_links.ts b/packages/kbn-doc-links/src/get_doc_links.ts index a0670dc657056..20aaad5905ba3 100644 --- a/packages/kbn-doc-links/src/get_doc_links.ts +++ b/packages/kbn-doc-links/src/get_doc_links.ts @@ -543,6 +543,7 @@ export const getDocLinks = ({ kibanaBranch }: GetDocLinkOptions): DocLinks => { monitorUptimeSynthetics: `${ELASTIC_WEBSITE_URL}guide/en/observability/${DOC_LINK_VERSION}/monitor-uptime-synthetics.html`, userExperience: `${ELASTIC_WEBSITE_URL}guide/en/observability/${DOC_LINK_VERSION}/user-experience.html`, createAlerts: `${ELASTIC_WEBSITE_URL}guide/en/observability/${DOC_LINK_VERSION}/create-alerts.html`, + syntheticsAlerting: `${ELASTIC_WEBSITE_URL}guide/en/observability/${DOC_LINK_VERSION}/synthetics-settings.html#synthetics-settings-alerting`, syntheticsCommandReference: `${ELASTIC_WEBSITE_URL}guide/en/observability/${DOC_LINK_VERSION}/synthetics-configuration.html#synthetics-configuration-playwright-options`, syntheticsProjectMonitors: `${ELASTIC_WEBSITE_URL}guide/en/observability/${DOC_LINK_VERSION}/synthetic-run-tests.html#synthetic-monitor-choose-project`, syntheticsMigrateFromIntegration: `${ELASTIC_WEBSITE_URL}guide/en/observability/${DOC_LINK_VERSION}/synthetics-migrate-from-integration.html`, diff --git a/packages/kbn-doc-links/src/types.ts b/packages/kbn-doc-links/src/types.ts index 7a61d9f3dd30e..5f513392588a6 100644 --- a/packages/kbn-doc-links/src/types.ts +++ b/packages/kbn-doc-links/src/types.ts @@ -415,6 +415,7 @@ export interface DocLinks { monitorUptimeSynthetics: string; userExperience: string; createAlerts: string; + syntheticsAlerting: string; syntheticsCommandReference: string; syntheticsProjectMonitors: string; syntheticsMigrateFromIntegration: string; diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/lib/alert_types/monitor_status.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/lib/alert_types/monitor_status.tsx index 4e129559b02a6..df0f160aee3c0 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/lib/alert_types/monitor_status.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/lib/alert_types/monitor_status.tsx @@ -30,7 +30,7 @@ export const initMonitorStatusAlertType: AlertTypeInitializer = ({ description, iconClass: 'uptimeApp', documentationUrl(docLinks) { - return `${docLinks.links.observability.monitorStatus}`; + return `${docLinks.links.observability.syntheticsAlerting}`; }, ruleParamsExpression: (paramProps: RuleTypeParamsExpressionProps) => ( diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/lib/alert_types/tls.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/lib/alert_types/tls.tsx index 978fc7331b0fc..2479d1f466f3e 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/lib/alert_types/tls.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/lib/alert_types/tls.tsx @@ -27,7 +27,7 @@ export const initTlsAlertType: AlertTypeInitializer = ({ id: SYNTHETICS_ALERT_RULE_TYPES.TLS, iconClass: 'uptimeApp', documentationUrl(docLinks) { - return `${docLinks.links.observability.tlsCertificate}`; + return `${docLinks.links.observability.syntheticsAlerting}`; }, ruleParamsExpression: (params: RuleTypeParamsExpressionProps) => ( Date: Wed, 11 Oct 2023 17:48:33 +0100 Subject: [PATCH 27/79] [DOCS] Adds 8.10.4 release notes (#168599) ## Summary Adds release notes for 8.10.4 --- docs/CHANGELOG.asciidoc | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/docs/CHANGELOG.asciidoc b/docs/CHANGELOG.asciidoc index e6e426e7a8623..8c66afcd0ef29 100644 --- a/docs/CHANGELOG.asciidoc +++ b/docs/CHANGELOG.asciidoc @@ -10,6 +10,7 @@ Review important information about the {kib} 8.x releases. +* <> * <> * <> * <> @@ -51,6 +52,19 @@ Review important information about the {kib} 8.x releases. * <> -- +[[release-notes-8.10.4]] +== {kib} 8.10.4 + +The 8.10.4 release includes the following bug fixes. + +[float] +[[fixes-v8.10.4]] +=== Bug Fixes +Elastic Security:: +For the Elastic Security 8.10.4 release information, refer to {security-guide}/release-notes.html[_Elastic Security Solution Release Notes_]. +Fleet:: +* Fixes validation errors in KQL queries ({kibana-pull}168329[#168329]). + [[release-notes-8.10.3]] == {kib} 8.10.3 From abc0d8d0970b846ef08913eaa4a16134d6f61b84 Mon Sep 17 00:00:00 2001 From: Tiago Costa Date: Wed, 11 Oct 2023 18:37:10 +0100 Subject: [PATCH 28/79] skip flaky suite (#163207) --- test/functional/apps/dashboard/group5/embed_mode.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/functional/apps/dashboard/group5/embed_mode.ts b/test/functional/apps/dashboard/group5/embed_mode.ts index 3c2cfbae77a9f..a2ab6312ac4ef 100644 --- a/test/functional/apps/dashboard/group5/embed_mode.ts +++ b/test/functional/apps/dashboard/group5/embed_mode.ts @@ -56,7 +56,8 @@ export default function ({ await browser.setWindowSize(1300, 900); }); - describe('default URL params', () => { + // FLAKY: https://github.com/elastic/kibana/issues/163207 + describe.skip('default URL params', () => { it('hides the chrome', async () => { const globalNavShown = await globalNav.exists(); expect(globalNavShown).to.be(true); From 338068bea87f37d79bbc22bb0400231d897a1314 Mon Sep 17 00:00:00 2001 From: Tiago Costa Date: Wed, 11 Oct 2023 18:39:34 +0100 Subject: [PATCH 29/79] skip flaky suite (#167405) --- test/functional/apps/discover/group1/_shared_links.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/functional/apps/discover/group1/_shared_links.ts b/test/functional/apps/discover/group1/_shared_links.ts index 589901d99fe80..e8f79ea1b427a 100644 --- a/test/functional/apps/discover/group1/_shared_links.ts +++ b/test/functional/apps/discover/group1/_shared_links.ts @@ -144,7 +144,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); }); - describe('shared links with state in sessionStorage', async () => { + // FLAKY: https://github.com/elastic/kibana/issues/167405 + describe.skip('shared links with state in sessionStorage', async () => { let teardown: () => Promise; before(async function () { teardown = await setup({ storeStateInSessionStorage: true }); From e02669dcf38195c54f4664f8e5cc90c72b415805 Mon Sep 17 00:00:00 2001 From: Tiago Costa Date: Wed, 11 Oct 2023 19:48:42 +0100 Subject: [PATCH 30/79] skip flaky suite (#168648) --- test/functional/apps/dashboard/group5/embed_mode.ts | 3 ++- x-pack/plugins/osquery/cypress/e2e/all/packs_create_edit.cy.ts | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/test/functional/apps/dashboard/group5/embed_mode.ts b/test/functional/apps/dashboard/group5/embed_mode.ts index a2ab6312ac4ef..fc7b92ab5fb8d 100644 --- a/test/functional/apps/dashboard/group5/embed_mode.ts +++ b/test/functional/apps/dashboard/group5/embed_mode.ts @@ -91,7 +91,8 @@ export default function ({ }); }); - describe('non-default URL params', () => { + // FLAKY: https://github.com/elastic/kibana/issues/168648 + describe.skip('non-default URL params', () => { it('shows or hides elements based on URL params', async () => { const currentUrl = await browser.getCurrentUrl(); const newUrl = [currentUrl].concat(urlParamExtensions).join('&'); diff --git a/x-pack/plugins/osquery/cypress/e2e/all/packs_create_edit.cy.ts b/x-pack/plugins/osquery/cypress/e2e/all/packs_create_edit.cy.ts index 79afcb04cb9bb..8599cbf65b156 100644 --- a/x-pack/plugins/osquery/cypress/e2e/all/packs_create_edit.cy.ts +++ b/x-pack/plugins/osquery/cypress/e2e/all/packs_create_edit.cy.ts @@ -28,7 +28,8 @@ import { loadSavedQuery, cleanupSavedQuery, cleanupPack, loadPack } from '../../ import { request } from '../../tasks/common'; import { ServerlessRoleName } from '../../support/roles'; -describe('Packs - Create and Edit', { tags: ['@ess', '@serverless'] }, () => { +// FLAKY +describe.skip('Packs - Create and Edit', { tags: ['@ess', '@serverless'] }, () => { let savedQueryId: string; let savedQueryName: string; let nomappingSavedQueryId: string; From 770881430dc893513eda86314c5e52fa32f9b459 Mon Sep 17 00:00:00 2001 From: Cee Chen <549407+cee-chen@users.noreply.github.com> Date: Wed, 11 Oct 2023 12:36:52 -0700 Subject: [PATCH 31/79] Upgrade EUI to v89.0.0 (#168396) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `v88.5.4`⏩`v89.0.0` --- ## [`89.0.0`](https://github.com/elastic/eui/tree/v89.0.0) - Added new `pushAnimation` prop to push `EuiFlyout`s, which enables a slide in animation ([#7239](https://github.com/elastic/eui/pull/7239)) - Updated `EuiComboBox` to use `EuiInputPopover` under the hood ([#7246](https://github.com/elastic/eui/pull/7246)) - Added `inputPopoverProps` to `EuiComboBox`, which allows customizing the underlying popover ([#7246](https://github.com/elastic/eui/pull/7246)) - Added a new beta `EuiTextBlockTruncate` component for multi-line truncation ([#7250](https://github.com/elastic/eui/pull/7250)) - Updated `EuiBasicTable` and `EuiInMemoryTable` to support multi-line truncation. This can be set via `truncateText.lines` in the `columns` prop. ([#7254](https://github.com/elastic/eui/pull/7254)) **Bug fixes** - Fixed `EuiFlexGroup` and `EuiFlexGrid`'s `m` gutter size ([#7251](https://github.com/elastic/eui/pull/7251)) - Fixed focus trap rerender issues in `EuiFlyout` with memoization ([#7259](https://github.com/elastic/eui/pull/7259)) - Fixed a visual bug with `EuiContextMenu`'s animation between panels ([#7268](https://github.com/elastic/eui/pull/7268)) **Breaking changes** - EUI's global body font-size now respects the `font.defaultUnits` token. This means that the global font size will use the `rem` unit by default, instead of `px`. ([#7182](https://github.com/elastic/eui/pull/7182)) - Removed exported `accessibleClickKeys`, `comboBoxKeys`, and `cascadingMenuKeys` services. Use the generic `keys` service instead ([#7256](https://github.com/elastic/eui/pull/7256)) - Removed `EuiColorStops` due to low usage ([#7262](https://github.com/elastic/eui/pull/7262)) - Removed `EuiSuggest`. We recommend using `EuiSelectable` or `EuiComboBox` instead ([#7263](https://github.com/elastic/eui/pull/7263)) - Removed `euiHeaderAffordForFixed` Sass mixin, and `$euiHeaderHeight` and `$euiHeaderHeightCompensation` Sass variables. Use the CSS variable `--var(euiFixedHeadersOffset, 0)` instead. ([#7264](https://github.com/elastic/eui/pull/7264)) **Accessibility** - When using `rem` or `em` font units, EUI now respects, instead of ignoring, browser default font sizes set by end users. ([#7182](https://github.com/elastic/eui/pull/7182)) --- examples/search_examples/public/index.scss | 2 - package.json | 2 +- .../__snapshots__/i18n_service.test.tsx.snap | 13 - .../src/i18n_eui_mapping.tsx | 60 -- .../__snapshots__/index.test.tsx.snap | 688 ++++++++++-------- src/dev/license_checker/config.ts | 2 +- .../category/category_component.test.tsx | 6 +- .../index.test.tsx | 13 +- .../index.test.tsx | 9 +- .../explorer_charts_container.test.js | 2 +- .../painless_lab/public/styles/_index.scss | 4 +- .../public/application/_app.scss | 2 +- .../public/application/_index.scss | 2 - .../__snapshots__/prompt_page.test.tsx.snap | 4 +- .../unauthenticated_page.test.tsx.snap | 4 +- .../reset_session_page.test.tsx.snap | 4 +- .../add_data_provider_popover.test.tsx | 16 +- .../translations/translations/fr-FR.json | 13 - .../translations/translations/ja-JP.json | 13 - .../translations/translations/zh-CN.json | 13 - .../login_selector/reset_session_page.ts | 2 +- yarn.lock | 8 +- 22 files changed, 414 insertions(+), 468 deletions(-) diff --git a/examples/search_examples/public/index.scss b/examples/search_examples/public/index.scss index b623fecf78640..331b017591492 100644 --- a/examples/search_examples/public/index.scss +++ b/examples/search_examples/public/index.scss @@ -1,5 +1,3 @@ -@import '@elastic/eui/src/global_styling/variables/header'; - .searchExampleStepDsc { padding-left: $euiSizeXL; font-style: italic; diff --git a/package.json b/package.json index f2fc3641105f9..dea9b2710f64b 100644 --- a/package.json +++ b/package.json @@ -102,7 +102,7 @@ "@elastic/datemath": "5.0.3", "@elastic/elasticsearch": "npm:@elastic/elasticsearch-canary@8.9.1-canary.1", "@elastic/ems-client": "8.4.0", - "@elastic/eui": "88.5.4", + "@elastic/eui": "89.0.0", "@elastic/filesaver": "1.1.2", "@elastic/node-crypto": "1.2.1", "@elastic/numeral": "^2.5.1", diff --git a/packages/core/i18n/core-i18n-browser-internal/src/__snapshots__/i18n_service.test.tsx.snap b/packages/core/i18n/core-i18n-browser-internal/src/__snapshots__/i18n_service.test.tsx.snap index 49797f086e998..83a864adc2b1c 100644 --- a/packages/core/i18n/core-i18n-browser-internal/src/__snapshots__/i18n_service.test.tsx.snap +++ b/packages/core/i18n/core-i18n-browser-internal/src/__snapshots__/i18n_service.test.tsx.snap @@ -45,13 +45,6 @@ exports[`#start() returns \`Context\` component 1`] = ` "euiColorPicker.popoverLabel": "Color selection dialog", "euiColorPicker.transparent": "Transparent", "euiColorPickerSwatch.ariaLabel": [Function], - "euiColorStopThumb.buttonAriaLabel": "Press the Enter key to modify this stop. Press Escape to focus the group", - "euiColorStopThumb.buttonTitle": "Click to edit, drag to reposition", - "euiColorStopThumb.removeLabel": "Remove this stop", - "euiColorStopThumb.screenReaderAnnouncement": "A popup with a color stop edit form opened. Tab forward to cycle through form controls or press escape to close this popup.", - "euiColorStopThumb.stopErrorMessage": "Value is out of range", - "euiColorStopThumb.stopLabel": "Stop value", - "euiColorStops.screenReaderAnnouncement": [Function], "euiColumnActions.hideColumn": "Hide column", "euiColumnActions.moveLeft": "Move left", "euiColumnActions.moveRight": "Move right", @@ -340,12 +333,6 @@ exports[`#start() returns \`Context\` component 1`] = ` "euiStepStrings.simpleWarning": [Function], "euiStepStrings.step": [Function], "euiStepStrings.warning": [Function], - "euiSuggest.stateLoading": "State: loading.", - "euiSuggest.stateSaved": "State: saved.", - "euiSuggest.stateSavedTooltip": "Saved.", - "euiSuggest.stateUnchanged": "State: unchanged.", - "euiSuggest.stateUnsaved": "State: unsaved.", - "euiSuggest.stateUnsavedTooltip": "Changes have not been saved.", "euiSuperSelect.ariaLabel": "Select listbox", "euiSuperSelect.screenReaderAnnouncement": "You are in a form selector and must select a single option. Use the Up and Down arrow keys to navigate or Escape to close.", "euiSuperUpdateButton.cannotUpdateTooltip": "Cannot update", diff --git a/packages/core/i18n/core-i18n-browser-internal/src/i18n_eui_mapping.tsx b/packages/core/i18n/core-i18n-browser-internal/src/i18n_eui_mapping.tsx index e90889ceef612..2f62c04b40e74 100644 --- a/packages/core/i18n/core-i18n-browser-internal/src/i18n_eui_mapping.tsx +++ b/packages/core/i18n/core-i18n-browser-internal/src/i18n_eui_mapping.tsx @@ -202,44 +202,6 @@ export const getEuiContextMapping = (): EuiTokensObject => { 'euiColorPicker.popoverLabel': i18n.translate('core.euiColorPicker.popoverLabel', { defaultMessage: 'Color selection dialog', }), - 'euiColorStopThumb.removeLabel': i18n.translate('core.euiColorStopThumb.removeLabel', { - defaultMessage: 'Remove this stop', - description: 'Label accompanying a button whose action will remove the color stop', - }), - 'euiColorStopThumb.screenReaderAnnouncement': i18n.translate( - 'core.euiColorStopThumb.screenReaderAnnouncement', - { - defaultMessage: - 'A popup with a color stop edit form opened. Tab forward to cycle through form controls or press escape to close this popup.', - description: - 'Message when the color picker popover has opened for an individual color stop thumb.', - } - ), - 'euiColorStopThumb.buttonAriaLabel': i18n.translate('core.euiColorStopThumb.buttonAriaLabel', { - defaultMessage: 'Press the Enter key to modify this stop. Press Escape to focus the group', - description: 'Screen reader text to describe picker interaction', - }), - 'euiColorStopThumb.buttonTitle': i18n.translate('core.euiColorStopThumb.buttonTitle', { - defaultMessage: 'Click to edit, drag to reposition', - description: 'Screen reader text to describe button interaction', - }), - 'euiColorStopThumb.stopLabel': i18n.translate('core.euiColorStopThumb.stopLabel', { - defaultMessage: 'Stop value', - }), - 'euiColorStopThumb.stopErrorMessage': i18n.translate( - 'core.euiColorStopThumb.stopErrorMessage', - { - defaultMessage: 'Value is out of range', - } - ), - 'euiColorStops.screenReaderAnnouncement': ({ label, readOnly, disabled }: EuiValues) => - i18n.translate('core.euiColorStops.screenReaderAnnouncement', { - defaultMessage: - '{label}: {readOnly} {disabled} Color stop picker. Each stop consists of a number and corresponding color value. Use the Down and Up arrow keys to select individual stops. Press the Enter key to create a new stop.', - values: { label, readOnly, disabled }, - description: - 'Screen reader text to describe the composite behavior of the color stops component.', - }), 'euiColorPickerSwatch.ariaLabel': ({ color }: EuiValues) => i18n.translate('core.euiColorPickerSwatch.ariaLabel', { defaultMessage: 'Select {color} as the color', @@ -1711,28 +1673,6 @@ export const getEuiContextMapping = (): EuiTokensObject => { defaultMessage: 'Step {number} is loading', values: { number }, }), - 'euiSuggest.stateSavedTooltip': i18n.translate('core.euiSuggest.stateSavedTooltip', { - defaultMessage: 'Saved.', - }), - - 'euiSuggest.stateUnsavedTooltip': i18n.translate('core.euiSuggest.stateUnsavedTooltip', { - defaultMessage: 'Changes have not been saved.', - }), - - 'euiSuggest.stateLoading': i18n.translate('core.euiSuggest.stateLoading', { - defaultMessage: 'State: loading.', - }), - - 'euiSuggest.stateSaved': i18n.translate('core.euiSuggest.stateSaved', { - defaultMessage: 'State: saved.', - }), - - 'euiSuggest.stateUnsaved': i18n.translate('core.euiSuggest.stateUnsaved', { - defaultMessage: 'State: unsaved.', - }), - 'euiSuggest.stateUnchanged': i18n.translate('core.euiSuggest.stateUnchanged', { - defaultMessage: 'State: unchanged.', - }), 'euiSuperSelect.screenReaderAnnouncement': i18n.translate( 'core.euiSuperSelect.screenReaderAnnouncement', { diff --git a/packages/kbn-securitysolution-autocomplete/src/field/__tests__/__snapshots__/index.test.tsx.snap b/packages/kbn-securitysolution-autocomplete/src/field/__tests__/__snapshots__/index.test.tsx.snap index 9fefe47c379bb..8cc75ec2beab8 100644 --- a/packages/kbn-securitysolution-autocomplete/src/field/__tests__/__snapshots__/index.test.tsx.snap +++ b/packages/kbn-securitysolution-autocomplete/src/field/__tests__/__snapshots__/index.test.tsx.snap @@ -10,66 +10,74 @@ Object { data-test-subj="fieldAutocompleteComboBox" >
    - - - machine.os.raw - - - -
    -
    - - + + + machine.os.raw + + + +
    +
    + + +
    +
    @@ -82,66 +90,74 @@ Object { data-test-subj="fieldAutocompleteComboBox" >
    - - - machine.os.raw - - - -
    -
    - - + + + machine.os.raw + + + +
    +
    + + +
    +
    @@ -211,39 +227,47 @@ Object { data-test-subj="fieldAutocompleteComboBox" >
    - - - machine.os.raw - - - + + + machine.os.raw + + + +
    +
    @@ -256,39 +280,47 @@ Object { data-test-subj="fieldAutocompleteComboBox" >
    - - - machine.os.raw - - - + + + machine.os.raw + + + +
    +
    @@ -358,55 +390,63 @@ Object { data-test-subj="fieldAutocompleteComboBox" >
    - - - machine.os.raw - - - -
    -
    - + + + machine.os.raw + + + +
    +
    + +
    +
    @@ -419,55 +459,63 @@ Object { data-test-subj="fieldAutocompleteComboBox" >
    - - - machine.os.raw - - - -
    -
    - + + + machine.os.raw + + + +
    +
    + +
    +
    @@ -537,48 +585,56 @@ Object { data-test-subj="fieldAutocompleteComboBox" >
    - - - machine.os.raw - - - -
    -
    - + + + machine.os.raw + + + +
    +
    + +
    +
    @@ -591,48 +647,56 @@ Object { data-test-subj="fieldAutocompleteComboBox" >
    - - - machine.os.raw - - - -
    -
    - + + + machine.os.raw + + + +
    +
    + +
    +
    diff --git a/src/dev/license_checker/config.ts b/src/dev/license_checker/config.ts index e5ee6fbf76735..037ea764083ef 100644 --- a/src/dev/license_checker/config.ts +++ b/src/dev/license_checker/config.ts @@ -85,7 +85,7 @@ export const LICENSE_OVERRIDES = { 'jsts@1.6.2': ['Eclipse Distribution License - v 1.0'], // cf. https://github.com/bjornharrtell/jsts '@mapbox/jsonlint-lines-primitives@2.0.2': ['MIT'], // license in readme https://github.com/tmcw/jsonlint '@elastic/ems-client@8.4.0': ['Elastic License 2.0'], - '@elastic/eui@88.5.4': ['SSPL-1.0 OR Elastic License 2.0'], + '@elastic/eui@89.0.0': ['SSPL-1.0 OR Elastic License 2.0'], 'language-subtag-registry@0.3.21': ['CC-BY-4.0'], // retired ODC‑By license https://github.com/mattcg/language-subtag-registry 'buffers@0.1.1': ['MIT'], // license in importing module https://www.npmjs.com/package/binary }; diff --git a/x-pack/plugins/cases/public/components/category/category_component.test.tsx b/x-pack/plugins/cases/public/components/category/category_component.test.tsx index 281051f59f599..2b0d7ef39007b 100644 --- a/x-pack/plugins/cases/public/components/category/category_component.test.tsx +++ b/x-pack/plugins/cases/public/components/category/category_component.test.tsx @@ -11,6 +11,7 @@ import type { CategoryComponentProps } from './category_component'; import { CategoryComponent } from './category_component'; import { waitFor, render, screen } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; +import { showEuiComboBoxOptions } from '@elastic/eui/lib/test/rtl'; const onChange = jest.fn(); const defaultProps: CategoryComponentProps = { @@ -60,8 +61,7 @@ describe('Category ', () => { it('renders current option list', async () => { render(); - - userEvent.click(screen.getByTestId('comboBoxToggleListButton')); + await showEuiComboBoxOptions(); expect(screen.getByText('foo')).toBeInTheDocument(); expect(screen.getByText('bar')).toBeInTheDocument(); @@ -69,8 +69,8 @@ describe('Category ', () => { it('should call onChange when changing an option', async () => { render(); + await showEuiComboBoxOptions(); - userEvent.click(screen.getByTestId('comboBoxToggleListButton')); userEvent.click(screen.getByText('foo')); expect(onChange).toHaveBeenCalledWith('foo'); diff --git a/x-pack/plugins/cloud_defend/public/components/control_general_view_response/index.test.tsx b/x-pack/plugins/cloud_defend/public/components/control_general_view_response/index.test.tsx index 5fbdd9f55135c..681ca86c91201 100644 --- a/x-pack/plugins/cloud_defend/public/components/control_general_view_response/index.test.tsx +++ b/x-pack/plugins/cloud_defend/public/components/control_general_view_response/index.test.tsx @@ -8,6 +8,7 @@ import React from 'react'; import { render, waitFor } from '@testing-library/react'; import { coreMock } from '@kbn/core/public/mocks'; import userEvent from '@testing-library/user-event'; +import { showEuiComboBoxOptions } from '@elastic/eui/lib/test/rtl'; import { TestProvider } from '../../test/test_provider'; import { ControlGeneralViewResponse } from '.'; import { Response, Selector } from '../../../common'; @@ -112,9 +113,9 @@ describe('', () => { expect(getByTestId('cloud-defend-chkblockaction')).not.toBeChecked(); }); - it('allows the user to add more selectors to match on', () => { + it('allows the user to add more selectors to match on', async () => { const { getByTestId, rerender } = render(); - getByTestId('comboBoxSearchInput').focus(); + await showEuiComboBoxOptions(); const options = getByTestId( 'comboBoxOptionsList cloud-defend-responsematch-optionsList' @@ -182,9 +183,11 @@ describe('', () => { // focus 'match' input box, lets ensure selectors can't be re-used across 'match' and 'exclude' fields getAllByTestId('comboBoxSearchInput')[0].focus(); - options = getByTestId( - 'comboBoxOptionsList cloud-defend-responsematch-optionsList' - ).querySelectorAll('.euiComboBoxOption__content'); + options = await waitFor(() => + getByTestId('comboBoxOptionsList cloud-defend-responsematch-optionsList').querySelectorAll( + '.euiComboBoxOption__content' + ) + ); expect(options).toHaveLength(2); expect(options[0].textContent).toBe('mock2'); }); diff --git a/x-pack/plugins/cloud_defend/public/components/control_general_view_selector/index.test.tsx b/x-pack/plugins/cloud_defend/public/components/control_general_view_selector/index.test.tsx index ae7dc61a2f67c..b0561f2b596ad 100644 --- a/x-pack/plugins/cloud_defend/public/components/control_general_view_selector/index.test.tsx +++ b/x-pack/plugins/cloud_defend/public/components/control_general_view_selector/index.test.tsx @@ -6,6 +6,7 @@ */ import React from 'react'; import { act, render, waitFor, fireEvent } from '@testing-library/react'; +import { showEuiComboBoxOptions } from '@elastic/eui/lib/test/rtl'; import { coreMock } from '@kbn/core/public/mocks'; import userEvent from '@testing-library/user-event'; import { TestProvider } from '../../test/test_provider'; @@ -100,11 +101,11 @@ describe('', () => { expect(getByText(i18n.unusedSelector)).toBeTruthy(); }); - it('allows the user to add a limited set of file operations', () => { + it('allows the user to add a limited set of file operations', async () => { const { getByTestId, rerender } = render(); getByTestId('cloud-defend-selectorcondition-operation').click(); - getByTestId('comboBoxSearchInput').focus(); + await showEuiComboBoxOptions(); const options = getByTestId( 'comboBoxOptionsList cloud-defend-selectorcondition-operation-optionsList' @@ -132,11 +133,11 @@ describe('', () => { expect(updatedOptions).toHaveLength(3); }); - it('allows the user to add a limited set of process operations', () => { + it('allows the user to add a limited set of process operations', async () => { const { getByTestId, rerender } = render(); getByTestId('cloud-defend-selectorcondition-operation').click(); - getByTestId('comboBoxSearchInput').focus(); + await showEuiComboBoxOptions(); const options = getByTestId( 'comboBoxOptionsList cloud-defend-selectorcondition-operation-optionsList' diff --git a/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_charts_container.test.js b/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_charts_container.test.js index 129ac8b42f02b..766ab0ee7f723 100644 --- a/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_charts_container.test.js +++ b/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_charts_container.test.js @@ -100,7 +100,7 @@ describe('ExplorerChartsContainer', () => { ); expect(wrapper.html()).toEqual( - '
    ' + '
    ' ); }); diff --git a/x-pack/plugins/painless_lab/public/styles/_index.scss b/x-pack/plugins/painless_lab/public/styles/_index.scss index 4844fe443e56f..801f655fa7f4c 100644 --- a/x-pack/plugins/painless_lab/public/styles/_index.scss +++ b/x-pack/plugins/painless_lab/public/styles/_index.scss @@ -1,4 +1,3 @@ -@import '@elastic/eui/src/global_styling/variables/header'; @import '../../../../../src/core/public/mixins'; /** @@ -35,7 +34,8 @@ $bottomBarHeight: $euiSize * 3; } // adding dev tool top bar + bottom bar height to the body offset -$bodyOffset: $euiHeaderHeightCompensation + $bottomBarHeight; +// (they're both the same height, hence the x2) +$bodyOffset: $bottomBarHeight * 2; .painlessLabMainContainer { @include kibanaFullBodyHeight($bodyOffset); diff --git a/x-pack/plugins/searchprofiler/public/application/_app.scss b/x-pack/plugins/searchprofiler/public/application/_app.scss index 1b7b44e28bc62..36af03021ac4c 100644 --- a/x-pack/plugins/searchprofiler/public/application/_app.scss +++ b/x-pack/plugins/searchprofiler/public/application/_app.scss @@ -27,7 +27,7 @@ } // adding dev tool top bar to the body offset -$bodyOffset: $euiHeaderHeightCompensation; +$bodyOffset: $euiSize * 3; .appRoot { @include kibanaFullBodyHeight($bodyOffset); diff --git a/x-pack/plugins/searchprofiler/public/application/_index.scss b/x-pack/plugins/searchprofiler/public/application/_index.scss index 65ab5cc0e13f3..ea9b01c263963 100644 --- a/x-pack/plugins/searchprofiler/public/application/_index.scss +++ b/x-pack/plugins/searchprofiler/public/application/_index.scss @@ -1,4 +1,2 @@ -@import '@elastic/eui/src/global_styling/variables/header'; - @import 'app'; @import 'components/index'; diff --git a/x-pack/plugins/security/server/__snapshots__/prompt_page.test.tsx.snap b/x-pack/plugins/security/server/__snapshots__/prompt_page.test.tsx.snap index ccedfc1b02171..8eaa66ee35be9 100644 --- a/x-pack/plugins/security/server/__snapshots__/prompt_page.test.tsx.snap +++ b/x-pack/plugins/security/server/__snapshots__/prompt_page.test.tsx.snap @@ -1,5 +1,5 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`PromptPage renders as expected with additional scripts 1`] = `"ElasticMockedFonts

    Some Title

    Some Body
    Action#1
    Action#2
    "`; +exports[`PromptPage renders as expected with additional scripts 1`] = `"ElasticMockedFonts

    Some Title

    Some Body
    Action#1
    Action#2
    "`; -exports[`PromptPage renders as expected without additional scripts 1`] = `"ElasticMockedFonts

    Some Title

    Some Body
    Action#1
    Action#2
    "`; +exports[`PromptPage renders as expected without additional scripts 1`] = `"ElasticMockedFonts

    Some Title

    Some Body
    Action#1
    Action#2
    "`; diff --git a/x-pack/plugins/security/server/authentication/__snapshots__/unauthenticated_page.test.tsx.snap b/x-pack/plugins/security/server/authentication/__snapshots__/unauthenticated_page.test.tsx.snap index b16535269e1c9..d7be0e5f720a5 100644 --- a/x-pack/plugins/security/server/authentication/__snapshots__/unauthenticated_page.test.tsx.snap +++ b/x-pack/plugins/security/server/authentication/__snapshots__/unauthenticated_page.test.tsx.snap @@ -1,5 +1,5 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`UnauthenticatedPage renders as expected 1`] = `"ElasticMockedFonts

    We hit an authentication error

    Try logging in again, and if the problem persists, contact your system administrator.

    "`; +exports[`UnauthenticatedPage renders as expected 1`] = `"ElasticMockedFonts

    We hit an authentication error

    Try logging in again, and if the problem persists, contact your system administrator.

    "`; -exports[`UnauthenticatedPage renders as expected with custom title 1`] = `"My Company NameMockedFonts

    We hit an authentication error

    Try logging in again, and if the problem persists, contact your system administrator.

    "`; +exports[`UnauthenticatedPage renders as expected with custom title 1`] = `"My Company NameMockedFonts

    We hit an authentication error

    Try logging in again, and if the problem persists, contact your system administrator.

    "`; diff --git a/x-pack/plugins/security/server/authorization/__snapshots__/reset_session_page.test.tsx.snap b/x-pack/plugins/security/server/authorization/__snapshots__/reset_session_page.test.tsx.snap index 255cc8b4963a0..f66f33000de55 100644 --- a/x-pack/plugins/security/server/authorization/__snapshots__/reset_session_page.test.tsx.snap +++ b/x-pack/plugins/security/server/authorization/__snapshots__/reset_session_page.test.tsx.snap @@ -1,5 +1,5 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`ResetSessionPage renders as expected 1`] = `"ElasticMockedFonts

    You do not have permission to access the requested page

    Either go back to the previous page or log in as a different user.

    "`; +exports[`ResetSessionPage renders as expected 1`] = `"ElasticMockedFonts

    You do not have permission to access the requested page

    Either go back to the previous page or log in as a different user.

    "`; -exports[`ResetSessionPage renders as expected with custom page title 1`] = `"My Company NameMockedFonts

    You do not have permission to access the requested page

    Either go back to the previous page or log in as a different user.

    "`; +exports[`ResetSessionPage renders as expected with custom page title 1`] = `"My Company NameMockedFonts

    You do not have permission to access the requested page

    Either go back to the previous page or log in as a different user.

    "`; diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/data_providers/__tests__/add_data_provider_popover.test.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/data_providers/__tests__/add_data_provider_popover.test.tsx index b08ac9109f3f4..3fbbceecc25e4 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/data_providers/__tests__/add_data_provider_popover.test.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/data_providers/__tests__/add_data_provider_popover.test.tsx @@ -6,8 +6,9 @@ */ import React from 'react'; +import { waitForEuiPopoverOpen, waitForEuiPopoverClose } from '@elastic/eui/lib/test/rtl'; import { AddDataProviderPopover } from '../add_data_provider_popover'; -import { render, screen, fireEvent, waitFor } from '@testing-library/react'; +import { render, screen, fireEvent } from '@testing-library/react'; import { TestProvidersComponent } from '../../../../../common/mock/test_providers'; import { mockBrowserFields } from '../../../../../common/containers/source/mock'; @@ -29,9 +30,7 @@ describe('Testing AddDataProviderPopover', () => { ); clickOnAddField(); - await waitFor(() => { - expect(screen.getByRole('dialog')).toBeVisible(); - }); + await waitForEuiPopoverOpen(); }); it('Test Popover goes away after clicking again on add field', async () => { @@ -42,14 +41,9 @@ describe('Testing AddDataProviderPopover', () => { ); clickOnAddField(); - await waitFor(() => { - expect(screen.getByRole('dialog')).toBeVisible(); - }); + await waitForEuiPopoverOpen(); clickOnAddField(); - - await waitFor(() => { - expect(screen.queryByRole('dialog')).not.toBeInTheDocument(); - }); + await waitForEuiPopoverClose(); }); }); diff --git a/x-pack/plugins/translations/translations/fr-FR.json b/x-pack/plugins/translations/translations/fr-FR.json index f9ed961ecc9de..f86c6bcc9b74e 100644 --- a/x-pack/plugins/translations/translations/fr-FR.json +++ b/x-pack/plugins/translations/translations/fr-FR.json @@ -536,7 +536,6 @@ "core.euiBottomBar.customScreenReaderAnnouncement": "Il y a un nouveau repère de région appelé {landmarkHeading} avec des commandes de niveau de page à la fin du document.", "core.euiCodeBlockAnnotations.ariaLabel": "Cliquez pour afficher une annotation de code pour la ligne {lineNumber}", "core.euiColorPickerSwatch.ariaLabel": "Sélectionner {color} comme couleur", - "core.euiColorStops.screenReaderAnnouncement": "{label} : {readOnly} {disabled} Sélecteur d'arrêt de couleur. Chaque arrêt consiste en un nombre et en une valeur de couleur correspondante. Utilisez les flèches haut et bas pour sélectionner les arrêts. Appuyez sur Entrée pour créer un nouvel arrêt.", "core.euiColumnActions.sort": "Trier {schemaLabel}", "core.euiColumnSelector.buttonActivePlural": "{numberOfHiddenFields} colonnes masquées", "core.euiColumnSelector.buttonActiveSingular": "{numberOfHiddenFields} colonne masquée", @@ -676,12 +675,6 @@ "core.euiColorPicker.openLabel": "Appuyez sur Échap pour fermer la fenêtre contextuelle.", "core.euiColorPicker.popoverLabel": "Boîte de dialogue de sélection de couleur", "core.euiColorPicker.transparent": "Transparent", - "core.euiColorStopThumb.buttonAriaLabel": "Appuyez sur Entrée pour modifier cet arrêt. Appuyez sur Échap pour revenir au groupe.", - "core.euiColorStopThumb.buttonTitle": "Cliquez pour modifier, faites glisser pour repositionner.", - "core.euiColorStopThumb.removeLabel": "Supprimer cet arrêt", - "core.euiColorStopThumb.screenReaderAnnouncement": "La fenêtre contextuelle qui vient de s’ouvrir contient un formulaire de modification d'arrêt de couleur. Appuyez sur Tab pour parcourir les commandes du formulaire ou sur Échap pour fermer la fenêtre.", - "core.euiColorStopThumb.stopErrorMessage": "Valeur hors limites", - "core.euiColorStopThumb.stopLabel": "Valeur d'arrêt", "core.euiColumnActions.hideColumn": "Masquer la colonne", "core.euiColumnActions.moveLeft": "Déplacer vers la gauche", "core.euiColumnActions.moveRight": "Déplacer vers la droite", @@ -871,12 +864,6 @@ "core.euiSelectableTemplateSitewide.onFocusBadgeGoTo": "Atteindre", "core.euiSelectableTemplateSitewide.searchPlaceholder": "Rechercher tout...", "core.euiStat.loadingText": "Statistiques en cours de chargement", - "core.euiSuggest.stateLoading": "État : chargement.", - "core.euiSuggest.stateSaved": "État : enregistré.", - "core.euiSuggest.stateSavedTooltip": "Enregistré.", - "core.euiSuggest.stateUnchanged": "État : non modifié.", - "core.euiSuggest.stateUnsaved": "État : non enregistré.", - "core.euiSuggest.stateUnsavedTooltip": "Les modifications n'ont pas été enregistrées.", "core.euiSuperSelect.ariaLabel": "Sélectionner la zone de liste", "core.euiSuperSelect.screenReaderAnnouncement": "Vous êtes dans un sélecteur de formulaires et vous devez sélectionner une seule option. Utilisez les flèches vers le haut et vers le bas pour naviguer, ou appuyez sur Échap pour fermer.", "core.euiSuperUpdateButton.cannotUpdateTooltip": "Mise à jour impossible", diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index 1b553f1774fee..4f59b7c0647fe 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -536,7 +536,6 @@ "core.euiBottomBar.customScreenReaderAnnouncement": "ドキュメントの最後には、{landmarkHeading}という新しいリージョンランドマークとページレベルのコントロールがあります。", "core.euiCodeBlockAnnotations.ariaLabel": "クリックすると、行番号{lineNumber}のコード注釈が表示されます", "core.euiColorPickerSwatch.ariaLabel": "{color}を色として選択します", - "core.euiColorStops.screenReaderAnnouncement": "{label}:{readOnly}{disabled}カラーストップピッカー。各終了には数値と対応するカラー値があります。上下矢印キーを使用して、個別の終了を選択します。Enterキーを押すと、新しい終了を作成します。", "core.euiColumnActions.sort": "{schemaLabel}の並べ替え", "core.euiColumnSelector.buttonActivePlural": "{numberOfHiddenFields}列が非表示です", "core.euiColumnSelector.buttonActiveSingular": "{numberOfHiddenFields}列が非表示です", @@ -690,12 +689,6 @@ "core.euiColorPicker.openLabel": "Escapeキーを押すと、ポップオーバーを閉じます", "core.euiColorPicker.popoverLabel": "色選択ダイアログ", "core.euiColorPicker.transparent": "透明", - "core.euiColorStopThumb.buttonAriaLabel": "Enterキーを押すと、この点を変更します。Escapeキーを押すと、グループにフォーカスします", - "core.euiColorStopThumb.buttonTitle": "クリックすると編集できます。ドラッグすると再配置できます", - "core.euiColorStopThumb.removeLabel": "この終了を削除", - "core.euiColorStopThumb.screenReaderAnnouncement": "カラー終了編集フォームのポップアップが開きました。Tabを押してフォームコントロールを閲覧するか、Escでこのポップアップを閉じます。", - "core.euiColorStopThumb.stopErrorMessage": "値が範囲外です", - "core.euiColorStopThumb.stopLabel": "点値", "core.euiColumnActions.hideColumn": "列を非表示", "core.euiColumnActions.moveLeft": "左に移動", "core.euiColumnActions.moveRight": "右に移動", @@ -885,12 +878,6 @@ "core.euiSelectableTemplateSitewide.onFocusBadgeGoTo": "移動:", "core.euiSelectableTemplateSitewide.searchPlaceholder": "検索しています...", "core.euiStat.loadingText": "統計を読み込み中です", - "core.euiSuggest.stateLoading": "状態:読み込み中。", - "core.euiSuggest.stateSaved": "状態:保存済み。", - "core.euiSuggest.stateSavedTooltip": "保存されました。", - "core.euiSuggest.stateUnchanged": "状態:未変更。", - "core.euiSuggest.stateUnsaved": "状態:未保存。", - "core.euiSuggest.stateUnsavedTooltip": "変更は保存されていません。", "core.euiSuperSelect.ariaLabel": "リストボックスを選択", "core.euiSuperSelect.screenReaderAnnouncement": "フォームセレクターを使用中で、1 つのオプションを選択する必要があります。移動するには上下矢印キーを使用し、閉じるにはEscキーを押します。", "core.euiSuperUpdateButton.cannotUpdateTooltip": "アップデートできません", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index e7cd86ac59572..3c360525d42f3 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -536,7 +536,6 @@ "core.euiBottomBar.customScreenReaderAnnouncement": "有称作 {landmarkHeading} 且页面级别控件位于文档结尾的新地区地标。", "core.euiCodeBlockAnnotations.ariaLabel": "单击以查看行 {lineNumber} 的代码注释", "core.euiColorPickerSwatch.ariaLabel": "将 {color} 选为颜色", - "core.euiColorStops.screenReaderAnnouncement": "{label}:{readOnly} {disabled} 颜色停止点选取器。每个停止点由数字和相应颜色值构成。使用向下和向上箭头键选择单个停止点。按 Enter 键创建新的停止点。", "core.euiColumnActions.sort": "排序 {schemaLabel}", "core.euiColumnSelector.buttonActivePlural": "{numberOfHiddenFields} 列已隐藏", "core.euiColumnSelector.buttonActiveSingular": "{numberOfHiddenFields} 列已隐藏", @@ -690,12 +689,6 @@ "core.euiColorPicker.openLabel": "按 Esc 键关闭弹出框", "core.euiColorPicker.popoverLabel": "颜色选择对话框", "core.euiColorPicker.transparent": "透明", - "core.euiColorStopThumb.buttonAriaLabel": "按 Enter 键修改此停止点。按 Esc 键聚焦该组", - "core.euiColorStopThumb.buttonTitle": "单击编辑,拖动重新定位", - "core.euiColorStopThumb.removeLabel": "删除此停止点", - "core.euiColorStopThumb.screenReaderAnnouncement": "打开颜色停止点编辑表单的弹出式窗口。按 Tab 键正向依次选择表单控件或按 Esc 键关闭此弹出式窗口。", - "core.euiColorStopThumb.stopErrorMessage": "值超出范围", - "core.euiColorStopThumb.stopLabel": "停止点值", "core.euiColumnActions.hideColumn": "隐藏列", "core.euiColumnActions.moveLeft": "左移", "core.euiColumnActions.moveRight": "右移", @@ -885,12 +878,6 @@ "core.euiSelectableTemplateSitewide.onFocusBadgeGoTo": "前往", "core.euiSelectableTemplateSitewide.searchPlaceholder": "搜索任何内容......", "core.euiStat.loadingText": "统计正在加载", - "core.euiSuggest.stateLoading": "状态:正在加载。", - "core.euiSuggest.stateSaved": "状态:已保存。", - "core.euiSuggest.stateSavedTooltip": "已保存。", - "core.euiSuggest.stateUnchanged": "状态:未更改。", - "core.euiSuggest.stateUnsaved": "状态:未保存。", - "core.euiSuggest.stateUnsavedTooltip": "更改尚未保存。", "core.euiSuperSelect.ariaLabel": "选择列表框", "core.euiSuperSelect.screenReaderAnnouncement": "您位于表单选择器中,必须选择单个选项。使用向上和向下箭头键导航,使用 Esc 键关闭。", "core.euiSuperUpdateButton.cannotUpdateTooltip": "无法更新", diff --git a/x-pack/test/security_functional/tests/login_selector/reset_session_page.ts b/x-pack/test/security_functional/tests/login_selector/reset_session_page.ts index e4a9321b4b6f7..4d7eb666a4bc3 100644 --- a/x-pack/test/security_functional/tests/login_selector/reset_session_page.ts +++ b/x-pack/test/security_functional/tests/login_selector/reset_session_page.ts @@ -49,7 +49,7 @@ export default function ({ getService, getPageObjects, updateBaselines }: FtrPro 'reset_session_page', updateBaselines ); - expect(percentDifference).to.be.lessThan(0.022); + expect(percentDifference).to.be.lessThan(0.029); }); }); } diff --git a/yarn.lock b/yarn.lock index 8aec5b33e6fc5..1970525b853e0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1603,10 +1603,10 @@ resolved "https://registry.yarnpkg.com/@elastic/eslint-plugin-eui/-/eslint-plugin-eui-0.0.2.tgz#56b9ef03984a05cc213772ae3713ea8ef47b0314" integrity sha512-IoxURM5zraoQ7C8f+mJb9HYSENiZGgRVcG4tLQxE61yHNNRDXtGDWTZh8N1KIHcsqN1CEPETjuzBXkJYF/fDiQ== -"@elastic/eui@88.5.4": - version "88.5.4" - resolved "https://registry.yarnpkg.com/@elastic/eui/-/eui-88.5.4.tgz#7bfb1b0f9b49d745d98cfd3a912784b7f25626bd" - integrity sha512-1aq//kTcwuyXeH48kgG91i+4qlzreZUaLfpfQ0Lxcfq09fmJYqNjJLFnCE8f5zj1vIiEEdINywkr4Bk64VIoVQ== +"@elastic/eui@89.0.0": + version "89.0.0" + resolved "https://registry.yarnpkg.com/@elastic/eui/-/eui-89.0.0.tgz#673c1aeecd875ea2ad51dffade4ffea2d3cea4c0" + integrity sha512-wE3GaGjPVGHNeuCsJ3lXwDlbTeXPQvz69I00EWkHyoJoKDXk/2i7sRGIXYlTNWZ9ppwloBCPyPAKW71jiN8JBQ== dependencies: "@hello-pangea/dnd" "^16.3.0" "@types/lodash" "^4.14.198" From 4312417c20708c7cbaacb46afdf362e476819da8 Mon Sep 17 00:00:00 2001 From: Nicolas Chaulet Date: Wed, 11 Oct 2023 17:56:44 -0400 Subject: [PATCH 32/79] [Fleet] Allow to exclude packages (#168645) --- x-pack/plugins/fleet/common/types/index.ts | 1 + x-pack/plugins/fleet/server/config.ts | 2 ++ .../server/services/epm/filtered_packages.ts | 9 ++++-- .../epm/packages/_install_package.test.ts | 3 ++ .../server/services/epm/packages/get.test.ts | 30 +++++++++++++++++++ 5 files changed, 43 insertions(+), 2 deletions(-) diff --git a/x-pack/plugins/fleet/common/types/index.ts b/x-pack/plugins/fleet/common/types/index.ts index fc2ad652aae9b..2deac11481473 100644 --- a/x-pack/plugins/fleet/common/types/index.ts +++ b/x-pack/plugins/fleet/common/types/index.ts @@ -60,6 +60,7 @@ export interface FleetConfigType { min?: string; max?: string; }; + excludePackages: string[]; }; }; createArtifactsBulkBatchSize?: number; diff --git a/x-pack/plugins/fleet/server/config.ts b/x-pack/plugins/fleet/server/config.ts index 8426e46a0814d..e6d007c058b74 100644 --- a/x-pack/plugins/fleet/server/config.ts +++ b/x-pack/plugins/fleet/server/config.ts @@ -193,6 +193,7 @@ export const config: PluginConfigDescriptor = { registry: schema.object( { kibanaVersionCheckEnabled: schema.boolean({ defaultValue: true }), + excludePackages: schema.arrayOf(schema.string(), { defaultValue: [] }), spec: schema.object( { min: schema.maybe(schema.string()), @@ -221,6 +222,7 @@ export const config: PluginConfigDescriptor = { defaultValue: { kibanaVersionCheckEnabled: true, capabilities: [], + excludePackages: [], spec: { max: REGISTRY_SPEC_MAX_VERSION, }, diff --git a/x-pack/plugins/fleet/server/services/epm/filtered_packages.ts b/x-pack/plugins/fleet/server/services/epm/filtered_packages.ts index b6b6e54098f6c..696554a1451a4 100644 --- a/x-pack/plugins/fleet/server/services/epm/filtered_packages.ts +++ b/x-pack/plugins/fleet/server/services/epm/filtered_packages.ts @@ -15,7 +15,10 @@ export function getFilteredSearchPackages() { if (shouldFilterFleetServer) { filtered.push(FLEET_SERVER_PACKAGE); } - return filtered; + + const excludePackages = appContextService.getConfig()?.internal?.registry?.excludePackages ?? []; + + return filtered.concat(excludePackages); } export function getFilteredInstallPackages() { @@ -25,5 +28,7 @@ export function getFilteredInstallPackages() { if (shouldFilterFleetServer) { filtered.push(FLEET_SERVER_PACKAGE); } - return filtered; + const excludePackages = appContextService.getConfig()?.internal?.registry?.excludePackages ?? []; + + return filtered.concat(excludePackages); } diff --git a/x-pack/plugins/fleet/server/services/epm/packages/_install_package.test.ts b/x-pack/plugins/fleet/server/services/epm/packages/_install_package.test.ts index af3460e266af1..4402db72b86a9 100644 --- a/x-pack/plugins/fleet/server/services/epm/packages/_install_package.test.ts +++ b/x-pack/plugins/fleet/server/services/epm/packages/_install_package.test.ts @@ -139,6 +139,7 @@ describe('_installPackage', () => { registry: { kibanaVersionCheckEnabled: true, capabilities: [], + excludePackages: [], }, }, }) @@ -197,6 +198,7 @@ describe('_installPackage', () => { registry: { kibanaVersionCheckEnabled: true, capabilities: [], + excludePackages: [], }, }, }) @@ -271,6 +273,7 @@ describe('_installPackage', () => { registry: { kibanaVersionCheckEnabled: true, capabilities: [], + excludePackages: [], }, }, }) diff --git a/x-pack/plugins/fleet/server/services/epm/packages/get.test.ts b/x-pack/plugins/fleet/server/services/epm/packages/get.test.ts index 5d1101ecdf573..b261ccd65b5f9 100644 --- a/x-pack/plugins/fleet/server/services/epm/packages/get.test.ts +++ b/x-pack/plugins/fleet/server/services/epm/packages/get.test.ts @@ -510,6 +510,36 @@ test: invalid manifest }); expect(packages.find((item) => item.id === 'fleet_server')).toBeUndefined(); }); + + it('should filter packages configured in xpack.fleet.internal.registry.excludePackages', async () => { + const mockContract = createAppContextStartContractMock({ + internal: { + registry: { + excludePackages: ['nginx'], + }, + }, + } as any); + appContextService.start(mockContract); + + const soClient = savedObjectsClientMock.create(); + soClient.find.mockResolvedValue({ + saved_objects: [ + { + id: 'nginx', + attributes: { + name: 'nginx', + version: '0.0.1', + install_source: 'upload', + install_version: '0.0.1', + }, + }, + ], + } as any); + const packages = await getPackages({ + savedObjectsClient: soClient, + }); + expect(packages.find((item) => item.id === 'nginx')).toBeUndefined(); + }); }); describe('getInstalledPackages', () => { From 02392fe9a25e3102414d1eeae37d66fdfcc1ba1b Mon Sep 17 00:00:00 2001 From: Tiago Costa Date: Wed, 11 Oct 2023 23:21:22 +0100 Subject: [PATCH 33/79] chore(NA): upgrade chromedriver to v117 (#168627) This PR upgrades chromedriver into the latest version available. --- package.json | 4 ++-- yarn.lock | 16 ++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index dea9b2710f64b..b73a9eb4c779c 100644 --- a/package.json +++ b/package.json @@ -1288,7 +1288,7 @@ "@types/byte-size": "^8.1.0", "@types/chance": "^1.0.0", "@types/chroma-js": "^2.1.0", - "@types/chromedriver": "^81.0.1", + "@types/chromedriver": "^81.0.2", "@types/classnames": "^2.2.9", "@types/color": "^3.0.3", "@types/compression-webpack-plugin": "^2.0.2", @@ -1451,7 +1451,7 @@ "blob-polyfill": "^7.0.20220408", "callsites": "^3.1.0", "chance": "1.0.18", - "chromedriver": "^116.0.0", + "chromedriver": "^117.0.3", "clean-webpack-plugin": "^3.0.0", "cli-table3": "^0.6.1", "compression-webpack-plugin": "^4.0.0", diff --git a/yarn.lock b/yarn.lock index 1970525b853e0..9fb4f5f8d852b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8696,10 +8696,10 @@ resolved "https://registry.yarnpkg.com/@types/chroma-js/-/chroma-js-2.1.3.tgz#0b03d737ff28fad10eb884e0c6cedd5ffdc4ba0a" integrity sha512-1xGPhoSGY1CPmXLCBcjVZSQinFjL26vlR8ZqprsBWiFyED4JacJJ9zHhh5aaUXqbY9B37mKQ73nlydVAXmr1+g== -"@types/chromedriver@^81.0.1": - version "81.0.1" - resolved "https://registry.yarnpkg.com/@types/chromedriver/-/chromedriver-81.0.1.tgz#bff3e4cdc7830dc0f115a9c0404f6979771064d4" - integrity sha512-I7ma6bBzfWc5YiMV/OZ6lYMZIANAwGbDH+QRYKnbXRptdAvUhSoFP5iHzQHas6QZCRDtefMvbxCjySUyXhxafQ== +"@types/chromedriver@^81.0.2": + version "81.0.2" + resolved "https://registry.yarnpkg.com/@types/chromedriver/-/chromedriver-81.0.2.tgz#b01a1007f9b39804e8ebaed07b2b86a33a21e121" + integrity sha512-sWozcf88uN5B5hh9wuLupSY1JRuN551NjhbNTK+4DGp1c1qiQGprpPy+hJkWuckQcEzyDAN3BbOezXfefWAI/Q== dependencies: "@types/node" "*" @@ -12795,10 +12795,10 @@ chrome-trace-event@^1.0.2: dependencies: tslib "^1.9.0" -chromedriver@^116.0.0: - version "116.0.0" - resolved "https://registry.yarnpkg.com/chromedriver/-/chromedriver-116.0.0.tgz#3f5d07b5427953270461791651d7b68cb6afe9fe" - integrity sha512-/TQaRn+RUAYnVqy5Vx8VtU8DvtWosU8QLM2u7BoNM5h55PRQPXF/onHAehEi8Sj/CehdKqH50NFdiumQAUr0DQ== +chromedriver@^117.0.3: + version "117.0.3" + resolved "https://registry.yarnpkg.com/chromedriver/-/chromedriver-117.0.3.tgz#4a14cc992d572367b99b53c772adcc4c19078e1e" + integrity sha512-c2rk2eGK5zZFBJMdviUlAJfQEBuPNIKfal4+rTFVYAmrWbMPYAqPozB+rIkc1lDP/Ryw44lPiqKglrI01ILhTQ== dependencies: "@testim/chrome-version" "^1.1.3" axios "^1.4.0" From 8bd40bcfb782c5a2b9258c41cf7fe3cdedfcb69d Mon Sep 17 00:00:00 2001 From: Davis McPhee Date: Wed, 11 Oct 2023 23:19:45 -0300 Subject: [PATCH 34/79] [Data Discovery] Unskip and fix flaky Serverless examples tests (#168422) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary This PR unskips and fixes the remaining flaky Serverless examples tests. Resolves #165730. Resolves #165735. Resolves #165624. Resolves #165623. Resolves #165635. Resolves #165938. Resolves #165927. Resolves #165882. Resolves #165797. Resolves #167939. Resolves #165503. Resolves #165502. Resolves #165379. Flaky test runs: - x300: https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/3430 🟢 - x300: https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/3455 🔴 - x100: https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/3478 🟢 ### Checklist - [ ] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md) - [ ] [Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios - [ ] 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) ### 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) --- .../data_view_field_editor_example/index.ts | 3 +- .../common/examples/search/warnings.ts | 115 ++++++------------ .../search_examples/search_example.ts | 12 +- .../field_stats.ts | 16 ++- 4 files changed, 58 insertions(+), 88 deletions(-) diff --git a/x-pack/test_serverless/functional/test_suites/common/examples/data_view_field_editor_example/index.ts b/x-pack/test_serverless/functional/test_suites/common/examples/data_view_field_editor_example/index.ts index 249b0e576b589..106f504cae82b 100644 --- a/x-pack/test_serverless/functional/test_suites/common/examples/data_view_field_editor_example/index.ts +++ b/x-pack/test_serverless/functional/test_suites/common/examples/data_view_field_editor_example/index.ts @@ -23,8 +23,7 @@ export default function ({ getService, getPageObjects, loadTestFile }: FtrProvid const retry = getService('retry'); const kibanaServer = getService('kibanaServer'); - // FLAKY: https://github.com/elastic/kibana/issues/167939 - describe.skip('data view field editor example', function () { + describe('data view field editor example', function () { before(async () => { // TODO: Serverless tests require login first await PageObjects.svlCommonPage.login(); diff --git a/x-pack/test_serverless/functional/test_suites/common/examples/search/warnings.ts b/x-pack/test_serverless/functional/test_suites/common/examples/search/warnings.ts index a98cc05f0bfd3..694d1ed335c22 100644 --- a/x-pack/test_serverless/functional/test_suites/common/examples/search/warnings.ts +++ b/x-pack/test_serverless/functional/test_suites/common/examples/search/warnings.ts @@ -13,7 +13,7 @@ import type { WebElementWrapper } from '../../../../../../../test/functional/ser import type { FtrProviderContext } from '../../../../ftr_provider_context'; export default function ({ getService, getPageObjects }: FtrProviderContext) { - const PageObjects = getPageObjects(['common', 'timePicker']); + const PageObjects = getPageObjects(['common', 'timePicker', 'svlCommonPage']); const testSubjects = getService('testSubjects'); const find = getService('find'); const retry = getService('retry'); @@ -23,14 +23,9 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { const comboBox = getService('comboBox'); const kibanaServer = getService('kibanaServer'); const esArchiver = getService('esArchiver'); + const monacoEditor = getService('monacoEditor'); - // Failing: See https://github.com/elastic/kibana/issues/165623 - // FLAKY: https://github.com/elastic/kibana/issues/165379 - // FLAKY: https://github.com/elastic/kibana/issues/165502 - // FLAKY: https://github.com/elastic/kibana/issues/165503 - // FLAKY: https://github.com/elastic/kibana/issues/165624 - // FLAKY: https://github.com/elastic/kibana/issues/165635 - describe.skip('handling warnings with search source fetch', function () { + describe('handling warnings with search source fetch', function () { const dataViewTitle = 'sample-01,sample-01-rollup'; const fromTime = 'Jun 17, 2022 @ 00:00:00.000'; const toTime = 'Jun 23, 2022 @ 00:00:00.000'; @@ -51,6 +46,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }; before(async () => { + // TODO: Serverless tests require login first + await PageObjects.svlCommonPage.login(); // create rollup data log.info(`loading ${testIndex} index...`); await esArchiver.loadIfNeeded(testArchive); @@ -104,43 +101,44 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { await PageObjects.common.clearAllToasts(); }); - it('shows shard failure warning notifications by default', async () => { + it('should show search warnings as toasts', async () => { await testSubjects.click('searchSourceWithOther'); - // wait for response - toasts appear before the response is rendered - let response: estypes.SearchResponse | undefined; await retry.try(async () => { - response = await getTestJson('responseTab', 'responseCodeBlock'); - expect(response).not.to.eql({}); - }); - - // toasts - const toasts = await find.allByCssSelector(toastsSelector); - expect(toasts.length).to.be(2); - const expects = ['2 of 4 shards failed', 'Query result']; - await asyncForEach(toasts, async (t, index) => { - expect(await t.getVisibleText()).to.eql(expects[index]); + const toasts = await find.allByCssSelector(toastsSelector); + expect(toasts.length).to.be(2); + const expects = ['The data might be incomplete or wrong.', 'Query result']; + await asyncForEach(toasts, async (t, index) => { + expect(await t.getVisibleText()).to.eql(expects[index]); + }); }); // click "see full error" button in the toast - const [openShardModalButton] = await testSubjects.findAll('openShardFailureModalBtn'); + const [openShardModalButton] = await testSubjects.findAll('viewWarningBtn'); await openShardModalButton.click(); - await retry.waitFor('modal title visible', async () => { - const modalHeader = await testSubjects.find('shardFailureModalTitle'); - return (await modalHeader.getVisibleText()) === '2 of 4 shards failed'; + // request + await retry.try(async () => { + await testSubjects.click('inspectorRequestDetailRequest'); + const requestText = await monacoEditor.getCodeEditorValue(0); + expect(requestText).to.contain(testRollupField); }); - // request - await testSubjects.click('shardFailuresModalRequestButton'); - const requestBlock = await testSubjects.find('shardsFailedModalRequestBlock'); - expect(await requestBlock.getVisibleText()).to.contain(testRollupField); // response - await testSubjects.click('shardFailuresModalResponseButton'); - const responseBlock = await testSubjects.find('shardsFailedModalResponseBlock'); - expect(await responseBlock.getVisibleText()).to.contain(shardFailureReason); + await retry.try(async () => { + await testSubjects.click('inspectorRequestDetailResponse'); + const responseText = await monacoEditor.getCodeEditorValue(0); + expect(responseText).to.contain(shardFailureReason); + }); - await testSubjects.click('closeShardFailureModal'); + await testSubjects.click('euiFlyoutCloseButton'); + + // wait for response - toasts appear before the response is rendered + let response: estypes.SearchResponse | undefined; + await retry.try(async () => { + response = await getTestJson('responseTab', 'responseCodeBlock'); + expect(response).not.to.eql({}); + }); // response tab assert(response && response._shards.failures); @@ -158,7 +156,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { expect(warnings).to.eql([]); }); - it('able to handle shard failure warnings and prevent default notifications', async () => { + it('should show search warnings in results tab', async () => { await testSubjects.click('searchSourceWithoutOther'); // wait for toasts - toasts appear after the response is rendered @@ -166,53 +164,16 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { await retry.try(async () => { toasts = await find.allByCssSelector(toastsSelector); expect(toasts.length).to.be(2); - }); - const expects = ['Query result', '2 of 4 shards failed']; - await asyncForEach(toasts, async (t, index) => { - expect(await t.getVisibleText()).to.eql(expects[index]); - }); - - // click "see full error" button in the toast - const [openShardModalButton] = await testSubjects.findAll('openShardFailureModalBtn'); - await openShardModalButton.click(); - - await retry.waitFor('modal title visible', async () => { - const modalHeader = await testSubjects.find('shardFailureModalTitle'); - return (await modalHeader.getVisibleText()) === '2 of 4 shards failed'; + const expects = ['The data might be incomplete or wrong.', 'Query result']; + await asyncForEach(toasts, async (t, index) => { + expect(await t.getVisibleText()).to.eql(expects[index]); + }); }); - // request - await testSubjects.click('shardFailuresModalRequestButton'); - const requestBlock = await testSubjects.find('shardsFailedModalRequestBlock'); - expect(await requestBlock.getVisibleText()).to.contain(testRollupField); - // response - await testSubjects.click('shardFailuresModalResponseButton'); - const responseBlock = await testSubjects.find('shardsFailedModalResponseBlock'); - expect(await responseBlock.getVisibleText()).to.contain(shardFailureReason); - - await testSubjects.click('closeShardFailureModal'); - - // response tab - const response = await getTestJson('responseTab', 'responseCodeBlock'); - expect(response._shards.total).to.be(4); - expect(response._shards.successful).to.be(2); - expect(response._shards.skipped).to.be(0); - expect(response._shards.failed).to.be(2); - expect(response._shards.failures.length).to.equal(1); - expect(response._shards.failures[0].index).to.equal(testRollupIndex); - expect(response._shards.failures[0].reason.type).to.equal(shardFailureType); - expect(response._shards.failures[0].reason.reason).to.equal(shardFailureReason); - // warnings tab const warnings = await getTestJson('warningsTab', 'warningsCodeBlock'); - expect(warnings).to.eql([ - { - type: 'shard_failure', - message: '2 of 4 shards failed', - reason: { reason: shardFailureReason, type: shardFailureType }, - text: 'The data might be incomplete or wrong.', - }, - ]); + expect(warnings.length).to.be(1); + expect(warnings[0].type).to.be('incomplete'); }); }); } diff --git a/x-pack/test_serverless/functional/test_suites/common/examples/search_examples/search_example.ts b/x-pack/test_serverless/functional/test_suites/common/examples/search_examples/search_example.ts index dff9c30052905..b62987007b1c8 100644 --- a/x-pack/test_serverless/functional/test_suites/common/examples/search_examples/search_example.ts +++ b/x-pack/test_serverless/functional/test_suites/common/examples/search_examples/search_example.ts @@ -10,14 +10,17 @@ import type { FtrProviderContext } from '../../../../ftr_provider_context'; export default function ({ getService, getPageObjects }: FtrProviderContext) { const testSubjects = getService('testSubjects'); - const PageObjects = getPageObjects(['common', 'timePicker']); + const PageObjects = getPageObjects(['common', 'timePicker', 'svlCommonPage']); const retry = getService('retry'); const comboBox = getService('comboBox'); const toasts = getService('toasts'); - // Failing: See https://github.com/elastic/kibana/issues/165730 - // FLAKY: https://github.com/elastic/kibana/issues/165735 describe('Search example', () => { + before(async () => { + // TODO: Serverless tests require login first + await PageObjects.svlCommonPage.login(); + }); + describe('with bfetch', () => { testSearchExample(); }); @@ -83,7 +86,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); }); - // failing because no toasts are displayed + // TODO: This test fails in Serverless because it relies on + // `error_query` which doesn't seem to be supported in Serverless it.skip('should handle warnings', async () => { await testSubjects.click('searchWithWarning'); await retry.waitFor('', async () => { diff --git a/x-pack/test_serverless/functional/test_suites/common/examples/unified_field_list_examples/field_stats.ts b/x-pack/test_serverless/functional/test_suites/common/examples/unified_field_list_examples/field_stats.ts index aacd1352280bb..6b5529e7936eb 100644 --- a/x-pack/test_serverless/functional/test_suites/common/examples/unified_field_list_examples/field_stats.ts +++ b/x-pack/test_serverless/functional/test_suites/common/examples/unified_field_list_examples/field_stats.ts @@ -12,7 +12,13 @@ const TEST_START_TIME = 'Sep 19, 2015 @ 06:31:44.000'; const TEST_END_TIME = 'Sep 23, 2015 @ 18:31:44.000'; export default ({ getService, getPageObjects }: FtrProviderContext) => { - const PageObjects = getPageObjects(['common', 'timePicker', 'header', 'unifiedFieldList']); + const PageObjects = getPageObjects([ + 'common', + 'timePicker', + 'header', + 'unifiedFieldList', + 'svlCommonPage', + ]); const esArchiver = getService('esArchiver'); const kibanaServer = getService('kibanaServer'); const comboBox = getService('comboBox'); @@ -21,9 +27,10 @@ export default ({ getService, getPageObjects }: FtrProviderContext) => { const filterBar = getService('filterBar'); const dataViewTitle = 'logstash-2015.09.22'; - // FLAKY: https://github.com/elastic/kibana/issues/165882 - describe.skip('Field stats', () => { + describe('Field stats', () => { before(async () => { + // TODO: Serverless tests require login first + await PageObjects.svlCommonPage.login(); await kibanaServer.savedObjects.cleanStandardList(); await esArchiver.loadIfNeeded('x-pack/test/functional/es_archives/logstash_functional'); await kibanaServer.importExport.load( @@ -59,8 +66,7 @@ export default ({ getService, getPageObjects }: FtrProviderContext) => { await PageObjects.unifiedFieldList.cleanSidebarLocalStorage(); }); - // FLAKY: https://github.com/elastic/kibana/issues/165797 - describe.skip('field distribution', () => { + describe('field distribution', () => { before(async () => { await PageObjects.unifiedFieldList.toggleSidebarSection('empty'); // it will allow to render more fields in Available fields section }); From 9c0f2fc29280f7b47e9c317ffeb3945704d4f99f Mon Sep 17 00:00:00 2001 From: Tiago Costa Date: Thu, 12 Oct 2023 04:34:47 +0100 Subject: [PATCH 35/79] skip flaky suite (#168602) --- .../cypress/e2e/detection_alerts/ransomware_detection.cy.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_alerts/ransomware_detection.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_alerts/ransomware_detection.cy.ts index 807144f30f087..3f8da89072da8 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_alerts/ransomware_detection.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_alerts/ransomware_detection.cy.ts @@ -52,7 +52,8 @@ describe( }); }); - describe('Ransomware in Timelines', () => { + // FLAKY: https://github.com/elastic/kibana/issues/168602 + describe.skip('Ransomware in Timelines', () => { before(() => { login(); visitWithTimeRange(TIMELINES_URL); From af48835b431102428ea036fdc60395c4344f28f2 Mon Sep 17 00:00:00 2001 From: Tiago Costa Date: Thu, 12 Oct 2023 04:37:52 +0100 Subject: [PATCH 36/79] skip flaky suite (#165838) --- .../shared_exception_list_page/manage_lists.cy.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/exceptions/shared_exception_lists_management/shared_exception_list_page/manage_lists.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/exceptions/shared_exception_lists_management/shared_exception_list_page/manage_lists.cy.ts index 3a5e40766d72f..860bfb373bb9b 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/exceptions/shared_exception_lists_management/shared_exception_list_page/manage_lists.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/exceptions/shared_exception_lists_management/shared_exception_list_page/manage_lists.cy.ts @@ -50,7 +50,8 @@ let exceptionListResponse: Cypress.Response; // TODO: https://github.com/elastic/kibana/issues/161539 // FLAKY: https://github.com/elastic/kibana/issues/165690 -describe( +// FLAKY: https://github.com/elastic/kibana/issues/165838 +describe.skip( 'Manage lists from "Shared Exception Lists" page', { tags: ['@ess', '@serverless', '@skipInServerless'] }, () => { From 943fe16bb488c8bd4ec84d8d8024a324865c0314 Mon Sep 17 00:00:00 2001 From: Nikita Indik Date: Thu, 12 Oct 2023 06:54:49 +0200 Subject: [PATCH 37/79] [Security Solution] Wrong "Technical preview" tooltip shown for ES|QL rule type (#168397) ## Summary Alert suppression tooltip is incorrectly shown for ESQL rule type technical preview bagde. This PR removes the wrong tooltip. "Technical preview" badge is still shown. ![Screenshot 2023-10-08 at 18 57 14](https://github.com/elastic/kibana/assets/15949146/8f1ae9c5-7fc8-412e-a145-e7f73bfb1c61) Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../rule_details/rule_definition_section.tsx | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/x-pack/plugins/security_solution/public/detection_engine/rule_management/components/rule_details/rule_definition_section.tsx b/x-pack/plugins/security_solution/public/detection_engine/rule_management/components/rule_details/rule_definition_section.tsx index e32968573b6a2..1ff2eb43b744c 100644 --- a/x-pack/plugins/security_solution/public/detection_engine/rule_management/components/rule_details/rule_definition_section.tsx +++ b/x-pack/plugins/security_solution/public/detection_engine/rule_management/components/rule_details/rule_definition_section.tsx @@ -48,6 +48,7 @@ import { MlJobsDescription } from '../../../../detections/components/rules/ml_jo import { MlJobLink } from '../../../../detections/components/rules/ml_job_link/ml_job_link'; import { useSecurityJobs } from '../../../../common/components/ml_popover/hooks/use_security_jobs'; import { useKibana } from '../../../../common/lib/kibana/kibana_react'; +import { TechnicalPreviewBadge } from '../../../../detections/components/rules/technical_preview_badge'; import { BadgeList } from './badge_list'; import { DESCRIPTION_LIST_COLUMN_WIDTHS } from './constants'; import * as i18n from './translations'; @@ -212,7 +213,7 @@ const getRuleTypeDescription = (ruleType: Type) => { case 'eql': return descriptionStepI18n.EQL_TYPE_DESCRIPTION; case 'esql': - return ; + return ; case 'threat_match': return descriptionStepI18n.THREAT_MATCH_TYPE_DESCRIPTION; case 'new_terms': @@ -311,11 +312,11 @@ const ThreatMapping = ({ threatMapping }: ThreatMappingProps) => { return {description}; }; -interface TitleWithTechnicalPreviewBadgeProps { +interface AlertSuppressionTitleProps { title: string; } -const TitleWithTechnicalPreviewBadge = ({ title }: TitleWithTechnicalPreviewBadgeProps) => { +const AlertSuppressionTitle = ({ title }: AlertSuppressionTitleProps) => { const license = useLicense(); return ; @@ -542,17 +543,17 @@ const prepareDefinitionSectionListItems = ( if ('alert_suppression' in rule && rule.alert_suppression) { definitionSectionListItems.push({ - title: , + title: , description: , }); definitionSectionListItems.push({ - title: , + title: , description: , }); definitionSectionListItems.push({ - title: , + title: , description: ( Date: Thu, 12 Oct 2023 01:05:33 -0400 Subject: [PATCH 38/79] [api-docs] 2023-10-12 Daily api_docs build (#168666) Generated by https://buildkite.com/elastic/kibana-api-docs-daily/builds/488 --- api_docs/actions.mdx | 2 +- api_docs/advanced_settings.mdx | 2 +- api_docs/aiops.mdx | 2 +- api_docs/alerting.devdocs.json | 28 +-- api_docs/alerting.mdx | 2 +- api_docs/apm.mdx | 2 +- api_docs/apm_data_access.mdx | 2 +- api_docs/asset_manager.mdx | 2 +- api_docs/banners.devdocs.json | 4 +- api_docs/banners.mdx | 2 +- api_docs/bfetch.mdx | 2 +- api_docs/canvas.mdx | 2 +- api_docs/cases.devdocs.json | 20 +- api_docs/cases.mdx | 2 +- api_docs/charts.mdx | 2 +- api_docs/cloud.mdx | 2 +- api_docs/cloud_data_migration.mdx | 2 +- api_docs/cloud_defend.mdx | 2 +- api_docs/cloud_experiments.mdx | 2 +- api_docs/cloud_security_posture.mdx | 2 +- api_docs/console.mdx | 2 +- api_docs/content_management.mdx | 2 +- api_docs/controls.mdx | 2 +- api_docs/custom_integrations.mdx | 2 +- api_docs/dashboard.mdx | 2 +- api_docs/dashboard_enhanced.mdx | 2 +- api_docs/data.mdx | 2 +- api_docs/data_query.mdx | 2 +- api_docs/data_search.mdx | 2 +- api_docs/data_view_editor.mdx | 2 +- api_docs/data_view_field_editor.mdx | 2 +- api_docs/data_view_management.mdx | 2 +- api_docs/data_views.mdx | 2 +- api_docs/data_visualizer.mdx | 2 +- api_docs/deprecations_by_api.mdx | 2 +- api_docs/deprecations_by_plugin.mdx | 2 +- api_docs/deprecations_by_team.mdx | 2 +- api_docs/dev_tools.mdx | 2 +- api_docs/discover.mdx | 2 +- api_docs/discover_enhanced.mdx | 2 +- api_docs/ecs_data_quality_dashboard.mdx | 2 +- api_docs/elastic_assistant.mdx | 2 +- api_docs/embeddable.mdx | 2 +- api_docs/embeddable_enhanced.mdx | 2 +- api_docs/encrypted_saved_objects.mdx | 2 +- api_docs/enterprise_search.mdx | 2 +- api_docs/es_ui_shared.mdx | 2 +- api_docs/event_annotation.mdx | 2 +- api_docs/event_annotation_listing.mdx | 2 +- api_docs/event_log.mdx | 2 +- api_docs/exploratory_view.devdocs.json | 2 +- api_docs/exploratory_view.mdx | 2 +- api_docs/expression_error.mdx | 2 +- api_docs/expression_gauge.mdx | 2 +- api_docs/expression_heatmap.devdocs.json | 2 +- api_docs/expression_heatmap.mdx | 2 +- api_docs/expression_image.devdocs.json | 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.devdocs.json | 2 +- api_docs/expression_repeat_image.mdx | 2 +- api_docs/expression_reveal_image.mdx | 2 +- api_docs/expression_shape.devdocs.json | 4 +- api_docs/expression_shape.mdx | 2 +- api_docs/expression_tagcloud.mdx | 2 +- api_docs/expression_x_y.devdocs.json | 6 +- api_docs/expression_x_y.mdx | 2 +- api_docs/expressions.mdx | 2 +- api_docs/features.mdx | 2 +- api_docs/field_formats.mdx | 2 +- api_docs/file_upload.mdx | 2 +- api_docs/files.mdx | 2 +- api_docs/files_management.mdx | 2 +- api_docs/fleet.mdx | 2 +- api_docs/global_search.mdx | 2 +- api_docs/guided_onboarding.mdx | 2 +- api_docs/home.mdx | 2 +- api_docs/image_embeddable.mdx | 2 +- api_docs/index_lifecycle_management.mdx | 2 +- api_docs/index_management.mdx | 2 +- api_docs/infra.mdx | 2 +- api_docs/inspector.mdx | 2 +- api_docs/interactive_setup.mdx | 2 +- api_docs/kbn_ace.mdx | 2 +- api_docs/kbn_aiops_components.mdx | 2 +- api_docs/kbn_aiops_utils.mdx | 2 +- .../kbn_alerting_api_integration_helpers.mdx | 2 +- api_docs/kbn_alerting_state_types.mdx | 2 +- api_docs/kbn_alerts_as_data_utils.mdx | 2 +- api_docs/kbn_alerts_ui_shared.mdx | 2 +- api_docs/kbn_analytics.mdx | 2 +- api_docs/kbn_analytics_client.mdx | 2 +- ..._analytics_shippers_elastic_v3_browser.mdx | 2 +- ...n_analytics_shippers_elastic_v3_common.mdx | 2 +- ...n_analytics_shippers_elastic_v3_server.mdx | 2 +- api_docs/kbn_analytics_shippers_fullstory.mdx | 2 +- api_docs/kbn_analytics_shippers_gainsight.mdx | 2 +- api_docs/kbn_apm_config_loader.mdx | 2 +- api_docs/kbn_apm_synthtrace.mdx | 2 +- api_docs/kbn_apm_synthtrace_client.mdx | 2 +- api_docs/kbn_apm_utils.mdx | 2 +- api_docs/kbn_axe_config.mdx | 2 +- api_docs/kbn_cases_components.mdx | 2 +- api_docs/kbn_cell_actions.mdx | 2 +- api_docs/kbn_chart_expressions_common.mdx | 2 +- api_docs/kbn_chart_icons.mdx | 2 +- api_docs/kbn_ci_stats_core.mdx | 2 +- api_docs/kbn_ci_stats_performance_metrics.mdx | 2 +- api_docs/kbn_ci_stats_reporter.mdx | 2 +- api_docs/kbn_cli_dev_mode.mdx | 2 +- api_docs/kbn_code_editor.mdx | 2 +- api_docs/kbn_code_editor_mocks.mdx | 2 +- api_docs/kbn_coloring.mdx | 2 +- api_docs/kbn_config.mdx | 2 +- api_docs/kbn_config_mocks.mdx | 2 +- api_docs/kbn_config_schema.mdx | 2 +- .../kbn_content_management_content_editor.mdx | 2 +- ...tent_management_tabbed_table_list_view.mdx | 2 +- ...kbn_content_management_table_list_view.mdx | 2 +- ...ntent_management_table_list_view_table.mdx | 2 +- api_docs/kbn_content_management_utils.mdx | 2 +- api_docs/kbn_core_analytics_browser.mdx | 2 +- .../kbn_core_analytics_browser_internal.mdx | 2 +- api_docs/kbn_core_analytics_browser_mocks.mdx | 2 +- api_docs/kbn_core_analytics_server.mdx | 2 +- .../kbn_core_analytics_server_internal.mdx | 2 +- api_docs/kbn_core_analytics_server_mocks.mdx | 2 +- api_docs/kbn_core_application_browser.mdx | 2 +- .../kbn_core_application_browser_internal.mdx | 2 +- .../kbn_core_application_browser_mocks.mdx | 2 +- api_docs/kbn_core_application_common.mdx | 2 +- api_docs/kbn_core_apps_browser_internal.mdx | 2 +- api_docs/kbn_core_apps_browser_mocks.mdx | 2 +- api_docs/kbn_core_apps_server_internal.mdx | 2 +- api_docs/kbn_core_base_browser_mocks.mdx | 2 +- api_docs/kbn_core_base_common.mdx | 2 +- api_docs/kbn_core_base_server_internal.mdx | 2 +- api_docs/kbn_core_base_server_mocks.mdx | 2 +- .../kbn_core_capabilities_browser_mocks.mdx | 2 +- api_docs/kbn_core_capabilities_common.mdx | 2 +- api_docs/kbn_core_capabilities_server.mdx | 2 +- .../kbn_core_capabilities_server_mocks.mdx | 2 +- api_docs/kbn_core_chrome_browser.mdx | 2 +- api_docs/kbn_core_chrome_browser_mocks.mdx | 2 +- api_docs/kbn_core_config_server_internal.mdx | 2 +- api_docs/kbn_core_custom_branding_browser.mdx | 2 +- ..._core_custom_branding_browser_internal.mdx | 2 +- ...kbn_core_custom_branding_browser_mocks.mdx | 2 +- api_docs/kbn_core_custom_branding_common.mdx | 2 +- api_docs/kbn_core_custom_branding_server.mdx | 2 +- ...n_core_custom_branding_server_internal.mdx | 2 +- .../kbn_core_custom_branding_server_mocks.mdx | 2 +- api_docs/kbn_core_deprecations_browser.mdx | 2 +- ...kbn_core_deprecations_browser_internal.mdx | 2 +- .../kbn_core_deprecations_browser_mocks.mdx | 2 +- api_docs/kbn_core_deprecations_common.mdx | 2 +- api_docs/kbn_core_deprecations_server.mdx | 2 +- .../kbn_core_deprecations_server_internal.mdx | 2 +- .../kbn_core_deprecations_server_mocks.mdx | 2 +- api_docs/kbn_core_doc_links_browser.mdx | 2 +- api_docs/kbn_core_doc_links_browser_mocks.mdx | 2 +- api_docs/kbn_core_doc_links_server.mdx | 2 +- api_docs/kbn_core_doc_links_server_mocks.mdx | 2 +- ...e_elasticsearch_client_server_internal.mdx | 2 +- ...core_elasticsearch_client_server_mocks.mdx | 2 +- api_docs/kbn_core_elasticsearch_server.mdx | 2 +- ...kbn_core_elasticsearch_server_internal.mdx | 2 +- .../kbn_core_elasticsearch_server_mocks.mdx | 2 +- .../kbn_core_environment_server_internal.mdx | 2 +- .../kbn_core_environment_server_mocks.mdx | 2 +- .../kbn_core_execution_context_browser.mdx | 2 +- ...ore_execution_context_browser_internal.mdx | 2 +- ...n_core_execution_context_browser_mocks.mdx | 2 +- .../kbn_core_execution_context_common.mdx | 2 +- .../kbn_core_execution_context_server.mdx | 2 +- ...core_execution_context_server_internal.mdx | 2 +- ...bn_core_execution_context_server_mocks.mdx | 2 +- api_docs/kbn_core_fatal_errors_browser.mdx | 2 +- .../kbn_core_fatal_errors_browser_mocks.mdx | 2 +- api_docs/kbn_core_http_browser.mdx | 2 +- api_docs/kbn_core_http_browser_internal.mdx | 2 +- api_docs/kbn_core_http_browser_mocks.mdx | 2 +- api_docs/kbn_core_http_common.mdx | 2 +- .../kbn_core_http_context_server_mocks.mdx | 2 +- ...re_http_request_handler_context_server.mdx | 2 +- api_docs/kbn_core_http_resources_server.mdx | 2 +- ...bn_core_http_resources_server_internal.mdx | 2 +- .../kbn_core_http_resources_server_mocks.mdx | 2 +- .../kbn_core_http_router_server_internal.mdx | 2 +- .../kbn_core_http_router_server_mocks.mdx | 2 +- api_docs/kbn_core_http_server.devdocs.json | 60 ++--- api_docs/kbn_core_http_server.mdx | 2 +- api_docs/kbn_core_http_server_internal.mdx | 2 +- api_docs/kbn_core_http_server_mocks.mdx | 2 +- api_docs/kbn_core_i18n_browser.mdx | 2 +- api_docs/kbn_core_i18n_browser_mocks.mdx | 2 +- api_docs/kbn_core_i18n_server.mdx | 2 +- api_docs/kbn_core_i18n_server_internal.mdx | 2 +- api_docs/kbn_core_i18n_server_mocks.mdx | 2 +- ...n_core_injected_metadata_browser_mocks.mdx | 2 +- ...kbn_core_integrations_browser_internal.mdx | 2 +- .../kbn_core_integrations_browser_mocks.mdx | 2 +- api_docs/kbn_core_lifecycle_browser.mdx | 2 +- api_docs/kbn_core_lifecycle_browser_mocks.mdx | 2 +- api_docs/kbn_core_lifecycle_server.mdx | 2 +- api_docs/kbn_core_lifecycle_server_mocks.mdx | 2 +- api_docs/kbn_core_logging_browser_mocks.mdx | 2 +- api_docs/kbn_core_logging_common_internal.mdx | 2 +- api_docs/kbn_core_logging_server.mdx | 2 +- api_docs/kbn_core_logging_server_internal.mdx | 2 +- api_docs/kbn_core_logging_server_mocks.mdx | 2 +- ...ore_metrics_collectors_server_internal.mdx | 2 +- ...n_core_metrics_collectors_server_mocks.mdx | 2 +- api_docs/kbn_core_metrics_server.mdx | 2 +- api_docs/kbn_core_metrics_server_internal.mdx | 2 +- api_docs/kbn_core_metrics_server_mocks.mdx | 2 +- api_docs/kbn_core_mount_utils_browser.mdx | 2 +- api_docs/kbn_core_node_server.mdx | 2 +- api_docs/kbn_core_node_server_internal.mdx | 2 +- api_docs/kbn_core_node_server_mocks.mdx | 2 +- api_docs/kbn_core_notifications_browser.mdx | 2 +- ...bn_core_notifications_browser_internal.mdx | 2 +- .../kbn_core_notifications_browser_mocks.mdx | 2 +- api_docs/kbn_core_overlays_browser.mdx | 2 +- .../kbn_core_overlays_browser_internal.mdx | 2 +- api_docs/kbn_core_overlays_browser_mocks.mdx | 2 +- api_docs/kbn_core_plugins_browser.mdx | 2 +- api_docs/kbn_core_plugins_browser_mocks.mdx | 2 +- api_docs/kbn_core_plugins_server.mdx | 2 +- api_docs/kbn_core_plugins_server_mocks.mdx | 2 +- api_docs/kbn_core_preboot_server.mdx | 2 +- api_docs/kbn_core_preboot_server_mocks.mdx | 2 +- api_docs/kbn_core_rendering_browser_mocks.mdx | 2 +- .../kbn_core_rendering_server_internal.mdx | 2 +- api_docs/kbn_core_rendering_server_mocks.mdx | 2 +- api_docs/kbn_core_root_server_internal.mdx | 2 +- .../kbn_core_saved_objects_api_browser.mdx | 2 +- .../kbn_core_saved_objects_api_server.mdx | 2 +- ...bn_core_saved_objects_api_server_mocks.mdx | 2 +- ...ore_saved_objects_base_server_internal.mdx | 2 +- ...n_core_saved_objects_base_server_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_browser.mdx | 2 +- ...bn_core_saved_objects_browser_internal.mdx | 2 +- .../kbn_core_saved_objects_browser_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_common.mdx | 2 +- ..._objects_import_export_server_internal.mdx | 2 +- ...ved_objects_import_export_server_mocks.mdx | 2 +- ...aved_objects_migration_server_internal.mdx | 2 +- ...e_saved_objects_migration_server_mocks.mdx | 2 +- ...kbn_core_saved_objects_server.devdocs.json | 212 ++---------------- 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 +- .../kbn_core_test_helpers_model_versions.mdx | 2 +- ...n_core_test_helpers_so_type_serializer.mdx | 2 +- api_docs/kbn_core_test_helpers_test_utils.mdx | 2 +- api_docs/kbn_core_theme_browser.mdx | 2 +- api_docs/kbn_core_theme_browser_mocks.mdx | 2 +- api_docs/kbn_core_ui_settings_browser.mdx | 2 +- .../kbn_core_ui_settings_browser_internal.mdx | 2 +- .../kbn_core_ui_settings_browser_mocks.mdx | 2 +- api_docs/kbn_core_ui_settings_common.mdx | 2 +- api_docs/kbn_core_ui_settings_server.mdx | 2 +- .../kbn_core_ui_settings_server_internal.mdx | 2 +- .../kbn_core_ui_settings_server_mocks.mdx | 2 +- api_docs/kbn_core_usage_data_server.mdx | 2 +- .../kbn_core_usage_data_server_internal.mdx | 2 +- api_docs/kbn_core_usage_data_server_mocks.mdx | 2 +- api_docs/kbn_core_user_settings_server.mdx | 2 +- ...kbn_core_user_settings_server_internal.mdx | 2 +- .../kbn_core_user_settings_server_mocks.mdx | 2 +- api_docs/kbn_crypto.mdx | 2 +- api_docs/kbn_crypto_browser.mdx | 2 +- api_docs/kbn_custom_integrations.mdx | 2 +- api_docs/kbn_cypress_config.mdx | 2 +- api_docs/kbn_data_service.mdx | 2 +- api_docs/kbn_datemath.mdx | 2 +- api_docs/kbn_deeplinks_analytics.mdx | 2 +- api_docs/kbn_deeplinks_devtools.mdx | 2 +- api_docs/kbn_deeplinks_management.mdx | 2 +- api_docs/kbn_deeplinks_ml.mdx | 2 +- api_docs/kbn_deeplinks_observability.mdx | 2 +- api_docs/kbn_deeplinks_search.mdx | 2 +- api_docs/kbn_default_nav_analytics.mdx | 2 +- api_docs/kbn_default_nav_devtools.mdx | 2 +- api_docs/kbn_default_nav_management.mdx | 2 +- api_docs/kbn_default_nav_ml.mdx | 2 +- api_docs/kbn_dev_cli_errors.mdx | 2 +- api_docs/kbn_dev_cli_runner.devdocs.json | 9 +- api_docs/kbn_dev_cli_runner.mdx | 2 +- api_docs/kbn_dev_proc_runner.mdx | 2 +- api_docs/kbn_dev_utils.mdx | 2 +- api_docs/kbn_discover_utils.mdx | 2 +- api_docs/kbn_doc_links.devdocs.json | 2 +- api_docs/kbn_doc_links.mdx | 2 +- api_docs/kbn_docs_utils.mdx | 2 +- api_docs/kbn_dom_drag_drop.mdx | 2 +- api_docs/kbn_ebt_tools.mdx | 2 +- api_docs/kbn_ecs.mdx | 2 +- api_docs/kbn_ecs_data_quality_dashboard.mdx | 2 +- api_docs/kbn_elastic_assistant.mdx | 2 +- api_docs/kbn_es.mdx | 2 +- api_docs/kbn_es_archiver.mdx | 2 +- api_docs/kbn_es_errors.mdx | 2 +- api_docs/kbn_es_query.mdx | 2 +- api_docs/kbn_es_types.mdx | 2 +- api_docs/kbn_eslint_plugin_imports.mdx | 2 +- api_docs/kbn_event_annotation_common.mdx | 2 +- api_docs/kbn_event_annotation_components.mdx | 2 +- api_docs/kbn_expandable_flyout.mdx | 2 +- api_docs/kbn_field_types.mdx | 2 +- api_docs/kbn_field_utils.mdx | 2 +- api_docs/kbn_find_used_node_modules.mdx | 2 +- .../kbn_ftr_common_functional_services.mdx | 2 +- api_docs/kbn_generate.mdx | 2 +- api_docs/kbn_generate_console_definitions.mdx | 2 +- api_docs/kbn_generate_csv.mdx | 2 +- api_docs/kbn_generate_csv_types.mdx | 2 +- api_docs/kbn_guided_onboarding.mdx | 2 +- api_docs/kbn_handlebars.devdocs.json | 2 +- api_docs/kbn_handlebars.mdx | 2 +- api_docs/kbn_hapi_mocks.mdx | 2 +- api_docs/kbn_health_gateway_server.mdx | 2 +- api_docs/kbn_home_sample_data_card.mdx | 2 +- api_docs/kbn_home_sample_data_tab.mdx | 2 +- api_docs/kbn_i18n.mdx | 2 +- api_docs/kbn_i18n_react.mdx | 2 +- api_docs/kbn_import_resolver.mdx | 2 +- api_docs/kbn_infra_forge.mdx | 2 +- api_docs/kbn_interpreter.mdx | 2 +- api_docs/kbn_io_ts_utils.mdx | 2 +- api_docs/kbn_jest_serializers.mdx | 2 +- api_docs/kbn_journeys.mdx | 2 +- api_docs/kbn_json_ast.mdx | 2 +- api_docs/kbn_kibana_manifest_schema.mdx | 2 +- .../kbn_language_documentation_popover.mdx | 2 +- api_docs/kbn_lens_embeddable_utils.mdx | 2 +- api_docs/kbn_logging.mdx | 2 +- api_docs/kbn_logging_mocks.mdx | 2 +- api_docs/kbn_managed_vscode_config.mdx | 2 +- api_docs/kbn_management_cards_navigation.mdx | 2 +- ...nagement_settings_application.devdocs.json | 6 +- .../kbn_management_settings_application.mdx | 2 +- ...ngs_components_field_category.devdocs.json | 18 +- ...ent_settings_components_field_category.mdx | 4 +- ...gement_settings_components_field_input.mdx | 2 +- ...nagement_settings_components_field_row.mdx | 2 +- ...bn_management_settings_components_form.mdx | 2 +- ...n_management_settings_field_definition.mdx | 2 +- api_docs/kbn_management_settings_ids.mdx | 2 +- ...n_management_settings_section_registry.mdx | 2 +- api_docs/kbn_management_settings_types.mdx | 2 +- .../kbn_management_settings_utilities.mdx | 2 +- api_docs/kbn_management_storybook_config.mdx | 2 +- api_docs/kbn_mapbox_gl.mdx | 2 +- api_docs/kbn_maps_vector_tile_utils.mdx | 2 +- api_docs/kbn_ml_agg_utils.mdx | 2 +- api_docs/kbn_ml_anomaly_utils.mdx | 2 +- api_docs/kbn_ml_category_validator.mdx | 2 +- api_docs/kbn_ml_chi2test.mdx | 2 +- .../kbn_ml_data_frame_analytics_utils.mdx | 2 +- api_docs/kbn_ml_data_grid.mdx | 2 +- api_docs/kbn_ml_date_picker.mdx | 2 +- api_docs/kbn_ml_date_utils.mdx | 2 +- api_docs/kbn_ml_error_utils.mdx | 2 +- api_docs/kbn_ml_in_memory_table.mdx | 2 +- api_docs/kbn_ml_is_defined.mdx | 2 +- api_docs/kbn_ml_is_populated_object.mdx | 2 +- api_docs/kbn_ml_kibana_theme.mdx | 2 +- api_docs/kbn_ml_local_storage.mdx | 2 +- api_docs/kbn_ml_nested_property.mdx | 2 +- api_docs/kbn_ml_number_utils.mdx | 2 +- api_docs/kbn_ml_query_utils.mdx | 2 +- api_docs/kbn_ml_random_sampler_utils.mdx | 2 +- api_docs/kbn_ml_route_utils.mdx | 2 +- api_docs/kbn_ml_runtime_field_utils.mdx | 2 +- api_docs/kbn_ml_string_hash.mdx | 2 +- api_docs/kbn_ml_trained_models_utils.mdx | 2 +- api_docs/kbn_ml_url_state.mdx | 2 +- api_docs/kbn_monaco.mdx | 2 +- api_docs/kbn_object_versioning.mdx | 2 +- api_docs/kbn_observability_alert_details.mdx | 2 +- api_docs/kbn_openapi_generator.mdx | 2 +- api_docs/kbn_optimizer.mdx | 2 +- api_docs/kbn_optimizer_webpack_helpers.mdx | 2 +- api_docs/kbn_osquery_io_ts_types.mdx | 2 +- ..._performance_testing_dataset_extractor.mdx | 2 +- api_docs/kbn_plugin_generator.mdx | 2 +- api_docs/kbn_plugin_helpers.mdx | 2 +- api_docs/kbn_profiling_utils.mdx | 2 +- api_docs/kbn_random_sampling.mdx | 2 +- api_docs/kbn_react_field.mdx | 2 +- api_docs/kbn_react_kibana_context_common.mdx | 2 +- api_docs/kbn_react_kibana_context_render.mdx | 2 +- api_docs/kbn_react_kibana_context_root.mdx | 2 +- api_docs/kbn_react_kibana_context_styled.mdx | 2 +- api_docs/kbn_react_kibana_context_theme.mdx | 2 +- api_docs/kbn_react_kibana_mount.mdx | 2 +- api_docs/kbn_repo_file_maps.mdx | 2 +- api_docs/kbn_repo_linter.mdx | 2 +- api_docs/kbn_repo_path.mdx | 2 +- api_docs/kbn_repo_source_classifier.mdx | 2 +- api_docs/kbn_reporting_common.mdx | 2 +- api_docs/kbn_resizable_layout.mdx | 2 +- api_docs/kbn_rison.mdx | 2 +- api_docs/kbn_rrule.mdx | 2 +- api_docs/kbn_rule_data_utils.mdx | 2 +- api_docs/kbn_saved_objects_settings.mdx | 2 +- api_docs/kbn_search_api_panels.mdx | 2 +- api_docs/kbn_search_connectors.mdx | 2 +- api_docs/kbn_search_response_warnings.mdx | 2 +- api_docs/kbn_security_solution_features.mdx | 2 +- api_docs/kbn_security_solution_navigation.mdx | 2 +- api_docs/kbn_security_solution_side_nav.mdx | 2 +- ...kbn_security_solution_storybook_config.mdx | 2 +- .../kbn_securitysolution_autocomplete.mdx | 2 +- api_docs/kbn_securitysolution_data_table.mdx | 2 +- api_docs/kbn_securitysolution_ecs.mdx | 2 +- api_docs/kbn_securitysolution_es_utils.mdx | 2 +- ...ion_exception_list_components.devdocs.json | 8 +- ...ritysolution_exception_list_components.mdx | 2 +- api_docs/kbn_securitysolution_grouping.mdx | 2 +- api_docs/kbn_securitysolution_hook_utils.mdx | 2 +- ..._securitysolution_io_ts_alerting_types.mdx | 2 +- .../kbn_securitysolution_io_ts_list_types.mdx | 2 +- api_docs/kbn_securitysolution_io_ts_types.mdx | 2 +- api_docs/kbn_securitysolution_io_ts_utils.mdx | 2 +- api_docs/kbn_securitysolution_list_api.mdx | 2 +- .../kbn_securitysolution_list_constants.mdx | 2 +- api_docs/kbn_securitysolution_list_hooks.mdx | 2 +- api_docs/kbn_securitysolution_list_utils.mdx | 2 +- api_docs/kbn_securitysolution_rules.mdx | 2 +- api_docs/kbn_securitysolution_t_grid.mdx | 2 +- api_docs/kbn_securitysolution_utils.mdx | 2 +- api_docs/kbn_server_http_tools.mdx | 2 +- api_docs/kbn_server_route_repository.mdx | 2 +- api_docs/kbn_serverless_common_settings.mdx | 2 +- .../kbn_serverless_observability_settings.mdx | 2 +- api_docs/kbn_serverless_project_switcher.mdx | 2 +- api_docs/kbn_serverless_search_settings.mdx | 2 +- api_docs/kbn_serverless_security_settings.mdx | 2 +- api_docs/kbn_serverless_storybook_config.mdx | 2 +- api_docs/kbn_shared_svg.mdx | 2 +- api_docs/kbn_shared_ux_avatar_solution.mdx | 2 +- ...ared_ux_avatar_user_profile_components.mdx | 2 +- .../kbn_shared_ux_button_exit_full_screen.mdx | 2 +- ...hared_ux_button_exit_full_screen_mocks.mdx | 2 +- api_docs/kbn_shared_ux_button_toolbar.mdx | 2 +- api_docs/kbn_shared_ux_card_no_data.mdx | 2 +- api_docs/kbn_shared_ux_card_no_data_mocks.mdx | 2 +- api_docs/kbn_shared_ux_chrome_navigation.mdx | 2 +- api_docs/kbn_shared_ux_file_context.mdx | 2 +- api_docs/kbn_shared_ux_file_image.mdx | 2 +- api_docs/kbn_shared_ux_file_image_mocks.mdx | 2 +- api_docs/kbn_shared_ux_file_mocks.mdx | 2 +- api_docs/kbn_shared_ux_file_picker.mdx | 2 +- api_docs/kbn_shared_ux_file_types.mdx | 2 +- api_docs/kbn_shared_ux_file_upload.mdx | 2 +- api_docs/kbn_shared_ux_file_util.mdx | 2 +- api_docs/kbn_shared_ux_link_redirect_app.mdx | 2 +- .../kbn_shared_ux_link_redirect_app_mocks.mdx | 2 +- api_docs/kbn_shared_ux_markdown.mdx | 2 +- api_docs/kbn_shared_ux_markdown_mocks.mdx | 2 +- .../kbn_shared_ux_page_analytics_no_data.mdx | 2 +- ...shared_ux_page_analytics_no_data_mocks.mdx | 2 +- .../kbn_shared_ux_page_kibana_no_data.mdx | 2 +- ...bn_shared_ux_page_kibana_no_data_mocks.mdx | 2 +- .../kbn_shared_ux_page_kibana_template.mdx | 2 +- ...n_shared_ux_page_kibana_template_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_no_data.mdx | 2 +- .../kbn_shared_ux_page_no_data_config.mdx | 2 +- ...bn_shared_ux_page_no_data_config_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_no_data_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_solution_nav.mdx | 2 +- .../kbn_shared_ux_prompt_no_data_views.mdx | 2 +- ...n_shared_ux_prompt_no_data_views_mocks.mdx | 2 +- api_docs/kbn_shared_ux_prompt_not_found.mdx | 2 +- api_docs/kbn_shared_ux_router.mdx | 2 +- api_docs/kbn_shared_ux_router_mocks.mdx | 2 +- api_docs/kbn_shared_ux_storybook_config.mdx | 2 +- api_docs/kbn_shared_ux_storybook_mock.mdx | 2 +- api_docs/kbn_shared_ux_utility.mdx | 2 +- api_docs/kbn_slo_schema.mdx | 2 +- api_docs/kbn_some_dev_log.mdx | 2 +- api_docs/kbn_std.mdx | 2 +- api_docs/kbn_stdio_dev_helpers.mdx | 2 +- api_docs/kbn_storybook.mdx | 2 +- api_docs/kbn_subscription_tracking.mdx | 2 +- api_docs/kbn_telemetry_tools.mdx | 2 +- api_docs/kbn_test.mdx | 2 +- api_docs/kbn_test_jest_helpers.mdx | 2 +- api_docs/kbn_test_subj_selector.mdx | 2 +- api_docs/kbn_text_based_editor.mdx | 2 +- api_docs/kbn_tooling_log.mdx | 2 +- api_docs/kbn_ts_projects.mdx | 2 +- api_docs/kbn_typed_react_router_config.mdx | 2 +- api_docs/kbn_ui_actions_browser.mdx | 2 +- api_docs/kbn_ui_shared_deps_src.mdx | 2 +- api_docs/kbn_ui_theme.mdx | 2 +- api_docs/kbn_unified_data_table.mdx | 2 +- api_docs/kbn_unified_doc_viewer.mdx | 2 +- api_docs/kbn_unified_field_list.mdx | 2 +- api_docs/kbn_url_state.mdx | 2 +- api_docs/kbn_use_tracked_promise.mdx | 2 +- api_docs/kbn_user_profile_components.mdx | 2 +- api_docs/kbn_utility_types.mdx | 2 +- api_docs/kbn_utility_types_jest.mdx | 2 +- api_docs/kbn_utils.mdx | 2 +- api_docs/kbn_visualization_ui_components.mdx | 2 +- api_docs/kbn_xstate_utils.mdx | 2 +- api_docs/kbn_yarn_lock_validator.mdx | 2 +- api_docs/kibana_overview.mdx | 2 +- api_docs/kibana_react.devdocs.json | 4 +- api_docs/kibana_react.mdx | 2 +- api_docs/kibana_utils.mdx | 2 +- api_docs/kubernetes_security.mdx | 2 +- api_docs/lens.devdocs.json | 16 +- api_docs/lens.mdx | 2 +- api_docs/license_api_guard.mdx | 2 +- api_docs/license_management.mdx | 2 +- api_docs/licensing.mdx | 2 +- api_docs/links.mdx | 2 +- api_docs/lists.mdx | 2 +- api_docs/log_explorer.mdx | 2 +- api_docs/logs_shared.mdx | 2 +- api_docs/management.mdx | 2 +- api_docs/maps.mdx | 2 +- api_docs/maps_ems.mdx | 2 +- api_docs/metrics_data_access.mdx | 2 +- api_docs/ml.mdx | 2 +- api_docs/monitoring.mdx | 2 +- api_docs/monitoring_collection.mdx | 2 +- api_docs/navigation.devdocs.json | 2 +- api_docs/navigation.mdx | 2 +- api_docs/newsfeed.mdx | 2 +- api_docs/no_data_page.mdx | 2 +- api_docs/notifications.mdx | 2 +- api_docs/observability.devdocs.json | 2 +- api_docs/observability.mdx | 2 +- api_docs/observability_a_i_assistant.mdx | 2 +- api_docs/observability_log_explorer.mdx | 2 +- api_docs/observability_onboarding.mdx | 2 +- api_docs/observability_shared.mdx | 2 +- api_docs/osquery.mdx | 2 +- api_docs/painless_lab.mdx | 2 +- api_docs/plugin_directory.mdx | 8 +- api_docs/presentation_util.mdx | 2 +- api_docs/profiling.mdx | 2 +- api_docs/profiling_data_access.mdx | 2 +- api_docs/remote_clusters.mdx | 2 +- api_docs/reporting.mdx | 2 +- api_docs/rollup.mdx | 2 +- api_docs/rule_registry.mdx | 2 +- api_docs/runtime_fields.mdx | 2 +- api_docs/saved_objects.mdx | 2 +- api_docs/saved_objects_finder.mdx | 2 +- .../saved_objects_management.devdocs.json | 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/security_solution_ess.mdx | 2 +- api_docs/security_solution_serverless.mdx | 2 +- api_docs/serverless.mdx | 2 +- api_docs/serverless_observability.mdx | 2 +- api_docs/serverless_search.mdx | 2 +- api_docs/session_view.mdx | 2 +- api_docs/share.mdx | 2 +- api_docs/snapshot_restore.mdx | 2 +- api_docs/spaces.mdx | 2 +- api_docs/stack_alerts.mdx | 2 +- api_docs/stack_connectors.mdx | 2 +- api_docs/task_manager.mdx | 2 +- api_docs/telemetry.mdx | 2 +- api_docs/telemetry_collection_manager.mdx | 2 +- api_docs/telemetry_collection_xpack.mdx | 2 +- api_docs/telemetry_management_section.mdx | 2 +- api_docs/text_based_languages.mdx | 2 +- api_docs/threat_intelligence.mdx | 2 +- api_docs/timelines.mdx | 2 +- api_docs/transform.mdx | 2 +- api_docs/triggers_actions_ui.mdx | 2 +- api_docs/ui_actions.mdx | 2 +- api_docs/ui_actions_enhanced.mdx | 2 +- api_docs/unified_doc_viewer.mdx | 2 +- api_docs/unified_histogram.mdx | 2 +- api_docs/unified_search.mdx | 2 +- api_docs/unified_search_autocomplete.mdx | 2 +- api_docs/uptime.mdx | 2 +- api_docs/url_forwarding.mdx | 2 +- api_docs/usage_collection.mdx | 2 +- api_docs/ux.mdx | 2 +- api_docs/vis_default_editor.mdx | 2 +- api_docs/vis_type_gauge.mdx | 2 +- api_docs/vis_type_heatmap.mdx | 2 +- api_docs/vis_type_pie.mdx | 2 +- api_docs/vis_type_table.mdx | 2 +- api_docs/vis_type_timelion.mdx | 2 +- api_docs/vis_type_timeseries.mdx | 2 +- api_docs/vis_type_vega.mdx | 2 +- api_docs/vis_type_vislib.mdx | 2 +- api_docs/vis_type_xy.devdocs.json | 2 +- api_docs/vis_type_xy.mdx | 2 +- api_docs/visualizations.devdocs.json | 12 +- api_docs/visualizations.mdx | 2 +- 621 files changed, 723 insertions(+), 908 deletions(-) diff --git a/api_docs/actions.mdx b/api_docs/actions.mdx index 03418c9280ac5..18eef6b23d835 100644 --- a/api_docs/actions.mdx +++ b/api_docs/actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/actions title: "actions" image: https://source.unsplash.com/400x175/?github description: API docs for the actions plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'actions'] --- import actionsObj from './actions.devdocs.json'; diff --git a/api_docs/advanced_settings.mdx b/api_docs/advanced_settings.mdx index d20adca4fe963..5b24b8a76b9b2 100644 --- a/api_docs/advanced_settings.mdx +++ b/api_docs/advanced_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/advancedSettings title: "advancedSettings" image: https://source.unsplash.com/400x175/?github description: API docs for the advancedSettings plugin -date: 2023-10-11 +date: 2023-10-12 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 0c660a13b563e..6448bc18342d2 100644 --- a/api_docs/aiops.mdx +++ b/api_docs/aiops.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/aiops title: "aiops" image: https://source.unsplash.com/400x175/?github description: API docs for the aiops plugin -date: 2023-10-11 +date: 2023-10-12 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 c0f034bf871f7..05ddcbac18e52 100644 --- a/api_docs/alerting.devdocs.json +++ b/api_docs/alerting.devdocs.json @@ -4883,27 +4883,9 @@ }, " | ", "RuleWithLegacyId", - ")[]; total: number; taskIdsFailedToBeEnabled: string[]; }>; bulkDisableRules: (options: ", - "BulkOptions", - ") => Promise<{ errors: ", - { - "pluginId": "alerting", - "scope": "server", - "docId": "kibAlertingPluginApi", - "section": "def-server.BulkOperationError", - "text": "BulkOperationError" - }, - "[]; rules: (", - { - "pluginId": "alerting", - "scope": "common", - "docId": "kibAlertingPluginApi", - "section": "def-common.Rule", - "text": "Rule" - }, - " | ", - "RuleWithLegacyId", - ")[]; total: number; }>; updateApiKey: (options: { id: string; }) => Promise; enable: (options: { id: string; }) => Promise; disable: (options: { id: string; }) => Promise; snooze: (options: ", + ")[]; total: number; taskIdsFailedToBeEnabled: string[]; }>; bulkDisableRules: (options: Readonly<{ filter?: string | undefined; ids?: string[] | undefined; } & {}>) => Promise<", + "BulkDisableRulesResult", + ">>; updateApiKey: (options: { id: string; }) => Promise; enable: (options: { id: string; }) => Promise; disable: (options: { id: string; }) => Promise; snooze: (options: ", "SnoozeParams", ") => Promise; unsnooze: (options: ", "UnsnoozeParams", @@ -4941,9 +4923,7 @@ "section": "def-server.AuditLogger", "text": "AuditLogger" }, - " | undefined; getTags: (params: Readonly<{ search?: string | undefined; perPage?: number | undefined; } & { page: number; }>) => Promise<", - "GetTagsResult", - ">; getScheduleFrequency: () => Promise>; getAlertFromRaw: (params: ", + " | undefined; getTags: (params: Readonly<{ search?: string | undefined; perPage?: number | undefined; } & { page: number; }>) => Promise>; getScheduleFrequency: () => Promise>; getAlertFromRaw: (params: ", "GetAlertFromRawParams", ") => ", { diff --git a/api_docs/alerting.mdx b/api_docs/alerting.mdx index ae376ede0ea16..b7bcb786f707c 100644 --- a/api_docs/alerting.mdx +++ b/api_docs/alerting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/alerting title: "alerting" image: https://source.unsplash.com/400x175/?github description: API docs for the alerting plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'alerting'] --- import alertingObj from './alerting.devdocs.json'; diff --git a/api_docs/apm.mdx b/api_docs/apm.mdx index de95e270162e9..568292e806e7f 100644 --- a/api_docs/apm.mdx +++ b/api_docs/apm.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/apm title: "apm" image: https://source.unsplash.com/400x175/?github description: API docs for the apm plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'apm'] --- import apmObj from './apm.devdocs.json'; diff --git a/api_docs/apm_data_access.mdx b/api_docs/apm_data_access.mdx index e7eb404719d03..07318ac6f5738 100644 --- a/api_docs/apm_data_access.mdx +++ b/api_docs/apm_data_access.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/apmDataAccess title: "apmDataAccess" image: https://source.unsplash.com/400x175/?github description: API docs for the apmDataAccess plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'apmDataAccess'] --- import apmDataAccessObj from './apm_data_access.devdocs.json'; diff --git a/api_docs/asset_manager.mdx b/api_docs/asset_manager.mdx index 7dcd7a30a2cd3..e463c00fa53cc 100644 --- a/api_docs/asset_manager.mdx +++ b/api_docs/asset_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/assetManager title: "assetManager" image: https://source.unsplash.com/400x175/?github description: API docs for the assetManager plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'assetManager'] --- import assetManagerObj from './asset_manager.devdocs.json'; diff --git a/api_docs/banners.devdocs.json b/api_docs/banners.devdocs.json index ac8f2e365bb54..6bd8c557af59f 100644 --- a/api_docs/banners.devdocs.json +++ b/api_docs/banners.devdocs.json @@ -39,7 +39,7 @@ "label": "placement", "description": [], "signature": [ - "\"top\" | \"disabled\"" + "\"disabled\" | \"top\"" ], "path": "x-pack/plugins/banners/common/types.ts", "deprecated": false, @@ -137,7 +137,7 @@ "label": "BannerPlacement", "description": [], "signature": [ - "\"top\" | \"disabled\"" + "\"disabled\" | \"top\"" ], "path": "x-pack/plugins/banners/common/types.ts", "deprecated": false, diff --git a/api_docs/banners.mdx b/api_docs/banners.mdx index 768c9809ede86..48ae51ec91e05 100644 --- a/api_docs/banners.mdx +++ b/api_docs/banners.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/banners title: "banners" image: https://source.unsplash.com/400x175/?github description: API docs for the banners plugin -date: 2023-10-11 +date: 2023-10-12 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 1494f98f08aa3..056ac22d50f2d 100644 --- a/api_docs/bfetch.mdx +++ b/api_docs/bfetch.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/bfetch title: "bfetch" image: https://source.unsplash.com/400x175/?github description: API docs for the bfetch plugin -date: 2023-10-11 +date: 2023-10-12 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 8eac4812431da..9dfea4db85baf 100644 --- a/api_docs/canvas.mdx +++ b/api_docs/canvas.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/canvas title: "canvas" image: https://source.unsplash.com/400x175/?github description: API docs for the canvas plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'canvas'] --- import canvasObj from './canvas.devdocs.json'; diff --git a/api_docs/cases.devdocs.json b/api_docs/cases.devdocs.json index f4116e743359d..900da326f6ec2 100644 --- a/api_docs/cases.devdocs.json +++ b/api_docs/cases.devdocs.json @@ -380,7 +380,7 @@ "CustomFieldTypes", ".TOGGLE; value: boolean | null; } | { key: string; type: ", "CustomFieldTypes", - ".TEXT; value: string[] | null; })[] | undefined; }, \"description\" | \"title\"> | undefined; }" + ".TEXT; value: string | null; })[] | undefined; }, \"description\" | \"title\"> | undefined; }" ], "path": "x-pack/plugins/cases/public/client/ui/get_create_case_flyout.tsx", "deprecated": false, @@ -582,7 +582,7 @@ }, "; assignees: { uid: string; }[]; category: string | null; customFields: ({ key: string; type: ", "CustomFieldTypes", - ".TEXT; value: string[] | null; } | { key: string; type: ", + ".TEXT; value: string | null; } | { key: string; type: ", "CustomFieldTypes", ".TOGGLE; value: boolean | null; })[]; } & { duration: number | null; closed_at: string | null; closed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; external_service: ({ connector_id: string; } & { connector_name: string; external_id: string; external_title: string; external_url: string; pushed_at: string; pushed_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; } & { id: string; totalComment: number; totalAlerts: number; version: string; } & { comments?: ((({ comment: string; type: ", { @@ -1803,7 +1803,7 @@ }, "; assignees: { uid: string; }[]; category: string | null; customFields: ({ key: string; type: ", "CustomFieldTypes", - ".TEXT; value: string[] | null; } | { key: string; type: ", + ".TEXT; value: string | null; } | { key: string; type: ", "CustomFieldTypes", ".TOGGLE; value: boolean | null; })[]; } & { duration: number | null; closed_at: string | null; closed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; external_service: ({ connector_id: string; } & { connector_name: string; external_id: string; external_title: string; external_url: string; pushed_at: string; pushed_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; } & { id: string; totalComment: number; totalAlerts: number; version: string; } & { comments?: ((({ comment: string; type: ", { @@ -1991,7 +1991,7 @@ "CustomFieldTypes", ".TOGGLE; value: boolean | null; } | { key: string; type: ", "CustomFieldTypes", - ".TEXT; value: string[] | null; })[] | undefined; }" + ".TEXT; value: string | null; })[] | undefined; }" ], "path": "x-pack/plugins/cases/common/types/api/case/v1.ts", "deprecated": false, @@ -2080,7 +2080,7 @@ }, "; assignees: { uid: string; }[]; category: string | null; customFields: ({ key: string; type: ", "CustomFieldTypes", - ".TEXT; value: string[] | null; } | { key: string; type: ", + ".TEXT; value: string | null; } | { key: string; type: ", "CustomFieldTypes", ".TOGGLE; value: boolean | null; })[]; } & { duration: number | null; closed_at: string | null; closed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; external_service: ({ connector_id: string; } & { connector_name: string; external_id: string; external_title: string; external_url: string; pushed_at: string; pushed_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; } & { id: string; totalComment: number; totalAlerts: number; version: string; } & { comments?: ((({ comment: string; type: ", { @@ -2291,7 +2291,7 @@ }, "; assignees: { uid: string; }[]; category: string | null; customFields: ({ key: string; type: ", "CustomFieldTypes", - ".TEXT; value: string[] | null; } | { key: string; type: ", + ".TEXT; value: string | null; } | { key: string; type: ", "CustomFieldTypes", ".TOGGLE; value: boolean | null; })[]; } & { duration: number | null; closed_at: string | null; closed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; external_service: ({ connector_id: string; } & { connector_name: string; external_id: string; external_title: string; external_url: string; pushed_at: string; pushed_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; } & { id: string; totalComment: number; totalAlerts: number; version: string; } & { comments?: ((({ comment: string; type: ", { @@ -2470,7 +2470,7 @@ }, "; assignees: { uid: string; }[]; category: string | null; customFields: ({ key: string; type: ", "CustomFieldTypes", - ".TEXT; value: string[] | null; } | { key: string; type: ", + ".TEXT; value: string | null; } | { key: string; type: ", "CustomFieldTypes", ".TOGGLE; value: boolean | null; })[]; duration: number | null; closedAt: string | null; closedBy: { email: string | null | undefined; fullName: string | null | undefined; username: string | null | undefined; profileUid?: string | undefined; } | null; createdAt: string; createdBy: { email: string | null | undefined; fullName: string | null | undefined; username: string | null | undefined; profileUid?: string | undefined; }; externalService: { connectorId: string; connectorName: string; externalId: string; externalTitle: string; externalUrl: string; pushedAt: string; pushedBy: { email: string | null | undefined; fullName: string | null | undefined; username: string | null | undefined; profileUid?: string | undefined; }; } | null; updatedAt: string | null; updatedBy: { email: string | null | undefined; fullName: string | null | undefined; username: string | null | undefined; profileUid?: string | undefined; } | null; id: string; totalComment: number; totalAlerts: number; version: string; comments?: ({ comment: string; type: ", { @@ -2685,7 +2685,7 @@ }, "; assignees: { uid: string; }[]; category: string | null; customFields: ({ key: string; type: ", "CustomFieldTypes", - ".TEXT; value: string[] | null; } | { key: string; type: ", + ".TEXT; value: string | null; } | { key: string; type: ", "CustomFieldTypes", ".TOGGLE; value: boolean | null; })[]; duration: number | null; closedAt: string | null; closedBy: { email: string | null | undefined; fullName: string | null | undefined; username: string | null | undefined; profileUid?: string | undefined; } | null; createdAt: string; createdBy: { email: string | null | undefined; fullName: string | null | undefined; username: string | null | undefined; profileUid?: string | undefined; }; externalService: { connectorId: string; connectorName: string; externalId: string; externalTitle: string; externalUrl: string; pushedAt: string; pushedBy: { email: string | null | undefined; fullName: string | null | undefined; username: string | null | undefined; profileUid?: string | undefined; }; } | null; updatedAt: string | null; updatedBy: { email: string | null | undefined; fullName: string | null | undefined; username: string | null | undefined; profileUid?: string | undefined; } | null; id: string; totalComment: number; totalAlerts: number; version: string; comments?: ({ comment: string; type: ", { @@ -3082,7 +3082,7 @@ }, "; }; } | { type: \"assignees\"; payload: { assignees: { uid: string; }[]; }; } | { type: \"delete_case\"; payload: {}; } | { type: \"category\"; payload: { category: string | null; }; } | { type: \"customFields\"; payload: { customFields: ({ key: string; type: ", "CustomFieldTypes", - ".TEXT; value: string[] | null; } | { key: string; type: ", + ".TEXT; value: string | null; } | { key: string; type: ", "CustomFieldTypes", ".TOGGLE; value: boolean | null; })[]; }; } | { type: \"comment\"; payload: { comment: { type: ", { @@ -3230,7 +3230,7 @@ }, ".swimlane; fields: { caseId: string | null; } | null; } & { name: string; })); } & { assignees: { uid: string; }[]; description: string; status: string; severity: string; tags: string[]; title: string; settings: { syncAlerts: boolean; }; owner: string; } & { category?: string | null | undefined; customFields?: ({ key: string; type: ", "CustomFieldTypes", - ".TEXT; value: string[] | null; } | { key: string; type: ", + ".TEXT; value: string | null; } | { key: string; type: ", "CustomFieldTypes", ".TOGGLE; value: boolean | null; })[] | undefined; }; }) | { type: \"connector\"; payload: { connector: { id: string; } & (({ type: ", { diff --git a/api_docs/cases.mdx b/api_docs/cases.mdx index c996476881cb5..461772ce8f4fd 100644 --- a/api_docs/cases.mdx +++ b/api_docs/cases.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cases title: "cases" image: https://source.unsplash.com/400x175/?github description: API docs for the cases plugin -date: 2023-10-11 +date: 2023-10-12 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 129dd08d15c28..3d00f01f35811 100644 --- a/api_docs/charts.mdx +++ b/api_docs/charts.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/charts title: "charts" image: https://source.unsplash.com/400x175/?github description: API docs for the charts plugin -date: 2023-10-11 +date: 2023-10-12 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 1be79b9ce2937..3d03e7f4974c1 100644 --- a/api_docs/cloud.mdx +++ b/api_docs/cloud.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloud title: "cloud" image: https://source.unsplash.com/400x175/?github description: API docs for the cloud plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloud'] --- import cloudObj from './cloud.devdocs.json'; diff --git a/api_docs/cloud_data_migration.mdx b/api_docs/cloud_data_migration.mdx index 77e40b3a11b50..f8b90926bf3e0 100644 --- a/api_docs/cloud_data_migration.mdx +++ b/api_docs/cloud_data_migration.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudDataMigration title: "cloudDataMigration" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudDataMigration plugin -date: 2023-10-11 +date: 2023-10-12 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 f477dc7025e8e..be76eeb02cc3a 100644 --- a/api_docs/cloud_defend.mdx +++ b/api_docs/cloud_defend.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudDefend title: "cloudDefend" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudDefend plugin -date: 2023-10-11 +date: 2023-10-12 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 a90f4b108c3dc..098d4e54d7d15 100644 --- a/api_docs/cloud_experiments.mdx +++ b/api_docs/cloud_experiments.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudExperiments title: "cloudExperiments" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudExperiments plugin -date: 2023-10-11 +date: 2023-10-12 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 bd3103b88792c..bb537024262c8 100644 --- a/api_docs/cloud_security_posture.mdx +++ b/api_docs/cloud_security_posture.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudSecurityPosture title: "cloudSecurityPosture" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudSecurityPosture plugin -date: 2023-10-11 +date: 2023-10-12 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 a67a61fa4fbce..2a89072ad3d53 100644 --- a/api_docs/console.mdx +++ b/api_docs/console.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/console title: "console" image: https://source.unsplash.com/400x175/?github description: API docs for the console plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'console'] --- import consoleObj from './console.devdocs.json'; diff --git a/api_docs/content_management.mdx b/api_docs/content_management.mdx index 3575bc7259d63..eefab87652203 100644 --- a/api_docs/content_management.mdx +++ b/api_docs/content_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/contentManagement title: "contentManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the contentManagement plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'contentManagement'] --- import contentManagementObj from './content_management.devdocs.json'; diff --git a/api_docs/controls.mdx b/api_docs/controls.mdx index 49282a09ff2d2..5734e71ab34fd 100644 --- a/api_docs/controls.mdx +++ b/api_docs/controls.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/controls title: "controls" image: https://source.unsplash.com/400x175/?github description: API docs for the controls plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'controls'] --- import controlsObj from './controls.devdocs.json'; diff --git a/api_docs/custom_integrations.mdx b/api_docs/custom_integrations.mdx index 9df3e1cff1e29..88482645b3f1c 100644 --- a/api_docs/custom_integrations.mdx +++ b/api_docs/custom_integrations.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/customIntegrations title: "customIntegrations" image: https://source.unsplash.com/400x175/?github description: API docs for the customIntegrations plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'customIntegrations'] --- import customIntegrationsObj from './custom_integrations.devdocs.json'; diff --git a/api_docs/dashboard.mdx b/api_docs/dashboard.mdx index c95bd4575980b..b8b6b35107117 100644 --- a/api_docs/dashboard.mdx +++ b/api_docs/dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dashboard title: "dashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the dashboard plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dashboard'] --- import dashboardObj from './dashboard.devdocs.json'; diff --git a/api_docs/dashboard_enhanced.mdx b/api_docs/dashboard_enhanced.mdx index ba7492df5d144..c384b992d0bc4 100644 --- a/api_docs/dashboard_enhanced.mdx +++ b/api_docs/dashboard_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dashboardEnhanced title: "dashboardEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the dashboardEnhanced plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dashboardEnhanced'] --- import dashboardEnhancedObj from './dashboard_enhanced.devdocs.json'; diff --git a/api_docs/data.mdx b/api_docs/data.mdx index 11ebac8ce2698..6c423b32d1583 100644 --- a/api_docs/data.mdx +++ b/api_docs/data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data title: "data" image: https://source.unsplash.com/400x175/?github description: API docs for the data plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data'] --- import dataObj from './data.devdocs.json'; diff --git a/api_docs/data_query.mdx b/api_docs/data_query.mdx index 5aa548e31056d..ce1b32ab4901c 100644 --- a/api_docs/data_query.mdx +++ b/api_docs/data_query.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data-query title: "data.query" image: https://source.unsplash.com/400x175/?github description: API docs for the data.query plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data.query'] --- import dataQueryObj from './data_query.devdocs.json'; diff --git a/api_docs/data_search.mdx b/api_docs/data_search.mdx index 0d44b3b8afc1b..f8629628a5612 100644 --- a/api_docs/data_search.mdx +++ b/api_docs/data_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data-search title: "data.search" image: https://source.unsplash.com/400x175/?github description: API docs for the data.search plugin -date: 2023-10-11 +date: 2023-10-12 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 20901cd59d3bf..3ff78bc170c3b 100644 --- a/api_docs/data_view_editor.mdx +++ b/api_docs/data_view_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewEditor title: "dataViewEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewEditor plugin -date: 2023-10-11 +date: 2023-10-12 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 a88265c2b048c..f97d3ca425605 100644 --- a/api_docs/data_view_field_editor.mdx +++ b/api_docs/data_view_field_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewFieldEditor title: "dataViewFieldEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewFieldEditor plugin -date: 2023-10-11 +date: 2023-10-12 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 28e5992e96248..0cd978640fe98 100644 --- a/api_docs/data_view_management.mdx +++ b/api_docs/data_view_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewManagement title: "dataViewManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewManagement plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViewManagement'] --- import dataViewManagementObj from './data_view_management.devdocs.json'; diff --git a/api_docs/data_views.mdx b/api_docs/data_views.mdx index a03cd841b3bc5..86c6c16d076a4 100644 --- a/api_docs/data_views.mdx +++ b/api_docs/data_views.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViews title: "dataViews" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViews plugin -date: 2023-10-11 +date: 2023-10-12 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 2741975e3b73d..44681b2e10007 100644 --- a/api_docs/data_visualizer.mdx +++ b/api_docs/data_visualizer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataVisualizer title: "dataVisualizer" image: https://source.unsplash.com/400x175/?github description: API docs for the dataVisualizer plugin -date: 2023-10-11 +date: 2023-10-12 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 7735444dbd2ff..c967a5f3aa9d4 100644 --- a/api_docs/deprecations_by_api.mdx +++ b/api_docs/deprecations_by_api.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsByApi slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-api title: Deprecated API usage by API description: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by. -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/deprecations_by_plugin.mdx b/api_docs/deprecations_by_plugin.mdx index 2d4a71d58c505..a99c238f31f51 100644 --- a/api_docs/deprecations_by_plugin.mdx +++ b/api_docs/deprecations_by_plugin.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsByPlugin slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-plugin title: Deprecated API usage by plugin description: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by. -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/deprecations_by_team.mdx b/api_docs/deprecations_by_team.mdx index 050bf2380728d..b6a65938d1dd9 100644 --- a/api_docs/deprecations_by_team.mdx +++ b/api_docs/deprecations_by_team.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsDueByTeam slug: /kibana-dev-docs/api-meta/deprecations-due-by-team title: Deprecated APIs due to be removed, by team description: Lists the teams that are referencing deprecated APIs with a remove by date. -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/dev_tools.mdx b/api_docs/dev_tools.mdx index e523aea3b5afb..dcec7f6659382 100644 --- a/api_docs/dev_tools.mdx +++ b/api_docs/dev_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/devTools title: "devTools" image: https://source.unsplash.com/400x175/?github description: API docs for the devTools plugin -date: 2023-10-11 +date: 2023-10-12 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 0bb0f7235411e..a5036089786d7 100644 --- a/api_docs/discover.mdx +++ b/api_docs/discover.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discover title: "discover" image: https://source.unsplash.com/400x175/?github description: API docs for the discover plugin -date: 2023-10-11 +date: 2023-10-12 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 344565e7bee9b..6d13ea11c8c9a 100644 --- a/api_docs/discover_enhanced.mdx +++ b/api_docs/discover_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discoverEnhanced title: "discoverEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the discoverEnhanced plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discoverEnhanced'] --- import discoverEnhancedObj from './discover_enhanced.devdocs.json'; diff --git a/api_docs/ecs_data_quality_dashboard.mdx b/api_docs/ecs_data_quality_dashboard.mdx index b444b461ae102..59fc1926bd773 100644 --- a/api_docs/ecs_data_quality_dashboard.mdx +++ b/api_docs/ecs_data_quality_dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ecsDataQualityDashboard title: "ecsDataQualityDashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the ecsDataQualityDashboard plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ecsDataQualityDashboard'] --- import ecsDataQualityDashboardObj from './ecs_data_quality_dashboard.devdocs.json'; diff --git a/api_docs/elastic_assistant.mdx b/api_docs/elastic_assistant.mdx index be5721b145020..88c39d0e46fdb 100644 --- a/api_docs/elastic_assistant.mdx +++ b/api_docs/elastic_assistant.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/elasticAssistant title: "elasticAssistant" image: https://source.unsplash.com/400x175/?github description: API docs for the elasticAssistant plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'elasticAssistant'] --- import elasticAssistantObj from './elastic_assistant.devdocs.json'; diff --git a/api_docs/embeddable.mdx b/api_docs/embeddable.mdx index ce952436e09fb..d438e7ed82a94 100644 --- a/api_docs/embeddable.mdx +++ b/api_docs/embeddable.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/embeddable title: "embeddable" image: https://source.unsplash.com/400x175/?github description: API docs for the embeddable plugin -date: 2023-10-11 +date: 2023-10-12 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 168f843f7e350..e38f8e152d8f0 100644 --- a/api_docs/embeddable_enhanced.mdx +++ b/api_docs/embeddable_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/embeddableEnhanced title: "embeddableEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the embeddableEnhanced plugin -date: 2023-10-11 +date: 2023-10-12 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 8ab5dc999d8bd..d60a7a1fc20b6 100644 --- a/api_docs/encrypted_saved_objects.mdx +++ b/api_docs/encrypted_saved_objects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/encryptedSavedObjects title: "encryptedSavedObjects" image: https://source.unsplash.com/400x175/?github description: API docs for the encryptedSavedObjects plugin -date: 2023-10-11 +date: 2023-10-12 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 98e2050f37a7d..ee880baa0230c 100644 --- a/api_docs/enterprise_search.mdx +++ b/api_docs/enterprise_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/enterpriseSearch title: "enterpriseSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the enterpriseSearch plugin -date: 2023-10-11 +date: 2023-10-12 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 d0c3af318798f..84b422f167e86 100644 --- a/api_docs/es_ui_shared.mdx +++ b/api_docs/es_ui_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/esUiShared title: "esUiShared" image: https://source.unsplash.com/400x175/?github description: API docs for the esUiShared plugin -date: 2023-10-11 +date: 2023-10-12 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 63a281f9b36a6..15897e921e39c 100644 --- a/api_docs/event_annotation.mdx +++ b/api_docs/event_annotation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventAnnotation title: "eventAnnotation" image: https://source.unsplash.com/400x175/?github description: API docs for the eventAnnotation plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventAnnotation'] --- import eventAnnotationObj from './event_annotation.devdocs.json'; diff --git a/api_docs/event_annotation_listing.mdx b/api_docs/event_annotation_listing.mdx index 33d2d17ec7b70..250e4645a47d5 100644 --- a/api_docs/event_annotation_listing.mdx +++ b/api_docs/event_annotation_listing.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventAnnotationListing title: "eventAnnotationListing" image: https://source.unsplash.com/400x175/?github description: API docs for the eventAnnotationListing plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventAnnotationListing'] --- import eventAnnotationListingObj from './event_annotation_listing.devdocs.json'; diff --git a/api_docs/event_log.mdx b/api_docs/event_log.mdx index 7edc5177f7ac7..dc555f4dcea83 100644 --- a/api_docs/event_log.mdx +++ b/api_docs/event_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventLog title: "eventLog" image: https://source.unsplash.com/400x175/?github description: API docs for the eventLog plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventLog'] --- import eventLogObj from './event_log.devdocs.json'; diff --git a/api_docs/exploratory_view.devdocs.json b/api_docs/exploratory_view.devdocs.json index f6d606d389325..b90d911de10ed 100644 --- a/api_docs/exploratory_view.devdocs.json +++ b/api_docs/exploratory_view.devdocs.json @@ -797,7 +797,7 @@ "label": "align", "description": [], "signature": [ - "\"left\" | \"right\" | \"center\" | undefined" + "\"right\" | \"left\" | \"center\" | undefined" ], "path": "x-pack/plugins/exploratory_view/public/components/shared/exploratory_view/embeddable/embeddable.tsx", "deprecated": false, diff --git a/api_docs/exploratory_view.mdx b/api_docs/exploratory_view.mdx index fc8e1aac993d1..ed957b46a8c0d 100644 --- a/api_docs/exploratory_view.mdx +++ b/api_docs/exploratory_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/exploratoryView title: "exploratoryView" image: https://source.unsplash.com/400x175/?github description: API docs for the exploratoryView plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'exploratoryView'] --- import exploratoryViewObj from './exploratory_view.devdocs.json'; diff --git a/api_docs/expression_error.mdx b/api_docs/expression_error.mdx index 3a446330bc55b..87635e89a1f76 100644 --- a/api_docs/expression_error.mdx +++ b/api_docs/expression_error.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionError title: "expressionError" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionError plugin -date: 2023-10-11 +date: 2023-10-12 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 a3143841e798d..3bd1d6393a9f8 100644 --- a/api_docs/expression_gauge.mdx +++ b/api_docs/expression_gauge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionGauge title: "expressionGauge" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionGauge plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionGauge'] --- import expressionGaugeObj from './expression_gauge.devdocs.json'; diff --git a/api_docs/expression_heatmap.devdocs.json b/api_docs/expression_heatmap.devdocs.json index 5ab0bda6a74e3..d131c0eec50a3 100644 --- a/api_docs/expression_heatmap.devdocs.json +++ b/api_docs/expression_heatmap.devdocs.json @@ -1691,7 +1691,7 @@ "label": "options", "description": [], "signature": [ - "(\"top\" | \"left\" | \"right\" | \"bottom\")[]" + "(\"right\" | \"left\" | \"top\" | \"bottom\")[]" ], "path": "src/plugins/chart_expressions/expression_heatmap/common/expression_functions/heatmap_legend.ts", "deprecated": false, diff --git a/api_docs/expression_heatmap.mdx b/api_docs/expression_heatmap.mdx index 4f01f88f320ab..98a5b4f40d5e7 100644 --- a/api_docs/expression_heatmap.mdx +++ b/api_docs/expression_heatmap.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionHeatmap title: "expressionHeatmap" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionHeatmap plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionHeatmap'] --- import expressionHeatmapObj from './expression_heatmap.devdocs.json'; diff --git a/api_docs/expression_image.devdocs.json b/api_docs/expression_image.devdocs.json index ab0abc18f68ea..9d01073c26d1f 100644 --- a/api_docs/expression_image.devdocs.json +++ b/api_docs/expression_image.devdocs.json @@ -431,7 +431,7 @@ "label": "OriginString", "description": [], "signature": [ - "\"top\" | \"left\" | \"right\" | \"bottom\"" + "\"right\" | \"left\" | \"top\" | \"bottom\"" ], "path": "src/plugins/expression_image/common/types/expression_renderers.ts", "deprecated": false, diff --git a/api_docs/expression_image.mdx b/api_docs/expression_image.mdx index 5a7eeec3fe24d..3dfbebfb96858 100644 --- a/api_docs/expression_image.mdx +++ b/api_docs/expression_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionImage title: "expressionImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionImage plugin -date: 2023-10-11 +date: 2023-10-12 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 62cb4ed7771b4..7f892949c9340 100644 --- a/api_docs/expression_legacy_metric_vis.mdx +++ b/api_docs/expression_legacy_metric_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionLegacyMetricVis title: "expressionLegacyMetricVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionLegacyMetricVis plugin -date: 2023-10-11 +date: 2023-10-12 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 3be96beb9832f..6c9a6f033ab83 100644 --- a/api_docs/expression_metric.mdx +++ b/api_docs/expression_metric.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionMetric title: "expressionMetric" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionMetric plugin -date: 2023-10-11 +date: 2023-10-12 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 beedbc023109a..13bc6dc533b51 100644 --- a/api_docs/expression_metric_vis.mdx +++ b/api_docs/expression_metric_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionMetricVis title: "expressionMetricVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionMetricVis plugin -date: 2023-10-11 +date: 2023-10-12 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 8333654251bac..75e66f340ed26 100644 --- a/api_docs/expression_partition_vis.mdx +++ b/api_docs/expression_partition_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionPartitionVis title: "expressionPartitionVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionPartitionVis plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionPartitionVis'] --- import expressionPartitionVisObj from './expression_partition_vis.devdocs.json'; diff --git a/api_docs/expression_repeat_image.devdocs.json b/api_docs/expression_repeat_image.devdocs.json index 8d3f883e05c60..dcd0d54c1296c 100644 --- a/api_docs/expression_repeat_image.devdocs.json +++ b/api_docs/expression_repeat_image.devdocs.json @@ -500,7 +500,7 @@ "label": "OriginString", "description": [], "signature": [ - "\"top\" | \"left\" | \"right\" | \"bottom\"" + "\"right\" | \"left\" | \"top\" | \"bottom\"" ], "path": "src/plugins/expression_repeat_image/common/types/expression_renderers.ts", "deprecated": false, diff --git a/api_docs/expression_repeat_image.mdx b/api_docs/expression_repeat_image.mdx index 9cfe480b63ed5..8c6611da92e6e 100644 --- a/api_docs/expression_repeat_image.mdx +++ b/api_docs/expression_repeat_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionRepeatImage title: "expressionRepeatImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionRepeatImage plugin -date: 2023-10-11 +date: 2023-10-12 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 0e139a4e669e7..50c6fa3e26034 100644 --- a/api_docs/expression_reveal_image.mdx +++ b/api_docs/expression_reveal_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionRevealImage title: "expressionRevealImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionRevealImage plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionRevealImage'] --- import expressionRevealImageObj from './expression_reveal_image.devdocs.json'; diff --git a/api_docs/expression_shape.devdocs.json b/api_docs/expression_shape.devdocs.json index 06b7486608cea..8e3a2a1d04c5e 100644 --- a/api_docs/expression_shape.devdocs.json +++ b/api_docs/expression_shape.devdocs.json @@ -1599,7 +1599,7 @@ "label": "OriginString", "description": [], "signature": [ - "\"top\" | \"left\" | \"right\" | \"bottom\"" + "\"right\" | \"left\" | \"top\" | \"bottom\"" ], "path": "src/plugins/expression_shape/common/types/expression_renderers.ts", "deprecated": false, @@ -2633,7 +2633,7 @@ "label": "OriginString", "description": [], "signature": [ - "\"top\" | \"left\" | \"right\" | \"bottom\"" + "\"right\" | \"left\" | \"top\" | \"bottom\"" ], "path": "src/plugins/expression_shape/common/types/expression_renderers.ts", "deprecated": false, diff --git a/api_docs/expression_shape.mdx b/api_docs/expression_shape.mdx index c228ceb5d52d7..8c58b6962640d 100644 --- a/api_docs/expression_shape.mdx +++ b/api_docs/expression_shape.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionShape title: "expressionShape" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionShape plugin -date: 2023-10-11 +date: 2023-10-12 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 73d0138c9721e..ba95728559a15 100644 --- a/api_docs/expression_tagcloud.mdx +++ b/api_docs/expression_tagcloud.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionTagcloud title: "expressionTagcloud" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionTagcloud plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionTagcloud'] --- import expressionTagcloudObj from './expression_tagcloud.devdocs.json'; diff --git a/api_docs/expression_x_y.devdocs.json b/api_docs/expression_x_y.devdocs.json index 053521e87aa67..557d8749fb6de 100644 --- a/api_docs/expression_x_y.devdocs.json +++ b/api_docs/expression_x_y.devdocs.json @@ -904,7 +904,7 @@ "\nPosition of the legend relative to the chart" ], "signature": [ - "\"top\" | \"left\" | \"right\" | \"bottom\"" + "\"right\" | \"left\" | \"top\" | \"bottom\"" ], "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false, @@ -952,7 +952,7 @@ "\nHorizontal Alignment of the legend when it is set inside chart" ], "signature": [ - "\"left\" | \"right\" | undefined" + "\"right\" | \"left\" | undefined" ], "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false, @@ -2902,7 +2902,7 @@ "label": "IconPosition", "description": [], "signature": [ - "\"left\" | \"right\" | \"above\" | \"below\" | \"auto\"" + "\"right\" | \"left\" | \"above\" | \"below\" | \"auto\"" ], "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false, diff --git a/api_docs/expression_x_y.mdx b/api_docs/expression_x_y.mdx index 1c99836b7b362..5893208653bb8 100644 --- a/api_docs/expression_x_y.mdx +++ b/api_docs/expression_x_y.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionXY title: "expressionXY" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionXY plugin -date: 2023-10-11 +date: 2023-10-12 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 a70a34af75c82..3dc8ea14bbce0 100644 --- a/api_docs/expressions.mdx +++ b/api_docs/expressions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressions title: "expressions" image: https://source.unsplash.com/400x175/?github description: API docs for the expressions plugin -date: 2023-10-11 +date: 2023-10-12 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 a3b3aaf627c14..53f464fde04fe 100644 --- a/api_docs/features.mdx +++ b/api_docs/features.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/features title: "features" image: https://source.unsplash.com/400x175/?github description: API docs for the features plugin -date: 2023-10-11 +date: 2023-10-12 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 83a6ae4c0075b..9563c0579470c 100644 --- a/api_docs/field_formats.mdx +++ b/api_docs/field_formats.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fieldFormats title: "fieldFormats" image: https://source.unsplash.com/400x175/?github description: API docs for the fieldFormats plugin -date: 2023-10-11 +date: 2023-10-12 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 a0dac450d6ecd..631e92ca18b74 100644 --- a/api_docs/file_upload.mdx +++ b/api_docs/file_upload.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fileUpload title: "fileUpload" image: https://source.unsplash.com/400x175/?github description: API docs for the fileUpload plugin -date: 2023-10-11 +date: 2023-10-12 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 c6540d423ae60..37e3707a8eaf6 100644 --- a/api_docs/files.mdx +++ b/api_docs/files.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/files title: "files" image: https://source.unsplash.com/400x175/?github description: API docs for the files plugin -date: 2023-10-11 +date: 2023-10-12 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 c65a9f31299a7..7022f19fae12b 100644 --- a/api_docs/files_management.mdx +++ b/api_docs/files_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/filesManagement title: "filesManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the filesManagement plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'filesManagement'] --- import filesManagementObj from './files_management.devdocs.json'; diff --git a/api_docs/fleet.mdx b/api_docs/fleet.mdx index 37f19ff6a83e5..2fd6234d5ad99 100644 --- a/api_docs/fleet.mdx +++ b/api_docs/fleet.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fleet title: "fleet" image: https://source.unsplash.com/400x175/?github description: API docs for the fleet plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fleet'] --- import fleetObj from './fleet.devdocs.json'; diff --git a/api_docs/global_search.mdx b/api_docs/global_search.mdx index a533a6b9a8429..d155b9752001d 100644 --- a/api_docs/global_search.mdx +++ b/api_docs/global_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/globalSearch title: "globalSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the globalSearch plugin -date: 2023-10-11 +date: 2023-10-12 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 78ed6b993dcc9..c2214a67d4f92 100644 --- a/api_docs/guided_onboarding.mdx +++ b/api_docs/guided_onboarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/guidedOnboarding title: "guidedOnboarding" image: https://source.unsplash.com/400x175/?github description: API docs for the guidedOnboarding plugin -date: 2023-10-11 +date: 2023-10-12 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 c24a38612348b..60bcb2741c5db 100644 --- a/api_docs/home.mdx +++ b/api_docs/home.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/home title: "home" image: https://source.unsplash.com/400x175/?github description: API docs for the home plugin -date: 2023-10-11 +date: 2023-10-12 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 ba6b51493b2f8..b7314771a36a0 100644 --- a/api_docs/image_embeddable.mdx +++ b/api_docs/image_embeddable.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/imageEmbeddable title: "imageEmbeddable" image: https://source.unsplash.com/400x175/?github description: API docs for the imageEmbeddable plugin -date: 2023-10-11 +date: 2023-10-12 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 0703bd18a4b5a..a1b77604da052 100644 --- a/api_docs/index_lifecycle_management.mdx +++ b/api_docs/index_lifecycle_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/indexLifecycleManagement title: "indexLifecycleManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the indexLifecycleManagement plugin -date: 2023-10-11 +date: 2023-10-12 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 ff248c47702f1..2f5d2ff736308 100644 --- a/api_docs/index_management.mdx +++ b/api_docs/index_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/indexManagement title: "indexManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the indexManagement plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'indexManagement'] --- import indexManagementObj from './index_management.devdocs.json'; diff --git a/api_docs/infra.mdx b/api_docs/infra.mdx index 5de7b1a888bad..2b998224dafe0 100644 --- a/api_docs/infra.mdx +++ b/api_docs/infra.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/infra title: "infra" image: https://source.unsplash.com/400x175/?github description: API docs for the infra plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'infra'] --- import infraObj from './infra.devdocs.json'; diff --git a/api_docs/inspector.mdx b/api_docs/inspector.mdx index 19345610569d4..b7b8e78b1702e 100644 --- a/api_docs/inspector.mdx +++ b/api_docs/inspector.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/inspector title: "inspector" image: https://source.unsplash.com/400x175/?github description: API docs for the inspector plugin -date: 2023-10-11 +date: 2023-10-12 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 31a41e4ce43e0..ae08a35784052 100644 --- a/api_docs/interactive_setup.mdx +++ b/api_docs/interactive_setup.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/interactiveSetup title: "interactiveSetup" image: https://source.unsplash.com/400x175/?github description: API docs for the interactiveSetup plugin -date: 2023-10-11 +date: 2023-10-12 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 8d696107d0f43..742c564369e25 100644 --- a/api_docs/kbn_ace.mdx +++ b/api_docs/kbn_ace.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ace title: "@kbn/ace" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ace plugin -date: 2023-10-11 +date: 2023-10-12 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 eab08be890cca..d833b8c370707 100644 --- a/api_docs/kbn_aiops_components.mdx +++ b/api_docs/kbn_aiops_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-components title: "@kbn/aiops-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/aiops-components plugin -date: 2023-10-11 +date: 2023-10-12 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 9b25fc7c69ebc..fd5105e9e9dd5 100644 --- a/api_docs/kbn_aiops_utils.mdx +++ b/api_docs/kbn_aiops_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-utils title: "@kbn/aiops-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/aiops-utils plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-utils'] --- import kbnAiopsUtilsObj from './kbn_aiops_utils.devdocs.json'; diff --git a/api_docs/kbn_alerting_api_integration_helpers.mdx b/api_docs/kbn_alerting_api_integration_helpers.mdx index 53724c9c277c4..8acd6485e0679 100644 --- a/api_docs/kbn_alerting_api_integration_helpers.mdx +++ b/api_docs/kbn_alerting_api_integration_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerting-api-integration-helpers title: "@kbn/alerting-api-integration-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerting-api-integration-helpers plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerting-api-integration-helpers'] --- import kbnAlertingApiIntegrationHelpersObj from './kbn_alerting_api_integration_helpers.devdocs.json'; diff --git a/api_docs/kbn_alerting_state_types.mdx b/api_docs/kbn_alerting_state_types.mdx index d39293afc0d16..84b15efef89af 100644 --- a/api_docs/kbn_alerting_state_types.mdx +++ b/api_docs/kbn_alerting_state_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerting-state-types title: "@kbn/alerting-state-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerting-state-types plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerting-state-types'] --- import kbnAlertingStateTypesObj from './kbn_alerting_state_types.devdocs.json'; diff --git a/api_docs/kbn_alerts_as_data_utils.mdx b/api_docs/kbn_alerts_as_data_utils.mdx index df95049b34b84..5fe8f333b7980 100644 --- a/api_docs/kbn_alerts_as_data_utils.mdx +++ b/api_docs/kbn_alerts_as_data_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts-as-data-utils title: "@kbn/alerts-as-data-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerts-as-data-utils plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts-as-data-utils'] --- import kbnAlertsAsDataUtilsObj from './kbn_alerts_as_data_utils.devdocs.json'; diff --git a/api_docs/kbn_alerts_ui_shared.mdx b/api_docs/kbn_alerts_ui_shared.mdx index b11d265bf7a68..27cee4677a85e 100644 --- a/api_docs/kbn_alerts_ui_shared.mdx +++ b/api_docs/kbn_alerts_ui_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts-ui-shared title: "@kbn/alerts-ui-shared" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerts-ui-shared plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts-ui-shared'] --- import kbnAlertsUiSharedObj from './kbn_alerts_ui_shared.devdocs.json'; diff --git a/api_docs/kbn_analytics.mdx b/api_docs/kbn_analytics.mdx index c39ae2ac2a50e..209322cb5e9d8 100644 --- a/api_docs/kbn_analytics.mdx +++ b/api_docs/kbn_analytics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics title: "@kbn/analytics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics'] --- import kbnAnalyticsObj from './kbn_analytics.devdocs.json'; diff --git a/api_docs/kbn_analytics_client.mdx b/api_docs/kbn_analytics_client.mdx index 2f6d8a3ccbfc6..7fbed68c4e1ad 100644 --- a/api_docs/kbn_analytics_client.mdx +++ b/api_docs/kbn_analytics_client.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-client title: "@kbn/analytics-client" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-client plugin -date: 2023-10-11 +date: 2023-10-12 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 4b0a7d40c2dfd..ef5ee4d9d4290 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-browser title: "@kbn/analytics-shippers-elastic-v3-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-browser plugin -date: 2023-10-11 +date: 2023-10-12 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 8e23a9c4376e9..1dfe9e20de67a 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-common title: "@kbn/analytics-shippers-elastic-v3-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-common plugin -date: 2023-10-11 +date: 2023-10-12 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 24f875cd436b7..2502e9ab0ad2b 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-server title: "@kbn/analytics-shippers-elastic-v3-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-server plugin -date: 2023-10-11 +date: 2023-10-12 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 f4a3516c04ed4..cdc08bdcbe000 100644 --- a/api_docs/kbn_analytics_shippers_fullstory.mdx +++ b/api_docs/kbn_analytics_shippers_fullstory.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-fullstory title: "@kbn/analytics-shippers-fullstory" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-fullstory plugin -date: 2023-10-11 +date: 2023-10-12 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 72f482002f79b..edcbf71eb7e0c 100644 --- a/api_docs/kbn_analytics_shippers_gainsight.mdx +++ b/api_docs/kbn_analytics_shippers_gainsight.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-gainsight title: "@kbn/analytics-shippers-gainsight" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-gainsight plugin -date: 2023-10-11 +date: 2023-10-12 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 17bfef4c8c787..162ec11d0190d 100644 --- a/api_docs/kbn_apm_config_loader.mdx +++ b/api_docs/kbn_apm_config_loader.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-config-loader title: "@kbn/apm-config-loader" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-config-loader plugin -date: 2023-10-11 +date: 2023-10-12 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 7247d7ab3677c..83dd12e8f69e2 100644 --- a/api_docs/kbn_apm_synthtrace.mdx +++ b/api_docs/kbn_apm_synthtrace.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-synthtrace title: "@kbn/apm-synthtrace" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-synthtrace plugin -date: 2023-10-11 +date: 2023-10-12 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 f36c655257ef2..57cfcfe7494e4 100644 --- a/api_docs/kbn_apm_synthtrace_client.mdx +++ b/api_docs/kbn_apm_synthtrace_client.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-synthtrace-client title: "@kbn/apm-synthtrace-client" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-synthtrace-client plugin -date: 2023-10-11 +date: 2023-10-12 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 418dcbd7c7b2f..d1dca276aa327 100644 --- a/api_docs/kbn_apm_utils.mdx +++ b/api_docs/kbn_apm_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-utils title: "@kbn/apm-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-utils plugin -date: 2023-10-11 +date: 2023-10-12 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 793b3a530d7b7..abc766c7ccffb 100644 --- a/api_docs/kbn_axe_config.mdx +++ b/api_docs/kbn_axe_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-axe-config title: "@kbn/axe-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/axe-config plugin -date: 2023-10-11 +date: 2023-10-12 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 cf39808e26ca8..9a9d5ef16097c 100644 --- a/api_docs/kbn_cases_components.mdx +++ b/api_docs/kbn_cases_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cases-components title: "@kbn/cases-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cases-components plugin -date: 2023-10-11 +date: 2023-10-12 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 938f7e533775d..fe43ec6f8cc6f 100644 --- a/api_docs/kbn_cell_actions.mdx +++ b/api_docs/kbn_cell_actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cell-actions title: "@kbn/cell-actions" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cell-actions plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cell-actions'] --- import kbnCellActionsObj from './kbn_cell_actions.devdocs.json'; diff --git a/api_docs/kbn_chart_expressions_common.mdx b/api_docs/kbn_chart_expressions_common.mdx index 8af3aa3e1d738..ded3b25980ab3 100644 --- a/api_docs/kbn_chart_expressions_common.mdx +++ b/api_docs/kbn_chart_expressions_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-chart-expressions-common title: "@kbn/chart-expressions-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/chart-expressions-common plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/chart-expressions-common'] --- import kbnChartExpressionsCommonObj from './kbn_chart_expressions_common.devdocs.json'; diff --git a/api_docs/kbn_chart_icons.mdx b/api_docs/kbn_chart_icons.mdx index a940696036855..580f1e5dcd1db 100644 --- a/api_docs/kbn_chart_icons.mdx +++ b/api_docs/kbn_chart_icons.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-chart-icons title: "@kbn/chart-icons" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/chart-icons plugin -date: 2023-10-11 +date: 2023-10-12 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 ff50dc6501b26..fe87fc4edd785 100644 --- a/api_docs/kbn_ci_stats_core.mdx +++ b/api_docs/kbn_ci_stats_core.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-core title: "@kbn/ci-stats-core" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-core plugin -date: 2023-10-11 +date: 2023-10-12 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 39d37accaff58..286a7ba87c68d 100644 --- a/api_docs/kbn_ci_stats_performance_metrics.mdx +++ b/api_docs/kbn_ci_stats_performance_metrics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-performance-metrics title: "@kbn/ci-stats-performance-metrics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-performance-metrics plugin -date: 2023-10-11 +date: 2023-10-12 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 e9eae2f9def4b..ed3c958bb470e 100644 --- a/api_docs/kbn_ci_stats_reporter.mdx +++ b/api_docs/kbn_ci_stats_reporter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-reporter title: "@kbn/ci-stats-reporter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-reporter plugin -date: 2023-10-11 +date: 2023-10-12 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 ed1a285bf6577..2e29aaae7992b 100644 --- a/api_docs/kbn_cli_dev_mode.mdx +++ b/api_docs/kbn_cli_dev_mode.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cli-dev-mode title: "@kbn/cli-dev-mode" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cli-dev-mode plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cli-dev-mode'] --- import kbnCliDevModeObj from './kbn_cli_dev_mode.devdocs.json'; diff --git a/api_docs/kbn_code_editor.mdx b/api_docs/kbn_code_editor.mdx index 598cec2143854..f353987d4cb02 100644 --- a/api_docs/kbn_code_editor.mdx +++ b/api_docs/kbn_code_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-editor title: "@kbn/code-editor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/code-editor plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-editor'] --- import kbnCodeEditorObj from './kbn_code_editor.devdocs.json'; diff --git a/api_docs/kbn_code_editor_mocks.mdx b/api_docs/kbn_code_editor_mocks.mdx index bc07a5cfe1d88..eac12bf5914f0 100644 --- a/api_docs/kbn_code_editor_mocks.mdx +++ b/api_docs/kbn_code_editor_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-editor-mocks title: "@kbn/code-editor-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/code-editor-mocks plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-editor-mocks'] --- import kbnCodeEditorMocksObj from './kbn_code_editor_mocks.devdocs.json'; diff --git a/api_docs/kbn_coloring.mdx b/api_docs/kbn_coloring.mdx index bb1858b1799f0..688f8b67c74e8 100644 --- a/api_docs/kbn_coloring.mdx +++ b/api_docs/kbn_coloring.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-coloring title: "@kbn/coloring" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/coloring plugin -date: 2023-10-11 +date: 2023-10-12 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 7b8bb81722da7..06826988dd050 100644 --- a/api_docs/kbn_config.mdx +++ b/api_docs/kbn_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config title: "@kbn/config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config plugin -date: 2023-10-11 +date: 2023-10-12 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 0582b08a02165..dce437126a309 100644 --- a/api_docs/kbn_config_mocks.mdx +++ b/api_docs/kbn_config_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config-mocks title: "@kbn/config-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 68e92ecabb01d..6182e0f947220 100644 --- a/api_docs/kbn_config_schema.mdx +++ b/api_docs/kbn_config_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config-schema title: "@kbn/config-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config-schema plugin -date: 2023-10-11 +date: 2023-10-12 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 18581350ad6ef..87747801208a4 100644 --- a/api_docs/kbn_content_management_content_editor.mdx +++ b/api_docs/kbn_content_management_content_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-content-editor title: "@kbn/content-management-content-editor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-content-editor plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-content-editor'] --- import kbnContentManagementContentEditorObj from './kbn_content_management_content_editor.devdocs.json'; diff --git a/api_docs/kbn_content_management_tabbed_table_list_view.mdx b/api_docs/kbn_content_management_tabbed_table_list_view.mdx index 7a59f83b39171..fd9e636ec4348 100644 --- a/api_docs/kbn_content_management_tabbed_table_list_view.mdx +++ b/api_docs/kbn_content_management_tabbed_table_list_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-tabbed-table-list-view title: "@kbn/content-management-tabbed-table-list-view" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-tabbed-table-list-view plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-tabbed-table-list-view'] --- import kbnContentManagementTabbedTableListViewObj from './kbn_content_management_tabbed_table_list_view.devdocs.json'; diff --git a/api_docs/kbn_content_management_table_list_view.mdx b/api_docs/kbn_content_management_table_list_view.mdx index e8f6174bea233..7eec3aa2a7acc 100644 --- a/api_docs/kbn_content_management_table_list_view.mdx +++ b/api_docs/kbn_content_management_table_list_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-table-list-view title: "@kbn/content-management-table-list-view" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-table-list-view plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-table-list-view'] --- import kbnContentManagementTableListViewObj from './kbn_content_management_table_list_view.devdocs.json'; diff --git a/api_docs/kbn_content_management_table_list_view_table.mdx b/api_docs/kbn_content_management_table_list_view_table.mdx index 6b1b5152c7c15..fb5a25869824f 100644 --- a/api_docs/kbn_content_management_table_list_view_table.mdx +++ b/api_docs/kbn_content_management_table_list_view_table.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-table-list-view-table title: "@kbn/content-management-table-list-view-table" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-table-list-view-table plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-table-list-view-table'] --- import kbnContentManagementTableListViewTableObj from './kbn_content_management_table_list_view_table.devdocs.json'; diff --git a/api_docs/kbn_content_management_utils.mdx b/api_docs/kbn_content_management_utils.mdx index d4bd441bc638a..c408509ec1104 100644 --- a/api_docs/kbn_content_management_utils.mdx +++ b/api_docs/kbn_content_management_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-utils title: "@kbn/content-management-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-utils plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-utils'] --- import kbnContentManagementUtilsObj from './kbn_content_management_utils.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_browser.mdx b/api_docs/kbn_core_analytics_browser.mdx index 81d3b0613e764..454ad52ab5613 100644 --- a/api_docs/kbn_core_analytics_browser.mdx +++ b/api_docs/kbn_core_analytics_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser title: "@kbn/core-analytics-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser plugin -date: 2023-10-11 +date: 2023-10-12 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 7b8058b3cca9b..e98feb9f46caa 100644 --- a/api_docs/kbn_core_analytics_browser_internal.mdx +++ b/api_docs/kbn_core_analytics_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser-internal title: "@kbn/core-analytics-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser-internal plugin -date: 2023-10-11 +date: 2023-10-12 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 8e1d1a5c168c5..ba91dbcaeea07 100644 --- a/api_docs/kbn_core_analytics_browser_mocks.mdx +++ b/api_docs/kbn_core_analytics_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser-mocks title: "@kbn/core-analytics-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 b24b88c734955..6d956a67cfb98 100644 --- a/api_docs/kbn_core_analytics_server.mdx +++ b/api_docs/kbn_core_analytics_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server title: "@kbn/core-analytics-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server plugin -date: 2023-10-11 +date: 2023-10-12 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 4b6f5236b727d..a6f1927cd0b3d 100644 --- a/api_docs/kbn_core_analytics_server_internal.mdx +++ b/api_docs/kbn_core_analytics_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server-internal title: "@kbn/core-analytics-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server-internal plugin -date: 2023-10-11 +date: 2023-10-12 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 a6b00880b9357..e0b6b69e6f49b 100644 --- a/api_docs/kbn_core_analytics_server_mocks.mdx +++ b/api_docs/kbn_core_analytics_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server-mocks title: "@kbn/core-analytics-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 06da0a1acfcda..6a06b983e0269 100644 --- a/api_docs/kbn_core_application_browser.mdx +++ b/api_docs/kbn_core_application_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser title: "@kbn/core-application-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser plugin -date: 2023-10-11 +date: 2023-10-12 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 8c3080e70dc9a..7867e20d1deaf 100644 --- a/api_docs/kbn_core_application_browser_internal.mdx +++ b/api_docs/kbn_core_application_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser-internal title: "@kbn/core-application-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser-internal plugin -date: 2023-10-11 +date: 2023-10-12 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 332b5c1633677..7e1671e1def1d 100644 --- a/api_docs/kbn_core_application_browser_mocks.mdx +++ b/api_docs/kbn_core_application_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser-mocks title: "@kbn/core-application-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 454db94f0f193..f25c4ac5581c5 100644 --- a/api_docs/kbn_core_application_common.mdx +++ b/api_docs/kbn_core_application_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-common title: "@kbn/core-application-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-common plugin -date: 2023-10-11 +date: 2023-10-12 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 17b4edc6a8521..89c219c55bfd4 100644 --- a/api_docs/kbn_core_apps_browser_internal.mdx +++ b/api_docs/kbn_core_apps_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-browser-internal title: "@kbn/core-apps-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-browser-internal plugin -date: 2023-10-11 +date: 2023-10-12 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 4a42e378825e3..aa207c3f94e18 100644 --- a/api_docs/kbn_core_apps_browser_mocks.mdx +++ b/api_docs/kbn_core_apps_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-browser-mocks title: "@kbn/core-apps-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-browser-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 b4fe284fa54fd..0555fdeacc054 100644 --- a/api_docs/kbn_core_apps_server_internal.mdx +++ b/api_docs/kbn_core_apps_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-server-internal title: "@kbn/core-apps-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-server-internal plugin -date: 2023-10-11 +date: 2023-10-12 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 bb0e633a875a2..3193848c81f58 100644 --- a/api_docs/kbn_core_base_browser_mocks.mdx +++ b/api_docs/kbn_core_base_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-browser-mocks title: "@kbn/core-base-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-browser-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 845dfb8d32482..fc09e63b2f396 100644 --- a/api_docs/kbn_core_base_common.mdx +++ b/api_docs/kbn_core_base_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-common title: "@kbn/core-base-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-common plugin -date: 2023-10-11 +date: 2023-10-12 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 af3fe2c90acca..7aa51d4b2f46a 100644 --- a/api_docs/kbn_core_base_server_internal.mdx +++ b/api_docs/kbn_core_base_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-server-internal title: "@kbn/core-base-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-server-internal plugin -date: 2023-10-11 +date: 2023-10-12 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 9a4b961c074b7..6d9d48a1040c4 100644 --- a/api_docs/kbn_core_base_server_mocks.mdx +++ b/api_docs/kbn_core_base_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-server-mocks title: "@kbn/core-base-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-server-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 486a1305af15a..121af2a79de92 100644 --- a/api_docs/kbn_core_capabilities_browser_mocks.mdx +++ b/api_docs/kbn_core_capabilities_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-browser-mocks title: "@kbn/core-capabilities-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-browser-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 e1fbcaf45b735..719a3d11ac7a4 100644 --- a/api_docs/kbn_core_capabilities_common.mdx +++ b/api_docs/kbn_core_capabilities_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-common title: "@kbn/core-capabilities-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-common plugin -date: 2023-10-11 +date: 2023-10-12 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 d0a1ab3e0b450..323c0bdb82164 100644 --- a/api_docs/kbn_core_capabilities_server.mdx +++ b/api_docs/kbn_core_capabilities_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-server title: "@kbn/core-capabilities-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-server plugin -date: 2023-10-11 +date: 2023-10-12 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 a68395dbf11d2..553d9f576aa36 100644 --- a/api_docs/kbn_core_capabilities_server_mocks.mdx +++ b/api_docs/kbn_core_capabilities_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-server-mocks title: "@kbn/core-capabilities-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-server-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 3ac26091aeb4f..ec9d657d541ed 100644 --- a/api_docs/kbn_core_chrome_browser.mdx +++ b/api_docs/kbn_core_chrome_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-chrome-browser title: "@kbn/core-chrome-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-chrome-browser plugin -date: 2023-10-11 +date: 2023-10-12 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 3463b2f824456..bae3dc6bff75b 100644 --- a/api_docs/kbn_core_chrome_browser_mocks.mdx +++ b/api_docs/kbn_core_chrome_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-chrome-browser-mocks title: "@kbn/core-chrome-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-chrome-browser-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 ec85cbdbf2f7a..814e6c81b806c 100644 --- a/api_docs/kbn_core_config_server_internal.mdx +++ b/api_docs/kbn_core_config_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-config-server-internal title: "@kbn/core-config-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-config-server-internal plugin -date: 2023-10-11 +date: 2023-10-12 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 561962776ffdf..0615b97568b27 100644 --- a/api_docs/kbn_core_custom_branding_browser.mdx +++ b/api_docs/kbn_core_custom_branding_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser title: "@kbn/core-custom-branding-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser plugin -date: 2023-10-11 +date: 2023-10-12 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 17921b68825d3..0b1c3e5dab04f 100644 --- a/api_docs/kbn_core_custom_branding_browser_internal.mdx +++ b/api_docs/kbn_core_custom_branding_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser-internal title: "@kbn/core-custom-branding-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser-internal plugin -date: 2023-10-11 +date: 2023-10-12 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 7781d7335cfa8..3e02dbcf92e54 100644 --- a/api_docs/kbn_core_custom_branding_browser_mocks.mdx +++ b/api_docs/kbn_core_custom_branding_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser-mocks title: "@kbn/core-custom-branding-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 5b58134ad3115..b8510b05aa41a 100644 --- a/api_docs/kbn_core_custom_branding_common.mdx +++ b/api_docs/kbn_core_custom_branding_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-common title: "@kbn/core-custom-branding-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-common plugin -date: 2023-10-11 +date: 2023-10-12 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 39122ac62e22f..120500b7af1be 100644 --- a/api_docs/kbn_core_custom_branding_server.mdx +++ b/api_docs/kbn_core_custom_branding_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server title: "@kbn/core-custom-branding-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server plugin -date: 2023-10-11 +date: 2023-10-12 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 56e35db8f2a95..8ba915260d91d 100644 --- a/api_docs/kbn_core_custom_branding_server_internal.mdx +++ b/api_docs/kbn_core_custom_branding_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server-internal title: "@kbn/core-custom-branding-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server-internal plugin -date: 2023-10-11 +date: 2023-10-12 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 48a907408ec32..3a4336337a276 100644 --- a/api_docs/kbn_core_custom_branding_server_mocks.mdx +++ b/api_docs/kbn_core_custom_branding_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server-mocks title: "@kbn/core-custom-branding-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 439f8bb2a49de..a27c417e8b05c 100644 --- a/api_docs/kbn_core_deprecations_browser.mdx +++ b/api_docs/kbn_core_deprecations_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser title: "@kbn/core-deprecations-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser plugin -date: 2023-10-11 +date: 2023-10-12 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 a44b0929b6875..c4019d1b05462 100644 --- a/api_docs/kbn_core_deprecations_browser_internal.mdx +++ b/api_docs/kbn_core_deprecations_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser-internal title: "@kbn/core-deprecations-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser-internal plugin -date: 2023-10-11 +date: 2023-10-12 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 0c811ecd29357..30c11d5134356 100644 --- a/api_docs/kbn_core_deprecations_browser_mocks.mdx +++ b/api_docs/kbn_core_deprecations_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser-mocks title: "@kbn/core-deprecations-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 55021d433978f..f43f87cdd531b 100644 --- a/api_docs/kbn_core_deprecations_common.mdx +++ b/api_docs/kbn_core_deprecations_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-common title: "@kbn/core-deprecations-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-common plugin -date: 2023-10-11 +date: 2023-10-12 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 12a6f9953fb65..19c9c82a16824 100644 --- a/api_docs/kbn_core_deprecations_server.mdx +++ b/api_docs/kbn_core_deprecations_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server title: "@kbn/core-deprecations-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server plugin -date: 2023-10-11 +date: 2023-10-12 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 771cd94487024..6adacc5b696ed 100644 --- a/api_docs/kbn_core_deprecations_server_internal.mdx +++ b/api_docs/kbn_core_deprecations_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server-internal title: "@kbn/core-deprecations-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server-internal plugin -date: 2023-10-11 +date: 2023-10-12 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 80642fe654333..72f52cb2354ea 100644 --- a/api_docs/kbn_core_deprecations_server_mocks.mdx +++ b/api_docs/kbn_core_deprecations_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server-mocks title: "@kbn/core-deprecations-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 fac8423316fc3..717a44e5ae51f 100644 --- a/api_docs/kbn_core_doc_links_browser.mdx +++ b/api_docs/kbn_core_doc_links_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-browser title: "@kbn/core-doc-links-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-browser plugin -date: 2023-10-11 +date: 2023-10-12 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 69a03ab06d59b..bf8aae929a3c8 100644 --- a/api_docs/kbn_core_doc_links_browser_mocks.mdx +++ b/api_docs/kbn_core_doc_links_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-browser-mocks title: "@kbn/core-doc-links-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-browser-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 b771c2b8133b8..2c04c01b5f8fb 100644 --- a/api_docs/kbn_core_doc_links_server.mdx +++ b/api_docs/kbn_core_doc_links_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-server title: "@kbn/core-doc-links-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-server plugin -date: 2023-10-11 +date: 2023-10-12 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 5d8cc6d860bf5..33cf08dc01fb0 100644 --- a/api_docs/kbn_core_doc_links_server_mocks.mdx +++ b/api_docs/kbn_core_doc_links_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-server-mocks title: "@kbn/core-doc-links-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-server-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 43a6b5a5681d1..3395d08a47345 100644 --- a/api_docs/kbn_core_elasticsearch_client_server_internal.mdx +++ b/api_docs/kbn_core_elasticsearch_client_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-client-server-internal title: "@kbn/core-elasticsearch-client-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-client-server-internal plugin -date: 2023-10-11 +date: 2023-10-12 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 b20156c38764b..67c3412764fe6 100644 --- a/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx +++ b/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-client-server-mocks title: "@kbn/core-elasticsearch-client-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-client-server-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 dfba3630afebd..a15c8fb2edb21 100644 --- a/api_docs/kbn_core_elasticsearch_server.mdx +++ b/api_docs/kbn_core_elasticsearch_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server title: "@kbn/core-elasticsearch-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server plugin -date: 2023-10-11 +date: 2023-10-12 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 98ac9751b80f9..c5127ca1ed9e2 100644 --- a/api_docs/kbn_core_elasticsearch_server_internal.mdx +++ b/api_docs/kbn_core_elasticsearch_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server-internal title: "@kbn/core-elasticsearch-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server-internal plugin -date: 2023-10-11 +date: 2023-10-12 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 9134bbbaa991b..598e698f57bdd 100644 --- a/api_docs/kbn_core_elasticsearch_server_mocks.mdx +++ b/api_docs/kbn_core_elasticsearch_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server-mocks title: "@kbn/core-elasticsearch-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 c99a269366581..da85523bb2a6d 100644 --- a/api_docs/kbn_core_environment_server_internal.mdx +++ b/api_docs/kbn_core_environment_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-environment-server-internal title: "@kbn/core-environment-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-environment-server-internal plugin -date: 2023-10-11 +date: 2023-10-12 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 8a6e0e582c27a..f52213d2bf717 100644 --- a/api_docs/kbn_core_environment_server_mocks.mdx +++ b/api_docs/kbn_core_environment_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-environment-server-mocks title: "@kbn/core-environment-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-environment-server-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 bf19222796d9f..ce3c05223ba8c 100644 --- a/api_docs/kbn_core_execution_context_browser.mdx +++ b/api_docs/kbn_core_execution_context_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser title: "@kbn/core-execution-context-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser plugin -date: 2023-10-11 +date: 2023-10-12 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 1b564c24968ec..cbb8f180cb675 100644 --- a/api_docs/kbn_core_execution_context_browser_internal.mdx +++ b/api_docs/kbn_core_execution_context_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser-internal title: "@kbn/core-execution-context-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser-internal plugin -date: 2023-10-11 +date: 2023-10-12 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 5f05295147248..2ec5913928f2e 100644 --- a/api_docs/kbn_core_execution_context_browser_mocks.mdx +++ b/api_docs/kbn_core_execution_context_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser-mocks title: "@kbn/core-execution-context-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 1c8bf2c3f424a..ca2fd2fdf12ce 100644 --- a/api_docs/kbn_core_execution_context_common.mdx +++ b/api_docs/kbn_core_execution_context_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-common title: "@kbn/core-execution-context-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-common plugin -date: 2023-10-11 +date: 2023-10-12 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 867e1b621f9e8..1cf8a5a0f67cb 100644 --- a/api_docs/kbn_core_execution_context_server.mdx +++ b/api_docs/kbn_core_execution_context_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server title: "@kbn/core-execution-context-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server plugin -date: 2023-10-11 +date: 2023-10-12 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 aca0bb83e00e4..39a16d987d3b5 100644 --- a/api_docs/kbn_core_execution_context_server_internal.mdx +++ b/api_docs/kbn_core_execution_context_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server-internal title: "@kbn/core-execution-context-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server-internal plugin -date: 2023-10-11 +date: 2023-10-12 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 ebe279d86c6c2..965d5b006e945 100644 --- a/api_docs/kbn_core_execution_context_server_mocks.mdx +++ b/api_docs/kbn_core_execution_context_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server-mocks title: "@kbn/core-execution-context-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 af9411627d5bc..5aeec222bdcfb 100644 --- a/api_docs/kbn_core_fatal_errors_browser.mdx +++ b/api_docs/kbn_core_fatal_errors_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-fatal-errors-browser title: "@kbn/core-fatal-errors-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-fatal-errors-browser plugin -date: 2023-10-11 +date: 2023-10-12 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 d7988aeed278a..d2cf0f20b2829 100644 --- a/api_docs/kbn_core_fatal_errors_browser_mocks.mdx +++ b/api_docs/kbn_core_fatal_errors_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-fatal-errors-browser-mocks title: "@kbn/core-fatal-errors-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-fatal-errors-browser-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 ef0bbca15eb0f..2c6efbc2cb596 100644 --- a/api_docs/kbn_core_http_browser.mdx +++ b/api_docs/kbn_core_http_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser title: "@kbn/core-http-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser plugin -date: 2023-10-11 +date: 2023-10-12 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 f72cb3d13c10a..bffbe825c23ee 100644 --- a/api_docs/kbn_core_http_browser_internal.mdx +++ b/api_docs/kbn_core_http_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser-internal title: "@kbn/core-http-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser-internal plugin -date: 2023-10-11 +date: 2023-10-12 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 596a8b1b2376b..64e202dd90b80 100644 --- a/api_docs/kbn_core_http_browser_mocks.mdx +++ b/api_docs/kbn_core_http_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser-mocks title: "@kbn/core-http-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 5d9c182bf5ef3..bb8131f2588de 100644 --- a/api_docs/kbn_core_http_common.mdx +++ b/api_docs/kbn_core_http_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-common title: "@kbn/core-http-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-common plugin -date: 2023-10-11 +date: 2023-10-12 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 377e91d6e332a..48fc0a7fa9250 100644 --- a/api_docs/kbn_core_http_context_server_mocks.mdx +++ b/api_docs/kbn_core_http_context_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-context-server-mocks title: "@kbn/core-http-context-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-context-server-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 345e66211d44d..09a826ece5e58 100644 --- a/api_docs/kbn_core_http_request_handler_context_server.mdx +++ b/api_docs/kbn_core_http_request_handler_context_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-request-handler-context-server title: "@kbn/core-http-request-handler-context-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-request-handler-context-server plugin -date: 2023-10-11 +date: 2023-10-12 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 c377d171167e9..8ea4caf6df565 100644 --- a/api_docs/kbn_core_http_resources_server.mdx +++ b/api_docs/kbn_core_http_resources_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server title: "@kbn/core-http-resources-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server plugin -date: 2023-10-11 +date: 2023-10-12 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 fc2edc517e1fa..9f5f10420cc92 100644 --- a/api_docs/kbn_core_http_resources_server_internal.mdx +++ b/api_docs/kbn_core_http_resources_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server-internal title: "@kbn/core-http-resources-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server-internal plugin -date: 2023-10-11 +date: 2023-10-12 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 956cc91d2d22f..06acbeec69ef5 100644 --- a/api_docs/kbn_core_http_resources_server_mocks.mdx +++ b/api_docs/kbn_core_http_resources_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server-mocks title: "@kbn/core-http-resources-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 b3adc51f0ec02..5f67f39807132 100644 --- a/api_docs/kbn_core_http_router_server_internal.mdx +++ b/api_docs/kbn_core_http_router_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-router-server-internal title: "@kbn/core-http-router-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-router-server-internal plugin -date: 2023-10-11 +date: 2023-10-12 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 8ecf57ac0e109..c9303552d3b3f 100644 --- a/api_docs/kbn_core_http_router_server_mocks.mdx +++ b/api_docs/kbn_core_http_router_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-router-server-mocks title: "@kbn/core-http-router-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-router-server-mocks plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-router-server-mocks'] --- import kbnCoreHttpRouterServerMocksObj from './kbn_core_http_router_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_server.devdocs.json b/api_docs/kbn_core_http_server.devdocs.json index b1692f5306b53..46eb209956b1f 100644 --- a/api_docs/kbn_core_http_server.devdocs.json +++ b/api_docs/kbn_core_http_server.devdocs.json @@ -3581,7 +3581,7 @@ }, { "plugin": "alerting", - "path": "x-pack/plugins/alerting/server/routes/get_rule_tags.ts" + "path": "x-pack/plugins/alerting/server/routes/rule/apis/tags/get_rule_tags.ts" }, { "plugin": "alerting", @@ -4803,18 +4803,6 @@ "plugin": "alerting", "path": "x-pack/plugins/alerting/server/routes/get_rule_state.test.ts" }, - { - "plugin": "alerting", - "path": "x-pack/plugins/alerting/server/routes/get_rule_tags.test.ts" - }, - { - "plugin": "alerting", - "path": "x-pack/plugins/alerting/server/routes/get_rule_tags.test.ts" - }, - { - "plugin": "alerting", - "path": "x-pack/plugins/alerting/server/routes/get_rule_tags.test.ts" - }, { "plugin": "alerting", "path": "x-pack/plugins/alerting/server/routes/health.test.ts" @@ -5319,6 +5307,18 @@ "plugin": "alerting", "path": "x-pack/plugins/alerting/server/routes/rule/apis/get_schedule_frequency/get_schedule_frequency_route.test.ts" }, + { + "plugin": "alerting", + "path": "x-pack/plugins/alerting/server/routes/rule/apis/tags/get_rule_tags.test.ts" + }, + { + "plugin": "alerting", + "path": "x-pack/plugins/alerting/server/routes/rule/apis/tags/get_rule_tags.test.ts" + }, + { + "plugin": "alerting", + "path": "x-pack/plugins/alerting/server/routes/rule/apis/tags/get_rule_tags.test.ts" + }, { "plugin": "monitoringCollection", "path": "x-pack/plugins/monitoring_collection/server/routes/api/v1/dynamic_route/get_metrics_by_type.test.ts" @@ -8579,7 +8579,7 @@ }, { "plugin": "alerting", - "path": "x-pack/plugins/alerting/server/routes/bulk_disable_rules.ts" + "path": "x-pack/plugins/alerting/server/routes/rule/apis/bulk_disable/bulk_disable_rules_route.ts" }, { "plugin": "enterpriseSearch", @@ -8613,22 +8613,6 @@ "plugin": "@kbn/core-http-router-server-mocks", "path": "packages/core/http/core-http-router-server-mocks/src/router.mock.ts" }, - { - "plugin": "alerting", - "path": "x-pack/plugins/alerting/server/routes/bulk_disable_rules.test.ts" - }, - { - "plugin": "alerting", - "path": "x-pack/plugins/alerting/server/routes/bulk_disable_rules.test.ts" - }, - { - "plugin": "alerting", - "path": "x-pack/plugins/alerting/server/routes/bulk_disable_rules.test.ts" - }, - { - "plugin": "alerting", - "path": "x-pack/plugins/alerting/server/routes/bulk_disable_rules.test.ts" - }, { "plugin": "alerting", "path": "x-pack/plugins/alerting/server/routes/bulk_enable_rules.test.ts" @@ -8673,6 +8657,22 @@ "plugin": "alerting", "path": "x-pack/plugins/alerting/server/routes/rule/apis/bulk_delete/bulk_delete_rules_route.test.ts" }, + { + "plugin": "alerting", + "path": "x-pack/plugins/alerting/server/routes/rule/apis/bulk_disable/bulk_disable_rules_route.test.ts" + }, + { + "plugin": "alerting", + "path": "x-pack/plugins/alerting/server/routes/rule/apis/bulk_disable/bulk_disable_rules_route.test.ts" + }, + { + "plugin": "alerting", + "path": "x-pack/plugins/alerting/server/routes/rule/apis/bulk_disable/bulk_disable_rules_route.test.ts" + }, + { + "plugin": "alerting", + "path": "x-pack/plugins/alerting/server/routes/rule/apis/bulk_disable/bulk_disable_rules_route.test.ts" + }, { "plugin": "indexManagement", "path": "x-pack/plugins/index_management/server/test/helpers/router_mock.ts" diff --git a/api_docs/kbn_core_http_server.mdx b/api_docs/kbn_core_http_server.mdx index c078806bf0a69..f727f06c2202f 100644 --- a/api_docs/kbn_core_http_server.mdx +++ b/api_docs/kbn_core_http_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server title: "@kbn/core-http-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server plugin -date: 2023-10-11 +date: 2023-10-12 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 03fd5e1d7b1a2..89880fa6bbfaf 100644 --- a/api_docs/kbn_core_http_server_internal.mdx +++ b/api_docs/kbn_core_http_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server-internal title: "@kbn/core-http-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server-internal plugin -date: 2023-10-11 +date: 2023-10-12 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 91fad8a49c988..218d8b6b65bf0 100644 --- a/api_docs/kbn_core_http_server_mocks.mdx +++ b/api_docs/kbn_core_http_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server-mocks title: "@kbn/core-http-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 7e99d275a4008..8161fc06b9445 100644 --- a/api_docs/kbn_core_i18n_browser.mdx +++ b/api_docs/kbn_core_i18n_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-browser title: "@kbn/core-i18n-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-browser plugin -date: 2023-10-11 +date: 2023-10-12 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 3c6b8da07325a..a22d71ffa1d50 100644 --- a/api_docs/kbn_core_i18n_browser_mocks.mdx +++ b/api_docs/kbn_core_i18n_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-browser-mocks title: "@kbn/core-i18n-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-browser-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 70af7f891b7a5..3a62a1065c2e5 100644 --- a/api_docs/kbn_core_i18n_server.mdx +++ b/api_docs/kbn_core_i18n_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server title: "@kbn/core-i18n-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server plugin -date: 2023-10-11 +date: 2023-10-12 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 c71aa30e93f1d..a9189f11fa1df 100644 --- a/api_docs/kbn_core_i18n_server_internal.mdx +++ b/api_docs/kbn_core_i18n_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server-internal title: "@kbn/core-i18n-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server-internal plugin -date: 2023-10-11 +date: 2023-10-12 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 585f4e8e4d97b..72aaf73abd597 100644 --- a/api_docs/kbn_core_i18n_server_mocks.mdx +++ b/api_docs/kbn_core_i18n_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server-mocks title: "@kbn/core-i18n-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 fcec8734dfbe6..f2cc730fdc671 100644 --- a/api_docs/kbn_core_injected_metadata_browser_mocks.mdx +++ b/api_docs/kbn_core_injected_metadata_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-injected-metadata-browser-mocks title: "@kbn/core-injected-metadata-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-injected-metadata-browser-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 ee973b458bd42..01268eaba9a4a 100644 --- a/api_docs/kbn_core_integrations_browser_internal.mdx +++ b/api_docs/kbn_core_integrations_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-integrations-browser-internal title: "@kbn/core-integrations-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-integrations-browser-internal plugin -date: 2023-10-11 +date: 2023-10-12 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 ca16ab4b01ba9..3be9c6e712185 100644 --- a/api_docs/kbn_core_integrations_browser_mocks.mdx +++ b/api_docs/kbn_core_integrations_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-integrations-browser-mocks title: "@kbn/core-integrations-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-integrations-browser-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 4416bca904a49..9d7a35ed1d8c7 100644 --- a/api_docs/kbn_core_lifecycle_browser.mdx +++ b/api_docs/kbn_core_lifecycle_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-browser title: "@kbn/core-lifecycle-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-browser plugin -date: 2023-10-11 +date: 2023-10-12 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 7ed0725ad5086..0e615694717f8 100644 --- a/api_docs/kbn_core_lifecycle_browser_mocks.mdx +++ b/api_docs/kbn_core_lifecycle_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-browser-mocks title: "@kbn/core-lifecycle-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-browser-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 e6bb22bc781b8..b1b5659268d32 100644 --- a/api_docs/kbn_core_lifecycle_server.mdx +++ b/api_docs/kbn_core_lifecycle_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-server title: "@kbn/core-lifecycle-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-server plugin -date: 2023-10-11 +date: 2023-10-12 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 75d323ebff11c..1d28374d87cd8 100644 --- a/api_docs/kbn_core_lifecycle_server_mocks.mdx +++ b/api_docs/kbn_core_lifecycle_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-server-mocks title: "@kbn/core-lifecycle-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-server-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 68e3bf6ea5b13..e5380ce0c261a 100644 --- a/api_docs/kbn_core_logging_browser_mocks.mdx +++ b/api_docs/kbn_core_logging_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-browser-mocks title: "@kbn/core-logging-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-browser-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 75c331b9245e4..aca9815eb45d7 100644 --- a/api_docs/kbn_core_logging_common_internal.mdx +++ b/api_docs/kbn_core_logging_common_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-common-internal title: "@kbn/core-logging-common-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-common-internal plugin -date: 2023-10-11 +date: 2023-10-12 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 405bfa6312f5f..322b687d64407 100644 --- a/api_docs/kbn_core_logging_server.mdx +++ b/api_docs/kbn_core_logging_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server title: "@kbn/core-logging-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server plugin -date: 2023-10-11 +date: 2023-10-12 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 eb4f62b511a44..5aedd528c5425 100644 --- a/api_docs/kbn_core_logging_server_internal.mdx +++ b/api_docs/kbn_core_logging_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server-internal title: "@kbn/core-logging-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server-internal plugin -date: 2023-10-11 +date: 2023-10-12 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 26746061c9f22..c8161d80cef2d 100644 --- a/api_docs/kbn_core_logging_server_mocks.mdx +++ b/api_docs/kbn_core_logging_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server-mocks title: "@kbn/core-logging-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 abbac996f8192..17522501bc38a 100644 --- a/api_docs/kbn_core_metrics_collectors_server_internal.mdx +++ b/api_docs/kbn_core_metrics_collectors_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-collectors-server-internal title: "@kbn/core-metrics-collectors-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-collectors-server-internal plugin -date: 2023-10-11 +date: 2023-10-12 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 a341dd2cdec7a..dfde888f922fd 100644 --- a/api_docs/kbn_core_metrics_collectors_server_mocks.mdx +++ b/api_docs/kbn_core_metrics_collectors_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-collectors-server-mocks title: "@kbn/core-metrics-collectors-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-collectors-server-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 ac236c13cb04f..fc6b86d600818 100644 --- a/api_docs/kbn_core_metrics_server.mdx +++ b/api_docs/kbn_core_metrics_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server title: "@kbn/core-metrics-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server plugin -date: 2023-10-11 +date: 2023-10-12 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 bfe4992c8e3e4..a69c68be994fa 100644 --- a/api_docs/kbn_core_metrics_server_internal.mdx +++ b/api_docs/kbn_core_metrics_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server-internal title: "@kbn/core-metrics-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server-internal plugin -date: 2023-10-11 +date: 2023-10-12 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 c5653c9a4bf72..e4f476454b551 100644 --- a/api_docs/kbn_core_metrics_server_mocks.mdx +++ b/api_docs/kbn_core_metrics_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server-mocks title: "@kbn/core-metrics-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 9ec048ace6978..ab7b8a787154c 100644 --- a/api_docs/kbn_core_mount_utils_browser.mdx +++ b/api_docs/kbn_core_mount_utils_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-mount-utils-browser title: "@kbn/core-mount-utils-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-mount-utils-browser plugin -date: 2023-10-11 +date: 2023-10-12 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 490797e251778..ca8fb59de9420 100644 --- a/api_docs/kbn_core_node_server.mdx +++ b/api_docs/kbn_core_node_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server title: "@kbn/core-node-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server plugin -date: 2023-10-11 +date: 2023-10-12 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 901a003eaf731..571153f1826c3 100644 --- a/api_docs/kbn_core_node_server_internal.mdx +++ b/api_docs/kbn_core_node_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server-internal title: "@kbn/core-node-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server-internal plugin -date: 2023-10-11 +date: 2023-10-12 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 adbe16bae7b17..91f81bf492846 100644 --- a/api_docs/kbn_core_node_server_mocks.mdx +++ b/api_docs/kbn_core_node_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server-mocks title: "@kbn/core-node-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 8a76bda7194b2..16cb996986410 100644 --- a/api_docs/kbn_core_notifications_browser.mdx +++ b/api_docs/kbn_core_notifications_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser title: "@kbn/core-notifications-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser plugin -date: 2023-10-11 +date: 2023-10-12 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 fb157fec7faf2..bfd1c1609ce7f 100644 --- a/api_docs/kbn_core_notifications_browser_internal.mdx +++ b/api_docs/kbn_core_notifications_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser-internal title: "@kbn/core-notifications-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser-internal plugin -date: 2023-10-11 +date: 2023-10-12 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 fef5f76d03fe0..a4fce69d39d48 100644 --- a/api_docs/kbn_core_notifications_browser_mocks.mdx +++ b/api_docs/kbn_core_notifications_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser-mocks title: "@kbn/core-notifications-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 ef2025fa38d5e..c1d09b622a802 100644 --- a/api_docs/kbn_core_overlays_browser.mdx +++ b/api_docs/kbn_core_overlays_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser title: "@kbn/core-overlays-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser plugin -date: 2023-10-11 +date: 2023-10-12 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 b397fd32d03c8..a0550c33f9fca 100644 --- a/api_docs/kbn_core_overlays_browser_internal.mdx +++ b/api_docs/kbn_core_overlays_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser-internal title: "@kbn/core-overlays-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser-internal plugin -date: 2023-10-11 +date: 2023-10-12 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 212caad381c04..620faf2adaf67 100644 --- a/api_docs/kbn_core_overlays_browser_mocks.mdx +++ b/api_docs/kbn_core_overlays_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser-mocks title: "@kbn/core-overlays-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 cc54e1326f0bf..cb7726a7f69bb 100644 --- a/api_docs/kbn_core_plugins_browser.mdx +++ b/api_docs/kbn_core_plugins_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-browser title: "@kbn/core-plugins-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-browser plugin -date: 2023-10-11 +date: 2023-10-12 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 9952c7c9cc14d..ae76d3f88d5f6 100644 --- a/api_docs/kbn_core_plugins_browser_mocks.mdx +++ b/api_docs/kbn_core_plugins_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-browser-mocks title: "@kbn/core-plugins-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-browser-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 fc96669da5565..76a449ac129ca 100644 --- a/api_docs/kbn_core_plugins_server.mdx +++ b/api_docs/kbn_core_plugins_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-server title: "@kbn/core-plugins-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-server plugin -date: 2023-10-11 +date: 2023-10-12 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 e3d3ee09f55aa..eca0df06ddd84 100644 --- a/api_docs/kbn_core_plugins_server_mocks.mdx +++ b/api_docs/kbn_core_plugins_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-server-mocks title: "@kbn/core-plugins-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-server-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 f145369fec865..945ca0c23c401 100644 --- a/api_docs/kbn_core_preboot_server.mdx +++ b/api_docs/kbn_core_preboot_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-preboot-server title: "@kbn/core-preboot-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-preboot-server plugin -date: 2023-10-11 +date: 2023-10-12 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 8e4421c77a1a9..9fc22421c071f 100644 --- a/api_docs/kbn_core_preboot_server_mocks.mdx +++ b/api_docs/kbn_core_preboot_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-preboot-server-mocks title: "@kbn/core-preboot-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-preboot-server-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 79e9e6e328bde..abf5dde2dcfdc 100644 --- a/api_docs/kbn_core_rendering_browser_mocks.mdx +++ b/api_docs/kbn_core_rendering_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-browser-mocks title: "@kbn/core-rendering-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-browser-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 8ee76bf9e0cc9..fe0de81ef0493 100644 --- a/api_docs/kbn_core_rendering_server_internal.mdx +++ b/api_docs/kbn_core_rendering_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-server-internal title: "@kbn/core-rendering-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-server-internal plugin -date: 2023-10-11 +date: 2023-10-12 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 6ec2dfd9fbb45..52cc443de09e0 100644 --- a/api_docs/kbn_core_rendering_server_mocks.mdx +++ b/api_docs/kbn_core_rendering_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-server-mocks title: "@kbn/core-rendering-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-server-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 0752540343300..98b1b953e840a 100644 --- a/api_docs/kbn_core_root_server_internal.mdx +++ b/api_docs/kbn_core_root_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-root-server-internal title: "@kbn/core-root-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-root-server-internal plugin -date: 2023-10-11 +date: 2023-10-12 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 bcc2f36fc9ba3..cacb708fa50b4 100644 --- a/api_docs/kbn_core_saved_objects_api_browser.mdx +++ b/api_docs/kbn_core_saved_objects_api_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-browser title: "@kbn/core-saved-objects-api-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-browser plugin -date: 2023-10-11 +date: 2023-10-12 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 569c4a1752c88..5376d3c3679c5 100644 --- a/api_docs/kbn_core_saved_objects_api_server.mdx +++ b/api_docs/kbn_core_saved_objects_api_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server title: "@kbn/core-saved-objects-api-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-server'] --- import kbnCoreSavedObjectsApiServerObj from './kbn_core_saved_objects_api_server.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_api_server_mocks.mdx b/api_docs/kbn_core_saved_objects_api_server_mocks.mdx index fec7ebb83920d..574a96e81b841 100644 --- a/api_docs/kbn_core_saved_objects_api_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_api_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server-mocks title: "@kbn/core-saved-objects-api-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 19aa51696e12a..8b844bbffff65 100644 --- a/api_docs/kbn_core_saved_objects_base_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_base_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-base-server-internal title: "@kbn/core-saved-objects-base-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-base-server-internal plugin -date: 2023-10-11 +date: 2023-10-12 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 354e5a90e1ba8..e1c9170299474 100644 --- a/api_docs/kbn_core_saved_objects_base_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_base_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-base-server-mocks title: "@kbn/core-saved-objects-base-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-base-server-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 0ca21833491bd..7137596202b43 100644 --- a/api_docs/kbn_core_saved_objects_browser.mdx +++ b/api_docs/kbn_core_saved_objects_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser title: "@kbn/core-saved-objects-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser plugin -date: 2023-10-11 +date: 2023-10-12 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 7dbd1cd0df32f..4d19c73dabd5f 100644 --- a/api_docs/kbn_core_saved_objects_browser_internal.mdx +++ b/api_docs/kbn_core_saved_objects_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser-internal title: "@kbn/core-saved-objects-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser-internal plugin -date: 2023-10-11 +date: 2023-10-12 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 0b813f1d3d485..c50b042f348f7 100644 --- a/api_docs/kbn_core_saved_objects_browser_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser-mocks title: "@kbn/core-saved-objects-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser-mocks plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-browser-mocks'] --- import kbnCoreSavedObjectsBrowserMocksObj from './kbn_core_saved_objects_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_common.mdx b/api_docs/kbn_core_saved_objects_common.mdx index d28d5326a3133..610f0c5191b87 100644 --- a/api_docs/kbn_core_saved_objects_common.mdx +++ b/api_docs/kbn_core_saved_objects_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-common title: "@kbn/core-saved-objects-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-common plugin -date: 2023-10-11 +date: 2023-10-12 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 44d9888e2daa6..6e4faec2a85d5 100644 --- a/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-import-export-server-internal title: "@kbn/core-saved-objects-import-export-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-import-export-server-internal plugin -date: 2023-10-11 +date: 2023-10-12 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 55ef64f822a30..dce9cae56efca 100644 --- a/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-import-export-server-mocks title: "@kbn/core-saved-objects-import-export-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-import-export-server-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 1dc91c2863416..e5b610733e6aa 100644 --- a/api_docs/kbn_core_saved_objects_migration_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_migration_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-migration-server-internal title: "@kbn/core-saved-objects-migration-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-migration-server-internal plugin -date: 2023-10-11 +date: 2023-10-12 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 e83ed0db4ff7c..5412a6f7a9c33 100644 --- a/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-migration-server-mocks title: "@kbn/core-saved-objects-migration-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-migration-server-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 5dc120b3315aa..072a1542c8fed 100644 --- a/api_docs/kbn_core_saved_objects_server.devdocs.json +++ b/api_docs/kbn_core_saved_objects_server.devdocs.json @@ -6693,202 +6693,6 @@ ], "initialIsOpen": false }, - { - "parentPluginId": "@kbn/core-saved-objects-server", - "id": "def-common.SavedObjectModelBidirectionalTransformation", - "type": "Interface", - "tags": [], - "label": "SavedObjectModelBidirectionalTransformation", - "description": [ - "\nA bidirectional transformation.\n\nBidirectional transformations define migration functions that can be used to\ntransform a document from the lower version to the higher one (`up`), and\nthe other way around, from the higher version to the lower one (`down`)\n" - ], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectModelBidirectionalTransformation", - "text": "SavedObjectModelBidirectionalTransformation" - }, - "" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/model_version/transformations.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/core-saved-objects-server", - "id": "def-common.SavedObjectModelBidirectionalTransformation.up", - "type": "Function", - "tags": [], - "label": "up", - "description": [ - "\nThe upward (previous=>next) transformation." - ], - "signature": [ - "(document: ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectModelTransformationDoc", - "text": "SavedObjectModelTransformationDoc" - }, - ", context: ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectModelTransformationContext", - "text": "SavedObjectModelTransformationContext" - }, - ") => ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectModelTransformationResult", - "text": "SavedObjectModelTransformationResult" - }, - "" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/model_version/transformations.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "@kbn/core-saved-objects-server", - "id": "def-common.SavedObjectModelBidirectionalTransformation.up.$1", - "type": "CompoundType", - "tags": [], - "label": "document", - "description": [], - "signature": [ - "SavedObjectDoc & { references?: ", - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectReference", - "text": "SavedObjectReference" - }, - "[] | undefined; }" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/model_version/transformations.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/core-saved-objects-server", - "id": "def-common.SavedObjectModelBidirectionalTransformation.up.$2", - "type": "Object", - "tags": [], - "label": "context", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectModelTransformationContext", - "text": "SavedObjectModelTransformationContext" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/model_version/transformations.ts", - "deprecated": false, - "trackAdoption": false - } - ] - }, - { - "parentPluginId": "@kbn/core-saved-objects-server", - "id": "def-common.SavedObjectModelBidirectionalTransformation.down", - "type": "Function", - "tags": [], - "label": "down", - "description": [ - "\nThe downward (next=>previous) transformation." - ], - "signature": [ - "(document: ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectModelTransformationDoc", - "text": "SavedObjectModelTransformationDoc" - }, - ", context: ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectModelTransformationContext", - "text": "SavedObjectModelTransformationContext" - }, - ") => ", - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectModelTransformationResult", - "text": "SavedObjectModelTransformationResult" - }, - "" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/model_version/transformations.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "@kbn/core-saved-objects-server", - "id": "def-common.SavedObjectModelBidirectionalTransformation.down.$1", - "type": "CompoundType", - "tags": [], - "label": "document", - "description": [], - "signature": [ - "SavedObjectDoc & { references?: ", - { - "pluginId": "@kbn/core-saved-objects-common", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsCommonPluginApi", - "section": "def-common.SavedObjectReference", - "text": "SavedObjectReference" - }, - "[] | undefined; }" - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/model_version/transformations.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/core-saved-objects-server", - "id": "def-common.SavedObjectModelBidirectionalTransformation.down.$2", - "type": "Object", - "tags": [], - "label": "context", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-server", - "scope": "common", - "docId": "kibKbnCoreSavedObjectsServerPluginApi", - "section": "def-common.SavedObjectModelTransformationContext", - "text": "SavedObjectModelTransformationContext" - } - ], - "path": "packages/core/saved-objects/core-saved-objects-server/src/model_version/transformations.ts", - "deprecated": false, - "trackAdoption": false - } - ] - } - ], - "initialIsOpen": false - }, { "parentPluginId": "@kbn/core-saved-objects-server", "id": "def-common.SavedObjectModelDataBackfillResult", @@ -6976,6 +6780,22 @@ "path": "packages/core/saved-objects/core-saved-objects-server/src/model_version/transformations.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-saved-objects-server", + "id": "def-common.SavedObjectModelTransformationContext.namespaceType", + "type": "CompoundType", + "tags": [], + "label": "namespaceType", + "description": [ + "\nThe namespace type of the savedObject type this migration is registered for" + ], + "signature": [ + "\"single\" | \"multiple\" | \"agnostic\" | \"multiple-isolated\"" + ], + "path": "packages/core/saved-objects/core-saved-objects-server/src/model_version/transformations.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false diff --git a/api_docs/kbn_core_saved_objects_server.mdx b/api_docs/kbn_core_saved_objects_server.mdx index d4ce546ba30ec..6346b48eb6cfc 100644 --- a/api_docs/kbn_core_saved_objects_server.mdx +++ b/api_docs/kbn_core_saved_objects_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server title: "@kbn/core-saved-objects-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server plugin -date: 2023-10-11 +date: 2023-10-12 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 [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 547 | 1 | 121 | 4 | +| 541 | 1 | 117 | 4 | ## Common diff --git a/api_docs/kbn_core_saved_objects_server_internal.mdx b/api_docs/kbn_core_saved_objects_server_internal.mdx index c6bdd4f97fed2..f1b7dcf529e58 100644 --- a/api_docs/kbn_core_saved_objects_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server-internal title: "@kbn/core-saved-objects-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server-internal plugin -date: 2023-10-11 +date: 2023-10-12 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 104eecc3ee070..97daba69360ca 100644 --- a/api_docs/kbn_core_saved_objects_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server-mocks title: "@kbn/core-saved-objects-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 59871c7066399..918afc987952e 100644 --- a/api_docs/kbn_core_saved_objects_utils_server.mdx +++ b/api_docs/kbn_core_saved_objects_utils_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-utils-server title: "@kbn/core-saved-objects-utils-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-utils-server plugin -date: 2023-10-11 +date: 2023-10-12 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 ff6365a05183b..a0e258e2b1681 100644 --- a/api_docs/kbn_core_status_common.mdx +++ b/api_docs/kbn_core_status_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-common title: "@kbn/core-status-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-common plugin -date: 2023-10-11 +date: 2023-10-12 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 c2ba1d11ec182..b7c20f1e24ea8 100644 --- a/api_docs/kbn_core_status_common_internal.mdx +++ b/api_docs/kbn_core_status_common_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-common-internal title: "@kbn/core-status-common-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-common-internal plugin -date: 2023-10-11 +date: 2023-10-12 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 90089be2b13f6..f9a5361d1b666 100644 --- a/api_docs/kbn_core_status_server.mdx +++ b/api_docs/kbn_core_status_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server title: "@kbn/core-status-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server plugin -date: 2023-10-11 +date: 2023-10-12 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 c97f697a6babb..8886afc1291ed 100644 --- a/api_docs/kbn_core_status_server_internal.mdx +++ b/api_docs/kbn_core_status_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server-internal title: "@kbn/core-status-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server-internal plugin -date: 2023-10-11 +date: 2023-10-12 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 7181830152fcb..ecb150997aa02 100644 --- a/api_docs/kbn_core_status_server_mocks.mdx +++ b/api_docs/kbn_core_status_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server-mocks title: "@kbn/core-status-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 1f383454d65c7..022a47e9c88fe 100644 --- a/api_docs/kbn_core_test_helpers_deprecations_getters.mdx +++ b/api_docs/kbn_core_test_helpers_deprecations_getters.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-deprecations-getters title: "@kbn/core-test-helpers-deprecations-getters" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-deprecations-getters plugin -date: 2023-10-11 +date: 2023-10-12 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 592a1c4a67778..2f09d7d781770 100644 --- a/api_docs/kbn_core_test_helpers_http_setup_browser.mdx +++ b/api_docs/kbn_core_test_helpers_http_setup_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-http-setup-browser title: "@kbn/core-test-helpers-http-setup-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-http-setup-browser plugin -date: 2023-10-11 +date: 2023-10-12 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 c44981a6c3dc6..d70493f1354a0 100644 --- a/api_docs/kbn_core_test_helpers_kbn_server.mdx +++ b/api_docs/kbn_core_test_helpers_kbn_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-kbn-server title: "@kbn/core-test-helpers-kbn-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-kbn-server plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-kbn-server'] --- import kbnCoreTestHelpersKbnServerObj from './kbn_core_test_helpers_kbn_server.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_model_versions.mdx b/api_docs/kbn_core_test_helpers_model_versions.mdx index a7bc05ea4f07c..7e72abdbc3913 100644 --- a/api_docs/kbn_core_test_helpers_model_versions.mdx +++ b/api_docs/kbn_core_test_helpers_model_versions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-model-versions title: "@kbn/core-test-helpers-model-versions" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-model-versions plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-model-versions'] --- import kbnCoreTestHelpersModelVersionsObj from './kbn_core_test_helpers_model_versions.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_so_type_serializer.mdx b/api_docs/kbn_core_test_helpers_so_type_serializer.mdx index 736df7c55b841..34161ed9f8b20 100644 --- a/api_docs/kbn_core_test_helpers_so_type_serializer.mdx +++ b/api_docs/kbn_core_test_helpers_so_type_serializer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-so-type-serializer title: "@kbn/core-test-helpers-so-type-serializer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-so-type-serializer plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-so-type-serializer'] --- import kbnCoreTestHelpersSoTypeSerializerObj from './kbn_core_test_helpers_so_type_serializer.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_test_utils.mdx b/api_docs/kbn_core_test_helpers_test_utils.mdx index a87faec16b933..abddeba543b72 100644 --- a/api_docs/kbn_core_test_helpers_test_utils.mdx +++ b/api_docs/kbn_core_test_helpers_test_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-test-utils title: "@kbn/core-test-helpers-test-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-test-utils plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-test-utils'] --- import kbnCoreTestHelpersTestUtilsObj from './kbn_core_test_helpers_test_utils.devdocs.json'; diff --git a/api_docs/kbn_core_theme_browser.mdx b/api_docs/kbn_core_theme_browser.mdx index 93dd507f134e5..5c47c05cc741a 100644 --- a/api_docs/kbn_core_theme_browser.mdx +++ b/api_docs/kbn_core_theme_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser title: "@kbn/core-theme-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-theme-browser'] --- import kbnCoreThemeBrowserObj from './kbn_core_theme_browser.devdocs.json'; diff --git a/api_docs/kbn_core_theme_browser_mocks.mdx b/api_docs/kbn_core_theme_browser_mocks.mdx index d0daa79ee2710..7df2290ee741b 100644 --- a/api_docs/kbn_core_theme_browser_mocks.mdx +++ b/api_docs/kbn_core_theme_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser-mocks title: "@kbn/core-theme-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 a8d6ec8b9ac22..7d5f033e1c2b5 100644 --- a/api_docs/kbn_core_ui_settings_browser.mdx +++ b/api_docs/kbn_core_ui_settings_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser title: "@kbn/core-ui-settings-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser plugin -date: 2023-10-11 +date: 2023-10-12 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 7cd92aa61a39f..804ef832b119d 100644 --- a/api_docs/kbn_core_ui_settings_browser_internal.mdx +++ b/api_docs/kbn_core_ui_settings_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser-internal title: "@kbn/core-ui-settings-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser-internal plugin -date: 2023-10-11 +date: 2023-10-12 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 b184c63697575..fce932708705c 100644 --- a/api_docs/kbn_core_ui_settings_browser_mocks.mdx +++ b/api_docs/kbn_core_ui_settings_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser-mocks title: "@kbn/core-ui-settings-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 e273768764759..eba6379950788 100644 --- a/api_docs/kbn_core_ui_settings_common.mdx +++ b/api_docs/kbn_core_ui_settings_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-common title: "@kbn/core-ui-settings-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-common plugin -date: 2023-10-11 +date: 2023-10-12 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 363760eac534d..a115673ddaaf6 100644 --- a/api_docs/kbn_core_ui_settings_server.mdx +++ b/api_docs/kbn_core_ui_settings_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server title: "@kbn/core-ui-settings-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server plugin -date: 2023-10-11 +date: 2023-10-12 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 2e76071f00ba5..4d8628f24a2cb 100644 --- a/api_docs/kbn_core_ui_settings_server_internal.mdx +++ b/api_docs/kbn_core_ui_settings_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server-internal title: "@kbn/core-ui-settings-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server-internal plugin -date: 2023-10-11 +date: 2023-10-12 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 0f0efde4af4eb..c028e2d197bb1 100644 --- a/api_docs/kbn_core_ui_settings_server_mocks.mdx +++ b/api_docs/kbn_core_ui_settings_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server-mocks title: "@kbn/core-ui-settings-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 0fb449d0bb6c5..03ba48a89fa5d 100644 --- a/api_docs/kbn_core_usage_data_server.mdx +++ b/api_docs/kbn_core_usage_data_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server title: "@kbn/core-usage-data-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server plugin -date: 2023-10-11 +date: 2023-10-12 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 ad02535ee5244..b9540f67dfb9b 100644 --- a/api_docs/kbn_core_usage_data_server_internal.mdx +++ b/api_docs/kbn_core_usage_data_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server-internal title: "@kbn/core-usage-data-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server-internal plugin -date: 2023-10-11 +date: 2023-10-12 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 461c14eeb019a..0c8c27f901469 100644 --- a/api_docs/kbn_core_usage_data_server_mocks.mdx +++ b/api_docs/kbn_core_usage_data_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server-mocks title: "@kbn/core-usage-data-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server-mocks plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-usage-data-server-mocks'] --- import kbnCoreUsageDataServerMocksObj from './kbn_core_usage_data_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_user_settings_server.mdx b/api_docs/kbn_core_user_settings_server.mdx index ef7d3bf00ff03..14de542946b8f 100644 --- a/api_docs/kbn_core_user_settings_server.mdx +++ b/api_docs/kbn_core_user_settings_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-settings-server title: "@kbn/core-user-settings-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-user-settings-server plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-settings-server'] --- import kbnCoreUserSettingsServerObj from './kbn_core_user_settings_server.devdocs.json'; diff --git a/api_docs/kbn_core_user_settings_server_internal.mdx b/api_docs/kbn_core_user_settings_server_internal.mdx index 7dc7265b8ad93..7e5504ee4bcd9 100644 --- a/api_docs/kbn_core_user_settings_server_internal.mdx +++ b/api_docs/kbn_core_user_settings_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-settings-server-internal title: "@kbn/core-user-settings-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-user-settings-server-internal plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-settings-server-internal'] --- import kbnCoreUserSettingsServerInternalObj from './kbn_core_user_settings_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_user_settings_server_mocks.mdx b/api_docs/kbn_core_user_settings_server_mocks.mdx index 20fcef8a9464e..4cd57c28e436f 100644 --- a/api_docs/kbn_core_user_settings_server_mocks.mdx +++ b/api_docs/kbn_core_user_settings_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-settings-server-mocks title: "@kbn/core-user-settings-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-user-settings-server-mocks plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-settings-server-mocks'] --- import kbnCoreUserSettingsServerMocksObj from './kbn_core_user_settings_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_crypto.mdx b/api_docs/kbn_crypto.mdx index 9880ab04a9413..9d651eaa3749f 100644 --- a/api_docs/kbn_crypto.mdx +++ b/api_docs/kbn_crypto.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-crypto title: "@kbn/crypto" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/crypto plugin -date: 2023-10-11 +date: 2023-10-12 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 c98fbf86dbe0e..22a2a940f1c7b 100644 --- a/api_docs/kbn_crypto_browser.mdx +++ b/api_docs/kbn_crypto_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-crypto-browser title: "@kbn/crypto-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/crypto-browser plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/crypto-browser'] --- import kbnCryptoBrowserObj from './kbn_crypto_browser.devdocs.json'; diff --git a/api_docs/kbn_custom_integrations.mdx b/api_docs/kbn_custom_integrations.mdx index fa94c5c6e5111..4aa6d9c6fb21e 100644 --- a/api_docs/kbn_custom_integrations.mdx +++ b/api_docs/kbn_custom_integrations.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-custom-integrations title: "@kbn/custom-integrations" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/custom-integrations plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/custom-integrations'] --- import kbnCustomIntegrationsObj from './kbn_custom_integrations.devdocs.json'; diff --git a/api_docs/kbn_cypress_config.mdx b/api_docs/kbn_cypress_config.mdx index 1b0760829d6d6..4fae9c337f50b 100644 --- a/api_docs/kbn_cypress_config.mdx +++ b/api_docs/kbn_cypress_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cypress-config title: "@kbn/cypress-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cypress-config plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cypress-config'] --- import kbnCypressConfigObj from './kbn_cypress_config.devdocs.json'; diff --git a/api_docs/kbn_data_service.mdx b/api_docs/kbn_data_service.mdx index dbb388664d1b7..28ea395958c65 100644 --- a/api_docs/kbn_data_service.mdx +++ b/api_docs/kbn_data_service.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-data-service title: "@kbn/data-service" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/data-service plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/data-service'] --- import kbnDataServiceObj from './kbn_data_service.devdocs.json'; diff --git a/api_docs/kbn_datemath.mdx b/api_docs/kbn_datemath.mdx index 0396d76ec0e32..e69db5800a132 100644 --- a/api_docs/kbn_datemath.mdx +++ b/api_docs/kbn_datemath.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-datemath title: "@kbn/datemath" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/datemath plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/datemath'] --- import kbnDatemathObj from './kbn_datemath.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_analytics.mdx b/api_docs/kbn_deeplinks_analytics.mdx index 70301cd42a0e3..fb5c679ace1c5 100644 --- a/api_docs/kbn_deeplinks_analytics.mdx +++ b/api_docs/kbn_deeplinks_analytics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-analytics title: "@kbn/deeplinks-analytics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-analytics plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-analytics'] --- import kbnDeeplinksAnalyticsObj from './kbn_deeplinks_analytics.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_devtools.mdx b/api_docs/kbn_deeplinks_devtools.mdx index 3f9b0ac0ced19..2cd448119198e 100644 --- a/api_docs/kbn_deeplinks_devtools.mdx +++ b/api_docs/kbn_deeplinks_devtools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-devtools title: "@kbn/deeplinks-devtools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-devtools plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-devtools'] --- import kbnDeeplinksDevtoolsObj from './kbn_deeplinks_devtools.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_management.mdx b/api_docs/kbn_deeplinks_management.mdx index 68b8c46991111..59dc1f71301b1 100644 --- a/api_docs/kbn_deeplinks_management.mdx +++ b/api_docs/kbn_deeplinks_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-management title: "@kbn/deeplinks-management" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-management plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-management'] --- import kbnDeeplinksManagementObj from './kbn_deeplinks_management.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_ml.mdx b/api_docs/kbn_deeplinks_ml.mdx index 68c65de3a0a8b..f084d68074fdd 100644 --- a/api_docs/kbn_deeplinks_ml.mdx +++ b/api_docs/kbn_deeplinks_ml.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-ml title: "@kbn/deeplinks-ml" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-ml plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-ml'] --- import kbnDeeplinksMlObj from './kbn_deeplinks_ml.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_observability.mdx b/api_docs/kbn_deeplinks_observability.mdx index 0b28116c40ce2..96d434c82deef 100644 --- a/api_docs/kbn_deeplinks_observability.mdx +++ b/api_docs/kbn_deeplinks_observability.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-observability title: "@kbn/deeplinks-observability" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-observability plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-observability'] --- import kbnDeeplinksObservabilityObj from './kbn_deeplinks_observability.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_search.mdx b/api_docs/kbn_deeplinks_search.mdx index 8cd90f29efa8f..a1e677b7ee490 100644 --- a/api_docs/kbn_deeplinks_search.mdx +++ b/api_docs/kbn_deeplinks_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-search title: "@kbn/deeplinks-search" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-search plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-search'] --- import kbnDeeplinksSearchObj from './kbn_deeplinks_search.devdocs.json'; diff --git a/api_docs/kbn_default_nav_analytics.mdx b/api_docs/kbn_default_nav_analytics.mdx index c2cfda84fece3..a65cc5be10cb4 100644 --- a/api_docs/kbn_default_nav_analytics.mdx +++ b/api_docs/kbn_default_nav_analytics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-default-nav-analytics title: "@kbn/default-nav-analytics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/default-nav-analytics plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/default-nav-analytics'] --- import kbnDefaultNavAnalyticsObj from './kbn_default_nav_analytics.devdocs.json'; diff --git a/api_docs/kbn_default_nav_devtools.mdx b/api_docs/kbn_default_nav_devtools.mdx index 2f47f84bbd8ec..84cce2e1c748e 100644 --- a/api_docs/kbn_default_nav_devtools.mdx +++ b/api_docs/kbn_default_nav_devtools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-default-nav-devtools title: "@kbn/default-nav-devtools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/default-nav-devtools plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/default-nav-devtools'] --- import kbnDefaultNavDevtoolsObj from './kbn_default_nav_devtools.devdocs.json'; diff --git a/api_docs/kbn_default_nav_management.mdx b/api_docs/kbn_default_nav_management.mdx index ffd2f728de279..6faef0d610954 100644 --- a/api_docs/kbn_default_nav_management.mdx +++ b/api_docs/kbn_default_nav_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-default-nav-management title: "@kbn/default-nav-management" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/default-nav-management plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/default-nav-management'] --- import kbnDefaultNavManagementObj from './kbn_default_nav_management.devdocs.json'; diff --git a/api_docs/kbn_default_nav_ml.mdx b/api_docs/kbn_default_nav_ml.mdx index 139e043b57097..0c43e038f0baa 100644 --- a/api_docs/kbn_default_nav_ml.mdx +++ b/api_docs/kbn_default_nav_ml.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-default-nav-ml title: "@kbn/default-nav-ml" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/default-nav-ml plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/default-nav-ml'] --- import kbnDefaultNavMlObj from './kbn_default_nav_ml.devdocs.json'; diff --git a/api_docs/kbn_dev_cli_errors.mdx b/api_docs/kbn_dev_cli_errors.mdx index 9f3bef8a0b822..17f984370a9c1 100644 --- a/api_docs/kbn_dev_cli_errors.mdx +++ b/api_docs/kbn_dev_cli_errors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-cli-errors title: "@kbn/dev-cli-errors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-cli-errors plugin -date: 2023-10-11 +date: 2023-10-12 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.devdocs.json b/api_docs/kbn_dev_cli_runner.devdocs.json index f1c0f5f34bed9..2869fb3262724 100644 --- a/api_docs/kbn_dev_cli_runner.devdocs.json +++ b/api_docs/kbn_dev_cli_runner.devdocs.json @@ -910,7 +910,7 @@ "section": "def-common.RunFn", "text": "RunFn" }, - ", options: ", + ", options: ", { "pluginId": "@kbn/dev-cli-runner", "scope": "common", @@ -918,7 +918,7 @@ "section": "def-common.RunOptions", "text": "RunOptions" }, - ") => Promise" + ") => Promise" ], "path": "packages/kbn-dev-cli-runner/src/run.ts", "deprecated": false, @@ -938,7 +938,8 @@ "docId": "kibKbnDevCliRunnerPluginApi", "section": "def-common.RunFn", "text": "RunFn" - } + }, + "" ], "path": "packages/kbn-dev-cli-runner/src/run.ts", "deprecated": false, @@ -1788,7 +1789,7 @@ "section": "def-common.RunContext", "text": "RunContext" }, - ") => void | Promise" + ") => void | Promise" ], "path": "packages/kbn-dev-cli-runner/src/run.ts", "deprecated": false, diff --git a/api_docs/kbn_dev_cli_runner.mdx b/api_docs/kbn_dev_cli_runner.mdx index 38267442e34a4..dbf633a970fd9 100644 --- a/api_docs/kbn_dev_cli_runner.mdx +++ b/api_docs/kbn_dev_cli_runner.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-cli-runner title: "@kbn/dev-cli-runner" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-cli-runner plugin -date: 2023-10-11 +date: 2023-10-12 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 437fc035e2f1c..a3b9620232b4c 100644 --- a/api_docs/kbn_dev_proc_runner.mdx +++ b/api_docs/kbn_dev_proc_runner.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-proc-runner title: "@kbn/dev-proc-runner" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-proc-runner plugin -date: 2023-10-11 +date: 2023-10-12 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 43a68860f05cf..8055479c7d0c3 100644 --- a/api_docs/kbn_dev_utils.mdx +++ b/api_docs/kbn_dev_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-utils title: "@kbn/dev-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-utils plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-utils'] --- import kbnDevUtilsObj from './kbn_dev_utils.devdocs.json'; diff --git a/api_docs/kbn_discover_utils.mdx b/api_docs/kbn_discover_utils.mdx index 6babb347c9dfc..11e1d5dcda03d 100644 --- a/api_docs/kbn_discover_utils.mdx +++ b/api_docs/kbn_discover_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-discover-utils title: "@kbn/discover-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/discover-utils plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/discover-utils'] --- import kbnDiscoverUtilsObj from './kbn_discover_utils.devdocs.json'; diff --git a/api_docs/kbn_doc_links.devdocs.json b/api_docs/kbn_doc_links.devdocs.json index 67e17b689e512..a2b8037747565 100644 --- a/api_docs/kbn_doc_links.devdocs.json +++ b/api_docs/kbn_doc_links.devdocs.json @@ -658,7 +658,7 @@ "label": "observability", "description": [], "signature": [ - "{ readonly guide: string; readonly infrastructureThreshold: string; readonly logsThreshold: string; readonly metricsThreshold: string; readonly threshold: string; readonly monitorStatus: string; readonly monitorUptime: string; readonly tlsCertificate: string; readonly uptimeDurationAnomaly: string; readonly monitorLogs: string; readonly analyzeMetrics: string; readonly monitorUptimeSynthetics: string; readonly userExperience: string; readonly createAlerts: string; readonly syntheticsCommandReference: string; readonly syntheticsProjectMonitors: string; readonly syntheticsMigrateFromIntegration: string; readonly sloBurnRateRule: string; }" + "{ readonly guide: string; readonly infrastructureThreshold: string; readonly logsThreshold: string; readonly metricsThreshold: string; readonly threshold: string; readonly monitorStatus: string; readonly monitorUptime: string; readonly tlsCertificate: string; readonly uptimeDurationAnomaly: string; readonly monitorLogs: string; readonly analyzeMetrics: string; readonly monitorUptimeSynthetics: string; readonly userExperience: string; readonly createAlerts: string; readonly syntheticsAlerting: string; readonly syntheticsCommandReference: string; readonly syntheticsProjectMonitors: string; readonly syntheticsMigrateFromIntegration: string; readonly sloBurnRateRule: string; }" ], "path": "packages/kbn-doc-links/src/types.ts", "deprecated": false, diff --git a/api_docs/kbn_doc_links.mdx b/api_docs/kbn_doc_links.mdx index 868b9e209db23..19fedfba57bc6 100644 --- a/api_docs/kbn_doc_links.mdx +++ b/api_docs/kbn_doc_links.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-doc-links title: "@kbn/doc-links" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/doc-links plugin -date: 2023-10-11 +date: 2023-10-12 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 3057b059109cf..d11561dca5aba 100644 --- a/api_docs/kbn_docs_utils.mdx +++ b/api_docs/kbn_docs_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-docs-utils title: "@kbn/docs-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/docs-utils plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/docs-utils'] --- import kbnDocsUtilsObj from './kbn_docs_utils.devdocs.json'; diff --git a/api_docs/kbn_dom_drag_drop.mdx b/api_docs/kbn_dom_drag_drop.mdx index 90f6ddbe16413..a5011eeebf7bb 100644 --- a/api_docs/kbn_dom_drag_drop.mdx +++ b/api_docs/kbn_dom_drag_drop.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dom-drag-drop title: "@kbn/dom-drag-drop" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dom-drag-drop plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dom-drag-drop'] --- import kbnDomDragDropObj from './kbn_dom_drag_drop.devdocs.json'; diff --git a/api_docs/kbn_ebt_tools.mdx b/api_docs/kbn_ebt_tools.mdx index bee4818067bb1..4edb8d8797eae 100644 --- a/api_docs/kbn_ebt_tools.mdx +++ b/api_docs/kbn_ebt_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ebt-tools title: "@kbn/ebt-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ebt-tools plugin -date: 2023-10-11 +date: 2023-10-12 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 2ea76c0374506..6cfa9d9f9b4ac 100644 --- a/api_docs/kbn_ecs.mdx +++ b/api_docs/kbn_ecs.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ecs title: "@kbn/ecs" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ecs plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ecs'] --- import kbnEcsObj from './kbn_ecs.devdocs.json'; diff --git a/api_docs/kbn_ecs_data_quality_dashboard.mdx b/api_docs/kbn_ecs_data_quality_dashboard.mdx index 8c6dd7d04cc54..6b6fa1b92a4ab 100644 --- a/api_docs/kbn_ecs_data_quality_dashboard.mdx +++ b/api_docs/kbn_ecs_data_quality_dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ecs-data-quality-dashboard title: "@kbn/ecs-data-quality-dashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ecs-data-quality-dashboard plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ecs-data-quality-dashboard'] --- import kbnEcsDataQualityDashboardObj from './kbn_ecs_data_quality_dashboard.devdocs.json'; diff --git a/api_docs/kbn_elastic_assistant.mdx b/api_docs/kbn_elastic_assistant.mdx index f945e27b2f380..8b3b714293165 100644 --- a/api_docs/kbn_elastic_assistant.mdx +++ b/api_docs/kbn_elastic_assistant.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-elastic-assistant title: "@kbn/elastic-assistant" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/elastic-assistant plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/elastic-assistant'] --- import kbnElasticAssistantObj from './kbn_elastic_assistant.devdocs.json'; diff --git a/api_docs/kbn_es.mdx b/api_docs/kbn_es.mdx index 8152f7b2313aa..deb7a637a8f0a 100644 --- a/api_docs/kbn_es.mdx +++ b/api_docs/kbn_es.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es title: "@kbn/es" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es plugin -date: 2023-10-11 +date: 2023-10-12 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 6246cb2f0d00a..2bdb4016c7ee4 100644 --- a/api_docs/kbn_es_archiver.mdx +++ b/api_docs/kbn_es_archiver.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-archiver title: "@kbn/es-archiver" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-archiver plugin -date: 2023-10-11 +date: 2023-10-12 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 6b16d2e08a5ba..57f36010da009 100644 --- a/api_docs/kbn_es_errors.mdx +++ b/api_docs/kbn_es_errors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-errors title: "@kbn/es-errors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-errors plugin -date: 2023-10-11 +date: 2023-10-12 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 c35238f8c43e0..4df61d46c8fb1 100644 --- a/api_docs/kbn_es_query.mdx +++ b/api_docs/kbn_es_query.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-query title: "@kbn/es-query" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-query plugin -date: 2023-10-11 +date: 2023-10-12 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 6d0114623d7d5..504a15af87de8 100644 --- a/api_docs/kbn_es_types.mdx +++ b/api_docs/kbn_es_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-types title: "@kbn/es-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-types plugin -date: 2023-10-11 +date: 2023-10-12 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 9b28af7806d20..49c5c283ece51 100644 --- a/api_docs/kbn_eslint_plugin_imports.mdx +++ b/api_docs/kbn_eslint_plugin_imports.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-eslint-plugin-imports title: "@kbn/eslint-plugin-imports" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/eslint-plugin-imports plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/eslint-plugin-imports'] --- import kbnEslintPluginImportsObj from './kbn_eslint_plugin_imports.devdocs.json'; diff --git a/api_docs/kbn_event_annotation_common.mdx b/api_docs/kbn_event_annotation_common.mdx index 258b796ade532..ef79e2cdb895a 100644 --- a/api_docs/kbn_event_annotation_common.mdx +++ b/api_docs/kbn_event_annotation_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-event-annotation-common title: "@kbn/event-annotation-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/event-annotation-common plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/event-annotation-common'] --- import kbnEventAnnotationCommonObj from './kbn_event_annotation_common.devdocs.json'; diff --git a/api_docs/kbn_event_annotation_components.mdx b/api_docs/kbn_event_annotation_components.mdx index 6149cad7ea561..9978ed66ce8f0 100644 --- a/api_docs/kbn_event_annotation_components.mdx +++ b/api_docs/kbn_event_annotation_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-event-annotation-components title: "@kbn/event-annotation-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/event-annotation-components plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/event-annotation-components'] --- import kbnEventAnnotationComponentsObj from './kbn_event_annotation_components.devdocs.json'; diff --git a/api_docs/kbn_expandable_flyout.mdx b/api_docs/kbn_expandable_flyout.mdx index eaade72d15982..b51e6b876e750 100644 --- a/api_docs/kbn_expandable_flyout.mdx +++ b/api_docs/kbn_expandable_flyout.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-expandable-flyout title: "@kbn/expandable-flyout" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/expandable-flyout plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/expandable-flyout'] --- import kbnExpandableFlyoutObj from './kbn_expandable_flyout.devdocs.json'; diff --git a/api_docs/kbn_field_types.mdx b/api_docs/kbn_field_types.mdx index ec0905925bc82..9e6d6cb88b274 100644 --- a/api_docs/kbn_field_types.mdx +++ b/api_docs/kbn_field_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-field-types title: "@kbn/field-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/field-types plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/field-types'] --- import kbnFieldTypesObj from './kbn_field_types.devdocs.json'; diff --git a/api_docs/kbn_field_utils.mdx b/api_docs/kbn_field_utils.mdx index 23afddb3c005b..192b0d113b636 100644 --- a/api_docs/kbn_field_utils.mdx +++ b/api_docs/kbn_field_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-field-utils title: "@kbn/field-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/field-utils plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/field-utils'] --- import kbnFieldUtilsObj from './kbn_field_utils.devdocs.json'; diff --git a/api_docs/kbn_find_used_node_modules.mdx b/api_docs/kbn_find_used_node_modules.mdx index 2092597abd453..b74f5f6e6a246 100644 --- a/api_docs/kbn_find_used_node_modules.mdx +++ b/api_docs/kbn_find_used_node_modules.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-find-used-node-modules title: "@kbn/find-used-node-modules" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/find-used-node-modules plugin -date: 2023-10-11 +date: 2023-10-12 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 9573e1df15aea..4b0bca178de3b 100644 --- a/api_docs/kbn_ftr_common_functional_services.mdx +++ b/api_docs/kbn_ftr_common_functional_services.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ftr-common-functional-services title: "@kbn/ftr-common-functional-services" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ftr-common-functional-services plugin -date: 2023-10-11 +date: 2023-10-12 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 9062a1e1a36c3..8cec6d7fa3bbd 100644 --- a/api_docs/kbn_generate.mdx +++ b/api_docs/kbn_generate.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate title: "@kbn/generate" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/generate plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate'] --- import kbnGenerateObj from './kbn_generate.devdocs.json'; diff --git a/api_docs/kbn_generate_console_definitions.mdx b/api_docs/kbn_generate_console_definitions.mdx index e178426af9264..2a3b69c3dd614 100644 --- a/api_docs/kbn_generate_console_definitions.mdx +++ b/api_docs/kbn_generate_console_definitions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate-console-definitions title: "@kbn/generate-console-definitions" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/generate-console-definitions plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate-console-definitions'] --- import kbnGenerateConsoleDefinitionsObj from './kbn_generate_console_definitions.devdocs.json'; diff --git a/api_docs/kbn_generate_csv.mdx b/api_docs/kbn_generate_csv.mdx index d4f0f365fba2b..bebde79128804 100644 --- a/api_docs/kbn_generate_csv.mdx +++ b/api_docs/kbn_generate_csv.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate-csv title: "@kbn/generate-csv" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/generate-csv plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate-csv'] --- import kbnGenerateCsvObj from './kbn_generate_csv.devdocs.json'; diff --git a/api_docs/kbn_generate_csv_types.mdx b/api_docs/kbn_generate_csv_types.mdx index f7a9a313d60f3..0baef3f3dda28 100644 --- a/api_docs/kbn_generate_csv_types.mdx +++ b/api_docs/kbn_generate_csv_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate-csv-types title: "@kbn/generate-csv-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/generate-csv-types plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate-csv-types'] --- import kbnGenerateCsvTypesObj from './kbn_generate_csv_types.devdocs.json'; diff --git a/api_docs/kbn_guided_onboarding.mdx b/api_docs/kbn_guided_onboarding.mdx index 79f48d1744e76..b62f7452e20ac 100644 --- a/api_docs/kbn_guided_onboarding.mdx +++ b/api_docs/kbn_guided_onboarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-guided-onboarding title: "@kbn/guided-onboarding" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/guided-onboarding plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/guided-onboarding'] --- import kbnGuidedOnboardingObj from './kbn_guided_onboarding.devdocs.json'; diff --git a/api_docs/kbn_handlebars.devdocs.json b/api_docs/kbn_handlebars.devdocs.json index 84069ecfa5b9c..0c3d26cf1c175 100644 --- a/api_docs/kbn_handlebars.devdocs.json +++ b/api_docs/kbn_handlebars.devdocs.json @@ -420,7 +420,7 @@ "\nSupported Handlebars compile options.\n\nThis is a subset of all the compile options supported by the upstream\nHandlebars module." ], "signature": [ - "{ strict?: boolean | undefined; data?: boolean | undefined; knownHelpers?: KnownHelpers | undefined; knownHelpersOnly?: boolean | undefined; noEscape?: boolean | undefined; assumeObjects?: boolean | undefined; preventIndent?: boolean | undefined; explicitPartialContext?: boolean | undefined; }" + "{ data?: boolean | undefined; strict?: boolean | undefined; knownHelpers?: KnownHelpers | undefined; knownHelpersOnly?: boolean | undefined; noEscape?: boolean | undefined; assumeObjects?: boolean | undefined; preventIndent?: boolean | undefined; explicitPartialContext?: boolean | undefined; }" ], "path": "packages/kbn-handlebars/src/types.ts", "deprecated": false, diff --git a/api_docs/kbn_handlebars.mdx b/api_docs/kbn_handlebars.mdx index cb0208ad44137..51a8e15372774 100644 --- a/api_docs/kbn_handlebars.mdx +++ b/api_docs/kbn_handlebars.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-handlebars title: "@kbn/handlebars" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/handlebars plugin -date: 2023-10-11 +date: 2023-10-12 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 7a051d5bfee01..0314e1ccb6eaa 100644 --- a/api_docs/kbn_hapi_mocks.mdx +++ b/api_docs/kbn_hapi_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-hapi-mocks title: "@kbn/hapi-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/hapi-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 2d5c253b7fe90..7ef4d44f8b93c 100644 --- a/api_docs/kbn_health_gateway_server.mdx +++ b/api_docs/kbn_health_gateway_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-health-gateway-server title: "@kbn/health-gateway-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/health-gateway-server plugin -date: 2023-10-11 +date: 2023-10-12 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 90b216c31fdeb..2ed3a0bbb663b 100644 --- a/api_docs/kbn_home_sample_data_card.mdx +++ b/api_docs/kbn_home_sample_data_card.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-home-sample-data-card title: "@kbn/home-sample-data-card" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/home-sample-data-card plugin -date: 2023-10-11 +date: 2023-10-12 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 75c329270a479..6fe63b8dd491f 100644 --- a/api_docs/kbn_home_sample_data_tab.mdx +++ b/api_docs/kbn_home_sample_data_tab.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-home-sample-data-tab title: "@kbn/home-sample-data-tab" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/home-sample-data-tab plugin -date: 2023-10-11 +date: 2023-10-12 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 4e716ef597926..a0f8c12a42f0f 100644 --- a/api_docs/kbn_i18n.mdx +++ b/api_docs/kbn_i18n.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-i18n title: "@kbn/i18n" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/i18n plugin -date: 2023-10-11 +date: 2023-10-12 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 1a4379219675e..53c8b93260982 100644 --- a/api_docs/kbn_i18n_react.mdx +++ b/api_docs/kbn_i18n_react.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-i18n-react title: "@kbn/i18n-react" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/i18n-react plugin -date: 2023-10-11 +date: 2023-10-12 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 d402ccf3007aa..2146ff9e21761 100644 --- a/api_docs/kbn_import_resolver.mdx +++ b/api_docs/kbn_import_resolver.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-import-resolver title: "@kbn/import-resolver" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/import-resolver plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/import-resolver'] --- import kbnImportResolverObj from './kbn_import_resolver.devdocs.json'; diff --git a/api_docs/kbn_infra_forge.mdx b/api_docs/kbn_infra_forge.mdx index 1447d37159e09..d66951d321463 100644 --- a/api_docs/kbn_infra_forge.mdx +++ b/api_docs/kbn_infra_forge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-infra-forge title: "@kbn/infra-forge" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/infra-forge plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/infra-forge'] --- import kbnInfraForgeObj from './kbn_infra_forge.devdocs.json'; diff --git a/api_docs/kbn_interpreter.mdx b/api_docs/kbn_interpreter.mdx index e7308809a765b..27a7205efea07 100644 --- a/api_docs/kbn_interpreter.mdx +++ b/api_docs/kbn_interpreter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-interpreter title: "@kbn/interpreter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/interpreter plugin -date: 2023-10-11 +date: 2023-10-12 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 58fa66706a70f..6840063be81ae 100644 --- a/api_docs/kbn_io_ts_utils.mdx +++ b/api_docs/kbn_io_ts_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-io-ts-utils title: "@kbn/io-ts-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/io-ts-utils plugin -date: 2023-10-11 +date: 2023-10-12 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 164864bbc3259..57164012c46f1 100644 --- a/api_docs/kbn_jest_serializers.mdx +++ b/api_docs/kbn_jest_serializers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-jest-serializers title: "@kbn/jest-serializers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/jest-serializers plugin -date: 2023-10-11 +date: 2023-10-12 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 7a34157583ede..2526994dfc23f 100644 --- a/api_docs/kbn_journeys.mdx +++ b/api_docs/kbn_journeys.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-journeys title: "@kbn/journeys" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/journeys plugin -date: 2023-10-11 +date: 2023-10-12 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 7a160daf3681f..98cd52c85370c 100644 --- a/api_docs/kbn_json_ast.mdx +++ b/api_docs/kbn_json_ast.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-json-ast title: "@kbn/json-ast" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/json-ast plugin -date: 2023-10-11 +date: 2023-10-12 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 33904518d26de..40e1f5e14cd72 100644 --- a/api_docs/kbn_kibana_manifest_schema.mdx +++ b/api_docs/kbn_kibana_manifest_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-kibana-manifest-schema title: "@kbn/kibana-manifest-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/kibana-manifest-schema plugin -date: 2023-10-11 +date: 2023-10-12 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 f81168d81b21c..cd1a825a538eb 100644 --- a/api_docs/kbn_language_documentation_popover.mdx +++ b/api_docs/kbn_language_documentation_popover.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-language-documentation-popover title: "@kbn/language-documentation-popover" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/language-documentation-popover plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/language-documentation-popover'] --- import kbnLanguageDocumentationPopoverObj from './kbn_language_documentation_popover.devdocs.json'; diff --git a/api_docs/kbn_lens_embeddable_utils.mdx b/api_docs/kbn_lens_embeddable_utils.mdx index 96b32be5fb909..155d49ac6f6cb 100644 --- a/api_docs/kbn_lens_embeddable_utils.mdx +++ b/api_docs/kbn_lens_embeddable_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-lens-embeddable-utils title: "@kbn/lens-embeddable-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/lens-embeddable-utils plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/lens-embeddable-utils'] --- import kbnLensEmbeddableUtilsObj from './kbn_lens_embeddable_utils.devdocs.json'; diff --git a/api_docs/kbn_logging.mdx b/api_docs/kbn_logging.mdx index e38c4164a6ced..e00c56a663346 100644 --- a/api_docs/kbn_logging.mdx +++ b/api_docs/kbn_logging.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-logging title: "@kbn/logging" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/logging plugin -date: 2023-10-11 +date: 2023-10-12 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 ce12b27ba79cb..036bf07a0f55c 100644 --- a/api_docs/kbn_logging_mocks.mdx +++ b/api_docs/kbn_logging_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-logging-mocks title: "@kbn/logging-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/logging-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 80e6bd86a59a5..1fd88de1df339 100644 --- a/api_docs/kbn_managed_vscode_config.mdx +++ b/api_docs/kbn_managed_vscode_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-managed-vscode-config title: "@kbn/managed-vscode-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/managed-vscode-config plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/managed-vscode-config'] --- import kbnManagedVscodeConfigObj from './kbn_managed_vscode_config.devdocs.json'; diff --git a/api_docs/kbn_management_cards_navigation.mdx b/api_docs/kbn_management_cards_navigation.mdx index 690a83cba3f63..b6703f9ddc75a 100644 --- a/api_docs/kbn_management_cards_navigation.mdx +++ b/api_docs/kbn_management_cards_navigation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-cards-navigation title: "@kbn/management-cards-navigation" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-cards-navigation plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-cards-navigation'] --- import kbnManagementCardsNavigationObj from './kbn_management_cards_navigation.devdocs.json'; diff --git a/api_docs/kbn_management_settings_application.devdocs.json b/api_docs/kbn_management_settings_application.devdocs.json index 99b0d259e3c2b..b9bda648adcb9 100644 --- a/api_docs/kbn_management_settings_application.devdocs.json +++ b/api_docs/kbn_management_settings_application.devdocs.json @@ -27,7 +27,7 @@ "label": "KibanaSettingsApplication", "description": [], "signature": [ - "({ docLinks, i18n, notifications, settings, theme, }: ", + "({ docLinks, i18n, notifications, settings, theme, history, }: ", { "pluginId": "@kbn/management-settings-application", "scope": "common", @@ -46,7 +46,7 @@ "id": "def-common.KibanaSettingsApplication.$1", "type": "CompoundType", "tags": [], - "label": "{\n docLinks,\n i18n,\n notifications,\n settings,\n theme,\n}", + "label": "{\n docLinks,\n i18n,\n notifications,\n settings,\n theme,\n history,\n}", "description": [], "signature": [ { @@ -73,7 +73,7 @@ "tags": [], "label": "SettingsApplication", "description": [ - "\nComponent for displaying a {@link Form} component." + "\nComponent for displaying the {@link SettingsApplication} component." ], "signature": [ "() => JSX.Element" diff --git a/api_docs/kbn_management_settings_application.mdx b/api_docs/kbn_management_settings_application.mdx index 8da58f3230d75..a78d4addfa73d 100644 --- a/api_docs/kbn_management_settings_application.mdx +++ b/api_docs/kbn_management_settings_application.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-application title: "@kbn/management-settings-application" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-application plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-application'] --- import kbnManagementSettingsApplicationObj from './kbn_management_settings_application.devdocs.json'; diff --git a/api_docs/kbn_management_settings_components_field_category.devdocs.json b/api_docs/kbn_management_settings_components_field_category.devdocs.json index 5489d44497e63..b827fb33bad72 100644 --- a/api_docs/kbn_management_settings_components_field_category.devdocs.json +++ b/api_docs/kbn_management_settings_components_field_category.devdocs.json @@ -29,7 +29,7 @@ "\nConvenience component for displaying a set of {@link FieldCategory} components, given\na set of categorized fields.\n" ], "signature": [ - "({ categorizedFields, unsavedChanges, onClearQuery, isSavingEnabled, onFieldChange, }: ", + "({ categorizedFields, categoryCounts, unsavedChanges, onClearQuery, isSavingEnabled, onFieldChange, }: ", { "pluginId": "@kbn/management-settings-components-field-category", "scope": "common", @@ -48,7 +48,7 @@ "id": "def-common.FieldCategories.$1", "type": "Object", "tags": [], - "label": "{\n categorizedFields,\n unsavedChanges = {},\n onClearQuery,\n isSavingEnabled,\n onFieldChange,\n}", + "label": "{\n categorizedFields,\n categoryCounts,\n unsavedChanges = {},\n onClearQuery,\n isSavingEnabled,\n onFieldChange,\n}", "description": [], "signature": [ { @@ -346,6 +346,20 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "@kbn/management-settings-components-field-category", + "id": "def-common.FieldCategoriesProps.categoryCounts", + "type": "Object", + "tags": [], + "label": "categoryCounts", + "description": [], + "signature": [ + "{ [category: string]: number; }" + ], + "path": "packages/kbn-management/settings/components/field_category/categories.tsx", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "@kbn/management-settings-components-field-category", "id": "def-common.FieldCategoriesProps.unsavedChanges", diff --git a/api_docs/kbn_management_settings_components_field_category.mdx b/api_docs/kbn_management_settings_components_field_category.mdx index 191feb1523c25..ffabbb2184705 100644 --- a/api_docs/kbn_management_settings_components_field_category.mdx +++ b/api_docs/kbn_management_settings_components_field_category.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-components-field-category title: "@kbn/management-settings-components-field-category" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-components-field-category plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-components-field-category'] --- import kbnManagementSettingsComponentsFieldCategoryObj from './kbn_management_settings_components_field_category.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/platform-deployment-management](https://github.com/orgs/elasti | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 23 | 0 | 3 | 0 | +| 24 | 0 | 4 | 0 | ## Common diff --git a/api_docs/kbn_management_settings_components_field_input.mdx b/api_docs/kbn_management_settings_components_field_input.mdx index 609e2f73ebd40..05226a001679e 100644 --- a/api_docs/kbn_management_settings_components_field_input.mdx +++ b/api_docs/kbn_management_settings_components_field_input.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-components-field-input title: "@kbn/management-settings-components-field-input" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-components-field-input plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-components-field-input'] --- import kbnManagementSettingsComponentsFieldInputObj from './kbn_management_settings_components_field_input.devdocs.json'; diff --git a/api_docs/kbn_management_settings_components_field_row.mdx b/api_docs/kbn_management_settings_components_field_row.mdx index 0de69d30d5541..42f68e347d851 100644 --- a/api_docs/kbn_management_settings_components_field_row.mdx +++ b/api_docs/kbn_management_settings_components_field_row.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-components-field-row title: "@kbn/management-settings-components-field-row" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-components-field-row plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-components-field-row'] --- import kbnManagementSettingsComponentsFieldRowObj from './kbn_management_settings_components_field_row.devdocs.json'; diff --git a/api_docs/kbn_management_settings_components_form.mdx b/api_docs/kbn_management_settings_components_form.mdx index 1029f8a78e384..a4c59cf8b3c13 100644 --- a/api_docs/kbn_management_settings_components_form.mdx +++ b/api_docs/kbn_management_settings_components_form.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-components-form title: "@kbn/management-settings-components-form" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-components-form plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-components-form'] --- import kbnManagementSettingsComponentsFormObj from './kbn_management_settings_components_form.devdocs.json'; diff --git a/api_docs/kbn_management_settings_field_definition.mdx b/api_docs/kbn_management_settings_field_definition.mdx index 6d44ddb4a2c61..379c0a753bd12 100644 --- a/api_docs/kbn_management_settings_field_definition.mdx +++ b/api_docs/kbn_management_settings_field_definition.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-field-definition title: "@kbn/management-settings-field-definition" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-field-definition plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-field-definition'] --- import kbnManagementSettingsFieldDefinitionObj from './kbn_management_settings_field_definition.devdocs.json'; diff --git a/api_docs/kbn_management_settings_ids.mdx b/api_docs/kbn_management_settings_ids.mdx index 8fb6adff17c1f..0d03defce9162 100644 --- a/api_docs/kbn_management_settings_ids.mdx +++ b/api_docs/kbn_management_settings_ids.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-ids title: "@kbn/management-settings-ids" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-ids plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-ids'] --- import kbnManagementSettingsIdsObj from './kbn_management_settings_ids.devdocs.json'; diff --git a/api_docs/kbn_management_settings_section_registry.mdx b/api_docs/kbn_management_settings_section_registry.mdx index efaa23d574b5b..9f69fdb59d5ef 100644 --- a/api_docs/kbn_management_settings_section_registry.mdx +++ b/api_docs/kbn_management_settings_section_registry.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-section-registry title: "@kbn/management-settings-section-registry" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-section-registry plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-section-registry'] --- import kbnManagementSettingsSectionRegistryObj from './kbn_management_settings_section_registry.devdocs.json'; diff --git a/api_docs/kbn_management_settings_types.mdx b/api_docs/kbn_management_settings_types.mdx index 9b0268ce9e18e..151e106aeaaf6 100644 --- a/api_docs/kbn_management_settings_types.mdx +++ b/api_docs/kbn_management_settings_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-types title: "@kbn/management-settings-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-types plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-types'] --- import kbnManagementSettingsTypesObj from './kbn_management_settings_types.devdocs.json'; diff --git a/api_docs/kbn_management_settings_utilities.mdx b/api_docs/kbn_management_settings_utilities.mdx index 48a5fcc028204..60e7bd261dfe9 100644 --- a/api_docs/kbn_management_settings_utilities.mdx +++ b/api_docs/kbn_management_settings_utilities.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-utilities title: "@kbn/management-settings-utilities" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-utilities plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-utilities'] --- import kbnManagementSettingsUtilitiesObj from './kbn_management_settings_utilities.devdocs.json'; diff --git a/api_docs/kbn_management_storybook_config.mdx b/api_docs/kbn_management_storybook_config.mdx index abea8eeeaeb7c..2b5e055756def 100644 --- a/api_docs/kbn_management_storybook_config.mdx +++ b/api_docs/kbn_management_storybook_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-storybook-config title: "@kbn/management-storybook-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-storybook-config plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-storybook-config'] --- import kbnManagementStorybookConfigObj from './kbn_management_storybook_config.devdocs.json'; diff --git a/api_docs/kbn_mapbox_gl.mdx b/api_docs/kbn_mapbox_gl.mdx index ed43cde8dc240..a718f87d8d792 100644 --- a/api_docs/kbn_mapbox_gl.mdx +++ b/api_docs/kbn_mapbox_gl.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-mapbox-gl title: "@kbn/mapbox-gl" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/mapbox-gl plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/mapbox-gl'] --- import kbnMapboxGlObj from './kbn_mapbox_gl.devdocs.json'; diff --git a/api_docs/kbn_maps_vector_tile_utils.mdx b/api_docs/kbn_maps_vector_tile_utils.mdx index b990f8f47b8e8..fbcc0ecd0cb7e 100644 --- a/api_docs/kbn_maps_vector_tile_utils.mdx +++ b/api_docs/kbn_maps_vector_tile_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-maps-vector-tile-utils title: "@kbn/maps-vector-tile-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/maps-vector-tile-utils plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/maps-vector-tile-utils'] --- import kbnMapsVectorTileUtilsObj from './kbn_maps_vector_tile_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_agg_utils.mdx b/api_docs/kbn_ml_agg_utils.mdx index 1b7ea1893fb5b..071bd813e8319 100644 --- a/api_docs/kbn_ml_agg_utils.mdx +++ b/api_docs/kbn_ml_agg_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-agg-utils title: "@kbn/ml-agg-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-agg-utils plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-agg-utils'] --- import kbnMlAggUtilsObj from './kbn_ml_agg_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_anomaly_utils.mdx b/api_docs/kbn_ml_anomaly_utils.mdx index 951405ef43787..dccaa5ab83671 100644 --- a/api_docs/kbn_ml_anomaly_utils.mdx +++ b/api_docs/kbn_ml_anomaly_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-anomaly-utils title: "@kbn/ml-anomaly-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-anomaly-utils plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-anomaly-utils'] --- import kbnMlAnomalyUtilsObj from './kbn_ml_anomaly_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_category_validator.mdx b/api_docs/kbn_ml_category_validator.mdx index 5ecf1388d9327..906334289ba95 100644 --- a/api_docs/kbn_ml_category_validator.mdx +++ b/api_docs/kbn_ml_category_validator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-category-validator title: "@kbn/ml-category-validator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-category-validator plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-category-validator'] --- import kbnMlCategoryValidatorObj from './kbn_ml_category_validator.devdocs.json'; diff --git a/api_docs/kbn_ml_chi2test.mdx b/api_docs/kbn_ml_chi2test.mdx index e648aee27be09..35c134365dc56 100644 --- a/api_docs/kbn_ml_chi2test.mdx +++ b/api_docs/kbn_ml_chi2test.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-chi2test title: "@kbn/ml-chi2test" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-chi2test plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-chi2test'] --- import kbnMlChi2testObj from './kbn_ml_chi2test.devdocs.json'; diff --git a/api_docs/kbn_ml_data_frame_analytics_utils.mdx b/api_docs/kbn_ml_data_frame_analytics_utils.mdx index 5f4839a143597..73c5d7bfea6a9 100644 --- a/api_docs/kbn_ml_data_frame_analytics_utils.mdx +++ b/api_docs/kbn_ml_data_frame_analytics_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-data-frame-analytics-utils title: "@kbn/ml-data-frame-analytics-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-data-frame-analytics-utils plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-data-frame-analytics-utils'] --- import kbnMlDataFrameAnalyticsUtilsObj from './kbn_ml_data_frame_analytics_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_data_grid.mdx b/api_docs/kbn_ml_data_grid.mdx index d4b0c7b5c0b1a..c830a3b62e0d2 100644 --- a/api_docs/kbn_ml_data_grid.mdx +++ b/api_docs/kbn_ml_data_grid.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-data-grid title: "@kbn/ml-data-grid" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-data-grid plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-data-grid'] --- import kbnMlDataGridObj from './kbn_ml_data_grid.devdocs.json'; diff --git a/api_docs/kbn_ml_date_picker.mdx b/api_docs/kbn_ml_date_picker.mdx index 10e1ca63320c6..bccda8217b83a 100644 --- a/api_docs/kbn_ml_date_picker.mdx +++ b/api_docs/kbn_ml_date_picker.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-date-picker title: "@kbn/ml-date-picker" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-date-picker plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-date-picker'] --- import kbnMlDatePickerObj from './kbn_ml_date_picker.devdocs.json'; diff --git a/api_docs/kbn_ml_date_utils.mdx b/api_docs/kbn_ml_date_utils.mdx index 18c1f46765100..215ccf8c6c418 100644 --- a/api_docs/kbn_ml_date_utils.mdx +++ b/api_docs/kbn_ml_date_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-date-utils title: "@kbn/ml-date-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-date-utils plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-date-utils'] --- import kbnMlDateUtilsObj from './kbn_ml_date_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_error_utils.mdx b/api_docs/kbn_ml_error_utils.mdx index 010f78c630650..8897b626c7eb5 100644 --- a/api_docs/kbn_ml_error_utils.mdx +++ b/api_docs/kbn_ml_error_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-error-utils title: "@kbn/ml-error-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-error-utils plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-error-utils'] --- import kbnMlErrorUtilsObj from './kbn_ml_error_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_in_memory_table.mdx b/api_docs/kbn_ml_in_memory_table.mdx index bcccce19df5f1..9b537233a2bf3 100644 --- a/api_docs/kbn_ml_in_memory_table.mdx +++ b/api_docs/kbn_ml_in_memory_table.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-in-memory-table title: "@kbn/ml-in-memory-table" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-in-memory-table plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-in-memory-table'] --- import kbnMlInMemoryTableObj from './kbn_ml_in_memory_table.devdocs.json'; diff --git a/api_docs/kbn_ml_is_defined.mdx b/api_docs/kbn_ml_is_defined.mdx index 37882ef644fcf..d5d284de1c347 100644 --- a/api_docs/kbn_ml_is_defined.mdx +++ b/api_docs/kbn_ml_is_defined.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-is-defined title: "@kbn/ml-is-defined" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-is-defined plugin -date: 2023-10-11 +date: 2023-10-12 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 d8fb0b948f865..5857f193cf2c4 100644 --- a/api_docs/kbn_ml_is_populated_object.mdx +++ b/api_docs/kbn_ml_is_populated_object.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-is-populated-object title: "@kbn/ml-is-populated-object" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-is-populated-object plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-is-populated-object'] --- import kbnMlIsPopulatedObjectObj from './kbn_ml_is_populated_object.devdocs.json'; diff --git a/api_docs/kbn_ml_kibana_theme.mdx b/api_docs/kbn_ml_kibana_theme.mdx index a1825e04f3a58..63cdd890c2cb0 100644 --- a/api_docs/kbn_ml_kibana_theme.mdx +++ b/api_docs/kbn_ml_kibana_theme.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-kibana-theme title: "@kbn/ml-kibana-theme" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-kibana-theme plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-kibana-theme'] --- import kbnMlKibanaThemeObj from './kbn_ml_kibana_theme.devdocs.json'; diff --git a/api_docs/kbn_ml_local_storage.mdx b/api_docs/kbn_ml_local_storage.mdx index f8ea17c2320f0..f94c9e875d77b 100644 --- a/api_docs/kbn_ml_local_storage.mdx +++ b/api_docs/kbn_ml_local_storage.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-local-storage title: "@kbn/ml-local-storage" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-local-storage plugin -date: 2023-10-11 +date: 2023-10-12 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 bf8d59bd964af..cb5dba9cf8a89 100644 --- a/api_docs/kbn_ml_nested_property.mdx +++ b/api_docs/kbn_ml_nested_property.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-nested-property title: "@kbn/ml-nested-property" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-nested-property plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-nested-property'] --- import kbnMlNestedPropertyObj from './kbn_ml_nested_property.devdocs.json'; diff --git a/api_docs/kbn_ml_number_utils.mdx b/api_docs/kbn_ml_number_utils.mdx index fe0ee92121bac..dc7c709e6b858 100644 --- a/api_docs/kbn_ml_number_utils.mdx +++ b/api_docs/kbn_ml_number_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-number-utils title: "@kbn/ml-number-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-number-utils plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-number-utils'] --- import kbnMlNumberUtilsObj from './kbn_ml_number_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_query_utils.mdx b/api_docs/kbn_ml_query_utils.mdx index 9f9623d411c9f..cee8c920d7bd5 100644 --- a/api_docs/kbn_ml_query_utils.mdx +++ b/api_docs/kbn_ml_query_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-query-utils title: "@kbn/ml-query-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-query-utils plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-query-utils'] --- import kbnMlQueryUtilsObj from './kbn_ml_query_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_random_sampler_utils.mdx b/api_docs/kbn_ml_random_sampler_utils.mdx index fe8746d25f984..9fadb99460e4a 100644 --- a/api_docs/kbn_ml_random_sampler_utils.mdx +++ b/api_docs/kbn_ml_random_sampler_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-random-sampler-utils title: "@kbn/ml-random-sampler-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-random-sampler-utils plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-random-sampler-utils'] --- import kbnMlRandomSamplerUtilsObj from './kbn_ml_random_sampler_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_route_utils.mdx b/api_docs/kbn_ml_route_utils.mdx index da35a1cdb0d8d..aefcee0741d6b 100644 --- a/api_docs/kbn_ml_route_utils.mdx +++ b/api_docs/kbn_ml_route_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-route-utils title: "@kbn/ml-route-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-route-utils plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-route-utils'] --- import kbnMlRouteUtilsObj from './kbn_ml_route_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_runtime_field_utils.mdx b/api_docs/kbn_ml_runtime_field_utils.mdx index 4a9976874c69f..74ddfcce1f3ce 100644 --- a/api_docs/kbn_ml_runtime_field_utils.mdx +++ b/api_docs/kbn_ml_runtime_field_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-runtime-field-utils title: "@kbn/ml-runtime-field-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-runtime-field-utils plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-runtime-field-utils'] --- import kbnMlRuntimeFieldUtilsObj from './kbn_ml_runtime_field_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_string_hash.mdx b/api_docs/kbn_ml_string_hash.mdx index 0e4ec9971fc63..48fb62a59bb2c 100644 --- a/api_docs/kbn_ml_string_hash.mdx +++ b/api_docs/kbn_ml_string_hash.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-string-hash title: "@kbn/ml-string-hash" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-string-hash plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-string-hash'] --- import kbnMlStringHashObj from './kbn_ml_string_hash.devdocs.json'; diff --git a/api_docs/kbn_ml_trained_models_utils.mdx b/api_docs/kbn_ml_trained_models_utils.mdx index af7f9aec8ec70..120cddd96e138 100644 --- a/api_docs/kbn_ml_trained_models_utils.mdx +++ b/api_docs/kbn_ml_trained_models_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-trained-models-utils title: "@kbn/ml-trained-models-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-trained-models-utils plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-trained-models-utils'] --- import kbnMlTrainedModelsUtilsObj from './kbn_ml_trained_models_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_url_state.mdx b/api_docs/kbn_ml_url_state.mdx index 98c7797d33ded..31f0749d3a43e 100644 --- a/api_docs/kbn_ml_url_state.mdx +++ b/api_docs/kbn_ml_url_state.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-url-state title: "@kbn/ml-url-state" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-url-state plugin -date: 2023-10-11 +date: 2023-10-12 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 140845cad88e2..c0841cd0052d7 100644 --- a/api_docs/kbn_monaco.mdx +++ b/api_docs/kbn_monaco.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-monaco title: "@kbn/monaco" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/monaco plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/monaco'] --- import kbnMonacoObj from './kbn_monaco.devdocs.json'; diff --git a/api_docs/kbn_object_versioning.mdx b/api_docs/kbn_object_versioning.mdx index b10923f6576e8..c4e852b3254e0 100644 --- a/api_docs/kbn_object_versioning.mdx +++ b/api_docs/kbn_object_versioning.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-object-versioning title: "@kbn/object-versioning" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/object-versioning plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/object-versioning'] --- import kbnObjectVersioningObj from './kbn_object_versioning.devdocs.json'; diff --git a/api_docs/kbn_observability_alert_details.mdx b/api_docs/kbn_observability_alert_details.mdx index c61bce371b202..b9c84b2fbe452 100644 --- a/api_docs/kbn_observability_alert_details.mdx +++ b/api_docs/kbn_observability_alert_details.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-observability-alert-details title: "@kbn/observability-alert-details" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/observability-alert-details plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/observability-alert-details'] --- import kbnObservabilityAlertDetailsObj from './kbn_observability_alert_details.devdocs.json'; diff --git a/api_docs/kbn_openapi_generator.mdx b/api_docs/kbn_openapi_generator.mdx index 07a647fc03380..94770f8bb6006 100644 --- a/api_docs/kbn_openapi_generator.mdx +++ b/api_docs/kbn_openapi_generator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-openapi-generator title: "@kbn/openapi-generator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/openapi-generator plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/openapi-generator'] --- import kbnOpenapiGeneratorObj from './kbn_openapi_generator.devdocs.json'; diff --git a/api_docs/kbn_optimizer.mdx b/api_docs/kbn_optimizer.mdx index 061956d6feb5d..7f1cec01daeac 100644 --- a/api_docs/kbn_optimizer.mdx +++ b/api_docs/kbn_optimizer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-optimizer title: "@kbn/optimizer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/optimizer plugin -date: 2023-10-11 +date: 2023-10-12 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 67b69702a7305..2e84b426c8196 100644 --- a/api_docs/kbn_optimizer_webpack_helpers.mdx +++ b/api_docs/kbn_optimizer_webpack_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-optimizer-webpack-helpers title: "@kbn/optimizer-webpack-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/optimizer-webpack-helpers plugin -date: 2023-10-11 +date: 2023-10-12 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 07beb46bd05d2..c7da06b1c55ce 100644 --- a/api_docs/kbn_osquery_io_ts_types.mdx +++ b/api_docs/kbn_osquery_io_ts_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-osquery-io-ts-types title: "@kbn/osquery-io-ts-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/osquery-io-ts-types plugin -date: 2023-10-11 +date: 2023-10-12 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 41924e1857d07..7d9b0d1612bec 100644 --- a/api_docs/kbn_performance_testing_dataset_extractor.mdx +++ b/api_docs/kbn_performance_testing_dataset_extractor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-performance-testing-dataset-extractor title: "@kbn/performance-testing-dataset-extractor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/performance-testing-dataset-extractor plugin -date: 2023-10-11 +date: 2023-10-12 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 ff7f6d2e37aec..03fe415ac28bd 100644 --- a/api_docs/kbn_plugin_generator.mdx +++ b/api_docs/kbn_plugin_generator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-generator title: "@kbn/plugin-generator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/plugin-generator plugin -date: 2023-10-11 +date: 2023-10-12 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 a34c0bf73c127..30d8771f1ec01 100644 --- a/api_docs/kbn_plugin_helpers.mdx +++ b/api_docs/kbn_plugin_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-helpers title: "@kbn/plugin-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/plugin-helpers plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/plugin-helpers'] --- import kbnPluginHelpersObj from './kbn_plugin_helpers.devdocs.json'; diff --git a/api_docs/kbn_profiling_utils.mdx b/api_docs/kbn_profiling_utils.mdx index 6083a26cdd4cf..8b2869bced35d 100644 --- a/api_docs/kbn_profiling_utils.mdx +++ b/api_docs/kbn_profiling_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-profiling-utils title: "@kbn/profiling-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/profiling-utils plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/profiling-utils'] --- import kbnProfilingUtilsObj from './kbn_profiling_utils.devdocs.json'; diff --git a/api_docs/kbn_random_sampling.mdx b/api_docs/kbn_random_sampling.mdx index bbdab62f63b21..b5c3f6d9b9e79 100644 --- a/api_docs/kbn_random_sampling.mdx +++ b/api_docs/kbn_random_sampling.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-random-sampling title: "@kbn/random-sampling" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/random-sampling plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/random-sampling'] --- import kbnRandomSamplingObj from './kbn_random_sampling.devdocs.json'; diff --git a/api_docs/kbn_react_field.mdx b/api_docs/kbn_react_field.mdx index b209bda905880..49256b5787e2a 100644 --- a/api_docs/kbn_react_field.mdx +++ b/api_docs/kbn_react_field.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-field title: "@kbn/react-field" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-field plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-field'] --- import kbnReactFieldObj from './kbn_react_field.devdocs.json'; diff --git a/api_docs/kbn_react_kibana_context_common.mdx b/api_docs/kbn_react_kibana_context_common.mdx index 654235400a6ca..0a0ba3571a151 100644 --- a/api_docs/kbn_react_kibana_context_common.mdx +++ b/api_docs/kbn_react_kibana_context_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-common title: "@kbn/react-kibana-context-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-kibana-context-common plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-context-common'] --- import kbnReactKibanaContextCommonObj from './kbn_react_kibana_context_common.devdocs.json'; diff --git a/api_docs/kbn_react_kibana_context_render.mdx b/api_docs/kbn_react_kibana_context_render.mdx index 1b9e98c18ea9f..f3547e343b270 100644 --- a/api_docs/kbn_react_kibana_context_render.mdx +++ b/api_docs/kbn_react_kibana_context_render.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-render title: "@kbn/react-kibana-context-render" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-kibana-context-render plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-context-render'] --- import kbnReactKibanaContextRenderObj from './kbn_react_kibana_context_render.devdocs.json'; diff --git a/api_docs/kbn_react_kibana_context_root.mdx b/api_docs/kbn_react_kibana_context_root.mdx index e10cbf5f46e39..a9ba814cdd5d1 100644 --- a/api_docs/kbn_react_kibana_context_root.mdx +++ b/api_docs/kbn_react_kibana_context_root.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-root title: "@kbn/react-kibana-context-root" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-kibana-context-root plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-context-root'] --- import kbnReactKibanaContextRootObj from './kbn_react_kibana_context_root.devdocs.json'; diff --git a/api_docs/kbn_react_kibana_context_styled.mdx b/api_docs/kbn_react_kibana_context_styled.mdx index cbd5d990c11cd..54260ac18084b 100644 --- a/api_docs/kbn_react_kibana_context_styled.mdx +++ b/api_docs/kbn_react_kibana_context_styled.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-styled title: "@kbn/react-kibana-context-styled" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-kibana-context-styled plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-context-styled'] --- import kbnReactKibanaContextStyledObj from './kbn_react_kibana_context_styled.devdocs.json'; diff --git a/api_docs/kbn_react_kibana_context_theme.mdx b/api_docs/kbn_react_kibana_context_theme.mdx index ee70055bfa89c..e6e4869ce5385 100644 --- a/api_docs/kbn_react_kibana_context_theme.mdx +++ b/api_docs/kbn_react_kibana_context_theme.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-theme title: "@kbn/react-kibana-context-theme" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-kibana-context-theme plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-context-theme'] --- import kbnReactKibanaContextThemeObj from './kbn_react_kibana_context_theme.devdocs.json'; diff --git a/api_docs/kbn_react_kibana_mount.mdx b/api_docs/kbn_react_kibana_mount.mdx index 349fd1950c0c3..736fca5517cb1 100644 --- a/api_docs/kbn_react_kibana_mount.mdx +++ b/api_docs/kbn_react_kibana_mount.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-mount title: "@kbn/react-kibana-mount" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-kibana-mount plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-mount'] --- import kbnReactKibanaMountObj from './kbn_react_kibana_mount.devdocs.json'; diff --git a/api_docs/kbn_repo_file_maps.mdx b/api_docs/kbn_repo_file_maps.mdx index 50ec0fa84e733..de1c51cc762ac 100644 --- a/api_docs/kbn_repo_file_maps.mdx +++ b/api_docs/kbn_repo_file_maps.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-file-maps title: "@kbn/repo-file-maps" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-file-maps plugin -date: 2023-10-11 +date: 2023-10-12 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 b3b5a9d8a4ab1..71fe73160ec8f 100644 --- a/api_docs/kbn_repo_linter.mdx +++ b/api_docs/kbn_repo_linter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-linter title: "@kbn/repo-linter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-linter plugin -date: 2023-10-11 +date: 2023-10-12 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 f0668109b85be..e781e2080df96 100644 --- a/api_docs/kbn_repo_path.mdx +++ b/api_docs/kbn_repo_path.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-path title: "@kbn/repo-path" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-path plugin -date: 2023-10-11 +date: 2023-10-12 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 3ff31d50c6068..a7605b5bccbda 100644 --- a/api_docs/kbn_repo_source_classifier.mdx +++ b/api_docs/kbn_repo_source_classifier.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-source-classifier title: "@kbn/repo-source-classifier" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-source-classifier plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-source-classifier'] --- import kbnRepoSourceClassifierObj from './kbn_repo_source_classifier.devdocs.json'; diff --git a/api_docs/kbn_reporting_common.mdx b/api_docs/kbn_reporting_common.mdx index 05481614be7d7..ed9c4fb453ba2 100644 --- a/api_docs/kbn_reporting_common.mdx +++ b/api_docs/kbn_reporting_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-common title: "@kbn/reporting-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-common plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-common'] --- import kbnReportingCommonObj from './kbn_reporting_common.devdocs.json'; diff --git a/api_docs/kbn_resizable_layout.mdx b/api_docs/kbn_resizable_layout.mdx index e0a15b2214c8a..b75ee51b34646 100644 --- a/api_docs/kbn_resizable_layout.mdx +++ b/api_docs/kbn_resizable_layout.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-resizable-layout title: "@kbn/resizable-layout" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/resizable-layout plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/resizable-layout'] --- import kbnResizableLayoutObj from './kbn_resizable_layout.devdocs.json'; diff --git a/api_docs/kbn_rison.mdx b/api_docs/kbn_rison.mdx index 025eeff2ad8d2..70cdf658cb9fe 100644 --- a/api_docs/kbn_rison.mdx +++ b/api_docs/kbn_rison.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rison title: "@kbn/rison" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/rison plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rison'] --- import kbnRisonObj from './kbn_rison.devdocs.json'; diff --git a/api_docs/kbn_rrule.mdx b/api_docs/kbn_rrule.mdx index 4980721efca6b..c56b39d442f1b 100644 --- a/api_docs/kbn_rrule.mdx +++ b/api_docs/kbn_rrule.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rrule title: "@kbn/rrule" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/rrule plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rrule'] --- import kbnRruleObj from './kbn_rrule.devdocs.json'; diff --git a/api_docs/kbn_rule_data_utils.mdx b/api_docs/kbn_rule_data_utils.mdx index d8d7dd253688e..f895c0eb911c2 100644 --- a/api_docs/kbn_rule_data_utils.mdx +++ b/api_docs/kbn_rule_data_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rule-data-utils title: "@kbn/rule-data-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/rule-data-utils plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rule-data-utils'] --- import kbnRuleDataUtilsObj from './kbn_rule_data_utils.devdocs.json'; diff --git a/api_docs/kbn_saved_objects_settings.mdx b/api_docs/kbn_saved_objects_settings.mdx index 4ca27c3a5d678..f6a1d4a2de57d 100644 --- a/api_docs/kbn_saved_objects_settings.mdx +++ b/api_docs/kbn_saved_objects_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-saved-objects-settings title: "@kbn/saved-objects-settings" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/saved-objects-settings plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/saved-objects-settings'] --- import kbnSavedObjectsSettingsObj from './kbn_saved_objects_settings.devdocs.json'; diff --git a/api_docs/kbn_search_api_panels.mdx b/api_docs/kbn_search_api_panels.mdx index 314c313323f53..95d77e565c502 100644 --- a/api_docs/kbn_search_api_panels.mdx +++ b/api_docs/kbn_search_api_panels.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-api-panels title: "@kbn/search-api-panels" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/search-api-panels plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-api-panels'] --- import kbnSearchApiPanelsObj from './kbn_search_api_panels.devdocs.json'; diff --git a/api_docs/kbn_search_connectors.mdx b/api_docs/kbn_search_connectors.mdx index 960e4f16af5c8..f42bd249cb8af 100644 --- a/api_docs/kbn_search_connectors.mdx +++ b/api_docs/kbn_search_connectors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-connectors title: "@kbn/search-connectors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/search-connectors plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-connectors'] --- import kbnSearchConnectorsObj from './kbn_search_connectors.devdocs.json'; diff --git a/api_docs/kbn_search_response_warnings.mdx b/api_docs/kbn_search_response_warnings.mdx index 3bdc5ec55fefa..82dedb014ad5a 100644 --- a/api_docs/kbn_search_response_warnings.mdx +++ b/api_docs/kbn_search_response_warnings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-response-warnings title: "@kbn/search-response-warnings" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/search-response-warnings plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-response-warnings'] --- import kbnSearchResponseWarningsObj from './kbn_search_response_warnings.devdocs.json'; diff --git a/api_docs/kbn_security_solution_features.mdx b/api_docs/kbn_security_solution_features.mdx index 4c31b12701c9a..5e6acc4e6a89b 100644 --- a/api_docs/kbn_security_solution_features.mdx +++ b/api_docs/kbn_security_solution_features.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-features title: "@kbn/security-solution-features" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-solution-features plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-features'] --- import kbnSecuritySolutionFeaturesObj from './kbn_security_solution_features.devdocs.json'; diff --git a/api_docs/kbn_security_solution_navigation.mdx b/api_docs/kbn_security_solution_navigation.mdx index 3e6d2fd0a843c..28801ddcbe522 100644 --- a/api_docs/kbn_security_solution_navigation.mdx +++ b/api_docs/kbn_security_solution_navigation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-navigation title: "@kbn/security-solution-navigation" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-solution-navigation plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-navigation'] --- import kbnSecuritySolutionNavigationObj from './kbn_security_solution_navigation.devdocs.json'; diff --git a/api_docs/kbn_security_solution_side_nav.mdx b/api_docs/kbn_security_solution_side_nav.mdx index 27aa35d3db4b4..3c309e88fd0fd 100644 --- a/api_docs/kbn_security_solution_side_nav.mdx +++ b/api_docs/kbn_security_solution_side_nav.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-side-nav title: "@kbn/security-solution-side-nav" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-solution-side-nav plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-side-nav'] --- import kbnSecuritySolutionSideNavObj from './kbn_security_solution_side_nav.devdocs.json'; diff --git a/api_docs/kbn_security_solution_storybook_config.mdx b/api_docs/kbn_security_solution_storybook_config.mdx index 3ab85dd5822a4..810f0832945ad 100644 --- a/api_docs/kbn_security_solution_storybook_config.mdx +++ b/api_docs/kbn_security_solution_storybook_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-storybook-config title: "@kbn/security-solution-storybook-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-solution-storybook-config plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-storybook-config'] --- import kbnSecuritySolutionStorybookConfigObj from './kbn_security_solution_storybook_config.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_autocomplete.mdx b/api_docs/kbn_securitysolution_autocomplete.mdx index 12003578756b5..da7536564a83d 100644 --- a/api_docs/kbn_securitysolution_autocomplete.mdx +++ b/api_docs/kbn_securitysolution_autocomplete.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-autocomplete title: "@kbn/securitysolution-autocomplete" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-autocomplete plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-autocomplete'] --- import kbnSecuritysolutionAutocompleteObj from './kbn_securitysolution_autocomplete.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_data_table.mdx b/api_docs/kbn_securitysolution_data_table.mdx index 339c6d251459f..9c753fb8a096a 100644 --- a/api_docs/kbn_securitysolution_data_table.mdx +++ b/api_docs/kbn_securitysolution_data_table.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-data-table title: "@kbn/securitysolution-data-table" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-data-table plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-data-table'] --- import kbnSecuritysolutionDataTableObj from './kbn_securitysolution_data_table.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_ecs.mdx b/api_docs/kbn_securitysolution_ecs.mdx index 26f5001bd3ff1..4c244a0f5d34c 100644 --- a/api_docs/kbn_securitysolution_ecs.mdx +++ b/api_docs/kbn_securitysolution_ecs.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-ecs title: "@kbn/securitysolution-ecs" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-ecs plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-ecs'] --- import kbnSecuritysolutionEcsObj from './kbn_securitysolution_ecs.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_es_utils.mdx b/api_docs/kbn_securitysolution_es_utils.mdx index 673d34fc1d1b4..2b7d6131795bd 100644 --- a/api_docs/kbn_securitysolution_es_utils.mdx +++ b/api_docs/kbn_securitysolution_es_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-es-utils title: "@kbn/securitysolution-es-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-es-utils plugin -date: 2023-10-11 +date: 2023-10-12 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 e590d21733685..09a5e5bbddaff 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\" | \"big\" | \"link\" | \"small\" | \"sub\" | \"sup\" | \"source\" | \"desc\" | \"filter\" | \"text\" | \"map\" | \"head\" | React.ComponentType | \"slot\" | \"style\" | \"title\" | \"meta\" | \"pattern\" | \"summary\" | \"template\" | \"span\" | \"main\" | \"path\" | \"form\" | \"body\" | \"q\" | \"label\" | \"data\" | \"progress\" | \"legend\" | \"article\" | \"image\" | \"menu\" | \"stop\" | \"base\" | \"s\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"p\" | \"canvas\" | \"svg\" | \"select\" | \"output\" | \"script\" | \"time\" | \"mask\" | \"input\" | \"section\" | \"circle\" | \"code\" | \"line\" | \"area\" | \"animate\" | \"view\" | \"var\" | \"html\" | \"a\" | \"img\" | \"audio\" | \"br\" | \"clipPath\" | \"textarea\" | \"abbr\" | \"address\" | \"aside\" | \"b\" | \"bdi\" | \"bdo\" | \"blockquote\" | \"button\" | \"caption\" | \"cite\" | \"col\" | \"colgroup\" | \"datalist\" | \"dd\" | \"del\" | \"details\" | \"dfn\" | \"dialog\" | \"div\" | \"dl\" | \"dt\" | \"em\" | \"embed\" | \"fieldset\" | \"figcaption\" | \"figure\" | \"footer\" | \"header\" | \"hgroup\" | \"hr\" | \"i\" | \"iframe\" | \"ins\" | \"kbd\" | \"keygen\" | \"li\" | \"mark\" | \"menuitem\" | \"meter\" | \"nav\" | \"noindex\" | \"noscript\" | \"ol\" | \"optgroup\" | \"option\" | \"param\" | \"picture\" | \"pre\" | \"rp\" | \"rt\" | \"ruby\" | \"samp\" | \"strong\" | \"table\" | \"tbody\" | \"td\" | \"tfoot\" | \"th\" | \"thead\" | \"tr\" | \"track\" | \"u\" | \"ul\" | \"video\" | \"wbr\" | \"webview\" | \"animateMotion\" | \"animateTransform\" | \"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\" | \"big\" | \"link\" | \"small\" | \"sub\" | \"sup\" | \"source\" | \"desc\" | \"filter\" | \"text\" | \"map\" | \"head\" | React.ComponentType | \"slot\" | \"style\" | \"title\" | \"meta\" | \"data\" | \"pattern\" | \"summary\" | \"template\" | \"span\" | \"main\" | \"path\" | \"form\" | \"body\" | \"q\" | \"label\" | \"progress\" | \"legend\" | \"article\" | \"image\" | \"menu\" | \"stop\" | \"base\" | \"s\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"p\" | \"canvas\" | \"svg\" | \"select\" | \"output\" | \"script\" | \"time\" | \"mask\" | \"input\" | \"section\" | \"circle\" | \"code\" | \"line\" | \"area\" | \"animate\" | \"view\" | \"var\" | \"html\" | \"a\" | \"img\" | \"audio\" | \"br\" | \"clipPath\" | \"textarea\" | \"abbr\" | \"address\" | \"aside\" | \"b\" | \"bdi\" | \"bdo\" | \"blockquote\" | \"button\" | \"caption\" | \"cite\" | \"col\" | \"colgroup\" | \"datalist\" | \"dd\" | \"del\" | \"details\" | \"dfn\" | \"dialog\" | \"div\" | \"dl\" | \"dt\" | \"em\" | \"embed\" | \"fieldset\" | \"figcaption\" | \"figure\" | \"footer\" | \"header\" | \"hgroup\" | \"hr\" | \"i\" | \"iframe\" | \"ins\" | \"kbd\" | \"keygen\" | \"li\" | \"mark\" | \"menuitem\" | \"meter\" | \"nav\" | \"noindex\" | \"noscript\" | \"ol\" | \"optgroup\" | \"option\" | \"param\" | \"picture\" | \"pre\" | \"rp\" | \"rt\" | \"ruby\" | \"samp\" | \"strong\" | \"table\" | \"tbody\" | \"td\" | \"tfoot\" | \"th\" | \"thead\" | \"tr\" | \"track\" | \"u\" | \"ul\" | \"video\" | \"wbr\" | \"webview\" | \"animateMotion\" | \"animateTransform\" | \"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\" | \"big\" | \"link\" | \"small\" | \"sub\" | \"sup\" | \"source\" | \"desc\" | \"filter\" | \"text\" | \"map\" | \"head\" | React.ComponentType | \"slot\" | \"style\" | \"title\" | \"meta\" | \"pattern\" | \"summary\" | \"template\" | \"span\" | \"main\" | \"path\" | \"form\" | \"body\" | \"q\" | \"label\" | \"data\" | \"progress\" | \"legend\" | \"article\" | \"image\" | \"menu\" | \"stop\" | \"base\" | \"s\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"p\" | \"canvas\" | \"svg\" | \"select\" | \"output\" | \"script\" | \"time\" | \"mask\" | \"input\" | \"section\" | \"circle\" | \"code\" | \"line\" | \"area\" | \"animate\" | \"view\" | \"var\" | \"html\" | \"a\" | \"img\" | \"audio\" | \"br\" | \"clipPath\" | \"textarea\" | \"abbr\" | \"address\" | \"aside\" | \"b\" | \"bdi\" | \"bdo\" | \"blockquote\" | \"button\" | \"caption\" | \"cite\" | \"col\" | \"colgroup\" | \"datalist\" | \"dd\" | \"del\" | \"details\" | \"dfn\" | \"dialog\" | \"div\" | \"dl\" | \"dt\" | \"em\" | \"embed\" | \"fieldset\" | \"figcaption\" | \"figure\" | \"footer\" | \"header\" | \"hgroup\" | \"hr\" | \"i\" | \"iframe\" | \"ins\" | \"kbd\" | \"keygen\" | \"li\" | \"mark\" | \"menuitem\" | \"meter\" | \"nav\" | \"noindex\" | \"noscript\" | \"ol\" | \"optgroup\" | \"option\" | \"param\" | \"picture\" | \"pre\" | \"rp\" | \"rt\" | \"ruby\" | \"samp\" | \"strong\" | \"table\" | \"tbody\" | \"td\" | \"tfoot\" | \"th\" | \"thead\" | \"tr\" | \"track\" | \"u\" | \"ul\" | \"video\" | \"wbr\" | \"webview\" | \"animateMotion\" | \"animateTransform\" | \"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\" | \"big\" | \"link\" | \"small\" | \"sub\" | \"sup\" | \"source\" | \"desc\" | \"filter\" | \"text\" | \"map\" | \"head\" | React.ComponentType | \"slot\" | \"style\" | \"title\" | \"meta\" | \"data\" | \"pattern\" | \"summary\" | \"template\" | \"span\" | \"main\" | \"path\" | \"form\" | \"body\" | \"q\" | \"label\" | \"progress\" | \"legend\" | \"article\" | \"image\" | \"menu\" | \"stop\" | \"base\" | \"s\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"p\" | \"canvas\" | \"svg\" | \"select\" | \"output\" | \"script\" | \"time\" | \"mask\" | \"input\" | \"section\" | \"circle\" | \"code\" | \"line\" | \"area\" | \"animate\" | \"view\" | \"var\" | \"html\" | \"a\" | \"img\" | \"audio\" | \"br\" | \"clipPath\" | \"textarea\" | \"abbr\" | \"address\" | \"aside\" | \"b\" | \"bdi\" | \"bdo\" | \"blockquote\" | \"button\" | \"caption\" | \"cite\" | \"col\" | \"colgroup\" | \"datalist\" | \"dd\" | \"del\" | \"details\" | \"dfn\" | \"dialog\" | \"div\" | \"dl\" | \"dt\" | \"em\" | \"embed\" | \"fieldset\" | \"figcaption\" | \"figure\" | \"footer\" | \"header\" | \"hgroup\" | \"hr\" | \"i\" | \"iframe\" | \"ins\" | \"kbd\" | \"keygen\" | \"li\" | \"mark\" | \"menuitem\" | \"meter\" | \"nav\" | \"noindex\" | \"noscript\" | \"ol\" | \"optgroup\" | \"option\" | \"param\" | \"picture\" | \"pre\" | \"rp\" | \"rt\" | \"ruby\" | \"samp\" | \"strong\" | \"table\" | \"tbody\" | \"td\" | \"tfoot\" | \"th\" | \"thead\" | \"tr\" | \"track\" | \"u\" | \"ul\" | \"video\" | \"wbr\" | \"webview\" | \"animateMotion\" | \"animateTransform\" | \"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\" | \"big\" | \"link\" | \"small\" | \"sub\" | \"sup\" | \"source\" | \"desc\" | \"filter\" | \"text\" | \"map\" | \"head\" | React.ComponentType | \"slot\" | \"style\" | \"title\" | \"meta\" | \"pattern\" | \"summary\" | \"template\" | \"span\" | \"main\" | \"path\" | \"form\" | \"body\" | \"q\" | \"label\" | \"data\" | \"progress\" | \"legend\" | \"article\" | \"image\" | \"menu\" | \"stop\" | \"base\" | \"s\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"p\" | \"canvas\" | \"svg\" | \"select\" | \"output\" | \"script\" | \"time\" | \"mask\" | \"input\" | \"section\" | \"circle\" | \"code\" | \"line\" | \"area\" | \"animate\" | \"view\" | \"var\" | \"html\" | \"a\" | \"img\" | \"audio\" | \"br\" | \"clipPath\" | \"textarea\" | \"abbr\" | \"address\" | \"aside\" | \"b\" | \"bdi\" | \"bdo\" | \"blockquote\" | \"button\" | \"caption\" | \"cite\" | \"col\" | \"colgroup\" | \"datalist\" | \"dd\" | \"del\" | \"details\" | \"dfn\" | \"dialog\" | \"div\" | \"dl\" | \"dt\" | \"em\" | \"embed\" | \"fieldset\" | \"figcaption\" | \"figure\" | \"footer\" | \"header\" | \"hgroup\" | \"hr\" | \"i\" | \"iframe\" | \"ins\" | \"kbd\" | \"keygen\" | \"li\" | \"mark\" | \"menuitem\" | \"meter\" | \"nav\" | \"noindex\" | \"noscript\" | \"ol\" | \"optgroup\" | \"option\" | \"param\" | \"picture\" | \"pre\" | \"rp\" | \"rt\" | \"ruby\" | \"samp\" | \"strong\" | \"table\" | \"tbody\" | \"td\" | \"tfoot\" | \"th\" | \"thead\" | \"tr\" | \"track\" | \"u\" | \"ul\" | \"video\" | \"wbr\" | \"webview\" | \"animateMotion\" | \"animateTransform\" | \"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\" | \"big\" | \"link\" | \"small\" | \"sub\" | \"sup\" | \"source\" | \"desc\" | \"filter\" | \"text\" | \"map\" | \"head\" | React.ComponentType | \"slot\" | \"style\" | \"title\" | \"meta\" | \"data\" | \"pattern\" | \"summary\" | \"template\" | \"span\" | \"main\" | \"path\" | \"form\" | \"body\" | \"q\" | \"label\" | \"progress\" | \"legend\" | \"article\" | \"image\" | \"menu\" | \"stop\" | \"base\" | \"s\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"p\" | \"canvas\" | \"svg\" | \"select\" | \"output\" | \"script\" | \"time\" | \"mask\" | \"input\" | \"section\" | \"circle\" | \"code\" | \"line\" | \"area\" | \"animate\" | \"view\" | \"var\" | \"html\" | \"a\" | \"img\" | \"audio\" | \"br\" | \"clipPath\" | \"textarea\" | \"abbr\" | \"address\" | \"aside\" | \"b\" | \"bdi\" | \"bdo\" | \"blockquote\" | \"button\" | \"caption\" | \"cite\" | \"col\" | \"colgroup\" | \"datalist\" | \"dd\" | \"del\" | \"details\" | \"dfn\" | \"dialog\" | \"div\" | \"dl\" | \"dt\" | \"em\" | \"embed\" | \"fieldset\" | \"figcaption\" | \"figure\" | \"footer\" | \"header\" | \"hgroup\" | \"hr\" | \"i\" | \"iframe\" | \"ins\" | \"kbd\" | \"keygen\" | \"li\" | \"mark\" | \"menuitem\" | \"meter\" | \"nav\" | \"noindex\" | \"noscript\" | \"ol\" | \"optgroup\" | \"option\" | \"param\" | \"picture\" | \"pre\" | \"rp\" | \"rt\" | \"ruby\" | \"samp\" | \"strong\" | \"table\" | \"tbody\" | \"td\" | \"tfoot\" | \"th\" | \"thead\" | \"tr\" | \"track\" | \"u\" | \"ul\" | \"video\" | \"wbr\" | \"webview\" | \"animateMotion\" | \"animateTransform\" | \"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\" | \"big\" | \"link\" | \"small\" | \"sub\" | \"sup\" | \"source\" | \"desc\" | \"filter\" | \"text\" | \"map\" | \"head\" | React.ComponentType | \"slot\" | \"style\" | \"title\" | \"meta\" | \"pattern\" | \"summary\" | \"template\" | \"span\" | \"main\" | \"path\" | \"form\" | \"body\" | \"q\" | \"label\" | \"data\" | \"progress\" | \"legend\" | \"article\" | \"image\" | \"menu\" | \"stop\" | \"base\" | \"s\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"p\" | \"canvas\" | \"svg\" | \"select\" | \"output\" | \"script\" | \"time\" | \"mask\" | \"input\" | \"section\" | \"circle\" | \"code\" | \"line\" | \"area\" | \"animate\" | \"view\" | \"var\" | \"html\" | \"a\" | \"img\" | \"audio\" | \"br\" | \"clipPath\" | \"textarea\" | \"abbr\" | \"address\" | \"aside\" | \"b\" | \"bdi\" | \"bdo\" | \"blockquote\" | \"button\" | \"caption\" | \"cite\" | \"col\" | \"colgroup\" | \"datalist\" | \"dd\" | \"del\" | \"details\" | \"dfn\" | \"dialog\" | \"div\" | \"dl\" | \"dt\" | \"em\" | \"embed\" | \"fieldset\" | \"figcaption\" | \"figure\" | \"footer\" | \"header\" | \"hgroup\" | \"hr\" | \"i\" | \"iframe\" | \"ins\" | \"kbd\" | \"keygen\" | \"li\" | \"mark\" | \"menuitem\" | \"meter\" | \"nav\" | \"noindex\" | \"noscript\" | \"ol\" | \"optgroup\" | \"option\" | \"param\" | \"picture\" | \"pre\" | \"rp\" | \"rt\" | \"ruby\" | \"samp\" | \"strong\" | \"table\" | \"tbody\" | \"td\" | \"tfoot\" | \"th\" | \"thead\" | \"tr\" | \"track\" | \"u\" | \"ul\" | \"video\" | \"wbr\" | \"webview\" | \"animateMotion\" | \"animateTransform\" | \"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\" | \"big\" | \"link\" | \"small\" | \"sub\" | \"sup\" | \"source\" | \"desc\" | \"filter\" | \"text\" | \"map\" | \"head\" | React.ComponentType | \"slot\" | \"style\" | \"title\" | \"meta\" | \"data\" | \"pattern\" | \"summary\" | \"template\" | \"span\" | \"main\" | \"path\" | \"form\" | \"body\" | \"q\" | \"label\" | \"progress\" | \"legend\" | \"article\" | \"image\" | \"menu\" | \"stop\" | \"base\" | \"s\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"p\" | \"canvas\" | \"svg\" | \"select\" | \"output\" | \"script\" | \"time\" | \"mask\" | \"input\" | \"section\" | \"circle\" | \"code\" | \"line\" | \"area\" | \"animate\" | \"view\" | \"var\" | \"html\" | \"a\" | \"img\" | \"audio\" | \"br\" | \"clipPath\" | \"textarea\" | \"abbr\" | \"address\" | \"aside\" | \"b\" | \"bdi\" | \"bdo\" | \"blockquote\" | \"button\" | \"caption\" | \"cite\" | \"col\" | \"colgroup\" | \"datalist\" | \"dd\" | \"del\" | \"details\" | \"dfn\" | \"dialog\" | \"div\" | \"dl\" | \"dt\" | \"em\" | \"embed\" | \"fieldset\" | \"figcaption\" | \"figure\" | \"footer\" | \"header\" | \"hgroup\" | \"hr\" | \"i\" | \"iframe\" | \"ins\" | \"kbd\" | \"keygen\" | \"li\" | \"mark\" | \"menuitem\" | \"meter\" | \"nav\" | \"noindex\" | \"noscript\" | \"ol\" | \"optgroup\" | \"option\" | \"param\" | \"picture\" | \"pre\" | \"rp\" | \"rt\" | \"ruby\" | \"samp\" | \"strong\" | \"table\" | \"tbody\" | \"td\" | \"tfoot\" | \"th\" | \"thead\" | \"tr\" | \"track\" | \"u\" | \"ul\" | \"video\" | \"wbr\" | \"webview\" | \"animateMotion\" | \"animateTransform\" | \"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 694b284712bb6..174c3b0e95f8a 100644 --- a/api_docs/kbn_securitysolution_exception_list_components.mdx +++ b/api_docs/kbn_securitysolution_exception_list_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-exception-list-components title: "@kbn/securitysolution-exception-list-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-exception-list-components plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-exception-list-components'] --- import kbnSecuritysolutionExceptionListComponentsObj from './kbn_securitysolution_exception_list_components.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_grouping.mdx b/api_docs/kbn_securitysolution_grouping.mdx index 909530da0450b..ad6972724d751 100644 --- a/api_docs/kbn_securitysolution_grouping.mdx +++ b/api_docs/kbn_securitysolution_grouping.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-grouping title: "@kbn/securitysolution-grouping" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-grouping plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-grouping'] --- import kbnSecuritysolutionGroupingObj from './kbn_securitysolution_grouping.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_hook_utils.mdx b/api_docs/kbn_securitysolution_hook_utils.mdx index 84a92abbf31ef..261d8f09dd7cb 100644 --- a/api_docs/kbn_securitysolution_hook_utils.mdx +++ b/api_docs/kbn_securitysolution_hook_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-hook-utils title: "@kbn/securitysolution-hook-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-hook-utils plugin -date: 2023-10-11 +date: 2023-10-12 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 8cbe8623f7cf8..626e9ff512a9a 100644 --- a/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-alerting-types title: "@kbn/securitysolution-io-ts-alerting-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-alerting-types plugin -date: 2023-10-11 +date: 2023-10-12 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 341648480f4ff..af7f5c9097616 100644 --- a/api_docs/kbn_securitysolution_io_ts_list_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_list_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-list-types title: "@kbn/securitysolution-io-ts-list-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-list-types plugin -date: 2023-10-11 +date: 2023-10-12 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 f3dcb156ce598..16ebfd01d7bd4 100644 --- a/api_docs/kbn_securitysolution_io_ts_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-types title: "@kbn/securitysolution-io-ts-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-types plugin -date: 2023-10-11 +date: 2023-10-12 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 a7e3b03e522e8..9489b2388894a 100644 --- a/api_docs/kbn_securitysolution_io_ts_utils.mdx +++ b/api_docs/kbn_securitysolution_io_ts_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-utils title: "@kbn/securitysolution-io-ts-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-utils plugin -date: 2023-10-11 +date: 2023-10-12 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 ec49728d12322..17a22fcfa4b5f 100644 --- a/api_docs/kbn_securitysolution_list_api.mdx +++ b/api_docs/kbn_securitysolution_list_api.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-api title: "@kbn/securitysolution-list-api" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-api plugin -date: 2023-10-11 +date: 2023-10-12 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 b9cae5e171031..22a1da49f560d 100644 --- a/api_docs/kbn_securitysolution_list_constants.mdx +++ b/api_docs/kbn_securitysolution_list_constants.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-constants title: "@kbn/securitysolution-list-constants" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-constants plugin -date: 2023-10-11 +date: 2023-10-12 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 d4ea36632b31a..acec1671a25a7 100644 --- a/api_docs/kbn_securitysolution_list_hooks.mdx +++ b/api_docs/kbn_securitysolution_list_hooks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-hooks title: "@kbn/securitysolution-list-hooks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-hooks plugin -date: 2023-10-11 +date: 2023-10-12 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 a69f8ae6a12a1..040d61e61ad0b 100644 --- a/api_docs/kbn_securitysolution_list_utils.mdx +++ b/api_docs/kbn_securitysolution_list_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-utils title: "@kbn/securitysolution-list-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-utils plugin -date: 2023-10-11 +date: 2023-10-12 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 4a520ea4dae81..ac28bcea3da4f 100644 --- a/api_docs/kbn_securitysolution_rules.mdx +++ b/api_docs/kbn_securitysolution_rules.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-rules title: "@kbn/securitysolution-rules" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-rules plugin -date: 2023-10-11 +date: 2023-10-12 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 075c24fa5f96b..30270910f4352 100644 --- a/api_docs/kbn_securitysolution_t_grid.mdx +++ b/api_docs/kbn_securitysolution_t_grid.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-t-grid title: "@kbn/securitysolution-t-grid" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-t-grid plugin -date: 2023-10-11 +date: 2023-10-12 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 dbb25c792d473..d791831ad679f 100644 --- a/api_docs/kbn_securitysolution_utils.mdx +++ b/api_docs/kbn_securitysolution_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-utils title: "@kbn/securitysolution-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-utils plugin -date: 2023-10-11 +date: 2023-10-12 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 245be308506db..9b1b4e51002c5 100644 --- a/api_docs/kbn_server_http_tools.mdx +++ b/api_docs/kbn_server_http_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-http-tools title: "@kbn/server-http-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/server-http-tools plugin -date: 2023-10-11 +date: 2023-10-12 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 2ac534b5f40f7..c8b25abb98182 100644 --- a/api_docs/kbn_server_route_repository.mdx +++ b/api_docs/kbn_server_route_repository.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-route-repository title: "@kbn/server-route-repository" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/server-route-repository plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/server-route-repository'] --- import kbnServerRouteRepositoryObj from './kbn_server_route_repository.devdocs.json'; diff --git a/api_docs/kbn_serverless_common_settings.mdx b/api_docs/kbn_serverless_common_settings.mdx index 5aa48084230f0..f2df3efbf2a49 100644 --- a/api_docs/kbn_serverless_common_settings.mdx +++ b/api_docs/kbn_serverless_common_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-common-settings title: "@kbn/serverless-common-settings" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/serverless-common-settings plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-common-settings'] --- import kbnServerlessCommonSettingsObj from './kbn_serverless_common_settings.devdocs.json'; diff --git a/api_docs/kbn_serverless_observability_settings.mdx b/api_docs/kbn_serverless_observability_settings.mdx index fe0b83e8becb6..f22449bd2ff32 100644 --- a/api_docs/kbn_serverless_observability_settings.mdx +++ b/api_docs/kbn_serverless_observability_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-observability-settings title: "@kbn/serverless-observability-settings" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/serverless-observability-settings plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-observability-settings'] --- import kbnServerlessObservabilitySettingsObj from './kbn_serverless_observability_settings.devdocs.json'; diff --git a/api_docs/kbn_serverless_project_switcher.mdx b/api_docs/kbn_serverless_project_switcher.mdx index 980ffed040d57..1639c79800039 100644 --- a/api_docs/kbn_serverless_project_switcher.mdx +++ b/api_docs/kbn_serverless_project_switcher.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-project-switcher title: "@kbn/serverless-project-switcher" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/serverless-project-switcher plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-project-switcher'] --- import kbnServerlessProjectSwitcherObj from './kbn_serverless_project_switcher.devdocs.json'; diff --git a/api_docs/kbn_serverless_search_settings.mdx b/api_docs/kbn_serverless_search_settings.mdx index 8e48602cf9eb6..c5622f98ddcce 100644 --- a/api_docs/kbn_serverless_search_settings.mdx +++ b/api_docs/kbn_serverless_search_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-search-settings title: "@kbn/serverless-search-settings" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/serverless-search-settings plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-search-settings'] --- import kbnServerlessSearchSettingsObj from './kbn_serverless_search_settings.devdocs.json'; diff --git a/api_docs/kbn_serverless_security_settings.mdx b/api_docs/kbn_serverless_security_settings.mdx index 0c0ad2ddae751..98ddc30adddf8 100644 --- a/api_docs/kbn_serverless_security_settings.mdx +++ b/api_docs/kbn_serverless_security_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-security-settings title: "@kbn/serverless-security-settings" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/serverless-security-settings plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-security-settings'] --- import kbnServerlessSecuritySettingsObj from './kbn_serverless_security_settings.devdocs.json'; diff --git a/api_docs/kbn_serverless_storybook_config.mdx b/api_docs/kbn_serverless_storybook_config.mdx index 152d68d0062a2..f185d7748ec36 100644 --- a/api_docs/kbn_serverless_storybook_config.mdx +++ b/api_docs/kbn_serverless_storybook_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-storybook-config title: "@kbn/serverless-storybook-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/serverless-storybook-config plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-storybook-config'] --- import kbnServerlessStorybookConfigObj from './kbn_serverless_storybook_config.devdocs.json'; diff --git a/api_docs/kbn_shared_svg.mdx b/api_docs/kbn_shared_svg.mdx index 941f3b4093f1d..3d7cef377453f 100644 --- a/api_docs/kbn_shared_svg.mdx +++ b/api_docs/kbn_shared_svg.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-svg title: "@kbn/shared-svg" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-svg plugin -date: 2023-10-11 +date: 2023-10-12 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 6a2ce6b128dba..38e3956fe8248 100644 --- a/api_docs/kbn_shared_ux_avatar_solution.mdx +++ b/api_docs/kbn_shared_ux_avatar_solution.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-avatar-solution title: "@kbn/shared-ux-avatar-solution" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-avatar-solution plugin -date: 2023-10-11 +date: 2023-10-12 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 86e507af8ea7d..b0225725ba35a 100644 --- a/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx +++ b/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-avatar-user-profile-components title: "@kbn/shared-ux-avatar-user-profile-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-avatar-user-profile-components plugin -date: 2023-10-11 +date: 2023-10-12 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 296de670a1dfd..b31bf3809829b 100644 --- a/api_docs/kbn_shared_ux_button_exit_full_screen.mdx +++ b/api_docs/kbn_shared_ux_button_exit_full_screen.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-exit-full-screen title: "@kbn/shared-ux-button-exit-full-screen" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-exit-full-screen plugin -date: 2023-10-11 +date: 2023-10-12 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 0a49e1aef3de1..a78640ae94363 100644 --- a/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx +++ b/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-exit-full-screen-mocks title: "@kbn/shared-ux-button-exit-full-screen-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-exit-full-screen-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 221a3c886bc09..757d40d2994ce 100644 --- a/api_docs/kbn_shared_ux_button_toolbar.mdx +++ b/api_docs/kbn_shared_ux_button_toolbar.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-toolbar title: "@kbn/shared-ux-button-toolbar" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-toolbar plugin -date: 2023-10-11 +date: 2023-10-12 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 bf686fae505c1..77af53a2a3c45 100644 --- a/api_docs/kbn_shared_ux_card_no_data.mdx +++ b/api_docs/kbn_shared_ux_card_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-card-no-data title: "@kbn/shared-ux-card-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-card-no-data plugin -date: 2023-10-11 +date: 2023-10-12 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 2e1683a400d1e..6196992776897 100644 --- a/api_docs/kbn_shared_ux_card_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_card_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-card-no-data-mocks title: "@kbn/shared-ux-card-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-card-no-data-mocks plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-card-no-data-mocks'] --- import kbnSharedUxCardNoDataMocksObj from './kbn_shared_ux_card_no_data_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_chrome_navigation.mdx b/api_docs/kbn_shared_ux_chrome_navigation.mdx index 27df74ddc3056..dd121d5436257 100644 --- a/api_docs/kbn_shared_ux_chrome_navigation.mdx +++ b/api_docs/kbn_shared_ux_chrome_navigation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-chrome-navigation title: "@kbn/shared-ux-chrome-navigation" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-chrome-navigation plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-chrome-navigation'] --- import kbnSharedUxChromeNavigationObj from './kbn_shared_ux_chrome_navigation.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_context.mdx b/api_docs/kbn_shared_ux_file_context.mdx index 2b60c6f6aa3a7..d668621341178 100644 --- a/api_docs/kbn_shared_ux_file_context.mdx +++ b/api_docs/kbn_shared_ux_file_context.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-context title: "@kbn/shared-ux-file-context" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-context plugin -date: 2023-10-11 +date: 2023-10-12 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 8a696e7604577..29d6a6b073bfa 100644 --- a/api_docs/kbn_shared_ux_file_image.mdx +++ b/api_docs/kbn_shared_ux_file_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-image title: "@kbn/shared-ux-file-image" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-image plugin -date: 2023-10-11 +date: 2023-10-12 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 17323bebd08b8..cb077c51ad4dd 100644 --- a/api_docs/kbn_shared_ux_file_image_mocks.mdx +++ b/api_docs/kbn_shared_ux_file_image_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-image-mocks title: "@kbn/shared-ux-file-image-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-image-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 1cbe57c1a6658..b1f20e7f3dc4d 100644 --- a/api_docs/kbn_shared_ux_file_mocks.mdx +++ b/api_docs/kbn_shared_ux_file_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-mocks title: "@kbn/shared-ux-file-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 a418eebd3e68b..be15ee86b6cf5 100644 --- a/api_docs/kbn_shared_ux_file_picker.mdx +++ b/api_docs/kbn_shared_ux_file_picker.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-picker title: "@kbn/shared-ux-file-picker" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-picker plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-picker'] --- import kbnSharedUxFilePickerObj from './kbn_shared_ux_file_picker.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_types.mdx b/api_docs/kbn_shared_ux_file_types.mdx index 6bf6b05b04d15..b30003a4ac4de 100644 --- a/api_docs/kbn_shared_ux_file_types.mdx +++ b/api_docs/kbn_shared_ux_file_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-types title: "@kbn/shared-ux-file-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-types plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-types'] --- import kbnSharedUxFileTypesObj from './kbn_shared_ux_file_types.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_upload.mdx b/api_docs/kbn_shared_ux_file_upload.mdx index a205e6f616581..416224b2d1229 100644 --- a/api_docs/kbn_shared_ux_file_upload.mdx +++ b/api_docs/kbn_shared_ux_file_upload.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-upload title: "@kbn/shared-ux-file-upload" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-upload plugin -date: 2023-10-11 +date: 2023-10-12 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 4e315e67f1335..91a6b97f22762 100644 --- a/api_docs/kbn_shared_ux_file_util.mdx +++ b/api_docs/kbn_shared_ux_file_util.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-util title: "@kbn/shared-ux-file-util" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-util plugin -date: 2023-10-11 +date: 2023-10-12 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 45f2f2b80e8d1..ecfed475e801f 100644 --- a/api_docs/kbn_shared_ux_link_redirect_app.mdx +++ b/api_docs/kbn_shared_ux_link_redirect_app.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-link-redirect-app title: "@kbn/shared-ux-link-redirect-app" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-link-redirect-app plugin -date: 2023-10-11 +date: 2023-10-12 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 8a332a63766ae..57aa580df81c8 100644 --- a/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx +++ b/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-link-redirect-app-mocks title: "@kbn/shared-ux-link-redirect-app-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-link-redirect-app-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 07d914db80e65..1ffac76253831 100644 --- a/api_docs/kbn_shared_ux_markdown.mdx +++ b/api_docs/kbn_shared_ux_markdown.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-markdown title: "@kbn/shared-ux-markdown" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-markdown plugin -date: 2023-10-11 +date: 2023-10-12 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 f8b5e310c2b74..a286bf35abc3e 100644 --- a/api_docs/kbn_shared_ux_markdown_mocks.mdx +++ b/api_docs/kbn_shared_ux_markdown_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-markdown-mocks title: "@kbn/shared-ux-markdown-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-markdown-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 e122600a37d28..8a152db396d8f 100644 --- a/api_docs/kbn_shared_ux_page_analytics_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_analytics_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-analytics-no-data title: "@kbn/shared-ux-page-analytics-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-analytics-no-data plugin -date: 2023-10-11 +date: 2023-10-12 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 cd3963eca18fb..3748201bac4e9 100644 --- a/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-analytics-no-data-mocks title: "@kbn/shared-ux-page-analytics-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-analytics-no-data-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 5e835dd6b9a05..0283ce302d278 100644 --- a/api_docs/kbn_shared_ux_page_kibana_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-no-data title: "@kbn/shared-ux-page-kibana-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-no-data plugin -date: 2023-10-11 +date: 2023-10-12 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 a13d616c6ecf3..60eb9ae3be491 100644 --- a/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-no-data-mocks title: "@kbn/shared-ux-page-kibana-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-no-data-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 6e3cc5246c0a2..7852d196a7e3c 100644 --- a/api_docs/kbn_shared_ux_page_kibana_template.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_template.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-template title: "@kbn/shared-ux-page-kibana-template" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-template plugin -date: 2023-10-11 +date: 2023-10-12 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 26052e1313e4a..05523e0edf07e 100644 --- a/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-template-mocks title: "@kbn/shared-ux-page-kibana-template-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-template-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 e01668fd47357..34a378e553bd9 100644 --- a/api_docs/kbn_shared_ux_page_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data title: "@kbn/shared-ux-page-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data plugin -date: 2023-10-11 +date: 2023-10-12 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 7ddf4232261c0..c4f44c3be50b2 100644 --- a/api_docs/kbn_shared_ux_page_no_data_config.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-config title: "@kbn/shared-ux-page-no-data-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-config plugin -date: 2023-10-11 +date: 2023-10-12 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 1510e67134c3b..e742224a9153a 100644 --- a/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-config-mocks title: "@kbn/shared-ux-page-no-data-config-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-config-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 7135f3f0a2f6d..d2a1ba6e6ffa9 100644 --- a/api_docs/kbn_shared_ux_page_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-mocks title: "@kbn/shared-ux-page-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 c73989a1cb9d7..9646e2a86bf7a 100644 --- a/api_docs/kbn_shared_ux_page_solution_nav.mdx +++ b/api_docs/kbn_shared_ux_page_solution_nav.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-solution-nav title: "@kbn/shared-ux-page-solution-nav" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-solution-nav plugin -date: 2023-10-11 +date: 2023-10-12 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 1d678735efb16..3fd3ae4be2704 100644 --- a/api_docs/kbn_shared_ux_prompt_no_data_views.mdx +++ b/api_docs/kbn_shared_ux_prompt_no_data_views.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-no-data-views title: "@kbn/shared-ux-prompt-no-data-views" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-no-data-views plugin -date: 2023-10-11 +date: 2023-10-12 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 8637b241418c4..4e5d581af1e3f 100644 --- a/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx +++ b/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-no-data-views-mocks title: "@kbn/shared-ux-prompt-no-data-views-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-no-data-views-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 aceb407f276e5..c635ff3838a27 100644 --- a/api_docs/kbn_shared_ux_prompt_not_found.mdx +++ b/api_docs/kbn_shared_ux_prompt_not_found.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-not-found title: "@kbn/shared-ux-prompt-not-found" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-not-found plugin -date: 2023-10-11 +date: 2023-10-12 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 274dcf6c6ba35..eb59ebfe39635 100644 --- a/api_docs/kbn_shared_ux_router.mdx +++ b/api_docs/kbn_shared_ux_router.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-router title: "@kbn/shared-ux-router" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-router plugin -date: 2023-10-11 +date: 2023-10-12 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 902db8b635f25..972e2a3987e74 100644 --- a/api_docs/kbn_shared_ux_router_mocks.mdx +++ b/api_docs/kbn_shared_ux_router_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-router-mocks title: "@kbn/shared-ux-router-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-router-mocks plugin -date: 2023-10-11 +date: 2023-10-12 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 4daf6f785af1e..e1d55527c6d58 100644 --- a/api_docs/kbn_shared_ux_storybook_config.mdx +++ b/api_docs/kbn_shared_ux_storybook_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-storybook-config title: "@kbn/shared-ux-storybook-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-storybook-config plugin -date: 2023-10-11 +date: 2023-10-12 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 951aeb43d95ce..05c67b7055b99 100644 --- a/api_docs/kbn_shared_ux_storybook_mock.mdx +++ b/api_docs/kbn_shared_ux_storybook_mock.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-storybook-mock title: "@kbn/shared-ux-storybook-mock" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-storybook-mock plugin -date: 2023-10-11 +date: 2023-10-12 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 8e7338d4d6f01..3c4f53d29abd0 100644 --- a/api_docs/kbn_shared_ux_utility.mdx +++ b/api_docs/kbn_shared_ux_utility.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-utility title: "@kbn/shared-ux-utility" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-utility plugin -date: 2023-10-11 +date: 2023-10-12 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 f28024596c227..05ee7937756ab 100644 --- a/api_docs/kbn_slo_schema.mdx +++ b/api_docs/kbn_slo_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-slo-schema title: "@kbn/slo-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/slo-schema plugin -date: 2023-10-11 +date: 2023-10-12 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 da314ac0e5270..b5cfc60c49a4b 100644 --- a/api_docs/kbn_some_dev_log.mdx +++ b/api_docs/kbn_some_dev_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-some-dev-log title: "@kbn/some-dev-log" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/some-dev-log plugin -date: 2023-10-11 +date: 2023-10-12 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 e19de17ec76c5..bee45b066efd8 100644 --- a/api_docs/kbn_std.mdx +++ b/api_docs/kbn_std.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-std title: "@kbn/std" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/std plugin -date: 2023-10-11 +date: 2023-10-12 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 d09dd48500f64..97e83ba5ee2a7 100644 --- a/api_docs/kbn_stdio_dev_helpers.mdx +++ b/api_docs/kbn_stdio_dev_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-stdio-dev-helpers title: "@kbn/stdio-dev-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/stdio-dev-helpers plugin -date: 2023-10-11 +date: 2023-10-12 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 ba6e3d1c40061..0278aa2e71b75 100644 --- a/api_docs/kbn_storybook.mdx +++ b/api_docs/kbn_storybook.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-storybook title: "@kbn/storybook" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/storybook plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/storybook'] --- import kbnStorybookObj from './kbn_storybook.devdocs.json'; diff --git a/api_docs/kbn_subscription_tracking.mdx b/api_docs/kbn_subscription_tracking.mdx index 3dcbe8d1908a7..601d5d4af9e74 100644 --- a/api_docs/kbn_subscription_tracking.mdx +++ b/api_docs/kbn_subscription_tracking.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-subscription-tracking title: "@kbn/subscription-tracking" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/subscription-tracking plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/subscription-tracking'] --- import kbnSubscriptionTrackingObj from './kbn_subscription_tracking.devdocs.json'; diff --git a/api_docs/kbn_telemetry_tools.mdx b/api_docs/kbn_telemetry_tools.mdx index b279295e4bee2..1d10313dd8ada 100644 --- a/api_docs/kbn_telemetry_tools.mdx +++ b/api_docs/kbn_telemetry_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-telemetry-tools title: "@kbn/telemetry-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/telemetry-tools plugin -date: 2023-10-11 +date: 2023-10-12 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 01c4d0fea0364..341b7349366d1 100644 --- a/api_docs/kbn_test.mdx +++ b/api_docs/kbn_test.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test title: "@kbn/test" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test plugin -date: 2023-10-11 +date: 2023-10-12 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 3d1142d236ea1..d5842b6b6c810 100644 --- a/api_docs/kbn_test_jest_helpers.mdx +++ b/api_docs/kbn_test_jest_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-jest-helpers title: "@kbn/test-jest-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test-jest-helpers plugin -date: 2023-10-11 +date: 2023-10-12 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 35de50b112c35..4a408d9553b83 100644 --- a/api_docs/kbn_test_subj_selector.mdx +++ b/api_docs/kbn_test_subj_selector.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-subj-selector title: "@kbn/test-subj-selector" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test-subj-selector plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test-subj-selector'] --- import kbnTestSubjSelectorObj from './kbn_test_subj_selector.devdocs.json'; diff --git a/api_docs/kbn_text_based_editor.mdx b/api_docs/kbn_text_based_editor.mdx index 0b28e344ca639..76dab3c15e345 100644 --- a/api_docs/kbn_text_based_editor.mdx +++ b/api_docs/kbn_text_based_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-text-based-editor title: "@kbn/text-based-editor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/text-based-editor plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/text-based-editor'] --- import kbnTextBasedEditorObj from './kbn_text_based_editor.devdocs.json'; diff --git a/api_docs/kbn_tooling_log.mdx b/api_docs/kbn_tooling_log.mdx index 2365e201e0a7c..07fd2e31bf8d1 100644 --- a/api_docs/kbn_tooling_log.mdx +++ b/api_docs/kbn_tooling_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-tooling-log title: "@kbn/tooling-log" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/tooling-log plugin -date: 2023-10-11 +date: 2023-10-12 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 2f826c8d2f539..769b1f459c00b 100644 --- a/api_docs/kbn_ts_projects.mdx +++ b/api_docs/kbn_ts_projects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ts-projects title: "@kbn/ts-projects" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ts-projects plugin -date: 2023-10-11 +date: 2023-10-12 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 c9d26a11bc428..25f0425261175 100644 --- a/api_docs/kbn_typed_react_router_config.mdx +++ b/api_docs/kbn_typed_react_router_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-typed-react-router-config title: "@kbn/typed-react-router-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/typed-react-router-config plugin -date: 2023-10-11 +date: 2023-10-12 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 bd8f7a6f5d75e..c343b77f1f742 100644 --- a/api_docs/kbn_ui_actions_browser.mdx +++ b/api_docs/kbn_ui_actions_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-actions-browser title: "@kbn/ui-actions-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-actions-browser plugin -date: 2023-10-11 +date: 2023-10-12 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 58b5eddf4f904..bffa40c20c575 100644 --- a/api_docs/kbn_ui_shared_deps_src.mdx +++ b/api_docs/kbn_ui_shared_deps_src.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-shared-deps-src title: "@kbn/ui-shared-deps-src" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-shared-deps-src plugin -date: 2023-10-11 +date: 2023-10-12 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 a44c792ea5d83..b67300e2e979c 100644 --- a/api_docs/kbn_ui_theme.mdx +++ b/api_docs/kbn_ui_theme.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-theme title: "@kbn/ui-theme" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-theme plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-theme'] --- import kbnUiThemeObj from './kbn_ui_theme.devdocs.json'; diff --git a/api_docs/kbn_unified_data_table.mdx b/api_docs/kbn_unified_data_table.mdx index d20f17dd87754..220c320aaf92f 100644 --- a/api_docs/kbn_unified_data_table.mdx +++ b/api_docs/kbn_unified_data_table.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-unified-data-table title: "@kbn/unified-data-table" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/unified-data-table plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unified-data-table'] --- import kbnUnifiedDataTableObj from './kbn_unified_data_table.devdocs.json'; diff --git a/api_docs/kbn_unified_doc_viewer.mdx b/api_docs/kbn_unified_doc_viewer.mdx index b2452ff8c8711..99e06213b6fee 100644 --- a/api_docs/kbn_unified_doc_viewer.mdx +++ b/api_docs/kbn_unified_doc_viewer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-unified-doc-viewer title: "@kbn/unified-doc-viewer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/unified-doc-viewer plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unified-doc-viewer'] --- import kbnUnifiedDocViewerObj from './kbn_unified_doc_viewer.devdocs.json'; diff --git a/api_docs/kbn_unified_field_list.mdx b/api_docs/kbn_unified_field_list.mdx index 038458aa2c026..720240641e917 100644 --- a/api_docs/kbn_unified_field_list.mdx +++ b/api_docs/kbn_unified_field_list.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-unified-field-list title: "@kbn/unified-field-list" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/unified-field-list plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unified-field-list'] --- import kbnUnifiedFieldListObj from './kbn_unified_field_list.devdocs.json'; diff --git a/api_docs/kbn_url_state.mdx b/api_docs/kbn_url_state.mdx index 715823cb4e37c..94c8a7ccd97cd 100644 --- a/api_docs/kbn_url_state.mdx +++ b/api_docs/kbn_url_state.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-url-state title: "@kbn/url-state" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/url-state plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/url-state'] --- import kbnUrlStateObj from './kbn_url_state.devdocs.json'; diff --git a/api_docs/kbn_use_tracked_promise.mdx b/api_docs/kbn_use_tracked_promise.mdx index c7f4c334122df..8e0e1bbd13e8f 100644 --- a/api_docs/kbn_use_tracked_promise.mdx +++ b/api_docs/kbn_use_tracked_promise.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-use-tracked-promise title: "@kbn/use-tracked-promise" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/use-tracked-promise plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/use-tracked-promise'] --- import kbnUseTrackedPromiseObj from './kbn_use_tracked_promise.devdocs.json'; diff --git a/api_docs/kbn_user_profile_components.mdx b/api_docs/kbn_user_profile_components.mdx index 9384ff7ce775f..f2da7cca2192a 100644 --- a/api_docs/kbn_user_profile_components.mdx +++ b/api_docs/kbn_user_profile_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-user-profile-components title: "@kbn/user-profile-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/user-profile-components plugin -date: 2023-10-11 +date: 2023-10-12 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 ead7160ac7453..9000c8077f0f7 100644 --- a/api_docs/kbn_utility_types.mdx +++ b/api_docs/kbn_utility_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utility-types title: "@kbn/utility-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utility-types plugin -date: 2023-10-11 +date: 2023-10-12 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 6385312fbe90f..71bf95fa623de 100644 --- a/api_docs/kbn_utility_types_jest.mdx +++ b/api_docs/kbn_utility_types_jest.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utility-types-jest title: "@kbn/utility-types-jest" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utility-types-jest plugin -date: 2023-10-11 +date: 2023-10-12 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 006ae409edab6..993cb995329aa 100644 --- a/api_docs/kbn_utils.mdx +++ b/api_docs/kbn_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utils title: "@kbn/utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utils plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/utils'] --- import kbnUtilsObj from './kbn_utils.devdocs.json'; diff --git a/api_docs/kbn_visualization_ui_components.mdx b/api_docs/kbn_visualization_ui_components.mdx index 62d91b152f024..ad98d61b72f2c 100644 --- a/api_docs/kbn_visualization_ui_components.mdx +++ b/api_docs/kbn_visualization_ui_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-visualization-ui-components title: "@kbn/visualization-ui-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/visualization-ui-components plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/visualization-ui-components'] --- import kbnVisualizationUiComponentsObj from './kbn_visualization_ui_components.devdocs.json'; diff --git a/api_docs/kbn_xstate_utils.mdx b/api_docs/kbn_xstate_utils.mdx index 6b53a77fda3bb..4ec075139fec5 100644 --- a/api_docs/kbn_xstate_utils.mdx +++ b/api_docs/kbn_xstate_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-xstate-utils title: "@kbn/xstate-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/xstate-utils plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/xstate-utils'] --- import kbnXstateUtilsObj from './kbn_xstate_utils.devdocs.json'; diff --git a/api_docs/kbn_yarn_lock_validator.mdx b/api_docs/kbn_yarn_lock_validator.mdx index bc52134360117..523101dd8ea70 100644 --- a/api_docs/kbn_yarn_lock_validator.mdx +++ b/api_docs/kbn_yarn_lock_validator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-yarn-lock-validator title: "@kbn/yarn-lock-validator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/yarn-lock-validator plugin -date: 2023-10-11 +date: 2023-10-12 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 b72c2469d3966..86815824b5d4b 100644 --- a/api_docs/kibana_overview.mdx +++ b/api_docs/kibana_overview.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaOverview title: "kibanaOverview" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaOverview plugin -date: 2023-10-11 +date: 2023-10-12 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 9f2f9bf2d2610..572bcd5ed3e62 100644 --- a/api_docs/kibana_react.devdocs.json +++ b/api_docs/kibana_react.devdocs.json @@ -5758,7 +5758,7 @@ "label": "POSITIONS", "description": [], "signature": [ - "(\"none\" | \"left\" | \"right\" | \"center\")[]" + "(\"none\" | \"right\" | \"left\" | \"center\")[]" ], "path": "src/plugins/kibana_react/public/toolbar_button/toolbar_button.tsx", "deprecated": false, @@ -5804,7 +5804,7 @@ "EuiButtonPropsForAnchor", "> & ", "EuiButtonProps", - " & { href?: string | undefined; onClick?: React.MouseEventHandler | undefined; } & React.AnchorHTMLAttributes & { buttonRef?: React.Ref | undefined; })) & { fontWeight?: Weights | undefined; size?: \"m\" | \"s\" | undefined; hasArrow?: boolean | undefined; groupPosition?: \"none\" | \"left\" | \"right\" | \"center\" | undefined; dataTestSubj?: string | undefined; }" + " & { href?: string | undefined; onClick?: React.MouseEventHandler | undefined; } & React.AnchorHTMLAttributes & { buttonRef?: React.Ref | undefined; })) & { fontWeight?: Weights | undefined; size?: \"m\" | \"s\" | undefined; hasArrow?: boolean | undefined; groupPosition?: \"none\" | \"right\" | \"left\" | \"center\" | undefined; dataTestSubj?: string | undefined; }" ], "path": "src/plugins/kibana_react/public/toolbar_button/toolbar_button.tsx", "deprecated": false, diff --git a/api_docs/kibana_react.mdx b/api_docs/kibana_react.mdx index 3ad72d12a68cd..88544b39e09dd 100644 --- a/api_docs/kibana_react.mdx +++ b/api_docs/kibana_react.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaReact title: "kibanaReact" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaReact plugin -date: 2023-10-11 +date: 2023-10-12 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 94657a56e317d..46f1b0d56b71c 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-10-11 +date: 2023-10-12 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 f5875a736ca3a..0576cd4390e3a 100644 --- a/api_docs/kubernetes_security.mdx +++ b/api_docs/kubernetes_security.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kubernetesSecurity title: "kubernetesSecurity" image: https://source.unsplash.com/400x175/?github description: API docs for the kubernetesSecurity plugin -date: 2023-10-11 +date: 2023-10-12 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 e1d0d838f62bc..74c9767733b92 100644 --- a/api_docs/lens.devdocs.json +++ b/api_docs/lens.devdocs.json @@ -2862,7 +2862,7 @@ "label": "autoScaleMetricAlignment", "description": [], "signature": [ - "\"left\" | \"right\" | \"center\" | undefined" + "\"right\" | \"left\" | \"center\" | undefined" ], "path": "x-pack/plugins/lens/common/types.ts", "deprecated": false, @@ -2993,7 +2993,7 @@ "label": "textAlign", "description": [], "signature": [ - "\"left\" | \"right\" | \"center\" | undefined" + "\"right\" | \"left\" | \"center\" | undefined" ], "path": "x-pack/plugins/lens/common/types.ts", "deprecated": false, @@ -3036,7 +3036,7 @@ "\nPosition of the legend relative to the chart" ], "signature": [ - "\"top\" | \"left\" | \"right\" | \"bottom\"" + "\"right\" | \"left\" | \"top\" | \"bottom\"" ], "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false, @@ -3084,7 +3084,7 @@ "\nHorizontal Alignment of the legend when it is set inside chart" ], "signature": [ - "\"left\" | \"right\" | undefined" + "\"right\" | \"left\" | undefined" ], "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false, @@ -9993,7 +9993,7 @@ "label": "IconPosition", "description": [], "signature": [ - "\"left\" | \"right\" | \"above\" | \"below\" | \"auto\"" + "\"right\" | \"left\" | \"above\" | \"below\" | \"auto\"" ], "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false, @@ -10862,7 +10862,7 @@ "label": "YAxisMode", "description": [], "signature": [ - "\"left\" | \"right\" | \"bottom\" | \"auto\"" + "\"right\" | \"left\" | \"bottom\" | \"auto\"" ], "path": "x-pack/plugins/lens/public/visualizations/xy/types.ts", "deprecated": false, @@ -11141,7 +11141,7 @@ "label": "autoScaleMetricAlignment", "description": [], "signature": [ - "\"left\" | \"right\" | \"center\" | undefined" + "\"right\" | \"left\" | \"center\" | undefined" ], "path": "x-pack/plugins/lens/common/types.ts", "deprecated": false, @@ -11272,7 +11272,7 @@ "label": "textAlign", "description": [], "signature": [ - "\"left\" | \"right\" | \"center\" | undefined" + "\"right\" | \"left\" | \"center\" | undefined" ], "path": "x-pack/plugins/lens/common/types.ts", "deprecated": false, diff --git a/api_docs/lens.mdx b/api_docs/lens.mdx index b88f38ef113c6..ccfbf5bdfc144 100644 --- a/api_docs/lens.mdx +++ b/api_docs/lens.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/lens title: "lens" image: https://source.unsplash.com/400x175/?github description: API docs for the lens plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'lens'] --- import lensObj from './lens.devdocs.json'; diff --git a/api_docs/license_api_guard.mdx b/api_docs/license_api_guard.mdx index 45cb7b0278c5d..9e2c0798a9dfa 100644 --- a/api_docs/license_api_guard.mdx +++ b/api_docs/license_api_guard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licenseApiGuard title: "licenseApiGuard" image: https://source.unsplash.com/400x175/?github description: API docs for the licenseApiGuard plugin -date: 2023-10-11 +date: 2023-10-12 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 eb7c2b59c2f04..071ab36722b96 100644 --- a/api_docs/license_management.mdx +++ b/api_docs/license_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licenseManagement title: "licenseManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the licenseManagement plugin -date: 2023-10-11 +date: 2023-10-12 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 cb183429e5e42..8ab626ae32330 100644 --- a/api_docs/licensing.mdx +++ b/api_docs/licensing.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licensing title: "licensing" image: https://source.unsplash.com/400x175/?github description: API docs for the licensing plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'licensing'] --- import licensingObj from './licensing.devdocs.json'; diff --git a/api_docs/links.mdx b/api_docs/links.mdx index b903ea06441d5..ad4a8f41d9431 100644 --- a/api_docs/links.mdx +++ b/api_docs/links.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/links title: "links" image: https://source.unsplash.com/400x175/?github description: API docs for the links plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'links'] --- import linksObj from './links.devdocs.json'; diff --git a/api_docs/lists.mdx b/api_docs/lists.mdx index 83630ded0f6fb..fc5b91ac899cc 100644 --- a/api_docs/lists.mdx +++ b/api_docs/lists.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/lists title: "lists" image: https://source.unsplash.com/400x175/?github description: API docs for the lists plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'lists'] --- import listsObj from './lists.devdocs.json'; diff --git a/api_docs/log_explorer.mdx b/api_docs/log_explorer.mdx index 07fcaf70be81e..588e152c947a5 100644 --- a/api_docs/log_explorer.mdx +++ b/api_docs/log_explorer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/logExplorer title: "logExplorer" image: https://source.unsplash.com/400x175/?github description: API docs for the logExplorer plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'logExplorer'] --- import logExplorerObj from './log_explorer.devdocs.json'; diff --git a/api_docs/logs_shared.mdx b/api_docs/logs_shared.mdx index c1029978cc193..a84dd66b12266 100644 --- a/api_docs/logs_shared.mdx +++ b/api_docs/logs_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/logsShared title: "logsShared" image: https://source.unsplash.com/400x175/?github description: API docs for the logsShared plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'logsShared'] --- import logsSharedObj from './logs_shared.devdocs.json'; diff --git a/api_docs/management.mdx b/api_docs/management.mdx index 0d6765b0ed910..7d07dea0a3c63 100644 --- a/api_docs/management.mdx +++ b/api_docs/management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/management title: "management" image: https://source.unsplash.com/400x175/?github description: API docs for the management plugin -date: 2023-10-11 +date: 2023-10-12 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 7a270d79a4dc3..a2d2c2658ac64 100644 --- a/api_docs/maps.mdx +++ b/api_docs/maps.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/maps title: "maps" image: https://source.unsplash.com/400x175/?github description: API docs for the maps plugin -date: 2023-10-11 +date: 2023-10-12 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 5772c6515a170..65198dfdf4de8 100644 --- a/api_docs/maps_ems.mdx +++ b/api_docs/maps_ems.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/mapsEms title: "mapsEms" image: https://source.unsplash.com/400x175/?github description: API docs for the mapsEms plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'mapsEms'] --- import mapsEmsObj from './maps_ems.devdocs.json'; diff --git a/api_docs/metrics_data_access.mdx b/api_docs/metrics_data_access.mdx index 2e1ce1d21ff51..4314939727689 100644 --- a/api_docs/metrics_data_access.mdx +++ b/api_docs/metrics_data_access.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/metricsDataAccess title: "metricsDataAccess" image: https://source.unsplash.com/400x175/?github description: API docs for the metricsDataAccess plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'metricsDataAccess'] --- import metricsDataAccessObj from './metrics_data_access.devdocs.json'; diff --git a/api_docs/ml.mdx b/api_docs/ml.mdx index 33955731e9d6e..aae7731d68c04 100644 --- a/api_docs/ml.mdx +++ b/api_docs/ml.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ml title: "ml" image: https://source.unsplash.com/400x175/?github description: API docs for the ml plugin -date: 2023-10-11 +date: 2023-10-12 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 c89883939b474..c095c5f60b86d 100644 --- a/api_docs/monitoring.mdx +++ b/api_docs/monitoring.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/monitoring title: "monitoring" image: https://source.unsplash.com/400x175/?github description: API docs for the monitoring plugin -date: 2023-10-11 +date: 2023-10-12 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 e89775946da5d..6de3b6d3dacce 100644 --- a/api_docs/monitoring_collection.mdx +++ b/api_docs/monitoring_collection.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/monitoringCollection title: "monitoringCollection" image: https://source.unsplash.com/400x175/?github description: API docs for the monitoringCollection plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'monitoringCollection'] --- import monitoringCollectionObj from './monitoring_collection.devdocs.json'; diff --git a/api_docs/navigation.devdocs.json b/api_docs/navigation.devdocs.json index 95cc4ca76a56e..a0835a4a19476 100644 --- a/api_docs/navigation.devdocs.json +++ b/api_docs/navigation.devdocs.json @@ -632,7 +632,7 @@ "label": "iconSide", "description": [], "signature": [ - "\"left\" | \"right\" | undefined" + "\"right\" | \"left\" | undefined" ], "path": "src/plugins/navigation/public/top_nav_menu/top_nav_menu_data.tsx", "deprecated": false, diff --git a/api_docs/navigation.mdx b/api_docs/navigation.mdx index cfd9504e23f5c..b2f93328ae669 100644 --- a/api_docs/navigation.mdx +++ b/api_docs/navigation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/navigation title: "navigation" image: https://source.unsplash.com/400x175/?github description: API docs for the navigation plugin -date: 2023-10-11 +date: 2023-10-12 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 6f35a068fb4ca..47c0ddf5f51a8 100644 --- a/api_docs/newsfeed.mdx +++ b/api_docs/newsfeed.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/newsfeed title: "newsfeed" image: https://source.unsplash.com/400x175/?github description: API docs for the newsfeed plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'newsfeed'] --- import newsfeedObj from './newsfeed.devdocs.json'; diff --git a/api_docs/no_data_page.mdx b/api_docs/no_data_page.mdx index 1d896befd9613..9c60dc85ae361 100644 --- a/api_docs/no_data_page.mdx +++ b/api_docs/no_data_page.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/noDataPage title: "noDataPage" image: https://source.unsplash.com/400x175/?github description: API docs for the noDataPage plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'noDataPage'] --- import noDataPageObj from './no_data_page.devdocs.json'; diff --git a/api_docs/notifications.mdx b/api_docs/notifications.mdx index ea20fcbc95a8f..184c73ff72371 100644 --- a/api_docs/notifications.mdx +++ b/api_docs/notifications.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/notifications title: "notifications" image: https://source.unsplash.com/400x175/?github description: API docs for the notifications plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'notifications'] --- import notificationsObj from './notifications.devdocs.json'; diff --git a/api_docs/observability.devdocs.json b/api_docs/observability.devdocs.json index b4b02cd104b96..41c8070018e81 100644 --- a/api_docs/observability.devdocs.json +++ b/api_docs/observability.devdocs.json @@ -784,7 +784,7 @@ }, " | undefined; list: () => string[]; }; selectedAlertId?: string | undefined; } & ", "CommonProps", - " & { as?: \"div\" | undefined; } & _EuiFlyoutProps & Omit, HTMLDivElement>, keyof _EuiFlyoutProps> & Omit, HTMLDivElement>, \"key\" | keyof React.HTMLAttributes | \"css\"> & { ref?: ((instance: HTMLDivElement | null) => void) | React.RefObject | null | undefined; }, \"type\" | \"prefix\" | \"key\" | \"id\" | \"defaultValue\" | \"security\" | \"children\" | \"ref\" | \"onChange\" | \"defaultChecked\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"className\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"title\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"color\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDown\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClick\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"paddingSize\" | \"data-test-subj\" | \"css\" | \"size\" | \"onClose\" | \"as\" | \"maxWidth\" | \"ownFocus\" | \"hideCloseButton\" | \"closeButtonProps\" | \"closeButtonPosition\" | \"maskProps\" | \"outsideClickCloses\" | \"side\" | \"pushMinBreakpoint\" | \"focusTrapProps\" | \"includeFixedHeadersInFocusTrap\">, \"type\" | \"prefix\" | \"key\" | \"id\" | \"defaultValue\" | \"security\" | \"alert\" | \"children\" | \"onChange\" | \"defaultChecked\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"className\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"title\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"color\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDown\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClick\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"paddingSize\" | \"data-test-subj\" | \"css\" | \"alerts\" | \"size\" | \"onClose\" | \"as\" | \"maxWidth\" | \"ownFocus\" | \"hideCloseButton\" | \"closeButtonProps\" | \"closeButtonPosition\" | \"maskProps\" | \"outsideClickCloses\" | \"side\" | \"pushMinBreakpoint\" | \"focusTrapProps\" | \"includeFixedHeadersInFocusTrap\" | \"isInApp\" | \"observabilityRuleTypeRegistry\" | \"selectedAlertId\"> & { ref?: ((instance: HTMLDivElement | null) => void) | React.RefObject | null | undefined; }> & { readonly _result: ({ alert, alerts, isInApp, observabilityRuleTypeRegistry, onClose, selectedAlertId, }: AlertsFlyoutProps) => JSX.Element | null; }" + " & { as?: \"div\" | undefined; } & _EuiFlyoutProps & Omit, HTMLDivElement>, keyof _EuiFlyoutProps> & Omit, HTMLDivElement>, \"key\" | keyof React.HTMLAttributes | \"css\"> & { ref?: ((instance: HTMLDivElement | null) => void) | React.RefObject | null | undefined; }, \"type\" | \"prefix\" | \"key\" | \"id\" | \"defaultValue\" | \"security\" | \"children\" | \"ref\" | \"onChange\" | \"defaultChecked\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"className\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"title\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"color\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDown\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClick\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"data-test-subj\" | \"css\" | \"paddingSize\" | \"size\" | \"onClose\" | \"as\" | \"maxWidth\" | \"ownFocus\" | \"hideCloseButton\" | \"closeButtonProps\" | \"closeButtonPosition\" | \"maskProps\" | \"outsideClickCloses\" | \"side\" | \"pushMinBreakpoint\" | \"pushAnimation\" | \"focusTrapProps\" | \"includeFixedHeadersInFocusTrap\">, \"type\" | \"prefix\" | \"key\" | \"id\" | \"defaultValue\" | \"security\" | \"alert\" | \"children\" | \"onChange\" | \"defaultChecked\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"className\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"title\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"color\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDown\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClick\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"data-test-subj\" | \"css\" | \"alerts\" | \"paddingSize\" | \"size\" | \"onClose\" | \"as\" | \"maxWidth\" | \"ownFocus\" | \"hideCloseButton\" | \"closeButtonProps\" | \"closeButtonPosition\" | \"maskProps\" | \"outsideClickCloses\" | \"side\" | \"pushMinBreakpoint\" | \"pushAnimation\" | \"focusTrapProps\" | \"includeFixedHeadersInFocusTrap\" | \"isInApp\" | \"observabilityRuleTypeRegistry\" | \"selectedAlertId\"> & { ref?: ((instance: HTMLDivElement | null) => void) | React.RefObject | null | undefined; }> & { readonly _result: ({ alert, alerts, isInApp, observabilityRuleTypeRegistry, onClose, selectedAlertId, }: AlertsFlyoutProps) => JSX.Element | null; }" ], "path": "x-pack/plugins/observability/public/index.ts", "deprecated": false, diff --git a/api_docs/observability.mdx b/api_docs/observability.mdx index 7b00b41b05706..f8c697f34d271 100644 --- a/api_docs/observability.mdx +++ b/api_docs/observability.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observability title: "observability" image: https://source.unsplash.com/400x175/?github description: API docs for the observability plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observability'] --- import observabilityObj from './observability.devdocs.json'; diff --git a/api_docs/observability_a_i_assistant.mdx b/api_docs/observability_a_i_assistant.mdx index 24ba48830e3da..645fa6fa84d09 100644 --- a/api_docs/observability_a_i_assistant.mdx +++ b/api_docs/observability_a_i_assistant.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityAIAssistant title: "observabilityAIAssistant" image: https://source.unsplash.com/400x175/?github description: API docs for the observabilityAIAssistant plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityAIAssistant'] --- import observabilityAIAssistantObj from './observability_a_i_assistant.devdocs.json'; diff --git a/api_docs/observability_log_explorer.mdx b/api_docs/observability_log_explorer.mdx index 40c5c117726b9..b8a65a08425d4 100644 --- a/api_docs/observability_log_explorer.mdx +++ b/api_docs/observability_log_explorer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityLogExplorer title: "observabilityLogExplorer" image: https://source.unsplash.com/400x175/?github description: API docs for the observabilityLogExplorer plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityLogExplorer'] --- import observabilityLogExplorerObj from './observability_log_explorer.devdocs.json'; diff --git a/api_docs/observability_onboarding.mdx b/api_docs/observability_onboarding.mdx index e302581f4cc17..0cc5018944f8a 100644 --- a/api_docs/observability_onboarding.mdx +++ b/api_docs/observability_onboarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityOnboarding title: "observabilityOnboarding" image: https://source.unsplash.com/400x175/?github description: API docs for the observabilityOnboarding plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityOnboarding'] --- import observabilityOnboardingObj from './observability_onboarding.devdocs.json'; diff --git a/api_docs/observability_shared.mdx b/api_docs/observability_shared.mdx index 1d2ac0a299117..3636997b7091a 100644 --- a/api_docs/observability_shared.mdx +++ b/api_docs/observability_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityShared title: "observabilityShared" image: https://source.unsplash.com/400x175/?github description: API docs for the observabilityShared plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityShared'] --- import observabilitySharedObj from './observability_shared.devdocs.json'; diff --git a/api_docs/osquery.mdx b/api_docs/osquery.mdx index 96499f56619c8..817b0ee022338 100644 --- a/api_docs/osquery.mdx +++ b/api_docs/osquery.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/osquery title: "osquery" image: https://source.unsplash.com/400x175/?github description: API docs for the osquery plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'osquery'] --- import osqueryObj from './osquery.devdocs.json'; diff --git a/api_docs/painless_lab.mdx b/api_docs/painless_lab.mdx index 6a902b527d39c..64eb42ae0d6a9 100644 --- a/api_docs/painless_lab.mdx +++ b/api_docs/painless_lab.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/painlessLab title: "painlessLab" image: https://source.unsplash.com/400x175/?github description: API docs for the painlessLab plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'painlessLab'] --- import painlessLabObj from './painless_lab.devdocs.json'; diff --git a/api_docs/plugin_directory.mdx b/api_docs/plugin_directory.mdx index ca7a291847ab5..d69da85e90f37 100644 --- a/api_docs/plugin_directory.mdx +++ b/api_docs/plugin_directory.mdx @@ -7,7 +7,7 @@ id: kibDevDocsPluginDirectory slug: /kibana-dev-docs/api-meta/plugin-api-directory title: Directory description: Directory of public APIs available through plugins or packages. -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- @@ -21,7 +21,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | API Count | Any Count | Missing comments | Missing exports | |--------------|----------|-----------------|--------| -| 75821 | 223 | 64612 | 1580 | +| 75816 | 223 | 64609 | 1580 | ## Plugin Directory @@ -382,7 +382,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 4 | 0 | 4 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 125 | 0 | 91 | 47 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 12 | 0 | 12 | 0 | -| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 547 | 1 | 121 | 4 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 541 | 1 | 117 | 4 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 69 | 0 | 69 | 4 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 14 | 0 | 14 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 36 | 0 | 6 | 0 | @@ -480,7 +480,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 6 | 0 | 1 | 1 | | | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 10 | 0 | 10 | 1 | | | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 9 | 0 | 6 | 2 | -| | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 23 | 0 | 3 | 0 | +| | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 24 | 0 | 4 | 0 | | | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 20 | 0 | 5 | 0 | | | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 23 | 0 | 7 | 0 | | | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 8 | 0 | 2 | 3 | diff --git a/api_docs/presentation_util.mdx b/api_docs/presentation_util.mdx index 5de9abac4c60c..a0227b461e49c 100644 --- a/api_docs/presentation_util.mdx +++ b/api_docs/presentation_util.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/presentationUtil title: "presentationUtil" image: https://source.unsplash.com/400x175/?github description: API docs for the presentationUtil plugin -date: 2023-10-11 +date: 2023-10-12 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 657edbeaa38e1..dd6adf35fdcde 100644 --- a/api_docs/profiling.mdx +++ b/api_docs/profiling.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/profiling title: "profiling" image: https://source.unsplash.com/400x175/?github description: API docs for the profiling plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'profiling'] --- import profilingObj from './profiling.devdocs.json'; diff --git a/api_docs/profiling_data_access.mdx b/api_docs/profiling_data_access.mdx index 8f6f6eedee9c4..a9ad49bb6fe76 100644 --- a/api_docs/profiling_data_access.mdx +++ b/api_docs/profiling_data_access.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/profilingDataAccess title: "profilingDataAccess" image: https://source.unsplash.com/400x175/?github description: API docs for the profilingDataAccess plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'profilingDataAccess'] --- import profilingDataAccessObj from './profiling_data_access.devdocs.json'; diff --git a/api_docs/remote_clusters.mdx b/api_docs/remote_clusters.mdx index 026af826561b1..d60d97c3f9d07 100644 --- a/api_docs/remote_clusters.mdx +++ b/api_docs/remote_clusters.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/remoteClusters title: "remoteClusters" image: https://source.unsplash.com/400x175/?github description: API docs for the remoteClusters plugin -date: 2023-10-11 +date: 2023-10-12 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 dbf4282432528..1a6d09106790d 100644 --- a/api_docs/reporting.mdx +++ b/api_docs/reporting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/reporting title: "reporting" image: https://source.unsplash.com/400x175/?github description: API docs for the reporting plugin -date: 2023-10-11 +date: 2023-10-12 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 4f20cf7224433..8522b07105ac1 100644 --- a/api_docs/rollup.mdx +++ b/api_docs/rollup.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/rollup title: "rollup" image: https://source.unsplash.com/400x175/?github description: API docs for the rollup plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'rollup'] --- import rollupObj from './rollup.devdocs.json'; diff --git a/api_docs/rule_registry.mdx b/api_docs/rule_registry.mdx index 65ce250fe63d7..0d6efc556a89c 100644 --- a/api_docs/rule_registry.mdx +++ b/api_docs/rule_registry.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ruleRegistry title: "ruleRegistry" image: https://source.unsplash.com/400x175/?github description: API docs for the ruleRegistry plugin -date: 2023-10-11 +date: 2023-10-12 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 2702ae576b62d..cdb17a7b45d17 100644 --- a/api_docs/runtime_fields.mdx +++ b/api_docs/runtime_fields.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/runtimeFields title: "runtimeFields" image: https://source.unsplash.com/400x175/?github description: API docs for the runtimeFields plugin -date: 2023-10-11 +date: 2023-10-12 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 851a651fa9a07..60f27fa95210c 100644 --- a/api_docs/saved_objects.mdx +++ b/api_docs/saved_objects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjects title: "savedObjects" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjects plugin -date: 2023-10-11 +date: 2023-10-12 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 093242b12e199..18ccdb71c2601 100644 --- a/api_docs/saved_objects_finder.mdx +++ b/api_docs/saved_objects_finder.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsFinder title: "savedObjectsFinder" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsFinder plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsFinder'] --- import savedObjectsFinderObj from './saved_objects_finder.devdocs.json'; diff --git a/api_docs/saved_objects_management.devdocs.json b/api_docs/saved_objects_management.devdocs.json index a4174580d3d17..741fae4be13f9 100644 --- a/api_docs/saved_objects_management.devdocs.json +++ b/api_docs/saved_objects_management.devdocs.json @@ -328,7 +328,7 @@ "section": "def-public.SavedObjectsManagementRecord", "text": "SavedObjectsManagementRecord" }, - ">) => React.ReactNode) | undefined; colSpan?: number | undefined; rowSpan?: number | undefined; valign?: \"top\" | \"bottom\" | \"middle\" | \"baseline\" | undefined; isExpander?: boolean | undefined; textOnly?: boolean | undefined; truncateText?: boolean | undefined; mobileOptions?: (Omit<", + ">) => React.ReactNode) | undefined; colSpan?: number | undefined; rowSpan?: number | undefined; valign?: \"top\" | \"bottom\" | \"middle\" | \"baseline\" | undefined; isExpander?: boolean | undefined; textOnly?: boolean | undefined; truncateText?: boolean | { lines: number; } | undefined; mobileOptions?: (Omit<", "EuiTableRowCellMobileOptionsShape", ", \"render\"> & { render?: ((item: ", { diff --git a/api_docs/saved_objects_management.mdx b/api_docs/saved_objects_management.mdx index beef5c41172df..e07e39d485ae7 100644 --- a/api_docs/saved_objects_management.mdx +++ b/api_docs/saved_objects_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsManagement title: "savedObjectsManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsManagement plugin -date: 2023-10-11 +date: 2023-10-12 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 60fbb84ee95c0..3d028f17bbdb7 100644 --- a/api_docs/saved_objects_tagging.mdx +++ b/api_docs/saved_objects_tagging.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsTagging title: "savedObjectsTagging" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsTagging plugin -date: 2023-10-11 +date: 2023-10-12 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 2bbc503ace87a..64d3e60fa06ec 100644 --- a/api_docs/saved_objects_tagging_oss.mdx +++ b/api_docs/saved_objects_tagging_oss.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsTaggingOss title: "savedObjectsTaggingOss" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsTaggingOss plugin -date: 2023-10-11 +date: 2023-10-12 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 ecdd41a6da425..33220bc86ecf1 100644 --- a/api_docs/saved_search.mdx +++ b/api_docs/saved_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedSearch title: "savedSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the savedSearch plugin -date: 2023-10-11 +date: 2023-10-12 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 ba3b8a7702e17..30f8f777e90a8 100644 --- a/api_docs/screenshot_mode.mdx +++ b/api_docs/screenshot_mode.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/screenshotMode title: "screenshotMode" image: https://source.unsplash.com/400x175/?github description: API docs for the screenshotMode plugin -date: 2023-10-11 +date: 2023-10-12 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 249f8b19b2ccb..15184e6720d2b 100644 --- a/api_docs/screenshotting.mdx +++ b/api_docs/screenshotting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/screenshotting title: "screenshotting" image: https://source.unsplash.com/400x175/?github description: API docs for the screenshotting plugin -date: 2023-10-11 +date: 2023-10-12 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 0e31d2f300236..3fadede6ec99a 100644 --- a/api_docs/security.mdx +++ b/api_docs/security.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/security title: "security" image: https://source.unsplash.com/400x175/?github description: API docs for the security plugin -date: 2023-10-11 +date: 2023-10-12 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 13ddc71400925..d47c62a353843 100644 --- a/api_docs/security_solution.mdx +++ b/api_docs/security_solution.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/securitySolution title: "securitySolution" image: https://source.unsplash.com/400x175/?github description: API docs for the securitySolution plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'securitySolution'] --- import securitySolutionObj from './security_solution.devdocs.json'; diff --git a/api_docs/security_solution_ess.mdx b/api_docs/security_solution_ess.mdx index 365983cc0640f..771824c20e11b 100644 --- a/api_docs/security_solution_ess.mdx +++ b/api_docs/security_solution_ess.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/securitySolutionEss title: "securitySolutionEss" image: https://source.unsplash.com/400x175/?github description: API docs for the securitySolutionEss plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'securitySolutionEss'] --- import securitySolutionEssObj from './security_solution_ess.devdocs.json'; diff --git a/api_docs/security_solution_serverless.mdx b/api_docs/security_solution_serverless.mdx index 165aedc13a266..48b7b396ac39a 100644 --- a/api_docs/security_solution_serverless.mdx +++ b/api_docs/security_solution_serverless.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/securitySolutionServerless title: "securitySolutionServerless" image: https://source.unsplash.com/400x175/?github description: API docs for the securitySolutionServerless plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'securitySolutionServerless'] --- import securitySolutionServerlessObj from './security_solution_serverless.devdocs.json'; diff --git a/api_docs/serverless.mdx b/api_docs/serverless.mdx index b0f534c0593f2..4b11563bb256a 100644 --- a/api_docs/serverless.mdx +++ b/api_docs/serverless.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/serverless title: "serverless" image: https://source.unsplash.com/400x175/?github description: API docs for the serverless plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'serverless'] --- import serverlessObj from './serverless.devdocs.json'; diff --git a/api_docs/serverless_observability.mdx b/api_docs/serverless_observability.mdx index 2d5381f391b39..4d779bd2d0bf4 100644 --- a/api_docs/serverless_observability.mdx +++ b/api_docs/serverless_observability.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/serverlessObservability title: "serverlessObservability" image: https://source.unsplash.com/400x175/?github description: API docs for the serverlessObservability plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'serverlessObservability'] --- import serverlessObservabilityObj from './serverless_observability.devdocs.json'; diff --git a/api_docs/serverless_search.mdx b/api_docs/serverless_search.mdx index 008b93c0e6164..393305fc42d9c 100644 --- a/api_docs/serverless_search.mdx +++ b/api_docs/serverless_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/serverlessSearch title: "serverlessSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the serverlessSearch plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'serverlessSearch'] --- import serverlessSearchObj from './serverless_search.devdocs.json'; diff --git a/api_docs/session_view.mdx b/api_docs/session_view.mdx index e03b34e9d398f..878b2b9d989f6 100644 --- a/api_docs/session_view.mdx +++ b/api_docs/session_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/sessionView title: "sessionView" image: https://source.unsplash.com/400x175/?github description: API docs for the sessionView plugin -date: 2023-10-11 +date: 2023-10-12 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 94c3af86a422e..5ecfdb62a4b0c 100644 --- a/api_docs/share.mdx +++ b/api_docs/share.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/share title: "share" image: https://source.unsplash.com/400x175/?github description: API docs for the share plugin -date: 2023-10-11 +date: 2023-10-12 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 f9f175d55cac9..51032fe273551 100644 --- a/api_docs/snapshot_restore.mdx +++ b/api_docs/snapshot_restore.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/snapshotRestore title: "snapshotRestore" image: https://source.unsplash.com/400x175/?github description: API docs for the snapshotRestore plugin -date: 2023-10-11 +date: 2023-10-12 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 64bb08f149cf9..3d56c7c50adcd 100644 --- a/api_docs/spaces.mdx +++ b/api_docs/spaces.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/spaces title: "spaces" image: https://source.unsplash.com/400x175/?github description: API docs for the spaces plugin -date: 2023-10-11 +date: 2023-10-12 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 7566a8f41f0e4..575ac0d2c01a9 100644 --- a/api_docs/stack_alerts.mdx +++ b/api_docs/stack_alerts.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/stackAlerts title: "stackAlerts" image: https://source.unsplash.com/400x175/?github description: API docs for the stackAlerts plugin -date: 2023-10-11 +date: 2023-10-12 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 a86f0b9352967..b6da8f4caf390 100644 --- a/api_docs/stack_connectors.mdx +++ b/api_docs/stack_connectors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/stackConnectors title: "stackConnectors" image: https://source.unsplash.com/400x175/?github description: API docs for the stackConnectors plugin -date: 2023-10-11 +date: 2023-10-12 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 d3006546523a2..e162dbc1f7e05 100644 --- a/api_docs/task_manager.mdx +++ b/api_docs/task_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/taskManager title: "taskManager" image: https://source.unsplash.com/400x175/?github description: API docs for the taskManager plugin -date: 2023-10-11 +date: 2023-10-12 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 fbb9c3d1bcde2..449a9c48b4a8c 100644 --- a/api_docs/telemetry.mdx +++ b/api_docs/telemetry.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetry title: "telemetry" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetry plugin -date: 2023-10-11 +date: 2023-10-12 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 e243d0d3024b1..b3ce595bd2910 100644 --- a/api_docs/telemetry_collection_manager.mdx +++ b/api_docs/telemetry_collection_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryCollectionManager title: "telemetryCollectionManager" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryCollectionManager plugin -date: 2023-10-11 +date: 2023-10-12 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 c63a4d3a5ee0f..a6b7b5b8f6208 100644 --- a/api_docs/telemetry_collection_xpack.mdx +++ b/api_docs/telemetry_collection_xpack.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryCollectionXpack title: "telemetryCollectionXpack" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryCollectionXpack plugin -date: 2023-10-11 +date: 2023-10-12 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 78ebd43c543f8..73561d0fe4e38 100644 --- a/api_docs/telemetry_management_section.mdx +++ b/api_docs/telemetry_management_section.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryManagementSection title: "telemetryManagementSection" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryManagementSection plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetryManagementSection'] --- import telemetryManagementSectionObj from './telemetry_management_section.devdocs.json'; diff --git a/api_docs/text_based_languages.mdx b/api_docs/text_based_languages.mdx index 00ee2a60ed15f..fd1b94a588d69 100644 --- a/api_docs/text_based_languages.mdx +++ b/api_docs/text_based_languages.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/textBasedLanguages title: "textBasedLanguages" image: https://source.unsplash.com/400x175/?github description: API docs for the textBasedLanguages plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'textBasedLanguages'] --- import textBasedLanguagesObj from './text_based_languages.devdocs.json'; diff --git a/api_docs/threat_intelligence.mdx b/api_docs/threat_intelligence.mdx index e84c2a36e0ea6..f8e64b275929b 100644 --- a/api_docs/threat_intelligence.mdx +++ b/api_docs/threat_intelligence.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/threatIntelligence title: "threatIntelligence" image: https://source.unsplash.com/400x175/?github description: API docs for the threatIntelligence plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'threatIntelligence'] --- import threatIntelligenceObj from './threat_intelligence.devdocs.json'; diff --git a/api_docs/timelines.mdx b/api_docs/timelines.mdx index b6c999f83d2d1..8aa0bc955dffe 100644 --- a/api_docs/timelines.mdx +++ b/api_docs/timelines.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/timelines title: "timelines" image: https://source.unsplash.com/400x175/?github description: API docs for the timelines plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'timelines'] --- import timelinesObj from './timelines.devdocs.json'; diff --git a/api_docs/transform.mdx b/api_docs/transform.mdx index 987a23a453abd..be06edf4710f5 100644 --- a/api_docs/transform.mdx +++ b/api_docs/transform.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/transform title: "transform" image: https://source.unsplash.com/400x175/?github description: API docs for the transform plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'transform'] --- import transformObj from './transform.devdocs.json'; diff --git a/api_docs/triggers_actions_ui.mdx b/api_docs/triggers_actions_ui.mdx index e323a0a3c0e87..40eed69f592d7 100644 --- a/api_docs/triggers_actions_ui.mdx +++ b/api_docs/triggers_actions_ui.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/triggersActionsUi title: "triggersActionsUi" image: https://source.unsplash.com/400x175/?github description: API docs for the triggersActionsUi plugin -date: 2023-10-11 +date: 2023-10-12 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 26bdb4333517c..7e62ef66dcc92 100644 --- a/api_docs/ui_actions.mdx +++ b/api_docs/ui_actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uiActions title: "uiActions" image: https://source.unsplash.com/400x175/?github description: API docs for the uiActions plugin -date: 2023-10-11 +date: 2023-10-12 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 e7a987639409f..bc52470957eb0 100644 --- a/api_docs/ui_actions_enhanced.mdx +++ b/api_docs/ui_actions_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uiActionsEnhanced title: "uiActionsEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the uiActionsEnhanced plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'uiActionsEnhanced'] --- import uiActionsEnhancedObj from './ui_actions_enhanced.devdocs.json'; diff --git a/api_docs/unified_doc_viewer.mdx b/api_docs/unified_doc_viewer.mdx index 52e39bce5e6e2..5e258b1996bd3 100644 --- a/api_docs/unified_doc_viewer.mdx +++ b/api_docs/unified_doc_viewer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedDocViewer title: "unifiedDocViewer" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedDocViewer plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedDocViewer'] --- import unifiedDocViewerObj from './unified_doc_viewer.devdocs.json'; diff --git a/api_docs/unified_histogram.mdx b/api_docs/unified_histogram.mdx index fc68ef7126b69..2b0fad6ccc0bd 100644 --- a/api_docs/unified_histogram.mdx +++ b/api_docs/unified_histogram.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedHistogram title: "unifiedHistogram" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedHistogram plugin -date: 2023-10-11 +date: 2023-10-12 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 dfa8961e42cd9..5b1a9d4baa4b4 100644 --- a/api_docs/unified_search.mdx +++ b/api_docs/unified_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedSearch title: "unifiedSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedSearch plugin -date: 2023-10-11 +date: 2023-10-12 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 343eecedc6433..195d0c3062f95 100644 --- a/api_docs/unified_search_autocomplete.mdx +++ b/api_docs/unified_search_autocomplete.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedSearch-autocomplete title: "unifiedSearch.autocomplete" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedSearch.autocomplete plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedSearch.autocomplete'] --- import unifiedSearchAutocompleteObj from './unified_search_autocomplete.devdocs.json'; diff --git a/api_docs/uptime.mdx b/api_docs/uptime.mdx index 54f76cad1166d..ab3028b40392d 100644 --- a/api_docs/uptime.mdx +++ b/api_docs/uptime.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uptime title: "uptime" image: https://source.unsplash.com/400x175/?github description: API docs for the uptime plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'uptime'] --- import uptimeObj from './uptime.devdocs.json'; diff --git a/api_docs/url_forwarding.mdx b/api_docs/url_forwarding.mdx index ad9f42ddcea06..4d2724125a439 100644 --- a/api_docs/url_forwarding.mdx +++ b/api_docs/url_forwarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/urlForwarding title: "urlForwarding" image: https://source.unsplash.com/400x175/?github description: API docs for the urlForwarding plugin -date: 2023-10-11 +date: 2023-10-12 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 87b32ea9028c3..a5d1afd951667 100644 --- a/api_docs/usage_collection.mdx +++ b/api_docs/usage_collection.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/usageCollection title: "usageCollection" image: https://source.unsplash.com/400x175/?github description: API docs for the usageCollection plugin -date: 2023-10-11 +date: 2023-10-12 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 f0faeace206db..f5f6a5547a28d 100644 --- a/api_docs/ux.mdx +++ b/api_docs/ux.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ux title: "ux" image: https://source.unsplash.com/400x175/?github description: API docs for the ux plugin -date: 2023-10-11 +date: 2023-10-12 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 cbe6afcdfbc6e..09dba57ae6c61 100644 --- a/api_docs/vis_default_editor.mdx +++ b/api_docs/vis_default_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visDefaultEditor title: "visDefaultEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the visDefaultEditor plugin -date: 2023-10-11 +date: 2023-10-12 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 7834ca322e920..202ab06f43e1a 100644 --- a/api_docs/vis_type_gauge.mdx +++ b/api_docs/vis_type_gauge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeGauge title: "visTypeGauge" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeGauge plugin -date: 2023-10-11 +date: 2023-10-12 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 44711e62541cc..3822906123f33 100644 --- a/api_docs/vis_type_heatmap.mdx +++ b/api_docs/vis_type_heatmap.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeHeatmap title: "visTypeHeatmap" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeHeatmap plugin -date: 2023-10-11 +date: 2023-10-12 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 b5636911c100e..c88ab4535667e 100644 --- a/api_docs/vis_type_pie.mdx +++ b/api_docs/vis_type_pie.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypePie title: "visTypePie" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypePie plugin -date: 2023-10-11 +date: 2023-10-12 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 21ef20684168a..ae21d49c17dab 100644 --- a/api_docs/vis_type_table.mdx +++ b/api_docs/vis_type_table.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTable title: "visTypeTable" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTable plugin -date: 2023-10-11 +date: 2023-10-12 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 0b2b551802c0c..4a4215beff935 100644 --- a/api_docs/vis_type_timelion.mdx +++ b/api_docs/vis_type_timelion.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTimelion title: "visTypeTimelion" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTimelion plugin -date: 2023-10-11 +date: 2023-10-12 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 1000fab26d7de..96faeecb6c4e3 100644 --- a/api_docs/vis_type_timeseries.mdx +++ b/api_docs/vis_type_timeseries.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTimeseries title: "visTypeTimeseries" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTimeseries plugin -date: 2023-10-11 +date: 2023-10-12 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 c20708c38e513..5ae99273c890d 100644 --- a/api_docs/vis_type_vega.mdx +++ b/api_docs/vis_type_vega.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeVega title: "visTypeVega" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeVega plugin -date: 2023-10-11 +date: 2023-10-12 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 6683745f3c371..e4dfbbb1e4bcc 100644 --- a/api_docs/vis_type_vislib.mdx +++ b/api_docs/vis_type_vislib.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeVislib title: "visTypeVislib" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeVislib plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeVislib'] --- import visTypeVislibObj from './vis_type_vislib.devdocs.json'; diff --git a/api_docs/vis_type_xy.devdocs.json b/api_docs/vis_type_xy.devdocs.json index de45fb3d360e0..921bc34136efa 100644 --- a/api_docs/vis_type_xy.devdocs.json +++ b/api_docs/vis_type_xy.devdocs.json @@ -132,7 +132,7 @@ "label": "position", "description": [], "signature": [ - "\"top\" | \"left\" | \"right\" | \"bottom\"" + "\"right\" | \"left\" | \"top\" | \"bottom\"" ], "path": "src/plugins/vis_types/xy/public/types/param.ts", "deprecated": false, diff --git a/api_docs/vis_type_xy.mdx b/api_docs/vis_type_xy.mdx index 2b127b66c9792..bd7fe6125d3d5 100644 --- a/api_docs/vis_type_xy.mdx +++ b/api_docs/vis_type_xy.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeXy title: "visTypeXy" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeXy plugin -date: 2023-10-11 +date: 2023-10-12 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 2631f1b970e94..e40e1b2ef4a6c 100644 --- a/api_docs/visualizations.devdocs.json +++ b/api_docs/visualizations.devdocs.json @@ -9191,7 +9191,7 @@ "label": "alignment", "description": [], "signature": [ - "\"left\" | \"right\" | \"center\" | undefined" + "\"right\" | \"left\" | \"center\" | undefined" ], "path": "src/plugins/visualizations/common/convert_to_lens/types/configurations.ts", "deprecated": false, @@ -10333,7 +10333,7 @@ "label": "position", "description": [], "signature": [ - "\"top\" | \"left\" | \"right\" | \"bottom\"" + "\"right\" | \"left\" | \"top\" | \"bottom\"" ], "path": "src/plugins/visualizations/common/convert_to_lens/types/configurations.ts", "deprecated": false, @@ -10620,7 +10620,7 @@ "label": "position", "description": [], "signature": [ - "\"top\" | \"left\" | \"right\" | \"bottom\"" + "\"right\" | \"left\" | \"top\" | \"bottom\"" ], "path": "src/plugins/visualizations/common/convert_to_lens/types/configurations.ts", "deprecated": false, @@ -10662,7 +10662,7 @@ "label": "horizontalAlignment", "description": [], "signature": [ - "\"left\" | \"right\" | undefined" + "\"right\" | \"left\" | undefined" ], "path": "src/plugins/visualizations/common/convert_to_lens/types/configurations.ts", "deprecated": false, @@ -13752,7 +13752,7 @@ "label": "iconPosition", "description": [], "signature": [ - "\"left\" | \"right\" | \"above\" | \"below\" | \"auto\" | undefined" + "\"right\" | \"left\" | \"above\" | \"below\" | \"auto\" | undefined" ], "path": "src/plugins/visualizations/common/convert_to_lens/types/configurations.ts", "deprecated": false, @@ -15816,7 +15816,7 @@ "label": "YAxisMode", "description": [], "signature": [ - "\"left\" | \"right\" | \"bottom\" | \"auto\"" + "\"right\" | \"left\" | \"bottom\" | \"auto\"" ], "path": "src/plugins/visualizations/common/convert_to_lens/types/configurations.ts", "deprecated": false, diff --git a/api_docs/visualizations.mdx b/api_docs/visualizations.mdx index 2eb76a8c69b0d..f5d0fa7205cfd 100644 --- a/api_docs/visualizations.mdx +++ b/api_docs/visualizations.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visualizations title: "visualizations" image: https://source.unsplash.com/400x175/?github description: API docs for the visualizations plugin -date: 2023-10-11 +date: 2023-10-12 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visualizations'] --- import visualizationsObj from './visualizations.devdocs.json'; From 4302059b4ec4776d12578840ab4a649719ef81f4 Mon Sep 17 00:00:00 2001 From: Matthias Wilhelm Date: Thu, 12 Oct 2023 07:35:12 +0200 Subject: [PATCH 39/79] [Search] Unskip Search examples handling warnings test (#168367) ## Summary Improves and unskips the code testing search source warning in our Search examples. Flaky test runner 200x https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/3440 Resolves #166484 --- test/examples/search/warnings.ts | 58 ++++++++++++++++++-------------- 1 file changed, 32 insertions(+), 26 deletions(-) diff --git a/test/examples/search/warnings.ts b/test/examples/search/warnings.ts index f1856f0b0e611..b8fcd5d63564b 100644 --- a/test/examples/search/warnings.ts +++ b/test/examples/search/warnings.ts @@ -25,9 +25,9 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { const comboBox = getService('comboBox'); const kibanaServer = getService('kibanaServer'); const esArchiver = getService('esArchiver'); + const monacoEditor = getService('monacoEditor'); - // Failing: See https://github.com/elastic/kibana/issues/166484 - describe.skip('handling warnings with search source fetch', function () { + describe('handling warnings with search source fetch', function () { const dataViewTitle = 'sample-01,sample-01-rollup'; const fromTime = 'Jun 17, 2022 @ 00:00:00.000'; const toTime = 'Jun 23, 2022 @ 00:00:00.000'; @@ -104,35 +104,41 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { it('should show search warnings as toasts', async () => { await testSubjects.click('searchSourceWithOther'); - // wait for response - toasts appear before the response is rendered - let response: estypes.SearchResponse | undefined; await retry.try(async () => { - response = await getTestJson('responseTab', 'responseCodeBlock'); - expect(response).not.to.eql({}); - }); - - // toasts - const toasts = await find.allByCssSelector(toastsSelector); - expect(toasts.length).to.be(2); - const expects = ['The data might be incomplete or wrong.', 'Query result']; - await asyncForEach(toasts, async (t, index) => { - expect(await t.getVisibleText()).to.eql(expects[index]); + const toasts = await find.allByCssSelector(toastsSelector); + expect(toasts.length).to.be(2); + const expects = ['The data might be incomplete or wrong.', 'Query result']; + await asyncForEach(toasts, async (t, index) => { + expect(await t.getVisibleText()).to.eql(expects[index]); + }); }); // click "see full error" button in the toast - const [openShardModalButton] = await testSubjects.findAll('openIncompleteResultsModalBtn'); + const [openShardModalButton] = await testSubjects.findAll('viewWarningBtn'); await openShardModalButton.click(); // request - await testSubjects.click('showRequestButton'); - const requestBlock = await testSubjects.find('incompleteResultsModalRequestBlock'); - expect(await requestBlock.getVisibleText()).to.contain(testRollupField); + await retry.try(async () => { + await testSubjects.click('inspectorRequestDetailRequest'); + const requestText = await monacoEditor.getCodeEditorValue(0); + expect(requestText).to.contain(testRollupField); + }); + // response - await testSubjects.click('showResponseButton'); - const responseBlock = await testSubjects.find('incompleteResultsModalResponseBlock'); - expect(await responseBlock.getVisibleText()).to.contain(shardFailureReason); + await retry.try(async () => { + await testSubjects.click('inspectorRequestDetailResponse'); + const responseText = await monacoEditor.getCodeEditorValue(0); + expect(responseText).to.contain(shardFailureReason); + }); - await testSubjects.click('closeIncompleteResultsModal'); + await testSubjects.click('euiFlyoutCloseButton'); + + // wait for response - toasts appear before the response is rendered + let response: estypes.SearchResponse | undefined; + await retry.try(async () => { + response = await getTestJson('responseTab', 'responseCodeBlock'); + expect(response).not.to.eql({}); + }); // response tab assert(response && response._shards.failures); @@ -158,10 +164,10 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { await retry.try(async () => { toasts = await find.allByCssSelector(toastsSelector); expect(toasts.length).to.be(2); - }); - const expects = ['The data might be incomplete or wrong.', 'Query result']; - await asyncForEach(toasts, async (t, index) => { - expect(await t.getVisibleText()).to.eql(expects[index]); + const expects = ['The data might be incomplete or wrong.', 'Query result']; + await asyncForEach(toasts, async (t, index) => { + expect(await t.getVisibleText()).to.eql(expects[index]); + }); }); // warnings tab From fa8d953b93c4517644b5ed10a9f726b2c4187084 Mon Sep 17 00:00:00 2001 From: Julia Rechkunova Date: Thu, 12 Oct 2023 09:33:51 +0200 Subject: [PATCH 40/79] [DataViewField] Fix removal of a custom label from a runtime field (#168603) - Closes https://github.com/elastic/kibana/issues/168585 ## Summary This PR fixes an issue with removing a custom label from a runtime field. ### 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 --- .../data_views/common/data_views/data_view.test.ts | 14 ++++++++++++++ .../data_views/common/data_views/data_view.ts | 4 +--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/plugins/data_views/common/data_views/data_view.test.ts b/src/plugins/data_views/common/data_views/data_view.test.ts index 6b756dffaba2a..2f663ac480ba5 100644 --- a/src/plugins/data_views/common/data_views/data_view.test.ts +++ b/src/plugins/data_views/common/data_views/data_view.test.ts @@ -368,6 +368,20 @@ describe('IndexPattern', () => { expect(indexPattern.toSpec()!.fields!.new_field).toBeUndefined(); }); + test('add and remove a custom label from a runtime field', () => { + const newField = 'new_field_test'; + indexPattern.addRuntimeField(newField, { + ...runtimeWithAttrs, + customLabel: 'test1', + }); + expect(indexPattern.getFieldByName(newField)?.customLabel).toEqual('test1'); + indexPattern.setFieldCustomLabel(newField, 'test2'); + expect(indexPattern.getFieldByName(newField)?.customLabel).toEqual('test2'); + indexPattern.setFieldCustomLabel(newField, undefined); + expect(indexPattern.getFieldByName(newField)?.customLabel).toBeUndefined(); + indexPattern.removeRuntimeField(newField); + }); + test('add and remove composite runtime field as new fields', () => { const fieldCount = indexPattern.fields.length; indexPattern.addRuntimeField('new_field', runtimeCompositeWithAttrs); diff --git a/src/plugins/data_views/common/data_views/data_view.ts b/src/plugins/data_views/common/data_views/data_view.ts index ea0e24ba17271..ffda65af2a895 100644 --- a/src/plugins/data_views/common/data_views/data_view.ts +++ b/src/plugins/data_views/common/data_views/data_view.ts @@ -812,9 +812,7 @@ export class DataView implements DataViewBase { } // Apply configuration to the field - if (config.customLabel || config.customLabel === null) { - this.setFieldCustomLabel(fieldName, config.customLabel); - } + this.setFieldCustomLabel(fieldName, config.customLabel); if (config.popularity || config.popularity === null) { this.setFieldCount(fieldName, config.popularity); From e6925cf24e6a7be0590587ddd23fc5bd62876a82 Mon Sep 17 00:00:00 2001 From: Robert Oskamp Date: Thu, 12 Oct 2023 11:03:58 +0200 Subject: [PATCH 41/79] [FTR] Serverless - tag initial set of tests for ES gate (#168622) ## Summary This PR adds the `esGate` tag to an initial set of serverless API integration test suites. Tests with this tag will be run as part of the Elasticsearch process. --- .../api_integration/test_suites/common/alerting/index.ts | 2 ++ .../api_integration/test_suites/common/core/index.ts | 4 +++- .../test_suites/common/data_view_field_editor/index.ts | 4 +++- .../api_integration/test_suites/common/data_views/index.ts | 4 +++- .../test_suites/common/elasticsearch_api/index.ts | 4 +++- .../test_suites/common/index_management/index.ts | 2 ++ .../api_integration/test_suites/common/kql_telemetry/index.ts | 4 +++- .../api_integration/test_suites/common/management/index.ts | 4 +++- .../test_suites/common/platform_security/index.ts | 2 ++ .../api_integration/test_suites/common/reporting/index.ts | 2 ++ .../api_integration/test_suites/common/scripts_tests/index.js | 4 +++- .../api_integration/test_suites/common/search_oss/index.ts | 4 +++- .../api_integration/test_suites/common/search_xpack/index.ts | 4 +++- .../api_integration/test_suites/observability/index.ts | 2 ++ .../api_integration/test_suites/search/index.ts | 2 ++ .../api_integration/test_suites/security/index.ts | 2 ++ 16 files changed, 41 insertions(+), 9 deletions(-) diff --git a/x-pack/test_serverless/api_integration/test_suites/common/alerting/index.ts b/x-pack/test_serverless/api_integration/test_suites/common/alerting/index.ts index 4367656feae60..9585819a7ffe6 100644 --- a/x-pack/test_serverless/api_integration/test_suites/common/alerting/index.ts +++ b/x-pack/test_serverless/api_integration/test_suites/common/alerting/index.ts @@ -9,6 +9,8 @@ import { FtrProviderContext } from '../../../ftr_provider_context'; export default function ({ loadTestFile }: FtrProviderContext) { describe('Alerting APIs', function () { + this.tags(['esGate']); + loadTestFile(require.resolve('./rules')); loadTestFile(require.resolve('./alert_documents')); loadTestFile(require.resolve('./summary_actions')); diff --git a/x-pack/test_serverless/api_integration/test_suites/common/core/index.ts b/x-pack/test_serverless/api_integration/test_suites/common/core/index.ts index f55f77bd7e6ab..aa847e0c0ecea 100644 --- a/x-pack/test_serverless/api_integration/test_suites/common/core/index.ts +++ b/x-pack/test_serverless/api_integration/test_suites/common/core/index.ts @@ -8,7 +8,9 @@ import { FtrProviderContext } from '../../../ftr_provider_context'; export default function ({ loadTestFile }: FtrProviderContext) { - describe('core', () => { + describe('core', function () { + this.tags(['esGate']); + loadTestFile(require.resolve('./compression')); loadTestFile(require.resolve('./translations')); loadTestFile(require.resolve('./capabilities')); diff --git a/x-pack/test_serverless/api_integration/test_suites/common/data_view_field_editor/index.ts b/x-pack/test_serverless/api_integration/test_suites/common/data_view_field_editor/index.ts index 561b4798d2c28..7998f8b63f92c 100644 --- a/x-pack/test_serverless/api_integration/test_suites/common/data_view_field_editor/index.ts +++ b/x-pack/test_serverless/api_integration/test_suites/common/data_view_field_editor/index.ts @@ -8,7 +8,9 @@ import type { FtrProviderContext } from '../../../ftr_provider_context'; export default function ({ loadTestFile }: FtrProviderContext) { - describe('index pattern field editor', () => { + describe('index pattern field editor', function () { + this.tags(['esGate']); + loadTestFile(require.resolve('./field_preview')); }); } diff --git a/x-pack/test_serverless/api_integration/test_suites/common/data_views/index.ts b/x-pack/test_serverless/api_integration/test_suites/common/data_views/index.ts index eb25b2530a5e7..dafe36565a8fe 100644 --- a/x-pack/test_serverless/api_integration/test_suites/common/data_views/index.ts +++ b/x-pack/test_serverless/api_integration/test_suites/common/data_views/index.ts @@ -8,7 +8,9 @@ import type { FtrProviderContext } from '../../../ftr_provider_context'; export default function ({ loadTestFile }: FtrProviderContext) { - describe('index_patterns', () => { + describe('index_patterns', function () { + this.tags(['esGate']); + loadTestFile(require.resolve('./es_errors')); loadTestFile(require.resolve('./fields_for_wildcard_route')); loadTestFile(require.resolve('./data_views_crud')); diff --git a/x-pack/test_serverless/api_integration/test_suites/common/elasticsearch_api/index.ts b/x-pack/test_serverless/api_integration/test_suites/common/elasticsearch_api/index.ts index 0d53235d8e0b6..aafab33abb587 100644 --- a/x-pack/test_serverless/api_integration/test_suites/common/elasticsearch_api/index.ts +++ b/x-pack/test_serverless/api_integration/test_suites/common/elasticsearch_api/index.ts @@ -8,7 +8,9 @@ import type { FtrProviderContext } from '../../../ftr_provider_context'; export default function ({ loadTestFile }: FtrProviderContext) { - describe('Elasticsearch API', () => { + describe('Elasticsearch API', function () { + this.tags(['esGate']); + loadTestFile(require.resolve('./home')); }); } diff --git a/x-pack/test_serverless/api_integration/test_suites/common/index_management/index.ts b/x-pack/test_serverless/api_integration/test_suites/common/index_management/index.ts index cf0bf24cb99b4..7dff563bf43b3 100644 --- a/x-pack/test_serverless/api_integration/test_suites/common/index_management/index.ts +++ b/x-pack/test_serverless/api_integration/test_suites/common/index_management/index.ts @@ -9,6 +9,8 @@ import { FtrProviderContext } from '../../../ftr_provider_context'; export default function ({ loadTestFile }: FtrProviderContext) { describe('Index Management APIs', function () { + this.tags(['esGate']); + loadTestFile(require.resolve('./index_templates')); loadTestFile(require.resolve('./indices')); loadTestFile(require.resolve('./create_enrich_policies')); diff --git a/x-pack/test_serverless/api_integration/test_suites/common/kql_telemetry/index.ts b/x-pack/test_serverless/api_integration/test_suites/common/kql_telemetry/index.ts index 07b76ff08e58c..8a832ef82169e 100644 --- a/x-pack/test_serverless/api_integration/test_suites/common/kql_telemetry/index.ts +++ b/x-pack/test_serverless/api_integration/test_suites/common/kql_telemetry/index.ts @@ -8,7 +8,9 @@ import type { FtrProviderContext } from '../../../ftr_provider_context'; export default function ({ loadTestFile }: FtrProviderContext) { - describe('KQL', () => { + describe('KQL', function () { + this.tags(['esGate']); + loadTestFile(require.resolve('./kql_telemetry')); }); } diff --git a/x-pack/test_serverless/api_integration/test_suites/common/management/index.ts b/x-pack/test_serverless/api_integration/test_suites/common/management/index.ts index 9c634b7f5590f..73e79c6a199fb 100644 --- a/x-pack/test_serverless/api_integration/test_suites/common/management/index.ts +++ b/x-pack/test_serverless/api_integration/test_suites/common/management/index.ts @@ -8,7 +8,9 @@ import type { FtrProviderContext } from '../../../ftr_provider_context'; export default function ({ loadTestFile }: FtrProviderContext) { - describe('Management', () => { + describe('Management', function () { + this.tags(['esGate']); + loadTestFile(require.resolve('./ingest_pipelines')); loadTestFile(require.resolve('./rollups')); loadTestFile(require.resolve('./scripted_fields')); diff --git a/x-pack/test_serverless/api_integration/test_suites/common/platform_security/index.ts b/x-pack/test_serverless/api_integration/test_suites/common/platform_security/index.ts index 8297aa53bfc6b..8d5970aa843ac 100644 --- a/x-pack/test_serverless/api_integration/test_suites/common/platform_security/index.ts +++ b/x-pack/test_serverless/api_integration/test_suites/common/platform_security/index.ts @@ -9,6 +9,8 @@ import { FtrProviderContext } from '../../../ftr_provider_context'; export default function ({ loadTestFile }: FtrProviderContext) { describe('serverless common API', function () { + this.tags(['esGate']); + loadTestFile(require.resolve('./anonymous')); loadTestFile(require.resolve('./api_keys')); loadTestFile(require.resolve('./authentication')); diff --git a/x-pack/test_serverless/api_integration/test_suites/common/reporting/index.ts b/x-pack/test_serverless/api_integration/test_suites/common/reporting/index.ts index 12efd676636e9..b934d8cf178a6 100644 --- a/x-pack/test_serverless/api_integration/test_suites/common/reporting/index.ts +++ b/x-pack/test_serverless/api_integration/test_suites/common/reporting/index.ts @@ -9,6 +9,8 @@ import { FtrProviderContext } from '../../../ftr_provider_context'; export default ({ loadTestFile }: FtrProviderContext) => { describe('Reporting', function () { + this.tags(['esGate']); + loadTestFile(require.resolve('./management')); loadTestFile(require.resolve('./generate_csv_discover')); loadTestFile(require.resolve('./download_csv_dashboard')); diff --git a/x-pack/test_serverless/api_integration/test_suites/common/scripts_tests/index.js b/x-pack/test_serverless/api_integration/test_suites/common/scripts_tests/index.js index d1eeb009a7cce..e6dae2f948174 100644 --- a/x-pack/test_serverless/api_integration/test_suites/common/scripts_tests/index.js +++ b/x-pack/test_serverless/api_integration/test_suites/common/scripts_tests/index.js @@ -8,7 +8,9 @@ export default function ({ loadTestFile }) { // TODO: The `scripts` folder was renamed to `scripts_tests` because the folder // name `scripts` triggers the `eslint@kbn/imports/no_boundary_crossing` rule - describe('scripts', () => { + describe('scripts', function () { + this.tags(['esGate']); + loadTestFile(require.resolve('./languages')); }); } diff --git a/x-pack/test_serverless/api_integration/test_suites/common/search_oss/index.ts b/x-pack/test_serverless/api_integration/test_suites/common/search_oss/index.ts index 598493bfd2182..79ff29fdf9f22 100644 --- a/x-pack/test_serverless/api_integration/test_suites/common/search_oss/index.ts +++ b/x-pack/test_serverless/api_integration/test_suites/common/search_oss/index.ts @@ -10,7 +10,9 @@ import type { FtrProviderContext } from '../../../ftr_provider_context'; export default function ({ loadTestFile }: FtrProviderContext) { // TODO: This `search` folder was renamed to `search_oss` to // differentiate it from the x-pack `search` folder (now `search_xpack`) - describe('search', () => { + describe('search', function () { + this.tags(['esGate']); + loadTestFile(require.resolve('./search')); // TODO: Removed `sql_search` since // SQL is not supported in Serverless diff --git a/x-pack/test_serverless/api_integration/test_suites/common/search_xpack/index.ts b/x-pack/test_serverless/api_integration/test_suites/common/search_xpack/index.ts index fc433f4655977..e832bc22d2fda 100644 --- a/x-pack/test_serverless/api_integration/test_suites/common/search_xpack/index.ts +++ b/x-pack/test_serverless/api_integration/test_suites/common/search_xpack/index.ts @@ -10,7 +10,9 @@ import type { FtrProviderContext } from '../../../ftr_provider_context'; export default function ({ loadTestFile }: FtrProviderContext) { // TODO: This `search` folder was renamed to `search_xpack` to // differentiate it from the oss `search` folder (now `search_oss`) - describe('search', () => { + describe('search', function () { + this.tags(['esGate']); + loadTestFile(require.resolve('./search')); // TODO: Removed `session` since search // sessions are not supported in Serverless diff --git a/x-pack/test_serverless/api_integration/test_suites/observability/index.ts b/x-pack/test_serverless/api_integration/test_suites/observability/index.ts index 9ff9af85e855b..f7d428387370a 100644 --- a/x-pack/test_serverless/api_integration/test_suites/observability/index.ts +++ b/x-pack/test_serverless/api_integration/test_suites/observability/index.ts @@ -9,6 +9,8 @@ import { FtrProviderContext } from '../../ftr_provider_context'; export default function ({ loadTestFile }: FtrProviderContext) { describe('Serverless observability API', function () { + this.tags(['esGate']); + loadTestFile(require.resolve('./fleet/fleet')); loadTestFile(require.resolve('./telemetry/snapshot_telemetry')); loadTestFile(require.resolve('./telemetry/telemetry_config')); diff --git a/x-pack/test_serverless/api_integration/test_suites/search/index.ts b/x-pack/test_serverless/api_integration/test_suites/search/index.ts index ff29a499c6eab..7b5f69bc5da8b 100644 --- a/x-pack/test_serverless/api_integration/test_suites/search/index.ts +++ b/x-pack/test_serverless/api_integration/test_suites/search/index.ts @@ -9,6 +9,8 @@ import { FtrProviderContext } from '../../ftr_provider_context'; export default function ({ loadTestFile }: FtrProviderContext) { describe('Serverless search API', function () { + this.tags(['esGate']); + loadTestFile(require.resolve('./telemetry/snapshot_telemetry')); loadTestFile(require.resolve('./telemetry/telemetry_config')); loadTestFile(require.resolve('./cases/find_cases')); diff --git a/x-pack/test_serverless/api_integration/test_suites/security/index.ts b/x-pack/test_serverless/api_integration/test_suites/security/index.ts index 5d637ee78b58d..e439cf8b76e8b 100644 --- a/x-pack/test_serverless/api_integration/test_suites/security/index.ts +++ b/x-pack/test_serverless/api_integration/test_suites/security/index.ts @@ -9,6 +9,8 @@ import { FtrProviderContext } from '../../ftr_provider_context'; export default function ({ loadTestFile }: FtrProviderContext) { describe('Serverless security API', function () { + this.tags(['esGate']); + loadTestFile(require.resolve('./telemetry/snapshot_telemetry')); loadTestFile(require.resolve('./telemetry/telemetry_config')); loadTestFile(require.resolve('./fleet/fleet')); From 6825483f1d7bb69f9036b3a16f03d30ec752e89c Mon Sep 17 00:00:00 2001 From: Craig Rodrigues Date: Thu, 12 Oct 2023 02:11:17 -0700 Subject: [PATCH 42/79] [Synthetics,Heartbeat] Change index pattern to 'heartbeat-*' (#167811) Co-authored-by: Dzmitry Lemechko Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../common/constants/settings_defaults.ts | 2 +- .../synthetics/server/constants/settings.ts | 2 +- .../lib/requests/get_network_events.test.ts | 2 +- x-pack/plugins/synthetics/server/lib.test.ts | 6 +++--- .../uptime/common/constants/settings_defaults.ts | 2 +- .../plugins/uptime/server/constants/settings.ts | 2 +- .../uptime/server/legacy_uptime/lib/lib.test.ts | 16 ++++++++-------- .../get_monitor_details.test.ts.snap | 4 ++-- .../get_monitor_duration.test.ts.snap | 2 +- .../legacy_uptime/lib/requests/get_certs.test.ts | 2 +- .../requests/get_monitor_availability.test.ts | 10 +++++----- .../lib/requests/get_monitor_status.test.ts | 10 +++++----- .../lib/requests/get_network_events.test.ts | 2 +- .../legacy_uptime/lib/requests/get_pings.test.ts | 10 +++++----- .../observability/synthetics_rule.ts | 4 ++-- .../apis/uptime/rest/index_status.ts | 2 +- 16 files changed, 39 insertions(+), 39 deletions(-) diff --git a/x-pack/plugins/synthetics/common/constants/settings_defaults.ts b/x-pack/plugins/synthetics/common/constants/settings_defaults.ts index ec5fd9bc0a1d7..d5385ada22337 100644 --- a/x-pack/plugins/synthetics/common/constants/settings_defaults.ts +++ b/x-pack/plugins/synthetics/common/constants/settings_defaults.ts @@ -8,7 +8,7 @@ import { DynamicSettings } from '../runtime_types'; export const DYNAMIC_SETTINGS_DEFAULTS: DynamicSettings = { - heartbeatIndices: 'heartbeat-8*,heartbeat-7*', + heartbeatIndices: 'heartbeat-*', certAgeThreshold: 730, certExpirationThreshold: 30, defaultConnectors: [], diff --git a/x-pack/plugins/synthetics/server/constants/settings.ts b/x-pack/plugins/synthetics/server/constants/settings.ts index 3428cc4433a30..777d75b01a3eb 100644 --- a/x-pack/plugins/synthetics/server/constants/settings.ts +++ b/x-pack/plugins/synthetics/server/constants/settings.ts @@ -8,7 +8,7 @@ import { DynamicSettingsAttributes } from '../runtime_types/settings'; export const DYNAMIC_SETTINGS_DEFAULTS: DynamicSettingsAttributes = { - heartbeatIndices: 'heartbeat-8*,heartbeat-7*', + heartbeatIndices: 'heartbeat-*', certAgeThreshold: 730, certExpirationThreshold: 30, defaultConnectors: [], diff --git a/x-pack/plugins/synthetics/server/legacy_uptime/lib/requests/get_network_events.test.ts b/x-pack/plugins/synthetics/server/legacy_uptime/lib/requests/get_network_events.test.ts index d2c97acb4eba1..e8202e748bd03 100644 --- a/x-pack/plugins/synthetics/server/legacy_uptime/lib/requests/get_network_events.test.ts +++ b/x-pack/plugins/synthetics/server/legacy_uptime/lib/requests/get_network_events.test.ts @@ -213,7 +213,7 @@ describe('getNetworkEvents', () => { "size": 1000, "track_total_hits": true, }, - "index": "heartbeat-8*,heartbeat-7*", + "index": "heartbeat-*", }, Object { "meta": true, diff --git a/x-pack/plugins/synthetics/server/lib.test.ts b/x-pack/plugins/synthetics/server/lib.test.ts index 0ce1f79607846..4bc18d3dc5b18 100644 --- a/x-pack/plugins/synthetics/server/lib.test.ts +++ b/x-pack/plugins/synthetics/server/lib.test.ts @@ -42,7 +42,7 @@ describe('UptimeEsClient', () => { expect(esClient.search).toHaveBeenCalledWith( { - index: 'heartbeat-8*,heartbeat-7*', + index: 'heartbeat-*', ...mockSearchParams, }, { meta: true } @@ -72,7 +72,7 @@ describe('UptimeEsClient', () => { await expect(uptimeEsClient.search(mockSearchParams)).rejects.toThrow(mockError); expect(esClient.search).toHaveBeenCalledWith( { - index: 'heartbeat-8*,heartbeat-7*', + index: 'heartbeat-*', ...mockSearchParams, }, { meta: true } @@ -90,7 +90,7 @@ describe('UptimeEsClient', () => { expect(esClient.count).toHaveBeenCalledWith(mockCountParams, { meta: true }); expect(result).toEqual({ - indices: 'heartbeat-8*,heartbeat-7*', + indices: 'heartbeat-*', result: { body: {}, headers: { diff --git a/x-pack/plugins/uptime/common/constants/settings_defaults.ts b/x-pack/plugins/uptime/common/constants/settings_defaults.ts index ec5fd9bc0a1d7..d5385ada22337 100644 --- a/x-pack/plugins/uptime/common/constants/settings_defaults.ts +++ b/x-pack/plugins/uptime/common/constants/settings_defaults.ts @@ -8,7 +8,7 @@ import { DynamicSettings } from '../runtime_types'; export const DYNAMIC_SETTINGS_DEFAULTS: DynamicSettings = { - heartbeatIndices: 'heartbeat-8*,heartbeat-7*', + heartbeatIndices: 'heartbeat-*', certAgeThreshold: 730, certExpirationThreshold: 30, defaultConnectors: [], diff --git a/x-pack/plugins/uptime/server/constants/settings.ts b/x-pack/plugins/uptime/server/constants/settings.ts index 3428cc4433a30..777d75b01a3eb 100644 --- a/x-pack/plugins/uptime/server/constants/settings.ts +++ b/x-pack/plugins/uptime/server/constants/settings.ts @@ -8,7 +8,7 @@ import { DynamicSettingsAttributes } from '../runtime_types/settings'; export const DYNAMIC_SETTINGS_DEFAULTS: DynamicSettingsAttributes = { - heartbeatIndices: 'heartbeat-8*,heartbeat-7*', + heartbeatIndices: 'heartbeat-*', certAgeThreshold: 730, certExpirationThreshold: 30, defaultConnectors: [], diff --git a/x-pack/plugins/uptime/server/legacy_uptime/lib/lib.test.ts b/x-pack/plugins/uptime/server/legacy_uptime/lib/lib.test.ts index e55898cf7a63d..1dadb58e7c59f 100644 --- a/x-pack/plugins/uptime/server/legacy_uptime/lib/lib.test.ts +++ b/x-pack/plugins/uptime/server/legacy_uptime/lib/lib.test.ts @@ -44,7 +44,7 @@ describe('UptimeEsClient', () => { expect(esClient.search).toHaveBeenCalledWith( { - index: 'heartbeat-8*,heartbeat-7*', + index: 'heartbeat-*', ...mockSearchParams, }, { meta: true } @@ -74,7 +74,7 @@ describe('UptimeEsClient', () => { await expect(uptimeEsClient.search(mockSearchParams)).rejects.toThrow(mockError); expect(esClient.search).toHaveBeenCalledWith( { - index: 'heartbeat-8*,heartbeat-7*', + index: 'heartbeat-*', ...mockSearchParams, }, { meta: true } @@ -92,7 +92,7 @@ describe('UptimeEsClient', () => { expect(esClient.count).toHaveBeenCalledWith(mockCountParams, { meta: true }); expect(result).toEqual({ - indices: 'heartbeat-8*,heartbeat-7*', + indices: 'heartbeat-*', result: { body: {}, headers: { @@ -143,7 +143,7 @@ describe('UptimeEsClient', () => { it('appends synthetics-* in index for legacy alerts', async () => { savedObjectsClient.get = jest.fn().mockResolvedValue({ attributes: { - heartbeatIndices: 'heartbeat-8*,heartbeat-7*', + heartbeatIndices: 'heartbeat-*', syntheticsIndexRemoved: true, }, }); @@ -167,7 +167,7 @@ describe('UptimeEsClient', () => { expect(esClient.search).toHaveBeenCalledWith( { - index: 'heartbeat-8*,heartbeat-7*,synthetics-*', + index: 'heartbeat-*,synthetics-*', ...mockSearchParams, }, { meta: true } @@ -200,7 +200,7 @@ describe('UptimeEsClient', () => { expect(esClient.search).toHaveBeenCalledWith( { - index: 'heartbeat-8*,heartbeat-7*,synthetics-*', + index: 'heartbeat-*,synthetics-*', ...mockSearchParams, }, { meta: true } @@ -227,7 +227,7 @@ describe('UptimeEsClient', () => { expect(esClient.search).toHaveBeenCalledWith( { - index: 'heartbeat-8*,heartbeat-7*', + index: 'heartbeat-*', body: { query: { match_all: {}, @@ -251,7 +251,7 @@ describe('UptimeEsClient', () => { expect(esClient.search).toHaveBeenLastCalledWith( { - index: 'heartbeat-8*,heartbeat-7*', + index: 'heartbeat-*', body: { query: { match_all: {}, diff --git a/x-pack/plugins/uptime/server/legacy_uptime/lib/requests/__snapshots__/get_monitor_details.test.ts.snap b/x-pack/plugins/uptime/server/legacy_uptime/lib/requests/__snapshots__/get_monitor_details.test.ts.snap index b3a6d7937c6d5..ede405a125cc7 100644 --- a/x-pack/plugins/uptime/server/legacy_uptime/lib/requests/__snapshots__/get_monitor_details.test.ts.snap +++ b/x-pack/plugins/uptime/server/legacy_uptime/lib/requests/__snapshots__/get_monitor_details.test.ts.snap @@ -55,7 +55,7 @@ Array [ }, "size": 0, }, - "index": "heartbeat-8*,heartbeat-7*", + "index": "heartbeat-*", }, Object { "meta": true, @@ -106,7 +106,7 @@ Array [ }, ], }, - "index": "heartbeat-8*,heartbeat-7*", + "index": "heartbeat-*", }, Object { "meta": true, diff --git a/x-pack/plugins/uptime/server/legacy_uptime/lib/requests/__snapshots__/get_monitor_duration.test.ts.snap b/x-pack/plugins/uptime/server/legacy_uptime/lib/requests/__snapshots__/get_monitor_duration.test.ts.snap index eb8499391abc5..712f1f9205cad 100644 --- a/x-pack/plugins/uptime/server/legacy_uptime/lib/requests/__snapshots__/get_monitor_duration.test.ts.snap +++ b/x-pack/plugins/uptime/server/legacy_uptime/lib/requests/__snapshots__/get_monitor_duration.test.ts.snap @@ -69,7 +69,7 @@ Array [ }, "size": 0, }, - "index": "heartbeat-8*,heartbeat-7*", + "index": "heartbeat-*", }, Object { "meta": true, diff --git a/x-pack/plugins/uptime/server/legacy_uptime/lib/requests/get_certs.test.ts b/x-pack/plugins/uptime/server/legacy_uptime/lib/requests/get_certs.test.ts index fe6ed1fc5f4f8..07c2a01256864 100644 --- a/x-pack/plugins/uptime/server/legacy_uptime/lib/requests/get_certs.test.ts +++ b/x-pack/plugins/uptime/server/legacy_uptime/lib/requests/get_certs.test.ts @@ -253,7 +253,7 @@ describe('getCerts', () => { }, ], }, - "index": "heartbeat-8*,heartbeat-7*", + "index": "heartbeat-*", }, Object { "meta": true, diff --git a/x-pack/plugins/uptime/server/legacy_uptime/lib/requests/get_monitor_availability.test.ts b/x-pack/plugins/uptime/server/legacy_uptime/lib/requests/get_monitor_availability.test.ts index d4b2680e16037..af3b09cedda27 100644 --- a/x-pack/plugins/uptime/server/legacy_uptime/lib/requests/get_monitor_availability.test.ts +++ b/x-pack/plugins/uptime/server/legacy_uptime/lib/requests/get_monitor_availability.test.ts @@ -255,7 +255,7 @@ describe('monitor availability', () => { }, "size": 0, }, - "index": "heartbeat-8*,heartbeat-7*", + "index": "heartbeat-*", } `); }); @@ -415,7 +415,7 @@ describe('monitor availability', () => { }, "size": 0, }, - "index": "heartbeat-8*,heartbeat-7*", + "index": "heartbeat-*", } `); @@ -750,7 +750,7 @@ describe('monitor availability', () => { }, "size": 0, }, - "index": "heartbeat-8*,heartbeat-7*", + "index": "heartbeat-*", } `); @@ -862,7 +862,7 @@ describe('monitor availability', () => { }, "size": 0, }, - "index": "heartbeat-8*,heartbeat-7*", + "index": "heartbeat-*", }, Object { "meta": true, @@ -1009,7 +1009,7 @@ describe('monitor availability', () => { }, "size": 0, }, - "index": "heartbeat-8*,heartbeat-7*", + "index": "heartbeat-*", } `); }); diff --git a/x-pack/plugins/uptime/server/legacy_uptime/lib/requests/get_monitor_status.test.ts b/x-pack/plugins/uptime/server/legacy_uptime/lib/requests/get_monitor_status.test.ts index 2ceda7dc03ace..dc7760d8f31f7 100644 --- a/x-pack/plugins/uptime/server/legacy_uptime/lib/requests/get_monitor_status.test.ts +++ b/x-pack/plugins/uptime/server/legacy_uptime/lib/requests/get_monitor_status.test.ts @@ -218,7 +218,7 @@ describe('getMonitorStatus', () => { }, "size": 0, }, - "index": "heartbeat-8*,heartbeat-7*", + "index": "heartbeat-*", } `); }); @@ -353,7 +353,7 @@ describe('getMonitorStatus', () => { }, "size": 0, }, - "index": "heartbeat-8*,heartbeat-7*", + "index": "heartbeat-*", } `); }); @@ -573,7 +573,7 @@ describe('getMonitorStatus', () => { }, "size": 0, }, - "index": "heartbeat-8*,heartbeat-7*", + "index": "heartbeat-*", } `); }); @@ -713,7 +713,7 @@ describe('getMonitorStatus', () => { }, "size": 0, }, - "index": "heartbeat-8*,heartbeat-7*", + "index": "heartbeat-*", } `); }); @@ -859,7 +859,7 @@ describe('getMonitorStatus', () => { }, "size": 0, }, - "index": "heartbeat-8*,heartbeat-7*", + "index": "heartbeat-*", } `); expect(result.length).toBe(3); diff --git a/x-pack/plugins/uptime/server/legacy_uptime/lib/requests/get_network_events.test.ts b/x-pack/plugins/uptime/server/legacy_uptime/lib/requests/get_network_events.test.ts index ec0642409dc01..29d9386c37cf3 100644 --- a/x-pack/plugins/uptime/server/legacy_uptime/lib/requests/get_network_events.test.ts +++ b/x-pack/plugins/uptime/server/legacy_uptime/lib/requests/get_network_events.test.ts @@ -213,7 +213,7 @@ describe('getNetworkEvents', () => { "size": 1000, "track_total_hits": true, }, - "index": "heartbeat-8*,heartbeat-7*", + "index": "heartbeat-*", }, Object { "meta": true, diff --git a/x-pack/plugins/uptime/server/legacy_uptime/lib/requests/get_pings.test.ts b/x-pack/plugins/uptime/server/legacy_uptime/lib/requests/get_pings.test.ts index eac84470ca190..a58c7f5516ff8 100644 --- a/x-pack/plugins/uptime/server/legacy_uptime/lib/requests/get_pings.test.ts +++ b/x-pack/plugins/uptime/server/legacy_uptime/lib/requests/get_pings.test.ts @@ -163,7 +163,7 @@ describe('getAll', () => { }, ], }, - "index": "heartbeat-8*,heartbeat-7*", + "index": "heartbeat-*", }, Object { "meta": true, @@ -225,7 +225,7 @@ describe('getAll', () => { }, ], }, - "index": "heartbeat-8*,heartbeat-7*", + "index": "heartbeat-*", }, Object { "meta": true, @@ -287,7 +287,7 @@ describe('getAll', () => { }, ], }, - "index": "heartbeat-8*,heartbeat-7*", + "index": "heartbeat-*", }, Object { "meta": true, @@ -354,7 +354,7 @@ describe('getAll', () => { }, ], }, - "index": "heartbeat-8*,heartbeat-7*", + "index": "heartbeat-*", }, Object { "meta": true, @@ -462,7 +462,7 @@ describe('getAll', () => { }, ], }, - "index": "heartbeat-8*,heartbeat-7*", + "index": "heartbeat-*", }, Object { "meta": true, diff --git a/x-pack/test/alerting_api_integration/observability/synthetics_rule.ts b/x-pack/test/alerting_api_integration/observability/synthetics_rule.ts index 888d2a0d7f897..21a3749fc3365 100644 --- a/x-pack/test/alerting_api_integration/observability/synthetics_rule.ts +++ b/x-pack/test/alerting_api_integration/observability/synthetics_rule.ts @@ -39,7 +39,7 @@ export default function ({ getService }: FtrProviderContext) { .post(SYNTHETICS_API_URLS.DYNAMIC_SETTINGS) .set('kbn-xsrf', 'true') .send({ - heartbeatIndices: 'heartbeat-8*,heartbeat-7*', + heartbeatIndices: 'heartbeat-*', certExpirationThreshold: 30, certAgeThreshold: 730, defaultConnectors: testActions.slice(0, 2), @@ -79,7 +79,7 @@ export default function ({ getService }: FtrProviderContext) { .post(SYNTHETICS_API_URLS.DYNAMIC_SETTINGS) .set('kbn-xsrf', 'true') .send({ - heartbeatIndices: 'heartbeat-8*,heartbeat-7*', + heartbeatIndices: 'heartbeat-*', certExpirationThreshold: 30, certAgeThreshold: 730, defaultConnectors: testActions, diff --git a/x-pack/test/api_integration/apis/uptime/rest/index_status.ts b/x-pack/test/api_integration/apis/uptime/rest/index_status.ts index 50ff47f04be5d..1602e00d13a2d 100644 --- a/x-pack/test/api_integration/apis/uptime/rest/index_status.ts +++ b/x-pack/test/api_integration/apis/uptime/rest/index_status.ts @@ -18,7 +18,7 @@ export default function ({ getService }: FtrProviderContext) { const data = apiResponse.body; expect(data).to.eql({ indexExists: true, - indices: 'heartbeat-8*,heartbeat-7*', + indices: 'heartbeat-*', }); }); }); From a577e1e714014f0543a2ad5b854b436ce0a87440 Mon Sep 17 00:00:00 2001 From: "Eyo O. Eyo" <7893459+eokoneyo@users.noreply.github.com> Date: Thu, 12 Oct 2023 12:16:11 +0200 Subject: [PATCH 43/79] [Serverless] make changes to serverless oblt left nav (#168562) ## Summary This PR makes the following changes to the nav for serverless observerability left nav; - Move _Visualizations_ up under _Dashboards_ - Rename Add data to Get started and move to footer - Move Cases up under Alerts ##### Visual Change Screenshot 2023-10-11 at 10 14 56 --- .../components/side_navigation/index.tsx | 51 +++++++++---------- .../test_suites/observability/navigation.ts | 2 - 2 files changed, 25 insertions(+), 28 deletions(-) diff --git a/x-pack/plugins/serverless_observability/public/components/side_navigation/index.tsx b/x-pack/plugins/serverless_observability/public/components/side_navigation/index.tsx index d65011200b90d..47e459c9c8cea 100644 --- a/x-pack/plugins/serverless_observability/public/components/side_navigation/index.tsx +++ b/x-pack/plugins/serverless_observability/public/components/side_navigation/index.tsx @@ -45,9 +45,25 @@ const navigationTree: NavigationTreeDefinition = { return pathNameSerialized.startsWith(prepend('/app/dashboards')); }, }, + { + title: i18n.translate('xpack.serverlessObservability.nav.visualizations', { + defaultMessage: 'Visualizations', + }), + link: 'visualize', + getIsActive: ({ pathNameSerialized, prepend }) => { + return ( + pathNameSerialized.startsWith(prepend('/app/visualize')) || + pathNameSerialized.startsWith(prepend('/app/lens')) || + pathNameSerialized.startsWith(prepend('/app/maps')) + ); + }, + }, { link: 'observability-overview:alerts', }, + { + link: 'observability-overview:cases', + }, { link: 'observability-overview:slos', }, @@ -151,36 +167,19 @@ const navigationTree: NavigationTreeDefinition = { id: 'groups-spacer-2', isGroupTitle: true, }, - { - link: 'observability-overview:cases', - }, - { - title: i18n.translate('xpack.serverlessObservability.nav.visualizations', { - defaultMessage: 'Visualizations', - }), - link: 'visualize', - getIsActive: ({ pathNameSerialized, prepend }) => { - return ( - pathNameSerialized.startsWith(prepend('/app/visualize')) || - pathNameSerialized.startsWith(prepend('/app/lens')) || - pathNameSerialized.startsWith(prepend('/app/maps')) - ); - }, - }, - { - id: 'groups-spacer-3', - isGroupTitle: true, - }, - { - title: i18n.translate('xpack.serverlessObservability.nav.getStarted', { - defaultMessage: 'Add data', - }), - link: 'observabilityOnboarding', - }, ], }, ], footer: [ + { + type: 'navGroup', + title: i18n.translate('xpack.serverlessObservability.nav.getStarted', { + defaultMessage: 'Get Started', + }), + link: 'observabilityOnboarding', + isGroupTitle: true, + icon: 'launch', + }, { type: 'navGroup', id: 'devTools', diff --git a/x-pack/test_serverless/functional/test_suites/observability/navigation.ts b/x-pack/test_serverless/functional/test_suites/observability/navigation.ts index 57b636efa6a75..278da0f02d1d7 100644 --- a/x-pack/test_serverless/functional/test_suites/observability/navigation.ts +++ b/x-pack/test_serverless/functional/test_suites/observability/navigation.ts @@ -35,7 +35,6 @@ export default function ({ getPageObject, getService }: FtrProviderContext) { // check side nav links await svlCommonNavigation.sidenav.expectSectionOpen('observability_project_nav'); - await svlCommonNavigation.sidenav.expectLinkActive({ deepLinkId: 'observabilityOnboarding' }); await svlCommonNavigation.breadcrumbs.expectBreadcrumbExists({ deepLinkId: 'observabilityOnboarding', }); @@ -68,7 +67,6 @@ export default function ({ getPageObject, getService }: FtrProviderContext) { // navigate back to serverless oblt overview await svlCommonNavigation.breadcrumbs.clickHome(); - await svlCommonNavigation.sidenav.expectLinkActive({ deepLinkId: 'observabilityOnboarding' }); await svlCommonNavigation.breadcrumbs.expectBreadcrumbExists({ deepLinkId: 'observabilityOnboarding', }); From b7a96acee8791483c2f234b49f8ee4a7bc88008a Mon Sep 17 00:00:00 2001 From: Maxim Kholod Date: Thu, 12 Oct 2023 13:22:54 +0200 Subject: [PATCH 44/79] [Cloud Security] add elastic version header to fleet calls in cloud security api e2e tests (#168503) ## Summary While running `yarn test:ftr --config x-pack/test/api_integration/apis/cloud_security_posture/config.ts` locally tests fail due to missing `elastic-api-version` header in the calls to fleet public APIs ## How to test run `yarn test:ftr --config x-pack/test/api_integration/apis/cloud_security_posture/config.ts` locally, all tests should be green --- x-pack/plugins/cloud_security_posture/README.md | 2 +- .../api_integration/apis/cloud_security_posture/benchmark.ts | 4 ++++ .../apis/cloud_security_posture/get_csp_rule_template.ts | 1 + .../api_integration/apis/cloud_security_posture/helper.ts | 2 ++ .../cloud_security_posture/status/status_index_timeout.ts | 4 ++++ .../apis/cloud_security_posture/status/status_indexed.ts | 1 + .../apis/cloud_security_posture/status/status_indexing.ts | 1 + .../status/status_not_deployed_not_installed.ts | 1 + .../apis/cloud_security_posture/status/status_unprivileged.ts | 2 ++ .../status/status_waiting_for_results.ts | 4 ++++ x-pack/test/fleet_api_integration/apis/agents/services.ts | 4 ++++ 11 files changed, 25 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/cloud_security_posture/README.md b/x-pack/plugins/cloud_security_posture/README.md index 0befebb667de6..bd0b7de6ac661 100755 --- a/x-pack/plugins/cloud_security_posture/README.md +++ b/x-pack/plugins/cloud_security_posture/README.md @@ -67,7 +67,7 @@ Run [**End-to-End Tests**](https://www.elastic.co/guide/en/kibana/current/develo ```bash yarn test:ftr --config x-pack/test/cloud_security_posture_functional/config.ts -yarn test:ftr --config x-pack/test/api_integration/config.ts --include-tag=cloud_security_posture +yarn test:ftr --config x-pack/test/api_integration/apis/cloud_security_posture/config.ts yarn test:ftr --config x-pack/test/cloud_security_posture_api/config.ts yarn test:ftr --config x-pack/test_serverless/api_integration/test_suites/security/config.ts --include-tag=cloud_security_posture yarn test:ftr --config x-pack/test_serverless/functional/test_suites/security/config.cloud_security_posture.ts diff --git a/x-pack/test/api_integration/apis/cloud_security_posture/benchmark.ts b/x-pack/test/api_integration/apis/cloud_security_posture/benchmark.ts index 4a22015621f1b..f8735da12c9e4 100644 --- a/x-pack/test/api_integration/apis/cloud_security_posture/benchmark.ts +++ b/x-pack/test/api_integration/apis/cloud_security_posture/benchmark.ts @@ -26,6 +26,7 @@ export default function ({ getService }: FtrProviderContext) { const { body: agentPolicyResponse } = await supertest .post(`/api/fleet/agent_policies`) + .set(ELASTIC_HTTP_VERSION_HEADER, '2023-10-31') .set('kbn-xsrf', 'xxxx') .send({ name: 'Test policy', @@ -36,6 +37,7 @@ export default function ({ getService }: FtrProviderContext) { const { body: agentPolicyResponse2 } = await supertest .post(`/api/fleet/agent_policies`) + .set(ELASTIC_HTTP_VERSION_HEADER, '2023-10-31') .set('kbn-xsrf', 'xxxx') .send({ name: 'Test policy 2', @@ -46,6 +48,7 @@ export default function ({ getService }: FtrProviderContext) { const { body: agentPolicyResponse3 } = await supertest .post(`/api/fleet/agent_policies`) + .set(ELASTIC_HTTP_VERSION_HEADER, '2023-10-31') .set('kbn-xsrf', 'xxxx') .send({ name: 'Test policy 3', @@ -56,6 +59,7 @@ export default function ({ getService }: FtrProviderContext) { const { body: agentPolicyResponse4 } = await supertest .post(`/api/fleet/agent_policies`) + .set(ELASTIC_HTTP_VERSION_HEADER, '2023-10-31') .set('kbn-xsrf', 'xxxx') .send({ name: 'Test policy 4', diff --git a/x-pack/test/api_integration/apis/cloud_security_posture/get_csp_rule_template.ts b/x-pack/test/api_integration/apis/cloud_security_posture/get_csp_rule_template.ts index 233987100ebfd..485e36d5ff67e 100644 --- a/x-pack/test/api_integration/apis/cloud_security_posture/get_csp_rule_template.ts +++ b/x-pack/test/api_integration/apis/cloud_security_posture/get_csp_rule_template.ts @@ -25,6 +25,7 @@ export default function ({ getService }: FtrProviderContext) { const { body: agentPolicyResponse } = await supertest .post(`/api/fleet/agent_policies`) + .set(ELASTIC_HTTP_VERSION_HEADER, '2023-10-31') .set('kbn-xsrf', 'xxxx') .send({ name: 'Test policy', diff --git a/x-pack/test/api_integration/apis/cloud_security_posture/helper.ts b/x-pack/test/api_integration/apis/cloud_security_posture/helper.ts index d04d819e62bd6..434d3fd308974 100644 --- a/x-pack/test/api_integration/apis/cloud_security_posture/helper.ts +++ b/x-pack/test/api_integration/apis/cloud_security_posture/helper.ts @@ -8,6 +8,7 @@ import type { SuperTest, Test } from 'supertest'; import { Client } from '@elastic/elasticsearch'; import expect from '@kbn/expect'; +import { ELASTIC_HTTP_VERSION_HEADER } from '@kbn/core-http-common'; import type { IndexDetails } from '@kbn/cloud-security-posture-plugin/common/types'; import { SecurityService } from '../../../../../test/common/services/security/security'; @@ -72,6 +73,7 @@ export async function createPackagePolicy( const { body: postPackageResponse } = await supertest .post(`/api/fleet/package_policies`) + .set(ELASTIC_HTTP_VERSION_HEADER, '2023-10-31') .set('kbn-xsrf', 'xxxx') .send({ force: true, diff --git a/x-pack/test/api_integration/apis/cloud_security_posture/status/status_index_timeout.ts b/x-pack/test/api_integration/apis/cloud_security_posture/status/status_index_timeout.ts index 2203a6374db70..46cd700c7964c 100644 --- a/x-pack/test/api_integration/apis/cloud_security_posture/status/status_index_timeout.ts +++ b/x-pack/test/api_integration/apis/cloud_security_posture/status/status_index_timeout.ts @@ -47,17 +47,20 @@ export default function (providerContext: FtrProviderContext) { await esArchiver.load('x-pack/test/functional/es_archives/fleet/empty_fleet_server'); const getPkRes = await supertest .get(`/api/fleet/epm/packages/fleet_server`) + .set(ELASTIC_HTTP_VERSION_HEADER, '2023-10-31') .set('kbn-xsrf', 'xxxx') .expect(200); const pkgVersion = getPkRes.body.item.version; await supertest .post(`/api/fleet/epm/packages/fleet_server/${pkgVersion}`) + .set(ELASTIC_HTTP_VERSION_HEADER, '2023-10-31') .set('kbn-xsrf', 'xxxx') .send({ force: true }) .expect(200); const { body: agentPolicyResponse } = await supertest .post(`/api/fleet/agent_policies`) + .set(ELASTIC_HTTP_VERSION_HEADER, '2023-10-31') .set('kbn-xsrf', 'xxxx') .send({ name: 'Test policy a1', @@ -68,6 +71,7 @@ export default function (providerContext: FtrProviderContext) { await supertest .post(`/api/fleet/fleet_server_hosts`) + .set(ELASTIC_HTTP_VERSION_HEADER, '2023-10-31') .set('kbn-xsrf', 'xxxx') .send({ id: 'test-default-a1', diff --git a/x-pack/test/api_integration/apis/cloud_security_posture/status/status_indexed.ts b/x-pack/test/api_integration/apis/cloud_security_posture/status/status_indexed.ts index 594babe643b05..0ba63bd6d436e 100644 --- a/x-pack/test/api_integration/apis/cloud_security_posture/status/status_indexed.ts +++ b/x-pack/test/api_integration/apis/cloud_security_posture/status/status_indexed.ts @@ -41,6 +41,7 @@ export default function (providerContext: FtrProviderContext) { const { body: agentPolicyResponse } = await supertest .post(`/api/fleet/agent_policies`) + .set(ELASTIC_HTTP_VERSION_HEADER, '2023-10-31') .set('kbn-xsrf', 'xxxx') .send({ name: 'Test policy', diff --git a/x-pack/test/api_integration/apis/cloud_security_posture/status/status_indexing.ts b/x-pack/test/api_integration/apis/cloud_security_posture/status/status_indexing.ts index ef38ab85efb04..216f5aee17627 100644 --- a/x-pack/test/api_integration/apis/cloud_security_posture/status/status_indexing.ts +++ b/x-pack/test/api_integration/apis/cloud_security_posture/status/status_indexing.ts @@ -41,6 +41,7 @@ export default function (providerContext: FtrProviderContext) { const { body: agentPolicyResponse } = await supertest .post(`/api/fleet/agent_policies`) + .set(ELASTIC_HTTP_VERSION_HEADER, '2023-10-31') .set('kbn-xsrf', 'xxxx') .send({ name: 'Test policy', diff --git a/x-pack/test/api_integration/apis/cloud_security_posture/status/status_not_deployed_not_installed.ts b/x-pack/test/api_integration/apis/cloud_security_posture/status/status_not_deployed_not_installed.ts index dcfbedae15741..c991311922758 100644 --- a/x-pack/test/api_integration/apis/cloud_security_posture/status/status_not_deployed_not_installed.ts +++ b/x-pack/test/api_integration/apis/cloud_security_posture/status/status_not_deployed_not_installed.ts @@ -26,6 +26,7 @@ export default function (providerContext: FtrProviderContext) { const { body: agentPolicyResponse } = await supertest .post(`/api/fleet/agent_policies`) + .set(ELASTIC_HTTP_VERSION_HEADER, '2023-10-31') .set('kbn-xsrf', 'xxxx') .send({ name: 'Test policy', diff --git a/x-pack/test/api_integration/apis/cloud_security_posture/status/status_unprivileged.ts b/x-pack/test/api_integration/apis/cloud_security_posture/status/status_unprivileged.ts index 7d1445932fa6c..6a3f8fbbfeda5 100644 --- a/x-pack/test/api_integration/apis/cloud_security_posture/status/status_unprivileged.ts +++ b/x-pack/test/api_integration/apis/cloud_security_posture/status/status_unprivileged.ts @@ -56,6 +56,7 @@ export default function (providerContext: FtrProviderContext) { const { body: agentPolicyResponse } = await supertest .post(`/api/fleet/agent_policies`) + .set(ELASTIC_HTTP_VERSION_HEADER, '2023-10-31') .set('kbn-xsrf', 'xxxx') .send({ name: 'Test policy', @@ -109,6 +110,7 @@ export default function (providerContext: FtrProviderContext) { const { body: agentPolicyResponse } = await supertest .post(`/api/fleet/agent_policies`) + .set(ELASTIC_HTTP_VERSION_HEADER, '2023-10-31') .set('kbn-xsrf', 'xxxx') .send({ name: 'Test policy', diff --git a/x-pack/test/api_integration/apis/cloud_security_posture/status/status_waiting_for_results.ts b/x-pack/test/api_integration/apis/cloud_security_posture/status/status_waiting_for_results.ts index bc6a44100dab0..dce7e655c0e67 100644 --- a/x-pack/test/api_integration/apis/cloud_security_posture/status/status_waiting_for_results.ts +++ b/x-pack/test/api_integration/apis/cloud_security_posture/status/status_waiting_for_results.ts @@ -31,17 +31,20 @@ export default function (providerContext: FtrProviderContext) { await esArchiver.load('x-pack/test/functional/es_archives/fleet/empty_fleet_server'); const getPkRes = await supertest .get(`/api/fleet/epm/packages/fleet_server`) + .set(ELASTIC_HTTP_VERSION_HEADER, '2023-10-31') .set('kbn-xsrf', 'xxxx') .expect(200); const pkgVersion = getPkRes.body.item.version; await supertest .post(`/api/fleet/epm/packages/fleet_server/${pkgVersion}`) + .set(ELASTIC_HTTP_VERSION_HEADER, '2023-10-31') .set('kbn-xsrf', 'xxxx') .send({ force: true }) .expect(200); const { body: agentPolicyResponse } = await supertest .post(`/api/fleet/agent_policies`) + .set(ELASTIC_HTTP_VERSION_HEADER, '2023-10-31') .set('kbn-xsrf', 'xxxx') .send({ name: 'Test policy a1', @@ -52,6 +55,7 @@ export default function (providerContext: FtrProviderContext) { await supertest .post(`/api/fleet/fleet_server_hosts`) + .set(ELASTIC_HTTP_VERSION_HEADER, '2023-10-31') .set('kbn-xsrf', 'xxxx') .send({ id: 'test-default-a1', diff --git a/x-pack/test/fleet_api_integration/apis/agents/services.ts b/x-pack/test/fleet_api_integration/apis/agents/services.ts index e710e62a7568e..7cb04d895ce7c 100644 --- a/x-pack/test/fleet_api_integration/apis/agents/services.ts +++ b/x-pack/test/fleet_api_integration/apis/agents/services.ts @@ -9,6 +9,8 @@ import supertest from 'supertest'; import { Client, HttpConnection } from '@elastic/elasticsearch'; import { format as formatUrl } from 'url'; +import { ELASTIC_HTTP_VERSION_HEADER } from '@kbn/core-http-common'; + import { FtrProviderContext } from '../../../api_integration/ftr_provider_context'; export function getSupertestWithoutAuth({ getService }: FtrProviderContext) { @@ -45,12 +47,14 @@ export function setupFleetAndAgents(providerContext: FtrProviderContext) { await supetestWithoutAuth .post(`/api/fleet/setup`) + .set(ELASTIC_HTTP_VERSION_HEADER, '2023-10-31') .set('kbn-xsrf', 'xxx') .set('Authorization', `Bearer ${token.value}`) .send() .expect(200); await supetestWithoutAuth .post(`/api/fleet/agents/setup`) + .set(ELASTIC_HTTP_VERSION_HEADER, '2023-10-31') .set('kbn-xsrf', 'xxx') .set('Authorization', `Bearer ${token.value}`) .send({ forceRecreate: true }) From 0af2207d18cc86a61da96c1117409d8901001f56 Mon Sep 17 00:00:00 2001 From: Zacqary Adam Xeper Date: Thu, 12 Oct 2023 06:38:20 -0500 Subject: [PATCH 45/79] Add conflicts: proceed to 409ing test (#168527) ## Summary Fixes #167945 Adds `conflicts: proceed` to a delete query that was sometimes 409ing. Passes flaky test runner: https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/3473 ### 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 --- .../group4/alerts_as_data/alerts_as_data.ts | 9 ++-- .../alerts_as_data/alerts_as_data_flapping.ts | 49 +++++++++++++------ 2 files changed, 39 insertions(+), 19 deletions(-) diff --git a/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/group4/alerts_as_data/alerts_as_data.ts b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/group4/alerts_as_data/alerts_as_data.ts index 2aed9770c56b3..bd79f1dc4a569 100644 --- a/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/group4/alerts_as_data/alerts_as_data.ts +++ b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/group4/alerts_as_data/alerts_as_data.ts @@ -62,11 +62,14 @@ export default function createAlertsAsDataInstallResourcesTest({ getService }: F 'kibana.alert.rule.execution.uuid', ]; - // Failing: See https://github.com/elastic/kibana/issues/167945 - describe.skip('alerts as data', () => { + describe('alerts as data', () => { afterEach(() => objectRemover.removeAll()); after(async () => { - await es.deleteByQuery({ index: alertsAsDataIndex, query: { match_all: {} } }); + await es.deleteByQuery({ + index: alertsAsDataIndex, + query: { match_all: {} }, + conflicts: 'proceed', + }); }); it('should write alert docs during rule execution', async () => { diff --git a/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/group4/alerts_as_data/alerts_as_data_flapping.ts b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/group4/alerts_as_data/alerts_as_data_flapping.ts index f10047e8a25b2..87e2d8d91b59f 100644 --- a/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/group4/alerts_as_data/alerts_as_data_flapping.ts +++ b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/group4/alerts_as_data/alerts_as_data_flapping.ts @@ -9,7 +9,7 @@ import expect from '@kbn/expect'; import { SearchHit } from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import type { Alert } from '@kbn/alerts-as-data-utils'; import { RuleNotifyWhen } from '@kbn/alerting-plugin/common'; -import { ALERT_FLAPPING, ALERT_FLAPPING_HISTORY } from '@kbn/rule-data-utils'; +import { ALERT_FLAPPING, ALERT_FLAPPING_HISTORY, ALERT_RULE_UUID } from '@kbn/rule-data-utils'; import { FtrProviderContext } from '../../../../../common/ftr_provider_context'; import { Spaces } from '../../../../scenarios'; import { @@ -33,8 +33,12 @@ export default function createAlertsAsDataInstallResourcesTest({ getService }: F const alertsAsDataIndex = '.alerts-test.patternfiring.alerts-default'; describe('alerts as data flapping', () => { - afterEach(async () => { - await es.deleteByQuery({ index: alertsAsDataIndex, query: { match_all: {} } }); + beforeEach(async () => { + await es.deleteByQuery({ + index: alertsAsDataIndex, + query: { match_all: {} }, + conflicts: 'proceed', + }); objectRemover.removeAll(); }); @@ -77,6 +81,7 @@ export default function createAlertsAsDataInstallResourcesTest({ getService }: F expect(createdRule.status).to.eql(200); const ruleId = createdRule.body.id; + objectRemover.add(Spaces.space1.id, ruleId, 'rule', 'alerting'); // Wait for the rule to run once @@ -92,7 +97,7 @@ export default function createAlertsAsDataInstallResourcesTest({ getService }: F } // Query for alerts - let alertDocs = await queryForAlertDocs(); + let alertDocs = await queryForAlertDocs(ruleId); // Get rule state from task document let state: any = await getRuleState(ruleId); @@ -123,7 +128,7 @@ export default function createAlertsAsDataInstallResourcesTest({ getService }: F } // Query for alerts - alertDocs = await queryForAlertDocs(); + alertDocs = await queryForAlertDocs(ruleId); // Get rule state from task document state = await getRuleState(ruleId); @@ -151,7 +156,7 @@ export default function createAlertsAsDataInstallResourcesTest({ getService }: F } // Query for alerts - alertDocs = await queryForAlertDocs(); + alertDocs = await queryForAlertDocs(ruleId); // Get rule state from task document state = await getRuleState(ruleId); @@ -221,7 +226,7 @@ export default function createAlertsAsDataInstallResourcesTest({ getService }: F } // Query for alerts - let alertDocs = await queryForAlertDocs(); + let alertDocs = await queryForAlertDocs(ruleId); // Get rule state from task document let state: any = await getRuleState(ruleId); @@ -252,7 +257,7 @@ export default function createAlertsAsDataInstallResourcesTest({ getService }: F } // Query for alerts - alertDocs = await queryForAlertDocs(); + alertDocs = await queryForAlertDocs(ruleId); // Get rule state from task document state = await getRuleState(ruleId); @@ -280,7 +285,7 @@ export default function createAlertsAsDataInstallResourcesTest({ getService }: F } // Query for alerts - alertDocs = await queryForAlertDocs(); + alertDocs = await queryForAlertDocs(ruleId); // Get rule state from task document state = await getRuleState(ruleId); @@ -332,6 +337,7 @@ export default function createAlertsAsDataInstallResourcesTest({ getService }: F expect(createdRule.status).to.eql(200); const ruleId = createdRule.body.id; + objectRemover.add(Spaces.space1.id, ruleId, 'rule', 'alerting'); // Wait for the rule to run once @@ -346,7 +352,7 @@ export default function createAlertsAsDataInstallResourcesTest({ getService }: F await waitForEventLogDocs(ruleId, new Map([['execute', { equal: ++run }]])); } - const alertDocs = await queryForAlertDocs(); + const alertDocs = await queryForAlertDocs(ruleId); const state = await getRuleState(ruleId); expect(alertDocs.length).to.equal(2); @@ -392,6 +398,7 @@ export default function createAlertsAsDataInstallResourcesTest({ getService }: F expect(createdRule.status).to.eql(200); const ruleId = createdRule.body.id; + objectRemover.add(Spaces.space1.id, ruleId, 'rule', 'alerting'); // Wait for the rule to run once @@ -407,7 +414,7 @@ export default function createAlertsAsDataInstallResourcesTest({ getService }: F } // Query for alerts - let alertDocs = await queryForAlertDocs(); + let alertDocs = await queryForAlertDocs(ruleId); // Get rule state from task document let state: any = await getRuleState(ruleId); @@ -436,7 +443,7 @@ export default function createAlertsAsDataInstallResourcesTest({ getService }: F } // Query for alerts - alertDocs = await queryForAlertDocs(); + alertDocs = await queryForAlertDocs(ruleId); // Get rule state from task document state = await getRuleState(ruleId); @@ -466,7 +473,7 @@ export default function createAlertsAsDataInstallResourcesTest({ getService }: F } // Query for alerts - alertDocs = await queryForAlertDocs(); + alertDocs = await queryForAlertDocs(ruleId); // Get rule state from task document state = await getRuleState(ruleId); @@ -496,7 +503,7 @@ export default function createAlertsAsDataInstallResourcesTest({ getService }: F } // Query for alerts - alertDocs = await queryForAlertDocs(); + alertDocs = await queryForAlertDocs(ruleId); // Get rule state from task document state = await getRuleState(ruleId); @@ -525,10 +532,20 @@ export default function createAlertsAsDataInstallResourcesTest({ getService }: F return JSON.parse(task._source!.task.state); } - async function queryForAlertDocs(): Promise>> { + async function queryForAlertDocs(ruleId: string): Promise>> { const searchResult = await es.search({ index: alertsAsDataIndex, - body: { query: { match_all: {} } }, + body: { + query: { + bool: { + must: { + term: { + [ALERT_RULE_UUID]: { value: ruleId }, + }, + }, + }, + }, + }, }); return searchResult.hits.hits as Array>; } From b26f58292c6fadcf8a23f3c97c5fb1a07051d43d Mon Sep 17 00:00:00 2001 From: Thomas Watson Date: Thu, 12 Oct 2023 13:41:22 +0200 Subject: [PATCH 46/79] [serverless] Split prod quality gate env into prod-canary/noncanary (#168462) --- .../pipeline.tests-production-canary.yaml | 15 +++++++++++++++ .../pipeline.tests-production-noncanary.yaml | 12 ++++++++++++ .../quality-gates/pipeline.tests-production.yaml | 4 ++++ 3 files changed, 31 insertions(+) create mode 100644 .buildkite/pipelines/quality-gates/pipeline.tests-production-canary.yaml create mode 100644 .buildkite/pipelines/quality-gates/pipeline.tests-production-noncanary.yaml diff --git a/.buildkite/pipelines/quality-gates/pipeline.tests-production-canary.yaml b/.buildkite/pipelines/quality-gates/pipeline.tests-production-canary.yaml new file mode 100644 index 0000000000000..9b68ac2e99acf --- /dev/null +++ b/.buildkite/pipelines/quality-gates/pipeline.tests-production-canary.yaml @@ -0,0 +1,15 @@ +# These pipeline steps constitute the quality gate for your service within the production-canary environment. +# Incorporate any necessary additional logic to validate the service's integrity. +# A failure in this pipeline build will prevent further progression to the subsequent stage. + +steps: + - label: ":pipeline::rocket::seedling: Trigger control-plane e2e tests" + trigger: "ess-k8s-production-e2e-tests" # https://buildkite.com/elastic/ess-k8s-production-e2e-tests + build: + env: + REGION_ID: aws-us-east-1 + NAME_PREFIX: ci_test_kibana-promotion_ + message: "${BUILDKITE_MESSAGE} (triggered by pipeline.tests-production-canary.yaml)" + + - label: ":cookie: 24h bake time before continuing promotion" + command: "sleep 86400" diff --git a/.buildkite/pipelines/quality-gates/pipeline.tests-production-noncanary.yaml b/.buildkite/pipelines/quality-gates/pipeline.tests-production-noncanary.yaml new file mode 100644 index 0000000000000..13d9f2322e806 --- /dev/null +++ b/.buildkite/pipelines/quality-gates/pipeline.tests-production-noncanary.yaml @@ -0,0 +1,12 @@ +# These pipeline steps constitute the quality gate for your service within the production-noncanary environment. +# Incorporate any necessary additional logic to validate the service's integrity. +# A failure in this pipeline build will prevent further progression to the subsequent stage. + +steps: + - label: ":pipeline::rocket::seedling: Trigger control-plane e2e tests" + trigger: "ess-k8s-production-e2e-tests" # https://buildkite.com/elastic/ess-k8s-production-e2e-tests + build: + env: + REGION_ID: aws-us-east-1 + NAME_PREFIX: ci_test_kibana-promotion_ + message: "${BUILDKITE_MESSAGE} (triggered by pipeline.tests-production-noncanary.yaml)" diff --git a/.buildkite/pipelines/quality-gates/pipeline.tests-production.yaml b/.buildkite/pipelines/quality-gates/pipeline.tests-production.yaml index 2161b000dc412..2176589d14aae 100644 --- a/.buildkite/pipelines/quality-gates/pipeline.tests-production.yaml +++ b/.buildkite/pipelines/quality-gates/pipeline.tests-production.yaml @@ -2,6 +2,10 @@ # Incorporate any necessary additional logic to validate the service's integrity. # A failure in this pipeline build will prevent further progression to the subsequent stage. +# DEPRECATION NOTICE: +# PRODUCTION WILL SOON BE SPLIT INTO "CANARY" AND "NONCANARY" AND THIS FILE WILL BE DELETED. +# ENSURE ANY CHANGE MADE TO THIS FILE IS REFLECTED IN THOSE FILES AS WELL. + steps: - label: ":pipeline::rocket::seedling: Trigger control-plane e2e tests" trigger: "ess-k8s-production-e2e-tests" # https://buildkite.com/elastic/ess-k8s-production-e2e-tests From 83dadd4c9b9f53c4cd683091e5e137edca35b65d Mon Sep 17 00:00:00 2001 From: jennypavlova Date: Thu, 12 Oct 2023 14:22:27 +0200 Subject: [PATCH 47/79] Remove nginx section from host asset details page (#168501) Closes #167739 ## Summary This PR removes the Nginx section from the Node Details page for a host (for all hosts running Nginx) | Before | After | | ------ | ------ | | ![image](https://github.com/elastic/kibana/assets/14139027/62a3190f-976b-42d6-9c21-1ebc72b68a6e) | ![image](https://github.com/elastic/kibana/assets/14139027/fb4938b7-1a70-4776-a53c-def531407d31) | ## Testing - Run nginx on a host (Check the guide added [here](https://github.com/elastic/kibana/issues/162958#issuecomment-1705377975)) - Open the asset details page for this host - Nginx section should not be visible --- .../asset_details/host/nginx_charts.ts | 84 ------------------- .../lens/dashboards/asset_details/index.ts | 7 -- .../visualizations/lens/formulas/index.ts | 1 - .../lens/formulas/nginx/active_connections.ts | 22 ----- .../nginx/client_error_status_codes.ts | 21 ----- .../lens/formulas/nginx/index.ts | 24 ------ .../formulas/nginx/redirect_status_codes.ts | 21 ----- .../lens/formulas/nginx/request_rate.ts | 23 ----- .../formulas/nginx/requests_per_connection.ts | 22 ----- .../nginx/server_error_status_codes.ts | 21 ----- .../formulas/nginx/success_status_codes.ts | 21 ----- .../components/section_titles.tsx | 8 -- .../components/asset_details/constants.ts | 1 - .../tabs/overview/metrics/metrics_section.tsx | 23 +---- .../public/components/asset_details/types.ts | 1 - .../functional/apps/infra/node_details.ts | 44 ---------- 16 files changed, 1 insertion(+), 343 deletions(-) delete mode 100644 x-pack/plugins/infra/public/common/visualizations/lens/dashboards/asset_details/host/nginx_charts.ts delete mode 100644 x-pack/plugins/infra/public/common/visualizations/lens/formulas/nginx/active_connections.ts delete mode 100644 x-pack/plugins/infra/public/common/visualizations/lens/formulas/nginx/client_error_status_codes.ts delete mode 100644 x-pack/plugins/infra/public/common/visualizations/lens/formulas/nginx/index.ts delete mode 100644 x-pack/plugins/infra/public/common/visualizations/lens/formulas/nginx/redirect_status_codes.ts delete mode 100644 x-pack/plugins/infra/public/common/visualizations/lens/formulas/nginx/request_rate.ts delete mode 100644 x-pack/plugins/infra/public/common/visualizations/lens/formulas/nginx/requests_per_connection.ts delete mode 100644 x-pack/plugins/infra/public/common/visualizations/lens/formulas/nginx/server_error_status_codes.ts delete mode 100644 x-pack/plugins/infra/public/common/visualizations/lens/formulas/nginx/success_status_codes.ts diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/dashboards/asset_details/host/nginx_charts.ts b/x-pack/plugins/infra/public/common/visualizations/lens/dashboards/asset_details/host/nginx_charts.ts deleted file mode 100644 index 7c18f5a5d65e6..0000000000000 --- a/x-pack/plugins/infra/public/common/visualizations/lens/dashboards/asset_details/host/nginx_charts.ts +++ /dev/null @@ -1,84 +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 { i18n } from '@kbn/i18n'; -import { nginxLensFormulas } from '../../../formulas'; -import { XY_OVERRIDES } from '../../constants'; -import type { XYConfig } from '../../types'; - -export const nginxStubstatusCharts: XYConfig[] = [ - { - id: 'requestRate', - title: i18n.translate('xpack.infra.assetDetails.metricsCharts.nginx.requestRate', { - defaultMessage: 'Request Rate', - }), - - layers: [ - { - data: [nginxLensFormulas.requestRate], - type: 'visualization', - }, - ], - dataViewOrigin: 'metrics', - }, - { - id: 'activeConnections', - title: i18n.translate('xpack.infra.assetDetails.metricsCharts.nginx.activeConnections', { - defaultMessage: 'Active Connections', - }), - - layers: [ - { - data: [nginxLensFormulas.activeConnections], - type: 'visualization', - }, - ], - dataViewOrigin: 'metrics', - }, - { - id: 'requestsPerConnection', - title: i18n.translate('xpack.infra.assetDetails.metricsCharts.nginx.requestsPerConnection', { - defaultMessage: 'Requests Per Connection', - }), - - layers: [ - { - data: [nginxLensFormulas.requestsPerConnection], - type: 'visualization', - }, - ], - dataViewOrigin: 'metrics', - }, -]; - -export const nginxAccessCharts: XYConfig[] = [ - { - id: 'responseStatusCodes', - title: i18n.translate('xpack.infra.assetDetails.metricsCharts.nginx.responseStatusCodes', { - defaultMessage: 'Response Status Codes', - }), - - layers: [ - { - data: [ - nginxLensFormulas.successStatusCodes, - nginxLensFormulas.redirectStatusCodes, - nginxLensFormulas.clientErrorStatusCodes, - nginxLensFormulas.serverErrorStatusCodes, - ], - options: { - seriesType: 'area', - }, - type: 'visualization', - }, - ], - overrides: { - settings: XY_OVERRIDES.settings, - }, - dataViewOrigin: 'metrics', - }, -]; diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/dashboards/asset_details/index.ts b/x-pack/plugins/infra/public/common/visualizations/lens/dashboards/asset_details/index.ts index 772241da4b73b..aef6787c088fc 100644 --- a/x-pack/plugins/infra/public/common/visualizations/lens/dashboards/asset_details/index.ts +++ b/x-pack/plugins/infra/public/common/visualizations/lens/dashboards/asset_details/index.ts @@ -7,17 +7,10 @@ import { hostMetricFlyoutCharts, hostMetricChartsFullPage } from './host/host_metric_charts'; import { hostKPICharts } from './host/host_kpi_charts'; -import { nginxAccessCharts, nginxStubstatusCharts } from './host/nginx_charts'; import { kubernetesCharts } from './host/kubernetes_charts'; export const assetDetailsDashboards = { host: { hostMetricFlyoutCharts, hostMetricChartsFullPage, hostKPICharts, keyField: 'host.name' }, - nginx: { - nginxStubstatusCharts, - nginxAccessCharts, - keyField: 'host.name', - dependsOn: ['nginx.stubstatus', 'nginx.access'], - }, kubernetes: { kubernetesCharts, keyField: 'kubernetes.node.name', diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/index.ts b/x-pack/plugins/infra/public/common/visualizations/lens/formulas/index.ts index 18e993a0d0a99..fbdb959e0e945 100644 --- a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/index.ts +++ b/x-pack/plugins/infra/public/common/visualizations/lens/formulas/index.ts @@ -6,5 +6,4 @@ */ export { hostLensFormulas } from './host'; -export { nginxLensFormulas } from './nginx'; export { kubernetesLensFormulas } from './kubernetes'; diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/nginx/active_connections.ts b/x-pack/plugins/infra/public/common/visualizations/lens/formulas/nginx/active_connections.ts deleted file mode 100644 index 90161ac7ebc5f..0000000000000 --- a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/nginx/active_connections.ts +++ /dev/null @@ -1,22 +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 { i18n } from '@kbn/i18n'; -import type { FormulaValueConfig } from '@kbn/lens-embeddable-utils'; - -export const activeConnections: FormulaValueConfig = { - label: i18n.translate('xpack.infra.assetDetails.formulas.nginx.activeConnections', { - defaultMessage: 'Active Connections', - }), - value: 'average(nginx.stubstatus.active)', - format: { - id: 'number', - params: { - decimals: 0, - }, - }, -}; diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/nginx/client_error_status_codes.ts b/x-pack/plugins/infra/public/common/visualizations/lens/formulas/nginx/client_error_status_codes.ts deleted file mode 100644 index 2588f71f1444b..0000000000000 --- a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/nginx/client_error_status_codes.ts +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import type { FormulaValueConfig } from '@kbn/lens-embeddable-utils'; -import { defaultPalette, Color } from '../../../../../../common/color_palette'; - -export const clientErrorStatusCodes: FormulaValueConfig = { - label: '400-499', - value: `count(kql='http.response.status_code >= 400 and http.response.status_code <= 499')`, - format: { - id: 'number', - params: { - decimals: 0, - }, - }, - color: defaultPalette[Color.color5], -}; diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/nginx/index.ts b/x-pack/plugins/infra/public/common/visualizations/lens/formulas/nginx/index.ts deleted file mode 100644 index 87a1d5db40fd5..0000000000000 --- a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/nginx/index.ts +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { requestRate } from './request_rate'; -import { activeConnections } from './active_connections'; -import { requestsPerConnection } from './requests_per_connection'; -import { successStatusCodes } from './success_status_codes'; -import { redirectStatusCodes } from './redirect_status_codes'; -import { clientErrorStatusCodes } from './client_error_status_codes'; -import { serverErrorStatusCodes } from './server_error_status_codes'; - -export const nginxLensFormulas = { - activeConnections, - requestRate, - requestsPerConnection, - successStatusCodes, - redirectStatusCodes, - clientErrorStatusCodes, - serverErrorStatusCodes, -}; diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/nginx/redirect_status_codes.ts b/x-pack/plugins/infra/public/common/visualizations/lens/formulas/nginx/redirect_status_codes.ts deleted file mode 100644 index 637546667dbab..0000000000000 --- a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/nginx/redirect_status_codes.ts +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import type { FormulaValueConfig } from '@kbn/lens-embeddable-utils'; -import { defaultPalette, Color } from '../../../../../../common/color_palette'; - -export const redirectStatusCodes: FormulaValueConfig = { - label: '300-399', - value: `count(kql='http.response.status_code >= 300 and http.response.status_code <= 399')`, - format: { - id: 'number', - params: { - decimals: 0, - }, - }, - color: defaultPalette[Color.color0], -}; diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/nginx/request_rate.ts b/x-pack/plugins/infra/public/common/visualizations/lens/formulas/nginx/request_rate.ts deleted file mode 100644 index 1e86f28a4bfce..0000000000000 --- a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/nginx/request_rate.ts +++ /dev/null @@ -1,23 +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 { i18n } from '@kbn/i18n'; -import type { FormulaValueConfig } from '@kbn/lens-embeddable-utils'; - -export const requestRate: FormulaValueConfig = { - label: i18n.translate('xpack.infra.assetDetails.formulas.nginx.requestRate', { - defaultMessage: 'Request Rate', - }), - value: 'differences(max(nginx.stubstatus.requests))', - format: { - id: 'number', - params: { - decimals: 0, - }, - }, - timeScale: 's', -}; diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/nginx/requests_per_connection.ts b/x-pack/plugins/infra/public/common/visualizations/lens/formulas/nginx/requests_per_connection.ts deleted file mode 100644 index a74f46e2014da..0000000000000 --- a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/nginx/requests_per_connection.ts +++ /dev/null @@ -1,22 +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 { i18n } from '@kbn/i18n'; -import type { FormulaValueConfig } from '@kbn/lens-embeddable-utils'; - -export const requestsPerConnection: FormulaValueConfig = { - label: i18n.translate('xpack.infra.assetDetails.formulas.nginx.requestsPerConnection', { - defaultMessage: 'Requests Per Connection', - }), - value: 'max(nginx.stubstatus.requests) / max(nginx.stubstatus.handled)', - format: { - id: 'number', - params: { - decimals: 0, - }, - }, -}; diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/nginx/server_error_status_codes.ts b/x-pack/plugins/infra/public/common/visualizations/lens/formulas/nginx/server_error_status_codes.ts deleted file mode 100644 index f5fba7775190b..0000000000000 --- a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/nginx/server_error_status_codes.ts +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import type { FormulaValueConfig } from '@kbn/lens-embeddable-utils'; -import { defaultPalette, Color } from '../../../../../../common/color_palette'; - -export const serverErrorStatusCodes: FormulaValueConfig = { - label: '500-599', - value: `count(kql='http.response.status_code >= 500 and http.response.status_code <= 599')`, - format: { - id: 'number', - params: { - decimals: 0, - }, - }, - color: defaultPalette[Color.color1], -}; diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/nginx/success_status_codes.ts b/x-pack/plugins/infra/public/common/visualizations/lens/formulas/nginx/success_status_codes.ts deleted file mode 100644 index 865ce8dd907b4..0000000000000 --- a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/nginx/success_status_codes.ts +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import type { FormulaValueConfig } from '@kbn/lens-embeddable-utils'; -import { defaultPalette, Color } from '../../../../../../common/color_palette'; - -export const successStatusCodes: FormulaValueConfig = { - label: '200-299', - value: `count(kql='http.response.status_code >= 200 and http.response.status_code <= 299')`, - format: { - id: 'number', - params: { - decimals: 0, - }, - }, - color: defaultPalette[Color.color2], -}; diff --git a/x-pack/plugins/infra/public/components/asset_details/components/section_titles.tsx b/x-pack/plugins/infra/public/components/asset_details/components/section_titles.tsx index da639ff88bd13..0e4b1b7baa5ca 100644 --- a/x-pack/plugins/infra/public/components/asset_details/components/section_titles.tsx +++ b/x-pack/plugins/infra/public/components/asset_details/components/section_titles.tsx @@ -64,14 +64,6 @@ export const MetricsSectionTitle = () => { ); }; -export const NginxMetricsSectionTitle = () => ( - -); - export const KubernetesMetricsSectionTitle = () => ( { return ( @@ -53,26 +52,6 @@ export const MetricsSection = ({ assetName, metricsDataView, logsDataView, dateR data-test-subj="infraAssetDetailsKubernetesMetricsChart" /> -
    - ({ - ...chart, - dependsOn: ['nginx.stubstatus'], - })), - ...nginx.nginxAccessCharts.map((chart) => ({ - ...chart, - dependsOn: ['nginx.access'], - })), - ]} - metricsDataView={metricsDataView} - logsDataView={logsDataView} - data-test-subj="infraAssetDetailsNginxMetricsChart" - /> -
    ); }; diff --git a/x-pack/plugins/infra/public/components/asset_details/types.ts b/x-pack/plugins/infra/public/components/asset_details/types.ts index cc985f8d782bd..0ac33ce08ecfd 100644 --- a/x-pack/plugins/infra/public/components/asset_details/types.ts +++ b/x-pack/plugins/infra/public/components/asset_details/types.ts @@ -92,6 +92,5 @@ export interface RouteState { export type DataViewOrigin = 'logs' | 'metrics'; export enum INTEGRATION_NAME { - nginx = 'nginx', kubernetes = 'kubernetes', } diff --git a/x-pack/test/functional/apps/infra/node_details.ts b/x-pack/test/functional/apps/infra/node_details.ts index 89a4ec813cca3..a824106c6f617 100644 --- a/x-pack/test/functional/apps/infra/node_details.ts +++ b/x-pack/test/functional/apps/infra/node_details.ts @@ -346,50 +346,6 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { }); }); - describe('#With Nginx section', () => { - before(async () => { - await navigateToNodeDetails('demo-stack-nginx-01', 'demo-stack-nginx-01'); - await pageObjects.header.waitUntilLoadingHasFinished(); - }); - - describe('Overview Tab', () => { - before(async () => { - await pageObjects.assetDetails.clickOverviewTab(); - - await pageObjects.timePicker.setAbsoluteRange( - START_HOST_ALERTS_DATE.format(DATE_PICKER_FORMAT), - END_HOST_ALERTS_DATE.format(DATE_PICKER_FORMAT) - ); - }); - - [ - { metric: 'cpuUsage', value: '0.8%' }, - { metric: 'normalizedLoad1m', value: '1.4%' }, - { metric: 'memoryUsage', value: '18.0%' }, - { metric: 'diskSpaceUsage', value: '17.5%' }, - ].forEach(({ metric, value }) => { - it(`${metric} tile should show ${value}`, async () => { - await retry.tryForTime(3 * 1000, async () => { - const tileValue = await pageObjects.assetDetails.getAssetDetailsKPITileValue( - metric - ); - expect(tileValue).to.eql(value); - }); - }); - }); - - it('should render 12 charts in the Metrics section', async () => { - const hosts = await pageObjects.assetDetails.getAssetDetailsMetricsCharts(); - expect(hosts.length).to.equal(12); - }); - - it('should render 3 charts in the Nginx Metrics section', async () => { - const hosts = await pageObjects.assetDetails.getAssetDetailsNginxMetricsCharts(); - expect(hosts.length).to.equal(3); - }); - }); - }); - describe('#With Kubernetes section', () => { before(async () => { await navigateToNodeDetails('demo-stack-kubernetes-01', 'demo-stack-kubernetes-01'); From 0c34984ac1624ab543b7d6f97cf38f4b1a9a4e25 Mon Sep 17 00:00:00 2001 From: Kevin Delemme Date: Thu, 12 Oct 2023 08:49:46 -0400 Subject: [PATCH 48/79] fix(slo): Latest SLO name used in rule name (#168597) --- .../public/pages/slo_edit/components/slo_edit_form.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x-pack/plugins/observability/public/pages/slo_edit/components/slo_edit_form.tsx b/x-pack/plugins/observability/public/pages/slo_edit/components/slo_edit_form.tsx index 19c27928b292a..0fb29d5980ccb 100644 --- a/x-pack/plugins/observability/public/pages/slo_edit/components/slo_edit_form.tsx +++ b/x-pack/plugins/observability/public/pages/slo_edit/components/slo_edit_form.tsx @@ -258,7 +258,7 @@ export function SloEditForm({ slo }: Props) { Date: Thu, 12 Oct 2023 15:04:27 +0200 Subject: [PATCH 49/79] [EDR Workflows] Fix osquery tests failing due to discover change (#168693) --- .../cypress/e2e/all/alerts_automated_action_results.cy.ts | 2 +- x-pack/plugins/osquery/cypress/e2e/all/custom_space.cy.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/x-pack/plugins/osquery/cypress/e2e/all/alerts_automated_action_results.cy.ts b/x-pack/plugins/osquery/cypress/e2e/all/alerts_automated_action_results.cy.ts index 1b431719fa662..4505af882da94 100644 --- a/x-pack/plugins/osquery/cypress/e2e/all/alerts_automated_action_results.cy.ts +++ b/x-pack/plugins/osquery/cypress/e2e/all/alerts_automated_action_results.cy.ts @@ -48,7 +48,7 @@ describe( // @ts-expect-error-next-line href string - check types cy.visit($href); cy.getBySel('discoverDocTable', { timeout: 60000 }).within(() => { - cy.contains(`action_data.query`); + cy.contains('action_data{ "query":'); }); cy.contains(discoverRegex); }); diff --git a/x-pack/plugins/osquery/cypress/e2e/all/custom_space.cy.ts b/x-pack/plugins/osquery/cypress/e2e/all/custom_space.cy.ts index 89d0526d41566..0c46fbf074966 100644 --- a/x-pack/plugins/osquery/cypress/e2e/all/custom_space.cy.ts +++ b/x-pack/plugins/osquery/cypress/e2e/all/custom_space.cy.ts @@ -90,7 +90,7 @@ describe('ALL - Custom space', () => { // @ts-expect-error-next-line href string - check types cy.visit($href); cy.getBySel('discoverDocTable', { timeout: 60000 }).within(() => { - cy.contains('action_data.queryselect * from uptime'); + cy.contains('action_data{ "query": "select * from uptime;"'); }); }); }); From 3e8058bdf21bf38c6cc45c77b802f73dbeacaaa9 Mon Sep 17 00:00:00 2001 From: Mykola Harmash Date: Thu, 12 Oct 2023 15:24:30 +0200 Subject: [PATCH 50/79] [Infra UI] Disable Infrastructure and Metrics alerts in Serverless (#167978) Closes https://github.com/elastic/kibana/issues/164683 ## Summary This PR disables the infrastructure, metrics and logs alerts rule in Serverless: - Deletes the code responsible for the "Metric Anomaly" rule as it was [previously disabled](https://github.com/elastic/kibana/pull/93813) with plans to re-enable it as the previous PR describes but that never happened. - Adds feature flags for all three types of alert rules - Prevents rules registration in serverless based on the feature flags - Adds logic for showing/hiding items in the "Alerts and rules" dropdown - Disables custom threshold rule in the Infra UI by default in serverless as the rule needs to first be enabled by default by @elastic/actionable-observability team ([context](https://elastic.slack.com/archives/C023GDA0WMP/p1696853751040269)) **Dropdown** ![CleanShot 2023-10-05 at 15 22 48@2x](https://github.com/elastic/kibana/assets/793851/fb7344c6-b5ee-4020-bd69-473dcd6be446) **Host details** ![CleanShot 2023-10-05 at 15 23 02@2x](https://github.com/elastic/kibana/assets/793851/8164f82b-323c-4a2a-8cdc-c65a6c0f0c63) ### How to test - Checkout locally Run in Serveless mode - Enable, Infra plugin, custom threshold in Infra, and custom threshold rule in general: ``` xpack.infra.enabled: true xpack.infra.featureFlags.customThresholdAlertsEnabled: true xpack.observability.unsafe.thresholdRule.enabled: true ``` - Go to `/app/metrics/hosts` and make sure there are no "Infrastructure" and "Metrics" items in the "Alerts and rules" dropdown - Click on "Manage rules" in the "Alerts and rules" dropdown, then "Create rule" to open the rule selection flyout - Make sure there are no rules for "Inventory", "Metrics" or "Logs" threshold - Run Kibana in traditional mode - Make sure the "Alerts and rules" dropdown looks as usual and you can create "Infrastructure" and "Metrics" alerts --------- Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../test_suites/core_plugins/rendering.ts | 24 +- ...type_registry_deprecated_consumers.test.ts | 1 - ...rule_type_registry_deprecated_consumers.ts | 1 - .../infra/common/alerting/metrics/types.ts | 3 - .../infra/common/plugin_config_types.ts | 3 + .../components/metrics_alert_dropdown.tsx | 241 ++++++++------ .../components/alert_flyout.tsx | 9 + .../components/alert_flyout.tsx | 53 ---- .../components/expression.test.tsx | 86 ----- .../metric_anomaly/components/expression.tsx | 298 ------------------ .../components/influencer_filter.tsx | 193 ------------ .../metric_anomaly/components/node_type.tsx | 118 ------- .../components/severity_threshold.tsx | 141 --------- .../metric_anomaly/components/validation.tsx | 34 -- .../public/alerting/metric_anomaly/index.ts | 45 --- .../asset_details/tabs/overview/alerts.tsx | 27 +- .../containers/plugin_config_context.test.tsx | 3 + ...er_inventory_metric_threshold_rule_type.ts | 10 +- .../register_log_threshold_rule_type.ts | 8 +- .../metric_anomaly/evaluate_condition.ts | 51 --- .../metric_anomaly/metric_anomaly_executor.ts | 142 --------- .../preview_metric_anomaly_alert.ts | 132 -------- .../register_metric_anomaly_rule_type.ts | 125 -------- .../metric_threshold_executor.test.ts | 3 + .../register_metric_threshold_rule_type.ts | 8 +- .../lib/alerting/register_rule_types.ts | 13 +- .../infra/server/lib/sources/sources.test.ts | 3 + x-pack/plugins/infra/server/plugin.ts | 16 +- .../routes/log_alerts/chart_preview_data.ts | 3 +- .../common/custom_threshold_rule/types.ts | 1 - .../lib/rules/custom_threshold/types.ts | 1 - .../translations/translations/fr-FR.json | 30 -- .../translations/translations/ja-JP.json | 30 -- .../translations/translations/zh-CN.json | 30 -- .../group4/check_registered_rule_types.ts | 1 - .../check_registered_task_types.ts | 1 - .../test_suites/observability/config.ts | 6 +- 37 files changed, 238 insertions(+), 1656 deletions(-) delete mode 100644 x-pack/plugins/infra/public/alerting/metric_anomaly/components/alert_flyout.tsx delete mode 100644 x-pack/plugins/infra/public/alerting/metric_anomaly/components/expression.test.tsx delete mode 100644 x-pack/plugins/infra/public/alerting/metric_anomaly/components/expression.tsx delete mode 100644 x-pack/plugins/infra/public/alerting/metric_anomaly/components/influencer_filter.tsx delete mode 100644 x-pack/plugins/infra/public/alerting/metric_anomaly/components/node_type.tsx delete mode 100644 x-pack/plugins/infra/public/alerting/metric_anomaly/components/severity_threshold.tsx delete mode 100644 x-pack/plugins/infra/public/alerting/metric_anomaly/components/validation.tsx delete mode 100644 x-pack/plugins/infra/public/alerting/metric_anomaly/index.ts delete mode 100644 x-pack/plugins/infra/server/lib/alerting/metric_anomaly/evaluate_condition.ts delete mode 100644 x-pack/plugins/infra/server/lib/alerting/metric_anomaly/metric_anomaly_executor.ts delete mode 100644 x-pack/plugins/infra/server/lib/alerting/metric_anomaly/preview_metric_anomaly_alert.ts delete mode 100644 x-pack/plugins/infra/server/lib/alerting/metric_anomaly/register_metric_anomaly_rule_type.ts diff --git a/test/plugin_functional/test_suites/core_plugins/rendering.ts b/test/plugin_functional/test_suites/core_plugins/rendering.ts index 595b455025cc5..83ecf99f40196 100644 --- a/test/plugin_functional/test_suites/core_plugins/rendering.ts +++ b/test/plugin_functional/test_suites/core_plugins/rendering.ts @@ -268,25 +268,17 @@ export default function ({ getService }: PluginFunctionalProviderContext) { 'xpack.index_management.enableIndexStats (any)', 'xpack.infra.sources.default.fields.message (array)', /** - * xpack.infra.featureFlags.customThresholdAlertsEnabled is conditional based on traditional/serverless offering - * and will resolve to (boolean) - */ - 'xpack.infra.featureFlags.customThresholdAlertsEnabled (any)', - /** - * xpack.infra.featureFlags.logsUIEnabled is conditional based on traditional/serverless offering - * and will resolve to (boolean) - */ - 'xpack.infra.featureFlags.logsUIEnabled (any)', - /** - * xpack.infra.featureFlags.metricsExplorerEnabled is conditional based on traditional/serverless offering - * and will resolve to (boolean) + * Feature flags bellow are conditional based on traditional/serverless offering + * and will all resolve to xpack.infra.featureFlags.* (boolean) */ 'xpack.infra.featureFlags.metricsExplorerEnabled (any)', - /** - * xpack.infra.featureFlags.osqueryEnabled is conditional based on traditional/serverless offering - * and will resolve to (boolean) - */ + 'xpack.infra.featureFlags.customThresholdAlertsEnabled (any)', 'xpack.infra.featureFlags.osqueryEnabled (any)', + 'xpack.infra.featureFlags.inventoryThresholdAlertRuleEnabled (any)', + 'xpack.infra.featureFlags.metricThresholdAlertRuleEnabled (any)', + 'xpack.infra.featureFlags.logThresholdAlertRuleEnabled (any)', + 'xpack.infra.featureFlags.logsUIEnabled (any)', + 'xpack.license_management.ui.enabled (boolean)', 'xpack.maps.preserveDrawingBuffer (boolean)', 'xpack.maps.showMapsInspectorAdapter (boolean)', diff --git a/x-pack/plugins/alerting/server/rule_type_registry_deprecated_consumers.test.ts b/x-pack/plugins/alerting/server/rule_type_registry_deprecated_consumers.test.ts index e1a7828d85042..94d8aa923ea19 100644 --- a/x-pack/plugins/alerting/server/rule_type_registry_deprecated_consumers.test.ts +++ b/x-pack/plugins/alerting/server/rule_type_registry_deprecated_consumers.test.ts @@ -37,7 +37,6 @@ describe('rule_type_registry_deprecated_consumers', () => { "siem.newTermsRule", "siem.notifications", "slo.rules.burnRate", - "metrics.alert.anomaly", "logs.alert.document.count", "metrics.alert.inventory.threshold", "metrics.alert.threshold", diff --git a/x-pack/plugins/alerting/server/rule_type_registry_deprecated_consumers.ts b/x-pack/plugins/alerting/server/rule_type_registry_deprecated_consumers.ts index d6a238c414243..7394736968609 100644 --- a/x-pack/plugins/alerting/server/rule_type_registry_deprecated_consumers.ts +++ b/x-pack/plugins/alerting/server/rule_type_registry_deprecated_consumers.ts @@ -30,7 +30,6 @@ export const ruleTypeIdWithValidLegacyConsumers: Record = { 'siem.newTermsRule': [ALERTS_FEATURE_ID], 'siem.notifications': [ALERTS_FEATURE_ID], 'slo.rules.burnRate': [ALERTS_FEATURE_ID], - 'metrics.alert.anomaly': [ALERTS_FEATURE_ID], 'logs.alert.document.count': [ALERTS_FEATURE_ID], 'metrics.alert.inventory.threshold': [ALERTS_FEATURE_ID], 'metrics.alert.threshold': [ALERTS_FEATURE_ID], diff --git a/x-pack/plugins/infra/common/alerting/metrics/types.ts b/x-pack/plugins/infra/common/alerting/metrics/types.ts index 151c804bf413f..7ca0e9e64ca34 100644 --- a/x-pack/plugins/infra/common/alerting/metrics/types.ts +++ b/x-pack/plugins/infra/common/alerting/metrics/types.ts @@ -12,18 +12,15 @@ import { InventoryItemType, SnapshotMetricType } from '../../inventory_models/ty export const METRIC_THRESHOLD_ALERT_TYPE_ID = 'metrics.alert.threshold'; export const METRIC_INVENTORY_THRESHOLD_ALERT_TYPE_ID = 'metrics.alert.inventory.threshold'; -export const METRIC_ANOMALY_ALERT_TYPE_ID = 'metrics.alert.anomaly'; export enum InfraRuleType { MetricThreshold = 'metrics.alert.threshold', InventoryThreshold = 'metrics.alert.inventory.threshold', - Anomaly = 'metrics.alert.anomaly', } export interface InfraRuleTypeParams { [InfraRuleType.MetricThreshold]: MetricThresholdParams; [InfraRuleType.InventoryThreshold]: InventoryMetricConditions; - [InfraRuleType.Anomaly]: MetricAnomalyParams; } export enum Comparator { diff --git a/x-pack/plugins/infra/common/plugin_config_types.ts b/x-pack/plugins/infra/common/plugin_config_types.ts index dd915e39cdec0..c5fada95e5a83 100644 --- a/x-pack/plugins/infra/common/plugin_config_types.ts +++ b/x-pack/plugins/infra/common/plugin_config_types.ts @@ -30,6 +30,9 @@ export interface InfraConfig { logsUIEnabled: boolean; metricsExplorerEnabled: boolean; osqueryEnabled: boolean; + inventoryThresholdAlertRuleEnabled: boolean; + metricThresholdAlertRuleEnabled: boolean; + logThresholdAlertRuleEnabled: boolean; }; } diff --git a/x-pack/plugins/infra/public/alerting/common/components/metrics_alert_dropdown.tsx b/x-pack/plugins/infra/public/alerting/common/components/metrics_alert_dropdown.tsx index e80da08fc082e..e4284d154c104 100644 --- a/x-pack/plugins/infra/public/alerting/common/components/metrics_alert_dropdown.tsx +++ b/x-pack/plugins/infra/public/alerting/common/components/metrics_alert_dropdown.tsx @@ -7,11 +7,10 @@ import { i18n } from '@kbn/i18n'; import React, { useState, useCallback, useMemo } from 'react'; -import { - EuiPopover, - EuiHeaderLink, - EuiContextMenu, +import { EuiPopover, EuiHeaderLink, EuiContextMenu } from '@elastic/eui'; +import type { EuiContextMenuPanelDescriptor, + EuiContextMenuPanelItemDescriptor, } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n-react'; import { useKibana } from '@kbn/kibana-react-plugin/public'; @@ -23,6 +22,118 @@ import { InfraClientStartDeps } from '../../../types'; type VisibleFlyoutType = 'inventory' | 'metricThreshold' | 'customThreshold'; +interface ContextMenuEntries { + items: EuiContextMenuPanelItemDescriptor[]; + panels: EuiContextMenuPanelDescriptor[]; +} + +function useInfrastructureMenu( + onCreateRuleClick: (flyoutType: VisibleFlyoutType) => void +): ContextMenuEntries { + const { featureFlags } = usePluginConfig(); + + return useMemo(() => { + if (!featureFlags.inventoryThresholdAlertRuleEnabled) { + return { items: [], panels: [] }; + } + + return { + items: [ + { + 'data-test-subj': 'inventory-alerts-menu-option', + name: i18n.translate('xpack.infra.alerting.infrastructureDropdownMenu', { + defaultMessage: 'Infrastructure', + }), + panel: 1, + }, + ], + panels: [ + { + id: 1, + title: i18n.translate('xpack.infra.alerting.infrastructureDropdownTitle', { + defaultMessage: 'Infrastructure rules', + }), + items: [ + { + 'data-test-subj': 'inventory-alerts-create-rule', + name: i18n.translate('xpack.infra.alerting.createInventoryRuleButton', { + defaultMessage: 'Create inventory rule', + }), + onClick: () => onCreateRuleClick('inventory'), + }, + ], + }, + ], + }; + }, [featureFlags.inventoryThresholdAlertRuleEnabled, onCreateRuleClick]); +} + +function useMetricsMenu( + onCreateRuleClick: (flyoutType: VisibleFlyoutType) => void +): ContextMenuEntries { + const { featureFlags } = usePluginConfig(); + + return useMemo(() => { + if (!featureFlags.metricThresholdAlertRuleEnabled) { + return { items: [], panels: [] }; + } + + return { + items: [ + { + 'data-test-subj': 'metrics-threshold-alerts-menu-option', + name: i18n.translate('xpack.infra.alerting.metricsDropdownMenu', { + defaultMessage: 'Metrics', + }), + panel: 2, + }, + ], + panels: [ + { + id: 2, + title: i18n.translate('xpack.infra.alerting.metricsDropdownTitle', { + defaultMessage: 'Metrics rules', + }), + items: [ + { + 'data-test-subj': 'metrics-threshold-alerts-create-rule', + name: i18n.translate('xpack.infra.alerting.createThresholdRuleButton', { + defaultMessage: 'Create threshold rule', + }), + onClick: () => onCreateRuleClick('metricThreshold'), + }, + ], + }, + ], + }; + }, [featureFlags.metricThresholdAlertRuleEnabled, onCreateRuleClick]); +} + +function useCustomThresholdMenu( + onCreateRuleClick: (flyoutType: VisibleFlyoutType) => void +): ContextMenuEntries { + const { featureFlags } = usePluginConfig(); + + return useMemo(() => { + if (!featureFlags.customThresholdAlertsEnabled) { + return { items: [], panels: [] }; + } + + return { + items: [ + { + 'data-test-subj': 'custom-threshold-alerts-menu-option', + name: i18n.translate('xpack.infra.alerting.customThresholdDropdownMenu', { + defaultMessage: 'Create custom threshold rule', + }), + onClick: () => onCreateRuleClick('customThreshold'), + }, + ], + panels: [], + }; + }, [featureFlags.customThresholdAlertsEnabled, onCreateRuleClick]); +} + export const MetricsAlertDropdown = () => { const [popoverOpen, setPopoverOpen] = useState(false); const [visibleFlyoutType, setVisibleFlyoutType] = useState(null); @@ -34,8 +145,6 @@ export const MetricsAlertDropdown = () => { () => Boolean(uiCapabilities?.infrastructure?.save), [uiCapabilities] ); - const { featureFlags } = usePluginConfig(); - const closeFlyout = useCallback(() => setVisibleFlyoutType(null), [setVisibleFlyoutType]); const closePopover = useCallback(() => { @@ -45,50 +154,19 @@ export const MetricsAlertDropdown = () => { const togglePopover = useCallback(() => { setPopoverOpen(!popoverOpen); }, [setPopoverOpen, popoverOpen]); - const infrastructureAlertsPanel = useMemo( - () => ({ - id: 1, - title: i18n.translate('xpack.infra.alerting.infrastructureDropdownTitle', { - defaultMessage: 'Infrastructure rules', - }), - items: [ - { - 'data-test-subj': 'inventory-alerts-create-rule', - name: i18n.translate('xpack.infra.alerting.createInventoryRuleButton', { - defaultMessage: 'Create inventory rule', - }), - onClick: () => { - closePopover(); - setVisibleFlyoutType('inventory'); - }, - }, - ], - }), - [setVisibleFlyoutType, closePopover] - ); - const metricsAlertsPanel = useMemo( - () => ({ - id: 2, - title: i18n.translate('xpack.infra.alerting.metricsDropdownTitle', { - defaultMessage: 'Metrics rules', - }), - items: [ - { - 'data-test-subj': 'metrics-threshold-alerts-create-rule', - name: i18n.translate('xpack.infra.alerting.createThresholdRuleButton', { - defaultMessage: 'Create threshold rule', - }), - onClick: () => { - closePopover(); - setVisibleFlyoutType('metricThreshold'); - }, - }, - ], - }), - [setVisibleFlyoutType, closePopover] + const onCreateRuleClick = useCallback( + (flyoutType: VisibleFlyoutType) => { + closePopover(); + setVisibleFlyoutType(flyoutType); + }, + [closePopover] ); + const infrastructureMenu = useInfrastructureMenu(onCreateRuleClick); + const metricsMenu = useMetricsMenu(onCreateRuleClick); + const customThresholdMenu = useCustomThresholdMenu(onCreateRuleClick); + const manageRulesLinkProps = observability.useRulesLink(); const manageAlertsMenuItem = useMemo( @@ -102,56 +180,27 @@ export const MetricsAlertDropdown = () => { [manageRulesLinkProps] ); - const firstPanelMenuItems: EuiContextMenuPanelDescriptor['items'] = useMemo( - () => - canCreateAlerts - ? [ - { - 'data-test-subj': 'inventory-alerts-menu-option', - name: i18n.translate('xpack.infra.alerting.infrastructureDropdownMenu', { - defaultMessage: 'Infrastructure', - }), - panel: 1, - }, - { - 'data-test-subj': 'metrics-threshold-alerts-menu-option', - name: i18n.translate('xpack.infra.alerting.metricsDropdownMenu', { - defaultMessage: 'Metrics', - }), - panel: 2, - }, - ...(featureFlags.customThresholdAlertsEnabled - ? [ - { - 'data-test-subj': 'custom-threshold-alerts-menu-option', - name: i18n.translate('xpack.infra.alerting.customThresholdDropdownMenu', { - defaultMessage: 'Create custom threshold rule', - }), - onClick: () => { - closePopover(); - setVisibleFlyoutType('customThreshold'); - }, - }, - ] - : []), - manageAlertsMenuItem, - ] - : [manageAlertsMenuItem], - [canCreateAlerts, closePopover, featureFlags.customThresholdAlertsEnabled, manageAlertsMenuItem] - ); - const panels: EuiContextMenuPanelDescriptor[] = useMemo( - () => - [ - { - id: 0, - title: i18n.translate('xpack.infra.alerting.alertDropdownTitle', { - defaultMessage: 'Alerts and rules', - }), - items: firstPanelMenuItems, - }, - ].concat(canCreateAlerts ? [infrastructureAlertsPanel, metricsAlertsPanel] : []), - [infrastructureAlertsPanel, metricsAlertsPanel, firstPanelMenuItems, canCreateAlerts] + () => [ + { + id: 0, + title: i18n.translate('xpack.infra.alerting.alertDropdownTitle', { + defaultMessage: 'Alerts and rules', + }), + items: canCreateAlerts + ? [ + ...infrastructureMenu.items, + ...metricsMenu.items, + ...customThresholdMenu.items, + manageAlertsMenuItem, + ] + : [manageAlertsMenuItem], + }, + ...(canCreateAlerts + ? [...infrastructureMenu.panels, ...metricsMenu.panels, ...customThresholdMenu.panels] + : []), + ], + [canCreateAlerts, infrastructureMenu, metricsMenu, customThresholdMenu, manageAlertsMenuItem] ); return ( diff --git a/x-pack/plugins/infra/public/alerting/custom_threshold/components/alert_flyout.tsx b/x-pack/plugins/infra/public/alerting/custom_threshold/components/alert_flyout.tsx index 3e064d26159e4..19e60e43fd877 100644 --- a/x-pack/plugins/infra/public/alerting/custom_threshold/components/alert_flyout.tsx +++ b/x-pack/plugins/infra/public/alerting/custom_threshold/components/alert_flyout.tsx @@ -27,6 +27,15 @@ export function AlertFlyout({ onClose }: Props) { onClose, canChangeTrigger: false, ruleTypeId: OBSERVABILITY_THRESHOLD_RULE_TYPE_ID, + metadata: { + currentOptions: { + /* + Setting the groupBy is currently required in custom threshold + rule for it to populate the rule with additional host context. + */ + groupBy: 'host.name', + }, + }, }); }, [onClose, triggersActionsUI]); diff --git a/x-pack/plugins/infra/public/alerting/metric_anomaly/components/alert_flyout.tsx b/x-pack/plugins/infra/public/alerting/metric_anomaly/components/alert_flyout.tsx deleted file mode 100644 index a2b0284708459..0000000000000 --- a/x-pack/plugins/infra/public/alerting/metric_anomaly/components/alert_flyout.tsx +++ /dev/null @@ -1,53 +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 React, { useCallback, useContext, useMemo } from 'react'; - -import { TriggerActionsContext } from '../../../utils/triggers_actions_context'; -import { METRIC_ANOMALY_ALERT_TYPE_ID } from '../../../../common/alerting/metrics'; -import { InfraWaffleMapOptions } from '../../../lib/lib'; -import { InventoryItemType } from '../../../../common/inventory_models/types'; -import { useAlertPrefillContext } from '../../use_alert_prefill'; - -interface Props { - visible?: boolean; - metric?: InfraWaffleMapOptions['metric']; - nodeType?: InventoryItemType; - filter?: string; - setVisible(val: boolean): void; -} - -export const AlertFlyout = ({ metric, nodeType, visible, setVisible }: Props) => { - const { triggersActionsUI } = useContext(TriggerActionsContext); - - const onCloseFlyout = useCallback(() => setVisible(false), [setVisible]); - const AddAlertFlyout = useMemo( - () => - triggersActionsUI && - triggersActionsUI.getAddRuleFlyout({ - consumer: 'infrastructure', - onClose: onCloseFlyout, - canChangeTrigger: false, - ruleTypeId: METRIC_ANOMALY_ALERT_TYPE_ID, - metadata: { - metric, - nodeType, - }, - }), - // eslint-disable-next-line react-hooks/exhaustive-deps - [triggersActionsUI, visible] - ); - - return <>{visible && AddAlertFlyout}; -}; - -export const PrefilledAnomalyAlertFlyout = ({ onClose }: { onClose(): void }) => { - const { inventoryPrefill } = useAlertPrefillContext(); - const { nodeType, metric } = inventoryPrefill; - - return ; -}; diff --git a/x-pack/plugins/infra/public/alerting/metric_anomaly/components/expression.test.tsx b/x-pack/plugins/infra/public/alerting/metric_anomaly/components/expression.test.tsx deleted file mode 100644 index de3fcd03df675..0000000000000 --- a/x-pack/plugins/infra/public/alerting/metric_anomaly/components/expression.test.tsx +++ /dev/null @@ -1,86 +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 { mountWithIntl, nextTick } from '@kbn/test-jest-helpers'; -// We are using this inside a `jest.mock` call. Jest requires dynamic dependencies to be prefixed with `mock` -import { coreMock as mockCoreMock } from '@kbn/core/public/mocks'; -import React from 'react'; -import { Expression, AlertContextMeta } from './expression'; -import { act } from 'react-dom/test-utils'; -import { dataViewPluginMocks } from '@kbn/data-views-plugin/public/mocks'; - -jest.mock('../../../containers/metrics_source/source', () => ({ - withSourceProvider: () => jest.fn, - useSourceContext: () => ({ - source: { id: 'default' }, - createDerivedIndexPattern: () => ({ fields: [], title: 'metricbeat-*' }), - }), -})); - -jest.mock('../../../hooks/use_kibana', () => ({ - useKibanaContextForPlugin: () => ({ - services: mockCoreMock.createStart(), - }), -})); - -jest.mock('../../../hooks/use_kibana_space', () => ({ - useActiveKibanaSpace: () => ({ - space: { id: 'default' }, - }), -})); - -jest.mock('../../../containers/ml/infra_ml_capabilities', () => ({ - useInfraMLCapabilities: () => ({ - isLoading: false, - hasInfraMLCapabilities: true, - }), -})); - -const dataViewMock = dataViewPluginMocks.createStartContract(); - -describe('Expression', () => { - async function setup(currentOptions: AlertContextMeta) { - const ruleParams = { - metric: undefined, - nodeType: undefined, - threshold: 50, - }; - const wrapper = mountWithIntl( - Reflect.set(ruleParams, key, value)} - setRuleProperty={() => {}} - metadata={currentOptions} - dataViews={dataViewMock} - /> - ); - - const update = async () => - await act(async () => { - await nextTick(); - wrapper.update(); - }); - - await update(); - - return { wrapper, update, ruleParams }; - } - - it('should prefill the alert using the context metadata', async () => { - const currentOptions = { - nodeType: 'pod', - metric: { type: 'tx' }, - }; - const { ruleParams } = await setup(currentOptions as AlertContextMeta); - expect(ruleParams.nodeType).toBe('k8s'); - expect(ruleParams.metric).toBe('network_out'); - }); -}); diff --git a/x-pack/plugins/infra/public/alerting/metric_anomaly/components/expression.tsx b/x-pack/plugins/infra/public/alerting/metric_anomaly/components/expression.tsx deleted file mode 100644 index 76dbac0b8821b..0000000000000 --- a/x-pack/plugins/infra/public/alerting/metric_anomaly/components/expression.tsx +++ /dev/null @@ -1,298 +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 { EuiFlexGroup, EuiSkeletonText, EuiSpacer, EuiText } from '@elastic/eui'; -import { i18n } from '@kbn/i18n'; -import { FormattedMessage } from '@kbn/i18n-react'; -import React, { useCallback, useEffect, useMemo, useState } from 'react'; -import { euiStyled, EuiThemeProvider } from '@kbn/kibana-react-plugin/common'; -import { - RuleTypeParams, - RuleTypeParamsExpressionProps, - WhenExpression, -} from '@kbn/triggers-actions-ui-plugin/public'; -import { ML_ANOMALY_THRESHOLD } from '@kbn/ml-anomaly-utils/anomaly_threshold'; -import { useSourceContext, withSourceProvider } from '../../../containers/metrics_source'; -import { MetricAnomalyParams } from '../../../../common/alerting/metrics'; -import { findInventoryModel } from '../../../../common/inventory_models'; -import { InventoryItemType, SnapshotMetricType } from '../../../../common/inventory_models/types'; -import { SubscriptionSplashPrompt } from '../../../components/subscription_splash_content'; -import { useInfraMLCapabilities } from '../../../containers/ml/infra_ml_capabilities'; -import { useActiveKibanaSpace } from '../../../hooks/use_kibana_space'; -import { InfraWaffleMapOptions } from '../../../lib/lib'; -import { InfluencerFilter } from './influencer_filter'; -import { NodeTypeExpression } from './node_type'; -import { SeverityThresholdExpression } from './severity_threshold'; - -export interface AlertContextMeta { - metric?: InfraWaffleMapOptions['metric']; - nodeType?: InventoryItemType; -} - -type AlertParams = RuleTypeParams & - MetricAnomalyParams & { sourceId: string; spaceId: string; hasInfraMLCapabilities: boolean }; - -type Props = Omit< - RuleTypeParamsExpressionProps, - 'defaultActionGroupId' | 'actionGroups' | 'charts' | 'data' | 'unifiedSearch' | 'onChangeMetaData' ->; - -export const defaultExpression = { - metric: 'memory_usage' as MetricAnomalyParams['metric'], - threshold: ML_ANOMALY_THRESHOLD.MAJOR as MetricAnomalyParams['threshold'], - nodeType: 'hosts' as MetricAnomalyParams['nodeType'], - influencerFilter: undefined, -}; - -export const Expression: React.FC = (props) => { - const { hasInfraMLCapabilities, isLoading: isLoadingMLCapabilities } = useInfraMLCapabilities(); - const { space } = useActiveKibanaSpace(); - - const { setRuleParams, ruleParams, ruleInterval, metadata } = props; - const { source, createDerivedIndexPattern } = useSourceContext(); - - const derivedIndexPattern = useMemo( - () => createDerivedIndexPattern(), - [createDerivedIndexPattern] - ); - - const [influencerFieldName, updateInfluencerFieldName] = useState( - ruleParams.influencerFilter?.fieldName ?? 'host.name' - ); - - useEffect(() => { - setRuleParams('hasInfraMLCapabilities', hasInfraMLCapabilities); - }, [setRuleParams, hasInfraMLCapabilities]); - - useEffect(() => { - if (ruleParams.influencerFilter) { - setRuleParams('influencerFilter', { - ...ruleParams.influencerFilter, - fieldName: influencerFieldName, - }); - } - }, [influencerFieldName, ruleParams, setRuleParams]); - const updateInfluencerFieldValue = useCallback( - (value: string) => { - if (value) { - setRuleParams('influencerFilter', { - ...ruleParams.influencerFilter, - fieldValue: value, - } as MetricAnomalyParams['influencerFilter']); - } else { - setRuleParams('influencerFilter', undefined); - } - }, - [setRuleParams, ruleParams] - ); - - useEffect(() => { - setRuleParams('alertInterval', ruleInterval); - }, [setRuleParams, ruleInterval]); - - const updateNodeType = useCallback( - (nt: any) => { - setRuleParams('nodeType', nt); - }, - [setRuleParams] - ); - - const updateMetric = useCallback( - (metric: string) => { - setRuleParams('metric', metric as MetricAnomalyParams['metric']); - }, - [setRuleParams] - ); - - const updateSeverityThreshold = useCallback( - (threshold: any) => { - setRuleParams('threshold', threshold); - }, - [setRuleParams] - ); - - const prefillNodeType = useCallback(() => { - const md = metadata; - if (md && md.nodeType) { - setRuleParams( - 'nodeType', - getMLNodeTypeFromInventoryNodeType(md.nodeType) ?? defaultExpression.nodeType - ); - } else { - setRuleParams('nodeType', defaultExpression.nodeType); - } - }, [metadata, setRuleParams]); - - const prefillMetric = useCallback(() => { - const md = metadata; - if (md && md.metric) { - setRuleParams( - 'metric', - getMLMetricFromInventoryMetric(md.metric.type) ?? defaultExpression.metric - ); - } else { - setRuleParams('metric', defaultExpression.metric); - } - }, [metadata, setRuleParams]); - - useEffect(() => { - if (!ruleParams.nodeType) { - prefillNodeType(); - } - - if (!ruleParams.threshold) { - setRuleParams('threshold', defaultExpression.threshold); - } - - if (!ruleParams.metric) { - prefillMetric(); - } - - if (!ruleParams.sourceId) { - setRuleParams('sourceId', source?.id || 'default'); - } - - if (!ruleParams.spaceId) { - setRuleParams('spaceId', space?.id || 'default'); - } - }, [metadata, derivedIndexPattern, defaultExpression, source, space]); // eslint-disable-line react-hooks/exhaustive-deps - - if (isLoadingMLCapabilities) return ; - if (!hasInfraMLCapabilities) return ; - - return ( - // https://github.com/elastic/kibana/issues/89506 - - -

    - -

    -
    - - - - - - - - - - - - - - - - - -
    - ); -}; - -// required for dynamic import -// eslint-disable-next-line import/no-default-export -export default withSourceProvider(Expression)('default'); - -const StyledExpressionRow = euiStyled(EuiFlexGroup)` - display: flex; - flex-wrap: wrap; - margin: 0 -4px; -`; - -const StyledExpression = euiStyled.div` - padding: 0 4px; -`; - -const getDisplayNameForType = (type: InventoryItemType) => { - const inventoryModel = findInventoryModel(type); - return inventoryModel.displayName; -}; - -export const nodeTypes: { [key: string]: any } = { - hosts: { - text: getDisplayNameForType('host'), - value: 'hosts', - }, - k8s: { - text: getDisplayNameForType('pod'), - value: 'k8s', - }, -}; - -const getMLMetricFromInventoryMetric: ( - metric: SnapshotMetricType -) => MetricAnomalyParams['metric'] | null = (metric) => { - switch (metric) { - case 'memory': - return 'memory_usage'; - case 'tx': - return 'network_out'; - case 'rx': - return 'network_in'; - default: - return null; - } -}; - -const getMLNodeTypeFromInventoryNodeType: ( - nodeType: InventoryItemType -) => MetricAnomalyParams['nodeType'] | null = (nodeType) => { - switch (nodeType) { - case 'host': - return 'hosts'; - case 'pod': - return 'k8s'; - default: - return null; - } -}; diff --git a/x-pack/plugins/infra/public/alerting/metric_anomaly/components/influencer_filter.tsx b/x-pack/plugins/infra/public/alerting/metric_anomaly/components/influencer_filter.tsx deleted file mode 100644 index cc1e664d6f9d9..0000000000000 --- a/x-pack/plugins/infra/public/alerting/metric_anomaly/components/influencer_filter.tsx +++ /dev/null @@ -1,193 +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 { debounce } from 'lodash'; -import { i18n } from '@kbn/i18n'; -import React, { useState, useCallback, useEffect, useMemo } from 'react'; -import { first } from 'lodash'; -import { EuiFlexGroup, EuiFormRow, EuiCheckbox, EuiFlexItem, EuiSelect } from '@elastic/eui'; -import { - MetricsExplorerKueryBar, - CurryLoadSuggestionsType, -} from '../../../pages/metrics/metrics_explorer/components/kuery_bar'; -import { MetricAnomalyParams } from '../../../../common/alerting/metrics'; - -interface Props { - fieldName: string; - fieldValue: string; - nodeType: MetricAnomalyParams['nodeType']; - onChangeFieldName: (v: string) => void; - onChangeFieldValue: (v: string) => void; - derivedIndexPattern: Parameters[0]['derivedIndexPattern']; -} - -const FILTER_TYPING_DEBOUNCE_MS = 500; - -export const InfluencerFilter = ({ - fieldName, - fieldValue, - nodeType, - onChangeFieldName, - onChangeFieldValue, - derivedIndexPattern, -}: Props) => { - const fieldNameOptions = useMemo( - () => (nodeType === 'k8s' ? k8sFieldNames : hostFieldNames), - [nodeType] - ); - - // If initial props contain a fieldValue, assume it was passed in from loaded alertParams, - // and enable the UI element - const [isEnabled, updateIsEnabled] = useState(fieldValue ? true : false); - const [storedFieldValue, updateStoredFieldValue] = useState(fieldValue); - - useEffect( - () => - nodeType === 'k8s' - ? onChangeFieldName(first(k8sFieldNames)!.value) - : onChangeFieldName(first(hostFieldNames)!.value), - [nodeType, onChangeFieldName] - ); - - const onSelectFieldName = useCallback( - (e) => onChangeFieldName(e.target.value), - [onChangeFieldName] - ); - const onUpdateFieldValue = useCallback( - (value) => { - updateStoredFieldValue(value); - onChangeFieldValue(value); - }, - [onChangeFieldValue] - ); - - const toggleEnabled = useCallback(() => { - const nextState = !isEnabled; - updateIsEnabled(nextState); - if (!nextState) { - onChangeFieldValue(''); - } else { - onChangeFieldValue(storedFieldValue); - } - }, [isEnabled, updateIsEnabled, onChangeFieldValue, storedFieldValue]); - - /* eslint-disable-next-line react-hooks/exhaustive-deps */ - const debouncedOnUpdateFieldValue = useCallback( - debounce(onUpdateFieldValue, FILTER_TYPING_DEBOUNCE_MS), - [onUpdateFieldValue] - ); - - const affixFieldNameToQuery: CurryLoadSuggestionsType = - (fn) => (expression, cursorPosition, maxSuggestions) => { - // Add the field name to the front of the passed-in query - const prefix = `${fieldName}:`; - // Trim whitespace to prevent AND/OR suggestions - const modifiedExpression = `${prefix}${expression}`.trim(); - // Move the cursor position forward by the length of the field name - const modifiedPosition = cursorPosition + prefix.length; - return fn(modifiedExpression, modifiedPosition, maxSuggestions, (suggestions) => - suggestions - .map((s) => ({ - ...s, - // Remove quotes from suggestions - text: s.text.replace(/\"/g, '').trim(), - // Offset the returned suggestions' cursor positions so that they can be autocompleted accurately - start: s.start - prefix.length, - end: s.end - prefix.length, - })) - // Removing quotes can lead to an already-selected suggestion still coming up in the autocomplete list, - // so filter these out - .filter((s) => !expression.startsWith(s.text)) - ); - }; - - return ( - - } - helpText={ - isEnabled ? ( - <> - {i18n.translate('xpack.infra.metrics.alertFlyout.anomalyFilterHelpText', { - defaultMessage: - 'Limit the scope of your alert trigger to anomalies influenced by certain node(s).', - })} -
    - {i18n.translate('xpack.infra.metrics.alertFlyout.anomalyFilterHelpTextExample', { - defaultMessage: 'For example: "my-node-1" or "my-node-*"', - })} - - ) : null - } - fullWidth - display="rowCompressed" - > - {isEnabled ? ( - - - - - - - - - ) : ( - <> - )} -
    - ); -}; - -const hostFieldNames = [ - { - value: 'host.name', - text: 'host.name', - }, -]; - -const k8sFieldNames = [ - { - value: 'kubernetes.pod.uid', - text: 'kubernetes.pod.uid', - }, - { - value: 'kubernetes.node.name', - text: 'kubernetes.node.name', - }, - { - value: 'kubernetes.namespace', - text: 'kubernetes.namespace', - }, -]; - -const filterByNodeLabel = i18n.translate('xpack.infra.metrics.alertFlyout.filterByNodeLabel', { - defaultMessage: 'Filter by node', -}); diff --git a/x-pack/plugins/infra/public/alerting/metric_anomaly/components/node_type.tsx b/x-pack/plugins/infra/public/alerting/metric_anomaly/components/node_type.tsx deleted file mode 100644 index a3cfbc978388a..0000000000000 --- a/x-pack/plugins/infra/public/alerting/metric_anomaly/components/node_type.tsx +++ /dev/null @@ -1,118 +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 React, { useState } from 'react'; -import { i18n } from '@kbn/i18n'; -import { FormattedMessage } from '@kbn/i18n-react'; -import { EuiExpression, EuiPopover, EuiFlexGroup, EuiFlexItem, EuiSelect } from '@elastic/eui'; -import { EuiPopoverTitle, EuiButtonIcon } from '@elastic/eui'; -import { MetricAnomalyParams } from '../../../../common/alerting/metrics'; - -type Node = MetricAnomalyParams['nodeType']; - -interface WhenExpressionProps { - value: Node; - options: { [key: string]: { text: string; value: Node } }; - onChange: (value: Node) => void; - popupPosition?: - | 'upCenter' - | 'upLeft' - | 'upRight' - | 'downCenter' - | 'downLeft' - | 'downRight' - | 'leftCenter' - | 'leftUp' - | 'leftDown' - | 'rightCenter' - | 'rightUp' - | 'rightDown'; -} - -export const NodeTypeExpression = ({ - value, - options, - onChange, - popupPosition, -}: WhenExpressionProps) => { - const [aggTypePopoverOpen, setAggTypePopoverOpen] = useState(false); - - return ( - { - setAggTypePopoverOpen(true); - }} - /> - } - isOpen={aggTypePopoverOpen} - closePopover={() => { - setAggTypePopoverOpen(false); - }} - ownFocus - anchorPosition={popupPosition ?? 'downLeft'} - > -
    - setAggTypePopoverOpen(false)}> - - - { - onChange(e.target.value as Node); - setAggTypePopoverOpen(false); - }} - options={Object.values(options).map((o) => o)} - /> -
    -
    - ); -}; - -interface ClosablePopoverTitleProps { - children: JSX.Element; - onClose: () => void; -} - -export const ClosablePopoverTitle = ({ children, onClose }: ClosablePopoverTitleProps) => { - return ( - - - {children} - - onClose()} - /> - - - - ); -}; diff --git a/x-pack/plugins/infra/public/alerting/metric_anomaly/components/severity_threshold.tsx b/x-pack/plugins/infra/public/alerting/metric_anomaly/components/severity_threshold.tsx deleted file mode 100644 index d910de567a1e9..0000000000000 --- a/x-pack/plugins/infra/public/alerting/metric_anomaly/components/severity_threshold.tsx +++ /dev/null @@ -1,141 +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 React, { useState } from 'react'; -import { i18n } from '@kbn/i18n'; -import { FormattedMessage } from '@kbn/i18n-react'; -import { EuiExpression, EuiPopover, EuiFlexGroup, EuiFlexItem, EuiSelect } from '@elastic/eui'; -import { EuiPopoverTitle, EuiButtonIcon } from '@elastic/eui'; -import { ML_ANOMALY_THRESHOLD } from '@kbn/ml-anomaly-utils/anomaly_threshold'; - -interface WhenExpressionProps { - value: Exclude; - onChange: (value: ML_ANOMALY_THRESHOLD) => void; - popupPosition?: - | 'upCenter' - | 'upLeft' - | 'upRight' - | 'downCenter' - | 'downLeft' - | 'downRight' - | 'leftCenter' - | 'leftUp' - | 'leftDown' - | 'rightCenter' - | 'rightUp' - | 'rightDown'; -} - -const options = { - [ML_ANOMALY_THRESHOLD.CRITICAL]: { - text: i18n.translate('xpack.infra.metrics.alertFlyout.expression.severityScore.criticalLabel', { - defaultMessage: 'Critical', - }), - value: ML_ANOMALY_THRESHOLD.CRITICAL, - }, - [ML_ANOMALY_THRESHOLD.MAJOR]: { - text: i18n.translate('xpack.infra.metrics.alertFlyout.expression.severityScore.majorLabel', { - defaultMessage: 'Major', - }), - value: ML_ANOMALY_THRESHOLD.MAJOR, - }, - [ML_ANOMALY_THRESHOLD.MINOR]: { - text: i18n.translate('xpack.infra.metrics.alertFlyout.expression.severityScore.minorLabel', { - defaultMessage: 'Minor', - }), - value: ML_ANOMALY_THRESHOLD.MINOR, - }, - [ML_ANOMALY_THRESHOLD.WARNING]: { - text: i18n.translate('xpack.infra.metrics.alertFlyout.expression.severityScore.warningLabel', { - defaultMessage: 'Warning', - }), - value: ML_ANOMALY_THRESHOLD.WARNING, - }, -}; - -export const SeverityThresholdExpression = ({ - value, - onChange, - popupPosition, -}: WhenExpressionProps) => { - const [aggTypePopoverOpen, setAggTypePopoverOpen] = useState(false); - - return ( - { - setAggTypePopoverOpen(true); - }} - /> - } - isOpen={aggTypePopoverOpen} - closePopover={() => { - setAggTypePopoverOpen(false); - }} - ownFocus - anchorPosition={popupPosition ?? 'downLeft'} - > -
    - setAggTypePopoverOpen(false)}> - - - { - onChange(Number(e.target.value) as ML_ANOMALY_THRESHOLD); - setAggTypePopoverOpen(false); - }} - options={Object.values(options).map((o) => o)} - /> -
    -
    - ); -}; - -interface ClosablePopoverTitleProps { - children: JSX.Element; - onClose: () => void; -} - -export const ClosablePopoverTitle = ({ children, onClose }: ClosablePopoverTitleProps) => { - return ( - - - {children} - - onClose()} - /> - - - - ); -}; diff --git a/x-pack/plugins/infra/public/alerting/metric_anomaly/components/validation.tsx b/x-pack/plugins/infra/public/alerting/metric_anomaly/components/validation.tsx deleted file mode 100644 index fa278674d55e8..0000000000000 --- a/x-pack/plugins/infra/public/alerting/metric_anomaly/components/validation.tsx +++ /dev/null @@ -1,34 +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 { i18n } from '@kbn/i18n'; -import type { ValidationResult } from '@kbn/triggers-actions-ui-plugin/public'; - -export function validateMetricAnomaly({ - hasInfraMLCapabilities, -}: { - hasInfraMLCapabilities: boolean; -}): ValidationResult { - const validationResult = { errors: {} }; - const errors: { - hasInfraMLCapabilities: string[]; - } = { - hasInfraMLCapabilities: [], - }; - - validationResult.errors = errors; - - if (!hasInfraMLCapabilities) { - errors.hasInfraMLCapabilities.push( - i18n.translate('xpack.infra.metrics.alertFlyout.error.mlCapabilitiesRequired', { - defaultMessage: 'Cannot create an anomaly alert when machine learning is disabled.', - }) - ); - } - - return validationResult; -} diff --git a/x-pack/plugins/infra/public/alerting/metric_anomaly/index.ts b/x-pack/plugins/infra/public/alerting/metric_anomaly/index.ts deleted file mode 100644 index 2dfee3891b86b..0000000000000 --- a/x-pack/plugins/infra/public/alerting/metric_anomaly/index.ts +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { i18n } from '@kbn/i18n'; -import React from 'react'; -import { RuleTypeModel } from '@kbn/triggers-actions-ui-plugin/public'; -import { RuleTypeParams } from '@kbn/alerting-plugin/common'; -import { METRIC_ANOMALY_ALERT_TYPE_ID } from '../../../common/alerting/metrics'; -import { validateMetricAnomaly } from './components/validation'; - -interface MetricAnomalyRuleTypeParams extends RuleTypeParams { - hasInfraMLCapabilities: boolean; -} - -export function createMetricAnomalyRuleType(): RuleTypeModel { - return { - id: METRIC_ANOMALY_ALERT_TYPE_ID, - description: i18n.translate('xpack.infra.metrics.anomaly.alertFlyout.alertDescription', { - defaultMessage: 'Alert when the anomaly score exceeds a defined threshold.', - }), - iconClass: 'bell', - documentationUrl(docLinks) { - return `${docLinks.ELASTIC_WEBSITE_URL}guide/en/observability/${docLinks.DOC_LINK_VERSION}/infrastructure-anomaly-alert.html`; - }, - ruleParamsExpression: React.lazy(() => import('./components/expression')), - validate: validateMetricAnomaly, - defaultActionMessage: i18n.translate( - 'xpack.infra.metrics.alerting.anomaly.defaultActionMessage', - { - defaultMessage: `\\{\\{alertName\\}\\} is in a state of \\{\\{context.alertState\\}\\} - -\\{\\{context.metric\\}\\} was \\{\\{context.summary\\}\\} than normal at \\{\\{context.timestamp\\}\\} - -Typical value: \\{\\{context.typical\\}\\} -Actual value: \\{\\{context.actual\\}\\} -`, - } - ), - requiresAppContext: false, - }; -} diff --git a/x-pack/plugins/infra/public/components/asset_details/tabs/overview/alerts.tsx b/x-pack/plugins/infra/public/components/asset_details/tabs/overview/alerts.tsx index 2fa09451118cb..1dda6d6ac7a46 100644 --- a/x-pack/plugins/infra/public/components/asset_details/tabs/overview/alerts.tsx +++ b/x-pack/plugins/infra/public/components/asset_details/tabs/overview/alerts.tsx @@ -9,6 +9,7 @@ import React, { useMemo } from 'react'; import { EuiFlexGroup, EuiFlexItem, EuiSpacer } from '@elastic/eui'; import { useSummaryTimeRange } from '@kbn/observability-plugin/public'; import type { TimeRange } from '@kbn/es-query'; +import { usePluginConfig } from '../../../../containers/plugin_config_context'; import type { AlertsEsQuery } from '../../../../common/alerts/types'; import type { InventoryItemType } from '../../../../../common/inventory_models/types'; import { findInventoryFields } from '../../../../../common/inventory_models'; @@ -32,6 +33,7 @@ export const AlertsSummaryContent = ({ assetType: InventoryItemType; dateRange: TimeRange; }) => { + const { featureFlags } = usePluginConfig(); const [isAlertFlyoutVisible, { toggle: toggleAlertFlyout }] = useBoolean(false); const { overrides } = useAssetDetailsRenderPropsContext(); @@ -51,9 +53,11 @@ export const AlertsSummaryContent = ({ - - - + {featureFlags.inventoryThresholdAlertRuleEnabled && ( + + + + )} - + + {featureFlags.inventoryThresholdAlertRuleEnabled && ( + + )} ); }; diff --git a/x-pack/plugins/infra/public/containers/plugin_config_context.test.tsx b/x-pack/plugins/infra/public/containers/plugin_config_context.test.tsx index 70b3cf466f749..a8afb67fb6e32 100644 --- a/x-pack/plugins/infra/public/containers/plugin_config_context.test.tsx +++ b/x-pack/plugins/infra/public/containers/plugin_config_context.test.tsx @@ -24,6 +24,9 @@ describe('usePluginConfig()', () => { logsUIEnabled: false, metricsExplorerEnabled: false, osqueryEnabled: false, + inventoryThresholdAlertRuleEnabled: true, + metricThresholdAlertRuleEnabled: true, + logThresholdAlertRuleEnabled: true, }, }; const { result } = renderHook(() => usePluginConfig(), { diff --git a/x-pack/plugins/infra/server/lib/alerting/inventory_metric_threshold/register_inventory_metric_threshold_rule_type.ts b/x-pack/plugins/infra/server/lib/alerting/inventory_metric_threshold/register_inventory_metric_threshold_rule_type.ts index d956b30940f4c..a1381f9679d9b 100644 --- a/x-pack/plugins/infra/server/lib/alerting/inventory_metric_threshold/register_inventory_metric_threshold_rule_type.ts +++ b/x-pack/plugins/infra/server/lib/alerting/inventory_metric_threshold/register_inventory_metric_threshold_rule_type.ts @@ -11,6 +11,7 @@ import { DEFAULT_APP_CATEGORIES } from '@kbn/core/server'; import { GetViewInAppRelativeUrlFnOpts, PluginSetupContract } from '@kbn/alerting-plugin/server'; import { observabilityPaths } from '@kbn/observability-plugin/common'; import { TimeUnitChar } from '@kbn/observability-plugin/common/utils/formatters/duration'; +import type { InfraConfig } from '../../../../common/plugin_config_types'; import { Comparator, METRIC_INVENTORY_THRESHOLD_ALERT_TYPE_ID, @@ -81,10 +82,15 @@ const groupActionVariableDescription = i18n.translate( } ); -export async function registerMetricInventoryThresholdRuleType( +export async function registerInventoryThresholdRuleType( alertingPlugin: PluginSetupContract, - libs: InfraBackendLibs + libs: InfraBackendLibs, + { featureFlags }: InfraConfig ) { + if (!featureFlags.inventoryThresholdAlertRuleEnabled) { + return; + } + alertingPlugin.registerType({ id: METRIC_INVENTORY_THRESHOLD_ALERT_TYPE_ID, name: i18n.translate('xpack.infra.metrics.inventory.alertName', { diff --git a/x-pack/plugins/infra/server/lib/alerting/log_threshold/register_log_threshold_rule_type.ts b/x-pack/plugins/infra/server/lib/alerting/log_threshold/register_log_threshold_rule_type.ts index 40848b9a109ed..f16e7dfd284d2 100644 --- a/x-pack/plugins/infra/server/lib/alerting/log_threshold/register_log_threshold_rule_type.ts +++ b/x-pack/plugins/infra/server/lib/alerting/log_threshold/register_log_threshold_rule_type.ts @@ -9,6 +9,7 @@ import { i18n } from '@kbn/i18n'; import { DEFAULT_APP_CATEGORIES } from '@kbn/core/server'; import { GetViewInAppRelativeUrlFnOpts, PluginSetupContract } from '@kbn/alerting-plugin/server'; import { observabilityPaths } from '@kbn/observability-plugin/common'; +import type { InfraConfig } from '../../../../common/plugin_config_types'; import { O11Y_AAD_FIELDS } from '../../../../common/constants'; import { createLogThresholdExecutor, FIRED_ACTIONS } from './log_threshold_executor'; import { extractReferences, injectReferences } from './log_threshold_references_manager'; @@ -103,8 +104,13 @@ const viewInAppUrlActionVariableDescription = i18n.translate( export async function registerLogThresholdRuleType( alertingPlugin: PluginSetupContract, - libs: InfraBackendLibs + libs: InfraBackendLibs, + { featureFlags }: InfraConfig ) { + if (!featureFlags.logThresholdAlertRuleEnabled) { + return; + } + if (!alertingPlugin) { throw new Error( 'Cannot register log threshold alert type. Both the actions and alerting plugins need to be enabled.' diff --git a/x-pack/plugins/infra/server/lib/alerting/metric_anomaly/evaluate_condition.ts b/x-pack/plugins/infra/server/lib/alerting/metric_anomaly/evaluate_condition.ts deleted file mode 100644 index 362cf0bc5a073..0000000000000 --- a/x-pack/plugins/infra/server/lib/alerting/metric_anomaly/evaluate_condition.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 { MetricAnomalyParams } from '../../../../common/alerting/metrics'; -import { getMetricsHostsAnomalies, getMetricK8sAnomalies } from '../../infra_ml'; -import { MlSystem, MlAnomalyDetectors } from '../../../types'; - -type ConditionParams = Omit & { - spaceId: string; - startTime: number; - endTime: number; - mlSystem: MlSystem; - mlAnomalyDetectors: MlAnomalyDetectors; -}; - -export const evaluateCondition = async ({ - nodeType, - spaceId, - sourceId, - mlSystem, - mlAnomalyDetectors, - startTime, - endTime, - metric, - threshold, - influencerFilter, -}: ConditionParams) => { - const getAnomalies = nodeType === 'k8s' ? getMetricK8sAnomalies : getMetricsHostsAnomalies; - - const result = await getAnomalies({ - context: { - spaceId, - mlSystem, - mlAnomalyDetectors, - }, - sourceId: sourceId ?? 'default', - anomalyThreshold: threshold, - startTime, - endTime, - metric, - sort: { field: 'anomalyScore', direction: 'desc' }, - pagination: { pageSize: 100 }, - influencerFilter, - }); - - return result; -}; diff --git a/x-pack/plugins/infra/server/lib/alerting/metric_anomaly/metric_anomaly_executor.ts b/x-pack/plugins/infra/server/lib/alerting/metric_anomaly/metric_anomaly_executor.ts deleted file mode 100644 index b6d583cb17e6b..0000000000000 --- a/x-pack/plugins/infra/server/lib/alerting/metric_anomaly/metric_anomaly_executor.ts +++ /dev/null @@ -1,142 +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 { i18n } from '@kbn/i18n'; -import { KibanaRequest } from '@kbn/core/server'; -import { first } from 'lodash'; -import moment from 'moment'; -import { - ActionGroup, - AlertInstanceContext as AlertContext, - AlertInstanceState as AlertState, -} from '@kbn/alerting-plugin/common'; -import { RuleExecutorOptions } from '@kbn/alerting-plugin/server'; -import { MlPluginSetup } from '@kbn/ml-plugin/server'; -import { AlertStates, MetricAnomalyParams } from '../../../../common/alerting/metrics'; -import { getIntervalInSeconds } from '../../../../common/utils/get_interval_in_seconds'; -import { MappedAnomalyHit } from '../../infra_ml'; -import { InfraBackendLibs } from '../../infra_types'; -import { stateToAlertMessage } from '../common/messages'; -import { evaluateCondition } from './evaluate_condition'; -import { MetricAnomalyAllowedActionGroups } from './register_metric_anomaly_rule_type'; - -export const createMetricAnomalyExecutor = - (_libs: InfraBackendLibs, ml?: MlPluginSetup) => - async ({ - services, - params, - startedAt, - }: RuleExecutorOptions< - /** - * TODO: Remove this use of `any` by utilizing a proper type - */ - Record, - Record, - AlertState, - AlertContext, - MetricAnomalyAllowedActionGroups - >) => { - if (!ml) { - return { state: {} }; - } - const request = {} as KibanaRequest; - const mlSystem = ml.mlSystemProvider(request, services.savedObjectsClient); - const mlAnomalyDetectors = ml.anomalyDetectorsProvider(request, services.savedObjectsClient); - - const { metric, alertInterval, influencerFilter, sourceId, spaceId, nodeType, threshold } = - params as MetricAnomalyParams; - - const bucketInterval = getIntervalInSeconds('15m') * 1000; - const alertIntervalInMs = getIntervalInSeconds(alertInterval ?? '1m') * 1000; - - const endTime = startedAt.getTime(); - // Anomalies are bucketed at :00, :15, :30, :45 minutes every hour - const previousBucketStartTime = endTime - (endTime % bucketInterval); - - // If the alert interval is less than 15m, make sure that it actually queries an anomaly bucket - const startTime = Math.min(endTime - alertIntervalInMs, previousBucketStartTime); - - const { data } = await evaluateCondition({ - sourceId: sourceId ?? 'default', - spaceId: spaceId ?? 'default', - mlSystem, - mlAnomalyDetectors, - startTime, - endTime, - metric, - threshold, - nodeType, - influencerFilter, - }); - - const shouldAlertFire = data.length > 0; - - if (shouldAlertFire) { - const { - startTime: anomalyStartTime, - anomalyScore, - actual, - typical, - influencers, - } = first(data as MappedAnomalyHit[])!; - const alert = services.alertFactory.create(`${nodeType}-${metric}`); - - alert.scheduleActions(FIRED_ACTIONS_ID, { - alertState: stateToAlertMessage[AlertStates.ALERT], - timestamp: moment(anomalyStartTime).toISOString(), - anomalyScore, - actual, - typical, - metric: metricNameMap[metric], - summary: generateSummaryMessage(actual, typical), - influencers: influencers.join(', '), - }); - } - - return { state: {} }; - }; - -export const FIRED_ACTIONS_ID = 'metrics.anomaly.fired'; -export const FIRED_ACTIONS: ActionGroup = { - id: FIRED_ACTIONS_ID, - name: i18n.translate('xpack.infra.metrics.alerting.anomaly.fired', { - defaultMessage: 'Fired', - }), -}; - -const generateSummaryMessage = (actual: number, typical: number) => { - const differential = (Math.max(actual, typical) / Math.min(actual, typical)) - .toFixed(1) - .replace('.0', ''); - if (actual > typical) { - return i18n.translate('xpack.infra.metrics.alerting.anomaly.summaryHigher', { - defaultMessage: '{differential}x higher', - values: { - differential, - }, - }); - } else { - return i18n.translate('xpack.infra.metrics.alerting.anomaly.summaryLower', { - defaultMessage: '{differential}x lower', - values: { - differential, - }, - }); - } -}; - -const metricNameMap = { - memory_usage: i18n.translate('xpack.infra.metrics.alerting.anomaly.memoryUsage', { - defaultMessage: 'Memory usage', - }), - network_in: i18n.translate('xpack.infra.metrics.alerting.anomaly.networkIn', { - defaultMessage: 'Network in', - }), - network_out: i18n.translate('xpack.infra.metrics.alerting.anomaly.networkOut', { - defaultMessage: 'Network out', - }), -}; diff --git a/x-pack/plugins/infra/server/lib/alerting/metric_anomaly/preview_metric_anomaly_alert.ts b/x-pack/plugins/infra/server/lib/alerting/metric_anomaly/preview_metric_anomaly_alert.ts deleted file mode 100644 index 5c55fa3499202..0000000000000 --- a/x-pack/plugins/infra/server/lib/alerting/metric_anomaly/preview_metric_anomaly_alert.ts +++ /dev/null @@ -1,132 +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 { Unit } from '@kbn/datemath'; -import { countBy } from 'lodash'; -import { - isTooManyBucketsPreviewException, - MetricAnomalyParams, - TOO_MANY_BUCKETS_PREVIEW_EXCEPTION, -} from '../../../../common/alerting/metrics'; -import { getIntervalInSeconds } from '../../../../common/utils/get_interval_in_seconds'; -import { MlAnomalyDetectors, MlSystem } from '../../../types'; -import { MappedAnomalyHit } from '../../infra_ml'; -import { evaluateCondition } from './evaluate_condition'; - -interface PreviewMetricAnomalyAlertParams { - mlSystem: MlSystem; - mlAnomalyDetectors: MlAnomalyDetectors; - spaceId: string; - params: MetricAnomalyParams; - sourceId: string; - lookback: Unit; - alertInterval: string; - alertThrottle: string; - alertOnNoData: boolean; - alertNotifyWhen: string; -} - -export const previewMetricAnomalyAlert = async ({ - mlSystem, - mlAnomalyDetectors, - spaceId, - params, - sourceId, - lookback, - alertInterval, - alertThrottle, - alertNotifyWhen, -}: PreviewMetricAnomalyAlertParams) => { - const { metric, threshold, influencerFilter, nodeType } = params as MetricAnomalyParams; - - const alertIntervalInSeconds = getIntervalInSeconds(alertInterval); - const throttleIntervalInSeconds = getIntervalInSeconds(alertThrottle); - - const lookbackInterval = `1${lookback}`; - const lookbackIntervalInSeconds = getIntervalInSeconds(lookbackInterval); - const endTime = Date.now(); - const startTime = endTime - lookbackIntervalInSeconds * 1000; - - const numberOfExecutions = Math.floor(lookbackIntervalInSeconds / alertIntervalInSeconds); - const bucketIntervalInSeconds = getIntervalInSeconds('15m'); - const bucketsPerExecution = Math.max( - 1, - Math.floor(alertIntervalInSeconds / bucketIntervalInSeconds) - ); - - try { - let anomalies: MappedAnomalyHit[] = []; - const { data } = await evaluateCondition({ - nodeType, - spaceId, - sourceId, - mlSystem, - mlAnomalyDetectors, - startTime, - endTime, - metric, - threshold, - influencerFilter, - }); - anomalies = [...anomalies, ...data]; - - const anomaliesByTime = countBy(anomalies, ({ startTime: anomStartTime }) => anomStartTime); - - let numberOfTimesFired = 0; - let numberOfNotifications = 0; - let throttleTracker = 0; - let previousActionGroup: string | null = null; - const notifyWithThrottle = (actionGroup: string) => { - if (alertNotifyWhen === 'onActionGroupChange') { - if (previousActionGroup !== actionGroup) numberOfNotifications++; - } else if (alertNotifyWhen === 'onThrottleInterval') { - if (throttleTracker === 0) numberOfNotifications++; - throttleTracker += alertIntervalInSeconds; - } else { - numberOfNotifications++; - } - previousActionGroup = actionGroup; - }; - // Mock each alert evaluation - for (let i = 0; i < numberOfExecutions; i++) { - const executionTime = startTime + alertIntervalInSeconds * 1000 * i; - // Get an array of bucket times this mock alert evaluation will be looking at - // Anomalies are bucketed at :00, :15, :30, :45 minutes every hour, - // so this is an array of how many of those times occurred between this evaluation - // and the previous one - const bucketsLookedAt = Array.from(Array(bucketsPerExecution), (_, idx) => { - const previousBucketStartTime = - executionTime - - (executionTime % (bucketIntervalInSeconds * 1000)) - - idx * bucketIntervalInSeconds * 1000; - return previousBucketStartTime; - }); - const anomaliesDetectedInBuckets = bucketsLookedAt.some((bucketTime) => - Reflect.has(anomaliesByTime, bucketTime) - ); - - if (anomaliesDetectedInBuckets) { - numberOfTimesFired++; - notifyWithThrottle('fired'); - } else { - previousActionGroup = 'recovered'; - if (throttleTracker > 0) { - throttleTracker += alertIntervalInSeconds; - } - } - if (throttleTracker >= throttleIntervalInSeconds) { - throttleTracker = 0; - } - } - - return { fired: numberOfTimesFired, notifications: numberOfNotifications }; - } catch (e) { - if (!isTooManyBucketsPreviewException(e)) throw e; - const { maxBuckets } = e; - throw new Error(`${TOO_MANY_BUCKETS_PREVIEW_EXCEPTION}:${maxBuckets}`); - } -}; diff --git a/x-pack/plugins/infra/server/lib/alerting/metric_anomaly/register_metric_anomaly_rule_type.ts b/x-pack/plugins/infra/server/lib/alerting/metric_anomaly/register_metric_anomaly_rule_type.ts deleted file mode 100644 index dc3fd1b28546c..0000000000000 --- a/x-pack/plugins/infra/server/lib/alerting/metric_anomaly/register_metric_anomaly_rule_type.ts +++ /dev/null @@ -1,125 +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 { DEFAULT_APP_CATEGORIES } from '@kbn/core/server'; -import { schema } from '@kbn/config-schema'; -import { i18n } from '@kbn/i18n'; -import { MlPluginSetup } from '@kbn/ml-plugin/server'; -import { - RuleType, - AlertInstanceState as AlertState, - AlertInstanceContext as AlertContext, - GetViewInAppRelativeUrlFnOpts, -} from '@kbn/alerting-plugin/server'; -import { RecoveredActionGroupId } from '@kbn/alerting-plugin/common'; -import { observabilityPaths } from '@kbn/observability-plugin/common'; -import { O11Y_AAD_FIELDS } from '../../../../common/constants'; -import { - createMetricAnomalyExecutor, - FIRED_ACTIONS, - FIRED_ACTIONS_ID, -} from './metric_anomaly_executor'; -import { METRIC_ANOMALY_ALERT_TYPE_ID } from '../../../../common/alerting/metrics'; -import { InfraBackendLibs } from '../../infra_types'; -import { oneOfLiterals, validateIsStringElasticsearchJSONFilter } from '../common/utils'; -import { alertStateActionVariableDescription } from '../common/messages'; - -export type MetricAnomalyAllowedActionGroups = typeof FIRED_ACTIONS_ID; - -export const registerMetricAnomalyRuleType = ( - libs: InfraBackendLibs, - ml?: MlPluginSetup -): RuleType< - /** - * TODO: Remove this use of `any` by utilizing a proper type - */ - Record, - never, // Only use if defining useSavedObjectReferences hook - Record, - AlertState, - AlertContext, - MetricAnomalyAllowedActionGroups, - RecoveredActionGroupId -> => ({ - id: METRIC_ANOMALY_ALERT_TYPE_ID, - name: i18n.translate('xpack.infra.metrics.anomaly.alertName', { - defaultMessage: 'Infrastructure anomaly', - }), - validate: { - params: schema.object( - { - nodeType: oneOfLiterals(['hosts', 'k8s']), - alertInterval: schema.string(), - metric: oneOfLiterals(['memory_usage', 'network_in', 'network_out']), - threshold: schema.number(), - filterQuery: schema.maybe( - schema.string({ validate: validateIsStringElasticsearchJSONFilter }) - ), - sourceId: schema.string(), - spaceId: schema.string(), - }, - { unknowns: 'allow' } - ), - }, - defaultActionGroupId: FIRED_ACTIONS_ID, - actionGroups: [FIRED_ACTIONS], - category: DEFAULT_APP_CATEGORIES.observability.id, - producer: 'infrastructure', - minimumLicenseRequired: 'basic', - isExportable: true, - executor: createMetricAnomalyExecutor(libs, ml), - fieldsForAAD: O11Y_AAD_FIELDS, - actionVariables: { - context: [ - { name: 'alertState', description: alertStateActionVariableDescription }, - { - name: 'metric', - description: i18n.translate('xpack.infra.metrics.alerting.anomalyMetricDescription', { - defaultMessage: 'The metric name in the specified condition.', - }), - }, - { - name: 'timestamp', - description: i18n.translate('xpack.infra.metrics.alerting.anomalyTimestampDescription', { - defaultMessage: 'A timestamp of when the anomaly was detected.', - }), - }, - { - name: 'anomalyScore', - description: i18n.translate('xpack.infra.metrics.alerting.anomalyScoreDescription', { - defaultMessage: 'The exact severity score of the detected anomaly.', - }), - }, - { - name: 'actual', - description: i18n.translate('xpack.infra.metrics.alerting.anomalyActualDescription', { - defaultMessage: 'The actual value of the monitored metric at the time of the anomaly.', - }), - }, - { - name: 'typical', - description: i18n.translate('xpack.infra.metrics.alerting.anomalyTypicalDescription', { - defaultMessage: 'The typical value of the monitored metric at the time of the anomaly.', - }), - }, - { - name: 'summary', - description: i18n.translate('xpack.infra.metrics.alerting.anomalySummaryDescription', { - defaultMessage: 'A description of the anomaly, e.g. "2x higher."', - }), - }, - { - name: 'influencers', - description: i18n.translate('xpack.infra.metrics.alerting.anomalyInfluencersDescription', { - defaultMessage: 'A list of node names that influenced the anomaly.', - }), - }, - ], - }, - getViewInAppRelativeUrl: ({ rule }: GetViewInAppRelativeUrlFnOpts<{}>) => - observabilityPaths.ruleDetails(rule.id), -}); diff --git a/x-pack/plugins/infra/server/lib/alerting/metric_threshold/metric_threshold_executor.test.ts b/x-pack/plugins/infra/server/lib/alerting/metric_threshold/metric_threshold_executor.test.ts index b3b82602f11f1..f7052b3e1916f 100644 --- a/x-pack/plugins/infra/server/lib/alerting/metric_threshold/metric_threshold_executor.test.ts +++ b/x-pack/plugins/infra/server/lib/alerting/metric_threshold/metric_threshold_executor.test.ts @@ -1903,6 +1903,9 @@ const createMockStaticConfiguration = (sources: any): InfraConfig => ({ logsUIEnabled: true, metricsExplorerEnabled: true, osqueryEnabled: true, + inventoryThresholdAlertRuleEnabled: true, + metricThresholdAlertRuleEnabled: true, + logThresholdAlertRuleEnabled: true, }, enabled: true, sources, diff --git a/x-pack/plugins/infra/server/lib/alerting/metric_threshold/register_metric_threshold_rule_type.ts b/x-pack/plugins/infra/server/lib/alerting/metric_threshold/register_metric_threshold_rule_type.ts index ad6429eb2ba0f..e7ea693a0e74d 100644 --- a/x-pack/plugins/infra/server/lib/alerting/metric_threshold/register_metric_threshold_rule_type.ts +++ b/x-pack/plugins/infra/server/lib/alerting/metric_threshold/register_metric_threshold_rule_type.ts @@ -15,6 +15,7 @@ import { RuleType, } from '@kbn/alerting-plugin/server'; import { observabilityPaths } from '@kbn/observability-plugin/common'; +import type { InfraConfig } from '../../../../common/plugin_config_types'; import { Comparator, METRIC_THRESHOLD_ALERT_TYPE_ID } from '../../../../common/alerting/metrics'; import { METRIC_EXPLORER_AGGREGATIONS } from '../../../../common/http_api'; import { InfraBackendLibs } from '../../infra_types'; @@ -56,8 +57,13 @@ export type MetricThresholdAlertType = Omit & { export async function registerMetricThresholdRuleType( alertingPlugin: PluginSetupContract, - libs: InfraBackendLibs + libs: InfraBackendLibs, + { featureFlags }: InfraConfig ) { + if (!featureFlags.metricThresholdAlertRuleEnabled) { + return; + } + const baseCriterion = { threshold: schema.arrayOf(schema.number()), comparator: oneOfLiterals(Object.values(Comparator)), diff --git a/x-pack/plugins/infra/server/lib/alerting/register_rule_types.ts b/x-pack/plugins/infra/server/lib/alerting/register_rule_types.ts index ee05dc38cc1f5..36c836fc50aa7 100644 --- a/x-pack/plugins/infra/server/lib/alerting/register_rule_types.ts +++ b/x-pack/plugins/infra/server/lib/alerting/register_rule_types.ts @@ -7,12 +7,11 @@ import { legacyExperimentalFieldMap } from '@kbn/alerts-as-data-utils'; import { type IRuleTypeAlerts, PluginSetupContract } from '@kbn/alerting-plugin/server'; -import { MlPluginSetup } from '@kbn/ml-plugin/server'; import { registerMetricThresholdRuleType } from './metric_threshold/register_metric_threshold_rule_type'; -import { registerMetricInventoryThresholdRuleType } from './inventory_metric_threshold/register_inventory_metric_threshold_rule_type'; -import { registerMetricAnomalyRuleType } from './metric_anomaly/register_metric_anomaly_rule_type'; +import { registerInventoryThresholdRuleType } from './inventory_metric_threshold/register_inventory_metric_threshold_rule_type'; import { registerLogThresholdRuleType } from './log_threshold/register_log_threshold_rule_type'; import { InfraBackendLibs } from '../infra_types'; +import type { InfraConfig } from '../../types'; export const LOGS_RULES_ALERT_CONTEXT = 'observability.logs'; // Defines which alerts-as-data index logs rules will use @@ -35,18 +34,16 @@ export const MetricsRulesTypeAlertDefinition: IRuleTypeAlerts = { const registerRuleTypes = ( alertingPlugin: PluginSetupContract, libs: InfraBackendLibs, - ml?: MlPluginSetup + config: InfraConfig ) => { if (alertingPlugin) { - alertingPlugin.registerType(registerMetricAnomalyRuleType(libs, ml)); - const registerFns = [ registerLogThresholdRuleType, - registerMetricInventoryThresholdRuleType, + registerInventoryThresholdRuleType, registerMetricThresholdRuleType, ]; registerFns.forEach((fn) => { - fn(alertingPlugin, libs); + fn(alertingPlugin, libs, config); }); } }; diff --git a/x-pack/plugins/infra/server/lib/sources/sources.test.ts b/x-pack/plugins/infra/server/lib/sources/sources.test.ts index d9e3e3ee4dbac..bf31f4ed099d8 100644 --- a/x-pack/plugins/infra/server/lib/sources/sources.test.ts +++ b/x-pack/plugins/infra/server/lib/sources/sources.test.ts @@ -130,6 +130,9 @@ const createMockStaticConfiguration = (sources: any): InfraConfig => ({ logsUIEnabled: true, metricsExplorerEnabled: true, osqueryEnabled: true, + inventoryThresholdAlertRuleEnabled: true, + metricThresholdAlertRuleEnabled: true, + logThresholdAlertRuleEnabled: true, }, sources, enabled: true, diff --git a/x-pack/plugins/infra/server/plugin.ts b/x-pack/plugins/infra/server/plugin.ts index 04a57f294303f..2dae74a2083b6 100644 --- a/x-pack/plugins/infra/server/plugin.ts +++ b/x-pack/plugins/infra/server/plugin.ts @@ -83,7 +83,7 @@ export const config: PluginConfigDescriptor = { featureFlags: schema.object({ customThresholdAlertsEnabled: offeringBasedSchema({ traditional: schema.boolean({ defaultValue: false }), - serverless: schema.boolean({ defaultValue: true }), + serverless: schema.boolean({ defaultValue: false }), }), logsUIEnabled: offeringBasedSchema({ traditional: schema.boolean({ defaultValue: true }), @@ -97,6 +97,18 @@ export const config: PluginConfigDescriptor = { traditional: schema.boolean({ defaultValue: true }), serverless: schema.boolean({ defaultValue: false }), }), + inventoryThresholdAlertRuleEnabled: offeringBasedSchema({ + traditional: schema.boolean({ defaultValue: true }), + serverless: schema.boolean({ defaultValue: false }), + }), + metricThresholdAlertRuleEnabled: offeringBasedSchema({ + traditional: schema.boolean({ defaultValue: true }), + serverless: schema.boolean({ defaultValue: false }), + }), + logThresholdAlertRuleEnabled: offeringBasedSchema({ + traditional: schema.boolean({ defaultValue: true }), + serverless: schema.boolean({ defaultValue: false }), + }), }), }), deprecations: configDeprecations, @@ -238,7 +250,7 @@ export class InfraServerPlugin } initInfraServer(this.libs); - registerRuleTypes(plugins.alerting, this.libs, plugins.ml); + registerRuleTypes(plugins.alerting, this.libs, this.config); core.http.registerRouteHandlerContext( 'infra', diff --git a/x-pack/plugins/infra/server/routes/log_alerts/chart_preview_data.ts b/x-pack/plugins/infra/server/routes/log_alerts/chart_preview_data.ts index 05b4452dc5557..6c5aafe34fa81 100644 --- a/x-pack/plugins/infra/server/routes/log_alerts/chart_preview_data.ts +++ b/x-pack/plugins/infra/server/routes/log_alerts/chart_preview_data.ts @@ -16,8 +16,7 @@ export const initGetLogAlertsChartPreviewDataRoute = ({ framework, getStartServices, }: Pick) => { - // Replace with the corresponding logs alert rule feature flag - if (!framework.config.featureFlags.logsUIEnabled) { + if (!framework.config.featureFlags.logThresholdAlertRuleEnabled) { return; } diff --git a/x-pack/plugins/observability/common/custom_threshold_rule/types.ts b/x-pack/plugins/observability/common/custom_threshold_rule/types.ts index 66e058dfad8cf..dc5b434e0a7e9 100644 --- a/x-pack/plugins/observability/common/custom_threshold_rule/types.ts +++ b/x-pack/plugins/observability/common/custom_threshold_rule/types.ts @@ -166,7 +166,6 @@ export enum MetricsExplorerChartType { export enum InfraRuleType { MetricThreshold = 'metrics.alert.threshold', InventoryThreshold = 'metrics.alert.inventory.threshold', - Anomaly = 'metrics.alert.anomaly', } export enum AlertStates { diff --git a/x-pack/plugins/observability/server/lib/rules/custom_threshold/types.ts b/x-pack/plugins/observability/server/lib/rules/custom_threshold/types.ts index cc63f2cd688d3..719eddbd0e646 100644 --- a/x-pack/plugins/observability/server/lib/rules/custom_threshold/types.ts +++ b/x-pack/plugins/observability/server/lib/rules/custom_threshold/types.ts @@ -14,7 +14,6 @@ import { TimeUnitChar } from '../../../../common'; export enum InfraRuleType { MetricThreshold = 'metrics.alert.threshold', InventoryThreshold = 'metrics.alert.inventory.threshold', - Anomaly = 'metrics.alert.anomaly', } export enum AlertStates { diff --git a/x-pack/plugins/translations/translations/fr-FR.json b/x-pack/plugins/translations/translations/fr-FR.json index f86c6bcc9b74e..c0fd4bd97b876 100644 --- a/x-pack/plugins/translations/translations/fr-FR.json +++ b/x-pack/plugins/translations/translations/fr-FR.json @@ -18469,8 +18469,6 @@ "xpack.infra.metrics.alertFlyout.customEquationEditor.fieldLabel": "Champ {name}", "xpack.infra.metrics.alertFlyout.customEquationEditor.filterLabel": "Filtre KQL {name}", "xpack.infra.metrics.alertFlyout.ofExpression.helpTextDetail": "Vous ne trouvez pas un indicateur ? {documentationLink}.", - "xpack.infra.metrics.alerting.anomaly.summaryHigher": "{differential}x plus élevé", - "xpack.infra.metrics.alerting.anomaly.summaryLower": "{differential}x plus bas", "xpack.infra.metrics.alerting.threshold.errorAlertReason": "Elasticsearch a échoué lors de l'interrogation des données pour {metric}", "xpack.infra.metrics.alerting.threshold.firedAlertReason": "{metric} est {currentValue} dans les dernières {duration}{group}. Alerte lorsque {comparator} {threshold}.", "xpack.infra.metrics.alerting.threshold.noDataAlertReason": "{metric} n'a signalé aucune donnée dans les dernières {interval} {group}", @@ -19051,12 +19049,6 @@ "xpack.infra.metrics.alertFlyout.alertOnGroupDisappear": "Me prévenir si un groupe cesse de signaler les données", "xpack.infra.metrics.alertFlyout.alertOnNoData": "M'alerter s'il n'y a aucune donnée", "xpack.infra.metrics.alertFlyout.alertPerRedundantFilterError.docsLink": "les documents", - "xpack.infra.metrics.alertFlyout.anomalyFilterHelpText": "Limitez la portée de votre déclenchement d'alerte aux anomalies influencées par certains nœuds.", - "xpack.infra.metrics.alertFlyout.anomalyFilterHelpTextExample": "Par exemple : \"my-node-1\" ou \"my-node-*\"", - "xpack.infra.metrics.alertFlyout.anomalyInfluencerFilterPlaceholder": "Tout", - "xpack.infra.metrics.alertFlyout.anomalyJobs.memoryUsage": "Utilisation mémoire", - "xpack.infra.metrics.alertFlyout.anomalyJobs.networkIn": "Entrée réseau", - "xpack.infra.metrics.alertFlyout.anomalyJobs.networkOut": "Sortie réseau", "xpack.infra.metrics.alertFlyout.conditions": "Conditions", "xpack.infra.metrics.alertFlyout.createAlertPerHelpText": "Créer une alerte pour chaque valeur unique. Par exemple : \"host.id\" ou \"cloud.region\".", "xpack.infra.metrics.alertFlyout.createAlertPerText": "Regrouper les alertes par (facultatif)", @@ -19076,7 +19068,6 @@ "xpack.infra.metrics.alertFlyout.error.equation.invalidCharacters": "Le champ d'équation prend en charge uniquement les caractères suivants : A-Z, +, -, /, *, (, ), ?, !, &, :, |, >, <, =", "xpack.infra.metrics.alertFlyout.error.invalidFilterQuery": "La requête de filtre n'est pas valide.", "xpack.infra.metrics.alertFlyout.error.metricRequired": "L'indicateur est requis.", - "xpack.infra.metrics.alertFlyout.error.mlCapabilitiesRequired": "Impossible de créer une alerte d'anomalie lors que le Machine Learning est désactivé.", "xpack.infra.metrics.alertFlyout.error.thresholdRequired": "Le seuil est requis.", "xpack.infra.metrics.alertFlyout.error.thresholdTypeRequired": "Les seuils doivent contenir un nombre valide.", "xpack.infra.metrics.alertFlyout.error.timeRequred": "La taille de temps est requise.", @@ -19086,13 +19077,6 @@ "xpack.infra.metrics.alertFlyout.expression.metric.popoverTitle": "Indicateur", "xpack.infra.metrics.alertFlyout.expression.metric.selectFieldLabel": "Sélectionner un indicateur", "xpack.infra.metrics.alertFlyout.expression.metric.whenLabel": "Quand", - "xpack.infra.metrics.alertFlyout.expression.severityScore.criticalLabel": "Critique", - "xpack.infra.metrics.alertFlyout.expression.severityScore.descriptionLabel": "Le score de sévérité est supérieur à", - "xpack.infra.metrics.alertFlyout.expression.severityScore.majorLabel": "Majeur", - "xpack.infra.metrics.alertFlyout.expression.severityScore.minorLabel": "Mineur", - "xpack.infra.metrics.alertFlyout.expression.severityScore.popoverTitle": "Score de sévérité", - "xpack.infra.metrics.alertFlyout.expression.severityScore.warningLabel": "Avertissement", - "xpack.infra.metrics.alertFlyout.filterByNodeLabel": "Filtrer par nœud", "xpack.infra.metrics.alertFlyout.filterHelpText": "Utilisez une expression KQL pour limiter la portée de votre déclenchement d'alerte.", "xpack.infra.metrics.alertFlyout.filterLabel": "Filtre (facultatif)", "xpack.infra.metrics.alertFlyout.groupDisappearHelpText": "Activez cette option pour déclencher l’action si un groupe précédemment détecté cesse de signaler des résultats. Ce n’est pas recommandé pour les infrastructures à montée en charge dynamique qui peuvent rapidement lancer ou stopper des nœuds automatiquement.", @@ -19104,18 +19088,6 @@ "xpack.infra.metrics.alertFlyout.warningThreshold": "Avertissement", "xpack.infra.metrics.alerting.alertDetailUrlActionVariableDescription": "Lien vers l’affichage de résolution des problèmes d’alerte pour voir plus de contextes et de détails. La chaîne sera vide si server.publicBaseUrl n'est pas configuré.", "xpack.infra.metrics.alerting.alertStateActionVariableDescription": "État actuel de l'alerte", - "xpack.infra.metrics.alerting.anomaly.defaultActionMessage": "\\{\\{alertName\\}\\} est à l'état \\{\\{context.alertState\\}\\}\n\n\\{\\{context.metric\\}\\} était \\{\\{context.summary\\}\\} que la normale à \\{\\{context.timestamp\\}\\}\n\nValeur typique : \\{\\{context.typical\\}\\}\nValeur réelle : \\{\\{context.actual\\}\\}\n", - "xpack.infra.metrics.alerting.anomaly.fired": "Déclenché", - "xpack.infra.metrics.alerting.anomaly.memoryUsage": "Utilisation mémoire", - "xpack.infra.metrics.alerting.anomaly.networkIn": "Entrée réseau", - "xpack.infra.metrics.alerting.anomaly.networkOut": "Sortie réseau", - "xpack.infra.metrics.alerting.anomalyActualDescription": "Valeur réelle de l'indicateur monitoré au moment de l'anomalie.", - "xpack.infra.metrics.alerting.anomalyInfluencersDescription": "Liste des noms de nœuds ayant influencé l'anomalie.", - "xpack.infra.metrics.alerting.anomalyMetricDescription": "Nom de l'indicateur dans la condition spécifiée.", - "xpack.infra.metrics.alerting.anomalyScoreDescription": "Score de sévérité exact de l'anomalie détectée.", - "xpack.infra.metrics.alerting.anomalySummaryDescription": "Description de l'anomalie, par ex. \"2 x plus élevé.\"", - "xpack.infra.metrics.alerting.anomalyTimestampDescription": "Horodatage du moment où l'anomalie a été détectée.", - "xpack.infra.metrics.alerting.anomalyTypicalDescription": "Valeur typique de l'indicateur monitoré au moment de l'anomalie.", "xpack.infra.metrics.alerting.cloudActionVariableDescription": "Objet cloud défini par ECS s'il est disponible dans la source.", "xpack.infra.metrics.alerting.containerActionVariableDescription": "Objet conteneur défini par ECS s'il est disponible dans la source.", "xpack.infra.metrics.alerting.groupActionVariableDescription": "Nom des données de reporting des groupes. Pour accéder à chaque clé de groupe, utilisez context.groupByKeys.", @@ -19154,8 +19126,6 @@ "xpack.infra.metrics.alerting.valueActionVariableDescription": "Valeur de l'indicateur dans la condition spécifiée. Utilisation : (ctx.value.condition0, ctx.value.condition1, etc...).", "xpack.infra.metrics.alerting.viewInAppUrlActionVariableDescription": "Lien vers la source de l’alerte", "xpack.infra.metrics.alertName": "Seuil de l'indicateur", - "xpack.infra.metrics.anomaly.alertFlyout.alertDescription": "Alerte lorsque le score d'anomalie dépasse un seuil défini.", - "xpack.infra.metrics.anomaly.alertName": "Anomalie d'infrastructure", "xpack.infra.metrics.emptyViewDescription": "Essayez d'ajuster vos heures ou votre filtre.", "xpack.infra.metrics.emptyViewTitle": "Il n'y a aucune donnée à afficher.", "xpack.infra.metrics.expressionItems.components.closablePopoverTitle.closeLabel": "Fermer", diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index 4f59b7c0647fe..13fb9daea73e0 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -18483,8 +18483,6 @@ "xpack.infra.metrics.alertFlyout.customEquationEditor.fieldLabel": "フィールド{name}", "xpack.infra.metrics.alertFlyout.customEquationEditor.filterLabel": "KQLフィルター{name}", "xpack.infra.metrics.alertFlyout.ofExpression.helpTextDetail": "メトリックが見つからない場合は、{documentationLink}。", - "xpack.infra.metrics.alerting.anomaly.summaryHigher": "{differential}x高い", - "xpack.infra.metrics.alerting.anomaly.summaryLower": "{differential}x低い", "xpack.infra.metrics.alerting.threshold.errorAlertReason": "{metric}のデータのクエリを試行しているときに、Elasticsearchが失敗しました", "xpack.infra.metrics.alerting.threshold.firedAlertReason": "{metric}は最後の{duration}{group}の{currentValue}です。{comparator} {threshold}のときにアラートを通知します。", "xpack.infra.metrics.alerting.threshold.noDataAlertReason": "{metric}は最後の{interval}{group}でデータがないことを報告しました", @@ -19065,12 +19063,6 @@ "xpack.infra.metrics.alertFlyout.alertOnGroupDisappear": "グループがデータのレポートを停止する場合にアラートで通知する", "xpack.infra.metrics.alertFlyout.alertOnNoData": "データがない場合に通知する", "xpack.infra.metrics.alertFlyout.alertPerRedundantFilterError.docsLink": "ドキュメント", - "xpack.infra.metrics.alertFlyout.anomalyFilterHelpText": "アラートトリガーの範囲を、特定のノードの影響を受ける異常に制限します。", - "xpack.infra.metrics.alertFlyout.anomalyFilterHelpTextExample": "例:「my-node-1」または「my-node-*」", - "xpack.infra.metrics.alertFlyout.anomalyInfluencerFilterPlaceholder": "すべて", - "xpack.infra.metrics.alertFlyout.anomalyJobs.memoryUsage": "メモリー使用状況", - "xpack.infra.metrics.alertFlyout.anomalyJobs.networkIn": "内向きのネットワーク", - "xpack.infra.metrics.alertFlyout.anomalyJobs.networkOut": "外向きのネットワーク", "xpack.infra.metrics.alertFlyout.conditions": "条件", "xpack.infra.metrics.alertFlyout.createAlertPerHelpText": "すべての一意の値についてアラートを作成します。例:「host.id」または「cloud.region」。", "xpack.infra.metrics.alertFlyout.createAlertPerText": "アラートのグループ化条件(オプション)", @@ -19090,7 +19082,6 @@ "xpack.infra.metrics.alertFlyout.error.equation.invalidCharacters": "等式フィールドでは次の文字のみを使用できます:A-Z、+、-、/、*、(、)、?、!、&、:、|、>、<、=", "xpack.infra.metrics.alertFlyout.error.invalidFilterQuery": "フィルタークエリは無効です。", "xpack.infra.metrics.alertFlyout.error.metricRequired": "メトリックが必要です。", - "xpack.infra.metrics.alertFlyout.error.mlCapabilitiesRequired": "機械学習が無効なときには、異常アラートを作成できません。", "xpack.infra.metrics.alertFlyout.error.thresholdRequired": "しきい値が必要です。", "xpack.infra.metrics.alertFlyout.error.thresholdTypeRequired": "しきい値には有効な数値を含める必要があります。", "xpack.infra.metrics.alertFlyout.error.timeRequred": "ページサイズが必要です。", @@ -19100,13 +19091,6 @@ "xpack.infra.metrics.alertFlyout.expression.metric.popoverTitle": "メトリック", "xpack.infra.metrics.alertFlyout.expression.metric.selectFieldLabel": "メトリックを選択", "xpack.infra.metrics.alertFlyout.expression.metric.whenLabel": "タイミング", - "xpack.infra.metrics.alertFlyout.expression.severityScore.criticalLabel": "重大", - "xpack.infra.metrics.alertFlyout.expression.severityScore.descriptionLabel": "重要度スコアが超えています", - "xpack.infra.metrics.alertFlyout.expression.severityScore.majorLabel": "高", - "xpack.infra.metrics.alertFlyout.expression.severityScore.minorLabel": "低", - "xpack.infra.metrics.alertFlyout.expression.severityScore.popoverTitle": "重要度スコア", - "xpack.infra.metrics.alertFlyout.expression.severityScore.warningLabel": "警告", - "xpack.infra.metrics.alertFlyout.filterByNodeLabel": "ノードでフィルタリング", "xpack.infra.metrics.alertFlyout.filterHelpText": "KQL式を使用して、アラートトリガーの範囲を制限します。", "xpack.infra.metrics.alertFlyout.filterLabel": "フィルター(任意)", "xpack.infra.metrics.alertFlyout.groupDisappearHelpText": "以前に検出されたグループが結果を報告しなくなった場合は、これを有効にすると、アクションがトリガーされます。自動的に急速にノードを開始および停止することがある動的に拡張するインフラストラクチャーでは、これは推奨されません。", @@ -19118,18 +19102,6 @@ "xpack.infra.metrics.alertFlyout.warningThreshold": "警告", "xpack.infra.metrics.alerting.alertDetailUrlActionVariableDescription": "アラートトラブルシューティングビューにリンクして、さらに詳しい状況や詳細を確認できます。server.publicBaseUrlが構成されていない場合は、空の文字列になります。", "xpack.infra.metrics.alerting.alertStateActionVariableDescription": "現在のアラートの状態", - "xpack.infra.metrics.alerting.anomaly.defaultActionMessage": "\\{\\{alertName\\}\\}は\\{\\{context.alertState\\}\\}の状態です\n\n\\{\\{context.metric\\}\\}は\\{\\{context.timestamp\\}\\}で標準を超える\\{\\{context.summary\\}\\}でした\n\n標準の値:\\{\\{context.typical\\}\\}\n実際の値:\\{\\{context.actual\\}\\}\n", - "xpack.infra.metrics.alerting.anomaly.fired": "実行", - "xpack.infra.metrics.alerting.anomaly.memoryUsage": "メモリー使用状況", - "xpack.infra.metrics.alerting.anomaly.networkIn": "内向きのネットワーク", - "xpack.infra.metrics.alerting.anomaly.networkOut": "外向きのネットワーク", - "xpack.infra.metrics.alerting.anomalyActualDescription": "異常時に監視されたメトリックの実際の値。", - "xpack.infra.metrics.alerting.anomalyInfluencersDescription": "異常に影響したノード名のリスト。", - "xpack.infra.metrics.alerting.anomalyMetricDescription": "指定された条件のメトリック名。", - "xpack.infra.metrics.alerting.anomalyScoreDescription": "検出された異常の正確な重要度スコア。", - "xpack.infra.metrics.alerting.anomalySummaryDescription": "異常の説明。例:「2x高い」", - "xpack.infra.metrics.alerting.anomalyTimestampDescription": "異常が検出された時点のタイムスタンプ。", - "xpack.infra.metrics.alerting.anomalyTypicalDescription": "異常時に監視されたメトリックの標準の値。", "xpack.infra.metrics.alerting.cloudActionVariableDescription": "ソースで使用可能な場合に、ECSで定義されたクラウドオブジェクト。", "xpack.infra.metrics.alerting.containerActionVariableDescription": "ソースで使用可能な場合に、ECSで定義されたコンテナーオブジェクト。", "xpack.infra.metrics.alerting.groupActionVariableDescription": "データを報告するグループの名前。各グループキーにアクセスするには、context.groupByKeysを使用します。", @@ -19168,8 +19140,6 @@ "xpack.infra.metrics.alerting.valueActionVariableDescription": "指定された条件のメトリックの値。使用方法:(ctx.value.condition0、ctx.value.condition1など)。", "xpack.infra.metrics.alerting.viewInAppUrlActionVariableDescription": "アラートソースにリンク", "xpack.infra.metrics.alertName": "メトリックしきい値", - "xpack.infra.metrics.anomaly.alertFlyout.alertDescription": "異常スコアが定義されたしきい値を超えたときにアラートを発行します。", - "xpack.infra.metrics.anomaly.alertName": "インフラストラクチャーの異常", "xpack.infra.metrics.emptyViewDescription": "期間またはフィルターを調整してみてください。", "xpack.infra.metrics.emptyViewTitle": "表示するデータがありません。", "xpack.infra.metrics.expressionItems.components.closablePopoverTitle.closeLabel": "閉じる", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index 3c360525d42f3..10c4246523858 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -18483,8 +18483,6 @@ "xpack.infra.metrics.alertFlyout.customEquationEditor.fieldLabel": "字段 {name}", "xpack.infra.metrics.alertFlyout.customEquationEditor.filterLabel": "KQL 筛选 {name}", "xpack.infra.metrics.alertFlyout.ofExpression.helpTextDetail": "找不到指标?{documentationLink}。", - "xpack.infra.metrics.alerting.anomaly.summaryHigher": "高 {differential} 倍", - "xpack.infra.metrics.alerting.anomaly.summaryLower": "低 {differential} 倍", "xpack.infra.metrics.alerting.threshold.errorAlertReason": "Elasticsearch 尝试查询 {metric} 的数据时出现故障", "xpack.infra.metrics.alerting.threshold.firedAlertReason": "过去 {duration}{group},{metric} 为 {currentValue}。{comparator} {threshold} 时告警。", "xpack.infra.metrics.alerting.threshold.noDataAlertReason": "对于 {group},{metric} 在过去 {interval}中未报告数据", @@ -19065,12 +19063,6 @@ "xpack.infra.metrics.alertFlyout.alertOnGroupDisappear": "组停止报告数据时提醒我", "xpack.infra.metrics.alertFlyout.alertOnNoData": "没数据时提醒我", "xpack.infra.metrics.alertFlyout.alertPerRedundantFilterError.docsLink": "文档", - "xpack.infra.metrics.alertFlyout.anomalyFilterHelpText": "将告警触发的范围限定在特定节点影响的异常。", - "xpack.infra.metrics.alertFlyout.anomalyFilterHelpTextExample": "例如:“my-node-1”或“my-node-*”", - "xpack.infra.metrics.alertFlyout.anomalyInfluencerFilterPlaceholder": "所有内容", - "xpack.infra.metrics.alertFlyout.anomalyJobs.memoryUsage": "内存使用", - "xpack.infra.metrics.alertFlyout.anomalyJobs.networkIn": "网络传入", - "xpack.infra.metrics.alertFlyout.anomalyJobs.networkOut": "网络传出", "xpack.infra.metrics.alertFlyout.conditions": "条件", "xpack.infra.metrics.alertFlyout.createAlertPerHelpText": "为每个唯一值创建告警。例如:“host.id”或“cloud.region”。", "xpack.infra.metrics.alertFlyout.createAlertPerText": "告警分组依据(可选)", @@ -19090,7 +19082,6 @@ "xpack.infra.metrics.alertFlyout.error.equation.invalidCharacters": "方程字段仅支持以下字符:A-Z、+、-、/、*、(、)、?、!、&、:、|、>、<、=", "xpack.infra.metrics.alertFlyout.error.invalidFilterQuery": "筛选查询无效。", "xpack.infra.metrics.alertFlyout.error.metricRequired": "“指标”必填。", - "xpack.infra.metrics.alertFlyout.error.mlCapabilitiesRequired": "禁用 Machine Learning 时,无法创建异常告警。", "xpack.infra.metrics.alertFlyout.error.thresholdRequired": "“阈值”必填。", "xpack.infra.metrics.alertFlyout.error.thresholdTypeRequired": "阈值必须包含有效数字。", "xpack.infra.metrics.alertFlyout.error.timeRequred": "“时间大小”必填。", @@ -19100,13 +19091,6 @@ "xpack.infra.metrics.alertFlyout.expression.metric.popoverTitle": "指标", "xpack.infra.metrics.alertFlyout.expression.metric.selectFieldLabel": "选择指标", "xpack.infra.metrics.alertFlyout.expression.metric.whenLabel": "当", - "xpack.infra.metrics.alertFlyout.expression.severityScore.criticalLabel": "紧急", - "xpack.infra.metrics.alertFlyout.expression.severityScore.descriptionLabel": "严重性分数高于", - "xpack.infra.metrics.alertFlyout.expression.severityScore.majorLabel": "重大", - "xpack.infra.metrics.alertFlyout.expression.severityScore.minorLabel": "轻微", - "xpack.infra.metrics.alertFlyout.expression.severityScore.popoverTitle": "严重性分数", - "xpack.infra.metrics.alertFlyout.expression.severityScore.warningLabel": "警告", - "xpack.infra.metrics.alertFlyout.filterByNodeLabel": "按节点筛选", "xpack.infra.metrics.alertFlyout.filterHelpText": "使用 KQL 表达式限制告警触发的范围。", "xpack.infra.metrics.alertFlyout.filterLabel": "筛选(可选)", "xpack.infra.metrics.alertFlyout.groupDisappearHelpText": "启用此选项可在之前检测的组开始不报告任何数据时触发操作。不建议将此选项用于可能会快速自动启动和停止节点的动态扩展基础架构。", @@ -19118,18 +19102,6 @@ "xpack.infra.metrics.alertFlyout.warningThreshold": "警告", "xpack.infra.metrics.alerting.alertDetailUrlActionVariableDescription": "链接到告警故障排除视图获取进一步的上下文和详情。如果未配置 server.publicBaseUrl,这将为空字符串。", "xpack.infra.metrics.alerting.alertStateActionVariableDescription": "告警的当前状态", - "xpack.infra.metrics.alerting.anomaly.defaultActionMessage": "\\{\\{alertName\\}\\} 处于 \\{\\{context.alertState\\}\\} 状态\n\n\\{\\{context.metric\\}\\} 在 \\{\\{context.timestamp\\}\\}比正常\\{\\{context.summary\\}\\}\n\n典型值:\\{\\{context.typical\\}\\}\n实际值:\\{\\{context.actual\\}\\}\n", - "xpack.infra.metrics.alerting.anomaly.fired": "已触发", - "xpack.infra.metrics.alerting.anomaly.memoryUsage": "内存使用", - "xpack.infra.metrics.alerting.anomaly.networkIn": "网络传入", - "xpack.infra.metrics.alerting.anomaly.networkOut": "网络传出", - "xpack.infra.metrics.alerting.anomalyActualDescription": "在发生异常时受监测指标的实际值。", - "xpack.infra.metrics.alerting.anomalyInfluencersDescription": "影响异常的节点名称列表。", - "xpack.infra.metrics.alerting.anomalyMetricDescription": "指定条件中的指标名称。", - "xpack.infra.metrics.alerting.anomalyScoreDescription": "检测到的异常的确切严重性分数。", - "xpack.infra.metrics.alerting.anomalySummaryDescription": "异常的描述,例如“高 2 倍”。", - "xpack.infra.metrics.alerting.anomalyTimestampDescription": "检测到异常时的时间戳。", - "xpack.infra.metrics.alerting.anomalyTypicalDescription": "在发生异常时受监测指标的典型值。", "xpack.infra.metrics.alerting.cloudActionVariableDescription": "ECS 定义的云对象(如果在源中可用)。", "xpack.infra.metrics.alerting.containerActionVariableDescription": "ECS 定义的容器对象(如果在源中可用)。", "xpack.infra.metrics.alerting.groupActionVariableDescription": "报告数据的组名称。为了访问每个组密钥,请使用 context.groupByKeys。", @@ -19168,8 +19140,6 @@ "xpack.infra.metrics.alerting.valueActionVariableDescription": "指定条件中的指标值。用法:(ctx.value.condition0, ctx.value.condition1, 诸如此类)。", "xpack.infra.metrics.alerting.viewInAppUrlActionVariableDescription": "链接到告警源", "xpack.infra.metrics.alertName": "指标阈值", - "xpack.infra.metrics.anomaly.alertFlyout.alertDescription": "当异常分数超过定义的阈值时告警。", - "xpack.infra.metrics.anomaly.alertName": "基础架构异常", "xpack.infra.metrics.emptyViewDescription": "尝试调整您的时间或筛选。", "xpack.infra.metrics.emptyViewTitle": "没有可显示的数据。", "xpack.infra.metrics.expressionItems.components.closablePopoverTitle.closeLabel": "关闭", diff --git a/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/group4/check_registered_rule_types.ts b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/group4/check_registered_rule_types.ts index c31c7c8027495..9b68de616ee2f 100644 --- a/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/group4/check_registered_rule_types.ts +++ b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/group4/check_registered_rule_types.ts @@ -46,7 +46,6 @@ export default function createRegisteredRuleTypeTests({ getService }: FtrProvide 'siem.newTermsRule', 'siem.notifications', 'slo.rules.burnRate', - 'metrics.alert.anomaly', 'logs.alert.document.count', 'metrics.alert.inventory.threshold', 'metrics.alert.threshold', diff --git a/x-pack/test/plugin_api_integration/test_suites/task_manager/check_registered_task_types.ts b/x-pack/test/plugin_api_integration/test_suites/task_manager/check_registered_task_types.ts index 17154d9a254c4..a8ab29da16979 100644 --- a/x-pack/test/plugin_api_integration/test_suites/task_manager/check_registered_task_types.ts +++ b/x-pack/test/plugin_api_integration/test_suites/task_manager/check_registered_task_types.ts @@ -81,7 +81,6 @@ export default function ({ getService }: FtrProviderContext) { 'alerting:apm.transaction_duration', 'alerting:apm.transaction_error_rate', 'alerting:logs.alert.document.count', - 'alerting:metrics.alert.anomaly', 'alerting:metrics.alert.inventory.threshold', 'alerting:metrics.alert.threshold', 'alerting:monitoring_alert_cluster_health', diff --git a/x-pack/test_serverless/functional/test_suites/observability/config.ts b/x-pack/test_serverless/functional/test_suites/observability/config.ts index 57e6894e3b892..bdfff52de245f 100644 --- a/x-pack/test_serverless/functional/test_suites/observability/config.ts +++ b/x-pack/test_serverless/functional/test_suites/observability/config.ts @@ -18,5 +18,9 @@ export default createTestConfig({ // include settings from project controller // https://github.com/elastic/project-controller/blob/main/internal/project/observability/config/elasticsearch.yml esServerArgs: ['xpack.ml.dfa.enabled=false', 'xpack.ml.nlp.enabled=false'], - kbnServerArgs: ['--xpack.infra.enabled=true'], + kbnServerArgs: [ + '--xpack.infra.enabled=true', + '--xpack.infra.featureFlags.customThresholdAlertsEnabled=true', + '--xpack.observability.unsafe.thresholdRule.enabled=true', + ], }); From f275655c6325cc7f86f3288c15318ae6918d2c76 Mon Sep 17 00:00:00 2001 From: Philippe Oberti Date: Thu, 12 Oct 2023 08:44:19 -0500 Subject: [PATCH 51/79] [Security Solution] replace json tab component with JsonCodeEditor from the unifiedDocViewer plugin (#168297) --- x-pack/plugins/security_solution/kibana.jsonc | 3 +- .../right/components/header_title.test.tsx | 33 +++++++- .../flyout/right/components/header_title.tsx | 28 ++++++- .../right/components/share_button.test.tsx | 60 -------------- .../flyout/right/components/share_button.tsx | 61 -------------- .../flyout/right/tabs/json_tab.test.tsx | 49 ++++++++--- .../public/flyout/right/tabs/json_tab.tsx | 74 ++++++++++++++++- .../public/flyout/right/tabs/test_ids.ts | 3 + .../components/copy_to_clipboard.test.tsx | 72 +++++++++++++++++ .../shared/components/copy_to_clipboard.tsx | 81 +++++++++++++++++++ .../plugins/security_solution/tsconfig.json | 3 +- 11 files changed, 322 insertions(+), 145 deletions(-) delete mode 100644 x-pack/plugins/security_solution/public/flyout/right/components/share_button.test.tsx delete mode 100644 x-pack/plugins/security_solution/public/flyout/right/components/share_button.tsx create mode 100644 x-pack/plugins/security_solution/public/flyout/shared/components/copy_to_clipboard.test.tsx create mode 100644 x-pack/plugins/security_solution/public/flyout/shared/components/copy_to_clipboard.tsx diff --git a/x-pack/plugins/security_solution/kibana.jsonc b/x-pack/plugins/security_solution/kibana.jsonc index bbb4b4eb20432..70f03ded9314c 100644 --- a/x-pack/plugins/security_solution/kibana.jsonc +++ b/x-pack/plugins/security_solution/kibana.jsonc @@ -53,7 +53,8 @@ "discover", "notifications", "savedObjects", - "savedSearch" + "savedSearch", + "unifiedDocViewer", ], "optionalPlugins": [ "cloudExperiments", diff --git a/x-pack/plugins/security_solution/public/flyout/right/components/header_title.test.tsx b/x-pack/plugins/security_solution/public/flyout/right/components/header_title.test.tsx index 104d838e9499c..0907bb44af16d 100644 --- a/x-pack/plugins/security_solution/public/flyout/right/components/header_title.test.tsx +++ b/x-pack/plugins/security_solution/public/flyout/right/components/header_title.test.tsx @@ -6,8 +6,9 @@ */ import React from 'react'; -import { render } from '@testing-library/react'; +import { render, fireEvent } from '@testing-library/react'; import { ExpandableFlyoutContext } from '@kbn/expandable-flyout/src/context'; +import { copyToClipboard } from '@elastic/eui'; import { RightPanelContext } from '../context'; import { CHAT_BUTTON_TEST_ID, @@ -24,6 +25,7 @@ import { mockDataFormattedForFieldBrowser } from '../../shared/mocks/mock_data_f import { useAssistant } from '../hooks/use_assistant'; import { TestProvidersComponent } from '../../../common/mock'; import { useGetAlertDetailsFlyoutLink } from '../../../timelines/components/side_panel/event_details/use_get_alert_details_flyout_link'; +import { FLYOUT_URL_PARAM } from '../../shared/hooks/url/use_sync_flyout_state_with_url'; jest.mock('../../../common/lib/kibana'); jest.mock('../hooks/use_assistant'); @@ -34,6 +36,13 @@ jest.mock( moment.suppressDeprecationWarnings = true; moment.tz.setDefault('UTC'); +jest.mock('@elastic/eui', () => ({ + ...jest.requireActual('@elastic/eui'), + copyToClipboard: jest.fn(), + EuiCopy: jest.fn(({ children: functionAsChild }) => functionAsChild(jest.fn())), +})); + +const alertUrl = 'https://example.com/alert'; const dateFormat = 'MMM D, YYYY @ HH:mm:ss.SSS'; const flyoutContextValue = {} as unknown as ExpandableFlyoutContext; const mockContextValue = { @@ -57,7 +66,7 @@ describe('', () => { jest.mocked(useDateFormat).mockImplementation(() => dateFormat); jest.mocked(useTimeZone).mockImplementation(() => 'UTC'); jest.mocked(useAssistant).mockReturnValue({ showAssistant: true, promptContextId: '' }); - jest.mocked(useGetAlertDetailsFlyoutLink).mockReturnValue('url'); + jest.mocked(useGetAlertDetailsFlyoutLink).mockReturnValue(alertUrl); }); it('should render component', () => { @@ -74,10 +83,26 @@ describe('', () => { expect(getByTestId(FLYOUT_HEADER_TITLE_TEST_ID)).toHaveTextContent('rule-name'); }); - it('should render share button in the title', () => { + it('should render share button in the title and copy the the value to clipboard', () => { + const syncedFlyoutState = 'flyoutState'; + const query = `?${FLYOUT_URL_PARAM}=${syncedFlyoutState}`; + + Object.defineProperty(window, 'location', { + value: { + search: query, + }, + }); + const { getByTestId } = renderHeader(mockContextValue); - expect(getByTestId(SHARE_BUTTON_TEST_ID)).toBeInTheDocument(); + const shareButton = getByTestId(SHARE_BUTTON_TEST_ID); + expect(shareButton).toBeInTheDocument(); + + fireEvent.click(shareButton); + + expect(copyToClipboard).toHaveBeenCalledWith( + `${alertUrl}&${FLYOUT_URL_PARAM}=${syncedFlyoutState}` + ); }); it('should not render share button in the title if alert is missing url info', () => { diff --git a/x-pack/plugins/security_solution/public/flyout/right/components/header_title.tsx b/x-pack/plugins/security_solution/public/flyout/right/components/header_title.tsx index cd0190e63267f..518c5cfd984f1 100644 --- a/x-pack/plugins/security_solution/public/flyout/right/components/header_title.tsx +++ b/x-pack/plugins/security_solution/public/flyout/right/components/header_title.tsx @@ -12,6 +12,9 @@ import { EuiFlexGroup, EuiFlexItem, EuiSpacer, EuiTitle } from '@elastic/eui'; import { isEmpty } from 'lodash'; import { css } from '@emotion/react'; import { FormattedMessage } from '@kbn/i18n-react'; +import { i18n } from '@kbn/i18n'; +import { FLYOUT_URL_PARAM } from '../../shared/hooks/url/use_sync_flyout_state_with_url'; +import { CopyToClipboard } from '../../shared/components/copy_to_clipboard'; import { useGetAlertDetailsFlyoutLink } from '../../../timelines/components/side_panel/event_details/use_get_alert_details_flyout_link'; import { DocumentStatus } from './status'; import { useAssistant } from '../hooks/use_assistant'; @@ -24,8 +27,7 @@ import { RiskScore } from './risk_score'; import { useBasicDataFromDetailsData } from '../../../timelines/components/side_panel/event_details/helpers'; import { useRightPanelContext } from '../context'; import { PreferenceFormattedDate } from '../../../common/components/formatted_date'; -import { FLYOUT_HEADER_TITLE_TEST_ID } from './test_ids'; -import { ShareButton } from './share_button'; +import { FLYOUT_HEADER_TITLE_TEST_ID, SHARE_BUTTON_TEST_ID } from './test_ids'; export interface HeaderTitleProps { /** @@ -79,7 +81,27 @@ export const HeaderTitle: VFC = memo(({ flyoutIsExpandable }) )} {showShareAlertButton && ( - + { + const query = new URLSearchParams(window.location.search); + return `${value}&${FLYOUT_URL_PARAM}=${query.get(FLYOUT_URL_PARAM)}`; + }} + text={ + + } + iconType={'share'} + ariaLabel={i18n.translate( + 'xpack.securitySolution.flyout.right.header.shareButtonAriaLabel', + { + defaultMessage: 'Share Alert', + } + )} + data-test-subj={SHARE_BUTTON_TEST_ID} + /> )} diff --git a/x-pack/plugins/security_solution/public/flyout/right/components/share_button.test.tsx b/x-pack/plugins/security_solution/public/flyout/right/components/share_button.test.tsx deleted file mode 100644 index dccea9feb0d84..0000000000000 --- a/x-pack/plugins/security_solution/public/flyout/right/components/share_button.test.tsx +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { __IntlProvider as IntlProvider } from '@kbn/i18n-react'; -import { render, screen, fireEvent } from '@testing-library/react'; -import { copyToClipboard } from '@elastic/eui'; -import { ShareButton } from './share_button'; -import React from 'react'; -import { SHARE_BUTTON_TEST_ID } from './test_ids'; -import { FLYOUT_URL_PARAM } from '../../shared/hooks/url/use_sync_flyout_state_with_url'; - -jest.mock('@elastic/eui', () => ({ - ...jest.requireActual('@elastic/eui'), - copyToClipboard: jest.fn(), - EuiCopy: jest.fn(({ children: functionAsChild }) => functionAsChild(jest.fn())), -})); - -const alertUrl = 'https://example.com/alert'; - -const renderShareButton = () => - render( - - - - ); - -describe('ShareButton', () => { - beforeEach(() => { - jest.clearAllMocks(); - }); - - it('renders the share button', () => { - renderShareButton(); - - expect(screen.getByTestId(SHARE_BUTTON_TEST_ID)).toBeInTheDocument(); - }); - - it('copies the alert URL to clipboard', () => { - const syncedFlyoutState = 'flyoutState'; - const query = `?${FLYOUT_URL_PARAM}=${syncedFlyoutState}`; - - Object.defineProperty(window, 'location', { - value: { - search: query, - }, - }); - - renderShareButton(); - - fireEvent.click(screen.getByTestId(SHARE_BUTTON_TEST_ID)); - - expect(copyToClipboard).toHaveBeenCalledWith( - `${alertUrl}&${FLYOUT_URL_PARAM}=${syncedFlyoutState}` - ); - }); -}); diff --git a/x-pack/plugins/security_solution/public/flyout/right/components/share_button.tsx b/x-pack/plugins/security_solution/public/flyout/right/components/share_button.tsx deleted file mode 100644 index 4c5e5a4507c38..0000000000000 --- a/x-pack/plugins/security_solution/public/flyout/right/components/share_button.tsx +++ /dev/null @@ -1,61 +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 { copyToClipboard, EuiButtonEmpty, EuiCopy } from '@elastic/eui'; -import type { FC } from 'react'; -import React from 'react'; -import { FormattedMessage } from '@kbn/i18n-react'; -import { i18n } from '@kbn/i18n'; -import { FLYOUT_URL_PARAM } from '../../shared/hooks/url/use_sync_flyout_state_with_url'; -import { SHARE_BUTTON_TEST_ID } from './test_ids'; - -interface ShareButtonProps { - /** - * Url retrieved from the kibana.alert.url field of the document - */ - alertUrl: string; -} - -/** - * Puts alertUrl to user's clipboard. If current query string contains synced flyout state, - * it will be appended to the base alertUrl - */ -export const ShareButton: FC = ({ alertUrl }) => { - return ( - - {(copy) => ( - { - // NOTE: currently, it is not possible to have textToCopy computed dynamically. - // so, we are calling copy() here to trigger the ui tooltip, and then override the link manually - copy(); - const query = new URLSearchParams(window.location.search); - const alertDetailsLink = `${alertUrl}&${FLYOUT_URL_PARAM}=${query.get( - FLYOUT_URL_PARAM - )}`; - copyToClipboard(alertDetailsLink); - }} - iconType="share" - data-test-subj={SHARE_BUTTON_TEST_ID} - aria-label={i18n.translate( - 'xpack.securitySolution.flyout.right.header.shareButtonAriaLabel', - { - defaultMessage: 'Share Alert', - } - )} - > - - - )} - - ); -}; - -ShareButton.displayName = 'ShareButton'; diff --git a/x-pack/plugins/security_solution/public/flyout/right/tabs/json_tab.test.tsx b/x-pack/plugins/security_solution/public/flyout/right/tabs/json_tab.test.tsx index dac048913c49b..81eefcf2b3a3a 100644 --- a/x-pack/plugins/security_solution/public/flyout/right/tabs/json_tab.test.tsx +++ b/x-pack/plugins/security_solution/public/flyout/right/tabs/json_tab.test.tsx @@ -6,25 +6,50 @@ */ import React from 'react'; -import { render } from '@testing-library/react'; +import { render, fireEvent } from '@testing-library/react'; +import { __IntlProvider as IntlProvider } from '@kbn/i18n-react'; +import { copyToClipboard } from '@elastic/eui'; import { RightPanelContext } from '../context'; import { JsonTab } from './json_tab'; -import { JSON_TAB_CONTENT_TEST_ID } from './test_ids'; +import { JSON_TAB_CONTENT_TEST_ID, JSON_TAB_COPY_TO_CLIPBOARD_BUTTON_TEST_ID } from './test_ids'; -describe('', () => { - it('should render code block component', () => { - const contextValue = { - searchHit: { - some_field: 'some_value', - }, - } as unknown as RightPanelContext; - - const { getByTestId } = render( +jest.mock('@elastic/eui', () => ({ + ...jest.requireActual('@elastic/eui'), + copyToClipboard: jest.fn(), + EuiCopy: jest.fn(({ children: functionAsChild }) => functionAsChild(jest.fn())), +})); + +const searchHit = { + some_field: 'some_value', +}; +const contextValue = { + searchHit, +} as unknown as RightPanelContext; + +const renderJsonTab = () => + render( + - ); + + ); + +describe('', () => { + it('should render json code editor component', () => { + const { getByTestId } = renderJsonTab(); expect(getByTestId(JSON_TAB_CONTENT_TEST_ID)).toBeInTheDocument(); }); + + it('should copy to clipboard', () => { + const { getByTestId } = renderJsonTab(); + + const copyToClipboardButton = getByTestId(JSON_TAB_COPY_TO_CLIPBOARD_BUTTON_TEST_ID); + expect(copyToClipboardButton).toBeInTheDocument(); + + fireEvent.click(copyToClipboardButton); + + expect(copyToClipboard).toHaveBeenCalledWith(JSON.stringify(searchHit, null, 2)); + }); }); diff --git a/x-pack/plugins/security_solution/public/flyout/right/tabs/json_tab.tsx b/x-pack/plugins/security_solution/public/flyout/right/tabs/json_tab.tsx index b49bbca6f5705..a00267b0132d9 100644 --- a/x-pack/plugins/security_solution/public/flyout/right/tabs/json_tab.tsx +++ b/x-pack/plugins/security_solution/public/flyout/right/tabs/json_tab.tsx @@ -6,17 +6,85 @@ */ import type { FC } from 'react'; -import React, { memo } from 'react'; -import { JsonView } from '../../../common/components/event_details/json_view'; +import React, { memo, useEffect, useRef, useState } from 'react'; +import { JsonCodeEditor } from '@kbn/unified-doc-viewer-plugin/public'; +import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; +import { FormattedMessage } from '@kbn/i18n-react'; +import { CopyToClipboard } from '../../shared/components/copy_to_clipboard'; +import { JSON_TAB_CONTENT_TEST_ID, JSON_TAB_COPY_TO_CLIPBOARD_BUTTON_TEST_ID } from './test_ids'; import { useRightPanelContext } from '../context'; +const FLYOUT_BODY_PADDING = 24; +const COPY_TO_CLIPBOARD_BUTTON_HEIGHT = 24; +const FLYOUT_FOOTER_HEIGHT = 72; + /** * Json view displayed in the document details expandable flyout right section */ export const JsonTab: FC = memo(() => { const { searchHit } = useRightPanelContext(); + const jsonValue = JSON.stringify(searchHit, null, 2); + + const flexGroupElement = useRef(null); + const [editorHeight, setEditorHeight] = useState(); + + useEffect(() => { + const topPosition = flexGroupElement?.current?.getBoundingClientRect().top || 0; + const height = + window.innerHeight - + topPosition - + COPY_TO_CLIPBOARD_BUTTON_HEIGHT - + FLYOUT_BODY_PADDING - + FLYOUT_FOOTER_HEIGHT; + + if (height === 0) { + return; + } + + setEditorHeight(height); + }, [setEditorHeight]); - return ; + return ( + + + + + + } + iconType={'copyClipboard'} + size={'xs'} + ariaLabel={i18n.translate( + 'xpack.securitySolution.flyout.right.jsonTab.copyToClipboardButtonAriaLabel', + { + defaultMessage: 'Copy to clipboard', + } + )} + data-test-subj={JSON_TAB_COPY_TO_CLIPBOARD_BUTTON_TEST_ID} + /> + + + + + } + height={editorHeight} + hasLineNumbers={true} + /> + + + ); }); JsonTab.displayName = 'JsonTab'; diff --git a/x-pack/plugins/security_solution/public/flyout/right/tabs/test_ids.ts b/x-pack/plugins/security_solution/public/flyout/right/tabs/test_ids.ts index 6930c18a28bdd..10a4d073c84f0 100644 --- a/x-pack/plugins/security_solution/public/flyout/right/tabs/test_ids.ts +++ b/x-pack/plugins/security_solution/public/flyout/right/tabs/test_ids.ts @@ -5,5 +5,8 @@ * 2.0. */ +import { PREFIX } from '../../shared/test_ids'; + export const TABLE_TAB_CONTENT_TEST_ID = 'event-fields-browser' as const; export const JSON_TAB_CONTENT_TEST_ID = 'jsonView' as const; +export const JSON_TAB_COPY_TO_CLIPBOARD_BUTTON_TEST_ID = `${PREFIX}JsonTabCopyToClipboard` as const; diff --git a/x-pack/plugins/security_solution/public/flyout/shared/components/copy_to_clipboard.test.tsx b/x-pack/plugins/security_solution/public/flyout/shared/components/copy_to_clipboard.test.tsx new file mode 100644 index 0000000000000..1f9c5976f18a9 --- /dev/null +++ b/x-pack/plugins/security_solution/public/flyout/shared/components/copy_to_clipboard.test.tsx @@ -0,0 +1,72 @@ +/* + * 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 { __IntlProvider as IntlProvider } from '@kbn/i18n-react'; +import { render } from '@testing-library/react'; +import React from 'react'; +import type { CopyToClipboardProps } from './copy_to_clipboard'; +import { CopyToClipboard } from './copy_to_clipboard'; + +jest.mock('@elastic/eui', () => ({ + ...jest.requireActual('@elastic/eui'), + copyToClipboard: jest.fn(), + EuiCopy: jest.fn(({ children: functionAsChild }) => functionAsChild(jest.fn())), +})); + +const renderShareButton = (props: CopyToClipboardProps) => + render( + + + + ); + +describe('ShareButton', () => { + beforeEach(() => { + jest.clearAllMocks(); + }); + + it('should render the copy to clipboard button', () => { + const text = 'text'; + + const props = { + rawValue: 'rawValue', + text: {text}, + iconType: 'iconType', + ariaLabel: 'ariaLabel', + 'data-test-subj': 'data-test-subj', + }; + const { getByTestId, getByText } = renderShareButton(props); + + const button = getByTestId('data-test-subj'); + + expect(button).toBeInTheDocument(); + expect(button).toHaveAttribute('aria-label', props.ariaLabel); + expect(button).toHaveAttribute('type', 'button'); + + expect(getByText(text)).toBeInTheDocument(); + }); + + it('should use modifier if provided', () => { + const modifiedFc = jest.fn(); + + const props = { + rawValue: 'rawValue', + modifier: modifiedFc, + text: {'text'}, + iconType: 'iconType', + ariaLabel: 'ariaLabel', + 'data-test-subj': 'data-test-subj', + }; + const { getByTestId } = renderShareButton(props); + + const button = getByTestId('data-test-subj'); + + button.click(); + + expect(modifiedFc).toHaveBeenCalledWith(props.rawValue); + }); +}); diff --git a/x-pack/plugins/security_solution/public/flyout/shared/components/copy_to_clipboard.tsx b/x-pack/plugins/security_solution/public/flyout/shared/components/copy_to_clipboard.tsx new file mode 100644 index 0000000000000..550930009c750 --- /dev/null +++ b/x-pack/plugins/security_solution/public/flyout/shared/components/copy_to_clipboard.tsx @@ -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 { copyToClipboard, EuiButtonEmpty, EuiCopy } from '@elastic/eui'; +import type { FC, ReactElement } from 'react'; +import React from 'react'; + +export interface CopyToClipboardProps { + /** + * Value to save to the clipboard + */ + rawValue: string; + /** + * Function to modify the raw value before saving to the clipboard + */ + modifier?: (rawValue: string) => string; + /** + * Button main text (next to icon) + */ + text: ReactElement; + /** + * Icon name (value coming from EUI) + */ + iconType: string; + /** + * Button size (values coming from EUI) + */ + size?: 's' | 'm' | 'xs'; + /** + * Aria label value for the button + */ + ariaLabel: string; + /** + Data test subject string for testing + */ + ['data-test-subj']?: string; +} + +/** + * Copy to clipboard component + */ +export const CopyToClipboard: FC = ({ + rawValue, + modifier, + text, + iconType, + size = 'm', + ariaLabel, + 'data-test-subj': dataTestSubj, +}) => { + return ( + + {(copy) => ( + { + copy(); + + if (modifier) { + const modifiedCopyValue = modifier(rawValue); + copyToClipboard(modifiedCopyValue); + } else { + copyToClipboard(rawValue); + } + }} + iconType={iconType} + size={size} + aria-label={ariaLabel} + data-test-subj={dataTestSubj} + > + {text} + + )} + + ); +}; + +CopyToClipboard.displayName = 'CopyToClipboard'; diff --git a/x-pack/plugins/security_solution/tsconfig.json b/x-pack/plugins/security_solution/tsconfig.json index de11312c2f60e..a31135f79356d 100644 --- a/x-pack/plugins/security_solution/tsconfig.json +++ b/x-pack/plugins/security_solution/tsconfig.json @@ -177,6 +177,7 @@ "@kbn/core-application-common", "@kbn/openapi-generator", "@kbn/es", - "@kbn/react-kibana-mount" + "@kbn/react-kibana-mount", + "@kbn/unified-doc-viewer-plugin" ] } From 7ddf0236edf54775bb2faa5f1dda632bcddedb1a Mon Sep 17 00:00:00 2001 From: Chris Cressman Date: Thu, 12 Oct 2023 10:32:12 -0400 Subject: [PATCH 52/79] [SERVERLESS] Fix doc links (#168652) ## Summary Several doc links point to URLs that will not exist when the docs go live. Update those doc links to point to pages that will be available. (Some of the doc links are not used in the UI, but I didn't try to address that here.) ### For maintainers - [x] This was checked for breaking API changes and was [labeled appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process) --- packages/kbn-doc-links/src/get_doc_links.ts | 30 ++++++++++----------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/packages/kbn-doc-links/src/get_doc_links.ts b/packages/kbn-doc-links/src/get_doc_links.ts index 20aaad5905ba3..c389fe02f06d8 100644 --- a/packages/kbn-doc-links/src/get_doc_links.ts +++ b/packages/kbn-doc-links/src/get_doc_links.ts @@ -830,24 +830,24 @@ export const getDocLinks = ({ kibanaBranch }: GetDocLinkOptions): DocLinks => { goGettingStarted: `${SERVERLESS_ELASTICSEARCH_DOCS}go-client-getting-started`, httpApis: `${SERVERLESS_ELASTICSEARCH_DOCS}http-apis`, httpApiReferences: `${SERVERLESS_ELASTICSEARCH_DOCS}http-apis`, - jsApiReference: `${SERVERLESS_ELASTICSEARCH_DOCS}nodejs-apis-getting-started`, - jsGettingStarted: `${SERVERLESS_ELASTICSEARCH_DOCS}nodejs-apis-getting-started`, - phpApiReference: `${SERVERLESS_ELASTICSEARCH_DOCS}php-apis-getting-started`, - phpGettingStarted: `${SERVERLESS_ELASTICSEARCH_DOCS}php-apis-getting-started`, - pythonApiReference: `${SERVERLESS_ELASTICSEARCH_DOCS}python-apis-getting-started`, - pythonGettingStarted: `${SERVERLESS_ELASTICSEARCH_DOCS}python-apis-getting-started`, - pythonReferences: `${SERVERLESS_ELASTICSEARCH_DOCS}python-apis-getting-started`, - rubyApiReference: `${SERVERLESS_ELASTICSEARCH_DOCS}ruby-apis-getting-started`, - rubyGettingStarted: `${SERVERLESS_ELASTICSEARCH_DOCS}ruby-apis-getting-started`, + jsApiReference: `${SERVERLESS_ELASTICSEARCH_DOCS}nodejs-client-getting-started`, + jsGettingStarted: `${SERVERLESS_ELASTICSEARCH_DOCS}nodejs-client-getting-started`, + phpApiReference: `${SERVERLESS_ELASTICSEARCH_DOCS}php-client-getting-started`, + phpGettingStarted: `${SERVERLESS_ELASTICSEARCH_DOCS}php-client-getting-started`, + pythonApiReference: `${SERVERLESS_ELASTICSEARCH_DOCS}python-client-getting-started`, + pythonGettingStarted: `${SERVERLESS_ELASTICSEARCH_DOCS}python-client-getting-started`, + pythonReferences: `${SERVERLESS_ELASTICSEARCH_DOCS}python-client-getting-started`, + rubyApiReference: `${SERVERLESS_ELASTICSEARCH_DOCS}ruby-client-getting-started`, + rubyGettingStarted: `${SERVERLESS_ELASTICSEARCH_DOCS}ruby-client-getting-started`, }, serverlessSearch: { integrations: `${SERVERLESS_ELASTICSEARCH_DOCS}ingest-your-data`, - integrationsLogstash: `${SERVERLESS_ELASTICSEARCH_DOCS}ingest-data-through-integrations-logstash`, - integrationsBeats: `${SERVERLESS_ELASTICSEARCH_DOCS}ingest-data-through-integrations-beats`, - integrationsConnectorClient: `${SERVERLESS_ELASTICSEARCH_DOCS}ingest-data-through-integrations-connector-client`, - gettingStartedExplore: `${SERVERLESS_ELASTICSEARCH_DOCS}get-started#explore`, - gettingStartedIngest: `${SERVERLESS_ELASTICSEARCH_DOCS}get-started#ingest`, - gettingStartedSearch: `${SERVERLESS_ELASTICSEARCH_DOCS}get-started#search`, + integrationsLogstash: `${SERVERLESS_ELASTICSEARCH_DOCS}ingest-data-through-logstash`, + integrationsBeats: `${SERVERLESS_ELASTICSEARCH_DOCS}ingest-data-through-beats`, + integrationsConnectorClient: `${SERVERLESS_ELASTICSEARCH_DOCS}ingest-your-data`, + gettingStartedExplore: `${SERVERLESS_ELASTICSEARCH_DOCS}get-started`, + gettingStartedIngest: `${SERVERLESS_ELASTICSEARCH_DOCS}get-started`, + gettingStartedSearch: `${SERVERLESS_ELASTICSEARCH_DOCS}get-started`, }, serverlessSecurity: { apiKeyPrivileges: `${SERVERLESS_DOCS}api-keys#restrict-privileges`, From 0bda7f3b7e38c1422a59988871c5c2580229a770 Mon Sep 17 00:00:00 2001 From: Cee Chen <549407+cee-chen@users.noreply.github.com> Date: Thu, 12 Oct 2023 07:41:54 -0700 Subject: [PATCH 53/79] [alerting_example] Migrate deprecated `EuiPage*` components (#168299) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary > Note: I strongly recommending [viewing the diff with whitespace changes turned off](https://github.com/elastic/kibana/pull/168300/files?w=1), as many of the "changes" are simply indentation changes. EUI will shortly be removing several deprecated `EuiPage*` components, and we're updating a few remaining Kibana usages of these deprecated components ahead of time. ⚠️ PLEASE NOTE: We have **not** QA'd these changes to ensure that the UI is 1:1 from before. We do not have the domain knowledge or time to spin up local instances of all plugins with deprecations, and ask that the CODEOWNING team pull down this branch and QA the affected page(s) locally to ensure the UI looks like the same as production. ⚠️ See https://github.com/elastic/kibana/issues/161872 for other similar tasks with more information about this effort. --- .../public/components/documentation.tsx | 57 ++++++++----------- 1 file changed, 25 insertions(+), 32 deletions(-) diff --git a/x-pack/examples/alerting_example/public/components/documentation.tsx b/x-pack/examples/alerting_example/public/components/documentation.tsx index 0fb989a306ac0..a49bed4193496 100644 --- a/x-pack/examples/alerting_example/public/components/documentation.tsx +++ b/x-pack/examples/alerting_example/public/components/documentation.tsx @@ -10,10 +10,7 @@ import React from 'react'; import { EuiText, EuiPageBody, - EuiPageContent_Deprecated as EuiPageContent, - EuiPageContentBody_Deprecated as EuiPageContentBody, - EuiPageContentHeader_Deprecated as EuiPageContentHeader, - EuiPageContentHeaderSection_Deprecated as EuiPageContentHeaderSection, + EuiPageSection, EuiPageHeader, EuiPageHeaderSection, EuiTitle, @@ -34,33 +31,29 @@ export const DocumentationPage = ( - - - - -

    Documentation links

    -
    -
    -
    - - -

    Plugin Structure

    -

    - This example solution has both `server` and a `public` plugins. The `server` handles - registration of example the RuleTypes, while the `public` handles creation of, and - navigation for, these rule types. -

    - - If you see a message about needing to enable the Transport Layer Security, start ES with{' '} - yarn es snapshot --ssl --license trial and Kibana with{' '} - yarn start --run-examples --ssl. If you running chrome on a mac, you may - need to type in thisisunsafe if you see the Certificate invalid screen with - no way to ‘proceed anyway’. - -
    - - -
    -
    + + + +

    Documentation links

    +
    +
    + +

    Plugin Structure

    +

    + This example solution has both `server` and a `public` plugins. The `server` handles + registration of example the RuleTypes, while the `public` handles creation of, and + navigation for, these rule types. +

    + + If you see a message about needing to enable the Transport Layer Security, start ES with{' '} + yarn es snapshot --ssl --license trial and Kibana with{' '} + yarn start --run-examples --ssl. If you running chrome on a mac, you may need + to type in thisisunsafe if you see the Certificate invalid screen with no way + to ‘proceed anyway’. + +
    + + +
    ); From 7a74c24d00ee2321211c1b894fb691325d5f9217 Mon Sep 17 00:00:00 2001 From: Brad White Date: Thu, 12 Oct 2023 11:48:24 -0600 Subject: [PATCH 54/79] skip flaky suite (#133470) --- .../server/integration_tests/cloud_preconfiguration.test.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/fleet/server/integration_tests/cloud_preconfiguration.test.ts b/x-pack/plugins/fleet/server/integration_tests/cloud_preconfiguration.test.ts index ae19383f37216..db7d0ce60f006 100644 --- a/x-pack/plugins/fleet/server/integration_tests/cloud_preconfiguration.test.ts +++ b/x-pack/plugins/fleet/server/integration_tests/cloud_preconfiguration.test.ts @@ -143,7 +143,8 @@ describe('Fleet preconfiguration reset', () => { expect(agentPolicies.saved_objects.find((so) => so.id === 'default-policy')).toBeDefined(); }); - it('Create correct .fleet-policies', async () => { + // FLAKY: https://github.com/elastic/kibana/issues/133470 + it.skip('Create correct .fleet-policies', async () => { const res = await kbnServer.coreStart.elasticsearch.client.asInternalUser.search({ index: AGENT_POLICY_INDEX, q: `policy_id:policy-elastic-agent-on-cloud`, From bc8f45f529264534c2a98b9209cb95cea166a5d8 Mon Sep 17 00:00:00 2001 From: Lisa Cawley Date: Thu, 12 Oct 2023 11:16:43 -0700 Subject: [PATCH 55/79] [DOCS] Fix cases link for notifications domain allowlist (#168656) --- docs/management/cases/manage-cases.asciidoc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/management/cases/manage-cases.asciidoc b/docs/management/cases/manage-cases.asciidoc index e3896423b3f13..1ebe9643d55c2 100644 --- a/docs/management/cases/manage-cases.asciidoc +++ b/docs/management/cases/manage-cases.asciidoc @@ -90,8 +90,7 @@ cases. For hosted {kib} on {ess}: -. Add the email addresses to the monitoring email allowlist. Follow the steps in -{cloud}/ec-watcher.html#ec-watcher-allowlist[Send alerts by email]. +. Add the email domains to the {cloud}/ec-organizations-notifications-domain-allowlist.html[notifications domain allowlist]. + -- You do not need to take any more steps to configure an email connector or update From f5caf787af8aa0136625523f0b12b57f43cb6ef2 Mon Sep 17 00:00:00 2001 From: Rachel Shen Date: Thu, 12 Oct 2023 13:32:32 -0600 Subject: [PATCH 56/79] [Reporting][Serverless] Make screenshotting in reporting plugin optional and disable in serverless (#168373) ## Summary Closes [#168379](https://github.com/elastic/kibana/issues/168379) ### After In logs for yarn serverless-es ```[2023-10-09T15:09:02.887-06:00][INFO ][plugins-service] Plugin "screenshotting" is disabled.``` ### 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 --- config/serverless.yml | 1 + x-pack/plugins/reporting/kibana.jsonc | 4 ++-- x-pack/plugins/reporting/server/core.ts | 6 +++--- .../reporting/server/export_types/common/export_type.ts | 2 +- .../plugins/reporting/server/export_types/png_v2/png_v2.ts | 2 +- .../server/export_types/printable_pdf/printable_pdf.ts | 2 +- .../export_types/printable_pdf_v2/printable_pdf_v2.ts | 2 +- .../reporting/server/routes/internal/diagnostic/browser.ts | 1 + x-pack/plugins/reporting/server/types.ts | 6 +++--- .../screenshotting/server/browsers/chromium/driver.test.ts | 1 + x-pack/plugins/screenshotting/server/config/schema.test.ts | 2 ++ x-pack/plugins/screenshotting/server/config/schema.ts | 6 +++++- .../plugins/screenshotting/server/screenshots/index.test.ts | 1 + .../screenshotting/server/screenshots/screenshots.test.ts | 1 + 14 files changed, 24 insertions(+), 13 deletions(-) diff --git a/config/serverless.yml b/config/serverless.yml index 282956932f412..30c4aff914a51 100644 --- a/config/serverless.yml +++ b/config/serverless.yml @@ -52,6 +52,7 @@ xpack.canvas.enabled: false xpack.cloud_integrations.data_migration.enabled: false data.search.sessions.enabled: false advanced_settings.enabled: false +xpack.screenshotting.enabled: false # Disable the browser-side functionality that depends on SecurityCheckupGetStateRoutes xpack.security.showInsecureClusterWarning: false diff --git a/x-pack/plugins/reporting/kibana.jsonc b/x-pack/plugins/reporting/kibana.jsonc index a02db938c9ec3..e89e750ebe98c 100644 --- a/x-pack/plugins/reporting/kibana.jsonc +++ b/x-pack/plugins/reporting/kibana.jsonc @@ -22,7 +22,6 @@ "uiActions", "taskManager", "embeddable", - "screenshotting", "screenshotMode", "share", "features" @@ -30,7 +29,8 @@ "optionalPlugins": [ "security", "spaces", - "usageCollection" + "usageCollection", + "screenshotting", ], "requiredBundles": [ "kibanaReact", diff --git a/x-pack/plugins/reporting/server/core.ts b/x-pack/plugins/reporting/server/core.ts index 453940f3cc914..c240d6d165704 100644 --- a/x-pack/plugins/reporting/server/core.ts +++ b/x-pack/plugins/reporting/server/core.ts @@ -78,7 +78,7 @@ export interface ReportingInternalStart { fieldFormats: FieldFormatsStart; licensing: LicensingPluginStart; logger: Logger; - screenshotting: ScreenshottingStart; + screenshotting?: ScreenshottingStart; security?: SecurityPluginStart; taskManager: TaskManagerStartContract; } @@ -134,7 +134,7 @@ export class ReportingCore { this.getContract = () => ({ usesUiCapabilities: () => config.roles.enabled === false, registerExportTypes: (id) => id, - getScreenshots: this.getScreenshots.bind(this), + getScreenshots: config.statefulSettings.enabled ? this.getScreenshots.bind(this) : undefined, getSpaceId: this.getSpaceId.bind(this), }); @@ -408,7 +408,7 @@ export class ReportingCore { ): Rx.Observable { return Rx.defer(() => this.getPluginStartDeps()).pipe( switchMap(({ screenshotting }) => { - return screenshotting.getScreenshots({ + return screenshotting!.getScreenshots({ ...options, urls: options.urls.map((url) => typeof url === 'string' diff --git a/x-pack/plugins/reporting/server/export_types/common/export_type.ts b/x-pack/plugins/reporting/server/export_types/common/export_type.ts index dd9ad3a5a20ab..96240863122d0 100644 --- a/x-pack/plugins/reporting/server/export_types/common/export_type.ts +++ b/x-pack/plugins/reporting/server/export_types/common/export_type.ts @@ -37,7 +37,7 @@ export interface BaseExportTypeStartDeps { savedObjects: SavedObjectsServiceStart; uiSettings: UiSettingsServiceStart; esClient: IClusterClient; - screenshotting: ScreenshottingStart; + screenshotting?: ScreenshottingStart; reporting: ReportingStart; } diff --git a/x-pack/plugins/reporting/server/export_types/png_v2/png_v2.ts b/x-pack/plugins/reporting/server/export_types/png_v2/png_v2.ts index ac297cfd8c02b..6afac5dacb4cb 100644 --- a/x-pack/plugins/reporting/server/export_types/png_v2/png_v2.ts +++ b/x-pack/plugins/reporting/server/export_types/png_v2/png_v2.ts @@ -104,7 +104,7 @@ export class PngExportType extends ExportType return generatePngObservable( () => - this.startDeps.reporting.getScreenshots({ + this.startDeps.reporting.getScreenshots!({ format: 'png', headers, layout: { ...payload.layout, id: 'preserve_layout' }, diff --git a/x-pack/plugins/reporting/server/export_types/printable_pdf/printable_pdf.ts b/x-pack/plugins/reporting/server/export_types/printable_pdf/printable_pdf.ts index 495a635370dc2..85e656642eb62 100644 --- a/x-pack/plugins/reporting/server/export_types/printable_pdf/printable_pdf.ts +++ b/x-pack/plugins/reporting/server/export_types/printable_pdf/printable_pdf.ts @@ -85,7 +85,7 @@ export class PdfV1ExportType extends ExportType - this.startDeps.reporting.getScreenshots({ + this.startDeps.reporting.getScreenshots!({ format: 'pdf', title, logo, diff --git a/x-pack/plugins/reporting/server/export_types/printable_pdf_v2/printable_pdf_v2.ts b/x-pack/plugins/reporting/server/export_types/printable_pdf_v2/printable_pdf_v2.ts index f673229a168ee..862d5908ddb3c 100644 --- a/x-pack/plugins/reporting/server/export_types/printable_pdf_v2/printable_pdf_v2.ts +++ b/x-pack/plugins/reporting/server/export_types/printable_pdf_v2/printable_pdf_v2.ts @@ -108,7 +108,7 @@ export class PdfExportType extends ExportType this.config, this.getServerInfo(), () => - this.startDeps.reporting.getScreenshots({ + this.startDeps.reporting.getScreenshots!({ format: 'pdf', title, logo, diff --git a/x-pack/plugins/reporting/server/routes/internal/diagnostic/browser.ts b/x-pack/plugins/reporting/server/routes/internal/diagnostic/browser.ts index 34c7583f9ef06..703dd5b24a97b 100644 --- a/x-pack/plugins/reporting/server/routes/internal/diagnostic/browser.ts +++ b/x-pack/plugins/reporting/server/routes/internal/diagnostic/browser.ts @@ -54,6 +54,7 @@ export const registerDiagnoseBrowser = (reporting: ReportingCore, logger: Logger const logsToHelpMap = logsToHelpMapFactory(docLinks); try { const { screenshotting } = await reporting.getPluginStartDeps(); + if (!screenshotting) throw new Error('Screenshotting is not enabled!'); const logs = await lastValueFrom(screenshotting.diagnose()); const knownIssues = Object.keys(logsToHelpMap) as Array; diff --git a/x-pack/plugins/reporting/server/types.ts b/x-pack/plugins/reporting/server/types.ts index da1e7f1f93037..d2ece5f1e2fab 100644 --- a/x-pack/plugins/reporting/server/types.ts +++ b/x-pack/plugins/reporting/server/types.ts @@ -41,7 +41,7 @@ import { ExportTypesRegistry } from './lib'; export interface ReportingSetup { registerExportTypes: ExportTypesRegistry['register']; getSpaceId: ReportingCore['getSpaceId']; - getScreenshots: ReportingCore['getScreenshots']; + getScreenshots?: ReportingCore['getScreenshots']; /** * Used to inform plugins if Reporting config is compatible with UI Capabilities / Application Sub-Feature Controls */ @@ -93,7 +93,7 @@ export type RunTaskFn = ( export interface ReportingSetupDeps { features: FeaturesPluginSetup; - screenshotMode: ScreenshotModePluginSetup; + screenshotMode?: ScreenshotModePluginSetup; security?: SecurityPluginSetup; spaces?: SpacesPluginSetup; taskManager: TaskManagerSetupContract; @@ -105,7 +105,7 @@ export interface ReportingStartDeps { discover: DiscoverServerPluginStart; fieldFormats: FieldFormatsStart; licensing: LicensingPluginStart; - screenshotting: ScreenshottingStart; + screenshotting?: ScreenshottingStart; security?: SecurityPluginStart; taskManager: TaskManagerStartContract; } diff --git a/x-pack/plugins/screenshotting/server/browsers/chromium/driver.test.ts b/x-pack/plugins/screenshotting/server/browsers/chromium/driver.test.ts index fb07eac64ed17..c9b9bbc9f8b03 100644 --- a/x-pack/plugins/screenshotting/server/browsers/chromium/driver.test.ts +++ b/x-pack/plugins/screenshotting/server/browsers/chromium/driver.test.ts @@ -26,6 +26,7 @@ describe('chromium driver', () => { mockLogger.get = () => mockLogger; mockConfig = { + enabled: true, networkPolicy: { enabled: false, rules: [], diff --git a/x-pack/plugins/screenshotting/server/config/schema.test.ts b/x-pack/plugins/screenshotting/server/config/schema.test.ts index bb68e8e938ace..a3a141429b4db 100644 --- a/x-pack/plugins/screenshotting/server/config/schema.test.ts +++ b/x-pack/plugins/screenshotting/server/config/schema.test.ts @@ -27,6 +27,7 @@ describe('ConfigSchema', () => { }, "zoom": 2, }, + "enabled": true, "networkPolicy": Object { "enabled": true, "rules": Array [ @@ -87,6 +88,7 @@ describe('ConfigSchema', () => { }, "zoom": 2, }, + "enabled": true, "networkPolicy": Object { "enabled": true, "rules": Array [ diff --git a/x-pack/plugins/screenshotting/server/config/schema.ts b/x-pack/plugins/screenshotting/server/config/schema.ts index 724f84ea3c811..0dda1e3ae9981 100644 --- a/x-pack/plugins/screenshotting/server/config/schema.ts +++ b/x-pack/plugins/screenshotting/server/config/schema.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { schema, TypeOf } from '@kbn/config-schema'; +import { schema, TypeOf, offeringBasedSchema } from '@kbn/config-schema'; import moment from 'moment'; const RulesSchema = schema.object({ @@ -23,6 +23,10 @@ const RulesSchema = schema.object({ }); export const ConfigSchema = schema.object({ + enabled: offeringBasedSchema({ + serverless: schema.boolean({ defaultValue: false }), + traditional: schema.boolean({ defaultValue: true }), + }), networkPolicy: schema.object({ enabled: schema.boolean({ defaultValue: true }), rules: schema.arrayOf(RulesSchema, { diff --git a/x-pack/plugins/screenshotting/server/screenshots/index.test.ts b/x-pack/plugins/screenshotting/server/screenshots/index.test.ts index f8bbbc081f38f..9538517d922ef 100644 --- a/x-pack/plugins/screenshotting/server/screenshots/index.test.ts +++ b/x-pack/plugins/screenshotting/server/screenshots/index.test.ts @@ -68,6 +68,7 @@ describe('Screenshot Observable Pipeline', () => { urls: ['/welcome/home/start/index.htm'], }; config = { + enabled: true, poolSize: 1, capture: { timeouts: { diff --git a/x-pack/plugins/screenshotting/server/screenshots/screenshots.test.ts b/x-pack/plugins/screenshotting/server/screenshots/screenshots.test.ts index d5e8757803c81..30803fcc95c32 100644 --- a/x-pack/plugins/screenshotting/server/screenshots/screenshots.test.ts +++ b/x-pack/plugins/screenshotting/server/screenshots/screenshots.test.ts @@ -37,6 +37,7 @@ describe('class Screenshots', () => { mockLogger = loggerMock.create(); mockConfig = { + enabled: true, networkPolicy: { enabled: false, rules: [], From 7f6b201e14959ba8418459a2d57a64d318c64199 Mon Sep 17 00:00:00 2001 From: Yuliia Naumenko Date: Thu, 12 Oct 2023 12:34:23 -0700 Subject: [PATCH 57/79] [Security Solution] Fixing ESQL Timeline tab content availability and variables naming (#168421) This PR revert the changes made [here](https://github.com/elastic/kibana/pull/168144) and changing the variables naming in the code to avoid the future confusion --------- Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Co-authored-by: Michael Olorunnisola Co-authored-by: Jatin Kathuria --- .../common/experimental_features.ts | 6 ---- .../common/types/timeline/index.ts | 2 +- .../public/actions/constants.ts | 4 +-- .../discover_in_timeline/vis_apply_filter.ts | 13 ++++----- .../security_solution/public/actions/types.ts | 2 +- .../alerts/use_signal_index.test.tsx | 2 +- .../__mocks__/index.tsx | 6 ++-- .../customizations/mock.data.ts | 0 .../use_histogram_customizations.test.ts | 0 .../use_histogram_customizations.tsx | 6 ++-- .../use_search_bar_customizations.tsx | 4 +-- .../use_set_discover_customizations.ts | 0 .../index.test.tsx | 0 .../index.tsx | 0 .../mocks/esql_tab_content.tsx} | 4 +-- .../mocks/index.ts | 6 ++-- .../styles.tsx | 0 .../translations.ts | 0 .../use_discover_state.ts | 0 .../use_get_stateful_query_bar.test.tsx | 0 .../use_get_stateful_query_bar.tsx | 0 .../utils/index.test.ts | 0 .../utils/index.ts | 0 .../utils/test_utils.ts | 0 .../timeline/tabs_content/index.tsx | 28 +++++++++++++------ .../test/security_solution_cypress/config.ts | 1 - .../{discover => esql}/cell_actions.cy.ts | 7 ++--- .../discover_timeline_state_integration.cy.ts | 14 ++++------ .../esql_state.cy.ts} | 18 ++++-------- .../{discover => esql}/search_filter.cy.ts | 13 ++++----- .../cypress/screens/timeline.ts | 2 +- .../cypress/tasks/discover.ts | 10 +++++-- .../cypress/tasks/timeline.ts | 10 +++---- 33 files changed, 73 insertions(+), 85 deletions(-) rename x-pack/plugins/security_solution/public/timelines/components/timeline/{discover_tab_content => esql_tab_content}/__mocks__/index.tsx (65%) rename x-pack/plugins/security_solution/public/timelines/components/timeline/{discover_tab_content => esql_tab_content}/customizations/mock.data.ts (100%) rename x-pack/plugins/security_solution/public/timelines/components/timeline/{discover_tab_content => esql_tab_content}/customizations/use_histogram_customizations.test.ts (100%) rename x-pack/plugins/security_solution/public/timelines/components/timeline/{discover_tab_content => esql_tab_content}/customizations/use_histogram_customizations.tsx (94%) rename x-pack/plugins/security_solution/public/timelines/components/timeline/{discover_tab_content => esql_tab_content}/customizations/use_search_bar_customizations.tsx (75%) rename x-pack/plugins/security_solution/public/timelines/components/timeline/{discover_tab_content => esql_tab_content}/customizations/use_set_discover_customizations.ts (100%) rename x-pack/plugins/security_solution/public/timelines/components/timeline/{discover_tab_content => esql_tab_content}/index.test.tsx (100%) rename x-pack/plugins/security_solution/public/timelines/components/timeline/{discover_tab_content => esql_tab_content}/index.tsx (100%) rename x-pack/plugins/security_solution/public/timelines/components/timeline/{discover_tab_content/mocks/discover_tab_content.tsx => esql_tab_content/mocks/esql_tab_content.tsx} (85%) rename x-pack/plugins/security_solution/public/timelines/components/timeline/{discover_tab_content => esql_tab_content}/mocks/index.ts (75%) rename x-pack/plugins/security_solution/public/timelines/components/timeline/{discover_tab_content => esql_tab_content}/styles.tsx (100%) rename x-pack/plugins/security_solution/public/timelines/components/timeline/{discover_tab_content => esql_tab_content}/translations.ts (100%) rename x-pack/plugins/security_solution/public/timelines/components/timeline/{discover_tab_content => esql_tab_content}/use_discover_state.ts (100%) rename x-pack/plugins/security_solution/public/timelines/components/timeline/{discover_tab_content => esql_tab_content}/use_get_stateful_query_bar.test.tsx (100%) rename x-pack/plugins/security_solution/public/timelines/components/timeline/{discover_tab_content => esql_tab_content}/use_get_stateful_query_bar.tsx (100%) rename x-pack/plugins/security_solution/public/timelines/components/timeline/{discover_tab_content => esql_tab_content}/utils/index.test.ts (100%) rename x-pack/plugins/security_solution/public/timelines/components/timeline/{discover_tab_content => esql_tab_content}/utils/index.ts (100%) rename x-pack/plugins/security_solution/public/timelines/components/timeline/{discover_tab_content => esql_tab_content}/utils/test_utils.ts (100%) rename x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/{discover => esql}/cell_actions.cy.ts (91%) rename x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/{discover => esql}/discover_timeline_state_integration.cy.ts (97%) rename x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/{discover/discover_state.cy.ts => esql/esql_state.cy.ts} (87%) rename x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/{discover => esql}/search_filter.cy.ts (86%) diff --git a/x-pack/plugins/security_solution/common/experimental_features.ts b/x-pack/plugins/security_solution/common/experimental_features.ts index a30b5cfe17ae6..90346011c23e5 100644 --- a/x-pack/plugins/security_solution/common/experimental_features.ts +++ b/x-pack/plugins/security_solution/common/experimental_features.ts @@ -103,12 +103,6 @@ export const allowedExperimentalValues = Object.freeze({ * Enables experimental Entity Analytics HTTP endpoints */ riskScoringRoutesEnabled: true, - /* - * - * Enables Discover embedded within timeline - * - * */ - discoverInTimeline: true, /** * disables ES|QL rules diff --git a/x-pack/plugins/security_solution/common/types/timeline/index.ts b/x-pack/plugins/security_solution/common/types/timeline/index.ts index 7148009246dcd..0372765db9873 100644 --- a/x-pack/plugins/security_solution/common/types/timeline/index.ts +++ b/x-pack/plugins/security_solution/common/types/timeline/index.ts @@ -37,7 +37,7 @@ export enum TimelineTabs { eql = 'eql', session = 'session', securityAssistant = 'securityAssistant', - discover = 'discover', + esql = 'esql', } /* diff --git a/x-pack/plugins/security_solution/public/actions/constants.ts b/x-pack/plugins/security_solution/public/actions/constants.ts index 95c5ef2d788d2..95e72e70ccbab 100644 --- a/x-pack/plugins/security_solution/public/actions/constants.ts +++ b/x-pack/plugins/security_solution/public/actions/constants.ts @@ -10,11 +10,11 @@ export enum SecurityCellActionsTrigger { ALERTS_COUNT = 'security-alertsCount-cellActions', } -export enum DiscoverInTimelineTrigger { +export enum EsqlInTimelineTrigger { HISTOGRAM_TRIGGER = 'security-discoverInTimeline-histogramTrigger', } -export enum DiscoverInTimelineAction { +export enum EsqlInTimelineAction { VIS_FILTER_ACTION = 'security-discoverInTimeline-visFilterAction', } diff --git a/x-pack/plugins/security_solution/public/actions/discover_in_timeline/vis_apply_filter.ts b/x-pack/plugins/security_solution/public/actions/discover_in_timeline/vis_apply_filter.ts index 5b6d2f547c491..8c3f9e0214a63 100644 --- a/x-pack/plugins/security_solution/public/actions/discover_in_timeline/vis_apply_filter.ts +++ b/x-pack/plugins/security_solution/public/actions/discover_in_timeline/vis_apply_filter.ts @@ -9,7 +9,7 @@ import { createFilterAction } from '@kbn/unified-search-plugin/public'; import type { History } from 'history'; import type { SecurityAppStore } from '../../common/store'; import type { StartServices } from '../../types'; -import { DiscoverInTimelineTrigger, DiscoverInTimelineAction } from '../constants'; +import { EsqlInTimelineTrigger, EsqlInTimelineAction } from '../constants'; const createDiscoverHistogramCustomFilterAction = ( store: SecurityAppStore, @@ -20,8 +20,8 @@ const createDiscoverHistogramCustomFilterAction = ( services.customDataService.query.filterManager, services.customDataService.query.timefilter.timefilter, services.theme, - DiscoverInTimelineAction.VIS_FILTER_ACTION, - DiscoverInTimelineAction.VIS_FILTER_ACTION + EsqlInTimelineAction.VIS_FILTER_ACTION, + EsqlInTimelineAction.VIS_FILTER_ACTION ); services.uiActions.registerAction(histogramApplyFilter); @@ -34,7 +34,7 @@ const createDiscoverHistogramCustomTrigger = ( services: StartServices ) => { services.uiActions.registerTrigger({ - id: DiscoverInTimelineTrigger.HISTOGRAM_TRIGGER, + id: EsqlInTimelineTrigger.HISTOGRAM_TRIGGER, }); }; @@ -47,8 +47,5 @@ export const registerDiscoverHistogramActions = ( const histogramApplyFilter = createDiscoverHistogramCustomFilterAction(store, history, services); - services.uiActions.attachAction( - DiscoverInTimelineTrigger.HISTOGRAM_TRIGGER, - histogramApplyFilter.id - ); + services.uiActions.attachAction(EsqlInTimelineTrigger.HISTOGRAM_TRIGGER, histogramApplyFilter.id); }; diff --git a/x-pack/plugins/security_solution/public/actions/types.ts b/x-pack/plugins/security_solution/public/actions/types.ts index 582c63c467360..3450f6796ce27 100644 --- a/x-pack/plugins/security_solution/public/actions/types.ts +++ b/x-pack/plugins/security_solution/public/actions/types.ts @@ -7,7 +7,7 @@ import type { CellAction, CellActionExecutionContext, CellActionFactory } from '@kbn/cell-actions'; import type { QueryOperator } from '../../common/types'; -export { DiscoverInTimelineAction, DiscoverInTimelineTrigger } from './constants'; +export { EsqlInTimelineTrigger, EsqlInTimelineAction } from './constants'; export interface AndFilter { field: string; value: string | string[]; diff --git a/x-pack/plugins/security_solution/public/detections/containers/detection_engine/alerts/use_signal_index.test.tsx b/x-pack/plugins/security_solution/public/detections/containers/detection_engine/alerts/use_signal_index.test.tsx index 8966232ef2b53..f4849978fa206 100644 --- a/x-pack/plugins/security_solution/public/detections/containers/detection_engine/alerts/use_signal_index.test.tsx +++ b/x-pack/plugins/security_solution/public/detections/containers/detection_engine/alerts/use_signal_index.test.tsx @@ -15,7 +15,7 @@ import { useAppToasts } from '../../../../common/hooks/use_app_toasts'; jest.mock('./api'); jest.mock('../../../../common/hooks/use_app_toasts'); jest.mock('../../../../common/components/user_privileges/endpoint/use_endpoint_privileges'); -jest.mock('../../../../timelines/components/timeline/discover_tab_content'); +jest.mock('../../../../timelines/components/timeline/esql_tab_content'); describe('useSignalIndex', () => { let appToastsMock: jest.Mocked>; diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/discover_tab_content/__mocks__/index.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/esql_tab_content/__mocks__/index.tsx similarity index 65% rename from x-pack/plugins/security_solution/public/timelines/components/timeline/discover_tab_content/__mocks__/index.tsx rename to x-pack/plugins/security_solution/public/timelines/components/timeline/esql_tab_content/__mocks__/index.tsx index 728f24b11015e..b3820c62d92b9 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/discover_tab_content/__mocks__/index.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/esql_tab_content/__mocks__/index.tsx @@ -5,9 +5,9 @@ * 2.0. */ -import { MockDiscoverTabContent } from '../mocks/discover_tab_content'; +import { MockEsqlTabContent } from '../mocks/esql_tab_content'; -export const DiscoverTabContent = MockDiscoverTabContent; +export const EsqlTabContent = MockEsqlTabContent; // eslint-disable-next-line import/no-default-export -export default DiscoverTabContent; +export default EsqlTabContent; diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/discover_tab_content/customizations/mock.data.ts b/x-pack/plugins/security_solution/public/timelines/components/timeline/esql_tab_content/customizations/mock.data.ts similarity index 100% rename from x-pack/plugins/security_solution/public/timelines/components/timeline/discover_tab_content/customizations/mock.data.ts rename to x-pack/plugins/security_solution/public/timelines/components/timeline/esql_tab_content/customizations/mock.data.ts diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/discover_tab_content/customizations/use_histogram_customizations.test.ts b/x-pack/plugins/security_solution/public/timelines/components/timeline/esql_tab_content/customizations/use_histogram_customizations.test.ts similarity index 100% rename from x-pack/plugins/security_solution/public/timelines/components/timeline/discover_tab_content/customizations/use_histogram_customizations.test.ts rename to x-pack/plugins/security_solution/public/timelines/components/timeline/esql_tab_content/customizations/use_histogram_customizations.test.ts diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/discover_tab_content/customizations/use_histogram_customizations.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/esql_tab_content/customizations/use_histogram_customizations.tsx similarity index 94% rename from x-pack/plugins/security_solution/public/timelines/components/timeline/discover_tab_content/customizations/use_histogram_customizations.tsx rename to x-pack/plugins/security_solution/public/timelines/components/timeline/esql_tab_content/customizations/use_histogram_customizations.tsx index 9ff69adbf4655..65a7f1a977696 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/discover_tab_content/customizations/use_histogram_customizations.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/esql_tab_content/customizations/use_histogram_customizations.tsx @@ -14,7 +14,7 @@ import type { CustomizationCallback } from '@kbn/discover-plugin/public'; import type { UnifiedHistogramContainerProps } from '@kbn/unified-histogram-plugin/public'; import { ACTION_GLOBAL_APPLY_FILTER } from '@kbn/unified-search-plugin/public'; import { useCallback } from 'react'; -import { DiscoverInTimelineTrigger } from '../../../../../actions/constants'; +import { EsqlInTimelineTrigger } from '../../../../../actions/constants'; import { useKibana } from '../../../../../common/lib/kibana'; export type WithPreventableEvent = T & { @@ -67,9 +67,7 @@ export const useHistogramCustomization = () => { } if (filters && filters.length > 0) { - const applyFilterTrigger = uiActions.getTrigger( - DiscoverInTimelineTrigger.HISTOGRAM_TRIGGER - ); + const applyFilterTrigger = uiActions.getTrigger(EsqlInTimelineTrigger.HISTOGRAM_TRIGGER); await applyFilterTrigger.exec({ filters, diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/discover_tab_content/customizations/use_search_bar_customizations.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/esql_tab_content/customizations/use_search_bar_customizations.tsx similarity index 75% rename from x-pack/plugins/security_solution/public/timelines/components/timeline/discover_tab_content/customizations/use_search_bar_customizations.tsx rename to x-pack/plugins/security_solution/public/timelines/components/timeline/esql_tab_content/customizations/use_search_bar_customizations.tsx index c748357bb24b8..0e74125e5ada4 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/discover_tab_content/customizations/use_search_bar_customizations.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/esql_tab_content/customizations/use_search_bar_customizations.tsx @@ -6,18 +6,16 @@ */ import type { CustomizationCallback } from '@kbn/discover-plugin/public'; -import { useIsExperimentalFeatureEnabled } from '../../../../../common/hooks/use_experimental_features'; import { useGetStatefulQueryBar } from '../use_get_stateful_query_bar'; export const useSearchBarCustomizations = () => { const { CustomStatefulTopNavKqlQueryBar } = useGetStatefulQueryBar(); - const isDiscoverInTimelineEnabled = useIsExperimentalFeatureEnabled('discoverInTimeline'); const setSearchBarCustomizations: CustomizationCallback = ({ customizations }) => { customizations.set({ id: 'search_bar', CustomSearchBar: CustomStatefulTopNavKqlQueryBar, - hideDataViewPicker: isDiscoverInTimelineEnabled, + hideDataViewPicker: true, }); }; diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/discover_tab_content/customizations/use_set_discover_customizations.ts b/x-pack/plugins/security_solution/public/timelines/components/timeline/esql_tab_content/customizations/use_set_discover_customizations.ts similarity index 100% rename from x-pack/plugins/security_solution/public/timelines/components/timeline/discover_tab_content/customizations/use_set_discover_customizations.ts rename to x-pack/plugins/security_solution/public/timelines/components/timeline/esql_tab_content/customizations/use_set_discover_customizations.ts diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/discover_tab_content/index.test.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/esql_tab_content/index.test.tsx similarity index 100% rename from x-pack/plugins/security_solution/public/timelines/components/timeline/discover_tab_content/index.test.tsx rename to x-pack/plugins/security_solution/public/timelines/components/timeline/esql_tab_content/index.test.tsx diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/discover_tab_content/index.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/esql_tab_content/index.tsx similarity index 100% rename from x-pack/plugins/security_solution/public/timelines/components/timeline/discover_tab_content/index.tsx rename to x-pack/plugins/security_solution/public/timelines/components/timeline/esql_tab_content/index.tsx diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/discover_tab_content/mocks/discover_tab_content.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/esql_tab_content/mocks/esql_tab_content.tsx similarity index 85% rename from x-pack/plugins/security_solution/public/timelines/components/timeline/discover_tab_content/mocks/discover_tab_content.tsx rename to x-pack/plugins/security_solution/public/timelines/components/timeline/esql_tab_content/mocks/esql_tab_content.tsx index d49c197250bc3..aaa1104233a3a 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/discover_tab_content/mocks/discover_tab_content.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/esql_tab_content/mocks/esql_tab_content.tsx @@ -8,10 +8,10 @@ import React from 'react'; import { EmbeddedDiscoverContainer } from '../styles'; -export function MockDiscoverTabContent() { +export function MockEsqlTabContent() { return ( - {'Mock Discover Tab Content'} + {'Mock ESQL Tab Content'} ); } diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/discover_tab_content/mocks/index.ts b/x-pack/plugins/security_solution/public/timelines/components/timeline/esql_tab_content/mocks/index.ts similarity index 75% rename from x-pack/plugins/security_solution/public/timelines/components/timeline/discover_tab_content/mocks/index.ts rename to x-pack/plugins/security_solution/public/timelines/components/timeline/esql_tab_content/mocks/index.ts index b77dbfd0d1e79..91fced5a4b2b0 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/discover_tab_content/mocks/index.ts +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/esql_tab_content/mocks/index.ts @@ -5,8 +5,8 @@ * 2.0. */ -import { DiscoverInTimelineTrigger } from '../../../../../actions/constants'; -export { MockDiscoverTabContent } from './discover_tab_content'; +import { EsqlInTimelineTrigger } from '../../../../../actions/constants'; +export { MockEsqlTabContent } from './esql_tab_content'; export const mockApplyFilterTrigger = { exec: jest.fn().mockResolvedValue(undefined), @@ -16,7 +16,7 @@ export const mockPreventDefault = jest.fn(); export const mockUIActionsGetTrigger = jest.fn().mockImplementation((triggerName: string) => { switch (triggerName) { - case DiscoverInTimelineTrigger.HISTOGRAM_TRIGGER: + case EsqlInTimelineTrigger.HISTOGRAM_TRIGGER: return mockApplyFilterTrigger; default: return undefined; diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/discover_tab_content/styles.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/esql_tab_content/styles.tsx similarity index 100% rename from x-pack/plugins/security_solution/public/timelines/components/timeline/discover_tab_content/styles.tsx rename to x-pack/plugins/security_solution/public/timelines/components/timeline/esql_tab_content/styles.tsx diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/discover_tab_content/translations.ts b/x-pack/plugins/security_solution/public/timelines/components/timeline/esql_tab_content/translations.ts similarity index 100% rename from x-pack/plugins/security_solution/public/timelines/components/timeline/discover_tab_content/translations.ts rename to x-pack/plugins/security_solution/public/timelines/components/timeline/esql_tab_content/translations.ts diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/discover_tab_content/use_discover_state.ts b/x-pack/plugins/security_solution/public/timelines/components/timeline/esql_tab_content/use_discover_state.ts similarity index 100% rename from x-pack/plugins/security_solution/public/timelines/components/timeline/discover_tab_content/use_discover_state.ts rename to x-pack/plugins/security_solution/public/timelines/components/timeline/esql_tab_content/use_discover_state.ts diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/discover_tab_content/use_get_stateful_query_bar.test.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/esql_tab_content/use_get_stateful_query_bar.test.tsx similarity index 100% rename from x-pack/plugins/security_solution/public/timelines/components/timeline/discover_tab_content/use_get_stateful_query_bar.test.tsx rename to x-pack/plugins/security_solution/public/timelines/components/timeline/esql_tab_content/use_get_stateful_query_bar.test.tsx diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/discover_tab_content/use_get_stateful_query_bar.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/esql_tab_content/use_get_stateful_query_bar.tsx similarity index 100% rename from x-pack/plugins/security_solution/public/timelines/components/timeline/discover_tab_content/use_get_stateful_query_bar.tsx rename to x-pack/plugins/security_solution/public/timelines/components/timeline/esql_tab_content/use_get_stateful_query_bar.tsx diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/discover_tab_content/utils/index.test.ts b/x-pack/plugins/security_solution/public/timelines/components/timeline/esql_tab_content/utils/index.test.ts similarity index 100% rename from x-pack/plugins/security_solution/public/timelines/components/timeline/discover_tab_content/utils/index.test.ts rename to x-pack/plugins/security_solution/public/timelines/components/timeline/esql_tab_content/utils/index.test.ts diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/discover_tab_content/utils/index.ts b/x-pack/plugins/security_solution/public/timelines/components/timeline/esql_tab_content/utils/index.ts similarity index 100% rename from x-pack/plugins/security_solution/public/timelines/components/timeline/discover_tab_content/utils/index.ts rename to x-pack/plugins/security_solution/public/timelines/components/timeline/esql_tab_content/utils/index.ts diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/discover_tab_content/utils/test_utils.ts b/x-pack/plugins/security_solution/public/timelines/components/timeline/esql_tab_content/utils/test_utils.ts similarity index 100% rename from x-pack/plugins/security_solution/public/timelines/components/timeline/discover_tab_content/utils/test_utils.ts rename to x-pack/plugins/security_solution/public/timelines/components/timeline/esql_tab_content/utils/test_utils.ts diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/tabs_content/index.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/tabs_content/index.tsx index 71c41b5dd5c9f..2109420b5d6aa 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/tabs_content/index.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/tabs_content/index.tsx @@ -15,8 +15,8 @@ import { useDispatch } from 'react-redux'; import styled from 'styled-components'; import { FormattedMessage } from '@kbn/i18n-react'; +import { useKibana } from '../../../../common/lib/kibana'; import { useAssistantTelemetry } from '../../../../assistant/use_assistant_telemetry'; -import { useIsExperimentalFeatureEnabled } from '../../../../common/hooks/use_experimental_features'; import { useConversationStore } from '../../../../assistant/use_conversation_store'; import { useAssistantAvailability } from '../../../../assistant/use_assistant_availability'; import type { SessionViewConfig } from '../../../../../common/types'; @@ -88,6 +88,7 @@ const GraphTab = tabWithSuspense(lazy(() => import('../graph_tab_content'))); const NotesTab = tabWithSuspense(lazy(() => import('../notes_tab_content'))); const PinnedTab = tabWithSuspense(lazy(() => import('../pinned_tab_content'))); const SessionTab = tabWithSuspense(lazy(() => import('../session_tab_content'))); +const EsqlTab = tabWithSuspense(lazy(() => import('../esql_tab_content'))); interface BasicTimelineTab { renderCellValue: (props: CellValueElementProps) => React.ReactNode; rowRenderers: RowRenderer[]; @@ -132,6 +133,7 @@ const ActiveTimelineTab = memo( setConversationId, showTimeline, }) => { + const isEsqlSettingEnabled = useKibana().services.configSettings.ESQLEnabled; const { hasAssistantPrivilege } = useAssistantAvailability(); const getTab = useCallback( (tab: TimelineTabs) => { @@ -179,6 +181,14 @@ const ActiveTimelineTab = memo( timelineId={timelineId} /> + {isEsqlSettingEnabled && ( + + + + )} = ({ sessionViewConfig, timelineDescription, }) => { - const isDiscoverInTimelineEnabled = useIsExperimentalFeatureEnabled('discoverInTimeline'); + const isEsqlSettingEnabled = useKibana().services.configSettings.ESQLEnabled; const { hasAssistantPrivilege } = useAssistantAvailability(); const dispatch = useDispatch(); const getActiveTab = useMemo(() => getActiveTabSelector(), []); @@ -360,13 +370,13 @@ const TabsContentComponent: React.FC = ({ } }, [activeTab, conversationId, reportAssistantInvoked, setActiveTab]); - const setDiscoverAsActiveTab = useCallback(() => { + const setEsqlAsActiveTab = useCallback(() => { dispatch( initializeTimelineSettings({ id: timelineId, }) ); - setActiveTab(TimelineTabs.discover); + setActiveTab(TimelineTabs.esql); }, [setActiveTab, dispatch, timelineId]); useEffect(() => { @@ -389,13 +399,13 @@ const TabsContentComponent: React.FC = ({ {i18n.QUERY_TAB} {showTimeline && } - {isDiscoverInTimelineEnabled && ( + {isEsqlSettingEnabled && ( {i18n.DISCOVER_ESQL_IN_TIMELINE_TAB} { @@ -34,7 +33,7 @@ describe.skip( login(); visitWithTimeRange(ALERTS_URL); createNewTimeline(); - gotToDiscoverTab(); + gotToEsqlTab(); updateDateRangeInLocalDatePickers(DISCOVER_CONTAINER, INITIAL_START_DATE, INITIAL_END_DATE); waitForDiscoverGridToLoad(); }); diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/discover/discover_timeline_state_integration.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/esql/discover_timeline_state_integration.cy.ts similarity index 97% rename from x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/discover/discover_timeline_state_integration.cy.ts rename to x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/esql/discover_timeline_state_integration.cy.ts index 71b268e090b56..d1a446df25a5a 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/discover/discover_timeline_state_integration.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/esql/discover_timeline_state_integration.cy.ts @@ -34,7 +34,7 @@ import { addDescriptionToTimeline, addNameToTimeline, createNewTimeline, - gotToDiscoverTab, + gotToEsqlTab, openTimelineById, openTimelineFromSettings, waitForTimelineChanges, @@ -60,11 +60,9 @@ const TIMELINE_RESPONSE_SAVED_OBJECT_ID_PATH = 'response.body.data.persistTimeline.timeline.savedObjectId'; const esqlQuery = 'from auditbeat-* | where ecs.version == "8.0.0"'; -// TODO: reuse or remove this tests when ESQL tab will be added -describe.skip( +describe( 'Discover Timeline State Integration', { - env: { ftrConfig: { enableExperimental: ['discoverInTimeline'] } }, tags: ['@ess', '@brokenInServerless'], // ESQL and test involving STACK_MANAGEMENT_PAGE are broken in serverless }, @@ -109,14 +107,14 @@ describe.skip( login(); visitWithTimeRange(ALERTS_URL); createNewTimeline(); - gotToDiscoverTab(); + gotToEsqlTab(); updateDateRangeInLocalDatePickers(DISCOVER_CONTAINER, INITIAL_START_DATE, INITIAL_END_DATE); }); context('save/restore', () => { it('should be able create an empty timeline with default discover state', () => { addNameToTimeline('Timerange timeline'); createNewTimeline(); - gotToDiscoverTab(); + gotToEsqlTab(); cy.get(GET_LOCAL_SHOW_DATES_BUTTON(DISCOVER_CONTAINER)).should( 'contain.text', `Last 15 minutes` @@ -143,7 +141,7 @@ describe.skip( openTimelineFromSettings(); openTimelineById(timelineId); cy.get(LOADING_INDICATOR).should('not.exist'); - gotToDiscoverTab(); + gotToEsqlTab(); verifyDiscoverEsqlQuery(esqlQuery); cy.get(GET_DISCOVER_DATA_GRID_CELL_HEADER(column1)).should('exist'); cy.get(GET_DISCOVER_DATA_GRID_CELL_HEADER(column2)).should('exist'); @@ -193,7 +191,7 @@ describe.skip( openTimelineFromSettings(); openTimelineById(timelineId); cy.get(LOADING_INDICATOR).should('not.exist'); - gotToDiscoverTab(); + gotToEsqlTab(); cy.get(DISCOVER_DATA_VIEW_SWITCHER.BTN).should('not.exist'); }); }); diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/discover/discover_state.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/esql/esql_state.cy.ts similarity index 87% rename from x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/discover/discover_state.cy.ts rename to x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/esql/esql_state.cy.ts index 06c934083cd88..ef79bf8bf4d48 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/discover/discover_state.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/esql/esql_state.cy.ts @@ -20,11 +20,7 @@ import { import { updateDateRangeInLocalDatePickers } from '../../../../tasks/date_picker'; import { login } from '../../../../tasks/login'; import { visitWithTimeRange } from '../../../../tasks/navigation'; -import { - createNewTimeline, - gotToDiscoverTab, - openActiveTimeline, -} from '../../../../tasks/timeline'; +import { createNewTimeline, gotToEsqlTab, openActiveTimeline } from '../../../../tasks/timeline'; import { ALERTS_URL } from '../../../../urls/navigation'; import { ALERTS, CSP_FINDINGS } from '../../../../screens/security_header'; @@ -33,11 +29,9 @@ const INITIAL_END_DATE = 'Jan 19, 2024 @ 20:33:29.186'; const DEFAULT_ESQL_QUERY = 'from .alerts-security.alerts-default,apm-*-transaction*,auditbeat-*,endgame-*,filebeat-*,logs-*,packetbeat-*,traces-apm*,winlogbeat-*,-*elastic-cloud-logs-* | limit 10'; -// TODO: reuse or remove this tests when ESQL tab will be added -describe.skip( - 'Discover State', +describe( + 'Timeline Discover ESQL State', { - env: { ftrConfig: { enableExperimental: ['discoverInTimeline'] } }, tags: ['@ess'], }, () => { @@ -45,7 +39,7 @@ describe.skip( login(); visitWithTimeRange(ALERTS_URL); createNewTimeline(); - gotToDiscoverTab(); + gotToEsqlTab(); updateDateRangeInLocalDatePickers(DISCOVER_CONTAINER, INITIAL_START_DATE, INITIAL_END_DATE); }); it('should not allow the dataview to be changed', () => { @@ -61,7 +55,7 @@ describe.skip( navigateFromHeaderTo(CSP_FINDINGS); navigateFromHeaderTo(ALERTS); openActiveTimeline(); - gotToDiscoverTab(); + gotToEsqlTab(); verifyDiscoverEsqlQuery(esqlQuery); }); @@ -71,7 +65,7 @@ describe.skip( navigateFromHeaderTo(CSP_FINDINGS); navigateFromHeaderTo(ALERTS); openActiveTimeline(); - gotToDiscoverTab(); + gotToEsqlTab(); cy.get(GET_DISCOVER_DATA_GRID_CELL_HEADER('host.name')).should('exist'); cy.get(GET_DISCOVER_DATA_GRID_CELL_HEADER('user.name')).should('exist'); }); diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/discover/search_filter.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/esql/search_filter.cy.ts similarity index 86% rename from x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/discover/search_filter.cy.ts rename to x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/esql/search_filter.cy.ts index cfe3ca421de36..1e3539ab58527 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/discover/search_filter.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/esql/search_filter.cy.ts @@ -23,7 +23,7 @@ import { addFieldToTable, convertNBSPToSP, } from '../../../../tasks/discover'; -import { createNewTimeline, gotToDiscoverTab } from '../../../../tasks/timeline'; +import { createNewTimeline, gotToEsqlTab } from '../../../../tasks/timeline'; import { login } from '../../../../tasks/login'; import { visitWithTimeRange } from '../../../../tasks/navigation'; import { ALERTS_URL } from '../../../../urls/navigation'; @@ -33,12 +33,9 @@ const INITIAL_END_DATE = 'Jan 19, 2024 @ 20:33:29.186'; const NEW_START_DATE = 'Jan 18, 2023 @ 20:33:29.186'; const esqlQuery = 'from auditbeat-* | where ecs.version == "8.0.0"'; -// Failing: See https://github.com/elastic/kibana/issues/167186 -// TODO: reuse or remove this tests when ESQL tab will be added -describe.skip( - 'Basic discover search and filter operations', +describe( + 'Basic esql search and filter operations', { - env: { ftrConfig: { enableExperimental: ['discoverInTimeline'] } }, tags: ['@ess'], }, () => { @@ -46,7 +43,7 @@ describe.skip( login(); visitWithTimeRange(ALERTS_URL); createNewTimeline(); - gotToDiscoverTab(); + gotToEsqlTab(); updateDateRangeInLocalDatePickers(DISCOVER_CONTAINER, INITIAL_START_DATE, INITIAL_END_DATE); }); @@ -63,7 +60,7 @@ describe.skip( }); context('navigation', () => { - it('should removed the query when back is pressed after adding a query', () => { + it('should remove the query when back is pressed after adding a query', () => { addDiscoverEsqlQuery(esqlQuery); submitDiscoverSearchBar(); cy.get(DISCOVER_ESQL_INPUT_TEXT_CONTAINER).then((subj) => { diff --git a/x-pack/test/security_solution_cypress/cypress/screens/timeline.ts b/x-pack/test/security_solution_cypress/cypress/screens/timeline.ts index 78b25d890c9c7..2c89a0a5877bd 100644 --- a/x-pack/test/security_solution_cypress/cypress/screens/timeline.ts +++ b/x-pack/test/security_solution_cypress/cypress/screens/timeline.ts @@ -341,7 +341,7 @@ export const GET_TIMELINE_HEADER = (fieldName: string) => { return `[data-test-subj="timeline"] [data-test-subj="header-text-${fieldName}"]`; }; -export const DISCOVER_TAB = getDataTestSubjectSelector('timelineTabs-discover'); +export const ESQL_TAB = getDataTestSubjectSelector('timelineTabs-esql'); export const TIMELINE_DATE_PICKER_CONTAINER = getDataTestSubjectSelector( 'timeline-date-picker-container' diff --git a/x-pack/test/security_solution_cypress/cypress/tasks/discover.ts b/x-pack/test/security_solution_cypress/cypress/tasks/discover.ts index e5d835bbe8c53..899acc1ff12cf 100644 --- a/x-pack/test/security_solution_cypress/cypress/tasks/discover.ts +++ b/x-pack/test/security_solution_cypress/cypress/tasks/discover.ts @@ -18,6 +18,7 @@ import { DISCOVER_ESQL_EDITABLE_INPUT, } from '../screens/discover'; import { GET_LOCAL_SEARCH_BAR_SUBMIT_BUTTON } from '../screens/search_bar'; +import { gotToEsqlTab } from './timeline'; export const switchDataViewTo = (dataviewName: string) => { openDataViewSwitcher(); @@ -44,9 +45,12 @@ export const waitForDiscoverGridToLoad = () => { cy.get(DISCOVER_FIELD_LIST_LOADING).should('not.exist'); }; -export const selectCurrentDiscoverEsqlQuery = (discoverEsqlInput = DISCOVER_ESQL_INPUT) => { - cy.get(discoverEsqlInput).click(); - cy.get(discoverEsqlInput).focused(); +export const selectCurrentDiscoverEsqlQuery = ( + discoverEsqlInput = DISCOVER_ESQL_EDITABLE_INPUT +) => { + gotToEsqlTab(); + cy.get(discoverEsqlInput).should('be.visible').click(); + cy.get(discoverEsqlInput).should('be.focused'); cy.get(discoverEsqlInput).type(Cypress.platform === 'darwin' ? '{cmd+a}' : '{ctrl+a}'); }; diff --git a/x-pack/test/security_solution_cypress/cypress/tasks/timeline.ts b/x-pack/test/security_solution_cypress/cypress/tasks/timeline.ts index a0e81d1f244f7..2dc4447e75ffd 100644 --- a/x-pack/test/security_solution_cypress/cypress/tasks/timeline.ts +++ b/x-pack/test/security_solution_cypress/cypress/tasks/timeline.ts @@ -83,7 +83,7 @@ import { TIMELINE_QUERY, PROVIDER_BADGE, PROVIDER_BADGE_DELETE, - DISCOVER_TAB, + ESQL_TAB, OPEN_TIMELINE_MODAL_TIMELINE_NAMES, OPEN_TIMELINE_MODAL_SEARCH_BAR, OPEN_TIMELINE_MODAL, @@ -140,9 +140,9 @@ export const goToNotesTab = (): Cypress.Chainable> => { return cy.get(NOTES_TAB_BUTTON); }; -export const gotToDiscoverTab = () => { +export const gotToEsqlTab = () => { recurse( - () => cy.get(DISCOVER_TAB).click(), + () => cy.get(ESQL_TAB).should('be.visible').click({ force: true }), ($el) => expect($el).to.have.class('euiTab-isSelected'), { delay: 500, @@ -314,8 +314,8 @@ export const createNewTimeline = () => { cy.get(TIMELINE_SETTINGS_ICON).filter(':visible').click(); cy.get(TIMELINE_SETTINGS_ICON).should('be.visible'); // eslint-disable-next-line cypress/no-unnecessary-waiting - cy.wait(300); - cy.get(CREATE_NEW_TIMELINE).eq(0).should('be.visible').click(); + cy.wait(1000); + cy.get(CREATE_NEW_TIMELINE).eq(0).should('be.visible').click({ force: true }); }; export const openCreateTimelineOptionsPopover = () => { From 79e5c1e547f404b9f82f7f83016b7ae7502193ae Mon Sep 17 00:00:00 2001 From: Larry Gregory Date: Thu, 12 Oct 2023 15:44:02 -0400 Subject: [PATCH 58/79] Unskip Spaces a11y tests (#168705) ## Summary Unskips Spaces a11y tests that are no longer failing. Also updates CODEOWNERS to properly assign ownership of our a11y tests. Resolves https://github.com/elastic/kibana/issues/144155 --- .github/CODEOWNERS | 4 ++++ x-pack/test/accessibility/apps/spaces.ts | 4 +--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index bd7585c307486..fb5ce6ad466e0 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1095,6 +1095,10 @@ x-pack/plugins/cloud_integrations/cloud_full_story/server/config.ts @elastic/kib /test/interactive_setup_api_integration/ @elastic/kibana-security /test/interactive_setup_functional/ @elastic/kibana-security /test/plugin_functional/test_suites/core_plugins/rendering.ts @elastic/kibana-security +/x-pack/test/accessibility/apps/login_page.ts @elastic/kibana-security +/x-pack/test/accessibility/apps/roles.ts @elastic/kibana-security +/x-pack/test/accessibility/apps/spaces.ts @elastic/kibana-security +/x-pack/test/accessibility/apps/users.ts @elastic/kibana-security /x-pack/test/api_integration/apis/security/ @elastic/kibana-security /x-pack/test/api_integration/apis/spaces/ @elastic/kibana-security /x-pack/test/ui_capabilities/ @elastic/kibana-security diff --git a/x-pack/test/accessibility/apps/spaces.ts b/x-pack/test/accessibility/apps/spaces.ts index 2a4923a15d08c..622b1b3cefd64 100644 --- a/x-pack/test/accessibility/apps/spaces.ts +++ b/x-pack/test/accessibility/apps/spaces.ts @@ -85,9 +85,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); // creating space b and making it the current space so space selector page gets displayed when space b gets deleted - // Skipped due to an a11y violation - // https://github.com/elastic/kibana/issues/144155 - describe.skip('Create Space B and Verify', async () => { + describe('Create Space B and Verify', async () => { it('a11y test for delete space button', async () => { await PageObjects.spaceSelector.clickCreateSpace(); await PageObjects.spaceSelector.clickEnterSpaceName(); From eefc2752e80bf8feaa5bcaa0de69954cb5f5d607 Mon Sep 17 00:00:00 2001 From: Rickyanto Ang Date: Thu, 12 Oct 2023 13:05:49 -0700 Subject: [PATCH 59/79] [Cloud Security][FTR] FTR for GCP Orgs (#168314) ## Summary This PR adds FTRs for GCP Organization option --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- .../public/common/constants.ts | 4 + .../csp_boxed_radio_group.tsx | 3 +- .../fleet_extensions/gcp_credential_form.tsx | 3 + .../fleet_extensions/policy_template_form.tsx | 2 + .../components/fleet_extensions/utils.ts | 1 + .../config.ts | 2 +- .../add_cis_integration_form_page.ts | 82 ++++++++++++++ .../page_objects/index.ts | 2 + .../pages/cis_integration.ts | 107 ++++++++++++++++++ .../pages/index.ts | 1 + 10 files changed, 205 insertions(+), 2 deletions(-) create mode 100644 x-pack/test/cloud_security_posture_functional/page_objects/add_cis_integration_form_page.ts create mode 100644 x-pack/test/cloud_security_posture_functional/pages/cis_integration.ts diff --git a/x-pack/plugins/cloud_security_posture/public/common/constants.ts b/x-pack/plugins/cloud_security_posture/public/common/constants.ts index 9f267e07569c2..7641745b897f4 100644 --- a/x-pack/plugins/cloud_security_posture/public/common/constants.ts +++ b/x-pack/plugins/cloud_security_posture/public/common/constants.ts @@ -63,6 +63,7 @@ export interface CloudPostureIntegrationProps { icon?: string; tooltip?: string; isBeta?: boolean; + testId?: string; }>; } @@ -85,6 +86,7 @@ export const cloudPostureIntegrations: CloudPostureIntegrations = { defaultMessage: 'CIS AWS', }), icon: 'logoAWS', + testId: 'cisAwsTestId', }, { type: CLOUDBEAT_GCP, @@ -95,6 +97,7 @@ export const cloudPostureIntegrations: CloudPostureIntegrations = { defaultMessage: 'CIS GCP', }), icon: googleCloudLogo, + testId: 'cisGcpTestId', }, // needs to be a function that disables/enabled based on integration version { @@ -108,6 +111,7 @@ export const cloudPostureIntegrations: CloudPostureIntegrations = { disabled: false, isBeta: true, icon: 'logoAzure', + testId: 'cisAzureTestId', }, ], }, diff --git a/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/csp_boxed_radio_group.tsx b/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/csp_boxed_radio_group.tsx index 9a50658a6a1f3..829d148097889 100644 --- a/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/csp_boxed_radio_group.tsx +++ b/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/csp_boxed_radio_group.tsx @@ -24,6 +24,7 @@ export interface CspRadioOption { icon?: string; tooltip?: string; isBeta?: boolean; + testId?: string; } export const RadioGroup = ({ @@ -34,7 +35,6 @@ export const RadioGroup = ({ onChange, }: CspRadioGroupProps) => { const { euiTheme } = useEuiTheme(); - return (
    => [ { id: SETUP_ACCESS_CLOUD_SHELL, @@ -240,6 +241,7 @@ const getSetupFormatOptions = (): Array<{ defaultMessage: 'Google Cloud Shell', }), disabled: false, + testId: 'gcpGoogleCloudShellOptionTestId', }, { id: SETUP_ACCESS_MANUAL, @@ -247,6 +249,7 @@ const getSetupFormatOptions = (): Array<{ defaultMessage: 'Manual', }), disabled: false, + testId: 'gcpManualOptionTestId', }, ]; diff --git a/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_template_form.tsx b/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_template_form.tsx index 9d1c52a0c1ee3..a4ec591d51c75 100644 --- a/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_template_form.tsx +++ b/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_template_form.tsx @@ -127,12 +127,14 @@ const getGcpAccountTypeOptions = (isGcpOrgDisabled: boolean): CspRadioGroupProps defaultMessage: 'Supported from integration version 1.6.0 and above', }) : undefined, + testId: 'gcpOrganizationAccountTestId', }, { id: GCP_SINGLE_ACCOUNT, label: i18n.translate('xpack.csp.fleetIntegration.gcpAccountType.gcpSingleAccountLabel', { defaultMessage: 'Single Account', }), + testId: 'gcpSingleAccountTestId', }, ]; diff --git a/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/utils.ts b/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/utils.ts index 9db4c9bf22a75..148a482714a10 100644 --- a/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/utils.ts +++ b/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/utils.ts @@ -225,6 +225,7 @@ export const getPolicyTemplateInputOptions = (policyTemplate: CloudSecurityPolic icon: o.icon, disabled: o.disabled, isBeta: o.isBeta, + testId: o.testId, })); export const getMaxPackageName = ( diff --git a/x-pack/test/cloud_security_posture_functional/config.ts b/x-pack/test/cloud_security_posture_functional/config.ts index 05f1477d84af1..53d87d2378db5 100644 --- a/x-pack/test/cloud_security_posture_functional/config.ts +++ b/x-pack/test/cloud_security_posture_functional/config.ts @@ -38,7 +38,7 @@ export default async function ({ readConfigFile }: FtrConfigProviderContext) { * 2. merge the updated version number change to kibana */ `--xpack.fleet.packages.0.name=cloud_security_posture`, - `--xpack.fleet.packages.0.version=1.5.0`, + `--xpack.fleet.packages.0.version=1.6.0`, // `--xpack.fleet.registryUrl=https://localhost:8080`, ], }, diff --git a/x-pack/test/cloud_security_posture_functional/page_objects/add_cis_integration_form_page.ts b/x-pack/test/cloud_security_posture_functional/page_objects/add_cis_integration_form_page.ts new file mode 100644 index 0000000000000..924a2ae6c0dca --- /dev/null +++ b/x-pack/test/cloud_security_posture_functional/page_objects/add_cis_integration_form_page.ts @@ -0,0 +1,82 @@ +/* + * 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 { FtrProviderContext } from '../ftr_provider_context'; + +export function AddCisIntegrationFormPageProvider({ + getService, + getPageObjects, +}: FtrProviderContext) { + const testSubjects = getService('testSubjects'); + const PageObjects = getPageObjects(['common', 'header']); + + const cisGcp = { + getIntegrationFormEntirePage: () => testSubjects.find('dataCollectionSetupStep'), + + getIntegrationPolicyTable: () => testSubjects.find('integrationPolicyTable'), + + getIntegrationFormEditPage: () => testSubjects.find('editPackagePolicy_page'), + + findOptionInPage: async (text: string) => { + await PageObjects.header.waitUntilLoadingHasFinished(); + const optionToBeClicked = await testSubjects.find(text); + return await optionToBeClicked; + }, + + clickOptionButton: async (text: string) => { + const optionToBeClicked = await cisGcp.findOptionInPage(text); + await optionToBeClicked.click(); + }, + + clickSaveButton: async () => { + const optionToBeClicked = await cisGcp.findOptionInPage('createPackagePolicySaveButton'); + await optionToBeClicked.click(); + }, + + getPostInstallModal: async () => { + return await testSubjects.find('confirmModalTitleText'); + }, + + isPostInstallGoogleCloudShellModal: async (isOrg: boolean, orgID?: string, prjID?: string) => { + const googleCloudShellModal = await testSubjects.find('postInstallGoogleCloudShellModal'); + const googleCloudShellModalVisibleText = await googleCloudShellModal.getVisibleText(); + const stringProjectId = prjID ? prjID : ''; + const stringOrganizationId = orgID ? `ORG_ID=${orgID}` : 'ORG_ID='; + const orgIdExist = googleCloudShellModalVisibleText.includes(stringOrganizationId); + const prjIdExist = googleCloudShellModalVisibleText.includes(stringProjectId); + + if (isOrg) { + return orgIdExist === true && prjIdExist === true; + } else { + return orgIdExist === false && prjIdExist === true; + } + }, + + checkGcpFieldExist: async (text: string) => { + const field = await testSubjects.findAll(text); + return field.length; + }, + + fillInTextField: async (selector: string, text: string) => { + const test = await testSubjects.find(selector); + await test.type(text); + }, + }; + + const navigateToAddIntegrationCspmPage = async () => { + await PageObjects.common.navigateToUrl( + 'fleet', // Defined in Security Solution plugin + 'integrations/cloud_security_posture/add-integration/cspm', + { shouldUseHashForSubUrl: false } + ); + }; + + return { + cisGcp, + navigateToAddIntegrationCspmPage, + }; +} diff --git a/x-pack/test/cloud_security_posture_functional/page_objects/index.ts b/x-pack/test/cloud_security_posture_functional/page_objects/index.ts index 36dbf1bdc0fe9..84a75d27e4e2a 100644 --- a/x-pack/test/cloud_security_posture_functional/page_objects/index.ts +++ b/x-pack/test/cloud_security_posture_functional/page_objects/index.ts @@ -8,11 +8,13 @@ import { pageObjects as xpackFunctionalPageObjects } from '../../functional/page_objects'; import { FindingsPageProvider } from './findings_page'; import { CspDashboardPageProvider } from './csp_dashboard_page'; +import { AddCisIntegrationFormPageProvider } from './add_cis_integration_form_page'; import { VulnerabilityDashboardPageProvider } from './vulnerability_dashboard_page_object'; export const cloudSecurityPosturePageObjects = { findings: FindingsPageProvider, cloudPostureDashboard: CspDashboardPageProvider, + cisAddIntegration: AddCisIntegrationFormPageProvider, vulnerabilityDashboard: VulnerabilityDashboardPageProvider, }; export const pageObjects = { diff --git a/x-pack/test/cloud_security_posture_functional/pages/cis_integration.ts b/x-pack/test/cloud_security_posture_functional/pages/cis_integration.ts new file mode 100644 index 0000000000000..5935fc49b06a0 --- /dev/null +++ b/x-pack/test/cloud_security_posture_functional/pages/cis_integration.ts @@ -0,0 +1,107 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import expect from '@kbn/expect'; +import type { FtrProviderContext } from '../ftr_provider_context'; + +const CIS_GCP_OPTION_TEST_ID = 'cisGcpTestId'; +const GCP_ORGANIZATION_TEST_ID = 'gcpOrganizationAccountTestId'; +const GCP_SINGLE_ACCOUNT_TEST_ID = 'gcpSingleAccountTestId'; +const GCP_CLOUD_SHELL_TEST_ID = 'gcpGoogleCloudShellOptionTestId'; +const GCP_MANUAL_TEST_ID = 'gcpManualOptionTestId'; +const PRJ_ID_TEST_ID = 'project_id_test_id'; +const ORG_ID_TEST_ID = 'organization_id_test_id'; +const CREDENTIALS_TYPE_TEST_ID = 'credentials_type_test_id'; + +// eslint-disable-next-line import/no-default-export +export default function (providerContext: FtrProviderContext) { + const { getPageObjects, getService } = providerContext; + const pageObjects = getPageObjects(['cloudPostureDashboard', 'cisAddIntegration', 'header']); + const kibanaServer = getService('kibanaServer'); + + describe('Test adding Cloud Security Posture Integrations', function () { + this.tags(['cloud_security_posture_cis_integration']); + let cisIntegrationGcp: typeof pageObjects.cisAddIntegration.cisGcp; + let cisIntegration: typeof pageObjects.cisAddIntegration; + + beforeEach(async () => { + cisIntegration = pageObjects.cisAddIntegration; + cisIntegrationGcp = pageObjects.cisAddIntegration.cisGcp; + + await cisIntegration.navigateToAddIntegrationCspmPage(); + }); + + after(async () => { + await kibanaServer.savedObjects.cleanStandardList(); + }); + + describe('CIS_GCP Organization', () => { + it('Switch between Manual and Google cloud shell', async () => { + await cisIntegrationGcp.clickOptionButton(CIS_GCP_OPTION_TEST_ID); + await cisIntegrationGcp.clickOptionButton(GCP_ORGANIZATION_TEST_ID); + await cisIntegrationGcp.clickOptionButton(GCP_MANUAL_TEST_ID); + /* Check for existing fields. In Manual, Credential field should be visible */ + expect((await cisIntegrationGcp.checkGcpFieldExist(PRJ_ID_TEST_ID)) === 1).to.be(true); + expect((await cisIntegrationGcp.checkGcpFieldExist(ORG_ID_TEST_ID)) === 1).to.be(true); + expect((await cisIntegrationGcp.checkGcpFieldExist(CREDENTIALS_TYPE_TEST_ID)) === 1).to.be( + true + ); + + await cisIntegrationGcp.clickOptionButton(GCP_CLOUD_SHELL_TEST_ID); + /* Check for existing fields. In Google Cloud Shell, Credential field should NOT be visible */ + expect((await cisIntegrationGcp.checkGcpFieldExist(PRJ_ID_TEST_ID)) === 1).to.be(true); + expect((await cisIntegrationGcp.checkGcpFieldExist(ORG_ID_TEST_ID)) === 1).to.be(true); + expect((await cisIntegrationGcp.checkGcpFieldExist(CREDENTIALS_TYPE_TEST_ID)) === 0).to.be( + true + ); + }); + + it('Post Installation Google Cloud Shell modal pops up after user clicks on Save button when adding integration, when there are no Project ID or Organization ID provided, it should use default value', async () => { + await cisIntegrationGcp.clickOptionButton(CIS_GCP_OPTION_TEST_ID); + await cisIntegrationGcp.clickOptionButton(GCP_ORGANIZATION_TEST_ID); + await cisIntegrationGcp.clickOptionButton(GCP_CLOUD_SHELL_TEST_ID); + await cisIntegrationGcp.clickSaveButton(); + pageObjects.header.waitUntilLoadingHasFinished(); + expect((await cisIntegrationGcp.isPostInstallGoogleCloudShellModal(true)) === true).to.be( + true + ); + }); + + it('Post Installation Google Cloud Shell modal pops up after user clicks on Save button when adding integration, when there are Project ID or Organization ID provided, it should use that value', async () => { + const projectName = 'PRJ_NAME_TEST'; + const organizationName = 'ORG_NAME_TEST'; + await cisIntegrationGcp.clickOptionButton(CIS_GCP_OPTION_TEST_ID); + await cisIntegrationGcp.clickOptionButton(GCP_ORGANIZATION_TEST_ID); + await cisIntegrationGcp.clickOptionButton(GCP_CLOUD_SHELL_TEST_ID); + await cisIntegrationGcp.fillInTextField('project_id_test_id', projectName); + await cisIntegrationGcp.fillInTextField('organization_id_test_id', organizationName); + + await cisIntegrationGcp.clickSaveButton(); + pageObjects.header.waitUntilLoadingHasFinished(); + expect( + (await cisIntegrationGcp.isPostInstallGoogleCloudShellModal( + true, + organizationName, + projectName + )) === true + ).to.be(true); + }); + + it('Organization ID field on cloud shell command should only be shown if user chose Google Cloud Shell, if user chose Single Account it shouldn not show up', async () => { + await cisIntegrationGcp.clickOptionButton(CIS_GCP_OPTION_TEST_ID); + await cisIntegrationGcp.clickOptionButton(GCP_SINGLE_ACCOUNT_TEST_ID); + await cisIntegrationGcp.clickOptionButton(GCP_CLOUD_SHELL_TEST_ID); + + await cisIntegrationGcp.clickSaveButton(); + pageObjects.header.waitUntilLoadingHasFinished(); + expect((await cisIntegrationGcp.isPostInstallGoogleCloudShellModal(false)) === true).to.be( + true + ); + }); + }); + }); +} diff --git a/x-pack/test/cloud_security_posture_functional/pages/index.ts b/x-pack/test/cloud_security_posture_functional/pages/index.ts index c1bcdaea38cf8..9d4e17ec0c88c 100644 --- a/x-pack/test/cloud_security_posture_functional/pages/index.ts +++ b/x-pack/test/cloud_security_posture_functional/pages/index.ts @@ -15,5 +15,6 @@ export default function ({ loadTestFile }: FtrProviderContext) { loadTestFile(require.resolve('./findings_alerts')); loadTestFile(require.resolve('./compliance_dashboard')); loadTestFile(require.resolve('./vulnerability_dashboard')); + loadTestFile(require.resolve('./cis_integration')); }); } From adc9d43c84afa86138cb9666369a3abc03eb80a0 Mon Sep 17 00:00:00 2001 From: Kevin Logan <56395104+kevinlog@users.noreply.github.com> Date: Thu, 12 Oct 2023 16:07:49 -0400 Subject: [PATCH 60/79] [EDR Workflows] Add defend workflows cypress tests to flaky test runner (#168723) ## Summary Adds defend workflows tests to the flaky test runner, see example runs below from https://ci-stats.kibana.dev/trigger_flaky_test_runner/1 Select defend tests: image Regular: image Serverless: image Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .buildkite/pipelines/flaky_tests/groups.json | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.buildkite/pipelines/flaky_tests/groups.json b/.buildkite/pipelines/flaky_tests/groups.json index 2d715fcd8f27d..1a5799a862850 100644 --- a/.buildkite/pipelines/flaky_tests/groups.json +++ b/.buildkite/pipelines/flaky_tests/groups.json @@ -24,6 +24,14 @@ "key": "cypress/security_serverless_explore", "name": "[Serverless] Security Solution Explore - Cypress" }, + { + "key": "cypress/defend_workflows", + "name": "Security Solution Defend Workflows - Cypress" + }, + { + "key": "cypress/defend_workflows_serverless", + "name": "[Serverless] Security Solution Defend Workflows - Cypress" + }, { "key": "cypress/osquery_cypress", "name": "Osquery - Cypress" From 30cc89d0eac15942df7aef1746695ca0fc761c68 Mon Sep 17 00:00:00 2001 From: Rodney Norris Date: Thu, 12 Oct 2023 15:14:04 -0500 Subject: [PATCH 61/79] serverless_search: removing errant nbsp from go snippets (#168630) ## Summary Removing nbsp characters that somehow got into the golang snippets. --- .../details_page/details_page_overview/languages.ts | 6 +++--- .../public/application/components/languages/go.ts | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/x-pack/plugins/index_management/public/application/sections/home/index_list/details_page/details_page_overview/languages.ts b/x-pack/plugins/index_management/public/application/sections/home/index_list/details_page/details_page_overview/languages.ts index 838efe28580c0..9904f7cbb70c7 100644 --- a/x-pack/plugins/index_management/public/application/sections/home/index_list/details_page/details_page_overview/languages.ts +++ b/x-pack/plugins/index_management/public/application/sections/home/index_list/details_page/details_page_overview/languages.ts @@ -69,10 +69,10 @@ export const goDefinition: LanguageDefinition = { "fmt" "log" "strings" -​ + "github.com/elastic/elasticsearch-serverless-go" ) -​ + func main() { cfg := elasticsearch.Config{ Address: "${url}", @@ -88,7 +88,7 @@ func main() { { "index": { "_id": "1"}} {"name": "foo", "title": "bar"}\n\`)). Do(context.Background()) - ​ + fmt.Println(res, err) }`, }; diff --git a/x-pack/plugins/serverless_search/public/application/components/languages/go.ts b/x-pack/plugins/serverless_search/public/application/components/languages/go.ts index 0ef4dc483ad53..d92195ad6d82e 100644 --- a/x-pack/plugins/serverless_search/public/application/components/languages/go.ts +++ b/x-pack/plugins/serverless_search/public/application/components/languages/go.ts @@ -23,7 +23,7 @@ fmt.Println(searchResp, err)`, "fmt" "log" "strings" -​ + "github.com/elastic/elasticsearch-serverless-go" ) @@ -69,10 +69,10 @@ fmt.Println(ingestResult, err)`, "fmt" "log" "strings" -​ + "github.com/elastic/elasticsearch-serverless-go" ) -​ + func main() { cfg := elasticsearch.Config{ Address: "${url}", @@ -88,7 +88,7 @@ func main() { { "index": { "_id": "1"}} {"name": "foo", "title": "bar"}\n\`)). Do(context.Background()) - ​ + fmt.Println(res, err) }`, installClient: 'go get -u github.com/elastic/elasticsearch-serverless-go@latest', From 60f530f873521ecf2eeeda490f4ed047025f6670 Mon Sep 17 00:00:00 2001 From: Tiago Costa Date: Thu, 12 Oct 2023 21:35:31 +0100 Subject: [PATCH 62/79] skip flaky suite (#168427) --- .../automated_response_actions.cy.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/x-pack/plugins/security_solution/public/management/cypress/e2e/automated_response_actions/automated_response_actions.cy.ts b/x-pack/plugins/security_solution/public/management/cypress/e2e/automated_response_actions/automated_response_actions.cy.ts index a671b1c855f84..4186317a18e26 100644 --- a/x-pack/plugins/security_solution/public/management/cypress/e2e/automated_response_actions/automated_response_actions.cy.ts +++ b/x-pack/plugins/security_solution/public/management/cypress/e2e/automated_response_actions/automated_response_actions.cy.ts @@ -66,7 +66,8 @@ describe( disableExpandableFlyoutAdvancedSettings(); }); - describe('From alerts', () => { + // FLAKY: https://github.com/elastic/kibana/issues/168427 + describe.skip('From alerts', () => { let ruleId: string; let ruleName: string; @@ -83,7 +84,7 @@ describe( } }); - it.skip('should have generated endpoint and rule', () => { + it('should have generated endpoint and rule', () => { loadPage(APP_ENDPOINTS_PATH); cy.contains(createdHost.hostname).should('exist'); From a07fa0f75c881e048e2b9ec3d445f17b4ea5cd12 Mon Sep 17 00:00:00 2001 From: Tiago Costa Date: Thu, 12 Oct 2023 21:37:14 +0100 Subject: [PATCH 63/79] skip flaky suite (#168284) --- .../management/cypress/e2e/endpoint_list/endpoints.cy.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/security_solution/public/management/cypress/e2e/endpoint_list/endpoints.cy.ts b/x-pack/plugins/security_solution/public/management/cypress/e2e/endpoint_list/endpoints.cy.ts index 0c6c64afad492..8e8c989612cbe 100644 --- a/x-pack/plugins/security_solution/public/management/cypress/e2e/endpoint_list/endpoints.cy.ts +++ b/x-pack/plugins/security_solution/public/management/cypress/e2e/endpoint_list/endpoints.cy.ts @@ -32,7 +32,8 @@ import { createEndpointHost } from '../../tasks/create_endpoint_host'; import { deleteAllLoadedEndpointData } from '../../tasks/delete_all_endpoint_data'; import { enableAllPolicyProtections } from '../../tasks/endpoint_policy'; -describe('Endpoints page', { tags: ['@ess', '@serverless', '@brokenInServerless'] }, () => { +// FLAKY: https://github.com/elastic/kibana/issues/168284 +describe.skip('Endpoints page', { tags: ['@ess', '@serverless', '@brokenInServerless'] }, () => { let indexedPolicy: IndexedFleetEndpointPolicyResponse; let policy: PolicyData; let createdHost: CreateAndEnrollEndpointHostResponse; From c1098b58b18bdb9536bd360ae26c02a60dff1dfe Mon Sep 17 00:00:00 2001 From: Tiago Costa Date: Thu, 12 Oct 2023 21:45:26 +0100 Subject: [PATCH 64/79] skip flaky suite (#168742) --- x-pack/plugins/osquery/cypress/e2e/all/custom_space.cy.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/osquery/cypress/e2e/all/custom_space.cy.ts b/x-pack/plugins/osquery/cypress/e2e/all/custom_space.cy.ts index 0c46fbf074966..bdcacf9cf4615 100644 --- a/x-pack/plugins/osquery/cypress/e2e/all/custom_space.cy.ts +++ b/x-pack/plugins/osquery/cypress/e2e/all/custom_space.cy.ts @@ -20,7 +20,8 @@ const testSpaces = [ { name: 'default', tags: ['@ess', '@serverless'] }, { name: 'custom-spaces', tags: ['@ess'] }, ]; -describe('ALL - Custom space', () => { +// FLAKY: https://github.com/elastic/kibana/issues/168742 +describe.skip('ALL - Custom space', () => { testSpaces.forEach((testSpace) => { describe(`[${testSpace.name}]`, { tags: testSpace.tags }, () => { let packName: string; From d5c8067451320a0242cfe213741662903b93a4c2 Mon Sep 17 00:00:00 2001 From: Tiago Costa Date: Thu, 12 Oct 2023 21:49:19 +0100 Subject: [PATCH 65/79] skip flaky suite (#168743) --- .../cypress/e2e/all/alerts_automated_action_results.cy.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/osquery/cypress/e2e/all/alerts_automated_action_results.cy.ts b/x-pack/plugins/osquery/cypress/e2e/all/alerts_automated_action_results.cy.ts index 4505af882da94..802671cfb8fc0 100644 --- a/x-pack/plugins/osquery/cypress/e2e/all/alerts_automated_action_results.cy.ts +++ b/x-pack/plugins/osquery/cypress/e2e/all/alerts_automated_action_results.cy.ts @@ -10,7 +10,8 @@ import { checkActionItemsInResults, loadRuleAlerts } from '../../tasks/live_quer const UUID_REGEX = '[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}'; -describe( +// FLAKY: https://github.com/elastic/kibana/issues/168743 +describe.skip( 'Alert Flyout Automated Action Results', { tags: ['@ess', '@serverless'], From 679716d0b1740500233eae3b3dd8e41cabd6b44e Mon Sep 17 00:00:00 2001 From: Yuliia Naumenko Date: Thu, 12 Oct 2023 14:19:28 -0700 Subject: [PATCH 66/79] Security solution newsfeed for Serverless (#168737) Bringing back security newsfeed for serverless project --- config/serverless.security.yml | 2 ++ packages/kbn-management/settings/setting_ids/index.ts | 2 +- packages/serverless/settings/security_project/index.ts | 2 ++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/config/serverless.security.yml b/config/serverless.security.yml index 225b9f2656636..1d3e83c76202a 100644 --- a/config/serverless.security.yml +++ b/config/serverless.security.yml @@ -23,6 +23,8 @@ xpack.securitySolution.offeringSettings: { ESQLEnabled: false, # ES|QL disabled, not supported by serverless Elasticsearch } +newsfeed.enabled: true + ## Set the home route uiSettings.overrides.defaultRoute: /app/security/get_started diff --git a/packages/kbn-management/settings/setting_ids/index.ts b/packages/kbn-management/settings/setting_ids/index.ts index 0613326d8f428..9a1188b868961 100644 --- a/packages/kbn-management/settings/setting_ids/index.ts +++ b/packages/kbn-management/settings/setting_ids/index.ts @@ -157,8 +157,8 @@ export const SECURITY_SOLUTION_DEFAULT_INDEX_ID = 'securitySolution:defaultIndex export const SECURITY_SOLUTION_DEFAULT_THREAT_INDEX_ID = 'securitySolution:defaultThreatIndex'; export const SECURITY_SOLUTION_DEFAULT_ANOMALY_SCORE_ID = 'securitySolution:defaultAnomalyScore'; export const SECURITY_SOLUTION_ENABLE_GROUPED_NAV_ID = 'securitySolution:enableGroupedNav'; -export const SECURITY_SOLUTION_ENABLE_NEWS_FEED_ID = 'securitySolution:enableNewsFeed'; export const SECURITY_SOLUTION_RULES_TABLE_REFRESH_ID = 'securitySolution:rulesTableRefresh'; +export const SECURITY_SOLUTION_ENABLE_NEWS_FEED_ID = 'securitySolution:enableNewsFeed'; export const SECURITY_SOLUTION_NEWS_FEED_URL_ID = 'securitySolution:newsFeedUrl'; export const SECURITY_SOLUTION_IP_REPUTATION_LINKS_ID = 'securitySolution:ipReputationLinks'; export const SECURITY_SOLUTION_ENABLE_CCS_WARNING_ID = 'securitySolution:enableCcsWarning'; diff --git a/packages/serverless/settings/security_project/index.ts b/packages/serverless/settings/security_project/index.ts index 070a75f163d41..3a3ed2addf9f4 100644 --- a/packages/serverless/settings/security_project/index.ts +++ b/packages/serverless/settings/security_project/index.ts @@ -20,4 +20,6 @@ export const SECURITY_PROJECT_SETTINGS = [ settings.SECURITY_SOLUTION_IP_REPUTATION_LINKS_ID, settings.SECURITY_SOLUTION_ENABLE_CCS_WARNING_ID, settings.SECURITY_SOLUTION_SHOW_RELATED_INTEGRATIONS_ID, + settings.SECURITY_SOLUTION_NEWS_FEED_URL_ID, + settings.SECURITY_SOLUTION_ENABLE_NEWS_FEED_ID, ]; From 33207e3e661b0fdb5549e54f757617734d5624ff Mon Sep 17 00:00:00 2001 From: Rachel Shen Date: Thu, 12 Oct 2023 15:53:58 -0600 Subject: [PATCH 67/79] [Reporting] Add protocolTimeout to screenshotting plugin (#167335) ## Summary Timeout settings for the screenshotting plugin that uses puppeteer is facing an issue where the connection is closed too quickly for reporting to work. Test this fixes the protocolTimeout puppeteer with example plugin and modifying the x-pack/examples/reporting_example/public/containers/main.tsx useEffect. ```jsx useEffect(() => { Rx.timer(22000) .pipe(takeWhile(() => logos.length < sourceLogos.length)) .subscribe(() => { setLogos([...sourceLogos.slice(0, logos.length + 1)]); }); }); ``` and then modifying the kibana.yml to `xpack.reporting.capture.timeouts.openUrl: 200000s` The report waits for all cards to load before capturing the screenshot --- .../server/browsers/chromium/driver_factory/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/x-pack/plugins/screenshotting/server/browsers/chromium/driver_factory/index.ts b/x-pack/plugins/screenshotting/server/browsers/chromium/driver_factory/index.ts index 53f0fd5d642b5..ce8b8a3a209d9 100644 --- a/x-pack/plugins/screenshotting/server/browsers/chromium/driver_factory/index.ts +++ b/x-pack/plugins/screenshotting/server/browsers/chromium/driver_factory/index.ts @@ -167,6 +167,7 @@ export class HeadlessChromiumDriverFactory { TZ: browserTimezone, }, headless: 'new', + protocolTimeout: 0, }); } catch (err) { observer.error( From f28349faf19d78bb679918297742a0bf7cb064f5 Mon Sep 17 00:00:00 2001 From: "Quynh Nguyen (Quinn)" <43350163+qn895@users.noreply.github.com> Date: Thu, 12 Oct 2023 17:52:25 -0500 Subject: [PATCH 68/79] [ML] Add functional tests for Data Drift view (#167911) Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../data_drift/data_drift_overview_table.tsx | 8 +- .../data_drift/data_drift_page.tsx | 6 +- .../data_drift/data_drift_utils.ts | 5 +- .../document_count_with_dual_brush.tsx | 4 +- .../data_drift_index_patterns_editor.tsx | 8 +- .../data_drift/data_view_editor.tsx | 11 +- .../data_drift/index_patterns_picker.tsx | 1 + .../model_management/expanded_row.tsx | 4 +- .../apps/ml/data_visualizer/data_drift.ts | 282 +++++++++++++----- .../model_management/model_list.ts | 72 ++++- .../test/functional/services/ml/data_drift.ts | 140 ++++++++- .../services/ml/trained_models_table.ts | 78 ++++- 12 files changed, 525 insertions(+), 94 deletions(-) diff --git a/x-pack/plugins/data_visualizer/public/application/data_drift/data_drift_overview_table.tsx b/x-pack/plugins/data_visualizer/public/application/data_drift/data_drift_overview_table.tsx index 1c03e18f52e8e..57d2f28af4c18 100644 --- a/x-pack/plugins/data_visualizer/public/application/data_drift/data_drift_overview_table.tsx +++ b/x-pack/plugins/data_visualizer/public/application/data_drift/data_drift_overview_table.tsx @@ -112,6 +112,9 @@ export const DataDriftOverviewTable = ({ return ( toggleDetails(item)} aria-label={itemIdToExpandedRowMapValues[item.featureName] ? COLLAPSE_ROW : EXPAND_ROW} iconType={itemIdToExpandedRowMapValues[item.featureName] ? 'arrowDown' : 'arrowRight'} @@ -149,7 +152,10 @@ export const DataDriftOverviewTable = ({ 'data-test-subj': 'mlDataDriftOverviewTableDriftDetected', sortable: true, textOnly: true, - render: (driftDetected: boolean) => { + render: (driftDetected: boolean, item) => { + // @ts-expect-error currently ES two_sided does return string NaN, will be fixed + // NaN happens when the distributions are non overlapping. This means there is a drift. + if (item.similarityTestPValue === 'NaN') return dataComparisonYesLabel; return {driftDetected ? dataComparisonYesLabel : dataComparisonNoLabel}; }, }, diff --git a/x-pack/plugins/data_visualizer/public/application/data_drift/data_drift_page.tsx b/x-pack/plugins/data_visualizer/public/application/data_drift/data_drift_page.tsx index 86ddff5c25e3f..2411c9096be70 100644 --- a/x-pack/plugins/data_visualizer/public/application/data_drift/data_drift_page.tsx +++ b/x-pack/plugins/data_visualizer/public/application/data_drift/data_drift_page.tsx @@ -94,7 +94,11 @@ export const PageHeader: FC = () => { return ( {dataView.getName()}
    } + pageTitle={ +
    + {dataView.getName()} +
    + } rightSideItems={[ {hasValidTimeField ? ( diff --git a/x-pack/plugins/data_visualizer/public/application/data_drift/data_drift_utils.ts b/x-pack/plugins/data_visualizer/public/application/data_drift/data_drift_utils.ts index bb9b5cbc5a99b..43c0afee07e3e 100644 --- a/x-pack/plugins/data_visualizer/public/application/data_drift/data_drift_utils.ts +++ b/x-pack/plugins/data_visualizer/public/application/data_drift/data_drift_utils.ts @@ -9,8 +9,11 @@ * formatSignificanceLevel * @param significanceLevel */ -export const formatSignificanceLevel = (significanceLevel: number) => { +export const formatSignificanceLevel = (significanceLevel: number | 'NaN') => { + // NaN happens when the distributions are non overlapping. This means there is a drift, and the p-value would be astronomically small. + if (significanceLevel === 'NaN') return '< 0.000001'; if (typeof significanceLevel !== 'number' || isNaN(significanceLevel)) return ''; + if (significanceLevel < 1e-6) { return '< 0.000001'; } else if (significanceLevel < 0.01) { diff --git a/x-pack/plugins/data_visualizer/public/application/data_drift/document_count_with_dual_brush.tsx b/x-pack/plugins/data_visualizer/public/application/data_drift/document_count_with_dual_brush.tsx index 63d717cec0393..0d83879c37486 100644 --- a/x-pack/plugins/data_visualizer/public/application/data_drift/document_count_with_dual_brush.tsx +++ b/x-pack/plugins/data_visualizer/public/application/data_drift/document_count_with_dual_brush.tsx @@ -141,7 +141,7 @@ export const DocumentCountWithDualBrush: FC = ({ timeRangeEarliest === undefined || timeRangeLatest === undefined ) { - return totalCount !== undefined ? : null; + return totalCount !== undefined ? : null; } const chartPoints: LogRateHistogramItem[] = Object.entries(documentCountStats.buckets).map( @@ -166,7 +166,7 @@ export const DocumentCountWithDualBrush: FC = ({ data-test-subj={getDataTestSubject('dataDriftTotalDocCountHeader', id)} > - + diff --git a/x-pack/plugins/ml/public/application/datavisualizer/data_drift/data_drift_index_patterns_editor.tsx b/x-pack/plugins/ml/public/application/datavisualizer/data_drift/data_drift_index_patterns_editor.tsx index 76cf041426758..5e388d72af92c 100644 --- a/x-pack/plugins/ml/public/application/datavisualizer/data_drift/data_drift_index_patterns_editor.tsx +++ b/x-pack/plugins/ml/public/application/datavisualizer/data_drift/data_drift_index_patterns_editor.tsx @@ -246,7 +246,7 @@ export function DataDriftIndexPatternsEditor({ children: ( @@ -183,6 +186,12 @@ export function DataViewEditor({ columns={columns} pagination={pagination} onChange={onTableChange} + data-test-subject={`mlDataDriftIndexPatternTable-${id ?? ''}`} + rowProps={(item) => { + return { + 'data-test-subj': `mlDataDriftIndexPatternTableRow row-${id}`, + }; + }} /> diff --git a/x-pack/plugins/ml/public/application/datavisualizer/data_drift/index_patterns_picker.tsx b/x-pack/plugins/ml/public/application/datavisualizer/data_drift/index_patterns_picker.tsx index 1f414d8224578..18f3dcea8ae70 100644 --- a/x-pack/plugins/ml/public/application/datavisualizer/data_drift/index_patterns_picker.tsx +++ b/x-pack/plugins/ml/public/application/datavisualizer/data_drift/index_patterns_picker.tsx @@ -88,6 +88,7 @@ export const DataDriftIndexOrSearchRedirect: FC = () => { iconType="plusInCircleFilled" onClick={() => navigateToPath(createPath(ML_PAGES.DATA_DRIFT_CUSTOM))} disabled={!canEditDataView} + data-test-subj={'dataDriftCreateDataViewButton'} > = ({ item }) => { : []), { id: 'models_map', - 'data-test-subj': 'mlTrainedModelsMap', + 'data-test-subj': 'mlTrainedModelMap', name: ( = ({ item }) => { /> ), content: ( -
    +
    { - await elasticChart.setNewChartUiDebugFlag(true); - - await ml.testExecution.logTestStep( - `${testData.suiteTitle} loads the saved search selection page` - ); - await ml.navigation.navigateToDataDrift(); - - await ml.testExecution.logTestStep( - `${testData.suiteTitle} loads the data drift index or saved search select page` - ); - await ml.jobSourceSelection.selectSourceForDataDrift(testData.sourceIndexOrSavedSearch); - }); + async function assertDataDriftPageContent(testData: TestData) { + await PageObjects.header.waitUntilLoadingHasFinished(); - it(`${testData.suiteTitle} displays index details`, async () => { - await ml.testExecution.logTestStep(`${testData.suiteTitle} displays the time range step`); - await ml.dataDrift.assertTimeRangeSelectorSectionExists(); + await ml.testExecution.logTestStep(`${testData.suiteTitle} displays the time range step`); + await ml.dataDrift.assertTimeRangeSelectorSectionExists(); - await ml.testExecution.logTestStep(`${testData.suiteTitle} loads data for full time range`); - await ml.dataDrift.clickUseFullDataButton(); + await ml.testExecution.logTestStep(`${testData.suiteTitle} loads data for full time range`); + await ml.dataDrift.clickUseFullDataButton(); - await ml.dataDrift.setRandomSamplingOption('Reference', 'dvRandomSamplerOptionOff'); - await ml.dataDrift.setRandomSamplingOption('Comparison', 'dvRandomSamplerOptionOff'); + await ml.dataDrift.setRandomSamplingOption('Reference', 'dvRandomSamplerOptionOff'); + await ml.dataDrift.setRandomSamplingOption('Comparison', 'dvRandomSamplerOptionOff'); - await PageObjects.header.waitUntilLoadingHasFinished(); + await PageObjects.header.waitUntilLoadingHasFinished(); - await ml.testExecution.logTestStep( - `${testData.suiteTitle} displays elements in the doc count panel correctly` - ); - await ml.dataDrift.assertPrimarySearchBarExists(); - await ml.dataDrift.assertReferenceDocCountContent(); - await ml.dataDrift.assertComparisonDocCountContent(); + await ml.testExecution.logTestStep( + `${testData.suiteTitle} displays elements in the doc count panel correctly` + ); + await ml.dataDrift.assertPrimarySearchBarExists(); + await ml.dataDrift.assertReferenceDocCountContent(); + await ml.dataDrift.assertComparisonDocCountContent(); - await ml.testExecution.logTestStep( - `${testData.suiteTitle} displays elements in the page correctly` - ); - await ml.dataDrift.assertNoWindowParametersEmptyPromptExists(); + await ml.testExecution.logTestStep( + `${testData.suiteTitle} displays elements on the page correctly` + ); + await ml.dataDrift.assertNoWindowParametersEmptyPromptExists(); + if (testData.chartClickCoordinates) { await ml.testExecution.logTestStep('clicks the document count chart to start analysis'); await ml.dataDrift.clickDocumentCountChart( 'dataDriftDocCountChart-Reference', testData.chartClickCoordinates ); - await ml.dataDrift.runAnalysis(); - }); + } + await ml.dataDrift.runAnalysis(); } describe('data drift', async function () { - for (const testData of [farequoteDataViewTestDataWithQuery]) { - describe(`with '${testData.sourceIndexOrSavedSearch}'`, function () { - before(async () => { - await esArchiver.loadIfNeeded('x-pack/test/functional/es_archives/ml/farequote'); - - await ml.testResources.createIndexPatternIfNeeded( - testData.sourceIndexOrSavedSearch, - '@timestamp' - ); - - await ml.testResources.setKibanaTimeZoneToUTC(); - - if (testData.dataGenerator === 'kibana_sample_data_logs') { - await PageObjects.security.login('elastic', 'changeme', { - expectSuccess: true, - }); - - await PageObjects.common.navigateToUrl('home', '/tutorial_directory/sampleData', { - useActualUrl: true, - }); - await PageObjects.header.waitUntilLoadingHasFinished(); - await PageObjects.home.addSampleDataSet('logs'); - await PageObjects.header.waitUntilLoadingHasFinished(); - } else { - await ml.securityUI.loginAsMlPowerUser(); - } - }); - - after(async () => { - await elasticChart.setNewChartUiDebugFlag(false); - await ml.testResources.deleteIndexPatternByTitle(testData.sourceIndexOrSavedSearch); - await esArchiver.unload('x-pack/test/functional/es_archives/ml/farequote'); - }); - - it(`${testData.suiteTitle} loads the ml page`, async () => { - // Start navigation from the base of the ML app. - await ml.navigation.navigateToMl(); - await elasticChart.setNewChartUiDebugFlag(true); - }); - - runTests(testData); + before(async () => { + await esArchiver.loadIfNeeded('x-pack/test/functional/es_archives/ml/ihp_outlier'); + await ml.testResources.createIndexPatternIfNeeded('ft_ihp_outlier'); + + await esArchiver.loadIfNeeded('x-pack/test/functional/es_archives/ml/farequote'); + await ml.testResources.createIndexPatternIfNeeded('ft_farequote', '@timestamp'); + await ml.testResources.createSavedSearchFarequoteFilterAndKueryIfNeeded(); + + await ml.testResources.setKibanaTimeZoneToUTC(); + await ml.securityUI.loginAsMlPowerUser(); + }); + after(async () => { + await esArchiver.unload('x-pack/test/functional/es_archives/ml/ihp_outlier'); + await esArchiver.unload('x-pack/test/functional/es_archives/ml/farequote'); + await Promise.all([ + ml.testResources.deleteIndexPatternByTitle('ft_fare*'), + ml.testResources.deleteIndexPatternByTitle('ft_fare*,ft_fareq*'), + ml.testResources.deleteIndexPatternByTitle('ft_farequote'), + ml.testResources.deleteIndexPatternByTitle('ft_ihp_outlier'), + ]); + }); + + describe('with ft_farequote_filter_and_kuery from index selection page', async function () { + after(async () => { + await elasticChart.setNewChartUiDebugFlag(false); }); - } + + it(`${farequoteKQLFiltersSearchTestData.suiteTitle} loads the ml page`, async () => { + // Start navigation from the base of the ML app. + await ml.navigation.navigateToMl(); + await elasticChart.setNewChartUiDebugFlag(true); + }); + + it(`${farequoteKQLFiltersSearchTestData.suiteTitle} loads the source data in data drift`, async () => { + await ml.testExecution.logTestStep( + `${farequoteKQLFiltersSearchTestData.suiteTitle} loads the data drift index or saved search select page` + ); + await ml.navigation.navigateToDataDrift(); + + await ml.testExecution.logTestStep( + `${farequoteKQLFiltersSearchTestData.suiteTitle} loads the data drift view` + ); + await ml.jobSourceSelection.selectSourceForDataDrift( + farequoteKQLFiltersSearchTestData.sourceIndexOrSavedSearch + ); + await assertDataDriftPageContent(farequoteKQLFiltersSearchTestData); + + if (farequoteKQLFiltersSearchTestData.dataViewName !== undefined) { + await ml.dataDrift.assertDataViewTitle(farequoteKQLFiltersSearchTestData.dataViewName); + } + + await ml.dataDrift.assertTotalDocumentCount( + 'Reference', + farequoteKQLFiltersSearchTestData.totalDocCount + ); + await ml.dataDrift.assertTotalDocumentCount( + 'Comparison', + farequoteKQLFiltersSearchTestData.totalDocCount + ); + }); + }); + + describe(dataViewCreationTestData.suiteTitle, function () { + beforeEach(`${dataViewCreationTestData.suiteTitle} loads the ml page`, async () => { + // Start navigation from the base of the ML app. + await ml.navigation.navigateToMl(); + await elasticChart.setNewChartUiDebugFlag(true); + await ml.testExecution.logTestStep( + `${dataViewCreationTestData.suiteTitle} loads the saved search selection page` + ); + await ml.navigation.navigateToDataDrift(); + }); + + it(`${dataViewCreationTestData.suiteTitle} allows analyzing data drift without saving`, async () => { + await ml.testExecution.logTestStep( + `${dataViewCreationTestData.suiteTitle} creates new data view` + ); + await ml.dataDrift.navigateToCreateNewDataViewPage(); + await ml.dataDrift.assertIndexPatternNotEmptyFormErrorExists('reference'); + await ml.dataDrift.assertIndexPatternNotEmptyFormErrorExists('comparison'); + await ml.dataDrift.assertAnalyzeWithoutSavingButtonState(true); + await ml.dataDrift.assertAnalyzeDataDriftButtonState(true); + + await ml.testExecution.logTestStep( + `${dataViewCreationTestData.suiteTitle} sets index patterns` + ); + await ml.dataDrift.setIndexPatternInput('reference', 'ft_fare*'); + await ml.dataDrift.setIndexPatternInput('comparison', 'ft_fareq*'); + + await ml.dataDrift.selectTimeField(dataViewCreationTestData.dateTimeField); + + await ml.dataDrift.assertAnalyzeWithoutSavingButtonState(false); + await ml.dataDrift.assertAnalyzeDataDriftButtonState(false); + + await ml.testExecution.logTestStep( + `${dataViewCreationTestData.suiteTitle} redirects to data drift page` + ); + await ml.dataDrift.clickAnalyzeWithoutSavingButton(); + await assertDataDriftPageContent(dataViewCreationTestData); + await ml.dataDrift.assertDataViewTitle('ft_fare*,ft_fareq*'); + await ml.dataDrift.assertTotalDocumentCount( + 'Reference', + dataViewCreationTestData.totalDocCount + ); + await ml.dataDrift.assertTotalDocumentCount( + 'Comparison', + dataViewCreationTestData.totalDocCount + ); + }); + + it(`${dataViewCreationTestData.suiteTitle} hides analyze data drift without saving option if patterns are same`, async () => { + await ml.dataDrift.navigateToCreateNewDataViewPage(); + await ml.dataDrift.assertAnalyzeWithoutSavingButtonState(true); + await ml.dataDrift.assertAnalyzeDataDriftButtonState(true); + + await ml.testExecution.logTestStep( + `${dataViewCreationTestData.suiteTitle} sets index patterns` + ); + await ml.dataDrift.setIndexPatternInput('reference', 'ft_fare*'); + await ml.dataDrift.setIndexPatternInput('comparison', 'ft_fare*'); + + await ml.dataDrift.assertAnalyzeWithoutSavingButtonMissing(); + await ml.dataDrift.assertAnalyzeDataDriftButtonState(false); + + await ml.testExecution.logTestStep( + `${dataViewCreationTestData.suiteTitle} redirects to data drift page` + ); + await ml.dataDrift.clickAnalyzeDataDrift(); + await assertDataDriftPageContent(dataViewCreationTestData); + + await ml.testExecution.logTestStep( + `${dataViewCreationTestData.suiteTitle} does not create new data view, and uses available one with matching index pattern` + ); + await ml.dataDrift.assertDataViewTitle('ft_farequote'); + await ml.dataDrift.assertTotalDocumentCount( + 'Reference', + dataViewCreationTestData.totalDocCount + ); + await ml.dataDrift.assertTotalDocumentCount( + 'Comparison', + dataViewCreationTestData.totalDocCount + ); + }); + + it(`${nonTimeSeriesTestData.suiteTitle} loads non-time series data`, async () => { + await ml.jobSourceSelection.selectSourceForDataDrift( + nonTimeSeriesTestData.sourceIndexOrSavedSearch + ); + await ml.dataDrift.runAnalysis(); + }); + }); }); } diff --git a/x-pack/test/functional/apps/ml/short_tests/model_management/model_list.ts b/x-pack/test/functional/apps/ml/short_tests/model_management/model_list.ts index 67f3728eab9f9..9ae541c834714 100644 --- a/x-pack/test/functional/apps/ml/short_tests/model_management/model_list.ts +++ b/x-pack/test/functional/apps/ml/short_tests/model_management/model_list.ts @@ -67,6 +67,25 @@ export default function ({ getService }: FtrProviderContext) { }, }; + const modelWithPipelineAndDestIndex = { + modelId: 'dfa_regression_model_n_1', + description: '', + modelTypes: ['regression', 'tree_ensemble'], + }; + const modelWithPipelineAndDestIndexExpectedValues = { + dataViewTitle: `user-index_${modelWithPipelineAndDestIndex.modelId}`, + index: `user-index_${modelWithPipelineAndDestIndex.modelId}`, + name: `ml-inference-${modelWithPipelineAndDestIndex.modelId}`, + description: '', + inferenceConfig: { + regression: { + results_field: 'predicted_value', + num_top_feature_importance_values: 0, + }, + }, + fieldMap: {}, + }; + before(async () => { for (const model of trainedModels) { await ml.api.importTrainedModel(model.id, model.name); @@ -77,17 +96,32 @@ export default function ({ getService }: FtrProviderContext) { // Make sure the .ml-stats index is created in advance, see https://github.com/elastic/elasticsearch/issues/65846 await ml.api.assureMlStatsIndexExists(); + + // Create ingest pipeline and destination index that's tied to model + await ml.api.createIngestPipeline(modelWithPipelineAndDestIndex.modelId); + await ml.api.createIndex(modelWithPipelineAndDestIndexExpectedValues.index, undefined, { + index: { default_pipeline: `pipeline_${modelWithPipelineAndDestIndex.modelId}` }, + }); }); after(async () => { await ml.api.stopAllTrainedModelDeploymentsES(); await ml.api.deleteAllTrainedModelsES(); + + await ml.api.cleanMlIndices(); + await ml.api.deleteIndices(modelWithPipelineAndDestIndexExpectedValues.index); + await ml.api.deleteIngestPipeline(modelWithoutPipelineDataExpectedValues.name, false); await ml.api.deleteIngestPipeline( modelWithoutPipelineDataExpectedValues.duplicateName, false ); - await ml.api.cleanMlIndices(); + + // Need to delete index before ingest pipeline, else it will give error + await ml.api.deleteIngestPipeline(modelWithPipelineAndDestIndex.modelId); + await ml.testResources.deleteIndexPatternByTitle( + modelWithPipelineAndDestIndexExpectedValues.dataViewTitle + ); }); describe('for ML user with read-only access', () => { @@ -387,7 +421,43 @@ export default function ({ getService }: FtrProviderContext) { ); }); + it('navigates to data drift', async () => { + await ml.testExecution.logTestStep('should show the model map in the expanded row'); + await ml.trainedModelsTable.ensureRowIsExpanded(modelWithPipelineAndDestIndex.modelId); + await ml.trainedModelsTable.assertModelsMapTabContent(); + + await ml.testExecution.logTestStep( + 'should navigate to data drift index pattern creation page' + ); + + await ml.trainedModelsTable.assertAnalyzeDataDriftActionButtonEnabled( + modelWithPipelineAndDestIndex.modelId, + true + ); + await ml.trainedModelsTable.clickAnalyzeDataDriftActionButton( + modelWithPipelineAndDestIndex.modelId + ); + + await ml.testExecution.logTestStep(`sets index pattern for reference data set`); + await ml.dataDrift.setIndexPatternInput( + 'reference', + `${modelWithPipelineAndDestIndexExpectedValues.index}*` + ); + await ml.dataDrift.assertIndexPatternInput( + 'comparison', + modelWithPipelineAndDestIndexExpectedValues.index + ); + + await ml.testExecution.logTestStep(`redirects to data drift page`); + await ml.trainedModelsTable.clickAnalyzeDataDriftWithoutSaving(); + await ml.navigation.navigateToTrainedModels(); + }); + describe('with imported models', function () { + before(async () => { + await ml.navigation.navigateToTrainedModels(); + }); + for (const model of trainedModels) { it(`renders expanded row content correctly for imported tiny model ${model.id} without pipelines`, async () => { await ml.trainedModelsTable.ensureRowIsExpanded(model.id); diff --git a/x-pack/test/functional/services/ml/data_drift.ts b/x-pack/test/functional/services/ml/data_drift.ts index 2e0eec6f0e10e..b077caafd0bee 100644 --- a/x-pack/test/functional/services/ml/data_drift.ts +++ b/x-pack/test/functional/services/ml/data_drift.ts @@ -8,6 +8,8 @@ import expect from '@kbn/expect'; import { FtrProviderContext } from '../../ftr_provider_context'; +type SubjectId = 'reference' | 'comparison'; + export function MachineLearningDataDriftProvider({ getService, getPageObjects, @@ -17,6 +19,7 @@ export function MachineLearningDataDriftProvider({ const PageObjects = getPageObjects(['discover', 'header']); const elasticChart = getService('elasticChart'); const browser = getService('browser'); + const comboBox = getService('comboBox'); type RandomSamplerOption = | 'dvRandomSamplerOptionOnAutomatic' @@ -29,11 +32,27 @@ export function MachineLearningDataDriftProvider({ return `${testSubject}-${id}`; }, + async assertDataViewTitle(expectedTitle: string) { + const selector = 'mlDataDriftPageDataViewTitle'; + await testSubjects.existOrFail(selector); + await retry.tryForTime(5000, async () => { + const title = await testSubjects.getVisibleText(selector); + expect(title).to.eql( + expectedTitle, + `Expected data drift page's data view title to be '${expectedTitle}' (got '${title}')` + ); + }); + }, + async assertTimeRangeSelectorSectionExists() { await testSubjects.existOrFail('dataComparisonTimeRangeSelectorSection'); }, - async assertTotalDocumentCount(selector: string, expectedFormattedTotalDocCount: string) { + async assertTotalDocumentCount( + id: 'Reference' | 'Comparison', + expectedFormattedTotalDocCount: string + ) { + const selector = `dataVisualizerTotalDocCount-${id}`; await retry.tryForTime(5000, async () => { const docCount = await testSubjects.getVisibleText(selector); expect(docCount).to.eql( @@ -206,9 +225,126 @@ export function MachineLearningDataDriftProvider({ async runAnalysis() { await retry.tryForTime(5000, async () => { await testSubjects.click(`aiopsRerunAnalysisButton`); - // As part of the interface for the histogram brushes, the button to clear the selection should be present await this.assertDataDriftTableExists(); }); }, + + async navigateToCreateNewDataViewPage() { + await retry.tryForTime(5000, async () => { + await testSubjects.click(`dataDriftCreateDataViewButton`); + await testSubjects.existOrFail(`mlPageDataDriftCustomIndexPatterns`); + }); + }, + + async assertIndexPatternNotEmptyFormErrorExists(id: SubjectId) { + const subj = `mlDataDriftIndexPatternFormRow-${id ?? ''}`; + await retry.tryForTime(5000, async () => { + await testSubjects.existOrFail(subj); + const row = await testSubjects.find(subj); + const errorElements = await row.findAllByClassName('euiFormErrorText'); + expect(await errorElements[0].getVisibleText()).eql('Index pattern must not be empty.'); + }); + }, + + async assertIndexPatternInput(id: SubjectId, expectedText: string) { + const inputSelector = `mlDataDriftIndexPatternTitleInput-${id}`; + + await retry.tryForTime(5000, async () => { + const input = await testSubjects.find(inputSelector); + const text = await input.getAttribute('value'); + expect(text).eql( + expectedText, + `Expected ${inputSelector} to have text ${expectedText} (got ${text})` + ); + }); + }, + + async setIndexPatternInput(id: SubjectId, pattern: string) { + const inputSelector = `mlDataDriftIndexPatternTitleInput-${id}`; + + // The input for index pattern automatically appends "*" at the end of the string + // So here we just omit that * at the end to avoid double characters + + await retry.tryForTime(10 * 1000, async () => { + const hasWildCard = pattern.endsWith('*'); + const trimmedPattern = hasWildCard ? pattern.substring(0, pattern.length - 1) : pattern; + + const input = await testSubjects.find(inputSelector); + await input.clearValue(); + + await testSubjects.setValue(inputSelector, trimmedPattern, { + clearWithKeyboard: true, + typeCharByChar: true, + }); + + if (!hasWildCard) { + // If original pattern does not have wildcard, make to delete the wildcard + await input.focus(); + await browser.pressKeys(browser.keys.DELETE); + } + + await this.assertIndexPatternInput(id, pattern); + }); + }, + + async assertAnalyzeWithoutSavingButtonMissing() { + await retry.tryForTime(5000, async () => { + await testSubjects.missingOrFail('analyzeDataDriftWithoutSavingButton'); + }); + }, + + async assertAnalyzeWithoutSavingButtonState(disabled = true) { + await retry.tryForTime(5000, async () => { + const isDisabled = !(await testSubjects.isEnabled('analyzeDataDriftWithoutSavingButton')); + expect(isDisabled).to.equal( + disabled, + `Expect analyze without saving button disabled state to be ${disabled} (got ${isDisabled})` + ); + }); + }, + + async assertAnalyzeDataDriftButtonState(disabled = true) { + await retry.tryForTime(5000, async () => { + const isDisabled = !(await testSubjects.isEnabled('analyzeDataDriftButton')); + expect(isDisabled).to.equal( + disabled, + `Expect analyze data drift button disabled state to be ${disabled} (got ${isDisabled})` + ); + }); + }, + + async clickAnalyzeWithoutSavingButton() { + await retry.tryForTime(5000, async () => { + await testSubjects.existOrFail('analyzeDataDriftWithoutSavingButton'); + await testSubjects.click('analyzeDataDriftWithoutSavingButton'); + await testSubjects.existOrFail(`mlPageDataDriftCustomIndexPatterns`); + }); + }, + + async clickAnalyzeDataDrift() { + await retry.tryForTime(5000, async () => { + await testSubjects.existOrFail('analyzeDataDriftButton'); + await testSubjects.click('analyzeDataDriftButton'); + await testSubjects.existOrFail(`mlPageDataDriftCustomIndexPatterns`); + }); + }, + + async assertDataDriftTimestampField(expectedIdentifier: string) { + await retry.tryForTime(2000, async () => { + const comboBoxSelectedOptions = await comboBox.getComboBoxSelectedOptions( + 'mlDataDriftTimestampField > comboBoxInput' + ); + expect(comboBoxSelectedOptions).to.eql( + expectedIdentifier === '' ? [] : [expectedIdentifier], + `Expected type field to be '${expectedIdentifier}' (got '${comboBoxSelectedOptions}')` + ); + }); + }, + + async selectTimeField(timeFieldName: string) { + await comboBox.set('mlDataDriftTimestampField', timeFieldName); + + await this.assertDataDriftTimestampField(timeFieldName); + }, }; } diff --git a/x-pack/test/functional/services/ml/trained_models_table.ts b/x-pack/test/functional/services/ml/trained_models_table.ts index 6616d61a78f42..878d1a0d8d1d1 100644 --- a/x-pack/test/functional/services/ml/trained_models_table.ts +++ b/x-pack/test/functional/services/ml/trained_models_table.ts @@ -226,6 +226,71 @@ export function TrainedModelsTableProvider( ); } + public async assertModelAnalyzeDataDriftButtonExists(modelId: string, expectedValue: boolean) { + const actionsExists = await testSubjects.exists( + this.rowSelector(modelId, 'mlModelsAnalyzeDataDriftAction') + ); + + expect(actionsExists).to.eql( + expectedValue, + `Expected row analyze data drift action button for trained model '${modelId}' to be ${ + expectedValue ? 'visible' : 'hidden' + } (got ${actionsExists ? 'visible' : 'hidden'})` + ); + } + + public async assertAnalyzeDataDriftActionButtonEnabled( + modelId: string, + expectedValue: boolean + ) { + const actionsButtonExists = await this.doesModelCollapsedActionsButtonExist(modelId); + + let isEnabled = null; + await retry.tryForTime(5 * 1000, async () => { + if (actionsButtonExists) { + await this.toggleActionsContextMenu(modelId, true); + const panelElement = await find.byCssSelector('.euiContextMenuPanel'); + const actionButton = await panelElement.findByTestSubject('mlModelsTableRowDeleteAction'); + isEnabled = await actionButton.isEnabled(); + // escape popover + await browser.pressKeys(browser.keys.ESCAPE); + } else { + await this.assertModelDeleteActionButtonExists(modelId, true); + isEnabled = await testSubjects.isEnabled( + this.rowSelector(modelId, 'mlModelsAnalyzeDataDriftAction') + ); + } + + expect(isEnabled).to.eql( + expectedValue, + `Expected row analyze data drift action button for trained model '${modelId}' to be '${ + expectedValue ? 'enabled' : 'disabled' + }' (got '${isEnabled ? 'enabled' : 'disabled'}')` + ); + }); + } + + public async clickAnalyzeDataDriftActionButton(modelId: string) { + await retry.tryForTime(30 * 1000, async () => { + const actionsButtonExists = await this.doesModelCollapsedActionsButtonExist(modelId); + if (actionsButtonExists) { + await this.toggleActionsContextMenu(modelId, true); + const panelElement = await find.byCssSelector('.euiContextMenuPanel'); + const actionButton = await panelElement.findByTestSubject( + 'mlModelsAnalyzeDataDriftAction' + ); + await actionButton.click(); + // escape popover + await browser.pressKeys(browser.keys.ESCAPE); + } else { + await this.assertModelDeleteActionButtonExists(modelId, true); + await testSubjects.click(this.rowSelector(modelId, 'mlModelsAnalyzeDataDriftAction')); + } + + await testSubjects.existOrFail('mlPageDataDriftCustomIndexPatterns'); + }); + } + public async assertModelTestButtonExists(modelId: string, expectedValue: boolean) { const actionExists = await testSubjects.exists( this.rowSelector(modelId, 'mlModelsTableRowTestAction') @@ -480,7 +545,7 @@ export function TrainedModelsTableProvider( } public async assertTabContent( - type: 'details' | 'stats' | 'inferenceConfig' | 'pipelines', + type: 'details' | 'stats' | 'inferenceConfig' | 'pipelines' | 'map', expectVisible = true ) { const tabTestSubj = `mlTrainedModel${upperFirst(type)}`; @@ -500,6 +565,10 @@ export function TrainedModelsTableProvider( await this.assertTabContent('details', expectVisible); } + public async assertModelsMapTabContent(expectVisible = true) { + await this.assertTabContent('map', expectVisible); + } + public async assertInferenceConfigTabContent(expectVisible = true) { await this.assertTabContent('inferenceConfig', expectVisible); } @@ -526,5 +595,12 @@ export function TrainedModelsTableProvider( } } } + + public async clickAnalyzeDataDriftWithoutSaving() { + await retry.tryForTime(5 * 1000, async () => { + await testSubjects.clickWhenNotDisabled('analyzeDataDriftWithoutSavingButton'); + await testSubjects.existOrFail('mlDataDriftTable'); + }); + } })(); } From 674857b389ad7243e04f37d30480749e2b50ac81 Mon Sep 17 00:00:00 2001 From: "Quynh Nguyen (Quinn)" <43350163+qn895@users.noreply.github.com> Date: Thu, 12 Oct 2023 19:13:52 -0500 Subject: [PATCH 69/79] [Fleet] Fix to read for Transform destination index mappings from all files under fields folder (#168499) Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../epm/elasticsearch/transform/install.ts | 15 ++++-- .../transform/transforms.test.ts | 52 +++++++++++++++++-- .../fleet/server/services/epm/fields/field.ts | 2 +- 3 files changed, 60 insertions(+), 9 deletions(-) diff --git a/x-pack/plugins/fleet/server/services/epm/elasticsearch/transform/install.ts b/x-pack/plugins/fleet/server/services/epm/elasticsearch/transform/install.ts index deb8c0a313f30..984a88d87e61f 100644 --- a/x-pack/plugins/fleet/server/services/epm/elasticsearch/transform/install.ts +++ b/x-pack/plugins/fleet/server/services/epm/elasticsearch/transform/install.ts @@ -25,7 +25,7 @@ import { buildComponentTemplates, installComponentAndIndexTemplateForDataStream, } from '../template/install'; -import { processFields } from '../../fields/field'; +import { isFields, processFields } from '../../fields/field'; import { generateMappings } from '../template/template'; import { getESAssetMetadata } from '../meta'; import { updateEsAssetReferences } from '../../packages/install'; @@ -162,7 +162,6 @@ const processTransformAssetsPerModule = ( installablePackage, path ); - // Since there can be multiple assets per transform definition // We want to create a unique list of assets/specifications for each transform if (transformsSpecifications.get(transformModuleId) === undefined) { @@ -172,7 +171,8 @@ const processTransformAssetsPerModule = ( const content = safeLoad(getAsset(path).toString('utf-8')); - if (fileName === TRANSFORM_SPECS_TYPES.FIELDS) { + // Handling fields.yml and all other files within 'fields' folder + if (fileName === TRANSFORM_SPECS_TYPES.FIELDS || isFields(path)) { const validFields = processFields(content); const mappings = generateMappings(validFields); const templateName = getTransformAssetNameForInstallation( @@ -198,7 +198,14 @@ const processTransformAssetsPerModule = ( } else { destinationIndexTemplates[indexToModify] = template; } - packageAssets?.set('mappings', mappings); + + // If there's already mappings set previously, append it to new + const previousMappings = + transformsSpecifications.get(transformModuleId)?.get('mappings') ?? {}; + + transformsSpecifications.get(transformModuleId)?.set('mappings', { + properties: { ...previousMappings.properties, ...mappings.properties }, + }); } if (fileName === TRANSFORM_SPECS_TYPES.TRANSFORM) { diff --git a/x-pack/plugins/fleet/server/services/epm/elasticsearch/transform/transforms.test.ts b/x-pack/plugins/fleet/server/services/epm/elasticsearch/transform/transforms.test.ts index e0c5a123c2421..6ab6f20669baf 100644 --- a/x-pack/plugins/fleet/server/services/epm/elasticsearch/transform/transforms.test.ts +++ b/x-pack/plugins/fleet/server/services/epm/elasticsearch/transform/transforms.test.ts @@ -107,7 +107,34 @@ _meta: type: date - name: updated_at type: alias - path: event.ingested`, + path: event.ingested +- external: ecs + name: ecs.version +- external: ecs + name: message`, + BEATS_FIELDS: `- name: input.type + type: keyword + description: Type of Filebeat input. +- name: log.flags + type: keyword + description: Flags for the log file. +- name: log.offset + type: long + description: Offset of the entry in the log file. +- name: log.file.path + type: keyword + description: Path to the log file.`, + AGENT_FIELDS: `- name: instance.name + level: extended + type: keyword + ignore_above: 1024 + description: Instance name of the host machine. +- name: machine.type + level: extended + type: keyword + ignore_above: 1024 + description: Machine type of the host machine. + example: t2.medium`, }; }; const getExpectedData = (transformVersion: string) => { @@ -210,6 +237,8 @@ _meta: ], } as unknown as Installation; (getAsset as jest.MockedFunction) + .mockReturnValueOnce(Buffer.from(sourceData.BEATS_FIELDS, 'utf8')) + .mockReturnValueOnce(Buffer.from(sourceData.AGENT_FIELDS, 'utf8')) .mockReturnValueOnce(Buffer.from(sourceData.FIELDS, 'utf8')) .mockReturnValueOnce(Buffer.from(sourceData.MANIFEST, 'utf8')) .mockReturnValueOnce(Buffer.from(sourceData.TRANSFORM, 'utf8')); @@ -247,6 +276,8 @@ _meta: version: '0.16.0-dev.0', } as unknown as RegistryPackage, paths: [ + 'endpoint-0.16.0-dev.0/elasticsearch/transform/metadata_current/fields/beats.yml', + 'endpoint-0.16.0-dev.0/elasticsearch/transform/metadata_current/fields/agent.yml', 'endpoint-0.16.0-dev.0/elasticsearch/transform/metadata_current/fields/fields.yml', 'endpoint-0.16.0-dev.0/elasticsearch/transform/metadata_current/manifest.yml', 'endpoint-0.16.0-dev.0/elasticsearch/transform/metadata_current/transform.yml', @@ -300,10 +331,19 @@ _meta: }, mappings: { properties: { - '@timestamp': { - ignore_malformed: false, - type: 'date', + input: { properties: { type: { type: 'keyword', ignore_above: 1024 } } }, + log: { + properties: { + flags: { type: 'keyword', ignore_above: 1024 }, + offset: { type: 'long' }, + file: { properties: { path: { type: 'keyword', ignore_above: 1024 } } }, + }, }, + instance: { properties: { name: { type: 'keyword', ignore_above: 1024 } } }, + machine: { properties: { type: { type: 'keyword', ignore_above: 1024 } } }, + '@timestamp': { ignore_malformed: false, type: 'date' }, + ecs: { properties: { version: { type: 'keyword', ignore_above: 1024 } } }, + message: { type: 'keyword', ignore_above: 1024 }, }, dynamic_templates: [ { @@ -582,6 +622,8 @@ _meta: ignore_malformed: false, type: 'date', }, + ecs: { properties: { version: { type: 'keyword', ignore_above: 1024 } } }, + message: { type: 'keyword', ignore_above: 1024 }, }, dynamic_templates: [ { @@ -852,6 +894,8 @@ _meta: ignore_malformed: false, type: 'date', }, + ecs: { properties: { version: { type: 'keyword', ignore_above: 1024 } } }, + message: { type: 'keyword', ignore_above: 1024 }, }, }, }, diff --git a/x-pack/plugins/fleet/server/services/epm/fields/field.ts b/x-pack/plugins/fleet/server/services/epm/fields/field.ts index 27e566d2e4339..437eed7c64192 100644 --- a/x-pack/plugins/fleet/server/services/epm/fields/field.ts +++ b/x-pack/plugins/fleet/server/services/epm/fields/field.ts @@ -284,7 +284,7 @@ export function processFields(fields: Fields): Fields { return validateFields(dedupedFields, dedupedFields); } -const isFields = (path: string) => { +export const isFields = (path: string) => { return path.includes('/fields/'); }; From 43a1e1545246d320b7b2fe58236e43ad69924217 Mon Sep 17 00:00:00 2001 From: Tiago Costa Date: Fri, 13 Oct 2023 01:48:09 +0100 Subject: [PATCH 70/79] skip flaky suite (#168745) --- .../timelines/esql/discover_timeline_state_integration.cy.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/esql/discover_timeline_state_integration.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/esql/discover_timeline_state_integration.cy.ts index d1a446df25a5a..2d0c8a3d83067 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/esql/discover_timeline_state_integration.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/esql/discover_timeline_state_integration.cy.ts @@ -60,7 +60,8 @@ const TIMELINE_RESPONSE_SAVED_OBJECT_ID_PATH = 'response.body.data.persistTimeline.timeline.savedObjectId'; const esqlQuery = 'from auditbeat-* | where ecs.version == "8.0.0"'; -describe( +// FLAKY: https://github.com/elastic/kibana/issues/168745 +describe.skip( 'Discover Timeline State Integration', { tags: ['@ess', '@brokenInServerless'], From 85d8231d137ab5ffc0ffb4f49d4e1abfa148da65 Mon Sep 17 00:00:00 2001 From: Matthew Kime Date: Thu, 12 Oct 2023 23:40:54 -0500 Subject: [PATCH 71/79] [data views] Allow data views created on hidden and system indices (#168174) ## Summary Previously, the 'Allow hidden and system indices' advanced option when creating a data view was only a UI convenience. It allowed you to see which hidden and system indices you were matching but they would be would be selected just the same once the data view was loaded. At some point something changed and now there are system and hidden indices that require `expandWildcards: hidden` to be passed to field caps in order to see anything. `allowHidden: boolean` is added to the DataView and DataViewSpec and passed through when field caps requests are made. This is primarily a tool for troubleshooting. For instance, instead of hitting a full data stream across a number of data tiers you can select a specific index to compare its performance. Closes: https://github.com/elastic/kibana/issues/164652 --- packages/kbn-optimizer/limits.yml | 2 +- .../data_view_editor_flyout_content.tsx | 1 + .../__snapshots__/data_views.test.ts.snap | 1 + .../data_views/common/data_views/data_view.ts | 5 ++++ .../common/data_views/data_views.ts | 4 +++ src/plugins/data_views/common/types.ts | 9 ++++++ .../server/fetcher/index_patterns_fetcher.ts | 14 +++++++++- .../data_views/server/fetcher/lib/es_api.ts | 2 ++ .../field_capabilities.test.js | 1 + .../field_capabilities/field_capabilities.ts | 4 +++ .../rest_api_routes/internal/fields_for.ts | 4 +++ .../data_views/_data_view_create_delete.ts | 28 +++++++++++++++++++ test/functional/page_objects/settings_page.ts | 13 ++++++++- .../log_views/log_views_client.test.ts | 2 ++ 14 files changed, 87 insertions(+), 3 deletions(-) diff --git a/packages/kbn-optimizer/limits.yml b/packages/kbn-optimizer/limits.yml index 1bbc4d08247a2..d3bf6db92d0ad 100644 --- a/packages/kbn-optimizer/limits.yml +++ b/packages/kbn-optimizer/limits.yml @@ -31,7 +31,7 @@ pageLoadAssetSize: dataViewEditor: 28082 dataViewFieldEditor: 27000 dataViewManagement: 5000 - dataViews: 47300 + dataViews: 48300 dataVisualizer: 27530 devTools: 38637 discover: 99999 diff --git a/src/plugins/data_view_editor/public/components/data_view_editor_flyout_content.tsx b/src/plugins/data_view_editor/public/components/data_view_editor_flyout_content.tsx index ad344d482c0cf..c889f2e0dcd06 100644 --- a/src/plugins/data_view_editor/public/components/data_view_editor_flyout_content.tsx +++ b/src/plugins/data_view_editor/public/components/data_view_editor_flyout_content.tsx @@ -124,6 +124,7 @@ const IndexPatternEditorFlyoutContentComponent = ({ timeFieldName: formData.timestampField?.value, id: formData.id, name: formData.name, + allowHidden: formData.allowHidden, }; if (type === INDEX_PATTERN_TYPE.ROLLUP && rollupIndex) { diff --git a/src/plugins/data_views/common/data_views/__snapshots__/data_views.test.ts.snap b/src/plugins/data_views/common/data_views/__snapshots__/data_views.test.ts.snap index 0d646f4afc28d..53b77e28a416c 100644 --- a/src/plugins/data_views/common/data_views/__snapshots__/data_views.test.ts.snap +++ b/src/plugins/data_views/common/data_views/__snapshots__/data_views.test.ts.snap @@ -28,6 +28,7 @@ exports[`IndexPatterns delete will throw if insufficient access 1`] = `[DataView exports[`IndexPatterns savedObjectToSpec 1`] = ` Object { + "allowHidden": undefined, "allowNoIndex": undefined, "fieldAttrs": Object { "aRuntimeField": Object { diff --git a/src/plugins/data_views/common/data_views/data_view.ts b/src/plugins/data_views/common/data_views/data_view.ts index ffda65af2a895..3cea4505b572c 100644 --- a/src/plugins/data_views/common/data_views/data_view.ts +++ b/src/plugins/data_views/common/data_views/data_view.ts @@ -152,6 +152,8 @@ export class DataView implements DataViewBase { */ public matchedIndices: string[] = []; + private allowHidden: boolean = false; + /** * constructor * @param config - config data and dependencies @@ -187,6 +189,7 @@ export class DataView implements DataViewBase { this.runtimeFieldMap = cloneDeep(spec.runtimeFieldMap) || {}; this.namespaces = spec.namespaces || []; this.name = spec.name || ''; + this.allowHidden = spec.allowHidden || false; } /** @@ -201,6 +204,8 @@ export class DataView implements DataViewBase { getIndexPattern = () => this.title; + getAllowHidden = () => this.allowHidden; + /** * Set index pattern * @param string index pattern string diff --git a/src/plugins/data_views/common/data_views/data_views.ts b/src/plugins/data_views/common/data_views/data_views.ts index 8bac81f19ef62..d5509f03db580 100644 --- a/src/plugins/data_views/common/data_views/data_views.ts +++ b/src/plugins/data_views/common/data_views/data_views.ts @@ -584,6 +584,7 @@ export class DataViewsService { allowNoIndex: true, pattern: dataView.getIndexPattern(), metaFields, + allowHidden: dataView.getAllowHidden(), }); }; @@ -596,6 +597,7 @@ export class DataViewsService { rollupIndex: options.rollupIndex, allowNoIndex: true, indexFilter: options.indexFilter, + allowHidden: options.allowHidden, }); }; @@ -747,6 +749,7 @@ export class DataViewsService { fieldAttrs, allowNoIndex, name, + allowHidden, }, } = savedObject; @@ -774,6 +777,7 @@ export class DataViewsService { allowNoIndex, runtimeFieldMap: parsedRuntimeFieldMap, name, + allowHidden, }; }; diff --git a/src/plugins/data_views/common/types.ts b/src/plugins/data_views/common/types.ts index 9061c4643dce9..522bec8873534 100644 --- a/src/plugins/data_views/common/types.ts +++ b/src/plugins/data_views/common/types.ts @@ -157,6 +157,10 @@ export interface DataViewAttributes { * Name of the data view. Human readable name used to differentiate data view. */ name?: string; + /** + * Allow hidden and system indices when loading field list + */ + allowHidden?: boolean; } /** @@ -309,6 +313,7 @@ export interface GetFieldsOptions { indexFilter?: QueryDslQueryContainer; includeUnmapped?: boolean; fields?: string[]; + allowHidden?: boolean; } /** @@ -512,6 +517,10 @@ export type DataViewSpec = { * Name of the data view. Human readable name used to differentiate data view. */ name?: string; + /** + * Whether the data view is hidden from the user + */ + allowHidden?: boolean; }; // eslint-disable-next-line @typescript-eslint/consistent-type-definitions diff --git a/src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts b/src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts index b1d22dc5523c8..f23933bc5775e 100644 --- a/src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts +++ b/src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts @@ -69,12 +69,23 @@ export class IndexPatternsFetcher { rollupIndex?: string; indexFilter?: QueryDslQueryContainer; fields?: string[]; + allowHidden?: boolean; }): Promise<{ fields: FieldDescriptor[]; indices: string[] }> { - const { pattern, metaFields = [], fieldCapsOptions, type, rollupIndex, indexFilter } = options; + const { + pattern, + metaFields = [], + fieldCapsOptions, + type, + rollupIndex, + indexFilter, + allowHidden, + } = options; const allowNoIndices = fieldCapsOptions ? fieldCapsOptions.allow_no_indices : this.allowNoIndices; + const expandWildcards = allowHidden ? 'all' : 'open'; + const fieldCapsResponse = await getFieldCapabilities({ callCluster: this.elasticsearchClient, indices: pattern, @@ -85,6 +96,7 @@ export class IndexPatternsFetcher { }, indexFilter, fields: options.fields || ['*'], + expandWildcards, }); if (this.rollupsEnabled && type === 'rollup' && rollupIndex) { diff --git a/src/plugins/data_views/server/fetcher/lib/es_api.ts b/src/plugins/data_views/server/fetcher/lib/es_api.ts index 988e4a4ec28c8..2128e52da537b 100644 --- a/src/plugins/data_views/server/fetcher/lib/es_api.ts +++ b/src/plugins/data_views/server/fetcher/lib/es_api.ts @@ -7,6 +7,7 @@ */ import { ElasticsearchClient } from '@kbn/core/server'; +import { ExpandWildcard } from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import { QueryDslQueryContainer } from '../../../common/types'; import { convertEsError } from './errors'; @@ -45,6 +46,7 @@ interface FieldCapsApiParams { fieldCapsOptions?: { allow_no_indices: boolean; include_unmapped?: boolean }; indexFilter?: QueryDslQueryContainer; fields?: string[]; + expandWildcard?: ExpandWildcard; } /** diff --git a/src/plugins/data_views/server/fetcher/lib/field_capabilities/field_capabilities.test.js b/src/plugins/data_views/server/fetcher/lib/field_capabilities/field_capabilities.test.js index 1b3be374bbd7c..f41c71498e81e 100644 --- a/src/plugins/data_views/server/fetcher/lib/field_capabilities/field_capabilities.test.js +++ b/src/plugins/data_views/server/fetcher/lib/field_capabilities/field_capabilities.test.js @@ -34,6 +34,7 @@ describe('index_patterns/field_capabilities/field_capabilities', () => { const fillUndefinedParams = (args) => ({ callCluster: undefined, indices: undefined, + expandWildcard: undefined, fieldCapsOptions: undefined, indexFilter: undefined, fields: undefined, diff --git a/src/plugins/data_views/server/fetcher/lib/field_capabilities/field_capabilities.ts b/src/plugins/data_views/server/fetcher/lib/field_capabilities/field_capabilities.ts index 73e550ebd68ce..6bef117151609 100644 --- a/src/plugins/data_views/server/fetcher/lib/field_capabilities/field_capabilities.ts +++ b/src/plugins/data_views/server/fetcher/lib/field_capabilities/field_capabilities.ts @@ -9,6 +9,7 @@ import { defaults, keyBy, sortBy } from 'lodash'; import { ElasticsearchClient } from '@kbn/core/server'; +import { ExpandWildcard } from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import { callFieldCapsApi } from '../es_api'; import { readFieldCapsResponse } from './field_caps_response'; import { mergeOverrides } from './overrides'; @@ -22,6 +23,7 @@ interface FieldCapabilitiesParams { fieldCapsOptions?: { allow_no_indices: boolean; include_unmapped?: boolean }; indexFilter?: QueryDslQueryContainer; fields?: string[]; + expandWildcards?: ExpandWildcard; } /** @@ -42,6 +44,7 @@ export async function getFieldCapabilities(params: FieldCapabilitiesParams) { indexFilter, metaFields = [], fields, + expandWildcards, } = params; const esFieldCaps = await callFieldCapsApi({ callCluster, @@ -49,6 +52,7 @@ export async function getFieldCapabilities(params: FieldCapabilitiesParams) { fieldCapsOptions, indexFilter, fields, + expandWildcard: expandWildcards, }); const fieldCapsArr = readFieldCapsResponse(esFieldCaps.body); const fieldsFromFieldCapsByName = keyBy(fieldCapsArr, 'name'); diff --git a/src/plugins/data_views/server/rest_api_routes/internal/fields_for.ts b/src/plugins/data_views/server/rest_api_routes/internal/fields_for.ts index 15d761935c0a7..7d39b41d5caee 100644 --- a/src/plugins/data_views/server/rest_api_routes/internal/fields_for.ts +++ b/src/plugins/data_views/server/rest_api_routes/internal/fields_for.ts @@ -50,6 +50,7 @@ interface IQuery { allow_no_index?: boolean; include_unmapped?: boolean; fields?: string[]; + allow_hidden?: boolean; } const querySchema = schema.object({ @@ -62,6 +63,7 @@ const querySchema = schema.object({ allow_no_index: schema.maybe(schema.boolean()), include_unmapped: schema.maybe(schema.boolean()), fields: schema.maybe(schema.oneOf([schema.string(), schema.arrayOf(schema.string())])), + allow_hidden: schema.maybe(schema.boolean()), }); const fieldSubTypeSchema = schema.object({ @@ -122,6 +124,7 @@ const handler: (isRollupsEnabled: () => boolean) => RequestHandler<{}, IQuery, I rollup_index: rollupIndex, allow_no_index: allowNoIndex, include_unmapped: includeUnmapped, + allow_hidden: allowHidden, } = request.query; // not available to get request @@ -147,6 +150,7 @@ const handler: (isRollupsEnabled: () => boolean) => RequestHandler<{}, IQuery, I includeUnmapped, }, indexFilter, + allowHidden, ...(parsedFields.length > 0 ? { fields: parsedFields } : {}), }); diff --git a/test/functional/apps/management/data_views/_data_view_create_delete.ts b/test/functional/apps/management/data_views/_data_view_create_delete.ts index edf2f000fcb27..e55afd799a9b8 100644 --- a/test/functional/apps/management/data_views/_data_view_create_delete.ts +++ b/test/functional/apps/management/data_views/_data_view_create_delete.ts @@ -17,6 +17,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { const retry = getService('retry'); const testSubjects = getService('testSubjects'); const find = getService('find'); + const es = getService('es'); const PageObjects = getPageObjects(['settings', 'common', 'header']); describe('creating and deleting default data view', function describeIndexTests() { @@ -250,5 +251,32 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); }); }); + + describe('hidden index support', () => { + it('can create data view against hidden index', async () => { + const pattern = 'logstash-2015.09.21'; + + await es.transport.request({ + path: '/logstash-2015.09.21/_settings', + method: 'PUT', + body: { + index: { + hidden: true, + }, + }, + }); + + await PageObjects.settings.createIndexPattern( + pattern, + undefined, + undefined, + undefined, + undefined, + true + ); + const patternName = await PageObjects.settings.getIndexPageHeading(); + expect(patternName).to.be(pattern); + }); + }); }); } diff --git a/test/functional/page_objects/settings_page.ts b/test/functional/page_objects/settings_page.ts index d2fba8e620153..568c45beb0dfb 100644 --- a/test/functional/page_objects/settings_page.ts +++ b/test/functional/page_objects/settings_page.ts @@ -470,13 +470,19 @@ export class SettingsPageObject extends FtrService { await customDataViewIdInput.type(value); } + async allowHiddenClick() { + await this.testSubjects.click('toggleAdvancedSetting'); + await this.testSubjects.click('allowHiddenField'); + } + async createIndexPattern( indexPatternName: string, // null to bypass default value timefield: string | null = '@timestamp', isStandardIndexPattern = true, customDataViewId?: string, - dataViewName?: string + dataViewName?: string, + allowHidden?: boolean ) { await this.retry.try(async () => { await this.header.waitUntilLoadingHasFinished(); @@ -489,6 +495,11 @@ export class SettingsPageObject extends FtrService { } else { await this.clickAddNewIndexPatternButton(); } + + if (allowHidden) { + await this.allowHiddenClick(); + } + await this.header.waitUntilLoadingHasFinished(); if (!isStandardIndexPattern) { await this.selectRollupIndexPatternType(); diff --git a/x-pack/plugins/logs_shared/server/services/log_views/log_views_client.test.ts b/x-pack/plugins/logs_shared/server/services/log_views/log_views_client.test.ts index 5efdf9e125deb..b9f5037ced6b1 100644 --- a/x-pack/plugins/logs_shared/server/services/log_views/log_views_client.test.ts +++ b/x-pack/plugins/logs_shared/server/services/log_views/log_views_client.test.ts @@ -249,6 +249,7 @@ describe('LogViewsClient class', () => { }, ], "dataViewReference": DataView { + "allowHidden": false, "allowNoIndex": false, "deleteFieldFormat": [Function], "fieldAttrs": Object {}, @@ -273,6 +274,7 @@ describe('LogViewsClient class', () => { }, "fields": FldList [], "flattenHit": [Function], + "getAllowHidden": [Function], "getFieldAttrs": [Function], "getIndexPattern": [Function], "getName": [Function], From 8931a33f6f8570d7f134bb53e4a10ef5387308e6 Mon Sep 17 00:00:00 2001 From: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Date: Fri, 13 Oct 2023 00:54:41 -0400 Subject: [PATCH 72/79] [api-docs] 2023-10-13 Daily api_docs build (#168778) Generated by https://buildkite.com/elastic/kibana-api-docs-daily/builds/489 --- api_docs/actions.mdx | 2 +- api_docs/advanced_settings.mdx | 2 +- api_docs/aiops.mdx | 2 +- api_docs/alerting.devdocs.json | 4 ---- api_docs/alerting.mdx | 2 +- api_docs/apm.mdx | 2 +- api_docs/apm_data_access.mdx | 2 +- api_docs/asset_manager.mdx | 2 +- api_docs/banners.mdx | 2 +- api_docs/bfetch.mdx | 2 +- api_docs/canvas.mdx | 2 +- api_docs/cases.mdx | 2 +- api_docs/charts.mdx | 2 +- api_docs/cloud.mdx | 2 +- api_docs/cloud_data_migration.mdx | 2 +- api_docs/cloud_defend.mdx | 2 +- api_docs/cloud_experiments.mdx | 2 +- api_docs/cloud_security_posture.mdx | 2 +- api_docs/console.mdx | 2 +- api_docs/content_management.mdx | 2 +- api_docs/controls.mdx | 2 +- api_docs/custom_integrations.mdx | 2 +- api_docs/dashboard.mdx | 2 +- api_docs/dashboard_enhanced.mdx | 2 +- api_docs/data.mdx | 2 +- api_docs/data_query.mdx | 2 +- api_docs/data_search.mdx | 2 +- api_docs/data_view_editor.mdx | 2 +- api_docs/data_view_field_editor.mdx | 2 +- api_docs/data_view_management.mdx | 2 +- api_docs/data_views.mdx | 2 +- api_docs/data_visualizer.mdx | 2 +- api_docs/deprecations_by_api.mdx | 2 +- api_docs/deprecations_by_plugin.mdx | 4 ++-- api_docs/deprecations_by_team.mdx | 2 +- api_docs/dev_tools.mdx | 2 +- api_docs/discover.mdx | 2 +- api_docs/discover_enhanced.mdx | 2 +- api_docs/ecs_data_quality_dashboard.mdx | 2 +- api_docs/elastic_assistant.mdx | 2 +- api_docs/embeddable.mdx | 2 +- api_docs/embeddable_enhanced.mdx | 2 +- api_docs/encrypted_saved_objects.mdx | 2 +- api_docs/enterprise_search.mdx | 2 +- api_docs/es_ui_shared.mdx | 2 +- api_docs/event_annotation.mdx | 2 +- api_docs/event_annotation_listing.mdx | 2 +- api_docs/event_log.mdx | 2 +- api_docs/exploratory_view.mdx | 2 +- api_docs/expression_error.mdx | 2 +- api_docs/expression_gauge.mdx | 2 +- api_docs/expression_heatmap.mdx | 2 +- api_docs/expression_image.mdx | 2 +- api_docs/expression_legacy_metric_vis.mdx | 2 +- api_docs/expression_metric.mdx | 2 +- api_docs/expression_metric_vis.mdx | 2 +- api_docs/expression_partition_vis.mdx | 2 +- api_docs/expression_repeat_image.mdx | 2 +- api_docs/expression_reveal_image.mdx | 2 +- api_docs/expression_shape.mdx | 2 +- api_docs/expression_tagcloud.mdx | 2 +- api_docs/expression_x_y.mdx | 2 +- api_docs/expressions.mdx | 2 +- api_docs/features.mdx | 2 +- api_docs/field_formats.mdx | 2 +- api_docs/file_upload.mdx | 2 +- api_docs/files.mdx | 2 +- api_docs/files_management.mdx | 2 +- api_docs/fleet.mdx | 2 +- api_docs/global_search.mdx | 2 +- api_docs/guided_onboarding.mdx | 2 +- api_docs/home.mdx | 2 +- api_docs/image_embeddable.mdx | 2 +- api_docs/index_lifecycle_management.mdx | 2 +- api_docs/index_management.mdx | 2 +- api_docs/infra.devdocs.json | 2 +- api_docs/infra.mdx | 2 +- api_docs/inspector.mdx | 2 +- api_docs/interactive_setup.mdx | 2 +- api_docs/kbn_ace.mdx | 2 +- api_docs/kbn_aiops_components.mdx | 2 +- api_docs/kbn_aiops_utils.mdx | 2 +- .../kbn_alerting_api_integration_helpers.mdx | 2 +- api_docs/kbn_alerting_state_types.mdx | 2 +- api_docs/kbn_alerts_as_data_utils.mdx | 2 +- api_docs/kbn_alerts_ui_shared.mdx | 2 +- api_docs/kbn_analytics.mdx | 2 +- api_docs/kbn_analytics_client.mdx | 2 +- ...kbn_analytics_shippers_elastic_v3_browser.mdx | 2 +- .../kbn_analytics_shippers_elastic_v3_common.mdx | 2 +- .../kbn_analytics_shippers_elastic_v3_server.mdx | 2 +- api_docs/kbn_analytics_shippers_fullstory.mdx | 2 +- api_docs/kbn_analytics_shippers_gainsight.mdx | 2 +- api_docs/kbn_apm_config_loader.mdx | 2 +- api_docs/kbn_apm_synthtrace.mdx | 2 +- api_docs/kbn_apm_synthtrace_client.mdx | 2 +- api_docs/kbn_apm_utils.mdx | 2 +- api_docs/kbn_axe_config.mdx | 2 +- api_docs/kbn_cases_components.mdx | 2 +- api_docs/kbn_cell_actions.mdx | 2 +- api_docs/kbn_chart_expressions_common.mdx | 2 +- api_docs/kbn_chart_icons.mdx | 2 +- api_docs/kbn_ci_stats_core.mdx | 2 +- api_docs/kbn_ci_stats_performance_metrics.mdx | 2 +- api_docs/kbn_ci_stats_reporter.mdx | 2 +- api_docs/kbn_cli_dev_mode.mdx | 2 +- api_docs/kbn_code_editor.mdx | 2 +- api_docs/kbn_code_editor_mocks.mdx | 2 +- api_docs/kbn_coloring.mdx | 2 +- api_docs/kbn_config.mdx | 2 +- api_docs/kbn_config_mocks.mdx | 2 +- api_docs/kbn_config_schema.mdx | 2 +- .../kbn_content_management_content_editor.mdx | 2 +- ...content_management_tabbed_table_list_view.mdx | 2 +- .../kbn_content_management_table_list_view.mdx | 2 +- ..._content_management_table_list_view_table.mdx | 2 +- api_docs/kbn_content_management_utils.mdx | 2 +- api_docs/kbn_core_analytics_browser.mdx | 2 +- api_docs/kbn_core_analytics_browser_internal.mdx | 2 +- api_docs/kbn_core_analytics_browser_mocks.mdx | 2 +- api_docs/kbn_core_analytics_server.mdx | 2 +- api_docs/kbn_core_analytics_server_internal.mdx | 2 +- api_docs/kbn_core_analytics_server_mocks.mdx | 2 +- api_docs/kbn_core_application_browser.mdx | 2 +- .../kbn_core_application_browser_internal.mdx | 2 +- api_docs/kbn_core_application_browser_mocks.mdx | 2 +- api_docs/kbn_core_application_common.mdx | 2 +- api_docs/kbn_core_apps_browser_internal.mdx | 2 +- api_docs/kbn_core_apps_browser_mocks.mdx | 2 +- api_docs/kbn_core_apps_server_internal.mdx | 2 +- api_docs/kbn_core_base_browser_mocks.mdx | 2 +- api_docs/kbn_core_base_common.mdx | 2 +- api_docs/kbn_core_base_server_internal.mdx | 2 +- api_docs/kbn_core_base_server_mocks.mdx | 2 +- api_docs/kbn_core_capabilities_browser_mocks.mdx | 2 +- api_docs/kbn_core_capabilities_common.mdx | 2 +- api_docs/kbn_core_capabilities_server.mdx | 2 +- api_docs/kbn_core_capabilities_server_mocks.mdx | 2 +- api_docs/kbn_core_chrome_browser.mdx | 2 +- api_docs/kbn_core_chrome_browser_mocks.mdx | 2 +- api_docs/kbn_core_config_server_internal.mdx | 2 +- api_docs/kbn_core_custom_branding_browser.mdx | 2 +- ...kbn_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 +- .../kbn_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 +- api_docs/kbn_core_deprecations_browser_mocks.mdx | 2 +- api_docs/kbn_core_deprecations_common.mdx | 2 +- api_docs/kbn_core_deprecations_server.mdx | 2 +- .../kbn_core_deprecations_server_internal.mdx | 2 +- api_docs/kbn_core_deprecations_server_mocks.mdx | 2 +- api_docs/kbn_core_doc_links_browser.mdx | 2 +- api_docs/kbn_core_doc_links_browser_mocks.mdx | 2 +- api_docs/kbn_core_doc_links_server.mdx | 2 +- api_docs/kbn_core_doc_links_server_mocks.mdx | 2 +- ...core_elasticsearch_client_server_internal.mdx | 2 +- ...bn_core_elasticsearch_client_server_mocks.mdx | 2 +- api_docs/kbn_core_elasticsearch_server.mdx | 2 +- .../kbn_core_elasticsearch_server_internal.mdx | 2 +- api_docs/kbn_core_elasticsearch_server_mocks.mdx | 2 +- .../kbn_core_environment_server_internal.mdx | 2 +- api_docs/kbn_core_environment_server_mocks.mdx | 2 +- api_docs/kbn_core_execution_context_browser.mdx | 2 +- ...n_core_execution_context_browser_internal.mdx | 2 +- .../kbn_core_execution_context_browser_mocks.mdx | 2 +- api_docs/kbn_core_execution_context_common.mdx | 2 +- api_docs/kbn_core_execution_context_server.mdx | 2 +- ...bn_core_execution_context_server_internal.mdx | 2 +- .../kbn_core_execution_context_server_mocks.mdx | 2 +- api_docs/kbn_core_fatal_errors_browser.mdx | 2 +- api_docs/kbn_core_fatal_errors_browser_mocks.mdx | 2 +- api_docs/kbn_core_http_browser.mdx | 2 +- api_docs/kbn_core_http_browser_internal.mdx | 2 +- api_docs/kbn_core_http_browser_mocks.mdx | 2 +- api_docs/kbn_core_http_common.mdx | 2 +- api_docs/kbn_core_http_context_server_mocks.mdx | 2 +- ..._core_http_request_handler_context_server.mdx | 2 +- api_docs/kbn_core_http_resources_server.mdx | 2 +- .../kbn_core_http_resources_server_internal.mdx | 2 +- .../kbn_core_http_resources_server_mocks.mdx | 2 +- .../kbn_core_http_router_server_internal.mdx | 2 +- api_docs/kbn_core_http_router_server_mocks.mdx | 2 +- api_docs/kbn_core_http_server.mdx | 2 +- api_docs/kbn_core_http_server_internal.mdx | 2 +- api_docs/kbn_core_http_server_mocks.mdx | 2 +- api_docs/kbn_core_i18n_browser.mdx | 2 +- api_docs/kbn_core_i18n_browser_mocks.mdx | 2 +- api_docs/kbn_core_i18n_server.mdx | 2 +- api_docs/kbn_core_i18n_server_internal.mdx | 2 +- api_docs/kbn_core_i18n_server_mocks.mdx | 2 +- .../kbn_core_injected_metadata_browser_mocks.mdx | 2 +- .../kbn_core_integrations_browser_internal.mdx | 2 +- api_docs/kbn_core_integrations_browser_mocks.mdx | 2 +- api_docs/kbn_core_lifecycle_browser.mdx | 2 +- api_docs/kbn_core_lifecycle_browser_mocks.mdx | 2 +- api_docs/kbn_core_lifecycle_server.mdx | 2 +- api_docs/kbn_core_lifecycle_server_mocks.mdx | 2 +- api_docs/kbn_core_logging_browser_mocks.mdx | 2 +- api_docs/kbn_core_logging_common_internal.mdx | 2 +- api_docs/kbn_core_logging_server.mdx | 2 +- api_docs/kbn_core_logging_server_internal.mdx | 2 +- api_docs/kbn_core_logging_server_mocks.mdx | 2 +- ...n_core_metrics_collectors_server_internal.mdx | 2 +- .../kbn_core_metrics_collectors_server_mocks.mdx | 2 +- api_docs/kbn_core_metrics_server.mdx | 2 +- api_docs/kbn_core_metrics_server_internal.mdx | 2 +- api_docs/kbn_core_metrics_server_mocks.mdx | 2 +- api_docs/kbn_core_mount_utils_browser.mdx | 2 +- api_docs/kbn_core_node_server.mdx | 2 +- api_docs/kbn_core_node_server_internal.mdx | 2 +- api_docs/kbn_core_node_server_mocks.mdx | 2 +- api_docs/kbn_core_notifications_browser.mdx | 2 +- .../kbn_core_notifications_browser_internal.mdx | 2 +- .../kbn_core_notifications_browser_mocks.mdx | 2 +- api_docs/kbn_core_overlays_browser.mdx | 2 +- api_docs/kbn_core_overlays_browser_internal.mdx | 2 +- api_docs/kbn_core_overlays_browser_mocks.mdx | 2 +- api_docs/kbn_core_plugins_browser.mdx | 2 +- api_docs/kbn_core_plugins_browser_mocks.mdx | 2 +- api_docs/kbn_core_plugins_server.mdx | 2 +- api_docs/kbn_core_plugins_server_mocks.mdx | 2 +- api_docs/kbn_core_preboot_server.mdx | 2 +- api_docs/kbn_core_preboot_server_mocks.mdx | 2 +- api_docs/kbn_core_rendering_browser_mocks.mdx | 2 +- api_docs/kbn_core_rendering_server_internal.mdx | 2 +- api_docs/kbn_core_rendering_server_mocks.mdx | 2 +- api_docs/kbn_core_root_server_internal.mdx | 2 +- api_docs/kbn_core_saved_objects_api_browser.mdx | 2 +- api_docs/kbn_core_saved_objects_api_server.mdx | 2 +- .../kbn_core_saved_objects_api_server_mocks.mdx | 2 +- ...n_core_saved_objects_base_server_internal.mdx | 2 +- .../kbn_core_saved_objects_base_server_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_browser.mdx | 2 +- .../kbn_core_saved_objects_browser_internal.mdx | 2 +- .../kbn_core_saved_objects_browser_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_common.mdx | 2 +- ...ved_objects_import_export_server_internal.mdx | 2 +- ..._saved_objects_import_export_server_mocks.mdx | 2 +- ...e_saved_objects_migration_server_internal.mdx | 2 +- ...core_saved_objects_migration_server_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_server.mdx | 2 +- .../kbn_core_saved_objects_server_internal.mdx | 2 +- api_docs/kbn_core_saved_objects_server_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_utils_server.mdx | 2 +- api_docs/kbn_core_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 +- ...bn_core_test_helpers_deprecations_getters.mdx | 2 +- .../kbn_core_test_helpers_http_setup_browser.mdx | 2 +- api_docs/kbn_core_test_helpers_kbn_server.mdx | 2 +- .../kbn_core_test_helpers_model_versions.mdx | 2 +- .../kbn_core_test_helpers_so_type_serializer.mdx | 2 +- api_docs/kbn_core_test_helpers_test_utils.mdx | 2 +- api_docs/kbn_core_theme_browser.mdx | 2 +- api_docs/kbn_core_theme_browser_mocks.mdx | 2 +- api_docs/kbn_core_ui_settings_browser.mdx | 2 +- .../kbn_core_ui_settings_browser_internal.mdx | 2 +- api_docs/kbn_core_ui_settings_browser_mocks.mdx | 2 +- api_docs/kbn_core_ui_settings_common.mdx | 2 +- api_docs/kbn_core_ui_settings_server.mdx | 2 +- .../kbn_core_ui_settings_server_internal.mdx | 2 +- api_docs/kbn_core_ui_settings_server_mocks.mdx | 2 +- api_docs/kbn_core_usage_data_server.mdx | 2 +- api_docs/kbn_core_usage_data_server_internal.mdx | 2 +- api_docs/kbn_core_usage_data_server_mocks.mdx | 2 +- api_docs/kbn_core_user_settings_server.mdx | 2 +- .../kbn_core_user_settings_server_internal.mdx | 2 +- api_docs/kbn_core_user_settings_server_mocks.mdx | 2 +- api_docs/kbn_crypto.mdx | 2 +- api_docs/kbn_crypto_browser.mdx | 2 +- api_docs/kbn_custom_integrations.mdx | 2 +- api_docs/kbn_cypress_config.mdx | 2 +- api_docs/kbn_data_service.mdx | 2 +- api_docs/kbn_datemath.mdx | 2 +- api_docs/kbn_deeplinks_analytics.mdx | 2 +- api_docs/kbn_deeplinks_devtools.mdx | 2 +- api_docs/kbn_deeplinks_management.mdx | 2 +- api_docs/kbn_deeplinks_ml.mdx | 2 +- api_docs/kbn_deeplinks_observability.mdx | 2 +- api_docs/kbn_deeplinks_search.mdx | 2 +- api_docs/kbn_default_nav_analytics.mdx | 2 +- api_docs/kbn_default_nav_devtools.mdx | 2 +- api_docs/kbn_default_nav_management.mdx | 2 +- api_docs/kbn_default_nav_ml.mdx | 2 +- api_docs/kbn_dev_cli_errors.mdx | 2 +- api_docs/kbn_dev_cli_runner.mdx | 2 +- api_docs/kbn_dev_proc_runner.mdx | 2 +- api_docs/kbn_dev_utils.mdx | 2 +- api_docs/kbn_discover_utils.mdx | 2 +- api_docs/kbn_doc_links.mdx | 2 +- api_docs/kbn_docs_utils.mdx | 2 +- api_docs/kbn_dom_drag_drop.mdx | 2 +- api_docs/kbn_ebt_tools.mdx | 2 +- api_docs/kbn_ecs.mdx | 2 +- api_docs/kbn_ecs_data_quality_dashboard.mdx | 2 +- api_docs/kbn_elastic_assistant.mdx | 2 +- api_docs/kbn_es.mdx | 2 +- api_docs/kbn_es_archiver.mdx | 2 +- api_docs/kbn_es_errors.mdx | 2 +- api_docs/kbn_es_query.mdx | 2 +- api_docs/kbn_es_types.mdx | 2 +- api_docs/kbn_eslint_plugin_imports.mdx | 2 +- api_docs/kbn_event_annotation_common.mdx | 2 +- api_docs/kbn_event_annotation_components.mdx | 2 +- api_docs/kbn_expandable_flyout.mdx | 2 +- api_docs/kbn_field_types.mdx | 2 +- api_docs/kbn_field_utils.mdx | 2 +- api_docs/kbn_find_used_node_modules.mdx | 2 +- api_docs/kbn_ftr_common_functional_services.mdx | 2 +- api_docs/kbn_generate.mdx | 2 +- api_docs/kbn_generate_console_definitions.mdx | 2 +- api_docs/kbn_generate_csv.mdx | 2 +- api_docs/kbn_generate_csv_types.mdx | 2 +- api_docs/kbn_guided_onboarding.mdx | 2 +- api_docs/kbn_handlebars.mdx | 2 +- api_docs/kbn_hapi_mocks.mdx | 2 +- api_docs/kbn_health_gateway_server.mdx | 2 +- api_docs/kbn_home_sample_data_card.mdx | 2 +- api_docs/kbn_home_sample_data_tab.mdx | 2 +- api_docs/kbn_i18n.mdx | 2 +- api_docs/kbn_i18n_react.mdx | 2 +- api_docs/kbn_import_resolver.mdx | 2 +- api_docs/kbn_infra_forge.mdx | 2 +- api_docs/kbn_interpreter.mdx | 2 +- api_docs/kbn_io_ts_utils.mdx | 2 +- api_docs/kbn_jest_serializers.mdx | 2 +- api_docs/kbn_journeys.mdx | 2 +- api_docs/kbn_json_ast.mdx | 2 +- api_docs/kbn_kibana_manifest_schema.mdx | 2 +- api_docs/kbn_language_documentation_popover.mdx | 2 +- api_docs/kbn_lens_embeddable_utils.mdx | 2 +- api_docs/kbn_logging.mdx | 2 +- api_docs/kbn_logging_mocks.mdx | 2 +- api_docs/kbn_managed_vscode_config.mdx | 2 +- api_docs/kbn_management_cards_navigation.mdx | 2 +- api_docs/kbn_management_settings_application.mdx | 2 +- ...gement_settings_components_field_category.mdx | 2 +- ...anagement_settings_components_field_input.mdx | 2 +- ..._management_settings_components_field_row.mdx | 2 +- .../kbn_management_settings_components_form.mdx | 2 +- .../kbn_management_settings_field_definition.mdx | 2 +- api_docs/kbn_management_settings_ids.mdx | 2 +- .../kbn_management_settings_section_registry.mdx | 2 +- api_docs/kbn_management_settings_types.mdx | 2 +- api_docs/kbn_management_settings_utilities.mdx | 2 +- api_docs/kbn_management_storybook_config.mdx | 2 +- api_docs/kbn_mapbox_gl.mdx | 2 +- api_docs/kbn_maps_vector_tile_utils.mdx | 2 +- api_docs/kbn_ml_agg_utils.mdx | 2 +- api_docs/kbn_ml_anomaly_utils.mdx | 2 +- api_docs/kbn_ml_category_validator.mdx | 2 +- api_docs/kbn_ml_chi2test.mdx | 2 +- api_docs/kbn_ml_data_frame_analytics_utils.mdx | 2 +- api_docs/kbn_ml_data_grid.mdx | 2 +- api_docs/kbn_ml_date_picker.mdx | 2 +- api_docs/kbn_ml_date_utils.mdx | 2 +- api_docs/kbn_ml_error_utils.mdx | 2 +- api_docs/kbn_ml_in_memory_table.mdx | 2 +- api_docs/kbn_ml_is_defined.mdx | 2 +- api_docs/kbn_ml_is_populated_object.mdx | 2 +- api_docs/kbn_ml_kibana_theme.mdx | 2 +- api_docs/kbn_ml_local_storage.mdx | 2 +- api_docs/kbn_ml_nested_property.mdx | 2 +- api_docs/kbn_ml_number_utils.mdx | 2 +- api_docs/kbn_ml_query_utils.mdx | 2 +- api_docs/kbn_ml_random_sampler_utils.mdx | 2 +- api_docs/kbn_ml_route_utils.mdx | 2 +- api_docs/kbn_ml_runtime_field_utils.mdx | 2 +- api_docs/kbn_ml_string_hash.mdx | 2 +- api_docs/kbn_ml_trained_models_utils.mdx | 2 +- api_docs/kbn_ml_url_state.mdx | 2 +- api_docs/kbn_monaco.mdx | 2 +- api_docs/kbn_object_versioning.mdx | 2 +- api_docs/kbn_observability_alert_details.mdx | 2 +- api_docs/kbn_openapi_generator.mdx | 2 +- api_docs/kbn_optimizer.mdx | 2 +- api_docs/kbn_optimizer_webpack_helpers.mdx | 2 +- api_docs/kbn_osquery_io_ts_types.mdx | 2 +- ...kbn_performance_testing_dataset_extractor.mdx | 2 +- api_docs/kbn_plugin_generator.mdx | 2 +- api_docs/kbn_plugin_helpers.mdx | 2 +- api_docs/kbn_profiling_utils.mdx | 2 +- api_docs/kbn_random_sampling.mdx | 2 +- api_docs/kbn_react_field.mdx | 2 +- api_docs/kbn_react_kibana_context_common.mdx | 2 +- api_docs/kbn_react_kibana_context_render.mdx | 2 +- api_docs/kbn_react_kibana_context_root.mdx | 2 +- api_docs/kbn_react_kibana_context_styled.mdx | 2 +- api_docs/kbn_react_kibana_context_theme.mdx | 2 +- api_docs/kbn_react_kibana_mount.mdx | 2 +- api_docs/kbn_repo_file_maps.mdx | 2 +- api_docs/kbn_repo_linter.mdx | 2 +- api_docs/kbn_repo_path.mdx | 2 +- api_docs/kbn_repo_source_classifier.mdx | 2 +- api_docs/kbn_reporting_common.mdx | 2 +- api_docs/kbn_resizable_layout.mdx | 2 +- api_docs/kbn_rison.mdx | 2 +- api_docs/kbn_rrule.mdx | 2 +- api_docs/kbn_rule_data_utils.mdx | 2 +- api_docs/kbn_saved_objects_settings.mdx | 2 +- api_docs/kbn_search_api_panels.mdx | 2 +- api_docs/kbn_search_connectors.mdx | 2 +- api_docs/kbn_search_response_warnings.mdx | 2 +- api_docs/kbn_security_solution_features.mdx | 2 +- api_docs/kbn_security_solution_navigation.mdx | 2 +- api_docs/kbn_security_solution_side_nav.mdx | 2 +- .../kbn_security_solution_storybook_config.mdx | 2 +- api_docs/kbn_securitysolution_autocomplete.mdx | 2 +- api_docs/kbn_securitysolution_data_table.mdx | 2 +- api_docs/kbn_securitysolution_ecs.mdx | 2 +- api_docs/kbn_securitysolution_es_utils.mdx | 2 +- ...ecuritysolution_exception_list_components.mdx | 2 +- api_docs/kbn_securitysolution_grouping.mdx | 2 +- api_docs/kbn_securitysolution_hook_utils.mdx | 2 +- ...kbn_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 +- api_docs/kbn_securitysolution_list_constants.mdx | 2 +- api_docs/kbn_securitysolution_list_hooks.mdx | 2 +- api_docs/kbn_securitysolution_list_utils.mdx | 2 +- api_docs/kbn_securitysolution_rules.mdx | 2 +- api_docs/kbn_securitysolution_t_grid.mdx | 2 +- api_docs/kbn_securitysolution_utils.mdx | 2 +- api_docs/kbn_server_http_tools.mdx | 2 +- api_docs/kbn_server_route_repository.mdx | 2 +- api_docs/kbn_serverless_common_settings.mdx | 2 +- .../kbn_serverless_observability_settings.mdx | 2 +- api_docs/kbn_serverless_project_switcher.mdx | 2 +- api_docs/kbn_serverless_search_settings.mdx | 2 +- api_docs/kbn_serverless_security_settings.mdx | 2 +- api_docs/kbn_serverless_storybook_config.mdx | 2 +- api_docs/kbn_shared_svg.mdx | 2 +- api_docs/kbn_shared_ux_avatar_solution.mdx | 2 +- ..._shared_ux_avatar_user_profile_components.mdx | 2 +- .../kbn_shared_ux_button_exit_full_screen.mdx | 2 +- ...n_shared_ux_button_exit_full_screen_mocks.mdx | 2 +- api_docs/kbn_shared_ux_button_toolbar.mdx | 2 +- api_docs/kbn_shared_ux_card_no_data.mdx | 2 +- api_docs/kbn_shared_ux_card_no_data_mocks.mdx | 2 +- api_docs/kbn_shared_ux_chrome_navigation.mdx | 2 +- api_docs/kbn_shared_ux_file_context.mdx | 2 +- api_docs/kbn_shared_ux_file_image.mdx | 2 +- api_docs/kbn_shared_ux_file_image_mocks.mdx | 2 +- api_docs/kbn_shared_ux_file_mocks.mdx | 2 +- api_docs/kbn_shared_ux_file_picker.mdx | 2 +- api_docs/kbn_shared_ux_file_types.mdx | 2 +- api_docs/kbn_shared_ux_file_upload.mdx | 2 +- api_docs/kbn_shared_ux_file_util.mdx | 2 +- api_docs/kbn_shared_ux_link_redirect_app.mdx | 2 +- .../kbn_shared_ux_link_redirect_app_mocks.mdx | 2 +- api_docs/kbn_shared_ux_markdown.mdx | 2 +- api_docs/kbn_shared_ux_markdown_mocks.mdx | 2 +- .../kbn_shared_ux_page_analytics_no_data.mdx | 2 +- ...bn_shared_ux_page_analytics_no_data_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_kibana_no_data.mdx | 2 +- .../kbn_shared_ux_page_kibana_no_data_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_kibana_template.mdx | 2 +- .../kbn_shared_ux_page_kibana_template_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_no_data.mdx | 2 +- api_docs/kbn_shared_ux_page_no_data_config.mdx | 2 +- .../kbn_shared_ux_page_no_data_config_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_no_data_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_solution_nav.mdx | 2 +- api_docs/kbn_shared_ux_prompt_no_data_views.mdx | 2 +- .../kbn_shared_ux_prompt_no_data_views_mocks.mdx | 2 +- api_docs/kbn_shared_ux_prompt_not_found.mdx | 2 +- api_docs/kbn_shared_ux_router.mdx | 2 +- api_docs/kbn_shared_ux_router_mocks.mdx | 2 +- api_docs/kbn_shared_ux_storybook_config.mdx | 2 +- api_docs/kbn_shared_ux_storybook_mock.mdx | 2 +- api_docs/kbn_shared_ux_utility.mdx | 2 +- api_docs/kbn_slo_schema.mdx | 2 +- api_docs/kbn_some_dev_log.mdx | 2 +- api_docs/kbn_std.mdx | 2 +- api_docs/kbn_stdio_dev_helpers.mdx | 2 +- api_docs/kbn_storybook.mdx | 2 +- api_docs/kbn_subscription_tracking.mdx | 2 +- api_docs/kbn_telemetry_tools.mdx | 2 +- api_docs/kbn_test.mdx | 2 +- api_docs/kbn_test_jest_helpers.mdx | 2 +- api_docs/kbn_test_subj_selector.mdx | 2 +- api_docs/kbn_text_based_editor.mdx | 2 +- api_docs/kbn_tooling_log.mdx | 2 +- api_docs/kbn_ts_projects.mdx | 2 +- api_docs/kbn_typed_react_router_config.mdx | 2 +- api_docs/kbn_ui_actions_browser.mdx | 2 +- api_docs/kbn_ui_shared_deps_src.mdx | 2 +- api_docs/kbn_ui_theme.mdx | 2 +- api_docs/kbn_unified_data_table.mdx | 2 +- api_docs/kbn_unified_doc_viewer.mdx | 2 +- api_docs/kbn_unified_field_list.mdx | 2 +- api_docs/kbn_url_state.mdx | 2 +- api_docs/kbn_use_tracked_promise.mdx | 2 +- api_docs/kbn_user_profile_components.mdx | 2 +- api_docs/kbn_utility_types.mdx | 2 +- api_docs/kbn_utility_types_jest.mdx | 2 +- api_docs/kbn_utils.mdx | 2 +- api_docs/kbn_visualization_ui_components.mdx | 2 +- api_docs/kbn_xstate_utils.mdx | 2 +- api_docs/kbn_yarn_lock_validator.mdx | 2 +- api_docs/kibana_overview.mdx | 2 +- api_docs/kibana_react.mdx | 2 +- api_docs/kibana_utils.mdx | 2 +- api_docs/kubernetes_security.mdx | 2 +- api_docs/lens.mdx | 2 +- api_docs/license_api_guard.mdx | 2 +- api_docs/license_management.mdx | 2 +- api_docs/licensing.mdx | 2 +- api_docs/links.mdx | 2 +- api_docs/lists.mdx | 2 +- api_docs/log_explorer.mdx | 2 +- api_docs/logs_shared.mdx | 2 +- api_docs/management.mdx | 2 +- api_docs/maps.mdx | 2 +- api_docs/maps_ems.mdx | 2 +- api_docs/metrics_data_access.mdx | 2 +- api_docs/ml.mdx | 2 +- api_docs/monitoring.mdx | 2 +- api_docs/monitoring_collection.mdx | 2 +- api_docs/navigation.mdx | 2 +- api_docs/newsfeed.mdx | 2 +- api_docs/no_data_page.mdx | 2 +- api_docs/notifications.mdx | 2 +- api_docs/observability.mdx | 2 +- api_docs/observability_a_i_assistant.mdx | 2 +- api_docs/observability_log_explorer.mdx | 2 +- api_docs/observability_onboarding.mdx | 2 +- api_docs/observability_shared.mdx | 2 +- api_docs/osquery.mdx | 2 +- api_docs/painless_lab.mdx | 2 +- api_docs/plugin_directory.mdx | 2 +- api_docs/presentation_util.mdx | 2 +- api_docs/profiling.mdx | 2 +- api_docs/profiling_data_access.mdx | 2 +- api_docs/remote_clusters.mdx | 2 +- api_docs/reporting.mdx | 2 +- api_docs/rollup.mdx | 2 +- api_docs/rule_registry.mdx | 2 +- api_docs/runtime_fields.mdx | 2 +- api_docs/saved_objects.mdx | 2 +- api_docs/saved_objects_finder.mdx | 2 +- api_docs/saved_objects_management.mdx | 2 +- api_docs/saved_objects_tagging.mdx | 2 +- api_docs/saved_objects_tagging_oss.mdx | 2 +- api_docs/saved_search.mdx | 2 +- api_docs/screenshot_mode.mdx | 2 +- api_docs/screenshotting.mdx | 2 +- api_docs/security.mdx | 2 +- api_docs/security_solution.devdocs.json | 16 ++++++++-------- api_docs/security_solution.mdx | 2 +- api_docs/security_solution_ess.mdx | 2 +- api_docs/security_solution_serverless.mdx | 2 +- api_docs/serverless.mdx | 2 +- api_docs/serverless_observability.mdx | 2 +- api_docs/serverless_search.mdx | 2 +- api_docs/session_view.mdx | 2 +- api_docs/share.mdx | 2 +- api_docs/snapshot_restore.mdx | 2 +- api_docs/spaces.mdx | 2 +- api_docs/stack_alerts.mdx | 2 +- api_docs/stack_connectors.mdx | 2 +- api_docs/task_manager.mdx | 2 +- api_docs/telemetry.mdx | 2 +- api_docs/telemetry_collection_manager.mdx | 2 +- api_docs/telemetry_collection_xpack.mdx | 2 +- api_docs/telemetry_management_section.mdx | 2 +- api_docs/text_based_languages.mdx | 2 +- api_docs/threat_intelligence.mdx | 2 +- api_docs/timelines.mdx | 2 +- api_docs/transform.mdx | 2 +- api_docs/triggers_actions_ui.mdx | 2 +- api_docs/ui_actions.mdx | 2 +- api_docs/ui_actions_enhanced.mdx | 2 +- api_docs/unified_doc_viewer.mdx | 2 +- api_docs/unified_histogram.mdx | 2 +- api_docs/unified_search.mdx | 2 +- api_docs/unified_search_autocomplete.mdx | 2 +- api_docs/uptime.mdx | 2 +- api_docs/url_forwarding.mdx | 2 +- api_docs/usage_collection.mdx | 2 +- api_docs/ux.mdx | 2 +- api_docs/vis_default_editor.mdx | 2 +- api_docs/vis_type_gauge.mdx | 2 +- api_docs/vis_type_heatmap.mdx | 2 +- api_docs/vis_type_pie.mdx | 2 +- api_docs/vis_type_table.mdx | 2 +- api_docs/vis_type_timelion.mdx | 2 +- api_docs/vis_type_timeseries.mdx | 2 +- api_docs/vis_type_vega.mdx | 2 +- api_docs/vis_type_vislib.mdx | 2 +- api_docs/vis_type_xy.mdx | 2 +- api_docs/visualizations.mdx | 2 +- 600 files changed, 607 insertions(+), 611 deletions(-) diff --git a/api_docs/actions.mdx b/api_docs/actions.mdx index 18eef6b23d835..d8bb7bb6c8d16 100644 --- a/api_docs/actions.mdx +++ b/api_docs/actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/actions title: "actions" image: https://source.unsplash.com/400x175/?github description: API docs for the actions plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'actions'] --- import actionsObj from './actions.devdocs.json'; diff --git a/api_docs/advanced_settings.mdx b/api_docs/advanced_settings.mdx index 5b24b8a76b9b2..eb864e759be6f 100644 --- a/api_docs/advanced_settings.mdx +++ b/api_docs/advanced_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/advancedSettings title: "advancedSettings" image: https://source.unsplash.com/400x175/?github description: API docs for the advancedSettings plugin -date: 2023-10-12 +date: 2023-10-13 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 6448bc18342d2..71391973107fe 100644 --- a/api_docs/aiops.mdx +++ b/api_docs/aiops.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/aiops title: "aiops" image: https://source.unsplash.com/400x175/?github description: API docs for the aiops plugin -date: 2023-10-12 +date: 2023-10-13 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 05ddcbac18e52..3140b43430a01 100644 --- a/api_docs/alerting.devdocs.json +++ b/api_docs/alerting.devdocs.json @@ -3395,10 +3395,6 @@ "plugin": "infra", "path": "x-pack/plugins/infra/server/lib/alerting/inventory_metric_threshold/inventory_metric_threshold_executor.ts" }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/server/lib/alerting/metric_anomaly/metric_anomaly_executor.ts" - }, { "plugin": "monitoring", "path": "x-pack/plugins/monitoring/server/alerts/base_rule.ts" diff --git a/api_docs/alerting.mdx b/api_docs/alerting.mdx index b7bcb786f707c..d9ddd76fd95ac 100644 --- a/api_docs/alerting.mdx +++ b/api_docs/alerting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/alerting title: "alerting" image: https://source.unsplash.com/400x175/?github description: API docs for the alerting plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'alerting'] --- import alertingObj from './alerting.devdocs.json'; diff --git a/api_docs/apm.mdx b/api_docs/apm.mdx index 568292e806e7f..be106b4414d7d 100644 --- a/api_docs/apm.mdx +++ b/api_docs/apm.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/apm title: "apm" image: https://source.unsplash.com/400x175/?github description: API docs for the apm plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'apm'] --- import apmObj from './apm.devdocs.json'; diff --git a/api_docs/apm_data_access.mdx b/api_docs/apm_data_access.mdx index 07318ac6f5738..c3e53bac68ef3 100644 --- a/api_docs/apm_data_access.mdx +++ b/api_docs/apm_data_access.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/apmDataAccess title: "apmDataAccess" image: https://source.unsplash.com/400x175/?github description: API docs for the apmDataAccess plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'apmDataAccess'] --- import apmDataAccessObj from './apm_data_access.devdocs.json'; diff --git a/api_docs/asset_manager.mdx b/api_docs/asset_manager.mdx index e463c00fa53cc..37d8c9c2fd458 100644 --- a/api_docs/asset_manager.mdx +++ b/api_docs/asset_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/assetManager title: "assetManager" image: https://source.unsplash.com/400x175/?github description: API docs for the assetManager plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'assetManager'] --- import assetManagerObj from './asset_manager.devdocs.json'; diff --git a/api_docs/banners.mdx b/api_docs/banners.mdx index 48ae51ec91e05..32a9b1088d44d 100644 --- a/api_docs/banners.mdx +++ b/api_docs/banners.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/banners title: "banners" image: https://source.unsplash.com/400x175/?github description: API docs for the banners plugin -date: 2023-10-12 +date: 2023-10-13 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 056ac22d50f2d..c5eaec7b72e31 100644 --- a/api_docs/bfetch.mdx +++ b/api_docs/bfetch.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/bfetch title: "bfetch" image: https://source.unsplash.com/400x175/?github description: API docs for the bfetch plugin -date: 2023-10-12 +date: 2023-10-13 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 9dfea4db85baf..95b16032b2c17 100644 --- a/api_docs/canvas.mdx +++ b/api_docs/canvas.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/canvas title: "canvas" image: https://source.unsplash.com/400x175/?github description: API docs for the canvas plugin -date: 2023-10-12 +date: 2023-10-13 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 461772ce8f4fd..dc156609a0c1f 100644 --- a/api_docs/cases.mdx +++ b/api_docs/cases.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cases title: "cases" image: https://source.unsplash.com/400x175/?github description: API docs for the cases plugin -date: 2023-10-12 +date: 2023-10-13 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 3d00f01f35811..14a64d9976b55 100644 --- a/api_docs/charts.mdx +++ b/api_docs/charts.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/charts title: "charts" image: https://source.unsplash.com/400x175/?github description: API docs for the charts plugin -date: 2023-10-12 +date: 2023-10-13 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 3d03e7f4974c1..f90bb10215c5c 100644 --- a/api_docs/cloud.mdx +++ b/api_docs/cloud.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloud title: "cloud" image: https://source.unsplash.com/400x175/?github description: API docs for the cloud plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloud'] --- import cloudObj from './cloud.devdocs.json'; diff --git a/api_docs/cloud_data_migration.mdx b/api_docs/cloud_data_migration.mdx index f8b90926bf3e0..c8fd0b2984d3b 100644 --- a/api_docs/cloud_data_migration.mdx +++ b/api_docs/cloud_data_migration.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudDataMigration title: "cloudDataMigration" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudDataMigration plugin -date: 2023-10-12 +date: 2023-10-13 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 be76eeb02cc3a..0402ff904e014 100644 --- a/api_docs/cloud_defend.mdx +++ b/api_docs/cloud_defend.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudDefend title: "cloudDefend" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudDefend plugin -date: 2023-10-12 +date: 2023-10-13 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 098d4e54d7d15..35819ef940e0b 100644 --- a/api_docs/cloud_experiments.mdx +++ b/api_docs/cloud_experiments.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudExperiments title: "cloudExperiments" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudExperiments plugin -date: 2023-10-12 +date: 2023-10-13 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 bb537024262c8..dd8010ee20848 100644 --- a/api_docs/cloud_security_posture.mdx +++ b/api_docs/cloud_security_posture.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudSecurityPosture title: "cloudSecurityPosture" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudSecurityPosture plugin -date: 2023-10-12 +date: 2023-10-13 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 2a89072ad3d53..6131157f8c1e5 100644 --- a/api_docs/console.mdx +++ b/api_docs/console.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/console title: "console" image: https://source.unsplash.com/400x175/?github description: API docs for the console plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'console'] --- import consoleObj from './console.devdocs.json'; diff --git a/api_docs/content_management.mdx b/api_docs/content_management.mdx index eefab87652203..4ae00130a22c8 100644 --- a/api_docs/content_management.mdx +++ b/api_docs/content_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/contentManagement title: "contentManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the contentManagement plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'contentManagement'] --- import contentManagementObj from './content_management.devdocs.json'; diff --git a/api_docs/controls.mdx b/api_docs/controls.mdx index 5734e71ab34fd..012e2b3eddbec 100644 --- a/api_docs/controls.mdx +++ b/api_docs/controls.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/controls title: "controls" image: https://source.unsplash.com/400x175/?github description: API docs for the controls plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'controls'] --- import controlsObj from './controls.devdocs.json'; diff --git a/api_docs/custom_integrations.mdx b/api_docs/custom_integrations.mdx index 88482645b3f1c..9c8db5d9fdc1b 100644 --- a/api_docs/custom_integrations.mdx +++ b/api_docs/custom_integrations.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/customIntegrations title: "customIntegrations" image: https://source.unsplash.com/400x175/?github description: API docs for the customIntegrations plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'customIntegrations'] --- import customIntegrationsObj from './custom_integrations.devdocs.json'; diff --git a/api_docs/dashboard.mdx b/api_docs/dashboard.mdx index b8b6b35107117..62e1c71a17416 100644 --- a/api_docs/dashboard.mdx +++ b/api_docs/dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dashboard title: "dashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the dashboard plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dashboard'] --- import dashboardObj from './dashboard.devdocs.json'; diff --git a/api_docs/dashboard_enhanced.mdx b/api_docs/dashboard_enhanced.mdx index c384b992d0bc4..97294d675c7c1 100644 --- a/api_docs/dashboard_enhanced.mdx +++ b/api_docs/dashboard_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dashboardEnhanced title: "dashboardEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the dashboardEnhanced plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dashboardEnhanced'] --- import dashboardEnhancedObj from './dashboard_enhanced.devdocs.json'; diff --git a/api_docs/data.mdx b/api_docs/data.mdx index 6c423b32d1583..61cb2ad104183 100644 --- a/api_docs/data.mdx +++ b/api_docs/data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data title: "data" image: https://source.unsplash.com/400x175/?github description: API docs for the data plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data'] --- import dataObj from './data.devdocs.json'; diff --git a/api_docs/data_query.mdx b/api_docs/data_query.mdx index ce1b32ab4901c..2396215941b7d 100644 --- a/api_docs/data_query.mdx +++ b/api_docs/data_query.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data-query title: "data.query" image: https://source.unsplash.com/400x175/?github description: API docs for the data.query plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data.query'] --- import dataQueryObj from './data_query.devdocs.json'; diff --git a/api_docs/data_search.mdx b/api_docs/data_search.mdx index f8629628a5612..4da6bdf3c0309 100644 --- a/api_docs/data_search.mdx +++ b/api_docs/data_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data-search title: "data.search" image: https://source.unsplash.com/400x175/?github description: API docs for the data.search plugin -date: 2023-10-12 +date: 2023-10-13 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 3ff78bc170c3b..76146ece14ca1 100644 --- a/api_docs/data_view_editor.mdx +++ b/api_docs/data_view_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewEditor title: "dataViewEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewEditor plugin -date: 2023-10-12 +date: 2023-10-13 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 f97d3ca425605..8e5bd0814c469 100644 --- a/api_docs/data_view_field_editor.mdx +++ b/api_docs/data_view_field_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewFieldEditor title: "dataViewFieldEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewFieldEditor plugin -date: 2023-10-12 +date: 2023-10-13 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 0cd978640fe98..e625d0103f4db 100644 --- a/api_docs/data_view_management.mdx +++ b/api_docs/data_view_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewManagement title: "dataViewManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewManagement plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViewManagement'] --- import dataViewManagementObj from './data_view_management.devdocs.json'; diff --git a/api_docs/data_views.mdx b/api_docs/data_views.mdx index 86c6c16d076a4..4d2d73c2f5f8f 100644 --- a/api_docs/data_views.mdx +++ b/api_docs/data_views.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViews title: "dataViews" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViews plugin -date: 2023-10-12 +date: 2023-10-13 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 44681b2e10007..822366d2fd440 100644 --- a/api_docs/data_visualizer.mdx +++ b/api_docs/data_visualizer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataVisualizer title: "dataVisualizer" image: https://source.unsplash.com/400x175/?github description: API docs for the dataVisualizer plugin -date: 2023-10-12 +date: 2023-10-13 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 c967a5f3aa9d4..e8421c15bd5e7 100644 --- a/api_docs/deprecations_by_api.mdx +++ b/api_docs/deprecations_by_api.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsByApi slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-api title: Deprecated API usage by API description: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by. -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/deprecations_by_plugin.mdx b/api_docs/deprecations_by_plugin.mdx index a99c238f31f51..03cb728187dec 100644 --- a/api_docs/deprecations_by_plugin.mdx +++ b/api_docs/deprecations_by_plugin.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsByPlugin slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-plugin title: Deprecated API usage by plugin description: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by. -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- @@ -1004,7 +1004,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [log_threshold_executor.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/server/lib/alerting/log_threshold/log_threshold_executor.ts#:~:text=alertFactory), [log_threshold_executor.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/server/lib/alerting/log_threshold/log_threshold_executor.ts#:~:text=alertFactory), [log_threshold_executor.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/server/lib/alerting/log_threshold/log_threshold_executor.ts#:~:text=alertFactory), [metric_threshold_executor.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/server/lib/alerting/metric_threshold/metric_threshold_executor.ts#:~:text=alertFactory), [inventory_metric_threshold_executor.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/server/lib/alerting/inventory_metric_threshold/inventory_metric_threshold_executor.ts#:~:text=alertFactory), [metric_anomaly_executor.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/server/lib/alerting/metric_anomaly/metric_anomaly_executor.ts#:~:text=alertFactory) | - | +| | [log_threshold_executor.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/server/lib/alerting/log_threshold/log_threshold_executor.ts#:~:text=alertFactory), [log_threshold_executor.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/server/lib/alerting/log_threshold/log_threshold_executor.ts#:~:text=alertFactory), [log_threshold_executor.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/server/lib/alerting/log_threshold/log_threshold_executor.ts#:~:text=alertFactory), [metric_threshold_executor.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/server/lib/alerting/metric_threshold/metric_threshold_executor.ts#:~:text=alertFactory), [inventory_metric_threshold_executor.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/server/lib/alerting/inventory_metric_threshold/inventory_metric_threshold_executor.ts#:~:text=alertFactory) | - | | | [use_kibana_index_patterns.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_kibana_index_patterns.ts#:~:text=indexPatterns) | - | | | [validation_errors.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/pages/logs/settings/validation_errors.ts#:~:text=title), [validation_errors.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/pages/logs/settings/validation_errors.ts#:~:text=title), [validation_errors.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/pages/logs/settings/validation_errors.ts#:~:text=title), [validation_errors.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/pages/logs/settings/validation_errors.ts#:~:text=title), [index_patterns.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/common/dependency_mocks/index_patterns.ts#:~:text=title), [index_patterns.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/common/dependency_mocks/index_patterns.ts#:~:text=title), [index_patterns.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/common/dependency_mocks/index_patterns.ts#:~:text=title), [use_data_view.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/pages/metrics/hosts/hooks/use_data_view.test.ts#:~:text=title), [validation_errors.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/pages/logs/settings/validation_errors.ts#:~:text=title), [validation_errors.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/pages/logs/settings/validation_errors.ts#:~:text=title)+ 6 more | - | | | [validation_errors.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/pages/logs/settings/validation_errors.ts#:~:text=title), [validation_errors.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/pages/logs/settings/validation_errors.ts#:~:text=title), [validation_errors.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/pages/logs/settings/validation_errors.ts#:~:text=title), [validation_errors.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/pages/logs/settings/validation_errors.ts#:~:text=title), [index_patterns.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/common/dependency_mocks/index_patterns.ts#:~:text=title), [index_patterns.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/common/dependency_mocks/index_patterns.ts#:~:text=title), [index_patterns.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/common/dependency_mocks/index_patterns.ts#:~:text=title), [use_data_view.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/pages/metrics/hosts/hooks/use_data_view.test.ts#:~:text=title), [validation_errors.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/pages/logs/settings/validation_errors.ts#:~:text=title), [validation_errors.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/pages/logs/settings/validation_errors.ts#:~:text=title)+ 6 more | - | diff --git a/api_docs/deprecations_by_team.mdx b/api_docs/deprecations_by_team.mdx index b6a65938d1dd9..cecb3d80242de 100644 --- a/api_docs/deprecations_by_team.mdx +++ b/api_docs/deprecations_by_team.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsDueByTeam slug: /kibana-dev-docs/api-meta/deprecations-due-by-team title: Deprecated APIs due to be removed, by team description: Lists the teams that are referencing deprecated APIs with a remove by date. -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/dev_tools.mdx b/api_docs/dev_tools.mdx index dcec7f6659382..c0a4bfe859c31 100644 --- a/api_docs/dev_tools.mdx +++ b/api_docs/dev_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/devTools title: "devTools" image: https://source.unsplash.com/400x175/?github description: API docs for the devTools plugin -date: 2023-10-12 +date: 2023-10-13 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 a5036089786d7..74a8f12238fa6 100644 --- a/api_docs/discover.mdx +++ b/api_docs/discover.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discover title: "discover" image: https://source.unsplash.com/400x175/?github description: API docs for the discover plugin -date: 2023-10-12 +date: 2023-10-13 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 6d13ea11c8c9a..5d0ebea4e7e3b 100644 --- a/api_docs/discover_enhanced.mdx +++ b/api_docs/discover_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discoverEnhanced title: "discoverEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the discoverEnhanced plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discoverEnhanced'] --- import discoverEnhancedObj from './discover_enhanced.devdocs.json'; diff --git a/api_docs/ecs_data_quality_dashboard.mdx b/api_docs/ecs_data_quality_dashboard.mdx index 59fc1926bd773..2f8309c500725 100644 --- a/api_docs/ecs_data_quality_dashboard.mdx +++ b/api_docs/ecs_data_quality_dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ecsDataQualityDashboard title: "ecsDataQualityDashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the ecsDataQualityDashboard plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ecsDataQualityDashboard'] --- import ecsDataQualityDashboardObj from './ecs_data_quality_dashboard.devdocs.json'; diff --git a/api_docs/elastic_assistant.mdx b/api_docs/elastic_assistant.mdx index 88c39d0e46fdb..93389224bcfcf 100644 --- a/api_docs/elastic_assistant.mdx +++ b/api_docs/elastic_assistant.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/elasticAssistant title: "elasticAssistant" image: https://source.unsplash.com/400x175/?github description: API docs for the elasticAssistant plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'elasticAssistant'] --- import elasticAssistantObj from './elastic_assistant.devdocs.json'; diff --git a/api_docs/embeddable.mdx b/api_docs/embeddable.mdx index d438e7ed82a94..a0f72b4d361d0 100644 --- a/api_docs/embeddable.mdx +++ b/api_docs/embeddable.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/embeddable title: "embeddable" image: https://source.unsplash.com/400x175/?github description: API docs for the embeddable plugin -date: 2023-10-12 +date: 2023-10-13 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 e38f8e152d8f0..d2548827e4e23 100644 --- a/api_docs/embeddable_enhanced.mdx +++ b/api_docs/embeddable_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/embeddableEnhanced title: "embeddableEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the embeddableEnhanced plugin -date: 2023-10-12 +date: 2023-10-13 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 d60a7a1fc20b6..f044fc71dc077 100644 --- a/api_docs/encrypted_saved_objects.mdx +++ b/api_docs/encrypted_saved_objects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/encryptedSavedObjects title: "encryptedSavedObjects" image: https://source.unsplash.com/400x175/?github description: API docs for the encryptedSavedObjects plugin -date: 2023-10-12 +date: 2023-10-13 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 ee880baa0230c..bf7fb17909aea 100644 --- a/api_docs/enterprise_search.mdx +++ b/api_docs/enterprise_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/enterpriseSearch title: "enterpriseSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the enterpriseSearch plugin -date: 2023-10-12 +date: 2023-10-13 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 84b422f167e86..466ace9cd2701 100644 --- a/api_docs/es_ui_shared.mdx +++ b/api_docs/es_ui_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/esUiShared title: "esUiShared" image: https://source.unsplash.com/400x175/?github description: API docs for the esUiShared plugin -date: 2023-10-12 +date: 2023-10-13 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 15897e921e39c..1427c7d198c8a 100644 --- a/api_docs/event_annotation.mdx +++ b/api_docs/event_annotation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventAnnotation title: "eventAnnotation" image: https://source.unsplash.com/400x175/?github description: API docs for the eventAnnotation plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventAnnotation'] --- import eventAnnotationObj from './event_annotation.devdocs.json'; diff --git a/api_docs/event_annotation_listing.mdx b/api_docs/event_annotation_listing.mdx index 250e4645a47d5..a29bf0c55a4b5 100644 --- a/api_docs/event_annotation_listing.mdx +++ b/api_docs/event_annotation_listing.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventAnnotationListing title: "eventAnnotationListing" image: https://source.unsplash.com/400x175/?github description: API docs for the eventAnnotationListing plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventAnnotationListing'] --- import eventAnnotationListingObj from './event_annotation_listing.devdocs.json'; diff --git a/api_docs/event_log.mdx b/api_docs/event_log.mdx index dc555f4dcea83..35d55d3f80d03 100644 --- a/api_docs/event_log.mdx +++ b/api_docs/event_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventLog title: "eventLog" image: https://source.unsplash.com/400x175/?github description: API docs for the eventLog plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventLog'] --- import eventLogObj from './event_log.devdocs.json'; diff --git a/api_docs/exploratory_view.mdx b/api_docs/exploratory_view.mdx index ed957b46a8c0d..4bc9e596ea246 100644 --- a/api_docs/exploratory_view.mdx +++ b/api_docs/exploratory_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/exploratoryView title: "exploratoryView" image: https://source.unsplash.com/400x175/?github description: API docs for the exploratoryView plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'exploratoryView'] --- import exploratoryViewObj from './exploratory_view.devdocs.json'; diff --git a/api_docs/expression_error.mdx b/api_docs/expression_error.mdx index 87635e89a1f76..dfc7233dac22a 100644 --- a/api_docs/expression_error.mdx +++ b/api_docs/expression_error.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionError title: "expressionError" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionError plugin -date: 2023-10-12 +date: 2023-10-13 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 3bd1d6393a9f8..5a8856a4172b8 100644 --- a/api_docs/expression_gauge.mdx +++ b/api_docs/expression_gauge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionGauge title: "expressionGauge" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionGauge plugin -date: 2023-10-12 +date: 2023-10-13 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 98a5b4f40d5e7..31cddad30bf5d 100644 --- a/api_docs/expression_heatmap.mdx +++ b/api_docs/expression_heatmap.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionHeatmap title: "expressionHeatmap" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionHeatmap plugin -date: 2023-10-12 +date: 2023-10-13 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 3dfbebfb96858..b0007e2ed0bda 100644 --- a/api_docs/expression_image.mdx +++ b/api_docs/expression_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionImage title: "expressionImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionImage plugin -date: 2023-10-12 +date: 2023-10-13 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 7f892949c9340..df30f7f99e4f2 100644 --- a/api_docs/expression_legacy_metric_vis.mdx +++ b/api_docs/expression_legacy_metric_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionLegacyMetricVis title: "expressionLegacyMetricVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionLegacyMetricVis plugin -date: 2023-10-12 +date: 2023-10-13 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 6c9a6f033ab83..487391bb91cc1 100644 --- a/api_docs/expression_metric.mdx +++ b/api_docs/expression_metric.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionMetric title: "expressionMetric" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionMetric plugin -date: 2023-10-12 +date: 2023-10-13 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 13bc6dc533b51..124f632d2a44f 100644 --- a/api_docs/expression_metric_vis.mdx +++ b/api_docs/expression_metric_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionMetricVis title: "expressionMetricVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionMetricVis plugin -date: 2023-10-12 +date: 2023-10-13 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 75e66f340ed26..9850f2f399a42 100644 --- a/api_docs/expression_partition_vis.mdx +++ b/api_docs/expression_partition_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionPartitionVis title: "expressionPartitionVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionPartitionVis plugin -date: 2023-10-12 +date: 2023-10-13 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 8c6611da92e6e..6ba257fd16c79 100644 --- a/api_docs/expression_repeat_image.mdx +++ b/api_docs/expression_repeat_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionRepeatImage title: "expressionRepeatImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionRepeatImage plugin -date: 2023-10-12 +date: 2023-10-13 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 50c6fa3e26034..d18d9f066954c 100644 --- a/api_docs/expression_reveal_image.mdx +++ b/api_docs/expression_reveal_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionRevealImage title: "expressionRevealImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionRevealImage plugin -date: 2023-10-12 +date: 2023-10-13 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 8c58b6962640d..4e1e4a3803e56 100644 --- a/api_docs/expression_shape.mdx +++ b/api_docs/expression_shape.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionShape title: "expressionShape" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionShape plugin -date: 2023-10-12 +date: 2023-10-13 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 ba95728559a15..f2d8870825460 100644 --- a/api_docs/expression_tagcloud.mdx +++ b/api_docs/expression_tagcloud.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionTagcloud title: "expressionTagcloud" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionTagcloud plugin -date: 2023-10-12 +date: 2023-10-13 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 5893208653bb8..c3466ee0bb2f6 100644 --- a/api_docs/expression_x_y.mdx +++ b/api_docs/expression_x_y.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionXY title: "expressionXY" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionXY plugin -date: 2023-10-12 +date: 2023-10-13 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 3dc8ea14bbce0..835cd6193eea7 100644 --- a/api_docs/expressions.mdx +++ b/api_docs/expressions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressions title: "expressions" image: https://source.unsplash.com/400x175/?github description: API docs for the expressions plugin -date: 2023-10-12 +date: 2023-10-13 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 53f464fde04fe..5b89418f7972e 100644 --- a/api_docs/features.mdx +++ b/api_docs/features.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/features title: "features" image: https://source.unsplash.com/400x175/?github description: API docs for the features plugin -date: 2023-10-12 +date: 2023-10-13 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 9563c0579470c..71e579ac8864c 100644 --- a/api_docs/field_formats.mdx +++ b/api_docs/field_formats.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fieldFormats title: "fieldFormats" image: https://source.unsplash.com/400x175/?github description: API docs for the fieldFormats plugin -date: 2023-10-12 +date: 2023-10-13 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 631e92ca18b74..2f7777a833d36 100644 --- a/api_docs/file_upload.mdx +++ b/api_docs/file_upload.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fileUpload title: "fileUpload" image: https://source.unsplash.com/400x175/?github description: API docs for the fileUpload plugin -date: 2023-10-12 +date: 2023-10-13 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 37e3707a8eaf6..cb6d1a9f6e6a9 100644 --- a/api_docs/files.mdx +++ b/api_docs/files.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/files title: "files" image: https://source.unsplash.com/400x175/?github description: API docs for the files plugin -date: 2023-10-12 +date: 2023-10-13 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 7022f19fae12b..99ebd903aa732 100644 --- a/api_docs/files_management.mdx +++ b/api_docs/files_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/filesManagement title: "filesManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the filesManagement plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'filesManagement'] --- import filesManagementObj from './files_management.devdocs.json'; diff --git a/api_docs/fleet.mdx b/api_docs/fleet.mdx index 2fd6234d5ad99..dcd3a4282b3cb 100644 --- a/api_docs/fleet.mdx +++ b/api_docs/fleet.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fleet title: "fleet" image: https://source.unsplash.com/400x175/?github description: API docs for the fleet plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fleet'] --- import fleetObj from './fleet.devdocs.json'; diff --git a/api_docs/global_search.mdx b/api_docs/global_search.mdx index d155b9752001d..196faf394bd56 100644 --- a/api_docs/global_search.mdx +++ b/api_docs/global_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/globalSearch title: "globalSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the globalSearch plugin -date: 2023-10-12 +date: 2023-10-13 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 c2214a67d4f92..e6f55b2ea32d9 100644 --- a/api_docs/guided_onboarding.mdx +++ b/api_docs/guided_onboarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/guidedOnboarding title: "guidedOnboarding" image: https://source.unsplash.com/400x175/?github description: API docs for the guidedOnboarding plugin -date: 2023-10-12 +date: 2023-10-13 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 60bcb2741c5db..7b8651f4ee4b2 100644 --- a/api_docs/home.mdx +++ b/api_docs/home.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/home title: "home" image: https://source.unsplash.com/400x175/?github description: API docs for the home plugin -date: 2023-10-12 +date: 2023-10-13 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 b7314771a36a0..8afb87595f25f 100644 --- a/api_docs/image_embeddable.mdx +++ b/api_docs/image_embeddable.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/imageEmbeddable title: "imageEmbeddable" image: https://source.unsplash.com/400x175/?github description: API docs for the imageEmbeddable plugin -date: 2023-10-12 +date: 2023-10-13 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 a1b77604da052..75dcbbaf58a79 100644 --- a/api_docs/index_lifecycle_management.mdx +++ b/api_docs/index_lifecycle_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/indexLifecycleManagement title: "indexLifecycleManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the indexLifecycleManagement plugin -date: 2023-10-12 +date: 2023-10-13 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 2f5d2ff736308..3d8ae953e468c 100644 --- a/api_docs/index_management.mdx +++ b/api_docs/index_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/indexManagement title: "indexManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the indexManagement plugin -date: 2023-10-12 +date: 2023-10-13 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 d7cc18fa9ee64..afd2f2c938d06 100644 --- a/api_docs/infra.devdocs.json +++ b/api_docs/infra.devdocs.json @@ -491,7 +491,7 @@ "label": "featureFlags", "description": [], "signature": [ - "{ customThresholdAlertsEnabled: boolean; logsUIEnabled: boolean; metricsExplorerEnabled: boolean; osqueryEnabled: boolean; }" + "{ customThresholdAlertsEnabled: boolean; logsUIEnabled: boolean; metricsExplorerEnabled: boolean; osqueryEnabled: boolean; inventoryThresholdAlertRuleEnabled: boolean; metricThresholdAlertRuleEnabled: boolean; logThresholdAlertRuleEnabled: boolean; }" ], "path": "x-pack/plugins/infra/common/plugin_config_types.ts", "deprecated": false, diff --git a/api_docs/infra.mdx b/api_docs/infra.mdx index 2b998224dafe0..c2fc618610185 100644 --- a/api_docs/infra.mdx +++ b/api_docs/infra.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/infra title: "infra" image: https://source.unsplash.com/400x175/?github description: API docs for the infra plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'infra'] --- import infraObj from './infra.devdocs.json'; diff --git a/api_docs/inspector.mdx b/api_docs/inspector.mdx index b7b8e78b1702e..823f1535b6d4b 100644 --- a/api_docs/inspector.mdx +++ b/api_docs/inspector.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/inspector title: "inspector" image: https://source.unsplash.com/400x175/?github description: API docs for the inspector plugin -date: 2023-10-12 +date: 2023-10-13 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 ae08a35784052..adbc96ef9a55c 100644 --- a/api_docs/interactive_setup.mdx +++ b/api_docs/interactive_setup.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/interactiveSetup title: "interactiveSetup" image: https://source.unsplash.com/400x175/?github description: API docs for the interactiveSetup plugin -date: 2023-10-12 +date: 2023-10-13 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 742c564369e25..a5bbc32bcd4bf 100644 --- a/api_docs/kbn_ace.mdx +++ b/api_docs/kbn_ace.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ace title: "@kbn/ace" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ace plugin -date: 2023-10-12 +date: 2023-10-13 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 d833b8c370707..dd206e5be8188 100644 --- a/api_docs/kbn_aiops_components.mdx +++ b/api_docs/kbn_aiops_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-components title: "@kbn/aiops-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/aiops-components plugin -date: 2023-10-12 +date: 2023-10-13 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 fd5105e9e9dd5..3ac6a7add9f33 100644 --- a/api_docs/kbn_aiops_utils.mdx +++ b/api_docs/kbn_aiops_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-utils title: "@kbn/aiops-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/aiops-utils plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-utils'] --- import kbnAiopsUtilsObj from './kbn_aiops_utils.devdocs.json'; diff --git a/api_docs/kbn_alerting_api_integration_helpers.mdx b/api_docs/kbn_alerting_api_integration_helpers.mdx index 8acd6485e0679..a96184a7173f6 100644 --- a/api_docs/kbn_alerting_api_integration_helpers.mdx +++ b/api_docs/kbn_alerting_api_integration_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerting-api-integration-helpers title: "@kbn/alerting-api-integration-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerting-api-integration-helpers plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerting-api-integration-helpers'] --- import kbnAlertingApiIntegrationHelpersObj from './kbn_alerting_api_integration_helpers.devdocs.json'; diff --git a/api_docs/kbn_alerting_state_types.mdx b/api_docs/kbn_alerting_state_types.mdx index 84b15efef89af..36d8f35d4f74a 100644 --- a/api_docs/kbn_alerting_state_types.mdx +++ b/api_docs/kbn_alerting_state_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerting-state-types title: "@kbn/alerting-state-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerting-state-types plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerting-state-types'] --- import kbnAlertingStateTypesObj from './kbn_alerting_state_types.devdocs.json'; diff --git a/api_docs/kbn_alerts_as_data_utils.mdx b/api_docs/kbn_alerts_as_data_utils.mdx index 5fe8f333b7980..7312b4bb183d6 100644 --- a/api_docs/kbn_alerts_as_data_utils.mdx +++ b/api_docs/kbn_alerts_as_data_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts-as-data-utils title: "@kbn/alerts-as-data-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerts-as-data-utils plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts-as-data-utils'] --- import kbnAlertsAsDataUtilsObj from './kbn_alerts_as_data_utils.devdocs.json'; diff --git a/api_docs/kbn_alerts_ui_shared.mdx b/api_docs/kbn_alerts_ui_shared.mdx index 27cee4677a85e..89610b2175c17 100644 --- a/api_docs/kbn_alerts_ui_shared.mdx +++ b/api_docs/kbn_alerts_ui_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts-ui-shared title: "@kbn/alerts-ui-shared" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerts-ui-shared plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts-ui-shared'] --- import kbnAlertsUiSharedObj from './kbn_alerts_ui_shared.devdocs.json'; diff --git a/api_docs/kbn_analytics.mdx b/api_docs/kbn_analytics.mdx index 209322cb5e9d8..5bc432c4e6b5a 100644 --- a/api_docs/kbn_analytics.mdx +++ b/api_docs/kbn_analytics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics title: "@kbn/analytics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics'] --- import kbnAnalyticsObj from './kbn_analytics.devdocs.json'; diff --git a/api_docs/kbn_analytics_client.mdx b/api_docs/kbn_analytics_client.mdx index 7fbed68c4e1ad..02548842a0a20 100644 --- a/api_docs/kbn_analytics_client.mdx +++ b/api_docs/kbn_analytics_client.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-client title: "@kbn/analytics-client" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-client plugin -date: 2023-10-12 +date: 2023-10-13 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 ef5ee4d9d4290..e5f1aec959278 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-browser title: "@kbn/analytics-shippers-elastic-v3-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-browser plugin -date: 2023-10-12 +date: 2023-10-13 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 1dfe9e20de67a..3c37f0ba78783 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-common title: "@kbn/analytics-shippers-elastic-v3-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-common plugin -date: 2023-10-12 +date: 2023-10-13 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 2502e9ab0ad2b..87f2814babec1 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-server title: "@kbn/analytics-shippers-elastic-v3-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-server plugin -date: 2023-10-12 +date: 2023-10-13 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 cdc08bdcbe000..db5519b07d607 100644 --- a/api_docs/kbn_analytics_shippers_fullstory.mdx +++ b/api_docs/kbn_analytics_shippers_fullstory.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-fullstory title: "@kbn/analytics-shippers-fullstory" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-fullstory plugin -date: 2023-10-12 +date: 2023-10-13 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 edcbf71eb7e0c..aaf023d129541 100644 --- a/api_docs/kbn_analytics_shippers_gainsight.mdx +++ b/api_docs/kbn_analytics_shippers_gainsight.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-gainsight title: "@kbn/analytics-shippers-gainsight" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-gainsight plugin -date: 2023-10-12 +date: 2023-10-13 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 162ec11d0190d..4aca03e5cddbb 100644 --- a/api_docs/kbn_apm_config_loader.mdx +++ b/api_docs/kbn_apm_config_loader.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-config-loader title: "@kbn/apm-config-loader" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-config-loader plugin -date: 2023-10-12 +date: 2023-10-13 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 83dd12e8f69e2..6857600f9df1a 100644 --- a/api_docs/kbn_apm_synthtrace.mdx +++ b/api_docs/kbn_apm_synthtrace.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-synthtrace title: "@kbn/apm-synthtrace" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-synthtrace plugin -date: 2023-10-12 +date: 2023-10-13 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 57cfcfe7494e4..91d8d3af564ac 100644 --- a/api_docs/kbn_apm_synthtrace_client.mdx +++ b/api_docs/kbn_apm_synthtrace_client.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-synthtrace-client title: "@kbn/apm-synthtrace-client" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-synthtrace-client plugin -date: 2023-10-12 +date: 2023-10-13 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 d1dca276aa327..3176df01a3e95 100644 --- a/api_docs/kbn_apm_utils.mdx +++ b/api_docs/kbn_apm_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-utils title: "@kbn/apm-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-utils plugin -date: 2023-10-12 +date: 2023-10-13 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 abc766c7ccffb..e01b456d78bf3 100644 --- a/api_docs/kbn_axe_config.mdx +++ b/api_docs/kbn_axe_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-axe-config title: "@kbn/axe-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/axe-config plugin -date: 2023-10-12 +date: 2023-10-13 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 9a9d5ef16097c..a22d077e13b8a 100644 --- a/api_docs/kbn_cases_components.mdx +++ b/api_docs/kbn_cases_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cases-components title: "@kbn/cases-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cases-components plugin -date: 2023-10-12 +date: 2023-10-13 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 fe43ec6f8cc6f..1528e98c3862e 100644 --- a/api_docs/kbn_cell_actions.mdx +++ b/api_docs/kbn_cell_actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cell-actions title: "@kbn/cell-actions" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cell-actions plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cell-actions'] --- import kbnCellActionsObj from './kbn_cell_actions.devdocs.json'; diff --git a/api_docs/kbn_chart_expressions_common.mdx b/api_docs/kbn_chart_expressions_common.mdx index ded3b25980ab3..a614f2c674ee6 100644 --- a/api_docs/kbn_chart_expressions_common.mdx +++ b/api_docs/kbn_chart_expressions_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-chart-expressions-common title: "@kbn/chart-expressions-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/chart-expressions-common plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/chart-expressions-common'] --- import kbnChartExpressionsCommonObj from './kbn_chart_expressions_common.devdocs.json'; diff --git a/api_docs/kbn_chart_icons.mdx b/api_docs/kbn_chart_icons.mdx index 580f1e5dcd1db..f3f470a36f552 100644 --- a/api_docs/kbn_chart_icons.mdx +++ b/api_docs/kbn_chart_icons.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-chart-icons title: "@kbn/chart-icons" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/chart-icons plugin -date: 2023-10-12 +date: 2023-10-13 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 fe87fc4edd785..85a704574edfc 100644 --- a/api_docs/kbn_ci_stats_core.mdx +++ b/api_docs/kbn_ci_stats_core.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-core title: "@kbn/ci-stats-core" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-core plugin -date: 2023-10-12 +date: 2023-10-13 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 286a7ba87c68d..4ae5b1e79b79f 100644 --- a/api_docs/kbn_ci_stats_performance_metrics.mdx +++ b/api_docs/kbn_ci_stats_performance_metrics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-performance-metrics title: "@kbn/ci-stats-performance-metrics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-performance-metrics plugin -date: 2023-10-12 +date: 2023-10-13 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 ed3c958bb470e..0fa76395bde65 100644 --- a/api_docs/kbn_ci_stats_reporter.mdx +++ b/api_docs/kbn_ci_stats_reporter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-reporter title: "@kbn/ci-stats-reporter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-reporter plugin -date: 2023-10-12 +date: 2023-10-13 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 2e29aaae7992b..1dba53c610992 100644 --- a/api_docs/kbn_cli_dev_mode.mdx +++ b/api_docs/kbn_cli_dev_mode.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cli-dev-mode title: "@kbn/cli-dev-mode" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cli-dev-mode plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cli-dev-mode'] --- import kbnCliDevModeObj from './kbn_cli_dev_mode.devdocs.json'; diff --git a/api_docs/kbn_code_editor.mdx b/api_docs/kbn_code_editor.mdx index f353987d4cb02..4ecb6a3e90039 100644 --- a/api_docs/kbn_code_editor.mdx +++ b/api_docs/kbn_code_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-editor title: "@kbn/code-editor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/code-editor plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-editor'] --- import kbnCodeEditorObj from './kbn_code_editor.devdocs.json'; diff --git a/api_docs/kbn_code_editor_mocks.mdx b/api_docs/kbn_code_editor_mocks.mdx index eac12bf5914f0..4686767a305c0 100644 --- a/api_docs/kbn_code_editor_mocks.mdx +++ b/api_docs/kbn_code_editor_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-editor-mocks title: "@kbn/code-editor-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/code-editor-mocks plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-editor-mocks'] --- import kbnCodeEditorMocksObj from './kbn_code_editor_mocks.devdocs.json'; diff --git a/api_docs/kbn_coloring.mdx b/api_docs/kbn_coloring.mdx index 688f8b67c74e8..6c67d5875cc47 100644 --- a/api_docs/kbn_coloring.mdx +++ b/api_docs/kbn_coloring.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-coloring title: "@kbn/coloring" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/coloring plugin -date: 2023-10-12 +date: 2023-10-13 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 06826988dd050..3eb348eee7d02 100644 --- a/api_docs/kbn_config.mdx +++ b/api_docs/kbn_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config title: "@kbn/config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config plugin -date: 2023-10-12 +date: 2023-10-13 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 dce437126a309..67cf5d3840d5e 100644 --- a/api_docs/kbn_config_mocks.mdx +++ b/api_docs/kbn_config_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config-mocks title: "@kbn/config-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 6182e0f947220..9640b18d741b8 100644 --- a/api_docs/kbn_config_schema.mdx +++ b/api_docs/kbn_config_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config-schema title: "@kbn/config-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config-schema plugin -date: 2023-10-12 +date: 2023-10-13 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 87747801208a4..1423a226fccbb 100644 --- a/api_docs/kbn_content_management_content_editor.mdx +++ b/api_docs/kbn_content_management_content_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-content-editor title: "@kbn/content-management-content-editor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-content-editor plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-content-editor'] --- import kbnContentManagementContentEditorObj from './kbn_content_management_content_editor.devdocs.json'; diff --git a/api_docs/kbn_content_management_tabbed_table_list_view.mdx b/api_docs/kbn_content_management_tabbed_table_list_view.mdx index fd9e636ec4348..679655131b173 100644 --- a/api_docs/kbn_content_management_tabbed_table_list_view.mdx +++ b/api_docs/kbn_content_management_tabbed_table_list_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-tabbed-table-list-view title: "@kbn/content-management-tabbed-table-list-view" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-tabbed-table-list-view plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-tabbed-table-list-view'] --- import kbnContentManagementTabbedTableListViewObj from './kbn_content_management_tabbed_table_list_view.devdocs.json'; diff --git a/api_docs/kbn_content_management_table_list_view.mdx b/api_docs/kbn_content_management_table_list_view.mdx index 7eec3aa2a7acc..b67992c6d1716 100644 --- a/api_docs/kbn_content_management_table_list_view.mdx +++ b/api_docs/kbn_content_management_table_list_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-table-list-view title: "@kbn/content-management-table-list-view" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-table-list-view plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-table-list-view'] --- import kbnContentManagementTableListViewObj from './kbn_content_management_table_list_view.devdocs.json'; diff --git a/api_docs/kbn_content_management_table_list_view_table.mdx b/api_docs/kbn_content_management_table_list_view_table.mdx index fb5a25869824f..664264d7c751c 100644 --- a/api_docs/kbn_content_management_table_list_view_table.mdx +++ b/api_docs/kbn_content_management_table_list_view_table.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-table-list-view-table title: "@kbn/content-management-table-list-view-table" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-table-list-view-table plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-table-list-view-table'] --- import kbnContentManagementTableListViewTableObj from './kbn_content_management_table_list_view_table.devdocs.json'; diff --git a/api_docs/kbn_content_management_utils.mdx b/api_docs/kbn_content_management_utils.mdx index c408509ec1104..4ce5763bb79f3 100644 --- a/api_docs/kbn_content_management_utils.mdx +++ b/api_docs/kbn_content_management_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-utils title: "@kbn/content-management-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-utils plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-utils'] --- import kbnContentManagementUtilsObj from './kbn_content_management_utils.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_browser.mdx b/api_docs/kbn_core_analytics_browser.mdx index 454ad52ab5613..0d5061fda446b 100644 --- a/api_docs/kbn_core_analytics_browser.mdx +++ b/api_docs/kbn_core_analytics_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser title: "@kbn/core-analytics-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser plugin -date: 2023-10-12 +date: 2023-10-13 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 e98feb9f46caa..ff40b69d1ba7d 100644 --- a/api_docs/kbn_core_analytics_browser_internal.mdx +++ b/api_docs/kbn_core_analytics_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser-internal title: "@kbn/core-analytics-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser-internal plugin -date: 2023-10-12 +date: 2023-10-13 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 ba91dbcaeea07..fbf0d3f72e0a8 100644 --- a/api_docs/kbn_core_analytics_browser_mocks.mdx +++ b/api_docs/kbn_core_analytics_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser-mocks title: "@kbn/core-analytics-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 6d956a67cfb98..2e52c90bae757 100644 --- a/api_docs/kbn_core_analytics_server.mdx +++ b/api_docs/kbn_core_analytics_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server title: "@kbn/core-analytics-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server plugin -date: 2023-10-12 +date: 2023-10-13 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 a6f1927cd0b3d..1f89c3b8f2685 100644 --- a/api_docs/kbn_core_analytics_server_internal.mdx +++ b/api_docs/kbn_core_analytics_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server-internal title: "@kbn/core-analytics-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server-internal plugin -date: 2023-10-12 +date: 2023-10-13 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 e0b6b69e6f49b..e4a8bdc2d16d6 100644 --- a/api_docs/kbn_core_analytics_server_mocks.mdx +++ b/api_docs/kbn_core_analytics_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server-mocks title: "@kbn/core-analytics-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 6a06b983e0269..4dea30ec2182b 100644 --- a/api_docs/kbn_core_application_browser.mdx +++ b/api_docs/kbn_core_application_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser title: "@kbn/core-application-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser plugin -date: 2023-10-12 +date: 2023-10-13 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 7867e20d1deaf..a5bb036200b28 100644 --- a/api_docs/kbn_core_application_browser_internal.mdx +++ b/api_docs/kbn_core_application_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser-internal title: "@kbn/core-application-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser-internal plugin -date: 2023-10-12 +date: 2023-10-13 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 7e1671e1def1d..c4b3649375c14 100644 --- a/api_docs/kbn_core_application_browser_mocks.mdx +++ b/api_docs/kbn_core_application_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser-mocks title: "@kbn/core-application-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 f25c4ac5581c5..fd156fef12cd0 100644 --- a/api_docs/kbn_core_application_common.mdx +++ b/api_docs/kbn_core_application_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-common title: "@kbn/core-application-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-common plugin -date: 2023-10-12 +date: 2023-10-13 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 89c219c55bfd4..9f39153e78974 100644 --- a/api_docs/kbn_core_apps_browser_internal.mdx +++ b/api_docs/kbn_core_apps_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-browser-internal title: "@kbn/core-apps-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-browser-internal plugin -date: 2023-10-12 +date: 2023-10-13 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 aa207c3f94e18..573edf15b8470 100644 --- a/api_docs/kbn_core_apps_browser_mocks.mdx +++ b/api_docs/kbn_core_apps_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-browser-mocks title: "@kbn/core-apps-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-browser-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 0555fdeacc054..0a69ee1bfb862 100644 --- a/api_docs/kbn_core_apps_server_internal.mdx +++ b/api_docs/kbn_core_apps_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-server-internal title: "@kbn/core-apps-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-server-internal plugin -date: 2023-10-12 +date: 2023-10-13 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 3193848c81f58..cccadcccb0039 100644 --- a/api_docs/kbn_core_base_browser_mocks.mdx +++ b/api_docs/kbn_core_base_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-browser-mocks title: "@kbn/core-base-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-browser-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 fc09e63b2f396..2904e62286332 100644 --- a/api_docs/kbn_core_base_common.mdx +++ b/api_docs/kbn_core_base_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-common title: "@kbn/core-base-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-common plugin -date: 2023-10-12 +date: 2023-10-13 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 7aa51d4b2f46a..db33192c78c86 100644 --- a/api_docs/kbn_core_base_server_internal.mdx +++ b/api_docs/kbn_core_base_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-server-internal title: "@kbn/core-base-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-server-internal plugin -date: 2023-10-12 +date: 2023-10-13 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 6d9d48a1040c4..00cba60e8de11 100644 --- a/api_docs/kbn_core_base_server_mocks.mdx +++ b/api_docs/kbn_core_base_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-server-mocks title: "@kbn/core-base-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-server-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 121af2a79de92..c906b11b43e54 100644 --- a/api_docs/kbn_core_capabilities_browser_mocks.mdx +++ b/api_docs/kbn_core_capabilities_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-browser-mocks title: "@kbn/core-capabilities-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-browser-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 719a3d11ac7a4..18d2a56f8e442 100644 --- a/api_docs/kbn_core_capabilities_common.mdx +++ b/api_docs/kbn_core_capabilities_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-common title: "@kbn/core-capabilities-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-common plugin -date: 2023-10-12 +date: 2023-10-13 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 323c0bdb82164..e869a3dbcc0ad 100644 --- a/api_docs/kbn_core_capabilities_server.mdx +++ b/api_docs/kbn_core_capabilities_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-server title: "@kbn/core-capabilities-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-server plugin -date: 2023-10-12 +date: 2023-10-13 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 553d9f576aa36..993618d588b8e 100644 --- a/api_docs/kbn_core_capabilities_server_mocks.mdx +++ b/api_docs/kbn_core_capabilities_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-server-mocks title: "@kbn/core-capabilities-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-server-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 ec9d657d541ed..37c33bf975e56 100644 --- a/api_docs/kbn_core_chrome_browser.mdx +++ b/api_docs/kbn_core_chrome_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-chrome-browser title: "@kbn/core-chrome-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-chrome-browser plugin -date: 2023-10-12 +date: 2023-10-13 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 bae3dc6bff75b..ea44c048085ed 100644 --- a/api_docs/kbn_core_chrome_browser_mocks.mdx +++ b/api_docs/kbn_core_chrome_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-chrome-browser-mocks title: "@kbn/core-chrome-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-chrome-browser-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 814e6c81b806c..7b881f1899c6a 100644 --- a/api_docs/kbn_core_config_server_internal.mdx +++ b/api_docs/kbn_core_config_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-config-server-internal title: "@kbn/core-config-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-config-server-internal plugin -date: 2023-10-12 +date: 2023-10-13 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 0615b97568b27..ae4bdd944db56 100644 --- a/api_docs/kbn_core_custom_branding_browser.mdx +++ b/api_docs/kbn_core_custom_branding_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser title: "@kbn/core-custom-branding-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser plugin -date: 2023-10-12 +date: 2023-10-13 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 0b1c3e5dab04f..90db00ff6831c 100644 --- a/api_docs/kbn_core_custom_branding_browser_internal.mdx +++ b/api_docs/kbn_core_custom_branding_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser-internal title: "@kbn/core-custom-branding-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser-internal plugin -date: 2023-10-12 +date: 2023-10-13 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 3e02dbcf92e54..9fa8e1e42f706 100644 --- a/api_docs/kbn_core_custom_branding_browser_mocks.mdx +++ b/api_docs/kbn_core_custom_branding_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser-mocks title: "@kbn/core-custom-branding-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 b8510b05aa41a..8986bdee822bb 100644 --- a/api_docs/kbn_core_custom_branding_common.mdx +++ b/api_docs/kbn_core_custom_branding_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-common title: "@kbn/core-custom-branding-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-common plugin -date: 2023-10-12 +date: 2023-10-13 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 120500b7af1be..cfb052ff70b96 100644 --- a/api_docs/kbn_core_custom_branding_server.mdx +++ b/api_docs/kbn_core_custom_branding_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server title: "@kbn/core-custom-branding-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server plugin -date: 2023-10-12 +date: 2023-10-13 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 8ba915260d91d..b259dc935ebf9 100644 --- a/api_docs/kbn_core_custom_branding_server_internal.mdx +++ b/api_docs/kbn_core_custom_branding_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server-internal title: "@kbn/core-custom-branding-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server-internal plugin -date: 2023-10-12 +date: 2023-10-13 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 3a4336337a276..f10b1e89f23ca 100644 --- a/api_docs/kbn_core_custom_branding_server_mocks.mdx +++ b/api_docs/kbn_core_custom_branding_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server-mocks title: "@kbn/core-custom-branding-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 a27c417e8b05c..1420fee862018 100644 --- a/api_docs/kbn_core_deprecations_browser.mdx +++ b/api_docs/kbn_core_deprecations_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser title: "@kbn/core-deprecations-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser plugin -date: 2023-10-12 +date: 2023-10-13 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 c4019d1b05462..e4ef323bd5cb2 100644 --- a/api_docs/kbn_core_deprecations_browser_internal.mdx +++ b/api_docs/kbn_core_deprecations_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser-internal title: "@kbn/core-deprecations-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser-internal plugin -date: 2023-10-12 +date: 2023-10-13 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 30c11d5134356..715db79cf04b0 100644 --- a/api_docs/kbn_core_deprecations_browser_mocks.mdx +++ b/api_docs/kbn_core_deprecations_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser-mocks title: "@kbn/core-deprecations-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 f43f87cdd531b..d9f315493ac45 100644 --- a/api_docs/kbn_core_deprecations_common.mdx +++ b/api_docs/kbn_core_deprecations_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-common title: "@kbn/core-deprecations-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-common plugin -date: 2023-10-12 +date: 2023-10-13 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 19c9c82a16824..457959aa1766d 100644 --- a/api_docs/kbn_core_deprecations_server.mdx +++ b/api_docs/kbn_core_deprecations_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server title: "@kbn/core-deprecations-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server plugin -date: 2023-10-12 +date: 2023-10-13 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 6adacc5b696ed..f717e8699ae3f 100644 --- a/api_docs/kbn_core_deprecations_server_internal.mdx +++ b/api_docs/kbn_core_deprecations_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server-internal title: "@kbn/core-deprecations-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server-internal plugin -date: 2023-10-12 +date: 2023-10-13 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 72f52cb2354ea..cc32d40be7973 100644 --- a/api_docs/kbn_core_deprecations_server_mocks.mdx +++ b/api_docs/kbn_core_deprecations_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server-mocks title: "@kbn/core-deprecations-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 717a44e5ae51f..3444a9a2d908f 100644 --- a/api_docs/kbn_core_doc_links_browser.mdx +++ b/api_docs/kbn_core_doc_links_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-browser title: "@kbn/core-doc-links-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-browser plugin -date: 2023-10-12 +date: 2023-10-13 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 bf8aae929a3c8..dff2b793de069 100644 --- a/api_docs/kbn_core_doc_links_browser_mocks.mdx +++ b/api_docs/kbn_core_doc_links_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-browser-mocks title: "@kbn/core-doc-links-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-browser-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 2c04c01b5f8fb..24abb3ac7588e 100644 --- a/api_docs/kbn_core_doc_links_server.mdx +++ b/api_docs/kbn_core_doc_links_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-server title: "@kbn/core-doc-links-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-server plugin -date: 2023-10-12 +date: 2023-10-13 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 33cf08dc01fb0..5996dd4420a82 100644 --- a/api_docs/kbn_core_doc_links_server_mocks.mdx +++ b/api_docs/kbn_core_doc_links_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-server-mocks title: "@kbn/core-doc-links-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-server-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 3395d08a47345..ddec34dad7e1f 100644 --- a/api_docs/kbn_core_elasticsearch_client_server_internal.mdx +++ b/api_docs/kbn_core_elasticsearch_client_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-client-server-internal title: "@kbn/core-elasticsearch-client-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-client-server-internal plugin -date: 2023-10-12 +date: 2023-10-13 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 67c3412764fe6..c10913dee689c 100644 --- a/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx +++ b/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-client-server-mocks title: "@kbn/core-elasticsearch-client-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-client-server-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 a15c8fb2edb21..e60c57ce1b239 100644 --- a/api_docs/kbn_core_elasticsearch_server.mdx +++ b/api_docs/kbn_core_elasticsearch_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server title: "@kbn/core-elasticsearch-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server plugin -date: 2023-10-12 +date: 2023-10-13 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 c5127ca1ed9e2..3bf12543f025b 100644 --- a/api_docs/kbn_core_elasticsearch_server_internal.mdx +++ b/api_docs/kbn_core_elasticsearch_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server-internal title: "@kbn/core-elasticsearch-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server-internal plugin -date: 2023-10-12 +date: 2023-10-13 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 598e698f57bdd..a9c8ffea5d8de 100644 --- a/api_docs/kbn_core_elasticsearch_server_mocks.mdx +++ b/api_docs/kbn_core_elasticsearch_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server-mocks title: "@kbn/core-elasticsearch-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 da85523bb2a6d..258b7ec2851c3 100644 --- a/api_docs/kbn_core_environment_server_internal.mdx +++ b/api_docs/kbn_core_environment_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-environment-server-internal title: "@kbn/core-environment-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-environment-server-internal plugin -date: 2023-10-12 +date: 2023-10-13 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 f52213d2bf717..14e9d3e6b7c4d 100644 --- a/api_docs/kbn_core_environment_server_mocks.mdx +++ b/api_docs/kbn_core_environment_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-environment-server-mocks title: "@kbn/core-environment-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-environment-server-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 ce3c05223ba8c..c7b6481996dff 100644 --- a/api_docs/kbn_core_execution_context_browser.mdx +++ b/api_docs/kbn_core_execution_context_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser title: "@kbn/core-execution-context-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser plugin -date: 2023-10-12 +date: 2023-10-13 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 cbb8f180cb675..141e858940249 100644 --- a/api_docs/kbn_core_execution_context_browser_internal.mdx +++ b/api_docs/kbn_core_execution_context_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser-internal title: "@kbn/core-execution-context-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser-internal plugin -date: 2023-10-12 +date: 2023-10-13 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 2ec5913928f2e..743742e7d5175 100644 --- a/api_docs/kbn_core_execution_context_browser_mocks.mdx +++ b/api_docs/kbn_core_execution_context_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser-mocks title: "@kbn/core-execution-context-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 ca2fd2fdf12ce..16a4daa0a5b8c 100644 --- a/api_docs/kbn_core_execution_context_common.mdx +++ b/api_docs/kbn_core_execution_context_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-common title: "@kbn/core-execution-context-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-common plugin -date: 2023-10-12 +date: 2023-10-13 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 1cf8a5a0f67cb..a0505820875a3 100644 --- a/api_docs/kbn_core_execution_context_server.mdx +++ b/api_docs/kbn_core_execution_context_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server title: "@kbn/core-execution-context-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server plugin -date: 2023-10-12 +date: 2023-10-13 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 39a16d987d3b5..b2ad15a6f6feb 100644 --- a/api_docs/kbn_core_execution_context_server_internal.mdx +++ b/api_docs/kbn_core_execution_context_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server-internal title: "@kbn/core-execution-context-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server-internal plugin -date: 2023-10-12 +date: 2023-10-13 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 965d5b006e945..26d5ff214084e 100644 --- a/api_docs/kbn_core_execution_context_server_mocks.mdx +++ b/api_docs/kbn_core_execution_context_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server-mocks title: "@kbn/core-execution-context-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 5aeec222bdcfb..62c475e820061 100644 --- a/api_docs/kbn_core_fatal_errors_browser.mdx +++ b/api_docs/kbn_core_fatal_errors_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-fatal-errors-browser title: "@kbn/core-fatal-errors-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-fatal-errors-browser plugin -date: 2023-10-12 +date: 2023-10-13 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 d2cf0f20b2829..3d545d5d7c064 100644 --- a/api_docs/kbn_core_fatal_errors_browser_mocks.mdx +++ b/api_docs/kbn_core_fatal_errors_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-fatal-errors-browser-mocks title: "@kbn/core-fatal-errors-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-fatal-errors-browser-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 2c6efbc2cb596..f17f702477d08 100644 --- a/api_docs/kbn_core_http_browser.mdx +++ b/api_docs/kbn_core_http_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser title: "@kbn/core-http-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser plugin -date: 2023-10-12 +date: 2023-10-13 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 bffbe825c23ee..98f352832055a 100644 --- a/api_docs/kbn_core_http_browser_internal.mdx +++ b/api_docs/kbn_core_http_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser-internal title: "@kbn/core-http-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser-internal plugin -date: 2023-10-12 +date: 2023-10-13 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 64e202dd90b80..27c5000852bdf 100644 --- a/api_docs/kbn_core_http_browser_mocks.mdx +++ b/api_docs/kbn_core_http_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser-mocks title: "@kbn/core-http-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 bb8131f2588de..a484867d9b387 100644 --- a/api_docs/kbn_core_http_common.mdx +++ b/api_docs/kbn_core_http_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-common title: "@kbn/core-http-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-common plugin -date: 2023-10-12 +date: 2023-10-13 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 48fc0a7fa9250..2a03157cccc2c 100644 --- a/api_docs/kbn_core_http_context_server_mocks.mdx +++ b/api_docs/kbn_core_http_context_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-context-server-mocks title: "@kbn/core-http-context-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-context-server-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 09a826ece5e58..0e50db41c0e94 100644 --- a/api_docs/kbn_core_http_request_handler_context_server.mdx +++ b/api_docs/kbn_core_http_request_handler_context_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-request-handler-context-server title: "@kbn/core-http-request-handler-context-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-request-handler-context-server plugin -date: 2023-10-12 +date: 2023-10-13 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 8ea4caf6df565..568340bdc3415 100644 --- a/api_docs/kbn_core_http_resources_server.mdx +++ b/api_docs/kbn_core_http_resources_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server title: "@kbn/core-http-resources-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server plugin -date: 2023-10-12 +date: 2023-10-13 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 9f5f10420cc92..c618f0af1785d 100644 --- a/api_docs/kbn_core_http_resources_server_internal.mdx +++ b/api_docs/kbn_core_http_resources_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server-internal title: "@kbn/core-http-resources-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server-internal plugin -date: 2023-10-12 +date: 2023-10-13 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 06acbeec69ef5..f510c96aa8f96 100644 --- a/api_docs/kbn_core_http_resources_server_mocks.mdx +++ b/api_docs/kbn_core_http_resources_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server-mocks title: "@kbn/core-http-resources-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 5f67f39807132..8be77253b3d80 100644 --- a/api_docs/kbn_core_http_router_server_internal.mdx +++ b/api_docs/kbn_core_http_router_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-router-server-internal title: "@kbn/core-http-router-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-router-server-internal plugin -date: 2023-10-12 +date: 2023-10-13 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 c9303552d3b3f..92d57089090ae 100644 --- a/api_docs/kbn_core_http_router_server_mocks.mdx +++ b/api_docs/kbn_core_http_router_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-router-server-mocks title: "@kbn/core-http-router-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-router-server-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 f727f06c2202f..2ac0ef7af40f9 100644 --- a/api_docs/kbn_core_http_server.mdx +++ b/api_docs/kbn_core_http_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server title: "@kbn/core-http-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server plugin -date: 2023-10-12 +date: 2023-10-13 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 89880fa6bbfaf..7420f09b614fd 100644 --- a/api_docs/kbn_core_http_server_internal.mdx +++ b/api_docs/kbn_core_http_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server-internal title: "@kbn/core-http-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server-internal plugin -date: 2023-10-12 +date: 2023-10-13 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 218d8b6b65bf0..559ae13504006 100644 --- a/api_docs/kbn_core_http_server_mocks.mdx +++ b/api_docs/kbn_core_http_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server-mocks title: "@kbn/core-http-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 8161fc06b9445..4aa68beed800d 100644 --- a/api_docs/kbn_core_i18n_browser.mdx +++ b/api_docs/kbn_core_i18n_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-browser title: "@kbn/core-i18n-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-browser plugin -date: 2023-10-12 +date: 2023-10-13 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 a22d71ffa1d50..e76feae942b86 100644 --- a/api_docs/kbn_core_i18n_browser_mocks.mdx +++ b/api_docs/kbn_core_i18n_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-browser-mocks title: "@kbn/core-i18n-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-browser-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 3a62a1065c2e5..5a811604677d6 100644 --- a/api_docs/kbn_core_i18n_server.mdx +++ b/api_docs/kbn_core_i18n_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server title: "@kbn/core-i18n-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server plugin -date: 2023-10-12 +date: 2023-10-13 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 a9189f11fa1df..00851a03ea95f 100644 --- a/api_docs/kbn_core_i18n_server_internal.mdx +++ b/api_docs/kbn_core_i18n_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server-internal title: "@kbn/core-i18n-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server-internal plugin -date: 2023-10-12 +date: 2023-10-13 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 72aaf73abd597..4d6a9ba724b73 100644 --- a/api_docs/kbn_core_i18n_server_mocks.mdx +++ b/api_docs/kbn_core_i18n_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server-mocks title: "@kbn/core-i18n-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 f2cc730fdc671..113579ca77349 100644 --- a/api_docs/kbn_core_injected_metadata_browser_mocks.mdx +++ b/api_docs/kbn_core_injected_metadata_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-injected-metadata-browser-mocks title: "@kbn/core-injected-metadata-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-injected-metadata-browser-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 01268eaba9a4a..083b0b4ce299a 100644 --- a/api_docs/kbn_core_integrations_browser_internal.mdx +++ b/api_docs/kbn_core_integrations_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-integrations-browser-internal title: "@kbn/core-integrations-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-integrations-browser-internal plugin -date: 2023-10-12 +date: 2023-10-13 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 3be9c6e712185..74ee9f0bd7e27 100644 --- a/api_docs/kbn_core_integrations_browser_mocks.mdx +++ b/api_docs/kbn_core_integrations_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-integrations-browser-mocks title: "@kbn/core-integrations-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-integrations-browser-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 9d7a35ed1d8c7..bbfa157b9547b 100644 --- a/api_docs/kbn_core_lifecycle_browser.mdx +++ b/api_docs/kbn_core_lifecycle_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-browser title: "@kbn/core-lifecycle-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-browser plugin -date: 2023-10-12 +date: 2023-10-13 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 0e615694717f8..321346d1f6c3a 100644 --- a/api_docs/kbn_core_lifecycle_browser_mocks.mdx +++ b/api_docs/kbn_core_lifecycle_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-browser-mocks title: "@kbn/core-lifecycle-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-browser-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 b1b5659268d32..34ca735b84bc0 100644 --- a/api_docs/kbn_core_lifecycle_server.mdx +++ b/api_docs/kbn_core_lifecycle_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-server title: "@kbn/core-lifecycle-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-server plugin -date: 2023-10-12 +date: 2023-10-13 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 1d28374d87cd8..82c37715bde03 100644 --- a/api_docs/kbn_core_lifecycle_server_mocks.mdx +++ b/api_docs/kbn_core_lifecycle_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-server-mocks title: "@kbn/core-lifecycle-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-server-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 e5380ce0c261a..d08d591305b6c 100644 --- a/api_docs/kbn_core_logging_browser_mocks.mdx +++ b/api_docs/kbn_core_logging_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-browser-mocks title: "@kbn/core-logging-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-browser-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 aca9815eb45d7..e2a11ff2cd653 100644 --- a/api_docs/kbn_core_logging_common_internal.mdx +++ b/api_docs/kbn_core_logging_common_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-common-internal title: "@kbn/core-logging-common-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-common-internal plugin -date: 2023-10-12 +date: 2023-10-13 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 322b687d64407..23220c6a3b845 100644 --- a/api_docs/kbn_core_logging_server.mdx +++ b/api_docs/kbn_core_logging_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server title: "@kbn/core-logging-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server plugin -date: 2023-10-12 +date: 2023-10-13 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 5aedd528c5425..08288450c2113 100644 --- a/api_docs/kbn_core_logging_server_internal.mdx +++ b/api_docs/kbn_core_logging_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server-internal title: "@kbn/core-logging-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server-internal plugin -date: 2023-10-12 +date: 2023-10-13 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 c8161d80cef2d..e0fbef8fc12c6 100644 --- a/api_docs/kbn_core_logging_server_mocks.mdx +++ b/api_docs/kbn_core_logging_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server-mocks title: "@kbn/core-logging-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 17522501bc38a..aafb53056f88a 100644 --- a/api_docs/kbn_core_metrics_collectors_server_internal.mdx +++ b/api_docs/kbn_core_metrics_collectors_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-collectors-server-internal title: "@kbn/core-metrics-collectors-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-collectors-server-internal plugin -date: 2023-10-12 +date: 2023-10-13 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 dfde888f922fd..fafd34437aa5a 100644 --- a/api_docs/kbn_core_metrics_collectors_server_mocks.mdx +++ b/api_docs/kbn_core_metrics_collectors_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-collectors-server-mocks title: "@kbn/core-metrics-collectors-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-collectors-server-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 fc6b86d600818..3f1833d77c38b 100644 --- a/api_docs/kbn_core_metrics_server.mdx +++ b/api_docs/kbn_core_metrics_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server title: "@kbn/core-metrics-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server plugin -date: 2023-10-12 +date: 2023-10-13 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 a69c68be994fa..13bca7101a4ed 100644 --- a/api_docs/kbn_core_metrics_server_internal.mdx +++ b/api_docs/kbn_core_metrics_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server-internal title: "@kbn/core-metrics-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server-internal plugin -date: 2023-10-12 +date: 2023-10-13 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 e4f476454b551..a6e2a8507c412 100644 --- a/api_docs/kbn_core_metrics_server_mocks.mdx +++ b/api_docs/kbn_core_metrics_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server-mocks title: "@kbn/core-metrics-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 ab7b8a787154c..825b9fb0ca99b 100644 --- a/api_docs/kbn_core_mount_utils_browser.mdx +++ b/api_docs/kbn_core_mount_utils_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-mount-utils-browser title: "@kbn/core-mount-utils-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-mount-utils-browser plugin -date: 2023-10-12 +date: 2023-10-13 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 ca8fb59de9420..a9041f287c27d 100644 --- a/api_docs/kbn_core_node_server.mdx +++ b/api_docs/kbn_core_node_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server title: "@kbn/core-node-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server plugin -date: 2023-10-12 +date: 2023-10-13 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 571153f1826c3..fff2154ba4f98 100644 --- a/api_docs/kbn_core_node_server_internal.mdx +++ b/api_docs/kbn_core_node_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server-internal title: "@kbn/core-node-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server-internal plugin -date: 2023-10-12 +date: 2023-10-13 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 91f81bf492846..a2ad280dfcfa1 100644 --- a/api_docs/kbn_core_node_server_mocks.mdx +++ b/api_docs/kbn_core_node_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server-mocks title: "@kbn/core-node-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 16cb996986410..09f2be79b0977 100644 --- a/api_docs/kbn_core_notifications_browser.mdx +++ b/api_docs/kbn_core_notifications_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser title: "@kbn/core-notifications-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser plugin -date: 2023-10-12 +date: 2023-10-13 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 bfd1c1609ce7f..b404964a396b0 100644 --- a/api_docs/kbn_core_notifications_browser_internal.mdx +++ b/api_docs/kbn_core_notifications_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser-internal title: "@kbn/core-notifications-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser-internal plugin -date: 2023-10-12 +date: 2023-10-13 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 a4fce69d39d48..c56147f080ac7 100644 --- a/api_docs/kbn_core_notifications_browser_mocks.mdx +++ b/api_docs/kbn_core_notifications_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser-mocks title: "@kbn/core-notifications-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 c1d09b622a802..a4e565fc8e8f5 100644 --- a/api_docs/kbn_core_overlays_browser.mdx +++ b/api_docs/kbn_core_overlays_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser title: "@kbn/core-overlays-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser plugin -date: 2023-10-12 +date: 2023-10-13 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 a0550c33f9fca..51413996db22e 100644 --- a/api_docs/kbn_core_overlays_browser_internal.mdx +++ b/api_docs/kbn_core_overlays_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser-internal title: "@kbn/core-overlays-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser-internal plugin -date: 2023-10-12 +date: 2023-10-13 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 620faf2adaf67..49e74d740001b 100644 --- a/api_docs/kbn_core_overlays_browser_mocks.mdx +++ b/api_docs/kbn_core_overlays_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser-mocks title: "@kbn/core-overlays-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 cb7726a7f69bb..d31abf68210c0 100644 --- a/api_docs/kbn_core_plugins_browser.mdx +++ b/api_docs/kbn_core_plugins_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-browser title: "@kbn/core-plugins-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-browser plugin -date: 2023-10-12 +date: 2023-10-13 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 ae76d3f88d5f6..3450d114dafdb 100644 --- a/api_docs/kbn_core_plugins_browser_mocks.mdx +++ b/api_docs/kbn_core_plugins_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-browser-mocks title: "@kbn/core-plugins-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-browser-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 76a449ac129ca..dbb34b4430558 100644 --- a/api_docs/kbn_core_plugins_server.mdx +++ b/api_docs/kbn_core_plugins_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-server title: "@kbn/core-plugins-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-server plugin -date: 2023-10-12 +date: 2023-10-13 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 eca0df06ddd84..9c4b3bf995492 100644 --- a/api_docs/kbn_core_plugins_server_mocks.mdx +++ b/api_docs/kbn_core_plugins_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-server-mocks title: "@kbn/core-plugins-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-server-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 945ca0c23c401..76224c8016dbc 100644 --- a/api_docs/kbn_core_preboot_server.mdx +++ b/api_docs/kbn_core_preboot_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-preboot-server title: "@kbn/core-preboot-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-preboot-server plugin -date: 2023-10-12 +date: 2023-10-13 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 9fc22421c071f..ecbc35c7ecb76 100644 --- a/api_docs/kbn_core_preboot_server_mocks.mdx +++ b/api_docs/kbn_core_preboot_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-preboot-server-mocks title: "@kbn/core-preboot-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-preboot-server-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 abf5dde2dcfdc..1867c113a8e59 100644 --- a/api_docs/kbn_core_rendering_browser_mocks.mdx +++ b/api_docs/kbn_core_rendering_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-browser-mocks title: "@kbn/core-rendering-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-browser-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 fe0de81ef0493..ea6f7a163ecc3 100644 --- a/api_docs/kbn_core_rendering_server_internal.mdx +++ b/api_docs/kbn_core_rendering_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-server-internal title: "@kbn/core-rendering-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-server-internal plugin -date: 2023-10-12 +date: 2023-10-13 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 52cc443de09e0..7ad8a1848cdb2 100644 --- a/api_docs/kbn_core_rendering_server_mocks.mdx +++ b/api_docs/kbn_core_rendering_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-server-mocks title: "@kbn/core-rendering-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-server-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 98b1b953e840a..efbfbc7d97d49 100644 --- a/api_docs/kbn_core_root_server_internal.mdx +++ b/api_docs/kbn_core_root_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-root-server-internal title: "@kbn/core-root-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-root-server-internal plugin -date: 2023-10-12 +date: 2023-10-13 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 cacb708fa50b4..747d099ccc978 100644 --- a/api_docs/kbn_core_saved_objects_api_browser.mdx +++ b/api_docs/kbn_core_saved_objects_api_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-browser title: "@kbn/core-saved-objects-api-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-browser plugin -date: 2023-10-12 +date: 2023-10-13 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 5376d3c3679c5..64ef270486124 100644 --- a/api_docs/kbn_core_saved_objects_api_server.mdx +++ b/api_docs/kbn_core_saved_objects_api_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server title: "@kbn/core-saved-objects-api-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-server'] --- import kbnCoreSavedObjectsApiServerObj from './kbn_core_saved_objects_api_server.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_api_server_mocks.mdx b/api_docs/kbn_core_saved_objects_api_server_mocks.mdx index 574a96e81b841..c3fb4232decf1 100644 --- a/api_docs/kbn_core_saved_objects_api_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_api_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server-mocks title: "@kbn/core-saved-objects-api-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 8b844bbffff65..46ed4eac883c7 100644 --- a/api_docs/kbn_core_saved_objects_base_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_base_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-base-server-internal title: "@kbn/core-saved-objects-base-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-base-server-internal plugin -date: 2023-10-12 +date: 2023-10-13 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 e1c9170299474..e78eab11eb889 100644 --- a/api_docs/kbn_core_saved_objects_base_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_base_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-base-server-mocks title: "@kbn/core-saved-objects-base-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-base-server-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 7137596202b43..317b82f177f33 100644 --- a/api_docs/kbn_core_saved_objects_browser.mdx +++ b/api_docs/kbn_core_saved_objects_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser title: "@kbn/core-saved-objects-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser plugin -date: 2023-10-12 +date: 2023-10-13 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 4d19c73dabd5f..9482252792f29 100644 --- a/api_docs/kbn_core_saved_objects_browser_internal.mdx +++ b/api_docs/kbn_core_saved_objects_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser-internal title: "@kbn/core-saved-objects-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser-internal plugin -date: 2023-10-12 +date: 2023-10-13 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 c50b042f348f7..76a14a896e7c1 100644 --- a/api_docs/kbn_core_saved_objects_browser_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser-mocks title: "@kbn/core-saved-objects-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser-mocks plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-browser-mocks'] --- import kbnCoreSavedObjectsBrowserMocksObj from './kbn_core_saved_objects_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_common.mdx b/api_docs/kbn_core_saved_objects_common.mdx index 610f0c5191b87..c1d32f7f5b0b0 100644 --- a/api_docs/kbn_core_saved_objects_common.mdx +++ b/api_docs/kbn_core_saved_objects_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-common title: "@kbn/core-saved-objects-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-common plugin -date: 2023-10-12 +date: 2023-10-13 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 6e4faec2a85d5..5da67898d1bf8 100644 --- a/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-import-export-server-internal title: "@kbn/core-saved-objects-import-export-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-import-export-server-internal plugin -date: 2023-10-12 +date: 2023-10-13 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 dce9cae56efca..1c062a2f4eb69 100644 --- a/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-import-export-server-mocks title: "@kbn/core-saved-objects-import-export-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-import-export-server-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 e5b610733e6aa..a6f7bff514330 100644 --- a/api_docs/kbn_core_saved_objects_migration_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_migration_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-migration-server-internal title: "@kbn/core-saved-objects-migration-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-migration-server-internal plugin -date: 2023-10-12 +date: 2023-10-13 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 5412a6f7a9c33..5be88e89d5263 100644 --- a/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-migration-server-mocks title: "@kbn/core-saved-objects-migration-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-migration-server-mocks plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-migration-server-mocks'] --- import kbnCoreSavedObjectsMigrationServerMocksObj from './kbn_core_saved_objects_migration_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_server.mdx b/api_docs/kbn_core_saved_objects_server.mdx index 6346b48eb6cfc..8ce8508d9c09c 100644 --- a/api_docs/kbn_core_saved_objects_server.mdx +++ b/api_docs/kbn_core_saved_objects_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server title: "@kbn/core-saved-objects-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-server'] --- import kbnCoreSavedObjectsServerObj from './kbn_core_saved_objects_server.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_server_internal.mdx b/api_docs/kbn_core_saved_objects_server_internal.mdx index f1b7dcf529e58..2dc0eb57d3ee6 100644 --- a/api_docs/kbn_core_saved_objects_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server-internal title: "@kbn/core-saved-objects-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server-internal plugin -date: 2023-10-12 +date: 2023-10-13 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 97daba69360ca..0f1df3afc4373 100644 --- a/api_docs/kbn_core_saved_objects_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server-mocks title: "@kbn/core-saved-objects-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 918afc987952e..68c87ddfe724a 100644 --- a/api_docs/kbn_core_saved_objects_utils_server.mdx +++ b/api_docs/kbn_core_saved_objects_utils_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-utils-server title: "@kbn/core-saved-objects-utils-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-utils-server plugin -date: 2023-10-12 +date: 2023-10-13 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 a0e258e2b1681..f55e8720b88af 100644 --- a/api_docs/kbn_core_status_common.mdx +++ b/api_docs/kbn_core_status_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-common title: "@kbn/core-status-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-common plugin -date: 2023-10-12 +date: 2023-10-13 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 b7c20f1e24ea8..899bb13520fef 100644 --- a/api_docs/kbn_core_status_common_internal.mdx +++ b/api_docs/kbn_core_status_common_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-common-internal title: "@kbn/core-status-common-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-common-internal plugin -date: 2023-10-12 +date: 2023-10-13 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 f9a5361d1b666..92e75b0c23363 100644 --- a/api_docs/kbn_core_status_server.mdx +++ b/api_docs/kbn_core_status_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server title: "@kbn/core-status-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server plugin -date: 2023-10-12 +date: 2023-10-13 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 8886afc1291ed..fe9e8127ef252 100644 --- a/api_docs/kbn_core_status_server_internal.mdx +++ b/api_docs/kbn_core_status_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server-internal title: "@kbn/core-status-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server-internal plugin -date: 2023-10-12 +date: 2023-10-13 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 ecb150997aa02..8ba779f186f6e 100644 --- a/api_docs/kbn_core_status_server_mocks.mdx +++ b/api_docs/kbn_core_status_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server-mocks title: "@kbn/core-status-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 022a47e9c88fe..ab707f88d9192 100644 --- a/api_docs/kbn_core_test_helpers_deprecations_getters.mdx +++ b/api_docs/kbn_core_test_helpers_deprecations_getters.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-deprecations-getters title: "@kbn/core-test-helpers-deprecations-getters" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-deprecations-getters plugin -date: 2023-10-12 +date: 2023-10-13 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 2f09d7d781770..ea612a9611ce4 100644 --- a/api_docs/kbn_core_test_helpers_http_setup_browser.mdx +++ b/api_docs/kbn_core_test_helpers_http_setup_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-http-setup-browser title: "@kbn/core-test-helpers-http-setup-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-http-setup-browser plugin -date: 2023-10-12 +date: 2023-10-13 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 d70493f1354a0..12cd648e13eb2 100644 --- a/api_docs/kbn_core_test_helpers_kbn_server.mdx +++ b/api_docs/kbn_core_test_helpers_kbn_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-kbn-server title: "@kbn/core-test-helpers-kbn-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-kbn-server plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-kbn-server'] --- import kbnCoreTestHelpersKbnServerObj from './kbn_core_test_helpers_kbn_server.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_model_versions.mdx b/api_docs/kbn_core_test_helpers_model_versions.mdx index 7e72abdbc3913..0fa2288196cb9 100644 --- a/api_docs/kbn_core_test_helpers_model_versions.mdx +++ b/api_docs/kbn_core_test_helpers_model_versions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-model-versions title: "@kbn/core-test-helpers-model-versions" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-model-versions plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-model-versions'] --- import kbnCoreTestHelpersModelVersionsObj from './kbn_core_test_helpers_model_versions.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_so_type_serializer.mdx b/api_docs/kbn_core_test_helpers_so_type_serializer.mdx index 34161ed9f8b20..dc77f47be4503 100644 --- a/api_docs/kbn_core_test_helpers_so_type_serializer.mdx +++ b/api_docs/kbn_core_test_helpers_so_type_serializer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-so-type-serializer title: "@kbn/core-test-helpers-so-type-serializer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-so-type-serializer plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-so-type-serializer'] --- import kbnCoreTestHelpersSoTypeSerializerObj from './kbn_core_test_helpers_so_type_serializer.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_test_utils.mdx b/api_docs/kbn_core_test_helpers_test_utils.mdx index abddeba543b72..cfa0c10002dd0 100644 --- a/api_docs/kbn_core_test_helpers_test_utils.mdx +++ b/api_docs/kbn_core_test_helpers_test_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-test-utils title: "@kbn/core-test-helpers-test-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-test-utils plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-test-utils'] --- import kbnCoreTestHelpersTestUtilsObj from './kbn_core_test_helpers_test_utils.devdocs.json'; diff --git a/api_docs/kbn_core_theme_browser.mdx b/api_docs/kbn_core_theme_browser.mdx index 5c47c05cc741a..b605f8fa709ea 100644 --- a/api_docs/kbn_core_theme_browser.mdx +++ b/api_docs/kbn_core_theme_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser title: "@kbn/core-theme-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-theme-browser'] --- import kbnCoreThemeBrowserObj from './kbn_core_theme_browser.devdocs.json'; diff --git a/api_docs/kbn_core_theme_browser_mocks.mdx b/api_docs/kbn_core_theme_browser_mocks.mdx index 7df2290ee741b..d9ca3b3f863db 100644 --- a/api_docs/kbn_core_theme_browser_mocks.mdx +++ b/api_docs/kbn_core_theme_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser-mocks title: "@kbn/core-theme-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 7d5f033e1c2b5..a05117546a9e5 100644 --- a/api_docs/kbn_core_ui_settings_browser.mdx +++ b/api_docs/kbn_core_ui_settings_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser title: "@kbn/core-ui-settings-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser plugin -date: 2023-10-12 +date: 2023-10-13 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 804ef832b119d..e32a1a0f78d7b 100644 --- a/api_docs/kbn_core_ui_settings_browser_internal.mdx +++ b/api_docs/kbn_core_ui_settings_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser-internal title: "@kbn/core-ui-settings-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser-internal plugin -date: 2023-10-12 +date: 2023-10-13 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 fce932708705c..f0cd6a53d9768 100644 --- a/api_docs/kbn_core_ui_settings_browser_mocks.mdx +++ b/api_docs/kbn_core_ui_settings_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser-mocks title: "@kbn/core-ui-settings-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 eba6379950788..8fd57e5143f1d 100644 --- a/api_docs/kbn_core_ui_settings_common.mdx +++ b/api_docs/kbn_core_ui_settings_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-common title: "@kbn/core-ui-settings-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-common plugin -date: 2023-10-12 +date: 2023-10-13 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 a115673ddaaf6..fef577c961466 100644 --- a/api_docs/kbn_core_ui_settings_server.mdx +++ b/api_docs/kbn_core_ui_settings_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server title: "@kbn/core-ui-settings-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server plugin -date: 2023-10-12 +date: 2023-10-13 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 4d8628f24a2cb..575ce18530f5e 100644 --- a/api_docs/kbn_core_ui_settings_server_internal.mdx +++ b/api_docs/kbn_core_ui_settings_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server-internal title: "@kbn/core-ui-settings-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server-internal plugin -date: 2023-10-12 +date: 2023-10-13 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 c028e2d197bb1..e1378ee866a48 100644 --- a/api_docs/kbn_core_ui_settings_server_mocks.mdx +++ b/api_docs/kbn_core_ui_settings_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server-mocks title: "@kbn/core-ui-settings-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 03ba48a89fa5d..8a0ba77e5d07d 100644 --- a/api_docs/kbn_core_usage_data_server.mdx +++ b/api_docs/kbn_core_usage_data_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server title: "@kbn/core-usage-data-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server plugin -date: 2023-10-12 +date: 2023-10-13 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 b9540f67dfb9b..57e1f7c336add 100644 --- a/api_docs/kbn_core_usage_data_server_internal.mdx +++ b/api_docs/kbn_core_usage_data_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server-internal title: "@kbn/core-usage-data-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server-internal plugin -date: 2023-10-12 +date: 2023-10-13 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 0c8c27f901469..78bee4583b29b 100644 --- a/api_docs/kbn_core_usage_data_server_mocks.mdx +++ b/api_docs/kbn_core_usage_data_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server-mocks title: "@kbn/core-usage-data-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server-mocks plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-usage-data-server-mocks'] --- import kbnCoreUsageDataServerMocksObj from './kbn_core_usage_data_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_user_settings_server.mdx b/api_docs/kbn_core_user_settings_server.mdx index 14de542946b8f..2ddc79964a735 100644 --- a/api_docs/kbn_core_user_settings_server.mdx +++ b/api_docs/kbn_core_user_settings_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-settings-server title: "@kbn/core-user-settings-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-user-settings-server plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-settings-server'] --- import kbnCoreUserSettingsServerObj from './kbn_core_user_settings_server.devdocs.json'; diff --git a/api_docs/kbn_core_user_settings_server_internal.mdx b/api_docs/kbn_core_user_settings_server_internal.mdx index 7e5504ee4bcd9..1951dc8d93496 100644 --- a/api_docs/kbn_core_user_settings_server_internal.mdx +++ b/api_docs/kbn_core_user_settings_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-settings-server-internal title: "@kbn/core-user-settings-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-user-settings-server-internal plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-settings-server-internal'] --- import kbnCoreUserSettingsServerInternalObj from './kbn_core_user_settings_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_user_settings_server_mocks.mdx b/api_docs/kbn_core_user_settings_server_mocks.mdx index 4cd57c28e436f..873e6fcc337ed 100644 --- a/api_docs/kbn_core_user_settings_server_mocks.mdx +++ b/api_docs/kbn_core_user_settings_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-settings-server-mocks title: "@kbn/core-user-settings-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-user-settings-server-mocks plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-settings-server-mocks'] --- import kbnCoreUserSettingsServerMocksObj from './kbn_core_user_settings_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_crypto.mdx b/api_docs/kbn_crypto.mdx index 9d651eaa3749f..ef6d0c1880bca 100644 --- a/api_docs/kbn_crypto.mdx +++ b/api_docs/kbn_crypto.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-crypto title: "@kbn/crypto" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/crypto plugin -date: 2023-10-12 +date: 2023-10-13 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 22a2a940f1c7b..04470cc89fdcd 100644 --- a/api_docs/kbn_crypto_browser.mdx +++ b/api_docs/kbn_crypto_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-crypto-browser title: "@kbn/crypto-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/crypto-browser plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/crypto-browser'] --- import kbnCryptoBrowserObj from './kbn_crypto_browser.devdocs.json'; diff --git a/api_docs/kbn_custom_integrations.mdx b/api_docs/kbn_custom_integrations.mdx index 4aa6d9c6fb21e..a493b0715b32b 100644 --- a/api_docs/kbn_custom_integrations.mdx +++ b/api_docs/kbn_custom_integrations.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-custom-integrations title: "@kbn/custom-integrations" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/custom-integrations plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/custom-integrations'] --- import kbnCustomIntegrationsObj from './kbn_custom_integrations.devdocs.json'; diff --git a/api_docs/kbn_cypress_config.mdx b/api_docs/kbn_cypress_config.mdx index 4fae9c337f50b..a23bb5e640ccc 100644 --- a/api_docs/kbn_cypress_config.mdx +++ b/api_docs/kbn_cypress_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cypress-config title: "@kbn/cypress-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cypress-config plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cypress-config'] --- import kbnCypressConfigObj from './kbn_cypress_config.devdocs.json'; diff --git a/api_docs/kbn_data_service.mdx b/api_docs/kbn_data_service.mdx index 28ea395958c65..66a222189b584 100644 --- a/api_docs/kbn_data_service.mdx +++ b/api_docs/kbn_data_service.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-data-service title: "@kbn/data-service" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/data-service plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/data-service'] --- import kbnDataServiceObj from './kbn_data_service.devdocs.json'; diff --git a/api_docs/kbn_datemath.mdx b/api_docs/kbn_datemath.mdx index e69db5800a132..41b93c1d5c4be 100644 --- a/api_docs/kbn_datemath.mdx +++ b/api_docs/kbn_datemath.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-datemath title: "@kbn/datemath" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/datemath plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/datemath'] --- import kbnDatemathObj from './kbn_datemath.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_analytics.mdx b/api_docs/kbn_deeplinks_analytics.mdx index fb5c679ace1c5..b102f312755c4 100644 --- a/api_docs/kbn_deeplinks_analytics.mdx +++ b/api_docs/kbn_deeplinks_analytics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-analytics title: "@kbn/deeplinks-analytics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-analytics plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-analytics'] --- import kbnDeeplinksAnalyticsObj from './kbn_deeplinks_analytics.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_devtools.mdx b/api_docs/kbn_deeplinks_devtools.mdx index 2cd448119198e..8f3705d27a9f5 100644 --- a/api_docs/kbn_deeplinks_devtools.mdx +++ b/api_docs/kbn_deeplinks_devtools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-devtools title: "@kbn/deeplinks-devtools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-devtools plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-devtools'] --- import kbnDeeplinksDevtoolsObj from './kbn_deeplinks_devtools.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_management.mdx b/api_docs/kbn_deeplinks_management.mdx index 59dc1f71301b1..ca30d569de47e 100644 --- a/api_docs/kbn_deeplinks_management.mdx +++ b/api_docs/kbn_deeplinks_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-management title: "@kbn/deeplinks-management" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-management plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-management'] --- import kbnDeeplinksManagementObj from './kbn_deeplinks_management.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_ml.mdx b/api_docs/kbn_deeplinks_ml.mdx index f084d68074fdd..0b8826a03fb83 100644 --- a/api_docs/kbn_deeplinks_ml.mdx +++ b/api_docs/kbn_deeplinks_ml.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-ml title: "@kbn/deeplinks-ml" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-ml plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-ml'] --- import kbnDeeplinksMlObj from './kbn_deeplinks_ml.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_observability.mdx b/api_docs/kbn_deeplinks_observability.mdx index 96d434c82deef..deed6462e6a1a 100644 --- a/api_docs/kbn_deeplinks_observability.mdx +++ b/api_docs/kbn_deeplinks_observability.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-observability title: "@kbn/deeplinks-observability" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-observability plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-observability'] --- import kbnDeeplinksObservabilityObj from './kbn_deeplinks_observability.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_search.mdx b/api_docs/kbn_deeplinks_search.mdx index a1e677b7ee490..358a798a0cbc0 100644 --- a/api_docs/kbn_deeplinks_search.mdx +++ b/api_docs/kbn_deeplinks_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-search title: "@kbn/deeplinks-search" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-search plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-search'] --- import kbnDeeplinksSearchObj from './kbn_deeplinks_search.devdocs.json'; diff --git a/api_docs/kbn_default_nav_analytics.mdx b/api_docs/kbn_default_nav_analytics.mdx index a65cc5be10cb4..77c97a9fb5381 100644 --- a/api_docs/kbn_default_nav_analytics.mdx +++ b/api_docs/kbn_default_nav_analytics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-default-nav-analytics title: "@kbn/default-nav-analytics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/default-nav-analytics plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/default-nav-analytics'] --- import kbnDefaultNavAnalyticsObj from './kbn_default_nav_analytics.devdocs.json'; diff --git a/api_docs/kbn_default_nav_devtools.mdx b/api_docs/kbn_default_nav_devtools.mdx index 84cce2e1c748e..bdd547267b596 100644 --- a/api_docs/kbn_default_nav_devtools.mdx +++ b/api_docs/kbn_default_nav_devtools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-default-nav-devtools title: "@kbn/default-nav-devtools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/default-nav-devtools plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/default-nav-devtools'] --- import kbnDefaultNavDevtoolsObj from './kbn_default_nav_devtools.devdocs.json'; diff --git a/api_docs/kbn_default_nav_management.mdx b/api_docs/kbn_default_nav_management.mdx index 6faef0d610954..98a59af49fc1b 100644 --- a/api_docs/kbn_default_nav_management.mdx +++ b/api_docs/kbn_default_nav_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-default-nav-management title: "@kbn/default-nav-management" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/default-nav-management plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/default-nav-management'] --- import kbnDefaultNavManagementObj from './kbn_default_nav_management.devdocs.json'; diff --git a/api_docs/kbn_default_nav_ml.mdx b/api_docs/kbn_default_nav_ml.mdx index 0c43e038f0baa..62d10cc83a5ea 100644 --- a/api_docs/kbn_default_nav_ml.mdx +++ b/api_docs/kbn_default_nav_ml.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-default-nav-ml title: "@kbn/default-nav-ml" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/default-nav-ml plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/default-nav-ml'] --- import kbnDefaultNavMlObj from './kbn_default_nav_ml.devdocs.json'; diff --git a/api_docs/kbn_dev_cli_errors.mdx b/api_docs/kbn_dev_cli_errors.mdx index 17f984370a9c1..716cf32fd7493 100644 --- a/api_docs/kbn_dev_cli_errors.mdx +++ b/api_docs/kbn_dev_cli_errors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-cli-errors title: "@kbn/dev-cli-errors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-cli-errors plugin -date: 2023-10-12 +date: 2023-10-13 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 dbf633a970fd9..1d7ad3333ed3b 100644 --- a/api_docs/kbn_dev_cli_runner.mdx +++ b/api_docs/kbn_dev_cli_runner.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-cli-runner title: "@kbn/dev-cli-runner" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-cli-runner plugin -date: 2023-10-12 +date: 2023-10-13 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 a3b9620232b4c..d830502f259df 100644 --- a/api_docs/kbn_dev_proc_runner.mdx +++ b/api_docs/kbn_dev_proc_runner.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-proc-runner title: "@kbn/dev-proc-runner" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-proc-runner plugin -date: 2023-10-12 +date: 2023-10-13 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 8055479c7d0c3..0581baf8aaebd 100644 --- a/api_docs/kbn_dev_utils.mdx +++ b/api_docs/kbn_dev_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-utils title: "@kbn/dev-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-utils plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-utils'] --- import kbnDevUtilsObj from './kbn_dev_utils.devdocs.json'; diff --git a/api_docs/kbn_discover_utils.mdx b/api_docs/kbn_discover_utils.mdx index 11e1d5dcda03d..f499bb42bce27 100644 --- a/api_docs/kbn_discover_utils.mdx +++ b/api_docs/kbn_discover_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-discover-utils title: "@kbn/discover-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/discover-utils plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/discover-utils'] --- import kbnDiscoverUtilsObj from './kbn_discover_utils.devdocs.json'; diff --git a/api_docs/kbn_doc_links.mdx b/api_docs/kbn_doc_links.mdx index 19fedfba57bc6..8867f68291c0b 100644 --- a/api_docs/kbn_doc_links.mdx +++ b/api_docs/kbn_doc_links.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-doc-links title: "@kbn/doc-links" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/doc-links plugin -date: 2023-10-12 +date: 2023-10-13 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 d11561dca5aba..5fdb8f182c242 100644 --- a/api_docs/kbn_docs_utils.mdx +++ b/api_docs/kbn_docs_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-docs-utils title: "@kbn/docs-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/docs-utils plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/docs-utils'] --- import kbnDocsUtilsObj from './kbn_docs_utils.devdocs.json'; diff --git a/api_docs/kbn_dom_drag_drop.mdx b/api_docs/kbn_dom_drag_drop.mdx index a5011eeebf7bb..3a0aef4ea6449 100644 --- a/api_docs/kbn_dom_drag_drop.mdx +++ b/api_docs/kbn_dom_drag_drop.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dom-drag-drop title: "@kbn/dom-drag-drop" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dom-drag-drop plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dom-drag-drop'] --- import kbnDomDragDropObj from './kbn_dom_drag_drop.devdocs.json'; diff --git a/api_docs/kbn_ebt_tools.mdx b/api_docs/kbn_ebt_tools.mdx index 4edb8d8797eae..bc57a90ef9dbb 100644 --- a/api_docs/kbn_ebt_tools.mdx +++ b/api_docs/kbn_ebt_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ebt-tools title: "@kbn/ebt-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ebt-tools plugin -date: 2023-10-12 +date: 2023-10-13 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 6cfa9d9f9b4ac..a3c0db41bdc90 100644 --- a/api_docs/kbn_ecs.mdx +++ b/api_docs/kbn_ecs.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ecs title: "@kbn/ecs" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ecs plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ecs'] --- import kbnEcsObj from './kbn_ecs.devdocs.json'; diff --git a/api_docs/kbn_ecs_data_quality_dashboard.mdx b/api_docs/kbn_ecs_data_quality_dashboard.mdx index 6b6fa1b92a4ab..847bef5ea7e24 100644 --- a/api_docs/kbn_ecs_data_quality_dashboard.mdx +++ b/api_docs/kbn_ecs_data_quality_dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ecs-data-quality-dashboard title: "@kbn/ecs-data-quality-dashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ecs-data-quality-dashboard plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ecs-data-quality-dashboard'] --- import kbnEcsDataQualityDashboardObj from './kbn_ecs_data_quality_dashboard.devdocs.json'; diff --git a/api_docs/kbn_elastic_assistant.mdx b/api_docs/kbn_elastic_assistant.mdx index 8b3b714293165..9a7773935d6b5 100644 --- a/api_docs/kbn_elastic_assistant.mdx +++ b/api_docs/kbn_elastic_assistant.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-elastic-assistant title: "@kbn/elastic-assistant" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/elastic-assistant plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/elastic-assistant'] --- import kbnElasticAssistantObj from './kbn_elastic_assistant.devdocs.json'; diff --git a/api_docs/kbn_es.mdx b/api_docs/kbn_es.mdx index deb7a637a8f0a..9284a210b2899 100644 --- a/api_docs/kbn_es.mdx +++ b/api_docs/kbn_es.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es title: "@kbn/es" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es plugin -date: 2023-10-12 +date: 2023-10-13 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 2bdb4016c7ee4..8a9c83dfa5b9f 100644 --- a/api_docs/kbn_es_archiver.mdx +++ b/api_docs/kbn_es_archiver.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-archiver title: "@kbn/es-archiver" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-archiver plugin -date: 2023-10-12 +date: 2023-10-13 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 57f36010da009..38a80799d6eef 100644 --- a/api_docs/kbn_es_errors.mdx +++ b/api_docs/kbn_es_errors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-errors title: "@kbn/es-errors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-errors plugin -date: 2023-10-12 +date: 2023-10-13 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 4df61d46c8fb1..6974717ec7059 100644 --- a/api_docs/kbn_es_query.mdx +++ b/api_docs/kbn_es_query.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-query title: "@kbn/es-query" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-query plugin -date: 2023-10-12 +date: 2023-10-13 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 504a15af87de8..1b827f3ff9eba 100644 --- a/api_docs/kbn_es_types.mdx +++ b/api_docs/kbn_es_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-types title: "@kbn/es-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-types plugin -date: 2023-10-12 +date: 2023-10-13 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 49c5c283ece51..de87fef4fa100 100644 --- a/api_docs/kbn_eslint_plugin_imports.mdx +++ b/api_docs/kbn_eslint_plugin_imports.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-eslint-plugin-imports title: "@kbn/eslint-plugin-imports" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/eslint-plugin-imports plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/eslint-plugin-imports'] --- import kbnEslintPluginImportsObj from './kbn_eslint_plugin_imports.devdocs.json'; diff --git a/api_docs/kbn_event_annotation_common.mdx b/api_docs/kbn_event_annotation_common.mdx index ef79e2cdb895a..4b985767fdca4 100644 --- a/api_docs/kbn_event_annotation_common.mdx +++ b/api_docs/kbn_event_annotation_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-event-annotation-common title: "@kbn/event-annotation-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/event-annotation-common plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/event-annotation-common'] --- import kbnEventAnnotationCommonObj from './kbn_event_annotation_common.devdocs.json'; diff --git a/api_docs/kbn_event_annotation_components.mdx b/api_docs/kbn_event_annotation_components.mdx index 9978ed66ce8f0..b30ef02a37f25 100644 --- a/api_docs/kbn_event_annotation_components.mdx +++ b/api_docs/kbn_event_annotation_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-event-annotation-components title: "@kbn/event-annotation-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/event-annotation-components plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/event-annotation-components'] --- import kbnEventAnnotationComponentsObj from './kbn_event_annotation_components.devdocs.json'; diff --git a/api_docs/kbn_expandable_flyout.mdx b/api_docs/kbn_expandable_flyout.mdx index b51e6b876e750..aeba9a2c3ab11 100644 --- a/api_docs/kbn_expandable_flyout.mdx +++ b/api_docs/kbn_expandable_flyout.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-expandable-flyout title: "@kbn/expandable-flyout" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/expandable-flyout plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/expandable-flyout'] --- import kbnExpandableFlyoutObj from './kbn_expandable_flyout.devdocs.json'; diff --git a/api_docs/kbn_field_types.mdx b/api_docs/kbn_field_types.mdx index 9e6d6cb88b274..0d119c7cc1fba 100644 --- a/api_docs/kbn_field_types.mdx +++ b/api_docs/kbn_field_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-field-types title: "@kbn/field-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/field-types plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/field-types'] --- import kbnFieldTypesObj from './kbn_field_types.devdocs.json'; diff --git a/api_docs/kbn_field_utils.mdx b/api_docs/kbn_field_utils.mdx index 192b0d113b636..a73ba9fa5fb90 100644 --- a/api_docs/kbn_field_utils.mdx +++ b/api_docs/kbn_field_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-field-utils title: "@kbn/field-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/field-utils plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/field-utils'] --- import kbnFieldUtilsObj from './kbn_field_utils.devdocs.json'; diff --git a/api_docs/kbn_find_used_node_modules.mdx b/api_docs/kbn_find_used_node_modules.mdx index b74f5f6e6a246..e287fb446f003 100644 --- a/api_docs/kbn_find_used_node_modules.mdx +++ b/api_docs/kbn_find_used_node_modules.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-find-used-node-modules title: "@kbn/find-used-node-modules" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/find-used-node-modules plugin -date: 2023-10-12 +date: 2023-10-13 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 4b0bca178de3b..6258ce1eba920 100644 --- a/api_docs/kbn_ftr_common_functional_services.mdx +++ b/api_docs/kbn_ftr_common_functional_services.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ftr-common-functional-services title: "@kbn/ftr-common-functional-services" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ftr-common-functional-services plugin -date: 2023-10-12 +date: 2023-10-13 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 8cec6d7fa3bbd..8cd05107e5c6e 100644 --- a/api_docs/kbn_generate.mdx +++ b/api_docs/kbn_generate.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate title: "@kbn/generate" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/generate plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate'] --- import kbnGenerateObj from './kbn_generate.devdocs.json'; diff --git a/api_docs/kbn_generate_console_definitions.mdx b/api_docs/kbn_generate_console_definitions.mdx index 2a3b69c3dd614..d9d60780ab218 100644 --- a/api_docs/kbn_generate_console_definitions.mdx +++ b/api_docs/kbn_generate_console_definitions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate-console-definitions title: "@kbn/generate-console-definitions" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/generate-console-definitions plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate-console-definitions'] --- import kbnGenerateConsoleDefinitionsObj from './kbn_generate_console_definitions.devdocs.json'; diff --git a/api_docs/kbn_generate_csv.mdx b/api_docs/kbn_generate_csv.mdx index bebde79128804..5016da363b1be 100644 --- a/api_docs/kbn_generate_csv.mdx +++ b/api_docs/kbn_generate_csv.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate-csv title: "@kbn/generate-csv" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/generate-csv plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate-csv'] --- import kbnGenerateCsvObj from './kbn_generate_csv.devdocs.json'; diff --git a/api_docs/kbn_generate_csv_types.mdx b/api_docs/kbn_generate_csv_types.mdx index 0baef3f3dda28..d630cac3853e7 100644 --- a/api_docs/kbn_generate_csv_types.mdx +++ b/api_docs/kbn_generate_csv_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate-csv-types title: "@kbn/generate-csv-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/generate-csv-types plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate-csv-types'] --- import kbnGenerateCsvTypesObj from './kbn_generate_csv_types.devdocs.json'; diff --git a/api_docs/kbn_guided_onboarding.mdx b/api_docs/kbn_guided_onboarding.mdx index b62f7452e20ac..c4364ad3fa702 100644 --- a/api_docs/kbn_guided_onboarding.mdx +++ b/api_docs/kbn_guided_onboarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-guided-onboarding title: "@kbn/guided-onboarding" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/guided-onboarding plugin -date: 2023-10-12 +date: 2023-10-13 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 51a8e15372774..50164d28062e8 100644 --- a/api_docs/kbn_handlebars.mdx +++ b/api_docs/kbn_handlebars.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-handlebars title: "@kbn/handlebars" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/handlebars plugin -date: 2023-10-12 +date: 2023-10-13 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 0314e1ccb6eaa..eafd2092237f8 100644 --- a/api_docs/kbn_hapi_mocks.mdx +++ b/api_docs/kbn_hapi_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-hapi-mocks title: "@kbn/hapi-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/hapi-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 7ef4d44f8b93c..b87ac0ee9d603 100644 --- a/api_docs/kbn_health_gateway_server.mdx +++ b/api_docs/kbn_health_gateway_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-health-gateway-server title: "@kbn/health-gateway-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/health-gateway-server plugin -date: 2023-10-12 +date: 2023-10-13 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 2ed3a0bbb663b..e69205aad036b 100644 --- a/api_docs/kbn_home_sample_data_card.mdx +++ b/api_docs/kbn_home_sample_data_card.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-home-sample-data-card title: "@kbn/home-sample-data-card" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/home-sample-data-card plugin -date: 2023-10-12 +date: 2023-10-13 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 6fe63b8dd491f..b644fb33c2b4b 100644 --- a/api_docs/kbn_home_sample_data_tab.mdx +++ b/api_docs/kbn_home_sample_data_tab.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-home-sample-data-tab title: "@kbn/home-sample-data-tab" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/home-sample-data-tab plugin -date: 2023-10-12 +date: 2023-10-13 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 a0f8c12a42f0f..a91ed0983b566 100644 --- a/api_docs/kbn_i18n.mdx +++ b/api_docs/kbn_i18n.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-i18n title: "@kbn/i18n" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/i18n plugin -date: 2023-10-12 +date: 2023-10-13 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 53c8b93260982..e5cb2e042832c 100644 --- a/api_docs/kbn_i18n_react.mdx +++ b/api_docs/kbn_i18n_react.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-i18n-react title: "@kbn/i18n-react" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/i18n-react plugin -date: 2023-10-12 +date: 2023-10-13 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 2146ff9e21761..9ed38b28d9c41 100644 --- a/api_docs/kbn_import_resolver.mdx +++ b/api_docs/kbn_import_resolver.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-import-resolver title: "@kbn/import-resolver" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/import-resolver plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/import-resolver'] --- import kbnImportResolverObj from './kbn_import_resolver.devdocs.json'; diff --git a/api_docs/kbn_infra_forge.mdx b/api_docs/kbn_infra_forge.mdx index d66951d321463..f63f61e702870 100644 --- a/api_docs/kbn_infra_forge.mdx +++ b/api_docs/kbn_infra_forge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-infra-forge title: "@kbn/infra-forge" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/infra-forge plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/infra-forge'] --- import kbnInfraForgeObj from './kbn_infra_forge.devdocs.json'; diff --git a/api_docs/kbn_interpreter.mdx b/api_docs/kbn_interpreter.mdx index 27a7205efea07..d8f100609a069 100644 --- a/api_docs/kbn_interpreter.mdx +++ b/api_docs/kbn_interpreter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-interpreter title: "@kbn/interpreter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/interpreter plugin -date: 2023-10-12 +date: 2023-10-13 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 6840063be81ae..6a4b95c7792e5 100644 --- a/api_docs/kbn_io_ts_utils.mdx +++ b/api_docs/kbn_io_ts_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-io-ts-utils title: "@kbn/io-ts-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/io-ts-utils plugin -date: 2023-10-12 +date: 2023-10-13 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 57164012c46f1..13259c0d9d4ad 100644 --- a/api_docs/kbn_jest_serializers.mdx +++ b/api_docs/kbn_jest_serializers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-jest-serializers title: "@kbn/jest-serializers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/jest-serializers plugin -date: 2023-10-12 +date: 2023-10-13 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 2526994dfc23f..468db31058cba 100644 --- a/api_docs/kbn_journeys.mdx +++ b/api_docs/kbn_journeys.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-journeys title: "@kbn/journeys" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/journeys plugin -date: 2023-10-12 +date: 2023-10-13 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 98cd52c85370c..52a4cb5d0e2c5 100644 --- a/api_docs/kbn_json_ast.mdx +++ b/api_docs/kbn_json_ast.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-json-ast title: "@kbn/json-ast" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/json-ast plugin -date: 2023-10-12 +date: 2023-10-13 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 40e1f5e14cd72..0b5c4593421fa 100644 --- a/api_docs/kbn_kibana_manifest_schema.mdx +++ b/api_docs/kbn_kibana_manifest_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-kibana-manifest-schema title: "@kbn/kibana-manifest-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/kibana-manifest-schema plugin -date: 2023-10-12 +date: 2023-10-13 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 cd1a825a538eb..eb7f7ef37716e 100644 --- a/api_docs/kbn_language_documentation_popover.mdx +++ b/api_docs/kbn_language_documentation_popover.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-language-documentation-popover title: "@kbn/language-documentation-popover" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/language-documentation-popover plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/language-documentation-popover'] --- import kbnLanguageDocumentationPopoverObj from './kbn_language_documentation_popover.devdocs.json'; diff --git a/api_docs/kbn_lens_embeddable_utils.mdx b/api_docs/kbn_lens_embeddable_utils.mdx index 155d49ac6f6cb..6d03674aa0c5c 100644 --- a/api_docs/kbn_lens_embeddable_utils.mdx +++ b/api_docs/kbn_lens_embeddable_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-lens-embeddable-utils title: "@kbn/lens-embeddable-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/lens-embeddable-utils plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/lens-embeddable-utils'] --- import kbnLensEmbeddableUtilsObj from './kbn_lens_embeddable_utils.devdocs.json'; diff --git a/api_docs/kbn_logging.mdx b/api_docs/kbn_logging.mdx index e00c56a663346..5fcc6adce10c3 100644 --- a/api_docs/kbn_logging.mdx +++ b/api_docs/kbn_logging.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-logging title: "@kbn/logging" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/logging plugin -date: 2023-10-12 +date: 2023-10-13 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 036bf07a0f55c..e77f193a24098 100644 --- a/api_docs/kbn_logging_mocks.mdx +++ b/api_docs/kbn_logging_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-logging-mocks title: "@kbn/logging-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/logging-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 1fd88de1df339..c8fa19008f6fe 100644 --- a/api_docs/kbn_managed_vscode_config.mdx +++ b/api_docs/kbn_managed_vscode_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-managed-vscode-config title: "@kbn/managed-vscode-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/managed-vscode-config plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/managed-vscode-config'] --- import kbnManagedVscodeConfigObj from './kbn_managed_vscode_config.devdocs.json'; diff --git a/api_docs/kbn_management_cards_navigation.mdx b/api_docs/kbn_management_cards_navigation.mdx index b6703f9ddc75a..bec5b026b3cf6 100644 --- a/api_docs/kbn_management_cards_navigation.mdx +++ b/api_docs/kbn_management_cards_navigation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-cards-navigation title: "@kbn/management-cards-navigation" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-cards-navigation plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-cards-navigation'] --- import kbnManagementCardsNavigationObj from './kbn_management_cards_navigation.devdocs.json'; diff --git a/api_docs/kbn_management_settings_application.mdx b/api_docs/kbn_management_settings_application.mdx index a78d4addfa73d..c436920aa4832 100644 --- a/api_docs/kbn_management_settings_application.mdx +++ b/api_docs/kbn_management_settings_application.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-application title: "@kbn/management-settings-application" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-application plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-application'] --- import kbnManagementSettingsApplicationObj from './kbn_management_settings_application.devdocs.json'; diff --git a/api_docs/kbn_management_settings_components_field_category.mdx b/api_docs/kbn_management_settings_components_field_category.mdx index ffabbb2184705..e3f406b78aaf7 100644 --- a/api_docs/kbn_management_settings_components_field_category.mdx +++ b/api_docs/kbn_management_settings_components_field_category.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-components-field-category title: "@kbn/management-settings-components-field-category" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-components-field-category plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-components-field-category'] --- import kbnManagementSettingsComponentsFieldCategoryObj from './kbn_management_settings_components_field_category.devdocs.json'; diff --git a/api_docs/kbn_management_settings_components_field_input.mdx b/api_docs/kbn_management_settings_components_field_input.mdx index 05226a001679e..72394390324bf 100644 --- a/api_docs/kbn_management_settings_components_field_input.mdx +++ b/api_docs/kbn_management_settings_components_field_input.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-components-field-input title: "@kbn/management-settings-components-field-input" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-components-field-input plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-components-field-input'] --- import kbnManagementSettingsComponentsFieldInputObj from './kbn_management_settings_components_field_input.devdocs.json'; diff --git a/api_docs/kbn_management_settings_components_field_row.mdx b/api_docs/kbn_management_settings_components_field_row.mdx index 42f68e347d851..a70769422beca 100644 --- a/api_docs/kbn_management_settings_components_field_row.mdx +++ b/api_docs/kbn_management_settings_components_field_row.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-components-field-row title: "@kbn/management-settings-components-field-row" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-components-field-row plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-components-field-row'] --- import kbnManagementSettingsComponentsFieldRowObj from './kbn_management_settings_components_field_row.devdocs.json'; diff --git a/api_docs/kbn_management_settings_components_form.mdx b/api_docs/kbn_management_settings_components_form.mdx index a4c59cf8b3c13..6d5153659532a 100644 --- a/api_docs/kbn_management_settings_components_form.mdx +++ b/api_docs/kbn_management_settings_components_form.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-components-form title: "@kbn/management-settings-components-form" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-components-form plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-components-form'] --- import kbnManagementSettingsComponentsFormObj from './kbn_management_settings_components_form.devdocs.json'; diff --git a/api_docs/kbn_management_settings_field_definition.mdx b/api_docs/kbn_management_settings_field_definition.mdx index 379c0a753bd12..a4f3d2e088c0d 100644 --- a/api_docs/kbn_management_settings_field_definition.mdx +++ b/api_docs/kbn_management_settings_field_definition.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-field-definition title: "@kbn/management-settings-field-definition" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-field-definition plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-field-definition'] --- import kbnManagementSettingsFieldDefinitionObj from './kbn_management_settings_field_definition.devdocs.json'; diff --git a/api_docs/kbn_management_settings_ids.mdx b/api_docs/kbn_management_settings_ids.mdx index 0d03defce9162..145b4d07da5e2 100644 --- a/api_docs/kbn_management_settings_ids.mdx +++ b/api_docs/kbn_management_settings_ids.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-ids title: "@kbn/management-settings-ids" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-ids plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-ids'] --- import kbnManagementSettingsIdsObj from './kbn_management_settings_ids.devdocs.json'; diff --git a/api_docs/kbn_management_settings_section_registry.mdx b/api_docs/kbn_management_settings_section_registry.mdx index 9f69fdb59d5ef..67b13debc8089 100644 --- a/api_docs/kbn_management_settings_section_registry.mdx +++ b/api_docs/kbn_management_settings_section_registry.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-section-registry title: "@kbn/management-settings-section-registry" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-section-registry plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-section-registry'] --- import kbnManagementSettingsSectionRegistryObj from './kbn_management_settings_section_registry.devdocs.json'; diff --git a/api_docs/kbn_management_settings_types.mdx b/api_docs/kbn_management_settings_types.mdx index 151e106aeaaf6..d7564d250d4a2 100644 --- a/api_docs/kbn_management_settings_types.mdx +++ b/api_docs/kbn_management_settings_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-types title: "@kbn/management-settings-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-types plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-types'] --- import kbnManagementSettingsTypesObj from './kbn_management_settings_types.devdocs.json'; diff --git a/api_docs/kbn_management_settings_utilities.mdx b/api_docs/kbn_management_settings_utilities.mdx index 60e7bd261dfe9..1e9a042255dab 100644 --- a/api_docs/kbn_management_settings_utilities.mdx +++ b/api_docs/kbn_management_settings_utilities.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-utilities title: "@kbn/management-settings-utilities" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-utilities plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-utilities'] --- import kbnManagementSettingsUtilitiesObj from './kbn_management_settings_utilities.devdocs.json'; diff --git a/api_docs/kbn_management_storybook_config.mdx b/api_docs/kbn_management_storybook_config.mdx index 2b5e055756def..546000f2ed730 100644 --- a/api_docs/kbn_management_storybook_config.mdx +++ b/api_docs/kbn_management_storybook_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-storybook-config title: "@kbn/management-storybook-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-storybook-config plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-storybook-config'] --- import kbnManagementStorybookConfigObj from './kbn_management_storybook_config.devdocs.json'; diff --git a/api_docs/kbn_mapbox_gl.mdx b/api_docs/kbn_mapbox_gl.mdx index a718f87d8d792..e7cf46e806c32 100644 --- a/api_docs/kbn_mapbox_gl.mdx +++ b/api_docs/kbn_mapbox_gl.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-mapbox-gl title: "@kbn/mapbox-gl" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/mapbox-gl plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/mapbox-gl'] --- import kbnMapboxGlObj from './kbn_mapbox_gl.devdocs.json'; diff --git a/api_docs/kbn_maps_vector_tile_utils.mdx b/api_docs/kbn_maps_vector_tile_utils.mdx index fbcc0ecd0cb7e..b150293b11edd 100644 --- a/api_docs/kbn_maps_vector_tile_utils.mdx +++ b/api_docs/kbn_maps_vector_tile_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-maps-vector-tile-utils title: "@kbn/maps-vector-tile-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/maps-vector-tile-utils plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/maps-vector-tile-utils'] --- import kbnMapsVectorTileUtilsObj from './kbn_maps_vector_tile_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_agg_utils.mdx b/api_docs/kbn_ml_agg_utils.mdx index 071bd813e8319..9f5efdf12a5cc 100644 --- a/api_docs/kbn_ml_agg_utils.mdx +++ b/api_docs/kbn_ml_agg_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-agg-utils title: "@kbn/ml-agg-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-agg-utils plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-agg-utils'] --- import kbnMlAggUtilsObj from './kbn_ml_agg_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_anomaly_utils.mdx b/api_docs/kbn_ml_anomaly_utils.mdx index dccaa5ab83671..1d9f371d84757 100644 --- a/api_docs/kbn_ml_anomaly_utils.mdx +++ b/api_docs/kbn_ml_anomaly_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-anomaly-utils title: "@kbn/ml-anomaly-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-anomaly-utils plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-anomaly-utils'] --- import kbnMlAnomalyUtilsObj from './kbn_ml_anomaly_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_category_validator.mdx b/api_docs/kbn_ml_category_validator.mdx index 906334289ba95..40d8fd8700b8c 100644 --- a/api_docs/kbn_ml_category_validator.mdx +++ b/api_docs/kbn_ml_category_validator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-category-validator title: "@kbn/ml-category-validator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-category-validator plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-category-validator'] --- import kbnMlCategoryValidatorObj from './kbn_ml_category_validator.devdocs.json'; diff --git a/api_docs/kbn_ml_chi2test.mdx b/api_docs/kbn_ml_chi2test.mdx index 35c134365dc56..b1ff0acba670f 100644 --- a/api_docs/kbn_ml_chi2test.mdx +++ b/api_docs/kbn_ml_chi2test.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-chi2test title: "@kbn/ml-chi2test" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-chi2test plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-chi2test'] --- import kbnMlChi2testObj from './kbn_ml_chi2test.devdocs.json'; diff --git a/api_docs/kbn_ml_data_frame_analytics_utils.mdx b/api_docs/kbn_ml_data_frame_analytics_utils.mdx index 73c5d7bfea6a9..38282cd9fa1e7 100644 --- a/api_docs/kbn_ml_data_frame_analytics_utils.mdx +++ b/api_docs/kbn_ml_data_frame_analytics_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-data-frame-analytics-utils title: "@kbn/ml-data-frame-analytics-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-data-frame-analytics-utils plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-data-frame-analytics-utils'] --- import kbnMlDataFrameAnalyticsUtilsObj from './kbn_ml_data_frame_analytics_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_data_grid.mdx b/api_docs/kbn_ml_data_grid.mdx index c830a3b62e0d2..415c8c00a3df2 100644 --- a/api_docs/kbn_ml_data_grid.mdx +++ b/api_docs/kbn_ml_data_grid.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-data-grid title: "@kbn/ml-data-grid" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-data-grid plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-data-grid'] --- import kbnMlDataGridObj from './kbn_ml_data_grid.devdocs.json'; diff --git a/api_docs/kbn_ml_date_picker.mdx b/api_docs/kbn_ml_date_picker.mdx index bccda8217b83a..ee8aaf1e91996 100644 --- a/api_docs/kbn_ml_date_picker.mdx +++ b/api_docs/kbn_ml_date_picker.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-date-picker title: "@kbn/ml-date-picker" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-date-picker plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-date-picker'] --- import kbnMlDatePickerObj from './kbn_ml_date_picker.devdocs.json'; diff --git a/api_docs/kbn_ml_date_utils.mdx b/api_docs/kbn_ml_date_utils.mdx index 215ccf8c6c418..b173f48852279 100644 --- a/api_docs/kbn_ml_date_utils.mdx +++ b/api_docs/kbn_ml_date_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-date-utils title: "@kbn/ml-date-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-date-utils plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-date-utils'] --- import kbnMlDateUtilsObj from './kbn_ml_date_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_error_utils.mdx b/api_docs/kbn_ml_error_utils.mdx index 8897b626c7eb5..2772bd7362bf3 100644 --- a/api_docs/kbn_ml_error_utils.mdx +++ b/api_docs/kbn_ml_error_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-error-utils title: "@kbn/ml-error-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-error-utils plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-error-utils'] --- import kbnMlErrorUtilsObj from './kbn_ml_error_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_in_memory_table.mdx b/api_docs/kbn_ml_in_memory_table.mdx index 9b537233a2bf3..53a5896191f71 100644 --- a/api_docs/kbn_ml_in_memory_table.mdx +++ b/api_docs/kbn_ml_in_memory_table.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-in-memory-table title: "@kbn/ml-in-memory-table" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-in-memory-table plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-in-memory-table'] --- import kbnMlInMemoryTableObj from './kbn_ml_in_memory_table.devdocs.json'; diff --git a/api_docs/kbn_ml_is_defined.mdx b/api_docs/kbn_ml_is_defined.mdx index d5d284de1c347..f0525fe0ff6ca 100644 --- a/api_docs/kbn_ml_is_defined.mdx +++ b/api_docs/kbn_ml_is_defined.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-is-defined title: "@kbn/ml-is-defined" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-is-defined plugin -date: 2023-10-12 +date: 2023-10-13 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 5857f193cf2c4..ae07329944689 100644 --- a/api_docs/kbn_ml_is_populated_object.mdx +++ b/api_docs/kbn_ml_is_populated_object.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-is-populated-object title: "@kbn/ml-is-populated-object" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-is-populated-object plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-is-populated-object'] --- import kbnMlIsPopulatedObjectObj from './kbn_ml_is_populated_object.devdocs.json'; diff --git a/api_docs/kbn_ml_kibana_theme.mdx b/api_docs/kbn_ml_kibana_theme.mdx index 63cdd890c2cb0..31f18cc32b274 100644 --- a/api_docs/kbn_ml_kibana_theme.mdx +++ b/api_docs/kbn_ml_kibana_theme.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-kibana-theme title: "@kbn/ml-kibana-theme" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-kibana-theme plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-kibana-theme'] --- import kbnMlKibanaThemeObj from './kbn_ml_kibana_theme.devdocs.json'; diff --git a/api_docs/kbn_ml_local_storage.mdx b/api_docs/kbn_ml_local_storage.mdx index f94c9e875d77b..8ee4fb7752a74 100644 --- a/api_docs/kbn_ml_local_storage.mdx +++ b/api_docs/kbn_ml_local_storage.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-local-storage title: "@kbn/ml-local-storage" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-local-storage plugin -date: 2023-10-12 +date: 2023-10-13 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 cb5dba9cf8a89..805fb634e2cf7 100644 --- a/api_docs/kbn_ml_nested_property.mdx +++ b/api_docs/kbn_ml_nested_property.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-nested-property title: "@kbn/ml-nested-property" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-nested-property plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-nested-property'] --- import kbnMlNestedPropertyObj from './kbn_ml_nested_property.devdocs.json'; diff --git a/api_docs/kbn_ml_number_utils.mdx b/api_docs/kbn_ml_number_utils.mdx index dc7c709e6b858..9c97a6ece7be6 100644 --- a/api_docs/kbn_ml_number_utils.mdx +++ b/api_docs/kbn_ml_number_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-number-utils title: "@kbn/ml-number-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-number-utils plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-number-utils'] --- import kbnMlNumberUtilsObj from './kbn_ml_number_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_query_utils.mdx b/api_docs/kbn_ml_query_utils.mdx index cee8c920d7bd5..ad67ed3dacc99 100644 --- a/api_docs/kbn_ml_query_utils.mdx +++ b/api_docs/kbn_ml_query_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-query-utils title: "@kbn/ml-query-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-query-utils plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-query-utils'] --- import kbnMlQueryUtilsObj from './kbn_ml_query_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_random_sampler_utils.mdx b/api_docs/kbn_ml_random_sampler_utils.mdx index 9fadb99460e4a..cffd3dc660b07 100644 --- a/api_docs/kbn_ml_random_sampler_utils.mdx +++ b/api_docs/kbn_ml_random_sampler_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-random-sampler-utils title: "@kbn/ml-random-sampler-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-random-sampler-utils plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-random-sampler-utils'] --- import kbnMlRandomSamplerUtilsObj from './kbn_ml_random_sampler_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_route_utils.mdx b/api_docs/kbn_ml_route_utils.mdx index aefcee0741d6b..c0700a3fecc68 100644 --- a/api_docs/kbn_ml_route_utils.mdx +++ b/api_docs/kbn_ml_route_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-route-utils title: "@kbn/ml-route-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-route-utils plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-route-utils'] --- import kbnMlRouteUtilsObj from './kbn_ml_route_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_runtime_field_utils.mdx b/api_docs/kbn_ml_runtime_field_utils.mdx index 74ddfcce1f3ce..49ca205d7bf32 100644 --- a/api_docs/kbn_ml_runtime_field_utils.mdx +++ b/api_docs/kbn_ml_runtime_field_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-runtime-field-utils title: "@kbn/ml-runtime-field-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-runtime-field-utils plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-runtime-field-utils'] --- import kbnMlRuntimeFieldUtilsObj from './kbn_ml_runtime_field_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_string_hash.mdx b/api_docs/kbn_ml_string_hash.mdx index 48fb62a59bb2c..a45004dd35f15 100644 --- a/api_docs/kbn_ml_string_hash.mdx +++ b/api_docs/kbn_ml_string_hash.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-string-hash title: "@kbn/ml-string-hash" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-string-hash plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-string-hash'] --- import kbnMlStringHashObj from './kbn_ml_string_hash.devdocs.json'; diff --git a/api_docs/kbn_ml_trained_models_utils.mdx b/api_docs/kbn_ml_trained_models_utils.mdx index 120cddd96e138..470c9c3242dfe 100644 --- a/api_docs/kbn_ml_trained_models_utils.mdx +++ b/api_docs/kbn_ml_trained_models_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-trained-models-utils title: "@kbn/ml-trained-models-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-trained-models-utils plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-trained-models-utils'] --- import kbnMlTrainedModelsUtilsObj from './kbn_ml_trained_models_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_url_state.mdx b/api_docs/kbn_ml_url_state.mdx index 31f0749d3a43e..90dcfec26f391 100644 --- a/api_docs/kbn_ml_url_state.mdx +++ b/api_docs/kbn_ml_url_state.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-url-state title: "@kbn/ml-url-state" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-url-state plugin -date: 2023-10-12 +date: 2023-10-13 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 c0841cd0052d7..7704e0655e9a4 100644 --- a/api_docs/kbn_monaco.mdx +++ b/api_docs/kbn_monaco.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-monaco title: "@kbn/monaco" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/monaco plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/monaco'] --- import kbnMonacoObj from './kbn_monaco.devdocs.json'; diff --git a/api_docs/kbn_object_versioning.mdx b/api_docs/kbn_object_versioning.mdx index c4e852b3254e0..59921f1c5523a 100644 --- a/api_docs/kbn_object_versioning.mdx +++ b/api_docs/kbn_object_versioning.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-object-versioning title: "@kbn/object-versioning" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/object-versioning plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/object-versioning'] --- import kbnObjectVersioningObj from './kbn_object_versioning.devdocs.json'; diff --git a/api_docs/kbn_observability_alert_details.mdx b/api_docs/kbn_observability_alert_details.mdx index b9c84b2fbe452..52dbe9953b494 100644 --- a/api_docs/kbn_observability_alert_details.mdx +++ b/api_docs/kbn_observability_alert_details.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-observability-alert-details title: "@kbn/observability-alert-details" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/observability-alert-details plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/observability-alert-details'] --- import kbnObservabilityAlertDetailsObj from './kbn_observability_alert_details.devdocs.json'; diff --git a/api_docs/kbn_openapi_generator.mdx b/api_docs/kbn_openapi_generator.mdx index 94770f8bb6006..bea0e794f8cb4 100644 --- a/api_docs/kbn_openapi_generator.mdx +++ b/api_docs/kbn_openapi_generator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-openapi-generator title: "@kbn/openapi-generator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/openapi-generator plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/openapi-generator'] --- import kbnOpenapiGeneratorObj from './kbn_openapi_generator.devdocs.json'; diff --git a/api_docs/kbn_optimizer.mdx b/api_docs/kbn_optimizer.mdx index 7f1cec01daeac..5ac88bf3902bd 100644 --- a/api_docs/kbn_optimizer.mdx +++ b/api_docs/kbn_optimizer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-optimizer title: "@kbn/optimizer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/optimizer plugin -date: 2023-10-12 +date: 2023-10-13 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 2e84b426c8196..642931328d7e8 100644 --- a/api_docs/kbn_optimizer_webpack_helpers.mdx +++ b/api_docs/kbn_optimizer_webpack_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-optimizer-webpack-helpers title: "@kbn/optimizer-webpack-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/optimizer-webpack-helpers plugin -date: 2023-10-12 +date: 2023-10-13 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 c7da06b1c55ce..577f08c988c33 100644 --- a/api_docs/kbn_osquery_io_ts_types.mdx +++ b/api_docs/kbn_osquery_io_ts_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-osquery-io-ts-types title: "@kbn/osquery-io-ts-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/osquery-io-ts-types plugin -date: 2023-10-12 +date: 2023-10-13 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 7d9b0d1612bec..cd6d3a7544cba 100644 --- a/api_docs/kbn_performance_testing_dataset_extractor.mdx +++ b/api_docs/kbn_performance_testing_dataset_extractor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-performance-testing-dataset-extractor title: "@kbn/performance-testing-dataset-extractor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/performance-testing-dataset-extractor plugin -date: 2023-10-12 +date: 2023-10-13 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 03fe415ac28bd..3ec40e5ffa1cd 100644 --- a/api_docs/kbn_plugin_generator.mdx +++ b/api_docs/kbn_plugin_generator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-generator title: "@kbn/plugin-generator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/plugin-generator plugin -date: 2023-10-12 +date: 2023-10-13 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 30d8771f1ec01..f60a496106306 100644 --- a/api_docs/kbn_plugin_helpers.mdx +++ b/api_docs/kbn_plugin_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-helpers title: "@kbn/plugin-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/plugin-helpers plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/plugin-helpers'] --- import kbnPluginHelpersObj from './kbn_plugin_helpers.devdocs.json'; diff --git a/api_docs/kbn_profiling_utils.mdx b/api_docs/kbn_profiling_utils.mdx index 8b2869bced35d..1f1e78ca2b52f 100644 --- a/api_docs/kbn_profiling_utils.mdx +++ b/api_docs/kbn_profiling_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-profiling-utils title: "@kbn/profiling-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/profiling-utils plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/profiling-utils'] --- import kbnProfilingUtilsObj from './kbn_profiling_utils.devdocs.json'; diff --git a/api_docs/kbn_random_sampling.mdx b/api_docs/kbn_random_sampling.mdx index b5c3f6d9b9e79..5e75506976e79 100644 --- a/api_docs/kbn_random_sampling.mdx +++ b/api_docs/kbn_random_sampling.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-random-sampling title: "@kbn/random-sampling" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/random-sampling plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/random-sampling'] --- import kbnRandomSamplingObj from './kbn_random_sampling.devdocs.json'; diff --git a/api_docs/kbn_react_field.mdx b/api_docs/kbn_react_field.mdx index 49256b5787e2a..3b96bb0044b32 100644 --- a/api_docs/kbn_react_field.mdx +++ b/api_docs/kbn_react_field.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-field title: "@kbn/react-field" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-field plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-field'] --- import kbnReactFieldObj from './kbn_react_field.devdocs.json'; diff --git a/api_docs/kbn_react_kibana_context_common.mdx b/api_docs/kbn_react_kibana_context_common.mdx index 0a0ba3571a151..2e78bc9e11ae8 100644 --- a/api_docs/kbn_react_kibana_context_common.mdx +++ b/api_docs/kbn_react_kibana_context_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-common title: "@kbn/react-kibana-context-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-kibana-context-common plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-context-common'] --- import kbnReactKibanaContextCommonObj from './kbn_react_kibana_context_common.devdocs.json'; diff --git a/api_docs/kbn_react_kibana_context_render.mdx b/api_docs/kbn_react_kibana_context_render.mdx index f3547e343b270..c34ca93833f3e 100644 --- a/api_docs/kbn_react_kibana_context_render.mdx +++ b/api_docs/kbn_react_kibana_context_render.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-render title: "@kbn/react-kibana-context-render" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-kibana-context-render plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-context-render'] --- import kbnReactKibanaContextRenderObj from './kbn_react_kibana_context_render.devdocs.json'; diff --git a/api_docs/kbn_react_kibana_context_root.mdx b/api_docs/kbn_react_kibana_context_root.mdx index a9ba814cdd5d1..02ddaafca7496 100644 --- a/api_docs/kbn_react_kibana_context_root.mdx +++ b/api_docs/kbn_react_kibana_context_root.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-root title: "@kbn/react-kibana-context-root" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-kibana-context-root plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-context-root'] --- import kbnReactKibanaContextRootObj from './kbn_react_kibana_context_root.devdocs.json'; diff --git a/api_docs/kbn_react_kibana_context_styled.mdx b/api_docs/kbn_react_kibana_context_styled.mdx index 54260ac18084b..7b5bca1177508 100644 --- a/api_docs/kbn_react_kibana_context_styled.mdx +++ b/api_docs/kbn_react_kibana_context_styled.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-styled title: "@kbn/react-kibana-context-styled" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-kibana-context-styled plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-context-styled'] --- import kbnReactKibanaContextStyledObj from './kbn_react_kibana_context_styled.devdocs.json'; diff --git a/api_docs/kbn_react_kibana_context_theme.mdx b/api_docs/kbn_react_kibana_context_theme.mdx index e6e4869ce5385..f9f31419f1920 100644 --- a/api_docs/kbn_react_kibana_context_theme.mdx +++ b/api_docs/kbn_react_kibana_context_theme.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-theme title: "@kbn/react-kibana-context-theme" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-kibana-context-theme plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-context-theme'] --- import kbnReactKibanaContextThemeObj from './kbn_react_kibana_context_theme.devdocs.json'; diff --git a/api_docs/kbn_react_kibana_mount.mdx b/api_docs/kbn_react_kibana_mount.mdx index 736fca5517cb1..7b2d345647844 100644 --- a/api_docs/kbn_react_kibana_mount.mdx +++ b/api_docs/kbn_react_kibana_mount.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-mount title: "@kbn/react-kibana-mount" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-kibana-mount plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-mount'] --- import kbnReactKibanaMountObj from './kbn_react_kibana_mount.devdocs.json'; diff --git a/api_docs/kbn_repo_file_maps.mdx b/api_docs/kbn_repo_file_maps.mdx index de1c51cc762ac..3f8474a0f9ccc 100644 --- a/api_docs/kbn_repo_file_maps.mdx +++ b/api_docs/kbn_repo_file_maps.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-file-maps title: "@kbn/repo-file-maps" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-file-maps plugin -date: 2023-10-12 +date: 2023-10-13 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 71fe73160ec8f..e42dc265bbc11 100644 --- a/api_docs/kbn_repo_linter.mdx +++ b/api_docs/kbn_repo_linter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-linter title: "@kbn/repo-linter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-linter plugin -date: 2023-10-12 +date: 2023-10-13 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 e781e2080df96..3b13d5305fca5 100644 --- a/api_docs/kbn_repo_path.mdx +++ b/api_docs/kbn_repo_path.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-path title: "@kbn/repo-path" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-path plugin -date: 2023-10-12 +date: 2023-10-13 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 a7605b5bccbda..f8f51fe197866 100644 --- a/api_docs/kbn_repo_source_classifier.mdx +++ b/api_docs/kbn_repo_source_classifier.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-source-classifier title: "@kbn/repo-source-classifier" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-source-classifier plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-source-classifier'] --- import kbnRepoSourceClassifierObj from './kbn_repo_source_classifier.devdocs.json'; diff --git a/api_docs/kbn_reporting_common.mdx b/api_docs/kbn_reporting_common.mdx index ed9c4fb453ba2..b493f7f409087 100644 --- a/api_docs/kbn_reporting_common.mdx +++ b/api_docs/kbn_reporting_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-common title: "@kbn/reporting-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-common plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-common'] --- import kbnReportingCommonObj from './kbn_reporting_common.devdocs.json'; diff --git a/api_docs/kbn_resizable_layout.mdx b/api_docs/kbn_resizable_layout.mdx index b75ee51b34646..a2a36b432a836 100644 --- a/api_docs/kbn_resizable_layout.mdx +++ b/api_docs/kbn_resizable_layout.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-resizable-layout title: "@kbn/resizable-layout" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/resizable-layout plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/resizable-layout'] --- import kbnResizableLayoutObj from './kbn_resizable_layout.devdocs.json'; diff --git a/api_docs/kbn_rison.mdx b/api_docs/kbn_rison.mdx index 70cdf658cb9fe..e3dc9245e3557 100644 --- a/api_docs/kbn_rison.mdx +++ b/api_docs/kbn_rison.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rison title: "@kbn/rison" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/rison plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rison'] --- import kbnRisonObj from './kbn_rison.devdocs.json'; diff --git a/api_docs/kbn_rrule.mdx b/api_docs/kbn_rrule.mdx index c56b39d442f1b..44776c3cb1ba2 100644 --- a/api_docs/kbn_rrule.mdx +++ b/api_docs/kbn_rrule.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rrule title: "@kbn/rrule" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/rrule plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rrule'] --- import kbnRruleObj from './kbn_rrule.devdocs.json'; diff --git a/api_docs/kbn_rule_data_utils.mdx b/api_docs/kbn_rule_data_utils.mdx index f895c0eb911c2..a0a3fb5d95cd2 100644 --- a/api_docs/kbn_rule_data_utils.mdx +++ b/api_docs/kbn_rule_data_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rule-data-utils title: "@kbn/rule-data-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/rule-data-utils plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rule-data-utils'] --- import kbnRuleDataUtilsObj from './kbn_rule_data_utils.devdocs.json'; diff --git a/api_docs/kbn_saved_objects_settings.mdx b/api_docs/kbn_saved_objects_settings.mdx index f6a1d4a2de57d..a92ce8a277ae7 100644 --- a/api_docs/kbn_saved_objects_settings.mdx +++ b/api_docs/kbn_saved_objects_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-saved-objects-settings title: "@kbn/saved-objects-settings" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/saved-objects-settings plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/saved-objects-settings'] --- import kbnSavedObjectsSettingsObj from './kbn_saved_objects_settings.devdocs.json'; diff --git a/api_docs/kbn_search_api_panels.mdx b/api_docs/kbn_search_api_panels.mdx index 95d77e565c502..812b5bd31baf2 100644 --- a/api_docs/kbn_search_api_panels.mdx +++ b/api_docs/kbn_search_api_panels.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-api-panels title: "@kbn/search-api-panels" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/search-api-panels plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-api-panels'] --- import kbnSearchApiPanelsObj from './kbn_search_api_panels.devdocs.json'; diff --git a/api_docs/kbn_search_connectors.mdx b/api_docs/kbn_search_connectors.mdx index f42bd249cb8af..d3ce93a91d31a 100644 --- a/api_docs/kbn_search_connectors.mdx +++ b/api_docs/kbn_search_connectors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-connectors title: "@kbn/search-connectors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/search-connectors plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-connectors'] --- import kbnSearchConnectorsObj from './kbn_search_connectors.devdocs.json'; diff --git a/api_docs/kbn_search_response_warnings.mdx b/api_docs/kbn_search_response_warnings.mdx index 82dedb014ad5a..57106ba96c421 100644 --- a/api_docs/kbn_search_response_warnings.mdx +++ b/api_docs/kbn_search_response_warnings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-response-warnings title: "@kbn/search-response-warnings" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/search-response-warnings plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-response-warnings'] --- import kbnSearchResponseWarningsObj from './kbn_search_response_warnings.devdocs.json'; diff --git a/api_docs/kbn_security_solution_features.mdx b/api_docs/kbn_security_solution_features.mdx index 5e6acc4e6a89b..86876d0bf1b70 100644 --- a/api_docs/kbn_security_solution_features.mdx +++ b/api_docs/kbn_security_solution_features.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-features title: "@kbn/security-solution-features" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-solution-features plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-features'] --- import kbnSecuritySolutionFeaturesObj from './kbn_security_solution_features.devdocs.json'; diff --git a/api_docs/kbn_security_solution_navigation.mdx b/api_docs/kbn_security_solution_navigation.mdx index 28801ddcbe522..f214ad39c1de7 100644 --- a/api_docs/kbn_security_solution_navigation.mdx +++ b/api_docs/kbn_security_solution_navigation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-navigation title: "@kbn/security-solution-navigation" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-solution-navigation plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-navigation'] --- import kbnSecuritySolutionNavigationObj from './kbn_security_solution_navigation.devdocs.json'; diff --git a/api_docs/kbn_security_solution_side_nav.mdx b/api_docs/kbn_security_solution_side_nav.mdx index 3c309e88fd0fd..7b588c06249fe 100644 --- a/api_docs/kbn_security_solution_side_nav.mdx +++ b/api_docs/kbn_security_solution_side_nav.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-side-nav title: "@kbn/security-solution-side-nav" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-solution-side-nav plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-side-nav'] --- import kbnSecuritySolutionSideNavObj from './kbn_security_solution_side_nav.devdocs.json'; diff --git a/api_docs/kbn_security_solution_storybook_config.mdx b/api_docs/kbn_security_solution_storybook_config.mdx index 810f0832945ad..aab292ad203b7 100644 --- a/api_docs/kbn_security_solution_storybook_config.mdx +++ b/api_docs/kbn_security_solution_storybook_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-storybook-config title: "@kbn/security-solution-storybook-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-solution-storybook-config plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-storybook-config'] --- import kbnSecuritySolutionStorybookConfigObj from './kbn_security_solution_storybook_config.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_autocomplete.mdx b/api_docs/kbn_securitysolution_autocomplete.mdx index da7536564a83d..064fe0f424bb5 100644 --- a/api_docs/kbn_securitysolution_autocomplete.mdx +++ b/api_docs/kbn_securitysolution_autocomplete.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-autocomplete title: "@kbn/securitysolution-autocomplete" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-autocomplete plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-autocomplete'] --- import kbnSecuritysolutionAutocompleteObj from './kbn_securitysolution_autocomplete.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_data_table.mdx b/api_docs/kbn_securitysolution_data_table.mdx index 9c753fb8a096a..41b358168c209 100644 --- a/api_docs/kbn_securitysolution_data_table.mdx +++ b/api_docs/kbn_securitysolution_data_table.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-data-table title: "@kbn/securitysolution-data-table" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-data-table plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-data-table'] --- import kbnSecuritysolutionDataTableObj from './kbn_securitysolution_data_table.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_ecs.mdx b/api_docs/kbn_securitysolution_ecs.mdx index 4c244a0f5d34c..5f106f071d536 100644 --- a/api_docs/kbn_securitysolution_ecs.mdx +++ b/api_docs/kbn_securitysolution_ecs.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-ecs title: "@kbn/securitysolution-ecs" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-ecs plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-ecs'] --- import kbnSecuritysolutionEcsObj from './kbn_securitysolution_ecs.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_es_utils.mdx b/api_docs/kbn_securitysolution_es_utils.mdx index 2b7d6131795bd..b34e2f6ea9839 100644 --- a/api_docs/kbn_securitysolution_es_utils.mdx +++ b/api_docs/kbn_securitysolution_es_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-es-utils title: "@kbn/securitysolution-es-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-es-utils plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-es-utils'] --- import kbnSecuritysolutionEsUtilsObj from './kbn_securitysolution_es_utils.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_exception_list_components.mdx b/api_docs/kbn_securitysolution_exception_list_components.mdx index 174c3b0e95f8a..a9c394d159025 100644 --- a/api_docs/kbn_securitysolution_exception_list_components.mdx +++ b/api_docs/kbn_securitysolution_exception_list_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-exception-list-components title: "@kbn/securitysolution-exception-list-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-exception-list-components plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-exception-list-components'] --- import kbnSecuritysolutionExceptionListComponentsObj from './kbn_securitysolution_exception_list_components.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_grouping.mdx b/api_docs/kbn_securitysolution_grouping.mdx index ad6972724d751..2dee458ee1f04 100644 --- a/api_docs/kbn_securitysolution_grouping.mdx +++ b/api_docs/kbn_securitysolution_grouping.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-grouping title: "@kbn/securitysolution-grouping" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-grouping plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-grouping'] --- import kbnSecuritysolutionGroupingObj from './kbn_securitysolution_grouping.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_hook_utils.mdx b/api_docs/kbn_securitysolution_hook_utils.mdx index 261d8f09dd7cb..a83d8a18f7821 100644 --- a/api_docs/kbn_securitysolution_hook_utils.mdx +++ b/api_docs/kbn_securitysolution_hook_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-hook-utils title: "@kbn/securitysolution-hook-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-hook-utils plugin -date: 2023-10-12 +date: 2023-10-13 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 626e9ff512a9a..5163415c16def 100644 --- a/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-alerting-types title: "@kbn/securitysolution-io-ts-alerting-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-alerting-types plugin -date: 2023-10-12 +date: 2023-10-13 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 af7f5c9097616..5179e5647b9c7 100644 --- a/api_docs/kbn_securitysolution_io_ts_list_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_list_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-list-types title: "@kbn/securitysolution-io-ts-list-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-list-types plugin -date: 2023-10-12 +date: 2023-10-13 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 16ebfd01d7bd4..8600a6c8687e0 100644 --- a/api_docs/kbn_securitysolution_io_ts_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-types title: "@kbn/securitysolution-io-ts-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-types plugin -date: 2023-10-12 +date: 2023-10-13 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 9489b2388894a..4539a9eb1a4ab 100644 --- a/api_docs/kbn_securitysolution_io_ts_utils.mdx +++ b/api_docs/kbn_securitysolution_io_ts_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-utils title: "@kbn/securitysolution-io-ts-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-utils plugin -date: 2023-10-12 +date: 2023-10-13 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 17a22fcfa4b5f..bd02c02065c7b 100644 --- a/api_docs/kbn_securitysolution_list_api.mdx +++ b/api_docs/kbn_securitysolution_list_api.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-api title: "@kbn/securitysolution-list-api" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-api plugin -date: 2023-10-12 +date: 2023-10-13 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 22a1da49f560d..e2f417f66e4b7 100644 --- a/api_docs/kbn_securitysolution_list_constants.mdx +++ b/api_docs/kbn_securitysolution_list_constants.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-constants title: "@kbn/securitysolution-list-constants" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-constants plugin -date: 2023-10-12 +date: 2023-10-13 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 acec1671a25a7..0e0d1d53b6471 100644 --- a/api_docs/kbn_securitysolution_list_hooks.mdx +++ b/api_docs/kbn_securitysolution_list_hooks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-hooks title: "@kbn/securitysolution-list-hooks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-hooks plugin -date: 2023-10-12 +date: 2023-10-13 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 040d61e61ad0b..a6284bed3b746 100644 --- a/api_docs/kbn_securitysolution_list_utils.mdx +++ b/api_docs/kbn_securitysolution_list_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-utils title: "@kbn/securitysolution-list-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-utils plugin -date: 2023-10-12 +date: 2023-10-13 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 ac28bcea3da4f..d0840c35193e2 100644 --- a/api_docs/kbn_securitysolution_rules.mdx +++ b/api_docs/kbn_securitysolution_rules.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-rules title: "@kbn/securitysolution-rules" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-rules plugin -date: 2023-10-12 +date: 2023-10-13 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 30270910f4352..a9c761d9d4f40 100644 --- a/api_docs/kbn_securitysolution_t_grid.mdx +++ b/api_docs/kbn_securitysolution_t_grid.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-t-grid title: "@kbn/securitysolution-t-grid" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-t-grid plugin -date: 2023-10-12 +date: 2023-10-13 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 d791831ad679f..a5172a86fd367 100644 --- a/api_docs/kbn_securitysolution_utils.mdx +++ b/api_docs/kbn_securitysolution_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-utils title: "@kbn/securitysolution-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-utils plugin -date: 2023-10-12 +date: 2023-10-13 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 9b1b4e51002c5..a9c33d32d7e1d 100644 --- a/api_docs/kbn_server_http_tools.mdx +++ b/api_docs/kbn_server_http_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-http-tools title: "@kbn/server-http-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/server-http-tools plugin -date: 2023-10-12 +date: 2023-10-13 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 c8b25abb98182..751b5932099d7 100644 --- a/api_docs/kbn_server_route_repository.mdx +++ b/api_docs/kbn_server_route_repository.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-route-repository title: "@kbn/server-route-repository" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/server-route-repository plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/server-route-repository'] --- import kbnServerRouteRepositoryObj from './kbn_server_route_repository.devdocs.json'; diff --git a/api_docs/kbn_serverless_common_settings.mdx b/api_docs/kbn_serverless_common_settings.mdx index f2df3efbf2a49..f27d95fb7dfc8 100644 --- a/api_docs/kbn_serverless_common_settings.mdx +++ b/api_docs/kbn_serverless_common_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-common-settings title: "@kbn/serverless-common-settings" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/serverless-common-settings plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-common-settings'] --- import kbnServerlessCommonSettingsObj from './kbn_serverless_common_settings.devdocs.json'; diff --git a/api_docs/kbn_serverless_observability_settings.mdx b/api_docs/kbn_serverless_observability_settings.mdx index f22449bd2ff32..a9d3c85bdf755 100644 --- a/api_docs/kbn_serverless_observability_settings.mdx +++ b/api_docs/kbn_serverless_observability_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-observability-settings title: "@kbn/serverless-observability-settings" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/serverless-observability-settings plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-observability-settings'] --- import kbnServerlessObservabilitySettingsObj from './kbn_serverless_observability_settings.devdocs.json'; diff --git a/api_docs/kbn_serverless_project_switcher.mdx b/api_docs/kbn_serverless_project_switcher.mdx index 1639c79800039..03d29e7a15fb4 100644 --- a/api_docs/kbn_serverless_project_switcher.mdx +++ b/api_docs/kbn_serverless_project_switcher.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-project-switcher title: "@kbn/serverless-project-switcher" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/serverless-project-switcher plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-project-switcher'] --- import kbnServerlessProjectSwitcherObj from './kbn_serverless_project_switcher.devdocs.json'; diff --git a/api_docs/kbn_serverless_search_settings.mdx b/api_docs/kbn_serverless_search_settings.mdx index c5622f98ddcce..91d880e0e7f31 100644 --- a/api_docs/kbn_serverless_search_settings.mdx +++ b/api_docs/kbn_serverless_search_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-search-settings title: "@kbn/serverless-search-settings" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/serverless-search-settings plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-search-settings'] --- import kbnServerlessSearchSettingsObj from './kbn_serverless_search_settings.devdocs.json'; diff --git a/api_docs/kbn_serverless_security_settings.mdx b/api_docs/kbn_serverless_security_settings.mdx index 98ddc30adddf8..9672e72175807 100644 --- a/api_docs/kbn_serverless_security_settings.mdx +++ b/api_docs/kbn_serverless_security_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-security-settings title: "@kbn/serverless-security-settings" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/serverless-security-settings plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-security-settings'] --- import kbnServerlessSecuritySettingsObj from './kbn_serverless_security_settings.devdocs.json'; diff --git a/api_docs/kbn_serverless_storybook_config.mdx b/api_docs/kbn_serverless_storybook_config.mdx index f185d7748ec36..5be6367ddd8e6 100644 --- a/api_docs/kbn_serverless_storybook_config.mdx +++ b/api_docs/kbn_serverless_storybook_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-storybook-config title: "@kbn/serverless-storybook-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/serverless-storybook-config plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-storybook-config'] --- import kbnServerlessStorybookConfigObj from './kbn_serverless_storybook_config.devdocs.json'; diff --git a/api_docs/kbn_shared_svg.mdx b/api_docs/kbn_shared_svg.mdx index 3d7cef377453f..3815381c8c3a9 100644 --- a/api_docs/kbn_shared_svg.mdx +++ b/api_docs/kbn_shared_svg.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-svg title: "@kbn/shared-svg" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-svg plugin -date: 2023-10-12 +date: 2023-10-13 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 38e3956fe8248..c3a9109cd4edb 100644 --- a/api_docs/kbn_shared_ux_avatar_solution.mdx +++ b/api_docs/kbn_shared_ux_avatar_solution.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-avatar-solution title: "@kbn/shared-ux-avatar-solution" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-avatar-solution plugin -date: 2023-10-12 +date: 2023-10-13 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 b0225725ba35a..7362d0399a9b1 100644 --- a/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx +++ b/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-avatar-user-profile-components title: "@kbn/shared-ux-avatar-user-profile-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-avatar-user-profile-components plugin -date: 2023-10-12 +date: 2023-10-13 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 b31bf3809829b..379435a8d16fe 100644 --- a/api_docs/kbn_shared_ux_button_exit_full_screen.mdx +++ b/api_docs/kbn_shared_ux_button_exit_full_screen.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-exit-full-screen title: "@kbn/shared-ux-button-exit-full-screen" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-exit-full-screen plugin -date: 2023-10-12 +date: 2023-10-13 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 a78640ae94363..8662693d6867a 100644 --- a/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx +++ b/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-exit-full-screen-mocks title: "@kbn/shared-ux-button-exit-full-screen-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-exit-full-screen-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 757d40d2994ce..d9c493c688e2f 100644 --- a/api_docs/kbn_shared_ux_button_toolbar.mdx +++ b/api_docs/kbn_shared_ux_button_toolbar.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-toolbar title: "@kbn/shared-ux-button-toolbar" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-toolbar plugin -date: 2023-10-12 +date: 2023-10-13 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 77af53a2a3c45..6d9cc23183f53 100644 --- a/api_docs/kbn_shared_ux_card_no_data.mdx +++ b/api_docs/kbn_shared_ux_card_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-card-no-data title: "@kbn/shared-ux-card-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-card-no-data plugin -date: 2023-10-12 +date: 2023-10-13 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 6196992776897..8abfa394c2ffb 100644 --- a/api_docs/kbn_shared_ux_card_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_card_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-card-no-data-mocks title: "@kbn/shared-ux-card-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-card-no-data-mocks plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-card-no-data-mocks'] --- import kbnSharedUxCardNoDataMocksObj from './kbn_shared_ux_card_no_data_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_chrome_navigation.mdx b/api_docs/kbn_shared_ux_chrome_navigation.mdx index dd121d5436257..1f9b14e9a6153 100644 --- a/api_docs/kbn_shared_ux_chrome_navigation.mdx +++ b/api_docs/kbn_shared_ux_chrome_navigation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-chrome-navigation title: "@kbn/shared-ux-chrome-navigation" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-chrome-navigation plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-chrome-navigation'] --- import kbnSharedUxChromeNavigationObj from './kbn_shared_ux_chrome_navigation.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_context.mdx b/api_docs/kbn_shared_ux_file_context.mdx index d668621341178..aa8eb3be75b34 100644 --- a/api_docs/kbn_shared_ux_file_context.mdx +++ b/api_docs/kbn_shared_ux_file_context.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-context title: "@kbn/shared-ux-file-context" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-context plugin -date: 2023-10-12 +date: 2023-10-13 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 29d6a6b073bfa..9b5d1de0cb243 100644 --- a/api_docs/kbn_shared_ux_file_image.mdx +++ b/api_docs/kbn_shared_ux_file_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-image title: "@kbn/shared-ux-file-image" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-image plugin -date: 2023-10-12 +date: 2023-10-13 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 cb077c51ad4dd..5abe4cb6efe39 100644 --- a/api_docs/kbn_shared_ux_file_image_mocks.mdx +++ b/api_docs/kbn_shared_ux_file_image_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-image-mocks title: "@kbn/shared-ux-file-image-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-image-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 b1f20e7f3dc4d..10a5876f0fb00 100644 --- a/api_docs/kbn_shared_ux_file_mocks.mdx +++ b/api_docs/kbn_shared_ux_file_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-mocks title: "@kbn/shared-ux-file-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 be15ee86b6cf5..cda82baa2b761 100644 --- a/api_docs/kbn_shared_ux_file_picker.mdx +++ b/api_docs/kbn_shared_ux_file_picker.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-picker title: "@kbn/shared-ux-file-picker" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-picker plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-picker'] --- import kbnSharedUxFilePickerObj from './kbn_shared_ux_file_picker.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_types.mdx b/api_docs/kbn_shared_ux_file_types.mdx index b30003a4ac4de..87d2b7e739d96 100644 --- a/api_docs/kbn_shared_ux_file_types.mdx +++ b/api_docs/kbn_shared_ux_file_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-types title: "@kbn/shared-ux-file-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-types plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-types'] --- import kbnSharedUxFileTypesObj from './kbn_shared_ux_file_types.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_upload.mdx b/api_docs/kbn_shared_ux_file_upload.mdx index 416224b2d1229..491b08c40816c 100644 --- a/api_docs/kbn_shared_ux_file_upload.mdx +++ b/api_docs/kbn_shared_ux_file_upload.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-upload title: "@kbn/shared-ux-file-upload" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-upload plugin -date: 2023-10-12 +date: 2023-10-13 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 91a6b97f22762..2ccc2f0caba6d 100644 --- a/api_docs/kbn_shared_ux_file_util.mdx +++ b/api_docs/kbn_shared_ux_file_util.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-util title: "@kbn/shared-ux-file-util" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-util plugin -date: 2023-10-12 +date: 2023-10-13 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 ecfed475e801f..e0aec17c313ae 100644 --- a/api_docs/kbn_shared_ux_link_redirect_app.mdx +++ b/api_docs/kbn_shared_ux_link_redirect_app.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-link-redirect-app title: "@kbn/shared-ux-link-redirect-app" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-link-redirect-app plugin -date: 2023-10-12 +date: 2023-10-13 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 57aa580df81c8..43740ddfe75fa 100644 --- a/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx +++ b/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-link-redirect-app-mocks title: "@kbn/shared-ux-link-redirect-app-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-link-redirect-app-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 1ffac76253831..c5264d585e59c 100644 --- a/api_docs/kbn_shared_ux_markdown.mdx +++ b/api_docs/kbn_shared_ux_markdown.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-markdown title: "@kbn/shared-ux-markdown" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-markdown plugin -date: 2023-10-12 +date: 2023-10-13 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 a286bf35abc3e..60f5fdd5f87c8 100644 --- a/api_docs/kbn_shared_ux_markdown_mocks.mdx +++ b/api_docs/kbn_shared_ux_markdown_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-markdown-mocks title: "@kbn/shared-ux-markdown-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-markdown-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 8a152db396d8f..fc7c70fc92fd4 100644 --- a/api_docs/kbn_shared_ux_page_analytics_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_analytics_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-analytics-no-data title: "@kbn/shared-ux-page-analytics-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-analytics-no-data plugin -date: 2023-10-12 +date: 2023-10-13 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 3748201bac4e9..349f915bcdf62 100644 --- a/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-analytics-no-data-mocks title: "@kbn/shared-ux-page-analytics-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-analytics-no-data-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 0283ce302d278..f4f6edb9bfbbb 100644 --- a/api_docs/kbn_shared_ux_page_kibana_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-no-data title: "@kbn/shared-ux-page-kibana-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-no-data plugin -date: 2023-10-12 +date: 2023-10-13 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 60eb9ae3be491..ec6138b09fd57 100644 --- a/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-no-data-mocks title: "@kbn/shared-ux-page-kibana-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-no-data-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 7852d196a7e3c..ba1854e912120 100644 --- a/api_docs/kbn_shared_ux_page_kibana_template.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_template.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-template title: "@kbn/shared-ux-page-kibana-template" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-template plugin -date: 2023-10-12 +date: 2023-10-13 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 05523e0edf07e..7d57b6195dc05 100644 --- a/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-template-mocks title: "@kbn/shared-ux-page-kibana-template-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-template-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 34a378e553bd9..c568f768c1661 100644 --- a/api_docs/kbn_shared_ux_page_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data title: "@kbn/shared-ux-page-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data plugin -date: 2023-10-12 +date: 2023-10-13 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 c4f44c3be50b2..e921454628d2c 100644 --- a/api_docs/kbn_shared_ux_page_no_data_config.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-config title: "@kbn/shared-ux-page-no-data-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-config plugin -date: 2023-10-12 +date: 2023-10-13 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 e742224a9153a..7b64db15b7e4d 100644 --- a/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-config-mocks title: "@kbn/shared-ux-page-no-data-config-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-config-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 d2a1ba6e6ffa9..8aaf7dbfbbcd8 100644 --- a/api_docs/kbn_shared_ux_page_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-mocks title: "@kbn/shared-ux-page-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 9646e2a86bf7a..d9a62df779c56 100644 --- a/api_docs/kbn_shared_ux_page_solution_nav.mdx +++ b/api_docs/kbn_shared_ux_page_solution_nav.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-solution-nav title: "@kbn/shared-ux-page-solution-nav" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-solution-nav plugin -date: 2023-10-12 +date: 2023-10-13 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 3fd3ae4be2704..dc0550e61390e 100644 --- a/api_docs/kbn_shared_ux_prompt_no_data_views.mdx +++ b/api_docs/kbn_shared_ux_prompt_no_data_views.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-no-data-views title: "@kbn/shared-ux-prompt-no-data-views" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-no-data-views plugin -date: 2023-10-12 +date: 2023-10-13 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 4e5d581af1e3f..952a4654abb0f 100644 --- a/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx +++ b/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-no-data-views-mocks title: "@kbn/shared-ux-prompt-no-data-views-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-no-data-views-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 c635ff3838a27..d1756bf5f21dd 100644 --- a/api_docs/kbn_shared_ux_prompt_not_found.mdx +++ b/api_docs/kbn_shared_ux_prompt_not_found.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-not-found title: "@kbn/shared-ux-prompt-not-found" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-not-found plugin -date: 2023-10-12 +date: 2023-10-13 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 eb59ebfe39635..91fbb22653a2b 100644 --- a/api_docs/kbn_shared_ux_router.mdx +++ b/api_docs/kbn_shared_ux_router.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-router title: "@kbn/shared-ux-router" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-router plugin -date: 2023-10-12 +date: 2023-10-13 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 972e2a3987e74..038c858b62a18 100644 --- a/api_docs/kbn_shared_ux_router_mocks.mdx +++ b/api_docs/kbn_shared_ux_router_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-router-mocks title: "@kbn/shared-ux-router-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-router-mocks plugin -date: 2023-10-12 +date: 2023-10-13 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 e1d55527c6d58..faa139d420cd5 100644 --- a/api_docs/kbn_shared_ux_storybook_config.mdx +++ b/api_docs/kbn_shared_ux_storybook_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-storybook-config title: "@kbn/shared-ux-storybook-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-storybook-config plugin -date: 2023-10-12 +date: 2023-10-13 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 05c67b7055b99..7c69caf08a170 100644 --- a/api_docs/kbn_shared_ux_storybook_mock.mdx +++ b/api_docs/kbn_shared_ux_storybook_mock.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-storybook-mock title: "@kbn/shared-ux-storybook-mock" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-storybook-mock plugin -date: 2023-10-12 +date: 2023-10-13 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 3c4f53d29abd0..e3d7833963460 100644 --- a/api_docs/kbn_shared_ux_utility.mdx +++ b/api_docs/kbn_shared_ux_utility.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-utility title: "@kbn/shared-ux-utility" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-utility plugin -date: 2023-10-12 +date: 2023-10-13 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 05ee7937756ab..663784b09c593 100644 --- a/api_docs/kbn_slo_schema.mdx +++ b/api_docs/kbn_slo_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-slo-schema title: "@kbn/slo-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/slo-schema plugin -date: 2023-10-12 +date: 2023-10-13 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 b5cfc60c49a4b..a3b8882176c69 100644 --- a/api_docs/kbn_some_dev_log.mdx +++ b/api_docs/kbn_some_dev_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-some-dev-log title: "@kbn/some-dev-log" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/some-dev-log plugin -date: 2023-10-12 +date: 2023-10-13 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 bee45b066efd8..a02aac657ff06 100644 --- a/api_docs/kbn_std.mdx +++ b/api_docs/kbn_std.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-std title: "@kbn/std" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/std plugin -date: 2023-10-12 +date: 2023-10-13 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 97e83ba5ee2a7..6064036234f28 100644 --- a/api_docs/kbn_stdio_dev_helpers.mdx +++ b/api_docs/kbn_stdio_dev_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-stdio-dev-helpers title: "@kbn/stdio-dev-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/stdio-dev-helpers plugin -date: 2023-10-12 +date: 2023-10-13 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 0278aa2e71b75..2746e31e5ae0b 100644 --- a/api_docs/kbn_storybook.mdx +++ b/api_docs/kbn_storybook.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-storybook title: "@kbn/storybook" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/storybook plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/storybook'] --- import kbnStorybookObj from './kbn_storybook.devdocs.json'; diff --git a/api_docs/kbn_subscription_tracking.mdx b/api_docs/kbn_subscription_tracking.mdx index 601d5d4af9e74..fc1df3c28ab2b 100644 --- a/api_docs/kbn_subscription_tracking.mdx +++ b/api_docs/kbn_subscription_tracking.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-subscription-tracking title: "@kbn/subscription-tracking" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/subscription-tracking plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/subscription-tracking'] --- import kbnSubscriptionTrackingObj from './kbn_subscription_tracking.devdocs.json'; diff --git a/api_docs/kbn_telemetry_tools.mdx b/api_docs/kbn_telemetry_tools.mdx index 1d10313dd8ada..80bb2a0ac7e3d 100644 --- a/api_docs/kbn_telemetry_tools.mdx +++ b/api_docs/kbn_telemetry_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-telemetry-tools title: "@kbn/telemetry-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/telemetry-tools plugin -date: 2023-10-12 +date: 2023-10-13 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 341b7349366d1..0d4709dd82849 100644 --- a/api_docs/kbn_test.mdx +++ b/api_docs/kbn_test.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test title: "@kbn/test" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test plugin -date: 2023-10-12 +date: 2023-10-13 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 d5842b6b6c810..8e92fe5b15c52 100644 --- a/api_docs/kbn_test_jest_helpers.mdx +++ b/api_docs/kbn_test_jest_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-jest-helpers title: "@kbn/test-jest-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test-jest-helpers plugin -date: 2023-10-12 +date: 2023-10-13 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 4a408d9553b83..6fe10e8401012 100644 --- a/api_docs/kbn_test_subj_selector.mdx +++ b/api_docs/kbn_test_subj_selector.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-subj-selector title: "@kbn/test-subj-selector" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test-subj-selector plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test-subj-selector'] --- import kbnTestSubjSelectorObj from './kbn_test_subj_selector.devdocs.json'; diff --git a/api_docs/kbn_text_based_editor.mdx b/api_docs/kbn_text_based_editor.mdx index 76dab3c15e345..0860d723e700b 100644 --- a/api_docs/kbn_text_based_editor.mdx +++ b/api_docs/kbn_text_based_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-text-based-editor title: "@kbn/text-based-editor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/text-based-editor plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/text-based-editor'] --- import kbnTextBasedEditorObj from './kbn_text_based_editor.devdocs.json'; diff --git a/api_docs/kbn_tooling_log.mdx b/api_docs/kbn_tooling_log.mdx index 07fd2e31bf8d1..ae59e6ec72d5a 100644 --- a/api_docs/kbn_tooling_log.mdx +++ b/api_docs/kbn_tooling_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-tooling-log title: "@kbn/tooling-log" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/tooling-log plugin -date: 2023-10-12 +date: 2023-10-13 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 769b1f459c00b..eaef648842edd 100644 --- a/api_docs/kbn_ts_projects.mdx +++ b/api_docs/kbn_ts_projects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ts-projects title: "@kbn/ts-projects" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ts-projects plugin -date: 2023-10-12 +date: 2023-10-13 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 25f0425261175..c86a50c136500 100644 --- a/api_docs/kbn_typed_react_router_config.mdx +++ b/api_docs/kbn_typed_react_router_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-typed-react-router-config title: "@kbn/typed-react-router-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/typed-react-router-config plugin -date: 2023-10-12 +date: 2023-10-13 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 c343b77f1f742..bc56fbcbd18f9 100644 --- a/api_docs/kbn_ui_actions_browser.mdx +++ b/api_docs/kbn_ui_actions_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-actions-browser title: "@kbn/ui-actions-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-actions-browser plugin -date: 2023-10-12 +date: 2023-10-13 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 bffa40c20c575..f00b394f320e6 100644 --- a/api_docs/kbn_ui_shared_deps_src.mdx +++ b/api_docs/kbn_ui_shared_deps_src.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-shared-deps-src title: "@kbn/ui-shared-deps-src" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-shared-deps-src plugin -date: 2023-10-12 +date: 2023-10-13 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 b67300e2e979c..ad93fb0fc29f0 100644 --- a/api_docs/kbn_ui_theme.mdx +++ b/api_docs/kbn_ui_theme.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-theme title: "@kbn/ui-theme" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-theme plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-theme'] --- import kbnUiThemeObj from './kbn_ui_theme.devdocs.json'; diff --git a/api_docs/kbn_unified_data_table.mdx b/api_docs/kbn_unified_data_table.mdx index 220c320aaf92f..6c973b652d9e8 100644 --- a/api_docs/kbn_unified_data_table.mdx +++ b/api_docs/kbn_unified_data_table.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-unified-data-table title: "@kbn/unified-data-table" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/unified-data-table plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unified-data-table'] --- import kbnUnifiedDataTableObj from './kbn_unified_data_table.devdocs.json'; diff --git a/api_docs/kbn_unified_doc_viewer.mdx b/api_docs/kbn_unified_doc_viewer.mdx index 99e06213b6fee..0f62e52feb7a5 100644 --- a/api_docs/kbn_unified_doc_viewer.mdx +++ b/api_docs/kbn_unified_doc_viewer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-unified-doc-viewer title: "@kbn/unified-doc-viewer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/unified-doc-viewer plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unified-doc-viewer'] --- import kbnUnifiedDocViewerObj from './kbn_unified_doc_viewer.devdocs.json'; diff --git a/api_docs/kbn_unified_field_list.mdx b/api_docs/kbn_unified_field_list.mdx index 720240641e917..4bc684c6d6f68 100644 --- a/api_docs/kbn_unified_field_list.mdx +++ b/api_docs/kbn_unified_field_list.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-unified-field-list title: "@kbn/unified-field-list" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/unified-field-list plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unified-field-list'] --- import kbnUnifiedFieldListObj from './kbn_unified_field_list.devdocs.json'; diff --git a/api_docs/kbn_url_state.mdx b/api_docs/kbn_url_state.mdx index 94c8a7ccd97cd..c6d4e5accc08f 100644 --- a/api_docs/kbn_url_state.mdx +++ b/api_docs/kbn_url_state.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-url-state title: "@kbn/url-state" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/url-state plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/url-state'] --- import kbnUrlStateObj from './kbn_url_state.devdocs.json'; diff --git a/api_docs/kbn_use_tracked_promise.mdx b/api_docs/kbn_use_tracked_promise.mdx index 8e0e1bbd13e8f..5037e224aaf89 100644 --- a/api_docs/kbn_use_tracked_promise.mdx +++ b/api_docs/kbn_use_tracked_promise.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-use-tracked-promise title: "@kbn/use-tracked-promise" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/use-tracked-promise plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/use-tracked-promise'] --- import kbnUseTrackedPromiseObj from './kbn_use_tracked_promise.devdocs.json'; diff --git a/api_docs/kbn_user_profile_components.mdx b/api_docs/kbn_user_profile_components.mdx index f2da7cca2192a..a6422cdd78882 100644 --- a/api_docs/kbn_user_profile_components.mdx +++ b/api_docs/kbn_user_profile_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-user-profile-components title: "@kbn/user-profile-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/user-profile-components plugin -date: 2023-10-12 +date: 2023-10-13 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 9000c8077f0f7..af754ce6811af 100644 --- a/api_docs/kbn_utility_types.mdx +++ b/api_docs/kbn_utility_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utility-types title: "@kbn/utility-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utility-types plugin -date: 2023-10-12 +date: 2023-10-13 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 71bf95fa623de..558ff8b63fbf5 100644 --- a/api_docs/kbn_utility_types_jest.mdx +++ b/api_docs/kbn_utility_types_jest.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utility-types-jest title: "@kbn/utility-types-jest" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utility-types-jest plugin -date: 2023-10-12 +date: 2023-10-13 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 993cb995329aa..683ab330db2bf 100644 --- a/api_docs/kbn_utils.mdx +++ b/api_docs/kbn_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utils title: "@kbn/utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utils plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/utils'] --- import kbnUtilsObj from './kbn_utils.devdocs.json'; diff --git a/api_docs/kbn_visualization_ui_components.mdx b/api_docs/kbn_visualization_ui_components.mdx index ad98d61b72f2c..7d7bf111df786 100644 --- a/api_docs/kbn_visualization_ui_components.mdx +++ b/api_docs/kbn_visualization_ui_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-visualization-ui-components title: "@kbn/visualization-ui-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/visualization-ui-components plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/visualization-ui-components'] --- import kbnVisualizationUiComponentsObj from './kbn_visualization_ui_components.devdocs.json'; diff --git a/api_docs/kbn_xstate_utils.mdx b/api_docs/kbn_xstate_utils.mdx index 4ec075139fec5..1cf5cbf55219f 100644 --- a/api_docs/kbn_xstate_utils.mdx +++ b/api_docs/kbn_xstate_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-xstate-utils title: "@kbn/xstate-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/xstate-utils plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/xstate-utils'] --- import kbnXstateUtilsObj from './kbn_xstate_utils.devdocs.json'; diff --git a/api_docs/kbn_yarn_lock_validator.mdx b/api_docs/kbn_yarn_lock_validator.mdx index 523101dd8ea70..94bc18be12643 100644 --- a/api_docs/kbn_yarn_lock_validator.mdx +++ b/api_docs/kbn_yarn_lock_validator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-yarn-lock-validator title: "@kbn/yarn-lock-validator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/yarn-lock-validator plugin -date: 2023-10-12 +date: 2023-10-13 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 86815824b5d4b..4816b7a229250 100644 --- a/api_docs/kibana_overview.mdx +++ b/api_docs/kibana_overview.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaOverview title: "kibanaOverview" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaOverview plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaOverview'] --- import kibanaOverviewObj from './kibana_overview.devdocs.json'; diff --git a/api_docs/kibana_react.mdx b/api_docs/kibana_react.mdx index 88544b39e09dd..8d909f29cd49c 100644 --- a/api_docs/kibana_react.mdx +++ b/api_docs/kibana_react.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaReact title: "kibanaReact" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaReact plugin -date: 2023-10-12 +date: 2023-10-13 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 46f1b0d56b71c..f2ee0ec66d85b 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-10-12 +date: 2023-10-13 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 0576cd4390e3a..cb953b15d4551 100644 --- a/api_docs/kubernetes_security.mdx +++ b/api_docs/kubernetes_security.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kubernetesSecurity title: "kubernetesSecurity" image: https://source.unsplash.com/400x175/?github description: API docs for the kubernetesSecurity plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kubernetesSecurity'] --- import kubernetesSecurityObj from './kubernetes_security.devdocs.json'; diff --git a/api_docs/lens.mdx b/api_docs/lens.mdx index ccfbf5bdfc144..0cf2453f74b88 100644 --- a/api_docs/lens.mdx +++ b/api_docs/lens.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/lens title: "lens" image: https://source.unsplash.com/400x175/?github description: API docs for the lens plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'lens'] --- import lensObj from './lens.devdocs.json'; diff --git a/api_docs/license_api_guard.mdx b/api_docs/license_api_guard.mdx index 9e2c0798a9dfa..7ba97f64caa85 100644 --- a/api_docs/license_api_guard.mdx +++ b/api_docs/license_api_guard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licenseApiGuard title: "licenseApiGuard" image: https://source.unsplash.com/400x175/?github description: API docs for the licenseApiGuard plugin -date: 2023-10-12 +date: 2023-10-13 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 071ab36722b96..b1c760033e8df 100644 --- a/api_docs/license_management.mdx +++ b/api_docs/license_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licenseManagement title: "licenseManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the licenseManagement plugin -date: 2023-10-12 +date: 2023-10-13 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 8ab626ae32330..0a04fab7f374c 100644 --- a/api_docs/licensing.mdx +++ b/api_docs/licensing.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licensing title: "licensing" image: https://source.unsplash.com/400x175/?github description: API docs for the licensing plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'licensing'] --- import licensingObj from './licensing.devdocs.json'; diff --git a/api_docs/links.mdx b/api_docs/links.mdx index ad4a8f41d9431..300854ed209a2 100644 --- a/api_docs/links.mdx +++ b/api_docs/links.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/links title: "links" image: https://source.unsplash.com/400x175/?github description: API docs for the links plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'links'] --- import linksObj from './links.devdocs.json'; diff --git a/api_docs/lists.mdx b/api_docs/lists.mdx index fc5b91ac899cc..63e4fcf8f0640 100644 --- a/api_docs/lists.mdx +++ b/api_docs/lists.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/lists title: "lists" image: https://source.unsplash.com/400x175/?github description: API docs for the lists plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'lists'] --- import listsObj from './lists.devdocs.json'; diff --git a/api_docs/log_explorer.mdx b/api_docs/log_explorer.mdx index 588e152c947a5..ebee0dbe48cc7 100644 --- a/api_docs/log_explorer.mdx +++ b/api_docs/log_explorer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/logExplorer title: "logExplorer" image: https://source.unsplash.com/400x175/?github description: API docs for the logExplorer plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'logExplorer'] --- import logExplorerObj from './log_explorer.devdocs.json'; diff --git a/api_docs/logs_shared.mdx b/api_docs/logs_shared.mdx index a84dd66b12266..8685b73e5b78c 100644 --- a/api_docs/logs_shared.mdx +++ b/api_docs/logs_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/logsShared title: "logsShared" image: https://source.unsplash.com/400x175/?github description: API docs for the logsShared plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'logsShared'] --- import logsSharedObj from './logs_shared.devdocs.json'; diff --git a/api_docs/management.mdx b/api_docs/management.mdx index 7d07dea0a3c63..e3b10d70aa9cb 100644 --- a/api_docs/management.mdx +++ b/api_docs/management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/management title: "management" image: https://source.unsplash.com/400x175/?github description: API docs for the management plugin -date: 2023-10-12 +date: 2023-10-13 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 a2d2c2658ac64..23546fd5cb45a 100644 --- a/api_docs/maps.mdx +++ b/api_docs/maps.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/maps title: "maps" image: https://source.unsplash.com/400x175/?github description: API docs for the maps plugin -date: 2023-10-12 +date: 2023-10-13 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 65198dfdf4de8..dfcae06dd3a02 100644 --- a/api_docs/maps_ems.mdx +++ b/api_docs/maps_ems.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/mapsEms title: "mapsEms" image: https://source.unsplash.com/400x175/?github description: API docs for the mapsEms plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'mapsEms'] --- import mapsEmsObj from './maps_ems.devdocs.json'; diff --git a/api_docs/metrics_data_access.mdx b/api_docs/metrics_data_access.mdx index 4314939727689..2cbaf4ca92982 100644 --- a/api_docs/metrics_data_access.mdx +++ b/api_docs/metrics_data_access.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/metricsDataAccess title: "metricsDataAccess" image: https://source.unsplash.com/400x175/?github description: API docs for the metricsDataAccess plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'metricsDataAccess'] --- import metricsDataAccessObj from './metrics_data_access.devdocs.json'; diff --git a/api_docs/ml.mdx b/api_docs/ml.mdx index aae7731d68c04..bf8d214e70405 100644 --- a/api_docs/ml.mdx +++ b/api_docs/ml.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ml title: "ml" image: https://source.unsplash.com/400x175/?github description: API docs for the ml plugin -date: 2023-10-12 +date: 2023-10-13 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 c095c5f60b86d..f0916edad26b2 100644 --- a/api_docs/monitoring.mdx +++ b/api_docs/monitoring.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/monitoring title: "monitoring" image: https://source.unsplash.com/400x175/?github description: API docs for the monitoring plugin -date: 2023-10-12 +date: 2023-10-13 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 6de3b6d3dacce..d0e9e02ce16d5 100644 --- a/api_docs/monitoring_collection.mdx +++ b/api_docs/monitoring_collection.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/monitoringCollection title: "monitoringCollection" image: https://source.unsplash.com/400x175/?github description: API docs for the monitoringCollection plugin -date: 2023-10-12 +date: 2023-10-13 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 b2f93328ae669..b9a369129a46e 100644 --- a/api_docs/navigation.mdx +++ b/api_docs/navigation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/navigation title: "navigation" image: https://source.unsplash.com/400x175/?github description: API docs for the navigation plugin -date: 2023-10-12 +date: 2023-10-13 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 47c0ddf5f51a8..02cc3b802621f 100644 --- a/api_docs/newsfeed.mdx +++ b/api_docs/newsfeed.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/newsfeed title: "newsfeed" image: https://source.unsplash.com/400x175/?github description: API docs for the newsfeed plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'newsfeed'] --- import newsfeedObj from './newsfeed.devdocs.json'; diff --git a/api_docs/no_data_page.mdx b/api_docs/no_data_page.mdx index 9c60dc85ae361..afdcec8eb8ea4 100644 --- a/api_docs/no_data_page.mdx +++ b/api_docs/no_data_page.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/noDataPage title: "noDataPage" image: https://source.unsplash.com/400x175/?github description: API docs for the noDataPage plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'noDataPage'] --- import noDataPageObj from './no_data_page.devdocs.json'; diff --git a/api_docs/notifications.mdx b/api_docs/notifications.mdx index 184c73ff72371..caf8772883755 100644 --- a/api_docs/notifications.mdx +++ b/api_docs/notifications.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/notifications title: "notifications" image: https://source.unsplash.com/400x175/?github description: API docs for the notifications plugin -date: 2023-10-12 +date: 2023-10-13 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 f8c697f34d271..406b1a7758854 100644 --- a/api_docs/observability.mdx +++ b/api_docs/observability.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observability title: "observability" image: https://source.unsplash.com/400x175/?github description: API docs for the observability plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observability'] --- import observabilityObj from './observability.devdocs.json'; diff --git a/api_docs/observability_a_i_assistant.mdx b/api_docs/observability_a_i_assistant.mdx index 645fa6fa84d09..ad0c28c661779 100644 --- a/api_docs/observability_a_i_assistant.mdx +++ b/api_docs/observability_a_i_assistant.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityAIAssistant title: "observabilityAIAssistant" image: https://source.unsplash.com/400x175/?github description: API docs for the observabilityAIAssistant plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityAIAssistant'] --- import observabilityAIAssistantObj from './observability_a_i_assistant.devdocs.json'; diff --git a/api_docs/observability_log_explorer.mdx b/api_docs/observability_log_explorer.mdx index b8a65a08425d4..785491ab3d56f 100644 --- a/api_docs/observability_log_explorer.mdx +++ b/api_docs/observability_log_explorer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityLogExplorer title: "observabilityLogExplorer" image: https://source.unsplash.com/400x175/?github description: API docs for the observabilityLogExplorer plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityLogExplorer'] --- import observabilityLogExplorerObj from './observability_log_explorer.devdocs.json'; diff --git a/api_docs/observability_onboarding.mdx b/api_docs/observability_onboarding.mdx index 0cc5018944f8a..65abccdb2725f 100644 --- a/api_docs/observability_onboarding.mdx +++ b/api_docs/observability_onboarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityOnboarding title: "observabilityOnboarding" image: https://source.unsplash.com/400x175/?github description: API docs for the observabilityOnboarding plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityOnboarding'] --- import observabilityOnboardingObj from './observability_onboarding.devdocs.json'; diff --git a/api_docs/observability_shared.mdx b/api_docs/observability_shared.mdx index 3636997b7091a..c2727f378fc83 100644 --- a/api_docs/observability_shared.mdx +++ b/api_docs/observability_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityShared title: "observabilityShared" image: https://source.unsplash.com/400x175/?github description: API docs for the observabilityShared plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityShared'] --- import observabilitySharedObj from './observability_shared.devdocs.json'; diff --git a/api_docs/osquery.mdx b/api_docs/osquery.mdx index 817b0ee022338..0ee9afde4b3d4 100644 --- a/api_docs/osquery.mdx +++ b/api_docs/osquery.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/osquery title: "osquery" image: https://source.unsplash.com/400x175/?github description: API docs for the osquery plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'osquery'] --- import osqueryObj from './osquery.devdocs.json'; diff --git a/api_docs/painless_lab.mdx b/api_docs/painless_lab.mdx index 64eb42ae0d6a9..49eaa09865613 100644 --- a/api_docs/painless_lab.mdx +++ b/api_docs/painless_lab.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/painlessLab title: "painlessLab" image: https://source.unsplash.com/400x175/?github description: API docs for the painlessLab plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'painlessLab'] --- import painlessLabObj from './painless_lab.devdocs.json'; diff --git a/api_docs/plugin_directory.mdx b/api_docs/plugin_directory.mdx index d69da85e90f37..0249c29154560 100644 --- a/api_docs/plugin_directory.mdx +++ b/api_docs/plugin_directory.mdx @@ -7,7 +7,7 @@ id: kibDevDocsPluginDirectory slug: /kibana-dev-docs/api-meta/plugin-api-directory title: Directory description: Directory of public APIs available through plugins or packages. -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/presentation_util.mdx b/api_docs/presentation_util.mdx index a0227b461e49c..374dffc956d22 100644 --- a/api_docs/presentation_util.mdx +++ b/api_docs/presentation_util.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/presentationUtil title: "presentationUtil" image: https://source.unsplash.com/400x175/?github description: API docs for the presentationUtil plugin -date: 2023-10-12 +date: 2023-10-13 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 dd6adf35fdcde..99627e5d8dc83 100644 --- a/api_docs/profiling.mdx +++ b/api_docs/profiling.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/profiling title: "profiling" image: https://source.unsplash.com/400x175/?github description: API docs for the profiling plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'profiling'] --- import profilingObj from './profiling.devdocs.json'; diff --git a/api_docs/profiling_data_access.mdx b/api_docs/profiling_data_access.mdx index a9ad49bb6fe76..851fe998ea03c 100644 --- a/api_docs/profiling_data_access.mdx +++ b/api_docs/profiling_data_access.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/profilingDataAccess title: "profilingDataAccess" image: https://source.unsplash.com/400x175/?github description: API docs for the profilingDataAccess plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'profilingDataAccess'] --- import profilingDataAccessObj from './profiling_data_access.devdocs.json'; diff --git a/api_docs/remote_clusters.mdx b/api_docs/remote_clusters.mdx index d60d97c3f9d07..1ee1a3e18796a 100644 --- a/api_docs/remote_clusters.mdx +++ b/api_docs/remote_clusters.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/remoteClusters title: "remoteClusters" image: https://source.unsplash.com/400x175/?github description: API docs for the remoteClusters plugin -date: 2023-10-12 +date: 2023-10-13 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 1a6d09106790d..50e69f56c7ad2 100644 --- a/api_docs/reporting.mdx +++ b/api_docs/reporting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/reporting title: "reporting" image: https://source.unsplash.com/400x175/?github description: API docs for the reporting plugin -date: 2023-10-12 +date: 2023-10-13 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 8522b07105ac1..708bdee82dd53 100644 --- a/api_docs/rollup.mdx +++ b/api_docs/rollup.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/rollup title: "rollup" image: https://source.unsplash.com/400x175/?github description: API docs for the rollup plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'rollup'] --- import rollupObj from './rollup.devdocs.json'; diff --git a/api_docs/rule_registry.mdx b/api_docs/rule_registry.mdx index 0d6efc556a89c..198f18e79f134 100644 --- a/api_docs/rule_registry.mdx +++ b/api_docs/rule_registry.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ruleRegistry title: "ruleRegistry" image: https://source.unsplash.com/400x175/?github description: API docs for the ruleRegistry plugin -date: 2023-10-12 +date: 2023-10-13 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 cdb17a7b45d17..03b6466297a49 100644 --- a/api_docs/runtime_fields.mdx +++ b/api_docs/runtime_fields.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/runtimeFields title: "runtimeFields" image: https://source.unsplash.com/400x175/?github description: API docs for the runtimeFields plugin -date: 2023-10-12 +date: 2023-10-13 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 60f27fa95210c..51668f5557d77 100644 --- a/api_docs/saved_objects.mdx +++ b/api_docs/saved_objects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjects title: "savedObjects" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjects plugin -date: 2023-10-12 +date: 2023-10-13 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 18ccdb71c2601..98be04de9aac4 100644 --- a/api_docs/saved_objects_finder.mdx +++ b/api_docs/saved_objects_finder.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsFinder title: "savedObjectsFinder" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsFinder plugin -date: 2023-10-12 +date: 2023-10-13 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 e07e39d485ae7..214327fcf1d03 100644 --- a/api_docs/saved_objects_management.mdx +++ b/api_docs/saved_objects_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsManagement title: "savedObjectsManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsManagement plugin -date: 2023-10-12 +date: 2023-10-13 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 3d028f17bbdb7..042dc9d006f25 100644 --- a/api_docs/saved_objects_tagging.mdx +++ b/api_docs/saved_objects_tagging.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsTagging title: "savedObjectsTagging" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsTagging plugin -date: 2023-10-12 +date: 2023-10-13 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 64d3e60fa06ec..f9d02e1ee5511 100644 --- a/api_docs/saved_objects_tagging_oss.mdx +++ b/api_docs/saved_objects_tagging_oss.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsTaggingOss title: "savedObjectsTaggingOss" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsTaggingOss plugin -date: 2023-10-12 +date: 2023-10-13 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 33220bc86ecf1..41d19e53be7d7 100644 --- a/api_docs/saved_search.mdx +++ b/api_docs/saved_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedSearch title: "savedSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the savedSearch plugin -date: 2023-10-12 +date: 2023-10-13 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 30f8f777e90a8..f8e045aeeb5c4 100644 --- a/api_docs/screenshot_mode.mdx +++ b/api_docs/screenshot_mode.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/screenshotMode title: "screenshotMode" image: https://source.unsplash.com/400x175/?github description: API docs for the screenshotMode plugin -date: 2023-10-12 +date: 2023-10-13 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 15184e6720d2b..f799695f67c26 100644 --- a/api_docs/screenshotting.mdx +++ b/api_docs/screenshotting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/screenshotting title: "screenshotting" image: https://source.unsplash.com/400x175/?github description: API docs for the screenshotting plugin -date: 2023-10-12 +date: 2023-10-13 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 3fadede6ec99a..9ded21e910927 100644 --- a/api_docs/security.mdx +++ b/api_docs/security.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/security title: "security" image: https://source.unsplash.com/400x175/?github description: API docs for the security plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'security'] --- import securityObj from './security.devdocs.json'; diff --git a/api_docs/security_solution.devdocs.json b/api_docs/security_solution.devdocs.json index 26d27039d53cd..c3b91882ebc81 100644 --- a/api_docs/security_solution.devdocs.json +++ b/api_docs/security_solution.devdocs.json @@ -101,7 +101,7 @@ "label": "experimentalFeatures", "description": [], "signature": [ - "{ readonly tGridEnabled: boolean; readonly tGridEventRenderedViewEnabled: boolean; readonly excludePoliciesInFilterEnabled: boolean; readonly kubernetesEnabled: boolean; readonly chartEmbeddablesEnabled: boolean; readonly donutChartEmbeddablesEnabled: boolean; readonly alertsPreviewChartEmbeddablesEnabled: boolean; readonly previewTelemetryUrlEnabled: boolean; readonly insightsRelatedAlertsByProcessAncestry: boolean; readonly extendedRuleExecutionLoggingEnabled: boolean; readonly socTrendsEnabled: boolean; readonly responseActionsEnabled: boolean; readonly endpointResponseActionsEnabled: boolean; readonly alertDetailsPageEnabled: boolean; readonly responseActionUploadEnabled: boolean; readonly alertsPageChartsEnabled: boolean; readonly alertTypeEnabled: boolean; readonly alertsPageFiltersEnabled: boolean; readonly assistantModelEvaluation: boolean; readonly newUserDetailsFlyout: boolean; readonly riskScoringPersistence: boolean; readonly riskScoringRoutesEnabled: boolean; readonly discoverInTimeline: boolean; readonly esqlRulesDisabled: boolean; readonly protectionUpdatesEnabled: boolean; }" + "{ readonly tGridEnabled: boolean; readonly tGridEventRenderedViewEnabled: boolean; readonly excludePoliciesInFilterEnabled: boolean; readonly kubernetesEnabled: boolean; readonly chartEmbeddablesEnabled: boolean; readonly donutChartEmbeddablesEnabled: boolean; readonly alertsPreviewChartEmbeddablesEnabled: boolean; readonly previewTelemetryUrlEnabled: boolean; readonly insightsRelatedAlertsByProcessAncestry: boolean; readonly extendedRuleExecutionLoggingEnabled: boolean; readonly socTrendsEnabled: boolean; readonly responseActionsEnabled: boolean; readonly endpointResponseActionsEnabled: boolean; readonly alertDetailsPageEnabled: boolean; readonly responseActionUploadEnabled: boolean; readonly alertsPageChartsEnabled: boolean; readonly alertTypeEnabled: boolean; readonly alertsPageFiltersEnabled: boolean; readonly assistantModelEvaluation: boolean; readonly newUserDetailsFlyout: boolean; readonly riskScoringPersistence: boolean; readonly riskScoringRoutesEnabled: boolean; readonly esqlRulesDisabled: boolean; readonly protectionUpdatesEnabled: boolean; }" ], "path": "x-pack/plugins/security_solution/public/plugin.tsx", "deprecated": false, @@ -494,7 +494,7 @@ "\nExperimental flag needed to enable the link" ], "signature": [ - "\"tGridEnabled\" | \"tGridEventRenderedViewEnabled\" | \"excludePoliciesInFilterEnabled\" | \"kubernetesEnabled\" | \"chartEmbeddablesEnabled\" | \"donutChartEmbeddablesEnabled\" | \"alertsPreviewChartEmbeddablesEnabled\" | \"previewTelemetryUrlEnabled\" | \"insightsRelatedAlertsByProcessAncestry\" | \"extendedRuleExecutionLoggingEnabled\" | \"socTrendsEnabled\" | \"responseActionsEnabled\" | \"endpointResponseActionsEnabled\" | \"alertDetailsPageEnabled\" | \"responseActionUploadEnabled\" | \"alertsPageChartsEnabled\" | \"alertTypeEnabled\" | \"alertsPageFiltersEnabled\" | \"assistantModelEvaluation\" | \"newUserDetailsFlyout\" | \"riskScoringPersistence\" | \"riskScoringRoutesEnabled\" | \"discoverInTimeline\" | \"esqlRulesDisabled\" | \"protectionUpdatesEnabled\" | undefined" + "\"tGridEnabled\" | \"tGridEventRenderedViewEnabled\" | \"excludePoliciesInFilterEnabled\" | \"kubernetesEnabled\" | \"chartEmbeddablesEnabled\" | \"donutChartEmbeddablesEnabled\" | \"alertsPreviewChartEmbeddablesEnabled\" | \"previewTelemetryUrlEnabled\" | \"insightsRelatedAlertsByProcessAncestry\" | \"extendedRuleExecutionLoggingEnabled\" | \"socTrendsEnabled\" | \"responseActionsEnabled\" | \"endpointResponseActionsEnabled\" | \"alertDetailsPageEnabled\" | \"responseActionUploadEnabled\" | \"alertsPageChartsEnabled\" | \"alertTypeEnabled\" | \"alertsPageFiltersEnabled\" | \"assistantModelEvaluation\" | \"newUserDetailsFlyout\" | \"riskScoringPersistence\" | \"riskScoringRoutesEnabled\" | \"esqlRulesDisabled\" | \"protectionUpdatesEnabled\" | undefined" ], "path": "x-pack/plugins/security_solution/public/common/links/types.ts", "deprecated": false, @@ -574,7 +574,7 @@ "\nExperimental flag needed to disable the link. Opposite of experimentalKey" ], "signature": [ - "\"tGridEnabled\" | \"tGridEventRenderedViewEnabled\" | \"excludePoliciesInFilterEnabled\" | \"kubernetesEnabled\" | \"chartEmbeddablesEnabled\" | \"donutChartEmbeddablesEnabled\" | \"alertsPreviewChartEmbeddablesEnabled\" | \"previewTelemetryUrlEnabled\" | \"insightsRelatedAlertsByProcessAncestry\" | \"extendedRuleExecutionLoggingEnabled\" | \"socTrendsEnabled\" | \"responseActionsEnabled\" | \"endpointResponseActionsEnabled\" | \"alertDetailsPageEnabled\" | \"responseActionUploadEnabled\" | \"alertsPageChartsEnabled\" | \"alertTypeEnabled\" | \"alertsPageFiltersEnabled\" | \"assistantModelEvaluation\" | \"newUserDetailsFlyout\" | \"riskScoringPersistence\" | \"riskScoringRoutesEnabled\" | \"discoverInTimeline\" | \"esqlRulesDisabled\" | \"protectionUpdatesEnabled\" | undefined" + "\"tGridEnabled\" | \"tGridEventRenderedViewEnabled\" | \"excludePoliciesInFilterEnabled\" | \"kubernetesEnabled\" | \"chartEmbeddablesEnabled\" | \"donutChartEmbeddablesEnabled\" | \"alertsPreviewChartEmbeddablesEnabled\" | \"previewTelemetryUrlEnabled\" | \"insightsRelatedAlertsByProcessAncestry\" | \"extendedRuleExecutionLoggingEnabled\" | \"socTrendsEnabled\" | \"responseActionsEnabled\" | \"endpointResponseActionsEnabled\" | \"alertDetailsPageEnabled\" | \"responseActionUploadEnabled\" | \"alertsPageChartsEnabled\" | \"alertTypeEnabled\" | \"alertsPageFiltersEnabled\" | \"assistantModelEvaluation\" | \"newUserDetailsFlyout\" | \"riskScoringPersistence\" | \"riskScoringRoutesEnabled\" | \"esqlRulesDisabled\" | \"protectionUpdatesEnabled\" | undefined" ], "path": "x-pack/plugins/security_solution/public/common/links/types.ts", "deprecated": false, @@ -1511,7 +1511,7 @@ "ExpandedDetailType", " | undefined; securityAssistant?: ", "ExpandedDetailType", - " | undefined; discover?: ", + " | undefined; esql?: ", "ExpandedDetailType", " | undefined; }" ], @@ -1791,7 +1791,7 @@ "label": "experimentalFeatures", "description": [], "signature": [ - "{ readonly tGridEnabled: boolean; readonly tGridEventRenderedViewEnabled: boolean; readonly excludePoliciesInFilterEnabled: boolean; readonly kubernetesEnabled: boolean; readonly chartEmbeddablesEnabled: boolean; readonly donutChartEmbeddablesEnabled: boolean; readonly alertsPreviewChartEmbeddablesEnabled: boolean; readonly previewTelemetryUrlEnabled: boolean; readonly insightsRelatedAlertsByProcessAncestry: boolean; readonly extendedRuleExecutionLoggingEnabled: boolean; readonly socTrendsEnabled: boolean; readonly responseActionsEnabled: boolean; readonly endpointResponseActionsEnabled: boolean; readonly alertDetailsPageEnabled: boolean; readonly responseActionUploadEnabled: boolean; readonly alertsPageChartsEnabled: boolean; readonly alertTypeEnabled: boolean; readonly alertsPageFiltersEnabled: boolean; readonly assistantModelEvaluation: boolean; readonly newUserDetailsFlyout: boolean; readonly riskScoringPersistence: boolean; readonly riskScoringRoutesEnabled: boolean; readonly discoverInTimeline: boolean; readonly esqlRulesDisabled: boolean; readonly protectionUpdatesEnabled: boolean; }" + "{ readonly tGridEnabled: boolean; readonly tGridEventRenderedViewEnabled: boolean; readonly excludePoliciesInFilterEnabled: boolean; readonly kubernetesEnabled: boolean; readonly chartEmbeddablesEnabled: boolean; readonly donutChartEmbeddablesEnabled: boolean; readonly alertsPreviewChartEmbeddablesEnabled: boolean; readonly previewTelemetryUrlEnabled: boolean; readonly insightsRelatedAlertsByProcessAncestry: boolean; readonly extendedRuleExecutionLoggingEnabled: boolean; readonly socTrendsEnabled: boolean; readonly responseActionsEnabled: boolean; readonly endpointResponseActionsEnabled: boolean; readonly alertDetailsPageEnabled: boolean; readonly responseActionUploadEnabled: boolean; readonly alertsPageChartsEnabled: boolean; readonly alertTypeEnabled: boolean; readonly alertsPageFiltersEnabled: boolean; readonly assistantModelEvaluation: boolean; readonly newUserDetailsFlyout: boolean; readonly riskScoringPersistence: boolean; readonly riskScoringRoutesEnabled: boolean; readonly esqlRulesDisabled: boolean; readonly protectionUpdatesEnabled: boolean; }" ], "path": "x-pack/plugins/security_solution/public/types.ts", "deprecated": false, @@ -2864,7 +2864,7 @@ "\nThe security solution generic experimental features" ], "signature": [ - "{ readonly tGridEnabled: boolean; readonly tGridEventRenderedViewEnabled: boolean; readonly excludePoliciesInFilterEnabled: boolean; readonly kubernetesEnabled: boolean; readonly chartEmbeddablesEnabled: boolean; readonly donutChartEmbeddablesEnabled: boolean; readonly alertsPreviewChartEmbeddablesEnabled: boolean; readonly previewTelemetryUrlEnabled: boolean; readonly insightsRelatedAlertsByProcessAncestry: boolean; readonly extendedRuleExecutionLoggingEnabled: boolean; readonly socTrendsEnabled: boolean; readonly responseActionsEnabled: boolean; readonly endpointResponseActionsEnabled: boolean; readonly alertDetailsPageEnabled: boolean; readonly responseActionUploadEnabled: boolean; readonly alertsPageChartsEnabled: boolean; readonly alertTypeEnabled: boolean; readonly alertsPageFiltersEnabled: boolean; readonly assistantModelEvaluation: boolean; readonly newUserDetailsFlyout: boolean; readonly riskScoringPersistence: boolean; readonly riskScoringRoutesEnabled: boolean; readonly discoverInTimeline: boolean; readonly esqlRulesDisabled: boolean; readonly protectionUpdatesEnabled: boolean; }" + "{ readonly tGridEnabled: boolean; readonly tGridEventRenderedViewEnabled: boolean; readonly excludePoliciesInFilterEnabled: boolean; readonly kubernetesEnabled: boolean; readonly chartEmbeddablesEnabled: boolean; readonly donutChartEmbeddablesEnabled: boolean; readonly alertsPreviewChartEmbeddablesEnabled: boolean; readonly previewTelemetryUrlEnabled: boolean; readonly insightsRelatedAlertsByProcessAncestry: boolean; readonly extendedRuleExecutionLoggingEnabled: boolean; readonly socTrendsEnabled: boolean; readonly responseActionsEnabled: boolean; readonly endpointResponseActionsEnabled: boolean; readonly alertDetailsPageEnabled: boolean; readonly responseActionUploadEnabled: boolean; readonly alertsPageChartsEnabled: boolean; readonly alertTypeEnabled: boolean; readonly alertsPageFiltersEnabled: boolean; readonly assistantModelEvaluation: boolean; readonly newUserDetailsFlyout: boolean; readonly riskScoringPersistence: boolean; readonly riskScoringRoutesEnabled: boolean; readonly esqlRulesDisabled: boolean; readonly protectionUpdatesEnabled: boolean; }" ], "path": "x-pack/plugins/security_solution/server/plugin_contract.ts", "deprecated": false, @@ -3010,7 +3010,7 @@ "label": "ExperimentalFeatures", "description": [], "signature": [ - "{ readonly tGridEnabled: boolean; readonly tGridEventRenderedViewEnabled: boolean; readonly excludePoliciesInFilterEnabled: boolean; readonly kubernetesEnabled: boolean; readonly chartEmbeddablesEnabled: boolean; readonly donutChartEmbeddablesEnabled: boolean; readonly alertsPreviewChartEmbeddablesEnabled: boolean; readonly previewTelemetryUrlEnabled: boolean; readonly insightsRelatedAlertsByProcessAncestry: boolean; readonly extendedRuleExecutionLoggingEnabled: boolean; readonly socTrendsEnabled: boolean; readonly responseActionsEnabled: boolean; readonly endpointResponseActionsEnabled: boolean; readonly alertDetailsPageEnabled: boolean; readonly responseActionUploadEnabled: boolean; readonly alertsPageChartsEnabled: boolean; readonly alertTypeEnabled: boolean; readonly alertsPageFiltersEnabled: boolean; readonly assistantModelEvaluation: boolean; readonly newUserDetailsFlyout: boolean; readonly riskScoringPersistence: boolean; readonly riskScoringRoutesEnabled: boolean; readonly discoverInTimeline: boolean; readonly esqlRulesDisabled: boolean; readonly protectionUpdatesEnabled: boolean; }" + "{ readonly tGridEnabled: boolean; readonly tGridEventRenderedViewEnabled: boolean; readonly excludePoliciesInFilterEnabled: boolean; readonly kubernetesEnabled: boolean; readonly chartEmbeddablesEnabled: boolean; readonly donutChartEmbeddablesEnabled: boolean; readonly alertsPreviewChartEmbeddablesEnabled: boolean; readonly previewTelemetryUrlEnabled: boolean; readonly insightsRelatedAlertsByProcessAncestry: boolean; readonly extendedRuleExecutionLoggingEnabled: boolean; readonly socTrendsEnabled: boolean; readonly responseActionsEnabled: boolean; readonly endpointResponseActionsEnabled: boolean; readonly alertDetailsPageEnabled: boolean; readonly responseActionUploadEnabled: boolean; readonly alertsPageChartsEnabled: boolean; readonly alertTypeEnabled: boolean; readonly alertsPageFiltersEnabled: boolean; readonly assistantModelEvaluation: boolean; readonly newUserDetailsFlyout: boolean; readonly riskScoringPersistence: boolean; readonly riskScoringRoutesEnabled: boolean; readonly esqlRulesDisabled: boolean; readonly protectionUpdatesEnabled: boolean; }" ], "path": "x-pack/plugins/security_solution/common/experimental_features.ts", "deprecated": false, @@ -3059,7 +3059,7 @@ "\nA list of allowed values that can be used in `xpack.securitySolution.enableExperimental`.\nThis object is then used to validate and parse the value entered." ], "signature": [ - "{ readonly tGridEnabled: boolean; readonly tGridEventRenderedViewEnabled: boolean; readonly excludePoliciesInFilterEnabled: boolean; readonly kubernetesEnabled: boolean; readonly chartEmbeddablesEnabled: boolean; readonly donutChartEmbeddablesEnabled: boolean; readonly alertsPreviewChartEmbeddablesEnabled: boolean; readonly previewTelemetryUrlEnabled: boolean; readonly insightsRelatedAlertsByProcessAncestry: boolean; readonly extendedRuleExecutionLoggingEnabled: boolean; readonly socTrendsEnabled: boolean; readonly responseActionsEnabled: boolean; readonly endpointResponseActionsEnabled: boolean; readonly alertDetailsPageEnabled: boolean; readonly responseActionUploadEnabled: boolean; readonly alertsPageChartsEnabled: boolean; readonly alertTypeEnabled: boolean; readonly alertsPageFiltersEnabled: boolean; readonly assistantModelEvaluation: boolean; readonly newUserDetailsFlyout: boolean; readonly riskScoringPersistence: boolean; readonly riskScoringRoutesEnabled: boolean; readonly discoverInTimeline: boolean; readonly esqlRulesDisabled: boolean; readonly protectionUpdatesEnabled: boolean; }" + "{ readonly tGridEnabled: boolean; readonly tGridEventRenderedViewEnabled: boolean; readonly excludePoliciesInFilterEnabled: boolean; readonly kubernetesEnabled: boolean; readonly chartEmbeddablesEnabled: boolean; readonly donutChartEmbeddablesEnabled: boolean; readonly alertsPreviewChartEmbeddablesEnabled: boolean; readonly previewTelemetryUrlEnabled: boolean; readonly insightsRelatedAlertsByProcessAncestry: boolean; readonly extendedRuleExecutionLoggingEnabled: boolean; readonly socTrendsEnabled: boolean; readonly responseActionsEnabled: boolean; readonly endpointResponseActionsEnabled: boolean; readonly alertDetailsPageEnabled: boolean; readonly responseActionUploadEnabled: boolean; readonly alertsPageChartsEnabled: boolean; readonly alertTypeEnabled: boolean; readonly alertsPageFiltersEnabled: boolean; readonly assistantModelEvaluation: boolean; readonly newUserDetailsFlyout: boolean; readonly riskScoringPersistence: boolean; readonly riskScoringRoutesEnabled: boolean; readonly esqlRulesDisabled: boolean; readonly protectionUpdatesEnabled: boolean; }" ], "path": "x-pack/plugins/security_solution/common/experimental_features.ts", "deprecated": false, diff --git a/api_docs/security_solution.mdx b/api_docs/security_solution.mdx index d47c62a353843..e2dbf897488a5 100644 --- a/api_docs/security_solution.mdx +++ b/api_docs/security_solution.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/securitySolution title: "securitySolution" image: https://source.unsplash.com/400x175/?github description: API docs for the securitySolution plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'securitySolution'] --- import securitySolutionObj from './security_solution.devdocs.json'; diff --git a/api_docs/security_solution_ess.mdx b/api_docs/security_solution_ess.mdx index 771824c20e11b..9721dcf9f75d4 100644 --- a/api_docs/security_solution_ess.mdx +++ b/api_docs/security_solution_ess.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/securitySolutionEss title: "securitySolutionEss" image: https://source.unsplash.com/400x175/?github description: API docs for the securitySolutionEss plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'securitySolutionEss'] --- import securitySolutionEssObj from './security_solution_ess.devdocs.json'; diff --git a/api_docs/security_solution_serverless.mdx b/api_docs/security_solution_serverless.mdx index 48b7b396ac39a..84255bc3b2a11 100644 --- a/api_docs/security_solution_serverless.mdx +++ b/api_docs/security_solution_serverless.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/securitySolutionServerless title: "securitySolutionServerless" image: https://source.unsplash.com/400x175/?github description: API docs for the securitySolutionServerless plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'securitySolutionServerless'] --- import securitySolutionServerlessObj from './security_solution_serverless.devdocs.json'; diff --git a/api_docs/serverless.mdx b/api_docs/serverless.mdx index 4b11563bb256a..86f4606339ee8 100644 --- a/api_docs/serverless.mdx +++ b/api_docs/serverless.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/serverless title: "serverless" image: https://source.unsplash.com/400x175/?github description: API docs for the serverless plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'serverless'] --- import serverlessObj from './serverless.devdocs.json'; diff --git a/api_docs/serverless_observability.mdx b/api_docs/serverless_observability.mdx index 4d779bd2d0bf4..f9c0daae7f755 100644 --- a/api_docs/serverless_observability.mdx +++ b/api_docs/serverless_observability.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/serverlessObservability title: "serverlessObservability" image: https://source.unsplash.com/400x175/?github description: API docs for the serverlessObservability plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'serverlessObservability'] --- import serverlessObservabilityObj from './serverless_observability.devdocs.json'; diff --git a/api_docs/serverless_search.mdx b/api_docs/serverless_search.mdx index 393305fc42d9c..9a54a0b781151 100644 --- a/api_docs/serverless_search.mdx +++ b/api_docs/serverless_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/serverlessSearch title: "serverlessSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the serverlessSearch plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'serverlessSearch'] --- import serverlessSearchObj from './serverless_search.devdocs.json'; diff --git a/api_docs/session_view.mdx b/api_docs/session_view.mdx index 878b2b9d989f6..c4b0f7b9cb35a 100644 --- a/api_docs/session_view.mdx +++ b/api_docs/session_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/sessionView title: "sessionView" image: https://source.unsplash.com/400x175/?github description: API docs for the sessionView plugin -date: 2023-10-12 +date: 2023-10-13 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 5ecfdb62a4b0c..667f4d08c1f68 100644 --- a/api_docs/share.mdx +++ b/api_docs/share.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/share title: "share" image: https://source.unsplash.com/400x175/?github description: API docs for the share plugin -date: 2023-10-12 +date: 2023-10-13 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 51032fe273551..45612085d9a97 100644 --- a/api_docs/snapshot_restore.mdx +++ b/api_docs/snapshot_restore.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/snapshotRestore title: "snapshotRestore" image: https://source.unsplash.com/400x175/?github description: API docs for the snapshotRestore plugin -date: 2023-10-12 +date: 2023-10-13 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 3d56c7c50adcd..b23b05607de43 100644 --- a/api_docs/spaces.mdx +++ b/api_docs/spaces.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/spaces title: "spaces" image: https://source.unsplash.com/400x175/?github description: API docs for the spaces plugin -date: 2023-10-12 +date: 2023-10-13 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 575ac0d2c01a9..1a2f5a654f27f 100644 --- a/api_docs/stack_alerts.mdx +++ b/api_docs/stack_alerts.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/stackAlerts title: "stackAlerts" image: https://source.unsplash.com/400x175/?github description: API docs for the stackAlerts plugin -date: 2023-10-12 +date: 2023-10-13 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 b6da8f4caf390..3e627b7dc2e2e 100644 --- a/api_docs/stack_connectors.mdx +++ b/api_docs/stack_connectors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/stackConnectors title: "stackConnectors" image: https://source.unsplash.com/400x175/?github description: API docs for the stackConnectors plugin -date: 2023-10-12 +date: 2023-10-13 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 e162dbc1f7e05..1151f5661a3b8 100644 --- a/api_docs/task_manager.mdx +++ b/api_docs/task_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/taskManager title: "taskManager" image: https://source.unsplash.com/400x175/?github description: API docs for the taskManager plugin -date: 2023-10-12 +date: 2023-10-13 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 449a9c48b4a8c..4c0ffac2cba81 100644 --- a/api_docs/telemetry.mdx +++ b/api_docs/telemetry.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetry title: "telemetry" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetry plugin -date: 2023-10-12 +date: 2023-10-13 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 b3ce595bd2910..20f3dc6f17e2b 100644 --- a/api_docs/telemetry_collection_manager.mdx +++ b/api_docs/telemetry_collection_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryCollectionManager title: "telemetryCollectionManager" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryCollectionManager plugin -date: 2023-10-12 +date: 2023-10-13 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 a6b7b5b8f6208..5a611ef796604 100644 --- a/api_docs/telemetry_collection_xpack.mdx +++ b/api_docs/telemetry_collection_xpack.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryCollectionXpack title: "telemetryCollectionXpack" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryCollectionXpack plugin -date: 2023-10-12 +date: 2023-10-13 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 73561d0fe4e38..41d15e4cb1a60 100644 --- a/api_docs/telemetry_management_section.mdx +++ b/api_docs/telemetry_management_section.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryManagementSection title: "telemetryManagementSection" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryManagementSection plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetryManagementSection'] --- import telemetryManagementSectionObj from './telemetry_management_section.devdocs.json'; diff --git a/api_docs/text_based_languages.mdx b/api_docs/text_based_languages.mdx index fd1b94a588d69..8f6b993e82959 100644 --- a/api_docs/text_based_languages.mdx +++ b/api_docs/text_based_languages.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/textBasedLanguages title: "textBasedLanguages" image: https://source.unsplash.com/400x175/?github description: API docs for the textBasedLanguages plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'textBasedLanguages'] --- import textBasedLanguagesObj from './text_based_languages.devdocs.json'; diff --git a/api_docs/threat_intelligence.mdx b/api_docs/threat_intelligence.mdx index f8e64b275929b..54acd6b1fd585 100644 --- a/api_docs/threat_intelligence.mdx +++ b/api_docs/threat_intelligence.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/threatIntelligence title: "threatIntelligence" image: https://source.unsplash.com/400x175/?github description: API docs for the threatIntelligence plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'threatIntelligence'] --- import threatIntelligenceObj from './threat_intelligence.devdocs.json'; diff --git a/api_docs/timelines.mdx b/api_docs/timelines.mdx index 8aa0bc955dffe..7e3387a4b5cc6 100644 --- a/api_docs/timelines.mdx +++ b/api_docs/timelines.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/timelines title: "timelines" image: https://source.unsplash.com/400x175/?github description: API docs for the timelines plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'timelines'] --- import timelinesObj from './timelines.devdocs.json'; diff --git a/api_docs/transform.mdx b/api_docs/transform.mdx index be06edf4710f5..44259b14ec464 100644 --- a/api_docs/transform.mdx +++ b/api_docs/transform.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/transform title: "transform" image: https://source.unsplash.com/400x175/?github description: API docs for the transform plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'transform'] --- import transformObj from './transform.devdocs.json'; diff --git a/api_docs/triggers_actions_ui.mdx b/api_docs/triggers_actions_ui.mdx index 40eed69f592d7..d91145a0c9084 100644 --- a/api_docs/triggers_actions_ui.mdx +++ b/api_docs/triggers_actions_ui.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/triggersActionsUi title: "triggersActionsUi" image: https://source.unsplash.com/400x175/?github description: API docs for the triggersActionsUi plugin -date: 2023-10-12 +date: 2023-10-13 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 7e62ef66dcc92..be86250dfc5e0 100644 --- a/api_docs/ui_actions.mdx +++ b/api_docs/ui_actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uiActions title: "uiActions" image: https://source.unsplash.com/400x175/?github description: API docs for the uiActions plugin -date: 2023-10-12 +date: 2023-10-13 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 bc52470957eb0..80f0401f9b691 100644 --- a/api_docs/ui_actions_enhanced.mdx +++ b/api_docs/ui_actions_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uiActionsEnhanced title: "uiActionsEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the uiActionsEnhanced plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'uiActionsEnhanced'] --- import uiActionsEnhancedObj from './ui_actions_enhanced.devdocs.json'; diff --git a/api_docs/unified_doc_viewer.mdx b/api_docs/unified_doc_viewer.mdx index 5e258b1996bd3..f5faca199cca7 100644 --- a/api_docs/unified_doc_viewer.mdx +++ b/api_docs/unified_doc_viewer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedDocViewer title: "unifiedDocViewer" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedDocViewer plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedDocViewer'] --- import unifiedDocViewerObj from './unified_doc_viewer.devdocs.json'; diff --git a/api_docs/unified_histogram.mdx b/api_docs/unified_histogram.mdx index 2b0fad6ccc0bd..f9ae071bd7246 100644 --- a/api_docs/unified_histogram.mdx +++ b/api_docs/unified_histogram.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedHistogram title: "unifiedHistogram" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedHistogram plugin -date: 2023-10-12 +date: 2023-10-13 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 5b1a9d4baa4b4..4bb9df61841be 100644 --- a/api_docs/unified_search.mdx +++ b/api_docs/unified_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedSearch title: "unifiedSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedSearch plugin -date: 2023-10-12 +date: 2023-10-13 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 195d0c3062f95..8a10cc425afe6 100644 --- a/api_docs/unified_search_autocomplete.mdx +++ b/api_docs/unified_search_autocomplete.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedSearch-autocomplete title: "unifiedSearch.autocomplete" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedSearch.autocomplete plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedSearch.autocomplete'] --- import unifiedSearchAutocompleteObj from './unified_search_autocomplete.devdocs.json'; diff --git a/api_docs/uptime.mdx b/api_docs/uptime.mdx index ab3028b40392d..194fd4e51de80 100644 --- a/api_docs/uptime.mdx +++ b/api_docs/uptime.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uptime title: "uptime" image: https://source.unsplash.com/400x175/?github description: API docs for the uptime plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'uptime'] --- import uptimeObj from './uptime.devdocs.json'; diff --git a/api_docs/url_forwarding.mdx b/api_docs/url_forwarding.mdx index 4d2724125a439..6c9dc56caaeca 100644 --- a/api_docs/url_forwarding.mdx +++ b/api_docs/url_forwarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/urlForwarding title: "urlForwarding" image: https://source.unsplash.com/400x175/?github description: API docs for the urlForwarding plugin -date: 2023-10-12 +date: 2023-10-13 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 a5d1afd951667..1a1e4479220a9 100644 --- a/api_docs/usage_collection.mdx +++ b/api_docs/usage_collection.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/usageCollection title: "usageCollection" image: https://source.unsplash.com/400x175/?github description: API docs for the usageCollection plugin -date: 2023-10-12 +date: 2023-10-13 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 f5f6a5547a28d..a729fa45309e7 100644 --- a/api_docs/ux.mdx +++ b/api_docs/ux.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ux title: "ux" image: https://source.unsplash.com/400x175/?github description: API docs for the ux plugin -date: 2023-10-12 +date: 2023-10-13 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 09dba57ae6c61..47e35699557fb 100644 --- a/api_docs/vis_default_editor.mdx +++ b/api_docs/vis_default_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visDefaultEditor title: "visDefaultEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the visDefaultEditor plugin -date: 2023-10-12 +date: 2023-10-13 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 202ab06f43e1a..52a0a899dbef5 100644 --- a/api_docs/vis_type_gauge.mdx +++ b/api_docs/vis_type_gauge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeGauge title: "visTypeGauge" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeGauge plugin -date: 2023-10-12 +date: 2023-10-13 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 3822906123f33..575a3defc126e 100644 --- a/api_docs/vis_type_heatmap.mdx +++ b/api_docs/vis_type_heatmap.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeHeatmap title: "visTypeHeatmap" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeHeatmap plugin -date: 2023-10-12 +date: 2023-10-13 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 c88ab4535667e..32a5aa5fa9889 100644 --- a/api_docs/vis_type_pie.mdx +++ b/api_docs/vis_type_pie.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypePie title: "visTypePie" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypePie plugin -date: 2023-10-12 +date: 2023-10-13 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 ae21d49c17dab..0ae3d93b69732 100644 --- a/api_docs/vis_type_table.mdx +++ b/api_docs/vis_type_table.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTable title: "visTypeTable" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTable plugin -date: 2023-10-12 +date: 2023-10-13 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 4a4215beff935..2856d4eaadec4 100644 --- a/api_docs/vis_type_timelion.mdx +++ b/api_docs/vis_type_timelion.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTimelion title: "visTypeTimelion" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTimelion plugin -date: 2023-10-12 +date: 2023-10-13 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 96faeecb6c4e3..eba40cb38e613 100644 --- a/api_docs/vis_type_timeseries.mdx +++ b/api_docs/vis_type_timeseries.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTimeseries title: "visTypeTimeseries" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTimeseries plugin -date: 2023-10-12 +date: 2023-10-13 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 5ae99273c890d..497298d5539f7 100644 --- a/api_docs/vis_type_vega.mdx +++ b/api_docs/vis_type_vega.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeVega title: "visTypeVega" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeVega plugin -date: 2023-10-12 +date: 2023-10-13 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 e4dfbbb1e4bcc..bf84e5b8f4597 100644 --- a/api_docs/vis_type_vislib.mdx +++ b/api_docs/vis_type_vislib.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeVislib title: "visTypeVislib" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeVislib plugin -date: 2023-10-12 +date: 2023-10-13 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 bd7fe6125d3d5..267d3e9529708 100644 --- a/api_docs/vis_type_xy.mdx +++ b/api_docs/vis_type_xy.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeXy title: "visTypeXy" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeXy plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeXy'] --- import visTypeXyObj from './vis_type_xy.devdocs.json'; diff --git a/api_docs/visualizations.mdx b/api_docs/visualizations.mdx index f5d0fa7205cfd..dd3b7c4af2dd1 100644 --- a/api_docs/visualizations.mdx +++ b/api_docs/visualizations.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visualizations title: "visualizations" image: https://source.unsplash.com/400x175/?github description: API docs for the visualizations plugin -date: 2023-10-12 +date: 2023-10-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visualizations'] --- import visualizationsObj from './visualizations.devdocs.json'; From a82256b6c6d191b108e1201cbbf771d63b7daf42 Mon Sep 17 00:00:00 2001 From: Tomasz Ciecierski Date: Fri, 13 Oct 2023 07:24:48 +0200 Subject: [PATCH 73/79] [EDR Workflows] Fix osquery missing theme in editor issue (#167749) --- x-pack/plugins/osquery/public/editor/index.tsx | 1 - x-pack/plugins/osquery/public/editor/osquery_highlight_rules.ts | 2 +- x-pack/plugins/osquery/public/live_queries/form/index.tsx | 2 +- .../osquery/public/live_queries/form/live_query_query_field.tsx | 2 +- .../shared_components/osquery_response_action_type/index.tsx | 2 +- 5 files changed, 4 insertions(+), 5 deletions(-) diff --git a/x-pack/plugins/osquery/public/editor/index.tsx b/x-pack/plugins/osquery/public/editor/index.tsx index 876bdb7614a5c..5852f04099207 100644 --- a/x-pack/plugins/osquery/public/editor/index.tsx +++ b/x-pack/plugins/osquery/public/editor/index.tsx @@ -34,7 +34,6 @@ const OsqueryEditorComponent: React.FC = ({ }) => { const [editorValue, setEditorValue] = useState(defaultValue ?? ''); const [height, setHeight] = useState(MIN_HEIGHT); - useDebounce( () => { onChange(editorValue); diff --git a/x-pack/plugins/osquery/public/editor/osquery_highlight_rules.ts b/x-pack/plugins/osquery/public/editor/osquery_highlight_rules.ts index b9cdcff73793f..c0026e8e8a986 100644 --- a/x-pack/plugins/osquery/public/editor/osquery_highlight_rules.ts +++ b/x-pack/plugins/osquery/public/editor/osquery_highlight_rules.ts @@ -136,6 +136,7 @@ const theme = { export const initializeOsqueryEditor = () => { let disposable: IDisposable | null = null; if (monaco) { + monaco?.editor.defineTheme('osquery', theme); disposable = monaco.languages.onLanguage('sql', () => { monaco.languages.setMonarchTokensProvider('sql', { ignoreCase: true, @@ -175,7 +176,6 @@ export const initializeOsqueryEditor = () => { ], }, }); - monaco?.editor.defineTheme('osquery', theme); monaco?.languages.registerCompletionItemProvider('sql', { triggerCharacters: ['.'], provideCompletionItems: (model: monaco.editor.ITextModel, position: monaco.Position) => { diff --git a/x-pack/plugins/osquery/public/live_queries/form/index.tsx b/x-pack/plugins/osquery/public/live_queries/form/index.tsx index badd67fe3bf84..5f256b505043f 100644 --- a/x-pack/plugins/osquery/public/live_queries/form/index.tsx +++ b/x-pack/plugins/osquery/public/live_queries/form/index.tsx @@ -26,7 +26,7 @@ import { usePacks } from '../../packs/use_packs'; import { useCreateLiveQuery } from '../use_create_live_query_action'; import { useLiveQueryDetails } from '../../actions/use_live_query_details'; import type { AgentSelection } from '../../agents/types'; -import { LiveQueryQueryField } from './live_query_query_field'; +import LiveQueryQueryField from './live_query_query_field'; import { AgentsTableField } from './agents_table_field'; import { savedQueryDataSerializer } from '../../saved_queries/form/use_saved_query_form'; import { PackFieldWrapper } from '../../shared_components/osquery_response_action_type/pack_field_wrapper'; diff --git a/x-pack/plugins/osquery/public/live_queries/form/live_query_query_field.tsx b/x-pack/plugins/osquery/public/live_queries/form/live_query_query_field.tsx index 6372604d8b677..100319f7c16a5 100644 --- a/x-pack/plugins/osquery/public/live_queries/form/live_query_query_field.tsx +++ b/x-pack/plugins/osquery/public/live_queries/form/live_query_query_field.tsx @@ -162,7 +162,7 @@ const LiveQueryQueryFieldComponent: React.FC = ({ ); }; -export const LiveQueryQueryField = React.memo(LiveQueryQueryFieldComponent); +const LiveQueryQueryField = React.memo(LiveQueryQueryFieldComponent); // eslint-disable-next-line import/no-default-export export { LiveQueryQueryField as default }; diff --git a/x-pack/plugins/osquery/public/shared_components/osquery_response_action_type/index.tsx b/x-pack/plugins/osquery/public/shared_components/osquery_response_action_type/index.tsx index 5902eafddaa84..064e55d9350b2 100644 --- a/x-pack/plugins/osquery/public/shared_components/osquery_response_action_type/index.tsx +++ b/x-pack/plugins/osquery/public/shared_components/osquery_response_action_type/index.tsx @@ -16,7 +16,7 @@ import type { ECSMapping } from '@kbn/osquery-io-ts-types'; import { usePack } from '../../packs/use_pack'; import { QueryPackSelectable } from '../../live_queries/form/query_pack_selectable'; import { useKibana } from '../../common/lib/kibana'; -import { LiveQueryQueryField } from '../../live_queries/form/live_query_query_field'; +import LiveQueryQueryField from '../../live_queries/form/live_query_query_field'; import { PackFieldWrapper } from './pack_field_wrapper'; interface OsqueryResponseActionsValues { From 77809650f1b72f181c757635c03274413371aec2 Mon Sep 17 00:00:00 2001 From: Lukas Olson Date: Thu, 12 Oct 2023 23:09:10 -0700 Subject: [PATCH 74/79] Add support for aborting in fetchTextBased (ESQL) (#168544) ## Summary Adds support for aborting previous ESQL calls when a new one is issued. Before: https://github.com/elastic/kibana/assets/1178348/77ef5492-e914-4af5-aebd-ecc6d8d960b6 After: https://github.com/elastic/kibana/assets/1178348/1af57552-8974-4f6f-93af-cb01283b03da ### 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 Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../application/main/utils/fetch_all.test.ts | 28 +++++++++++++++++++ .../application/main/utils/fetch_all.ts | 14 +++++++++- .../main/utils/fetch_text_based.ts | 5 +++- .../embeddable/saved_search_embeddable.tsx | 1 + 4 files changed, 46 insertions(+), 2 deletions(-) diff --git a/src/plugins/discover/public/application/main/utils/fetch_all.test.ts b/src/plugins/discover/public/application/main/utils/fetch_all.test.ts index 6de9781b0b58b..48d867f4b81c4 100644 --- a/src/plugins/discover/public/application/main/utils/fetch_all.test.ts +++ b/src/plugins/discover/public/application/main/utils/fetch_all.test.ts @@ -382,5 +382,33 @@ describe('test fetchAll', () => { }, ]); }); + + test('should swallow abort errors', async () => { + const collect = subjectCollector(subjects.documents$); + mockfetchTextBased.mockRejectedValue({ msg: 'The query was aborted' }); + const query = { esql: 'from foo' }; + deps = { + abortController: new AbortController(), + inspectorAdapters: { requests: new RequestAdapter() }, + searchSessionId: '123', + initialFetchStatus: FetchStatus.UNINITIALIZED, + useNewFieldsApi: true, + savedSearch: savedSearchMock, + services: discoverServiceMock, + getAppState: () => ({ query }), + getInternalState: () => ({ + dataView: undefined, + savedDataViews: [], + adHocDataViews: [], + expandedDoc: undefined, + customFilters: [], + }), + }; + fetchAll(subjects, false, deps); + deps.abortController.abort(); + await waitForNextTick(); + + expect((await collect()).find(({ error }) => error)).toBeUndefined(); + }); }); }); diff --git a/src/plugins/discover/public/application/main/utils/fetch_all.ts b/src/plugins/discover/public/application/main/utils/fetch_all.ts index ff754b065a130..289ad9e336b04 100644 --- a/src/plugins/discover/public/application/main/utils/fetch_all.ts +++ b/src/plugins/discover/public/application/main/utils/fetch_all.ts @@ -61,6 +61,7 @@ export function fetchAll( services, inspectorAdapters, savedSearch, + abortController, } = fetchDeps; const { data } = services; const searchSource = savedSearch.searchSource.createChild(); @@ -93,7 +94,14 @@ export function fetchAll( // Start fetching all required requests const response = useTextbased && query - ? fetchTextBased(query, dataView, data, services.expressions, inspectorAdapters) + ? fetchTextBased( + query, + dataView, + data, + services.expressions, + inspectorAdapters, + abortController.signal + ) : fetchDocuments(searchSource, fetchDeps); const fetchType = useTextbased && query ? 'fetchTextBased' : 'fetchDocuments'; const startTime = window.performance.now(); @@ -141,6 +149,10 @@ export function fetchAll( checkHitCount(dataSubjects.main$, records.length); }) + // In the case that the request was aborted (e.g. a refresh), swallow the abort error + .catch((e) => { + if (!abortController.signal.aborted) throw e; + }) // Only the document query should send its errors to main$, to cause the full Discover app // to get into an error state. The other queries will not cause all of Discover to error out // but their errors will be shown in-place (e.g. of the chart). diff --git a/src/plugins/discover/public/application/main/utils/fetch_text_based.ts b/src/plugins/discover/public/application/main/utils/fetch_text_based.ts index 6a164bfd8a5f8..a1aa14e47d79b 100644 --- a/src/plugins/discover/public/application/main/utils/fetch_text_based.ts +++ b/src/plugins/discover/public/application/main/utils/fetch_text_based.ts @@ -30,6 +30,7 @@ export function fetchTextBased( data: DataPublicPluginStart, expressions: ExpressionsStart, inspectorAdapters: Adapters, + abortSignal?: AbortSignal, filters?: Filter[], inputQuery?: Query ): Promise { @@ -43,9 +44,11 @@ export function fetchTextBased( }) .then((ast) => { if (ast) { - const execution = expressions.run(ast, null, { + const contract = expressions.execute(ast, null, { inspectorAdapters, }); + abortSignal?.addEventListener('abort', contract.cancel); + const execution = contract.getData(); let finalData: DataTableRecord[] = []; let textBasedQueryColumns: Datatable['columns'] | undefined; let error: string | undefined; diff --git a/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx b/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx index 7e7bf727fe230..34f6043936d92 100644 --- a/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx +++ b/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx @@ -331,6 +331,7 @@ export class SavedSearchEmbeddable this.services.data, this.services.expressions, this.services.inspector, + this.abortController.signal, this.input.filters, this.input.query ); From 6fd6966ed8225935feee247b04b4988424b47c88 Mon Sep 17 00:00:00 2001 From: Jatin Kathuria Date: Fri, 13 Oct 2023 08:22:06 +0200 Subject: [PATCH 75/79] [Security Solution] Fixes ES|QL Tab resetting to KQL Bar (#168716) ## Summary Handles #168431 This PR fixes a race condition which was causing Discover ES|QL tab to revert to it KQL query bar. See demo below: | Before | After | |---|---| |