diff --git a/.buildkite/pipelines/es_serverless/verify_es_serverless_image.yml b/.buildkite/pipelines/es_serverless/verify_es_serverless_image.yml index dd6fd12c7c013..aabbcbd3255a4 100644 --- a/.buildkite/pipelines/es_serverless/verify_es_serverless_image.yml +++ b/.buildkite/pipelines/es_serverless/verify_es_serverless_image.yml @@ -50,7 +50,7 @@ steps: agents: queue: n2-4-spot depends_on: build - timeout_in_minutes: 40 + timeout_in_minutes: 60 parallelism: 2 retry: automatic: @@ -74,8 +74,8 @@ steps: agents: queue: n2-4-spot depends_on: build - timeout_in_minutes: 120 - parallelism: 2 + timeout_in_minutes: 60 + parallelism: 4 retry: automatic: - exit_status: '*' diff --git a/.buildkite/pipelines/on_merge.yml b/.buildkite/pipelines/on_merge.yml index ed33671ee2ed1..d567ac16af588 100644 --- a/.buildkite/pipelines/on_merge.yml +++ b/.buildkite/pipelines/on_merge.yml @@ -84,7 +84,7 @@ steps: agents: queue: n2-4-spot depends_on: build - timeout_in_minutes: 40 + timeout_in_minutes: 60 parallelism: 2 retry: automatic: @@ -108,8 +108,8 @@ steps: agents: queue: n2-4-spot depends_on: build - timeout_in_minutes: 120 - parallelism: 2 + timeout_in_minutes: 60 + parallelism: 4 retry: automatic: - exit_status: '*' diff --git a/.buildkite/pipelines/pull_request/base.yml b/.buildkite/pipelines/pull_request/base.yml index 977e46e2beaea..04861de3dfac9 100644 --- a/.buildkite/pipelines/pull_request/base.yml +++ b/.buildkite/pipelines/pull_request/base.yml @@ -62,49 +62,49 @@ steps: agents: queue: n2-4-spot depends_on: build - timeout_in_minutes: 40 + timeout_in_minutes: 60 parallelism: 2 retry: automatic: - exit_status: '*' limit: 1 - # status_exception: Native role management is not enabled in this Elasticsearch instance - # - command: .buildkite/scripts/steps/functional/security_serverless_defend_workflows.sh - # label: 'Serverless Security Defend Workflows Cypress Tests' - # agents: - # queue: n2-4-spot - # depends_on: build - # timeout_in_minutes: 40 - # retry: - # automatic: - # - exit_status: '*' - # limit: 1 - - - command: .buildkite/scripts/steps/functional/security_serverless_investigations.sh - label: 'Serverless Security Investigations Cypress Tests' + - command: .buildkite/scripts/steps/functional/security_serverless_explore.sh + label: 'Serverless Explore - Security Solution Cypress Tests' agents: queue: n2-4-spot depends_on: build - timeout_in_minutes: 40 + timeout_in_minutes: 60 parallelism: 2 retry: automatic: - exit_status: '*' limit: 1 - - command: .buildkite/scripts/steps/functional/security_serverless_explore.sh - label: 'Serverless Security Explore Cypress Tests' + - command: .buildkite/scripts/steps/functional/security_serverless_investigations.sh + label: 'Serverless Investigations - Security Solution Cypress Tests' agents: queue: n2-4-spot depends_on: build - timeout_in_minutes: 40 - parallelism: 2 + timeout_in_minutes: 60 + parallelism: 4 retry: automatic: - exit_status: '*' limit: 1 + # status_exception: Native role management is not enabled in this Elasticsearch instance + # - command: .buildkite/scripts/steps/functional/security_serverless_defend_workflows.sh + # label: 'Serverless Security Defend Workflows Cypress Tests' + # agents: + # queue: n2-4-spot + # depends_on: build + # timeout_in_minutes: 60 + # retry: + # automatic: + # - exit_status: '*' + # limit: 1 + - command: .buildkite/scripts/steps/lint.sh label: 'Linting' agents: diff --git a/api_docs/actions.mdx b/api_docs/actions.mdx index 830bff4a005ee..7865515c81381 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'actions'] --- import actionsObj from './actions.devdocs.json'; diff --git a/api_docs/advanced_settings.mdx b/api_docs/advanced_settings.mdx index 1804392b220e9..4b7a5895c09d6 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-03 +date: 2023-10-04 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 50c328aad0118..f99157d9b1296 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-03 +date: 2023-10-04 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 4d0a972d2196e..3a975f357cfde 100644 --- a/api_docs/alerting.devdocs.json +++ b/api_docs/alerting.devdocs.json @@ -4923,7 +4923,7 @@ "section": "def-common.RuleTypeParams", "text": "RuleTypeParams" }, - ">, \"id\" | \"snoozeSchedule\">; version?: string | undefined; }) => Promise; unmuteAll: (options: { id: string; }) => Promise; muteInstance: (options: Readonly<{} & { alertId: string; alertInstanceId: string; }>) => Promise; unmuteInstance: (options: Readonly<{} & { alertId: string; alertInstanceId: string; }>) => Promise; runSoon: (options: { id: string; }) => Promise; listRuleTypes: () => Promise, \"id\" | \"snoozeSchedule\">; version?: string | undefined; }) => Promise; unmuteAll: (options: { id: string; }) => Promise; muteInstance: (options: Readonly<{} & { alertId: string; alertInstanceId: string; }>) => Promise; unmuteInstance: (options: Readonly<{} & { alertId: string; alertInstanceId: string; }>) => Promise; bulkUntrackAlerts: (options: Readonly<{} & { indices: string[]; alertUuids: string[]; }>) => Promise; runSoon: (options: { id: string; }) => Promise; listRuleTypes: () => Promise>; getSpaceId: () => string | undefined; getAuthorization: () => ", { diff --git a/api_docs/alerting.mdx b/api_docs/alerting.mdx index 5c77d6dd4abbc..8f74f7e7bb42b 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'alerting'] --- import alertingObj from './alerting.devdocs.json'; diff --git a/api_docs/apm.devdocs.json b/api_docs/apm.devdocs.json index 62a9dab0dd5d2..a4b12f31f1486 100644 --- a/api_docs/apm.devdocs.json +++ b/api_docs/apm.devdocs.json @@ -408,7 +408,7 @@ "label": "APIEndpoint", "description": [], "signature": [ - "\"POST /internal/apm/data_view/static\" | \"GET /internal/apm/data_view/title\" | \"GET /internal/apm/environments\" | \"GET /internal/apm/services/{serviceName}/errors/groups/main_statistics\" | \"GET /internal/apm/services/{serviceName}/errors/groups/main_statistics_by_transaction_name\" | \"POST /internal/apm/services/{serviceName}/errors/groups/detailed_statistics\" | \"GET /internal/apm/services/{serviceName}/errors/{groupId}/samples\" | \"GET /internal/apm/services/{serviceName}/errors/{groupId}/error/{errorId}\" | \"GET /internal/apm/services/{serviceName}/errors/distribution\" | \"GET /internal/apm/services/{serviceName}/errors/{groupId}/top_erroneous_transactions\" | \"POST /internal/apm/latency/overall_distribution/transactions\" | \"GET /internal/apm/services/{serviceName}/metrics/charts\" | \"GET /internal/apm/services/{serviceName}/metrics/nodes\" | \"GET /internal/apm/services/{serviceName}/metrics/serverless/charts\" | \"GET /internal/apm/services/{serviceName}/metrics/serverless/summary\" | \"GET /internal/apm/services/{serviceName}/metrics/serverless/functions_overview\" | \"GET /internal/apm/services/{serviceName}/metrics/serverless/active_instances\" | \"GET /internal/apm/observability_overview\" | \"GET /internal/apm/observability_overview/has_data\" | \"GET /internal/apm/service-map\" | \"GET /internal/apm/service-map/service/{serviceName}\" | \"GET /internal/apm/service-map/dependency\" | \"GET /internal/apm/services\" | \"POST /internal/apm/services/detailed_statistics\" | \"GET /internal/apm/services/{serviceName}/metadata/details\" | \"GET /internal/apm/services/{serviceName}/metadata/icons\" | \"GET /internal/apm/services/{serviceName}/agent\" | \"GET /internal/apm/services/{serviceName}/transaction_types\" | \"GET /internal/apm/services/{serviceName}/node/{serviceNodeName}/metadata\" | \"GET /api/apm/services/{serviceName}/annotation/search 2023-10-31\" | \"POST /api/apm/services/{serviceName}/annotation 2023-10-31\" | \"GET /internal/apm/services/{serviceName}/service_overview_instances/details/{serviceNodeName}\" | \"GET /internal/apm/services/{serviceName}/throughput\" | \"GET /internal/apm/services/{serviceName}/service_overview_instances/main_statistics\" | \"GET /internal/apm/services/{serviceName}/service_overview_instances/detailed_statistics\" | \"GET /internal/apm/services/{serviceName}/dependencies\" | \"GET /internal/apm/services/{serviceName}/dependencies/breakdown\" | \"GET /internal/apm/services/{serviceName}/anomaly_charts\" | \"GET /internal/apm/services/{serviceName}/alerts_count\" | \"GET /internal/apm/service-groups\" | \"GET /internal/apm/service-group\" | \"POST /internal/apm/service-group\" | \"DELETE /internal/apm/service-group\" | \"GET /internal/apm/service-group/services\" | \"GET /internal/apm/service-group/counts\" | \"GET /internal/apm/suggestions\" | \"GET /internal/apm/traces/{traceId}\" | \"GET /internal/apm/traces\" | \"GET /internal/apm/traces/{traceId}/root_transaction\" | \"GET /internal/apm/transactions/{transactionId}\" | \"GET /internal/apm/traces/find\" | \"POST /internal/apm/traces/aggregated_critical_path\" | \"GET /internal/apm/traces/{traceId}/transactions/{transactionId}\" | \"GET /internal/apm/traces/{traceId}/spans/{spanId}\" | \"GET /internal/apm/services/{serviceName}/transactions/groups/main_statistics\" | \"GET /internal/apm/services/{serviceName}/transactions/groups/detailed_statistics\" | \"GET /internal/apm/services/{serviceName}/transactions/charts/latency\" | \"GET /internal/apm/services/{serviceName}/transactions/traces/samples\" | \"GET /internal/apm/services/{serviceName}/transaction/charts/breakdown\" | \"GET /internal/apm/services/{serviceName}/transactions/charts/error_rate\" | \"GET /internal/apm/services/{serviceName}/transactions/charts/coldstart_rate\" | \"GET /internal/apm/services/{serviceName}/transactions/charts/coldstart_rate_by_transaction_name\" | \"GET /internal/apm/rule_types/transaction_error_rate/chart_preview\" | \"GET /internal/apm/rule_types/error_count/chart_preview\" | \"GET /internal/apm/rule_types/transaction_duration/chart_preview\" | \"GET /api/apm/settings/agent-configuration 2023-10-31\" | \"GET /api/apm/settings/agent-configuration/view 2023-10-31\" | \"DELETE /api/apm/settings/agent-configuration 2023-10-31\" | \"PUT /api/apm/settings/agent-configuration 2023-10-31\" | \"POST /api/apm/settings/agent-configuration/search 2023-10-31\" | \"GET /api/apm/settings/agent-configuration/environments 2023-10-31\" | \"GET /api/apm/settings/agent-configuration/agent_name 2023-10-31\" | \"GET /internal/apm/settings/anomaly-detection/jobs\" | \"POST /internal/apm/settings/anomaly-detection/jobs\" | \"GET /internal/apm/settings/anomaly-detection/environments\" | \"POST /internal/apm/settings/anomaly-detection/update_to_v3\" | \"GET /internal/apm/settings/apm-index-settings\" | \"GET /internal/apm/settings/apm-indices\" | \"POST /internal/apm/settings/apm-indices/save\" | \"GET /internal/apm/settings/custom_links/transaction\" | \"GET /internal/apm/settings/custom_links\" | \"POST /internal/apm/settings/custom_links\" | \"PUT /internal/apm/settings/custom_links/{id}\" | \"DELETE /internal/apm/settings/custom_links/{id}\" | \"GET /api/apm/sourcemaps 2023-10-31\" | \"POST /api/apm/sourcemaps 2023-10-31\" | \"DELETE /api/apm/sourcemaps/{id} 2023-10-31\" | \"POST /internal/apm/sourcemaps/migrate_fleet_artifacts\" | \"GET /internal/apm/fleet/has_apm_policies\" | \"GET /internal/apm/fleet/agents\" | \"POST /api/apm/fleet/apm_server_schema 2023-10-31\" | \"GET /internal/apm/fleet/apm_server_schema/unsupported\" | \"GET /internal/apm/fleet/migration_check\" | \"POST /internal/apm/fleet/cloud_apm_package_policy\" | \"GET /internal/apm/fleet/java_agent_versions\" | \"GET /internal/apm/dependencies/top_dependencies\" | \"GET /internal/apm/dependencies/upstream_services\" | \"GET /internal/apm/dependencies/metadata\" | \"GET /internal/apm/dependencies/charts/latency\" | \"GET /internal/apm/dependencies/charts/throughput\" | \"GET /internal/apm/dependencies/charts/error_rate\" | \"GET /internal/apm/dependencies/operations\" | \"GET /internal/apm/dependencies/charts/distribution\" | \"GET /internal/apm/dependencies/operations/spans\" | \"GET /internal/apm/correlations/field_candidates/transactions\" | \"GET /internal/apm/correlations/field_value_stats/transactions\" | \"POST /internal/apm/correlations/field_value_pairs/transactions\" | \"POST /internal/apm/correlations/significant_correlations/transactions\" | \"POST /internal/apm/correlations/p_values/transactions\" | \"GET /internal/apm/fallback_to_transactions\" | \"GET /internal/apm/has_data\" | \"GET /internal/apm/event_metadata/{processorEvent}/{id}\" | \"GET /internal/apm/agent_keys\" | \"GET /internal/apm/agent_keys/privileges\" | \"POST /internal/apm/api_key/invalidate\" | \"POST /api/apm/agent_keys 2023-10-31\" | \"GET /internal/apm/storage_explorer\" | \"GET /internal/apm/services/{serviceName}/storage_details\" | \"GET /internal/apm/storage_chart\" | \"GET /internal/apm/storage_explorer/privileges\" | \"GET /internal/apm/storage_explorer_summary_stats\" | \"GET /internal/apm/storage_explorer/is_cross_cluster_search\" | \"GET /internal/apm/storage_explorer/get_services\" | \"GET /internal/apm/traces/{traceId}/span_links/{spanId}/parents\" | \"GET /internal/apm/traces/{traceId}/span_links/{spanId}/children\" | \"GET /internal/apm/services/{serviceName}/infrastructure_attributes\" | \"GET /internal/apm/debug-telemetry\" | \"GET /internal/apm/time_range_metadata\" | \"GET /internal/apm/settings/labs\" | \"GET /internal/apm/get_agents_per_service\" | \"GET /internal/apm/get_latest_agent_versions\" | \"GET /internal/apm/services/{serviceName}/agent_instances\" | \"GET /internal/apm/services/{serviceName}/mobile/filters\" | \"GET /internal/apm/mobile-services/{serviceName}/most_used_charts\" | \"GET /internal/apm/mobile-services/{serviceName}/transactions/charts/sessions\" | \"GET /internal/apm/mobile-services/{serviceName}/transactions/charts/http_requests\" | \"GET /internal/apm/mobile-services/{serviceName}/stats\" | \"GET /internal/apm/mobile-services/{serviceName}/location/stats\" | \"GET /internal/apm/mobile-services/{serviceName}/terms\" | \"GET /internal/apm/mobile-services/{serviceName}/main_statistics\" | \"GET /internal/apm/mobile-services/{serviceName}/detailed_statistics\" | \"GET /internal/apm/diagnostics\" | \"POST /internal/apm/assistant/get_apm_timeseries\" | \"GET /internal/apm/assistant/get_service_summary\" | \"GET /internal/apm/assistant/get_error_document\" | \"POST /internal/apm/assistant/get_correlation_values\" | \"GET /internal/apm/assistant/get_downstream_dependencies\" | \"POST /internal/apm/assistant/get_services_list\" | \"GET /internal/apm/services/{serviceName}/profiling/flamegraph\" | \"GET /internal/apm/profiling/status\" | \"GET /internal/apm/services/{serviceName}/profiling/functions\"" + "\"POST /internal/apm/data_view/static\" | \"GET /internal/apm/data_view/title\" | \"GET /internal/apm/environments\" | \"GET /internal/apm/services/{serviceName}/errors/groups/main_statistics\" | \"GET /internal/apm/services/{serviceName}/errors/groups/main_statistics_by_transaction_name\" | \"POST /internal/apm/services/{serviceName}/errors/groups/detailed_statistics\" | \"GET /internal/apm/services/{serviceName}/errors/{groupId}/samples\" | \"GET /internal/apm/services/{serviceName}/errors/{groupId}/error/{errorId}\" | \"GET /internal/apm/services/{serviceName}/errors/distribution\" | \"GET /internal/apm/services/{serviceName}/errors/{groupId}/top_erroneous_transactions\" | \"POST /internal/apm/latency/overall_distribution/transactions\" | \"GET /internal/apm/services/{serviceName}/metrics/charts\" | \"GET /internal/apm/services/{serviceName}/metrics/nodes\" | \"GET /internal/apm/services/{serviceName}/metrics/serverless/charts\" | \"GET /internal/apm/services/{serviceName}/metrics/serverless/summary\" | \"GET /internal/apm/services/{serviceName}/metrics/serverless/functions_overview\" | \"GET /internal/apm/services/{serviceName}/metrics/serverless/active_instances\" | \"GET /internal/apm/observability_overview\" | \"GET /internal/apm/observability_overview/has_data\" | \"GET /internal/apm/service-map\" | \"GET /internal/apm/service-map/service/{serviceName}\" | \"GET /internal/apm/service-map/dependency\" | \"GET /internal/apm/services\" | \"POST /internal/apm/services/detailed_statistics\" | \"GET /internal/apm/services/{serviceName}/metadata/details\" | \"GET /internal/apm/services/{serviceName}/metadata/icons\" | \"GET /internal/apm/services/{serviceName}/agent\" | \"GET /internal/apm/services/{serviceName}/transaction_types\" | \"GET /internal/apm/services/{serviceName}/node/{serviceNodeName}/metadata\" | \"GET /api/apm/services/{serviceName}/annotation/search 2023-10-31\" | \"POST /api/apm/services/{serviceName}/annotation 2023-10-31\" | \"GET /internal/apm/services/{serviceName}/service_overview_instances/details/{serviceNodeName}\" | \"GET /internal/apm/services/{serviceName}/throughput\" | \"GET /internal/apm/services/{serviceName}/service_overview_instances/main_statistics\" | \"GET /internal/apm/services/{serviceName}/service_overview_instances/detailed_statistics\" | \"GET /internal/apm/services/{serviceName}/dependencies\" | \"GET /internal/apm/services/{serviceName}/dependencies/breakdown\" | \"GET /internal/apm/services/{serviceName}/anomaly_charts\" | \"GET /internal/apm/services/{serviceName}/alerts_count\" | \"GET /internal/apm/service-groups\" | \"GET /internal/apm/service-group\" | \"POST /internal/apm/service-group\" | \"DELETE /internal/apm/service-group\" | \"GET /internal/apm/service-group/services\" | \"GET /internal/apm/service-group/counts\" | \"GET /internal/apm/suggestions\" | \"GET /internal/apm/traces/{traceId}\" | \"GET /internal/apm/traces\" | \"GET /internal/apm/traces/{traceId}/root_transaction\" | \"GET /internal/apm/transactions/{transactionId}\" | \"GET /internal/apm/traces/find\" | \"POST /internal/apm/traces/aggregated_critical_path\" | \"GET /internal/apm/traces/{traceId}/transactions/{transactionId}\" | \"GET /internal/apm/traces/{traceId}/spans/{spanId}\" | \"GET /internal/apm/services/{serviceName}/transactions/groups/main_statistics\" | \"GET /internal/apm/services/{serviceName}/transactions/groups/detailed_statistics\" | \"GET /internal/apm/services/{serviceName}/transactions/charts/latency\" | \"GET /internal/apm/services/{serviceName}/transactions/traces/samples\" | \"GET /internal/apm/services/{serviceName}/transaction/charts/breakdown\" | \"GET /internal/apm/services/{serviceName}/transactions/charts/error_rate\" | \"GET /internal/apm/services/{serviceName}/transactions/charts/coldstart_rate\" | \"GET /internal/apm/services/{serviceName}/transactions/charts/coldstart_rate_by_transaction_name\" | \"GET /internal/apm/rule_types/transaction_error_rate/chart_preview\" | \"GET /internal/apm/rule_types/error_count/chart_preview\" | \"GET /internal/apm/rule_types/transaction_duration/chart_preview\" | \"GET /api/apm/settings/agent-configuration 2023-10-31\" | \"GET /api/apm/settings/agent-configuration/view 2023-10-31\" | \"DELETE /api/apm/settings/agent-configuration 2023-10-31\" | \"PUT /api/apm/settings/agent-configuration 2023-10-31\" | \"POST /api/apm/settings/agent-configuration/search 2023-10-31\" | \"GET /api/apm/settings/agent-configuration/environments 2023-10-31\" | \"GET /api/apm/settings/agent-configuration/agent_name 2023-10-31\" | \"GET /internal/apm/settings/anomaly-detection/jobs\" | \"POST /internal/apm/settings/anomaly-detection/jobs\" | \"GET /internal/apm/settings/anomaly-detection/environments\" | \"POST /internal/apm/settings/anomaly-detection/update_to_v3\" | \"GET /internal/apm/settings/apm-index-settings\" | \"GET /internal/apm/settings/apm-indices\" | \"POST /internal/apm/settings/apm-indices/save\" | \"GET /internal/apm/settings/custom_links/transaction\" | \"GET /internal/apm/settings/custom_links\" | \"POST /internal/apm/settings/custom_links\" | \"PUT /internal/apm/settings/custom_links/{id}\" | \"DELETE /internal/apm/settings/custom_links/{id}\" | \"GET /api/apm/sourcemaps 2023-10-31\" | \"POST /api/apm/sourcemaps 2023-10-31\" | \"DELETE /api/apm/sourcemaps/{id} 2023-10-31\" | \"POST /internal/apm/sourcemaps/migrate_fleet_artifacts\" | \"GET /internal/apm/fleet/has_apm_policies\" | \"GET /internal/apm/fleet/agents\" | \"POST /api/apm/fleet/apm_server_schema 2023-10-31\" | \"GET /internal/apm/fleet/apm_server_schema/unsupported\" | \"GET /internal/apm/fleet/migration_check\" | \"POST /internal/apm/fleet/cloud_apm_package_policy\" | \"GET /internal/apm/fleet/java_agent_versions\" | \"GET /internal/apm/dependencies/top_dependencies\" | \"GET /internal/apm/dependencies/upstream_services\" | \"GET /internal/apm/dependencies/metadata\" | \"GET /internal/apm/dependencies/charts/latency\" | \"GET /internal/apm/dependencies/charts/throughput\" | \"GET /internal/apm/dependencies/charts/error_rate\" | \"GET /internal/apm/dependencies/operations\" | \"GET /internal/apm/dependencies/charts/distribution\" | \"GET /internal/apm/dependencies/operations/spans\" | \"GET /internal/apm/correlations/field_candidates/transactions\" | \"GET /internal/apm/correlations/field_value_stats/transactions\" | \"POST /internal/apm/correlations/field_value_pairs/transactions\" | \"POST /internal/apm/correlations/significant_correlations/transactions\" | \"POST /internal/apm/correlations/p_values/transactions\" | \"GET /internal/apm/fallback_to_transactions\" | \"GET /internal/apm/has_data\" | \"GET /internal/apm/event_metadata/{processorEvent}/{id}\" | \"GET /internal/apm/agent_keys\" | \"GET /internal/apm/agent_keys/privileges\" | \"POST /internal/apm/api_key/invalidate\" | \"POST /api/apm/agent_keys 2023-10-31\" | \"GET /internal/apm/storage_explorer\" | \"GET /internal/apm/services/{serviceName}/storage_details\" | \"GET /internal/apm/storage_chart\" | \"GET /internal/apm/storage_explorer/privileges\" | \"GET /internal/apm/storage_explorer_summary_stats\" | \"GET /internal/apm/storage_explorer/is_cross_cluster_search\" | \"GET /internal/apm/storage_explorer/get_services\" | \"GET /internal/apm/traces/{traceId}/span_links/{spanId}/parents\" | \"GET /internal/apm/traces/{traceId}/span_links/{spanId}/children\" | \"GET /internal/apm/services/{serviceName}/infrastructure_attributes\" | \"GET /internal/apm/debug-telemetry\" | \"GET /internal/apm/time_range_metadata\" | \"GET /internal/apm/settings/labs\" | \"GET /internal/apm/get_agents_per_service\" | \"GET /internal/apm/get_latest_agent_versions\" | \"GET /internal/apm/services/{serviceName}/agent_instances\" | \"GET /internal/apm/services/{serviceName}/mobile/filters\" | \"GET /internal/apm/mobile-services/{serviceName}/most_used_charts\" | \"GET /internal/apm/mobile-services/{serviceName}/transactions/charts/sessions\" | \"GET /internal/apm/mobile-services/{serviceName}/transactions/charts/http_requests\" | \"GET /internal/apm/mobile-services/{serviceName}/stats\" | \"GET /internal/apm/mobile-services/{serviceName}/location/stats\" | \"GET /internal/apm/mobile-services/{serviceName}/terms\" | \"GET /internal/apm/mobile-services/{serviceName}/main_statistics\" | \"GET /internal/apm/mobile-services/{serviceName}/detailed_statistics\" | \"GET /internal/apm/diagnostics\" | \"POST /internal/apm/assistant/get_apm_timeseries\" | \"GET /internal/apm/assistant/get_service_summary\" | \"GET /internal/apm/assistant/get_error_document\" | \"POST /internal/apm/assistant/get_correlation_values\" | \"GET /internal/apm/assistant/get_downstream_dependencies\" | \"POST /internal/apm/assistant/get_services_list\" | \"GET /internal/apm/services/{serviceName}/profiling/flamegraph\" | \"GET /internal/apm/profiling/status\" | \"GET /internal/apm/services/{serviceName}/profiling/functions\" | \"POST /internal/apm/custom-dashboard\" | \"DELETE /internal/apm/custom-dashboard\" | \"GET /internal/apm/services/{serviceName}/dashboards\"" ], "path": "x-pack/plugins/apm/server/routes/apm_routes/get_global_apm_server_route_repository.ts", "deprecated": false, @@ -455,7 +455,65 @@ "label": "APMServerRouteRepository", "description": [], "signature": [ - "{ \"GET /internal/apm/services/{serviceName}/profiling/functions\": { endpoint: \"GET /internal/apm/services/{serviceName}/profiling/functions\"; params?: ", + "{ \"GET /internal/apm/services/{serviceName}/dashboards\": { endpoint: \"GET /internal/apm/services/{serviceName}/dashboards\"; params?: ", + "TypeC", + "<{ path: ", + "TypeC", + "<{ serviceName: ", + "StringC", + "; }>; query: ", + "TypeC", + "<{ start: ", + "Type", + "; end: ", + "Type", + "; }>; }> | undefined; handler: ({}: ", + "APMRouteHandlerResources", + " & { params: { path: { serviceName: string; }; query: { start: number; end: number; }; }; }) => Promise<{ serviceDashboards: ", + "SavedApmCustomDashboard", + "[]; }>; } & ", + "APMRouteCreateOptions", + "; \"DELETE /internal/apm/custom-dashboard\": { endpoint: \"DELETE /internal/apm/custom-dashboard\"; params?: ", + "TypeC", + "<{ query: ", + "TypeC", + "<{ customDashboardId: ", + "StringC", + "; }>; }> | undefined; handler: ({}: ", + "APMRouteHandlerResources", + " & { params: { query: { customDashboardId: string; }; }; }) => Promise; } & ", + "APMRouteCreateOptions", + "; \"POST /internal/apm/custom-dashboard\": { endpoint: \"POST /internal/apm/custom-dashboard\"; params?: ", + "TypeC", + "<{ query: ", + "UnionC", + "<[", + "PartialC", + "<{ customDashboardId: ", + "StringC", + "; }>, ", + "UndefinedC", + "]>; body: ", + "TypeC", + "<{ dashboardSavedObjectId: ", + "StringC", + "; kuery: ", + "UnionC", + "<[", + "StringC", + ", ", + "UndefinedC", + "]>; serviceNameFilterEnabled: ", + "BooleanC", + "; serviceEnvironmentFilterEnabled: ", + "BooleanC", + "; }>; }> | undefined; handler: ({}: ", + "APMRouteHandlerResources", + " & { params: { query: { customDashboardId?: string | undefined; } | undefined; body: { dashboardSavedObjectId: string; kuery: string | undefined; serviceNameFilterEnabled: boolean; serviceEnvironmentFilterEnabled: boolean; }; }; }) => Promise<", + "SavedApmCustomDashboard", + ">; } & ", + "APMRouteCreateOptions", + "; \"GET /internal/apm/services/{serviceName}/profiling/functions\": { endpoint: \"GET /internal/apm/services/{serviceName}/profiling/functions\"; params?: ", "TypeC", "<{ path: ", "TypeC", @@ -5804,14 +5862,58 @@ "<{ serviceName: ", "StringC", "; }>; query: ", + "IntersectionC", + "<[", "TypeC", "<{ start: ", "Type", "; end: ", "Type", - "; }>; }> | undefined; handler: ({}: ", + "; }>, ", + "TypeC", + "<{ documentType: ", + "UnionC", + "<[", + "LiteralC", + "<", + "ApmDocumentType", + ".ServiceTransactionMetric>, ", + "LiteralC", + "<", + "ApmDocumentType", + ".TransactionMetric>, ", + "LiteralC", + "<", + "ApmDocumentType", + ".TransactionEvent>]>; rollupInterval: ", + "UnionC", + "<[", + "LiteralC", + "<", + "RollupInterval", + ".OneMinute>, ", + "LiteralC", + "<", + "RollupInterval", + ".TenMinutes>, ", + "LiteralC", + "<", + "RollupInterval", + ".SixtyMinutes>, ", + "LiteralC", + "<", + "RollupInterval", + ".None>]>; }>]>; }> | undefined; handler: ({}: ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { start: number; end: number; }; }; }) => Promise<", + " & { params: { path: { serviceName: string; }; query: { start: number; end: number; } & { documentType: ", + "ApmDocumentType", + ".TransactionMetric | ", + "ApmDocumentType", + ".ServiceTransactionMetric | ", + "ApmDocumentType", + ".TransactionEvent; rollupInterval: ", + "RollupInterval", + "; }; }; }) => Promise<", "ServiceTransactionTypesResponse", ">; } & ", "APMRouteCreateOptions", diff --git a/api_docs/apm.mdx b/api_docs/apm.mdx index d5b282e16b248..00df9f3ae880c 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'apm'] --- import apmObj from './apm.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/apm-ui](https://github.com/orgs/elastic/teams/apm-ui) for ques | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 29 | 0 | 29 | 119 | +| 29 | 0 | 29 | 120 | ## Client diff --git a/api_docs/apm_data_access.mdx b/api_docs/apm_data_access.mdx index c1f3e881586cd..303aff25799ab 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'apmDataAccess'] --- import apmDataAccessObj from './apm_data_access.devdocs.json'; diff --git a/api_docs/asset_manager.mdx b/api_docs/asset_manager.mdx index 5d41485cc50fd..5c4a95c5c063a 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-03 +date: 2023-10-04 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 b51040e21c727..2b20563d9f23d 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'banners'] --- import bannersObj from './banners.devdocs.json'; diff --git a/api_docs/bfetch.mdx b/api_docs/bfetch.mdx index f6d9e07f6cb19..82a2760aa1990 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'bfetch'] --- import bfetchObj from './bfetch.devdocs.json'; diff --git a/api_docs/canvas.mdx b/api_docs/canvas.mdx index 91a6c773f6c91..756c31a594314 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'canvas'] --- import canvasObj from './canvas.devdocs.json'; diff --git a/api_docs/cases.mdx b/api_docs/cases.mdx index dfdd206e0dabd..a41b8226a310d 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cases'] --- import casesObj from './cases.devdocs.json'; diff --git a/api_docs/charts.mdx b/api_docs/charts.mdx index 2b8e630e61017..df951a523d01c 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'charts'] --- import chartsObj from './charts.devdocs.json'; diff --git a/api_docs/cloud.mdx b/api_docs/cloud.mdx index 40855bcdb7a6e..059e6302d2a85 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloud'] --- import cloudObj from './cloud.devdocs.json'; diff --git a/api_docs/cloud_data_migration.mdx b/api_docs/cloud_data_migration.mdx index 6020e292416de..e7ac64c0a45b7 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudDataMigration'] --- import cloudDataMigrationObj from './cloud_data_migration.devdocs.json'; diff --git a/api_docs/cloud_defend.mdx b/api_docs/cloud_defend.mdx index 3e5da871f46b9..41275f4aba27e 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudDefend'] --- import cloudDefendObj from './cloud_defend.devdocs.json'; diff --git a/api_docs/cloud_experiments.mdx b/api_docs/cloud_experiments.mdx index b6d83bc2c8d2e..2d3eb40d33976 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudExperiments'] --- import cloudExperimentsObj from './cloud_experiments.devdocs.json'; diff --git a/api_docs/cloud_security_posture.mdx b/api_docs/cloud_security_posture.mdx index 790fc9bddf008..6d31a18297b04 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudSecurityPosture'] --- import cloudSecurityPostureObj from './cloud_security_posture.devdocs.json'; diff --git a/api_docs/console.mdx b/api_docs/console.mdx index 1679a5b22c7e0..aa95d1e752b65 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'console'] --- import consoleObj from './console.devdocs.json'; diff --git a/api_docs/content_management.mdx b/api_docs/content_management.mdx index 5b78a80a6516b..ce5120e848d2c 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'contentManagement'] --- import contentManagementObj from './content_management.devdocs.json'; diff --git a/api_docs/controls.devdocs.json b/api_docs/controls.devdocs.json index abe8e403bdf60..ca34f2c954ae9 100644 --- a/api_docs/controls.devdocs.json +++ b/api_docs/controls.devdocs.json @@ -6045,6 +6045,68 @@ "returnComment": [], "initialIsOpen": false }, + { + "parentPluginId": "controls", + "id": "def-common.generateNewControlIds", + "type": "Function", + "tags": [], + "label": "generateNewControlIds", + "description": [], + "signature": [ + "(controlGroupInput?: ", + { + "pluginId": "controls", + "scope": "common", + "docId": "kibControlsPluginApi", + "section": "def-common.PersistableControlGroupInput", + "text": "PersistableControlGroupInput" + }, + " | undefined) => { panels: ", + { + "pluginId": "controls", + "scope": "common", + "docId": "kibControlsPluginApi", + "section": "def-common.ControlsPanels", + "text": "ControlsPanels" + }, + "; controlStyle: ", + "ControlStyle", + "; ignoreParentSettings?: ", + "ParentIgnoreSettings", + " | undefined; chainingSystem: ", + "ControlGroupChainingSystem", + "; } | undefined" + ], + "path": "src/plugins/controls/common/control_group/control_group_persistence.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "controls", + "id": "def-common.generateNewControlIds.$1", + "type": "Object", + "tags": [], + "label": "controlGroupInput", + "description": [], + "signature": [ + { + "pluginId": "controls", + "scope": "common", + "docId": "kibControlsPluginApi", + "section": "def-common.PersistableControlGroupInput", + "text": "PersistableControlGroupInput" + }, + " | undefined" + ], + "path": "src/plugins/controls/common/control_group/control_group_persistence.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [], + "initialIsOpen": false + }, { "parentPluginId": "controls", "id": "def-common.getDefaultControlGroupInput", diff --git a/api_docs/controls.mdx b/api_docs/controls.mdx index e0f16902995ae..eff0f089f8eb7 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'controls'] --- import controlsObj from './controls.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kib | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 309 | 0 | 302 | 16 | +| 311 | 0 | 304 | 16 | ## Client diff --git a/api_docs/custom_integrations.mdx b/api_docs/custom_integrations.mdx index 08e128500d839..35ee99b6b5e7c 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'customIntegrations'] --- import customIntegrationsObj from './custom_integrations.devdocs.json'; diff --git a/api_docs/dashboard.mdx b/api_docs/dashboard.mdx index ee4ef45ec9fae..088e364318f89 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dashboard'] --- import dashboardObj from './dashboard.devdocs.json'; diff --git a/api_docs/dashboard_enhanced.mdx b/api_docs/dashboard_enhanced.mdx index e265a1f2e6626..412b45bf97d74 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dashboardEnhanced'] --- import dashboardEnhancedObj from './dashboard_enhanced.devdocs.json'; diff --git a/api_docs/data.devdocs.json b/api_docs/data.devdocs.json index 86b1188504ad7..6597f73d9a969 100644 --- a/api_docs/data.devdocs.json +++ b/api_docs/data.devdocs.json @@ -13670,10 +13670,6 @@ "plugin": "securitySolution", "path": "x-pack/plugins/security_solution/public/flyout/preview/components/rule_preview.tsx" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detection_engine/rule_details_ui/pages/rule_details/index.tsx" - }, { "plugin": "transform", "path": "x-pack/plugins/transform/public/app/hooks/use_search_items/common.ts" @@ -21415,10 +21411,6 @@ "plugin": "securitySolution", "path": "x-pack/plugins/security_solution/public/flyout/preview/components/rule_preview.tsx" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detection_engine/rule_details_ui/pages/rule_details/index.tsx" - }, { "plugin": "transform", "path": "x-pack/plugins/transform/public/app/hooks/use_search_items/common.ts" diff --git a/api_docs/data.mdx b/api_docs/data.mdx index a473b80e58d23..3709c8ab988c6 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-03 +date: 2023-10-04 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 5f5cefcab0fc5..0afd41cff92a8 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data.query'] --- import dataQueryObj from './data_query.devdocs.json'; diff --git a/api_docs/data_search.mdx b/api_docs/data_search.mdx index 4a94497cb10e5..f9460e94e9899 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data.search'] --- import dataSearchObj from './data_search.devdocs.json'; diff --git a/api_docs/data_view_editor.mdx b/api_docs/data_view_editor.mdx index 7bdc9b4cbbc57..03846af7220a7 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViewEditor'] --- import dataViewEditorObj from './data_view_editor.devdocs.json'; diff --git a/api_docs/data_view_field_editor.mdx b/api_docs/data_view_field_editor.mdx index 9971996e10951..5744ba4b8bbf2 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViewFieldEditor'] --- import dataViewFieldEditorObj from './data_view_field_editor.devdocs.json'; diff --git a/api_docs/data_view_management.mdx b/api_docs/data_view_management.mdx index 6f30e2c306f7b..952e15de74e11 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViewManagement'] --- import dataViewManagementObj from './data_view_management.devdocs.json'; diff --git a/api_docs/data_views.devdocs.json b/api_docs/data_views.devdocs.json index aa6f12fb292d7..fae636cd7d552 100644 --- a/api_docs/data_views.devdocs.json +++ b/api_docs/data_views.devdocs.json @@ -627,10 +627,6 @@ "plugin": "securitySolution", "path": "x-pack/plugins/security_solution/public/flyout/preview/components/rule_preview.tsx" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detection_engine/rule_details_ui/pages/rule_details/index.tsx" - }, { "plugin": "transform", "path": "x-pack/plugins/transform/public/app/hooks/use_search_items/common.ts" @@ -8620,10 +8616,6 @@ "plugin": "securitySolution", "path": "x-pack/plugins/security_solution/public/flyout/preview/components/rule_preview.tsx" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detection_engine/rule_details_ui/pages/rule_details/index.tsx" - }, { "plugin": "transform", "path": "x-pack/plugins/transform/public/app/hooks/use_search_items/common.ts" @@ -15674,10 +15666,6 @@ "plugin": "securitySolution", "path": "x-pack/plugins/security_solution/public/flyout/preview/components/rule_preview.tsx" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detection_engine/rule_details_ui/pages/rule_details/index.tsx" - }, { "plugin": "transform", "path": "x-pack/plugins/transform/public/app/hooks/use_search_items/common.ts" diff --git a/api_docs/data_views.mdx b/api_docs/data_views.mdx index 019269f51387d..93b0f65f9101b 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViews'] --- import dataViewsObj from './data_views.devdocs.json'; diff --git a/api_docs/data_visualizer.mdx b/api_docs/data_visualizer.mdx index dba229fd4957f..e5d3358eb677f 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-03 +date: 2023-10-04 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 419544259e202..e1a1b3a004005 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- @@ -139,7 +139,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | @kbn/core | - | | | @kbn/core-plugins-server-internal | - | | | security, aiops, licenseManagement, ml, profiling, apm, crossClusterReplication, logstash, painlessLab, searchprofiler, watcher | 8.8.0 | -| | spaces, security, actions, alerting, ml, remoteClusters, graph, indexLifecycleManagement, mapsEms, osquery, securitySolution, painlessLab, rollup, searchprofiler, snapshotRestore, transform, upgradeAssistant | 8.8.0 | +| | spaces, security, actions, alerting, aiops, ml, remoteClusters, graph, indexLifecycleManagement, mapsEms, osquery, securitySolution, painlessLab, rollup, searchprofiler, snapshotRestore, transform, upgradeAssistant | 8.8.0 | | | apm, fleet, security, securitySolution | 8.8.0 | | | apm, fleet, security, securitySolution | 8.8.0 | | | spaces, security, alerting | 8.8.0 | diff --git a/api_docs/deprecations_by_plugin.mdx b/api_docs/deprecations_by_plugin.mdx index 4c55254532c92..9bc8d03a4ce6e 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- @@ -381,6 +381,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | ---------------|-----------|-----------| | | [embeddable_change_point_chart.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/aiops/public/embeddable/embeddable_change_point_chart.tsx#:~:text=KibanaThemeProvider), [embeddable_change_point_chart.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/aiops/public/embeddable/embeddable_change_point_chart.tsx#:~:text=KibanaThemeProvider), [embeddable_change_point_chart.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/aiops/public/embeddable/embeddable_change_point_chart.tsx#:~:text=KibanaThemeProvider) | - | | | [plugin.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/aiops/public/plugin.tsx#:~:text=license%24) | 8.8.0 | +| | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/aiops/server/plugin.ts#:~:text=license%24) | 8.8.0 | | | [search_utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/aiops/public/application/utils/search_utils.ts#:~:text=SimpleSavedObject), [search_utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/aiops/public/application/utils/search_utils.ts#:~:text=SimpleSavedObject) | - | @@ -1465,12 +1466,12 @@ migrates to using the Kibana Privilege model: https://github.com/elastic/kibana/ | | [host_risk_score_dashboards.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/risk_score/prebuilt_saved_objects/saved_object/host_risk_score_dashboards.ts#:~:text=migrationVersion), [host_risk_score_dashboards.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/risk_score/prebuilt_saved_objects/saved_object/host_risk_score_dashboards.ts#:~:text=migrationVersion), [host_risk_score_dashboards.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/risk_score/prebuilt_saved_objects/saved_object/host_risk_score_dashboards.ts#:~:text=migrationVersion), [host_risk_score_dashboards.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/risk_score/prebuilt_saved_objects/saved_object/host_risk_score_dashboards.ts#:~:text=migrationVersion), [host_risk_score_dashboards.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/risk_score/prebuilt_saved_objects/saved_object/host_risk_score_dashboards.ts#:~:text=migrationVersion), [host_risk_score_dashboards.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/risk_score/prebuilt_saved_objects/saved_object/host_risk_score_dashboards.ts#:~:text=migrationVersion), [host_risk_score_dashboards.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/risk_score/prebuilt_saved_objects/saved_object/host_risk_score_dashboards.ts#:~:text=migrationVersion), [host_risk_score_dashboards.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/risk_score/prebuilt_saved_objects/saved_object/host_risk_score_dashboards.ts#:~:text=migrationVersion), [host_risk_score_dashboards.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/risk_score/prebuilt_saved_objects/saved_object/host_risk_score_dashboards.ts#:~:text=migrationVersion), [host_risk_score_dashboards.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/risk_score/prebuilt_saved_objects/saved_object/host_risk_score_dashboards.ts#:~:text=migrationVersion)+ 12 more | - | | | [dependencies_start_mock.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/mock/endpoint/dependencies_start_mock.ts#:~:text=indexPatterns) | - | | | [host_risk_score_dashboards.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/risk_score/prebuilt_saved_objects/saved_object/host_risk_score_dashboards.ts#:~:text=migrationVersion), [host_risk_score_dashboards.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/risk_score/prebuilt_saved_objects/saved_object/host_risk_score_dashboards.ts#:~:text=migrationVersion), [host_risk_score_dashboards.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/risk_score/prebuilt_saved_objects/saved_object/host_risk_score_dashboards.ts#:~:text=migrationVersion), [host_risk_score_dashboards.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/risk_score/prebuilt_saved_objects/saved_object/host_risk_score_dashboards.ts#:~:text=migrationVersion), [host_risk_score_dashboards.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/risk_score/prebuilt_saved_objects/saved_object/host_risk_score_dashboards.ts#:~:text=migrationVersion), [host_risk_score_dashboards.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/risk_score/prebuilt_saved_objects/saved_object/host_risk_score_dashboards.ts#:~:text=migrationVersion), [host_risk_score_dashboards.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/risk_score/prebuilt_saved_objects/saved_object/host_risk_score_dashboards.ts#:~:text=migrationVersion), [host_risk_score_dashboards.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/risk_score/prebuilt_saved_objects/saved_object/host_risk_score_dashboards.ts#:~:text=migrationVersion), [host_risk_score_dashboards.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/risk_score/prebuilt_saved_objects/saved_object/host_risk_score_dashboards.ts#:~:text=migrationVersion), [host_risk_score_dashboards.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/risk_score/prebuilt_saved_objects/saved_object/host_risk_score_dashboards.ts#:~:text=migrationVersion)+ 78 more | - | -| | [get_query_filter.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/utils/get_query_filter.ts#:~:text=title), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/source/index.tsx#:~:text=title), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/source/index.tsx#:~:text=title), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/components/query_bar/index.tsx#:~:text=title), [use_rule_from_timeline.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/detections/containers/detection_engine/rules/use_rule_from_timeline.tsx#:~:text=title), [get_es_query_filter.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/detections/containers/detection_engine/exceptions/get_es_query_filter.ts#:~:text=title), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/utils.ts#:~:text=title), [middleware.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts#:~:text=title), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/components/filter_group/index.tsx#:~:text=title), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/detections/components/detection_page_filters/index.tsx#:~:text=title)+ 30 more | - | +| | [get_query_filter.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/utils/get_query_filter.ts#:~:text=title), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/source/index.tsx#:~:text=title), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/source/index.tsx#:~:text=title), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/components/query_bar/index.tsx#:~:text=title), [use_rule_from_timeline.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/detections/containers/detection_engine/rules/use_rule_from_timeline.tsx#:~:text=title), [get_es_query_filter.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/detections/containers/detection_engine/exceptions/get_es_query_filter.ts#:~:text=title), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/utils.ts#:~:text=title), [middleware.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts#:~:text=title), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/components/filter_group/index.tsx#:~:text=title), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/detections/components/detection_page_filters/index.tsx#:~:text=title)+ 28 more | - | | | [wrap_search_source_client.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/rule_preview/api/preview_rules/wrap_search_source_client.ts#:~:text=create) | - | | | [wrap_search_source_client.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/rule_preview/api/preview_rules/wrap_search_source_client.test.ts#:~:text=fetch), [wrap_search_source_client.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/rule_preview/api/preview_rules/wrap_search_source_client.test.ts#:~:text=fetch), [wrap_search_source_client.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/rule_preview/api/preview_rules/wrap_search_source_client.test.ts#:~:text=fetch), [wrap_search_source_client.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/rule_preview/api/preview_rules/wrap_search_source_client.test.ts#:~:text=fetch) | - | | | [api.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/hooks/eql/api.ts#:~:text=options) | - | -| | [get_query_filter.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/utils/get_query_filter.ts#:~:text=title), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/source/index.tsx#:~:text=title), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/source/index.tsx#:~:text=title), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/components/query_bar/index.tsx#:~:text=title), [use_rule_from_timeline.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/detections/containers/detection_engine/rules/use_rule_from_timeline.tsx#:~:text=title), [get_es_query_filter.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/detections/containers/detection_engine/exceptions/get_es_query_filter.ts#:~:text=title), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/utils.ts#:~:text=title), [middleware.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts#:~:text=title), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/components/filter_group/index.tsx#:~:text=title), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/detections/components/detection_page_filters/index.tsx#:~:text=title)+ 30 more | - | -| | [get_query_filter.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/utils/get_query_filter.ts#:~:text=title), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/source/index.tsx#:~:text=title), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/source/index.tsx#:~:text=title), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/components/query_bar/index.tsx#:~:text=title), [use_rule_from_timeline.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/detections/containers/detection_engine/rules/use_rule_from_timeline.tsx#:~:text=title), [get_es_query_filter.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/detections/containers/detection_engine/exceptions/get_es_query_filter.ts#:~:text=title), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/utils.ts#:~:text=title), [middleware.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts#:~:text=title), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/components/filter_group/index.tsx#:~:text=title), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/detections/components/detection_page_filters/index.tsx#:~:text=title)+ 10 more | - | +| | [get_query_filter.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/utils/get_query_filter.ts#:~:text=title), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/source/index.tsx#:~:text=title), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/source/index.tsx#:~:text=title), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/components/query_bar/index.tsx#:~:text=title), [use_rule_from_timeline.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/detections/containers/detection_engine/rules/use_rule_from_timeline.tsx#:~:text=title), [get_es_query_filter.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/detections/containers/detection_engine/exceptions/get_es_query_filter.ts#:~:text=title), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/utils.ts#:~:text=title), [middleware.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts#:~:text=title), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/components/filter_group/index.tsx#:~:text=title), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/detections/components/detection_page_filters/index.tsx#:~:text=title)+ 28 more | - | +| | [get_query_filter.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/utils/get_query_filter.ts#:~:text=title), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/source/index.tsx#:~:text=title), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/containers/source/index.tsx#:~:text=title), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/components/query_bar/index.tsx#:~:text=title), [use_rule_from_timeline.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/detections/containers/detection_engine/rules/use_rule_from_timeline.tsx#:~:text=title), [get_es_query_filter.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/detections/containers/detection_engine/exceptions/get_es_query_filter.ts#:~:text=title), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/utils.ts#:~:text=title), [middleware.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts#:~:text=title), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/components/filter_group/index.tsx#:~:text=title), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/detections/components/detection_page_filters/index.tsx#:~:text=title)+ 9 more | - | | | [use_update_data_view.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/components/sourcerer/use_update_data_view.tsx#:~:text=toMountPoint), [use_update_data_view.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/components/sourcerer/use_update_data_view.tsx#:~:text=toMountPoint), [use_update_data_view.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/components/sourcerer/use_update_data_view.tsx#:~:text=toMountPoint), [ingest_pipelines.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/explore/containers/risk_score/onboarding/api/ingest_pipelines.ts#:~:text=toMountPoint), [ingest_pipelines.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/explore/containers/risk_score/onboarding/api/ingest_pipelines.ts#:~:text=toMountPoint), [ingest_pipelines.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/explore/containers/risk_score/onboarding/api/ingest_pipelines.ts#:~:text=toMountPoint), [stored_scripts.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/explore/containers/risk_score/onboarding/api/stored_scripts.ts#:~:text=toMountPoint), [stored_scripts.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/explore/containers/risk_score/onboarding/api/stored_scripts.ts#:~:text=toMountPoint), [stored_scripts.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/explore/containers/risk_score/onboarding/api/stored_scripts.ts#:~:text=toMountPoint), [saved_objects.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/explore/containers/risk_score/onboarding/api/saved_objects.ts#:~:text=toMountPoint)+ 3 more | - | | | [app.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/app/app.tsx#:~:text=KibanaThemeProvider), [app.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/app/app.tsx#:~:text=KibanaThemeProvider), [app.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/app/app.tsx#:~:text=KibanaThemeProvider) | - | | | [policy_config.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/common/license/policy_config.test.ts#:~:text=mode), [policy_config.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/common/license/policy_config.test.ts#:~:text=mode), [policy_config.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/common/license/policy_config.test.ts#:~:text=mode), [fleet_integration.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/fleet_integration/fleet_integration.test.ts#:~:text=mode), [fleet_integration.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/fleet_integration/fleet_integration.test.ts#:~:text=mode), [create_default_policy.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/fleet_integration/handlers/create_default_policy.test.ts#:~:text=mode), [create_default_policy.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/fleet_integration/handlers/create_default_policy.test.ts#:~:text=mode), [license_watch.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/endpoint/lib/policy/license_watch.test.ts#:~:text=mode), [license_watch.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/endpoint/lib/policy/license_watch.test.ts#:~:text=mode), [license_watch.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/endpoint/lib/policy/license_watch.test.ts#:~:text=mode)+ 7 more | 8.8.0 | diff --git a/api_docs/deprecations_by_team.mdx b/api_docs/deprecations_by_team.mdx index 86a346dcc28d9..b9d10871a4d39 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- @@ -120,7 +120,7 @@ migrates to using the Kibana Privilege model: https://github.com/elastic/kibana/ | Plugin | Deprecated API | Reference location(s) | Remove By | | --------|-------|-----------|-----------| | ml | | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/plugin.ts#:~:text=license%24), [plugin.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/aiops/public/plugin.tsx#:~:text=license%24) | 8.8.0 | -| ml | | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/plugin.ts#:~:text=license%24), [license.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/transform/server/services/license.ts#:~:text=license%24) | 8.8.0 | +| ml | | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/plugin.ts#:~:text=license%24), [license.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/transform/server/services/license.ts#:~:text=license%24), [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/aiops/server/plugin.ts#:~:text=license%24) | 8.8.0 | diff --git a/api_docs/dev_tools.mdx b/api_docs/dev_tools.mdx index 14fcfc6eb2dc0..238ae40d31a40 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'devTools'] --- import devToolsObj from './dev_tools.devdocs.json'; diff --git a/api_docs/discover.mdx b/api_docs/discover.mdx index 17da7c6e8ac83..068620922588d 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discover'] --- import discoverObj from './discover.devdocs.json'; diff --git a/api_docs/discover_enhanced.mdx b/api_docs/discover_enhanced.mdx index 639642ccde073..7390866525e15 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-03 +date: 2023-10-04 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 76cca1b6fe014..a99c2f8eb1411 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ecsDataQualityDashboard'] --- import ecsDataQualityDashboardObj from './ecs_data_quality_dashboard.devdocs.json'; diff --git a/api_docs/elastic_assistant.mdx b/api_docs/elastic_assistant.mdx index e83988ce14e67..2a80ba9cd8783 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'elasticAssistant'] --- import elasticAssistantObj from './elastic_assistant.devdocs.json'; diff --git a/api_docs/embeddable.mdx b/api_docs/embeddable.mdx index 118057dd7d301..00deb995b5c95 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'embeddable'] --- import embeddableObj from './embeddable.devdocs.json'; diff --git a/api_docs/embeddable_enhanced.mdx b/api_docs/embeddable_enhanced.mdx index d7f3bd4789069..f2ff6b7d655d9 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'embeddableEnhanced'] --- import embeddableEnhancedObj from './embeddable_enhanced.devdocs.json'; diff --git a/api_docs/encrypted_saved_objects.mdx b/api_docs/encrypted_saved_objects.mdx index 4227073a25075..92df92379c1a4 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'encryptedSavedObjects'] --- import encryptedSavedObjectsObj from './encrypted_saved_objects.devdocs.json'; diff --git a/api_docs/enterprise_search.mdx b/api_docs/enterprise_search.mdx index ef1581797820c..8ba7beec0ce61 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-03 +date: 2023-10-04 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 74cb7b5ce06a6..222295607199b 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'esUiShared'] --- import esUiSharedObj from './es_ui_shared.devdocs.json'; diff --git a/api_docs/event_annotation.mdx b/api_docs/event_annotation.mdx index 6f75f1be2cf07..9cebdbcb838fd 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventAnnotation'] --- import eventAnnotationObj from './event_annotation.devdocs.json'; diff --git a/api_docs/event_annotation_listing.mdx b/api_docs/event_annotation_listing.mdx index a4cc63566d061..1d4b555eb678d 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventAnnotationListing'] --- import eventAnnotationListingObj from './event_annotation_listing.devdocs.json'; diff --git a/api_docs/event_log.mdx b/api_docs/event_log.mdx index 9a7d4b8b6fb3a..8c6c6cd16ff30 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventLog'] --- import eventLogObj from './event_log.devdocs.json'; diff --git a/api_docs/exploratory_view.mdx b/api_docs/exploratory_view.mdx index d6a5a18bb049e..37d670daa555d 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'exploratoryView'] --- import exploratoryViewObj from './exploratory_view.devdocs.json'; diff --git a/api_docs/expression_error.mdx b/api_docs/expression_error.mdx index 6cc61b692eb93..1b9a91b390ed8 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionError'] --- import expressionErrorObj from './expression_error.devdocs.json'; diff --git a/api_docs/expression_gauge.mdx b/api_docs/expression_gauge.mdx index 4c434a034fc2a..8226afed10eb6 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionGauge'] --- import expressionGaugeObj from './expression_gauge.devdocs.json'; diff --git a/api_docs/expression_heatmap.mdx b/api_docs/expression_heatmap.mdx index c81c27fe290f1..81a0266817e70 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionHeatmap'] --- import expressionHeatmapObj from './expression_heatmap.devdocs.json'; diff --git a/api_docs/expression_image.mdx b/api_docs/expression_image.mdx index 7f4fa034e7a56..7c7bff6beab7f 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionImage'] --- import expressionImageObj from './expression_image.devdocs.json'; diff --git a/api_docs/expression_legacy_metric_vis.mdx b/api_docs/expression_legacy_metric_vis.mdx index df80ced15c1fc..1533707c0d55c 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionLegacyMetricVis'] --- import expressionLegacyMetricVisObj from './expression_legacy_metric_vis.devdocs.json'; diff --git a/api_docs/expression_metric.mdx b/api_docs/expression_metric.mdx index 1ea36d6f5c6c5..453e5dccca4da 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionMetric'] --- import expressionMetricObj from './expression_metric.devdocs.json'; diff --git a/api_docs/expression_metric_vis.mdx b/api_docs/expression_metric_vis.mdx index acc562223d9d1..8256b7a4d25fe 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionMetricVis'] --- import expressionMetricVisObj from './expression_metric_vis.devdocs.json'; diff --git a/api_docs/expression_partition_vis.mdx b/api_docs/expression_partition_vis.mdx index 7aed3941ccd91..0bcd2e1c069e1 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionPartitionVis'] --- import expressionPartitionVisObj from './expression_partition_vis.devdocs.json'; diff --git a/api_docs/expression_repeat_image.mdx b/api_docs/expression_repeat_image.mdx index 3226452595b6a..08fdea666da30 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionRepeatImage'] --- import expressionRepeatImageObj from './expression_repeat_image.devdocs.json'; diff --git a/api_docs/expression_reveal_image.mdx b/api_docs/expression_reveal_image.mdx index 1a8ff18f94962..2ad70d81f0db3 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionRevealImage'] --- import expressionRevealImageObj from './expression_reveal_image.devdocs.json'; diff --git a/api_docs/expression_shape.mdx b/api_docs/expression_shape.mdx index 2520892eddd7d..5506a938d0ff2 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionShape'] --- import expressionShapeObj from './expression_shape.devdocs.json'; diff --git a/api_docs/expression_tagcloud.mdx b/api_docs/expression_tagcloud.mdx index ac6ddd05c4abd..a6aaa2f548e18 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionTagcloud'] --- import expressionTagcloudObj from './expression_tagcloud.devdocs.json'; diff --git a/api_docs/expression_x_y.mdx b/api_docs/expression_x_y.mdx index d81c138919e0e..e5c6384f99c4c 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionXY'] --- import expressionXYObj from './expression_x_y.devdocs.json'; diff --git a/api_docs/expressions.mdx b/api_docs/expressions.mdx index dd479890b39ab..7b70d059e6285 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressions'] --- import expressionsObj from './expressions.devdocs.json'; diff --git a/api_docs/features.mdx b/api_docs/features.mdx index 1d11dc93166b0..1eea9336254fb 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'features'] --- import featuresObj from './features.devdocs.json'; diff --git a/api_docs/field_formats.mdx b/api_docs/field_formats.mdx index 0dd7d01913000..a7f8564a4da2b 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fieldFormats'] --- import fieldFormatsObj from './field_formats.devdocs.json'; diff --git a/api_docs/file_upload.mdx b/api_docs/file_upload.mdx index 6a15156dc00fb..574406b54f72e 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fileUpload'] --- import fileUploadObj from './file_upload.devdocs.json'; diff --git a/api_docs/files.mdx b/api_docs/files.mdx index ffb8f75442c5d..29e2a7e7ee869 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'files'] --- import filesObj from './files.devdocs.json'; diff --git a/api_docs/files_management.mdx b/api_docs/files_management.mdx index df12ecc432db6..babd1ad4101ad 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'filesManagement'] --- import filesManagementObj from './files_management.devdocs.json'; diff --git a/api_docs/fleet.mdx b/api_docs/fleet.mdx index eb1515947b628..848e80c4294f3 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fleet'] --- import fleetObj from './fleet.devdocs.json'; diff --git a/api_docs/global_search.mdx b/api_docs/global_search.mdx index 311c2d9063694..3b4f019aa6cee 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'globalSearch'] --- import globalSearchObj from './global_search.devdocs.json'; diff --git a/api_docs/guided_onboarding.mdx b/api_docs/guided_onboarding.mdx index 0c1557f00bb45..1362b9f2bcadd 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'guidedOnboarding'] --- import guidedOnboardingObj from './guided_onboarding.devdocs.json'; diff --git a/api_docs/home.mdx b/api_docs/home.mdx index 8f440cc95a011..c3ac645b73385 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'home'] --- import homeObj from './home.devdocs.json'; diff --git a/api_docs/image_embeddable.mdx b/api_docs/image_embeddable.mdx index cb74be56d5413..660b526285c73 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'imageEmbeddable'] --- import imageEmbeddableObj from './image_embeddable.devdocs.json'; diff --git a/api_docs/index_lifecycle_management.mdx b/api_docs/index_lifecycle_management.mdx index 7a32b30be5610..2d60d18aed9be 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'indexLifecycleManagement'] --- import indexLifecycleManagementObj from './index_lifecycle_management.devdocs.json'; diff --git a/api_docs/index_management.mdx b/api_docs/index_management.mdx index 15d1271acb446..a8de454418166 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'indexManagement'] --- import indexManagementObj from './index_management.devdocs.json'; diff --git a/api_docs/infra.mdx b/api_docs/infra.mdx index 17f3a9e594f06..59449d9c99d55 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-03 +date: 2023-10-04 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 119cf2660fe55..dc3ec65a000d3 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'inspector'] --- import inspectorObj from './inspector.devdocs.json'; diff --git a/api_docs/interactive_setup.mdx b/api_docs/interactive_setup.mdx index 95e5e76a9058a..b63a05e5cd721 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'interactiveSetup'] --- import interactiveSetupObj from './interactive_setup.devdocs.json'; diff --git a/api_docs/kbn_ace.mdx b/api_docs/kbn_ace.mdx index c15ed2b164957..eddc7c3011213 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-03 +date: 2023-10-04 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 fdd8996e22739..c2b12c2585d79 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-03 +date: 2023-10-04 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 0ac64b2e53ac5..17395efff2aa7 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-03 +date: 2023-10-04 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 11013aa1805aa..0b109ce3d397e 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerting-api-integration-helpers'] --- import kbnAlertingApiIntegrationHelpersObj from './kbn_alerting_api_integration_helpers.devdocs.json'; diff --git a/api_docs/kbn_alerting_state_types.mdx b/api_docs/kbn_alerting_state_types.mdx index bf29c16a3184f..b36a24fae1c6b 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerting-state-types'] --- import kbnAlertingStateTypesObj from './kbn_alerting_state_types.devdocs.json'; diff --git a/api_docs/kbn_alerts_as_data_utils.mdx b/api_docs/kbn_alerts_as_data_utils.mdx index 711b62fb0ffa2..700b5e310e784 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts-as-data-utils'] --- import kbnAlertsAsDataUtilsObj from './kbn_alerts_as_data_utils.devdocs.json'; diff --git a/api_docs/kbn_alerts_ui_shared.mdx b/api_docs/kbn_alerts_ui_shared.mdx index 6c77e59c3bdf7..629f986829a63 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts-ui-shared'] --- import kbnAlertsUiSharedObj from './kbn_alerts_ui_shared.devdocs.json'; diff --git a/api_docs/kbn_analytics.mdx b/api_docs/kbn_analytics.mdx index 622ffabf84ffd..f4ce75294b55c 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics'] --- import kbnAnalyticsObj from './kbn_analytics.devdocs.json'; diff --git a/api_docs/kbn_analytics_client.mdx b/api_docs/kbn_analytics_client.mdx index af7246b8ec006..e4cd3e8f0b593 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-03 +date: 2023-10-04 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 9a4c60041f739..050ac31dab502 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-elastic-v3-browser'] --- import kbnAnalyticsShippersElasticV3BrowserObj from './kbn_analytics_shippers_elastic_v3_browser.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx b/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx index 96f8d191e74f6..46c29a791c795 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-elastic-v3-common'] --- import kbnAnalyticsShippersElasticV3CommonObj from './kbn_analytics_shippers_elastic_v3_common.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx b/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx index 33eb32bcace3a..da46224b109bf 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-elastic-v3-server'] --- import kbnAnalyticsShippersElasticV3ServerObj from './kbn_analytics_shippers_elastic_v3_server.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_fullstory.mdx b/api_docs/kbn_analytics_shippers_fullstory.mdx index 8bba87a242d49..7645fcf4d2d94 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-fullstory'] --- import kbnAnalyticsShippersFullstoryObj from './kbn_analytics_shippers_fullstory.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_gainsight.mdx b/api_docs/kbn_analytics_shippers_gainsight.mdx index 54a227ec3c8e4..d4461115614b9 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-03 +date: 2023-10-04 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 dfc6e7119d6c6..a426de3247da4 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-config-loader'] --- import kbnApmConfigLoaderObj from './kbn_apm_config_loader.devdocs.json'; diff --git a/api_docs/kbn_apm_synthtrace.mdx b/api_docs/kbn_apm_synthtrace.mdx index 435cd177d3862..311ce4475a935 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-synthtrace'] --- import kbnApmSynthtraceObj from './kbn_apm_synthtrace.devdocs.json'; diff --git a/api_docs/kbn_apm_synthtrace_client.mdx b/api_docs/kbn_apm_synthtrace_client.mdx index 972441d77b541..838e32eb9a262 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-synthtrace-client'] --- import kbnApmSynthtraceClientObj from './kbn_apm_synthtrace_client.devdocs.json'; diff --git a/api_docs/kbn_apm_utils.mdx b/api_docs/kbn_apm_utils.mdx index 0eea1ac5a583f..97a176d006159 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-utils'] --- import kbnApmUtilsObj from './kbn_apm_utils.devdocs.json'; diff --git a/api_docs/kbn_axe_config.mdx b/api_docs/kbn_axe_config.mdx index a9604dc24c2c1..eae91b473cb53 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-03 +date: 2023-10-04 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 86a26091bee34..e71bfdca41094 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cases-components'] --- import kbnCasesComponentsObj from './kbn_cases_components.devdocs.json'; diff --git a/api_docs/kbn_cell_actions.mdx b/api_docs/kbn_cell_actions.mdx index 455dfad92b250..f510d835d4e32 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cell-actions'] --- import kbnCellActionsObj from './kbn_cell_actions.devdocs.json'; diff --git a/api_docs/kbn_chart_expressions_common.mdx b/api_docs/kbn_chart_expressions_common.mdx index 4ab10a99e81a4..390edf689fbbd 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/chart-expressions-common'] --- import kbnChartExpressionsCommonObj from './kbn_chart_expressions_common.devdocs.json'; diff --git a/api_docs/kbn_chart_icons.mdx b/api_docs/kbn_chart_icons.mdx index 3a3304bbe253c..3cc18b1c2d517 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/chart-icons'] --- import kbnChartIconsObj from './kbn_chart_icons.devdocs.json'; diff --git a/api_docs/kbn_ci_stats_core.mdx b/api_docs/kbn_ci_stats_core.mdx index 4b94db5472494..7c0c354823b90 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ci-stats-core'] --- import kbnCiStatsCoreObj from './kbn_ci_stats_core.devdocs.json'; diff --git a/api_docs/kbn_ci_stats_performance_metrics.mdx b/api_docs/kbn_ci_stats_performance_metrics.mdx index 391ff5e0ba1b3..8eb28b43c63b8 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ci-stats-performance-metrics'] --- import kbnCiStatsPerformanceMetricsObj from './kbn_ci_stats_performance_metrics.devdocs.json'; diff --git a/api_docs/kbn_ci_stats_reporter.mdx b/api_docs/kbn_ci_stats_reporter.mdx index f916bab085bb5..1ce5c5f2274d9 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ci-stats-reporter'] --- import kbnCiStatsReporterObj from './kbn_ci_stats_reporter.devdocs.json'; diff --git a/api_docs/kbn_cli_dev_mode.mdx b/api_docs/kbn_cli_dev_mode.mdx index f96bb8172e1b2..7da38d1ded8fa 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cli-dev-mode'] --- import kbnCliDevModeObj from './kbn_cli_dev_mode.devdocs.json'; diff --git a/api_docs/kbn_code_editor.mdx b/api_docs/kbn_code_editor.mdx index 49c1fe515c925..7f2d3c5a5c82b 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-editor'] --- import kbnCodeEditorObj from './kbn_code_editor.devdocs.json'; diff --git a/api_docs/kbn_code_editor_mocks.mdx b/api_docs/kbn_code_editor_mocks.mdx index 2d2e07689660b..c9e201e7e662c 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-03 +date: 2023-10-04 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 a14916519cabd..25b484ce3e5f0 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/coloring'] --- import kbnColoringObj from './kbn_coloring.devdocs.json'; diff --git a/api_docs/kbn_config.mdx b/api_docs/kbn_config.mdx index a0dc27b59df5f..adfb1aa3fca7f 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config'] --- import kbnConfigObj from './kbn_config.devdocs.json'; diff --git a/api_docs/kbn_config_mocks.mdx b/api_docs/kbn_config_mocks.mdx index 7d55cdbc1b43d..355fa2434225f 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config-mocks'] --- import kbnConfigMocksObj from './kbn_config_mocks.devdocs.json'; diff --git a/api_docs/kbn_config_schema.mdx b/api_docs/kbn_config_schema.mdx index 66c9c83ec8a6c..abe297cfee59e 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config-schema'] --- import kbnConfigSchemaObj from './kbn_config_schema.devdocs.json'; diff --git a/api_docs/kbn_content_management_content_editor.mdx b/api_docs/kbn_content_management_content_editor.mdx index 85fc2b4ef160a..1fe4613e66472 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-content-editor'] --- import kbnContentManagementContentEditorObj from './kbn_content_management_content_editor.devdocs.json'; diff --git a/api_docs/kbn_content_management_tabbed_table_list_view.mdx b/api_docs/kbn_content_management_tabbed_table_list_view.mdx index f358121c1e786..efe1b163da05e 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-tabbed-table-list-view'] --- import kbnContentManagementTabbedTableListViewObj from './kbn_content_management_tabbed_table_list_view.devdocs.json'; diff --git a/api_docs/kbn_content_management_table_list_view.mdx b/api_docs/kbn_content_management_table_list_view.mdx index 8233e8e38ada6..88878002f7136 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-table-list-view'] --- import kbnContentManagementTableListViewObj from './kbn_content_management_table_list_view.devdocs.json'; diff --git a/api_docs/kbn_content_management_table_list_view_table.mdx b/api_docs/kbn_content_management_table_list_view_table.mdx index 47b51b988df95..ad683c3f39712 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-table-list-view-table'] --- import kbnContentManagementTableListViewTableObj from './kbn_content_management_table_list_view_table.devdocs.json'; diff --git a/api_docs/kbn_content_management_utils.mdx b/api_docs/kbn_content_management_utils.mdx index fb3d47f36e953..3cbce545bae6a 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-utils'] --- import kbnContentManagementUtilsObj from './kbn_content_management_utils.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_browser.mdx b/api_docs/kbn_core_analytics_browser.mdx index b7bc981242754..96fc9b553ec79 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-browser'] --- import kbnCoreAnalyticsBrowserObj from './kbn_core_analytics_browser.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_browser_internal.mdx b/api_docs/kbn_core_analytics_browser_internal.mdx index 591e6054d5ccf..8d03118fe4acc 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-browser-internal'] --- import kbnCoreAnalyticsBrowserInternalObj from './kbn_core_analytics_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_browser_mocks.mdx b/api_docs/kbn_core_analytics_browser_mocks.mdx index 69293c25e96ea..34a4579235f35 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-browser-mocks'] --- import kbnCoreAnalyticsBrowserMocksObj from './kbn_core_analytics_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_server.mdx b/api_docs/kbn_core_analytics_server.mdx index f28e929c72c3e..1f9f99069c43c 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-server'] --- import kbnCoreAnalyticsServerObj from './kbn_core_analytics_server.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_server_internal.mdx b/api_docs/kbn_core_analytics_server_internal.mdx index a46ef0d3718c7..c9678edd1a781 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-server-internal'] --- import kbnCoreAnalyticsServerInternalObj from './kbn_core_analytics_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_server_mocks.mdx b/api_docs/kbn_core_analytics_server_mocks.mdx index 393dd5492704d..087da7b66a7fe 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-server-mocks'] --- import kbnCoreAnalyticsServerMocksObj from './kbn_core_analytics_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_application_browser.mdx b/api_docs/kbn_core_application_browser.mdx index 09f14eeb19884..bb23b12e8ea9d 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-browser'] --- import kbnCoreApplicationBrowserObj from './kbn_core_application_browser.devdocs.json'; diff --git a/api_docs/kbn_core_application_browser_internal.mdx b/api_docs/kbn_core_application_browser_internal.mdx index fece4f2fdf3c3..281ce96184988 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-browser-internal'] --- import kbnCoreApplicationBrowserInternalObj from './kbn_core_application_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_application_browser_mocks.mdx b/api_docs/kbn_core_application_browser_mocks.mdx index 4ce3449d8a4f7..6cebcbf3745d0 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-browser-mocks'] --- import kbnCoreApplicationBrowserMocksObj from './kbn_core_application_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_application_common.mdx b/api_docs/kbn_core_application_common.mdx index 02f01a938b47a..cc6cd6f93f082 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-common'] --- import kbnCoreApplicationCommonObj from './kbn_core_application_common.devdocs.json'; diff --git a/api_docs/kbn_core_apps_browser_internal.mdx b/api_docs/kbn_core_apps_browser_internal.mdx index e32a6ccf183f9..d73e4c10578b1 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-apps-browser-internal'] --- import kbnCoreAppsBrowserInternalObj from './kbn_core_apps_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_apps_browser_mocks.mdx b/api_docs/kbn_core_apps_browser_mocks.mdx index b07c5a804dbad..9c1cdf6c52abc 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-apps-browser-mocks'] --- import kbnCoreAppsBrowserMocksObj from './kbn_core_apps_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_apps_server_internal.mdx b/api_docs/kbn_core_apps_server_internal.mdx index 29914546f83af..f615c70a4ad85 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-apps-server-internal'] --- import kbnCoreAppsServerInternalObj from './kbn_core_apps_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_base_browser_mocks.mdx b/api_docs/kbn_core_base_browser_mocks.mdx index 0a6acf72ed3e3..7c630ed3543d4 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-browser-mocks'] --- import kbnCoreBaseBrowserMocksObj from './kbn_core_base_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_base_common.mdx b/api_docs/kbn_core_base_common.mdx index cbd846523d9a8..c86578d403d06 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-common'] --- import kbnCoreBaseCommonObj from './kbn_core_base_common.devdocs.json'; diff --git a/api_docs/kbn_core_base_server_internal.mdx b/api_docs/kbn_core_base_server_internal.mdx index 93479c8de44be..8ae992ea3a230 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-server-internal'] --- import kbnCoreBaseServerInternalObj from './kbn_core_base_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_base_server_mocks.mdx b/api_docs/kbn_core_base_server_mocks.mdx index ef819d2ced1cd..fe17576adfb01 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-server-mocks'] --- import kbnCoreBaseServerMocksObj from './kbn_core_base_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_capabilities_browser_mocks.mdx b/api_docs/kbn_core_capabilities_browser_mocks.mdx index 721280a5730b6..7f19981f3d57f 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-browser-mocks'] --- import kbnCoreCapabilitiesBrowserMocksObj from './kbn_core_capabilities_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_capabilities_common.mdx b/api_docs/kbn_core_capabilities_common.mdx index 3a1a0622305d9..c9f49f6962342 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-common'] --- import kbnCoreCapabilitiesCommonObj from './kbn_core_capabilities_common.devdocs.json'; diff --git a/api_docs/kbn_core_capabilities_server.mdx b/api_docs/kbn_core_capabilities_server.mdx index 4e86f3e278055..664bb01c9b9f9 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-server'] --- import kbnCoreCapabilitiesServerObj from './kbn_core_capabilities_server.devdocs.json'; diff --git a/api_docs/kbn_core_capabilities_server_mocks.mdx b/api_docs/kbn_core_capabilities_server_mocks.mdx index 980e8b3aa7749..bf7d1d0a26721 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-server-mocks'] --- import kbnCoreCapabilitiesServerMocksObj from './kbn_core_capabilities_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_chrome_browser.mdx b/api_docs/kbn_core_chrome_browser.mdx index 52f27f013fc45..1ed5d87c0543a 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-chrome-browser'] --- import kbnCoreChromeBrowserObj from './kbn_core_chrome_browser.devdocs.json'; diff --git a/api_docs/kbn_core_chrome_browser_mocks.mdx b/api_docs/kbn_core_chrome_browser_mocks.mdx index 18ae872c1f1df..b6204480a8099 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-chrome-browser-mocks'] --- import kbnCoreChromeBrowserMocksObj from './kbn_core_chrome_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_config_server_internal.mdx b/api_docs/kbn_core_config_server_internal.mdx index 6a0984948ed4d..969ca5a6d49c2 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-config-server-internal'] --- import kbnCoreConfigServerInternalObj from './kbn_core_config_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_browser.mdx b/api_docs/kbn_core_custom_branding_browser.mdx index 63eb8500ee7ad..7289c0475cfdf 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser'] --- import kbnCoreCustomBrandingBrowserObj from './kbn_core_custom_branding_browser.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_browser_internal.mdx b/api_docs/kbn_core_custom_branding_browser_internal.mdx index eb21e58ac7bc6..57907642925c0 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser-internal'] --- import kbnCoreCustomBrandingBrowserInternalObj from './kbn_core_custom_branding_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_browser_mocks.mdx b/api_docs/kbn_core_custom_branding_browser_mocks.mdx index cdd3b08f5931b..ff9c078288354 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser-mocks'] --- import kbnCoreCustomBrandingBrowserMocksObj from './kbn_core_custom_branding_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_common.mdx b/api_docs/kbn_core_custom_branding_common.mdx index e98ff23262c7f..83fa609336574 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-common'] --- import kbnCoreCustomBrandingCommonObj from './kbn_core_custom_branding_common.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_server.mdx b/api_docs/kbn_core_custom_branding_server.mdx index b7c564cf3eb28..98b99cfc39b13 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server'] --- import kbnCoreCustomBrandingServerObj from './kbn_core_custom_branding_server.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_server_internal.mdx b/api_docs/kbn_core_custom_branding_server_internal.mdx index 411308e1a35a3..d77dcbb152441 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server-internal'] --- import kbnCoreCustomBrandingServerInternalObj from './kbn_core_custom_branding_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_server_mocks.mdx b/api_docs/kbn_core_custom_branding_server_mocks.mdx index 1e3ff95472227..957b6753dc31a 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server-mocks'] --- import kbnCoreCustomBrandingServerMocksObj from './kbn_core_custom_branding_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_browser.mdx b/api_docs/kbn_core_deprecations_browser.mdx index f72cb45c672b8..dd9b8abf41be7 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-browser'] --- import kbnCoreDeprecationsBrowserObj from './kbn_core_deprecations_browser.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_browser_internal.mdx b/api_docs/kbn_core_deprecations_browser_internal.mdx index 1718544bf9cbb..ac7571da0b2db 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-browser-internal'] --- import kbnCoreDeprecationsBrowserInternalObj from './kbn_core_deprecations_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_browser_mocks.mdx b/api_docs/kbn_core_deprecations_browser_mocks.mdx index 72b86ed722952..5efb83f3307bd 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-browser-mocks'] --- import kbnCoreDeprecationsBrowserMocksObj from './kbn_core_deprecations_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_common.mdx b/api_docs/kbn_core_deprecations_common.mdx index 1a3cfb1b7e41e..0e9c94a9269c3 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-common'] --- import kbnCoreDeprecationsCommonObj from './kbn_core_deprecations_common.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_server.mdx b/api_docs/kbn_core_deprecations_server.mdx index 40fd9b4254459..7920bd0900222 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-server'] --- import kbnCoreDeprecationsServerObj from './kbn_core_deprecations_server.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_server_internal.mdx b/api_docs/kbn_core_deprecations_server_internal.mdx index 9ba765d5b6edd..8a772cadb6f33 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-server-internal'] --- import kbnCoreDeprecationsServerInternalObj from './kbn_core_deprecations_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_server_mocks.mdx b/api_docs/kbn_core_deprecations_server_mocks.mdx index 32f3b1a4310c4..342cbf06052ce 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-server-mocks'] --- import kbnCoreDeprecationsServerMocksObj from './kbn_core_deprecations_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_doc_links_browser.mdx b/api_docs/kbn_core_doc_links_browser.mdx index dbce97ed8139b..15d00fa8a9c0a 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-browser'] --- import kbnCoreDocLinksBrowserObj from './kbn_core_doc_links_browser.devdocs.json'; diff --git a/api_docs/kbn_core_doc_links_browser_mocks.mdx b/api_docs/kbn_core_doc_links_browser_mocks.mdx index b8bebcacd13ee..a270167e53110 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-browser-mocks'] --- import kbnCoreDocLinksBrowserMocksObj from './kbn_core_doc_links_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_doc_links_server.mdx b/api_docs/kbn_core_doc_links_server.mdx index 7e7a99817f633..a7e257b21e686 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-server'] --- import kbnCoreDocLinksServerObj from './kbn_core_doc_links_server.devdocs.json'; diff --git a/api_docs/kbn_core_doc_links_server_mocks.mdx b/api_docs/kbn_core_doc_links_server_mocks.mdx index 15250578f8089..527ec2f5df9fb 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-server-mocks'] --- import kbnCoreDocLinksServerMocksObj from './kbn_core_doc_links_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_elasticsearch_client_server_internal.mdx b/api_docs/kbn_core_elasticsearch_client_server_internal.mdx index b9d3840a52a03..be7963a1bb8eb 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-client-server-internal'] --- import kbnCoreElasticsearchClientServerInternalObj from './kbn_core_elasticsearch_client_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx b/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx index 3acd4d2cc710b..21a60d25046fd 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-client-server-mocks'] --- import kbnCoreElasticsearchClientServerMocksObj from './kbn_core_elasticsearch_client_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_elasticsearch_server.mdx b/api_docs/kbn_core_elasticsearch_server.mdx index 1136fb571b293..3af0a99784b75 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-server'] --- import kbnCoreElasticsearchServerObj from './kbn_core_elasticsearch_server.devdocs.json'; diff --git a/api_docs/kbn_core_elasticsearch_server_internal.mdx b/api_docs/kbn_core_elasticsearch_server_internal.mdx index daa6523d60a2f..f49735b9b263a 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-server-internal'] --- import kbnCoreElasticsearchServerInternalObj from './kbn_core_elasticsearch_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_elasticsearch_server_mocks.mdx b/api_docs/kbn_core_elasticsearch_server_mocks.mdx index 130b30d8211a0..0f1604993ebbb 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-server-mocks'] --- import kbnCoreElasticsearchServerMocksObj from './kbn_core_elasticsearch_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_environment_server_internal.mdx b/api_docs/kbn_core_environment_server_internal.mdx index d68dab225210c..bbe87b748077d 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-environment-server-internal'] --- import kbnCoreEnvironmentServerInternalObj from './kbn_core_environment_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_environment_server_mocks.mdx b/api_docs/kbn_core_environment_server_mocks.mdx index 8ad822c48e56d..3f20471c1931d 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-environment-server-mocks'] --- import kbnCoreEnvironmentServerMocksObj from './kbn_core_environment_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_browser.mdx b/api_docs/kbn_core_execution_context_browser.mdx index 2cd421e035005..068ce3276dcaa 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-browser'] --- import kbnCoreExecutionContextBrowserObj from './kbn_core_execution_context_browser.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_browser_internal.mdx b/api_docs/kbn_core_execution_context_browser_internal.mdx index 347de818e0987..b7d1d6977cc0e 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-browser-internal'] --- import kbnCoreExecutionContextBrowserInternalObj from './kbn_core_execution_context_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_browser_mocks.mdx b/api_docs/kbn_core_execution_context_browser_mocks.mdx index e2234a70e32cf..557c3d83a1664 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-browser-mocks'] --- import kbnCoreExecutionContextBrowserMocksObj from './kbn_core_execution_context_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_common.mdx b/api_docs/kbn_core_execution_context_common.mdx index 8a9a494e2d7b7..526d856120728 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-common'] --- import kbnCoreExecutionContextCommonObj from './kbn_core_execution_context_common.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_server.mdx b/api_docs/kbn_core_execution_context_server.mdx index 10e1b351ee3ba..fb4b13e04f778 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-server'] --- import kbnCoreExecutionContextServerObj from './kbn_core_execution_context_server.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_server_internal.mdx b/api_docs/kbn_core_execution_context_server_internal.mdx index 33d713cdad1fc..416305d3304c1 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-server-internal'] --- import kbnCoreExecutionContextServerInternalObj from './kbn_core_execution_context_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_server_mocks.mdx b/api_docs/kbn_core_execution_context_server_mocks.mdx index 9054924d9632a..82cb2abc519aa 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-server-mocks'] --- import kbnCoreExecutionContextServerMocksObj from './kbn_core_execution_context_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_fatal_errors_browser.mdx b/api_docs/kbn_core_fatal_errors_browser.mdx index 29e040e53524b..b77b9ec5b5bf9 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-fatal-errors-browser'] --- import kbnCoreFatalErrorsBrowserObj from './kbn_core_fatal_errors_browser.devdocs.json'; diff --git a/api_docs/kbn_core_fatal_errors_browser_mocks.mdx b/api_docs/kbn_core_fatal_errors_browser_mocks.mdx index 6e7c96316b005..d418bd45971be 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-fatal-errors-browser-mocks'] --- import kbnCoreFatalErrorsBrowserMocksObj from './kbn_core_fatal_errors_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_browser.mdx b/api_docs/kbn_core_http_browser.mdx index ae45369820833..4d8aed97b127a 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-browser'] --- import kbnCoreHttpBrowserObj from './kbn_core_http_browser.devdocs.json'; diff --git a/api_docs/kbn_core_http_browser_internal.mdx b/api_docs/kbn_core_http_browser_internal.mdx index baafd675f507f..22aca6a0bab37 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-browser-internal'] --- import kbnCoreHttpBrowserInternalObj from './kbn_core_http_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_http_browser_mocks.mdx b/api_docs/kbn_core_http_browser_mocks.mdx index 557bd3b7ca668..8964716d4d7d1 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-browser-mocks'] --- import kbnCoreHttpBrowserMocksObj from './kbn_core_http_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_common.mdx b/api_docs/kbn_core_http_common.mdx index daa78d3be8e0f..513e082be4958 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-common'] --- import kbnCoreHttpCommonObj from './kbn_core_http_common.devdocs.json'; diff --git a/api_docs/kbn_core_http_context_server_mocks.mdx b/api_docs/kbn_core_http_context_server_mocks.mdx index b3f53ac0ab28a..fec6873ab6b71 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-context-server-mocks'] --- import kbnCoreHttpContextServerMocksObj from './kbn_core_http_context_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_request_handler_context_server.mdx b/api_docs/kbn_core_http_request_handler_context_server.mdx index f93c38cbe0230..ef4148d762d89 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-request-handler-context-server'] --- import kbnCoreHttpRequestHandlerContextServerObj from './kbn_core_http_request_handler_context_server.devdocs.json'; diff --git a/api_docs/kbn_core_http_resources_server.mdx b/api_docs/kbn_core_http_resources_server.mdx index 165dd9bcdc442..27bf92d460a94 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-resources-server'] --- import kbnCoreHttpResourcesServerObj from './kbn_core_http_resources_server.devdocs.json'; diff --git a/api_docs/kbn_core_http_resources_server_internal.mdx b/api_docs/kbn_core_http_resources_server_internal.mdx index 959ef1078922a..ac32abd746c73 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-resources-server-internal'] --- import kbnCoreHttpResourcesServerInternalObj from './kbn_core_http_resources_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_http_resources_server_mocks.mdx b/api_docs/kbn_core_http_resources_server_mocks.mdx index 26f188039bbb8..4f9ade14cffc4 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-resources-server-mocks'] --- import kbnCoreHttpResourcesServerMocksObj from './kbn_core_http_resources_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_router_server_internal.mdx b/api_docs/kbn_core_http_router_server_internal.mdx index cfe686508e1a1..2a590a816ee79 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-router-server-internal'] --- import kbnCoreHttpRouterServerInternalObj from './kbn_core_http_router_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_http_router_server_mocks.mdx b/api_docs/kbn_core_http_router_server_mocks.mdx index 167fa2468fd79..9985d442babd6 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-router-server-mocks'] --- import kbnCoreHttpRouterServerMocksObj from './kbn_core_http_router_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_server.devdocs.json b/api_docs/kbn_core_http_server.devdocs.json index 8e3a44972fa2e..52c4d79d9fc03 100644 --- a/api_docs/kbn_core_http_server.devdocs.json +++ b/api_docs/kbn_core_http_server.devdocs.json @@ -4291,22 +4291,6 @@ "plugin": "monitoring", "path": "x-pack/plugins/monitoring/server/plugin.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/timeline/routes/timelines/get_timeline/index.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/timeline/routes/timelines/get_timelines/index.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/timeline/routes/timelines/resolve_timeline/index.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/timeline/routes/draft_timelines/get_draft_timelines/index.ts" - }, { "plugin": "securitySolution", "path": "x-pack/plugins/security_solution/server/endpoint/routes/resolver.ts" @@ -6077,6 +6061,10 @@ "plugin": "alerting", "path": "x-pack/plugins/alerting/server/routes/update_flapping_settings.ts" }, + { + "plugin": "alerting", + "path": "x-pack/plugins/alerting/server/routes/rule/apis/bulk_untrack/bulk_untrack_alert_route.ts" + }, { "plugin": "alerting", "path": "x-pack/plugins/alerting/server/routes/maintenance_window/apis/create/create_maintenance_window_route.ts" @@ -6701,26 +6689,6 @@ "plugin": "monitoring", "path": "x-pack/plugins/monitoring/server/plugin.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/timeline/routes/timelines/create_timelines/index.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/timeline/routes/timelines/import_timelines/index.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/timeline/routes/prepackaged_timelines/install_prepackaged_timelines/index.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/timeline/routes/timelines/export_timelines/index.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/timeline/routes/draft_timelines/clean_draft_timelines/index.ts" - }, { "plugin": "securitySolution", "path": "x-pack/plugins/security_solution/server/endpoint/routes/resolver.ts" @@ -6785,6 +6753,10 @@ "plugin": "snapshotRestore", "path": "x-pack/plugins/snapshot_restore/server/routes/api/policy.ts" }, + { + "plugin": "stackConnectors", + "path": "x-pack/plugins/stack_connectors/server/routes/valid_slack_api_channels.ts" + }, { "plugin": "synthetics", "path": "x-pack/plugins/synthetics/server/server.ts" @@ -8597,22 +8569,6 @@ "plugin": "infra", "path": "x-pack/plugins/infra/server/lib/adapters/framework/kibana_framework_adapter.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/timeline/routes/timelines/patch_timelines/index.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/timeline/routes/timelines/persist_favorite/index.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/timeline/routes/notes/persist_note.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/timeline/routes/pinned_events/persist_pinned_event.ts" - }, { "plugin": "@kbn/core-http-router-server-internal", "path": "packages/core/http/core-http-router-server-internal/src/router.ts" @@ -9119,14 +9075,6 @@ "plugin": "logstash", "path": "x-pack/plugins/logstash/server/routes/pipeline/delete.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/timeline/routes/timelines/delete_timelines/index.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/timeline/routes/notes/delete_note.ts" - }, { "plugin": "reporting", "path": "x-pack/plugins/reporting/server/test_helpers/create_mock_reportingplugin.ts" @@ -13473,6 +13421,22 @@ "plugin": "securitySolution", "path": "x-pack/plugins/security_solution/server/lib/detection_engine/routes/privileges/read_privileges_route.ts" }, + { + "plugin": "securitySolution", + "path": "x-pack/plugins/security_solution/server/lib/timeline/routes/timelines/get_timeline/index.ts" + }, + { + "plugin": "securitySolution", + "path": "x-pack/plugins/security_solution/server/lib/timeline/routes/timelines/get_timelines/index.ts" + }, + { + "plugin": "securitySolution", + "path": "x-pack/plugins/security_solution/server/lib/timeline/routes/timelines/resolve_timeline/index.ts" + }, + { + "plugin": "securitySolution", + "path": "x-pack/plugins/security_solution/server/lib/timeline/routes/draft_timelines/get_draft_timelines/index.ts" + }, { "plugin": "securitySolution", "path": "x-pack/plugins/security_solution/server/lib/detection_engine/routes/telemetry/telemetry_detection_rules_preview_route.ts" @@ -14557,6 +14521,18 @@ "plugin": "maps", "path": "x-pack/plugins/maps/server/data_indexing/indexing_routes.ts" }, + { + "plugin": "securitySolution", + "path": "x-pack/plugins/security_solution/server/lib/timeline/routes/timelines/create_timelines/index.ts" + }, + { + "plugin": "securitySolution", + "path": "x-pack/plugins/security_solution/server/lib/timeline/routes/timelines/import_timelines/index.ts" + }, + { + "plugin": "securitySolution", + "path": "x-pack/plugins/security_solution/server/lib/timeline/routes/prepackaged_timelines/install_prepackaged_timelines/index.ts" + }, { "plugin": "osquery", "path": "x-pack/plugins/osquery/server/routes/live_query/create_live_query_route.ts" @@ -14665,6 +14641,14 @@ "plugin": "securitySolution", "path": "x-pack/plugins/security_solution/server/lib/detection_engine/routes/signals/open_close_signals_route.ts" }, + { + "plugin": "securitySolution", + "path": "x-pack/plugins/security_solution/server/lib/timeline/routes/timelines/export_timelines/index.ts" + }, + { + "plugin": "securitySolution", + "path": "x-pack/plugins/security_solution/server/lib/timeline/routes/draft_timelines/clean_draft_timelines/index.ts" + }, { "plugin": "securitySolution", "path": "x-pack/plugins/security_solution/server/lib/risk_score/indices/delete_indices_route.ts" @@ -14953,6 +14937,22 @@ "plugin": "securitySolution", "path": "x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/patch_rule/route.ts" }, + { + "plugin": "securitySolution", + "path": "x-pack/plugins/security_solution/server/lib/timeline/routes/timelines/patch_timelines/index.ts" + }, + { + "plugin": "securitySolution", + "path": "x-pack/plugins/security_solution/server/lib/timeline/routes/timelines/persist_favorite/index.ts" + }, + { + "plugin": "securitySolution", + "path": "x-pack/plugins/security_solution/server/lib/timeline/routes/notes/persist_note.ts" + }, + { + "plugin": "securitySolution", + "path": "x-pack/plugins/security_solution/server/lib/timeline/routes/pinned_events/persist_pinned_event.ts" + }, { "plugin": "@kbn/core-http-router-server-internal", "path": "packages/core/http/core-http-router-server-internal/src/versioned_router/core_versioned_router.ts" @@ -15161,6 +15161,14 @@ "plugin": "securitySolution", "path": "x-pack/plugins/security_solution/server/lib/detection_engine/routes/index/delete_index_route.ts" }, + { + "plugin": "securitySolution", + "path": "x-pack/plugins/security_solution/server/lib/timeline/routes/timelines/delete_timelines/index.ts" + }, + { + "plugin": "securitySolution", + "path": "x-pack/plugins/security_solution/server/lib/timeline/routes/notes/delete_note.ts" + }, { "plugin": "securitySolution", "path": "x-pack/plugins/security_solution/server/lib/risk_score/stored_scripts/delete_script_route.ts" diff --git a/api_docs/kbn_core_http_server.mdx b/api_docs/kbn_core_http_server.mdx index 076338f11afd5..c90bf8799f663 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-server'] --- import kbnCoreHttpServerObj from './kbn_core_http_server.devdocs.json'; diff --git a/api_docs/kbn_core_http_server_internal.mdx b/api_docs/kbn_core_http_server_internal.mdx index 4c4ce150a6795..532b7a6bf1ca7 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-03 +date: 2023-10-04 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 e2f170268cfbf..fe959d8f5d1a1 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-server-mocks'] --- import kbnCoreHttpServerMocksObj from './kbn_core_http_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_i18n_browser.mdx b/api_docs/kbn_core_i18n_browser.mdx index 1faca0d853081..12444c9c0b8a4 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-browser'] --- import kbnCoreI18nBrowserObj from './kbn_core_i18n_browser.devdocs.json'; diff --git a/api_docs/kbn_core_i18n_browser_mocks.mdx b/api_docs/kbn_core_i18n_browser_mocks.mdx index 97d4eab6e5dbe..1bcd6ea14bd11 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-browser-mocks'] --- import kbnCoreI18nBrowserMocksObj from './kbn_core_i18n_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_i18n_server.mdx b/api_docs/kbn_core_i18n_server.mdx index 7e6a3de30ca06..1b168c74b8b58 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-server'] --- import kbnCoreI18nServerObj from './kbn_core_i18n_server.devdocs.json'; diff --git a/api_docs/kbn_core_i18n_server_internal.mdx b/api_docs/kbn_core_i18n_server_internal.mdx index 94b3cf0e6622d..db79b11229bb4 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-server-internal'] --- import kbnCoreI18nServerInternalObj from './kbn_core_i18n_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_i18n_server_mocks.mdx b/api_docs/kbn_core_i18n_server_mocks.mdx index 9ee5bcfc76eee..b28d89e823714 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-server-mocks'] --- import kbnCoreI18nServerMocksObj from './kbn_core_i18n_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_injected_metadata_browser_mocks.mdx b/api_docs/kbn_core_injected_metadata_browser_mocks.mdx index 1774b61303f95..bda20eb073852 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-injected-metadata-browser-mocks'] --- import kbnCoreInjectedMetadataBrowserMocksObj from './kbn_core_injected_metadata_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_integrations_browser_internal.mdx b/api_docs/kbn_core_integrations_browser_internal.mdx index acdeda1426d19..152ec865a023c 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-integrations-browser-internal'] --- import kbnCoreIntegrationsBrowserInternalObj from './kbn_core_integrations_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_integrations_browser_mocks.mdx b/api_docs/kbn_core_integrations_browser_mocks.mdx index 20ddafa360f4b..0e648f41445e7 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-integrations-browser-mocks'] --- import kbnCoreIntegrationsBrowserMocksObj from './kbn_core_integrations_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_lifecycle_browser.mdx b/api_docs/kbn_core_lifecycle_browser.mdx index e4f24b2b7c50e..92043c6e048f4 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-browser'] --- import kbnCoreLifecycleBrowserObj from './kbn_core_lifecycle_browser.devdocs.json'; diff --git a/api_docs/kbn_core_lifecycle_browser_mocks.mdx b/api_docs/kbn_core_lifecycle_browser_mocks.mdx index 0242cf4f4fc8a..d80f89e60458f 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-browser-mocks'] --- import kbnCoreLifecycleBrowserMocksObj from './kbn_core_lifecycle_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_lifecycle_server.mdx b/api_docs/kbn_core_lifecycle_server.mdx index 7cd438589fe03..5f6874f0f947e 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-server'] --- import kbnCoreLifecycleServerObj from './kbn_core_lifecycle_server.devdocs.json'; diff --git a/api_docs/kbn_core_lifecycle_server_mocks.mdx b/api_docs/kbn_core_lifecycle_server_mocks.mdx index b47762565fe3c..e09c0816da08c 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-server-mocks'] --- import kbnCoreLifecycleServerMocksObj from './kbn_core_lifecycle_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_logging_browser_mocks.mdx b/api_docs/kbn_core_logging_browser_mocks.mdx index 4db400d544492..56982d0b02411 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-browser-mocks'] --- import kbnCoreLoggingBrowserMocksObj from './kbn_core_logging_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_logging_common_internal.mdx b/api_docs/kbn_core_logging_common_internal.mdx index 33fac30696ff6..7b210b2e1c977 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-03 +date: 2023-10-04 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 d9488ef55f67f..8faee45bb3cb1 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-server'] --- import kbnCoreLoggingServerObj from './kbn_core_logging_server.devdocs.json'; diff --git a/api_docs/kbn_core_logging_server_internal.mdx b/api_docs/kbn_core_logging_server_internal.mdx index 48616b4dc6510..c9066c2d388bc 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-server-internal'] --- import kbnCoreLoggingServerInternalObj from './kbn_core_logging_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_logging_server_mocks.mdx b/api_docs/kbn_core_logging_server_mocks.mdx index e78cc651df943..f8741125c30fa 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-server-mocks'] --- import kbnCoreLoggingServerMocksObj from './kbn_core_logging_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_metrics_collectors_server_internal.mdx b/api_docs/kbn_core_metrics_collectors_server_internal.mdx index 46770c82d70f0..eaf4235e55930 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-collectors-server-internal'] --- import kbnCoreMetricsCollectorsServerInternalObj from './kbn_core_metrics_collectors_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_metrics_collectors_server_mocks.mdx b/api_docs/kbn_core_metrics_collectors_server_mocks.mdx index f0e50c25f7347..377853939d053 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-collectors-server-mocks'] --- import kbnCoreMetricsCollectorsServerMocksObj from './kbn_core_metrics_collectors_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_metrics_server.mdx b/api_docs/kbn_core_metrics_server.mdx index 4020b2469882a..a1ed8bca0727b 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-server'] --- import kbnCoreMetricsServerObj from './kbn_core_metrics_server.devdocs.json'; diff --git a/api_docs/kbn_core_metrics_server_internal.mdx b/api_docs/kbn_core_metrics_server_internal.mdx index 4c48b63718627..c9791e4c7292f 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-server-internal'] --- import kbnCoreMetricsServerInternalObj from './kbn_core_metrics_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_metrics_server_mocks.mdx b/api_docs/kbn_core_metrics_server_mocks.mdx index 6edfc4e9f4e62..ca5fdeb6a2128 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-server-mocks'] --- import kbnCoreMetricsServerMocksObj from './kbn_core_metrics_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_mount_utils_browser.mdx b/api_docs/kbn_core_mount_utils_browser.mdx index 96c7a3990e8ad..1bbbf0ffa6665 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-mount-utils-browser'] --- import kbnCoreMountUtilsBrowserObj from './kbn_core_mount_utils_browser.devdocs.json'; diff --git a/api_docs/kbn_core_node_server.mdx b/api_docs/kbn_core_node_server.mdx index f3b9c391b5b70..c2cc20277c448 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-node-server'] --- import kbnCoreNodeServerObj from './kbn_core_node_server.devdocs.json'; diff --git a/api_docs/kbn_core_node_server_internal.mdx b/api_docs/kbn_core_node_server_internal.mdx index e485a6b278fe5..18aa7bd340615 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-node-server-internal'] --- import kbnCoreNodeServerInternalObj from './kbn_core_node_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_node_server_mocks.mdx b/api_docs/kbn_core_node_server_mocks.mdx index c833e926dc07c..c8ca73f4c2e60 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-node-server-mocks'] --- import kbnCoreNodeServerMocksObj from './kbn_core_node_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_notifications_browser.mdx b/api_docs/kbn_core_notifications_browser.mdx index 087447e8b4359..260f7af02d28d 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-notifications-browser'] --- import kbnCoreNotificationsBrowserObj from './kbn_core_notifications_browser.devdocs.json'; diff --git a/api_docs/kbn_core_notifications_browser_internal.mdx b/api_docs/kbn_core_notifications_browser_internal.mdx index 077398845e7bc..20dc5d68a4a93 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-notifications-browser-internal'] --- import kbnCoreNotificationsBrowserInternalObj from './kbn_core_notifications_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_notifications_browser_mocks.mdx b/api_docs/kbn_core_notifications_browser_mocks.mdx index 333470c41996c..7af7dbcf72952 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-notifications-browser-mocks'] --- import kbnCoreNotificationsBrowserMocksObj from './kbn_core_notifications_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_overlays_browser.mdx b/api_docs/kbn_core_overlays_browser.mdx index f281de72e52ed..73345e735c135 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-overlays-browser'] --- import kbnCoreOverlaysBrowserObj from './kbn_core_overlays_browser.devdocs.json'; diff --git a/api_docs/kbn_core_overlays_browser_internal.mdx b/api_docs/kbn_core_overlays_browser_internal.mdx index 3a32bc9f99e19..270b1c8f60f01 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-overlays-browser-internal'] --- import kbnCoreOverlaysBrowserInternalObj from './kbn_core_overlays_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_overlays_browser_mocks.mdx b/api_docs/kbn_core_overlays_browser_mocks.mdx index e1f6608047168..9acd2c768be29 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-overlays-browser-mocks'] --- import kbnCoreOverlaysBrowserMocksObj from './kbn_core_overlays_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_plugins_browser.mdx b/api_docs/kbn_core_plugins_browser.mdx index daedca04e9132..bc66a8dd4177e 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-browser'] --- import kbnCorePluginsBrowserObj from './kbn_core_plugins_browser.devdocs.json'; diff --git a/api_docs/kbn_core_plugins_browser_mocks.mdx b/api_docs/kbn_core_plugins_browser_mocks.mdx index bf737e6c1f3e6..83ba09196d96f 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-browser-mocks'] --- import kbnCorePluginsBrowserMocksObj from './kbn_core_plugins_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_plugins_server.mdx b/api_docs/kbn_core_plugins_server.mdx index 5dc2822ca01a1..db4d1acf2e5cd 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-server'] --- import kbnCorePluginsServerObj from './kbn_core_plugins_server.devdocs.json'; diff --git a/api_docs/kbn_core_plugins_server_mocks.mdx b/api_docs/kbn_core_plugins_server_mocks.mdx index 1245472dde6c7..a04c45abece2b 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-server-mocks'] --- import kbnCorePluginsServerMocksObj from './kbn_core_plugins_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_preboot_server.mdx b/api_docs/kbn_core_preboot_server.mdx index ef919b8fe7f12..7593a5b6f3d98 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-preboot-server'] --- import kbnCorePrebootServerObj from './kbn_core_preboot_server.devdocs.json'; diff --git a/api_docs/kbn_core_preboot_server_mocks.mdx b/api_docs/kbn_core_preboot_server_mocks.mdx index a49baeb8d3b82..a2740a34940a3 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-preboot-server-mocks'] --- import kbnCorePrebootServerMocksObj from './kbn_core_preboot_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_rendering_browser_mocks.mdx b/api_docs/kbn_core_rendering_browser_mocks.mdx index 668ff48d43927..f1f2d95bf2531 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-rendering-browser-mocks'] --- import kbnCoreRenderingBrowserMocksObj from './kbn_core_rendering_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_rendering_server_internal.mdx b/api_docs/kbn_core_rendering_server_internal.mdx index 34fbe5e8427b4..50343f33cf49e 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-rendering-server-internal'] --- import kbnCoreRenderingServerInternalObj from './kbn_core_rendering_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_rendering_server_mocks.mdx b/api_docs/kbn_core_rendering_server_mocks.mdx index 14335ac162d38..a339dd100da34 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-rendering-server-mocks'] --- import kbnCoreRenderingServerMocksObj from './kbn_core_rendering_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_root_server_internal.mdx b/api_docs/kbn_core_root_server_internal.mdx index 49ad26c6a7cac..58a9170317312 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-root-server-internal'] --- import kbnCoreRootServerInternalObj from './kbn_core_root_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_api_browser.mdx b/api_docs/kbn_core_saved_objects_api_browser.mdx index b17207b85e37a..151f4b0660106 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-browser'] --- import kbnCoreSavedObjectsApiBrowserObj from './kbn_core_saved_objects_api_browser.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_api_server.mdx b/api_docs/kbn_core_saved_objects_api_server.mdx index c7da95039f63d..b102b1093b222 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-server'] --- import kbnCoreSavedObjectsApiServerObj from './kbn_core_saved_objects_api_server.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_api_server_mocks.mdx b/api_docs/kbn_core_saved_objects_api_server_mocks.mdx index 2ddc4e84fcc5f..32dd08ca19744 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-server-mocks'] --- import kbnCoreSavedObjectsApiServerMocksObj from './kbn_core_saved_objects_api_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_base_server_internal.mdx b/api_docs/kbn_core_saved_objects_base_server_internal.mdx index 1335d3594c62d..21ec40e2563c0 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-base-server-internal'] --- import kbnCoreSavedObjectsBaseServerInternalObj from './kbn_core_saved_objects_base_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_base_server_mocks.mdx b/api_docs/kbn_core_saved_objects_base_server_mocks.mdx index 9be7cf2024b54..23df10d67f7e4 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-base-server-mocks'] --- import kbnCoreSavedObjectsBaseServerMocksObj from './kbn_core_saved_objects_base_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_browser.mdx b/api_docs/kbn_core_saved_objects_browser.mdx index 17581970cdc7e..7c91d9670245b 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-browser'] --- import kbnCoreSavedObjectsBrowserObj from './kbn_core_saved_objects_browser.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_browser_internal.mdx b/api_docs/kbn_core_saved_objects_browser_internal.mdx index bce8b40d34ae3..9880adee6e781 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-browser-internal'] --- import kbnCoreSavedObjectsBrowserInternalObj from './kbn_core_saved_objects_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_browser_mocks.mdx b/api_docs/kbn_core_saved_objects_browser_mocks.mdx index 8dde01099a5e6..8d5ce601b5d22 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-browser-mocks'] --- import kbnCoreSavedObjectsBrowserMocksObj from './kbn_core_saved_objects_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_common.mdx b/api_docs/kbn_core_saved_objects_common.mdx index 0234adc4c6d77..c21a4af02a9f4 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-common'] --- import kbnCoreSavedObjectsCommonObj from './kbn_core_saved_objects_common.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx b/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx index 749604b0d5be8..bf157cd79ce30 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-import-export-server-internal'] --- import kbnCoreSavedObjectsImportExportServerInternalObj from './kbn_core_saved_objects_import_export_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx b/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx index 3999f398bdabf..6ba2e53ec11c5 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-import-export-server-mocks'] --- import kbnCoreSavedObjectsImportExportServerMocksObj from './kbn_core_saved_objects_import_export_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_migration_server_internal.mdx b/api_docs/kbn_core_saved_objects_migration_server_internal.mdx index 3bd0cf2dd68b7..8d8fb5a9f1b8a 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-migration-server-internal'] --- import kbnCoreSavedObjectsMigrationServerInternalObj from './kbn_core_saved_objects_migration_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx b/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx index 0d419ea99c8e7..3ab30ff55eeed 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-migration-server-mocks'] --- import kbnCoreSavedObjectsMigrationServerMocksObj from './kbn_core_saved_objects_migration_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_server.mdx b/api_docs/kbn_core_saved_objects_server.mdx index 0efcb66582ce2..3efc97ac9b050 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-server'] --- import kbnCoreSavedObjectsServerObj from './kbn_core_saved_objects_server.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_server_internal.mdx b/api_docs/kbn_core_saved_objects_server_internal.mdx index 42d213880d320..3cfcb0706e2ad 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-server-internal'] --- import kbnCoreSavedObjectsServerInternalObj from './kbn_core_saved_objects_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_server_mocks.mdx b/api_docs/kbn_core_saved_objects_server_mocks.mdx index b8fd27082ae5f..0408a171e7978 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-server-mocks'] --- import kbnCoreSavedObjectsServerMocksObj from './kbn_core_saved_objects_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_utils_server.mdx b/api_docs/kbn_core_saved_objects_utils_server.mdx index cb46b1b346679..7f179227ab375 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-utils-server'] --- import kbnCoreSavedObjectsUtilsServerObj from './kbn_core_saved_objects_utils_server.devdocs.json'; diff --git a/api_docs/kbn_core_status_common.mdx b/api_docs/kbn_core_status_common.mdx index 2d2a842c2f488..e9b61ff7b99f7 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-common'] --- import kbnCoreStatusCommonObj from './kbn_core_status_common.devdocs.json'; diff --git a/api_docs/kbn_core_status_common_internal.mdx b/api_docs/kbn_core_status_common_internal.mdx index e838dc7403a57..e1faad06d6148 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-common-internal'] --- import kbnCoreStatusCommonInternalObj from './kbn_core_status_common_internal.devdocs.json'; diff --git a/api_docs/kbn_core_status_server.mdx b/api_docs/kbn_core_status_server.mdx index 095595bebab25..3ed39cb6c294c 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-server'] --- import kbnCoreStatusServerObj from './kbn_core_status_server.devdocs.json'; diff --git a/api_docs/kbn_core_status_server_internal.mdx b/api_docs/kbn_core_status_server_internal.mdx index 3ccca355ddc9f..3e8b3cb6b2ed0 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-server-internal'] --- import kbnCoreStatusServerInternalObj from './kbn_core_status_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_status_server_mocks.mdx b/api_docs/kbn_core_status_server_mocks.mdx index 506ae9016934c..504cb4a1ed871 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-server-mocks'] --- import kbnCoreStatusServerMocksObj from './kbn_core_status_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_deprecations_getters.mdx b/api_docs/kbn_core_test_helpers_deprecations_getters.mdx index 0f0c80ec261d9..310b482ee0d34 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-deprecations-getters'] --- import kbnCoreTestHelpersDeprecationsGettersObj from './kbn_core_test_helpers_deprecations_getters.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_http_setup_browser.mdx b/api_docs/kbn_core_test_helpers_http_setup_browser.mdx index bf49208bfacdf..3380018fdfba3 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-http-setup-browser'] --- import kbnCoreTestHelpersHttpSetupBrowserObj from './kbn_core_test_helpers_http_setup_browser.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_kbn_server.mdx b/api_docs/kbn_core_test_helpers_kbn_server.mdx index 8b5cecde6606a..1a71653a78e28 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-kbn-server'] --- import kbnCoreTestHelpersKbnServerObj from './kbn_core_test_helpers_kbn_server.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_model_versions.mdx b/api_docs/kbn_core_test_helpers_model_versions.mdx index 74c98b048ebb3..3006ade153153 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-model-versions'] --- import kbnCoreTestHelpersModelVersionsObj from './kbn_core_test_helpers_model_versions.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_so_type_serializer.mdx b/api_docs/kbn_core_test_helpers_so_type_serializer.mdx index 4b102159d054f..c23537c785d7b 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-so-type-serializer'] --- import kbnCoreTestHelpersSoTypeSerializerObj from './kbn_core_test_helpers_so_type_serializer.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_test_utils.mdx b/api_docs/kbn_core_test_helpers_test_utils.mdx index cab73f2367ff3..df3d8c0bda577 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-test-utils'] --- import kbnCoreTestHelpersTestUtilsObj from './kbn_core_test_helpers_test_utils.devdocs.json'; diff --git a/api_docs/kbn_core_theme_browser.mdx b/api_docs/kbn_core_theme_browser.mdx index e7ca95d3234d0..54aa802f18b17 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-theme-browser'] --- import kbnCoreThemeBrowserObj from './kbn_core_theme_browser.devdocs.json'; diff --git a/api_docs/kbn_core_theme_browser_mocks.mdx b/api_docs/kbn_core_theme_browser_mocks.mdx index 1ec41ccf5e166..6b4bb2377720f 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-theme-browser-mocks'] --- import kbnCoreThemeBrowserMocksObj from './kbn_core_theme_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_browser.mdx b/api_docs/kbn_core_ui_settings_browser.mdx index b4ae27e566664..d1c43f217cfa0 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-browser'] --- import kbnCoreUiSettingsBrowserObj from './kbn_core_ui_settings_browser.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_browser_internal.mdx b/api_docs/kbn_core_ui_settings_browser_internal.mdx index 93ad57f6a34fa..0c8a899aba681 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-browser-internal'] --- import kbnCoreUiSettingsBrowserInternalObj from './kbn_core_ui_settings_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_browser_mocks.mdx b/api_docs/kbn_core_ui_settings_browser_mocks.mdx index 21135b30cb7a1..ca3f405e911a2 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-browser-mocks'] --- import kbnCoreUiSettingsBrowserMocksObj from './kbn_core_ui_settings_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_common.mdx b/api_docs/kbn_core_ui_settings_common.mdx index 1da88bab3c6f1..6297dd680a265 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-common'] --- import kbnCoreUiSettingsCommonObj from './kbn_core_ui_settings_common.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_server.mdx b/api_docs/kbn_core_ui_settings_server.mdx index 676f07cebb4b2..b6994aacb6b79 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-server'] --- import kbnCoreUiSettingsServerObj from './kbn_core_ui_settings_server.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_server_internal.mdx b/api_docs/kbn_core_ui_settings_server_internal.mdx index a7175c4cb5602..f5eead18510aa 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-server-internal'] --- import kbnCoreUiSettingsServerInternalObj from './kbn_core_ui_settings_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_server_mocks.mdx b/api_docs/kbn_core_ui_settings_server_mocks.mdx index 699d93cd96864..2d483f1918899 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-server-mocks'] --- import kbnCoreUiSettingsServerMocksObj from './kbn_core_ui_settings_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_usage_data_server.mdx b/api_docs/kbn_core_usage_data_server.mdx index 9f01c12af0f23..f73dbb3ec7f2c 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-usage-data-server'] --- import kbnCoreUsageDataServerObj from './kbn_core_usage_data_server.devdocs.json'; diff --git a/api_docs/kbn_core_usage_data_server_internal.mdx b/api_docs/kbn_core_usage_data_server_internal.mdx index 127a790404c22..310ed94c63830 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-usage-data-server-internal'] --- import kbnCoreUsageDataServerInternalObj from './kbn_core_usage_data_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_usage_data_server_mocks.mdx b/api_docs/kbn_core_usage_data_server_mocks.mdx index 6181fee2aeee0..3536f096d9dd5 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-usage-data-server-mocks'] --- import kbnCoreUsageDataServerMocksObj from './kbn_core_usage_data_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_user_settings_server.mdx b/api_docs/kbn_core_user_settings_server.mdx index 80ba7f8fc7c72..fd17d4fed17d7 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-settings-server'] --- import kbnCoreUserSettingsServerObj from './kbn_core_user_settings_server.devdocs.json'; diff --git a/api_docs/kbn_core_user_settings_server_internal.mdx b/api_docs/kbn_core_user_settings_server_internal.mdx index ebf6ab1485f7d..58c629c941615 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-03 +date: 2023-10-04 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 7a7af889154c8..df98672012180 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-settings-server-mocks'] --- import kbnCoreUserSettingsServerMocksObj from './kbn_core_user_settings_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_crypto.mdx b/api_docs/kbn_crypto.mdx index 62c7d8b695a71..ad88ceb2104eb 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/crypto'] --- import kbnCryptoObj from './kbn_crypto.devdocs.json'; diff --git a/api_docs/kbn_crypto_browser.mdx b/api_docs/kbn_crypto_browser.mdx index 4343bbbb85f06..5d2a239ab71de 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-03 +date: 2023-10-04 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 4944921bb3baf..a69548f8adc4f 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/custom-integrations'] --- import kbnCustomIntegrationsObj from './kbn_custom_integrations.devdocs.json'; diff --git a/api_docs/kbn_cypress_config.mdx b/api_docs/kbn_cypress_config.mdx index 4cf916b85864f..f9cbc955ef98f 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-03 +date: 2023-10-04 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 0fe975d11b716..eddf3cc179871 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-03 +date: 2023-10-04 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 4f2a8db32d0ec..15f52e0102c70 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/datemath'] --- import kbnDatemathObj from './kbn_datemath.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_analytics.mdx b/api_docs/kbn_deeplinks_analytics.mdx index b65b7016361bc..bcf03f43a1360 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-analytics'] --- import kbnDeeplinksAnalyticsObj from './kbn_deeplinks_analytics.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_devtools.mdx b/api_docs/kbn_deeplinks_devtools.mdx index cc8829c98715b..4a7619a98d584 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-03 +date: 2023-10-04 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 ade38f11c01e3..45d2dd65edec5 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-management'] --- import kbnDeeplinksManagementObj from './kbn_deeplinks_management.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_ml.mdx b/api_docs/kbn_deeplinks_ml.mdx index cf4187790083a..e87e7d58c6db1 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-ml'] --- import kbnDeeplinksMlObj from './kbn_deeplinks_ml.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_observability.mdx b/api_docs/kbn_deeplinks_observability.mdx index a3cc4b6c1e7d4..3281642e94f6a 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-observability'] --- import kbnDeeplinksObservabilityObj from './kbn_deeplinks_observability.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_search.mdx b/api_docs/kbn_deeplinks_search.mdx index d6650630b2368..27da2bb89123d 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-03 +date: 2023-10-04 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 ba7929ffcec6b..65c410e3da692 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/default-nav-analytics'] --- import kbnDefaultNavAnalyticsObj from './kbn_default_nav_analytics.devdocs.json'; diff --git a/api_docs/kbn_default_nav_devtools.mdx b/api_docs/kbn_default_nav_devtools.mdx index 706416b9d5f3e..c57f48430a741 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/default-nav-devtools'] --- import kbnDefaultNavDevtoolsObj from './kbn_default_nav_devtools.devdocs.json'; diff --git a/api_docs/kbn_default_nav_management.mdx b/api_docs/kbn_default_nav_management.mdx index 91534499712c4..3599cf73e846b 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/default-nav-management'] --- import kbnDefaultNavManagementObj from './kbn_default_nav_management.devdocs.json'; diff --git a/api_docs/kbn_default_nav_ml.mdx b/api_docs/kbn_default_nav_ml.mdx index 8062d2d817d72..5ff8ccb2e9884 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/default-nav-ml'] --- import kbnDefaultNavMlObj from './kbn_default_nav_ml.devdocs.json'; diff --git a/api_docs/kbn_dev_cli_errors.mdx b/api_docs/kbn_dev_cli_errors.mdx index 85bad7bfecb78..5366921bffaaa 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-cli-errors'] --- import kbnDevCliErrorsObj from './kbn_dev_cli_errors.devdocs.json'; diff --git a/api_docs/kbn_dev_cli_runner.mdx b/api_docs/kbn_dev_cli_runner.mdx index ae6f6f9a2dc24..aa88314638326 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-cli-runner'] --- import kbnDevCliRunnerObj from './kbn_dev_cli_runner.devdocs.json'; diff --git a/api_docs/kbn_dev_proc_runner.mdx b/api_docs/kbn_dev_proc_runner.mdx index f0b050982d23e..d4c5cec74fdcc 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-proc-runner'] --- import kbnDevProcRunnerObj from './kbn_dev_proc_runner.devdocs.json'; diff --git a/api_docs/kbn_dev_utils.mdx b/api_docs/kbn_dev_utils.mdx index a3c1a49fc6584..2937bcffe4e21 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-utils'] --- import kbnDevUtilsObj from './kbn_dev_utils.devdocs.json'; diff --git a/api_docs/kbn_discover_utils.mdx b/api_docs/kbn_discover_utils.mdx index b3dfb5dbb725d..a225f6c0a0a08 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/discover-utils'] --- import kbnDiscoverUtilsObj from './kbn_discover_utils.devdocs.json'; diff --git a/api_docs/kbn_doc_links.devdocs.json b/api_docs/kbn_doc_links.devdocs.json index 2d0cb600191df..b52457797ba8f 100644 --- a/api_docs/kbn_doc_links.devdocs.json +++ b/api_docs/kbn_doc_links.devdocs.json @@ -300,7 +300,7 @@ "label": "enterpriseSearch", "description": [], "signature": [ - "{ readonly aiSearchDoc: string; readonly aiSearchHelp: string; readonly apiKeys: string; readonly behavioralAnalytics: string; readonly behavioralAnalyticsCORS: string; readonly behavioralAnalyticsEvents: string; readonly buildConnector: string; readonly bulkApi: string; readonly configuration: string; readonly connectors: string; readonly connectorsAzureBlobStorage: string; readonly connectorsClients: string; readonly connectorsConfluence: string; readonly connectorsContentExtraction: string; readonly connectorsDropbox: string; readonly connectorsGithub: string; readonly connectorsGoogleCloudStorage: string; readonly connectorsGoogleDrive: string; readonly connectorsGmail: string; readonly connectorsJira: string; readonly connectorsMicrosoftSQL: string; readonly connectorsMongoDB: string; readonly connectorsMySQL: string; readonly connectorsNative: string; readonly connectorsNetworkDrive: string; readonly connectorsOneDrive: string; readonly connectorsOracle: string; readonly connectorsPostgreSQL: string; readonly connectorsS3: string; readonly connectorsSalesforce: string; readonly connectorsServiceNow: string; readonly connectorsSharepoint: string; readonly connectorsSharepointOnline: string; readonly connectorsSlack: string; readonly connectorsWorkplaceSearch: string; readonly crawlerExtractionRules: string; readonly crawlerManaging: string; readonly crawlerOverview: string; readonly deployTrainedModels: string; readonly documentLevelSecurity: string; readonly elser: string; readonly engines: string; readonly indexApi: string; readonly ingestionApis: string; readonly ingestPipelines: string; readonly knnSearch: string; readonly knnSearchCombine: string; readonly languageAnalyzers: string; readonly languageClients: string; readonly licenseManagement: string; readonly machineLearningStart: string; readonly mailService: string; readonly mlDocumentEnrichment: string; readonly mlDocumentEnrichmentUpdateMappings: string; readonly searchApplicationsTemplates: string; readonly searchApplicationsSearchApi: string; readonly searchApplications: string; readonly searchApplicationsSearch: string; readonly searchLabs: string; readonly searchLabsRepo: string; readonly searchTemplates: string; readonly start: string; readonly supportedNlpModels: string; readonly syncRules: string; readonly trainedModels: string; readonly textEmbedding: string; readonly troubleshootSetup: string; readonly usersAccess: string; }" + "{ readonly aiSearchDoc: string; readonly aiSearchHelp: string; readonly apiKeys: string; readonly behavioralAnalytics: string; readonly behavioralAnalyticsCORS: string; readonly behavioralAnalyticsEvents: string; readonly buildConnector: string; readonly bulkApi: string; readonly configuration: string; readonly connectors: string; readonly connectorsAzureBlobStorage: string; readonly connectorsBox: string; readonly connectorsClients: string; readonly connectorsConfluence: string; readonly connectorsContentExtraction: string; readonly connectorsDropbox: string; readonly connectorsGithub: string; readonly connectorsGoogleCloudStorage: string; readonly connectorsGoogleDrive: string; readonly connectorsGmail: string; readonly connectorsJira: string; readonly connectorsMicrosoftSQL: string; readonly connectorsMongoDB: string; readonly connectorsMySQL: string; readonly connectorsNative: string; readonly connectorsNetworkDrive: string; readonly connectorsOneDrive: string; readonly connectorsOracle: string; readonly connectorsOutlook: string; readonly connectorsPostgreSQL: string; readonly connectorsS3: string; readonly connectorsSalesforce: string; readonly connectorsServiceNow: string; readonly connectorsSharepoint: string; readonly connectorsSharepointOnline: string; readonly connectorsTeams: string; readonly connectorsSlack: string; readonly connectorsWorkplaceSearch: string; readonly connectorsZoom: string; readonly crawlerExtractionRules: string; readonly crawlerManaging: string; readonly crawlerOverview: string; readonly deployTrainedModels: string; readonly documentLevelSecurity: string; readonly elser: string; readonly engines: string; readonly indexApi: string; readonly ingestionApis: string; readonly ingestPipelines: string; readonly knnSearch: string; readonly knnSearchCombine: string; readonly languageAnalyzers: string; readonly languageClients: string; readonly licenseManagement: string; readonly machineLearningStart: string; readonly mailService: string; readonly mlDocumentEnrichment: string; readonly mlDocumentEnrichmentUpdateMappings: string; readonly searchApplicationsTemplates: string; readonly searchApplicationsSearchApi: string; readonly searchApplications: string; readonly searchApplicationsSearch: string; readonly searchLabs: string; readonly searchLabsRepo: string; readonly searchTemplates: string; readonly start: string; readonly supportedNlpModels: string; readonly syncRules: string; readonly trainedModels: string; readonly textEmbedding: string; readonly troubleshootSetup: string; readonly usersAccess: 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 5d404f88e48d0..0bc1a8c54d042 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/doc-links'] --- import kbnDocLinksObj from './kbn_doc_links.devdocs.json'; diff --git a/api_docs/kbn_docs_utils.mdx b/api_docs/kbn_docs_utils.mdx index a08b1e57f5ebc..695014c4e8cfa 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/docs-utils'] --- import kbnDocsUtilsObj from './kbn_docs_utils.devdocs.json'; diff --git a/api_docs/kbn_dom_drag_drop.mdx b/api_docs/kbn_dom_drag_drop.mdx index 4c1c7e0fea79b..58159568bf8f2 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dom-drag-drop'] --- import kbnDomDragDropObj from './kbn_dom_drag_drop.devdocs.json'; diff --git a/api_docs/kbn_ebt_tools.mdx b/api_docs/kbn_ebt_tools.mdx index 7c35cfcde2f0f..7166a84534dcc 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-03 +date: 2023-10-04 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 6c395da2a4047..5444ac7240385 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-03 +date: 2023-10-04 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 66acc6b9984b6..77f3fa578d6cd 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ecs-data-quality-dashboard'] --- import kbnEcsDataQualityDashboardObj from './kbn_ecs_data_quality_dashboard.devdocs.json'; diff --git a/api_docs/kbn_elastic_assistant.devdocs.json b/api_docs/kbn_elastic_assistant.devdocs.json index b507435efa60c..ba744cf57e0c1 100644 --- a/api_docs/kbn_elastic_assistant.devdocs.json +++ b/api_docs/kbn_elastic_assistant.devdocs.json @@ -159,7 +159,7 @@ "label": "AssistantProvider", "description": [], "signature": [ - "({ actionTypeRegistry, assistantAvailability, assistantLangChain, assistantTelemetry, augmentMessageCodeBlocks, baseAllow, baseAllowReplacement, defaultAllow, defaultAllowReplacement, docLinks, basePath, basePromptContexts, baseQuickPrompts, baseSystemPrompts, children, getComments, http, getInitialConversations, nameSpace, setConversations, setDefaultAllow, setDefaultAllowReplacement, title, }: React.PropsWithChildren<", + "({ actionTypeRegistry, assistantAvailability, assistantTelemetry, augmentMessageCodeBlocks, baseAllow, baseAllowReplacement, defaultAllow, defaultAllowReplacement, docLinks, basePath, basePromptContexts, baseQuickPrompts, baseSystemPrompts, children, getComments, http, getInitialConversations, modelEvaluatorEnabled, nameSpace, setConversations, setDefaultAllow, setDefaultAllowReplacement, title, }: React.PropsWithChildren<", "AssistantProviderProps", ">) => JSX.Element" ], @@ -172,7 +172,7 @@ "id": "def-public.AssistantProvider.$1", "type": "CompoundType", "tags": [], - "label": "{\n actionTypeRegistry,\n assistantAvailability,\n assistantLangChain,\n assistantTelemetry,\n augmentMessageCodeBlocks,\n baseAllow,\n baseAllowReplacement,\n defaultAllow,\n defaultAllowReplacement,\n docLinks,\n basePath,\n basePromptContexts = [],\n baseQuickPrompts = [],\n baseSystemPrompts = BASE_SYSTEM_PROMPTS,\n children,\n getComments,\n http,\n getInitialConversations,\n nameSpace = DEFAULT_ASSISTANT_NAMESPACE,\n setConversations,\n setDefaultAllow,\n setDefaultAllowReplacement,\n title = DEFAULT_ASSISTANT_TITLE,\n}", + "label": "{\n actionTypeRegistry,\n assistantAvailability,\n assistantTelemetry,\n augmentMessageCodeBlocks,\n baseAllow,\n baseAllowReplacement,\n defaultAllow,\n defaultAllowReplacement,\n docLinks,\n basePath,\n basePromptContexts = [],\n baseQuickPrompts = [],\n baseSystemPrompts = BASE_SYSTEM_PROMPTS,\n children,\n getComments,\n http,\n getInitialConversations,\n modelEvaluatorEnabled = false,\n nameSpace = DEFAULT_ASSISTANT_NAMESPACE,\n setConversations,\n setDefaultAllow,\n setDefaultAllowReplacement,\n title = DEFAULT_ASSISTANT_TITLE,\n}", "description": [], "signature": [ "React.PropsWithChildren<", diff --git a/api_docs/kbn_elastic_assistant.mdx b/api_docs/kbn_elastic_assistant.mdx index 3b4649864e546..cf859f629faa8 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-03 +date: 2023-10-04 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 f420346d1194d..7cbadfcc9827a 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es'] --- import kbnEsObj from './kbn_es.devdocs.json'; diff --git a/api_docs/kbn_es_archiver.mdx b/api_docs/kbn_es_archiver.mdx index a3c94a69df712..adecd141c7414 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-archiver'] --- import kbnEsArchiverObj from './kbn_es_archiver.devdocs.json'; diff --git a/api_docs/kbn_es_errors.mdx b/api_docs/kbn_es_errors.mdx index b21ec30ffc0fe..4ba938b753052 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-errors'] --- import kbnEsErrorsObj from './kbn_es_errors.devdocs.json'; diff --git a/api_docs/kbn_es_query.mdx b/api_docs/kbn_es_query.mdx index a536cf0af443c..ccdcb3dba0e46 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-query'] --- import kbnEsQueryObj from './kbn_es_query.devdocs.json'; diff --git a/api_docs/kbn_es_types.mdx b/api_docs/kbn_es_types.mdx index 3a1d2f10adab9..030ac91b423f5 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-types'] --- import kbnEsTypesObj from './kbn_es_types.devdocs.json'; diff --git a/api_docs/kbn_eslint_plugin_imports.mdx b/api_docs/kbn_eslint_plugin_imports.mdx index 8cabff8dc1c73..7b476cd7fd11f 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/eslint-plugin-imports'] --- import kbnEslintPluginImportsObj from './kbn_eslint_plugin_imports.devdocs.json'; diff --git a/api_docs/kbn_event_annotation_common.mdx b/api_docs/kbn_event_annotation_common.mdx index c1d29d145ee99..a7a12d3447cf0 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/event-annotation-common'] --- import kbnEventAnnotationCommonObj from './kbn_event_annotation_common.devdocs.json'; diff --git a/api_docs/kbn_event_annotation_components.mdx b/api_docs/kbn_event_annotation_components.mdx index 626142c5b17dd..0bd569188da06 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/event-annotation-components'] --- import kbnEventAnnotationComponentsObj from './kbn_event_annotation_components.devdocs.json'; diff --git a/api_docs/kbn_expandable_flyout.mdx b/api_docs/kbn_expandable_flyout.mdx index cf7f8e0985075..158edc5b86c65 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/expandable-flyout'] --- import kbnExpandableFlyoutObj from './kbn_expandable_flyout.devdocs.json'; diff --git a/api_docs/kbn_field_types.mdx b/api_docs/kbn_field_types.mdx index ac2b4ff9c7e74..b6fbf7f7bb289 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/field-types'] --- import kbnFieldTypesObj from './kbn_field_types.devdocs.json'; diff --git a/api_docs/kbn_find_used_node_modules.mdx b/api_docs/kbn_find_used_node_modules.mdx index af600c96ac78f..6796b16f5237a 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/find-used-node-modules'] --- import kbnFindUsedNodeModulesObj from './kbn_find_used_node_modules.devdocs.json'; diff --git a/api_docs/kbn_ftr_common_functional_services.mdx b/api_docs/kbn_ftr_common_functional_services.mdx index e3b9484caa277..07f237321de52 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ftr-common-functional-services'] --- import kbnFtrCommonFunctionalServicesObj from './kbn_ftr_common_functional_services.devdocs.json'; diff --git a/api_docs/kbn_generate.mdx b/api_docs/kbn_generate.mdx index 089531f75f812..34e0d43faa94d 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate'] --- import kbnGenerateObj from './kbn_generate.devdocs.json'; diff --git a/api_docs/kbn_generate_console_definitions.mdx b/api_docs/kbn_generate_console_definitions.mdx index a25b1279970f0..1738895575923 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate-console-definitions'] --- import kbnGenerateConsoleDefinitionsObj from './kbn_generate_console_definitions.devdocs.json'; diff --git a/api_docs/kbn_generate_csv.mdx b/api_docs/kbn_generate_csv.mdx index 0403b9cf2ac1c..719969da565e8 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-03 +date: 2023-10-04 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 749460918dbbd..810b40dc2640c 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-03 +date: 2023-10-04 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 01719e6531bb7..406e4541e1d7f 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/guided-onboarding'] --- import kbnGuidedOnboardingObj from './kbn_guided_onboarding.devdocs.json'; diff --git a/api_docs/kbn_handlebars.mdx b/api_docs/kbn_handlebars.mdx index 2d6b7062337d7..86dea148b967f 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/handlebars'] --- import kbnHandlebarsObj from './kbn_handlebars.devdocs.json'; diff --git a/api_docs/kbn_hapi_mocks.mdx b/api_docs/kbn_hapi_mocks.mdx index 5a152305dcbfe..9bf79be513a86 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/hapi-mocks'] --- import kbnHapiMocksObj from './kbn_hapi_mocks.devdocs.json'; diff --git a/api_docs/kbn_health_gateway_server.mdx b/api_docs/kbn_health_gateway_server.mdx index 79d7a6295c7b2..f470d8f8a6cf4 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/health-gateway-server'] --- import kbnHealthGatewayServerObj from './kbn_health_gateway_server.devdocs.json'; diff --git a/api_docs/kbn_home_sample_data_card.mdx b/api_docs/kbn_home_sample_data_card.mdx index d9ed94233d1d9..3ad45637e66c3 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/home-sample-data-card'] --- import kbnHomeSampleDataCardObj from './kbn_home_sample_data_card.devdocs.json'; diff --git a/api_docs/kbn_home_sample_data_tab.mdx b/api_docs/kbn_home_sample_data_tab.mdx index 43baa1ce06b61..57b4cf8b5aa43 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/home-sample-data-tab'] --- import kbnHomeSampleDataTabObj from './kbn_home_sample_data_tab.devdocs.json'; diff --git a/api_docs/kbn_i18n.mdx b/api_docs/kbn_i18n.mdx index 5100ccca5282a..8ac2fe4cb76fe 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/i18n'] --- import kbnI18nObj from './kbn_i18n.devdocs.json'; diff --git a/api_docs/kbn_i18n_react.mdx b/api_docs/kbn_i18n_react.mdx index 9062043a06f0b..ac93215a66425 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/i18n-react'] --- import kbnI18nReactObj from './kbn_i18n_react.devdocs.json'; diff --git a/api_docs/kbn_import_resolver.mdx b/api_docs/kbn_import_resolver.mdx index f1aff6b0facef..f47825f2f54ac 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-03 +date: 2023-10-04 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 a480a69f040f9..4cf3b9ce1c213 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/infra-forge'] --- import kbnInfraForgeObj from './kbn_infra_forge.devdocs.json'; diff --git a/api_docs/kbn_interpreter.mdx b/api_docs/kbn_interpreter.mdx index 7082d53202703..85bb64c864a43 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/interpreter'] --- import kbnInterpreterObj from './kbn_interpreter.devdocs.json'; diff --git a/api_docs/kbn_io_ts_utils.mdx b/api_docs/kbn_io_ts_utils.mdx index bd68631626e35..e869624164d7e 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/io-ts-utils'] --- import kbnIoTsUtilsObj from './kbn_io_ts_utils.devdocs.json'; diff --git a/api_docs/kbn_jest_serializers.mdx b/api_docs/kbn_jest_serializers.mdx index a8f2027c07818..87c2fa1d1a2b9 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/jest-serializers'] --- import kbnJestSerializersObj from './kbn_jest_serializers.devdocs.json'; diff --git a/api_docs/kbn_journeys.mdx b/api_docs/kbn_journeys.mdx index 2d55f6d276bdb..dad7dd81c0f74 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/journeys'] --- import kbnJourneysObj from './kbn_journeys.devdocs.json'; diff --git a/api_docs/kbn_json_ast.mdx b/api_docs/kbn_json_ast.mdx index 12ed507b63a13..e4877891dfddc 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/json-ast'] --- import kbnJsonAstObj from './kbn_json_ast.devdocs.json'; diff --git a/api_docs/kbn_kibana_manifest_schema.mdx b/api_docs/kbn_kibana_manifest_schema.mdx index b6f4e9c9f1a26..4d50897248da0 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/kibana-manifest-schema'] --- import kbnKibanaManifestSchemaObj from './kbn_kibana_manifest_schema.devdocs.json'; diff --git a/api_docs/kbn_language_documentation_popover.mdx b/api_docs/kbn_language_documentation_popover.mdx index 8561357152e05..aabfd0fa99189 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/language-documentation-popover'] --- import kbnLanguageDocumentationPopoverObj from './kbn_language_documentation_popover.devdocs.json'; diff --git a/api_docs/kbn_lens_embeddable_utils.mdx b/api_docs/kbn_lens_embeddable_utils.mdx index 7d4fb78cdc850..f50cb2a2a4889 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/lens-embeddable-utils'] --- import kbnLensEmbeddableUtilsObj from './kbn_lens_embeddable_utils.devdocs.json'; diff --git a/api_docs/kbn_logging.mdx b/api_docs/kbn_logging.mdx index 8412701c35f74..48595d9349706 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/logging'] --- import kbnLoggingObj from './kbn_logging.devdocs.json'; diff --git a/api_docs/kbn_logging_mocks.mdx b/api_docs/kbn_logging_mocks.mdx index d1062032bb4d6..30a6da003d0a0 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-03 +date: 2023-10-04 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 3a256ce0c29d3..f6d747ec95282 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/managed-vscode-config'] --- import kbnManagedVscodeConfigObj from './kbn_managed_vscode_config.devdocs.json'; diff --git a/api_docs/kbn_management_cards_navigation.mdx b/api_docs/kbn_management_cards_navigation.mdx index 89b853fe0af97..a4415118cbca0 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-cards-navigation'] --- import kbnManagementCardsNavigationObj from './kbn_management_cards_navigation.devdocs.json'; diff --git a/api_docs/kbn_management_settings_application.mdx b/api_docs/kbn_management_settings_application.mdx index 888a83fb89550..6c3a050991bd1 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-application'] --- import kbnManagementSettingsApplicationObj from './kbn_management_settings_application.devdocs.json'; diff --git a/api_docs/kbn_management_settings_components_field_category.mdx b/api_docs/kbn_management_settings_components_field_category.mdx index e7bad6fd29dbb..4c3ca9eeef417 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-components-field-category'] --- import kbnManagementSettingsComponentsFieldCategoryObj from './kbn_management_settings_components_field_category.devdocs.json'; diff --git a/api_docs/kbn_management_settings_components_field_input.mdx b/api_docs/kbn_management_settings_components_field_input.mdx index 32127c9feae6c..9bc2b8fa786ce 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-components-field-input'] --- import kbnManagementSettingsComponentsFieldInputObj from './kbn_management_settings_components_field_input.devdocs.json'; diff --git a/api_docs/kbn_management_settings_components_field_row.mdx b/api_docs/kbn_management_settings_components_field_row.mdx index 1870817da32ee..b28b93d6f6862 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-components-field-row'] --- import kbnManagementSettingsComponentsFieldRowObj from './kbn_management_settings_components_field_row.devdocs.json'; diff --git a/api_docs/kbn_management_settings_components_form.mdx b/api_docs/kbn_management_settings_components_form.mdx index 9071519c38b88..4bc51cc169539 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-components-form'] --- import kbnManagementSettingsComponentsFormObj from './kbn_management_settings_components_form.devdocs.json'; diff --git a/api_docs/kbn_management_settings_field_definition.mdx b/api_docs/kbn_management_settings_field_definition.mdx index 669c45fbcba16..d78504247f227 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-field-definition'] --- import kbnManagementSettingsFieldDefinitionObj from './kbn_management_settings_field_definition.devdocs.json'; diff --git a/api_docs/kbn_management_settings_ids.mdx b/api_docs/kbn_management_settings_ids.mdx index f36bc4ee8b27e..f53797c3b7172 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-ids'] --- import kbnManagementSettingsIdsObj from './kbn_management_settings_ids.devdocs.json'; diff --git a/api_docs/kbn_management_settings_section_registry.mdx b/api_docs/kbn_management_settings_section_registry.mdx index b387ea7670494..18c2b07f72d85 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-section-registry'] --- import kbnManagementSettingsSectionRegistryObj from './kbn_management_settings_section_registry.devdocs.json'; diff --git a/api_docs/kbn_management_settings_types.mdx b/api_docs/kbn_management_settings_types.mdx index 038e2943e53b6..18aeadde73881 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-types'] --- import kbnManagementSettingsTypesObj from './kbn_management_settings_types.devdocs.json'; diff --git a/api_docs/kbn_management_settings_utilities.mdx b/api_docs/kbn_management_settings_utilities.mdx index d249ff374eb03..caac16a9f5e32 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-utilities'] --- import kbnManagementSettingsUtilitiesObj from './kbn_management_settings_utilities.devdocs.json'; diff --git a/api_docs/kbn_management_storybook_config.mdx b/api_docs/kbn_management_storybook_config.mdx index 06b5897de9539..ac6eca560bd67 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-storybook-config'] --- import kbnManagementStorybookConfigObj from './kbn_management_storybook_config.devdocs.json'; diff --git a/api_docs/kbn_mapbox_gl.mdx b/api_docs/kbn_mapbox_gl.mdx index d4e06312a42be..2712c4dbed297 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/mapbox-gl'] --- import kbnMapboxGlObj from './kbn_mapbox_gl.devdocs.json'; diff --git a/api_docs/kbn_maps_vector_tile_utils.mdx b/api_docs/kbn_maps_vector_tile_utils.mdx index 9f887e3a0cfdc..ca9e24e992fcb 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/maps-vector-tile-utils'] --- import kbnMapsVectorTileUtilsObj from './kbn_maps_vector_tile_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_agg_utils.mdx b/api_docs/kbn_ml_agg_utils.mdx index 655af99dedd55..976bbcbaa80ef 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-agg-utils'] --- import kbnMlAggUtilsObj from './kbn_ml_agg_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_anomaly_utils.mdx b/api_docs/kbn_ml_anomaly_utils.mdx index 1ce67b8e47269..d7c9b0ae80fe5 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-anomaly-utils'] --- import kbnMlAnomalyUtilsObj from './kbn_ml_anomaly_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_category_validator.mdx b/api_docs/kbn_ml_category_validator.mdx index 53940bec9d3d3..1e14fd5e52cb7 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-category-validator'] --- import kbnMlCategoryValidatorObj from './kbn_ml_category_validator.devdocs.json'; diff --git a/api_docs/kbn_ml_chi2test.mdx b/api_docs/kbn_ml_chi2test.mdx index e42320480bbf9..3990a8bfc55b1 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-chi2test'] --- import kbnMlChi2testObj from './kbn_ml_chi2test.devdocs.json'; diff --git a/api_docs/kbn_ml_data_frame_analytics_utils.mdx b/api_docs/kbn_ml_data_frame_analytics_utils.mdx index 0fa059dd284f7..ad874267b8817 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-data-frame-analytics-utils'] --- import kbnMlDataFrameAnalyticsUtilsObj from './kbn_ml_data_frame_analytics_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_data_grid.mdx b/api_docs/kbn_ml_data_grid.mdx index 501aed6cd3255..6f5672379a2f3 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-data-grid'] --- import kbnMlDataGridObj from './kbn_ml_data_grid.devdocs.json'; diff --git a/api_docs/kbn_ml_date_picker.mdx b/api_docs/kbn_ml_date_picker.mdx index 63dccde700d37..e8c6a7b200e85 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-date-picker'] --- import kbnMlDatePickerObj from './kbn_ml_date_picker.devdocs.json'; diff --git a/api_docs/kbn_ml_date_utils.mdx b/api_docs/kbn_ml_date_utils.mdx index 4b262fb16efaa..d94b4b0980a3c 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-date-utils'] --- import kbnMlDateUtilsObj from './kbn_ml_date_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_error_utils.mdx b/api_docs/kbn_ml_error_utils.mdx index b5affa9093116..e6186a1931297 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-error-utils'] --- import kbnMlErrorUtilsObj from './kbn_ml_error_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_in_memory_table.mdx b/api_docs/kbn_ml_in_memory_table.mdx index 90064813b8844..64452c2521165 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-in-memory-table'] --- import kbnMlInMemoryTableObj from './kbn_ml_in_memory_table.devdocs.json'; diff --git a/api_docs/kbn_ml_is_defined.mdx b/api_docs/kbn_ml_is_defined.mdx index 561e859e5a614..2e702ff1859d4 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-is-defined'] --- import kbnMlIsDefinedObj from './kbn_ml_is_defined.devdocs.json'; diff --git a/api_docs/kbn_ml_is_populated_object.mdx b/api_docs/kbn_ml_is_populated_object.mdx index d258162165866..c6435521f79f6 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-is-populated-object'] --- import kbnMlIsPopulatedObjectObj from './kbn_ml_is_populated_object.devdocs.json'; diff --git a/api_docs/kbn_ml_kibana_theme.mdx b/api_docs/kbn_ml_kibana_theme.mdx index e1ec650d8068f..febe7eb79e2ff 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-kibana-theme'] --- import kbnMlKibanaThemeObj from './kbn_ml_kibana_theme.devdocs.json'; diff --git a/api_docs/kbn_ml_local_storage.mdx b/api_docs/kbn_ml_local_storage.mdx index ec452f3027b2b..a86280bd83138 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-local-storage'] --- import kbnMlLocalStorageObj from './kbn_ml_local_storage.devdocs.json'; diff --git a/api_docs/kbn_ml_nested_property.mdx b/api_docs/kbn_ml_nested_property.mdx index 144dfdd3db8f4..7603d7cc69c0a 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-nested-property'] --- import kbnMlNestedPropertyObj from './kbn_ml_nested_property.devdocs.json'; diff --git a/api_docs/kbn_ml_number_utils.mdx b/api_docs/kbn_ml_number_utils.mdx index d6b2ed842f48e..d53550e2ea97e 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-number-utils'] --- import kbnMlNumberUtilsObj from './kbn_ml_number_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_query_utils.mdx b/api_docs/kbn_ml_query_utils.mdx index 10934e87fbb20..e423084c6a2b6 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-query-utils'] --- import kbnMlQueryUtilsObj from './kbn_ml_query_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_random_sampler_utils.mdx b/api_docs/kbn_ml_random_sampler_utils.mdx index b6eccd75091b2..037ac91309614 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-random-sampler-utils'] --- import kbnMlRandomSamplerUtilsObj from './kbn_ml_random_sampler_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_route_utils.mdx b/api_docs/kbn_ml_route_utils.mdx index ccb3674b36e4a..63d2ec3c20d1f 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-route-utils'] --- import kbnMlRouteUtilsObj from './kbn_ml_route_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_runtime_field_utils.mdx b/api_docs/kbn_ml_runtime_field_utils.mdx index 92c8b52b9a3f6..2f03f56501dbd 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-runtime-field-utils'] --- import kbnMlRuntimeFieldUtilsObj from './kbn_ml_runtime_field_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_string_hash.mdx b/api_docs/kbn_ml_string_hash.mdx index 09add5e81cccd..ee0882e668509 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-string-hash'] --- import kbnMlStringHashObj from './kbn_ml_string_hash.devdocs.json'; diff --git a/api_docs/kbn_ml_trained_models_utils.devdocs.json b/api_docs/kbn_ml_trained_models_utils.devdocs.json index d074c0826737e..d2bb275d5a25d 100644 --- a/api_docs/kbn_ml_trained_models_utils.devdocs.json +++ b/api_docs/kbn_ml_trained_models_utils.devdocs.json @@ -66,6 +66,17 @@ "deprecated": false, "trackAdoption": false, "children": [ + { + "parentPluginId": "@kbn/ml-trained-models-utils", + "id": "def-common.ModelDefinition.modelName", + "type": "string", + "tags": [], + "label": "modelName", + "description": [], + "path": "x-pack/packages/ml/trained_models_utils/src/constants/trained_models.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "@kbn/ml-trained-models-utils", "id": "def-common.ModelDefinition.version", @@ -157,6 +168,20 @@ "path": "x-pack/packages/ml/trained_models_utils/src/constants/trained_models.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ml-trained-models-utils", + "id": "def-common.ModelDefinition.hidden", + "type": "CompoundType", + "tags": [], + "label": "hidden", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "x-pack/packages/ml/trained_models_utils/src/constants/trained_models.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false @@ -206,6 +231,36 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "@kbn/ml-trained-models-utils", + "id": "def-common.ELASTIC_MODEL_TAG", + "type": "string", + "tags": [], + "label": "ELASTIC_MODEL_TAG", + "description": [], + "signature": [ + "\"elastic\"" + ], + "path": "x-pack/packages/ml/trained_models_utils/src/constants/trained_models.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/ml-trained-models-utils", + "id": "def-common.ELASTIC_MODEL_TYPE", + "type": "string", + "tags": [], + "label": "ELASTIC_MODEL_TYPE", + "description": [], + "signature": [ + "\"elastic\"" + ], + "path": "x-pack/packages/ml/trained_models_utils/src/constants/trained_models.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "@kbn/ml-trained-models-utils", "id": "def-common.ElasticModelId", @@ -221,6 +276,21 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "@kbn/ml-trained-models-utils", + "id": "def-common.ELSER_ID_V1", + "type": "string", + "tags": [], + "label": "ELSER_ID_V1", + "description": [], + "signature": [ + "\".elser_model_1\"" + ], + "path": "x-pack/packages/ml/trained_models_utils/src/constants/trained_models.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "@kbn/ml-trained-models-utils", "id": "def-common.ElserVersion", @@ -244,6 +314,7 @@ "label": "ModelDefinitionResponse", "description": [], "signature": [ + "Omit<", { "pluginId": "@kbn/ml-trained-models-utils", "scope": "common", @@ -251,7 +322,22 @@ "section": "def-common.ModelDefinition", "text": "ModelDefinition" }, - " & { name: string; }" + ", \"modelName\"> & { name: string; }" + ], + "path": "x-pack/packages/ml/trained_models_utils/src/constants/trained_models.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/ml-trained-models-utils", + "id": "def-common.ModelState", + "type": "Type", + "tags": [], + "label": "ModelState", + "description": [], + "signature": [ + "\"started\" | \"starting\" | \"stopping\" | \"downloading\" | \"downloaded\" | \"notDownloaded\" | null" ], "path": "x-pack/packages/ml/trained_models_utils/src/constants/trained_models.ts", "deprecated": false, @@ -328,6 +414,21 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "@kbn/ml-trained-models-utils", + "id": "def-common.MODEL_STATE", + "type": "Object", + "tags": [], + "label": "MODEL_STATE", + "description": [], + "signature": [ + "{ readonly DOWNLOADING: \"downloading\"; readonly DOWNLOADED: \"downloaded\"; readonly NOT_DOWNLOADED: \"notDownloaded\"; readonly STARTED: \"started\"; readonly STARTING: \"starting\"; readonly STOPPING: \"stopping\"; }" + ], + "path": "x-pack/packages/ml/trained_models_utils/src/constants/trained_models.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "@kbn/ml-trained-models-utils", "id": "def-common.SUPPORTED_PYTORCH_TASKS", diff --git a/api_docs/kbn_ml_trained_models_utils.mdx b/api_docs/kbn_ml_trained_models_utils.mdx index fab5372e806af..be9908f3b9b81 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-trained-models-utils'] --- import kbnMlTrainedModelsUtilsObj from './kbn_ml_trained_models_utils.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) for questi | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 22 | 0 | 22 | 0 | +| 29 | 0 | 29 | 0 | ## Common diff --git a/api_docs/kbn_ml_url_state.mdx b/api_docs/kbn_ml_url_state.mdx index c879aa3616388..699a896170f7d 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-url-state'] --- import kbnMlUrlStateObj from './kbn_ml_url_state.devdocs.json'; diff --git a/api_docs/kbn_monaco.mdx b/api_docs/kbn_monaco.mdx index 2cee976459887..c2834c5cf7ab0 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/monaco'] --- import kbnMonacoObj from './kbn_monaco.devdocs.json'; diff --git a/api_docs/kbn_object_versioning.mdx b/api_docs/kbn_object_versioning.mdx index 7dda7b8d33282..d3a35c96ba723 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/object-versioning'] --- import kbnObjectVersioningObj from './kbn_object_versioning.devdocs.json'; diff --git a/api_docs/kbn_observability_alert_details.mdx b/api_docs/kbn_observability_alert_details.mdx index 7891286969ed7..500fa9945ff45 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/observability-alert-details'] --- import kbnObservabilityAlertDetailsObj from './kbn_observability_alert_details.devdocs.json'; diff --git a/api_docs/kbn_openapi_generator.mdx b/api_docs/kbn_openapi_generator.mdx index b8b883163d12c..fb9cc14ead142 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/openapi-generator'] --- import kbnOpenapiGeneratorObj from './kbn_openapi_generator.devdocs.json'; diff --git a/api_docs/kbn_optimizer.mdx b/api_docs/kbn_optimizer.mdx index 8a9ae5b71fcbb..c85beac6f863b 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/optimizer'] --- import kbnOptimizerObj from './kbn_optimizer.devdocs.json'; diff --git a/api_docs/kbn_optimizer_webpack_helpers.mdx b/api_docs/kbn_optimizer_webpack_helpers.mdx index 955f2ce1149e8..c54a30a800005 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/optimizer-webpack-helpers'] --- import kbnOptimizerWebpackHelpersObj from './kbn_optimizer_webpack_helpers.devdocs.json'; diff --git a/api_docs/kbn_osquery_io_ts_types.mdx b/api_docs/kbn_osquery_io_ts_types.mdx index f900aa344211d..647de77bca211 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/osquery-io-ts-types'] --- import kbnOsqueryIoTsTypesObj from './kbn_osquery_io_ts_types.devdocs.json'; diff --git a/api_docs/kbn_performance_testing_dataset_extractor.mdx b/api_docs/kbn_performance_testing_dataset_extractor.mdx index e743a61c927f9..087668ee0d628 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/performance-testing-dataset-extractor'] --- import kbnPerformanceTestingDatasetExtractorObj from './kbn_performance_testing_dataset_extractor.devdocs.json'; diff --git a/api_docs/kbn_plugin_generator.mdx b/api_docs/kbn_plugin_generator.mdx index 549538c38c405..27577f749ca74 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/plugin-generator'] --- import kbnPluginGeneratorObj from './kbn_plugin_generator.devdocs.json'; diff --git a/api_docs/kbn_plugin_helpers.mdx b/api_docs/kbn_plugin_helpers.mdx index 2eccebf1108ac..fa87b382f9531 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-03 +date: 2023-10-04 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 39ab3f94d4c1b..f80f83b70d6c4 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/profiling-utils'] --- import kbnProfilingUtilsObj from './kbn_profiling_utils.devdocs.json'; diff --git a/api_docs/kbn_random_sampling.mdx b/api_docs/kbn_random_sampling.mdx index 48ed94b6a509a..bd82bd11c69cc 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/random-sampling'] --- import kbnRandomSamplingObj from './kbn_random_sampling.devdocs.json'; diff --git a/api_docs/kbn_react_field.mdx b/api_docs/kbn_react_field.mdx index 802d6604cee42..cf85c1c8857aa 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-03 +date: 2023-10-04 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 5da87773af040..1509c1a981ff1 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-context-common'] --- import kbnReactKibanaContextCommonObj from './kbn_react_kibana_context_common.devdocs.json'; diff --git a/api_docs/kbn_react_kibana_context_render.mdx b/api_docs/kbn_react_kibana_context_render.mdx index 2c15f75f60b14..facd8a5434cea 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-context-render'] --- import kbnReactKibanaContextRenderObj from './kbn_react_kibana_context_render.devdocs.json'; diff --git a/api_docs/kbn_react_kibana_context_root.mdx b/api_docs/kbn_react_kibana_context_root.mdx index dfa7d4a495bcc..ad7592dd3ad90 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-context-root'] --- import kbnReactKibanaContextRootObj from './kbn_react_kibana_context_root.devdocs.json'; diff --git a/api_docs/kbn_react_kibana_context_styled.mdx b/api_docs/kbn_react_kibana_context_styled.mdx index 9ea3cb839886f..6c7a7187c7418 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-context-styled'] --- import kbnReactKibanaContextStyledObj from './kbn_react_kibana_context_styled.devdocs.json'; diff --git a/api_docs/kbn_react_kibana_context_theme.mdx b/api_docs/kbn_react_kibana_context_theme.mdx index c2a3d3edad44d..07a624239db5d 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-context-theme'] --- import kbnReactKibanaContextThemeObj from './kbn_react_kibana_context_theme.devdocs.json'; diff --git a/api_docs/kbn_react_kibana_mount.mdx b/api_docs/kbn_react_kibana_mount.mdx index 16c366ac9fa8c..427c4673b94bb 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-mount'] --- import kbnReactKibanaMountObj from './kbn_react_kibana_mount.devdocs.json'; diff --git a/api_docs/kbn_repo_file_maps.mdx b/api_docs/kbn_repo_file_maps.mdx index 4e985f5a0479f..dbb92f84671f7 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-file-maps'] --- import kbnRepoFileMapsObj from './kbn_repo_file_maps.devdocs.json'; diff --git a/api_docs/kbn_repo_linter.mdx b/api_docs/kbn_repo_linter.mdx index 28f8a0bb93d00..9eecd8792a6e4 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-linter'] --- import kbnRepoLinterObj from './kbn_repo_linter.devdocs.json'; diff --git a/api_docs/kbn_repo_path.mdx b/api_docs/kbn_repo_path.mdx index febbdced9d65e..ec84b6f1b1280 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-path'] --- import kbnRepoPathObj from './kbn_repo_path.devdocs.json'; diff --git a/api_docs/kbn_repo_source_classifier.mdx b/api_docs/kbn_repo_source_classifier.mdx index 34d82649e3dd6..9cd05df3aac22 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-source-classifier'] --- import kbnRepoSourceClassifierObj from './kbn_repo_source_classifier.devdocs.json'; diff --git a/api_docs/kbn_reporting_common.mdx b/api_docs/kbn_reporting_common.mdx index 7a82c4c23dd7b..6643d1d45fb39 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-03 +date: 2023-10-04 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 dd167b2d5dc79..e1bf02ac29cc2 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/resizable-layout'] --- import kbnResizableLayoutObj from './kbn_resizable_layout.devdocs.json'; diff --git a/api_docs/kbn_rison.mdx b/api_docs/kbn_rison.mdx index c1be0b037df4f..0224356418b99 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-03 +date: 2023-10-04 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 2ed9074add349..861159a104eea 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rrule'] --- import kbnRruleObj from './kbn_rrule.devdocs.json'; diff --git a/api_docs/kbn_rule_data_utils.mdx b/api_docs/kbn_rule_data_utils.mdx index 89686f52c3c30..4a41353e4caf6 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rule-data-utils'] --- import kbnRuleDataUtilsObj from './kbn_rule_data_utils.devdocs.json'; diff --git a/api_docs/kbn_saved_objects_settings.mdx b/api_docs/kbn_saved_objects_settings.mdx index 752ca9e966cad..bd257bba9018a 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/saved-objects-settings'] --- import kbnSavedObjectsSettingsObj from './kbn_saved_objects_settings.devdocs.json'; diff --git a/api_docs/kbn_search_api_panels.mdx b/api_docs/kbn_search_api_panels.mdx index 8129b7cff1bf8..66cb8a44a0f57 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-03 +date: 2023-10-04 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.devdocs.json b/api_docs/kbn_search_connectors.devdocs.json index c4c22b4fab4e1..dee27e260aaa7 100644 --- a/api_docs/kbn_search_connectors.devdocs.json +++ b/api_docs/kbn_search_connectors.devdocs.json @@ -10015,10 +10015,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github", "type": "Object", "tags": [], - "label": "jira", + "label": "github", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -10026,7 +10026,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration", "type": "Object", "tags": [], "label": "configuration", @@ -10037,7 +10037,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.data_source", "type": "Object", "tags": [], "label": "data_source", @@ -10048,7 +10048,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.data_source.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -10062,7 +10062,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.data_source.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -10076,7 +10076,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.data_source.display", "type": "string", "tags": [], "label": "display", @@ -10097,7 +10097,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.data_source.label", "type": "string", "tags": [], "label": "label", @@ -10108,7 +10108,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.data_source.options", "type": "Array", "tags": [], "label": "options", @@ -10122,7 +10122,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.data_source.order", "type": "number", "tags": [], "label": "order", @@ -10133,7 +10133,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.data_source.required", "type": "boolean", "tags": [], "label": "required", @@ -10147,7 +10147,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.data_source.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -10161,7 +10161,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.data_source.tooltip", "type": "Uncategorized", "tags": [], "label": "tooltip", @@ -10175,7 +10175,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.data_source.type", "type": "string", "tags": [], "label": "type", @@ -10196,7 +10196,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.data_source.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -10210,7 +10210,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.data_source.validations", "type": "Array", "tags": [], "label": "validations", @@ -10224,7 +10224,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.data_source.value", "type": "string", "tags": [], "label": "value", @@ -10237,10 +10237,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.host", "type": "Object", "tags": [], - "label": "username", + "label": "host", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -10248,7 +10248,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.host.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -10262,7 +10262,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.host.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -10276,7 +10276,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.host.display", "type": "string", "tags": [], "label": "display", @@ -10297,7 +10297,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.host.label", "type": "string", "tags": [], "label": "label", @@ -10308,7 +10308,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.host.options", "type": "Array", "tags": [], "label": "options", @@ -10322,7 +10322,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.host.order", "type": "number", "tags": [], "label": "order", @@ -10333,7 +10333,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.host.required", "type": "boolean", "tags": [], "label": "required", @@ -10347,7 +10347,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.host.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -10361,7 +10361,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.host.tooltip", "type": "Uncategorized", "tags": [], "label": "tooltip", @@ -10375,7 +10375,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.host.type", "type": "string", "tags": [], "label": "type", @@ -10396,7 +10396,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.host.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -10410,7 +10410,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.host.validations", "type": "Array", "tags": [], "label": "validations", @@ -10424,7 +10424,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.host.value", "type": "string", "tags": [], "label": "value", @@ -10437,10 +10437,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.token", "type": "Object", "tags": [], - "label": "password", + "label": "token", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -10448,7 +10448,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.token.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -10462,13 +10462,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.token.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "{ field: string; value: string; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -10476,7 +10476,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.token.display", "type": "string", "tags": [], "label": "display", @@ -10497,7 +10497,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.token.label", "type": "string", "tags": [], "label": "label", @@ -10508,7 +10508,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.token.options", "type": "Array", "tags": [], "label": "options", @@ -10522,7 +10522,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.token.order", "type": "number", "tags": [], "label": "order", @@ -10533,7 +10533,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.token.required", "type": "boolean", "tags": [], "label": "required", @@ -10547,7 +10547,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.token.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -10561,7 +10561,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.token.tooltip", "type": "Uncategorized", "tags": [], "label": "tooltip", @@ -10575,7 +10575,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.token.type", "type": "string", "tags": [], "label": "type", @@ -10596,7 +10596,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.token.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -10610,7 +10610,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.token.validations", "type": "Array", "tags": [], "label": "validations", @@ -10624,7 +10624,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.token.value", "type": "string", "tags": [], "label": "value", @@ -10637,10 +10637,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories", "type": "Object", "tags": [], - "label": "account_email", + "label": "repositories", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -10648,7 +10648,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -10662,13 +10662,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "{ field: string; value: string; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -10676,7 +10676,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.display", "type": "string", "tags": [], "label": "display", @@ -10689,7 +10689,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTBOX" + ".TEXTAREA" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -10697,7 +10697,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.label", "type": "string", "tags": [], "label": "label", @@ -10708,7 +10708,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.options", "type": "Array", "tags": [], "label": "options", @@ -10722,7 +10722,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.order", "type": "number", "tags": [], "label": "order", @@ -10733,18 +10733,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.placeholder", - "type": "string", - "tags": [], - "label": "placeholder", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.required", "type": "boolean", "tags": [], "label": "required", @@ -10758,7 +10747,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -10772,21 +10761,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.tooltip", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.tooltip", + "type": "string", "tags": [], "label": "tooltip", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.type", "type": "string", "tags": [], "label": "type", @@ -10799,7 +10785,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".STRING" + ".LIST" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -10807,7 +10793,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -10821,7 +10807,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.validations", "type": "Array", "tags": [], "label": "validations", @@ -10835,7 +10821,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.value", "type": "string", "tags": [], "label": "value", @@ -10848,10 +10834,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled", "type": "Object", "tags": [], - "label": "api_token", + "label": "ssl_enabled", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -10859,7 +10845,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -10873,13 +10859,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "{ field: string; value: string; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -10887,7 +10873,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.display", "type": "string", "tags": [], "label": "display", @@ -10900,7 +10886,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTBOX" + ".TOGGLE" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -10908,7 +10894,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.label", "type": "string", "tags": [], "label": "label", @@ -10919,7 +10905,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.options", "type": "Array", "tags": [], "label": "options", @@ -10933,7 +10919,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.order", "type": "number", "tags": [], "label": "order", @@ -10944,7 +10930,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.required", "type": "boolean", "tags": [], "label": "required", @@ -10958,13 +10944,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -10972,7 +10958,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.tooltip", "type": "Uncategorized", "tags": [], "label": "tooltip", @@ -10986,7 +10972,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.type", "type": "string", "tags": [], "label": "type", @@ -10999,7 +10985,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".STRING" + ".BOOLEAN" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -11007,7 +10993,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -11021,7 +11007,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.validations", "type": "Array", "tags": [], "label": "validations", @@ -11035,11 +11021,14 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token.value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.value", + "type": "boolean", "tags": [], "label": "value", "description": [], + "signature": [ + "false" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false @@ -11048,10 +11037,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca", "type": "Object", "tags": [], - "label": "jira_url", + "label": "ssl_ca", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -11059,7 +11048,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -11073,13 +11062,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "never[]" + "{ field: string; value: true; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -11087,7 +11076,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.display", "type": "string", "tags": [], "label": "display", @@ -11108,7 +11097,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.label", "type": "string", "tags": [], "label": "label", @@ -11119,7 +11108,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.options", "type": "Array", "tags": [], "label": "options", @@ -11133,7 +11122,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.order", "type": "number", "tags": [], "label": "order", @@ -11144,18 +11133,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.placeholder", - "type": "string", - "tags": [], - "label": "placeholder", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.required", "type": "boolean", "tags": [], "label": "required", @@ -11169,7 +11147,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -11183,7 +11161,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.tooltip", "type": "Uncategorized", "tags": [], "label": "tooltip", @@ -11197,7 +11175,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.type", "type": "string", "tags": [], "label": "type", @@ -11218,7 +11196,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -11232,7 +11210,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.validations", "type": "Array", "tags": [], "label": "validations", @@ -11246,7 +11224,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.value", "type": "string", "tags": [], "label": "value", @@ -11259,10 +11237,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count", "type": "Object", "tags": [], - "label": "projects", + "label": "retry_count", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -11270,7 +11248,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -11284,7 +11262,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -11298,7 +11276,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.display", "type": "string", "tags": [], "label": "display", @@ -11311,7 +11289,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTAREA" + ".NUMERIC" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -11319,7 +11297,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.label", "type": "string", "tags": [], "label": "label", @@ -11330,7 +11308,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.options", "type": "Array", "tags": [], "label": "options", @@ -11344,7 +11322,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.order", "type": "number", "tags": [], "label": "order", @@ -11355,13 +11333,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -11369,7 +11347,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -11383,18 +11361,21 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects.tooltip", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.tooltip", + "type": "Uncategorized", "tags": [], "label": "tooltip", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.type", "type": "string", "tags": [], "label": "type", @@ -11407,7 +11388,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".LIST" + ".INTEGER" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -11415,13 +11396,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "never[]" + "string[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -11429,7 +11410,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.validations", "type": "Array", "tags": [], "label": "validations", @@ -11443,23 +11424,34 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects.value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.value", + "type": "number", "tags": [], "label": "value", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.display_value", + "type": "number", + "tags": [], + "label": "display_value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false } ] }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service", "type": "Object", "tags": [], - "label": "ssl_enabled", + "label": "use_text_extraction_service", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -11467,7 +11459,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -11481,7 +11473,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -11495,7 +11487,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.display", "type": "string", "tags": [], "label": "display", @@ -11516,7 +11508,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.label", "type": "string", "tags": [], "label": "label", @@ -11527,7 +11519,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.options", "type": "Array", "tags": [], "label": "options", @@ -11541,7 +11533,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.order", "type": "number", "tags": [], "label": "order", @@ -11552,7 +11544,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.required", "type": "boolean", "tags": [], "label": "required", @@ -11566,7 +11558,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -11580,21 +11572,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled.tooltip", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.tooltip", + "type": "string", "tags": [], "label": "tooltip", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.type", "type": "string", "tags": [], "label": "type", @@ -11615,7 +11604,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -11629,7 +11618,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.validations", "type": "Array", "tags": [], "label": "validations", @@ -11643,7 +11632,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.value", "type": "boolean", "tags": [], "label": "value", @@ -11656,62 +11645,122 @@ "trackAdoption": false } ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca", - "type": "Object", - "tags": [], - "label": "ssl_ca", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca.default_value", - "type": "Uncategorized", - "tags": [], - "label": "default_value", - "description": [], - "signature": [ - "null" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca.depends_on", - "type": "Array", - "tags": [], - "label": "depends_on", - "description": [], - "signature": [ - "{ field: string; value: true; }[]" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca.display", - "type": "string", - "tags": [], - "label": "display", - "description": [], - "signature": [ - { - "pluginId": "@kbn/search-connectors", + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.features", + "type": "Object", + "tags": [], + "label": "features", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.serviceType", + "type": "string", + "tags": [], + "label": "serviceType", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive", + "type": "Object", + "tags": [], + "label": "google_drive", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration", + "type": "Object", + "tags": [], + "label": "configuration", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.service_account_credentials", + "type": "Object", + "tags": [], + "label": "service_account_credentials", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.service_account_credentials.default_value", + "type": "Uncategorized", + "tags": [], + "label": "default_value", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.service_account_credentials.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.service_account_credentials.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", "scope": "common", "docId": "kibKbnSearchConnectorsPluginApi", "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTBOX" + ".TEXTAREA" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -11719,7 +11768,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.service_account_credentials.label", "type": "string", "tags": [], "label": "label", @@ -11730,7 +11779,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.service_account_credentials.options", "type": "Array", "tags": [], "label": "options", @@ -11744,7 +11793,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.service_account_credentials.order", "type": "number", "tags": [], "label": "order", @@ -11755,7 +11804,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.service_account_credentials.required", "type": "boolean", "tags": [], "label": "required", @@ -11769,13 +11818,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.service_account_credentials.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -11783,21 +11832,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca.tooltip", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.service_account_credentials.tooltip", + "type": "string", "tags": [], "label": "tooltip", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.service_account_credentials.type", "type": "string", "tags": [], "label": "type", @@ -11818,7 +11864,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.service_account_credentials.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -11832,7 +11878,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.service_account_credentials.validations", "type": "Array", "tags": [], "label": "validations", @@ -11846,7 +11892,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.service_account_credentials.value", "type": "string", "tags": [], "label": "value", @@ -11859,10 +11905,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_document_level_security", "type": "Object", "tags": [], - "label": "retry_count", + "label": "use_document_level_security", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -11870,18 +11916,21 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count.default_value", - "type": "number", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_document_level_security.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_document_level_security.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -11895,7 +11944,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_document_level_security.display", "type": "string", "tags": [], "label": "display", @@ -11908,7 +11957,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".NUMERIC" + ".TOGGLE" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -11916,7 +11965,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_document_level_security.label", "type": "string", "tags": [], "label": "label", @@ -11927,7 +11976,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_document_level_security.options", "type": "Array", "tags": [], "label": "options", @@ -11941,7 +11990,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_document_level_security.order", "type": "number", "tags": [], "label": "order", @@ -11952,13 +12001,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_document_level_security.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -11966,7 +12015,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_document_level_security.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -11980,21 +12029,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count.tooltip", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_document_level_security.tooltip", + "type": "string", "tags": [], "label": "tooltip", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_document_level_security.type", "type": "string", "tags": [], "label": "type", @@ -12007,7 +12053,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".INTEGER" + ".BOOLEAN" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -12015,13 +12061,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_document_level_security.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "string[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -12029,7 +12075,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_document_level_security.validations", "type": "Array", "tags": [], "label": "validations", @@ -12043,11 +12089,14 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count.value", - "type": "number", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_document_level_security.value", + "type": "boolean", "tags": [], "label": "value", "description": [], + "signature": [ + "false" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false @@ -12056,10 +12105,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email", "type": "Object", "tags": [], - "label": "concurrent_downloads", + "label": "google_workspace_admin_email", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -12067,24 +12116,27 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads.default_value", - "type": "number", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "never[]" + "{ field: string; value: true; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -12092,7 +12144,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email.display", "type": "string", "tags": [], "label": "display", @@ -12105,7 +12157,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".NUMERIC" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -12113,7 +12165,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email.label", "type": "string", "tags": [], "label": "label", @@ -12124,7 +12176,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email.options", "type": "Array", "tags": [], "label": "options", @@ -12138,7 +12190,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email.order", "type": "number", "tags": [], "label": "order", @@ -12149,13 +12201,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -12163,7 +12215,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -12177,21 +12229,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads.tooltip", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email.tooltip", + "type": "string", "tags": [], "label": "tooltip", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email.type", "type": "string", "tags": [], "label": "type", @@ -12204,7 +12253,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".INTEGER" + ".STRING" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -12212,13 +12261,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "string[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -12226,13 +12275,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email.validations", "type": "Array", "tags": [], "label": "validations", "description": [], "signature": [ - "{ type: string; constraint: number; }[]" + "{ type: string; constraint: string; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -12240,8 +12289,8 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads.value", - "type": "number", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email.value", + "type": "string", "tags": [], "label": "value", "description": [], @@ -12253,10 +12302,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.max_concurrency", "type": "Object", "tags": [], - "label": "use_text_extraction_service", + "label": "max_concurrency", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -12264,21 +12313,18 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service.default_value", - "type": "boolean", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.max_concurrency.default_value", + "type": "number", "tags": [], "label": "default_value", "description": [], - "signature": [ - "false" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.max_concurrency.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -12292,7 +12338,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.max_concurrency.display", "type": "string", "tags": [], "label": "display", @@ -12305,7 +12351,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TOGGLE" + ".NUMERIC" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -12313,7 +12359,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.max_concurrency.label", "type": "string", "tags": [], "label": "label", @@ -12324,7 +12370,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.max_concurrency.options", "type": "Array", "tags": [], "label": "options", @@ -12338,7 +12384,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.max_concurrency.order", "type": "number", "tags": [], "label": "order", @@ -12349,13 +12395,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.max_concurrency.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -12363,7 +12409,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.max_concurrency.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -12377,7 +12423,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.max_concurrency.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -12388,7 +12434,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.max_concurrency.type", "type": "string", "tags": [], "label": "type", @@ -12401,7 +12447,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".BOOLEAN" + ".INTEGER" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -12409,7 +12455,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.max_concurrency.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -12423,13 +12469,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.max_concurrency.validations", "type": "Array", "tags": [], "label": "validations", "description": [], "signature": [ - "never[]" + "{ type: string; constraint: number; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -12437,39 +12483,23 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service.value", - "type": "boolean", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.max_concurrency.value", + "type": "string", "tags": [], "label": "value", "description": [], - "signature": [ - "false" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false } ] - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.features", - "type": "Object", - "tags": [], - "label": "features", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ + }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.features.FeatureName.SYNC_RULES", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_text_extraction_service", "type": "Object", "tags": [], - "label": "[FeatureName.SYNC_RULES]", + "label": "use_text_extraction_service", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -12477,18 +12507,4088 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.features.FeatureName.SYNC_RULES.advanced", - "type": "Object", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_text_extraction_service.default_value", + "type": "Uncategorized", "tags": [], - "label": "advanced", + "label": "default_value", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, - "trackAdoption": false, - "children": [ - { + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_text_extraction_service.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_text_extraction_service.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".TOGGLE" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_text_extraction_service.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_text_extraction_service.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_text_extraction_service.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_text_extraction_service.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_text_extraction_service.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_text_extraction_service.tooltip", + "type": "string", + "tags": [], + "label": "tooltip", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_text_extraction_service.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".BOOLEAN" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_text_extraction_service.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_text_extraction_service.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_text_extraction_service.value", + "type": "boolean", + "tags": [], + "label": "value", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.features", + "type": "Object", + "tags": [], + "label": "features", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.features.FeatureName.DOCUMENT_LEVEL_SECURITY", + "type": "Object", + "tags": [], + "label": "[FeatureName.DOCUMENT_LEVEL_SECURITY]", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.features.FeatureName.DOCUMENT_LEVEL_SECURITY.enabled", + "type": "boolean", + "tags": [], + "label": "enabled", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.serviceType", + "type": "string", + "tags": [], + "label": "serviceType", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira", + "type": "Object", + "tags": [], + "label": "jira", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration", + "type": "Object", + "tags": [], + "label": "configuration", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source", + "type": "Object", + "tags": [], + "label": "data_source", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source.default_value", + "type": "Uncategorized", + "tags": [], + "label": "default_value", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".DROPDOWN" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "{ label: string; value: string; }[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source.tooltip", + "type": "Uncategorized", + "tags": [], + "label": "tooltip", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".STRING" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source.value", + "type": "string", + "tags": [], + "label": "value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username", + "type": "Object", + "tags": [], + "label": "username", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username.default_value", + "type": "Uncategorized", + "tags": [], + "label": "default_value", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "{ field: string; value: string; }[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".TEXTBOX" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username.tooltip", + "type": "Uncategorized", + "tags": [], + "label": "tooltip", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".STRING" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username.value", + "type": "string", + "tags": [], + "label": "value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password", + "type": "Object", + "tags": [], + "label": "password", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password.default_value", + "type": "Uncategorized", + "tags": [], + "label": "default_value", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "{ field: string; value: string; }[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".TEXTBOX" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password.tooltip", + "type": "Uncategorized", + "tags": [], + "label": "tooltip", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".STRING" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password.value", + "type": "string", + "tags": [], + "label": "value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email", + "type": "Object", + "tags": [], + "label": "account_email", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.default_value", + "type": "Uncategorized", + "tags": [], + "label": "default_value", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "{ field: string; value: string; }[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".TEXTBOX" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.placeholder", + "type": "string", + "tags": [], + "label": "placeholder", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.tooltip", + "type": "Uncategorized", + "tags": [], + "label": "tooltip", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".STRING" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.value", + "type": "string", + "tags": [], + "label": "value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token", + "type": "Object", + "tags": [], + "label": "api_token", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token.default_value", + "type": "Uncategorized", + "tags": [], + "label": "default_value", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "{ field: string; value: string; }[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".TEXTBOX" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token.tooltip", + "type": "Uncategorized", + "tags": [], + "label": "tooltip", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".STRING" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token.value", + "type": "string", + "tags": [], + "label": "value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url", + "type": "Object", + "tags": [], + "label": "jira_url", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.default_value", + "type": "Uncategorized", + "tags": [], + "label": "default_value", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".TEXTBOX" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.placeholder", + "type": "string", + "tags": [], + "label": "placeholder", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.tooltip", + "type": "Uncategorized", + "tags": [], + "label": "tooltip", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".STRING" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.value", + "type": "string", + "tags": [], + "label": "value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects", + "type": "Object", + "tags": [], + "label": "projects", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects.default_value", + "type": "Uncategorized", + "tags": [], + "label": "default_value", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".TEXTAREA" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects.tooltip", + "type": "string", + "tags": [], + "label": "tooltip", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".LIST" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects.value", + "type": "string", + "tags": [], + "label": "value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled", + "type": "Object", + "tags": [], + "label": "ssl_enabled", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled.default_value", + "type": "Uncategorized", + "tags": [], + "label": "default_value", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".TOGGLE" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled.tooltip", + "type": "Uncategorized", + "tags": [], + "label": "tooltip", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".BOOLEAN" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled.value", + "type": "boolean", + "tags": [], + "label": "value", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca", + "type": "Object", + "tags": [], + "label": "ssl_ca", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca.default_value", + "type": "Uncategorized", + "tags": [], + "label": "default_value", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "{ field: string; value: true; }[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".TEXTBOX" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca.tooltip", + "type": "Uncategorized", + "tags": [], + "label": "tooltip", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".STRING" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca.value", + "type": "string", + "tags": [], + "label": "value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count", + "type": "Object", + "tags": [], + "label": "retry_count", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count.default_value", + "type": "number", + "tags": [], + "label": "default_value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".NUMERIC" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count.tooltip", + "type": "Uncategorized", + "tags": [], + "label": "tooltip", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".INTEGER" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "string[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count.value", + "type": "number", + "tags": [], + "label": "value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads", + "type": "Object", + "tags": [], + "label": "concurrent_downloads", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads.default_value", + "type": "number", + "tags": [], + "label": "default_value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".NUMERIC" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads.tooltip", + "type": "Uncategorized", + "tags": [], + "label": "tooltip", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".INTEGER" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "string[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "{ type: string; constraint: number; }[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads.value", + "type": "number", + "tags": [], + "label": "value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service", + "type": "Object", + "tags": [], + "label": "use_text_extraction_service", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service.default_value", + "type": "boolean", + "tags": [], + "label": "default_value", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".TOGGLE" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service.tooltip", + "type": "string", + "tags": [], + "label": "tooltip", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".BOOLEAN" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "string[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service.value", + "type": "boolean", + "tags": [], + "label": "value", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.features", + "type": "Object", + "tags": [], + "label": "features", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.features.FeatureName.SYNC_RULES", + "type": "Object", + "tags": [], + "label": "[FeatureName.SYNC_RULES]", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.features.FeatureName.SYNC_RULES.advanced", + "type": "Object", + "tags": [], + "label": "advanced", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.features.FeatureName.SYNC_RULES.advanced.enabled", + "type": "boolean", + "tags": [], + "label": "enabled", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.features.FeatureName.SYNC_RULES.basic", + "type": "Object", + "tags": [], + "label": "basic", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.features.FeatureName.SYNC_RULES.basic.enabled", + "type": "boolean", + "tags": [], + "label": "enabled", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ] + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.serviceType", + "type": "string", + "tags": [], + "label": "serviceType", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb", + "type": "Object", + "tags": [], + "label": "mongodb", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration", + "type": "Object", + "tags": [], + "label": "configuration", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host", + "type": "Object", + "tags": [], + "label": "host", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host.default_value", + "type": "string", + "tags": [], + "label": "default_value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".TEXTBOX" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host.tooltip", + "type": "string", + "tags": [], + "label": "tooltip", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".STRING" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host.value", + "type": "string", + "tags": [], + "label": "value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user", + "type": "Object", + "tags": [], + "label": "user", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user.default_value", + "type": "string", + "tags": [], + "label": "default_value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".TEXTBOX" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user.tooltip", + "type": "string", + "tags": [], + "label": "tooltip", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".STRING" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user.value", + "type": "string", + "tags": [], + "label": "value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password", + "type": "Object", + "tags": [], + "label": "password", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password.default_value", + "type": "string", + "tags": [], + "label": "default_value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".TEXTBOX" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password.tooltip", + "type": "string", + "tags": [], + "label": "tooltip", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".STRING" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password.value", + "type": "string", + "tags": [], + "label": "value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database", + "type": "Object", + "tags": [], + "label": "database", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database.default_value", + "type": "string", + "tags": [], + "label": "default_value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".TEXTBOX" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database.tooltip", + "type": "string", + "tags": [], + "label": "tooltip", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".STRING" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database.value", + "type": "string", + "tags": [], + "label": "value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection", + "type": "Object", + "tags": [], + "label": "collection", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection.default_value", + "type": "string", + "tags": [], + "label": "default_value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".TEXTBOX" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection.tooltip", + "type": "string", + "tags": [], + "label": "tooltip", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".STRING" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection.value", + "type": "string", + "tags": [], + "label": "value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection", + "type": "Object", + "tags": [], + "label": "direct_connection", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection.default_value", + "type": "boolean", + "tags": [], + "label": "default_value", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".TOGGLE" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection.tooltip", + "type": "string", + "tags": [], + "label": "tooltip", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".BOOLEAN" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection.value", + "type": "boolean", + "tags": [], + "label": "value", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.features", + "type": "Object", + "tags": [], + "label": "features", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.features.FeatureName.FILTERING_ADVANCED_CONFIG", + "type": "boolean", + "tags": [], + "label": "[FeatureName.FILTERING_ADVANCED_CONFIG]", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.features.FeatureName.FILTERING_RULES", + "type": "boolean", + "tags": [], + "label": "[FeatureName.FILTERING_RULES]", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.features.FeatureName.SYNC_RULES", + "type": "Object", + "tags": [], + "label": "[FeatureName.SYNC_RULES]", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.features.FeatureName.SYNC_RULES.advanced", + "type": "Object", + "tags": [], + "label": "advanced", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.features.FeatureName.SYNC_RULES.advanced.enabled", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.features.FeatureName.SYNC_RULES.advanced.enabled", + "type": "boolean", + "tags": [], + "label": "enabled", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.features.FeatureName.SYNC_RULES.basic", + "type": "Object", + "tags": [], + "label": "basic", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.features.FeatureName.SYNC_RULES.basic.enabled", "type": "boolean", "tags": [], "label": "enabled", @@ -12501,90 +16601,257 @@ "trackAdoption": false } ] + } + ] + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.serviceType", + "type": "string", + "tags": [], + "label": "serviceType", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql", + "type": "Object", + "tags": [], + "label": "mssql", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration", + "type": "Object", + "tags": [], + "label": "configuration", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host", + "type": "Object", + "tags": [], + "label": "host", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host.default_value", + "type": "string", + "tags": [], + "label": "default_value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".TEXTBOX" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.features.FeatureName.SYNC_RULES.basic", - "type": "Object", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host.sensitive", + "type": "boolean", "tags": [], - "label": "basic", + "label": "sensitive", "description": [], + "signature": [ + "false" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, - "trackAdoption": false, - "children": [ + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host.tooltip", + "type": "string", + "tags": [], + "label": "tooltip", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.features.FeatureName.SYNC_RULES.basic.enabled", - "type": "boolean", - "tags": [], - "label": "enabled", - "description": [], - "signature": [ - "true" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".STRING" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host.value", + "type": "string", + "tags": [], + "label": "value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false } ] - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.name", - "type": "string", - "tags": [], - "label": "name", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.serviceType", - "type": "string", - "tags": [], - "label": "serviceType", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb", - "type": "Object", - "tags": [], - "label": "mongodb", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration", - "type": "Object", - "tags": [], - "label": "configuration", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ + }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port", "type": "Object", "tags": [], - "label": "host", + "label": "port", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -12592,18 +16859,21 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host.default_value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -12617,7 +16887,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port.display", "type": "string", "tags": [], "label": "display", @@ -12630,7 +16900,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTBOX" + ".NUMERIC" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -12638,7 +16908,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port.label", "type": "string", "tags": [], "label": "label", @@ -12649,7 +16919,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port.options", "type": "Array", "tags": [], "label": "options", @@ -12663,7 +16933,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port.order", "type": "number", "tags": [], "label": "order", @@ -12674,7 +16944,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port.required", "type": "boolean", "tags": [], "label": "required", @@ -12688,7 +16958,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -12702,7 +16972,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -12713,7 +16983,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port.type", "type": "string", "tags": [], "label": "type", @@ -12726,7 +16996,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".STRING" + ".INTEGER" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -12734,7 +17004,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -12748,7 +17018,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port.validations", "type": "Array", "tags": [], "label": "validations", @@ -12762,8 +17032,8 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host.value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port.value", + "type": "number", "tags": [], "label": "value", "description": [], @@ -12775,10 +17045,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username", "type": "Object", "tags": [], - "label": "user", + "label": "username", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -12786,7 +17056,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username.default_value", "type": "string", "tags": [], "label": "default_value", @@ -12797,7 +17067,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -12811,7 +17081,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username.display", "type": "string", "tags": [], "label": "display", @@ -12832,7 +17102,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username.label", "type": "string", "tags": [], "label": "label", @@ -12843,7 +17113,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username.options", "type": "Array", "tags": [], "label": "options", @@ -12857,7 +17127,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username.order", "type": "number", "tags": [], "label": "order", @@ -12868,13 +17138,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -12882,7 +17152,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -12896,7 +17166,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -12907,7 +17177,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username.type", "type": "string", "tags": [], "label": "type", @@ -12928,7 +17198,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -12942,7 +17212,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username.validations", "type": "Array", "tags": [], "label": "validations", @@ -12956,7 +17226,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username.value", "type": "string", "tags": [], "label": "value", @@ -12969,7 +17239,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password", "type": "Object", "tags": [], "label": "password", @@ -12980,7 +17250,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password.default_value", "type": "string", "tags": [], "label": "default_value", @@ -12991,7 +17261,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -13005,7 +17275,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password.display", "type": "string", "tags": [], "label": "display", @@ -13026,7 +17296,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password.label", "type": "string", "tags": [], "label": "label", @@ -13037,7 +17307,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password.options", "type": "Array", "tags": [], "label": "options", @@ -13051,7 +17321,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password.order", "type": "number", "tags": [], "label": "order", @@ -13062,13 +17332,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -13076,7 +17346,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -13090,7 +17360,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -13101,7 +17371,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password.type", "type": "string", "tags": [], "label": "type", @@ -13122,7 +17392,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -13136,7 +17406,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password.validations", "type": "Array", "tags": [], "label": "validations", @@ -13150,7 +17420,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password.value", "type": "string", "tags": [], "label": "value", @@ -13163,7 +17433,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database", "type": "Object", "tags": [], "label": "database", @@ -13174,7 +17444,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database.default_value", "type": "string", "tags": [], "label": "default_value", @@ -13185,7 +17455,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -13199,7 +17469,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database.display", "type": "string", "tags": [], "label": "display", @@ -13220,7 +17490,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database.label", "type": "string", "tags": [], "label": "label", @@ -13231,7 +17501,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database.options", "type": "Array", "tags": [], "label": "options", @@ -13245,7 +17515,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database.order", "type": "number", "tags": [], "label": "order", @@ -13256,7 +17526,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database.required", "type": "boolean", "tags": [], "label": "required", @@ -13270,7 +17540,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -13284,7 +17554,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -13295,7 +17565,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database.type", "type": "string", "tags": [], "label": "type", @@ -13316,7 +17586,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -13330,7 +17600,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database.validations", "type": "Array", "tags": [], "label": "validations", @@ -13344,7 +17614,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database.value", "type": "string", "tags": [], "label": "value", @@ -13357,10 +17627,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables", "type": "Object", "tags": [], - "label": "collection", + "label": "tables", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -13368,7 +17638,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables.default_value", "type": "string", "tags": [], "label": "default_value", @@ -13379,7 +17649,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -13393,7 +17663,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables.display", "type": "string", "tags": [], "label": "display", @@ -13406,7 +17676,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTBOX" + ".TEXTAREA" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -13414,7 +17684,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables.label", "type": "string", "tags": [], "label": "label", @@ -13425,7 +17695,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables.options", "type": "Array", "tags": [], "label": "options", @@ -13439,7 +17709,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables.order", "type": "number", "tags": [], "label": "order", @@ -13450,7 +17720,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables.required", "type": "boolean", "tags": [], "label": "required", @@ -13464,7 +17734,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -13478,7 +17748,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -13489,7 +17759,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables.type", "type": "string", "tags": [], "label": "type", @@ -13502,7 +17772,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".STRING" + ".LIST" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -13510,7 +17780,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -13524,7 +17794,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables.validations", "type": "Array", "tags": [], "label": "validations", @@ -13538,7 +17808,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables.value", "type": "string", "tags": [], "label": "value", @@ -13551,10 +17821,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled", "type": "Object", "tags": [], - "label": "direct_connection", + "label": "ssl_enabled", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -13562,7 +17832,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled.default_value", "type": "boolean", "tags": [], "label": "default_value", @@ -13576,7 +17846,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -13590,7 +17860,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled.display", "type": "string", "tags": [], "label": "display", @@ -13611,7 +17881,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled.label", "type": "string", "tags": [], "label": "label", @@ -13622,7 +17892,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled.options", "type": "Array", "tags": [], "label": "options", @@ -13636,7 +17906,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled.order", "type": "number", "tags": [], "label": "order", @@ -13647,7 +17917,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled.required", "type": "boolean", "tags": [], "label": "required", @@ -13661,7 +17931,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -13675,7 +17945,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -13686,7 +17956,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled.type", "type": "string", "tags": [], "label": "type", @@ -13707,7 +17977,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -13721,7 +17991,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled.validations", "type": "Array", "tags": [], "label": "validations", @@ -13735,182 +18005,26 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled.value", "type": "boolean", "tags": [], "label": "value", - "description": [], - "signature": [ - "false" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.features", - "type": "Object", - "tags": [], - "label": "features", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.features.FeatureName.FILTERING_ADVANCED_CONFIG", - "type": "boolean", - "tags": [], - "label": "[FeatureName.FILTERING_ADVANCED_CONFIG]", - "description": [], - "signature": [ - "true" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.features.FeatureName.FILTERING_RULES", - "type": "boolean", - "tags": [], - "label": "[FeatureName.FILTERING_RULES]", - "description": [], - "signature": [ - "true" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.features.FeatureName.SYNC_RULES", - "type": "Object", - "tags": [], - "label": "[FeatureName.SYNC_RULES]", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.features.FeatureName.SYNC_RULES.advanced", - "type": "Object", - "tags": [], - "label": "advanced", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.features.FeatureName.SYNC_RULES.advanced.enabled", - "type": "boolean", - "tags": [], - "label": "enabled", - "description": [], - "signature": [ - "true" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.features.FeatureName.SYNC_RULES.basic", - "type": "Object", - "tags": [], - "label": "basic", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.features.FeatureName.SYNC_RULES.basic.enabled", - "type": "boolean", - "tags": [], - "label": "enabled", - "description": [], - "signature": [ - "true" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - } - ] - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.name", - "type": "string", - "tags": [], - "label": "name", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.serviceType", - "type": "string", - "tags": [], - "label": "serviceType", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql", - "type": "Object", - "tags": [], - "label": "mssql", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration", - "type": "Object", - "tags": [], - "label": "configuration", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca", "type": "Object", "tags": [], - "label": "host", + "label": "ssl_ca", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -13918,7 +18032,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca.default_value", "type": "string", "tags": [], "label": "default_value", @@ -13929,13 +18043,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "never[]" + "{ field: string; value: true; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -13943,7 +18057,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca.display", "type": "string", "tags": [], "label": "display", @@ -13964,7 +18078,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca.label", "type": "string", "tags": [], "label": "label", @@ -13975,7 +18089,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca.options", "type": "Array", "tags": [], "label": "options", @@ -13989,7 +18103,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca.order", "type": "number", "tags": [], "label": "order", @@ -14000,7 +18114,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca.required", "type": "boolean", "tags": [], "label": "required", @@ -14014,7 +18128,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -14028,7 +18142,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -14039,7 +18153,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca.type", "type": "string", "tags": [], "label": "type", @@ -14060,7 +18174,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -14074,7 +18188,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca.validations", "type": "Array", "tags": [], "label": "validations", @@ -14088,7 +18202,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca.value", "type": "string", "tags": [], "label": "value", @@ -14101,10 +18215,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema", "type": "Object", "tags": [], - "label": "port", + "label": "schema", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -14112,21 +18226,18 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port.default_value", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema.default_value", + "type": "string", "tags": [], "label": "default_value", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -14140,7 +18251,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema.display", "type": "string", "tags": [], "label": "display", @@ -14153,7 +18264,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".NUMERIC" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -14161,7 +18272,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema.label", "type": "string", "tags": [], "label": "label", @@ -14172,7 +18283,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema.options", "type": "Array", "tags": [], "label": "options", @@ -14186,7 +18297,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema.order", "type": "number", "tags": [], "label": "order", @@ -14197,7 +18308,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema.required", "type": "boolean", "tags": [], "label": "required", @@ -14211,7 +18322,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -14225,7 +18336,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -14236,7 +18347,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema.type", "type": "string", "tags": [], "label": "type", @@ -14249,7 +18360,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".INTEGER" + ".STRING" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -14257,7 +18368,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -14271,7 +18382,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema.validations", "type": "Array", "tags": [], "label": "validations", @@ -14285,8 +18396,8 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port.value", - "type": "number", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema.value", + "type": "string", "tags": [], "label": "value", "description": [], @@ -14298,10 +18409,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size", "type": "Object", "tags": [], - "label": "username", + "label": "fetch_size", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -14309,8 +18420,8 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username.default_value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size.default_value", + "type": "number", "tags": [], "label": "default_value", "description": [], @@ -14320,7 +18431,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -14334,7 +18445,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size.display", "type": "string", "tags": [], "label": "display", @@ -14347,7 +18458,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTBOX" + ".NUMERIC" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -14355,7 +18466,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size.label", "type": "string", "tags": [], "label": "label", @@ -14366,7 +18477,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size.options", "type": "Array", "tags": [], "label": "options", @@ -14380,7 +18491,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size.order", "type": "number", "tags": [], "label": "order", @@ -14391,13 +18502,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -14405,7 +18516,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -14419,7 +18530,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -14430,7 +18541,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size.type", "type": "string", "tags": [], "label": "type", @@ -14443,7 +18554,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".STRING" + ".INTEGER" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -14451,13 +18562,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "never[]" + "string[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -14465,7 +18576,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size.validations", "type": "Array", "tags": [], "label": "validations", @@ -14479,8 +18590,8 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username.value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size.value", + "type": "number", "tags": [], "label": "value", "description": [], @@ -14492,10 +18603,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count", "type": "Object", "tags": [], - "label": "password", + "label": "retry_count", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -14503,8 +18614,8 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password.default_value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count.default_value", + "type": "number", "tags": [], "label": "default_value", "description": [], @@ -14514,7 +18625,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -14528,7 +18639,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count.display", "type": "string", "tags": [], "label": "display", @@ -14541,7 +18652,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTBOX" + ".NUMERIC" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -14549,7 +18660,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count.label", "type": "string", "tags": [], "label": "label", @@ -14560,7 +18671,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count.options", "type": "Array", "tags": [], "label": "options", @@ -14574,7 +18685,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count.order", "type": "number", "tags": [], "label": "order", @@ -14585,13 +18696,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -14599,13 +18710,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -14613,7 +18724,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -14624,7 +18735,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count.type", "type": "string", "tags": [], "label": "type", @@ -14637,7 +18748,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".STRING" + ".INTEGER" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -14645,13 +18756,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "never[]" + "string[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -14659,7 +18770,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count.validations", "type": "Array", "tags": [], "label": "validations", @@ -14673,8 +18784,8 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password.value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count.value", + "type": "number", "tags": [], "label": "value", "description": [], @@ -14686,10 +18797,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host", "type": "Object", "tags": [], - "label": "database", + "label": "validate_host", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -14697,18 +18808,21 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database.default_value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host.default_value", + "type": "boolean", "tags": [], "label": "default_value", "description": [], + "signature": [ + "false" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -14722,7 +18836,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host.display", "type": "string", "tags": [], "label": "display", @@ -14735,7 +18849,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTBOX" + ".TOGGLE" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -14743,7 +18857,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host.label", "type": "string", "tags": [], "label": "label", @@ -14754,7 +18868,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host.options", "type": "Array", "tags": [], "label": "options", @@ -14768,7 +18882,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host.order", "type": "number", "tags": [], "label": "order", @@ -14779,7 +18893,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host.required", "type": "boolean", "tags": [], "label": "required", @@ -14793,7 +18907,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -14807,7 +18921,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -14818,7 +18932,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host.type", "type": "string", "tags": [], "label": "type", @@ -14831,7 +18945,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".STRING" + ".BOOLEAN" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -14839,7 +18953,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -14853,7 +18967,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host.validations", "type": "Array", "tags": [], "label": "validations", @@ -14863,27 +18977,158 @@ ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, - "trackAdoption": false + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host.value", + "type": "boolean", + "tags": [], + "label": "value", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.features", + "type": "Object", + "tags": [], + "label": "features", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.features.FeatureName.SYNC_RULES", + "type": "Object", + "tags": [], + "label": "[FeatureName.SYNC_RULES]", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.features.FeatureName.SYNC_RULES.advanced", + "type": "Object", + "tags": [], + "label": "advanced", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.features.FeatureName.SYNC_RULES.advanced.enabled", + "type": "boolean", + "tags": [], + "label": "enabled", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database.value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.features.FeatureName.SYNC_RULES.basic", + "type": "Object", "tags": [], - "label": "value", + "label": "basic", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, - "trackAdoption": false + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.features.FeatureName.SYNC_RULES.basic.enabled", + "type": "boolean", + "tags": [], + "label": "enabled", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] } ] - }, + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.serviceType", + "type": "string", + "tags": [], + "label": "serviceType", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql", + "type": "Object", + "tags": [], + "label": "mysql", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration", + "type": "Object", + "tags": [], + "label": "configuration", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host", "type": "Object", "tags": [], - "label": "tables", + "label": "host", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -14891,7 +19136,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host.default_value", "type": "string", "tags": [], "label": "default_value", @@ -14902,7 +19147,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -14916,7 +19161,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host.display", "type": "string", "tags": [], "label": "display", @@ -14929,7 +19174,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTAREA" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -14937,7 +19182,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host.label", "type": "string", "tags": [], "label": "label", @@ -14948,7 +19193,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host.options", "type": "Array", "tags": [], "label": "options", @@ -14962,7 +19207,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host.order", "type": "number", "tags": [], "label": "order", @@ -14973,7 +19218,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host.required", "type": "boolean", "tags": [], "label": "required", @@ -14987,7 +19232,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -15001,7 +19246,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -15012,7 +19257,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host.type", "type": "string", "tags": [], "label": "type", @@ -15025,7 +19270,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".LIST" + ".STRING" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -15033,7 +19278,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -15047,7 +19292,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host.validations", "type": "Array", "tags": [], "label": "validations", @@ -15061,7 +19306,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host.value", "type": "string", "tags": [], "label": "value", @@ -15074,10 +19319,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port", "type": "Object", "tags": [], - "label": "ssl_enabled", + "label": "port", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -15085,13 +19330,13 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled.default_value", - "type": "boolean", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], "signature": [ - "false" + "null" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -15099,7 +19344,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -15113,7 +19358,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port.display", "type": "string", "tags": [], "label": "display", @@ -15126,7 +19371,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TOGGLE" + ".NUMERIC" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -15134,7 +19379,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port.label", "type": "string", "tags": [], "label": "label", @@ -15145,7 +19390,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port.options", "type": "Array", "tags": [], "label": "options", @@ -15159,7 +19404,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port.order", "type": "number", "tags": [], "label": "order", @@ -15170,7 +19415,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port.required", "type": "boolean", "tags": [], "label": "required", @@ -15184,7 +19429,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -15198,7 +19443,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -15209,7 +19454,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port.type", "type": "string", "tags": [], "label": "type", @@ -15222,7 +19467,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".BOOLEAN" + ".INTEGER" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -15230,7 +19475,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -15244,7 +19489,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port.validations", "type": "Array", "tags": [], "label": "validations", @@ -15258,14 +19503,11 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled.value", - "type": "boolean", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port.value", + "type": "string", "tags": [], "label": "value", "description": [], - "signature": [ - "false" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false @@ -15274,10 +19516,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user", "type": "Object", "tags": [], - "label": "ssl_ca", + "label": "user", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -15285,7 +19527,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user.default_value", "type": "string", "tags": [], "label": "default_value", @@ -15296,13 +19538,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "{ field: string; value: true; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -15310,7 +19552,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user.display", "type": "string", "tags": [], "label": "display", @@ -15331,7 +19573,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user.label", "type": "string", "tags": [], "label": "label", @@ -15342,7 +19584,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user.options", "type": "Array", "tags": [], "label": "options", @@ -15356,7 +19598,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user.order", "type": "number", "tags": [], "label": "order", @@ -15367,13 +19609,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -15381,7 +19623,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -15395,7 +19637,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -15406,7 +19648,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user.type", "type": "string", "tags": [], "label": "type", @@ -15427,7 +19669,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -15441,7 +19683,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user.validations", "type": "Array", "tags": [], "label": "validations", @@ -15455,7 +19697,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user.value", "type": "string", "tags": [], "label": "value", @@ -15468,10 +19710,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password", "type": "Object", "tags": [], - "label": "schema", + "label": "password", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -15479,7 +19721,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password.default_value", "type": "string", "tags": [], "label": "default_value", @@ -15490,7 +19732,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -15504,7 +19746,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password.display", "type": "string", "tags": [], "label": "display", @@ -15525,7 +19767,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password.label", "type": "string", "tags": [], "label": "label", @@ -15536,7 +19778,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password.options", "type": "Array", "tags": [], "label": "options", @@ -15550,7 +19792,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password.order", "type": "number", "tags": [], "label": "order", @@ -15561,13 +19803,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -15575,13 +19817,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -15589,7 +19831,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -15600,7 +19842,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password.type", "type": "string", "tags": [], "label": "type", @@ -15621,7 +19863,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -15635,7 +19877,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password.validations", "type": "Array", "tags": [], "label": "validations", @@ -15649,7 +19891,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password.value", "type": "string", "tags": [], "label": "value", @@ -15662,10 +19904,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database", "type": "Object", "tags": [], - "label": "fetch_size", + "label": "database", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -15673,8 +19915,8 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size.default_value", - "type": "number", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database.default_value", + "type": "string", "tags": [], "label": "default_value", "description": [], @@ -15684,7 +19926,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -15698,7 +19940,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database.display", "type": "string", "tags": [], "label": "display", @@ -15711,7 +19953,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".NUMERIC" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -15719,7 +19961,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database.label", "type": "string", "tags": [], "label": "label", @@ -15730,7 +19972,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database.options", "type": "Array", "tags": [], "label": "options", @@ -15744,7 +19986,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database.order", "type": "number", "tags": [], "label": "order", @@ -15755,13 +19997,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -15769,7 +20011,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -15783,7 +20025,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -15794,7 +20036,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database.type", "type": "string", "tags": [], "label": "type", @@ -15807,7 +20049,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".INTEGER" + ".STRING" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -15815,13 +20057,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "string[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -15829,7 +20071,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database.validations", "type": "Array", "tags": [], "label": "validations", @@ -15843,8 +20085,8 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size.value", - "type": "number", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database.value", + "type": "string", "tags": [], "label": "value", "description": [], @@ -15856,10 +20098,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables", "type": "Object", "tags": [], - "label": "retry_count", + "label": "tables", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -15867,8 +20109,8 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count.default_value", - "type": "number", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables.default_value", + "type": "string", "tags": [], "label": "default_value", "description": [], @@ -15878,7 +20120,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -15892,7 +20134,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables.display", "type": "string", "tags": [], "label": "display", @@ -15905,7 +20147,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".NUMERIC" + ".TEXTAREA" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -15913,7 +20155,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables.label", "type": "string", "tags": [], "label": "label", @@ -15924,7 +20166,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables.options", "type": "Array", "tags": [], "label": "options", @@ -15938,7 +20180,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables.order", "type": "number", "tags": [], "label": "order", @@ -15949,13 +20191,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -15963,7 +20205,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -15977,7 +20219,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -15988,7 +20230,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables.type", "type": "string", "tags": [], "label": "type", @@ -16001,7 +20243,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".INTEGER" + ".LIST" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -16009,13 +20251,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "string[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -16023,7 +20265,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables.validations", "type": "Array", "tags": [], "label": "validations", @@ -16037,8 +20279,8 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count.value", - "type": "number", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables.value", + "type": "string", "tags": [], "label": "value", "description": [], @@ -16050,10 +20292,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled", "type": "Object", "tags": [], - "label": "validate_host", + "label": "ssl_enabled", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -16061,7 +20303,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled.default_value", "type": "boolean", "tags": [], "label": "default_value", @@ -16075,7 +20317,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -16089,7 +20331,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled.display", "type": "string", "tags": [], "label": "display", @@ -16110,7 +20352,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled.label", "type": "string", "tags": [], "label": "label", @@ -16121,7 +20363,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled.options", "type": "Array", "tags": [], "label": "options", @@ -16135,7 +20377,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled.order", "type": "number", "tags": [], "label": "order", @@ -16146,7 +20388,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled.required", "type": "boolean", "tags": [], "label": "required", @@ -16160,7 +20402,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -16174,7 +20416,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -16185,7 +20427,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled.type", "type": "string", "tags": [], "label": "type", @@ -16206,7 +20448,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -16220,7 +20462,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled.validations", "type": "Array", "tags": [], "label": "validations", @@ -16234,7 +20476,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled.value", "type": "boolean", "tags": [], "label": "value", @@ -16247,141 +20489,13 @@ "trackAdoption": false } ] - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.features", - "type": "Object", - "tags": [], - "label": "features", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.features.FeatureName.SYNC_RULES", - "type": "Object", - "tags": [], - "label": "[FeatureName.SYNC_RULES]", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.features.FeatureName.SYNC_RULES.advanced", - "type": "Object", - "tags": [], - "label": "advanced", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.features.FeatureName.SYNC_RULES.advanced.enabled", - "type": "boolean", - "tags": [], - "label": "enabled", - "description": [], - "signature": [ - "false" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.features.FeatureName.SYNC_RULES.basic", - "type": "Object", - "tags": [], - "label": "basic", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.features.FeatureName.SYNC_RULES.basic.enabled", - "type": "boolean", - "tags": [], - "label": "enabled", - "description": [], - "signature": [ - "true" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - } - ] - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.name", - "type": "string", - "tags": [], - "label": "name", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.serviceType", - "type": "string", - "tags": [], - "label": "serviceType", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql", - "type": "Object", - "tags": [], - "label": "mysql", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration", - "type": "Object", - "tags": [], - "label": "configuration", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ + }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca", "type": "Object", "tags": [], - "label": "host", + "label": "ssl_ca", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -16389,7 +20503,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca.default_value", "type": "string", "tags": [], "label": "default_value", @@ -16400,13 +20514,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "never[]" + "{ field: string; value: true; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -16414,7 +20528,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca.display", "type": "string", "tags": [], "label": "display", @@ -16435,7 +20549,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca.label", "type": "string", "tags": [], "label": "label", @@ -16446,7 +20560,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca.options", "type": "Array", "tags": [], "label": "options", @@ -16460,7 +20574,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca.order", "type": "number", "tags": [], "label": "order", @@ -16471,7 +20585,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca.required", "type": "boolean", "tags": [], "label": "required", @@ -16485,7 +20599,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -16499,7 +20613,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -16510,7 +20624,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca.type", "type": "string", "tags": [], "label": "type", @@ -16531,7 +20645,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -16545,7 +20659,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca.validations", "type": "Array", "tags": [], "label": "validations", @@ -16559,7 +20673,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca.value", "type": "string", "tags": [], "label": "value", @@ -16572,10 +20686,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size", "type": "Object", "tags": [], - "label": "port", + "label": "fetch_size", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -16583,21 +20697,18 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port.default_value", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size.default_value", + "type": "number", "tags": [], "label": "default_value", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -16611,7 +20722,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size.display", "type": "string", "tags": [], "label": "display", @@ -16632,7 +20743,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size.label", "type": "string", "tags": [], "label": "label", @@ -16643,7 +20754,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size.options", "type": "Array", "tags": [], "label": "options", @@ -16657,7 +20768,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size.order", "type": "number", "tags": [], "label": "order", @@ -16668,13 +20779,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -16682,7 +20793,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -16696,7 +20807,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -16707,7 +20818,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size.type", "type": "string", "tags": [], "label": "type", @@ -16728,13 +20839,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "never[]" + "string[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -16742,7 +20853,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size.validations", "type": "Array", "tags": [], "label": "validations", @@ -16756,8 +20867,8 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port.value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size.value", + "type": "number", "tags": [], "label": "value", "description": [], @@ -16769,10 +20880,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count", "type": "Object", "tags": [], - "label": "user", + "label": "retry_count", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -16780,8 +20891,8 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user.default_value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count.default_value", + "type": "number", "tags": [], "label": "default_value", "description": [], @@ -16791,7 +20902,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -16805,7 +20916,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count.display", "type": "string", "tags": [], "label": "display", @@ -16818,7 +20929,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTBOX" + ".NUMERIC" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -16826,7 +20937,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count.label", "type": "string", "tags": [], "label": "label", @@ -16837,7 +20948,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count.options", "type": "Array", "tags": [], "label": "options", @@ -16851,7 +20962,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count.order", "type": "number", "tags": [], "label": "order", @@ -16862,7 +20973,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count.required", "type": "boolean", "tags": [], "label": "required", @@ -16876,7 +20987,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -16890,7 +21001,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -16901,7 +21012,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count.type", "type": "string", "tags": [], "label": "type", @@ -16914,7 +21025,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".STRING" + ".INTEGER" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -16922,13 +21033,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "never[]" + "string[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -16936,7 +21047,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count.validations", "type": "Array", "tags": [], "label": "validations", @@ -16950,8 +21061,8 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user.value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count.value", + "type": "number", "tags": [], "label": "value", "description": [], @@ -16960,13 +21071,26 @@ "trackAdoption": false } ] - }, + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.features", + "type": "Object", + "tags": [], + "label": "features", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.features.FeatureName.SYNC_RULES", "type": "Object", "tags": [], - "label": "password", + "label": "[FeatureName.SYNC_RULES]", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -16974,18 +21098,136 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password.default_value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.features.FeatureName.SYNC_RULES.advanced", + "type": "Object", + "tags": [], + "label": "advanced", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.features.FeatureName.SYNC_RULES.advanced.enabled", + "type": "boolean", + "tags": [], + "label": "enabled", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.features.FeatureName.SYNC_RULES.basic", + "type": "Object", + "tags": [], + "label": "basic", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.features.FeatureName.SYNC_RULES.basic.enabled", + "type": "boolean", + "tags": [], + "label": "enabled", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ] + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.serviceType", + "type": "string", + "tags": [], + "label": "serviceType", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive", + "type": "Object", + "tags": [], + "label": "network_drive", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration", + "type": "Object", + "tags": [], + "label": "configuration", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username", + "type": "Object", + "tags": [], + "label": "username", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -16999,7 +21241,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username.display", "type": "string", "tags": [], "label": "display", @@ -17020,7 +21262,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username.label", "type": "string", "tags": [], "label": "label", @@ -17031,7 +21273,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username.options", "type": "Array", "tags": [], "label": "options", @@ -17045,7 +21287,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username.order", "type": "number", "tags": [], "label": "order", @@ -17056,13 +21298,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -17070,13 +21312,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -17084,7 +21326,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -17095,7 +21337,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username.type", "type": "string", "tags": [], "label": "type", @@ -17116,7 +21358,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -17130,7 +21372,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username.validations", "type": "Array", "tags": [], "label": "validations", @@ -17144,7 +21386,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username.value", "type": "string", "tags": [], "label": "value", @@ -17157,10 +21399,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password", "type": "Object", "tags": [], - "label": "database", + "label": "password", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -17168,18 +21410,21 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database.default_value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -17193,7 +21438,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password.display", "type": "string", "tags": [], "label": "display", @@ -17214,7 +21459,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password.label", "type": "string", "tags": [], "label": "label", @@ -17225,7 +21470,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password.options", "type": "Array", "tags": [], "label": "options", @@ -17239,7 +21484,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password.order", "type": "number", "tags": [], "label": "order", @@ -17250,7 +21495,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password.required", "type": "boolean", "tags": [], "label": "required", @@ -17264,13 +21509,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -17278,7 +21523,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -17289,7 +21534,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password.type", "type": "string", "tags": [], "label": "type", @@ -17310,7 +21555,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -17324,7 +21569,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password.validations", "type": "Array", "tags": [], "label": "validations", @@ -17338,7 +21583,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password.value", "type": "string", "tags": [], "label": "value", @@ -17351,10 +21596,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip", "type": "Object", "tags": [], - "label": "tables", + "label": "server_ip", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -17362,18 +21607,21 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables.default_value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -17387,7 +21635,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.display", "type": "string", "tags": [], "label": "display", @@ -17400,7 +21648,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTAREA" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -17408,7 +21656,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.label", "type": "string", "tags": [], "label": "label", @@ -17419,7 +21667,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.options", "type": "Array", "tags": [], "label": "options", @@ -17433,7 +21681,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.order", "type": "number", "tags": [], "label": "order", @@ -17444,7 +21692,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.placeholder", + "type": "string", + "tags": [], + "label": "placeholder", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.required", "type": "boolean", "tags": [], "label": "required", @@ -17458,7 +21717,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -17472,7 +21731,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -17483,7 +21742,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.type", "type": "string", "tags": [], "label": "type", @@ -17496,7 +21755,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".LIST" + ".STRING" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -17504,7 +21763,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -17518,7 +21777,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.validations", "type": "Array", "tags": [], "label": "validations", @@ -17532,7 +21791,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.value", "type": "string", "tags": [], "label": "value", @@ -17545,10 +21804,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port", "type": "Object", "tags": [], - "label": "ssl_enabled", + "label": "server_port", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -17556,13 +21815,13 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled.default_value", - "type": "boolean", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], "signature": [ - "false" + "null" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -17570,7 +21829,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -17584,7 +21843,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port.display", "type": "string", "tags": [], "label": "display", @@ -17597,7 +21856,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TOGGLE" + ".NUMERIC" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -17605,7 +21864,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port.label", "type": "string", "tags": [], "label": "label", @@ -17616,7 +21875,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port.options", "type": "Array", "tags": [], "label": "options", @@ -17630,7 +21889,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port.order", "type": "number", "tags": [], "label": "order", @@ -17641,7 +21900,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port.required", "type": "boolean", "tags": [], "label": "required", @@ -17655,7 +21914,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -17669,7 +21928,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -17680,7 +21939,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port.type", "type": "string", "tags": [], "label": "type", @@ -17693,7 +21952,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".BOOLEAN" + ".INTEGER" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -17701,7 +21960,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -17715,7 +21974,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port.validations", "type": "Array", "tags": [], "label": "validations", @@ -17729,14 +21988,11 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled.value", - "type": "boolean", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port.value", + "type": "number", "tags": [], "label": "value", "description": [], - "signature": [ - "false" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false @@ -17745,10 +22001,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path", "type": "Object", "tags": [], - "label": "ssl_ca", + "label": "drive_path", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -17756,24 +22012,27 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca.default_value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "{ field: string; value: true; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -17781,7 +22040,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.display", "type": "string", "tags": [], "label": "display", @@ -17802,7 +22061,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.label", "type": "string", "tags": [], "label": "label", @@ -17813,7 +22072,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.options", "type": "Array", "tags": [], "label": "options", @@ -17827,7 +22086,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.order", "type": "number", "tags": [], "label": "order", @@ -17838,7 +22097,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.placeholder", + "type": "string", + "tags": [], + "label": "placeholder", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.required", "type": "boolean", "tags": [], "label": "required", @@ -17852,7 +22122,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -17866,7 +22136,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -17877,7 +22147,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.type", "type": "string", "tags": [], "label": "type", @@ -17898,7 +22168,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -17912,7 +22182,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.validations", "type": "Array", "tags": [], "label": "validations", @@ -17926,7 +22196,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.value", "type": "string", "tags": [], "label": "value", @@ -17936,13 +22206,141 @@ "trackAdoption": false } ] - }, + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.features", + "type": "Object", + "tags": [], + "label": "features", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.features.FeatureName.SYNC_RULES", + "type": "Object", + "tags": [], + "label": "[FeatureName.SYNC_RULES]", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.features.FeatureName.SYNC_RULES.advanced", + "type": "Object", + "tags": [], + "label": "advanced", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.features.FeatureName.SYNC_RULES.advanced.enabled", + "type": "boolean", + "tags": [], + "label": "enabled", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.features.FeatureName.SYNC_RULES.basic", + "type": "Object", + "tags": [], + "label": "basic", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.features.FeatureName.SYNC_RULES.basic.enabled", + "type": "boolean", + "tags": [], + "label": "enabled", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ] + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.serviceType", + "type": "string", + "tags": [], + "label": "serviceType", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive", + "type": "Object", + "tags": [], + "label": "onedrive", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration", + "type": "Object", + "tags": [], + "label": "configuration", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_id", "type": "Object", "tags": [], - "label": "fetch_size", + "label": "client_id", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -17950,18 +22348,21 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size.default_value", - "type": "number", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_id.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_id.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -17975,7 +22376,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_id.display", "type": "string", "tags": [], "label": "display", @@ -17988,7 +22389,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".NUMERIC" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -17996,7 +22397,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_id.label", "type": "string", "tags": [], "label": "label", @@ -18007,7 +22408,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_id.options", "type": "Array", "tags": [], "label": "options", @@ -18021,7 +22422,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_id.order", "type": "number", "tags": [], "label": "order", @@ -18032,13 +22433,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_id.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -18046,7 +22447,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_id.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -18060,18 +22461,21 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size.tooltip", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_id.tooltip", + "type": "Uncategorized", "tags": [], "label": "tooltip", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_id.type", "type": "string", "tags": [], "label": "type", @@ -18084,7 +22488,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".INTEGER" + ".STRING" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -18092,13 +22496,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_id.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "string[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -18106,7 +22510,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_id.validations", "type": "Array", "tags": [], "label": "validations", @@ -18120,8 +22524,8 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size.value", - "type": "number", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_id.value", + "type": "string", "tags": [], "label": "value", "description": [], @@ -18133,10 +22537,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_secret", "type": "Object", "tags": [], - "label": "retry_count", + "label": "client_secret", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -18144,18 +22548,21 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count.default_value", - "type": "number", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_secret.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_secret.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -18169,7 +22576,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_secret.display", "type": "string", "tags": [], "label": "display", @@ -18182,7 +22589,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".NUMERIC" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -18190,7 +22597,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_secret.label", "type": "string", "tags": [], "label": "label", @@ -18201,7 +22608,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_secret.options", "type": "Array", "tags": [], "label": "options", @@ -18215,7 +22622,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_secret.order", "type": "number", "tags": [], "label": "order", @@ -18226,13 +22633,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_secret.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -18240,13 +22647,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_secret.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -18254,18 +22661,21 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count.tooltip", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_secret.tooltip", + "type": "Uncategorized", "tags": [], "label": "tooltip", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_secret.type", "type": "string", "tags": [], "label": "type", @@ -18278,7 +22688,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".INTEGER" + ".STRING" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -18286,13 +22696,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_secret.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "string[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -18300,7 +22710,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_secret.validations", "type": "Array", "tags": [], "label": "validations", @@ -18312,153 +22722,25 @@ "deprecated": false, "trackAdoption": false }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count.value", - "type": "number", - "tags": [], - "label": "value", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.features", - "type": "Object", - "tags": [], - "label": "features", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.features.FeatureName.SYNC_RULES", - "type": "Object", - "tags": [], - "label": "[FeatureName.SYNC_RULES]", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.features.FeatureName.SYNC_RULES.advanced", - "type": "Object", - "tags": [], - "label": "advanced", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.features.FeatureName.SYNC_RULES.advanced.enabled", - "type": "boolean", - "tags": [], - "label": "enabled", - "description": [], - "signature": [ - "true" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.features.FeatureName.SYNC_RULES.basic", - "type": "Object", - "tags": [], - "label": "basic", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.features.FeatureName.SYNC_RULES.basic.enabled", - "type": "boolean", - "tags": [], - "label": "enabled", - "description": [], - "signature": [ - "true" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - } - ] - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.name", - "type": "string", - "tags": [], - "label": "name", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.serviceType", - "type": "string", - "tags": [], - "label": "serviceType", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive", - "type": "Object", - "tags": [], - "label": "network_drive", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration", - "type": "Object", - "tags": [], - "label": "configuration", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_secret.value", + "type": "string", + "tags": [], + "label": "value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.tenant_id", "type": "Object", "tags": [], - "label": "username", + "label": "tenant_id", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -18466,7 +22748,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.tenant_id.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -18480,7 +22762,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.tenant_id.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -18494,7 +22776,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.tenant_id.display", "type": "string", "tags": [], "label": "display", @@ -18515,7 +22797,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.tenant_id.label", "type": "string", "tags": [], "label": "label", @@ -18526,7 +22808,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.tenant_id.options", "type": "Array", "tags": [], "label": "options", @@ -18540,7 +22822,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.tenant_id.order", "type": "number", "tags": [], "label": "order", @@ -18551,7 +22833,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.tenant_id.required", "type": "boolean", "tags": [], "label": "required", @@ -18565,7 +22847,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.tenant_id.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -18579,18 +22861,21 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username.tooltip", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.tenant_id.tooltip", + "type": "Uncategorized", "tags": [], "label": "tooltip", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.tenant_id.type", "type": "string", "tags": [], "label": "type", @@ -18611,7 +22896,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.tenant_id.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -18625,7 +22910,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.tenant_id.validations", "type": "Array", "tags": [], "label": "validations", @@ -18639,7 +22924,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.tenant_id.value", "type": "string", "tags": [], "label": "value", @@ -18652,10 +22937,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.retry_count", "type": "Object", "tags": [], - "label": "password", + "label": "retry_count", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -18663,21 +22948,18 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password.default_value", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.retry_count.default_value", + "type": "number", "tags": [], "label": "default_value", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.retry_count.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -18691,7 +22973,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.retry_count.display", "type": "string", "tags": [], "label": "display", @@ -18704,7 +22986,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTBOX" + ".NUMERIC" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -18712,7 +22994,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.retry_count.label", "type": "string", "tags": [], "label": "label", @@ -18723,7 +23005,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.retry_count.options", "type": "Array", "tags": [], "label": "options", @@ -18737,7 +23019,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.retry_count.order", "type": "number", "tags": [], "label": "order", @@ -18748,13 +23030,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.retry_count.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -18762,13 +23044,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.retry_count.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -18776,18 +23058,21 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password.tooltip", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.retry_count.tooltip", + "type": "Uncategorized", "tags": [], "label": "tooltip", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.retry_count.type", "type": "string", "tags": [], "label": "type", @@ -18800,7 +23085,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".STRING" + ".INTEGER" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -18808,13 +23093,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.retry_count.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "never[]" + "string[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -18822,7 +23107,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.retry_count.validations", "type": "Array", "tags": [], "label": "validations", @@ -18836,7 +23121,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.retry_count.value", "type": "string", "tags": [], "label": "value", @@ -18849,10 +23134,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.concurrent_downloads", "type": "Object", "tags": [], - "label": "server_ip", + "label": "concurrent_downloads", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -18860,21 +23145,18 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.default_value", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.concurrent_downloads.default_value", + "type": "number", "tags": [], "label": "default_value", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.concurrent_downloads.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -18888,7 +23170,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.concurrent_downloads.display", "type": "string", "tags": [], "label": "display", @@ -18901,7 +23183,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTBOX" + ".NUMERIC" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -18909,7 +23191,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.concurrent_downloads.label", "type": "string", "tags": [], "label": "label", @@ -18920,7 +23202,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.concurrent_downloads.options", "type": "Array", "tags": [], "label": "options", @@ -18934,7 +23216,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.concurrent_downloads.order", "type": "number", "tags": [], "label": "order", @@ -18945,24 +23227,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.placeholder", - "type": "string", - "tags": [], - "label": "placeholder", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.concurrent_downloads.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -18970,7 +23241,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.concurrent_downloads.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -18984,18 +23255,21 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.tooltip", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.concurrent_downloads.tooltip", + "type": "Uncategorized", "tags": [], "label": "tooltip", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.concurrent_downloads.type", "type": "string", "tags": [], "label": "type", @@ -19008,7 +23282,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".STRING" + ".INTEGER" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -19016,13 +23290,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.concurrent_downloads.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "never[]" + "string[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -19030,7 +23304,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.concurrent_downloads.validations", "type": "Array", "tags": [], "label": "validations", @@ -19044,7 +23318,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.concurrent_downloads.value", "type": "string", "tags": [], "label": "value", @@ -19057,10 +23331,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_document_level_security", "type": "Object", "tags": [], - "label": "server_port", + "label": "use_document_level_security", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -19068,7 +23342,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_document_level_security.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -19082,7 +23356,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_document_level_security.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -19096,7 +23370,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_document_level_security.display", "type": "string", "tags": [], "label": "display", @@ -19109,7 +23383,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".NUMERIC" + ".TOGGLE" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -19117,7 +23391,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_document_level_security.label", "type": "string", "tags": [], "label": "label", @@ -19128,7 +23402,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_document_level_security.options", "type": "Array", "tags": [], "label": "options", @@ -19142,7 +23416,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_document_level_security.order", "type": "number", "tags": [], "label": "order", @@ -19153,7 +23427,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_document_level_security.required", "type": "boolean", "tags": [], "label": "required", @@ -19167,7 +23441,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_document_level_security.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -19181,7 +23455,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_document_level_security.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -19192,7 +23466,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_document_level_security.type", "type": "string", "tags": [], "label": "type", @@ -19205,7 +23479,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".INTEGER" + ".BOOLEAN" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -19213,7 +23487,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_document_level_security.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -19227,7 +23501,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_document_level_security.validations", "type": "Array", "tags": [], "label": "validations", @@ -19241,11 +23515,14 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port.value", - "type": "number", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_document_level_security.value", + "type": "boolean", "tags": [], "label": "value", "description": [], + "signature": [ + "false" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false @@ -19254,10 +23531,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_text_extraction_service", "type": "Object", "tags": [], - "label": "drive_path", + "label": "use_text_extraction_service", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -19265,7 +23542,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_text_extraction_service.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -19279,7 +23556,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_text_extraction_service.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -19293,7 +23570,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_text_extraction_service.display", "type": "string", "tags": [], "label": "display", @@ -19306,7 +23583,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTBOX" + ".TOGGLE" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -19314,7 +23591,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_text_extraction_service.label", "type": "string", "tags": [], "label": "label", @@ -19325,7 +23602,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_text_extraction_service.options", "type": "Array", "tags": [], "label": "options", @@ -19339,7 +23616,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_text_extraction_service.order", "type": "number", "tags": [], "label": "order", @@ -19350,18 +23627,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.placeholder", - "type": "string", - "tags": [], - "label": "placeholder", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_text_extraction_service.required", "type": "boolean", "tags": [], "label": "required", @@ -19375,7 +23641,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_text_extraction_service.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -19389,7 +23655,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_text_extraction_service.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -19400,7 +23666,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_text_extraction_service.type", "type": "string", "tags": [], "label": "type", @@ -19413,7 +23679,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".STRING" + ".BOOLEAN" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -19421,13 +23687,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_text_extraction_service.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "never[]" + "string[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -19435,7 +23701,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_text_extraction_service.validations", "type": "Array", "tags": [], "label": "validations", @@ -19449,11 +23715,14 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_text_extraction_service.value", + "type": "boolean", "tags": [], "label": "value", "description": [], + "signature": [ + "false" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false @@ -19464,7 +23733,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.features", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.features", "type": "Object", "tags": [], "label": "features", @@ -19475,10 +23755,10 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.features.FeatureName.SYNC_RULES", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.features.FeatureName.DOCUMENT_LEVEL_SECURITY", "type": "Object", "tags": [], - "label": "[FeatureName.SYNC_RULES]", + "label": "[FeatureName.DOCUMENT_LEVEL_SECURITY]", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -19486,57 +23766,17 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.features.FeatureName.SYNC_RULES.advanced", - "type": "Object", - "tags": [], - "label": "advanced", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.features.FeatureName.SYNC_RULES.advanced.enabled", - "type": "boolean", - "tags": [], - "label": "enabled", - "description": [], - "signature": [ - "false" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.features.FeatureName.SYNC_RULES.basic", - "type": "Object", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.features.FeatureName.DOCUMENT_LEVEL_SECURITY.enabled", + "type": "boolean", "tags": [], - "label": "basic", + "label": "enabled", "description": [], + "signature": [ + "true" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.features.FeatureName.SYNC_RULES.basic.enabled", - "type": "boolean", - "tags": [], - "label": "enabled", - "description": [], - "signature": [ - "true" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] + "trackAdoption": false } ] } @@ -19544,18 +23784,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.name", - "type": "string", - "tags": [], - "label": "name", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.serviceType", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.serviceType", "type": "string", "tags": [], "label": "serviceType", diff --git a/api_docs/kbn_search_connectors.mdx b/api_docs/kbn_search_connectors.mdx index 6c62278c9c7be..373c49016f105 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-connectors'] --- import kbnSearchConnectorsObj from './kbn_search_connectors.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/enterprise-search-frontend](https://github.com/orgs/elastic/te | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 1748 | 0 | 1748 | 0 | +| 2048 | 0 | 2048 | 0 | ## Common diff --git a/api_docs/kbn_search_response_warnings.mdx b/api_docs/kbn_search_response_warnings.mdx index e16e99d875e4f..49de241dc8472 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-response-warnings'] --- import kbnSearchResponseWarningsObj from './kbn_search_response_warnings.devdocs.json'; diff --git a/api_docs/kbn_security_solution_features.mdx b/api_docs/kbn_security_solution_features.mdx index 114e188c27a7f..717b6108076fe 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-features'] --- import kbnSecuritySolutionFeaturesObj from './kbn_security_solution_features.devdocs.json'; diff --git a/api_docs/kbn_security_solution_navigation.mdx b/api_docs/kbn_security_solution_navigation.mdx index ce42806fcf517..73884fa7880ab 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-navigation'] --- import kbnSecuritySolutionNavigationObj from './kbn_security_solution_navigation.devdocs.json'; diff --git a/api_docs/kbn_security_solution_side_nav.mdx b/api_docs/kbn_security_solution_side_nav.mdx index 64f4c71406af2..116f26dd90f46 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-side-nav'] --- import kbnSecuritySolutionSideNavObj from './kbn_security_solution_side_nav.devdocs.json'; diff --git a/api_docs/kbn_security_solution_storybook_config.mdx b/api_docs/kbn_security_solution_storybook_config.mdx index 2c28c62b00899..9c29a3620e564 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-storybook-config'] --- import kbnSecuritySolutionStorybookConfigObj from './kbn_security_solution_storybook_config.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_autocomplete.mdx b/api_docs/kbn_securitysolution_autocomplete.mdx index ffd307eae76a4..60dc2e146ee97 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-autocomplete'] --- import kbnSecuritysolutionAutocompleteObj from './kbn_securitysolution_autocomplete.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_data_table.mdx b/api_docs/kbn_securitysolution_data_table.mdx index f9308180da118..84b75373410ee 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-data-table'] --- import kbnSecuritysolutionDataTableObj from './kbn_securitysolution_data_table.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_ecs.mdx b/api_docs/kbn_securitysolution_ecs.mdx index f9483b7f24f01..ab6bc7fad047a 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-ecs'] --- import kbnSecuritysolutionEcsObj from './kbn_securitysolution_ecs.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_es_utils.mdx b/api_docs/kbn_securitysolution_es_utils.mdx index 6a26b56399b03..b240450803243 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-es-utils'] --- import kbnSecuritysolutionEsUtilsObj from './kbn_securitysolution_es_utils.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_exception_list_components.mdx b/api_docs/kbn_securitysolution_exception_list_components.mdx index 65001c83a8db3..aba7a850cdc69 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-exception-list-components'] --- import kbnSecuritysolutionExceptionListComponentsObj from './kbn_securitysolution_exception_list_components.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_grouping.mdx b/api_docs/kbn_securitysolution_grouping.mdx index c9012627107b1..c4674eea19506 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-03 +date: 2023-10-04 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 50fdf7e8a3976..c9ba5071281b1 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-hook-utils'] --- import kbnSecuritysolutionHookUtilsObj from './kbn_securitysolution_hook_utils.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx b/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx index 336043290c0fc..34661d22ed9c5 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-alerting-types'] --- import kbnSecuritysolutionIoTsAlertingTypesObj from './kbn_securitysolution_io_ts_alerting_types.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_io_ts_list_types.mdx b/api_docs/kbn_securitysolution_io_ts_list_types.mdx index 47ffa14c49e35..41075154bac87 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-list-types'] --- import kbnSecuritysolutionIoTsListTypesObj from './kbn_securitysolution_io_ts_list_types.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_io_ts_types.mdx b/api_docs/kbn_securitysolution_io_ts_types.mdx index e547d00ec7480..76ff7b35cdf24 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-types'] --- import kbnSecuritysolutionIoTsTypesObj from './kbn_securitysolution_io_ts_types.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_io_ts_utils.mdx b/api_docs/kbn_securitysolution_io_ts_utils.mdx index 035ef49e2a7ee..d873aa8b59dee 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-utils'] --- import kbnSecuritysolutionIoTsUtilsObj from './kbn_securitysolution_io_ts_utils.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_list_api.mdx b/api_docs/kbn_securitysolution_list_api.mdx index 0de273d3daef1..77c29e6a7ef8e 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-api'] --- import kbnSecuritysolutionListApiObj from './kbn_securitysolution_list_api.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_list_constants.mdx b/api_docs/kbn_securitysolution_list_constants.mdx index ee19d7112cdfe..b726e7d9bcc4e 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-constants'] --- import kbnSecuritysolutionListConstantsObj from './kbn_securitysolution_list_constants.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_list_hooks.mdx b/api_docs/kbn_securitysolution_list_hooks.mdx index 594701c1a08e3..2de4b1c3d0e1a 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-hooks'] --- import kbnSecuritysolutionListHooksObj from './kbn_securitysolution_list_hooks.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_list_utils.mdx b/api_docs/kbn_securitysolution_list_utils.mdx index 9b311e08295c7..b4fcc1f3ab65a 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-utils'] --- import kbnSecuritysolutionListUtilsObj from './kbn_securitysolution_list_utils.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_rules.mdx b/api_docs/kbn_securitysolution_rules.mdx index d1d8dfa04b04e..81e4be7d4d983 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-rules'] --- import kbnSecuritysolutionRulesObj from './kbn_securitysolution_rules.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_t_grid.mdx b/api_docs/kbn_securitysolution_t_grid.mdx index 0b6ce7671bad6..cfec7eea37bba 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-t-grid'] --- import kbnSecuritysolutionTGridObj from './kbn_securitysolution_t_grid.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_utils.mdx b/api_docs/kbn_securitysolution_utils.mdx index 4615f3a9990fd..295f8697601c6 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-utils'] --- import kbnSecuritysolutionUtilsObj from './kbn_securitysolution_utils.devdocs.json'; diff --git a/api_docs/kbn_server_http_tools.mdx b/api_docs/kbn_server_http_tools.mdx index 9475d192dcb9e..7316db3890f86 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-03 +date: 2023-10-04 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 adc987af94778..58a18cdb0fd67 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/server-route-repository'] --- import kbnServerRouteRepositoryObj from './kbn_server_route_repository.devdocs.json'; diff --git a/api_docs/kbn_serverless_common_settings.mdx b/api_docs/kbn_serverless_common_settings.mdx index 6d21e972f4589..c73e1bd6c4fcd 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-common-settings'] --- import kbnServerlessCommonSettingsObj from './kbn_serverless_common_settings.devdocs.json'; diff --git a/api_docs/kbn_serverless_observability_settings.mdx b/api_docs/kbn_serverless_observability_settings.mdx index b49489e953159..514dd3f915e8c 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-observability-settings'] --- import kbnServerlessObservabilitySettingsObj from './kbn_serverless_observability_settings.devdocs.json'; diff --git a/api_docs/kbn_serverless_project_switcher.mdx b/api_docs/kbn_serverless_project_switcher.mdx index 2222126654ce8..01446a23c72d5 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-project-switcher'] --- import kbnServerlessProjectSwitcherObj from './kbn_serverless_project_switcher.devdocs.json'; diff --git a/api_docs/kbn_serverless_search_settings.mdx b/api_docs/kbn_serverless_search_settings.mdx index 6e37b2e5cbb76..df2d3b07e5d7b 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-03 +date: 2023-10-04 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 820180bf6d7e3..bfb556f280f92 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-security-settings'] --- import kbnServerlessSecuritySettingsObj from './kbn_serverless_security_settings.devdocs.json'; diff --git a/api_docs/kbn_serverless_storybook_config.mdx b/api_docs/kbn_serverless_storybook_config.mdx index 6b6b5a56c8f87..6ffc0c6183594 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-storybook-config'] --- import kbnServerlessStorybookConfigObj from './kbn_serverless_storybook_config.devdocs.json'; diff --git a/api_docs/kbn_shared_svg.devdocs.json b/api_docs/kbn_shared_svg.devdocs.json index 9a8e4e6d62ef9..588b106773268 100644 --- a/api_docs/kbn_shared_svg.devdocs.json +++ b/api_docs/kbn_shared_svg.devdocs.json @@ -22,6 +22,30 @@ "interfaces": [], "enums": [], "misc": [ + { + "parentPluginId": "@kbn/shared-svg", + "id": "def-common.content", + "type": "string", + "tags": [], + "label": "content", + "description": [], + "path": "packages/kbn-ambient-ui-types/index.d.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/shared-svg", + "id": "def-common.content", + "type": "string", + "tags": [], + "label": "content", + "description": [], + "path": "packages/kbn-ambient-ui-types/index.d.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "@kbn/shared-svg", "id": "def-common.content", diff --git a/api_docs/kbn_shared_svg.mdx b/api_docs/kbn_shared_svg.mdx index 52639d3e138cd..7d7b3d1e927d1 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-svg'] --- import kbnSharedSvgObj from './kbn_shared_svg.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/apm-ui](https://github.com/orgs/elastic/teams/apm-ui) for ques | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 2 | 0 | 2 | 0 | +| 4 | 0 | 4 | 0 | ## Common diff --git a/api_docs/kbn_shared_ux_avatar_solution.mdx b/api_docs/kbn_shared_ux_avatar_solution.mdx index eaa5526e373ae..e3278f6713a62 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-avatar-solution'] --- import kbnSharedUxAvatarSolutionObj from './kbn_shared_ux_avatar_solution.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx b/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx index 7a23855fd9d1f..8c66cb2c66b09 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-03 +date: 2023-10-04 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 b68e6714f55a3..5d5715345b9d1 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-button-exit-full-screen'] --- import kbnSharedUxButtonExitFullScreenObj from './kbn_shared_ux_button_exit_full_screen.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx b/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx index f6d01c7f6e2bb..98366524af159 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-03 +date: 2023-10-04 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 5b92d8dd99e1f..4532a64fa853d 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-button-toolbar'] --- import kbnSharedUxButtonToolbarObj from './kbn_shared_ux_button_toolbar.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_card_no_data.mdx b/api_docs/kbn_shared_ux_card_no_data.mdx index 044b8c56c2894..51e51e1b5fcee 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-card-no-data'] --- import kbnSharedUxCardNoDataObj from './kbn_shared_ux_card_no_data.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_card_no_data_mocks.mdx b/api_docs/kbn_shared_ux_card_no_data_mocks.mdx index 136cc7c391fd0..3909f7cb5b76f 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-card-no-data-mocks'] --- import kbnSharedUxCardNoDataMocksObj from './kbn_shared_ux_card_no_data_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_chrome_navigation.mdx b/api_docs/kbn_shared_ux_chrome_navigation.mdx index f129158020277..fbb57cc717da1 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-chrome-navigation'] --- import kbnSharedUxChromeNavigationObj from './kbn_shared_ux_chrome_navigation.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_context.mdx b/api_docs/kbn_shared_ux_file_context.mdx index 127298fd530de..5a72a36f1e513 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-context'] --- import kbnSharedUxFileContextObj from './kbn_shared_ux_file_context.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_image.mdx b/api_docs/kbn_shared_ux_file_image.mdx index 832d3dfc11a16..d657ae8b8c151 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-image'] --- import kbnSharedUxFileImageObj from './kbn_shared_ux_file_image.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_image_mocks.mdx b/api_docs/kbn_shared_ux_file_image_mocks.mdx index ae30e5a216852..8b9b3d8c9479a 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-image-mocks'] --- import kbnSharedUxFileImageMocksObj from './kbn_shared_ux_file_image_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_mocks.mdx b/api_docs/kbn_shared_ux_file_mocks.mdx index 954d867800f3e..b83874e227ab1 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-mocks'] --- import kbnSharedUxFileMocksObj from './kbn_shared_ux_file_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_picker.mdx b/api_docs/kbn_shared_ux_file_picker.mdx index b452d55803356..497dc43acf8d2 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-picker'] --- import kbnSharedUxFilePickerObj from './kbn_shared_ux_file_picker.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_types.mdx b/api_docs/kbn_shared_ux_file_types.mdx index efafc729119cd..a937fb3a1f2bd 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-types'] --- import kbnSharedUxFileTypesObj from './kbn_shared_ux_file_types.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_upload.mdx b/api_docs/kbn_shared_ux_file_upload.mdx index 89e92d69b5680..2e4eb12f81ca9 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-upload'] --- import kbnSharedUxFileUploadObj from './kbn_shared_ux_file_upload.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_util.mdx b/api_docs/kbn_shared_ux_file_util.mdx index 48bbcca295296..7cf0d2d51552a 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-util'] --- import kbnSharedUxFileUtilObj from './kbn_shared_ux_file_util.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_link_redirect_app.mdx b/api_docs/kbn_shared_ux_link_redirect_app.mdx index 9d6246af0a978..60820afea31f1 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-link-redirect-app'] --- import kbnSharedUxLinkRedirectAppObj from './kbn_shared_ux_link_redirect_app.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx b/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx index 9f76869f2fcd9..5a9680546679a 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-link-redirect-app-mocks'] --- import kbnSharedUxLinkRedirectAppMocksObj from './kbn_shared_ux_link_redirect_app_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_markdown.mdx b/api_docs/kbn_shared_ux_markdown.mdx index b3a29ae0a1781..5cc6157894249 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-markdown'] --- import kbnSharedUxMarkdownObj from './kbn_shared_ux_markdown.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_markdown_mocks.mdx b/api_docs/kbn_shared_ux_markdown_mocks.mdx index fc1b91ee92b33..a68389a97579d 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-markdown-mocks'] --- import kbnSharedUxMarkdownMocksObj from './kbn_shared_ux_markdown_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_analytics_no_data.mdx b/api_docs/kbn_shared_ux_page_analytics_no_data.mdx index c1315061795ae..41124c5d1364c 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-analytics-no-data'] --- import kbnSharedUxPageAnalyticsNoDataObj from './kbn_shared_ux_page_analytics_no_data.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx b/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx index 09483b90d1bb3..9b1594fa5b6d5 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-analytics-no-data-mocks'] --- import kbnSharedUxPageAnalyticsNoDataMocksObj from './kbn_shared_ux_page_analytics_no_data_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_kibana_no_data.mdx b/api_docs/kbn_shared_ux_page_kibana_no_data.mdx index 02a8d3e58c4f8..614cb0dcb1788 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-no-data'] --- import kbnSharedUxPageKibanaNoDataObj from './kbn_shared_ux_page_kibana_no_data.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx b/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx index f858f551e9c59..0ae50d2dca0cd 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-no-data-mocks'] --- import kbnSharedUxPageKibanaNoDataMocksObj from './kbn_shared_ux_page_kibana_no_data_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_kibana_template.mdx b/api_docs/kbn_shared_ux_page_kibana_template.mdx index a2446518931ab..de2ccbffecc32 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-template'] --- import kbnSharedUxPageKibanaTemplateObj from './kbn_shared_ux_page_kibana_template.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx b/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx index 5d48d6e7eee4b..4bdf7d15cad4e 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-template-mocks'] --- import kbnSharedUxPageKibanaTemplateMocksObj from './kbn_shared_ux_page_kibana_template_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_no_data.mdx b/api_docs/kbn_shared_ux_page_no_data.mdx index 912de01db7195..aab0920194812 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data'] --- import kbnSharedUxPageNoDataObj from './kbn_shared_ux_page_no_data.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_no_data_config.mdx b/api_docs/kbn_shared_ux_page_no_data_config.mdx index 2f92a2e8da3fc..2a3ff12472f28 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data-config'] --- import kbnSharedUxPageNoDataConfigObj from './kbn_shared_ux_page_no_data_config.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx b/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx index 3fa1a61bd5d97..f3a46f161bbcf 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data-config-mocks'] --- import kbnSharedUxPageNoDataConfigMocksObj from './kbn_shared_ux_page_no_data_config_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_no_data_mocks.mdx b/api_docs/kbn_shared_ux_page_no_data_mocks.mdx index 2017f185e47aa..ad9e850bdc497 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data-mocks'] --- import kbnSharedUxPageNoDataMocksObj from './kbn_shared_ux_page_no_data_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_solution_nav.mdx b/api_docs/kbn_shared_ux_page_solution_nav.mdx index db19e1a9ae551..06bde717c846b 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-solution-nav'] --- import kbnSharedUxPageSolutionNavObj from './kbn_shared_ux_page_solution_nav.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_prompt_no_data_views.mdx b/api_docs/kbn_shared_ux_prompt_no_data_views.mdx index 4d84df2f8a319..4f0895eedd529 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-no-data-views'] --- import kbnSharedUxPromptNoDataViewsObj from './kbn_shared_ux_prompt_no_data_views.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx b/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx index 3d5b2aa249fac..ead2f6e7e3ffd 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-no-data-views-mocks'] --- import kbnSharedUxPromptNoDataViewsMocksObj from './kbn_shared_ux_prompt_no_data_views_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_prompt_not_found.mdx b/api_docs/kbn_shared_ux_prompt_not_found.mdx index b89d0a6c3fcfe..af81c4c53858f 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-not-found'] --- import kbnSharedUxPromptNotFoundObj from './kbn_shared_ux_prompt_not_found.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_router.mdx b/api_docs/kbn_shared_ux_router.mdx index 40c1bc7cf11f1..9dfb6a29e1580 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-router'] --- import kbnSharedUxRouterObj from './kbn_shared_ux_router.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_router_mocks.mdx b/api_docs/kbn_shared_ux_router_mocks.mdx index 1c743f1e9ff11..e9892249c21ca 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-router-mocks'] --- import kbnSharedUxRouterMocksObj from './kbn_shared_ux_router_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_storybook_config.mdx b/api_docs/kbn_shared_ux_storybook_config.mdx index 3cd2e89c36671..0d93c547dd514 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-storybook-config'] --- import kbnSharedUxStorybookConfigObj from './kbn_shared_ux_storybook_config.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_storybook_mock.mdx b/api_docs/kbn_shared_ux_storybook_mock.mdx index 0479c67007fa1..6005a60064f71 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-storybook-mock'] --- import kbnSharedUxStorybookMockObj from './kbn_shared_ux_storybook_mock.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_utility.mdx b/api_docs/kbn_shared_ux_utility.mdx index a0ed89e28a51b..af997d48080e1 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-utility'] --- import kbnSharedUxUtilityObj from './kbn_shared_ux_utility.devdocs.json'; diff --git a/api_docs/kbn_slo_schema.mdx b/api_docs/kbn_slo_schema.mdx index 2843e6600d2cf..6b60f64117f37 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/slo-schema'] --- import kbnSloSchemaObj from './kbn_slo_schema.devdocs.json'; diff --git a/api_docs/kbn_some_dev_log.mdx b/api_docs/kbn_some_dev_log.mdx index 6abfe3786364c..352c042ce2a03 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/some-dev-log'] --- import kbnSomeDevLogObj from './kbn_some_dev_log.devdocs.json'; diff --git a/api_docs/kbn_std.mdx b/api_docs/kbn_std.mdx index 7700c96d82680..ba2faa59f4ee2 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/std'] --- import kbnStdObj from './kbn_std.devdocs.json'; diff --git a/api_docs/kbn_stdio_dev_helpers.mdx b/api_docs/kbn_stdio_dev_helpers.mdx index 6a7818956c7f1..24614e641fa4d 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/stdio-dev-helpers'] --- import kbnStdioDevHelpersObj from './kbn_stdio_dev_helpers.devdocs.json'; diff --git a/api_docs/kbn_storybook.mdx b/api_docs/kbn_storybook.mdx index aaa3c770fb305..10da0ca89d067 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-03 +date: 2023-10-04 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 e42141887b78d..a215f21dde154 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-03 +date: 2023-10-04 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 ce1ab2f74e1c4..4d864b8037c81 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/telemetry-tools'] --- import kbnTelemetryToolsObj from './kbn_telemetry_tools.devdocs.json'; diff --git a/api_docs/kbn_test.mdx b/api_docs/kbn_test.mdx index 79fc16b4822ef..a57c3ed3ebc0a 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-03 +date: 2023-10-04 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 1fe097e875cf6..8e830cf45b2a6 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test-jest-helpers'] --- import kbnTestJestHelpersObj from './kbn_test_jest_helpers.devdocs.json'; diff --git a/api_docs/kbn_test_subj_selector.mdx b/api_docs/kbn_test_subj_selector.mdx index c47eebab418f8..0fd0a340e4197 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test-subj-selector'] --- import kbnTestSubjSelectorObj from './kbn_test_subj_selector.devdocs.json'; diff --git a/api_docs/kbn_text_based_editor.mdx b/api_docs/kbn_text_based_editor.mdx index 6df3d6aedd7ce..4eae2e898df5d 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/text-based-editor'] --- import kbnTextBasedEditorObj from './kbn_text_based_editor.devdocs.json'; diff --git a/api_docs/kbn_tooling_log.mdx b/api_docs/kbn_tooling_log.mdx index 22aac187f11d0..c448d74c001bb 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-03 +date: 2023-10-04 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 ab326d92e95f0..a98aee6a2762d 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ts-projects'] --- import kbnTsProjectsObj from './kbn_ts_projects.devdocs.json'; diff --git a/api_docs/kbn_typed_react_router_config.mdx b/api_docs/kbn_typed_react_router_config.mdx index c8f7903d41872..6abef4b3cb265 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/typed-react-router-config'] --- import kbnTypedReactRouterConfigObj from './kbn_typed_react_router_config.devdocs.json'; diff --git a/api_docs/kbn_ui_actions_browser.mdx b/api_docs/kbn_ui_actions_browser.mdx index 4fef07727c5e8..1cf8ad38e2749 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-actions-browser'] --- import kbnUiActionsBrowserObj from './kbn_ui_actions_browser.devdocs.json'; diff --git a/api_docs/kbn_ui_shared_deps_src.mdx b/api_docs/kbn_ui_shared_deps_src.mdx index a5bf8efb162ab..87218bf34c107 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-shared-deps-src'] --- import kbnUiSharedDepsSrcObj from './kbn_ui_shared_deps_src.devdocs.json'; diff --git a/api_docs/kbn_ui_theme.mdx b/api_docs/kbn_ui_theme.mdx index d1669b1ffdf98..d81de2c5fca9a 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-theme'] --- import kbnUiThemeObj from './kbn_ui_theme.devdocs.json'; diff --git a/api_docs/kbn_unified_data_table.mdx b/api_docs/kbn_unified_data_table.mdx index 1ae1af45e8654..2ee6ad369ae8b 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-03 +date: 2023-10-04 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 1e7b690589466..b8120562c5c50 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unified-doc-viewer'] --- import kbnUnifiedDocViewerObj from './kbn_unified_doc_viewer.devdocs.json'; diff --git a/api_docs/kbn_unified_field_list.mdx b/api_docs/kbn_unified_field_list.mdx index b07006c4c112f..a2087344b05b3 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-03 +date: 2023-10-04 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 c8d8a87b504e1..3ae29ff6cec18 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-03 +date: 2023-10-04 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 0a003c3e653de..cc32e0d5a7fe3 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/use-tracked-promise'] --- import kbnUseTrackedPromiseObj from './kbn_use_tracked_promise.devdocs.json'; diff --git a/api_docs/kbn_user_profile_components.mdx b/api_docs/kbn_user_profile_components.mdx index 7a3b3342d677e..7d0e762554919 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/user-profile-components'] --- import kbnUserProfileComponentsObj from './kbn_user_profile_components.devdocs.json'; diff --git a/api_docs/kbn_utility_types.mdx b/api_docs/kbn_utility_types.mdx index 3a91ff72f10b2..5279f67f8e4af 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/utility-types'] --- import kbnUtilityTypesObj from './kbn_utility_types.devdocs.json'; diff --git a/api_docs/kbn_utility_types_jest.mdx b/api_docs/kbn_utility_types_jest.mdx index 1e8ae3745f5fd..145b5304caf14 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/utility-types-jest'] --- import kbnUtilityTypesJestObj from './kbn_utility_types_jest.devdocs.json'; diff --git a/api_docs/kbn_utils.mdx b/api_docs/kbn_utils.mdx index 7e9192f8ec04a..0206955946b47 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/utils'] --- import kbnUtilsObj from './kbn_utils.devdocs.json'; diff --git a/api_docs/kbn_visualization_ui_components.mdx b/api_docs/kbn_visualization_ui_components.mdx index 05df87b4d19b1..35b86e5615659 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/visualization-ui-components'] --- import kbnVisualizationUiComponentsObj from './kbn_visualization_ui_components.devdocs.json'; diff --git a/api_docs/kbn_xstate_utils.mdx b/api_docs/kbn_xstate_utils.mdx index e07d40e2f7242..b550dbb55e6d3 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/xstate-utils'] --- import kbnXstateUtilsObj from './kbn_xstate_utils.devdocs.json'; diff --git a/api_docs/kbn_yarn_lock_validator.mdx b/api_docs/kbn_yarn_lock_validator.mdx index 316dd522da92c..b316eb12dad4d 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-03 +date: 2023-10-04 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 ab01552616ac8..356e258f0b7e2 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaOverview'] --- import kibanaOverviewObj from './kibana_overview.devdocs.json'; diff --git a/api_docs/kibana_react.mdx b/api_docs/kibana_react.mdx index 681a72f46329f..85b74a775e951 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaReact'] --- import kibanaReactObj from './kibana_react.devdocs.json'; diff --git a/api_docs/kibana_utils.mdx b/api_docs/kibana_utils.mdx index ece1e784ff073..ef82a6fde36af 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaUtils'] --- import kibanaUtilsObj from './kibana_utils.devdocs.json'; diff --git a/api_docs/kubernetes_security.mdx b/api_docs/kubernetes_security.mdx index cf60ba36ac3f3..e2532acc7f909 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kubernetesSecurity'] --- import kubernetesSecurityObj from './kubernetes_security.devdocs.json'; diff --git a/api_docs/lens.mdx b/api_docs/lens.mdx index 4f8ce11c263fd..535cb06bd546f 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'lens'] --- import lensObj from './lens.devdocs.json'; diff --git a/api_docs/license_api_guard.mdx b/api_docs/license_api_guard.mdx index a4d8dca3c79d5..9d7769ae9a297 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'licenseApiGuard'] --- import licenseApiGuardObj from './license_api_guard.devdocs.json'; diff --git a/api_docs/license_management.mdx b/api_docs/license_management.mdx index 23838547aedea..f4931f56c2be0 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'licenseManagement'] --- import licenseManagementObj from './license_management.devdocs.json'; diff --git a/api_docs/licensing.devdocs.json b/api_docs/licensing.devdocs.json index d041c80cac66d..2d2924491b936 100644 --- a/api_docs/licensing.devdocs.json +++ b/api_docs/licensing.devdocs.json @@ -2186,6 +2186,10 @@ "plugin": "alerting", "path": "x-pack/plugins/alerting/server/plugin.ts" }, + { + "plugin": "aiops", + "path": "x-pack/plugins/aiops/server/plugin.ts" + }, { "plugin": "ml", "path": "x-pack/plugins/ml/server/plugin.ts" diff --git a/api_docs/licensing.mdx b/api_docs/licensing.mdx index fc932bf94ddf0..6ace00fe51a0f 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'licensing'] --- import licensingObj from './licensing.devdocs.json'; diff --git a/api_docs/links.mdx b/api_docs/links.mdx index 377ece699f997..252c39322ca6a 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'links'] --- import linksObj from './links.devdocs.json'; diff --git a/api_docs/lists.mdx b/api_docs/lists.mdx index 3c85b961b0a04..36861d7fc6323 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-03 +date: 2023-10-04 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 403d104fb8d1b..9ac971ea3b4a0 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-03 +date: 2023-10-04 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 26f32368538f3..566777c5b4797 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'logsShared'] --- import logsSharedObj from './logs_shared.devdocs.json'; diff --git a/api_docs/management.mdx b/api_docs/management.mdx index 24ae2df740750..26b43a942c8d1 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'management'] --- import managementObj from './management.devdocs.json'; diff --git a/api_docs/maps.mdx b/api_docs/maps.mdx index 3f62a492f7546..3b1862a9f985b 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'maps'] --- import mapsObj from './maps.devdocs.json'; diff --git a/api_docs/maps_ems.mdx b/api_docs/maps_ems.mdx index 9e3705d5e9885..0bc75c29258ff 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'mapsEms'] --- import mapsEmsObj from './maps_ems.devdocs.json'; diff --git a/api_docs/metrics_data_access.mdx b/api_docs/metrics_data_access.mdx index 3e6499cf0e56e..d4b6dfef85c01 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'metricsDataAccess'] --- import metricsDataAccessObj from './metrics_data_access.devdocs.json'; diff --git a/api_docs/ml.devdocs.json b/api_docs/ml.devdocs.json index 8dfd6b380c2a4..a3f795bac57af 100644 --- a/api_docs/ml.devdocs.json +++ b/api_docs/ml.devdocs.json @@ -1902,6 +1902,22 @@ "MlPutTrainedModelRequest", "): Promise<", "MlTrainedModelConfig", + ">; getELSER(params?: ", + { + "pluginId": "@kbn/ml-trained-models-utils", + "scope": "common", + "docId": "kibKbnMlTrainedModelsUtilsPluginApi", + "section": "def-common.GetElserOptions", + "text": "GetElserOptions" + }, + " | undefined): Promise<", + { + "pluginId": "@kbn/ml-trained-models-utils", + "scope": "common", + "docId": "kibKbnMlTrainedModelsUtilsPluginApi", + "section": "def-common.ModelDefinitionResponse", + "text": "ModelDefinitionResponse" + }, ">; }" ], "path": "x-pack/plugins/ml/server/shared.ts", diff --git a/api_docs/ml.mdx b/api_docs/ml.mdx index cdb50a405db18..30cddb7edb9bc 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-03 +date: 2023-10-04 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 007a9c8aa8160..fbec9a529dc70 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'monitoring'] --- import monitoringObj from './monitoring.devdocs.json'; diff --git a/api_docs/monitoring_collection.mdx b/api_docs/monitoring_collection.mdx index 14b290a344ce7..fae56d87b06cb 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-03 +date: 2023-10-04 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 173ea869e4f25..5680809c10e42 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-03 +date: 2023-10-04 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 12b2ccd23a4cd..3e6d4a836f0d4 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-03 +date: 2023-10-04 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 8449b89d07fea..1c5b21cb4714e 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-03 +date: 2023-10-04 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 88f03d9695b09..5ce826a89a292 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-03 +date: 2023-10-04 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 9497303b79ed6..1d3696f26300b 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-03 +date: 2023-10-04 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 d09f0f28e4a84..c36dfffa7e4f1 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-03 +date: 2023-10-04 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 2f64d0f377d64..b3b5d7dc00d55 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-03 +date: 2023-10-04 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 a11f5f715c431..ac51c37ec4bed 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-03 +date: 2023-10-04 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 cfb672376fedb..495743d4247b0 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-03 +date: 2023-10-04 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 adce418422e7a..7e19211aec394 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-03 +date: 2023-10-04 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 a232cc8428512..d9d8766ba9cca 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-03 +date: 2023-10-04 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 ed9e95eada5f8..5385249ce7b86 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- @@ -21,7 +21,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | API Count | Any Count | Missing comments | Missing exports | |--------------|----------|-----------------|--------| -| 75443 | 223 | 64253 | 1574 | +| 75755 | 223 | 64565 | 1575 | ## Plugin Directory @@ -31,7 +31,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/appex-sharedux @elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/appex-sharedux ) | - | 17 | 1 | 15 | 2 | | | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | AIOps plugin maintained by ML team. | 67 | 1 | 4 | 1 | | | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 776 | 1 | 745 | 50 | -| | [@elastic/apm-ui](https://github.com/orgs/elastic/teams/apm-ui) | The user interface for Elastic APM | 29 | 0 | 29 | 119 | +| | [@elastic/apm-ui](https://github.com/orgs/elastic/teams/apm-ui) | The user interface for Elastic APM | 29 | 0 | 29 | 120 | | | [@elastic/apm-ui](https://github.com/orgs/elastic/teams/apm-ui) | - | 9 | 0 | 9 | 0 | | | [@elastic/infra-monitoring-ui](https://github.com/orgs/elastic/teams/infra-monitoring-ui) | Asset manager plugin for entity assets (inventory, topology, etc) | 9 | 0 | 9 | 2 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 9 | 0 | 9 | 0 | @@ -50,7 +50,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-cloud-security-posture](https://github.com/orgs/elastic/teams/kibana-cloud-security-posture) | The cloud security posture plugin | 14 | 0 | 2 | 2 | | | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 13 | 0 | 13 | 1 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Content management app | 149 | 0 | 126 | 6 | -| | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | The Controls Plugin contains embeddable components intended to create a simple query interface for end users, and a powerful editing suite that allows dashboard authors to build controls | 309 | 0 | 302 | 16 | +| | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | The Controls Plugin contains embeddable components intended to create a simple query interface for end users, and a powerful editing suite that allows dashboard authors to build controls | 311 | 0 | 304 | 16 | | crossClusterReplication | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 0 | 0 | 0 | 0 | | customBranding | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Enables customization of Kibana | 0 | 0 | 0 | 0 | | | [@elastic/fleet](https://github.com/orgs/elastic/teams/fleet) | Add custom data integrations so they can be displayed in the Fleet integrations app | 268 | 0 | 249 | 1 | @@ -185,7 +185,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/security-threat-hunting-investigations](https://github.com/orgs/elastic/teams/security-threat-hunting-investigations) | - | 240 | 1 | 196 | 17 | | | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | This plugin provides access to the transforms features provided by Elastic. Transforms enable you to convert existing Elasticsearch indices into summarized indices, which provide opportunities for new insights and analytics. | 4 | 0 | 4 | 1 | | translations | [@elastic/kibana-localization](https://github.com/orgs/elastic/teams/kibana-localization) | - | 0 | 0 | 0 | 0 | -| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 578 | 1 | 552 | 52 | +| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 579 | 1 | 553 | 52 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Adds UI Actions service to Kibana | 145 | 0 | 103 | 9 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Extends UI Actions plugin with more functionality | 212 | 0 | 145 | 10 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | This plugin contains services reliant on the plugin lifecycle for the unified doc viewer component (see @kbn/unified-doc-viewer). | 13 | 0 | 10 | 3 | @@ -512,7 +512,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | - | 5 | 0 | 0 | 0 | | | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | - | 8 | 0 | 0 | 0 | | | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | - | 2 | 0 | 1 | 0 | -| | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | - | 22 | 0 | 22 | 0 | +| | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | - | 29 | 0 | 29 | 0 | | | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | - | 31 | 1 | 24 | 1 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 78 | 0 | 76 | 3 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 55 | 1 | 50 | 0 | @@ -544,7 +544,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/security-detections-response](https://github.com/orgs/elastic/teams/security-detections-response) | - | 114 | 0 | 111 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 2 | 0 | 2 | 0 | | | [@elastic/enterprise-search-frontend](https://github.com/orgs/elastic/teams/enterprise-search-frontend) | - | 68 | 0 | 68 | 0 | -| | [@elastic/enterprise-search-frontend](https://github.com/orgs/elastic/teams/enterprise-search-frontend) | - | 1748 | 0 | 1748 | 0 | +| | [@elastic/enterprise-search-frontend](https://github.com/orgs/elastic/teams/enterprise-search-frontend) | - | 2048 | 0 | 2048 | 0 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 15 | 0 | 8 | 0 | | | [@elastic/security-threat-hunting-explore](https://github.com/orgs/elastic/teams/security-threat-hunting-explore) | - | 14 | 0 | 14 | 6 | | | [@elastic/security-threat-hunting-explore](https://github.com/orgs/elastic/teams/security-threat-hunting-explore) | - | 50 | 0 | 47 | 0 | @@ -576,7 +576,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/enterprise-search-frontend @elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/enterprise-search-frontend ) | - | 1 | 0 | 1 | 0 | | | [@elastic/security-solution @elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/security-solution ) | - | 1 | 0 | 1 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 2 | 0 | 0 | 0 | -| | [@elastic/apm-ui](https://github.com/orgs/elastic/teams/apm-ui) | - | 2 | 0 | 2 | 0 | +| | [@elastic/apm-ui](https://github.com/orgs/elastic/teams/apm-ui) | - | 4 | 0 | 4 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 3 | 0 | 2 | 2 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 40 | 0 | 3 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 8 | 0 | 4 | 0 | diff --git a/api_docs/presentation_util.mdx b/api_docs/presentation_util.mdx index b9071fb7255ac..c94afd6726d23 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-03 +date: 2023-10-04 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 910a7822191e5..3a4e594dfff37 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-03 +date: 2023-10-04 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 4932f1ab8723f..00457f1b7f5ad 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-03 +date: 2023-10-04 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 bc7a7368d5631..93900ce0671df 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-03 +date: 2023-10-04 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 4e77594da9d20..e5a5c3745fedf 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-03 +date: 2023-10-04 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 fa08fbec58bdd..d57bdbfe3d304 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-03 +date: 2023-10-04 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 e127e3bf39756..17be3ce7347ab 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-03 +date: 2023-10-04 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 2e8412a73e61b..f80203dc65a03 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-03 +date: 2023-10-04 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 d3ee7b06b4b07..057ef309a1908 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-03 +date: 2023-10-04 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 5d95b14324e04..e2ef88610bad4 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-03 +date: 2023-10-04 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 2dac7732e65cb..beff3d03e6432 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-03 +date: 2023-10-04 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 db876d9a04b55..9bb0ee48c65c7 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-03 +date: 2023-10-04 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 839a1a4e86564..9be994c1a1b97 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-03 +date: 2023-10-04 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 a71621cebb0cf..035cafcea23c1 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-03 +date: 2023-10-04 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 67d56993cf219..fd1e6da25c084 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-03 +date: 2023-10-04 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 9c61450fa90e3..2f1dad24ba22d 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-03 +date: 2023-10-04 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 922fe2cc11f10..8a8530a7e0bc4 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-03 +date: 2023-10-04 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 699591e999472..6750369625a69 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-03 +date: 2023-10-04 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 7b6a5433829f6..61333fa922ef8 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-03 +date: 2023-10-04 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 d31f881a4ee4d..f2a4007dfabc1 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-03 +date: 2023-10-04 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 7e1b9812c790c..5f9ac7fdfc053 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-03 +date: 2023-10-04 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 e3d240b492aed..545a9b04455ea 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-03 +date: 2023-10-04 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 b99b55db755e2..3a1d3130b69a1 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-03 +date: 2023-10-04 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 0b5870d7b156c..1fde97f8160a1 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-03 +date: 2023-10-04 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 5da9475f7ea01..1655bfd9995c6 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-03 +date: 2023-10-04 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 3cbd0ff796db1..65d3d009b0817 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-03 +date: 2023-10-04 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 82aa52119bfaa..6ae122edde8f7 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-03 +date: 2023-10-04 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 f9eef746786cd..df49f554a3e4c 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-03 +date: 2023-10-04 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 ccca429893484..77a5f87ceff41 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'stackConnectors'] --- import stackConnectorsObj from './stack_connectors.devdocs.json'; diff --git a/api_docs/task_manager.devdocs.json b/api_docs/task_manager.devdocs.json index abdde3e96fa97..620d48af005c2 100644 --- a/api_docs/task_manager.devdocs.json +++ b/api_docs/task_manager.devdocs.json @@ -1773,7 +1773,7 @@ "signature": [ "Pick<", "TaskScheduling", - ", \"schedule\" | \"runSoon\" | \"ephemeralRunNow\" | \"ensureScheduled\" | \"bulkUpdateSchedules\" | \"bulkEnable\" | \"bulkDisable\" | \"bulkSchedule\"> & Pick<", + ", \"schedule\" | \"runSoon\" | \"ephemeralRunNow\" | \"ensureScheduled\" | \"bulkUpdateSchedules\" | \"bulkEnable\" | \"bulkDisable\" | \"bulkSchedule\" | \"bulkUpdateState\"> & Pick<", "TaskStore", ", \"get\" | \"aggregate\" | \"fetch\" | \"remove\" | \"bulkRemove\"> & { removeIfExists: (id: string) => Promise; } & { supportsEphemeralTasks: () => boolean; getRegisteredTypes: () => string[]; }" ], diff --git a/api_docs/task_manager.mdx b/api_docs/task_manager.mdx index 6fadb362315e7..487a988e98d83 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-03 +date: 2023-10-04 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 e1e7d23a2be32..10f1f2535bc91 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-03 +date: 2023-10-04 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 48d6b9f15f203..293abfc53166a 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-03 +date: 2023-10-04 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 690d9291319cc..8a56f882f506a 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-03 +date: 2023-10-04 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 3ef4221459dcb..3c18c09632a4d 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-03 +date: 2023-10-04 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 b33ae7482afdd..b151e77653cc6 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-03 +date: 2023-10-04 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 3f69beef3f339..ac963e4b5591f 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-03 +date: 2023-10-04 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 c4fccb6b21c2a..b080995580376 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-03 +date: 2023-10-04 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 dde7bc56d4cef..61eac471b522f 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'transform'] --- import transformObj from './transform.devdocs.json'; diff --git a/api_docs/triggers_actions_ui.devdocs.json b/api_docs/triggers_actions_ui.devdocs.json index a71ebed1405af..6b205e65bf630 100644 --- a/api_docs/triggers_actions_ui.devdocs.json +++ b/api_docs/triggers_actions_ui.devdocs.json @@ -1789,6 +1789,25 @@ "returnComment": [], "initialIsOpen": false }, + { + "parentPluginId": "triggersActionsUi", + "id": "def-public.useBulkUntrackAlerts", + "type": "Function", + "tags": [], + "label": "useBulkUntrackAlerts", + "description": [], + "signature": [ + "() => ", + "UseMutationResult", + "" + ], + "path": "x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/hooks/use_bulk_untrack_alerts.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [], + "initialIsOpen": false + }, { "parentPluginId": "triggersActionsUi", "id": "def-public.useConnectorContext", diff --git a/api_docs/triggers_actions_ui.mdx b/api_docs/triggers_actions_ui.mdx index 51fe48e759541..48e4f9d89c804 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'triggersActionsUi'] --- import triggersActionsUiObj from './triggers_actions_ui.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-o | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 578 | 1 | 552 | 52 | +| 579 | 1 | 553 | 52 | ## Client diff --git a/api_docs/ui_actions.mdx b/api_docs/ui_actions.mdx index 26ec6ab9333f9..6a0bbf988918f 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-03 +date: 2023-10-04 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 fa9574593b9f9..af87c5d67d7a2 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-03 +date: 2023-10-04 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 08be104a6529d..fb2d331b7115f 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-03 +date: 2023-10-04 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 e692bb225f19b..06f5ae34177b2 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-03 +date: 2023-10-04 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 303621cf610ba..925959a291e16 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-03 +date: 2023-10-04 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 42b518b4a9158..e1252144f7396 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-03 +date: 2023-10-04 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 35ad388965ebc..7d8a95edf987d 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-03 +date: 2023-10-04 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 65c769e8b886e..3eb337c05ae3d 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-03 +date: 2023-10-04 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 1d8770c644b54..7b6f2f888e0c0 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-03 +date: 2023-10-04 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 8d9e88f57a46a..365162b61ee7d 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-03 +date: 2023-10-04 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 18c9d67519260..02be92a35c2d5 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-03 +date: 2023-10-04 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 acfa0c5465ac7..aaa1b41d5bd0c 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-03 +date: 2023-10-04 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 3e38f2d28024d..bfe7402987c65 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-03 +date: 2023-10-04 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 443393fd61d2a..63ce12aab067d 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-03 +date: 2023-10-04 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 73879eff9a996..9f2e4cd8f8961 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-03 +date: 2023-10-04 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 cc1823d335af6..2eefb08259743 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-03 +date: 2023-10-04 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 e1b22fe8aa5f6..dfc9b6cd8ad57 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-03 +date: 2023-10-04 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 087b76cd4f51b..2c2a070030345 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-03 +date: 2023-10-04 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 f8d6e3cde89f0..cdf3234db07ab 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-03 +date: 2023-10-04 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 2be47afee8f58..a314818334cbb 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-03 +date: 2023-10-04 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 7cb2809508078..28f223df4f772 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-03 +date: 2023-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visualizations'] --- import visualizationsObj from './visualizations.devdocs.json'; diff --git a/config/serverless.security.yml b/config/serverless.security.yml index f8ed3d37345e5..057739b8dc50e 100644 --- a/config/serverless.security.yml +++ b/config/serverless.security.yml @@ -35,7 +35,6 @@ xpack.fleet.internal.registry.spec.max: '3.0' # Serverless security specific options xpack.securitySolution.enableExperimental: - - discoverInTimeline - esqlRulesDisabled xpack.ml.ad.enabled: true diff --git a/docs/management/connectors/action-types/servicenow-itom.asciidoc b/docs/management/connectors/action-types/servicenow-itom.asciidoc index 1549949cd23b9..3f104006cd1e7 100644 --- a/docs/management/connectors/action-types/servicenow-itom.asciidoc +++ b/docs/management/connectors/action-types/servicenow-itom.asciidoc @@ -3,6 +3,10 @@ ++++ {sn-itom} ++++ +:frontmatter-description: Add a connector that can create {sn} events. +:frontmatter-tags-products: [kibana] +:frontmatter-tags-content-type: [how-to] +:frontmatter-tags-user-goals: [configure] The {sn-itom} connector uses the https://docs.servicenow.com/bundle/rome-it-operations-management/page/product/event-management/task/send-events-via-web-service.html[event API] @@ -79,62 +83,6 @@ JWT Key ID:: The key ID assigned to the JWT verifier map of your OAuth applicati Private Key:: The RSA private key generated during setup. Private Key Password:: The password for the RSA private key generated during setup, if set. -[float] -[[preconfigured-servicenow-itom-configuration]] -=== Create preconfigured connectors - -If you are running {kib} on-prem, you can define connectors by -adding `xpack.actions.preconfigured` settings to your `kibana.yml` file. -For example: - -Connector using Basic Authentication -[source,text] --- -xpack.actions.preconfigured: - my-servicenow-itom: - name: preconfigured-servicenow-connector-type - actionTypeId: .servicenow-itom - config: - apiUrl: https://example.service-now.com/ - secrets: - username: testuser - password: passwordkeystorevalue --- - -Connector using OAuth -[source,text] --- - my-servicenow: - name: preconfigured-oauth-servicenow-connector-type - actionTypeId: .servicenow-itom - config: - apiUrl: https://example.service-now.com/ - usesTableApi: false - isOAuth: true - userIdentifierValue: testuser@email.com - clientId: abcdefghijklmnopqrstuvwxyzabcdef - jwtKeyId: fedcbazyxwvutsrqponmlkjihgfedcba - secrets: - clientSecret: secretsecret - privateKey: -----BEGIN RSA PRIVATE KEY-----\nprivatekeyhere\n-----END RSA PRIVATE KEY----- --- - -Config defines information for the connector type. - -`apiUrl`:: An address that corresponds to *URL*. -`isOAuth`:: A boolean that corresponds to *Is OAuth* and indicates if the connector uses Basic Authentication or OAuth. -`userIdentifierValue`:: A string that corresponds to *User Identifier*. Required if `isOAuth` is set to `true`. -`clientId`:: A string that corresponds to *Client ID*, used for OAuth authentication. Required if `isOAuth` is set to `true`. -`jwtKeyId`:: A string that corresponds to *JWT Key ID*, used for OAuth authentication. Required if `isOAuth` is set to `true`. - -Secrets defines sensitive information for the connector type. - -`username`:: A string that corresponds to *Username*. Required if `isOAuth` is set to `false`. -`password`:: A string that corresponds to *Password*. Should be stored in the <>. Required if `isOAuth` is set to `false`. -`clientSecret`:: A string that corresponds to *Client Secret*. Required if `isOAuth` is set to `true`. -`privateKey`:: A string that corresponds to *Private Key*. Required if `isOAuth` is set to `true`. -`privateKeyPassword`:: A string that corresponds to *Private Key Password*. - [float] [[servicenow-itom-action-configuration]] === Test connectors diff --git a/docs/management/connectors/action-types/servicenow-sir.asciidoc b/docs/management/connectors/action-types/servicenow-sir.asciidoc index 0fc96f9baa85c..30ea222aa4e14 100644 --- a/docs/management/connectors/action-types/servicenow-sir.asciidoc +++ b/docs/management/connectors/action-types/servicenow-sir.asciidoc @@ -3,6 +3,10 @@ ++++ {sn-sir} ++++ +:frontmatter-description: Add a connector that can create {sn} security incidents. +:frontmatter-tags-products: [kibana] +:frontmatter-tags-content-type: [how-to] +:frontmatter-tags-user-goals: [configure] The {sn-sir} connector uses the https://developer.servicenow.com/dev.do#!/reference/api/sandiego/rest/c_ImportSetAPI[import set API] @@ -122,68 +126,6 @@ JWT Key ID:: The key ID assigned to the JWT verifier map of your OAuth applicati Private Key:: The RSA private key generated during setup. Private Key Password:: The password for the RSA private key generated during setup, if set. -[float] -[[preconfigured-servicenow-sir-configuration]] -=== Create preconfigured connectors - -If you are running {kib} on-prem, you can define connectors by -adding `xpack.actions.preconfigured` settings to your `kibana.yml` file. -For example: - -Connector using Basic Authentication -[source,text] --- -xpack.actions.preconfigured: - my-servicenow-sir: - name: preconfigured-servicenow-connector-type - actionTypeId: .servicenow-sir - config: - apiUrl: https://example.service-now.com/ - usesTableApi: false - secrets: - username: testuser - password: passwordkeystorevalue --- - -Connector using OAuth -[source,text] --- -xpack.actions.preconfigured: - my-servicenow: - name: preconfigured-oauth-servicenow-connector-type - actionTypeId: .servicenow-sir - config: - apiUrl: https://example.service-now.com/ - usesTableApi: false - isOAuth: true - userIdentifierValue: testuser@email.com - clientId: abcdefghijklmnopqrstuvwxyzabcdef - jwtKeyId: fedcbazyxwvutsrqponmlkjihgfedcba - secrets: - clientSecret: secretsecret - privateKey: -----BEGIN RSA PRIVATE KEY-----\nprivatekeyhere\n-----END RSA PRIVATE KEY----- --- - -Config defines information for the connector type. - -`apiUrl`:: An address that corresponds to *URL*. -`usesTableApi`:: A boolean that indicates if the connector uses the Table API or the Import Set API. - -NOTE: If `usesTableApi` is set to false, the Elastic application should be installed in {sn}. - -`isOAuth`:: A boolean that corresponds to *Is OAuth* and indicates if the connector uses Basic Authentication or OAuth. -`userIdentifierValue`:: A string that corresponds to *User Identifier*. Required if `isOAuth` is set to `true`. -`clientId`:: A string that corresponds to *Client ID*, used for OAuth authentication. Required if `isOAuth` is set to `true`. -`jwtKeyId`:: A string that corresponds to *JWT Key ID*, used for OAuth authentication. Required if `isOAuth` is set to `true`. - -Secrets defines sensitive information for the connector type. - -`username`:: A string that corresponds to *Username*. Required if `isOAuth` is set to `false`. -`password`:: A string that corresponds to *Password*. Should be stored in the <>. Required if `isOAuth` is set to `false`. -`clientSecret`:: A string that corresponds to *Client Secret*. Required if `isOAuth` is set to `true`. -`privateKey`:: A string that corresponds to *Private Key*. Required if `isOAuth` is set to `true`. -`privateKeyPassword`:: A string that corresponds to *Private Key Password*. - [float] [[servicenow-sir-action-configuration]] === Test connectors diff --git a/docs/management/connectors/action-types/servicenow.asciidoc b/docs/management/connectors/action-types/servicenow.asciidoc index 2151100451232..f3c636df29b6b 100644 --- a/docs/management/connectors/action-types/servicenow.asciidoc +++ b/docs/management/connectors/action-types/servicenow.asciidoc @@ -3,6 +3,10 @@ ++++ {sn-itsm} ++++ +:frontmatter-description: Add a connector that can create {sn} incidents. +:frontmatter-tags-products: [kibana] +:frontmatter-tags-content-type: [how-to] +:frontmatter-tags-user-goals: [configure] The {sn-itsm} connector uses the https://developer.servicenow.com/dev.do#!/reference/api/sandiego/rest/c_ImportSetAPI[import set API] @@ -206,68 +210,6 @@ JWT Key ID:: The key ID assigned to the JWT Verifier Map of your OAuth applicati Private Key:: The RSA private key generated during setup. Private Key Password:: The password for the RSA private key generated during setup, if set. -[float] -[[preconfigured-servicenow-configuration]] -=== Create preconfigured connectors - -If you are running {kib} on-prem, you can define connectors by -adding `xpack.actions.preconfigured` settings to your `kibana.yml` file. -For example: - -Connector using Basic Authentication -[source,text] --- -xpack.actions.preconfigured: - my-servicenow: - name: preconfigured-servicenow-connector-type - actionTypeId: .servicenow - config: - apiUrl: https://example.service-now.com/ - usesTableApi: false - secrets: - username: testuser - password: passwordkeystorevalue --- - -Connector using OAuth -[source,text] --- -xpack.actions.preconfigured: - my-servicenow: - name: preconfigured-oauth-servicenow-connector-type - actionTypeId: .servicenow - config: - apiUrl: https://example.service-now.com/ - usesTableApi: false - isOAuth: true - userIdentifierValue: testuser@email.com - clientId: abcdefghijklmnopqrstuvwxyzabcdef - jwtKeyId: fedcbazyxwvutsrqponmlkjihgfedcba - secrets: - clientSecret: secretsecret - privateKey: -----BEGIN RSA PRIVATE KEY-----\nprivatekeyhere\n-----END RSA PRIVATE KEY----- --- - -Config defines information for the connector type. - -`apiUrl`:: An address that corresponds to *URL*. -`usesTableApi`:: A boolean that indicates if the connector uses the Table API or the Import Set API. - -NOTE: If `usesTableApi` is set to false, the Elastic application should be installed in {sn}. - -`isOAuth`:: A boolean that corresponds to *Is OAuth* and indicates if the connector uses Basic Authentication or OAuth. -`userIdentifierValue`:: A string that corresponds to *User Identifier*. Required if `isOAuth` is set to `true`. -`clientId`:: A string that corresponds to *Client ID*, used for OAuth authentication. Required if `isOAuth` is set to `true`. -`jwtKeyId`:: A string that corresponds to *JWT Key ID*, used for OAuth authentication. Required if `isOAuth` is set to `true`. - -Secrets defines sensitive information for the connector type. - -`username`:: A string that corresponds to *Username*. Required if `isOAuth` is set to `false`. -`password`:: A string that corresponds to *Password*. Should be stored in the <>. Required if `isOAuth` is set to `false`. -`clientSecret`:: A string that corresponds to *Client Secret*. Required if `isOAuth` is set to `true`. -`privateKey`:: A string that corresponds to *Private Key*. Required if `isOAuth` is set to `true`. -`privateKeyPassword`:: A string that corresponds to *Private Key Password*. - [float] [[servicenow-action-configuration]] === Test connectors diff --git a/docs/management/connectors/pre-configured-connectors.asciidoc b/docs/management/connectors/pre-configured-connectors.asciidoc index 79b4e331fa19a..6e6694e8a839d 100644 --- a/docs/management/connectors/pre-configured-connectors.asciidoc +++ b/docs/management/connectors/pre-configured-connectors.asciidoc @@ -117,6 +117,9 @@ Index names must start with `kibana-alert-history-` to take advantage of the pre * <> * <> * <> +* <> +* <> +* <> * <> * <> * <> @@ -442,6 +445,155 @@ xpack.actions.preconfigured: actionTypeId: .server-log -- +[float] +[[preconfigured-servicenow-itom-configuration]] +==== {sn-itom} connectors + +The following example creates a <> with basic authentication: + +[source,text] +-- +xpack.actions.preconfigured: + my-servicenow-itom: + name: preconfigured-servicenow-connector-type + actionTypeId: .servicenow-itom + config: + apiUrl: https://example.service-now.com/ <1> + secrets: + username: testuser <2> + password: passwordkeystorevalue <3> +-- +<1> The ServiceNow instance URL. +<2> A user name. +<3> A password. NOTE: This value should be stored in the <>. + +The following example creates a {sn-itom} connector with OAuth authentication: + +[source,text] +-- +xpack.actions.preconfigured: + my-servicenow: + name: preconfigured-oauth-servicenow-connector-type + actionTypeId: .servicenow-itom + config: + apiUrl: https://example.service-now.com/ + isOAuth: true <1> + userIdentifierValue: testuser@email.com <2> + clientId: abcdefghijklmnopqrstuvwxyzabcdef <3> + jwtKeyId: fedcbazyxwvutsrqponmlkjihgfedcba <4> + secrets: + clientSecret: secretsecret <5> + privateKey: -----BEGIN RSA PRIVATE KEY-----\nprivatekeyhere\n-----END RSA PRIVATE KEY----- <6> +-- +<1> Specifies whether the connector uses basic or OAuth authentication. +<2> The user identifier. +<3> The client identifier assigned to your OAuth application. +<4> The key identifier assigned to the JWT verifier map of your OAuth application. +<5> The client secret assigned to your OAuth application. +<6> The RSA private key. If it has a password, you must also provide `privateKeyPassword`. + +[float] +[[preconfigured-servicenow-configuration]] +==== {sn-itsm} connectors + +The following example creates a <> with basic authentication: + +[source,text] +-- +xpack.actions.preconfigured: + my-servicenow: + name: preconfigured-servicenow-connector-type + actionTypeId: .servicenow + config: + apiUrl: https://example.service-now.com/ <1> + usesTableApi: false <2> + secrets: + username: testuser <3> + password: passwordkeystorevalue <4> +-- +<1> The ServiceNow instance URL. +<2> Specifies whether the connector uses the Table API or the Import Set API. If `usesTableApi` is `false`, the Elastic application should be installed in {sn}. +<3> The user name. +<4> The password. NOTE: This value should be stored in the <>. + +The following example creates a {sn-itsm} connector with OAuth authentication: + +[source,text] +-- +xpack.actions.preconfigured: + my-servicenow: + name: preconfigured-oauth-servicenow-connector-type + actionTypeId: .servicenow + config: + apiUrl: https://example.service-now.com/ + usesTableApi: false + isOAuth: true <1> + userIdentifierValue: testuser@email.com <2> + clientId: abcdefghijklmnopqrstuvwxyzabcdef <3> + jwtKeyId: fedcbazyxwvutsrqponmlkjihgfedcba <4> + secrets: + clientSecret: secretsecret <5> + privateKey: -----BEGIN RSA PRIVATE KEY-----\nprivatekeyhere\n-----END RSA PRIVATE KEY----- <6> +-- +<1> Specifies whether the connector uses basic or OAuth authentication. +<2> The user identifier. +<3> The client identifier assigned to your OAuth application. +<4> The key ID assigned to the JWT verifier map of your OAuth application. +<5> The client secret assigned to the OAuth application. +<6> The RSA private key. If it has a password, you must also provide `privateKeyPassword`. + +[float] +[[preconfigured-servicenow-sir-configuration]] +==== {sn-sir} connectors + +The following example creates a <> with basic authentication: + +[source,text] +-- +xpack.actions.preconfigured: + my-servicenow-sir: + name: preconfigured-servicenow-connector-type + actionTypeId: .servicenow-sir + config: + apiUrl: https://example.service-now.com/ <1> + usesTableApi: false <2> + secrets: + username: testuser <3> + password: passwordkeystorevalue <4> +-- +<1> The ServiceNow instance URL. +<2> Specifies whether the connector uses the Table API or the Import Set API. If `usesTableApi` is false, the Elastic application should be installed in {sn}. +<3> The user name. +<4> The password. NOTE: This value should be stored in the <>. + +The following example creates a {sn-sir} connector with OAuth authentication: + +[source,text] +-- +xpack.actions.preconfigured: + my-servicenow: + name: preconfigured-oauth-servicenow-connector-type + actionTypeId: .servicenow-sir + config: + apiUrl: https://example.service-now.com/ + usesTableApi: false + isOAuth: true <1> + userIdentifierValue: testuser@email.com <2> + clientId: abcdefghijklmnopqrstuvwxyzabcdef <3> + jwtKeyId: fedcbazyxwvutsrqponmlkjihgfedcba <4> + secrets: + clientSecret: secretsecret <5> + privateKey: -----BEGIN RSA PRIVATE KEY-----\nprivatekeyhere\n-----END RSA PRIVATE KEY----- <6> +-- +<1> Specifies whether the connector uses basic or OAuth authentication. +<2> The user identifier. +<3> The client identifier assigned to the OAuth application. +<4> The key ID assigned to the JWT verifier map of your OAuth application. +<5> The client secret assigned to the OAuth application. +<6> The RSA private key. If it has a password, you must also specify +`privateKeyPassword`. + + [float] [[preconfigured-slack-configuration]] ==== Slack connectors @@ -605,7 +757,6 @@ xpack.actions.preconfigured: NOTE: SSL authentication is not supported in preconfigured webhook connectors. - [float] [[preconfigured-cases-webhook-configuration]] ==== {webhook-cm} connectors @@ -664,7 +815,7 @@ The following example creates an <> wit [source,text] -- xpack.actions.preconfigured: -my-xmatters: + my-xmatters: name: preconfigured-xmatters-connector-type actionTypeId: .xmatters config: diff --git a/docs/settings/alert-action-settings.asciidoc b/docs/settings/alert-action-settings.asciidoc index 76b1ebadc98d1..4312d2825a9d4 100644 --- a/docs/settings/alert-action-settings.asciidoc +++ b/docs/settings/alert-action-settings.asciidoc @@ -272,6 +272,7 @@ A configuration URL that varies by connector: * For a <>, specifies the Jira instance URL. * For an <>, specifies the {opsgenie} URL. For example, `https://api.opsgenie.com` or `https://api.eu.opsgenie.com`. * For a <>, specifies the PagerDuty event URL. Defaults to `https://events.pagerduty.com/v2/enqueue`. +* For a <>, <>, or <> specifies the ServiceNow instance URL. * For a <>, specifies the {swimlane} instance URL. NOTE: If you are using the `xpack.actions.allowedHosts` setting, make sure the hostname in the URL is added to the allowed hosts. @@ -285,7 +286,12 @@ An application ID that varies by connector: -- `xpack.actions.preconfigured..config.clientId`:: -For an <>, specifies a GUID format value that corresponds to the client ID, which is a part of OAuth 2.0 client credentials authentication. +A client identifier that varies by connector: ++ +-- +* For an <>, specifies a GUID format value that corresponds to the client ID, which is a part of OAuth 2.0 client credentials authentication. +* For a <>, <>, or <> specifies the client identifier assigned to the OAuth application. +-- `xpack.actions.preconfigured..config.configUrl`:: For an <> with basic authentication, specifies the request URL for the Elastic Alerts trigger in xMatters. @@ -350,6 +356,12 @@ For an <>, specifies the host name of the ser `xpack.actions.preconfigured..config.index`:: For an <>, specifies the {es} index. +`xpack.actions.preconfigured..config.isOAuth`:: +For a <>, <>, or <>, specifies whether to use basic or OAuth authentication. + +`xpack.actions.preconfigured..config.jwtKeyId`:: +For a <>, <>, or <>, specifies the key ID assigned to the JWT verifier map of your OAuth application. It is required when `xpack.actions.preconfigured..config.isOAuth` is `true`. + `xpack.actions.preconfigured..config.mappings`:: For a <>, specifies field mappings. @@ -427,9 +439,16 @@ A configuration URL that varies by connector: NOTE: If you are using the `xpack.actions.allowedHosts` setting, make sure this hostname is added to the allowed hosts. -- +`xpack.actions.preconfigured..config.userIdentifierValue`:: +For a <>, <>, or <>, specifies the user identifier. It is required when required when `xpack.actions.preconfigured..config.isOAuth` is `true`. + `xpack.actions.preconfigured..config.usesBasic`:: For an <>, specifies whether it uses HTTP basic authentication. Defaults to `true`. +`xpack.actions.preconfigured..config.usesTableApi`:: +For a <> or <>, specifies whether the connector uses the Table API or the Import Set API. +If set to `false`, the Elastic application should be installed in ServiceNow. + `xpack.actions.preconfigured..config.viewIncidentUrl`:: For a <>, specifies a URL string with either the external service ID or external service title Mustache variable to view a case in the external system. @@ -466,6 +485,7 @@ A client secret that varies by connector: + -- * For an <>, specifies the client secret that you generated for your app in the app registration portal. It is required when the email service is `exchange_server`, which uses OAuth 2.0 client credentials authentication. +* For a <>, <>, or <>, specifies the client secret assigned to the OAuth application. It is required when `xpack.actions.preconfigured..config.isOAuth` is `true`. NOTE: The client secret must be URL-encoded. -- @@ -482,10 +502,18 @@ An email address that varies by connector: A password secret that varies by connector: + -- + * For an <>, <>, or <>, specifies a password that is required when `xpack.actions.preconfigured..config.hasAuth` is `true`. +* For a <>, <>, or <>, specifies a password that is required when `xpack.actions.preconfigured..config.isOAuth` is `false`. * For an <>, specifies a password that is required when `xpack.actions.preconfigured..config.usesBasic` is `true`. -- +`xpack.actions.preconfigured..secrets.privateKey`:: +For a <>, <>, or <>, specifies the RSA private key. It is required when `xpack.actions.preconfigured..config.isOAuth` is `true`. + +`xpack.actions.preconfigured..secrets.privateKeyPassword`:: +For a <>, <>, or <>, specifies the password for the RSA private key. + `xpack.actions.preconfigured..secrets.routingKey`:: For a <>, specifies the 32 character PagerDuty Integration Key for an integration on a service, also referred to as the routing key. @@ -523,6 +551,9 @@ For a <>, specifies the Slack webhook URL. NOTE: If you are using the `xpack.actions.allowedHosts` setting, make sure the hostname is added to the allowed hosts. -- +`xpack.actions.preconfigured..secrets.username`:: +For a <>, <>, or <>, specifies a user name that is required when `xpack.actions.preconfigured..config.isOAuth` is `false`. + [float] [[alert-settings]] === Alerting settings diff --git a/fleet_packages.json b/fleet_packages.json index a206560d48d80..123fdad4451cd 100644 --- a/fleet_packages.json +++ b/fleet_packages.json @@ -42,15 +42,13 @@ }, { "name": "profiler_symbolizer", - "version": "8.9.0-preview", - "forceAlignStackVersion": true, - "allowSyncToPrerelease": true + "version": "8.10.0", + "forceAlignStackVersion": true }, { "name": "profiler_collector", - "version": "8.9.1-preview", - "forceAlignStackVersion": true, - "allowSyncToPrerelease": true + "version": "8.10.0", + "forceAlignStackVersion": true }, { "name": "synthetics", @@ -60,4 +58,4 @@ "name": "security_detection_engine", "version": "8.10.1" } -] \ No newline at end of file +] diff --git a/package.json b/package.json index e5c77f4f844f5..bdfa73e8a9426 100644 --- a/package.json +++ b/package.json @@ -983,7 +983,7 @@ "prop-types": "^15.8.1", "proxy-from-env": "1.0.0", "puid": "1.0.7", - "puppeteer": "20.1.0", + "puppeteer": "21.3.6", "query-string": "^6.13.2", "rbush": "^3.0.1", "re-resizable": "^6.9.9", @@ -1564,7 +1564,7 @@ "pixelmatch": "^5.3.0", "playwright": "=1.37.0", "pngjs": "^3.4.0", - "postcss": "^8.4.14", + "postcss": "^8.4.31", "postcss-loader": "^4.2.0", "postcss-prefix-selector": "^1.16.0", "postcss-scss": "^4.0.4", diff --git a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/document_migrator.ts b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/document_migrator.ts index 8ca15093d5827..540f8e39b4671 100644 --- a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/document_migrator.ts +++ b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/document_migrator.ts @@ -31,11 +31,16 @@ export interface DocumentMigrateOptions { * Defaults to `false`. */ allowDowngrade?: boolean; + /** + * If specified, will migrate to the given version instead of the latest known version. + */ + targetTypeVersion?: string; } interface TransformOptions { convertNamespaceTypes?: boolean; allowDowngrade?: boolean; + targetTypeVersion?: string; } interface DocumentMigratorOptions { @@ -149,10 +154,11 @@ export class DocumentMigrator implements VersionedTransformer { */ public migrate( doc: SavedObjectUnsanitizedDoc, - { allowDowngrade = false }: DocumentMigrateOptions = {} + { allowDowngrade = false, targetTypeVersion }: DocumentMigrateOptions = {} ): SavedObjectUnsanitizedDoc { const { document } = this.transform(doc, { allowDowngrade, + targetTypeVersion, }); return document; } @@ -171,15 +177,20 @@ export class DocumentMigrator implements VersionedTransformer { private transform( doc: SavedObjectUnsanitizedDoc, - { convertNamespaceTypes = false, allowDowngrade = false }: TransformOptions = {} + { + convertNamespaceTypes = false, + allowDowngrade = false, + targetTypeVersion, + }: TransformOptions = {} ) { if (!this.migrations) { throw new Error('Migrations are not ready. Make sure prepareMigrations is called first.'); } const typeMigrations = this.migrations[doc.type]; - if (downgradeRequired(doc, typeMigrations?.latestVersion ?? {})) { + if (downgradeRequired(doc, typeMigrations?.latestVersion ?? {}, targetTypeVersion)) { const currentVersion = doc.typeMigrationVersion ?? doc.migrationVersion?.[doc.type]; - const latestVersion = this.migrations[doc.type].latestVersion[TransformType.Migrate]; + const latestVersion = + targetTypeVersion ?? this.migrations[doc.type].latestVersion[TransformType.Migrate]; if (!allowDowngrade) { throw Boom.badData( `Document "${doc.id}" belongs to a more recent version of Kibana [${currentVersion}] when the last known version is [${latestVersion}].` @@ -187,13 +198,16 @@ export class DocumentMigrator implements VersionedTransformer { } return this.transformDown(doc, { targetTypeVersion: latestVersion! }); } else { - return this.transformUp(doc, { convertNamespaceTypes }); + return this.transformUp(doc, { convertNamespaceTypes, targetTypeVersion }); } } private transformUp( doc: SavedObjectUnsanitizedDoc, - { convertNamespaceTypes }: { convertNamespaceTypes: boolean } + { + convertNamespaceTypes, + targetTypeVersion, + }: { convertNamespaceTypes: boolean; targetTypeVersion?: string } ) { if (!this.migrations) { throw new Error('Migrations are not ready. Make sure prepareMigrations is called first.'); @@ -201,6 +215,7 @@ export class DocumentMigrator implements VersionedTransformer { const pipeline = new DocumentUpgradePipeline({ document: doc, + targetTypeVersion, migrations: this.migrations, kibanaVersion: this.options.kibanaVersion, convertNamespaceTypes, diff --git a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/utils.test.ts b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/utils.test.ts index 6734def19d5ce..b66e1ea7c2d71 100644 --- a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/utils.test.ts +++ b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/utils.test.ts @@ -154,4 +154,40 @@ describe('downgradeRequired', () => { expect(downgradeRequired(doc, latestVersions)).toEqual(false); }); + + it('returns true when targetTypeVersion is specified and lower than the document version', () => { + const doc = createDoc({ + typeMigrationVersion: '8.0.0', + }); + const latestVersions = { + [TransformType.Migrate]: '8.5.0', + } as Record; + const targetTypeVersion = '7.9.0'; + + expect(downgradeRequired(doc, latestVersions, targetTypeVersion)).toEqual(true); + }); + + it('returns false when targetTypeVersion is specified and higher than the document version', () => { + const doc = createDoc({ + typeMigrationVersion: '8.0.0', + }); + const latestVersions = { + [TransformType.Migrate]: '7.9.0', + } as Record; + const targetTypeVersion = '8.5.0'; + + expect(downgradeRequired(doc, latestVersions, targetTypeVersion)).toEqual(false); + }); + + it('returns false when targetTypeVersion is specified and the same as the document version', () => { + const doc = createDoc({ + typeMigrationVersion: '8.0.0', + }); + const latestVersions = { + [TransformType.Migrate]: '7.9.0', + } as Record; + const targetTypeVersion = '8.0.0'; + + expect(downgradeRequired(doc, latestVersions, targetTypeVersion)).toEqual(false); + }); }); diff --git a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/utils.ts b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/utils.ts index 2082a0361336c..a111fc663e5da 100644 --- a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/utils.ts +++ b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/utils.ts @@ -92,13 +92,14 @@ export function transformComparator(a: Transform, b: Transform) { */ export function downgradeRequired( doc: SavedObjectUnsanitizedDoc, - latestVersions: Record + latestVersions: Record, + targetTypeVersion?: string ): boolean { const docTypeVersion = doc.typeMigrationVersion ?? doc.migrationVersion?.[doc.type]; - const latestMigrationVersion = maxVersion( - latestVersions[TransformType.Migrate], - latestVersions[TransformType.Convert] - ); + const latestMigrationVersion = + targetTypeVersion ?? + maxVersion(latestVersions[TransformType.Migrate], latestVersions[TransformType.Convert]); + if (!docTypeVersion || !latestMigrationVersion) { return false; } diff --git a/packages/core/test-helpers/core-test-helpers-model-versions/README.md b/packages/core/test-helpers/core-test-helpers-model-versions/README.md index 71aca755a14b6..e9e8ca52d7641 100644 --- a/packages/core/test-helpers/core-test-helpers-model-versions/README.md +++ b/packages/core/test-helpers/core-test-helpers-model-versions/README.md @@ -1,12 +1,44 @@ # @kbn/core-test-helpers-model-versions -Package exposing utilities for model version integration testing. +Package exposing utilities for model version testing: +- unit testing +- integration testing + +## Unit testing + +### Model version test migrator + +The `createModelVersionTestMigrator` helper allows to create a test migrator that +can be used to test model version changes between versions. + +```ts +const mySoType = someSoType(); +const migrator = createModelVersionTestMigrator({ type: mySoType }); + +const obj = createSomeSavedObject(); + +const migrated = migrator.migrate({ + document: obj, + fromVersion: 1, + toVersion: 2, +}); + +expect(migrated.properties).toEqual(myExpectedProperties); +``` + +Please refer to the code documentation for more detailed examples. + +## Integration testing + +### Model version test bed This package exposes a `createModelVersionTestBed` utility which allow simulating a testbed environment where we're in the cohabitation period between two versions, to test the interactions between two model versions of a set of SO types. -### Limitations: +Please refer to the code documentation for more detailed examples. + +*Limitations:* Because the test bed is only creating the parts of Core required to create the two SO repositories, and because we're not loading all plugins (for proper isolation), the integration diff --git a/packages/core/test-helpers/core-test-helpers-model-versions/index.ts b/packages/core/test-helpers/core-test-helpers-model-versions/index.ts index e8a5565f1dd79..9bd91d4e7d592 100644 --- a/packages/core/test-helpers/core-test-helpers-model-versions/index.ts +++ b/packages/core/test-helpers/core-test-helpers-model-versions/index.ts @@ -6,11 +6,14 @@ * Side Public License, v 1. */ -export { createModelVersionTestBed } from './src/test_bed'; - -export type { - ModelVersionTestBed, - ModelVersionTestKit, - ModelVersionTestkitOptions, - SavedObjectTestkitDefinition, -} from './src/types'; +export { + createModelVersionTestBed, + type ModelVersionTestBed, + type ModelVersionTestKit, + type ModelVersionTestkitOptions, + type SavedObjectTestkitDefinition, +} from './src/test_bed'; +export { + createModelVersionTestMigrator, + type ModelVersionTestMigrator, +} from './src/model_version_tester'; diff --git a/packages/core/test-helpers/core-test-helpers-model-versions/src/model_version_tester.test.ts b/packages/core/test-helpers/core-test-helpers-model-versions/src/model_version_tester.test.ts new file mode 100644 index 0000000000000..6f0aa75e2ad74 --- /dev/null +++ b/packages/core/test-helpers/core-test-helpers-model-versions/src/model_version_tester.test.ts @@ -0,0 +1,192 @@ +/* + * 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 { schema } from '@kbn/config-schema'; +import type { SavedObjectsType, SavedObject } from '@kbn/core-saved-objects-server'; +import { createModelVersionTestMigrator } from './model_version_tester'; + +const createObject = (parts: Partial): SavedObject => { + return { + type: 'test-type', + id: 'test-id', + attributes: {}, + references: [], + ...parts, + }; +}; + +describe('modelVersionTester', () => { + const testType: SavedObjectsType = { + name: 'test-type', + hidden: false, + namespaceType: 'single', + mappings: { properties: {} }, + modelVersions: { + 1: { + changes: [], + schemas: { + forwardCompatibility: schema.object( + { + fieldV1: schema.string(), + }, + { unknowns: 'ignore' } + ), + }, + }, + 2: { + changes: [ + { + type: 'data_backfill', + backfillFn: (document) => { + return { + attributes: { + fieldAddedInV2: '2', + }, + }; + }, + }, + ], + schemas: { + forwardCompatibility: schema.object( + { + fieldV1: schema.string(), + fieldAddedInV2: schema.string(), + }, + { unknowns: 'ignore' } + ), + }, + }, + 3: { + changes: [ + { + type: 'data_backfill', + backfillFn: (doc) => { + return { + attributes: { + fieldAddedInV3: '3', + }, + }; + }, + }, + ], + schemas: { + forwardCompatibility: schema.object( + { + fieldV1: schema.string(), + fieldAddedInV2: schema.string(), + fieldAddedInV3: schema.string(), + }, + { unknowns: 'ignore' } + ), + }, + }, + 4: { + changes: [ + { + type: 'unsafe_transform', + transformFn: (doc) => { + doc.attributes = { + ...doc.attributes, + fieldUnsafelyAddedInV4: '4', + }; + + return { document: doc }; + }, + }, + ], + schemas: { + forwardCompatibility: schema.object( + { + fieldV1: schema.string(), + fieldAddedInV2: schema.string(), + fieldAddedInV3: schema.string(), + fieldUnsafelyAddedInV4: schema.string(), + }, + { unknowns: 'ignore' } + ), + }, + }, + }, + }; + + it('upward migrate one version', () => { + const migrator = createModelVersionTestMigrator({ type: testType }); + + const obj = createObject({ + attributes: { + fieldV1: 'v1', + }, + }); + + const migrated = migrator.migrate({ document: obj, fromVersion: 1, toVersion: 2 }); + + expect(migrated.attributes).toEqual({ + fieldV1: 'v1', + fieldAddedInV2: '2', + }); + }); + + it('upward migrate multiple version', () => { + const migrator = createModelVersionTestMigrator({ type: testType }); + + const obj = createObject({ + attributes: { + fieldV1: 'v1', + }, + }); + + const migrated = migrator.migrate({ document: obj, fromVersion: 1, toVersion: 4 }); + + expect(migrated.attributes).toEqual({ + fieldV1: 'v1', + fieldAddedInV2: '2', + fieldAddedInV3: '3', + fieldUnsafelyAddedInV4: '4', + }); + }); + + it('downward migrate one version', () => { + const migrator = createModelVersionTestMigrator({ type: testType }); + + const obj = createObject({ + attributes: { + fieldV1: 'v1', + fieldAddedInV2: '2', + fieldAddedInV3: '3', + fieldUnsafelyAddedInV4: '4', + }, + }); + + const migrated = migrator.migrate({ document: obj, fromVersion: 4, toVersion: 3 }); + + expect(migrated.attributes).toEqual({ + fieldV1: 'v1', + fieldAddedInV2: '2', + fieldAddedInV3: '3', + }); + }); + + it('downward migrate multiple versions', () => { + const migrator = createModelVersionTestMigrator({ type: testType }); + + const obj = createObject({ + attributes: { + fieldV1: 'v1', + fieldAddedInV2: '2', + fieldAddedInV3: '3', + fieldUnsafelyAddedInV4: '4', + }, + }); + + const migrated = migrator.migrate({ document: obj, fromVersion: 4, toVersion: 1 }); + + expect(migrated.attributes).toEqual({ + fieldV1: 'v1', + }); + }); +}); diff --git a/packages/core/test-helpers/core-test-helpers-model-versions/src/model_version_tester.ts b/packages/core/test-helpers/core-test-helpers-model-versions/src/model_version_tester.ts new file mode 100644 index 0000000000000..9aaa2fcde3847 --- /dev/null +++ b/packages/core/test-helpers/core-test-helpers-model-versions/src/model_version_tester.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 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 { loggerMock } from '@kbn/logging-mocks'; +import { getEnvOptions } from '@kbn/config-mocks'; +import { Env } from '@kbn/config'; +import { REPO_ROOT } from '@kbn/repo-info'; +import type { SavedObjectsType, SavedObject } from '@kbn/core-saved-objects-server'; +import { + modelVersionToVirtualVersion, + SavedObjectTypeRegistry, + globalSwitchToModelVersionAt, +} from '@kbn/core-saved-objects-base-server-internal'; +import { DocumentMigrator } from '@kbn/core-saved-objects-migration-server-internal'; + +const env = Env.createDefault(REPO_ROOT, getEnvOptions()); +const currentVersion = env.packageInfo.version; +const lastCoreVersion = '8.8.0'; + +/** + * Options for {@link ModelVersionTestMigrator.migrate} + */ +interface ModelVersionTestMigrateOptions { + /** + * The document to migrate. + */ + document: SavedObject; + /** + * The model version the input document should be considered in. + */ + fromVersion: number; + /** + * The model version the document should be migrated to. + */ + toVersion: number; +} + +/** + * Test utility allowing to test model version changes between versions. + */ +export interface ModelVersionTestMigrator { + /** + * Migrate the document from the provided source to destination model version. + * + * @see {@link ModelVersionTestMigrateOptions} + */ + migrate( + options: ModelVersionTestMigrateOptions + ): SavedObject; +} + +/** + * Create a {@link ModelVersionTestMigrator | test migrator} that can be used + * to test model version changes between versions. + * + * @example + * ```ts + * const mySoType = someSoType(); + * const migrator = createModelVersionTestMigrator({ type: mySoType }); + * + * const obj = createSomeSavedObject(); + * + * const migrated = migrator.migrate({ + * document: obj, + * fromVersion: 1, + * toVersion: 2, + * }); + * + * expect(migrated.properties).toEqual(myExpectedProperties); + * ``` + */ +export const createModelVersionTestMigrator = ({ + type, +}: { + type: SavedObjectsType; +}): ModelVersionTestMigrator => { + const typeRegistry = new SavedObjectTypeRegistry(); + typeRegistry.registerType({ + switchToModelVersionAt: globalSwitchToModelVersionAt, + ...type, + }); + + const logger = loggerMock.create(); + + const migrator = new DocumentMigrator({ + typeRegistry, + log: logger, + kibanaVersion: currentVersion, + }); + migrator.prepareMigrations(); + + return { + migrate: ({ document, fromVersion, toVersion }) => { + const docCopy: SavedObject = { + ...document, + coreMigrationVersion: lastCoreVersion, + typeMigrationVersion: modelVersionToVirtualVersion(fromVersion), + }; + + const migratedDoc = migrator.migrate(docCopy, { + allowDowngrade: true, + targetTypeVersion: modelVersionToVirtualVersion(toVersion), + }); + + return migratedDoc as SavedObject; + }, + }; +}; diff --git a/packages/core/test-helpers/core-test-helpers-model-versions/src/elasticsearch.ts b/packages/core/test-helpers/core-test-helpers-model-versions/src/test_bed/elasticsearch.ts similarity index 100% rename from packages/core/test-helpers/core-test-helpers-model-versions/src/elasticsearch.ts rename to packages/core/test-helpers/core-test-helpers-model-versions/src/test_bed/elasticsearch.ts diff --git a/packages/core/test-helpers/core-test-helpers-model-versions/src/test_bed/index.ts b/packages/core/test-helpers/core-test-helpers-model-versions/src/test_bed/index.ts new file mode 100644 index 0000000000000..b38390e7c38f8 --- /dev/null +++ b/packages/core/test-helpers/core-test-helpers-model-versions/src/test_bed/index.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 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. + */ + +export { createModelVersionTestBed } from './test_bed'; + +export type { + ModelVersionTestBed, + ModelVersionTestKit, + ModelVersionTestkitOptions, + SavedObjectTestkitDefinition, +} from './types'; diff --git a/packages/core/test-helpers/core-test-helpers-model-versions/src/test_bed.ts b/packages/core/test-helpers/core-test-helpers-model-versions/src/test_bed/test_bed.ts similarity index 100% rename from packages/core/test-helpers/core-test-helpers-model-versions/src/test_bed.ts rename to packages/core/test-helpers/core-test-helpers-model-versions/src/test_bed/test_bed.ts diff --git a/packages/core/test-helpers/core-test-helpers-model-versions/src/test_kit.ts b/packages/core/test-helpers/core-test-helpers-model-versions/src/test_bed/test_kit.ts similarity index 100% rename from packages/core/test-helpers/core-test-helpers-model-versions/src/test_kit.ts rename to packages/core/test-helpers/core-test-helpers-model-versions/src/test_bed/test_kit.ts diff --git a/packages/core/test-helpers/core-test-helpers-model-versions/src/type_registry.ts b/packages/core/test-helpers/core-test-helpers-model-versions/src/test_bed/type_registry.ts similarity index 100% rename from packages/core/test-helpers/core-test-helpers-model-versions/src/type_registry.ts rename to packages/core/test-helpers/core-test-helpers-model-versions/src/test_bed/type_registry.ts diff --git a/packages/core/test-helpers/core-test-helpers-model-versions/src/types.ts b/packages/core/test-helpers/core-test-helpers-model-versions/src/test_bed/types.ts similarity index 100% rename from packages/core/test-helpers/core-test-helpers-model-versions/src/types.ts rename to packages/core/test-helpers/core-test-helpers-model-versions/src/test_bed/types.ts diff --git a/packages/core/test-helpers/core-test-helpers-model-versions/tsconfig.json b/packages/core/test-helpers/core-test-helpers-model-versions/tsconfig.json index fe08f1cce0cea..89bf3a0c97d1b 100644 --- a/packages/core/test-helpers/core-test-helpers-model-versions/tsconfig.json +++ b/packages/core/test-helpers/core-test-helpers-model-versions/tsconfig.json @@ -33,5 +33,7 @@ "@kbn/doc-links", "@kbn/core-doc-links-server", "@kbn/core-node-server", + "@kbn/config-schema", + "@kbn/logging-mocks", ] } diff --git a/packages/kbn-doc-links/src/get_doc_links.ts b/packages/kbn-doc-links/src/get_doc_links.ts index ca81f5554ded8..eb0863811ae8c 100644 --- a/packages/kbn-doc-links/src/get_doc_links.ts +++ b/packages/kbn-doc-links/src/get_doc_links.ts @@ -141,6 +141,7 @@ export const getDocLinks = ({ kibanaBranch }: GetDocLinkOptions): DocLinks => { configuration: `${ENTERPRISE_SEARCH_DOCS}configuration.html`, connectors: `${ENTERPRISE_SEARCH_DOCS}connectors.html`, connectorsAzureBlobStorage: `${ENTERPRISE_SEARCH_DOCS}connectors-azure-blob.html`, + connectorsBox: `${ENTERPRISE_SEARCH_DOCS}connectors-box.html`, connectorsClients: `${ENTERPRISE_SEARCH_DOCS}connectors.html#connectors-build`, connectorsConfluence: `${ENTERPRISE_SEARCH_DOCS}connectors-confluence.html`, connectorsDropbox: `${ENTERPRISE_SEARCH_DOCS}connectors-dropbox.html`, @@ -157,6 +158,7 @@ export const getDocLinks = ({ kibanaBranch }: GetDocLinkOptions): DocLinks => { connectorsNetworkDrive: `${ENTERPRISE_SEARCH_DOCS}connectors-network-drive.html`, connectorsOneDrive: `${ENTERPRISE_SEARCH_DOCS}connectors-onedrive.html`, connectorsOracle: `${ENTERPRISE_SEARCH_DOCS}connectors-oracle.html`, + connectorsOutlook: `${ENTERPRISE_SEARCH_DOCS}connectors-outlook.html`, connectorsPostgreSQL: `${ENTERPRISE_SEARCH_DOCS}connectors-postgresql.html`, connectorsS3: `${ENTERPRISE_SEARCH_DOCS}connectors-s3.html`, connectorsSalesforce: `${ENTERPRISE_SEARCH_DOCS}connectors-salesforce.html`, @@ -164,7 +166,9 @@ export const getDocLinks = ({ kibanaBranch }: GetDocLinkOptions): DocLinks => { connectorsSharepoint: `${ENTERPRISE_SEARCH_DOCS}connectors-sharepoint.html`, connectorsSharepointOnline: `${ENTERPRISE_SEARCH_DOCS}connectors-sharepoint-online.html`, connectorsSlack: `${ENTERPRISE_SEARCH_DOCS}connectors-slack.html`, + connectorsTeams: `${ENTERPRISE_SEARCH_DOCS}connectors-teams.html`, connectorsWorkplaceSearch: `${ENTERPRISE_SEARCH_DOCS}workplace-search-connectors.html`, + connectorsZoom: `${ENTERPRISE_SEARCH_DOCS}connectors-zoom.html`, crawlerExtractionRules: `${ENTERPRISE_SEARCH_DOCS}crawler-extraction-rules.html`, crawlerManaging: `${ENTERPRISE_SEARCH_DOCS}crawler-managing.html`, crawlerOverview: `${ENTERPRISE_SEARCH_DOCS}crawler.html`, diff --git a/packages/kbn-doc-links/src/types.ts b/packages/kbn-doc-links/src/types.ts index 39209b0675e9b..8b1a8866b47d4 100644 --- a/packages/kbn-doc-links/src/types.ts +++ b/packages/kbn-doc-links/src/types.ts @@ -122,6 +122,7 @@ export interface DocLinks { readonly configuration: string; readonly connectors: string; readonly connectorsAzureBlobStorage: string; + readonly connectorsBox: string; readonly connectorsClients: string; readonly connectorsConfluence: string; readonly connectorsContentExtraction: string; @@ -138,14 +139,17 @@ export interface DocLinks { readonly connectorsNetworkDrive: string; readonly connectorsOneDrive: string; readonly connectorsOracle: string; + readonly connectorsOutlook: string; readonly connectorsPostgreSQL: string; readonly connectorsS3: string; readonly connectorsSalesforce: string; readonly connectorsServiceNow: string; readonly connectorsSharepoint: string; readonly connectorsSharepointOnline: string; + readonly connectorsTeams: string; readonly connectorsSlack: string; readonly connectorsWorkplaceSearch: string; + readonly connectorsZoom: string; readonly crawlerExtractionRules: string; readonly crawlerManaging: string; readonly crawlerOverview: string; diff --git a/packages/kbn-journeys/services/page/kibana_page.ts b/packages/kbn-journeys/services/page/kibana_page.ts index 974016dda0bc0..8a45faf1a97cc 100644 --- a/packages/kbn-journeys/services/page/kibana_page.ts +++ b/packages/kbn-journeys/services/page/kibana_page.ts @@ -104,6 +104,13 @@ export class KibanaPage { }); } + async waitForChartsSuggestions(count: number) { + await this.retry.waitFor(`rendering of ${count} suggestions is completed`, async () => { + const renderingItems = await this.page.$$('button[data-test-subj="lnsSuggestion"]'); + return renderingItems.length === count; + }); + } + async clearInput(locator: string) { const textArea = this.page.locator(locator); await textArea.clear(); diff --git a/packages/kbn-search-connectors/connectors.ts b/packages/kbn-search-connectors/connectors.ts index 119de69a0c5c0..9673af86e14d9 100644 --- a/packages/kbn-search-connectors/connectors.ts +++ b/packages/kbn-search-connectors/connectors.ts @@ -67,7 +67,7 @@ export const CONNECTOR_DEFINITIONS: ConnectorServerSideDefinition[] = [ { iconPath: 'github.svg', isBeta: true, - isNative: false, + isNative: true, keywords: ['github', 'cloud', 'connector'], name: i18n.translate('searchConnectors.content.nativeConnectors.github.name', { defaultMessage: 'GitHub & GitHub Enterprise Server', @@ -87,7 +87,7 @@ export const CONNECTOR_DEFINITIONS: ConnectorServerSideDefinition[] = [ { iconPath: 'google_drive.svg', isBeta: true, - isNative: false, + isNative: true, keywords: ['google', 'drive', 'connector'], name: i18n.translate('searchConnectors.content.nativeConnectors.googleDrive.name', { defaultMessage: 'Google Drive', @@ -201,7 +201,7 @@ export const CONNECTOR_DEFINITIONS: ConnectorServerSideDefinition[] = [ { iconPath: 'onedrive.svg', isBeta: true, - isNative: false, + isNative: true, keywords: ['network', 'drive', 'file', 'connector'], name: i18n.translate('searchConnectors.content.nativeConnectors.oneDrive.name', { defaultMessage: 'OneDrive', @@ -240,6 +240,50 @@ export const CONNECTOR_DEFINITIONS: ConnectorServerSideDefinition[] = [ }), serviceType: 'sharepoint_server', }, + { + iconPath: 'box.svg', + isBeta: false, + isNative: false, + isTechPreview: true, + keywords: ['cloud', 'box'], + name: i18n.translate('searchConnectors.content.nativeConnectors.box.name', { + defaultMessage: 'Box', + }), + serviceType: 'box', + }, + { + iconPath: 'outlook.svg', + isBeta: false, + isNative: false, + isTechPreview: true, + keywords: ['outlook', 'connector'], + name: i18n.translate('searchConnectors.content.nativeConnectors.outlook.name', { + defaultMessage: 'Outlook', + }), + serviceType: 'outlook', + }, + { + iconPath: 'teams.svg', + isBeta: false, + isNative: false, + isTechPreview: true, + keywords: ['teams', 'connector'], + name: i18n.translate('searchConnectors.content.nativeConnectors.teams.name', { + defaultMessage: 'Teams', + }), + serviceType: 'teams', + }, + { + iconPath: 'zoom.svg', + isBeta: false, + isNative: false, + isTechPreview: true, + keywords: ['zoom', 'connector'], + name: i18n.translate('searchConnectors.content.nativeConnectors.zoom.name', { + defaultMessage: 'Zoom', + }), + serviceType: 'zoom', + }, { iconPath: 'custom.svg', isBeta: true, diff --git a/packages/kbn-search-connectors/types/native_connectors.ts b/packages/kbn-search-connectors/types/native_connectors.ts index 1c4b0bb7e1694..a69036fc7c0e8 100644 --- a/packages/kbn-search-connectors/types/native_connectors.ts +++ b/packages/kbn-search-connectors/types/native_connectors.ts @@ -66,6 +66,21 @@ const USE_TEXT_EXTRACTION_SERVICE_TOOLTIP = i18n.translate( } ); +const ENABLE_DOCUMENT_LEVEL_SECURITY_LABEL = i18n.translate( + 'searchConnectors.nativeConnectors.enableDLS.label', + { + defaultMessage: 'Enable document level security', + } +); + +const ENABLE_DOCUMENT_LEVEL_SECURITY_TOOLTIP = i18n.translate( + 'searchConnectors.nativeConnectors.enableDLS.tooltip', + { + defaultMessage: + 'Document level security ensures identities and permissions set in Google Drive are maintained in Elasticsearch. This enables you to restrict and personalize read-access users and groups have to documents in this index. Access control syncs ensure this metadata is kept up to date in your Elasticsearch documents.', + } +); + const DATABASE_LABEL = i18n.translate('searchConnectors.nativeConnectors.databaseLabel', { defaultMessage: 'Database', }); @@ -576,6 +591,291 @@ export const NATIVE_CONNECTOR_DEFINITIONS: Record "ingest-agent-policies": "f11cc19275f4c3e4ee7c5cd6423b6706b21b989d", "ingest-download-sources": "279a68147e62e4d8858c09ad1cf03bd5551ce58d", "ingest-outputs": "b4e636b13a5d0f89f0400fb67811d4cca4736eb0", - "ingest-package-policies": "8ec637429836f80f1fcc798bcee7c5916eceaed5", + "ingest-package-policies": "a0c9fb48e04dcd638e593db55f1c6451523f90ea", "ingest_manager_settings": "64955ef1b7a9ffa894d4bb9cf863b5602bfa6885", "inventory-view": "b8683c8e352a286b4aca1ab21003115a4800af83", "kql-telemetry": "93c1d16c1a0dfca9c8842062cf5ef8f62ae401ad", diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/bulk.json b/src/plugins/console/server/lib/spec_definitions/json/generated/bulk.json index b2304f6820209..863a6e6189d77 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/bulk.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/bulk.json @@ -16,10 +16,12 @@ "_source_excludes": [], "_source_includes": [], "timeout": [ + "1m", "-1", "0" ], "wait_for_active_shards": [ + "1", "all", "index-setting" ], diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/cluster.get_settings.json b/src/plugins/console/server/lib/spec_definitions/json/generated/cluster.get_settings.json index fece78e78a957..d9dac49f2ae8a 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/cluster.get_settings.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/cluster.get_settings.json @@ -27,7 +27,7 @@ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/cluster-get-settings.html", "availability": { "stack": true, - "serverless": true + "serverless": false } } } diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/cluster.pending_tasks.json b/src/plugins/console/server/lib/spec_definitions/json/generated/cluster.pending_tasks.json index de56bdd39beb9..b6dcc75a38d3b 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/cluster.pending_tasks.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/cluster.pending_tasks.json @@ -21,7 +21,7 @@ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/cluster-pending.html", "availability": { "stack": true, - "serverless": true + "serverless": false } } } diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/cluster.put_settings.json b/src/plugins/console/server/lib/spec_definitions/json/generated/cluster.put_settings.json index 45a00c8c9264b..7a9e5bcf5d313 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/cluster.put_settings.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/cluster.put_settings.json @@ -26,7 +26,7 @@ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/cluster-update-settings.html", "availability": { "stack": true, - "serverless": true + "serverless": false } } } diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/cluster.stats.json b/src/plugins/console/server/lib/spec_definitions/json/generated/cluster.stats.json index afa73eb2e247a..b8ec786416310 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/cluster.stats.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/cluster.stats.json @@ -21,7 +21,7 @@ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/cluster-stats.html", "availability": { "stack": true, - "serverless": true + "serverless": false } } } diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/create.json b/src/plugins/console/server/lib/spec_definitions/json/generated/create.json index 8df30b59b667d..bff286eb029fd 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/create.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/create.json @@ -13,6 +13,7 @@ ], "routing": "", "timeout": [ + "1m", "-1", "0" ], @@ -24,6 +25,7 @@ "force" ], "wait_for_active_shards": [ + "1", "all", "index-setting" ] diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/delete.json b/src/plugins/console/server/lib/spec_definitions/json/generated/delete.json index ba53dcd65a5a9..0267f7191b44a 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/delete.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/delete.json @@ -14,6 +14,7 @@ ], "routing": "", "timeout": [ + "1m", "-1", "0" ], @@ -25,6 +26,7 @@ "force" ], "wait_for_active_shards": [ + "1", "all", "index-setting" ] diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/delete_by_query.json b/src/plugins/console/server/lib/spec_definitions/json/generated/delete_by_query.json index 071071d4255b0..f4b0048b7c72a 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/delete_by_query.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/delete_by_query.json @@ -38,7 +38,9 @@ "-1", "0" ], - "scroll_size": "", + "scroll_size": [ + "1000" + ], "search_timeout": [ "-1", "0" @@ -48,17 +50,20 @@ "dfs_query_then_fetch" ], "slices": [ + "1", "auto" ], "sort": "", "stats": "", "terminate_after": "", "timeout": [ + "1m", "-1", "0" ], "version": "__flag__", "wait_for_active_shards": [ + "1", "all", "index-setting" ], diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/delete_script.json b/src/plugins/console/server/lib/spec_definitions/json/generated/delete_script.json index 838b35c4049e2..cf71108e29add 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/delete_script.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/delete_script.json @@ -6,10 +6,12 @@ "human": "__flag__", "pretty": "__flag__", "master_timeout": [ + "30s", "-1", "0" ], "timeout": [ + "30s", "-1", "0" ] diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/eql.delete.json b/src/plugins/console/server/lib/spec_definitions/json/generated/eql.delete.json index 03f4d173141f4..1273848309b56 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/eql.delete.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/eql.delete.json @@ -15,7 +15,7 @@ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/current/eql-search-api.html", "availability": { "stack": true, - "serverless": false + "serverless": true } } } diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/eql.get.json b/src/plugins/console/server/lib/spec_definitions/json/generated/eql.get.json index 5fac8429f3660..78e7f48069cb8 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/eql.get.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/eql.get.json @@ -23,7 +23,7 @@ "documentation": " https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/get-async-eql-search-api.html", "availability": { "stack": true, - "serverless": false + "serverless": true } } } diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/eql.get_status.json b/src/plugins/console/server/lib/spec_definitions/json/generated/eql.get_status.json index b814a29e51d4e..74683e246654a 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/eql.get_status.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/eql.get_status.json @@ -15,7 +15,7 @@ "documentation": " https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/get-async-eql-status-api.html", "availability": { "stack": true, - "serverless": false + "serverless": true } } } diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/eql.search.json b/src/plugins/console/server/lib/spec_definitions/json/generated/eql.search.json index cddd1ed088a8a..77cd26f4989ab 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/eql.search.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/eql.search.json @@ -35,7 +35,7 @@ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/current/eql-search-api.html", "availability": { "stack": true, - "serverless": false + "serverless": true } } } diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/explain.json b/src/plugins/console/server/lib/spec_definitions/json/generated/explain.json index 759d8231be36f..a45b7b8174227 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/explain.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/explain.json @@ -31,7 +31,7 @@ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/search-explain.html", "availability": { "stack": true, - "serverless": false + "serverless": true } } } diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/graph.explore.json b/src/plugins/console/server/lib/spec_definitions/json/generated/graph.explore.json index 681bb8d255d1a..a35cac6b59b49 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/graph.explore.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/graph.explore.json @@ -18,7 +18,7 @@ "patterns": [ "{index}/_graph/explore" ], - "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/current/graph-explore-api.html", + "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/graph-explore-api.html", "availability": { "stack": true, "serverless": true diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/index.json b/src/plugins/console/server/lib/spec_definitions/json/generated/index.json index 6773c25aa6b2a..a39a0aa7c2162 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/index.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/index.json @@ -19,6 +19,7 @@ ], "routing": "", "timeout": [ + "1m", "-1", "0" ], @@ -30,6 +31,7 @@ "force" ], "wait_for_active_shards": [ + "1", "all", "index-setting" ], diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.add_block.json b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.add_block.json index c7b876c42b21c..07c9950394e5d 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.add_block.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.add_block.json @@ -40,7 +40,7 @@ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/index-modules-blocks.html", "availability": { "stack": true, - "serverless": false + "serverless": true } } } diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.analyze.json b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.analyze.json index 305e8e21aa773..c9d523a77873b 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.analyze.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.analyze.json @@ -14,7 +14,7 @@ "_analyze", "{index}/_analyze" ], - "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-analyze.html", + "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/indices-analyze.html", "availability": { "stack": true, "serverless": true diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.clone.json b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.clone.json index 0c1203ec256bc..4a80c853cb679 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.clone.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.clone.json @@ -6,14 +6,17 @@ "human": "__flag__", "pretty": "__flag__", "master_timeout": [ + "30s", "-1", "0" ], "timeout": [ + "30s", "-1", "0" ], "wait_for_active_shards": [ + "1", "all", "index-setting" ] diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.close.json b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.close.json index 9b06b6ce40b91..24d156e636b37 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.close.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.close.json @@ -15,14 +15,17 @@ ], "ignore_unavailable": "__flag__", "master_timeout": [ + "30s", "-1", "0" ], "timeout": [ + "30s", "-1", "0" ], "wait_for_active_shards": [ + "1", "all", "index-setting" ] @@ -33,7 +36,7 @@ "patterns": [ "{index}/_close" ], - "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-open-close.html", + "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/indices-close.html", "availability": { "stack": true, "serverless": false diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.create.json b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.create.json index f5925f9311e93..e8f1699416f25 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.create.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.create.json @@ -6,14 +6,17 @@ "human": "__flag__", "pretty": "__flag__", "master_timeout": [ + "30s", "-1", "0" ], "timeout": [ + "30s", "-1", "0" ], "wait_for_active_shards": [ + "1", "all", "index-setting" ] @@ -24,7 +27,7 @@ "patterns": [ "{index}" ], - "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-create-index.html", + "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/indices-create-index.html", "availability": { "stack": true, "serverless": true diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.delete.json b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.delete.json index 0d8f7dc354559..845b9e60b861e 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.delete.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.delete.json @@ -15,10 +15,12 @@ ], "ignore_unavailable": "__flag__", "master_timeout": [ + "30s", "-1", "0" ], "timeout": [ + "30s", "-1", "0" ] diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.delete_alias.json b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.delete_alias.json index dfc26fc89d24c..fdff5139506fd 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.delete_alias.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.delete_alias.json @@ -6,10 +6,12 @@ "human": "__flag__", "pretty": "__flag__", "master_timeout": [ + "30s", "-1", "0" ], "timeout": [ + "30s", "-1", "0" ] diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.delete_data_lifecycle.json b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.delete_data_lifecycle.json index a73fb1be20dc7..73b6ce6d5916b 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.delete_data_lifecycle.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.delete_data_lifecycle.json @@ -27,7 +27,7 @@ "patterns": [ "_data_stream/{name}/_lifecycle" ], - "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/dlm-delete-lifecycle.html", + "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams-delete-lifecycle.html", "availability": { "stack": true, "serverless": true diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.delete_template.json b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.delete_template.json index 3d51659ef7600..99e379a038b9f 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.delete_template.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.delete_template.json @@ -6,10 +6,12 @@ "human": "__flag__", "pretty": "__flag__", "master_timeout": [ + "30s", "-1", "0" ], "timeout": [ + "30s", "-1", "0" ] @@ -23,7 +25,7 @@ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html", "availability": { "stack": true, - "serverless": true + "serverless": false } } } diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.disk_usage.json b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.disk_usage.json index 49eadca2f194f..8b83b0f64dd51 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.disk_usage.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.disk_usage.json @@ -23,10 +23,10 @@ "patterns": [ "{index}/_disk_usage" ], - "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-disk-usage.html", + "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/indices-disk-usage.html", "availability": { "stack": true, - "serverless": true + "serverless": false } } } diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.downsample.json b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.downsample.json index a51b465f964d0..c3752ef1c2ce0 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.downsample.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.downsample.json @@ -12,7 +12,7 @@ "patterns": [ "{index}/_downsample/{target_index}" ], - "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/current/xpack-rollup.html", + "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/indices-downsample-data-stream.html", "availability": { "stack": true, "serverless": false diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.exists_template.json b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.exists_template.json index adc9c7a6ddb98..ecfbd25d0b60d 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.exists_template.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.exists_template.json @@ -21,7 +21,7 @@ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html", "availability": { "stack": true, - "serverless": true + "serverless": false } } } diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.explain_data_lifecycle.json b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.explain_data_lifecycle.json index 0869814bc94d9..ea5cbbc1d74ce 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.explain_data_lifecycle.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.explain_data_lifecycle.json @@ -17,7 +17,7 @@ "patterns": [ "{index}/_lifecycle/explain" ], - "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/current/dlm-explain-lifecycle.html", + "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/current/data-streams-explain-lifecycle.html", "availability": { "stack": true, "serverless": true diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.flush.json b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.flush.json index d021851331d8e..263eae37c6435 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.flush.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.flush.json @@ -25,7 +25,7 @@ "_flush", "{index}/_flush" ], - "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-flush.html", + "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/indices-flush.html", "availability": { "stack": true, "serverless": false diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.get_data_lifecycle.json b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.get_data_lifecycle.json index f774ae29c048d..a76f0214dba7c 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.get_data_lifecycle.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.get_data_lifecycle.json @@ -20,7 +20,7 @@ "patterns": [ "_data_stream/{name}/_lifecycle" ], - "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/dlm-get-lifecycle.html", + "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams-get-lifecycle.html", "availability": { "stack": true, "serverless": true diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.get_mapping.json b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.get_mapping.json index 561368173d057..46c2425b1ceb8 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.get_mapping.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.get_mapping.json @@ -16,6 +16,7 @@ "ignore_unavailable": "__flag__", "local": "__flag__", "master_timeout": [ + "30s", "-1", "0" ] diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.get_template.json b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.get_template.json index 2926f21a08dce..9556552da5c9c 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.get_template.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.get_template.json @@ -8,6 +8,7 @@ "flat_settings": "__flag__", "local": "__flag__", "master_timeout": [ + "30s", "-1", "0" ] @@ -22,7 +23,7 @@ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html", "availability": { "stack": true, - "serverless": true + "serverless": false } } } diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.open.json b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.open.json index 0132181928b5b..0125fc7f4d729 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.open.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.open.json @@ -15,14 +15,17 @@ ], "ignore_unavailable": "__flag__", "master_timeout": [ + "30s", "-1", "0" ], "timeout": [ + "30s", "-1", "0" ], "wait_for_active_shards": [ + "1", "all", "index-setting" ] diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.put_alias.json b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.put_alias.json index 741d0cee9fd0d..fe8044e5f0834 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.put_alias.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.put_alias.json @@ -6,10 +6,12 @@ "human": "__flag__", "pretty": "__flag__", "master_timeout": [ + "30s", "-1", "0" ], "timeout": [ + "30s", "-1", "0" ] diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.put_data_lifecycle.json b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.put_data_lifecycle.json index 03536defd4bbe..9812babcf68f5 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.put_data_lifecycle.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.put_data_lifecycle.json @@ -13,10 +13,12 @@ "none" ], "master_timeout": [ + "30s", "-1", "0" ], "timeout": [ + "30s", "-1", "0" ] @@ -27,7 +29,7 @@ "patterns": [ "_data_stream/{name}/_lifecycle" ], - "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/dlm-put-lifecycle.html", + "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams-put-lifecycle.html", "availability": { "stack": true, "serverless": true diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.put_mapping.json b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.put_mapping.json index 381559aff4624..f9c661b283e3c 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.put_mapping.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.put_mapping.json @@ -15,10 +15,12 @@ ], "ignore_unavailable": "__flag__", "master_timeout": [ + "30s", "-1", "0" ], "timeout": [ + "30s", "-1", "0" ], diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.put_template.json b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.put_template.json index e2583840f4199..79d1b509f3a87 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.put_template.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.put_template.json @@ -13,6 +13,7 @@ "0" ], "timeout": [ + "30s", "-1", "0" ], diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.refresh.json b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.refresh.json index b4dfd2893db22..8e631a9a4b567 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.refresh.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.refresh.json @@ -26,7 +26,7 @@ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-refresh.html", "availability": { "stack": true, - "serverless": false + "serverless": true } } } diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.rollover.json b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.rollover.json index 5c29c31eb2b7b..a5db7cf65966b 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.rollover.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.rollover.json @@ -7,14 +7,17 @@ "pretty": "__flag__", "dry_run": "__flag__", "master_timeout": [ + "30s", "-1", "0" ], "timeout": [ + "30s", "-1", "0" ], "wait_for_active_shards": [ + "1", "all", "index-setting" ] @@ -26,7 +29,7 @@ "{alias}/_rollover", "{alias}/_rollover/{new_index}" ], - "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-rollover-index.html", + "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/indices-rollover-index.html", "availability": { "stack": true, "serverless": true diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.shrink.json b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.shrink.json index d1d98561a2f7b..82b5854dd4642 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.shrink.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.shrink.json @@ -6,14 +6,17 @@ "human": "__flag__", "pretty": "__flag__", "master_timeout": [ + "30s", "-1", "0" ], "timeout": [ + "30s", "-1", "0" ], "wait_for_active_shards": [ + "1", "all", "index-setting" ] @@ -25,7 +28,7 @@ "patterns": [ "{index}/_shrink/{target}" ], - "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-shrink-index.html", + "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/indices-shrink-index.html", "availability": { "stack": true, "serverless": false diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.split.json b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.split.json index 156fef6d2ea7c..bd9ebf0b1097c 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.split.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.split.json @@ -6,14 +6,17 @@ "human": "__flag__", "pretty": "__flag__", "master_timeout": [ + "30s", "-1", "0" ], "timeout": [ + "30s", "-1", "0" ], "wait_for_active_shards": [ + "1", "all", "index-setting" ] @@ -25,7 +28,7 @@ "patterns": [ "{index}/_split/{target}" ], - "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-split-index.html", + "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/indices-split-index.html", "availability": { "stack": true, "serverless": false diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.unfreeze.json b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.unfreeze.json index a55bbaadfadf0..9b9789d3d9772 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.unfreeze.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.unfreeze.json @@ -15,14 +15,18 @@ ], "ignore_unavailable": "__flag__", "master_timeout": [ + "30s", "-1", "0" ], "timeout": [ + "30s", "-1", "0" ], - "wait_for_active_shards": "" + "wait_for_active_shards": [ + "1" + ] }, "methods": [ "POST" diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.update_aliases.json b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.update_aliases.json index dfd0b52dafa32..5044968a4f593 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/indices.update_aliases.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/indices.update_aliases.json @@ -6,10 +6,12 @@ "human": "__flag__", "pretty": "__flag__", "master_timeout": [ + "30s", "-1", "0" ], "timeout": [ + "30s", "-1", "0" ] diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/ingest.delete_pipeline.json b/src/plugins/console/server/lib/spec_definitions/json/generated/ingest.delete_pipeline.json index 676940ce9ed05..c92d22288dd54 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/ingest.delete_pipeline.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/ingest.delete_pipeline.json @@ -6,10 +6,12 @@ "human": "__flag__", "pretty": "__flag__", "master_timeout": [ + "30s", "-1", "0" ], "timeout": [ + "30s", "-1", "0" ] diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/ingest.geo_ip_stats.json b/src/plugins/console/server/lib/spec_definitions/json/generated/ingest.geo_ip_stats.json index 071ce1b5e89fd..1cd9132dd7d15 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/ingest.geo_ip_stats.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/ingest.geo_ip_stats.json @@ -12,7 +12,7 @@ "patterns": [ "_ingest/geoip/stats" ], - "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/geoip-stats-api.html", + "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/geoip-processor.html", "availability": { "stack": true, "serverless": false diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/ingest.processor_grok.json b/src/plugins/console/server/lib/spec_definitions/json/generated/ingest.processor_grok.json index 0d1c76a56eef6..6cc97c5525167 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/ingest.processor_grok.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/ingest.processor_grok.json @@ -12,7 +12,7 @@ "patterns": [ "_ingest/processor/grok" ], - "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/grok-processor.html#grok-processor-rest-get", + "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/grok-processor.html", "availability": { "stack": true, "serverless": true diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/ingest.put_pipeline.json b/src/plugins/console/server/lib/spec_definitions/json/generated/ingest.put_pipeline.json index 71083c1bc7dd0..364011946fa2e 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/ingest.put_pipeline.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/ingest.put_pipeline.json @@ -23,7 +23,7 @@ "patterns": [ "_ingest/pipeline/{id}" ], - "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/put-pipeline-api.html", + "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/ingest.html", "availability": { "stack": true, "serverless": true diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/license.get.json b/src/plugins/console/server/lib/spec_definitions/json/generated/license.get.json index 194c4fa7158e1..f28214188e79a 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/license.get.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/license.get.json @@ -17,7 +17,7 @@ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/get-license.html", "availability": { "stack": true, - "serverless": false + "serverless": true } } } diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/nodes.reload_secure_settings.json b/src/plugins/console/server/lib/spec_definitions/json/generated/nodes.reload_secure_settings.json index 8605011a1afde..bd7c158796de7 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/nodes.reload_secure_settings.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/nodes.reload_secure_settings.json @@ -6,6 +6,7 @@ "human": "__flag__", "pretty": "__flag__", "timeout": [ + "30s", "-1", "0" ] diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/nodes.usage.json b/src/plugins/console/server/lib/spec_definitions/json/generated/nodes.usage.json index 2c2c870c650bd..f84b1d2d48a9c 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/nodes.usage.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/nodes.usage.json @@ -6,6 +6,7 @@ "human": "__flag__", "pretty": "__flag__", "timeout": [ + "30s", "-1", "0" ] diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/put_script.json b/src/plugins/console/server/lib/spec_definitions/json/generated/put_script.json index 529be68f97c10..85cd77924ee9d 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/put_script.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/put_script.json @@ -6,10 +6,12 @@ "human": "__flag__", "pretty": "__flag__", "master_timeout": [ + "30s", "-1", "0" ], "timeout": [ + "30s", "-1", "0" ] diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/reindex.json b/src/plugins/console/server/lib/spec_definitions/json/generated/reindex.json index edb56b62dcd6d..423a8fda844c8 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/reindex.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/reindex.json @@ -6,19 +6,24 @@ "human": "__flag__", "pretty": "__flag__", "refresh": "__flag__", - "requests_per_second": "", + "requests_per_second": [ + "-1" + ], "scroll": [ "-1", "0" ], "slices": [ + "1", "auto" ], "timeout": [ + "1m", "-1", "0" ], "wait_for_active_shards": [ + "1", "all", "index-setting" ], @@ -34,7 +39,7 @@ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-reindex.html", "availability": { "stack": true, - "serverless": false + "serverless": true } } } diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/rollup.stop_job.json b/src/plugins/console/server/lib/spec_definitions/json/generated/rollup.stop_job.json index d67ebe0768c82..ecdb9372b22e8 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/rollup.stop_job.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/rollup.stop_job.json @@ -6,6 +6,7 @@ "human": "__flag__", "pretty": "__flag__", "timeout": [ + "30s", "-1", "0" ], diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/search_mvt.json b/src/plugins/console/server/lib/spec_definitions/json/generated/search_mvt.json index be7602ac954c2..6691874a137be 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/search_mvt.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/search_mvt.json @@ -36,7 +36,7 @@ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/search-vector-tile-api.html", "availability": { "stack": true, - "serverless": false + "serverless": true } } } diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/security.clear_api_key_cache.json b/src/plugins/console/server/lib/spec_definitions/json/generated/security.clear_api_key_cache.json index 73dfb64627879..04cc162e377f4 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/security.clear_api_key_cache.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/security.clear_api_key_cache.json @@ -15,7 +15,7 @@ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-clear-api-key-cache.html", "availability": { "stack": true, - "serverless": true + "serverless": false } } } diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/security.has_privileges.json b/src/plugins/console/server/lib/spec_definitions/json/generated/security.has_privileges.json index 2e051b7ffc9f9..9c678e7bc5c8e 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/security.has_privileges.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/security.has_privileges.json @@ -17,7 +17,7 @@ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-has-privileges.html", "availability": { "stack": true, - "serverless": false + "serverless": true } } } diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/sql.clear_cursor.json b/src/plugins/console/server/lib/spec_definitions/json/generated/sql.clear_cursor.json index 707b10430d4c6..f66c1e55c31e4 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/sql.clear_cursor.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/sql.clear_cursor.json @@ -15,7 +15,7 @@ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/current/clear-sql-cursor-api.html", "availability": { "stack": true, - "serverless": false + "serverless": true } } } diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/sql.delete_async.json b/src/plugins/console/server/lib/spec_definitions/json/generated/sql.delete_async.json index 06635b945741a..184d2f2a16445 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/sql.delete_async.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/sql.delete_async.json @@ -15,7 +15,7 @@ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/delete-async-sql-search-api.html", "availability": { "stack": true, - "serverless": false + "serverless": true } } } diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/sql.get_async.json b/src/plugins/console/server/lib/spec_definitions/json/generated/sql.get_async.json index dc88affe81c36..4a24f3f2b1563 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/sql.get_async.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/sql.get_async.json @@ -27,7 +27,7 @@ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/get-async-sql-search-api.html", "availability": { "stack": true, - "serverless": false + "serverless": true } } } diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/sql.get_async_status.json b/src/plugins/console/server/lib/spec_definitions/json/generated/sql.get_async_status.json index 4b6020f23a18b..7d4a714a1e77d 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/sql.get_async_status.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/sql.get_async_status.json @@ -15,7 +15,7 @@ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/get-async-sql-search-status-api.html", "availability": { "stack": true, - "serverless": false + "serverless": true } } } diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/sql.query.json b/src/plugins/console/server/lib/spec_definitions/json/generated/sql.query.json index 3ac18e2b81035..565281f08349a 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/sql.query.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/sql.query.json @@ -17,7 +17,7 @@ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/current/sql-search-api.html", "availability": { "stack": true, - "serverless": false + "serverless": true } } } diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/sql.translate.json b/src/plugins/console/server/lib/spec_definitions/json/generated/sql.translate.json index a75471e3c7450..fda9def4a1b5b 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/sql.translate.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/sql.translate.json @@ -16,7 +16,7 @@ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/current/sql-translate-api.html", "availability": { "stack": true, - "serverless": false + "serverless": true } } } diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/synonyms.delete.json b/src/plugins/console/server/lib/spec_definitions/json/generated/synonyms.delete_synonym.json similarity index 87% rename from src/plugins/console/server/lib/spec_definitions/json/generated/synonyms.delete.json rename to src/plugins/console/server/lib/spec_definitions/json/generated/synonyms.delete_synonym.json index e931ac69c473e..9c2b72d8d3a6c 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/synonyms.delete.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/synonyms.delete_synonym.json @@ -1,5 +1,5 @@ { - "synonyms.delete": { + "synonyms.delete_synonym": { "url_params": { "error_trace": "__flag__", "filter_path": [], @@ -10,7 +10,7 @@ "DELETE" ], "patterns": [ - "_synonyms/{synonyms_set}" + "_synonyms/{id}" ], "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/delete-synonyms-set.html", "availability": { diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/synonym_rule.delete.json b/src/plugins/console/server/lib/spec_definitions/json/generated/synonyms.delete_synonym_rule.json similarity index 84% rename from src/plugins/console/server/lib/spec_definitions/json/generated/synonym_rule.delete.json rename to src/plugins/console/server/lib/spec_definitions/json/generated/synonyms.delete_synonym_rule.json index a4f50d9ea08fc..fc5b150337d89 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/synonym_rule.delete.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/synonyms.delete_synonym_rule.json @@ -1,5 +1,5 @@ { - "synonym_rule.delete": { + "synonyms.delete_synonym_rule": { "url_params": { "error_trace": "__flag__", "filter_path": [], @@ -10,7 +10,7 @@ "DELETE" ], "patterns": [ - "_synonyms/{synonyms_set}/{synonym_rule}" + "_synonyms/{set_id}/{rule_id}" ], "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/delete-synonym-rule.html", "availability": { diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/synonyms.get.json b/src/plugins/console/server/lib/spec_definitions/json/generated/synonyms.get_synonym.json similarity index 82% rename from src/plugins/console/server/lib/spec_definitions/json/generated/synonyms.get.json rename to src/plugins/console/server/lib/spec_definitions/json/generated/synonyms.get_synonym.json index 1fabfd8216929..b180ea625639a 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/synonyms.get.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/synonyms.get_synonym.json @@ -1,18 +1,20 @@ { - "synonyms.get": { + "synonyms.get_synonym": { "url_params": { "error_trace": "__flag__", "filter_path": [], "human": "__flag__", "pretty": "__flag__", "from": "", - "size": "" + "size": [ + "10" + ] }, "methods": [ "GET" ], "patterns": [ - "_synonyms/{synonyms_set}" + "_synonyms/{id}" ], "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/get-synonyms-set.html", "availability": { diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/synonym_rule.get.json b/src/plugins/console/server/lib/spec_definitions/json/generated/synonyms.get_synonym_rule.json similarity index 84% rename from src/plugins/console/server/lib/spec_definitions/json/generated/synonym_rule.get.json rename to src/plugins/console/server/lib/spec_definitions/json/generated/synonyms.get_synonym_rule.json index 01f52d0dff733..b6c0a7c2e523c 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/synonym_rule.get.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/synonyms.get_synonym_rule.json @@ -1,5 +1,5 @@ { - "synonym_rule.get": { + "synonyms.get_synonym_rule": { "url_params": { "error_trace": "__flag__", "filter_path": [], @@ -10,7 +10,7 @@ "GET" ], "patterns": [ - "_synonyms/{synonyms_set}/{synonym_rule}" + "_synonyms/{set_id}/{rule_id}" ], "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/get-synonym-rule.html", "availability": { diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/synonyms_sets.get.json b/src/plugins/console/server/lib/spec_definitions/json/generated/synonyms.get_synonyms_sets.json similarity index 85% rename from src/plugins/console/server/lib/spec_definitions/json/generated/synonyms_sets.get.json rename to src/plugins/console/server/lib/spec_definitions/json/generated/synonyms.get_synonyms_sets.json index 9addedfbb6f26..894bf417ef41b 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/synonyms_sets.get.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/synonyms.get_synonyms_sets.json @@ -1,12 +1,14 @@ { - "synonyms_sets.get": { + "synonyms.get_synonyms_sets": { "url_params": { "error_trace": "__flag__", "filter_path": [], "human": "__flag__", "pretty": "__flag__", "from": "", - "size": "" + "size": [ + "10" + ] }, "methods": [ "GET" diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/synonyms.put.json b/src/plugins/console/server/lib/spec_definitions/json/generated/synonyms.put_synonym.json similarity index 88% rename from src/plugins/console/server/lib/spec_definitions/json/generated/synonyms.put.json rename to src/plugins/console/server/lib/spec_definitions/json/generated/synonyms.put_synonym.json index 8184d8f17a851..519e2df3a7d69 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/synonyms.put.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/synonyms.put_synonym.json @@ -1,5 +1,5 @@ { - "synonyms.put": { + "synonyms.put_synonym": { "url_params": { "error_trace": "__flag__", "filter_path": [], @@ -10,7 +10,7 @@ "PUT" ], "patterns": [ - "_synonyms/{synonyms_set}" + "_synonyms/{id}" ], "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/put-synonyms-set.html", "availability": { diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/synonym_rule.put.json b/src/plugins/console/server/lib/spec_definitions/json/generated/synonyms.put_synonym_rule.json similarity index 84% rename from src/plugins/console/server/lib/spec_definitions/json/generated/synonym_rule.put.json rename to src/plugins/console/server/lib/spec_definitions/json/generated/synonyms.put_synonym_rule.json index 4bfe6687e8b46..96dec0f4b5d40 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/synonym_rule.put.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/synonyms.put_synonym_rule.json @@ -1,5 +1,5 @@ { - "synonym_rule.put": { + "synonyms.put_synonym_rule": { "url_params": { "error_trace": "__flag__", "filter_path": [], @@ -10,7 +10,7 @@ "PUT" ], "patterns": [ - "_synonyms/{synonyms_set}/{synonym_rule}" + "_synonyms/{set_id}/{rule_id}" ], "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/put-synonym-rule.html", "availability": { diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/tasks.get.json b/src/plugins/console/server/lib/spec_definitions/json/generated/tasks.get.json index 466409ec48b60..d695d1285c7c7 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/tasks.get.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/tasks.get.json @@ -6,6 +6,7 @@ "human": "__flag__", "pretty": "__flag__", "timeout": [ + "30s", "-1", "0" ], @@ -20,7 +21,7 @@ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/tasks.html", "availability": { "stack": true, - "serverless": false + "serverless": true } } } diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/update_by_query.json b/src/plugins/console/server/lib/spec_definitions/json/generated/update_by_query.json index 5063d21f55eb5..787d36fdb2ec6 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/update_by_query.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/update_by_query.json @@ -32,13 +32,17 @@ "preference": "", "refresh": "__flag__", "request_cache": "__flag__", - "requests_per_second": "", + "requests_per_second": [ + "-1" + ], "routing": "", "scroll": [ "-1", "0" ], - "scroll_size": "", + "scroll_size": [ + "1000" + ], "search_timeout": [ "-1", "0" @@ -48,18 +52,21 @@ "dfs_query_then_fetch" ], "slices": [ + "1", "auto" ], "sort": "", "stats": "", "terminate_after": "", "timeout": [ + "1m", "-1", "0" ], "version": "__flag__", "version_type": "__flag__", "wait_for_active_shards": [ + "1", "all", "index-setting" ], diff --git a/src/plugins/console/server/lib/spec_definitions/json/generated/update_by_query_rethrottle.json b/src/plugins/console/server/lib/spec_definitions/json/generated/update_by_query_rethrottle.json index 722bd66411346..38a90b22ffa66 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/generated/update_by_query_rethrottle.json +++ b/src/plugins/console/server/lib/spec_definitions/json/generated/update_by_query_rethrottle.json @@ -5,7 +5,9 @@ "filter_path": [], "human": "__flag__", "pretty": "__flag__", - "requests_per_second": "" + "requests_per_second": [ + "-1" + ] }, "methods": [ "POST" diff --git a/src/plugins/console/server/lib/spec_definitions/json/overrides/synonyms.put.json b/src/plugins/console/server/lib/spec_definitions/json/overrides/synonyms.put_synonym.json similarity index 83% rename from src/plugins/console/server/lib/spec_definitions/json/overrides/synonyms.put.json rename to src/plugins/console/server/lib/spec_definitions/json/overrides/synonyms.put_synonym.json index 0f1b931c21736..d3f559626df90 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/overrides/synonyms.put.json +++ b/src/plugins/console/server/lib/spec_definitions/json/overrides/synonyms.put_synonym.json @@ -1,5 +1,5 @@ { - "synonyms.put": { + "synonyms.put_synonym": { "data_autocomplete_rules": { "synonyms_set": [ { diff --git a/src/plugins/console/server/lib/spec_definitions/json/overrides/synonym_rule.put.json b/src/plugins/console/server/lib/spec_definitions/json/overrides/synonyms.put_synonym_rule.json similarity index 67% rename from src/plugins/console/server/lib/spec_definitions/json/overrides/synonym_rule.put.json rename to src/plugins/console/server/lib/spec_definitions/json/overrides/synonyms.put_synonym_rule.json index 1f02d1b495f7a..049382db1f9e1 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/overrides/synonym_rule.put.json +++ b/src/plugins/console/server/lib/spec_definitions/json/overrides/synonyms.put_synonym_rule.json @@ -1,5 +1,5 @@ { - "synonym_rule.put": { + "synonyms.put_synonym_rule": { "data_autocomplete_rules": { "synonyms": "" } diff --git a/src/plugins/controls/common/control_group/control_group_persistence.ts b/src/plugins/controls/common/control_group/control_group_persistence.ts index cf108b1a4304a..be01e0ca555b8 100644 --- a/src/plugins/controls/common/control_group/control_group_persistence.ts +++ b/src/plugins/controls/common/control_group/control_group_persistence.ts @@ -6,21 +6,23 @@ * Side Public License, v 1. */ -import { SerializableRecord } from '@kbn/utility-types'; import deepEqual from 'fast-deep-equal'; +import { SerializableRecord } from '@kbn/utility-types'; +import { v4 } from 'uuid'; import { pick, omit, xor } from 'lodash'; -import { ControlGroupInput } from '..'; + import { DEFAULT_CONTROL_GROW, DEFAULT_CONTROL_STYLE, DEFAULT_CONTROL_WIDTH, } from './control_group_constants'; -import { PersistableControlGroupInput, RawControlGroupAttributes } from './types'; import { ControlPanelDiffSystems, genericControlPanelDiffSystem, } from './control_group_panel_diff_system'; +import { ControlGroupInput } from '..'; +import { ControlsPanels, PersistableControlGroupInput, RawControlGroupAttributes } from './types'; const safeJSONParse = (jsonString?: string): OutType | undefined => { if (!jsonString && typeof jsonString !== 'string') return; @@ -103,6 +105,20 @@ export const controlGroupInputToRawControlGroupAttributes = ( }; }; +export const generateNewControlIds = (controlGroupInput?: PersistableControlGroupInput) => { + if (!controlGroupInput?.panels) return; + + const newPanelsMap: ControlsPanels = {}; + for (const panel of Object.values(controlGroupInput.panels)) { + const newId = v4(); + newPanelsMap[newId] = { + ...panel, + explicitInput: { ...panel.explicitInput, id: newId }, + }; + } + return { ...controlGroupInput, panels: newPanelsMap }; +}; + export const rawControlGroupAttributesToControlGroupInput = ( rawControlGroupAttributes: RawControlGroupAttributes ): PersistableControlGroupInput | undefined => { diff --git a/src/plugins/controls/common/index.ts b/src/plugins/controls/common/index.ts index de492adb399f3..b1d4488a876ea 100644 --- a/src/plugins/controls/common/index.ts +++ b/src/plugins/controls/common/index.ts @@ -26,6 +26,7 @@ export { serializableToRawControlGroupAttributes, persistableControlGroupInputIsEqual, getDefaultControlGroupInput, + generateNewControlIds, } from './control_group/control_group_persistence'; export { diff --git a/src/plugins/controls/common/options_list/types.ts b/src/plugins/controls/common/options_list/types.ts index 5ab0523712171..460f7df080a88 100644 --- a/src/plugins/controls/common/options_list/types.ts +++ b/src/plugins/controls/common/options_list/types.ts @@ -84,7 +84,7 @@ export interface OptionsListRequestBody { allowExpensiveQueries: boolean; sort?: OptionsListSortingType; filters?: Array<{ bool: BoolQuery }>; - selectedOptions?: string[]; + selectedOptions?: Array; runPastTimeout?: boolean; searchString?: string; fieldSpec?: FieldSpec; diff --git a/src/plugins/controls/public/hooks/use_field_formatter.ts b/src/plugins/controls/public/hooks/use_field_formatter.ts new file mode 100644 index 0000000000000..5485be0bb1b23 --- /dev/null +++ b/src/plugins/controls/public/hooks/use_field_formatter.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 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 { FieldSpec } from '@kbn/data-views-plugin/common'; +import { useEffect, useState } from 'react'; +import { pluginServices } from '../services'; + +export const useFieldFormatter = ({ + dataViewId, + fieldSpec, +}: { + dataViewId?: string; + fieldSpec?: FieldSpec; +}) => { + const { + dataViews: { get: getDataViewById }, + } = pluginServices.getServices(); + const [fieldFormatter, setFieldFormatter] = useState(() => (toFormat: string) => toFormat); + + /** + * derive field formatter from fieldSpec and dataViewId + */ + useEffect(() => { + (async () => { + if (!dataViewId || !fieldSpec) return; + // dataViews are cached, and should always be available without having to hit ES. + const dataView = await getDataViewById(dataViewId); + setFieldFormatter( + () => + dataView?.getFormatterForField(fieldSpec).getConverterFor('text') ?? + ((toFormat: string) => toFormat) + ); + })(); + }, [fieldSpec, dataViewId, getDataViewById]); + + return fieldFormatter; +}; diff --git a/src/plugins/controls/public/options_list/components/options_list.scss b/src/plugins/controls/public/options_list/components/options_list.scss index b8e43b84ad17c..ff4014d0cc41d 100644 --- a/src/plugins/controls/public/options_list/components/options_list.scss +++ b/src/plugins/controls/public/options_list/components/options_list.scss @@ -15,15 +15,18 @@ font-weight: $euiFontWeightRegular; } + .optionsList__filterValid { + font-weight: $euiFontWeightMedium; + } + .optionsList__filterInvalid { color: $euiTextSubduedColor; text-decoration: line-through; - margin-left: $euiSizeS; font-weight: $euiFontWeightRegular; } .optionsList__negateLabel { - font-weight: bold; + font-weight: $euiFontWeightSemiBold; font-size: $euiSizeM; color: $euiColorDanger; } @@ -34,6 +37,7 @@ width: 0; } } + } .optionsList--sortPopover { @@ -42,24 +46,22 @@ .optionsList__existsFilter { font-style: italic; + font-weight: $euiFontWeightMedium; } .optionsList__popoverOverride { @include euiBottomShadowMedium; filter: none; // overwrite the default popover shadow - transform: translateY(-$euiSizeS) translateX(0); // prevent "slide in" animation on open/close } .optionsList__popover { .optionsList__actions { - padding: $euiSizeS; - padding-bottom: 0; + padding: 0 $euiSizeS; border-bottom: $euiBorderThin; border-color: darken($euiColorLightestShade, 2%); - .optionsList__sortButton { - box-shadow: inset 0 0 0 $euiBorderWidthThin $euiFormBorderColor; - background-color: $euiFormBackgroundColor; + .optionsList__searchRow { + padding-top: $euiSizeS } .optionsList__actionsRow { diff --git a/src/plugins/controls/public/options_list/components/options_list_control.tsx b/src/plugins/controls/public/options_list/components/options_list_control.tsx index dbd30a89e7e78..11683266ad2f0 100644 --- a/src/plugins/controls/public/options_list/components/options_list_control.tsx +++ b/src/plugins/controls/public/options_list/components/options_list_control.tsx @@ -21,6 +21,7 @@ import { useOptionsList } from '../embeddable/options_list_embeddable'; import './options_list.scss'; import { ControlError } from '../../control_group/component/control_error_component'; import { MIN_POPOVER_WIDTH } from '../../constants'; +import { useFieldFormatter } from '../../hooks/use_field_formatter'; export const OptionsListControl = ({ typeaheadSubject, @@ -35,6 +36,7 @@ export const OptionsListControl = ({ const isPopoverOpen = optionsList.select((state) => state.componentState.popoverOpen); const validSelections = optionsList.select((state) => state.componentState.validSelections); const invalidSelections = optionsList.select((state) => state.componentState.invalidSelections); + const fieldSpec = optionsList.select((state) => state.componentState.field); const id = optionsList.select((state) => state.explicitInput.id); const exclude = optionsList.select((state) => state.explicitInput.exclude); @@ -46,6 +48,8 @@ export const OptionsListControl = ({ const selectedOptions = optionsList.select((state) => state.explicitInput.selectedOptions); const loading = optionsList.select((state) => state.output.loading); + const dataViewId = optionsList.select((state) => state.output.dataViewId); + const fieldFormatter = useFieldFormatter({ dataViewId, fieldSpec }); useEffect(() => { return () => { @@ -87,6 +91,8 @@ export const OptionsListControl = ({ ); const { hasSelections, selectionDisplayNode, validSelectionsCount } = useMemo(() => { + const delimiter = OptionsListStrings.control.getSeparator(fieldSpec?.type); + return { hasSelections: !isEmpty(validSelections) || !isEmpty(invalidSelections), validSelectionsCount: validSelections?.length, @@ -107,20 +113,30 @@ export const OptionsListControl = ({ ) : ( <> - {validSelections && ( - {validSelections.join(OptionsListStrings.control.getSeparator())} - )} - {invalidSelections && ( + {validSelections?.length ? ( + + {validSelections.map((value) => fieldFormatter(value)).join(delimiter)} + + ) : null} + {validSelections?.length && invalidSelections?.length ? delimiter : null} + {invalidSelections?.length ? ( - {invalidSelections.join(OptionsListStrings.control.getSeparator())} + {invalidSelections.map((value) => fieldFormatter(value)).join(delimiter)} - )} + ) : null} )} ), }; - }, [exclude, existsSelected, validSelections, invalidSelections]); + }, [ + exclude, + existsSelected, + validSelections, + invalidSelections, + fieldFormatter, + fieldSpec?.type, + ]); const button = ( ) : ( allowExpensiveQueries && - fieldType !== 'ip' && ( + !['ip', 'date'].includes(fieldType) && ( { expect(optionsText).toEqual(['By document count. Checked option.']); }); + test('when sorting suggestions, show "By date" sorting option for date fields', async () => { + const popover = await mountComponent({ + componentState: { field: { name: 'Test date field', type: 'date' } as FieldSpec }, + }); + const sortButton = findTestSubject(popover, 'optionsListControl__sortingOptionsButton'); + sortButton.simulate('click'); + + const sortingOptionsDiv = findTestSubject(popover, 'optionsListControl__sortingOptions'); + const optionsText = sortingOptionsDiv.find('ul li').map((element) => element.text().trim()); + expect(optionsText).toEqual(['By document count. Checked option.', 'By date']); + }); + test('ensure warning icon does not show up when testAllowExpensiveQueries = true/undefined', async () => { const popover = await mountComponent({ componentState: { field: { name: 'Test keyword field', type: 'keyword' } as FieldSpec }, diff --git a/src/plugins/controls/public/options_list/components/options_list_popover_action_bar.tsx b/src/plugins/controls/public/options_list/components/options_list_popover_action_bar.tsx index d8fbbe786b760..8e890350f4d40 100644 --- a/src/plugins/controls/public/options_list/components/options_list_popover_action_bar.tsx +++ b/src/plugins/controls/public/options_list/components/options_list_popover_action_bar.tsx @@ -39,6 +39,7 @@ export const OptionsListPopoverActionBar = ({ const totalCardinality = optionsList.select((state) => state.componentState.totalCardinality) ?? 0; const searchString = optionsList.select((state) => state.componentState.searchString); + const fieldSpec = optionsList.select((state) => state.componentState.field); const invalidSelections = optionsList.select((state) => state.componentState.invalidSelections); const hideSort = optionsList.select((state) => state.explicitInput.hideSort); @@ -50,29 +51,22 @@ export const OptionsListPopoverActionBar = ({ return (
- - - - updateSearchString(event.target.value)} - value={searchString.value} - data-test-subj="optionsList-control-search-input" - placeholder={OptionsListStrings.popover.searchPlaceholder[ - searchTechnique ?? OPTIONS_LIST_DEFAULT_SEARCH_TECHNIQUE - ].getPlaceholderText()} - /> - - {!hideSort && ( - - - - )} - - + {fieldSpec?.type !== 'date' && ( + + updateSearchString(event.target.value)} + value={searchString.value} + data-test-subj="optionsList-control-search-input" + placeholder={OptionsListStrings.popover.searchPlaceholder[ + searchTechnique ?? OPTIONS_LIST_DEFAULT_SEARCH_TECHNIQUE + ].getPlaceholderText()} + /> + + )} + {!hideSort && ( + + + + )} diff --git a/src/plugins/controls/public/options_list/components/options_list_popover_invalid_selections.tsx b/src/plugins/controls/public/options_list/components/options_list_popover_invalid_selections.tsx index 980f861e00b26..2b6dbdc3b9507 100644 --- a/src/plugins/controls/public/options_list/components/options_list_popover_invalid_selections.tsx +++ b/src/plugins/controls/public/options_list/components/options_list_popover_invalid_selections.tsx @@ -18,20 +18,26 @@ import { import { OptionsListStrings } from './options_list_strings'; import { useOptionsList } from '../embeddable/options_list_embeddable'; +import { useFieldFormatter } from '../../hooks/use_field_formatter'; export const OptionsListPopoverInvalidSelections = () => { const optionsList = useOptionsList(); - const invalidSelections = optionsList.select((state) => state.componentState.invalidSelections); const fieldName = optionsList.select((state) => state.explicitInput.fieldName); + const invalidSelections = optionsList.select((state) => state.componentState.invalidSelections); + const fieldSpec = optionsList.select((state) => state.componentState.field); + + const dataViewId = optionsList.select((state) => state.output.dataViewId); + const fieldFormatter = useFieldFormatter({ dataViewId, fieldSpec }); + const [selectableOptions, setSelectableOptions] = useState([]); // will be set in following useEffect useEffect(() => { /* This useEffect makes selectableOptions responsive to unchecking options */ const options: EuiSelectableOption[] = (invalidSelections ?? []).map((key) => { return { key, - label: key, + label: fieldFormatter(key), checked: 'on', className: 'optionsList__selectionInvalid', 'data-test-subj': `optionsList-control-ignored-selection-${key}`, @@ -46,7 +52,7 @@ export const OptionsListPopoverInvalidSelections = () => { }; }); setSelectableOptions(options); - }, [invalidSelections]); + }, [fieldFormatter, invalidSelections]); return ( <> diff --git a/src/plugins/controls/public/options_list/components/options_list_popover_sorting_button.tsx b/src/plugins/controls/public/options_list/components/options_list_popover_sorting_button.tsx index 878238646c44d..d1cad0bb97c81 100644 --- a/src/plugins/controls/public/options_list/components/options_list_popover_sorting_button.tsx +++ b/src/plugins/controls/public/options_list/components/options_list_popover_sorting_button.tsx @@ -12,7 +12,6 @@ import { EuiButtonGroupOptionProps, EuiSelectableOption, EuiPopoverTitle, - EuiButtonEmpty, EuiButtonGroup, EuiSelectable, EuiFlexGroup, @@ -20,6 +19,7 @@ import { EuiPopover, Direction, EuiToolTip, + EuiButtonIcon, } from '@elastic/eui'; import { @@ -70,7 +70,7 @@ export const OptionsListPopoverSortingButton = ({ data: { sortBy: key }, checked: key === sort.by ? 'on' : undefined, 'data-test-subj': `optionsList__sortBy_${key}`, - label: OptionsListStrings.editorAndPopover.sortBy[key].getSortByLabel(), + label: OptionsListStrings.editorAndPopover.sortBy[key].getSortByLabel(field?.type), } as SortByItem; }); }); @@ -85,32 +85,34 @@ export const OptionsListPopoverSortingButton = ({ }, [optionsList.dispatch] ); + const SortButton = () => ( - setIsSortingPopoverOpen(!isSortingPopoverOpen)} aria-label={OptionsListStrings.popover.getSortPopoverDescription()} - > - {OptionsListStrings.popover.getSortPopoverTitle()} - + /> ); return ( - - - ) : ( + - ) + } panelPaddingSize="none" isOpen={isSortingPopoverOpen} diff --git a/src/plugins/controls/public/options_list/components/options_list_popover_suggestions.tsx b/src/plugins/controls/public/options_list/components/options_list_popover_suggestions.tsx index 0e0b2089cee1c..a7efc79825b86 100644 --- a/src/plugins/controls/public/options_list/components/options_list_popover_suggestions.tsx +++ b/src/plugins/controls/public/options_list/components/options_list_popover_suggestions.tsx @@ -17,6 +17,7 @@ import { OptionsListStrings } from './options_list_strings'; import { useOptionsList } from '../embeddable/options_list_embeddable'; import { OptionsListPopoverEmptyMessage } from './options_list_popover_empty_message'; import { OptionsListPopoverSuggestionBadge } from './options_list_popover_suggestion_badge'; +import { useFieldFormatter } from '../../hooks/use_field_formatter'; interface OptionsListPopoverSuggestionsProps { showOnlySelected: boolean; @@ -33,6 +34,7 @@ export const OptionsListPopoverSuggestions = ({ const availableOptions = optionsList.select((state) => state.componentState.availableOptions); const totalCardinality = optionsList.select((state) => state.componentState.totalCardinality); const invalidSelections = optionsList.select((state) => state.componentState.invalidSelections); + const fieldSpec = optionsList.select((state) => state.componentState.field); const sort = optionsList.select((state) => state.explicitInput.sort); const fieldName = optionsList.select((state) => state.explicitInput.fieldName); @@ -41,10 +43,13 @@ export const OptionsListPopoverSuggestions = ({ const existsSelected = optionsList.select((state) => state.explicitInput.existsSelected); const selectedOptions = optionsList.select((state) => state.explicitInput.selectedOptions); + const dataViewId = optionsList.select((state) => state.output.dataViewId); const isLoading = optionsList.select((state) => state.output.loading) ?? false; const listRef = useRef(null); + const fieldFormatter = useFieldFormatter({ dataViewId, fieldSpec }); + const canLoadMoreSuggestions = useMemo( () => totalCardinality @@ -84,9 +89,10 @@ export const OptionsListPopoverSuggestions = ({ // this means that `showOnlySelected` is true, and doc count is not known when this is the case suggestion = { value: suggestion }; } + return { key: suggestion.value, - label: suggestion.value, + label: fieldFormatter(suggestion.value) ?? suggestion.value, checked: selectedOptionsSet?.has(suggestion.value) ? 'on' : undefined, 'data-test-subj': `optionsList-control-selection-${suggestion.value}`, className: @@ -124,6 +130,7 @@ export const OptionsListPopoverSuggestions = ({ invalidSelectionsSet, existsSelectableOption, canLoadMoreSuggestions, + fieldFormatter, ]); const loadMoreOptions = useCallback(() => { diff --git a/src/plugins/controls/public/options_list/components/options_list_strings.ts b/src/plugins/controls/public/options_list/components/options_list_strings.ts index 436326e5350c5..2977bb9f1cbb3 100644 --- a/src/plugins/controls/public/options_list/components/options_list_strings.ts +++ b/src/plugins/controls/public/options_list/components/options_list_strings.ts @@ -10,10 +10,16 @@ import { i18n } from '@kbn/i18n'; export const OptionsListStrings = { control: { - getSeparator: () => - i18n.translate('controls.optionsList.control.separator', { + getSeparator: (type?: string) => { + if (type === 'date') { + return i18n.translate('controls.optionsList.control.dateSeparator', { + defaultMessage: '; ', + }); + } + return i18n.translate('controls.optionsList.control.separator', { defaultMessage: ', ', - }), + }); + }, getPlaceholder: () => i18n.translate('controls.optionsList.control.placeholder', { defaultMessage: 'Any', @@ -228,10 +234,14 @@ export const OptionsListStrings = { }), }, _key: { - getSortByLabel: () => - i18n.translate('controls.optionsList.popover.sortBy.alphabetical', { - defaultMessage: 'Alphabetically', - }), + getSortByLabel: (type?: string) => + type === 'date' + ? i18n.translate('controls.optionsList.popover.sortBy.date', { + defaultMessage: 'By date', + }) + : i18n.translate('controls.optionsList.popover.sortBy.alphabetical', { + defaultMessage: 'Alphabetically', + }), }, }, sortOrder: { diff --git a/src/plugins/controls/public/options_list/embeddable/options_list_embeddable.tsx b/src/plugins/controls/public/options_list/embeddable/options_list_embeddable.tsx index 5431cdffc560a..b28142474ba2d 100644 --- a/src/plugins/controls/public/options_list/embeddable/options_list_embeddable.tsx +++ b/src/plugins/controls/public/options_list/embeddable/options_list_embeddable.tsx @@ -332,6 +332,7 @@ export class OptionsListEmbeddable } const { suggestions, invalidSelections, totalCardinality } = response; + if ( (!selectedOptions && !existsSelected) || isEmpty(invalidSelections) || @@ -347,7 +348,7 @@ export class OptionsListEmbeddable const valid: string[] = []; const invalid: string[] = []; for (const selectedOption of selectedOptions ?? []) { - if (invalidSelections?.includes(selectedOption)) invalid.push(selectedOption); + if (invalidSelections?.includes(String(selectedOption))) invalid.push(selectedOption); else valid.push(selectedOption); } this.dispatch.updateQueryResults({ @@ -397,6 +398,7 @@ export class OptionsListEmbeddable newFilter = buildPhrasesFilter(field, validSelections, dataView); } } + if (!newFilter) return []; newFilter.meta.key = field?.name; diff --git a/src/plugins/controls/public/options_list/embeddable/options_list_embeddable_factory.tsx b/src/plugins/controls/public/options_list/embeddable/options_list_embeddable_factory.tsx index cb2b1b4a82de3..a3fecb46442a1 100644 --- a/src/plugins/controls/public/options_list/embeddable/options_list_embeddable_factory.tsx +++ b/src/plugins/controls/public/options_list/embeddable/options_list_embeddable_factory.tsx @@ -61,9 +61,8 @@ export class OptionsListEmbeddableFactory public isFieldCompatible = (field: DataViewField) => { return ( !field.spec.scripted && - ((field.aggregatable && field.type === 'string') || - field.type === 'boolean' || - field.type === 'ip') + field.aggregatable && + ['string', 'boolean', 'ip', 'date'].includes(field.type) ); }; diff --git a/src/plugins/controls/public/range_slider/components/range_slider.scss b/src/plugins/controls/public/range_slider/components/range_slider.scss index d3242a7869963..606208bf25631 100644 --- a/src/plugins/controls/public/range_slider/components/range_slider.scss +++ b/src/plugins/controls/public/range_slider/components/range_slider.scss @@ -14,7 +14,7 @@ } .rangeSliderAnchor__fieldNumber { - font-weight: $euiFontWeightBold; + font-weight: $euiFontWeightMedium; box-shadow: none; text-align: center; background-color: transparent; diff --git a/src/plugins/controls/public/range_slider/components/range_slider_control.tsx b/src/plugins/controls/public/range_slider/components/range_slider_control.tsx index 267b9220da54b..3bde458c5e076 100644 --- a/src/plugins/controls/public/range_slider/components/range_slider_control.tsx +++ b/src/plugins/controls/public/range_slider/components/range_slider_control.tsx @@ -11,19 +11,16 @@ import React, { FC, useState, useMemo, useEffect, useCallback, useRef } from 're import { EuiRangeTick, EuiDualRange, EuiDualRangeProps } from '@elastic/eui'; -import { pluginServices } from '../../services'; import { RangeValue } from '../../../common/range_slider/types'; import { useRangeSlider } from '../embeddable/range_slider_embeddable'; import { ControlError } from '../../control_group/component/control_error_component'; import './range_slider.scss'; import { MIN_POPOVER_WIDTH } from '../../constants'; +import { useFieldFormatter } from '../../hooks/use_field_formatter'; export const RangeSliderControl: FC = () => { /** Controls Services Context */ - const { - dataViews: { get: getDataViewById }, - } = pluginServices.getServices(); const rangeSlider = useRangeSlider(); const rangeSliderRef = useRef(null); @@ -44,8 +41,8 @@ export const RangeSliderControl: FC = () => { // React component state const [displayedValue, setDisplayedValue] = useState(value ?? ['', '']); - const [fieldFormatter, setFieldFormatter] = useState(() => (toFormat: string) => toFormat); + const fieldFormatter = useFieldFormatter({ dataViewId, fieldSpec }); const debouncedOnChange = useMemo( () => debounce((newRange: RangeValue) => { @@ -54,22 +51,6 @@ export const RangeSliderControl: FC = () => { [rangeSlider.dispatch] ); - /** - * derive field formatter from fieldSpec and dataViewId - */ - useEffect(() => { - (async () => { - if (!dataViewId || !fieldSpec) return; - // dataViews are cached, and should always be available without having to hit ES. - const dataView = await getDataViewById(dataViewId); - setFieldFormatter( - () => - dataView?.getFormatterForField(fieldSpec).getConverterFor('text') ?? - ((toFormat: string) => toFormat) - ); - })(); - }, [fieldSpec, dataViewId, getDataViewById]); - /** * This will recalculate the displayed min/max of the range slider to allow for selections smaller * than the `min` and larger than the `max` diff --git a/src/plugins/controls/public/time_slider/components/index.scss b/src/plugins/controls/public/time_slider/components/index.scss index 66fb486c970e8..c23667f314f05 100644 --- a/src/plugins/controls/public/time_slider/components/index.scss +++ b/src/plugins/controls/public/time_slider/components/index.scss @@ -28,7 +28,7 @@ } .timeSlider__anchorText { - font-weight: $euiFontWeightBold; + font-weight: $euiFontWeightMedium; } .timeSlider__anchorText--default { diff --git a/src/plugins/controls/public/time_slider/components/time_slider_popover_button.tsx b/src/plugins/controls/public/time_slider/components/time_slider_popover_button.tsx index 0036dcdf758e4..bb2597716d559 100644 --- a/src/plugins/controls/public/time_slider/components/time_slider_popover_button.tsx +++ b/src/plugins/controls/public/time_slider/components/time_slider_popover_button.tsx @@ -24,7 +24,7 @@ export function TimeSliderPopoverButton(props: Props) { onClick={props.onClick} data-test-subj="timeSlider-popoverToggleButton" > - + {props.formatDate(props.from)}   →   {props.formatDate(props.to)} diff --git a/src/plugins/controls/server/options_list/options_list_cheap_suggestion_queries.test.ts b/src/plugins/controls/server/options_list/options_list_cheap_suggestion_queries.test.ts index 997927a5bbad2..d364027a55d9b 100644 --- a/src/plugins/controls/server/options_list/options_list_cheap_suggestion_queries.test.ts +++ b/src/plugins/controls/server/options_list/options_list_cheap_suggestion_queries.test.ts @@ -92,31 +92,6 @@ describe('options list cheap queries', () => { }); }); - test('creates boolean aggregation for boolean field', () => { - const optionsListRequestBodyMock: OptionsListRequestBody = { - size: 10, - fieldName: 'coolean', - allowExpensiveQueries: false, - sort: { by: '_key', direction: 'desc' }, - fieldSpec: { type: 'boolean' } as unknown as FieldSpec, - }; - const suggestionAggBuilder = getCheapSuggestionAggregationBuilder(optionsListRequestBodyMock); - expect(suggestionAggBuilder.buildAggregation(optionsListRequestBodyMock)) - .toMatchInlineSnapshot(` - Object { - "suggestions": Object { - "terms": Object { - "field": "coolean", - "order": Object { - "_key": "desc", - }, - "shard_size": 10, - }, - }, - } - `); - }); - test('creates nested aggregation for nested field', () => { const optionsListRequestBodyMock: OptionsListRequestBody = { size: 10, @@ -151,6 +126,64 @@ describe('options list cheap queries', () => { `); }); + describe('boolean field', () => { + test('creates boolean aggregation for boolean field', () => { + const optionsListRequestBodyMock: OptionsListRequestBody = { + size: 10, + fieldName: 'coolean', + allowExpensiveQueries: false, + sort: { by: '_key', direction: 'desc' }, + fieldSpec: { type: 'boolean' } as unknown as FieldSpec, + }; + const suggestionAggBuilder = getCheapSuggestionAggregationBuilder( + optionsListRequestBodyMock + ); + expect(suggestionAggBuilder.buildAggregation(optionsListRequestBodyMock)) + .toMatchInlineSnapshot(` + Object { + "suggestions": Object { + "terms": Object { + "field": "coolean", + "order": Object { + "_key": "desc", + }, + "shard_size": 10, + }, + }, + } + `); + }); + }); + + describe('date field field', () => { + test('creates date aggregation for date field', () => { + const optionsListRequestBodyMock: OptionsListRequestBody = { + size: 10, + fieldName: '@timestamp', + allowExpensiveQueries: false, + sort: { by: '_key', direction: 'desc' }, + fieldSpec: { type: 'date' } as unknown as FieldSpec, + }; + const suggestionAggBuilder = getCheapSuggestionAggregationBuilder( + optionsListRequestBodyMock + ); + expect(suggestionAggBuilder.buildAggregation(optionsListRequestBodyMock)) + .toMatchInlineSnapshot(` + Object { + "suggestions": Object { + "terms": Object { + "field": "@timestamp", + "order": Object { + "_key": "desc", + }, + "shard_size": 10, + }, + }, + } + `); + }); + }); + describe('IP field', () => { test('without a search string, creates IP range aggregation with default range', () => { const optionsListRequestBodyMock: OptionsListRequestBody = { @@ -513,99 +546,145 @@ describe('options list cheap queries', () => { ] `); }); - }); - test('parses mixed IPv4 and IPv6 result', () => { - const optionsListRequestBodyMock: OptionsListRequestBody = { - size: 10, - fieldName: 'clientip', - allowExpensiveQueries: false, - fieldSpec: { type: 'ip' } as unknown as FieldSpec, - }; - const suggestionAggBuilder = getCheapSuggestionAggregationBuilder(optionsListRequestBodyMock); - rawSearchResponseMock.aggregations = { - suggestions: { - buckets: { - ipv4: { - from: '0.0.0.0', - to: '255.255.255.255', - filteredSuggestions: { - buckets: [ - { doc_count: 8, key: '21.35.91.62' }, - { doc_count: 8, key: '21.35.91.61' }, - { doc_count: 11, key: '111.52.174.2' }, - { doc_count: 1, key: '56.73.58.63' }, - { doc_count: 9, key: '23.216.241.120' }, - { doc_count: 10, key: '196.162.13.39' }, - { doc_count: 7, key: '203.88.33.151' }, - ], + test('parses mixed IPv4 and IPv6 result', () => { + const optionsListRequestBodyMock: OptionsListRequestBody = { + size: 10, + fieldName: 'clientip', + allowExpensiveQueries: false, + fieldSpec: { type: 'ip' } as unknown as FieldSpec, + }; + const suggestionAggBuilder = getCheapSuggestionAggregationBuilder(optionsListRequestBodyMock); + rawSearchResponseMock.aggregations = { + suggestions: { + buckets: { + ipv4: { + from: '0.0.0.0', + to: '255.255.255.255', + filteredSuggestions: { + buckets: [ + { doc_count: 8, key: '21.35.91.62' }, + { doc_count: 8, key: '21.35.91.61' }, + { doc_count: 11, key: '111.52.174.2' }, + { doc_count: 1, key: '56.73.58.63' }, + { doc_count: 9, key: '23.216.241.120' }, + { doc_count: 10, key: '196.162.13.39' }, + { doc_count: 7, key: '203.88.33.151' }, + ], + }, }, - }, - ipv6: { - from: '::', - to: 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff', - filteredSuggestions: { - buckets: [ - { doc_count: 12, key: '52:ae76:5947:5e2a:551:fe6a:712a:c72' }, - { doc_count: 1, key: 'fd:4aa0:c27c:b04:997f:2de1:51b4:8418' }, - { doc_count: 9, key: '28c7:c9a4:42fd:16b0:4de5:e41e:28d9:9172' }, - { doc_count: 6, key: '1ec:aa98:b0a6:d07c:590:18a0:8a33:2eb8' }, - { doc_count: 10, key: 'f7a9:640b:b5a0:1219:8d75:ed94:3c3e:2e63' }, - ], + ipv6: { + from: '::', + to: 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff', + filteredSuggestions: { + buckets: [ + { doc_count: 12, key: '52:ae76:5947:5e2a:551:fe6a:712a:c72' }, + { doc_count: 1, key: 'fd:4aa0:c27c:b04:997f:2de1:51b4:8418' }, + { doc_count: 9, key: '28c7:c9a4:42fd:16b0:4de5:e41e:28d9:9172' }, + { doc_count: 6, key: '1ec:aa98:b0a6:d07c:590:18a0:8a33:2eb8' }, + { doc_count: 10, key: 'f7a9:640b:b5a0:1219:8d75:ed94:3c3e:2e63' }, + ], + }, }, }, }, - }, - }; + }; - const parsed = suggestionAggBuilder.parse( - rawSearchResponseMock, - optionsListRequestBodyMock - ).suggestions; + const parsed = suggestionAggBuilder.parse( + rawSearchResponseMock, + optionsListRequestBodyMock + ).suggestions; - expect(parsed).toMatchInlineSnapshot(` - Array [ - Object { - "docCount": 12, - "value": "52:ae76:5947:5e2a:551:fe6a:712a:c72", - }, - Object { - "docCount": 11, - "value": "111.52.174.2", - }, - Object { - "docCount": 10, - "value": "196.162.13.39", - }, - Object { - "docCount": 10, - "value": "f7a9:640b:b5a0:1219:8d75:ed94:3c3e:2e63", - }, - Object { - "docCount": 9, - "value": "23.216.241.120", - }, - Object { - "docCount": 9, - "value": "28c7:c9a4:42fd:16b0:4de5:e41e:28d9:9172", - }, - Object { - "docCount": 8, - "value": "21.35.91.62", - }, - Object { - "docCount": 8, - "value": "21.35.91.61", - }, - Object { - "docCount": 7, - "value": "203.88.33.151", - }, - Object { - "docCount": 6, - "value": "1ec:aa98:b0a6:d07c:590:18a0:8a33:2eb8", + expect(parsed).toMatchInlineSnapshot(` + Array [ + Object { + "docCount": 12, + "value": "52:ae76:5947:5e2a:551:fe6a:712a:c72", + }, + Object { + "docCount": 11, + "value": "111.52.174.2", + }, + Object { + "docCount": 10, + "value": "196.162.13.39", + }, + Object { + "docCount": 10, + "value": "f7a9:640b:b5a0:1219:8d75:ed94:3c3e:2e63", + }, + Object { + "docCount": 9, + "value": "23.216.241.120", + }, + Object { + "docCount": 9, + "value": "28c7:c9a4:42fd:16b0:4de5:e41e:28d9:9172", + }, + Object { + "docCount": 8, + "value": "21.35.91.62", + }, + Object { + "docCount": 8, + "value": "21.35.91.61", + }, + Object { + "docCount": 7, + "value": "203.88.33.151", + }, + Object { + "docCount": 6, + "value": "1ec:aa98:b0a6:d07c:590:18a0:8a33:2eb8", + }, + ] + `); + }); + + test('parses date result', () => { + const optionsListRequestBodyMock: OptionsListRequestBody = { + size: 10, + fieldName: '@timestamp', + allowExpensiveQueries: false, + fieldSpec: { type: 'date' } as unknown as FieldSpec, + }; + const suggestionAggBuilder = getCheapSuggestionAggregationBuilder(optionsListRequestBodyMock); + rawSearchResponseMock.aggregations = { + suggestions: { + buckets: [ + { doc_count: 20, key: 1696824675 }, + { doc_count: 13, key: 1686086625 }, + { doc_count: 4, key: 1703684229 }, + { doc_count: 34, key: 1688603684 }, + ], }, - ] - `); + }; + + const parsed = suggestionAggBuilder.parse( + rawSearchResponseMock, + optionsListRequestBodyMock + ).suggestions; + + expect(parsed).toMatchInlineSnapshot(` + Array [ + Object { + "docCount": 20, + "value": 1696824675, + }, + Object { + "docCount": 13, + "value": 1686086625, + }, + Object { + "docCount": 4, + "value": 1703684229, + }, + Object { + "docCount": 34, + "value": 1688603684, + }, + ] + `); + }); }); }); diff --git a/src/plugins/controls/server/options_list/options_list_cheap_suggestion_queries.ts b/src/plugins/controls/server/options_list/options_list_cheap_suggestion_queries.ts index 0df11e6408606..cba08877607d7 100644 --- a/src/plugins/controls/server/options_list/options_list_cheap_suggestion_queries.ts +++ b/src/plugins/controls/server/options_list/options_list_cheap_suggestion_queries.ts @@ -40,11 +40,12 @@ const cheapSuggestionAggSubtypes: { [key: string]: OptionsListSuggestionAggregat * (such as a keyword field or a keyword+text multi-field) */ keywordOrText: { - buildAggregation: ({ fieldName, searchString, sort }: OptionsListRequestBody) => ({ + buildAggregation: ({ fieldName, fieldSpec, searchString, sort }: OptionsListRequestBody) => ({ suggestions: { terms: { field: fieldName, - ...(searchString && searchString.length > 0 + // disabling for date fields because applying a search string will return an error + ...(fieldSpec?.type !== 'date' && searchString && searchString.length > 0 ? { include: `${getEscapedRegexQuery(searchString)}.*` } : {}), shard_size: 10, diff --git a/src/plugins/controls/server/options_list/options_list_expensive_suggestion_queries.test.ts b/src/plugins/controls/server/options_list/options_list_expensive_suggestion_queries.test.ts index a2d0d4e87a260..a5d6f32f63377 100644 --- a/src/plugins/controls/server/options_list/options_list_expensive_suggestion_queries.test.ts +++ b/src/plugins/controls/server/options_list/options_list_expensive_suggestion_queries.test.ts @@ -263,31 +263,102 @@ describe('options list expensive queries', () => { }); }); - test('boolean field', () => { - const optionsListRequestBodyMock: OptionsListRequestBody = { - size: 10, - fieldName: 'coolean', - allowExpensiveQueries: false, - sort: { by: '_key', direction: 'desc' }, - fieldSpec: { type: 'boolean' } as unknown as FieldSpec, - }; - const suggestionAggBuilder = getExpensiveSuggestionAggregationBuilder( - optionsListRequestBodyMock - ); - expect(suggestionAggBuilder.buildAggregation(optionsListRequestBodyMock)) - .toMatchInlineSnapshot(` - Object { - "suggestions": Object { - "terms": Object { - "field": "coolean", - "order": Object { - "_key": "desc", + describe('boolean field', () => { + test('creates boolean aggregation for boolean field', () => { + const optionsListRequestBodyMock: OptionsListRequestBody = { + size: 10, + fieldName: 'coolean', + allowExpensiveQueries: true, + sort: { by: '_key', direction: 'desc' }, + fieldSpec: { type: 'boolean' } as unknown as FieldSpec, + }; + const suggestionAggBuilder = getExpensiveSuggestionAggregationBuilder( + optionsListRequestBodyMock + ); + expect(suggestionAggBuilder.buildAggregation(optionsListRequestBodyMock)) + .toMatchInlineSnapshot(` + Object { + "suggestions": Object { + "terms": Object { + "field": "coolean", + "order": Object { + "_key": "desc", + }, + "shard_size": 10, + }, + }, + } + `); + }); + }); + + describe('date field field', () => { + test('creates date aggregation for date field', () => { + const optionsListRequestBodyMock: OptionsListRequestBody = { + size: 10, + fieldName: '@timestamp', + allowExpensiveQueries: true, + sort: { by: '_key', direction: 'desc' }, + fieldSpec: { type: 'date' } as unknown as FieldSpec, + }; + const suggestionAggBuilder = getExpensiveSuggestionAggregationBuilder( + optionsListRequestBodyMock + ); + expect(suggestionAggBuilder.buildAggregation(optionsListRequestBodyMock)) + .toMatchInlineSnapshot(` + Object { + "suggestions": Object { + "terms": Object { + "field": "@timestamp", + "order": Object { + "_key": "desc", + }, + "shard_size": 10, + "size": 10, }, - "shard_size": 10, }, - }, - } - `); + "unique_terms": Object { + "cardinality": Object { + "field": "@timestamp", + }, + }, + } + `); + }); + + test('does not throw error when receiving search string', () => { + const optionsListRequestBodyMock: OptionsListRequestBody = { + size: 10, + fieldName: '@timestamp', + allowExpensiveQueries: true, + sort: { by: '_key', direction: 'desc' }, + searchString: '2023', + fieldSpec: { type: 'date' } as unknown as FieldSpec, + }; + const suggestionAggBuilder = getExpensiveSuggestionAggregationBuilder( + optionsListRequestBodyMock + ); + expect(suggestionAggBuilder.buildAggregation(optionsListRequestBodyMock)) + .toMatchInlineSnapshot(` + Object { + "suggestions": Object { + "terms": Object { + "field": "@timestamp", + "order": Object { + "_key": "desc", + }, + "shard_size": 10, + "size": 10, + }, + }, + "unique_terms": Object { + "cardinality": Object { + "field": "@timestamp", + }, + }, + } + `); + }); }); describe('IP field', () => { @@ -769,5 +840,53 @@ describe('options list expensive queries', () => { ] `); }); + + test('parses date result', () => { + const optionsListRequestBodyMock: OptionsListRequestBody = { + size: 10, + fieldName: '@timestamp', + allowExpensiveQueries: true, + fieldSpec: { type: 'date' } as unknown as FieldSpec, + }; + const suggestionAggBuilder = getExpensiveSuggestionAggregationBuilder( + optionsListRequestBodyMock + ); + rawSearchResponseMock.aggregations = { + suggestions: { + buckets: [ + { doc_count: 20, key: 1696824675 }, + { doc_count: 13, key: 1686086625 }, + { doc_count: 4, key: 1703684229 }, + { doc_count: 34, key: 1688603684 }, + ], + }, + }; + + const parsed = suggestionAggBuilder.parse( + rawSearchResponseMock, + optionsListRequestBodyMock + ).suggestions; + + expect(parsed).toMatchInlineSnapshot(` + Array [ + Object { + "docCount": 20, + "value": 1696824675, + }, + Object { + "docCount": 13, + "value": 1686086625, + }, + Object { + "docCount": 4, + "value": 1703684229, + }, + Object { + "docCount": 34, + "value": 1688603684, + }, + ] + `); + }); }); }); diff --git a/src/plugins/controls/server/options_list/options_list_expensive_suggestion_queries.ts b/src/plugins/controls/server/options_list/options_list_expensive_suggestion_queries.ts index 5fb865bfada5b..156a966f6a482 100644 --- a/src/plugins/controls/server/options_list/options_list_expensive_suggestion_queries.ts +++ b/src/plugins/controls/server/options_list/options_list_expensive_suggestion_queries.ts @@ -65,7 +65,8 @@ const expensiveSuggestionAggSubtypes: { [key: string]: OptionsListSuggestionAggr }, }, }; - if (searchString && searchString.length > 0) { + // disabling for date fields because applying a search string will return an error + if (fieldSpec?.type !== 'date' && searchString && searchString.length > 0) { textOrKeywordQuery = { filteredSuggestions: { filter: { diff --git a/src/plugins/controls/server/options_list/options_list_suggestions_route.ts b/src/plugins/controls/server/options_list/options_list_suggestions_route.ts index d6fe08f275ccf..b2a42fa0b3b19 100644 --- a/src/plugins/controls/server/options_list/options_list_suggestions_route.ts +++ b/src/plugins/controls/server/options_list/options_list_suggestions_route.ts @@ -51,7 +51,9 @@ export const setupOptionsListSuggestionsRoute = ( fieldSpec: schema.maybe(schema.any()), allowExpensiveQueries: schema.boolean(), searchString: schema.maybe(schema.string()), - selectedOptions: schema.maybe(schema.arrayOf(schema.string())), + selectedOptions: schema.maybe( + schema.oneOf([schema.arrayOf(schema.string()), schema.arrayOf(schema.number())]) + ), }, { unknowns: 'allow' } ), diff --git a/src/plugins/controls/server/options_list/options_list_validation_queries.ts b/src/plugins/controls/server/options_list/options_list_validation_queries.ts index a79c0971a5cb1..56e7f9efef6bf 100644 --- a/src/plugins/controls/server/options_list/options_list_validation_queries.ts +++ b/src/plugins/controls/server/options_list/options_list_validation_queries.ts @@ -20,7 +20,7 @@ export const getValidationAggregationBuilder: () => OptionsListValidationAggrega let selectedOptionsFilters; if (selectedOptions) { selectedOptionsFilters = selectedOptions.reduce((acc, currentOption) => { - acc[currentOption] = { match: { [fieldName]: currentOption } }; + acc[currentOption] = { match: { [fieldName]: String(currentOption) } }; return acc; }, {} as { [key: string]: { match: { [key: string]: string } } }); } diff --git a/src/plugins/dashboard/common/lib/dashboard_panel_converters.ts b/src/plugins/dashboard/common/lib/dashboard_panel_converters.ts index 052dd6532fc44..edb24e31e09cc 100644 --- a/src/plugins/dashboard/common/lib/dashboard_panel_converters.ts +++ b/src/plugins/dashboard/common/lib/dashboard_panel_converters.ts @@ -6,6 +6,7 @@ * Side Public License, v 1. */ +import { v4 } from 'uuid'; import { omit } from 'lodash'; import { EmbeddableInput, SavedObjectEmbeddableInput } from '@kbn/embeddable-plugin/common'; @@ -74,3 +75,20 @@ export const convertPanelMapToSavedPanels = ( convertPanelStateToSavedDashboardPanel(panel, removeLegacyVersion) ); }; + +/** + * When saving a dashboard as a copy, we should generate new IDs for all panels so that they are + * properly refreshed when navigating between Dashboards + */ +export const generateNewPanelIds = (panels: DashboardPanelMap) => { + const newPanelsMap: DashboardPanelMap = {}; + for (const panel of Object.values(panels)) { + const newId = v4(); + newPanelsMap[newId] = { + ...panel, + gridData: { ...panel.gridData, i: newId }, + explicitInput: { ...panel.explicitInput, id: newId }, + }; + } + return newPanelsMap; +}; diff --git a/src/plugins/dashboard/public/services/dashboard_content_management/lib/save_dashboard_state.test.ts b/src/plugins/dashboard/public/services/dashboard_content_management/lib/save_dashboard_state.test.ts new file mode 100644 index 0000000000000..b44ae044cd50a --- /dev/null +++ b/src/plugins/dashboard/public/services/dashboard_content_management/lib/save_dashboard_state.test.ts @@ -0,0 +1,138 @@ +/* + * 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 { registry } from '../../plugin_services.stub'; +import { pluginServices } from '../../plugin_services'; +import { getSampleDashboardInput } from '../../../mocks'; +import { saveDashboardState } from './save_dashboard_state'; +import { DashboardContainerInput } from '../../../../common'; + +pluginServices.setRegistry(registry.start({})); +const { + data, + embeddable, + notifications, + dashboardBackup, + contentManagement, + initializerContext, + savedObjectsTagging, +} = pluginServices.getServices(); + +contentManagement.client.create = jest.fn().mockImplementation(({ options }) => { + if (options.id === undefined) { + return { item: { id: 'newlyGeneratedId' } }; + } + return { item: { id: options.id } }; +}); + +const allServices = { + data, + embeddable, + notifications, + dashboardBackup, + contentManagement, + initializerContext, + savedObjectsTagging, +}; +data.query.timefilter.timefilter.getTime = jest.fn().mockReturnValue({ from: 'then', to: 'now' }); +embeddable.extract = jest + .fn() + .mockImplementation((attributes) => ({ state: attributes, references: [] })); + +describe('Save dashboard state', () => { + beforeEach(() => { + jest.clearAllMocks(); + }); + + it('should save the dashboard using the same ID', async () => { + const result = await saveDashboardState({ + currentState: { + ...getSampleDashboardInput(), + title: 'BOO', + } as unknown as DashboardContainerInput, + lastSavedId: 'Boogaloo', + saveOptions: {}, + ...allServices, + }); + + expect(result.id).toBe('Boogaloo'); + expect(allServices.contentManagement.client.create).toHaveBeenCalledWith( + expect.objectContaining({ + options: expect.objectContaining({ id: 'Boogaloo', overwrite: true }), + }) + ); + expect(allServices.notifications.toasts.addSuccess).toHaveBeenCalledWith({ + title: `Dashboard 'BOO' was saved`, + 'data-test-subj': 'saveDashboardSuccess', + }); + }); + + it('should save the dashboard using a new id, and return redirect required', async () => { + const result = await saveDashboardState({ + currentState: { + ...getSampleDashboardInput(), + title: 'BooToo', + } as unknown as DashboardContainerInput, + lastSavedId: 'Boogaloonie', + saveOptions: { saveAsCopy: true }, + ...allServices, + }); + + expect(result.id).toBe('newlyGeneratedId'); + expect(result.redirectRequired).toBe(true); + expect(allServices.contentManagement.client.create).toHaveBeenCalledWith( + expect.objectContaining({ + options: expect.objectContaining({ id: undefined, overwrite: true }), + }) + ); + expect(allServices.notifications.toasts.addSuccess).toHaveBeenCalledWith({ + title: `Dashboard 'BooToo' was saved`, + 'data-test-subj': 'saveDashboardSuccess', + }); + }); + + it('should generate new panel IDs for dashboard panels when save as copy is true', async () => { + const result = await saveDashboardState({ + currentState: { + ...getSampleDashboardInput(), + title: 'BooThree', + panels: { idOne: { type: 'boop' } }, + } as unknown as DashboardContainerInput, + lastSavedId: 'Boogatoonie', + saveOptions: { saveAsCopy: true }, + ...allServices, + }); + + expect(result.id).toBe('newlyGeneratedId'); + + expect(allServices.contentManagement.client.create).toHaveBeenCalledWith( + expect.objectContaining({ + data: expect.objectContaining({ + panelsJSON: expect.not.stringContaining('neverGonnaGetThisId'), + }), + }) + ); + }); + + it('should return an error when the save fails.', async () => { + contentManagement.client.create = jest.fn().mockRejectedValue('Whoops'); + const result = await saveDashboardState({ + currentState: { + ...getSampleDashboardInput(), + title: 'BooThree', + panels: { idOne: { type: 'boop' } }, + } as unknown as DashboardContainerInput, + lastSavedId: 'Boogatoonie', + saveOptions: { saveAsCopy: true }, + ...allServices, + }); + + expect(result.id).toBeUndefined(); + expect(result.error).toBe('Whoops'); + }); +}); diff --git a/src/plugins/dashboard/public/services/dashboard_content_management/lib/save_dashboard_state.ts b/src/plugins/dashboard/public/services/dashboard_content_management/lib/save_dashboard_state.ts index 20d36688307dd..501d95976dc10 100644 --- a/src/plugins/dashboard/public/services/dashboard_content_management/lib/save_dashboard_state.ts +++ b/src/plugins/dashboard/public/services/dashboard_content_management/lib/save_dashboard_state.ts @@ -13,6 +13,7 @@ import { getDefaultControlGroupInput, persistableControlGroupInputIsEqual, controlGroupInputToRawControlGroupAttributes, + generateNewControlIds, } from '@kbn/controls-plugin/common'; import { isFilterPinned } from '@kbn/es-query'; import { extractSearchSourceReferences, RefreshInterval } from '@kbn/data-plugin/public'; @@ -31,6 +32,7 @@ import { DashboardStartDependencies } from '../../../plugin'; import { DASHBOARD_CONTENT_ID } from '../../../dashboard_constants'; import { convertDashboardVersionToNumber } from './dashboard_versioning'; import { LATEST_DASHBOARD_CONTAINER_VERSION } from '../../../dashboard_container'; +import { generateNewPanelIds } from '../../../../common/lib/dashboard_panel_converters'; import { dashboardContentManagementCache } from '../dashboard_content_management_service'; import { DashboardCrudTypes, DashboardAttributes } from '../../../../common/content_management'; import { dashboardSaveToastStrings } from '../../../dashboard_container/_dashboard_container_strings'; @@ -90,12 +92,10 @@ export const saveDashboardState = async ({ tags, query, title, - panels, filters, version, timeRestore, description, - controlGroupInput, // Dashboard options useMargins, @@ -105,6 +105,12 @@ export const saveDashboardState = async ({ hidePanelTitles, } = currentState; + let { panels, controlGroupInput } = currentState; + if (saveOptions.saveAsCopy) { + panels = generateNewPanelIds(panels); + controlGroupInput = generateNewControlIds(controlGroupInput); + } + /** * Stringify filters and query into search source JSON */ diff --git a/src/plugins/discover/public/application/main/components/top_nav/discover_topnav.test.tsx b/src/plugins/discover/public/application/main/components/top_nav/discover_topnav.test.tsx index 5b00f1ee6e75e..50e8b9e16a418 100644 --- a/src/plugins/discover/public/application/main/components/top_nav/discover_topnav.test.tsx +++ b/src/plugins/discover/public/application/main/components/top_nav/discover_topnav.test.tsx @@ -46,6 +46,11 @@ const mockSearchBarCustomizationWithCustomSearchBar: SearchBarCustomization = { CustomSearchBar: MockCustomSearchBar, }; +const mockSearchBarCustomizationWithHiddenDataViewPicker: SearchBarCustomization = { + id: 'search_bar', + hideDataViewPicker: true, +}; + let mockUseCustomizations = false; jest.mock('../../../../customizations', () => ({ @@ -256,5 +261,23 @@ describe('Discover topnav component', () => { ).find(mockSearchBarCustomization.CustomDataViewPicker!); expect(dataViewPickerOverride.length).toBe(1); }); + + it('should not render the dataView picker when hideDataViewPicker is true', () => { + (useDiscoverCustomization as jest.Mock).mockImplementation((id: DiscoverCustomizationId) => { + if (id === 'search_bar') { + return mockSearchBarCustomizationWithHiddenDataViewPicker; + } + }); + + const props = getProps(); + const component = mountWithIntl( + + + + ); + + const topNav = component.find(mockDiscoverService.navigation.ui.AggregateQueryTopNavMenu); + expect(topNav.prop('dataViewPickerComponentProps')).toBeUndefined(); + }); }); }); diff --git a/src/plugins/discover/public/application/main/components/top_nav/discover_topnav.tsx b/src/plugins/discover/public/application/main/components/top_nav/discover_topnav.tsx index 650d5141536e9..7b53587d08eb4 100644 --- a/src/plugins/discover/public/application/main/components/top_nav/discover_topnav.tsx +++ b/src/plugins/discover/public/application/main/components/top_nav/discover_topnav.tsx @@ -114,6 +114,7 @@ export const DiscoverTopNav = ({ }, [dataViewEditor, stateContainer]); const topNavCustomization = useDiscoverCustomization('top_nav'); + const topNavMenu = useMemo( () => getTopNavLinks({ @@ -171,6 +172,17 @@ export const DiscoverTopNav = ({ if (isESQLModeEnabled) { supportedTextBasedLanguages.push('ESQL'); } + + const searchBarCustomization = useDiscoverCustomization('search_bar'); + + const SearchBar = useMemo( + () => searchBarCustomization?.CustomSearchBar ?? AggregateQueryTopNavMenu, + [searchBarCustomization?.CustomSearchBar, AggregateQueryTopNavMenu] + ); + + const shouldHideDefaultDataviewPicker = + !!searchBarCustomization?.CustomDataViewPicker || !!searchBarCustomization?.hideDataViewPicker; + const dataViewPickerProps: DataViewPickerProps = { trigger: { label: dataView?.getName() || '', @@ -201,13 +213,6 @@ export const DiscoverTopNav = ({ [services, stateContainer] ); - const searchBarCustomization = useDiscoverCustomization('search_bar'); - - const SearchBar = useMemo( - () => searchBarCustomization?.CustomSearchBar ?? AggregateQueryTopNavMenu, - [searchBarCustomization?.CustomSearchBar, AggregateQueryTopNavMenu] - ); - return ( >; + hideDataViewPicker?: boolean; } diff --git a/src/plugins/inspector/public/views/requests/components/request_details.tsx b/src/plugins/inspector/public/views/requests/components/request_details.tsx index 9c1b4d3d51ba9..7677cca66b369 100644 --- a/src/plugins/inspector/public/views/requests/components/request_details.tsx +++ b/src/plugins/inspector/public/views/requests/components/request_details.tsx @@ -36,7 +36,7 @@ const DETAILS: DetailViewData[] = [ { name: 'Clusters', label: i18n.translate('inspector.requests.clustersTabLabel', { - defaultMessage: 'Clusters', + defaultMessage: 'Clusters and shards', }), component: ClustersView, }, diff --git a/src/plugins/telemetry/server/routes/telemetry_config.ts b/src/plugins/telemetry/server/routes/telemetry_config.ts index d62566bdc3563..7c056b0cfd519 100644 --- a/src/plugins/telemetry/server/routes/telemetry_config.ts +++ b/src/plugins/telemetry/server/routes/telemetry_config.ts @@ -85,7 +85,8 @@ export function registerTelemetryConfigRoutes({ optIn: schema.oneOf([schema.boolean(), schema.literal(null)]), sendUsageFrom: schema.oneOf([schema.literal('server'), schema.literal('browser')]), telemetryNotifyUserAboutOptInDefault: schema.boolean(), - labels: labelsSchema, + // Declare the `serverless` label as optional in both offerings while we fix https://github.com/elastic/kibana/issues/167862 + labels: labelsSchema.extends({ serverless: schema.maybe(schema.string()) }), }), }, }, diff --git a/src/plugins/visualizations/public/visualize_app/utils/get_top_nav_config.test.tsx b/src/plugins/visualizations/public/visualize_app/utils/get_top_nav_config.test.tsx index 909e3029db48d..edcff40f4763a 100644 --- a/src/plugins/visualizations/public/visualize_app/utils/get_top_nav_config.test.tsx +++ b/src/plugins/visualizations/public/visualize_app/utils/get_top_nav_config.test.tsx @@ -224,6 +224,49 @@ describe('getTopNavConfig', () => { ] `); }); + + test('navigates to origin app and path on cancel', async () => { + const vis = { + savedVis: { + id: 'test', + sharingSavedObjectProps: { + outcome: 'conflict', + aliasTargetId: 'alias_id', + }, + }, + vis: { + type: { + title: 'TSVB', + }, + }, + } as VisualizeEditorVisInstance; + const mockNavigateToApp = jest.fn(); + const topNavLinks = getTopNavConfig( + { + hasUnsavedChanges: false, + setHasUnsavedChanges: jest.fn(), + hasUnappliedChanges: false, + onOpenInspector: jest.fn(), + originatingApp: 'testApp', + originatingPath: '/testPath', + setOriginatingApp: jest.fn(), + visInstance: vis, + stateContainer, + visualizationIdFromUrl: undefined, + stateTransfer: createEmbeddableStateTransferMock(), + } as unknown as TopNavConfigParams, + { + ...services, + application: { navigateToApp: mockNavigateToApp }, + } as unknown as VisualizeServices + ); + + const executionFunction = topNavLinks.find(({ id }) => id === 'cancel')?.run; + const mockAnchorElement = document.createElement('div'); + await executionFunction?.(mockAnchorElement); + expect(mockNavigateToApp).toHaveBeenCalledWith('testApp', { path: '/testPath' }); + }); + test('returns correct links for by reference visualization', () => { const vis = { savedVis: { diff --git a/src/plugins/visualizations/public/visualize_app/utils/get_top_nav_config.tsx b/src/plugins/visualizations/public/visualize_app/utils/get_top_nav_config.tsx index 49ebc45833376..064e281f8c269 100644 --- a/src/plugins/visualizations/public/visualize_app/utils/get_top_nav_config.tsx +++ b/src/plugins/visualizations/public/visualize_app/utils/get_top_nav_config.tsx @@ -258,7 +258,7 @@ export const getTopNavConfig = ( const navigateToOriginatingApp = () => { if (originatingApp) { - application.navigateToApp(originatingApp); + application.navigateToApp(originatingApp, { path: originatingPath }); } }; diff --git a/test/api_integration/apis/custom_integration/integrations.ts b/test/api_integration/apis/custom_integration/integrations.ts index 67d7c8caf2137..7e56f98d750ca 100644 --- a/test/api_integration/apis/custom_integration/integrations.ts +++ b/test/api_integration/apis/custom_integration/integrations.ts @@ -22,7 +22,7 @@ export default function ({ getService }: FtrProviderContext) { expect(resp.body).to.be.an('array'); - expect(resp.body.length).to.be(50); + expect(resp.body.length).to.be(52); // Test for sample data card expect(resp.body.findIndex((c: { id: string }) => c.id === 'sample_data_all')).to.be.above( diff --git a/test/api_integration/apis/ui_counters/ui_counters.ts b/test/api_integration/apis/ui_counters/ui_counters.ts index db75c82f293ac..9d3bfa9c25b81 100644 --- a/test/api_integration/apis/ui_counters/ui_counters.ts +++ b/test/api_integration/apis/ui_counters/ui_counters.ts @@ -56,7 +56,8 @@ export default function ({ getService }: FtrProviderContext) { return savedObject; }; - describe('UI Counters API', () => { + // FLAKY: https://github.com/elastic/kibana/issues/98240 + describe.skip('UI Counters API', () => { const dayDate = moment().format('DDMMYYYY'); before(async () => await esArchiver.emptyKibanaIndex()); diff --git a/test/functional/apps/dashboard/group2/dashboard_filter_bar.ts b/test/functional/apps/dashboard/group2/dashboard_filter_bar.ts index da9660ac4f4cb..044339930ae16 100644 --- a/test/functional/apps/dashboard/group2/dashboard_filter_bar.ts +++ b/test/functional/apps/dashboard/group2/dashboard_filter_bar.ts @@ -193,7 +193,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); }); - describe('saved search filtering', function () { + // FLAKY: https://github.com/elastic/kibana/issues/167175 + describe.skip('saved search filtering', function () { before(async () => { await filterBar.ensureFieldEditorModalIsClosed(); await PageObjects.dashboard.gotoDashboardLandingPage(); diff --git a/test/functional/page_objects/dashboard_page.ts b/test/functional/page_objects/dashboard_page.ts index 4798117f11687..6119a87c16a5f 100644 --- a/test/functional/page_objects/dashboard_page.ts +++ b/test/functional/page_objects/dashboard_page.ts @@ -43,6 +43,7 @@ export class DashboardPageObject extends FtrService { private readonly header = this.ctx.getPageObject('header'); private readonly visualize = this.ctx.getPageObject('visualize'); private readonly discover = this.ctx.getPageObject('discover'); + private readonly appsMenu = this.ctx.getService('appsMenu'); private readonly logstashIndex = this.config.get('esTestCluster.ccs') ? 'ftr-remote:logstash-*' @@ -65,6 +66,17 @@ export class DashboardPageObject extends FtrService { await this.common.navigateToApp(this.APP_ID); } + public async navigateToAppFromAppsMenu() { + await this.retry.try(async () => { + await this.appsMenu.clickLink('Dashboard', { category: 'kibana' }); + await this.header.waitUntilLoadingHasFinished(); + const currentUrl = await this.browser.getCurrentUrl(); + if (!currentUrl.includes('app/dashboard')) { + throw new Error(`Not in dashboard application after clicking 'Dashboard' in apps menu`); + } + }); + } + public async expectAppStateRemovedFromURL() { this.retry.try(async () => { const url = await this.browser.getCurrentUrl(); diff --git a/x-pack/build_chromium/README.md b/x-pack/build_chromium/README.md index 5a240ffc06a0f..5f9e2bb06317d 100644 --- a/x-pack/build_chromium/README.md +++ b/x-pack/build_chromium/README.md @@ -46,6 +46,9 @@ python ./build_chromium/init.py # Run the build script with the path to the chromium src directory, the git commit hash python ./build_chromium/build.py 70f5d88ea95298a18a85c33c98ea00e02358ad75 x64 +# Make sure you are using python3, you can state the path explicitly if needed +/usr/bin/python3 ./build_chromium/build.py 67649b10b92bb182fba357831ef7dd6a1baa5648 x64 + # OR You can build for ARM python ./build_chromium/build.py 70f5d88ea95298a18a85c33c98ea00e02358ad75 arm64 ``` @@ -64,6 +67,8 @@ node scripts/chromium_version.js [PuppeteerVersion] When bumping the Puppeteer version, make sure you also update the `ChromiumArchivePaths.revision` variable in `x-pack/plugins/reporting/server/browsers/chromium/paths.ts`. +In some cases the revision number might not be available for the darwin or windows builds in `https://commondatastorage.googleapis.com/chromium-browser-snapshots/index.html`. For example, 1181205 was not available for darwin arm64 or windows. In that case, the next available revision numbers 1181286 and 1181280 were used. + ## Build args A good how-to on building Chromium from source is @@ -91,7 +96,7 @@ are created in x64 using cross-compiling. CentOS is not supported for building C - 8 CPU - 30GB memory - 80GB free space on disk (Try `ncdu /home` to see where space is used.) - - "Cloud API access scopes": must have **read / write** scope for the Storage API + - "Cloud API access scopes": must have **read / write** scope for the Storage API. Access scopes in the GCP VM instance needs to be set to allow full access to all Cloud APIs vs default access (this will return a 403 otherwise in the build.py script) 4. Install [Google Cloud SDK](https://cloud.google.com/sdk) locally to ssh into the GCP instance ## Artifacts @@ -101,8 +106,8 @@ The zip files and md5 files are copied to a **staging** bucket in GCP storage. To publish the built artifacts for bunding in Kibana, copy the files from the `headless_shell_staging` bucket to the `headless_shell` bucket. ``` -gsutil cp gs://headless_shell_staging/chromium-d163fd7-linux_arm64.md5 gs://headless_shell/ -gsutil cp gs://headless_shell_staging/chromium-d163fd7-linux_arm64.zip gs://headless_shell/ +gsutil cp gs://headless_shell_staging/chromium-67649b1-linux_arm64.md5 gs://headless_shell/ +gsutil cp gs://headless_shell_staging/chromium-67649b1-linux_arm64.zip gs://headless_shell/ ``` IMPORTANT: Do not replace builds in the `headless_shell` bucket that are referenced in an active Kibana branch. CI tests on that branch will fail since the archive checksum no longer matches the original version. diff --git a/x-pack/packages/kbn-elastic-assistant/impl/assistant/settings/advanced_settings/advanced_settings.tsx b/x-pack/packages/kbn-elastic-assistant/impl/assistant/settings/advanced_settings/advanced_settings.tsx deleted file mode 100644 index 4474973b3ce62..0000000000000 --- a/x-pack/packages/kbn-elastic-assistant/impl/assistant/settings/advanced_settings/advanced_settings.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 React, { useCallback, useMemo, useState } from 'react'; -import { - EuiFormRow, - EuiTitle, - EuiText, - EuiTextColor, - EuiHorizontalRule, - EuiLoadingSpinner, - EuiSpacer, - EuiSwitch, - EuiToolTip, - EuiSwitchEvent, - EuiLink, -} from '@elastic/eui'; - -import { FormattedMessage } from '@kbn/i18n-react'; -import * as i18n from './translations'; -import { useKnowledgeBaseStatus } from '../../../knowledge_base/use_knowledge_base_status/use_knowledge_base_status'; -import { useAssistantContext } from '../../../assistant_context'; -import { useSetupKnowledgeBase } from '../../../knowledge_base/use_setup_knowledge_base/use_setup_knowledge_base'; -import { useDeleteKnowledgeBase } from '../../../knowledge_base/use_delete_knowledge_base/use_delete_knowledge_base'; - -const ESQL_RESOURCE = 'esql'; -interface Props { - onAdvancedSettingsChange?: () => void; -} - -/** - * Advanced Settings -- enable and disable LangChain integration, Knowledge Base, and ESQL KB Documents - */ -export const AdvancedSettings: React.FC = React.memo(({ onAdvancedSettingsChange }) => { - const { http, assistantLangChain } = useAssistantContext(); - const { - data: kbStatus, - isLoading, - isFetching, - } = useKnowledgeBaseStatus({ http, resource: ESQL_RESOURCE }); - const { mutate: setupKB, isLoading: isSettingUpKB } = useSetupKnowledgeBase({ http }); - const { mutate: deleteKB, isLoading: isDeletingUpKB } = useDeleteKnowledgeBase({ http }); - - const [isLangChainEnabled, setIsLangChainEnabled] = useState(assistantLangChain); - const isKnowledgeBaseEnabled = - (kbStatus?.index_exists && kbStatus?.pipeline_exists && kbStatus?.elser_exists) ?? false; - const isESQLEnabled = kbStatus?.esql_exists ?? false; - - const isLoadingKb = isLoading || isFetching || isSettingUpKB || isDeletingUpKB; - const isKnowledgeBaseAvailable = isLangChainEnabled && kbStatus?.elser_exists; - const isESQLAvailable = isLangChainEnabled && isKnowledgeBaseAvailable && isKnowledgeBaseEnabled; - - const onEnableKnowledgeBaseChange = useCallback( - (event: EuiSwitchEvent) => { - if (event.target.checked) { - setupKB(); - } else { - deleteKB(); - } - }, - [deleteKB, setupKB] - ); - - const onEnableESQLChange = useCallback( - (event: EuiSwitchEvent) => { - if (event.target.checked) { - setupKB(ESQL_RESOURCE); - } else { - deleteKB(ESQL_RESOURCE); - } - }, - [deleteKB, setupKB] - ); - - const langchainSwitch = useMemo(() => { - return ( - setIsLangChainEnabled(!isLangChainEnabled)} - showLabel={false} - /> - ); - }, [isLangChainEnabled]); - - const knowledgeBaseSwitch = useMemo(() => { - return isLoadingKb ? ( - - ) : ( - - - - ); - }, [isLoadingKb, isKnowledgeBaseAvailable, isKnowledgeBaseEnabled, onEnableKnowledgeBaseChange]); - - const esqlSwitch = useMemo(() => { - return isLoadingKb ? ( - - ) : ( - - - - ); - }, [isLoadingKb, isESQLAvailable, isESQLEnabled, onEnableESQLChange]); - - return ( - <> - -

{i18n.SETTINGS_TITLE}

-
- - - {i18n.SETTINGS_DESCRIPTION} - - - - - {langchainSwitch} - - - {i18n.LANNGCHAIN_DESCRIPTION} - - - - {knowledgeBaseSwitch} - - - - - {i18n.KNOWLEDGE_BASE_DESCRIPTION_ELSER_LEARN_MORE} - - ), - }} - /> - - - - - {esqlSwitch} - - - {i18n.ESQL_DESCRIPTION} - - - ); -}); - -AdvancedSettings.displayName = 'AdvancedSettings'; diff --git a/x-pack/packages/kbn-elastic-assistant/impl/assistant/settings/advanced_settings/translations.ts b/x-pack/packages/kbn-elastic-assistant/impl/assistant/settings/advanced_settings/translations.ts deleted file mode 100644 index ca849f0a6f7c5..0000000000000 --- a/x-pack/packages/kbn-elastic-assistant/impl/assistant/settings/advanced_settings/translations.ts +++ /dev/null @@ -1,79 +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'; - -export const SETTINGS_TITLE = i18n.translate( - 'xpack.elasticAssistant.assistant.settings.advancedSettings.settingsTitle', - { - defaultMessage: 'Advanced Settings', - } -); -export const SETTINGS_DESCRIPTION = i18n.translate( - 'xpack.elasticAssistant.assistant.settings.advancedSettings.settingsDescription', - { - defaultMessage: 'Additional knobs and dials for the Elastic AI Assistant.', - } -); - -export const LANNGCHAIN_LABEL = i18n.translate( - 'xpack.elasticAssistant.assistant.settings.advancedSettings.langChainLabel', - { - defaultMessage: 'Experimental LangChain Integration', - } -); - -export const LANNGCHAIN_DESCRIPTION = i18n.translate( - 'xpack.elasticAssistant.assistant.settings.advancedSettings.langChainDescription', - { - defaultMessage: - 'Enables advanced features and workflows like the Knowledge Base, Functions, Memories, and advanced agent and chain configurations. ', - } -); - -export const KNOWLEDGE_BASE_LABEL = i18n.translate( - 'xpack.elasticAssistant.assistant.settings.advancedSettings.knowledgeBaseLabel', - { - defaultMessage: 'Knowledge Base', - } -); - -export const KNOWLEDGE_BASE_LABEL_TOOLTIP = i18n.translate( - 'xpack.elasticAssistant.assistant.settings.advancedSettings.knowledgeBaseLabelTooltip', - { - defaultMessage: 'Requires ELSER to be configured and started.', - } -); - -export const KNOWLEDGE_BASE_DESCRIPTION_ELSER_LEARN_MORE = i18n.translate( - 'xpack.elasticAssistant.assistant.settings.advancedSettings.knowledgeBaseElserLearnMoreDescription', - { - defaultMessage: 'Learn more.', - } -); - -export const ESQL_LABEL = i18n.translate( - 'xpack.elasticAssistant.assistant.settings.advancedSettings.esqlLabel', - { - defaultMessage: 'ES|QL Knowledge Base Documents', - } -); - -export const ESQL_LABEL_TOOLTIP = i18n.translate( - 'xpack.elasticAssistant.assistant.settings.advancedSettings.esqlTooltip', - { - defaultMessage: 'Requires `Knowledge Base` to be enabled.', - } -); - -export const ESQL_DESCRIPTION = i18n.translate( - 'xpack.elasticAssistant.assistant.settings.advancedSettings.esqlDescription', - { - defaultMessage: - 'Loads ES|QL documentation and language files into the Knowledge Base for use in generating ES|QL queries.', - } -); diff --git a/x-pack/packages/kbn-elastic-assistant/impl/assistant/settings/assistant_settings.tsx b/x-pack/packages/kbn-elastic-assistant/impl/assistant/settings/assistant_settings.tsx index caf8fa77a9b61..5b357fb6594cc 100644 --- a/x-pack/packages/kbn-elastic-assistant/impl/assistant/settings/assistant_settings.tsx +++ b/x-pack/packages/kbn-elastic-assistant/impl/assistant/settings/assistant_settings.tsx @@ -30,7 +30,7 @@ import { useAssistantContext } from '../../assistant_context'; import { AnonymizationSettings } from '../../data_anonymization/settings/anonymization_settings'; import { QuickPromptSettings } from '../quick_prompts/quick_prompt_settings/quick_prompt_settings'; import { SystemPromptSettings } from '../prompt_editor/system_prompt/system_prompt_modal/system_prompt_settings'; -import { AdvancedSettings } from './advanced_settings/advanced_settings'; +import { KnowledgeBaseSettings } from '../../knowledge_base/knowledge_base_settings/knowledge_base_settings'; import { ConversationSettings } from '../conversations/conversation_settings/conversation_settings'; import { TEST_IDS } from '../constants'; import { useSettingsUpdater } from './use_settings_updater/use_settings_updater'; @@ -45,7 +45,7 @@ export const CONVERSATIONS_TAB = 'CONVERSATION_TAB' as const; export const QUICK_PROMPTS_TAB = 'QUICK_PROMPTS_TAB' as const; export const SYSTEM_PROMPTS_TAB = 'SYSTEM_PROMPTS_TAB' as const; export const ANONYMIZATION_TAB = 'ANONYMIZATION_TAB' as const; -export const ADVANCED_TAB = 'ADVANCED_TAB' as const; +export const KNOWLEDGE_BASE_TAB = 'KNOWLEDGE_BASE_TAB' as const; export const EVALUATION_TAB = 'EVALUATION_TAB' as const; export type SettingsTabs = @@ -53,7 +53,7 @@ export type SettingsTabs = | typeof QUICK_PROMPTS_TAB | typeof SYSTEM_PROMPTS_TAB | typeof ANONYMIZATION_TAB - | typeof ADVANCED_TAB + | typeof KNOWLEDGE_BASE_TAB | typeof EVALUATION_TAB; interface Props { defaultConnectorId?: string; @@ -68,7 +68,7 @@ interface Props { /** * Modal for overall Assistant Settings, including conversation settings, quick prompts, system prompts, - * anonymization, functions (coming soon!), and advanced settings. + * anonymization, knowledge base, and evaluation via the `isModelEvaluationEnabled` feature flag. */ export const AssistantSettings: React.FC = React.memo( ({ @@ -79,17 +79,19 @@ export const AssistantSettings: React.FC = React.memo( selectedConversation: defaultSelectedConversation, setSelectedConversationId, }) => { - const { assistantLangChain, http, selectedSettingsTab, setSelectedSettingsTab } = + const { modelEvaluatorEnabled, http, selectedSettingsTab, setSelectedSettingsTab } = useAssistantContext(); const { conversationSettings, defaultAllow, defaultAllowReplacement, + knowledgeBase, quickPromptSettings, systemPromptSettings, setUpdatedConversationSettings, setUpdatedDefaultAllow, setUpdatedDefaultAllowReplacement, + setUpdatedKnowledgeBaseSettings, setUpdatedQuickPromptSettings, setUpdatedSystemPromptSettings, saveSettings, @@ -236,17 +238,15 @@ export const AssistantSettings: React.FC = React.memo( > - {assistantLangChain && ( - setSelectedSettingsTab(ADVANCED_TAB)} - > - - - )} - {assistantLangChain && ( + setSelectedSettingsTab(KNOWLEDGE_BASE_TAB)} + > + + + {modelEvaluatorEnabled && ( = React.memo( setUpdatedDefaultAllowReplacement={setUpdatedDefaultAllowReplacement} /> )} - {selectedSettingsTab === ADVANCED_TAB && } + {selectedSettingsTab === KNOWLEDGE_BASE_TAB && ( + + )} {selectedSettingsTab === EVALUATION_TAB && } void; systemPromptSettings: Prompt[]; @@ -21,6 +23,7 @@ interface UseSettingsUpdater { setUpdatedConversationSettings: React.Dispatch< React.SetStateAction >; + setUpdatedKnowledgeBaseSettings: React.Dispatch>; setUpdatedQuickPromptSettings: React.Dispatch>; setUpdatedSystemPromptSettings: React.Dispatch>; saveSettings: () => void; @@ -34,11 +37,13 @@ export const useSettingsUpdater = (): UseSettingsUpdater => { conversations, defaultAllow, defaultAllowReplacement, + knowledgeBase, setAllQuickPrompts, setAllSystemPrompts, setConversations, setDefaultAllow, setDefaultAllowReplacement, + setKnowledgeBase, } = useAssistantContext(); /** @@ -57,6 +62,9 @@ export const useSettingsUpdater = (): UseSettingsUpdater => { const [updatedDefaultAllow, setUpdatedDefaultAllow] = useState(defaultAllow); const [updatedDefaultAllowReplacement, setUpdatedDefaultAllowReplacement] = useState(defaultAllowReplacement); + // Knowledge Base + const [updatedKnowledgeBaseSettings, setUpdatedKnowledgeBaseSettings] = + useState(knowledgeBase); /** * Reset all pending settings @@ -64,10 +72,18 @@ export const useSettingsUpdater = (): UseSettingsUpdater => { const resetSettings = useCallback((): void => { setUpdatedConversationSettings(conversations); setUpdatedQuickPromptSettings(allQuickPrompts); + setUpdatedKnowledgeBaseSettings(knowledgeBase); setUpdatedSystemPromptSettings(allSystemPrompts); setUpdatedDefaultAllow(defaultAllow); setUpdatedDefaultAllowReplacement(defaultAllowReplacement); - }, [allQuickPrompts, allSystemPrompts, conversations, defaultAllow, defaultAllowReplacement]); + }, [ + allQuickPrompts, + allSystemPrompts, + conversations, + defaultAllow, + defaultAllowReplacement, + knowledgeBase, + ]); /** * Save all pending settings @@ -76,6 +92,7 @@ export const useSettingsUpdater = (): UseSettingsUpdater => { setAllQuickPrompts(updatedQuickPromptSettings); setAllSystemPrompts(updatedSystemPromptSettings); setConversations(updatedConversationSettings); + setKnowledgeBase(updatedKnowledgeBaseSettings); setDefaultAllow(updatedDefaultAllow); setDefaultAllowReplacement(updatedDefaultAllowReplacement); }, [ @@ -84,9 +101,11 @@ export const useSettingsUpdater = (): UseSettingsUpdater => { setConversations, setDefaultAllow, setDefaultAllowReplacement, + setKnowledgeBase, updatedConversationSettings, updatedDefaultAllow, updatedDefaultAllowReplacement, + updatedKnowledgeBaseSettings, updatedQuickPromptSettings, updatedSystemPromptSettings, ]); @@ -95,6 +114,7 @@ export const useSettingsUpdater = (): UseSettingsUpdater => { conversationSettings: updatedConversationSettings, defaultAllow: updatedDefaultAllow, defaultAllowReplacement: updatedDefaultAllowReplacement, + knowledgeBase: updatedKnowledgeBaseSettings, quickPromptSettings: updatedQuickPromptSettings, resetSettings, systemPromptSettings: updatedSystemPromptSettings, @@ -102,6 +122,7 @@ export const useSettingsUpdater = (): UseSettingsUpdater => { setUpdatedDefaultAllow, setUpdatedDefaultAllowReplacement, setUpdatedConversationSettings, + setUpdatedKnowledgeBaseSettings, setUpdatedQuickPromptSettings, setUpdatedSystemPromptSettings, }; diff --git a/x-pack/packages/kbn-elastic-assistant/impl/assistant/types.ts b/x-pack/packages/kbn-elastic-assistant/impl/assistant/types.ts index dd5d184abfd20..e9ffd8f8014e8 100644 --- a/x-pack/packages/kbn-elastic-assistant/impl/assistant/types.ts +++ b/x-pack/packages/kbn-elastic-assistant/impl/assistant/types.ts @@ -15,3 +15,7 @@ export interface Prompt { isDefault?: boolean; // TODO: Should be renamed to isImmutable as this flag is used to prevent users from deleting prompts isNewConversationDefault?: boolean; } + +export interface KnowledgeBaseConfig { + assistantLangChain: boolean; +} diff --git a/x-pack/packages/kbn-elastic-assistant/impl/assistant/use_send_messages/index.tsx b/x-pack/packages/kbn-elastic-assistant/impl/assistant/use_send_messages/index.tsx index 38dc60c5fc9e7..f9f63aa8ef8ac 100644 --- a/x-pack/packages/kbn-elastic-assistant/impl/assistant/use_send_messages/index.tsx +++ b/x-pack/packages/kbn-elastic-assistant/impl/assistant/use_send_messages/index.tsx @@ -29,7 +29,7 @@ interface UseSendMessages { } export const useSendMessages = (): UseSendMessages => { - const { assistantLangChain } = useAssistantContext(); + const { knowledgeBase } = useAssistantContext(); const [isLoading, setIsLoading] = useState(false); const sendMessages = useCallback( @@ -37,7 +37,7 @@ export const useSendMessages = (): UseSendMessages => { setIsLoading(true); try { return await fetchConnectorExecuteAction({ - assistantLangChain, + assistantLangChain: knowledgeBase.assistantLangChain, http, messages, apiConfig, @@ -46,7 +46,7 @@ export const useSendMessages = (): UseSendMessages => { setIsLoading(false); } }, - [assistantLangChain] + [knowledgeBase.assistantLangChain] ); return { isLoading, sendMessages }; diff --git a/x-pack/packages/kbn-elastic-assistant/impl/assistant_context/constants.tsx b/x-pack/packages/kbn-elastic-assistant/impl/assistant_context/constants.tsx index cad3783c4669b..fbf1f68e05e0d 100644 --- a/x-pack/packages/kbn-elastic-assistant/impl/assistant_context/constants.tsx +++ b/x-pack/packages/kbn-elastic-assistant/impl/assistant_context/constants.tsx @@ -5,7 +5,14 @@ * 2.0. */ +import { KnowledgeBaseConfig } from '../assistant/types'; + export const DEFAULT_ASSISTANT_NAMESPACE = 'elasticAssistantDefault'; export const QUICK_PROMPT_LOCAL_STORAGE_KEY = 'quickPrompts'; export const SYSTEM_PROMPT_LOCAL_STORAGE_KEY = 'systemPrompts'; export const LAST_CONVERSATION_ID_LOCAL_STORAGE_KEY = 'lastConversationId'; +export const KNOWLEDGE_BASE_LOCAL_STORAGE_KEY = 'knowledgeBase'; + +export const DEFAULT_KNOWLEDGE_BASE_SETTINGS: KnowledgeBaseConfig = { + assistantLangChain: false, +}; diff --git a/x-pack/packages/kbn-elastic-assistant/impl/assistant_context/index.test.tsx b/x-pack/packages/kbn-elastic-assistant/impl/assistant_context/index.test.tsx index 89d3e4c6e8878..7e50643ae7595 100644 --- a/x-pack/packages/kbn-elastic-assistant/impl/assistant_context/index.test.tsx +++ b/x-pack/packages/kbn-elastic-assistant/impl/assistant_context/index.test.tsx @@ -28,7 +28,6 @@ const ContextWrapper: React.FC = ({ children }) => ( CodeBlockDetails[][]; baseAllow: string[]; @@ -73,6 +74,7 @@ export interface AssistantProviderProps { }) => EuiCommentProps[]; http: HttpSetup; getInitialConversations: () => Record; + modelEvaluatorEnabled?: boolean; nameSpace?: string; setConversations: React.Dispatch>>; setDefaultAllow: React.Dispatch>; @@ -87,7 +89,6 @@ export interface UseAssistantContext { augmentMessageCodeBlocks: (currentConversation: Conversation) => CodeBlockDetails[][]; allQuickPrompts: QuickPrompt[]; allSystemPrompts: Prompt[]; - assistantLangChain: boolean; baseAllow: string[]; baseAllowReplacement: string[]; docLinks: Omit; @@ -110,8 +111,10 @@ export interface UseAssistantContext { showAnonymizedValues: boolean; }) => EuiCommentProps[]; http: HttpSetup; + knowledgeBase: KnowledgeBaseConfig; localStorageLastConversationId: string | undefined; promptContexts: Record; + modelEvaluatorEnabled: boolean; nameSpace: string; registerPromptContext: RegisterPromptContext; selectedSettingsTab: SettingsTabs; @@ -120,6 +123,7 @@ export interface UseAssistantContext { setConversations: React.Dispatch>>; setDefaultAllow: React.Dispatch>; setDefaultAllowReplacement: React.Dispatch>; + setKnowledgeBase: React.Dispatch>; setLastConversationId: React.Dispatch>; setSelectedSettingsTab: React.Dispatch>; setShowAssistantOverlay: (showAssistantOverlay: ShowAssistantOverlay) => void; @@ -133,7 +137,6 @@ const AssistantContext = React.createContext(un export const AssistantProvider: React.FC = ({ actionTypeRegistry, assistantAvailability, - assistantLangChain, assistantTelemetry, augmentMessageCodeBlocks, baseAllow, @@ -149,6 +152,7 @@ export const AssistantProvider: React.FC = ({ getComments, http, getInitialConversations, + modelEvaluatorEnabled = false, nameSpace = DEFAULT_ASSISTANT_NAMESPACE, setConversations, setDefaultAllow, @@ -174,6 +178,14 @@ export const AssistantProvider: React.FC = ({ const [localStorageLastConversationId, setLocalStorageLastConversationId] = useLocalStorage(`${nameSpace}.${LAST_CONVERSATION_ID_LOCAL_STORAGE_KEY}`); + /** + * Local storage for knowledge base configuration, prefixed by assistant nameSpace + */ + const [localStorageKnowledgeBase, setLocalStorageKnowledgeBase] = useLocalStorage( + `${nameSpace}.${KNOWLEDGE_BASE_LOCAL_STORAGE_KEY}`, + DEFAULT_KNOWLEDGE_BASE_SETTINGS + ); + /** * Prompt contexts are used to provide components a way to register and make their data available to the assistant. */ @@ -254,7 +266,6 @@ export const AssistantProvider: React.FC = ({ () => ({ actionTypeRegistry, assistantAvailability, - assistantLangChain, assistantTelemetry, augmentMessageCodeBlocks, allQuickPrompts: localStorageQuickPrompts ?? [], @@ -272,6 +283,8 @@ export const AssistantProvider: React.FC = ({ docLinks, getComments, http, + knowledgeBase: localStorageKnowledgeBase ?? DEFAULT_KNOWLEDGE_BASE_SETTINGS, + modelEvaluatorEnabled, promptContexts, nameSpace, registerPromptContext, @@ -281,6 +294,7 @@ export const AssistantProvider: React.FC = ({ setConversations: onConversationsUpdated, setDefaultAllow, setDefaultAllowReplacement, + setKnowledgeBase: setLocalStorageKnowledgeBase, setSelectedSettingsTab, setShowAssistantOverlay, showAssistantOverlay, @@ -292,7 +306,6 @@ export const AssistantProvider: React.FC = ({ [ actionTypeRegistry, assistantAvailability, - assistantLangChain, assistantTelemetry, augmentMessageCodeBlocks, baseAllow, @@ -308,9 +321,11 @@ export const AssistantProvider: React.FC = ({ docLinks, getComments, http, + localStorageKnowledgeBase, localStorageLastConversationId, localStorageQuickPrompts, localStorageSystemPrompts, + modelEvaluatorEnabled, nameSpace, onConversationsUpdated, promptContexts, @@ -318,6 +333,7 @@ export const AssistantProvider: React.FC = ({ selectedSettingsTab, setDefaultAllow, setDefaultAllowReplacement, + setLocalStorageKnowledgeBase, setLocalStorageLastConversationId, setLocalStorageQuickPrompts, setLocalStorageSystemPrompts, diff --git a/x-pack/packages/kbn-elastic-assistant/impl/knowledge_base/knowledge_base_settings/knowledge_base_settings.tsx b/x-pack/packages/kbn-elastic-assistant/impl/knowledge_base/knowledge_base_settings/knowledge_base_settings.tsx new file mode 100644 index 0000000000000..2c667a5739ef6 --- /dev/null +++ b/x-pack/packages/kbn-elastic-assistant/impl/knowledge_base/knowledge_base_settings/knowledge_base_settings.tsx @@ -0,0 +1,294 @@ +/* + * 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, useMemo } from 'react'; +import { + EuiFormRow, + EuiTitle, + EuiText, + EuiHorizontalRule, + EuiLoadingSpinner, + EuiSpacer, + EuiSwitchEvent, + EuiLink, + EuiBetaBadge, + EuiFlexGroup, + EuiFlexItem, + EuiHealth, + EuiButtonEmpty, + EuiSwitch, +} from '@elastic/eui'; + +import { FormattedMessage } from '@kbn/i18n-react'; +import { css } from '@emotion/react'; +import * as i18n from './translations'; +import { useAssistantContext } from '../../assistant_context'; +import { useDeleteKnowledgeBase } from '../use_delete_knowledge_base/use_delete_knowledge_base'; +import { useKnowledgeBaseStatus } from '../use_knowledge_base_status/use_knowledge_base_status'; +import { useSetupKnowledgeBase } from '../use_setup_knowledge_base/use_setup_knowledge_base'; + +import type { KnowledgeBaseConfig } from '../../assistant/types'; + +const ESQL_RESOURCE = 'esql'; +const KNOWLEDGE_BASE_INDEX_PATTERN = '.kibana-elastic-ai-assistant-kb'; + +interface Props { + knowledgeBase: KnowledgeBaseConfig; + setUpdatedKnowledgeBaseSettings: React.Dispatch>; +} + +/** + * Knowledge Base Settings -- enable and disable LangChain integration, Knowledge Base, and ESQL KB Documents + */ +export const KnowledgeBaseSettings: React.FC = React.memo( + ({ knowledgeBase, setUpdatedKnowledgeBaseSettings }) => { + const { http } = useAssistantContext(); + const { + data: kbStatus, + isLoading, + isFetching, + } = useKnowledgeBaseStatus({ http, resource: ESQL_RESOURCE }); + const { mutate: setupKB, isLoading: isSettingUpKB } = useSetupKnowledgeBase({ http }); + const { mutate: deleteKB, isLoading: isDeletingUpKB } = useDeleteKnowledgeBase({ http }); + + // Resource enabled state + const isKnowledgeBaseEnabled = + (kbStatus?.index_exists && kbStatus?.pipeline_exists && kbStatus?.elser_exists) ?? false; + const isESQLEnabled = kbStatus?.esql_exists ?? false; + + // Resource availability state + const isLoadingKb = isLoading || isFetching || isSettingUpKB || isDeletingUpKB; + const isKnowledgeBaseAvailable = knowledgeBase.assistantLangChain && kbStatus?.elser_exists; + const isESQLAvailable = + knowledgeBase.assistantLangChain && isKnowledgeBaseAvailable && isKnowledgeBaseEnabled; + + // Calculated health state for EuiHealth component + const elserHealth = kbStatus?.elser_exists ? 'success' : 'subdued'; + const knowledgeBaseHealth = isKnowledgeBaseEnabled ? 'success' : 'subdued'; + const esqlHealth = isESQLEnabled ? 'success' : 'subdued'; + + ////////////////////////////////////////////////////////////////////////////////////////// + // Main `Knowledge Base` switch, which toggles the `assistantLangChain` UI feature toggle + // setting that is saved to localstorage + const onEnableAssistantLangChainChange = useCallback( + (event: EuiSwitchEvent) => { + setUpdatedKnowledgeBaseSettings({ + ...knowledgeBase, + assistantLangChain: event.target.checked, + }); + + // If enabling and ELSER exists, try to set up automatically + if (event.target.checked && kbStatus?.elser_exists) { + setupKB(ESQL_RESOURCE); + } + }, + [kbStatus?.elser_exists, knowledgeBase, setUpdatedKnowledgeBaseSettings, setupKB] + ); + + const assistantLangChainSwitch = useMemo(() => { + return isLoadingKb ? ( + + ) : ( + + ); + }, [isLoadingKb, knowledgeBase.assistantLangChain, onEnableAssistantLangChainChange]); + + ////////////////////////////////////////////////////////////////////////////////////////// + // Knowledge Base Resource + const onEnableKB = useCallback( + (enabled: boolean) => { + if (enabled) { + setupKB(); + } else { + deleteKB(); + } + }, + [deleteKB, setupKB] + ); + + const knowledgeBaseActionButton = useMemo(() => { + return isLoadingKb || !isKnowledgeBaseAvailable ? ( + <> + ) : ( + onEnableKB(!isKnowledgeBaseEnabled)} + size="xs" + > + {isKnowledgeBaseEnabled + ? i18n.KNOWLEDGE_BASE_DELETE_BUTTON + : i18n.KNOWLEDGE_BASE_INIT_BUTTON} + + ); + }, [isKnowledgeBaseAvailable, isKnowledgeBaseEnabled, isLoadingKb, onEnableKB]); + + const knowledgeBaseDescription = useMemo(() => { + return isKnowledgeBaseEnabled ? ( + <> + {i18n.KNOWLEDGE_BASE_DESCRIPTION_INSTALLED(KNOWLEDGE_BASE_INDEX_PATTERN)}{' '} + {knowledgeBaseActionButton} + + ) : ( + <> + {i18n.KNOWLEDGE_BASE_DESCRIPTION} {knowledgeBaseActionButton} + + ); + }, [isKnowledgeBaseEnabled, knowledgeBaseActionButton]); + + ////////////////////////////////////////////////////////////////////////////////////////// + // ESQL Resource + const onEnableESQL = useCallback( + (enabled: boolean) => { + if (enabled) { + setupKB(ESQL_RESOURCE); + } else { + deleteKB(ESQL_RESOURCE); + } + }, + [deleteKB, setupKB] + ); + + const esqlActionButton = useMemo(() => { + return isLoadingKb || !isESQLAvailable ? ( + <> + ) : ( + onEnableESQL(!isESQLEnabled)} + size="xs" + > + {isESQLEnabled ? i18n.KNOWLEDGE_BASE_DELETE_BUTTON : i18n.KNOWLEDGE_BASE_INIT_BUTTON} + + ); + }, [isLoadingKb, isESQLAvailable, isESQLEnabled, onEnableESQL]); + + const esqlDescription = useMemo(() => { + return isESQLEnabled ? ( + <> + {i18n.ESQL_DESCRIPTION_INSTALLED} {esqlActionButton} + + ) : ( + <> + {i18n.ESQL_DESCRIPTION} {esqlActionButton} + + ); + }, [esqlActionButton, isESQLEnabled]); + + return ( + <> + +

+ {i18n.SETTINGS_TITLE}{' '} + +

+
+ + {i18n.SETTINGS_DESCRIPTION} + + + + {assistantLangChainSwitch} + + + + + +
+ {i18n.KNOWLEDGE_BASE_ELSER_LABEL} + + + {i18n.KNOWLEDGE_BASE_ELSER_MACHINE_LEARNING} + + ), + seeDocs: ( + + {i18n.KNOWLEDGE_BASE_ELSER_SEE_DOCS} + + ), + }} + /> + +
+
+ +
+ {i18n.KNOWLEDGE_BASE_LABEL} + + {knowledgeBaseDescription} + +
+
+ + + {i18n.ESQL_LABEL} + + {esqlDescription} + + + +
+ + ); + } +); + +KnowledgeBaseSettings.displayName = 'KnowledgeBaseSettings'; diff --git a/x-pack/packages/kbn-elastic-assistant/impl/knowledge_base/knowledge_base_settings/translations.ts b/x-pack/packages/kbn-elastic-assistant/impl/knowledge_base/knowledge_base_settings/translations.ts new file mode 100644 index 0000000000000..95417ddf6a889 --- /dev/null +++ b/x-pack/packages/kbn-elastic-assistant/impl/knowledge_base/knowledge_base_settings/translations.ts @@ -0,0 +1,109 @@ +/* + * 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'; + +export const SETTINGS_TITLE = i18n.translate( + 'xpack.elasticAssistant.assistant.settings.knowledgeBaseSettings.settingsTitle', + { + defaultMessage: 'Knowledge Base', + } +); + +export const SETTINGS_BADGE = i18n.translate( + 'xpack.elasticAssistant.assistant.settings.knowledgeBaseSettings.settingsBadgeTitle', + { + defaultMessage: 'Experimental', + } +); + +export const SETTINGS_DESCRIPTION = i18n.translate( + 'xpack.elasticAssistant.assistant.settings.knowledgeBaseSettings.settingsDescription', + { + defaultMessage: + 'Powered by ELSER, the Knowledge Base enables the ability to recall documents and other relevant context within your conversation.', + } +); + +export const KNOWLEDGE_BASE_LABEL = i18n.translate( + 'xpack.elasticAssistant.assistant.settings.knowledgeBaseSettings.knowledgeBaseLabel', + { + defaultMessage: 'Knowledge Base', + } +); + +export const KNOWLEDGE_BASE_DESCRIPTION = i18n.translate( + 'xpack.elasticAssistant.assistant.settings.knowledgeBaseSettings.knowledgeBaseDescription', + { + defaultMessage: 'Index where Knowledge Base docs are stored', + } +); + +export const KNOWLEDGE_BASE_DESCRIPTION_INSTALLED = (kbIndexPattern: string) => + i18n.translate( + 'xpack.elasticAssistant.assistant.settings.knowledgeBaseSettings.knowledgeBaseInstalledDescription', + { + defaultMessage: 'Initialized to `{kbIndexPattern}`', + values: { kbIndexPattern }, + } + ); + +export const KNOWLEDGE_BASE_INIT_BUTTON = i18n.translate( + 'xpack.elasticAssistant.assistant.settings.knowledgeBaseSettings.initializeKnowledgeBaseButton', + { + defaultMessage: 'Initialize', + } +); + +export const KNOWLEDGE_BASE_DELETE_BUTTON = i18n.translate( + 'xpack.elasticAssistant.assistant.settings.knowledgeBaseSettings.deleteKnowledgeBaseButton', + { + defaultMessage: 'Delete', + } +); + +export const KNOWLEDGE_BASE_ELSER_LABEL = i18n.translate( + 'xpack.elasticAssistant.assistant.settings.knowledgeBaseSettings.elserLabel', + { + defaultMessage: 'ELSER Configured', + } +); + +export const KNOWLEDGE_BASE_ELSER_MACHINE_LEARNING = i18n.translate( + 'xpack.elasticAssistant.assistant.settings.knowledgeBaseSettings.elserMachineLearningDescription', + { + defaultMessage: 'Machine Learning', + } +); + +export const KNOWLEDGE_BASE_ELSER_SEE_DOCS = i18n.translate( + 'xpack.elasticAssistant.assistant.settings.knowledgeBaseSettings.elserSeeDocsDescription', + { + defaultMessage: 'See docs', + } +); + +export const ESQL_LABEL = i18n.translate( + 'xpack.elasticAssistant.assistant.settings.knowledgeBaseSettings.esqlLabel', + { + defaultMessage: 'ES|QL Knowledge Base Documents', + } +); + +export const ESQL_DESCRIPTION = i18n.translate( + 'xpack.elasticAssistant.assistant.settings.knowledgeBaseSettings.esqlDescription', + { + defaultMessage: 'Knowledge Base docs for generating ES|QL queries', + } +); + +export const ESQL_DESCRIPTION_INSTALLED = i18n.translate( + 'xpack.elasticAssistant.assistant.settings.knowledgeBaseSettings.esqlInstalledDescription', + { + defaultMessage: 'ES|QL Knowledge Base docs loaded', + } +); diff --git a/x-pack/packages/kbn-elastic-assistant/impl/mock/test_providers/test_providers.tsx b/x-pack/packages/kbn-elastic-assistant/impl/mock/test_providers/test_providers.tsx index 53a73ec16b661..024e39ac46c3c 100644 --- a/x-pack/packages/kbn-elastic-assistant/impl/mock/test_providers/test_providers.tsx +++ b/x-pack/packages/kbn-elastic-assistant/impl/mock/test_providers/test_providers.tsx @@ -72,7 +72,6 @@ export const TestProvidersComponent: React.FC = ({ { expect(isSignificantTerm({ fieldValue: '500' })).toBeFalsy(); expect( isSignificantTerm({ + key: 'response_code:500', + type: 'keyword', fieldName: 'response_code', fieldValue: '500', doc_count: 1819, diff --git a/x-pack/packages/ml/agg_utils/src/type_guards.ts b/x-pack/packages/ml/agg_utils/src/type_guards.ts index ffc0d5943adb7..0e33052c8658b 100644 --- a/x-pack/packages/ml/agg_utils/src/type_guards.ts +++ b/x-pack/packages/ml/agg_utils/src/type_guards.ts @@ -19,6 +19,8 @@ import type { SignificantTerm } from './types'; */ export function isSignificantTerm(arg: unknown): arg is SignificantTerm { return isPopulatedObject(arg, [ + 'key', + 'type', 'fieldName', 'fieldValue', 'doc_count', diff --git a/x-pack/packages/ml/agg_utils/src/types.ts b/x-pack/packages/ml/agg_utils/src/types.ts index 92b1d03ea9d5e..026daf861058f 100644 --- a/x-pack/packages/ml/agg_utils/src/types.ts +++ b/x-pack/packages/ml/agg_utils/src/types.ts @@ -87,6 +87,24 @@ export interface HistogramField { type: KBN_FIELD_TYPES; } +/** + * Enumeration of significant term types. + */ +export const SIGNIFICANT_TERM_TYPE = { + KEYWORD: 'keyword', + LOG_PATTERN: 'log_pattern', +} as const; + +/** + * Type for significant term type keys. + */ +type SignificantTermTypeKeys = keyof typeof SIGNIFICANT_TERM_TYPE; + +/** + * Represents the type of significant term as determined by the SIGNIFICANT_TERM_TYPE enumeration. + */ +export type SignificantTermType = typeof SIGNIFICANT_TERM_TYPE[SignificantTermTypeKeys]; + /** * Represents significant term metadata for a field/value pair. * This interface is used as a custom type within Log Rate Analysis @@ -97,6 +115,12 @@ export interface HistogramField { * @extends FieldValuePair */ export interface SignificantTerm extends FieldValuePair { + /** The key associated with the significant term. */ + key: string; + + /** The type of the significant term. */ + type: SignificantTermType; + /** The document count for the significant term. */ doc_count: number; @@ -169,6 +193,12 @@ export interface SignificantTermGroupHistogram { * @interface */ export interface SignificantTermGroupItem extends FieldValuePair { + /** The key associated with the significant term. */ + key: string; + + /** The type of the significant term. */ + type: SignificantTermType; + /** The document count associated with this item. */ docCount: number; diff --git a/x-pack/packages/ml/trained_models_utils/src/constants/trained_models.ts b/x-pack/packages/ml/trained_models_utils/src/constants/trained_models.ts index 7bf4bbafad90d..84e8564c17719 100644 --- a/x-pack/packages/ml/trained_models_utils/src/constants/trained_models.ts +++ b/x-pack/packages/ml/trained_models_utils/src/constants/trained_models.ts @@ -62,7 +62,7 @@ export const ELASTIC_MODEL_DEFINITIONS: Record = Object defaultMessage: 'Elastic Learned Sparse EncodeR v1 (Tech Preview)', }), }, - '.elser_model_2_SNAPSHOT': { + '.elser_model_2': { modelName: 'elser', version: 2, default: true, @@ -75,7 +75,7 @@ export const ELASTIC_MODEL_DEFINITIONS: Record = Object defaultMessage: 'Elastic Learned Sparse EncodeR v2 (Tech Preview)', }), }, - '.elser_model_2_linux-x86_64_SNAPSHOT': { + '.elser_model_2_linux-x86_64': { modelName: 'elser', version: 2, os: 'Linux', diff --git a/x-pack/packages/security-solution/ecs_data_quality_dashboard/impl/data_quality/mock/test_providers/test_providers.tsx b/x-pack/packages/security-solution/ecs_data_quality_dashboard/impl/data_quality/mock/test_providers/test_providers.tsx index 56e33b008b29a..b2bd63f8101aa 100644 --- a/x-pack/packages/security-solution/ecs_data_quality_dashboard/impl/data_quality/mock/test_providers/test_providers.tsx +++ b/x-pack/packages/security-solution/ecs_data_quality_dashboard/impl/data_quality/mock/test_providers/test_providers.tsx @@ -46,7 +46,6 @@ export const TestProvidersComponent: React.FC = ({ children, isILMAvailab { await page.click(subj('visListingTitleLink-Lens-Stress-Test')); + await page.waitForSelector(subj('lnsChartSwitchPopover')); - await kibanaPage.waitForCharts({ count: 6, timeout: 60000 }); + await kibanaPage.waitForCharts({ count: 1, timeout: 60000 }); + await kibanaPage.waitForChartsSuggestions(6); }); diff --git a/x-pack/plugins/aiops/common/__mocks__/artificial_logs/final_significant_term_groups.ts b/x-pack/plugins/aiops/common/__mocks__/artificial_logs/final_significant_term_groups.ts index a149a8edc5601..7166e548449eb 100644 --- a/x-pack/plugins/aiops/common/__mocks__/artificial_logs/final_significant_term_groups.ts +++ b/x-pack/plugins/aiops/common/__mocks__/artificial_logs/final_significant_term_groups.ts @@ -12,84 +12,100 @@ export const finalSignificantTermGroups: SignificantTermGroup[] = [ docCount: 632, group: [ { - docCount: 790, - duplicate: 2, + key: 'url:login.php', + type: 'keyword', fieldName: 'url', fieldValue: 'login.php', + docCount: 790, + duplicate: 2, pValue: 0.012783309213417932, }, { - docCount: 632, - duplicate: 2, + key: 'user:Peter', + type: 'keyword', fieldName: 'user', fieldValue: 'Peter', + docCount: 632, + duplicate: 2, pValue: 0.012783309213417932, }, ], - id: '1982924514', + id: '1937394803', pValue: 0.012783309213417932, }, { docCount: 792, group: [ { - docCount: 792, - duplicate: 2, + key: 'response_code:500', + type: 'keyword', fieldName: 'response_code', fieldValue: '500', + docCount: 792, + duplicate: 2, pValue: 0.012783309213417932, }, { - docCount: 792, - duplicate: 2, + key: 'url:home.php', + type: 'keyword', fieldName: 'url', fieldValue: 'home.php', + docCount: 792, + duplicate: 2, pValue: 0.00974308761016614, }, ], - id: '2052830342', + id: '2675980076', pValue: 0.00974308761016614, }, { docCount: 790, group: [ { - docCount: 792, - duplicate: 2, + key: 'response_code:500', + type: 'keyword', fieldName: 'response_code', fieldValue: '500', + docCount: 792, + duplicate: 2, pValue: 0.012783309213417932, }, { - docCount: 790, - duplicate: 2, + key: 'url:login.php', + type: 'keyword', fieldName: 'url', fieldValue: 'login.php', + docCount: 790, + duplicate: 2, pValue: 0.012783309213417932, }, ], - id: '3851735068', + id: '3819687732', pValue: 0.012783309213417932, }, { docCount: 636, group: [ { - docCount: 792, - duplicate: 2, + key: 'url:home.php', + type: 'keyword', fieldName: 'url', fieldValue: 'home.php', + docCount: 792, + duplicate: 2, pValue: 0.00974308761016614, }, { - docCount: 636, - duplicate: 2, + key: 'user:Peter', + type: 'keyword', fieldName: 'user', fieldValue: 'Peter', + docCount: 636, + duplicate: 2, pValue: 0.00974308761016614, }, ], - id: '92732022', + id: '2091742187', pValue: 0.00974308761016614, }, ]; diff --git a/x-pack/plugins/aiops/common/__mocks__/artificial_logs/significant_term_groups.ts b/x-pack/plugins/aiops/common/__mocks__/artificial_logs/significant_term_groups.ts index ebbb8731511f9..160ce3967cd43 100644 --- a/x-pack/plugins/aiops/common/__mocks__/artificial_logs/significant_term_groups.ts +++ b/x-pack/plugins/aiops/common/__mocks__/artificial_logs/significant_term_groups.ts @@ -12,12 +12,21 @@ export const significantTermGroups: SignificantTermGroup[] = [ id: '2038579476', group: [ { + key: 'response_code:500', + type: 'keyword', fieldName: 'response_code', fieldValue: '500', docCount: 1819, pValue: 2.9589053032077285e-12, }, - { fieldName: 'url', fieldValue: 'home.php', docCount: 1744, pValue: 0.010770456205312423 }, + { + key: 'url:home.php', + type: 'keyword', + fieldName: 'url', + fieldValue: 'home.php', + docCount: 1744, + pValue: 0.010770456205312423, + }, ], docCount: 792, pValue: 0.010770456205312423, diff --git a/x-pack/plugins/aiops/common/__mocks__/artificial_logs/significant_terms.ts b/x-pack/plugins/aiops/common/__mocks__/artificial_logs/significant_terms.ts index 1c71932496d78..4512f5943f4d0 100644 --- a/x-pack/plugins/aiops/common/__mocks__/artificial_logs/significant_terms.ts +++ b/x-pack/plugins/aiops/common/__mocks__/artificial_logs/significant_terms.ts @@ -5,8 +5,12 @@ * 2.0. */ -export const significantTerms = [ +import type { SignificantTerm } from '@kbn/ml-agg-utils'; + +export const significantTerms: SignificantTerm[] = [ { + key: 'user:Peter', + type: 'keyword', fieldName: 'user', fieldValue: 'Peter', doc_count: 1981, @@ -18,6 +22,8 @@ export const significantTerms = [ normalizedScore: 0.8328439168064725, }, { + key: 'response_code:500', + type: 'keyword', fieldName: 'response_code', fieldValue: '500', doc_count: 1819, @@ -29,6 +35,8 @@ export const significantTerms = [ normalizedScore: 0.7809229492301661, }, { + key: 'url:home.php', + type: 'keyword', fieldName: 'url', fieldValue: 'home.php', doc_count: 1744, @@ -40,6 +48,8 @@ export const significantTerms = [ normalizedScore: 0.12006631193078789, }, { + key: 'url:login.php', + type: 'keyword', fieldName: 'url', fieldValue: 'login.php', doc_count: 1738, diff --git a/x-pack/plugins/aiops/common/__mocks__/farequote/significant_term_groups.ts b/x-pack/plugins/aiops/common/__mocks__/farequote/significant_term_groups.ts index 59d310ed82d44..5058f0dbe7e98 100644 --- a/x-pack/plugins/aiops/common/__mocks__/farequote/significant_term_groups.ts +++ b/x-pack/plugins/aiops/common/__mocks__/farequote/significant_term_groups.ts @@ -12,12 +12,16 @@ export const significantTermGroups: SignificantTermGroup[] = [ id: 'group-1', group: [ { + key: 'custom_field.keyword:deviation', + type: 'keyword', fieldName: 'custom_field.keyword', fieldValue: 'deviation', docCount: 101, pValue: 0.01, }, { + key: 'airline:UAL', + type: 'keyword', fieldName: 'airline', fieldValue: 'UAL', docCount: 101, @@ -31,12 +35,16 @@ export const significantTermGroups: SignificantTermGroup[] = [ id: 'group-2', group: [ { + key: 'custom_field.keyword:deviation', + type: 'keyword', fieldName: 'custom_field.keyword', fieldValue: 'deviation', docCount: 49, pValue: 0.001, }, { + key: 'airline:AAL', + type: 'keyword', fieldName: 'airline', fieldValue: 'AAL', docCount: 49, diff --git a/x-pack/plugins/aiops/common/api/stream_reducer.test.ts b/x-pack/plugins/aiops/common/api/stream_reducer.test.ts index c119dcfc54c02..d779ccab356b3 100644 --- a/x-pack/plugins/aiops/common/api/stream_reducer.test.ts +++ b/x-pack/plugins/aiops/common/api/stream_reducer.test.ts @@ -39,6 +39,8 @@ describe('streamReducer', () => { initialState, addSignificantTermsAction([ { + key: 'the-field-name:the-field-value', + type: 'keyword', fieldName: 'the-field-name', fieldValue: 'the-field-value', doc_count: 10, diff --git a/x-pack/plugins/aiops/common/types.ts b/x-pack/plugins/aiops/common/types.ts index f9279686b6fe8..b46dd587838b4 100644 --- a/x-pack/plugins/aiops/common/types.ts +++ b/x-pack/plugins/aiops/common/types.ts @@ -5,7 +5,7 @@ * 2.0. */ -import type { SignificantTerm, FieldValuePair } from '@kbn/ml-agg-utils'; +import type { SignificantTerm, SignificantTermType, FieldValuePair } from '@kbn/ml-agg-utils'; export interface SignificantTermDuplicateGroup { keys: Pick; @@ -24,6 +24,8 @@ export interface ItemsetResult { } interface SimpleHierarchicalTreeNodeSet extends FieldValuePair { + key: string; + type: SignificantTermType; docCount: number; pValue: number | null; } diff --git a/x-pack/plugins/aiops/public/application/utils/build_extended_base_filter_criteria.test.ts b/x-pack/plugins/aiops/public/application/utils/build_extended_base_filter_criteria.test.ts index c27c8d66de53a..797f6f1e36a00 100644 --- a/x-pack/plugins/aiops/public/application/utils/build_extended_base_filter_criteria.test.ts +++ b/x-pack/plugins/aiops/public/application/utils/build_extended_base_filter_criteria.test.ts @@ -12,6 +12,8 @@ import type { GroupTableItem } from '../../components/log_rate_analysis_results_ import { buildExtendedBaseFilterCriteria } from './build_extended_base_filter_criteria'; const selectedSignificantTermMock: SignificantTerm = { + key: 'meta.cloud.instance_id.keyword:1234', + type: 'keyword', doc_count: 53408, bg_count: 1154, fieldName: 'meta.cloud.instance_id.keyword', @@ -29,22 +31,54 @@ const selectedGroupMock: GroupTableItem = { pValue: 2.2250738585072626e-308, uniqueItemsCount: 3, groupItemsSortedByUniqueness: [ - { fieldName: 'error.message', fieldValue: 'rate limit exceeded', docCount: 10, pValue: 0.05 }, - { fieldName: 'message', fieldValue: 'too many requests', docCount: 10, pValue: 0.05 }, { + key: 'error.message:rate limit exceeded', + type: 'keyword', + fieldName: 'error.message', + fieldValue: 'rate limit exceeded', + docCount: 10, + pValue: 0.05, + }, + { + key: 'message:too many requests', + type: 'keyword', + fieldName: 'message', + fieldValue: 'too many requests', + docCount: 10, + pValue: 0.05, + }, + { + key: 'user_agent.original.keyword:Mozilla/5.0', + type: 'keyword', fieldName: 'user_agent.original.keyword', fieldValue: 'Mozilla/5.0', docCount: 10, pValue: 0.05, }, { + key: 'beat.hostname.keyword:ip-192-168-1-1', + type: 'keyword', fieldName: 'beat.hostname.keyword', fieldValue: 'ip-192-168-1-1', docCount: 10, pValue: 0.05, }, - { fieldName: 'beat.name.keyword', fieldValue: 'i-1234', docCount: 10, pValue: 0.05 }, - { fieldName: 'docker.container.id.keyword', fieldValue: 'asdf', docCount: 10, pValue: 0.05 }, + { + key: 'beat.name.keyword:i-1234', + type: 'keyword', + fieldName: 'beat.name.keyword', + fieldValue: 'i-1234', + docCount: 10, + pValue: 0.05, + }, + { + key: 'docker.container.id.keyword:asdf', + type: 'keyword', + fieldName: 'docker.container.id.keyword', + fieldValue: 'asdf', + docCount: 10, + pValue: 0.05, + }, ], histogram: [], }; diff --git a/x-pack/plugins/aiops/public/application/utils/build_extended_base_filter_criteria.ts b/x-pack/plugins/aiops/public/application/utils/build_extended_base_filter_criteria.ts index 87cc5afc65e25..ee4e707304ff4 100644 --- a/x-pack/plugins/aiops/public/application/utils/build_extended_base_filter_criteria.ts +++ b/x-pack/plugins/aiops/public/application/utils/build_extended_base_filter_criteria.ts @@ -11,10 +11,12 @@ import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import type { Query } from '@kbn/es-query'; -import type { SignificantTerm } from '@kbn/ml-agg-utils'; +import { type SignificantTerm, SIGNIFICANT_TERM_TYPE } from '@kbn/ml-agg-utils'; import { buildBaseFilterCriteria } from '@kbn/ml-query-utils'; +import { getCategoryQuery } from '../../../common/api/log_categorization/get_category_query'; + import type { GroupTableItem } from '../../components/log_rate_analysis_results_table/types'; /* @@ -38,29 +40,69 @@ export function buildExtendedBaseFilterCriteria( if (selectedGroup) { const allItems = selectedGroup.groupItemsSortedByUniqueness; for (const item of allItems) { - const { fieldName, fieldValue } = item; - groupFilter.push({ term: { [fieldName]: fieldValue } }); + const { fieldName, fieldValue, key, type, docCount } = item; + if (type === SIGNIFICANT_TERM_TYPE.KEYWORD) { + groupFilter.push({ term: { [fieldName]: fieldValue } }); + } else { + groupFilter.push( + getCategoryQuery(fieldName, [ + { + key, + count: docCount, + examples: [], + }, + ]) + ); + } } } if (includeSelectedSignificantTerm) { if (selectedSignificantTerm) { - filterCriteria.push({ - term: { [selectedSignificantTerm.fieldName]: selectedSignificantTerm.fieldValue }, - }); + if (selectedSignificantTerm.type === 'keyword') { + filterCriteria.push({ + term: { [selectedSignificantTerm.fieldName]: selectedSignificantTerm.fieldValue }, + }); + } else { + filterCriteria.push( + getCategoryQuery(selectedSignificantTerm.fieldName, [ + { + key: `${selectedSignificantTerm.key}`, + count: selectedSignificantTerm.doc_count, + examples: [], + }, + ]) + ); + } } else if (selectedGroup) { filterCriteria.push(...groupFilter); } } else if (selectedSignificantTerm && !includeSelectedSignificantTerm) { - filterCriteria.push({ - bool: { - must_not: [ - { - term: { [selectedSignificantTerm.fieldName]: selectedSignificantTerm.fieldValue }, - }, - ], - }, - }); + if (selectedSignificantTerm.type === 'keyword') { + filterCriteria.push({ + bool: { + must_not: [ + { + term: { [selectedSignificantTerm.fieldName]: selectedSignificantTerm.fieldValue }, + }, + ], + }, + }); + } else { + filterCriteria.push({ + bool: { + must_not: [ + getCategoryQuery(selectedSignificantTerm.fieldName, [ + { + key: `${selectedSignificantTerm.key}`, + count: selectedSignificantTerm.doc_count, + examples: [], + }, + ]), + ], + }, + }); + } } else if (selectedGroup && !includeSelectedSignificantTerm) { filterCriteria.push({ bool: { diff --git a/x-pack/plugins/aiops/public/components/log_rate_analysis_results_table/get_group_table_items.test.ts b/x-pack/plugins/aiops/public/components/log_rate_analysis_results_table/get_group_table_items.test.ts index 9986925f07a88..6e6ea7594f69c 100644 --- a/x-pack/plugins/aiops/public/components/log_rate_analysis_results_table/get_group_table_items.test.ts +++ b/x-pack/plugins/aiops/public/components/log_rate_analysis_results_table/get_group_table_items.test.ts @@ -18,22 +18,26 @@ describe('getGroupTableItems', () => { docCount: 632, groupItemsSortedByUniqueness: [ { - docCount: 632, - duplicate: 2, + key: 'user:Peter', + type: 'keyword', fieldName: 'user', fieldValue: 'Peter', + docCount: 632, + duplicate: 2, pValue: 0.012783309213417932, }, { - docCount: 790, - duplicate: 2, + key: 'url:login.php', + type: 'keyword', fieldName: 'url', fieldValue: 'login.php', + docCount: 790, + duplicate: 2, pValue: 0.012783309213417932, }, ], histogram: undefined, - id: '1982924514', + id: '1937394803', pValue: 0.012783309213417932, uniqueItemsCount: 0, }, @@ -41,22 +45,26 @@ describe('getGroupTableItems', () => { docCount: 792, groupItemsSortedByUniqueness: [ { - docCount: 792, - duplicate: 2, + key: 'response_code:500', + type: 'keyword', fieldName: 'response_code', fieldValue: '500', + docCount: 792, + duplicate: 2, pValue: 0.012783309213417932, }, { - docCount: 792, - duplicate: 2, + key: 'url:home.php', + type: 'keyword', fieldName: 'url', fieldValue: 'home.php', + docCount: 792, + duplicate: 2, pValue: 0.00974308761016614, }, ], histogram: undefined, - id: '2052830342', + id: '2675980076', pValue: 0.00974308761016614, uniqueItemsCount: 0, }, @@ -64,22 +72,26 @@ describe('getGroupTableItems', () => { docCount: 790, groupItemsSortedByUniqueness: [ { - docCount: 790, - duplicate: 2, + key: 'url:login.php', + type: 'keyword', fieldName: 'url', fieldValue: 'login.php', + docCount: 790, + duplicate: 2, pValue: 0.012783309213417932, }, { - docCount: 792, - duplicate: 2, + key: 'response_code:500', + type: 'keyword', fieldName: 'response_code', fieldValue: '500', + docCount: 792, + duplicate: 2, pValue: 0.012783309213417932, }, ], histogram: undefined, - id: '3851735068', + id: '3819687732', pValue: 0.012783309213417932, uniqueItemsCount: 0, }, @@ -87,22 +99,26 @@ describe('getGroupTableItems', () => { docCount: 636, groupItemsSortedByUniqueness: [ { - docCount: 636, - duplicate: 2, + key: 'user:Peter', + type: 'keyword', fieldName: 'user', fieldValue: 'Peter', + docCount: 636, + duplicate: 2, pValue: 0.00974308761016614, }, { - docCount: 792, - duplicate: 2, + key: 'url:home.php', + type: 'keyword', fieldName: 'url', fieldValue: 'home.php', + docCount: 792, + duplicate: 2, pValue: 0.00974308761016614, }, ], histogram: undefined, - id: '92732022', + id: '2091742187', pValue: 0.00974308761016614, uniqueItemsCount: 0, }, diff --git a/x-pack/plugins/aiops/public/components/log_rate_analysis_results_table/get_group_table_items.ts b/x-pack/plugins/aiops/public/components/log_rate_analysis_results_table/get_group_table_items.ts index 68ba4471a7b5e..11331037de481 100644 --- a/x-pack/plugins/aiops/public/components/log_rate_analysis_results_table/get_group_table_items.ts +++ b/x-pack/plugins/aiops/public/components/log_rate_analysis_results_table/get_group_table_items.ts @@ -19,9 +19,24 @@ export function getGroupTableItems( const dedupedGroup: GroupTableItemGroup[] = []; sortedGroup.forEach((pair) => { - const { fieldName, fieldValue, docCount: pairDocCount, pValue: pairPValue, duplicate } = pair; + const { + key, + type, + fieldName, + fieldValue, + docCount: pairDocCount, + pValue: pairPValue, + duplicate, + } = pair; if ((duplicate ?? 0) <= 1) { - dedupedGroup.push({ fieldName, fieldValue, docCount: pairDocCount, pValue: pairPValue }); + dedupedGroup.push({ + key, + type, + fieldName, + fieldValue, + docCount: pairDocCount, + pValue: pairPValue, + }); } }); diff --git a/x-pack/plugins/aiops/public/components/log_rate_analysis_results_table/log_rate_analysis_results_table.tsx b/x-pack/plugins/aiops/public/components/log_rate_analysis_results_table/log_rate_analysis_results_table.tsx index 4e87f58293f8b..de66040c8e382 100644 --- a/x-pack/plugins/aiops/public/components/log_rate_analysis_results_table/log_rate_analysis_results_table.tsx +++ b/x-pack/plugins/aiops/public/components/log_rate_analysis_results_table/log_rate_analysis_results_table.tsx @@ -6,6 +6,7 @@ */ import React, { FC, useCallback, useEffect, useMemo, useState } from 'react'; +import { css } from '@emotion/react'; import { orderBy, isEqual } from 'lodash'; import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; @@ -14,8 +15,10 @@ import { EuiBadge, EuiBasicTable, EuiBasicTableColumn, + EuiCode, EuiIcon, EuiIconTip, + EuiText, EuiTableSortingType, EuiToolTip, } from '@elastic/eui'; @@ -25,9 +28,11 @@ import type { FieldStatsServices } from '@kbn/unified-field-list/src/components/ import type { DataView } from '@kbn/data-views-plugin/public'; import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n-react'; -import type { SignificantTerm } from '@kbn/ml-agg-utils'; +import { type SignificantTerm, SIGNIFICANT_TERM_TYPE } from '@kbn/ml-agg-utils'; import type { TimeRange as TimeRangeMs } from '@kbn/ml-date-picker'; +import { getCategoryQuery } from '../../../common/api/log_categorization/get_category_query'; + import { useEuiTheme } from '../../hooks/use_eui_theme'; import { MiniHistogram } from '../mini_histogram'; @@ -49,6 +54,15 @@ const PAGINATION_SIZE_OPTIONS = [5, 10, 20, 50]; const DEFAULT_SORT_FIELD = 'pValue'; const DEFAULT_SORT_DIRECTION = 'asc'; +const TRUNCATE_MAX_LINES = 3; +const cssMultiLineTruncation = css` + display: -webkit-box; + line-clamp: ${TRUNCATE_MAX_LINES}; + -webkit-line-clamp: ${TRUNCATE_MAX_LINES}; + -webkit-box-orient: vertical; + overflow: hidden; +`; + interface LogRateAnalysisResultsTableProps { significantTerms: SignificantTerm[]; dataView: DataView; @@ -77,7 +91,9 @@ export const LogRateAnalysisResultsTable: FC = const dataViewId = dataView.id; const { + pinnedGroup, pinnedSignificantTerm, + selectedGroup, selectedSignificantTerm, setPinnedSignificantTerm, setSelectedSignificantTerm, @@ -111,19 +127,52 @@ export const LogRateAnalysisResultsTable: FC = name: i18n.translate('xpack.aiops.logRateAnalysis.resultsTable.fieldNameLabel', { defaultMessage: 'Field name', }), - render: (_, { fieldName, fieldValue }) => ( - <> - - {fieldName} - - ), + render: (_, { fieldName, fieldValue, key, type, doc_count: count }) => { + const dslQuery = + type === SIGNIFICANT_TERM_TYPE.KEYWORD + ? searchQuery + : getCategoryQuery(fieldName, [ + { + key, + count, + examples: [], + }, + ]); + return ( + <> + {type === SIGNIFICANT_TERM_TYPE.KEYWORD && ( + + )} + {type === SIGNIFICANT_TERM_TYPE.LOG_PATTERN && ( + + + + )} + + {fieldName} + + ); + }, sortable: true, valign: 'middle', }, @@ -133,9 +182,22 @@ export const LogRateAnalysisResultsTable: FC = name: i18n.translate('xpack.aiops.logRateAnalysis.resultsTable.fieldValueLabel', { defaultMessage: 'Field value', }), - render: (_, { fieldValue }) => String(fieldValue), + render: (_, { fieldValue, type }) => ( +
+ {type === 'keyword' ? ( + String(fieldValue) + ) : ( + + + {fieldValue} + + + )} +
+ ), sortable: true, textOnly: true, + truncateText: false, valign: 'middle', }, { @@ -230,7 +292,7 @@ export const LogRateAnalysisResultsTable: FC = ), render: (_, { pValue }) => { - if (!pValue) return NOT_AVAILABLE; + if (typeof pValue !== 'number') return NOT_AVAILABLE; const label = getFailedTransactionsCorrelationImpactLabel(pValue); return label ? {label.impact} : null; }, @@ -344,7 +406,9 @@ export const LogRateAnalysisResultsTable: FC = (selectedSignificantTerm === null || !pageOfItems.some((item) => isEqual(item, selectedSignificantTerm))) && pinnedSignificantTerm === null && - pageOfItems.length > 0 + pageOfItems.length > 0 && + selectedGroup === null && + pinnedGroup === null ) { setSelectedSignificantTerm(pageOfItems[0]); } @@ -353,15 +417,19 @@ export const LogRateAnalysisResultsTable: FC = // on the current page, set the status of pinned rows back to `null`. if ( pinnedSignificantTerm !== null && - !pageOfItems.some((item) => isEqual(item, pinnedSignificantTerm)) + !pageOfItems.some((item) => isEqual(item, pinnedSignificantTerm)) && + selectedGroup === null && + pinnedGroup === null ) { setPinnedSignificantTerm(null); } }, [ + selectedGroup, selectedSignificantTerm, setSelectedSignificantTerm, setPinnedSignificantTerm, pageOfItems, + pinnedGroup, pinnedSignificantTerm, ]); diff --git a/x-pack/plugins/aiops/public/components/log_rate_analysis_results_table/types.ts b/x-pack/plugins/aiops/public/components/log_rate_analysis_results_table/types.ts index 4afe831f7bd37..66a8a7fe5ab00 100644 --- a/x-pack/plugins/aiops/public/components/log_rate_analysis_results_table/types.ts +++ b/x-pack/plugins/aiops/public/components/log_rate_analysis_results_table/types.ts @@ -11,7 +11,7 @@ import type { SignificantTerm, SignificantTermGroupItem } from '@kbn/ml-agg-util export type GroupTableItemGroup = Pick< SignificantTermGroupItem, - 'fieldName' | 'fieldValue' | 'docCount' | 'pValue' | 'duplicate' + 'key' | 'type' | 'fieldName' | 'fieldValue' | 'docCount' | 'pValue' | 'duplicate' >; export interface GroupTableItem { diff --git a/x-pack/plugins/aiops/public/components/log_rate_analysis_results_table/use_view_in_log_pattern_analysis_action.tsx b/x-pack/plugins/aiops/public/components/log_rate_analysis_results_table/use_view_in_log_pattern_analysis_action.tsx index 72fcabd6b7725..ba25db2b76aac 100644 --- a/x-pack/plugins/aiops/public/components/log_rate_analysis_results_table/use_view_in_log_pattern_analysis_action.tsx +++ b/x-pack/plugins/aiops/public/components/log_rate_analysis_results_table/use_view_in_log_pattern_analysis_action.tsx @@ -10,7 +10,7 @@ import React, { useMemo } from 'react'; import { SerializableRecord } from '@kbn/utility-types'; import { fromKueryExpression, toElasticsearchQuery } from '@kbn/es-query'; import { i18n } from '@kbn/i18n'; -import type { SignificantTerm } from '@kbn/ml-agg-utils'; +import { isSignificantTerm, type SignificantTerm, SIGNIFICANT_TERM_TYPE } from '@kbn/ml-agg-utils'; import { SEARCH_QUERY_LANGUAGE } from '@kbn/ml-query-utils'; import { useAiopsAppContext } from '../../hooks/use_aiops_app_context'; @@ -19,6 +19,9 @@ import { TableActionButton } from './table_action_button'; import { getTableItemAsKQL } from './get_table_item_as_kql'; import type { GroupTableItem, TableItemAction } from './types'; +const isLogPattern = (tableItem: SignificantTerm | GroupTableItem) => + isSignificantTerm(tableItem) && tableItem.type === SIGNIFICANT_TERM_TYPE.LOG_PATTERN; + const viewInLogPatternAnalysisMessage = i18n.translate( 'xpack.aiops.logRateAnalysis.resultsTable.linksMenu.viewInLogPatternAnalysis', { @@ -88,13 +91,15 @@ export const useViewInLogPatternAnalysisAction = (dataViewId?: string): TableIte : viewInLogPatternAnalysisMessage; const clickHandler = async () => { - const openInLogPatternAnalysisUrl = await generateLogPatternAnalysisUrl(tableItem); - if (typeof openInLogPatternAnalysisUrl === 'string') { - await application.navigateToUrl(openInLogPatternAnalysisUrl); + if (!isLogPattern(tableItem)) { + const openInLogPatternAnalysisUrl = await generateLogPatternAnalysisUrl(tableItem); + if (typeof openInLogPatternAnalysisUrl === 'string') { + await application.navigateToUrl(openInLogPatternAnalysisUrl); + } } }; - const isDisabled = logPatternAnalysisUrlError !== undefined; + const isDisabled = logPatternAnalysisUrlError !== undefined || isLogPattern(tableItem); return ( ); diff --git a/x-pack/plugins/aiops/server/routes/log_rate_analysis.ts b/x-pack/plugins/aiops/server/routes/log_rate_analysis.ts index a9ccce753a02a..7a0d1be0d7585 100644 --- a/x-pack/plugins/aiops/server/routes/log_rate_analysis.ts +++ b/x-pack/plugins/aiops/server/routes/log_rate_analysis.ts @@ -21,6 +21,7 @@ import type { NumericChartData, NumericHistogramField, } from '@kbn/ml-agg-utils'; +import { SIGNIFICANT_TERM_TYPE } from '@kbn/ml-agg-utils'; import { fetchHistogramsForFields } from '@kbn/ml-agg-utils'; import { createExecutionContext } from '@kbn/ml-route-utils'; import type { UsageCounter } from '@kbn/usage-collection-plugin/server'; @@ -40,6 +41,7 @@ import { updateLoadingStateAction, AiopsLogRateAnalysisApiAction, } from '../../common/api/log_rate_analysis'; +import { getCategoryQuery } from '../../common/api/log_categorization/get_category_query'; import { AIOPS_API_ENDPOINT } from '../../common/api'; import { PLUGIN_ID } from '../../common'; @@ -47,9 +49,11 @@ import { PLUGIN_ID } from '../../common'; import { isRequestAbortedError } from '../lib/is_request_aborted_error'; import type { AiopsLicense } from '../types'; +import { fetchSignificantCategories } from './queries/fetch_significant_categories'; import { fetchSignificantTermPValues } from './queries/fetch_significant_term_p_values'; import { fetchIndexInfo } from './queries/fetch_index_info'; import { fetchFrequentItemSets } from './queries/fetch_frequent_item_sets'; +import { fetchTerms2CategoriesCounts } from './queries/fetch_terms_2_categories_counts'; import { getHistogramQuery } from './queries/get_histogram_query'; import { getGroupFilter } from './queries/get_group_filter'; import { getSignificantTermGroups } from './queries/get_significant_term_groups'; @@ -212,10 +216,11 @@ export const defineLogRateAnalysisRoute = ( // Step 1: Index Info: Field candidates, total doc count, sample probability - const fieldCandidates: Awaited>['fieldCandidates'] = - []; + const fieldCandidates: string[] = []; let fieldCandidatesCount = fieldCandidates.length; + const textFieldCandidates: string[] = []; + let totalDocCount = 0; if (!request.body.overrides?.remainingFieldCandidates) { @@ -234,9 +239,16 @@ export const defineLogRateAnalysisRoute = ( ); try { - const indexInfo = await fetchIndexInfo(client, request.body, abortSignal); + const indexInfo = await fetchIndexInfo( + client, + request.body, + ['message', 'error.message'], + abortSignal + ); + fieldCandidates.push(...indexInfo.fieldCandidates); fieldCandidatesCount = fieldCandidates.length; + textFieldCandidates.push(...indexInfo.textFieldCandidates); totalDocCount = indexInfo.totalDocCount; } catch (e) { if (!isRequestAbortedError(e)) { @@ -280,11 +292,43 @@ export const defineLogRateAnalysisRoute = ( } } - // Step 2: Significant Terms + // Step 2: Significant Categories and Terms + + // This will store the combined count of detected significant log patterns and keywords + let fieldValuePairsCount = 0; + + const significantCategories: SignificantTerm[] = request.body.overrides + ?.significantTerms + ? request.body.overrides?.significantTerms.filter( + (d) => d.type === SIGNIFICANT_TERM_TYPE.LOG_PATTERN + ) + : []; + + // Get significant categories of text fields + if (textFieldCandidates.length > 0) { + significantCategories.push( + ...(await fetchSignificantCategories( + client, + request.body, + textFieldCandidates, + logger, + sampleProbability, + pushError, + abortSignal + )) + ); + + if (significantCategories.length > 0) { + push(addSignificantTermsAction(significantCategories)); + } + } const significantTerms: SignificantTerm[] = request.body.overrides?.significantTerms - ? request.body.overrides?.significantTerms + ? request.body.overrides?.significantTerms.filter( + (d) => d.type === SIGNIFICANT_TERM_TYPE.KEYWORD + ) : []; + const fieldsToSample = new Set(); // Don't use more than 10 here otherwise Kibana will emit an error @@ -356,7 +400,7 @@ export const defineLogRateAnalysisRoute = ( defaultMessage: 'Identified {fieldValuePairsCount, plural, one {# significant field/value pair} other {# significant field/value pairs}}.', values: { - fieldValuePairsCount: significantTerms.length, + fieldValuePairsCount, }, } ), @@ -379,7 +423,9 @@ export const defineLogRateAnalysisRoute = ( }); await pValuesQueue.drain(); - if (significantTerms.length === 0) { + fieldValuePairsCount = significantCategories.length + significantTerms.length; + + if (fieldValuePairsCount === 0) { logDebugMessage('Stopping analysis, did not find significant terms.'); endWithUpdatedLoadingState(); return; @@ -474,6 +520,25 @@ export const defineLogRateAnalysisRoute = ( abortSignal ); + if (significantCategories.length > 0) { + const { fields: significantCategoriesFields, df: significantCategoriesDf } = + await fetchTerms2CategoriesCounts( + client, + request.body, + JSON.parse(request.body.searchQuery) as estypes.QueryDslQueryContainer, + significantTerms, + significantCategories, + request.body.deviationMin, + request.body.deviationMax, + logger, + pushError, + abortSignal + ); + + fields.push(...significantCategoriesFields); + df.push(...significantCategoriesDf); + } + if (shouldStop) { logDebugMessage('shouldStop after fetching frequent_item_sets.'); end(); @@ -483,7 +548,7 @@ export const defineLogRateAnalysisRoute = ( if (fields.length > 0 && df.length > 0) { const significantTermGroups = getSignificantTermGroups( df, - significantTerms, + [...significantTerms, ...significantCategories], fields ); @@ -555,7 +620,7 @@ export const defineLogRateAnalysisRoute = ( return; } const histogram = - overallTimeSeries.data.map((o, i) => { + overallTimeSeries.data.map((o) => { const current = cpgTimeSeries.data.find( (d1) => d1.key_as_string === o.key_as_string ) ?? { @@ -657,7 +722,7 @@ export const defineLogRateAnalysisRoute = ( } const histogram = - overallTimeSeries.data.map((o, i) => { + overallTimeSeries.data.map((o) => { const current = cpTimeSeries.data.find( (d1) => d1.key_as_string === o.key_as_string ) ?? { @@ -673,7 +738,7 @@ export const defineLogRateAnalysisRoute = ( const { fieldName, fieldValue } = cp; - loaded += (1 / significantTerms.length) * PROGRESS_STEP_HISTOGRAMS; + loaded += (1 / fieldValuePairsCount) * PROGRESS_STEP_HISTOGRAMS; pushHistogramDataLoadingState(); push( addSignificantTermsHistogramAction([ @@ -691,6 +756,90 @@ export const defineLogRateAnalysisRoute = ( await fieldValueHistogramQueue.drain(); } + // histograms for text field patterns + if (overallTimeSeries !== undefined && significantCategories.length > 0) { + const significantCategoriesHistogramQueries = significantCategories.map((d) => { + const histogramQuery = getHistogramQuery(request.body); + const categoryQuery = getCategoryQuery(d.fieldName, [ + { key: `${d.key}`, count: d.doc_count, examples: [] }, + ]); + if (Array.isArray(histogramQuery.bool?.filter)) { + histogramQuery.bool?.filter?.push(categoryQuery); + } + return histogramQuery; + }); + + for (const [i, histogramQuery] of significantCategoriesHistogramQueries.entries()) { + const cp = significantCategories[i]; + let catTimeSeries: NumericChartData; + + try { + catTimeSeries = ( + (await fetchHistogramsForFields( + client, + request.body.index, + histogramQuery, + // fields + [ + { + fieldName: request.body.timeFieldName, + type: KBN_FIELD_TYPES.DATE, + interval: overallTimeSeries.interval, + min: overallTimeSeries.stats[0], + max: overallTimeSeries.stats[1], + }, + ], + // samplerShardSize + -1, + undefined, + abortSignal, + sampleProbability, + RANDOM_SAMPLER_SEED + )) as [NumericChartData] + )[0]; + } catch (e) { + logger.error( + `Failed to fetch the histogram data for field/value pair "${cp.fieldName}:${ + cp.fieldValue + }", got: \n${e.toString()}` + ); + pushError( + `Failed to fetch the histogram data for field/value pair "${cp.fieldName}:${cp.fieldValue}".` + ); + return; + } + + const histogram = + overallTimeSeries.data.map((o) => { + const current = catTimeSeries.data.find( + (d1) => d1.key_as_string === o.key_as_string + ) ?? { + doc_count: 0, + }; + return { + key: o.key, + key_as_string: o.key_as_string ?? '', + doc_count_significant_term: current.doc_count, + doc_count_overall: Math.max(0, o.doc_count - current.doc_count), + }; + }) ?? []; + + const { fieldName, fieldValue } = cp; + + loaded += (1 / fieldValuePairsCount) * PROGRESS_STEP_HISTOGRAMS; + pushHistogramDataLoadingState(); + push( + addSignificantTermsHistogramAction([ + { + fieldName, + fieldValue, + histogram, + }, + ]) + ); + } + } + endWithUpdatedLoadingState(); } catch (e) { if (!isRequestAbortedError(e)) { diff --git a/x-pack/plugins/aiops/server/routes/queries/fetch_categories.ts b/x-pack/plugins/aiops/server/routes/queries/fetch_categories.ts new file mode 100644 index 0000000000000..dd72e21990150 --- /dev/null +++ b/x-pack/plugins/aiops/server/routes/queries/fetch_categories.ts @@ -0,0 +1,149 @@ +/* + * 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 { get } from 'lodash'; +import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; + +import { ElasticsearchClient } from '@kbn/core/server'; +import type { Logger } from '@kbn/logging'; +import { + createRandomSamplerWrapper, + type RandomSamplerWrapper, +} from '@kbn/ml-random-sampler-utils'; + +import { RANDOM_SAMPLER_SEED } from '../../../common/constants'; +import type { AiopsLogRateAnalysisSchema } from '../../../common/api/log_rate_analysis'; +import { createCategoryRequest } from '../../../common/api/log_categorization/create_category_request'; +import type { + Category, + CategoriesAgg, + SparkLinesPerCategory, +} from '../../../common/api/log_categorization/types'; + +import { isRequestAbortedError } from '../../lib/is_request_aborted_error'; + +import { getQueryWithParams } from './get_query_with_params'; + +export const getCategoryRequest = ( + params: AiopsLogRateAnalysisSchema, + fieldName: string, + from: number | undefined, + to: number | undefined, + { wrap }: RandomSamplerWrapper +): estypes.SearchRequest => { + const { index, timeFieldName } = params; + const query = getQueryWithParams({ + params, + }); + const { params: request } = createCategoryRequest( + index, + fieldName, + timeFieldName, + from, + to, + query, + wrap + ); + + return request; +}; + +export interface FetchCategoriesResponse { + categories: Category[]; + sparkLinesPerCategory: SparkLinesPerCategory; +} + +export const fetchCategories = async ( + esClient: ElasticsearchClient, + params: AiopsLogRateAnalysisSchema, + fieldNames: string[], + from: number | undefined, + to: number | undefined, + logger: Logger, + // The default value of 1 means no sampling will be used + sampleProbability: number = 1, + emitError: (m: string) => void, + abortSignal?: AbortSignal +): Promise => { + const randomSamplerWrapper = createRandomSamplerWrapper({ + probability: sampleProbability, + seed: RANDOM_SAMPLER_SEED, + }); + + const result: FetchCategoriesResponse[] = []; + + const settledPromises = await Promise.allSettled( + fieldNames.map((fieldName) => { + const request = getCategoryRequest(params, fieldName, from, to, randomSamplerWrapper); + return esClient.search(request, { + signal: abortSignal, + maxRetries: 0, + }); + }) + ); + + function reportError(fieldName: string, error: unknown) { + if (!isRequestAbortedError(error)) { + logger.error( + `Failed to fetch category aggregation for fieldName "${fieldName}", got: \n${JSON.stringify( + error, + null, + 2 + )}` + ); + emitError(`Failed to fetch category aggregation for fieldName "${fieldName}".`); + } + } + + for (const [index, settledPromise] of settledPromises.entries()) { + const fieldName = fieldNames[index]; + + if (settledPromise.status === 'rejected') { + reportError(fieldName, settledPromise.reason); + // Still continue the analysis even if individual category queries fail. + continue; + } + + const resp = settledPromise.value; + const { aggregations } = resp; + + if (aggregations === undefined) { + reportError(fieldName, resp); + // Still continue the analysis even if individual category queries fail. + continue; + } + + const sparkLinesPerCategory: SparkLinesPerCategory = {}; + const { + categories: { buckets }, + } = randomSamplerWrapper.unwrap( + aggregations as unknown as Record + ) as CategoriesAgg; + + const categories: Category[] = buckets.map((b) => { + sparkLinesPerCategory[b.key] = + b.sparkline === undefined + ? {} + : b.sparkline.buckets.reduce>((acc2, cur2) => { + acc2[cur2.key] = cur2.doc_count; + return acc2; + }, {}); + + return { + key: b.key, + count: b.doc_count, + examples: b.hit.hits.hits.map((h) => get(h._source, fieldName)), + }; + }); + result.push({ + categories, + sparkLinesPerCategory, + }); + } + + return result; +}; diff --git a/x-pack/plugins/aiops/server/routes/queries/fetch_category_counts.ts b/x-pack/plugins/aiops/server/routes/queries/fetch_category_counts.ts new file mode 100644 index 0000000000000..f27d2190a8ca6 --- /dev/null +++ b/x-pack/plugins/aiops/server/routes/queries/fetch_category_counts.ts @@ -0,0 +1,125 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { cloneDeep } from 'lodash'; +import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; + +import { ElasticsearchClient } from '@kbn/core/server'; +import type { Logger } from '@kbn/logging'; +import { isPopulatedObject } from '@kbn/ml-is-populated-object'; + +import type { AiopsLogRateAnalysisSchema } from '../../../common/api/log_rate_analysis'; +import { getCategoryQuery } from '../../../common/api/log_categorization/get_category_query'; +import type { Category } from '../../../common/api/log_categorization/types'; + +import { isRequestAbortedError } from '../../lib/is_request_aborted_error'; + +import { getQueryWithParams } from './get_query_with_params'; +import type { FetchCategoriesResponse } from './fetch_categories'; + +const isMsearchResponseItem = (arg: unknown): arg is estypes.MsearchMultiSearchItem => + isPopulatedObject(arg, ['hits']); + +export const getCategoryCountRequest = ( + params: AiopsLogRateAnalysisSchema, + fieldName: string, + category: Category, + from: number | undefined, + to: number | undefined +): estypes.SearchRequest => { + const { index } = params; + + const query = getQueryWithParams({ + params, + }); + + const categoryQuery = getCategoryQuery(fieldName, [category]); + + if (Array.isArray(query.bool?.filter)) { + query.bool?.filter?.push(categoryQuery); + query.bool?.filter?.push({ + range: { + [params.timeFieldName]: { + gte: from, + lte: to, + format: 'epoch_millis', + }, + }, + }); + } + + return { + index, + body: { + query, + size: 0, + track_total_hits: true, + }, + }; +}; + +export const fetchCategoryCounts = async ( + esClient: ElasticsearchClient, + params: AiopsLogRateAnalysisSchema, + fieldName: string, + categories: FetchCategoriesResponse, + from: number | undefined, + to: number | undefined, + logger: Logger, + emitError: (m: string) => void, + abortSignal?: AbortSignal +): Promise => { + const updatedCategories = cloneDeep(categories); + + const searches = categories.categories.flatMap((category) => [ + { index: params.index }, + getCategoryCountRequest(params, fieldName, category, from, to) + .body as estypes.MsearchMultisearchBody, + ]); + + let mSearchresponse; + + try { + mSearchresponse = await esClient.msearch( + { searches }, + { + signal: abortSignal, + maxRetries: 0, + } + ); + } catch (error) { + if (!isRequestAbortedError(error)) { + logger.error( + `Failed to fetch category counts for field name "${fieldName}", got: \n${JSON.stringify( + error, + null, + 2 + )}` + ); + emitError(`Failed to fetch category counts for field name "${fieldName}".`); + } + return updatedCategories; + } + + for (const [index, resp] of mSearchresponse.responses.entries()) { + if (isMsearchResponseItem(resp)) { + updatedCategories.categories[index].count = + (resp.hits.total as estypes.SearchTotalHits).value ?? 0; + } else { + logger.error( + `Failed to fetch category count for category "${ + updatedCategories.categories[index].key + }", got: \n${JSON.stringify(resp, null, 2)}` + ); + emitError( + `Failed to fetch category count for category "${updatedCategories.categories[index].key}".` + ); + } + } + + return updatedCategories; +}; diff --git a/x-pack/plugins/aiops/server/routes/queries/fetch_index_info.ts b/x-pack/plugins/aiops/server/routes/queries/fetch_index_info.ts index c44d2f99eb95f..08c510405e32c 100644 --- a/x-pack/plugins/aiops/server/routes/queries/fetch_index_info.ts +++ b/x-pack/plugins/aiops/server/routes/queries/fetch_index_info.ts @@ -26,6 +26,8 @@ const SUPPORTED_ES_FIELD_TYPES = [ ES_FIELD_TYPES.BOOLEAN, ]; +const SUPPORTED_ES_FIELD_TYPES_TEXT = [ES_FIELD_TYPES.TEXT, ES_FIELD_TYPES.MATCH_ONLY_TEXT]; + export const getRandomDocsRequest = ( params: AiopsLogRateAnalysisSchema ): estypes.SearchRequest => ({ @@ -46,11 +48,18 @@ export const getRandomDocsRequest = ( }, }); +interface IndexInfo { + fieldCandidates: string[]; + textFieldCandidates: string[]; + totalDocCount: number; +} + export const fetchIndexInfo = async ( esClient: ElasticsearchClient, params: AiopsLogRateAnalysisSchema, + textFieldCandidatesOverrides: string[] = [], abortSignal?: AbortSignal -): Promise<{ fieldCandidates: string[]; totalDocCount: number }> => { +): Promise => { const { index } = params; // Get all supported fields const respMapping = await esClient.fieldCaps( @@ -61,18 +70,29 @@ export const fetchIndexInfo = async ( { signal: abortSignal, maxRetries: 0 } ); + const allFieldNames: string[] = []; + const finalFieldCandidates: Set = new Set([]); + const finalTextFieldCandidates: Set = new Set([]); const acceptableFields: Set = new Set(); + const acceptableTextFields: Set = new Set(); Object.entries(respMapping.fields).forEach(([key, value]) => { const fieldTypes = Object.keys(value) as ES_FIELD_TYPES[]; const isSupportedType = fieldTypes.some((type) => SUPPORTED_ES_FIELD_TYPES.includes(type)); const isAggregatable = fieldTypes.some((type) => value[type].aggregatable); + const isTextField = fieldTypes.some((type) => SUPPORTED_ES_FIELD_TYPES_TEXT.includes(type)); // Check if fieldName is something we can aggregate on if (isSupportedType && isAggregatable) { acceptableFields.add(key); } + + if (isTextField) { + acceptableTextFields.add(key); + } + + allFieldNames.push(key); }); // Only the deviation window will be used to identify field candidates and sample probability based on total doc count. @@ -85,16 +105,33 @@ export const fetchIndexInfo = async ( ); const sampledDocs = resp.hits.hits.map((d) => d.fields ?? {}); + const textFieldCandidatesOverridesWithKeywordPostfix = textFieldCandidatesOverrides.map( + (d) => `${d}.keyword` + ); + // Get all field names for each returned doc and flatten it // to a list of unique field names used across all docs // and filter by list of acceptable fields. [...new Set(sampledDocs.map(Object.keys).flat(1))].forEach((field) => { - if (acceptableFields.has(field)) { + if ( + acceptableFields.has(field) && + !textFieldCandidatesOverridesWithKeywordPostfix.includes(field) + ) { finalFieldCandidates.add(field); } + if ( + acceptableTextFields.has(field) && + (!allFieldNames.includes(`${field}.keyword`) || textFieldCandidatesOverrides.includes(field)) + ) { + finalTextFieldCandidates.add(field); + } }); const totalDocCount = (resp.hits.total as estypes.SearchTotalHits).value; - return { fieldCandidates: [...finalFieldCandidates], totalDocCount }; + return { + fieldCandidates: [...finalFieldCandidates], + textFieldCandidates: [...finalTextFieldCandidates], + totalDocCount, + }; }; diff --git a/x-pack/plugins/aiops/server/routes/queries/fetch_significant_categories.ts b/x-pack/plugins/aiops/server/routes/queries/fetch_significant_categories.ts new file mode 100644 index 0000000000000..84e99f820bfb4 --- /dev/null +++ b/x-pack/plugins/aiops/server/routes/queries/fetch_significant_categories.ts @@ -0,0 +1,139 @@ +/* + * 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 { uniq } from 'lodash'; + +import { ElasticsearchClient } from '@kbn/core/server'; +import type { Logger } from '@kbn/logging'; +import { criticalTableLookup, type Histogram } from '@kbn/ml-chi2test'; +import { type SignificantTerm, SIGNIFICANT_TERM_TYPE } from '@kbn/ml-agg-utils'; + +import type { Category } from '../../../common/api/log_categorization/types'; +import type { AiopsLogRateAnalysisSchema } from '../../../common/api/log_rate_analysis'; +import { LOG_RATE_ANALYSIS_P_VALUE_THRESHOLD } from '../../../common/constants'; + +import { fetchCategories } from './fetch_categories'; +import { fetchCategoryCounts } from './fetch_category_counts'; +import { getNormalizedScore } from './get_normalized_score'; + +const getCategoriesTestData = (categories: Category[]): Histogram[] => { + const categoriesBaselineTotalCount = getCategoriesTotalCount(categories); + return categories.map((d) => ({ + key: d.key, + doc_count: d.count, + percentage: d.count / categoriesBaselineTotalCount, + })); +}; + +const getCategoriesTotalCount = (categories: Category[]): number => + categories.reduce((p, c) => p + c.count, 0); + +export const fetchSignificantCategories = async ( + esClient: ElasticsearchClient, + params: AiopsLogRateAnalysisSchema, + fieldNames: string[], + logger: Logger, + // The default value of 1 means no sampling will be used + sampleProbability: number = 1, + emitError: (m: string) => void, + abortSignal?: AbortSignal +) => { + // To make sure we have the same categories for both baseline and deviation, + // we do an initial query that spans across baseline start and deviation end. + // We could update this to query the exact baseline AND deviation range, but + // wanted to avoid the refactor here and it should be good enough for a start. + const categoriesOverall = await fetchCategories( + esClient, + params, + fieldNames, + params.baselineMin, + params.deviationMax, + logger, + sampleProbability, + emitError, + abortSignal + ); + + if (categoriesOverall.length !== fieldNames.length) return []; + + const significantCategories: SignificantTerm[] = []; + + // Using for...of to allow `await` within the loop. + for (const [i, fieldName] of fieldNames.entries()) { + if (categoriesOverall[i].categories.length === 0) { + continue; + } + + const categoriesBaseline = await fetchCategoryCounts( + esClient, + params, + fieldName, + categoriesOverall[i], + params.baselineMin, + params.baselineMax, + logger, + emitError, + abortSignal + ); + + const categoriesDeviation = await fetchCategoryCounts( + esClient, + params, + fieldName, + categoriesOverall[i], + params.deviationMin, + params.deviationMax, + logger, + emitError, + abortSignal + ); + + const categoriesBaselineTotalCount = getCategoriesTotalCount(categoriesBaseline.categories); + const categoriesBaselineTestData = getCategoriesTestData(categoriesBaseline.categories); + + const categoriesDeviationTotalCount = getCategoriesTotalCount(categoriesDeviation.categories); + const categoriesDeviationTestData = getCategoriesTestData(categoriesDeviation.categories); + + // Get all unique keys from both arrays + const allKeys: string[] = uniq([ + ...categoriesBaselineTestData.map((term) => term.key.toString()), + ...categoriesDeviationTestData.map((term) => term.key.toString()), + ]); + + allKeys.forEach((key) => { + const categoryData = categoriesOverall[i].categories.find((c) => c.key === key); + + const baselineTerm = categoriesBaselineTestData.find((term) => term.key === key); + const deviationTerm = categoriesDeviationTestData.find((term) => term.key === key); + + const observed: number = deviationTerm?.percentage ?? 0; + const expected: number = baselineTerm?.percentage ?? 0; + const chiSquared = Math.pow(observed - expected, 2) / (expected > 0 ? expected : 1e-6); // Prevent divide by zero + + const pValue = criticalTableLookup(chiSquared, 1); + const score = Math.log(pValue); + + if (pValue <= LOG_RATE_ANALYSIS_P_VALUE_THRESHOLD && observed > expected) { + significantCategories.push({ + key, + fieldName, + fieldValue: categoryData?.examples[0] ?? '', + doc_count: deviationTerm?.doc_count ?? 0, + bg_count: baselineTerm?.doc_count ?? 0, + total_doc_count: categoriesDeviationTotalCount, + total_bg_count: categoriesBaselineTotalCount, + score, + pValue, + normalizedScore: getNormalizedScore(score), + type: SIGNIFICANT_TERM_TYPE.LOG_PATTERN, + }); + } + }); + } + + return significantCategories; +}; diff --git a/x-pack/plugins/aiops/server/routes/queries/fetch_significant_term_p_values.ts b/x-pack/plugins/aiops/server/routes/queries/fetch_significant_term_p_values.ts index 9aa26c5d12ec9..85a21e6870a03 100644 --- a/x-pack/plugins/aiops/server/routes/queries/fetch_significant_term_p_values.ts +++ b/x-pack/plugins/aiops/server/routes/queries/fetch_significant_term_p_values.ts @@ -9,7 +9,7 @@ import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import { ElasticsearchClient } from '@kbn/core/server'; import type { Logger } from '@kbn/logging'; -import { type SignificantTerm } from '@kbn/ml-agg-utils'; +import { type SignificantTerm, SIGNIFICANT_TERM_TYPE } from '@kbn/ml-agg-utils'; import { createRandomSamplerWrapper, type RandomSamplerWrapper, @@ -23,6 +23,7 @@ import type { AiopsLogRateAnalysisSchema } from '../../../common/api/log_rate_an import { isRequestAbortedError } from '../../lib/is_request_aborted_error'; +import { getNormalizedScore } from './get_normalized_score'; import { getQueryWithParams } from './get_query_with_params'; import { getRequestBase } from './get_request_base'; @@ -42,7 +43,7 @@ export const getSignificantTermRequest = ( let filter: estypes.QueryDslQueryContainer[] = []; - if (Array.isArray(query.bool.filter)) { + if (query.bool && Array.isArray(query.bool.filter)) { filter = query.bool.filter.filter((d) => Object.keys(d)[0] !== 'range'); query.bool.filter = [ @@ -167,15 +168,10 @@ export const fetchSignificantTermPValues = async ( for (const bucket of overallResult.buckets) { const pValue = Math.exp(-bucket.score); - // Scale the score into a value from 0 - 1 - // using a concave piecewise linear function in -log(p-value) - const normalizedScore = - 0.5 * Math.min(Math.max((bucket.score - 3.912) / 2.995, 0), 1) + - 0.25 * Math.min(Math.max((bucket.score - 6.908) / 6.908, 0), 1) + - 0.25 * Math.min(Math.max((bucket.score - 13.816) / 101.314, 0), 1); - if (typeof pValue === 'number' && pValue < LOG_RATE_ANALYSIS_P_VALUE_THRESHOLD) { result.push({ + key: `${fieldName}:${String(bucket.key)}`, + type: SIGNIFICANT_TERM_TYPE.KEYWORD, fieldName, fieldValue: String(bucket.key), doc_count: bucket.doc_count, @@ -184,7 +180,7 @@ export const fetchSignificantTermPValues = async ( total_bg_count: overallResult.bg_count, score: bucket.score, pValue, - normalizedScore, + normalizedScore: getNormalizedScore(bucket.score), }); } } diff --git a/x-pack/plugins/aiops/server/routes/queries/fetch_terms_2_categories_counts.ts b/x-pack/plugins/aiops/server/routes/queries/fetch_terms_2_categories_counts.ts new file mode 100644 index 0000000000000..1fdeaef5e18c3 --- /dev/null +++ b/x-pack/plugins/aiops/server/routes/queries/fetch_terms_2_categories_counts.ts @@ -0,0 +1,150 @@ +/* + * 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 { uniq } from 'lodash'; + +import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; + +import type { ElasticsearchClient } from '@kbn/core-elasticsearch-server'; +import type { Logger } from '@kbn/logging'; +import { type SignificantTerm } from '@kbn/ml-agg-utils'; +import { isPopulatedObject } from '@kbn/ml-is-populated-object'; + +import type { AiopsLogRateAnalysisSchema } from '../../../common/api/log_rate_analysis'; +import type { ItemsetResult } from '../../../common/types'; +import { getCategoryQuery } from '../../../common/api/log_categorization/get_category_query'; +import type { Category } from '../../../common/api/log_categorization/types'; + +import { isRequestAbortedError } from '../../lib/is_request_aborted_error'; + +import { getQueryWithParams } from './get_query_with_params'; + +const isMsearchResponseItem = (arg: unknown): arg is estypes.MsearchMultiSearchItem => + isPopulatedObject(arg, ['hits']); + +export const getTerm2CategoryCountRequest = ( + params: AiopsLogRateAnalysisSchema, + significantTerm: SignificantTerm, + categoryFieldName: string, + category: Category, + from: number | undefined, + to: number | undefined +): estypes.SearchRequest['body'] => { + const query = getQueryWithParams({ + params, + }); + + const categoryQuery = getCategoryQuery(categoryFieldName, [category]); + + if (Array.isArray(query.bool?.filter)) { + query.bool?.filter?.push({ term: { [significantTerm.fieldName]: significantTerm.fieldValue } }); + query.bool?.filter?.push(categoryQuery); + query.bool?.filter?.push({ + range: { + [params.timeFieldName]: { + gte: from, + lte: to, + format: 'epoch_millis', + }, + }, + }); + } + + return { + query, + size: 0, + track_total_hits: true, + }; +}; + +export async function fetchTerms2CategoriesCounts( + esClient: ElasticsearchClient, + params: AiopsLogRateAnalysisSchema, + searchQuery: estypes.QueryDslQueryContainer, + significantTerms: SignificantTerm[], + significantCategories: SignificantTerm[], + from: number, + to: number, + logger: Logger, + emitError: (m: string) => void, + abortSignal?: AbortSignal +) { + const searches: Array< + | estypes.MsearchMultisearchBody + | { + index: string; + } + > = []; + const results: ItemsetResult[] = []; + + significantTerms.forEach((term) => { + significantCategories.forEach((category) => { + searches.push({ index: params.index }); + searches.push( + getTerm2CategoryCountRequest( + params, + term, + category.fieldName, + { key: `${category.key}`, count: category.doc_count, examples: [] }, + from, + to + ) as estypes.MsearchMultisearchBody + ); + results.push({ + set: { + [term.fieldName]: term.fieldValue, + [category.fieldName]: category.fieldValue, + }, + size: 2, + maxPValue: Math.max(term.pValue ?? 1, category.pValue ?? 1), + doc_count: 0, + support: 1, + total_doc_count: 0, + }); + }); + }); + + let mSearchresponse; + + try { + mSearchresponse = await esClient.msearch( + { searches }, + { + signal: abortSignal, + maxRetries: 0, + } + ); + } catch (error) { + if (!isRequestAbortedError(error)) { + logger.error( + `Failed to fetch term/category counts, got: \n${JSON.stringify(error, null, 2)}` + ); + emitError(`Failed to fetch term/category counts.`); + } + return { + fields: [], + df: [], + totalDocCount: 0, + }; + } + + const mSearchResponses = mSearchresponse.responses; + + return { + fields: uniq(significantCategories.map((c) => c.fieldName)), + df: results + .map((result, i) => { + const resp = mSearchResponses[i]; + if (isMsearchResponseItem(resp)) { + result.doc_count = (resp.hits.total as estypes.SearchTotalHits).value ?? 0; + } + return result; + }) + .filter((d) => d.doc_count > 0), + totalDocCount: 0, + }; +} diff --git a/x-pack/plugins/aiops/server/routes/queries/get_field_value_pair_counts.test.ts b/x-pack/plugins/aiops/server/routes/queries/get_field_value_pair_counts.test.ts index 8ad6142e70c0a..a762c04f14810 100644 --- a/x-pack/plugins/aiops/server/routes/queries/get_field_value_pair_counts.test.ts +++ b/x-pack/plugins/aiops/server/routes/queries/get_field_value_pair_counts.test.ts @@ -8,6 +8,7 @@ import { significantTermGroups } from '../../../common/__mocks__/farequote/significant_term_groups'; import { fields } from '../../../common/__mocks__/artificial_logs/fields'; import { filteredFrequentItemSets } from '../../../common/__mocks__/artificial_logs/filtered_frequent_item_sets'; +import { significantTerms } from '../../../common/__mocks__/artificial_logs/significant_terms'; import { getFieldValuePairCounts } from './get_field_value_pair_counts'; import { getSimpleHierarchicalTree } from './get_simple_hierarchical_tree'; @@ -33,6 +34,7 @@ describe('getFieldValuePairCounts', () => { filteredFrequentItemSets, true, false, + significantTerms, fields ); const leaves = getSimpleHierarchicalTreeLeaves(simpleHierarchicalTree.root, []); diff --git a/x-pack/plugins/aiops/server/routes/queries/get_group_filter.ts b/x-pack/plugins/aiops/server/routes/queries/get_group_filter.ts index b6d780310df83..86fd60b9fe8b0 100644 --- a/x-pack/plugins/aiops/server/routes/queries/get_group_filter.ts +++ b/x-pack/plugins/aiops/server/routes/queries/get_group_filter.ts @@ -7,7 +7,9 @@ import * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; -import type { SignificantTermGroup } from '@kbn/ml-agg-utils'; +import { type SignificantTermGroup, SIGNIFICANT_TERM_TYPE } from '@kbn/ml-agg-utils'; + +import { getCategoryQuery } from '../../../common/api/log_categorization/get_category_query'; // Transforms a list of significant terms from a group in a query filter. // Uses a `term` filter for single field value combinations. @@ -17,17 +19,33 @@ import type { SignificantTermGroup } from '@kbn/ml-agg-utils'; export function getGroupFilter( significantTermGroup: SignificantTermGroup ): estypes.QueryDslQueryContainer[] { - return Object.entries( - significantTermGroup.group.reduce>>((p, c) => { - if (p[c.fieldName]) { - p[c.fieldName].push(c.fieldValue); - } else { - p[c.fieldName] = [c.fieldValue]; - } - return p; - }, {}) + const groupKeywordFilter = Object.entries( + significantTermGroup.group + .filter((d) => d.type === SIGNIFICANT_TERM_TYPE.KEYWORD) + .reduce>>((p, c) => { + if (p[c.fieldName]) { + p[c.fieldName].push(c.fieldValue); + } else { + p[c.fieldName] = [c.fieldValue]; + } + return p; + }, {}) ).reduce((p, [key, values]) => { p.push(values.length > 1 ? { terms: { [key]: values } } : { term: { [key]: values[0] } }); return p; }, []); + + const groupLogPatternFilter = significantTermGroup.group + .filter((d) => d.type === SIGNIFICANT_TERM_TYPE.LOG_PATTERN) + .map((d) => + getCategoryQuery(d.fieldName, [ + { + key: d.key, + count: d.docCount, + examples: [], + }, + ]) + ); + + return [...groupKeywordFilter, ...groupLogPatternFilter]; } diff --git a/x-pack/plugins/aiops/server/routes/queries/get_groups_with_readded_duplicates.test.ts b/x-pack/plugins/aiops/server/routes/queries/get_groups_with_readded_duplicates.test.ts index 2842b05d80621..c0a2da80a080b 100644 --- a/x-pack/plugins/aiops/server/routes/queries/get_groups_with_readded_duplicates.test.ts +++ b/x-pack/plugins/aiops/server/routes/queries/get_groups_with_readded_duplicates.test.ts @@ -32,6 +32,8 @@ describe('getGroupsWithReaddedDuplicates', () => { docCount: 792, group: [ { + key: 'response_code:500', + type: 'keyword', fieldName: 'response_code', fieldValue: '500', duplicate: 1, @@ -39,6 +41,8 @@ describe('getGroupsWithReaddedDuplicates', () => { pValue: 2.9589053032077285e-12, }, { + key: 'url:home.php', + type: 'keyword', fieldName: 'url', fieldValue: 'home.php', duplicate: 1, diff --git a/x-pack/plugins/aiops/server/routes/queries/get_groups_with_readded_duplicates.ts b/x-pack/plugins/aiops/server/routes/queries/get_groups_with_readded_duplicates.ts index fbc9909e2194e..e6afb5e52ab53 100644 --- a/x-pack/plugins/aiops/server/routes/queries/get_groups_with_readded_duplicates.ts +++ b/x-pack/plugins/aiops/server/routes/queries/get_groups_with_readded_duplicates.ts @@ -30,6 +30,8 @@ export function getGroupsWithReaddedDuplicates( group.push( ...duplicates.group.map((d) => { return { + key: d.key, + type: d.type, fieldName: d.fieldName, fieldValue: d.fieldValue, pValue: d.pValue, diff --git a/x-pack/plugins/aiops/server/routes/queries/get_histogram_query.ts b/x-pack/plugins/aiops/server/routes/queries/get_histogram_query.ts index dceab338947f7..ad99a967894f6 100644 --- a/x-pack/plugins/aiops/server/routes/queries/get_histogram_query.ts +++ b/x-pack/plugins/aiops/server/routes/queries/get_histogram_query.ts @@ -19,7 +19,7 @@ export function getHistogramQuery( params, }); - if (Array.isArray(histogramQuery.bool.filter)) { + if (histogramQuery.bool && Array.isArray(histogramQuery.bool.filter)) { const existingFilter = histogramQuery.bool.filter.filter((d) => Object.keys(d)[0] !== 'range'); histogramQuery.bool.filter = [ diff --git a/x-pack/plugins/aiops/server/routes/queries/get_marked_duplicates.test.ts b/x-pack/plugins/aiops/server/routes/queries/get_marked_duplicates.test.ts index d3ea95b5e1263..694767a17b55d 100644 --- a/x-pack/plugins/aiops/server/routes/queries/get_marked_duplicates.test.ts +++ b/x-pack/plugins/aiops/server/routes/queries/get_marked_duplicates.test.ts @@ -8,6 +8,7 @@ import { significantTermGroups } from '../../../common/__mocks__/farequote/significant_term_groups'; import { fields } from '../../../common/__mocks__/artificial_logs/fields'; import { filteredFrequentItemSets } from '../../../common/__mocks__/artificial_logs/filtered_frequent_item_sets'; +import { significantTerms } from '../../../common/__mocks__/artificial_logs/significant_terms'; import { getFieldValuePairCounts } from './get_field_value_pair_counts'; import { getMarkedDuplicates } from './get_marked_duplicates'; @@ -24,6 +25,8 @@ describe('markDuplicates', () => { id: 'group-1', group: [ { + key: 'custom_field.keyword:deviation', + type: 'keyword', fieldName: 'custom_field.keyword', fieldValue: 'deviation', docCount: 101, @@ -31,6 +34,8 @@ describe('markDuplicates', () => { pValue: 0.01, }, { + key: 'airline:UAL', + type: 'keyword', fieldName: 'airline', fieldValue: 'UAL', docCount: 101, @@ -45,6 +50,8 @@ describe('markDuplicates', () => { id: 'group-2', group: [ { + key: 'custom_field.keyword:deviation', + type: 'keyword', fieldName: 'custom_field.keyword', fieldValue: 'deviation', docCount: 49, @@ -52,6 +59,8 @@ describe('markDuplicates', () => { pValue: 0.001, }, { + key: 'airline:AAL', + type: 'keyword', fieldName: 'airline', fieldValue: 'AAL', docCount: 49, @@ -70,6 +79,7 @@ describe('markDuplicates', () => { filteredFrequentItemSets, true, false, + significantTerms, fields ); const leaves = getSimpleHierarchicalTreeLeaves(simpleHierarchicalTree.root, []); @@ -78,9 +88,11 @@ describe('markDuplicates', () => { expect(markedDuplicates).toEqual([ { - id: '40215074', + id: '3189595908', group: [ { + key: 'response_code:500', + type: 'keyword', fieldName: 'response_code', fieldValue: '500', docCount: 792, @@ -88,6 +100,8 @@ describe('markDuplicates', () => { pValue: 0.010770456205312423, }, { + key: 'url:home.php', + type: 'keyword', fieldName: 'url', fieldValue: 'home.php', docCount: 792, @@ -99,9 +113,11 @@ describe('markDuplicates', () => { pValue: 0.010770456205312423, }, { - id: '47022118', + id: '715957062', group: [ { + key: 'url:home.php', + type: 'keyword', fieldName: 'url', fieldValue: 'home.php', docCount: 792, @@ -109,6 +125,8 @@ describe('markDuplicates', () => { pValue: 0.010770456205312423, }, { + key: 'user:Peter', + type: 'keyword', fieldName: 'user', fieldValue: 'Peter', docCount: 634, diff --git a/x-pack/plugins/aiops/server/routes/queries/get_missing_significant_terms.test.ts b/x-pack/plugins/aiops/server/routes/queries/get_missing_significant_terms.test.ts index 5da659dd58631..e721143ad150c 100644 --- a/x-pack/plugins/aiops/server/routes/queries/get_missing_significant_terms.test.ts +++ b/x-pack/plugins/aiops/server/routes/queries/get_missing_significant_terms.test.ts @@ -35,6 +35,8 @@ describe('getMissingSignificantTerms', () => { expect(missingSignificantTerms).toEqual([ { + key: 'user:Peter', + type: 'keyword', bg_count: 553, doc_count: 1981, fieldName: 'user', @@ -46,6 +48,8 @@ describe('getMissingSignificantTerms', () => { total_doc_count: 4669, }, { + key: 'url:login.php', + type: 'keyword', bg_count: 632, doc_count: 1738, fieldName: 'url', diff --git a/x-pack/plugins/aiops/server/routes/queries/get_normalized_score.ts b/x-pack/plugins/aiops/server/routes/queries/get_normalized_score.ts new file mode 100644 index 0000000000000..55de9c15c839c --- /dev/null +++ b/x-pack/plugins/aiops/server/routes/queries/get_normalized_score.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. + */ + +// Scale the score into a value from 0 - 1 +// using a concave piecewise linear function in -log(p-value) +export const getNormalizedScore = (score: number): number => + 0.5 * Math.min(Math.max((score - 3.912) / 2.995, 0), 1) + + 0.25 * Math.min(Math.max((score - 6.908) / 6.908, 0), 1) + + 0.25 * Math.min(Math.max((score - 13.816) / 101.314, 0), 1); diff --git a/x-pack/plugins/aiops/server/routes/queries/get_query_with_params.ts b/x-pack/plugins/aiops/server/routes/queries/get_query_with_params.ts index d93f34892f7d7..6c95085b379be 100644 --- a/x-pack/plugins/aiops/server/routes/queries/get_query_with_params.ts +++ b/x-pack/plugins/aiops/server/routes/queries/get_query_with_params.ts @@ -21,7 +21,10 @@ interface QueryParams { params: AiopsLogRateAnalysisSchema; termFilters?: FieldValuePair[]; } -export const getQueryWithParams = ({ params, termFilters }: QueryParams) => { +export const getQueryWithParams = ({ + params, + termFilters, +}: QueryParams): estypes.QueryDslQueryContainer => { const searchQuery = JSON.parse(params.searchQuery) as estypes.QueryDslQueryContainer; return { bool: { diff --git a/x-pack/plugins/aiops/server/routes/queries/get_significant_term_groups.ts b/x-pack/plugins/aiops/server/routes/queries/get_significant_term_groups.ts index 796463c554779..74951bf7aa1d9 100644 --- a/x-pack/plugins/aiops/server/routes/queries/get_significant_term_groups.ts +++ b/x-pack/plugins/aiops/server/routes/queries/get_significant_term_groups.ts @@ -33,7 +33,7 @@ export function getSignificantTermGroups( // and then summarize them in larger groups where possible. // Get a tree structure based on `frequent_item_sets`. - const { root } = getSimpleHierarchicalTree(itemsets, false, false, fields); + const { root } = getSimpleHierarchicalTree(itemsets, false, false, significantTerms, fields); // Each leave of the tree will be a summarized group of co-occuring field/value pairs. const treeLeaves = getSimpleHierarchicalTreeLeaves(root, []); diff --git a/x-pack/plugins/aiops/server/routes/queries/get_simple_hierarchical_tree.test.ts b/x-pack/plugins/aiops/server/routes/queries/get_simple_hierarchical_tree.test.ts index 8023e95b880b3..1713e677c2b14 100644 --- a/x-pack/plugins/aiops/server/routes/queries/get_simple_hierarchical_tree.test.ts +++ b/x-pack/plugins/aiops/server/routes/queries/get_simple_hierarchical_tree.test.ts @@ -7,6 +7,7 @@ import { fields } from '../../../common/__mocks__/artificial_logs/fields'; import { filteredFrequentItemSets } from '../../../common/__mocks__/artificial_logs/filtered_frequent_item_sets'; +import { significantTerms } from '../../../common/__mocks__/artificial_logs/significant_terms'; import { getSimpleHierarchicalTree } from './get_simple_hierarchical_tree'; @@ -16,7 +17,9 @@ describe('getSimpleHierarchicalTree', () => { // and make it comparable against a static representation. expect( JSON.parse( - JSON.stringify(getSimpleHierarchicalTree(filteredFrequentItemSets, true, false, fields)) + JSON.stringify( + getSimpleHierarchicalTree(filteredFrequentItemSets, true, false, significantTerms, fields) + ) ) ).toEqual({ root: { @@ -29,12 +32,16 @@ describe('getSimpleHierarchicalTree', () => { name: "792/1505 500 home.php '*'", set: [ { + key: 'response_code:500', + type: 'keyword', fieldName: 'response_code', fieldValue: '500', docCount: 792, pValue: 0.010770456205312423, }, { + key: 'url:home.php', + type: 'keyword', fieldName: 'url', fieldValue: 'home.php', docCount: 792, @@ -48,12 +55,16 @@ describe('getSimpleHierarchicalTree', () => { name: "792/1505 500 home.php '*'", set: [ { + key: 'response_code:500', + type: 'keyword', fieldName: 'response_code', fieldValue: '500', docCount: 792, pValue: 0.010770456205312423, }, { + key: 'url:home.php', + type: 'keyword', fieldName: 'url', fieldValue: 'home.php', docCount: 792, @@ -75,15 +86,19 @@ describe('getSimpleHierarchicalTree', () => { pValue: 0.010770456205312423, set: [ { - docCount: 792, + key: 'url:home.php', + type: 'keyword', fieldName: 'url', fieldValue: 'home.php', + docCount: 792, pValue: 0.010770456205312423, }, { - docCount: 634, + key: 'user:Peter', + type: 'keyword', fieldName: 'user', fieldValue: 'Peter', + docCount: 634, pValue: 0.010770456205312423, }, ], @@ -94,9 +109,11 @@ describe('getSimpleHierarchicalTree', () => { pValue: 0.010770456205312423, set: [ { - docCount: 792, + key: 'url:home.php', + type: 'keyword', fieldName: 'url', fieldValue: 'home.php', + docCount: 792, pValue: 0.010770456205312423, }, ], @@ -108,9 +125,11 @@ describe('getSimpleHierarchicalTree', () => { pValue: 0.010770456205312423, set: [ { - docCount: 634, + key: 'user:Peter', + type: 'keyword', fieldName: 'user', fieldValue: 'Peter', + docCount: 634, pValue: 0.010770456205312423, }, ], diff --git a/x-pack/plugins/aiops/server/routes/queries/get_simple_hierarchical_tree.ts b/x-pack/plugins/aiops/server/routes/queries/get_simple_hierarchical_tree.ts index fb5ded672d284..2462878798322 100644 --- a/x-pack/plugins/aiops/server/routes/queries/get_simple_hierarchical_tree.ts +++ b/x-pack/plugins/aiops/server/routes/queries/get_simple_hierarchical_tree.ts @@ -5,6 +5,8 @@ * 2.0. */ +import type { SignificantTerm } from '@kbn/ml-agg-utils'; + import type { ItemsetResult, SimpleHierarchicalTreeNode } from '../../../common/types'; import { getValueCounts } from './get_value_counts'; @@ -32,6 +34,8 @@ function NewNodeFactory(name: string): SimpleHierarchicalTreeNode { * The resulting tree components are non-overlapping subsets of the data. * In summary, we start with the most inclusive itemset (highest count), and perform a depth first search in field order. * + * @param significantTerms + * @param fields * @param displayParent * @param parentDocCount * @param parentLabel @@ -43,6 +47,7 @@ function NewNodeFactory(name: string): SimpleHierarchicalTreeNode { * @returns */ function dfDepthFirstSearch( + significantTerms: SignificantTerm[], fields: string[], displayParent: SimpleHierarchicalTreeNode, parentDocCount: number, @@ -73,17 +78,40 @@ function dfDepthFirstSearch( let label = `${parentLabel} ${value}`; let displayNode: SimpleHierarchicalTreeNode; + + const significantTerm = significantTerms.find( + (d) => d.fieldName === field && d.fieldValue === value + ); + if (!significantTerm) { + return 0; + } + if (parentDocCount === docCount && collapseRedundant) { // collapse identical paths displayParent.name += ` ${value}`; - displayParent.set.push({ fieldName: field, fieldValue: value, docCount, pValue }); + + displayParent.set.push({ + key: significantTerm.key, + type: significantTerm.type, + fieldName: field, + fieldValue: value, + docCount, + pValue, + }); displayParent.docCount = docCount; displayParent.pValue = pValue; displayNode = displayParent; } else { displayNode = NewNodeFactory(`${docCount}/${totalDocCount}${label}`); displayNode.set = [...displayParent.set]; - displayNode.set.push({ fieldName: field, fieldValue: value, docCount, pValue }); + displayNode.set.push({ + key: significantTerm.key, + type: significantTerm.type, + fieldName: field, + fieldValue: value, + docCount, + pValue, + }); displayNode.docCount = docCount; displayNode.pValue = pValue; displayParent.addNode(displayNode); @@ -120,6 +148,7 @@ function dfDepthFirstSearch( let subCount = 0; for (const nextValue of getValuesDescending(filteredItemSets, nextField)) { subCount += dfDepthFirstSearch( + significantTerms, fields, displayNode, docCount, @@ -152,6 +181,7 @@ export function getSimpleHierarchicalTree( df: ItemsetResult[], collapseRedundant: boolean, displayOther: boolean, + significantTerms: SignificantTerm[], fields: string[] = [] ) { const totalDocCount = Math.max(...df.map((d) => d.total_doc_count)); @@ -161,6 +191,7 @@ export function getSimpleHierarchicalTree( for (const field of fields) { for (const value of getValuesDescending(df, field)) { dfDepthFirstSearch( + significantTerms, fields, newRoot, totalDocCount + 1, diff --git a/x-pack/plugins/aiops/server/routes/queries/get_simple_hierarchical_tree_leaves.test.ts b/x-pack/plugins/aiops/server/routes/queries/get_simple_hierarchical_tree_leaves.test.ts index fd3d40285bc6e..5ca23395c9815 100644 --- a/x-pack/plugins/aiops/server/routes/queries/get_simple_hierarchical_tree_leaves.test.ts +++ b/x-pack/plugins/aiops/server/routes/queries/get_simple_hierarchical_tree_leaves.test.ts @@ -7,6 +7,7 @@ import { fields } from '../../../common/__mocks__/artificial_logs/fields'; import { filteredFrequentItemSets } from '../../../common/__mocks__/artificial_logs/filtered_frequent_item_sets'; +import { significantTerms } from '../../../common/__mocks__/artificial_logs/significant_terms'; import { getSimpleHierarchicalTree } from './get_simple_hierarchical_tree'; import { getSimpleHierarchicalTreeLeaves } from './get_simple_hierarchical_tree_leaves'; @@ -17,37 +18,51 @@ describe('getSimpleHierarchicalTreeLeaves', () => { filteredFrequentItemSets, true, false, + significantTerms, fields ); const leaves = getSimpleHierarchicalTreeLeaves(simpleHierarchicalTree.root, []); expect(leaves).toEqual([ { - id: '40215074', + id: '3189595908', group: [ { + key: 'response_code:500', + type: 'keyword', fieldName: 'response_code', fieldValue: '500', docCount: 792, pValue: 0.010770456205312423, }, - { fieldName: 'url', fieldValue: 'home.php', docCount: 792, pValue: 0.010770456205312423 }, + { + key: 'url:home.php', + type: 'keyword', + fieldName: 'url', + fieldValue: 'home.php', + docCount: 792, + pValue: 0.010770456205312423, + }, ], docCount: 792, pValue: 0.010770456205312423, }, { - id: '47022118', + id: '715957062', group: [ { - docCount: 792, + key: 'url:home.php', + type: 'keyword', fieldName: 'url', fieldValue: 'home.php', + docCount: 792, pValue: 0.010770456205312423, }, { - docCount: 634, + key: 'user:Peter', + type: 'keyword', fieldName: 'user', fieldValue: 'Peter', + docCount: 634, pValue: 0.010770456205312423, }, ], diff --git a/x-pack/plugins/aiops/server/routes/queries/transform_significant_term_to_group.test.ts b/x-pack/plugins/aiops/server/routes/queries/transform_significant_term_to_group.test.ts index ec86dbb47d81e..e22d6fcec784a 100644 --- a/x-pack/plugins/aiops/server/routes/queries/transform_significant_term_to_group.test.ts +++ b/x-pack/plugins/aiops/server/routes/queries/transform_significant_term_to_group.test.ts @@ -43,10 +43,12 @@ describe('getMissingSignificantTerms', () => { docCount: 1981, group: [ { - docCount: 1981, - duplicate: 1, + key: 'user:Peter', + type: 'keyword', fieldName: 'user', fieldValue: 'Peter', + docCount: 1981, + duplicate: 1, pValue: 2.62555579103777e-21, }, ], diff --git a/x-pack/plugins/aiops/server/routes/queries/transform_significant_term_to_group.ts b/x-pack/plugins/aiops/server/routes/queries/transform_significant_term_to_group.ts index 1ecf8d6d8422d..54ae0839c5c19 100644 --- a/x-pack/plugins/aiops/server/routes/queries/transform_significant_term_to_group.ts +++ b/x-pack/plugins/aiops/server/routes/queries/transform_significant_term_to_group.ts @@ -6,15 +6,15 @@ */ import { stringHash } from '@kbn/ml-string-hash'; -import type { SignificantTerm } from '@kbn/ml-agg-utils'; +import type { SignificantTerm, SignificantTermGroup } from '@kbn/ml-agg-utils'; import type { SignificantTermDuplicateGroup } from '../../../common/types'; export function transformSignificantTermToGroup( significantTerm: SignificantTerm, groupedSignificantTerms: SignificantTermDuplicateGroup[] -) { - const { fieldName, fieldValue, doc_count: docCount, pValue } = significantTerm; +): SignificantTermGroup { + const { key, type, fieldName, fieldValue, doc_count: docCount, pValue } = significantTerm; const duplicates = groupedSignificantTerms.find((d) => d.group.some((dg) => dg.fieldName === fieldName && dg.fieldValue === fieldValue) @@ -31,6 +31,8 @@ export function transformSignificantTermToGroup( ) )}`, group: duplicates.group.map((d) => ({ + key: d.key, + type: d.type, fieldName: d.fieldName, fieldValue: d.fieldValue, duplicate: 1, @@ -45,6 +47,8 @@ export function transformSignificantTermToGroup( id: `${stringHash(JSON.stringify({ fieldName, fieldValue }))}`, group: [ { + key, + type, fieldName, fieldValue, duplicate: 1, diff --git a/x-pack/plugins/aiops/tsconfig.json b/x-pack/plugins/aiops/tsconfig.json index 6303a009bb36d..1c0095046c735 100644 --- a/x-pack/plugins/aiops/tsconfig.json +++ b/x-pack/plugins/aiops/tsconfig.json @@ -63,6 +63,7 @@ "@kbn/core-lifecycle-browser", "@kbn/cases-plugin", "@kbn/react-kibana-mount", + "@kbn/ml-chi2test", "@kbn/usage-collection-plugin", ], "exclude": [ diff --git a/x-pack/plugins/alerting/common/routes/rule/apis/bulk_untrack/index.ts b/x-pack/plugins/alerting/common/routes/rule/apis/bulk_untrack/index.ts new file mode 100644 index 0000000000000..7535593ce73f5 --- /dev/null +++ b/x-pack/plugins/alerting/common/routes/rule/apis/bulk_untrack/index.ts @@ -0,0 +1,12 @@ +/* + * 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 { bulkUntrackBodySchema } from './schemas/latest'; +export { bulkUntrackBodySchema as bulkUntrackBodySchemaV1 } from './schemas/v1'; + +export type { BulkUntrackRequestBody } from './types/latest'; +export type { BulkUntrackRequestBody as BulkUntrackRequestBodyV1 } from './types/v1'; diff --git a/x-pack/plugins/alerting/common/routes/rule/apis/bulk_untrack/schemas/latest.ts b/x-pack/plugins/alerting/common/routes/rule/apis/bulk_untrack/schemas/latest.ts new file mode 100644 index 0000000000000..b9785b6b8f9e8 --- /dev/null +++ b/x-pack/plugins/alerting/common/routes/rule/apis/bulk_untrack/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 { bulkUntrackBodySchema } from './v1'; diff --git a/x-pack/plugins/alerting/common/routes/rule/apis/bulk_untrack/schemas/v1.ts b/x-pack/plugins/alerting/common/routes/rule/apis/bulk_untrack/schemas/v1.ts new file mode 100644 index 0000000000000..63a7db6284345 --- /dev/null +++ b/x-pack/plugins/alerting/common/routes/rule/apis/bulk_untrack/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 bulkUntrackBodySchema = schema.object({ + indices: schema.arrayOf(schema.string()), + alert_uuids: schema.arrayOf(schema.string()), +}); diff --git a/x-pack/plugins/alerting/common/routes/rule/apis/bulk_untrack/types/latest.ts b/x-pack/plugins/alerting/common/routes/rule/apis/bulk_untrack/types/latest.ts new file mode 100644 index 0000000000000..21c3b1a2f826a --- /dev/null +++ b/x-pack/plugins/alerting/common/routes/rule/apis/bulk_untrack/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 type { BulkUntrackRequestBody } from './v1'; diff --git a/x-pack/plugins/alerting/common/routes/rule/apis/bulk_untrack/types/v1.ts b/x-pack/plugins/alerting/common/routes/rule/apis/bulk_untrack/types/v1.ts new file mode 100644 index 0000000000000..011499122e90a --- /dev/null +++ b/x-pack/plugins/alerting/common/routes/rule/apis/bulk_untrack/types/v1.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 { TypeOf } from '@kbn/config-schema'; +import { bulkUntrackBodySchemaV1 } from '..'; + +export type BulkUntrackRequestBody = TypeOf; diff --git a/x-pack/plugins/alerting/server/alerts_client/alerts_client.test.ts b/x-pack/plugins/alerting/server/alerts_client/alerts_client.test.ts index c870a0c52d13b..dc98c34b20a39 100644 --- a/x-pack/plugins/alerting/server/alerts_client/alerts_client.test.ts +++ b/x-pack/plugins/alerting/server/alerts_client/alerts_client.test.ts @@ -145,7 +145,7 @@ const fetchedAlert1 = { [EVENT_ACTION]: 'open', [EVENT_KIND]: 'signal', [ALERT_ACTION_GROUP]: 'default', - [ALERT_DURATION]: '0', + [ALERT_DURATION]: 0, [ALERT_FLAPPING]: false, [ALERT_FLAPPING_HISTORY]: [true], [ALERT_INSTANCE_ID]: '1', @@ -175,7 +175,7 @@ const fetchedAlert2 = { [EVENT_ACTION]: 'active', [EVENT_KIND]: 'signal', [ALERT_ACTION_GROUP]: 'default', - [ALERT_DURATION]: '36000000000000', + [ALERT_DURATION]: 36000000000, [ALERT_FLAPPING]: false, [ALERT_FLAPPING_HISTORY]: [true, false], [ALERT_INSTANCE_ID]: '2', @@ -205,7 +205,7 @@ const getNewIndexedAlertDoc = (overrides = {}) => ({ [EVENT_ACTION]: 'open', [EVENT_KIND]: 'signal', [ALERT_ACTION_GROUP]: 'default', - [ALERT_DURATION]: '0', + [ALERT_DURATION]: 0, [ALERT_FLAPPING]: false, [ALERT_FLAPPING_HISTORY]: [true], [ALERT_INSTANCE_ID]: '1', @@ -234,7 +234,7 @@ const getNewIndexedAlertDoc = (overrides = {}) => ({ const getOngoingIndexedAlertDoc = (overrides = {}) => ({ ...getNewIndexedAlertDoc(), [EVENT_ACTION]: 'active', - [ALERT_DURATION]: '36000000000000', + [ALERT_DURATION]: 36000000000, [ALERT_FLAPPING_HISTORY]: [true, false], [ALERT_START]: '2023-03-28T12:27:28.159Z', [ALERT_TIME_RANGE]: { gte: '2023-03-28T12:27:28.159Z' }, @@ -244,7 +244,7 @@ const getOngoingIndexedAlertDoc = (overrides = {}) => ({ const getRecoveredIndexedAlertDoc = (overrides = {}) => ({ ...getNewIndexedAlertDoc(), [EVENT_ACTION]: 'close', - [ALERT_DURATION]: '36000000000000', + [ALERT_DURATION]: 36000000000, [ALERT_ACTION_GROUP]: 'recovered', [ALERT_FLAPPING_HISTORY]: [true, true], [ALERT_START]: '2023-03-28T12:27:28.159Z', @@ -669,7 +669,7 @@ describe('Alerts Client', () => { [TIMESTAMP]: date, [EVENT_ACTION]: 'active', [ALERT_ACTION_GROUP]: 'default', - [ALERT_DURATION]: '36000000000000', + [ALERT_DURATION]: 36000000000, [ALERT_FLAPPING]: false, [ALERT_FLAPPING_HISTORY]: [true, false], [ALERT_MAINTENANCE_WINDOW_IDS]: [], @@ -855,7 +855,7 @@ describe('Alerts Client', () => { [ALERT_UUID]: 'def', [ALERT_INSTANCE_ID]: '2', [ALERT_FLAPPING_HISTORY]: [true, false, false, false], - [ALERT_DURATION]: '72000000000000', + [ALERT_DURATION]: 72000000000, [ALERT_START]: '2023-03-28T02:27:28.159Z', [ALERT_TIME_RANGE]: { gte: '2023-03-28T02:27:28.159Z' }, }), @@ -958,7 +958,7 @@ describe('Alerts Client', () => { [TIMESTAMP]: date, [EVENT_ACTION]: 'active', [ALERT_ACTION_GROUP]: 'default', - [ALERT_DURATION]: '72000000000000', + [ALERT_DURATION]: 72000000000, [ALERT_FLAPPING]: false, [ALERT_FLAPPING_HISTORY]: [true, false, false, false], [ALERT_MAINTENANCE_WINDOW_IDS]: [], @@ -1005,7 +1005,7 @@ describe('Alerts Client', () => { [TIMESTAMP]: date, [EVENT_ACTION]: 'close', [ALERT_ACTION_GROUP]: 'recovered', - [ALERT_DURATION]: '36000000000000', + [ALERT_DURATION]: 36000000000, [ALERT_FLAPPING]: false, [ALERT_FLAPPING_HISTORY]: [true, true], [ALERT_MAINTENANCE_WINDOW_IDS]: [], @@ -1177,7 +1177,7 @@ describe('Alerts Client', () => { getOngoingIndexedAlertDoc({ [ALERT_UUID]: 'def', [ALERT_INSTANCE_ID]: '2', - [ALERT_DURATION]: '72000000000000', + [ALERT_DURATION]: 72000000000, [ALERT_FLAPPING_HISTORY]: [true, false, false, false], [ALERT_START]: '2023-03-28T02:27:28.159Z', [ALERT_TIME_RANGE]: { gte: '2023-03-28T02:27:28.159Z' }, @@ -1799,7 +1799,7 @@ describe('Alerts Client', () => { [EVENT_ACTION]: 'open', [EVENT_KIND]: 'signal', [ALERT_ACTION_GROUP]: 'default', - [ALERT_DURATION]: '0', + [ALERT_DURATION]: 0, [ALERT_FLAPPING]: false, [ALERT_FLAPPING_HISTORY]: [true], [ALERT_INSTANCE_ID]: '1', @@ -1834,7 +1834,7 @@ describe('Alerts Client', () => { [EVENT_ACTION]: 'open', [EVENT_KIND]: 'signal', [ALERT_ACTION_GROUP]: 'default', - [ALERT_DURATION]: '0', + [ALERT_DURATION]: 0, [ALERT_FLAPPING]: false, [ALERT_FLAPPING_HISTORY]: [true], [ALERT_INSTANCE_ID]: '2', @@ -1993,7 +1993,7 @@ describe('Alerts Client', () => { [EVENT_ACTION]: 'open', [EVENT_KIND]: 'signal', [ALERT_ACTION_GROUP]: 'default', - [ALERT_DURATION]: '0', + [ALERT_DURATION]: 0, [ALERT_FLAPPING]: false, [ALERT_FLAPPING_HISTORY]: [true], [ALERT_INSTANCE_ID]: '1', @@ -2096,7 +2096,7 @@ describe('Alerts Client', () => { [EVENT_ACTION]: 'active', [EVENT_KIND]: 'signal', [ALERT_ACTION_GROUP]: 'default', - [ALERT_DURATION]: '36000000000000', + [ALERT_DURATION]: 36000000000, [ALERT_FLAPPING]: false, [ALERT_FLAPPING_HISTORY]: [true, false], [ALERT_INSTANCE_ID]: '1', @@ -2198,7 +2198,7 @@ describe('Alerts Client', () => { [EVENT_ACTION]: 'close', [EVENT_KIND]: 'signal', [ALERT_ACTION_GROUP]: 'recovered', - [ALERT_DURATION]: '36000000000000', + [ALERT_DURATION]: 36000000000, [ALERT_END]: date, [ALERT_FLAPPING]: false, [ALERT_FLAPPING_HISTORY]: [true, true], @@ -2331,53 +2331,6 @@ describe('Alerts Client', () => { expect(recoveredAlert.hit).toBeUndefined(); }); }); - - describe('setAlertStatusToUntracked()', () => { - test('should call updateByQuery on provided ruleIds', async () => { - const alertsClient = new AlertsClient<{}, {}, {}, 'default', 'recovered'>( - alertsClientParams - ); - - const opts = { - maxAlerts, - ruleLabel: `test: rule-name`, - flappingSettings: DEFAULT_FLAPPING_SETTINGS, - activeAlertsFromState: {}, - recoveredAlertsFromState: {}, - }; - await alertsClient.initializeExecution(opts); - - await alertsClient.setAlertStatusToUntracked(['test-index'], ['test-rule']); - - expect(clusterClient.updateByQuery).toHaveBeenCalledTimes(1); - }); - - test('should retry updateByQuery on failure', async () => { - clusterClient.updateByQuery.mockResponseOnce({ - total: 10, - updated: 8, - }); - const alertsClient = new AlertsClient<{}, {}, {}, 'default', 'recovered'>( - alertsClientParams - ); - - const opts = { - maxAlerts, - ruleLabel: `test: rule-name`, - flappingSettings: DEFAULT_FLAPPING_SETTINGS, - activeAlertsFromState: {}, - recoveredAlertsFromState: {}, - }; - await alertsClient.initializeExecution(opts); - - await alertsClient.setAlertStatusToUntracked(['test-index'], ['test-rule']); - - expect(clusterClient.updateByQuery).toHaveBeenCalledTimes(2); - expect(logger.warn).toHaveBeenCalledWith( - 'Attempt 1: Failed to untrack 2 of 10; indices test-index, ruleIds test-rule' - ); - }); - }); }); } }); diff --git a/x-pack/plugins/alerting/server/alerts_client/alerts_client.ts b/x-pack/plugins/alerting/server/alerts_client/alerts_client.ts index 34d4e994cfe8b..1b3fe16442d9e 100644 --- a/x-pack/plugins/alerting/server/alerts_client/alerts_client.ts +++ b/x-pack/plugins/alerting/server/alerts_client/alerts_client.ts @@ -6,14 +6,7 @@ */ import { ElasticsearchClient } from '@kbn/core/server'; -import { - ALERT_INSTANCE_ID, - ALERT_RULE_UUID, - ALERT_STATUS, - ALERT_STATUS_UNTRACKED, - ALERT_STATUS_ACTIVE, - ALERT_UUID, -} from '@kbn/rule-data-utils'; +import { ALERT_INSTANCE_ID, ALERT_RULE_UUID, ALERT_STATUS, ALERT_UUID } from '@kbn/rule-data-utils'; import { chunk, flatMap, get, isEmpty, keys } from 'lodash'; import { SearchRequest } from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import type { Alert } from '@kbn/alerts-as-data-utils'; @@ -206,51 +199,6 @@ export class AlertsClient< return { hits, total }; } - public async setAlertStatusToUntracked(indices: string[], ruleIds: string[]) { - const esClient = await this.options.elasticsearchClientPromise; - const terms: Array<{ term: Record }> = ruleIds.map((ruleId) => ({ - term: { - [ALERT_RULE_UUID]: { value: ruleId }, - }, - })); - terms.push({ - term: { - [ALERT_STATUS]: { value: ALERT_STATUS_ACTIVE }, - }, - }); - - try { - // Retry this updateByQuery up to 3 times to make sure the number of documents - // updated equals the number of documents matched - for (let retryCount = 0; retryCount < 3; retryCount++) { - const response = await esClient.updateByQuery({ - index: indices, - allow_no_indices: true, - body: { - conflicts: 'proceed', - script: { - source: UNTRACK_UPDATE_PAINLESS_SCRIPT, - lang: 'painless', - }, - query: { - bool: { - must: terms, - }, - }, - }, - }); - if (response.total === response.updated) break; - this.options.logger.warn( - `Attempt ${retryCount + 1}: Failed to untrack ${ - (response.total ?? 0) - (response.updated ?? 0) - } of ${response.total}; indices ${indices}, ruleIds ${ruleIds}` - ); - } - } catch (err) { - this.options.logger.error(`Error marking ${ruleIds} as untracked - ${err.message}`); - } - } - public report( alert: ReportedAlert< AlertData, @@ -621,11 +569,3 @@ export class AlertsClient< return this._isUsingDataStreams; } } - -const UNTRACK_UPDATE_PAINLESS_SCRIPT = ` -// Certain rule types don't flatten their AAD values, apply the ALERT_STATUS key to them directly -if (!ctx._source.containsKey('${ALERT_STATUS}') || ctx._source['${ALERT_STATUS}'].empty) { - ctx._source.${ALERT_STATUS} = '${ALERT_STATUS_UNTRACKED}'; -} else { - ctx._source['${ALERT_STATUS}'] = '${ALERT_STATUS_UNTRACKED}' -}`; diff --git a/x-pack/plugins/alerting/server/alerts_client/lib/build_new_alert.test.ts b/x-pack/plugins/alerting/server/alerts_client/lib/build_new_alert.test.ts index 4e317d5f5592f..2da67f584e93d 100644 --- a/x-pack/plugins/alerting/server/alerts_client/lib/build_new_alert.test.ts +++ b/x-pack/plugins/alerting/server/alerts_client/lib/build_new_alert.test.ts @@ -84,7 +84,7 @@ describe('buildNewAlert', () => { [ALERT_STATUS]: 'active', [ALERT_UUID]: legacyAlert.getUuid(), [ALERT_WORKFLOW_STATUS]: 'open', - [ALERT_DURATION]: '0', + [ALERT_DURATION]: 0, [ALERT_START]: now, [ALERT_TIME_RANGE]: { gte: now }, [SPACE_IDS]: ['default'], diff --git a/x-pack/plugins/alerting/server/alerts_client/lib/build_new_alert.ts b/x-pack/plugins/alerting/server/alerts_client/lib/build_new_alert.ts index 9c4c4bb6c095c..4af3e3f93817b 100644 --- a/x-pack/plugins/alerting/server/alerts_client/lib/build_new_alert.ts +++ b/x-pack/plugins/alerting/server/alerts_client/lib/build_new_alert.ts @@ -32,6 +32,7 @@ import { Alert as LegacyAlert } from '../../alert/alert'; import { AlertInstanceContext, AlertInstanceState, RuleAlertData } from '../../types'; import type { AlertRule } from '../types'; import { stripFrameworkFields } from './strip_framework_fields'; +import { nanosToMicros } from './nanos_to_micros'; interface BuildNewAlertOpts< AlertData extends RuleAlertData, @@ -89,7 +90,7 @@ export const buildNewAlert = < [ALERT_UUID]: legacyAlert.getUuid(), [ALERT_WORKFLOW_STATUS]: get(cleanedPayload, ALERT_WORKFLOW_STATUS, 'open'), ...(legacyAlert.getState().duration - ? { [ALERT_DURATION]: legacyAlert.getState().duration } + ? { [ALERT_DURATION]: nanosToMicros(legacyAlert.getState().duration) } : {}), ...(legacyAlert.getState().start ? { diff --git a/x-pack/plugins/alerting/server/alerts_client/lib/build_ongoing_alert.test.ts b/x-pack/plugins/alerting/server/alerts_client/lib/build_ongoing_alert.test.ts index 7ccef435a5a49..2c4fc087a4745 100644 --- a/x-pack/plugins/alerting/server/alerts_client/lib/build_ongoing_alert.test.ts +++ b/x-pack/plugins/alerting/server/alerts_client/lib/build_ongoing_alert.test.ts @@ -58,7 +58,7 @@ for (const flattened of [true, false]) { [ALERT_FLAPPING]: false, [ALERT_FLAPPING_HISTORY]: [], [ALERT_MAINTENANCE_WINDOW_IDS]: [], - [ALERT_DURATION]: '36000000', + [ALERT_DURATION]: 36000, [ALERT_STATUS]: 'active', [ALERT_TIME_RANGE]: { gte: '2023-03-28T12:27:28.159Z' }, [ALERT_WORKFLOW_STATUS]: 'open', @@ -119,7 +119,7 @@ for (const flattened of [true, false]) { [ALERT_MAINTENANCE_WINDOW_IDS]: [], [ALERT_STATUS]: 'active', [ALERT_WORKFLOW_STATUS]: 'open', - [ALERT_DURATION]: '36000000', + [ALERT_DURATION]: 36000, [ALERT_TIME_RANGE]: { gte: '2023-03-28T12:27:28.159Z' }, [SPACE_IDS]: ['default'], [VERSION]: '8.9.0', @@ -195,7 +195,7 @@ for (const flattened of [true, false]) { [ALERT_MAINTENANCE_WINDOW_IDS]: ['maint-xyz'], [ALERT_STATUS]: 'active', [ALERT_WORKFLOW_STATUS]: 'open', - [ALERT_DURATION]: '36000000', + [ALERT_DURATION]: 36000, [ALERT_TIME_RANGE]: { gte: '2023-03-28T12:27:28.159Z' }, [SPACE_IDS]: ['default'], [VERSION]: '8.9.0', @@ -284,7 +284,7 @@ for (const flattened of [true, false]) { [ALERT_MAINTENANCE_WINDOW_IDS]: [], [ALERT_STATUS]: 'active', [ALERT_WORKFLOW_STATUS]: 'open', - [ALERT_DURATION]: '36000000', + [ALERT_DURATION]: 36000, [ALERT_TIME_RANGE]: { gte: '2023-03-28T12:27:28.159Z' }, [SPACE_IDS]: ['default'], [VERSION]: '8.9.0', @@ -380,7 +380,7 @@ for (const flattened of [true, false]) { [ALERT_MAINTENANCE_WINDOW_IDS]: [], [ALERT_STATUS]: 'active', [ALERT_WORKFLOW_STATUS]: 'open', - [ALERT_DURATION]: '36000000', + [ALERT_DURATION]: 36000, [ALERT_TIME_RANGE]: { gte: '2023-03-28T12:27:28.159Z' }, [SPACE_IDS]: ['default'], [VERSION]: '8.9.0', @@ -480,7 +480,7 @@ for (const flattened of [true, false]) { [ALERT_MAINTENANCE_WINDOW_IDS]: [], [ALERT_STATUS]: 'active', [ALERT_WORKFLOW_STATUS]: 'open', - [ALERT_DURATION]: '36000000', + [ALERT_DURATION]: 36000, [ALERT_TIME_RANGE]: { gte: '2023-03-28T12:27:28.159Z' }, [SPACE_IDS]: ['default'], [VERSION]: '8.9.0', @@ -560,7 +560,7 @@ for (const flattened of [true, false]) { [ALERT_MAINTENANCE_WINDOW_IDS]: [], [ALERT_STATUS]: 'active', [ALERT_WORKFLOW_STATUS]: 'open', - [ALERT_DURATION]: '36000000', + [ALERT_DURATION]: 36000, [ALERT_TIME_RANGE]: { gte: '2023-03-28T12:27:28.159Z' }, [SPACE_IDS]: ['default'], [VERSION]: '8.9.0', @@ -658,7 +658,7 @@ for (const flattened of [true, false]) { [ALERT_MAINTENANCE_WINDOW_IDS]: [], [ALERT_STATUS]: 'active', [ALERT_WORKFLOW_STATUS]: 'custom_status', - [ALERT_DURATION]: '36000000', + [ALERT_DURATION]: 36000, [ALERT_TIME_RANGE]: { gte: '2023-03-28T12:27:28.159Z' }, [SPACE_IDS]: ['default'], [VERSION]: '8.9.0', diff --git a/x-pack/plugins/alerting/server/alerts_client/lib/build_ongoing_alert.ts b/x-pack/plugins/alerting/server/alerts_client/lib/build_ongoing_alert.ts index f22c14e62b464..ec4eae47d6e82 100644 --- a/x-pack/plugins/alerting/server/alerts_client/lib/build_ongoing_alert.ts +++ b/x-pack/plugins/alerting/server/alerts_client/lib/build_ongoing_alert.ts @@ -26,6 +26,7 @@ import { Alert as LegacyAlert } from '../../alert/alert'; import { AlertInstanceContext, AlertInstanceState, RuleAlertData } from '../../types'; import type { AlertRule } from '../types'; import { stripFrameworkFields } from './strip_framework_fields'; +import { nanosToMicros } from './nanos_to_micros'; import { removeUnflattenedFieldsFromAlert, replaceRefreshableAlertFields } from './format_alert'; interface BuildOngoingAlertOpts< @@ -100,7 +101,7 @@ export const buildOngoingAlert = < : {}), // Set latest duration as ongoing alerts should have updated duration ...(legacyAlert.getState().duration - ? { [ALERT_DURATION]: legacyAlert.getState().duration } + ? { [ALERT_DURATION]: nanosToMicros(legacyAlert.getState().duration) } : {}), [SPACE_IDS]: rule[SPACE_IDS], [VERSION]: kibanaVersion, diff --git a/x-pack/plugins/alerting/server/alerts_client/lib/build_recovered_alert.test.ts b/x-pack/plugins/alerting/server/alerts_client/lib/build_recovered_alert.test.ts index 73ff3e0a0f6e4..c8a1454870031 100644 --- a/x-pack/plugins/alerting/server/alerts_client/lib/build_recovered_alert.test.ts +++ b/x-pack/plugins/alerting/server/alerts_client/lib/build_recovered_alert.test.ts @@ -68,7 +68,7 @@ for (const flattened of [true, false]) { [ALERT_MAINTENANCE_WINDOW_IDS]: [], [ALERT_STATUS]: 'recovered', [ALERT_WORKFLOW_STATUS]: 'open', - [ALERT_DURATION]: '36000000', + [ALERT_DURATION]: 36000, [ALERT_START]: '2023-03-28T12:27:28.159Z', [ALERT_END]: '2023-03-30T12:27:28.159Z', [ALERT_TIME_RANGE]: { gte: '2023-03-28T12:27:28.159Z', lte: '2023-03-30T12:27:28.159Z' }, @@ -132,7 +132,7 @@ for (const flattened of [true, false]) { [ALERT_MAINTENANCE_WINDOW_IDS]: ['maint-1', 'maint-321'], [ALERT_STATUS]: 'recovered', [ALERT_WORKFLOW_STATUS]: 'open', - [ALERT_DURATION]: '36000000', + [ALERT_DURATION]: 36000, [ALERT_START]: '2023-03-28T12:27:28.159Z', [ALERT_END]: '2023-03-30T12:27:28.159Z', [ALERT_TIME_RANGE]: { gte: '2023-03-28T12:27:28.159Z', lte: '2023-03-30T12:27:28.159Z' }, @@ -226,7 +226,7 @@ for (const flattened of [true, false]) { [ALERT_MAINTENANCE_WINDOW_IDS]: ['maint-1', 'maint-321'], [ALERT_STATUS]: 'recovered', [ALERT_WORKFLOW_STATUS]: 'open', - [ALERT_DURATION]: '36000000', + [ALERT_DURATION]: 36000, [ALERT_START]: '2023-03-28T12:27:28.159Z', [ALERT_END]: '2023-03-30T12:27:28.159Z', [ALERT_TIME_RANGE]: { gte: '2023-03-28T12:27:28.159Z', lte: '2023-03-30T12:27:28.159Z' }, @@ -328,7 +328,7 @@ for (const flattened of [true, false]) { [ALERT_MAINTENANCE_WINDOW_IDS]: ['maint-1', 'maint-321'], [ALERT_STATUS]: 'recovered', [ALERT_WORKFLOW_STATUS]: 'open', - [ALERT_DURATION]: '36000000', + [ALERT_DURATION]: 36000, [ALERT_START]: '2023-03-28T12:27:28.159Z', [ALERT_END]: '2023-03-30T12:27:28.159Z', [ALERT_TIME_RANGE]: { gte: '2023-03-28T12:27:28.159Z', lte: '2023-03-30T12:27:28.159Z' }, @@ -428,7 +428,7 @@ for (const flattened of [true, false]) { [ALERT_MAINTENANCE_WINDOW_IDS]: ['maint-1', 'maint-321'], [ALERT_STATUS]: 'recovered', [ALERT_WORKFLOW_STATUS]: 'open', - [ALERT_DURATION]: '36000000', + [ALERT_DURATION]: 36000, [ALERT_START]: '2023-03-28T12:27:28.159Z', [ALERT_END]: '2023-03-30T12:27:28.159Z', [ALERT_TIME_RANGE]: { gte: '2023-03-28T12:27:28.159Z', lte: '2023-03-30T12:27:28.159Z' }, @@ -527,7 +527,7 @@ for (const flattened of [true, false]) { [ALERT_MAINTENANCE_WINDOW_IDS]: [], [ALERT_STATUS]: 'recovered', [ALERT_WORKFLOW_STATUS]: 'custom_status', - [ALERT_DURATION]: '36000000', + [ALERT_DURATION]: 36000, [ALERT_START]: '2023-03-28T12:27:28.159Z', [ALERT_END]: '2023-03-30T12:27:28.159Z', [ALERT_TIME_RANGE]: { gte: '2023-03-28T12:27:28.159Z', lte: '2023-03-30T12:27:28.159Z' }, diff --git a/x-pack/plugins/alerting/server/alerts_client/lib/build_recovered_alert.ts b/x-pack/plugins/alerting/server/alerts_client/lib/build_recovered_alert.ts index be6d7ff033dd1..74bebca1bb955 100644 --- a/x-pack/plugins/alerting/server/alerts_client/lib/build_recovered_alert.ts +++ b/x-pack/plugins/alerting/server/alerts_client/lib/build_recovered_alert.ts @@ -28,6 +28,7 @@ import { Alert as LegacyAlert } from '../../alert/alert'; import { AlertInstanceContext, AlertInstanceState, RuleAlertData } from '../../types'; import type { AlertRule } from '../types'; import { stripFrameworkFields } from './strip_framework_fields'; +import { nanosToMicros } from './nanos_to_micros'; import { removeUnflattenedFieldsFromAlert, replaceRefreshableAlertFields } from './format_alert'; interface BuildRecoveredAlertOpts< @@ -95,7 +96,7 @@ export const buildRecoveredAlert = < [ALERT_STATUS]: 'recovered', // Set latest duration as recovered alerts should have updated duration ...(legacyAlert.getState().duration - ? { [ALERT_DURATION]: legacyAlert.getState().duration } + ? { [ALERT_DURATION]: nanosToMicros(legacyAlert.getState().duration) } : {}), // Set end time ...(legacyAlert.getState().end && legacyAlert.getState().start diff --git a/x-pack/plugins/alerting/server/alerts_client/lib/nanos_to_micros.test.ts b/x-pack/plugins/alerting/server/alerts_client/lib/nanos_to_micros.test.ts new file mode 100644 index 0000000000000..b8ef50b27ce82 --- /dev/null +++ b/x-pack/plugins/alerting/server/alerts_client/lib/nanos_to_micros.test.ts @@ -0,0 +1,24 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import { nanosToMicros } from './nanos_to_micros'; + +describe('nanosToMicros', () => { + test('should correctly format nanosecond string', () => { + expect(nanosToMicros('159053000000')).toEqual(159053000); + expect(nanosToMicros('102026000000')).toEqual(102026000); + }); + + test('should correctly handle unexpected inputs', () => { + // @ts-expect-error + expect(nanosToMicros(159053000000)).toEqual(159053000); + // @ts-expect-error + expect(nanosToMicros(['159053000000'])).toEqual(0); + // @ts-expect-error + expect(nanosToMicros({ foo: '159053000000' })).toEqual(0); + expect(nanosToMicros('abc')).toEqual(0); + }); +}); diff --git a/x-pack/plugins/alerting/server/alerts_client/lib/nanos_to_micros.ts b/x-pack/plugins/alerting/server/alerts_client/lib/nanos_to_micros.ts new file mode 100644 index 0000000000000..80fc97e275ad7 --- /dev/null +++ b/x-pack/plugins/alerting/server/alerts_client/lib/nanos_to_micros.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 { isNumber, isString } from 'lodash'; + +export const nanosToMicros = (nanosecondString: string): number => { + if (!isString(nanosecondString)) { + return isNumber(nanosecondString) ? nanosecondString / 1000 : 0; + } + + try { + const nanos = parseInt(nanosecondString, 10); + return isNaN(nanos) ? 0 : nanos / 1000; + } catch (err) { + return 0; + } +}; diff --git a/x-pack/plugins/alerting/server/alerts_client/types.ts b/x-pack/plugins/alerting/server/alerts_client/types.ts index 0c48138615e43..2f8c54238baee 100644 --- a/x-pack/plugins/alerting/server/alerts_client/types.ts +++ b/x-pack/plugins/alerting/server/alerts_client/types.ts @@ -81,7 +81,6 @@ export interface IAlertsClient< alertsToReturn: Record; recoveredAlertsToReturn: Record; }; - setAlertStatusToUntracked(indices: string[], ruleIds: string[]): Promise; factory(): PublicAlertFactory< State, Context, diff --git a/x-pack/plugins/alerting/server/alerts_service/alerts_service.mock.ts b/x-pack/plugins/alerting/server/alerts_service/alerts_service.mock.ts index 1df9e8b2ff67a..ca8b9199fa6c8 100644 --- a/x-pack/plugins/alerting/server/alerts_service/alerts_service.mock.ts +++ b/x-pack/plugins/alerting/server/alerts_service/alerts_service.mock.ts @@ -12,6 +12,7 @@ const creatAlertsServiceMock = () => { isInitialized: jest.fn(), getContextInitializationPromise: jest.fn(), createAlertsClient: jest.fn(), + setAlertsToUntracked: jest.fn(), }; }); }; diff --git a/x-pack/plugins/alerting/server/alerts_service/alerts_service.ts b/x-pack/plugins/alerting/server/alerts_service/alerts_service.ts index d0c9474389ef0..c90d11d50f56a 100644 --- a/x-pack/plugins/alerting/server/alerts_service/alerts_service.ts +++ b/x-pack/plugins/alerting/server/alerts_service/alerts_service.ts @@ -44,6 +44,7 @@ import { import type { LegacyAlertsClientParams, AlertRuleData } from '../alerts_client'; import { AlertsClient } from '../alerts_client'; import { IAlertsClient } from '../alerts_client/types'; +import { setAlertsToUntracked, SetAlertsToUntrackedOpts } from './lib/set_alerts_to_untracked'; export const TOTAL_FIELDS_LIMIT = 2500; const LEGACY_ALERT_CONTEXT = 'legacy-alert'; @@ -458,4 +459,12 @@ export class AlertsService implements IAlertsService { }); } } + + public async setAlertsToUntracked(opts: SetAlertsToUntrackedOpts) { + return setAlertsToUntracked({ + logger: this.options.logger, + esClient: await this.options.elasticsearchClientPromise, + ...opts, + }); + } } diff --git a/x-pack/plugins/alerting/server/alerts_service/lib/set_alerts_to_untracked.test.ts b/x-pack/plugins/alerting/server/alerts_service/lib/set_alerts_to_untracked.test.ts new file mode 100644 index 0000000000000..8b8d6407fdcbf --- /dev/null +++ b/x-pack/plugins/alerting/server/alerts_service/lib/set_alerts_to_untracked.test.ts @@ -0,0 +1,337 @@ +/* + * 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 { + ElasticsearchClientMock, + elasticsearchServiceMock, + loggingSystemMock, +} from '@kbn/core/server/mocks'; +import { setAlertsToUntracked } from './set_alerts_to_untracked'; + +let clusterClient: ElasticsearchClientMock; +let logger: ReturnType; + +describe('setAlertsToUntracked()', () => { + beforeEach(() => { + logger = loggingSystemMock.createLogger(); + clusterClient = elasticsearchServiceMock.createClusterClient().asInternalUser; + clusterClient.search.mockResponse({ + took: 1, + timed_out: false, + _shards: { + total: 1, + successful: 1, + skipped: 0, + failed: 0, + }, + hits: { + hits: [], + }, + }); + }); + test('should call updateByQuery on provided ruleIds', async () => { + await setAlertsToUntracked({ + logger, + esClient: clusterClient, + indices: ['test-index'], + ruleIds: ['test-rule'], + }); + + expect(clusterClient.updateByQuery).toHaveBeenCalledTimes(1); + expect(clusterClient.updateByQuery.mock.lastCall).toMatchInlineSnapshot(` + Array [ + Object { + "allow_no_indices": true, + "body": Object { + "conflicts": "proceed", + "query": Object { + "bool": Object { + "must": Array [ + Object { + "term": Object { + "kibana.alert.status": Object { + "value": "active", + }, + }, + }, + Object { + "bool": Object { + "should": Array [ + Object { + "term": Object { + "kibana.alert.rule.uuid": Object { + "value": "test-rule", + }, + }, + }, + ], + }, + }, + Object { + "bool": Object { + "should": Array [], + }, + }, + ], + }, + }, + "script": Object { + "lang": "painless", + "source": " + if (!ctx._source.containsKey('kibana.alert.status') || ctx._source['kibana.alert.status'].empty) { + ctx._source.kibana.alert.status = 'untracked'; + } else { + ctx._source['kibana.alert.status'] = 'untracked' + }", + }, + }, + "index": Array [ + "test-index", + ], + }, + ] + `); + }); + + test('should call updateByQuery on provided alertUuids', async () => { + await setAlertsToUntracked({ + logger, + esClient: clusterClient, + indices: ['test-index'], + alertUuids: ['test-alert'], + }); + + expect(clusterClient.updateByQuery).toHaveBeenCalledTimes(1); + expect(clusterClient.updateByQuery.mock.lastCall).toMatchInlineSnapshot(` + Array [ + Object { + "allow_no_indices": true, + "body": Object { + "conflicts": "proceed", + "query": Object { + "bool": Object { + "must": Array [ + Object { + "term": Object { + "kibana.alert.status": Object { + "value": "active", + }, + }, + }, + Object { + "bool": Object { + "should": Array [], + }, + }, + Object { + "bool": Object { + "should": Array [ + Object { + "term": Object { + "kibana.alert.uuid": Object { + "value": "test-alert", + }, + }, + }, + ], + }, + }, + ], + }, + }, + "script": Object { + "lang": "painless", + "source": " + if (!ctx._source.containsKey('kibana.alert.status') || ctx._source['kibana.alert.status'].empty) { + ctx._source.kibana.alert.status = 'untracked'; + } else { + ctx._source['kibana.alert.status'] = 'untracked' + }", + }, + }, + "index": Array [ + "test-index", + ], + }, + ] + `); + }); + + test('should retry updateByQuery on failure', async () => { + clusterClient.updateByQuery.mockResponseOnce({ + total: 10, + updated: 8, + }); + + await setAlertsToUntracked({ + logger, + esClient: clusterClient, + indices: ['test-index'], + ruleIds: ['test-rule'], + }); + + expect(clusterClient.updateByQuery).toHaveBeenCalledTimes(2); + expect(logger.warn).toHaveBeenCalledWith( + 'Attempt 1: Failed to untrack 2 of 10; indices test-index, ruleIds test-rule' + ); + }); + + describe('ensureAuthorized', () => { + test('should fail on siem consumer', async () => { + clusterClient.search.mockResponseOnce({ + took: 1, + timed_out: false, + _shards: { + total: 1, + successful: 1, + skipped: 0, + failed: 0, + }, + hits: { + hits: [], + }, + aggregations: { + ruleTypeIds: { + buckets: [ + { + key: 'some rule type', + consumers: { + buckets: [ + { + key: 'not siem', + }, + { + key: 'definitely not siem', + }, + { + key: 'hey guess what still not siem', + }, + { + key: 'siem', + }, + { + key: 'uh oh was that siem', + }, + { + key: 'not good', + }, + { + key: 'this is gonna fail', + }, + ], + }, + }, + ], + }, + }, + }); + await expect( + setAlertsToUntracked({ + logger, + esClient: clusterClient, + indices: ['test-index'], + ruleIds: ['test-rule'], + ensureAuthorized: () => Promise.resolve(), + }) + ).rejects.toThrowErrorMatchingInlineSnapshot(`"Untracking Security alerts is not permitted"`); + }); + + test('should fail on unauthorized consumer', async () => { + clusterClient.search.mockResponseOnce({ + took: 1, + timed_out: false, + _shards: { + total: 1, + successful: 1, + skipped: 0, + failed: 0, + }, + hits: { + hits: [], + }, + aggregations: { + ruleTypeIds: { + buckets: [ + { + key: 'some rule', + consumers: { + buckets: [ + { + key: 'authorized', + }, + { + key: 'unauthorized', + }, + ], + }, + }, + ], + }, + }, + }); + await expect( + setAlertsToUntracked({ + logger, + esClient: clusterClient, + indices: ['test-index'], + ruleIds: ['test-rule'], + ensureAuthorized: async ({ consumer }) => { + if (consumer === 'unauthorized') throw new Error('Unauthorized consumer'); + }, + }) + ).rejects.toThrowErrorMatchingInlineSnapshot(`"Unauthorized consumer"`); + }); + }); + + test('should succeed when all consumers are authorized', async () => { + clusterClient.search.mockResponseOnce({ + took: 1, + timed_out: false, + _shards: { + total: 1, + successful: 1, + skipped: 0, + failed: 0, + }, + hits: { + hits: [], + }, + aggregations: { + ruleTypeIds: { + buckets: [ + { + key: 'some rule', + consumers: { + buckets: [ + { + key: 'authorized', + }, + { + key: 'still authorized', + }, + { + key: 'even this one is authorized', + }, + ], + }, + }, + ], + }, + }, + }); + await expect( + setAlertsToUntracked({ + logger, + esClient: clusterClient, + indices: ['test-index'], + ruleIds: ['test-rule'], + ensureAuthorized: async ({ consumer }) => { + if (consumer === 'unauthorized') throw new Error('Unauthorized consumer'); + }, + }) + ).resolves; + }); +}); diff --git a/x-pack/plugins/alerting/server/alerts_service/lib/set_alerts_to_untracked.ts b/x-pack/plugins/alerting/server/alerts_service/lib/set_alerts_to_untracked.ts new file mode 100644 index 0000000000000..4fd9f116205e9 --- /dev/null +++ b/x-pack/plugins/alerting/server/alerts_service/lib/set_alerts_to_untracked.ts @@ -0,0 +1,191 @@ +/* + * 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 { isEmpty } from 'lodash'; +import { ElasticsearchClient } from '@kbn/core-elasticsearch-server'; +import { Logger } from '@kbn/logging'; +import { + ALERT_RULE_CONSUMER, + ALERT_RULE_TYPE_ID, + ALERT_RULE_UUID, + ALERT_STATUS, + ALERT_STATUS_ACTIVE, + ALERT_STATUS_UNTRACKED, + ALERT_UUID, +} from '@kbn/rule-data-utils'; + +export interface SetAlertsToUntrackedOpts { + indices: string[]; + ruleIds?: string[]; + alertUuids?: string[]; + ensureAuthorized?: (opts: { ruleTypeId: string; consumer: string }) => Promise; +} + +type UntrackedAlertsResult = Array<{ [ALERT_RULE_UUID]: string; [ALERT_UUID]: string }>; +interface ConsumersAndRuleTypesAggregation { + ruleTypeIds: { + buckets: Array<{ + key: string; + consumers: { + buckets: Array<{ key: string }>; + }; + }>; + }; +} + +export async function setAlertsToUntracked({ + logger, + esClient, + indices, + ruleIds = [], + alertUuids = [], // OPTIONAL - If no alertUuids are passed, untrack ALL ids by default, + ensureAuthorized, +}: { + logger: Logger; + esClient: ElasticsearchClient; +} & SetAlertsToUntrackedOpts): Promise { + if (isEmpty(ruleIds) && isEmpty(alertUuids)) + throw new Error('Must provide either ruleIds or alertUuids'); + + const shouldMatchRules: Array<{ term: Record }> = ruleIds.map( + (ruleId) => ({ + term: { + [ALERT_RULE_UUID]: { value: ruleId }, + }, + }) + ); + const shouldMatchAlerts: Array<{ term: Record }> = alertUuids.map( + (alertId) => ({ + term: { + [ALERT_UUID]: { value: alertId }, + }, + }) + ); + + const statusTerms: Array<{ term: Record }> = [ + { + term: { + [ALERT_STATUS]: { value: ALERT_STATUS_ACTIVE }, + }, + }, + ]; + + const must = [ + ...statusTerms, + { + bool: { + should: shouldMatchRules, + }, + }, + { + bool: { + should: shouldMatchAlerts, + // If this is empty, ES will default to minimum_should_match: 0 + }, + }, + ]; + + if (ensureAuthorized) { + // Fetch all rule type IDs and rule consumers, then run the provided ensureAuthorized check for each of them + const response = await esClient.search({ + index: indices, + allow_no_indices: true, + body: { + size: 0, + query: { + bool: { + must, + }, + }, + aggs: { + ruleTypeIds: { + terms: { field: ALERT_RULE_TYPE_ID }, + aggs: { consumers: { terms: { field: ALERT_RULE_CONSUMER } } }, + }, + }, + }, + }); + const ruleTypeIdBuckets = response.aggregations?.ruleTypeIds.buckets; + if (!ruleTypeIdBuckets) throw new Error('Unable to fetch ruleTypeIds for authorization'); + for (const { + key: ruleTypeId, + consumers: { buckets: consumerBuckets }, + } of ruleTypeIdBuckets) { + const consumers = consumerBuckets.map((b) => b.key); + for (const consumer of consumers) { + if (consumer === 'siem') throw new Error('Untracking Security alerts is not permitted'); + await ensureAuthorized({ ruleTypeId, consumer }); + } + } + } + + try { + // Retry this updateByQuery up to 3 times to make sure the number of documents + // updated equals the number of documents matched + let total = 0; + for (let retryCount = 0; retryCount < 3; retryCount++) { + const response = await esClient.updateByQuery({ + index: indices, + allow_no_indices: true, + body: { + conflicts: 'proceed', + script: { + source: UNTRACK_UPDATE_PAINLESS_SCRIPT, + lang: 'painless', + }, + query: { + bool: { + must, + }, + }, + }, + }); + if (total === 0 && response.total === 0) + throw new Error('No active alerts matched the query'); + if (response.total) total = response.total; + if (response.total === response.updated) break; + logger.warn( + `Attempt ${retryCount + 1}: Failed to untrack ${ + (response.total ?? 0) - (response.updated ?? 0) + } of ${response.total}; indices ${indices}, ${ruleIds ? 'ruleIds' : 'alertUuids'} ${ + ruleIds ? ruleIds : alertUuids + }` + ); + } + + // Fetch and return updated rule and alert instance UUIDs + const searchResponse = await esClient.search({ + index: indices, + allow_no_indices: true, + body: { + _source: [ALERT_RULE_UUID, ALERT_UUID], + size: total, + query: { + bool: { + must, + }, + }, + }, + }); + return searchResponse.hits.hits.map((hit) => hit._source) as UntrackedAlertsResult; + } catch (err) { + logger.error( + `Error marking ${ruleIds ? 'ruleIds' : 'alertUuids'} ${ + ruleIds ? ruleIds : alertUuids + } as untracked - ${err.message}` + ); + throw err; + } +} + +// Certain rule types don't flatten their AAD values, apply the ALERT_STATUS key to them directly +const UNTRACK_UPDATE_PAINLESS_SCRIPT = ` +if (!ctx._source.containsKey('${ALERT_STATUS}') || ctx._source['${ALERT_STATUS}'].empty) { + ctx._source.${ALERT_STATUS} = '${ALERT_STATUS_UNTRACKED}'; +} else { + ctx._source['${ALERT_STATUS}'] = '${ALERT_STATUS_UNTRACKED}' +}`; 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 e8a7b77a88c3d..37eae940e1669 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 @@ -36,6 +36,7 @@ import { transformRuleAttributesToRuleDomain, transformRuleDomainToRule } from ' import { ruleDomainSchema } from '../../schemas'; import type { RuleParams, RuleDomain } from '../../types'; import type { RawRule, SanitizedRule } from '../../../../types'; +import { untrackRuleAlerts } from '../../../../rules_client/lib'; export const bulkDeleteRules = async ( context: RulesClientContext, @@ -176,6 +177,10 @@ const bulkDeleteWithOCC = async ( } ); + for (const { id, attributes } of rulesToDelete) { + await untrackRuleAlerts(context, id, attributes as RuleAttributes); + } + const result = await withSpan( { name: 'unsecuredSavedObjectsClient.bulkDelete', type: 'rules' }, () => diff --git a/x-pack/plugins/alerting/server/application/rule/methods/bulk_untrack/bulk_untrack_alerts.test.ts b/x-pack/plugins/alerting/server/application/rule/methods/bulk_untrack/bulk_untrack_alerts.test.ts new file mode 100644 index 0000000000000..4a79e0a07b580 --- /dev/null +++ b/x-pack/plugins/alerting/server/application/rule/methods/bulk_untrack/bulk_untrack_alerts.test.ts @@ -0,0 +1,232 @@ +/* + * 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 { 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 { encryptedSavedObjectsMock } from '@kbn/encrypted-saved-objects-plugin/server/mocks'; +import { actionsAuthorizationMock } from '@kbn/actions-plugin/server/mocks'; +import { ActionsAuthorization } from '@kbn/actions-plugin/server'; +import { auditLoggerMock } from '@kbn/security-plugin/server/audit/mocks'; +import { loggerMock } from '@kbn/logging-mocks'; +import { ruleTypeRegistryMock } from '../../../../rule_type_registry.mock'; +import { alertingAuthorizationMock } from '../../../../authorization/alerting_authorization.mock'; +import { AlertingAuthorization } from '../../../../authorization/alerting_authorization'; +import { alertsServiceMock } from '../../../../alerts_service/alerts_service.mock'; +import { ALERT_RULE_UUID, ALERT_UUID } from '@kbn/rule-data-utils'; +import { ConcreteTaskInstance, TaskStatus } from '@kbn/task-manager-plugin/server'; + +const taskManager = taskManagerMock.createStart(); +const ruleTypeRegistry = ruleTypeRegistryMock.create(); +const unsecuredSavedObjectsClient = savedObjectsClientMock.create(); +const encryptedSavedObjects = encryptedSavedObjectsMock.createClient(); +const authorization = alertingAuthorizationMock.create(); +const actionsAuthorization = actionsAuthorizationMock.create(); +const auditLogger = auditLoggerMock.create(); +const logger = loggerMock.create(); +const internalSavedObjectsRepository = savedObjectsRepositoryMock.create(); + +const alertsService = alertsServiceMock.create(); + +const kibanaVersion = 'v8.2.0'; +const createAPIKeyMock = jest.fn(); +const rulesClientParams: jest.Mocked = { + taskManager, + ruleTypeRegistry, + unsecuredSavedObjectsClient, + authorization: authorization as unknown as AlertingAuthorization, + actionsAuthorization: actionsAuthorization as unknown as ActionsAuthorization, + spaceId: 'default', + namespace: 'default', + getUserName: jest.fn(), + createAPIKey: createAPIKeyMock, + logger, + internalSavedObjectsRepository, + encryptedSavedObjectsClient: encryptedSavedObjects, + getActionsClient: jest.fn(), + getEventLogClient: jest.fn(), + kibanaVersion, + auditLogger, + maxScheduledPerMinute: 10000, + minimumScheduleInterval: { value: '1m', enforce: false }, + isAuthenticationTypeAPIKey: jest.fn(), + getAuthenticationAPIKey: jest.fn(), + getAlertIndicesAlias: jest.fn(), + alertsService, +}; + +describe('bulkUntrackAlerts()', () => { + let rulesClient: RulesClient; + beforeEach(async () => { + rulesClient = new RulesClient(rulesClientParams); + }); + + it('should untrack alert documents and update task states', async () => { + alertsService.setAlertsToUntracked.mockResolvedValueOnce([ + { + [ALERT_RULE_UUID]: + 'did you know that you can put whatever you want into these mocked values', + [ALERT_UUID]: "it's true", + }, + ]); + + await rulesClient.bulkUntrackAlerts({ + indices: [ + 'she had them apple bottom jeans (jeans)', + 'boots with the fur (with the fur)', + 'the whole club was lookin at her', + 'she hit the floor (she hit the floor)', + 'next thing you know', + 'shawty got low, low, low, low, low, low, low, low', + ], + alertUuids: [ + 'you wake up late for school, man, you dont wanna GO', + 'you ask your mom, please? but she still says NO', + 'you missed two classes and no homeWORK', + 'but your teacher preaches class like youre some kinda JERK', + 'you gotta fight', + 'for your right', + 'to paaaaaaaaaarty', + ], + }); + + expect(alertsService.setAlertsToUntracked).toHaveBeenCalledTimes(1); + expect(taskManager.bulkUpdateState).toHaveBeenCalledWith( + ['did you know that you can put whatever you want into these mocked values'], + expect.any(Function) + ); + }); + + it('should remove provided uuids from task state', async () => { + const mockTaskId = 'task'; + const mockAlertUuid = 'alert'; + + const trackedAlertsNotToRemove = { + "we're no strangers to love": { alertUuid: 'you know the rules and so do i' }, + "a full commitment's what i'm thinkin' of": { + alertUuid: "you wouldn't get this from any other guy", + }, + "i just wanna tell you how i'm feelin'": { alertUuid: 'got to make you understand' }, + 'never gonna give you up': { alertUuid: 'never gonna let you down' }, + 'never gonna run around and desert you': { alertUuid: 'never gonna make you cry' }, + 'never gonna say goodbye': { alertUuid: 'never gonna tell a lie and hurt you' }, + }; + + const mockDate = new Date('2023-10-03T16:00:15.523Z'); + + const initialTask: ConcreteTaskInstance = { + id: mockTaskId, + state: { + alertTypeState: { + trackedAlerts: { + removeMe: { alertUuid: mockAlertUuid }, + ...trackedAlertsNotToRemove, + }, + alertInstances: { + removeMe: { alertUuid: mockAlertUuid }, + ...trackedAlertsNotToRemove, + }, + }, + }, + scheduledAt: mockDate, + runAt: mockDate, + startedAt: mockDate, + retryAt: mockDate, + ownerId: 'somebody', + taskType: "once told me the world was gonna roll me i ain't the sharpest tool in the shed", + params: {}, + attempts: 0, + status: TaskStatus.Idle, + }; + + taskManager.bulkUpdateState.mockImplementationOnce(async (taskIds, updater) => ({ + errors: [], + tasks: [{ ...initialTask, state: updater(initialTask.state, taskIds[0]) }], + })); + + alertsService.setAlertsToUntracked.mockResolvedValueOnce([ + { + [ALERT_RULE_UUID]: mockTaskId, + [ALERT_UUID]: mockAlertUuid, + }, + ]); + + await rulesClient.bulkUntrackAlerts({ + indices: ["honestly who cares we're not even testing the index right now"], + alertUuids: [mockAlertUuid], + }); + + const bulkUntrackResults = taskManager.bulkUpdateState.mock.results; + const lastBulkUntrackResult = await bulkUntrackResults[bulkUntrackResults.length - 1].value; + expect(lastBulkUntrackResult).toMatchInlineSnapshot(` + Object { + "errors": Array [], + "tasks": Array [ + Object { + "attempts": 0, + "id": "task", + "ownerId": "somebody", + "params": Object {}, + "retryAt": 2023-10-03T16:00:15.523Z, + "runAt": 2023-10-03T16:00:15.523Z, + "scheduledAt": 2023-10-03T16:00:15.523Z, + "startedAt": 2023-10-03T16:00:15.523Z, + "state": Object { + "alertInstances": Object {}, + "alertTypeState": Object { + "alertInstances": Object { + "a full commitment's what i'm thinkin' of": Object { + "alertUuid": "you wouldn't get this from any other guy", + }, + "i just wanna tell you how i'm feelin'": Object { + "alertUuid": "got to make you understand", + }, + "never gonna give you up": Object { + "alertUuid": "never gonna let you down", + }, + "never gonna run around and desert you": Object { + "alertUuid": "never gonna make you cry", + }, + "never gonna say goodbye": Object { + "alertUuid": "never gonna tell a lie and hurt you", + }, + "removeMe": Object { + "alertUuid": "alert", + }, + "we're no strangers to love": Object { + "alertUuid": "you know the rules and so do i", + }, + }, + "trackedAlerts": Object { + "a full commitment's what i'm thinkin' of": Object { + "alertUuid": "you wouldn't get this from any other guy", + }, + "i just wanna tell you how i'm feelin'": Object { + "alertUuid": "got to make you understand", + }, + "never gonna give you up": Object { + "alertUuid": "never gonna let you down", + }, + "never gonna run around and desert you": Object { + "alertUuid": "never gonna make you cry", + }, + "never gonna say goodbye": Object { + "alertUuid": "never gonna tell a lie and hurt you", + }, + "we're no strangers to love": Object { + "alertUuid": "you know the rules and so do i", + }, + }, + }, + }, + "status": "idle", + "taskType": "once told me the world was gonna roll me i ain't the sharpest tool in the shed", + }, + ], + } + `); + }); +}); diff --git a/x-pack/plugins/alerting/server/application/rule/methods/bulk_untrack/bulk_untrack_alerts.ts b/x-pack/plugins/alerting/server/application/rule/methods/bulk_untrack/bulk_untrack_alerts.ts new file mode 100644 index 0000000000000..e3c75f2889198 --- /dev/null +++ b/x-pack/plugins/alerting/server/application/rule/methods/bulk_untrack/bulk_untrack_alerts.ts @@ -0,0 +1,106 @@ +/* + * 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 { omitBy } from 'lodash'; +import Boom from '@hapi/boom'; +import { withSpan } from '@kbn/apm-utils'; +import { ALERT_RULE_UUID, ALERT_UUID } from '@kbn/rule-data-utils'; +import { bulkUntrackBodySchema } from './schemas'; +import type { BulkUntrackBody } from './types'; +import { WriteOperations, AlertingAuthorizationEntity } from '../../../../authorization'; +import { retryIfConflicts } from '../../../../lib/retry_if_conflicts'; +import { ruleAuditEvent, RuleAuditAction } from '../../../../rules_client/common/audit_events'; +import { RulesClientContext } from '../../../../rules_client/types'; + +export type { BulkUntrackBody }; + +export async function bulkUntrackAlerts( + context: RulesClientContext, + params: BulkUntrackBody +): Promise { + try { + bulkUntrackBodySchema.validate(params); + } catch (error) { + throw Boom.badRequest(`Failed to validate params: ${error.message}`); + } + + return await retryIfConflicts( + context.logger, + `rulesClient.bulkUntrack('${params.alertUuids}')`, + async () => await bulkUntrackAlertsWithOCC(context, params) + ); +} + +async function bulkUntrackAlertsWithOCC( + context: RulesClientContext, + { indices, alertUuids }: BulkUntrackBody +) { + try { + if (!context.alertsService) throw new Error('unable to access alertsService'); + const result = await context.alertsService.setAlertsToUntracked({ + indices, + alertUuids, + ensureAuthorized: async ({ + ruleTypeId, + consumer, + }: { + ruleTypeId: string; + consumer: string; + }) => + await withSpan({ name: 'authorization.ensureAuthorized', type: 'alerts' }, () => + context.authorization.ensureAuthorized({ + ruleTypeId, + consumer, + operation: WriteOperations.Update, + entity: AlertingAuthorizationEntity.Alert, + }) + ), + }); + + // Clear alert instances from their corresponding tasks so that they can remain untracked + const taskIds = [...new Set(result.map((doc) => doc[ALERT_RULE_UUID]))]; + await context.taskManager.bulkUpdateState(taskIds, (state, id) => { + try { + const uuidsToClear = result + .filter((doc) => doc[ALERT_RULE_UUID] === id) + .map((doc) => doc[ALERT_UUID]); + const alertTypeState = { + ...state.alertTypeState, + trackedAlerts: omitBy(state.alertTypeState.trackedAlerts, ({ alertUuid }) => + uuidsToClear.includes(alertUuid) + ), + }; + const alertInstances = omitBy(state.alertInstances, ({ meta: { uuid } }) => + uuidsToClear.includes(uuid) + ); + return { + ...state, + alertTypeState, + alertInstances, + }; + } catch (e) { + context.logger.error(`Failed to untrack alerts in task ID ${id}`); + return state; + } + }); + + context.auditLogger?.log( + ruleAuditEvent({ + action: RuleAuditAction.UNTRACK_ALERT, + outcome: 'success', + }) + ); + } catch (error) { + context.auditLogger?.log( + ruleAuditEvent({ + action: RuleAuditAction.UNTRACK_ALERT, + error, + }) + ); + throw error; + } +} diff --git a/x-pack/plugins/alerting/server/application/rule/methods/bulk_untrack/schemas/bulk_untrack_body_schema.ts b/x-pack/plugins/alerting/server/application/rule/methods/bulk_untrack/schemas/bulk_untrack_body_schema.ts new file mode 100644 index 0000000000000..9c77a6e6b2b3a --- /dev/null +++ b/x-pack/plugins/alerting/server/application/rule/methods/bulk_untrack/schemas/bulk_untrack_body_schema.ts @@ -0,0 +1,12 @@ +/* + * 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 bulkUntrackBodySchema = schema.object({ + indices: schema.arrayOf(schema.string()), + alertUuids: schema.arrayOf(schema.string()), +}); diff --git a/x-pack/plugins/alerting/server/application/rule/methods/bulk_untrack/schemas/index.ts b/x-pack/plugins/alerting/server/application/rule/methods/bulk_untrack/schemas/index.ts new file mode 100644 index 0000000000000..206c3f494c588 --- /dev/null +++ b/x-pack/plugins/alerting/server/application/rule/methods/bulk_untrack/schemas/index.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 { bulkUntrackBodySchema } from './bulk_untrack_body_schema'; diff --git a/x-pack/plugins/alerting/server/application/rule/methods/bulk_untrack/types/bulk_untrack_body.ts b/x-pack/plugins/alerting/server/application/rule/methods/bulk_untrack/types/bulk_untrack_body.ts new file mode 100644 index 0000000000000..f515314b2ef50 --- /dev/null +++ b/x-pack/plugins/alerting/server/application/rule/methods/bulk_untrack/types/bulk_untrack_body.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 { bulkUntrackBodySchema } from '../schemas'; + +export type BulkUntrackBody = TypeOf; diff --git a/x-pack/plugins/alerting/server/application/rule/methods/bulk_untrack/types/index.ts b/x-pack/plugins/alerting/server/application/rule/methods/bulk_untrack/types/index.ts new file mode 100644 index 0000000000000..7c663d1859850 --- /dev/null +++ b/x-pack/plugins/alerting/server/application/rule/methods/bulk_untrack/types/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 type { BulkUntrackBody } from './bulk_untrack_body'; diff --git a/x-pack/plugins/alerting/server/routes/index.ts b/x-pack/plugins/alerting/server/routes/index.ts index 5086cb56279ed..d0dc928173ef8 100644 --- a/x-pack/plugins/alerting/server/routes/index.ts +++ b/x-pack/plugins/alerting/server/routes/index.ts @@ -48,6 +48,7 @@ import { getFlappingSettingsRoute } from './get_flapping_settings'; import { updateFlappingSettingsRoute } from './update_flapping_settings'; import { getRuleTagsRoute } from './get_rule_tags'; import { getScheduleFrequencyRoute } from './rule/apis/get_schedule_frequency'; +import { bulkUntrackAlertRoute } from './rule/apis/bulk_untrack'; import { createMaintenanceWindowRoute } from './maintenance_window/apis/create/create_maintenance_window_route'; import { getMaintenanceWindowRoute } from './maintenance_window/apis/get/get_maintenance_window_route'; @@ -131,4 +132,5 @@ export function defineRoutes(opts: RouteOptions) { registerFieldsRoute(router, licenseState); bulkGetMaintenanceWindowRoute(router, licenseState); getScheduleFrequencyRoute(router, licenseState); + bulkUntrackAlertRoute(router, licenseState); } diff --git a/x-pack/plugins/alerting/server/routes/rule/apis/bulk_untrack/bulk_untrack_alert_route.ts b/x-pack/plugins/alerting/server/routes/rule/apis/bulk_untrack/bulk_untrack_alert_route.ts new file mode 100644 index 0000000000000..791fdcca533cc --- /dev/null +++ b/x-pack/plugins/alerting/server/routes/rule/apis/bulk_untrack/bulk_untrack_alert_route.ts @@ -0,0 +1,44 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import { IRouter } from '@kbn/core/server'; +import { + BulkUntrackRequestBodyV1, + bulkUntrackBodySchemaV1, +} from '../../../../../common/routes/rule/apis/bulk_untrack'; +import { transformRequestBodyToApplicationV1 } from './transforms'; +import { ILicenseState, RuleTypeDisabledError } from '../../../../lib'; +import { verifyAccessAndContext } from '../../../lib'; +import { AlertingRequestHandlerContext, INTERNAL_BASE_ALERTING_API_PATH } from '../../../../types'; + +export const bulkUntrackAlertRoute = ( + router: IRouter, + licenseState: ILicenseState +) => { + router.post( + { + path: `${INTERNAL_BASE_ALERTING_API_PATH}/alerts/_bulk_untrack`, + validate: { + body: bulkUntrackBodySchemaV1, + }, + }, + router.handleLegacyErrors( + verifyAccessAndContext(licenseState, async function (context, req, res) { + const rulesClient = (await context.alerting).getRulesClient(); + const body: BulkUntrackRequestBodyV1 = req.body; + try { + await rulesClient.bulkUntrackAlerts(transformRequestBodyToApplicationV1(body)); + return res.noContent(); + } catch (e) { + if (e instanceof RuleTypeDisabledError) { + return e.sendResponse(res); + } + throw e; + } + }) + ) + ); +}; diff --git a/x-pack/plugins/alerting/server/routes/rule/apis/bulk_untrack/index.ts b/x-pack/plugins/alerting/server/routes/rule/apis/bulk_untrack/index.ts new file mode 100644 index 0000000000000..b453f47ecbb6e --- /dev/null +++ b/x-pack/plugins/alerting/server/routes/rule/apis/bulk_untrack/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 { bulkUntrackAlertRoute } from './bulk_untrack_alert_route'; diff --git a/x-pack/plugins/alerting/server/routes/rule/apis/bulk_untrack/transforms/index.ts b/x-pack/plugins/alerting/server/routes/rule/apis/bulk_untrack/transforms/index.ts new file mode 100644 index 0000000000000..aa4eae3d633cf --- /dev/null +++ b/x-pack/plugins/alerting/server/routes/rule/apis/bulk_untrack/transforms/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 { transformRequestBodyToApplication } from './transform_request_body_to_application/latest'; +export { transformRequestBodyToApplication as transformRequestBodyToApplicationV1 } from './transform_request_body_to_application/v1'; diff --git a/x-pack/plugins/alerting/server/routes/rule/apis/bulk_untrack/transforms/transform_request_body_to_application/latest.ts b/x-pack/plugins/alerting/server/routes/rule/apis/bulk_untrack/transforms/transform_request_body_to_application/latest.ts new file mode 100644 index 0000000000000..3dab7ef9587fb --- /dev/null +++ b/x-pack/plugins/alerting/server/routes/rule/apis/bulk_untrack/transforms/transform_request_body_to_application/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 { transformRequestBodyToApplication } from './v1'; diff --git a/x-pack/plugins/alerting/server/routes/rule/apis/bulk_untrack/transforms/transform_request_body_to_application/v1.ts b/x-pack/plugins/alerting/server/routes/rule/apis/bulk_untrack/transforms/transform_request_body_to_application/v1.ts new file mode 100644 index 0000000000000..0a0750bf45b1b --- /dev/null +++ b/x-pack/plugins/alerting/server/routes/rule/apis/bulk_untrack/transforms/transform_request_body_to_application/v1.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 { RewriteRequestCase } from '../../../../../lib'; +import { BulkUntrackBody } from '../../../../../../application/rule/methods/bulk_untrack/types'; + +export const transformRequestBodyToApplication: RewriteRequestCase = ({ + indices, + alert_uuids: alertUuids, +}) => ({ + indices, + alertUuids, +}); diff --git a/x-pack/plugins/alerting/server/rules_client.mock.ts b/x-pack/plugins/alerting/server/rules_client.mock.ts index ebe6f6c555a67..0b4122e221ca5 100644 --- a/x-pack/plugins/alerting/server/rules_client.mock.ts +++ b/x-pack/plugins/alerting/server/rules_client.mock.ts @@ -53,6 +53,7 @@ const createRulesClientMock = () => { clone: jest.fn(), getAlertFromRaw: jest.fn(), getScheduleFrequency: jest.fn(), + bulkUntrackAlerts: jest.fn(), }; return mocked; }; diff --git a/x-pack/plugins/alerting/server/rules_client/common/audit_events.ts b/x-pack/plugins/alerting/server/rules_client/common/audit_events.ts index 4909a71b89b8c..0088f623f43b7 100644 --- a/x-pack/plugins/alerting/server/rules_client/common/audit_events.ts +++ b/x-pack/plugins/alerting/server/rules_client/common/audit_events.ts @@ -33,6 +33,7 @@ export enum RuleAuditAction { SNOOZE = 'rule_snooze', UNSNOOZE = 'rule_unsnooze', RUN_SOON = 'rule_run_soon', + UNTRACK_ALERT = 'rule_alert_untrack', } type VerbsTuple = [string, string, string]; @@ -81,6 +82,7 @@ const eventVerbs: Record = { 'accessing global execution KPI for', 'accessed global execution KPI for', ], + rule_alert_untrack: ['untrack', 'untracking', 'untracked'], }; const eventTypes: Record> = { @@ -107,6 +109,7 @@ const eventTypes: Record> = { rule_run_soon: 'access', rule_get_execution_kpi: 'access', rule_get_global_execution_kpi: 'access', + rule_alert_untrack: 'change', }; export interface RuleAuditEventParams { diff --git a/x-pack/plugins/alerting/server/rules_client/lib/untrack_rule_alerts.ts b/x-pack/plugins/alerting/server/rules_client/lib/untrack_rule_alerts.ts index 7eaee0e468e1c..17794aeb4ebdf 100644 --- a/x-pack/plugins/alerting/server/rules_client/lib/untrack_rule_alerts.ts +++ b/x-pack/plugins/alerting/server/rules_client/lib/untrack_rule_alerts.ts @@ -8,17 +8,18 @@ import { mapValues } from 'lodash'; import { SAVED_OBJECT_REL_PRIMARY } from '@kbn/event-log-plugin/server'; import { withSpan } from '@kbn/apm-utils'; -import { RawRule, SanitizedRule, RawAlertInstance as RawAlert } from '../../types'; +import { SanitizedRule, RawAlertInstance as RawAlert } from '../../types'; import { taskInstanceToAlertTaskInstance } from '../../task_runner/alert_task_instance'; import { Alert } from '../../alert'; import { EVENT_LOG_ACTIONS } from '../../plugin'; import { createAlertEventLogRecordObject } from '../../lib/create_alert_event_log_record_object'; import { RulesClientContext } from '../types'; +import { RuleAttributes } from '../../data/rule/types'; export const untrackRuleAlerts = async ( context: RulesClientContext, id: string, - attributes: RawRule + attributes: RuleAttributes ) => { return withSpan({ name: 'untrackRuleAlerts', type: 'rules' }, async () => { if (!context.eventLogger || !attributes.scheduledTaskId) return; @@ -27,7 +28,6 @@ export const untrackRuleAlerts = async ( await context.taskManager.get(attributes.scheduledTaskId), attributes as unknown as SanitizedRule ); - const { state } = taskInstance; const untrackedAlerts = mapValues, Alert>( @@ -78,24 +78,10 @@ export const untrackRuleAlerts = async ( // Untrack Lifecycle alerts (Alerts As Data-enabled) if (isLifecycleAlert) { - const alertsClient = await context.alertsService?.createAlertsClient({ - namespace: context.namespace!, - rule: { - id, - name: attributes.name, - consumer: attributes.consumer, - revision: attributes.revision, - spaceId: context.spaceId, - tags: attributes.tags, - parameters: attributes.parameters, - executionId: '', - }, - ruleType, - logger: context.logger, - }); - if (!alertsClient) throw new Error('Could not create alertsClient'); const indices = context.getAlertIndicesAlias([ruleType.id], context.spaceId); - await alertsClient.setAlertStatusToUntracked(indices, [id]); + if (!context.alertsService) + throw new Error('Could not access alertsService to untrack alerts'); + await context.alertsService.setAlertsToUntracked({ indices, ruleIds: [id] }); } } catch (error) { // this should not block the rest of the disable process diff --git a/x-pack/plugins/alerting/server/rules_client/methods/bulk_disable.ts b/x-pack/plugins/alerting/server/rules_client/methods/bulk_disable.ts index d409d69f8a6ac..0a1af5511fe38 100644 --- a/x-pack/plugins/alerting/server/rules_client/methods/bulk_disable.ts +++ b/x-pack/plugins/alerting/server/rules_client/methods/bulk_disable.ts @@ -115,7 +115,7 @@ 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); + await untrackRuleAlerts(context, rule.id, rule.attributes as RuleAttributes); if (rule.attributes.name) { ruleNameToRuleIdMapping[rule.id] = rule.attributes.name; diff --git a/x-pack/plugins/alerting/server/rules_client/methods/delete.ts b/x-pack/plugins/alerting/server/rules_client/methods/delete.ts index 605753cfcdfc8..566945f0357fc 100644 --- a/x-pack/plugins/alerting/server/rules_client/methods/delete.ts +++ b/x-pack/plugins/alerting/server/rules_client/methods/delete.ts @@ -12,7 +12,8 @@ import { retryIfConflicts } from '../../lib/retry_if_conflicts'; import { bulkMarkApiKeysForInvalidation } from '../../invalidate_pending_api_keys/bulk_mark_api_keys_for_invalidation'; import { ruleAuditEvent, RuleAuditAction } from '../common/audit_events'; import { RulesClientContext } from '../types'; -import { migrateLegacyActions } from '../lib'; +import { untrackRuleAlerts, migrateLegacyActions } from '../lib'; +import { RuleAttributes } from '../../data/rule/types'; export async function deleteRule(context: RulesClientContext, { id }: { id: string }) { return await retryIfConflicts( @@ -66,6 +67,8 @@ async function deleteWithOCC(context: RulesClientContext, { id }: { id: string } throw error; } + await untrackRuleAlerts(context, id, attributes as RuleAttributes); + // migrate legacy actions only for SIEM rules if (attributes.consumer === AlertConsumers.SIEM) { await migrateLegacyActions(context, { ruleId: id, attributes, skipActionsValidation: true }); diff --git a/x-pack/plugins/alerting/server/rules_client/methods/disable.ts b/x-pack/plugins/alerting/server/rules_client/methods/disable.ts index 88ffd510e8800..d51a5793371f0 100644 --- a/x-pack/plugins/alerting/server/rules_client/methods/disable.ts +++ b/x-pack/plugins/alerting/server/rules_client/methods/disable.ts @@ -12,6 +12,7 @@ import { retryIfConflicts } from '../../lib/retry_if_conflicts'; import { ruleAuditEvent, RuleAuditAction } from '../common/audit_events'; import { RulesClientContext } from '../types'; import { untrackRuleAlerts, updateMeta, migrateLegacyActions } from '../lib'; +import { RuleAttributes } from '../../data/rule/types'; export async function disable(context: RulesClientContext, { id }: { id: string }): Promise { return await retryIfConflicts( @@ -43,8 +44,6 @@ async function disableWithOCC(context: RulesClientContext, { id }: { id: string references = alert.references; } - await untrackRuleAlerts(context, id, attributes); - try { await context.authorization.ensureAuthorized({ ruleTypeId: attributes.alertTypeId, @@ -63,6 +62,8 @@ async function disableWithOCC(context: RulesClientContext, { id }: { id: string throw error; } + await untrackRuleAlerts(context, id, attributes as RuleAttributes); + context.auditLogger?.log( ruleAuditEvent({ action: RuleAuditAction.DISABLE, 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 d7a576ac99d0b..8664a0c42b9be 100644 --- a/x-pack/plugins/alerting/server/rules_client/rules_client.ts +++ b/x-pack/plugins/alerting/server/rules_client/rules_client.ts @@ -62,6 +62,10 @@ 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, + BulkUntrackBody, +} from '../application/rule/methods/bulk_untrack/bulk_untrack_alerts'; export type ConstructorOptions = Omit< RulesClientContext, @@ -167,6 +171,8 @@ export class RulesClient { public muteInstance = (options: MuteAlertParams) => muteInstance(this.context, options); public unmuteInstance = (options: MuteAlertParams) => unmuteInstance(this.context, options); + public bulkUntrackAlerts = (options: BulkUntrackBody) => bulkUntrackAlerts(this.context, options); + public runSoon = (options: { id: string }) => runSoon(this.context, options); public listRuleTypes = () => listRuleTypes(this.context); diff --git a/x-pack/plugins/alerting/server/task_runner/task_runner_alerts_client.test.ts b/x-pack/plugins/alerting/server/task_runner/task_runner_alerts_client.test.ts index b8c587f18e22e..fd11e5c8f0f8a 100644 --- a/x-pack/plugins/alerting/server/task_runner/task_runner_alerts_client.test.ts +++ b/x-pack/plugins/alerting/server/task_runner/task_runner_alerts_client.test.ts @@ -529,7 +529,7 @@ describe('Task Runner', () => { [EVENT_ACTION]: 'open', [EVENT_KIND]: 'signal', [ALERT_ACTION_GROUP]: 'default', - [ALERT_DURATION]: '0', + [ALERT_DURATION]: 0, [ALERT_FLAPPING]: false, [ALERT_FLAPPING_HISTORY]: [true], [ALERT_INSTANCE_ID]: '1', diff --git a/x-pack/plugins/alerting/tsconfig.json b/x-pack/plugins/alerting/tsconfig.json index d2d5aafc7fde9..987ad98b927cf 100644 --- a/x-pack/plugins/alerting/tsconfig.json +++ b/x-pack/plugins/alerting/tsconfig.json @@ -58,7 +58,8 @@ "@kbn/core-http-server-mocks", "@kbn/serverless", "@kbn/core-http-router-server-mocks", - "@kbn/core-application-common", + "@kbn/core-elasticsearch-server", + "@kbn/core-application-common" ], "exclude": ["target/**/*"] } diff --git a/x-pack/plugins/apm/common/__snapshots__/apm_telemetry.test.ts.snap b/x-pack/plugins/apm/common/__snapshots__/apm_telemetry.test.ts.snap index dac7b7a8d034b..f8e220ca97946 100644 --- a/x-pack/plugins/apm/common/__snapshots__/apm_telemetry.test.ts.snap +++ b/x-pack/plugins/apm/common/__snapshots__/apm_telemetry.test.ts.snap @@ -2577,6 +2577,22 @@ exports[`APM telemetry helpers getApmTelemetry generates a JSON object with the } } }, + "custom_dashboards": { + "properties": { + "kuery_fields": { + "type": "keyword", + "_meta": { + "description": "An array of up to 500 unique fields used to create the custom dashboards across all spaces. Example [service.language.name, service.name] " + } + }, + "total": { + "type": "long", + "_meta": { + "description": "Total number of custom dashboards retrived from the saved object across all spaces" + } + } + } + }, "per_service": { "properties": { "service_id": { @@ -2967,6 +2983,20 @@ exports[`APM telemetry helpers getApmTelemetry generates a JSON object with the } } }, + "custom_dashboards": { + "properties": { + "took": { + "properties": { + "ms": { + "type": "long", + "_meta": { + "description": "Execution time in milliseconds for the \\"custom_dashboards\\" task" + } + } + } + } + } + }, "per_service": { "properties": { "took": { diff --git a/x-pack/plugins/apm/dev_docs/testing.md b/x-pack/plugins/apm/dev_docs/testing.md index 362ae0027d6d4..7ce4ed34b9e61 100644 --- a/x-pack/plugins/apm/dev_docs/testing.md +++ b/x-pack/plugins/apm/dev_docs/testing.md @@ -1,5 +1,15 @@ # Testing +We've got three ways of testing our code: + +- Unit testing with Jest +- API testing +- End-to-end testing (with Cypress) + +API tests are usually preferred. They're stable and reasonably quick, and give a good approximation of real-world usage. +E2E testing is suitable for common and vital user journeys. They are however less stable than API tests. +Unit testing is a good approach if you have a very specific piece of code with lots of possibilities that you want to test. + ## Unit Tests (Jest) ``` @@ -126,11 +136,13 @@ diff --git a/x-pack/plugins/apm/scripts/test/README.md b/x-pack/plugins/apm/scri ## Serverless API tests #### Start server and run tests (single process) + ``` node scripts/functional_tests.js --config x-pack/test_serverless/api_integration/test_suites/observability/config.ts ``` #### Start server and run tests (separate processes) + ```sh # Start server node scripts/functional_tests_server.js --config x-pack/test_serverless/api_integration/test_suites/observability/config.ts @@ -154,3 +166,31 @@ All files with a .stories.tsx extension will be loaded. You can access the devel For end-to-end (e.g. agent -> apm server -> elasticsearch <- kibana) development and testing of Elastic APM please check the the [APM Integration Testing repository](https://github.com/elastic/apm-integration-testing). Data can also be generated using the [kbn-apm-synthtrace](../../../../packages/kbn-apm-synthtrace/README.md) CLI. + +## Best practices for API tests + +### 1. File structure: + +- **Endpoint-specific testing**: Each API endpoint should ideally be tested in an individual `*.spec.ts` file. This makes it easy to find tests, and works well with our general approach of having single-purpose API endpoints. +- **Directory structure**: Organize these files into feature-specific folders to make navigation easier. Each feature-specific folder can have multiple `*.spec.ts` files related to that particular feature. + +### 2. Data: + +- **Prefer Synthtrace**: Use Synthtrace for all new tests. It offers better control over data being fed into Elasticsearch, making it easier to verify calculated statistics than using Elasticsearch archives. +- **Migrating existing tests**: Aim to migrate existing tests that are based on Elasticsearch archives to Synthtrace. If for some reason Synthtrace isn't suitable, it's preferable to manually index documents rather than using ES archives. +- **Scenario management**: + - Prefer to keep the Synthtrace scenario in the same file. This makes it easier to see what's going on. + - If you do end up moving the Synthtrace scenario to another file because it gets too long, make sure the inputs are passed as parameters to a function. This keeps the information information in the test file and prevents the reader from navigating back and forth. + - Avoid re-using the same Synthtrace scenario across multiple files (in the same file it's mostly fine, but a test-specific Synthtrace scenario doesn't hurt). Re-using it will result in less specific scenarios, making it harder to write specific tests. The single scenario will grow unwieldy. It's akin to using ES archives. +- **ML**: For tests that require ML data, use the `createAndRunApmMlJob` helper function. This starts an ML job and returns only when it has completed, including any anomalies that are generated. +- **Alerting**: For tests that require alerting data, use the `createApmRule` and `waitForRuleStatus` helpers. `createApmRule` sets some defaults when creating a rule, and `waitForRuleStatus` only return when a certain status is matching your expectations. This allows you to e.g. wait until an alert fires or recovers after exceeding a threshold + +### 3. Scope of tests: + +- **Different configurations**: Tests can run for different configurations. This allows us to keep e.g. a test whether an endpoint correctly throws with a failed license check in the same file as one that tests the return values from the endpoint if a license check doesn't fail. +- **Specificity**: Make checks as detailed as possible. Avoid broad "has data" checks, especially when return values can be controlled by Synthtrace. Avoid using snapshot testing. +- **Error handling**: For API endpoints that might return specific error codes or messages, ensure there are tests covering those specific scenarios. + +### 4. Security and access control: + +- **User privileges**: For calling APIs use `apm.readUser` whenever possible. If the endpoint requires write privileges, use `apm.writeUser` or any of the other predefined roles, whichever apply. Don't use roles with higher access levels unless required. diff --git a/x-pack/plugins/apm/server/lib/apm_telemetry/collect_data_telemetry/tasks.test.ts b/x-pack/plugins/apm/server/lib/apm_telemetry/collect_data_telemetry/tasks.test.ts index 0cbd35a8f3bd6..48dd36e0dacda 100644 --- a/x-pack/plugins/apm/server/lib/apm_telemetry/collect_data_telemetry/tasks.test.ts +++ b/x-pack/plugins/apm/server/lib/apm_telemetry/collect_data_telemetry/tasks.test.ts @@ -801,6 +801,58 @@ describe('data telemetry collection tasks', () => { }); }); + describe('custom dashboards', () => { + const task = tasks.find((t) => t.name === 'custom_dashboards'); + const savedObjectsClient = savedObjectsClientMock.create(); + + it('returns custom dashboards stats from all spaces', async () => { + savedObjectsClient.find.mockResolvedValueOnce({ + page: 1, + per_page: 500, + total: 2, + saved_objects: [ + { + type: 'apm-custom-dashboards', + id: '0b6157f0-44bd-11ed-bdb7-bffab551cd4d', + namespaces: ['default'], + attributes: { + dashboardSavedObjectId: 'foo-id', + serviceEnvironmentFilterEnabled: true, + serviceNameFilterEnabled: true, + kuery: 'service.name: frontend and service.environment: prod', + }, + references: [], + score: 1, + }, + { + type: 'apm-custom-dashboards', + id: '0b6157f0-44bd-11ed-bdb7-bffab551cd4d', + namespaces: ['space-1'], + attributes: { + dashboardSavedObjectId: 'bar-id', + serviceEnvironmentFilterEnabled: true, + serviceNameFilterEnabled: true, + kuery: 'service.name: frontend', + }, + references: [], + score: 0, + }, + ], + }); + + expect( + await task?.executor({ + savedObjectsClient, + } as any) + ).toEqual({ + custom_dashboards: { + kuery_fields: ['service.name', 'service.environment'], + total: 2, + }, + }); + }); + }); + describe('top_traces', () => { const task = tasks.find((t) => t.name === 'top_traces'); diff --git a/x-pack/plugins/apm/server/lib/apm_telemetry/collect_data_telemetry/tasks.ts b/x-pack/plugins/apm/server/lib/apm_telemetry/collect_data_telemetry/tasks.ts index b980c79e261cd..1ae9b5752a1c8 100644 --- a/x-pack/plugins/apm/server/lib/apm_telemetry/collect_data_telemetry/tasks.ts +++ b/x-pack/plugins/apm/server/lib/apm_telemetry/collect_data_telemetry/tasks.ts @@ -71,6 +71,10 @@ import { import { APM_AGENT_CONFIGURATION_INDEX } from '../../../routes/settings/apm_indices/apm_system_index_constants'; import { IndicesStatsResponse, TelemetryClient } from '../telemetry_client'; import { RollupInterval } from '../../../../common/rollup'; +import { + APM_CUSTOM_DASHBOARDS_SAVED_OBJECT_TYPE, + SavedApmCustomDashboard, +} from '../../../../common/custom_dashboards'; type ISavedObjectsClient = Pick; const TIME_RANGES = ['1d', 'all'] as const; @@ -1491,6 +1495,32 @@ export const tasks: TelemetryTask[] = [ }; }, }, + { + name: 'custom_dashboards', + executor: async ({ savedObjectsClient }) => { + const response = await savedObjectsClient.find({ + type: APM_CUSTOM_DASHBOARDS_SAVED_OBJECT_TYPE, + page: 1, + perPage: 500, + sortField: 'updated_at', + sortOrder: 'desc', + namespaces: ['*'], + }); + + const kueryNodes = response.saved_objects.map( + ({ attributes: { kuery } }) => fromKueryExpression(kuery ?? '') + ); + + const kueryFields = getKueryFields(kueryNodes); + + return { + custom_dashboards: { + kuery_fields: uniq(kueryFields), + total: response.total ?? 0, + }, + }; + }, + }, { name: 'per_service', executor: async ({ indices, telemetryClient }) => { diff --git a/x-pack/plugins/apm/server/lib/apm_telemetry/schema.ts b/x-pack/plugins/apm/server/lib/apm_telemetry/schema.ts index 7c5ca6c78c7b3..59f8c1f7097e7 100644 --- a/x-pack/plugins/apm/server/lib/apm_telemetry/schema.ts +++ b/x-pack/plugins/apm/server/lib/apm_telemetry/schema.ts @@ -1083,6 +1083,25 @@ export const apmSchema: MakeSchemaFrom = { }, }, }, + custom_dashboards: { + kuery_fields: { + type: 'array', + items: { + type: 'keyword', + _meta: { + description: + 'An array of up to 500 unique fields used to create the custom dashboards across all spaces. Example [service.language.name, service.name] ', + }, + }, + }, + total: { + type: 'long', + _meta: { + description: + 'Total number of custom dashboards retrived from the saved object across all spaces', + }, + }, + }, per_service: { type: 'array', items: { ...apmPerServiceSchema } }, top_traces: { max: { @@ -1263,6 +1282,17 @@ export const apmSchema: MakeSchemaFrom = { }, }, }, + custom_dashboards: { + took: { + ms: { + type: 'long', + _meta: { + description: + 'Execution time in milliseconds for the "custom_dashboards" task', + }, + }, + }, + }, per_service: { took: { ms: { diff --git a/x-pack/plugins/apm/server/lib/apm_telemetry/types.ts b/x-pack/plugins/apm/server/lib/apm_telemetry/types.ts index b4beb768ae334..11e181f552b47 100644 --- a/x-pack/plugins/apm/server/lib/apm_telemetry/types.ts +++ b/x-pack/plugins/apm/server/lib/apm_telemetry/types.ts @@ -213,6 +213,10 @@ export interface APMUsage { kuery_fields: string[]; total: number; }; + custom_dashboards: { + kuery_fields: string[]; + total: number; + }; per_service: APMPerService[]; top_traces: { max: number; @@ -234,6 +238,7 @@ export interface APMUsage { | 'cardinality' | 'environments' | 'service_groups' + | 'custom_dashboards' | 'per_service' | 'top_traces', { took: { ms: number } } diff --git a/x-pack/plugins/cases/public/components/app/index.tsx b/x-pack/plugins/cases/public/components/app/index.tsx index f53e7edf9356a..c5e4c87417a1b 100644 --- a/x-pack/plugins/cases/public/components/app/index.tsx +++ b/x-pack/plugins/cases/public/components/app/index.tsx @@ -44,7 +44,6 @@ const CasesAppComponent: React.FC = ({ permissions: userCapabilities.generalCases, basePath: '/', features: { alerts: { enabled: false } }, - releasePhase: 'experimental', })} ); diff --git a/x-pack/plugins/cloud_security_posture/README.md b/x-pack/plugins/cloud_security_posture/README.md index f9c760fbeb99f..0befebb667de6 100755 --- a/x-pack/plugins/cloud_security_posture/README.md +++ b/x-pack/plugins/cloud_security_posture/README.md @@ -6,17 +6,21 @@ Cloud Posture automates the identification and remediation of risks across cloud ## Development -read [Kibana Contributing Guide](https://github.com/elastic/kibana/blob/main/CONTRIBUTING.md) for more details +Read [Kibana Contributing Guide](https://github.com/elastic/kibana/blob/main/CONTRIBUTING.md) for more details ## Testing -for general guidelines, read [Kibana Testing Guide](https://www.elastic.co/guide/en/kibana/current/development-tests.html) for more details +For general guidelines, read [Kibana Testing Guide](https://www.elastic.co/guide/en/kibana/current/development-tests.html) for more details ### Tests 1. Unit Tests (Jest) - located in sibling files to the source code -2. [Integration Tests](../../test/api_integration/apis/cloud_security_posture/index.ts) -3. [End-to-End Tests](../../test/cloud_security_posture_functional/pages/index.ts) +1. [API Integration Tests](../../test/api_integration/apis/cloud_security_posture/config.ts) +1. [Telemetry Integration Tests](../../test/cloud_security_posture_api/config.ts) +1. [End-to-End Tests](../../test/cloud_security_posture_functional/config.ts) +1. [Serverless API Integration tests](../../test_serverless/api_integration/test_suites/security/config.ts) +1. [Serverless End-to-End Tests](../../test_serverless/functional/test_suites/security/config.ts) + ### Tools @@ -32,6 +36,17 @@ Run **ESLint**: yarn lint:es x-pack/plugins/cloud_security_posture ``` +Run **i18n check**: +```bash +node scripts/i18n_check.js +``` + +> **Note** +> +> i18n should run on project scope as it checks translations files outside of our plugin. +> +> Fixes can be applied using the --fix flag + Run [**Unit Tests**](https://www.elastic.co/guide/en/kibana/current/development-tests.html#_unit_testing): ```bash @@ -39,6 +54,7 @@ yarn test:jest --config x-pack/plugins/cloud_security_posture/jest.config.js ``` > **Note** +> > for a coverage report, add the `--coverage` flag, and run `open target/kibana-coverage/jest/x-pack/plugins/cloud_security_posture/index.html` Run [**Integration Tests**](https://docs.elastic.dev/kibana-dev-docs/tutorials/testing-plugins#): @@ -50,14 +66,45 @@ yarn test:ftr --config x-pack/test/api_integration/config.ts Run [**End-to-End Tests**](https://www.elastic.co/guide/en/kibana/current/development-tests.html#_running_functional_tests): ```bash -yarn test:ftr --config x-pack/test/cloud_security_posture_functional/config.ts --debug +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/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 ``` -
+#### Run **FTR tests (integration or e2e) for development** + +Functional test runner (FTR) can be used separately with `ftr:runner` and `ftr:server`. This is convenient while developing tests. -test runner (FTR) can be used separately with `ftr:runner` and `ftr:server`: +For example, +run ESS (stateful) api integration tests: ```bash yarn test:ftr:server --config x-pack/test/api_integration/config.ts -yarn test:ftr:runner --include-tag=cloud_security_posture --config x-pack/test/api_integration/config.ts +yarn test:ftr:runner --config x-pack/test/api_integration/apis/cloud_security_posture/config.ts +``` + +run ESS (stateful) telemetry integration tests: +```bash +yarn test:ftr:server --config x-pack/test/cloud_security_posture_api/config.ts +yarn test:ftr:runner --config x-pack/test/cloud_security_posture_api/config.ts ``` + +run ESS (stateful) e2e tests: +```bash +yarn test:ftr:server --config x-pack/test/cloud_security_posture_functional/config.ts +yarn test:ftr:runner --config x-pack/test/cloud_security_posture_functional/config.ts +``` + +run serverless api integration tests: +```bash +yarn test:ftr:server --config x-pack/test_serverless/api_integration/test_suites/security/config.ts +yarn test:ftr:runner --config x-pack/test_serverless/api_integration/test_suites/security/config.ts --include-tag=cloud_security_posture +``` + +run serverless e2e tests: +```bash +yarn test:ftr:server --config x-pack/test_serverless/functional/test_suites/security/config.cloud_security_posture.ts +yarn test:ftr:runner ---config x-pack/test_serverless/functional/test_suites/security/config.cloud_security_posture.ts +``` \ No newline at end of file diff --git a/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/aws_credentials_form/aws_credentials_form.tsx b/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/aws_credentials_form/aws_credentials_form.tsx index fdc7d8c0f328f..5c12396942d77 100644 --- a/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/aws_credentials_form/aws_credentials_form.tsx +++ b/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/aws_credentials_form/aws_credentials_form.tsx @@ -103,6 +103,7 @@ interface Props { packageInfo: PackageInfo; onChange: any; setIsValid: (isValid: boolean) => void; + disabled: boolean; } const CloudFormationSetup = ({ @@ -215,6 +216,7 @@ export const AwsCredentialsForm = ({ packageInfo, onChange, setIsValid, + disabled, }: Props) => { const { awsCredentialsType, @@ -238,6 +240,7 @@ export const AwsCredentialsForm = ({ { updatePolicy( @@ -267,6 +271,7 @@ export const AwsCredentialsForm = ({ { updatePolicy(getPosturePolicy(newPolicy, input.type, { [key]: { value } })); @@ -281,9 +286,11 @@ export const AwsCredentialsForm = ({ const AwsCredentialTypeSelector = ({ type, onChange, + disabled, }: { onChange(type: AwsCredentialsType): void; type: AwsCredentialsType; + disabled: boolean; }) => ( ; onChange: (key: string, value: string) => void; + disabled: boolean; }) => (
{fields.map((field) => ( @@ -315,6 +325,7 @@ const AwsInputVarFields = ({ <> {field.type === 'password' && ( [ label: i18n.translate('xpack.csp.azureIntegration.setupFormatOptions.manual', { defaultMessage: 'Manual', }), - disabled: true, - tooltip: i18n.translate( - 'xpack.csp.azureIntegration.setupFormatOptions.manual.disabledTooltip', - { defaultMessage: 'Coming Soon' } - ), }, ]; @@ -83,6 +78,7 @@ interface Props { packageInfo: PackageInfo; onChange: any; setIsValid: (isValid: boolean) => void; + disabled: boolean; } const ARM_TEMPLATE_EXTERNAL_DOC_URL = @@ -108,7 +104,7 @@ const ArmTemplateSetup = ({ return ( <> - +
    { + return ( + <> + + + + + ), + }} + /> + + + + + {i18n.translate('xpack.csp.azureIntegration.documentationLinkText', { + defaultMessage: 'documentation', + })} + + ), + }} + /> + + + ); +}; + const AZURE_MINIMUM_PACKAGE_VERSION = '1.6.0'; export const AzureCredentialsForm = ({ @@ -168,6 +208,7 @@ export const AzureCredentialsForm = ({ packageInfo, onChange, setIsValid, + disabled, }: Props) => { const { setupFormat, onSetupFormatChange, integrationLink, hasArmTemplateUrl } = useAzureCredentialsForm({ @@ -221,6 +262,7 @@ export const AzureCredentialsForm = ({ )} + {setupFormat === AZURE_MANUAL_CREDENTIAL_TYPE && ( + + )} ); diff --git a/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/gcp_credential_form.tsx b/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/gcp_credential_form.tsx index 411d5298580a5..b7c82d344c9c0 100644 --- a/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/gcp_credential_form.tsx +++ b/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/gcp_credential_form.tsx @@ -78,10 +78,12 @@ const GoogleCloudShellSetup = ({ fields, onChange, input, + disabled, }: { fields: Array; onChange: (key: string, value: string) => void; input: NewPackagePolicyInput; + disabled: boolean; }) => { const accountType = input.streams?.[0]?.vars?.['gcp.account_type']?.value; const getFieldById = (id: keyof GcpInputFields['fields']) => { @@ -142,6 +144,7 @@ const GoogleCloudShellSetup = ({ {organizationIdFields && accountType === GCP_ORGANIZATION_ACCOUNT && ( void; onChange: any; + disabled: boolean; } export const getInputVarsFields = (input: NewPackagePolicyInput, fields: GcpFields) => @@ -356,6 +361,7 @@ export const GcpCredentialsForm = ({ packageInfo, setIsValid, onChange, + disabled, }: GcpFormProps) => { /* Create a subset of properties from GcpField to use for hiding value of credentials json and credentials file when user switch from Manual to Cloud Shell, we wanna keep Project and Organization ID */ const subsetOfGcpField = (({ ['gcp.credentials.file']: a, ['gcp.credentials.json']: b }) => ({ @@ -444,6 +450,7 @@ export const GcpCredentialsForm = ({ {setupFormat === SETUP_ACCESS_CLOUD_SHELL ? ( updatePolicy(getPosturePolicy(newPolicy, input.type, { [key]: { value } })) @@ -462,6 +470,7 @@ export const GcpCredentialsForm = ({ /> ) : ( updatePolicy(getPosturePolicy(newPolicy, input.type, { [key]: { value } })) @@ -481,10 +490,12 @@ const GcpInputVarFields = ({ fields, onChange, isOrganization, + disabled, }: { fields: Array; onChange: (key: string, value: string) => void; isOrganization: boolean; + disabled: boolean; }) => { const getFieldById = (id: keyof GcpInputFields['fields']) => { return fields.find((element) => element.id === id); @@ -508,6 +519,7 @@ const GcpInputVarFields = ({ {organizationIdFields && isOrganization && ( ; newPolicy: NewPackagePolicy; updatePolicy: (updatedPolicy: NewPackagePolicy) => void; packageInfo: PackageInfo; + disabled: boolean; }) => { // This will disable the aws org option for any version below 1.5.0-preview20 which introduced support for account_type. https://github.com/elastic/integrations/pull/6682 const isValidSemantic = semverValid(packageInfo.version); @@ -198,7 +200,7 @@ const AwsAccountTypeSelect = ({ ); } // eslint-disable-next-line react-hooks/exhaustive-deps - }, [input]); + }, [input, updatePolicy]); return ( <> @@ -221,6 +223,7 @@ const AwsAccountTypeSelect = ({ )} { @@ -272,11 +275,13 @@ const GcpAccountTypeSelect = ({ newPolicy, updatePolicy, packageInfo, + disabled, }: { input: Extract; newPolicy: NewPackagePolicy; updatePolicy: (updatedPolicy: NewPackagePolicy) => void; packageInfo: PackageInfo; + disabled: boolean; }) => { // This will disable the gcp org option for any version below 1.6.0 which introduced support for account_type. https://github.com/elastic/integrations/pull/6682 const validSemantic = semverValid(packageInfo.version); @@ -341,7 +346,7 @@ const GcpAccountTypeSelect = ({ ); } // eslint-disable-next-line react-hooks/exhaustive-deps - }, [input]); + }, [input, updatePolicy]); return ( <> @@ -364,6 +369,7 @@ const GcpAccountTypeSelect = ({ )} @@ -405,10 +411,12 @@ const AzureAccountTypeSelect = ({ input, newPolicy, updatePolicy, + disabled, }: { input: Extract; newPolicy: NewPackagePolicy; updatePolicy: (updatedPolicy: NewPackagePolicy) => void; + disabled: boolean; }) => { const azureAccountTypeOptions = getAzureAccountTypeOptions(); @@ -440,6 +448,7 @@ const AzureAccountTypeSelect = ({ { @@ -628,6 +637,27 @@ export const CspPolicyTemplateForm = memo )} + + {isEditPage && ( + <> + +

    + +

    +
    + + + )} + {/* Shows info on the active policy template */} @@ -646,6 +676,7 @@ export const CspPolicyTemplateForm = memo )} @@ -655,11 +686,17 @@ export const CspPolicyTemplateForm = memo )} {input.type === 'cloudbeat/cis_azure' && ( - + )} {/* Defines the name/description */} @@ -677,6 +714,7 @@ export const CspPolicyTemplateForm = memo diff --git a/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_template_selectors.tsx b/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_template_selectors.tsx index 4491d4a7c66a8..01d7fdcfc1891 100644 --- a/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_template_selectors.tsx +++ b/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_template_selectors.tsx @@ -73,6 +73,7 @@ interface PolicyTemplateVarsFormProps { packageInfo: PackageInfo; onChange: PackagePolicyReplaceDefineStepExtensionComponentProps['onChange']; setIsValid: (isValid: boolean) => void; + disabled: boolean; } export const PolicyTemplateVarsForm = ({ input, ...props }: PolicyTemplateVarsFormProps) => { diff --git a/x-pack/plugins/elastic_assistant/kibana.jsonc b/x-pack/plugins/elastic_assistant/kibana.jsonc index d7518cf600983..395da30fcf359 100644 --- a/x-pack/plugins/elastic_assistant/kibana.jsonc +++ b/x-pack/plugins/elastic_assistant/kibana.jsonc @@ -9,7 +9,8 @@ "browser": false, "requiredPlugins": [ "actions", - "data" + "data", + "ml" ] } } diff --git a/x-pack/plugins/elastic_assistant/server/lib/langchain/execute_custom_llm_chain/index.ts b/x-pack/plugins/elastic_assistant/server/lib/langchain/execute_custom_llm_chain/index.ts index 3363a8e824729..e1f0ed100e5ac 100644 --- a/x-pack/plugins/elastic_assistant/server/lib/langchain/execute_custom_llm_chain/index.ts +++ b/x-pack/plugins/elastic_assistant/server/lib/langchain/execute_custom_llm_chain/index.ts @@ -23,6 +23,7 @@ export const callAgentExecutor = async ({ llmType, logger, request, + elserId, }: AgentExecutorParams): AgentExecutorResponse => { const llm = new ActionsClientLlm({ actions, connectorId, request, llmType, logger }); @@ -38,7 +39,7 @@ export const callAgentExecutor = async ({ }); // ELSER backed ElasticsearchStore for Knowledge Base - const esStore = new ElasticsearchStore(esClient, KNOWLEDGE_BASE_INDEX_PATTERN, logger); + const esStore = new ElasticsearchStore(esClient, KNOWLEDGE_BASE_INDEX_PATTERN, logger, elserId); const chain = RetrievalQAChain.fromLLM(llm, esStore.asRetriever()); const tools: Tool[] = [ diff --git a/x-pack/plugins/elastic_assistant/server/lib/langchain/executors/types.ts b/x-pack/plugins/elastic_assistant/server/lib/langchain/executors/types.ts index 3faa7ceaf0ebf..e1e2817ee17a1 100644 --- a/x-pack/plugins/elastic_assistant/server/lib/langchain/executors/types.ts +++ b/x-pack/plugins/elastic_assistant/server/lib/langchain/executors/types.ts @@ -20,6 +20,7 @@ export interface AgentExecutorParams { llmType?: string; logger: Logger; request: KibanaRequest; + elserId?: string; } export type AgentExecutorResponse = Promise; diff --git a/x-pack/plugins/elastic_assistant/server/plugin.ts b/x-pack/plugins/elastic_assistant/server/plugin.ts index 797448fa88d55..dbe32ebe16efc 100755 --- a/x-pack/plugins/elastic_assistant/server/plugin.ts +++ b/x-pack/plugins/elastic_assistant/server/plugin.ts @@ -12,7 +12,10 @@ import { Plugin, Logger, IContextProvider, + KibanaRequest, + SavedObjectsClientContract, } from '@kbn/core/server'; +import { once } from 'lodash'; import { ElasticAssistantPluginSetup, @@ -20,6 +23,7 @@ import { ElasticAssistantPluginStart, ElasticAssistantPluginStartDependencies, ElasticAssistantRequestHandlerContext, + GetElser, } from './types'; import { deleteKnowledgeBaseRoute, @@ -73,12 +77,19 @@ export class ElasticAssistantPlugin ) ); + const getElserId: GetElser = once( + async (request: KibanaRequest, savedObjectsClient: SavedObjectsClientContract) => { + return (await plugins.ml.trainedModelsProvider(request, savedObjectsClient).getELSER()) + .name; + } + ); + // Knowledge Base deleteKnowledgeBaseRoute(router); - getKnowledgeBaseStatusRoute(router); - postKnowledgeBaseRoute(router); + getKnowledgeBaseStatusRoute(router, getElserId); + postKnowledgeBaseRoute(router, getElserId); // Actions Connector Execute (LLM Wrapper) - postActionsConnectorExecuteRoute(router); + postActionsConnectorExecuteRoute(router, getElserId); // Evaluate postEvaluateRoute(router); return { diff --git a/x-pack/plugins/elastic_assistant/server/routes/knowledge_base/constants.ts b/x-pack/plugins/elastic_assistant/server/routes/knowledge_base/constants.ts index 9b20be8ca9867..640f72089ebad 100644 --- a/x-pack/plugins/elastic_assistant/server/routes/knowledge_base/constants.ts +++ b/x-pack/plugins/elastic_assistant/server/routes/knowledge_base/constants.ts @@ -5,8 +5,6 @@ * 2.0. */ -// Note: using default ELSER model ID so when setup by user in UI, all defaults can be accepted and everything works -export const ELSER_MODEL_ID = '.elser_model_1'; export const MODEL_EVALUATION_RESULTS_INDEX_PATTERN = '.kibana-elastic-ai-assistant-evaluation-results'; export const KNOWLEDGE_BASE_INDEX_PATTERN = '.kibana-elastic-ai-assistant-kb'; diff --git a/x-pack/plugins/elastic_assistant/server/routes/knowledge_base/get_knowledge_base_status.test.ts b/x-pack/plugins/elastic_assistant/server/routes/knowledge_base/get_knowledge_base_status.test.ts index 72f9659fe8d98..f37f2a3ab2882 100644 --- a/x-pack/plugins/elastic_assistant/server/routes/knowledge_base/get_knowledge_base_status.test.ts +++ b/x-pack/plugins/elastic_assistant/server/routes/knowledge_base/get_knowledge_base_status.test.ts @@ -18,11 +18,13 @@ describe('Get Knowledge Base Status Route', () => { clients.core.elasticsearch.client = elasticsearchServiceMock.createScopedClusterClient(); + const mockGetElser = jest.fn().mockResolvedValue('.elser_model_2'); + beforeEach(() => { server = serverMock.create(); ({ context } = requestContextMock.createTools()); - getKnowledgeBaseStatusRoute(server.router); + getKnowledgeBaseStatusRoute(server.router, mockGetElser); }); describe('Status codes', () => { diff --git a/x-pack/plugins/elastic_assistant/server/routes/knowledge_base/get_knowledge_base_status.ts b/x-pack/plugins/elastic_assistant/server/routes/knowledge_base/get_knowledge_base_status.ts index 568462c352b87..8162ef3bdbd67 100644 --- a/x-pack/plugins/elastic_assistant/server/routes/knowledge_base/get_knowledge_base_status.ts +++ b/x-pack/plugins/elastic_assistant/server/routes/knowledge_base/get_knowledge_base_status.ts @@ -7,20 +7,14 @@ import { IRouter } from '@kbn/core/server'; import { transformError } from '@kbn/securitysolution-es-utils'; - import type { GetKnowledgeBaseStatusResponse } from '@kbn/elastic-assistant'; import { buildResponse } from '../../lib/build_response'; import { buildRouteValidation } from '../../schemas/common'; -import { ElasticAssistantRequestHandlerContext } from '../../types'; +import { ElasticAssistantRequestHandlerContext, GetElser } from '../../types'; import { KNOWLEDGE_BASE } from '../../../common/constants'; import { GetKnowledgeBaseStatusPathParams } from '../../schemas/knowledge_base/get_knowledge_base_status'; import { ElasticsearchStore } from '../../lib/langchain/elasticsearch_store/elasticsearch_store'; -import { - ELSER_MODEL_ID, - ESQL_DOCS_LOADED_QUERY, - ESQL_RESOURCE, - KNOWLEDGE_BASE_INDEX_PATTERN, -} from './constants'; +import { ESQL_DOCS_LOADED_QUERY, ESQL_RESOURCE, KNOWLEDGE_BASE_INDEX_PATTERN } from './constants'; /** * Get the status of the Knowledge Base index, pipeline, and resources (collection of documents) @@ -28,7 +22,8 @@ import { * @param router IRouter for registering routes */ export const getKnowledgeBaseStatusRoute = ( - router: IRouter + router: IRouter, + getElser: GetElser ) => { router.get( { @@ -56,7 +51,9 @@ export const getKnowledgeBaseStatusRoute = ( const indexExists = await esStore.indexExists(); const pipelineExists = await esStore.pipelineExists(); - const modelExists = await esStore.isModelInstalled(ELSER_MODEL_ID); + + const elserId = await getElser(request, (await context.core).savedObjects.getClient()); + const modelExists = await esStore.isModelInstalled(elserId); const body: GetKnowledgeBaseStatusResponse = { elser_exists: modelExists, diff --git a/x-pack/plugins/elastic_assistant/server/routes/knowledge_base/post_knowledge_base.test.ts b/x-pack/plugins/elastic_assistant/server/routes/knowledge_base/post_knowledge_base.test.ts index 56383438cdb2e..ceb5f1b3879f6 100644 --- a/x-pack/plugins/elastic_assistant/server/routes/knowledge_base/post_knowledge_base.test.ts +++ b/x-pack/plugins/elastic_assistant/server/routes/knowledge_base/post_knowledge_base.test.ts @@ -18,11 +18,13 @@ describe('Post Knowledge Base Route', () => { clients.core.elasticsearch.client = elasticsearchServiceMock.createScopedClusterClient(); + const mockGetElser = jest.fn().mockResolvedValue('.elser_model_2'); + beforeEach(() => { server = serverMock.create(); ({ context } = requestContextMock.createTools()); - postKnowledgeBaseRoute(server.router); + postKnowledgeBaseRoute(server.router, mockGetElser); }); describe('Status codes', () => { diff --git a/x-pack/plugins/elastic_assistant/server/routes/knowledge_base/post_knowledge_base.ts b/x-pack/plugins/elastic_assistant/server/routes/knowledge_base/post_knowledge_base.ts index 651817a97e449..580c03e23a0cc 100644 --- a/x-pack/plugins/elastic_assistant/server/routes/knowledge_base/post_knowledge_base.ts +++ b/x-pack/plugins/elastic_assistant/server/routes/knowledge_base/post_knowledge_base.ts @@ -7,10 +7,9 @@ import { IRouter } from '@kbn/core/server'; import { transformError } from '@kbn/securitysolution-es-utils'; - import { buildResponse } from '../../lib/build_response'; import { buildRouteValidation } from '../../schemas/common'; -import { ElasticAssistantRequestHandlerContext } from '../../types'; +import { ElasticAssistantRequestHandlerContext, GetElser } from '../../types'; import { KNOWLEDGE_BASE } from '../../../common/constants'; import { ElasticsearchStore } from '../../lib/langchain/elasticsearch_store/elasticsearch_store'; import { ESQL_DOCS_LOADED_QUERY, ESQL_RESOURCE, KNOWLEDGE_BASE_INDEX_PATTERN } from './constants'; @@ -21,7 +20,10 @@ import { loadESQL } from '../../lib/langchain/content_loaders/esql_loader'; * Load Knowledge Base index, pipeline, and resources (collection of documents) * @param router */ -export const postKnowledgeBaseRoute = (router: IRouter) => { +export const postKnowledgeBaseRoute = ( + router: IRouter, + getElser: GetElser +) => { router.post( { path: KNOWLEDGE_BASE, @@ -44,7 +46,13 @@ export const postKnowledgeBaseRoute = (router: IRouter ({ buildResponse: jest.fn().mockImplementation((x) => x), @@ -54,6 +55,7 @@ const mockContext = { elasticsearch: { client: elasticsearchServiceMock.createScopedClusterClient(), }, + savedObjects: coreMock.createRequestHandlerContext().savedObjects, }, }; @@ -89,6 +91,8 @@ const mockResponse = { }; describe('postActionsConnectorExecuteRoute', () => { + const mockGetElser = jest.fn().mockResolvedValue('.elser_model_2'); + beforeEach(() => { jest.clearAllMocks(); }); @@ -109,7 +113,8 @@ describe('postActionsConnectorExecuteRoute', () => { }; await postActionsConnectorExecuteRoute( - mockRouter as unknown as IRouter + mockRouter as unknown as IRouter, + mockGetElser ); }); @@ -131,7 +136,8 @@ describe('postActionsConnectorExecuteRoute', () => { }; await postActionsConnectorExecuteRoute( - mockRouter as unknown as IRouter + mockRouter as unknown as IRouter, + mockGetElser ); }); }); diff --git a/x-pack/plugins/elastic_assistant/server/routes/post_actions_connector_execute.ts b/x-pack/plugins/elastic_assistant/server/routes/post_actions_connector_execute.ts index 0ff90c5fa3ca6..8f620dac06faa 100644 --- a/x-pack/plugins/elastic_assistant/server/routes/post_actions_connector_execute.ts +++ b/x-pack/plugins/elastic_assistant/server/routes/post_actions_connector_execute.ts @@ -7,7 +7,6 @@ import { IRouter, Logger } from '@kbn/core/server'; import { transformError } from '@kbn/securitysolution-es-utils'; - import { POST_ACTIONS_CONNECTOR_EXECUTE } from '../../common/constants'; import { getLangChainMessages } from '../lib/langchain/helpers'; import { buildResponse } from '../lib/build_response'; @@ -16,11 +15,12 @@ import { PostActionsConnectorExecuteBody, PostActionsConnectorExecutePathParams, } from '../schemas/post_actions_connector_execute'; -import { ElasticAssistantRequestHandlerContext } from '../types'; +import { ElasticAssistantRequestHandlerContext, GetElser } from '../types'; import { callAgentExecutor } from '../lib/langchain/execute_custom_llm_chain'; export const postActionsConnectorExecuteRoute = ( - router: IRouter + router: IRouter, + getElser: GetElser ) => { router.post( { @@ -48,6 +48,8 @@ export const postActionsConnectorExecuteRoute = ( request.body.params.subActionParams.messages ); + const elserId = await getElser(request, (await context.core).savedObjects.getClient()); + const langChainResponseBody = await callAgentExecutor({ actions, connectorId, @@ -55,6 +57,7 @@ export const postActionsConnectorExecuteRoute = ( langChainMessages, logger, request, + elserId, }); return response.ok({ diff --git a/x-pack/plugins/elastic_assistant/server/types.ts b/x-pack/plugins/elastic_assistant/server/types.ts index ed3765737a287..ed9081c084420 100755 --- a/x-pack/plugins/elastic_assistant/server/types.ts +++ b/x-pack/plugins/elastic_assistant/server/types.ts @@ -9,7 +9,13 @@ import type { PluginSetupContract as ActionsPluginSetup, PluginStartContract as ActionsPluginStart, } from '@kbn/actions-plugin/server'; -import { CustomRequestHandlerContext, Logger } from '@kbn/core/server'; +import type { + CustomRequestHandlerContext, + KibanaRequest, + Logger, + SavedObjectsClientContract, +} from '@kbn/core/server'; +import { type MlPluginSetup } from '@kbn/ml-plugin/server'; /** The plugin setup interface */ export interface ElasticAssistantPluginSetup { @@ -23,6 +29,7 @@ export interface ElasticAssistantPluginStart { export interface ElasticAssistantPluginSetupDependencies { actions: ActionsPluginSetup; + ml: MlPluginSetup; } export interface ElasticAssistantPluginStartDependencies { actions: ActionsPluginStart; @@ -39,3 +46,8 @@ export interface ElasticAssistantApiRequestHandlerContext { export type ElasticAssistantRequestHandlerContext = CustomRequestHandlerContext<{ elasticAssistant: ElasticAssistantApiRequestHandlerContext; }>; + +export type GetElser = ( + request: KibanaRequest, + savedObjectsClient: SavedObjectsClientContract +) => Promise | never; diff --git a/x-pack/plugins/elastic_assistant/tsconfig.json b/x-pack/plugins/elastic_assistant/tsconfig.json index 7468ee5faa882..45dec8428e8cc 100644 --- a/x-pack/plugins/elastic_assistant/tsconfig.json +++ b/x-pack/plugins/elastic_assistant/tsconfig.json @@ -31,6 +31,7 @@ "@kbn/logging", "@kbn/std", "@kbn/stack-connectors-plugin", + "@kbn/ml-plugin", ], "exclude": [ "target/**/*", diff --git a/x-pack/plugins/enterprise_search/common/types/search_applications.ts b/x-pack/plugins/enterprise_search/common/types/search_applications.ts index 045a8bcdf5f95..1768eeecd9aee 100644 --- a/x-pack/plugins/enterprise_search/common/types/search_applications.ts +++ b/x-pack/plugins/enterprise_search/common/types/search_applications.ts @@ -25,7 +25,8 @@ export interface EnterpriseSearchApplicationDetails { template: { script: { lang: string; - params: unknown; + options: object; + params: object; source: string; }; }; diff --git a/x-pack/plugins/enterprise_search/public/applications/applications/api/search_applications/update_search_application_api_logic.test.ts b/x-pack/plugins/enterprise_search/public/applications/applications/api/search_applications/update_search_application_api_logic.test.ts index 8a263e4e1a630..6421bd1f0df18 100644 --- a/x-pack/plugins/enterprise_search/public/applications/applications/api/search_applications/update_search_application_api_logic.test.ts +++ b/x-pack/plugins/enterprise_search/public/applications/applications/api/search_applications/update_search_application_api_logic.test.ts @@ -18,7 +18,23 @@ describe('UpdateSearchApplicationApiLogic', () => { }); describe('updateSearchApplication', () => { it('calls correct api', async () => { - const searchApplication = { name: 'my-search-application', indices: ['an-index'] }; + const searchApplication = { + name: 'my-search-application', + indices: ['an-index'], + template: { + script: { + source: '"query":{"term":{"{{field_name}}":["{{field_value}}"', + lang: 'mustache', + options: { + content_type: 'application/json;charset=utf-8', + }, + params: { + field_name: 'hello', + field_value: 'world', + }, + }, + }, + }; const response = { result: 'updated' }; const promise = Promise.resolve(response); http.put.mockReturnValue(promise); @@ -27,7 +43,14 @@ describe('UpdateSearchApplicationApiLogic', () => { expect(http.put).toHaveBeenCalledWith( '/internal/enterprise_search/search_applications/my-search-application', { - body: '{"indices":["an-index"],"name":"my-search-application"}', + body: + '{"indices":["an-index"],' + + '"name":"my-search-application",' + + '"template":{' + + '"script":{"source":"\\"query\\":{\\"term\\":{\\"{{field_name}}\\":[\\"{{field_value}}\\"",' + + '"lang":"mustache",' + + '"options":{"content_type":"application/json;charset=utf-8"},' + + '"params":{"field_name":"hello","field_value":"world"}}}}', } ); await expect(result).resolves.toEqual(response); diff --git a/x-pack/plugins/enterprise_search/public/applications/applications/api/search_applications/update_search_application_api_logic.ts b/x-pack/plugins/enterprise_search/public/applications/applications/api/search_applications/update_search_application_api_logic.ts index cea5b0b5c9e88..8cd1afca438c6 100644 --- a/x-pack/plugins/enterprise_search/public/applications/applications/api/search_applications/update_search_application_api_logic.ts +++ b/x-pack/plugins/enterprise_search/public/applications/applications/api/search_applications/update_search_application_api_logic.ts @@ -12,6 +12,14 @@ import { HttpLogic } from '../../../shared/http'; export interface UpdateSearchApplicationApiParams { indices: string[]; name: string; + template: { + script: { + lang: string; + options: object; + params: object; + source: string; + }; + }; } export type UpdateSearchApplicationApiResponse = EnterpriseSearchApplication; @@ -24,11 +32,12 @@ export type UpdateSearchApplicationApiLogicActions = Actions< export const updateSearchApplication = async ({ name, indices, + template, }: UpdateSearchApplicationApiParams): Promise => { const route = `/internal/enterprise_search/search_applications/${name}`; return await HttpLogic.values.http.put(route, { - body: JSON.stringify({ indices, name }), + body: JSON.stringify({ indices, name, template }), }); }; diff --git a/x-pack/plugins/enterprise_search/public/applications/applications/components/search_application/search_application_indices_logic.test.ts b/x-pack/plugins/enterprise_search/public/applications/applications/components/search_application/search_application_indices_logic.test.ts index f5676faa47769..a116f76cf8e59 100644 --- a/x-pack/plugins/enterprise_search/public/applications/applications/components/search_application/search_application_indices_logic.test.ts +++ b/x-pack/plugins/enterprise_search/public/applications/applications/components/search_application/search_application_indices_logic.test.ts @@ -38,9 +38,13 @@ const mockSearchApplicationData: EnterpriseSearchApplicationDetails = { name: DEFAULT_VALUES.searchApplicationName, template: { script: { + source: '"query":{"term":{"{{field_name}}":["{{field_value}}"', lang: 'mustache', - params: { query_string: '*' }, - source: '', + options: { content_type: 'application/json;charset=utf-8' }, + params: { + field_name: 'hello', + field_value: 'world', + }, }, }, updated_at_millis: 1679501369566, @@ -114,6 +118,7 @@ describe('SearchApplicationViewLogic', () => { ).toHaveBeenCalledWith({ name: DEFAULT_VALUES.searchApplicationName, indices: ['search-002'], + template: mockSearchApplicationData.template, }); }); }); @@ -131,6 +136,7 @@ describe('SearchApplicationViewLogic', () => { ).toHaveBeenCalledWith({ name: DEFAULT_VALUES.searchApplicationName, indices: ['search-001', 'search-002', 'search-003'], + template: mockSearchApplicationData.template, }); }); }); diff --git a/x-pack/plugins/enterprise_search/public/applications/applications/components/search_application/search_application_indices_logic.ts b/x-pack/plugins/enterprise_search/public/applications/applications/components/search_application/search_application_indices_logic.ts index bd994eff66b8c..a12895f955cee 100644 --- a/x-pack/plugins/enterprise_search/public/applications/applications/components/search_application/search_application_indices_logic.ts +++ b/x-pack/plugins/enterprise_search/public/applications/applications/components/search_application/search_application_indices_logic.ts @@ -64,6 +64,7 @@ export const SearchApplicationIndicesLogic = kea< actions.updateSearchApplicationRequest({ name: values.searchApplicationName, indices: updatedIndices, + template: values.searchApplicationData.template, }); }, searchApplicationUpdated: () => { @@ -77,6 +78,7 @@ export const SearchApplicationIndicesLogic = kea< actions.updateSearchApplicationRequest({ name: values.searchApplicationName, indices: updatedIndices, + template: values.searchApplicationData.template, }); }, }), diff --git a/x-pack/plugins/enterprise_search/public/applications/applications/components/search_applications/search_application_indices_flyout_logic.test.ts b/x-pack/plugins/enterprise_search/public/applications/applications/components/search_applications/search_application_indices_flyout_logic.test.ts index b41a3050bbc0c..2f13794fa7474 100644 --- a/x-pack/plugins/enterprise_search/public/applications/applications/components/search_applications/search_application_indices_flyout_logic.test.ts +++ b/x-pack/plugins/enterprise_search/public/applications/applications/components/search_applications/search_application_indices_flyout_logic.test.ts @@ -44,6 +44,7 @@ const mockSearchApplicationData: EnterpriseSearchApplicationDetails = { script: { lang: 'mustache', params: { query_string: '*' }, + options: { content_type: 'application/json;charset=utf-8' }, source: '', }, }, diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/constants.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/constants.ts index 16ec910581086..d2797ea0b2abd 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/constants.ts +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/constants.ts @@ -22,6 +22,13 @@ export const CONNECTORS_DICT: Record = { externalDocsUrl: 'https://learn.microsoft.com/azure/storage/blobs/', icon: CONNECTOR_ICONS.azure_blob_storage, }, + box: { + docsUrl: docLinks.connectorsBox, + externalAuthDocsUrl: '', + externalDocsUrl: '', + icon: CONNECTOR_ICONS.box, + platinumOnly: true, + }, confluence: { docsUrl: docLinks.connectorsConfluence, externalAuthDocsUrl: '', @@ -114,6 +121,13 @@ export const CONNECTORS_DICT: Record = { externalDocsUrl: 'https://docs.oracle.com/database/oracle/oracle-database/', icon: CONNECTOR_ICONS.oracle, }, + outlook: { + docsUrl: docLinks.connectorsOutlook, + externalAuthDocsUrl: '', + externalDocsUrl: '', + icon: CONNECTOR_ICONS.outlook, + platinumOnly: true, + }, postgresql: { docsUrl: docLinks.connectorsPostgreSQL, externalAuthDocsUrl: 'https://www.postgresql.org/docs/15/auth-methods.html', @@ -160,6 +174,20 @@ export const CONNECTORS_DICT: Record = { icon: CONNECTOR_ICONS.slack, platinumOnly: true, }, + teams: { + docsUrl: docLinks.connectorsTeams, + externalAuthDocsUrl: '', + externalDocsUrl: '', + icon: CONNECTOR_ICONS.teams, + platinumOnly: true, + }, + zoom: { + docsUrl: docLinks.connectorsZoom, + externalAuthDocsUrl: '', + externalDocsUrl: '', + icon: CONNECTOR_ICONS.zoom, + platinumOnly: true, + }, }; export const CONNECTORS = CONNECTOR_DEFINITIONS.map((connector) => ({ diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/doc_links/doc_links.ts b/x-pack/plugins/enterprise_search/public/applications/shared/doc_links/doc_links.ts index 11e93c7af3a29..f84be1ad660b3 100644 --- a/x-pack/plugins/enterprise_search/public/applications/shared/doc_links/doc_links.ts +++ b/x-pack/plugins/enterprise_search/public/applications/shared/doc_links/doc_links.ts @@ -65,6 +65,7 @@ class DocLinks { public cloudIndexManagement: string; public connectors: string; public connectorsAzureBlobStorage: string; + public connectorsBox: string; public connectorsClients: string; public connectorsConfluence: string; public connectorsContentExtraction: string; @@ -81,6 +82,7 @@ class DocLinks { public connectorsNetworkDrive: string; public connectorsOneDrive: string; public connectorsOracle: string; + public connectorsOutlook: string; public connectorsPostgreSQL: string; public connectorsS3: string; public connectorsSalesforce: string; @@ -88,6 +90,8 @@ class DocLinks { public connectorsSharepoint: string; public connectorsSharepointOnline: string; public connectorsSlack: string; + public connectorsTeams: string; + public connectorsZoom: string; public connectorsWorkplaceSearch: string; public consoleGuide: string; public crawlerExtractionRules: string; @@ -229,6 +233,7 @@ class DocLinks { this.cloudIndexManagement = ''; this.connectors = ''; this.connectorsAzureBlobStorage = ''; + this.connectorsBox = ''; this.connectorsConfluence = ''; this.connectorsContentExtraction = ''; this.connectorsClients = ''; @@ -245,6 +250,7 @@ class DocLinks { this.connectorsNetworkDrive = ''; this.connectorsOneDrive = ''; this.connectorsOracle = ''; + this.connectorsOutlook = ''; this.connectorsPostgreSQL = ''; this.connectorsS3 = ''; this.connectorsSalesforce = ''; @@ -252,6 +258,8 @@ class DocLinks { this.connectorsSharepoint = ''; this.connectorsSharepointOnline = ''; this.connectorsSlack = ''; + this.connectorsTeams = ''; + this.connectorsZoom = ''; this.connectorsWorkplaceSearch = ''; this.consoleGuide = ''; this.crawlerExtractionRules = ''; @@ -394,6 +402,7 @@ class DocLinks { this.cloudIndexManagement = docLinks.links.cloud.indexManagement; this.connectors = docLinks.links.enterpriseSearch.connectors; this.connectorsAzureBlobStorage = docLinks.links.enterpriseSearch.connectorsAzureBlobStorage; + this.connectorsBox = docLinks.links.enterpriseSearch.connectorsBox; this.connectorsConfluence = docLinks.links.enterpriseSearch.connectorsConfluence; this.connectorsContentExtraction = docLinks.links.enterpriseSearch.connectorsContentExtraction; this.connectorsClients = docLinks.links.enterpriseSearch.connectorsClients; @@ -410,6 +419,7 @@ class DocLinks { this.connectorsNative = docLinks.links.enterpriseSearch.connectorsNative; this.connectorsNetworkDrive = docLinks.links.enterpriseSearch.connectorsNetworkDrive; this.connectorsOracle = docLinks.links.enterpriseSearch.connectorsOracle; + this.connectorsOutlook = docLinks.links.enterpriseSearch.connectorsOutlook; this.connectorsPostgreSQL = docLinks.links.enterpriseSearch.connectorsPostgreSQL; this.connectorsS3 = docLinks.links.enterpriseSearch.connectorsS3; this.connectorsSalesforce = docLinks.links.enterpriseSearch.connectorsSalesforce; @@ -417,6 +427,8 @@ class DocLinks { this.connectorsSharepoint = docLinks.links.enterpriseSearch.connectorsSharepoint; this.connectorsSharepointOnline = docLinks.links.enterpriseSearch.connectorsSharepointOnline; this.connectorsSlack = docLinks.links.enterpriseSearch.connectorsSlack; + this.connectorsTeams = docLinks.links.enterpriseSearch.connectorsTeams; + this.connectorsZoom = docLinks.links.enterpriseSearch.connectorsZoom; this.connectorsWorkplaceSearch = docLinks.links.enterpriseSearch.connectorsWorkplaceSearch; this.consoleGuide = docLinks.links.console.guide; this.crawlerExtractionRules = docLinks.links.enterpriseSearch.crawlerExtractionRules; diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/icons/connector_icons.ts b/x-pack/plugins/enterprise_search/public/applications/shared/icons/connector_icons.ts index ab3dc7a6cfb37..357d5e7ce96ca 100644 --- a/x-pack/plugins/enterprise_search/public/applications/shared/icons/connector_icons.ts +++ b/x-pack/plugins/enterprise_search/public/applications/shared/icons/connector_icons.ts @@ -6,6 +6,7 @@ */ import azure_blob_storage from '../../../assets/source_icons/azure_blob_storage.svg'; +import box from '../../../assets/source_icons/box.svg'; import confluence_cloud from '../../../assets/source_icons/confluence_cloud.svg'; import custom from '../../../assets/source_icons/custom.svg'; import dropbox from '../../../assets/source_icons/dropbox.svg'; @@ -20,6 +21,7 @@ import mysql from '../../../assets/source_icons/mysql.svg'; import network_drive from '../../../assets/source_icons/network_drive.svg'; import onedrive from '../../../assets/source_icons/onedrive.svg'; import oracle from '../../../assets/source_icons/oracle.svg'; +import outlook from '../../../assets/source_icons/outlook.svg'; import postgresql from '../../../assets/source_icons/postgresql.svg'; import amazon_s3 from '../../../assets/source_icons/s3.svg'; import salesforce from '../../../assets/source_icons/salesforce.svg'; @@ -27,10 +29,13 @@ import servicenow from '../../../assets/source_icons/servicenow.svg'; import sharepoint from '../../../assets/source_icons/sharepoint.svg'; import sharepoint_online from '../../../assets/source_icons/sharepoint_online.svg'; import slack from '../../../assets/source_icons/slack.svg'; +import teams from '../../../assets/source_icons/teams.svg'; +import zoom from '../../../assets/source_icons/zoom.svg'; export const CONNECTOR_ICONS = { amazon_s3, azure_blob_storage, + box, confluence_cloud, custom, dropbox, @@ -45,10 +50,13 @@ export const CONNECTOR_ICONS = { network_drive, onedrive, oracle, + outlook, postgresql, salesforce, servicenow, sharepoint, sharepoint_online, slack, + teams, + zoom, }; diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/index.test.tsx b/x-pack/plugins/enterprise_search/public/applications/workplace_search/index.test.tsx index 453a6346f8690..6771168239126 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/index.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/index.test.tsx @@ -18,12 +18,20 @@ import { shallow } from 'enzyme'; import { VersionMismatchPage } from '../shared/version_mismatch'; import { WorkplaceSearchHeaderActions } from './components/layout'; +import { SourcesRouter } from './views/content_sources'; import { SourceAdded } from './views/content_sources/components/source_added'; import { ErrorState } from './views/error_state'; +import { NotFound } from './views/not_found'; import { Overview } from './views/overview'; +import { RoleMappings } from './views/role_mappings'; import { SetupGuide } from './views/setup_guide'; -import { WorkplaceSearch, WorkplaceSearchUnconfigured, WorkplaceSearchConfigured } from '.'; +import { + WorkplaceSearch, + WorkplaceSearchUnconfigured, + WorkplaceSearchConfigured, + WorkplaceSearchConfiguredRoutes, +} from '.'; describe('WorkplaceSearch', () => { it('renders VersionMismatchPage when there are mismatching versions', () => { @@ -89,24 +97,33 @@ describe('WorkplaceSearchConfigured', () => { }); it('renders chrome and header actions', () => { - setMockValues({ organization: { kibanaUIsEnabled: false } }); - const wrapper = shallow(); - expect(wrapper.find(Overview)).toHaveLength(1); + setMockValues({ + account: { isAdmin: true }, + organization: { kibanaUIsEnabled: true }, + }); + const props = { isAdmin: true, kibanaUIsEnabled: true }; + const wrapperConfiguredRoutes = shallow(); + expect(wrapperConfiguredRoutes.find(Overview)).toHaveLength(1); + shallow(); expect(mockKibanaValues.setChromeIsVisible).toHaveBeenCalledWith(true); expect(mockKibanaValues.renderHeaderActions).toHaveBeenCalledWith(WorkplaceSearchHeaderActions); }); it('initializes app data with passed props', () => { const { workplaceSearch } = DEFAULT_INITIAL_APP_DATA; - setMockValues({ organization: { kibanaUIsEnabled: false } }); + setMockValues({ account: { isAdmin: true }, organization: { kibanaUIsEnabled: false } }); shallow(); expect(initializeAppData).toHaveBeenCalledWith({ workplaceSearch }); }); it('does not re-initialize app data or re-render header actions', () => { - setMockValues({ hasInitialized: true, organization: { kibanaUIsEnabled: false } }); + setMockValues({ + account: { isAdmin: true }, + hasInitialized: true, + organization: { kibanaUIsEnabled: false }, + }); shallow(); @@ -115,14 +132,57 @@ describe('WorkplaceSearchConfigured', () => { }); it('renders SourceAdded', () => { - setMockValues({ organization: { kibanaUIsEnabled: true } }); - const wrapper = shallow(); + setMockValues({ organization: { kibanaUIsEnabled: true }, account: { isAdmin: true } }); + const props = { isAdmin: true, kibanaUIsEnabled: true }; + const wrapper = shallow(); expect(wrapper.find(SourceAdded)).toHaveLength(1); }); - it('renders Overview when kibanaUIsEnabled is true', () => { - setMockValues({ organization: { kibanaUIsEnabled: false } }); - const wrapper = shallow(); - expect(wrapper.find(Overview)).toHaveLength(1); + describe('when admin user is logged in', () => { + it('all routes accessible when kibanaUIsEnabled is true', () => { + setMockValues({ + account: { isAdmin: true }, + organization: { kibanaUIsEnabled: true }, + }); + const props = { isAdmin: true, kibanaUIsEnabled: true }; + + const wrapper = shallow(); + expect(wrapper.find(RoleMappings)).toHaveLength(1); + }); + + it('only Overview and Notfound routes are available when kibanaUIsEnabled is false', () => { + setMockValues({ + account: { isAdmin: true }, + organization: { kibanaUIsEnabled: false }, + }); + const props = { isAdmin: true, kibanaUIsEnabled: false }; + + const wrapper = shallow(); + expect(wrapper.find(RoleMappings)).toHaveLength(0); + expect(wrapper.find(Overview)).toHaveLength(1); + expect(wrapper.find(NotFound)).toHaveLength(1); + }); + }); + describe('when non admin user is logged in, all routes are accessible', () => { + it('when kibanaUIsEnabled is true ', () => { + setMockValues({ + account: { isAdmin: false }, + organization: { kibanaUIsEnabled: true }, + }); + const props = { isAdmin: true, kibanaUIsEnabled: true }; + + const wrapper = shallow(); + expect(wrapper.find(RoleMappings)).toHaveLength(1); + }); + it('when kibanaUIsEnabled is false ', () => { + setMockValues({ + account: { isAdmin: false }, + organization: { kibanaUIsEnabled: false }, + }); + const props = { isAdmin: false, kibanaUIsEnabled: false }; + + const wrapper = shallow(); + expect(wrapper.find(SourcesRouter)).toHaveLength(2); + }); }); }); diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/index.tsx b/x-pack/plugins/enterprise_search/public/applications/workplace_search/index.tsx index 74921301669e7..e9332fe81bdab 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/index.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/index.tsx @@ -73,10 +73,80 @@ export const WorkplaceSearch: React.FC = (props) => { return ; }; +export const WorkplaceSearchConfiguredRoutes: React.FC<{ + isAdmin: boolean; + kibanaUIsEnabled: boolean; +}> = ({ isAdmin, kibanaUIsEnabled }) => { + const isblockingRoutes = isAdmin && !kibanaUIsEnabled; + return !isblockingRoutes ? ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ) : ( + + + + + + + + + ); +}; export const WorkplaceSearchConfigured: React.FC = (props) => { const { hasInitialized, organization: { kibanaUIsEnabled }, + account: { isAdmin }, } = useValues(AppLogic); const { initializeAppData, setContext } = useActions(AppLogic); const { renderHeaderActions, setChromeIsVisible } = useValues(KibanaLogic); @@ -100,65 +170,7 @@ export const WorkplaceSearchConfigured: React.FC = (props) => { } }, [hasInitialized]); - return ( - - - - - {kibanaUIsEnabled && ( - <> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - )} - - - - - - ); + return ; }; export const WorkplaceSearchUnconfigured: React.FC = () => ( diff --git a/x-pack/plugins/enterprise_search/public/assets/source_icons/outlook.svg b/x-pack/plugins/enterprise_search/public/assets/source_icons/outlook.svg new file mode 100644 index 0000000000000..74d4c44a4a820 --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/assets/source_icons/outlook.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/x-pack/plugins/enterprise_search/public/assets/source_icons/teams.svg b/x-pack/plugins/enterprise_search/public/assets/source_icons/teams.svg new file mode 100644 index 0000000000000..e70e1b297d836 --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/assets/source_icons/teams.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/x-pack/plugins/enterprise_search/public/assets/source_icons/zoom.svg b/x-pack/plugins/enterprise_search/public/assets/source_icons/zoom.svg new file mode 100644 index 0000000000000..910a0807eec8b --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/assets/source_icons/zoom.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/x-pack/plugins/enterprise_search/server/__mocks__/routerDependencies.mock.ts b/x-pack/plugins/enterprise_search/server/__mocks__/routerDependencies.mock.ts index 1f4c66e83234a..623b851b9ab7c 100644 --- a/x-pack/plugins/enterprise_search/server/__mocks__/routerDependencies.mock.ts +++ b/x-pack/plugins/enterprise_search/server/__mocks__/routerDependencies.mock.ts @@ -7,6 +7,8 @@ import { loggingSystemMock } from '@kbn/core/server/mocks'; +import { mlPluginServerMock } from '@kbn/ml-plugin/server/mocks'; + import { ConfigType } from '..'; export const mockLogger = loggingSystemMock.createLogger().get(); @@ -18,9 +20,7 @@ export const mockRequestHandler = { }, }; -export const mockMl = { - trainedModelsProvider: jest.fn(), -}; +export const mockMl = mlPluginServerMock.createSetupContract(); export const mockConfig = { host: 'http://localhost:3002', @@ -38,5 +38,5 @@ export const mockDependencies = { config: mockConfig, log: mockLogger, enterpriseSearchRequestHandler: mockRequestHandler as any, - ml: mockMl as any, + ml: mockMl, }; diff --git a/x-pack/plugins/enterprise_search/server/integrations.ts b/x-pack/plugins/enterprise_search/server/integrations.ts index cedbd4215a656..22aa5a8e82375 100644 --- a/x-pack/plugins/enterprise_search/server/integrations.ts +++ b/x-pack/plugins/enterprise_search/server/integrations.ts @@ -6,49 +6,11 @@ */ import type { HttpServiceSetup } from '@kbn/core/server'; -import type { IntegrationCategory } from '@kbn/custom-integrations-plugin/common'; import type { CustomIntegrationsPluginSetup } from '@kbn/custom-integrations-plugin/server'; import { i18n } from '@kbn/i18n'; import { ConfigType } from '.'; -interface WorkplaceSearchIntegration { - id: string; - title: string; - description: string; - categories: IntegrationCategory[]; - uiInternalPath?: string; -} - -const workplaceSearchIntegrations: WorkplaceSearchIntegration[] = [ - { - id: 'box', - title: i18n.translate('xpack.enterpriseSearch.workplaceSearch.integrations.boxName', { - defaultMessage: 'Box', - }), - description: i18n.translate( - 'xpack.enterpriseSearch.workplaceSearch.integrations.boxDescription', - { - defaultMessage: 'Search over your files and folders stored on Box with Workplace Search.', - } - ), - categories: ['enterprise_search', 'workplace_search_content_source'], - }, - { - id: 'zendesk', - title: i18n.translate('xpack.enterpriseSearch.workplaceSearch.integrations.zendeskName', { - defaultMessage: 'Zendesk', - }), - description: i18n.translate( - 'xpack.enterpriseSearch.workplaceSearch.integrations.zendeskDescription', - { - defaultMessage: 'Search over your tickets on Zendesk with Workplace Search.', - } - ), - categories: ['enterprise_search', 'workplace_search_content_source'], - }, -]; - export const registerEnterpriseSearchIntegrations = ( config: ConfigType, http: HttpServiceSetup, @@ -57,23 +19,6 @@ export const registerEnterpriseSearchIntegrations = ( ) => { const nativeSearchTag = config.hasNativeConnectors && isCloud ? ['native_search'] : []; if (config.canDeployEntSearch) { - workplaceSearchIntegrations.forEach((integration) => { - customIntegrations.registerCustomIntegration({ - uiInternalPath: `/app/enterprise_search/workplace_search/sources/add/${integration.id}`, - icons: [ - { - type: 'svg', - src: http.basePath.prepend( - `/plugins/enterpriseSearch/assets/source_icons/${integration.id}.svg` - ), - }, - ], - isBeta: false, - shipper: 'enterprise_search', - ...integration, - }); - }); - customIntegrations.registerCustomIntegration({ id: 'app_search_json', title: i18n.translate('xpack.enterpriseSearch.appSearch.integrations.jsonName', { @@ -939,5 +884,130 @@ export const registerEnterpriseSearchIntegrations = ( shipper: 'enterprise_search', isBeta: false, }); + + customIntegrations.registerCustomIntegration({ + id: 'outlook', + title: i18n.translate('xpack.enterpriseSearch.integrations.connectors.outlookTitle', { + defaultMessage: 'Outlook', + }), + description: i18n.translate( + 'xpack.enterpriseSearch.integrations.connectors.outlookDescription', + { + defaultMessage: 'Search over your content on Outlook.', + } + ), + categories: [ + 'enterprise_search', + 'elastic_stack', + 'custom', + 'connector', + 'connector_client', + 'outlook', + ...nativeSearchTag, + ], + uiInternalPath: + '/app/enterprise_search/content/search_indices/new_index/connector?service_type=outlook', + icons: [ + { + type: 'svg', + src: http.basePath.prepend('/plugins/enterpriseSearch/assets/source_icons/outlook.svg'), + }, + ], + shipper: 'enterprise_search', + isBeta: false, + }); + + customIntegrations.registerCustomIntegration({ + id: 'zoom', + title: i18n.translate('xpack.enterpriseSearch.integrations.connectors.zoomTitle', { + defaultMessage: 'Zoom', + }), + description: i18n.translate( + 'xpack.enterpriseSearch.integrations.connectors.zoomDescription', + { + defaultMessage: 'Search over your content on Zoom.', + } + ), + categories: [ + 'enterprise_search', + 'elastic_stack', + 'custom', + 'connector', + 'connector_client', + 'zoom', + ...nativeSearchTag, + ], + uiInternalPath: + '/app/enterprise_search/content/search_indices/new_index/connector?service_type=zoom', + icons: [ + { + type: 'svg', + src: http.basePath.prepend('/plugins/enterpriseSearch/assets/source_icons/zoom.svg'), + }, + ], + shipper: 'enterprise_search', + isBeta: false, + }); + + customIntegrations.registerCustomIntegration({ + id: 'teams', + title: i18n.translate('xpack.enterpriseSearch.integrations.connectors.teamsTitle', { + defaultMessage: 'Teams', + }), + description: i18n.translate( + 'xpack.enterpriseSearch.integrations.connectors.teamsDescription', + { + defaultMessage: 'Search over your content on Teams.', + } + ), + categories: [ + 'enterprise_search', + 'elastic_stack', + 'custom', + 'connector', + 'connector_client', + 'teams', + ...nativeSearchTag, + ], + uiInternalPath: + '/app/enterprise_search/content/search_indices/new_index/connector?service_type=teams', + icons: [ + { + type: 'svg', + src: http.basePath.prepend('/plugins/enterpriseSearch/assets/source_icons/teams.svg'), + }, + ], + shipper: 'enterprise_search', + isBeta: false, + }); + + customIntegrations.registerCustomIntegration({ + id: 'box', + title: i18n.translate('xpack.enterpriseSearch.integrations.connectors.boxTitle', { + defaultMessage: 'Box', + }), + description: i18n.translate('xpack.enterpriseSearch.integrations.connectors.boxDescription', { + defaultMessage: 'Search over your content on Box.', + }), + categories: [ + 'enterprise_search', + 'elastic_stack', + 'custom', + 'connector', + 'connector_client', + 'box', + ...nativeSearchTag, + ], + uiInternalPath: + '/app/enterprise_search/content/search_indices/new_index/connector?service_type=box', + icons: [ + { + type: 'svg', + src: http.basePath.prepend('/plugins/enterpriseSearch/assets/source_icons/box.svg'), + }, + ], + shipper: 'enterprise_search', + isBeta: false, + }); } }; diff --git a/x-pack/plugins/enterprise_search/server/lib/ml/start_ml_model_deployment.test.ts b/x-pack/plugins/enterprise_search/server/lib/ml/start_ml_model_deployment.test.ts index ad516bad20dc0..67a5c75f0f437 100644 --- a/x-pack/plugins/enterprise_search/server/lib/ml/start_ml_model_deployment.test.ts +++ b/x-pack/plugins/enterprise_search/server/lib/ml/start_ml_model_deployment.test.ts @@ -15,7 +15,7 @@ import * as mockGetStatus from './get_ml_model_deployment_status'; import { startMlModelDeployment } from './start_ml_model_deployment'; describe('startMlModelDeployment', () => { - const modelName = '.elser_model_2_SNAPSHOT'; + const modelName = '.elser_model_2'; const mockTrainedModelsProvider = { getTrainedModels: jest.fn(), getTrainedModelsStats: jest.fn(), diff --git a/x-pack/plugins/enterprise_search/server/lib/ml/start_ml_model_download.test.ts b/x-pack/plugins/enterprise_search/server/lib/ml/start_ml_model_download.test.ts index 0d3f3add793b0..80318eab0ce77 100644 --- a/x-pack/plugins/enterprise_search/server/lib/ml/start_ml_model_download.test.ts +++ b/x-pack/plugins/enterprise_search/server/lib/ml/start_ml_model_download.test.ts @@ -15,7 +15,7 @@ import * as mockGetStatus from './get_ml_model_deployment_status'; import { startMlModelDownload } from './start_ml_model_download'; describe('startMlModelDownload', () => { - const knownModelName = '.elser_model_2_SNAPSHOT'; + const knownModelName = '.elser_model_2'; const mockTrainedModelsProvider = { getTrainedModels: jest.fn(), getTrainedModelsStats: jest.fn(), diff --git a/x-pack/plugins/enterprise_search/server/routes/enterprise_search/indices.test.ts b/x-pack/plugins/enterprise_search/server/routes/enterprise_search/indices.test.ts index f285a309fb53e..e0278ff639232 100644 --- a/x-pack/plugins/enterprise_search/server/routes/enterprise_search/indices.test.ts +++ b/x-pack/plugins/enterprise_search/server/routes/enterprise_search/indices.test.ts @@ -7,9 +7,14 @@ import { MockRouter, mockDependencies } from '../../__mocks__'; -import { RequestHandlerContext } from '@kbn/core/server'; +import type { + KibanaRequest, + RequestHandlerContext, + SavedObjectsClientContract, +} from '@kbn/core/server'; import type { MlPluginSetup, MlTrainedModels } from '@kbn/ml-plugin/server'; +import { mlPluginServerMock } from '@kbn/ml-plugin/server/mocks'; import { ErrorCode } from '../../../common/types/error_codes'; @@ -181,20 +186,13 @@ describe('Enterprise Search Managed Indices', () => { path: '/internal/enterprise_search/indices/{indexName}/ml_inference/pipeline_processors', }); - mockTrainedModelsProvider = { - getTrainedModels: jest.fn(), - getTrainedModelsStats: jest.fn(), - startTrainedModelDeployment: jest.fn(), - stopTrainedModelDeployment: jest.fn(), - inferTrainedModel: jest.fn(), - deleteTrainedModel: jest.fn(), - updateTrainedModelDeployment: jest.fn(), - putTrainedModel: jest.fn(), - } as MlTrainedModels; + mockMl = mlPluginServerMock.createSetupContract(); + mockTrainedModelsProvider = mockMl.trainedModelsProvider( + {} as KibanaRequest, + {} as SavedObjectsClientContract + ); - mockMl = { - trainedModelsProvider: () => Promise.resolve(mockTrainedModelsProvider), - } as unknown as jest.Mocked; + mlPluginServerMock.createSetupContract(); registerIndexRoutes({ ...mockDependencies, @@ -1007,20 +1005,11 @@ describe('Enterprise Search Managed Indices', () => { path: '/internal/enterprise_search/pipelines/ml_inference', }); - mockTrainedModelsProvider = { - getTrainedModels: jest.fn(), - getTrainedModelsStats: jest.fn(), - startTrainedModelDeployment: jest.fn(), - stopTrainedModelDeployment: jest.fn(), - inferTrainedModel: jest.fn(), - deleteTrainedModel: jest.fn(), - updateTrainedModelDeployment: jest.fn(), - putTrainedModel: jest.fn(), - } as MlTrainedModels; - - mockMl = { - trainedModelsProvider: () => Promise.resolve(mockTrainedModelsProvider), - } as unknown as jest.Mocked; + mockMl = mlPluginServerMock.createSetupContract(); + mockTrainedModelsProvider = mockMl.trainedModelsProvider( + {} as KibanaRequest, + {} as SavedObjectsClientContract + ); registerIndexRoutes({ ...mockDependencies, @@ -1089,7 +1078,7 @@ describe('Enterprise Search Managed Indices', () => { router: mockRouter.router, }); }); - const modelName = '.elser_model_2_SNAPSHOT'; + const modelName = '.elser_model_2'; it('fails validation without modelName', () => { const request = { @@ -1153,7 +1142,7 @@ describe('Enterprise Search Managed Indices', () => { router: mockRouter.router, }); }); - const modelName = '.elser_model_2_SNAPSHOT'; + const modelName = '.elser_model_2'; it('fails validation without modelName', () => { const request = { @@ -1216,7 +1205,7 @@ describe('Enterprise Search Managed Indices', () => { router: mockRouter.router, }); }); - const modelName = '.elser_model_2_SNAPSHOT'; + const modelName = '.elser_model_2'; it('fails validation without modelName', () => { const request = { diff --git a/x-pack/plugins/enterprise_search/server/routes/enterprise_search/indices.ts b/x-pack/plugins/enterprise_search/server/routes/enterprise_search/indices.ts index cc031bd3ef684..a43846aafab6a 100644 --- a/x-pack/plugins/enterprise_search/server/routes/enterprise_search/indices.ts +++ b/x-pack/plugins/enterprise_search/server/routes/enterprise_search/indices.ts @@ -394,7 +394,7 @@ export function registerIndexRoutes({ savedObjects: { client: savedObjectsClient }, } = await context.core; const trainedModelsProvider = ml - ? await ml.trainedModelsProvider(request, savedObjectsClient) + ? ml.trainedModelsProvider(request, savedObjectsClient) : undefined; const mlInferencePipelineProcessorConfigs = await fetchMlInferencePipelineProcessors( diff --git a/x-pack/plugins/enterprise_search/server/routes/enterprise_search/search_applications.test.ts b/x-pack/plugins/enterprise_search/server/routes/enterprise_search/search_applications.test.ts index 37c6590e42166..eba77ee779973 100644 --- a/x-pack/plugins/enterprise_search/server/routes/enterprise_search/search_applications.test.ts +++ b/x-pack/plugins/enterprise_search/server/routes/enterprise_search/search_applications.test.ts @@ -217,6 +217,65 @@ describe('engines routes', () => { }, }); }); + + it('PUT - Upsert API request - create with template', async () => { + mockClient.asCurrentUser.searchApplication.put.mockImplementation(() => ({ + acknowledged: true, + })); + + await mockRouter.callRoute({ + body: { + indices: ['test-indices-1'], + template: { + script: { + source: '"query":{"term":{"{{field_name}}":["{{field_value}}"', + lang: 'mustache', + options: { + content_type: 'application/json;charset=utf-8', + }, + params: { + field_name: 'hello', + field_value: 'world', + }, + }, + }, + }, + params: { + engine_name: 'engine-name', + }, + query: { create: true }, + }); + expect(mockClient.asCurrentUser.searchApplication.put).toHaveBeenCalledWith({ + create: true, + name: 'engine-name', + search_application: { + indices: ['test-indices-1'], + name: 'engine-name', + template: { + script: { + source: '"query":{"term":{"{{field_name}}":["{{field_value}}"', + lang: 'mustache', + options: { + content_type: 'application/json;charset=utf-8', + }, + params: { + field_name: 'hello', + field_value: 'world', + }, + }, + }, + updated_at_millis: expect.any(Number), + }, + }); + const mock = jest.fn(); + const mockResponse = mock({ result: 'created' }); + expect(mockRouter.response.ok).toHaveReturnedWith(mockResponse); + expect(mockRouter.response.ok).toHaveBeenCalledWith({ + body: { + acknowledged: true, + }, + }); + }); it('returns 400, create search application with invalid characters', async () => { (mockClient.asCurrentUser.searchApplication.put as jest.Mock).mockRejectedValueOnce({ meta: { diff --git a/x-pack/plugins/enterprise_search/server/routes/enterprise_search/search_applications.ts b/x-pack/plugins/enterprise_search/server/routes/enterprise_search/search_applications.ts index 2004857b8c35a..1cf2ce06c2f5f 100644 --- a/x-pack/plugins/enterprise_search/server/routes/enterprise_search/search_applications.ts +++ b/x-pack/plugins/enterprise_search/server/routes/enterprise_search/search_applications.ts @@ -4,7 +4,7 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ -import { SearchResponse, AcknowledgedResponseBase } from '@elastic/elasticsearch/lib/api/types'; +import { AcknowledgedResponseBase, SearchResponse } from '@elastic/elasticsearch/lib/api/types'; import { schema } from '@kbn/config-schema'; import { i18n } from '@kbn/i18n'; @@ -103,6 +103,16 @@ export function registerSearchApplicationsRoutes({ log, router }: RouteDependenc body: schema.object({ indices: schema.arrayOf(schema.string()), name: schema.maybe(schema.string()), + template: schema.maybe( + schema.object({ + script: schema.object({ + source: schema.oneOf([schema.string(), schema.object({}, { unknowns: 'allow' })]), + lang: schema.string(), + params: schema.maybe(schema.object({}, { unknowns: 'allow' })), + options: schema.maybe(schema.object({}, { unknowns: 'allow' })), + }), + }) + ), }), params: schema.object({ engine_name: schema.string(), @@ -115,12 +125,27 @@ export function registerSearchApplicationsRoutes({ log, router }: RouteDependenc elasticsearchErrorHandler(log, async (context, request, response) => { const { client } = (await context.core).elasticsearch; try { + const script = request.body.template?.script; const engine = (await client.asCurrentUser.searchApplication.put({ ...request.query, name: request.params.engine_name, search_application: { indices: request.body.indices, name: request.params.engine_name, + template: + script == null + ? undefined + : { + script: { + source: + typeof script.source === 'string' + ? script.source + : JSON.stringify(script.source), + lang: script.lang, + params: script.params, + options: script.options, + }, + }, updated_at_millis: Date.now(), }, })) as EnterpriseSearchApplicationUpsertResponse; diff --git a/x-pack/plugins/fleet/server/saved_objects/index.ts b/x-pack/plugins/fleet/server/saved_objects/index.ts index b21af06c38349..9bf37677ae905 100644 --- a/x-pack/plugins/fleet/server/saved_objects/index.ts +++ b/x-pack/plugins/fleet/server/saved_objects/index.ts @@ -30,17 +30,14 @@ import { migratePackagePolicyToV8110, } from './migrations/security_solution/to_v8_11_0'; +import { migrateCspPackagePolicyToV8110 } from './migrations/cloud_security_posture'; + import { migrateOutputEvictionsFromV8100, migrateOutputToV8100 } from './migrations/to_v8_10_0'; import { migrateSyntheticsPackagePolicyToV8100 } from './migrations/synthetics/to_v8_10_0'; import { migratePackagePolicyEvictionsFromV8100 } from './migrations/security_solution/to_v8_10_0'; -import { - migratePackagePolicyEvictionsFromV81102, - migratePackagePolicyToV81102, -} from './migrations/security_solution/to_v8_11_0_2'; - import { migrateAgentPolicyToV7100, migratePackagePolicyToV7100, @@ -78,6 +75,10 @@ import { } from './migrations/security_solution'; import { migratePackagePolicyToV880 } from './migrations/to_v8_8_0'; import { migrateAgentPolicyToV890 } from './migrations/to_v8_9_0'; +import { + migratePackagePolicyToV81102, + migratePackagePolicyEvictionsFromV81102, +} from './migrations/security_solution/to_v8_11_0_2'; /* * Saved object types and mappings @@ -351,6 +352,14 @@ const getSavedObjectTypes = (): { [key: string]: SavedObjectsType } => ({ forwardCompatibility: migratePackagePolicyEvictionsFromV81102, }, }, + '4': { + changes: [ + { + type: 'data_backfill', + backfillFn: migrateCspPackagePolicyToV8110, + }, + ], + }, }, migrations: { '7.10.0': migratePackagePolicyToV7100, diff --git a/x-pack/plugins/fleet/server/saved_objects/migrations/cloud_security_posture/index.ts b/x-pack/plugins/fleet/server/saved_objects/migrations/cloud_security_posture/index.ts new file mode 100644 index 0000000000000..d9f2adb59e575 --- /dev/null +++ b/x-pack/plugins/fleet/server/saved_objects/migrations/cloud_security_posture/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 { migrateCspPackagePolicyToV8110 } from './to_v8_11_0'; diff --git a/x-pack/plugins/fleet/server/saved_objects/migrations/cloud_security_posture/to_v8_11_0.test.ts b/x-pack/plugins/fleet/server/saved_objects/migrations/cloud_security_posture/to_v8_11_0.test.ts new file mode 100644 index 0000000000000..ec6313080642b --- /dev/null +++ b/x-pack/plugins/fleet/server/saved_objects/migrations/cloud_security_posture/to_v8_11_0.test.ts @@ -0,0 +1,125 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { SavedObjectModelTransformationContext } from '@kbn/core-saved-objects-server'; + +import { migrateCspPackagePolicyToV8110 as migration } from './to_v8_11_0'; + +describe('8.11.0 Cloud Security Posture Package Policy migration', () => { + const policyDoc = ( + accountType: string, + isAccountTypeCorrect: boolean, + packageName: string + ): any => { + return { + id: 'mock-saved-csp-object-id', + attributes: { + name: 'cloud_security_posture_test', + package: { + name: packageName, + title: '', + version: '', + }, + id: 'ID_123', + policy_id: '', + enabled: true, + namespace: '', + revision: 0, + updated_at: '', + updated_by: '', + created_at: '', + created_by: '', + inputs: [ + { + type: accountType, + enabled: true, + streams: [ + { + vars: { + ...(isAccountTypeCorrect && { + 'gcp.account_type': { value: 'single-account', type: 'text' }, + }), + }, + }, + ], + config: {}, + }, + ], + }, + type: ' nested', + }; + }; + + it('adds gcp.account_type to policy, set to single', () => { + const initialDoc = policyDoc('cloudbeat/cis_gcp', false, 'cloud_security_posture'); + const migratedDoc = policyDoc('cloudbeat/cis_gcp', true, 'cloud_security_posture'); + expect(migration(initialDoc, {} as SavedObjectModelTransformationContext)).toEqual({ + attributes: migratedDoc.attributes, + }); + }); + + it('if there are no type cloudbeat/cis_gcp, do not add gcp.account_type', () => { + const initialDoc = policyDoc('cloudbeat/cis_aws', false, 'cloud_security_posture'); + const migratedDoc = policyDoc('cloudbeat/cis_aws', false, 'cloud_security_posture'); + expect(migration(initialDoc, {} as SavedObjectModelTransformationContext)).toEqual({ + attributes: migratedDoc.attributes, + }); + }); + + it('if there are no cloud_security_posture package, do not change the doc', () => { + const initialDoc = policyDoc('cloudbeat/cis_gcp', false, 'NOT_cloud_security_posture'); + const migratedDoc = policyDoc('cloudbeat/cis_gcp', false, 'NOT_cloud_security_posture'); + expect(migration(initialDoc, {} as SavedObjectModelTransformationContext)).toEqual({ + attributes: migratedDoc.attributes, + }); + }); + + it('if gcp.account_type exist and already has a value, do not set it to single-account', () => { + const policyDocWithAccountType = (): any => { + return { + id: 'mock-saved-csp-object-id', + attributes: { + name: 'cloud_security_posture_test', + package: { + name: 'cloud_security_posture', + title: '', + version: '', + }, + id: 'ID_1234', + policy_id: '', + enabled: true, + namespace: '', + revision: 0, + updated_at: '', + updated_by: '', + created_at: '', + created_by: '', + inputs: [ + { + type: 'cloudbeat/cis_gcp', + enabled: true, + streams: [ + { + vars: { + 'gcp.account_type': { value: 'single-account-MAYBE', type: 'text' }, + }, + }, + ], + config: {}, + }, + ], + }, + type: ' nested', + }; + }; + const initialDoc = policyDocWithAccountType(); + const migratedDoc = policyDocWithAccountType(); + expect(migration(initialDoc, {} as SavedObjectModelTransformationContext)).toEqual({ + attributes: migratedDoc.attributes, + }); + }); +}); diff --git a/x-pack/plugins/fleet/server/saved_objects/migrations/cloud_security_posture/to_v8_11_0.ts b/x-pack/plugins/fleet/server/saved_objects/migrations/cloud_security_posture/to_v8_11_0.ts new file mode 100644 index 0000000000000..dd6760a9dc4ac --- /dev/null +++ b/x-pack/plugins/fleet/server/saved_objects/migrations/cloud_security_posture/to_v8_11_0.ts @@ -0,0 +1,36 @@ +/* + * 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 { SavedObjectModelDataBackfillFn } from '@kbn/core-saved-objects-server'; + +import type { PackagePolicy } from '../../../../common'; + +export const migrateCspPackagePolicyToV8110: SavedObjectModelDataBackfillFn< + PackagePolicy, + PackagePolicy +> = (packagePolicyDoc) => { + if (packagePolicyDoc.attributes.package?.name !== 'cloud_security_posture') { + return { attributes: packagePolicyDoc.attributes }; + } + + const updatedAttributes = packagePolicyDoc.attributes; + + const gcpPackage = updatedAttributes.inputs.find((input) => input.type === 'cloudbeat/cis_gcp'); + + if (gcpPackage) { + const isGcpAccountTypeExists = gcpPackage.streams[0]?.vars?.hasOwnProperty('gcp.account_type'); + + if (!isGcpAccountTypeExists) { + const migratedPolicy = { 'gcp.account_type': { value: 'single-account', type: 'text' } }; + gcpPackage.streams[0].vars = { ...(gcpPackage.streams[0].vars || {}), ...migratedPolicy }; + } + } + + return { + attributes: updatedAttributes, + }; +}; diff --git a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/editor_frame.tsx b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/editor_frame.tsx index d68dbbf943b7e..7d2d256d37c67 100644 --- a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/editor_frame.tsx +++ b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/editor_frame.tsx @@ -186,6 +186,7 @@ export function EditorFrame(props: EditorFrameProps) { getUserMessages={props.getUserMessages} nowProvider={props.plugins.data.nowProvider} core={props.core} + showOnlyIcons /> ) diff --git a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/suggestion_panel.scss b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/suggestion_panel.scss index 1619eea882b25..f139bbe3ca122 100644 --- a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/suggestion_panel.scss +++ b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/suggestion_panel.scss @@ -28,6 +28,7 @@ margin-right: $euiSizeS; margin-left: $euiSizeXS / 2; margin-bottom: $euiSizeXS / 2; + padding: 0 $euiSizeS; box-shadow: none !important; // sass-lint:disable-line no-important &:focus { diff --git a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/suggestion_panel.tsx b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/suggestion_panel.tsx index 6194d5ff33bc8..51f0e3310ccdb 100644 --- a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/suggestion_panel.tsx +++ b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/suggestion_panel.tsx @@ -103,6 +103,7 @@ export interface SuggestionPanelProps { getUserMessages: UserMessagesGetter; nowProvider: DataPublicPluginStart['nowProvider']; core: CoreStart; + showOnlyIcons?: boolean; } const PreviewRenderer = ({ @@ -230,6 +231,7 @@ export function SuggestionPanel({ getUserMessages, nowProvider, core, + showOnlyIcons, }: SuggestionPanelProps) { const dispatchLens = useLensDispatch(); const activeDatasourceId = useLensSelector(selectActiveDatasourceId); @@ -437,7 +439,7 @@ export function SuggestionPanel({ onSuggestionRender(index + 1)} + showTitleAsLabel={showOnlyIcons} /> ); })} diff --git a/x-pack/plugins/lens/public/visualizations/xy/xy_suggestions.test.ts b/x-pack/plugins/lens/public/visualizations/xy/xy_suggestions.test.ts index a12afc7465579..4d733d005dcf4 100644 --- a/x-pack/plugins/lens/public/visualizations/xy/xy_suggestions.test.ts +++ b/x-pack/plugins/lens/public/visualizations/xy/xy_suggestions.test.ts @@ -980,7 +980,7 @@ describe('xy_suggestions', () => { ], }); expect(seriesSuggestion.title).toEqual('Line chart'); - expect(stackSuggestion.title).toEqual('Stacked'); + expect(stackSuggestion.title).toEqual('Bar vertical stacked'); }); test('suggests a flipped chart for unchanged table and existing bar chart on ordinal x axis', () => { @@ -1053,7 +1053,7 @@ describe('xy_suggestions', () => { const visibleSuggestions = suggestions.filter((suggestion) => !suggestion.hide); expect(visibleSuggestions).toContainEqual( expect.objectContaining({ - title: 'Stacked', + title: 'Bar vertical stacked', state: expect.objectContaining({ preferredSeriesType: 'bar_stacked' }), }) ); diff --git a/x-pack/plugins/lens/public/visualizations/xy/xy_suggestions.ts b/x-pack/plugins/lens/public/visualizations/xy/xy_suggestions.ts index b63acd9513300..1d29cd32323fb 100644 --- a/x-pack/plugins/lens/public/visualizations/xy/xy_suggestions.ts +++ b/x-pack/plugins/lens/public/visualizations/xy/xy_suggestions.ts @@ -295,30 +295,19 @@ function getSuggestionsForLayer({ buildSuggestion({ ...options, seriesType: newSeriesType, - title: newSeriesType.startsWith('bar') - ? i18n.translate('xpack.lens.xySuggestions.barChartTitle', { - defaultMessage: 'Bar chart', - }) - : i18n.translate('xpack.lens.xySuggestions.lineChartTitle', { - defaultMessage: 'Line chart', - }), + title: seriesTypeLabels(newSeriesType), }) ); } if (seriesType !== 'line' && splitBy && !seriesType.includes('percentage')) { // flip between stacked/unstacked + const suggestedSeriesType = toggleStackSeriesType(seriesType); sameStateSuggestions.push( buildSuggestion({ ...options, - seriesType: toggleStackSeriesType(seriesType), - title: seriesType.endsWith('stacked') - ? i18n.translate('xpack.lens.xySuggestions.unstackedChartTitle', { - defaultMessage: 'Unstacked', - }) - : i18n.translate('xpack.lens.xySuggestions.stackedChartTitle', { - defaultMessage: 'Stacked', - }), + seriesType: suggestedSeriesType, + title: seriesTypeLabels(suggestedSeriesType), }) ); } @@ -333,16 +322,15 @@ function getSuggestionsForLayer({ percentageOptions.splitBy = percentageOptions.xValue; delete percentageOptions.xValue; } + const suggestedSeriesType = asPercentageSeriesType(seriesType); // percentage suggestion sameStateSuggestions.push( buildSuggestion({ ...options, // hide the suggestion if split by is missing hide: !percentageOptions.splitBy, - seriesType: asPercentageSeriesType(seriesType), - title: i18n.translate('xpack.lens.xySuggestions.asPercentageTitle', { - defaultMessage: 'Percentage', - }), + seriesType: suggestedSeriesType, + title: seriesTypeLabels(suggestedSeriesType), }) ); } @@ -364,6 +352,53 @@ function getSuggestionsForLayer({ ); } +function seriesTypeLabels(seriesType: SeriesType) { + switch (seriesType) { + case 'line': + return i18n.translate('xpack.lens.xySuggestions.lineChartTitle', { + defaultMessage: 'Line chart', + }); + case 'area': + return i18n.translate('xpack.lens.xySuggestions.areaChartTitle', { + defaultMessage: 'Area chart', + }); + case 'area_stacked': + return i18n.translate('xpack.lens.xySuggestions.areaStackedChartTitle', { + defaultMessage: 'Area stacked', + }); + case 'area_percentage_stacked': + return i18n.translate('xpack.lens.xySuggestions.areaPercentageStackedChartTitle', { + defaultMessage: 'Area percentage', + }); + case 'bar': + return i18n.translate('xpack.lens.xySuggestions.verticalBarChartTitle', { + defaultMessage: 'Bar vertical', + }); + case 'bar_horizontal': + return i18n.translate('xpack.lens.xySuggestions.horizontalBarChartTitle', { + defaultMessage: 'Bar horizontal', + }); + case 'bar_stacked': + return i18n.translate('xpack.lens.xySuggestions.verticalBarStackedChartTitle', { + defaultMessage: 'Bar vertical stacked', + }); + case 'bar_horizontal_stacked': + return i18n.translate('xpack.lens.xySuggestions.horizontalBarStackedChartTitle', { + defaultMessage: 'Bar horizontal stacked', + }); + case 'bar_percentage_stacked': + return i18n.translate('xpack.lens.xySuggestions.verticalBarPercentageChartTitle', { + defaultMessage: 'Bar percentage', + }); + case 'bar_horizontal_percentage_stacked': + return i18n.translate('xpack.lens.xySuggestions.horizontalBarPercentageChartTitle', { + defaultMessage: 'Bar horizontal percentage', + }); + default: + return seriesType; + } +} + function toggleStackSeriesType(oldSeriesType: SeriesType) { switch (oldSeriesType) { case 'area': diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/common/get_destination_index.ts b/x-pack/plugins/ml/public/application/data_frame_analytics/common/get_destination_index.ts index 20de54fe54828..792c5d12a1923 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/common/get_destination_index.ts +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/common/get_destination_index.ts @@ -8,4 +8,4 @@ import type { DataFrameAnalyticsConfig } from '@kbn/ml-data-frame-analytics-utils'; export const getDestinationIndex = (jobConfig: DataFrameAnalyticsConfig | undefined) => - (Array.isArray(jobConfig?.dest.index) ? jobConfig?.dest.index[0] : jobConfig?.dest.index) ?? ''; + jobConfig?.dest.index ?? ''; diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/action_delete/use_delete_action.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/action_delete/use_delete_action.tsx index 01b6e3a3f50ad..1a828f6b6cdf0 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/action_delete/use_delete_action.tsx +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/action_delete/use_delete_action.tsx @@ -29,6 +29,8 @@ import { deleteActionNameText, DeleteActionName } from './delete_action_name'; import { JobType } from '../../../../../../../common/types/saved_objects'; +import { getDestinationIndex } from '../../../../common/get_destination_index'; + const DF_ANALYTICS_JOB_TYPE: JobType = 'data-frame-analytics'; type DataFrameAnalyticsListRowEssentials = Pick; @@ -51,7 +53,7 @@ export const useDeleteAction = (canDeleteDataFrameAnalytics: boolean) => { application: { capabilities }, } = useMlKibana().services; - const indexName = item?.config.dest.index ?? ''; + const indexName = getDestinationIndex(item?.config); const toastNotificationService = useToastNotificationService(); diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/services/analytics_service/delete_analytics.ts b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/services/analytics_service/delete_analytics.ts index 535424650d1df..8929f39bea43c 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/services/analytics_service/delete_analytics.ts +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/services/analytics_service/delete_analytics.ts @@ -51,9 +51,7 @@ export const deleteAnalyticsAndDestIndex = async ( deleteDestIndexPattern: boolean, toastNotificationService: ToastNotificationService ) => { - const destinationIndex = Array.isArray(analyticsConfig.dest.index) - ? analyticsConfig.dest.index[0] - : analyticsConfig.dest.index; + const destinationIndex = analyticsConfig.dest.index; try { if (isDataFrameAnalyticsFailed(analyticsStats.state)) { await ml.dataFrameAnalytics.stopDataFrameAnalytics(analyticsConfig.id, true); diff --git a/x-pack/plugins/ml/server/mocks.ts b/x-pack/plugins/ml/server/mocks.ts index 93a2180efa4ca..fe2fa1d915bfe 100644 --- a/x-pack/plugins/ml/server/mocks.ts +++ b/x-pack/plugins/ml/server/mocks.ts @@ -4,6 +4,7 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ +import { createTrainedModelsProviderMock } from './shared_services/providers/__mocks__/trained_models'; import { createJobServiceProviderMock } from './shared_services/providers/__mocks__/jobs_service'; import { createAnomalyDetectorsProviderMock } from './shared_services/providers/__mocks__/anomaly_detectors'; import { createMockMlSystemProvider } from './shared_services/providers/__mocks__/system'; @@ -20,6 +21,7 @@ const createSetupContract = () => modulesProvider: createModulesProviderMock(), resultsServiceProvider: createResultsServiceProviderMock(), alertingServiceProvider: createAlertingServiceProviderMock(), + trainedModelsProvider: createTrainedModelsProviderMock(), } as unknown as jest.Mocked); const createStartContract = () => jest.fn(); diff --git a/x-pack/plugins/ml/server/models/model_management/model_provider.test.ts b/x-pack/plugins/ml/server/models/model_management/model_provider.test.ts index 052e5d1f53644..3e0534d73d387 100644 --- a/x-pack/plugins/ml/server/models/model_management/model_provider.test.ts +++ b/x-pack/plugins/ml/server/models/model_management/model_provider.test.ts @@ -58,7 +58,7 @@ describe('modelsProvider', () => { config: { input: { field_names: ['text_field'] } }, default: true, description: 'Elastic Learned Sparse EncodeR v2 (Tech Preview)', - name: '.elser_model_2_SNAPSHOT', + name: '.elser_model_2', version: 2, }, { @@ -66,7 +66,7 @@ describe('modelsProvider', () => { config: { input: { field_names: ['text_field'] } }, description: 'Elastic Learned Sparse EncodeR v2, optimized for linux-x86_64 (Tech Preview)', - name: '.elser_model_2_linux-x86_64_SNAPSHOT', + name: '.elser_model_2_linux-x86_64', os: 'Linux', recommended: true, version: 2, @@ -110,7 +110,7 @@ describe('modelsProvider', () => { config: { input: { field_names: ['text_field'] } }, recommended: true, description: 'Elastic Learned Sparse EncodeR v2 (Tech Preview)', - name: '.elser_model_2_SNAPSHOT', + name: '.elser_model_2', version: 2, }, { @@ -118,7 +118,7 @@ describe('modelsProvider', () => { config: { input: { field_names: ['text_field'] } }, description: 'Elastic Learned Sparse EncodeR v2, optimized for linux-x86_64 (Tech Preview)', - name: '.elser_model_2_linux-x86_64_SNAPSHOT', + name: '.elser_model_2_linux-x86_64', os: 'Linux', version: 2, }, @@ -129,7 +129,7 @@ describe('modelsProvider', () => { describe('getELSER', () => { test('provides a recommended definition by default', async () => { const result = await modelService.getELSER(); - expect(result.name).toEqual('.elser_model_2_linux-x86_64_SNAPSHOT'); + expect(result.name).toEqual('.elser_model_2_linux-x86_64'); }); test('provides a default version if there is no recommended', async () => { @@ -155,7 +155,7 @@ describe('modelsProvider', () => { }); const result = await modelService.getELSER(); - expect(result.name).toEqual('.elser_model_2_SNAPSHOT'); + expect(result.name).toEqual('.elser_model_2'); }); test('provides the requested version', async () => { @@ -165,7 +165,7 @@ describe('modelsProvider', () => { test('provides the requested version of a recommended architecture', async () => { const result = await modelService.getELSER({ version: 2 }); - expect(result.name).toEqual('.elser_model_2_linux-x86_64_SNAPSHOT'); + expect(result.name).toEqual('.elser_model_2_linux-x86_64'); }); }); }); diff --git a/x-pack/plugins/ml/server/shared_services/providers/__mocks__/trained_models.ts b/x-pack/plugins/ml/server/shared_services/providers/__mocks__/trained_models.ts index 726457ed7981d..9af448058ce83 100644 --- a/x-pack/plugins/ml/server/shared_services/providers/__mocks__/trained_models.ts +++ b/x-pack/plugins/ml/server/shared_services/providers/__mocks__/trained_models.ts @@ -5,8 +5,19 @@ * 2.0. */ +import { TrainedModels } from '../../../shared'; + +const trainedModelsServiceMock = { + getTrainedModels: jest.fn().mockResolvedValue([]), + getTrainedModelsStats: jest.fn().mockResolvedValue([]), + startTrainedModelDeployment: jest.fn(), + stopTrainedModelDeployment: jest.fn(), + inferTrainedModel: jest.fn(), + deleteTrainedModel: jest.fn(), + updateTrainedModelDeployment: jest.fn(), + putTrainedModel: jest.fn(), + getELSER: jest.fn().mockResolvedValue({ name: '' }), +} as jest.Mocked; + export const createTrainedModelsProviderMock = () => - jest.fn(() => ({ - getTrainedModels: jest.fn(), - getTrainedModelStats: jest.fn(), - })); + jest.fn().mockReturnValue(trainedModelsServiceMock); diff --git a/x-pack/plugins/ml/server/shared_services/providers/trained_models.ts b/x-pack/plugins/ml/server/shared_services/providers/trained_models.ts index b884edd99c22d..9add1bd079917 100644 --- a/x-pack/plugins/ml/server/shared_services/providers/trained_models.ts +++ b/x-pack/plugins/ml/server/shared_services/providers/trained_models.ts @@ -8,7 +8,7 @@ import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import type { CloudSetup } from '@kbn/cloud-plugin/server'; import type { KibanaRequest, SavedObjectsClientContract } from '@kbn/core/server'; -import type { GetElserOptions } from '@kbn/ml-trained-models-utils'; +import type { GetElserOptions, ModelDefinitionResponse } from '@kbn/ml-trained-models-utils'; import type { MlInferTrainedModelRequest, MlStopTrainedModelDeploymentRequest, @@ -47,6 +47,7 @@ export interface TrainedModelsProvider { putTrainedModel( params: estypes.MlPutTrainedModelRequest ): Promise; + getELSER(params?: GetElserOptions): Promise; }; } @@ -122,7 +123,7 @@ export function getTrainedModelsProvider( return mlClient.putTrainedModel(params); }); }, - async getELSER(params: GetElserOptions) { + async getELSER(params?: GetElserOptions) { return await guards .isFullLicense() .hasMlCapabilities(['canGetTrainedModels']) diff --git a/x-pack/plugins/monitoring/public/application/pages/elasticsearch/nodes_page.tsx b/x-pack/plugins/monitoring/public/application/pages/elasticsearch/nodes_page.tsx index 75dadbc2f6558..c13682800707a 100644 --- a/x-pack/plugins/monitoring/public/application/pages/elasticsearch/nodes_page.tsx +++ b/x-pack/plugins/monitoring/public/application/pages/elasticsearch/nodes_page.tsx @@ -186,15 +186,17 @@ export const ElasticsearchNodesPage: React.FC = ({ clusters }) = ); }; -function sortNodeRoles(roles: string[] | undefined): string[] | undefined { +function sortNodeRoles(roles: string[] | string | undefined): string[] | undefined { if (!roles) { return undefined; } - if (roles.length === 0) { + const rolesList = Array.isArray(roles) ? roles : [roles]; + + if (rolesList.length === 0) { return []; } - const rolesAsSet = new Set(roles); + const rolesAsSet = new Set(rolesList); return rolesByImportance.filter((role) => rolesAsSet.has(role)); } diff --git a/x-pack/plugins/observability/public/pages/alerts/components/alert_actions.test.tsx b/x-pack/plugins/observability/public/pages/alerts/components/alert_actions.test.tsx index 4a92143943f26..70dfcd0a82d43 100644 --- a/x-pack/plugins/observability/public/pages/alerts/components/alert_actions.test.tsx +++ b/x-pack/plugins/observability/public/pages/alerts/components/alert_actions.test.tsx @@ -4,6 +4,7 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ +import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; import { act } from '@testing-library/react-hooks'; import { kibanaStartMock } from '../../../utils/kibana_react.mock'; import React from 'react'; @@ -44,6 +45,12 @@ jest.mock('../../../hooks/use_get_user_cases_permissions', () => ({ useGetUserCasesPermissions: jest.fn(() => ({ create: true, read: true })), })); +jest.mock('@kbn/triggers-actions-ui-plugin/public/common/lib/kibana/kibana_react', () => ({ + useKibana: jest.fn(() => ({ + services: { notifications: { toasts: { addDanger: jest.fn(), addSuccess: jest.fn() } } }, + })), +})); + const config = { unsafe: { alertDetails: { @@ -69,6 +76,19 @@ describe('ObservabilityActions component', () => { }); const setup = async (pageId: string) => { + const queryClient = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + logger: { + log: () => {}, + warn: () => {}, + error: () => {}, + }, + }); + const props: Props = { config, data: inventoryThresholdAlert as unknown as TimelineNonEcsData[], @@ -82,7 +102,11 @@ describe('ObservabilityActions component', () => { refresh, }; - const wrapper = mountWithIntl(); + const wrapper = mountWithIntl( + + + + ); await act(async () => { await nextTick(); wrapper.update(); diff --git a/x-pack/plugins/observability/public/pages/alerts/components/alert_actions.tsx b/x-pack/plugins/observability/public/pages/alerts/components/alert_actions.tsx index 567bb32b07f8c..7799655908907 100644 --- a/x-pack/plugins/observability/public/pages/alerts/components/alert_actions.tsx +++ b/x-pack/plugins/observability/public/pages/alerts/components/alert_actions.tsx @@ -20,8 +20,15 @@ import { CaseAttachmentsWithoutOwner } from '@kbn/cases-plugin/public'; import { AttachmentType } from '@kbn/cases-plugin/common'; import { EcsSecurityExtension as Ecs } from '@kbn/securitysolution-ecs'; import { TimelineNonEcsData } from '@kbn/timelines-plugin/common'; -import { ALERT_RULE_TYPE_ID, OBSERVABILITY_THRESHOLD_RULE_TYPE_ID } from '@kbn/rule-data-utils'; - +import { + ALERT_RULE_TYPE_ID, + ALERT_RULE_UUID, + ALERT_STATUS, + ALERT_STATUS_ACTIVE, + ALERT_UUID, + OBSERVABILITY_THRESHOLD_RULE_TYPE_ID, +} from '@kbn/rule-data-utils'; +import { useBulkUntrackAlerts } from '@kbn/triggers-actions-ui-plugin/public'; import { useKibana } from '../../../utils/kibana_react'; import { useGetUserCasesPermissions } from '../../../hooks/use_get_user_cases_permissions'; import { isAlertDetailsEnabledPerApp } from '../../../utils/is_alert_details_enabled'; @@ -63,6 +70,7 @@ export function AlertActions({ }, } = useKibana().services; const userCasesPermissions = useGetUserCasesPermissions(); + const { mutateAsync: untrackAlerts } = useBulkUntrackAlerts(); const parseObservabilityAlert = useMemo( () => parseAlert(observabilityRuleTypeRegistry), @@ -74,13 +82,13 @@ export function AlertActions({ const [isPopoverOpen, setIsPopoverOpen] = useState(false); - const ruleId = alert.fields['kibana.alert.rule.uuid'] ?? null; + const ruleId = alert.fields[ALERT_RULE_UUID] ?? null; const linkToRule = pageId !== RULE_DETAILS_PAGE_ID && ruleId ? prepend(paths.observability.ruleDetails(ruleId)) : null; - const alertId = alert.fields['kibana.alert.uuid'] ?? null; + const alertId = alert.fields[ALERT_UUID] ?? null; const linkToAlert = pageId !== ALERT_DETAILS_PAGE_ID && alertId ? prepend(paths.observability.alertDetails(alertId)) @@ -99,6 +107,11 @@ export function AlertActions({ : []; }, [ecsData, getRuleIdFromEvent, data]); + const isActiveAlert = useMemo( + () => alert.fields[ALERT_STATUS] === ALERT_STATUS_ACTIVE, + [alert.fields] + ); + const onSuccess = useCallback(() => { refresh(); }, [refresh]); @@ -124,6 +137,14 @@ export function AlertActions({ closeActionsPopover(); }; + const handleUntrackAlert = useCallback(async () => { + await untrackAlerts({ + indices: [ecsData?._index ?? ''], + alertUuids: [alertId], + }); + onSuccess(); + }, [untrackAlerts, alertId, ecsData, onSuccess]); + const actionsMenuItems = [ ...(userCasesPermissions.create && userCasesPermissions.read ? [ @@ -190,6 +211,19 @@ export function AlertActions({ ), ], + ...(isActiveAlert + ? [ + + {i18n.translate('xpack.observability.alerts.actions.untrack', { + defaultMessage: 'Mark as untracked', + })} + , + ] + : []), ]; const actionsToolTip = diff --git a/x-pack/plugins/osquery/cypress/e2e/all/alerts_cases.cy.ts b/x-pack/plugins/osquery/cypress/e2e/all/alerts_cases.cy.ts index b3053fc11bc9f..5b9a43b6015ff 100644 --- a/x-pack/plugins/osquery/cypress/e2e/all/alerts_cases.cy.ts +++ b/x-pack/plugins/osquery/cypress/e2e/all/alerts_cases.cy.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { LIVE_QUERY_EDITOR } from '../../screens/live_query'; +import { OSQUERY_FLYOUT_BODY_EDITOR } from '../../screens/live_query'; import { cleanupCase, cleanupPack, @@ -79,7 +79,7 @@ describe( cy.getBySel('osquery-action-item').click(); cy.contains(/^\d+ agen(t|ts) selected/); cy.contains('Run a set of queries in a pack').click(); - cy.get(LIVE_QUERY_EDITOR).should('not.exist'); + cy.get(OSQUERY_FLYOUT_BODY_EDITOR).should('not.exist'); cy.getBySel('select-live-pack').click().type(`${packName}{downArrow}{enter}`); submitQuery(); cy.get('[aria-label="Add to Case"]').first().click(); diff --git a/x-pack/plugins/osquery/cypress/e2e/all/alerts_multiple_agents.cy.ts b/x-pack/plugins/osquery/cypress/e2e/all/alerts_multiple_agents.cy.ts index d9be2632bdca2..84f685c87b770 100644 --- a/x-pack/plugins/osquery/cypress/e2e/all/alerts_multiple_agents.cy.ts +++ b/x-pack/plugins/osquery/cypress/e2e/all/alerts_multiple_agents.cy.ts @@ -14,6 +14,7 @@ import { takeOsqueryActionWithParams, } from '../../tasks/live_query'; import { ServerlessRoleName } from '../../support/roles'; +import { OSQUERY_FLYOUT_BODY_EDITOR } from '../../screens/live_query'; describe( 'Alert Event Details - dynamic params', @@ -43,12 +44,14 @@ describe( it('should substitute parameters in investigation guide', () => { cy.getBySel('expand-event').first().click(); cy.getBySel('securitySolutionFlyoutInvestigationGuideButton').click(); - cy.contains('Get processes').click(); - cy.getBySel('flyout-body-osquery').within(() => { - cy.contains("SELECT * FROM os_version where name='Ubuntu';"); - cy.contains('host.os.platform'); - cy.contains('platform'); - }); + // Flakes at times if the button is only clicked once + cy.contains('Get processes').should('be.visible').dblclick({ force: true }); + // Cypress can properly reads the fields when the codeEditor is interacted with first + // This is probably due to the tokenization of the fields when it's inactive + cy.get(OSQUERY_FLYOUT_BODY_EDITOR).click(); + cy.getBySel('flyout-body-osquery').contains("SELECT * FROM os_version where name='Ubuntu';"); + cy.getBySel('flyout-body-osquery').contains('host.os.platform'); + cy.getBySel('flyout-body-osquery').contains('platform'); }); // response-actions-notification doesn't exist in expandable flyout diff --git a/x-pack/plugins/osquery/cypress/screens/live_query.ts b/x-pack/plugins/osquery/cypress/screens/live_query.ts index b44764331fb3a..05b672474a8d8 100644 --- a/x-pack/plugins/osquery/cypress/screens/live_query.ts +++ b/x-pack/plugins/osquery/cypress/screens/live_query.ts @@ -8,6 +8,8 @@ export const AGENT_FIELD = '[data-test-subj="comboBoxInput"]'; export const ALL_AGENTS_OPTION = '[title="All agents"]'; export const LIVE_QUERY_EDITOR = '.kibanaCodeEditor'; +export const OSQUERY_FLYOUT_BODY_EDITOR = + '[data-test-subj="flyout-body-osquery"] .kibanaCodeEditor'; export const SUBMIT_BUTTON = '#submit-button'; export const RESULTS_TABLE = 'osqueryResultsTable'; diff --git a/x-pack/plugins/screenshotting/server/browsers/chromium/driver_factory/args.test.ts b/x-pack/plugins/screenshotting/server/browsers/chromium/driver_factory/args.test.ts index f77b84ccfed28..ac1d9543b2b11 100644 --- a/x-pack/plugins/screenshotting/server/browsers/chromium/driver_factory/args.test.ts +++ b/x-pack/plugins/screenshotting/server/browsers/chromium/driver_factory/args.test.ts @@ -50,6 +50,6 @@ describe('headless webgl arm mac workaround', () => { // if you're updating this, then you're likely updating chromium // please double-check that the --use-angle flag is still needed for arm macs // instead of --use-angle you may need --enable-gpu - expect(getChromiumPackage().binaryChecksum).toBe('4cc4ee072b23e4a65e714ff543eea21b'); // just putting this here so that someone updating the chromium version will see this comment + expect(getChromiumPackage().binaryChecksum).toBe('361f7cbac5bcac1d9974a43e29bf4bf5'); // just putting this here so that someone updating the chromium version will see this comment }); }); diff --git a/x-pack/plugins/screenshotting/server/browsers/chromium/paths.ts b/x-pack/plugins/screenshotting/server/browsers/chromium/paths.ts index 9556aa453f263..e9f7370b446d9 100644 --- a/x-pack/plugins/screenshotting/server/browsers/chromium/paths.ts +++ b/x-pack/plugins/screenshotting/server/browsers/chromium/paths.ts @@ -44,10 +44,10 @@ export class ChromiumArchivePaths { platform: 'darwin', architecture: 'x64', archiveFilename: 'chrome-mac.zip', - archiveChecksum: '2ce969500158dd98e3ad4502dbb6b13c', - binaryChecksum: '9960dd00ab27b4e9ee1455692bb65701', + archiveChecksum: '086ffb9d1e248f41f1e385aaea1bb568', + binaryChecksum: '58ed6d2bba7773b85aaec1d78b9c1a7b', binaryRelativePath: 'chrome-mac/Chromium.app/Contents/MacOS/Chromium', - revision: 1121448, + revision: 1181205, location: 'common', archivePath: 'Mac', isPreInstalled: false, @@ -56,10 +56,10 @@ export class ChromiumArchivePaths { platform: 'darwin', architecture: 'arm64', archiveFilename: 'chrome-mac.zip', - archiveChecksum: 'a4fea96b155483e0617d909c9b2cb32a', - binaryChecksum: '4cc4ee072b23e4a65e714ff543eea21b', + archiveChecksum: 'f80b2cb14025e283a740836aa66e46d4', + binaryChecksum: '361f7cbac5bcac1d9974a43e29bf4bf5', binaryRelativePath: 'chrome-mac/Chromium.app/Contents/MacOS/Chromium', - revision: 1121443, + revision: 1181286, // 1181205 is not available for Mac_Arm location: 'common', archivePath: 'Mac_Arm', isPreInstalled: false, @@ -67,22 +67,22 @@ export class ChromiumArchivePaths { { platform: 'linux', architecture: 'x64', - archiveFilename: 'chromium-38c3182-locales-linux_x64.zip', - archiveChecksum: '9635c58ccd7a6260dcfc0be7fa1545f6', - binaryChecksum: '02b21e91e39eb9aa68bbb4fedfa73204', + archiveFilename: 'chromium-67649b1-locales-linux_x64.zip', + archiveChecksum: '21bd8a1e06f236fa405c74d92a7ccd63', + binaryChecksum: 'b75d45d3044cc320bb09ce7356003d24', binaryRelativePath: 'headless_shell-linux_x64/headless_shell', - revision: 1121455, + revision: 1181205, location: 'custom', isPreInstalled: true, }, { platform: 'linux', architecture: 'arm64', - archiveFilename: 'chromium-38c3182-locales-linux_arm64.zip', - archiveChecksum: '96dca82cccea6ae82aaf0bc46104a501', - binaryChecksum: '753e07c59b6f269b2f06091155d53f4b', + archiveFilename: 'chromium-67649b1-locales-linux_arm64.zip', + archiveChecksum: '0c3b42ada934258b4596f3e984d011e3', + binaryChecksum: 'ac521fbc52fb1589416a214ce7b299ee', binaryRelativePath: 'headless_shell-linux_arm64/headless_shell', - revision: 1121455, + revision: 1181205, location: 'custom', isPreInstalled: true, }, @@ -90,10 +90,10 @@ export class ChromiumArchivePaths { platform: 'win32', architecture: 'x64', archiveFilename: 'chrome-win.zip', - archiveChecksum: '76b6c8aa15f0b16df18f793c9953f59f', - binaryChecksum: '762fe3b0ffe86d525bb3ed91f870cb7a', + archiveChecksum: '08186d7494e75c2cca03270d9a4ff589', + binaryChecksum: '1623fed921c9acee7221b2de98abe54e', binaryRelativePath: path.join('chrome-win', 'chrome.exe'), - revision: 1121435, + revision: 1181280, // 1181205 is not available for win location: 'common', archivePath: 'Win', isPreInstalled: true, diff --git a/x-pack/plugins/security_solution/common/api/detection_engine/rule_monitoring/detection_engine_health/README.md b/x-pack/plugins/security_solution/common/api/detection_engine/rule_monitoring/detection_engine_health/README.md index 81ee936e714fe..949dc743dcefc 100644 --- a/x-pack/plugins/security_solution/common/api/detection_engine/rule_monitoring/detection_engine_health/README.md +++ b/x-pack/plugins/security_solution/common/api/detection_engine/rule_monitoring/detection_engine_health/README.md @@ -6,1719 +6,7 @@ This health API allows users to get health overview of the Detection Engine acro In the future, this API might become helpful for building more Rule Monitoring UIs giving our users more clarity and transparency about the work of the Detection Engine. -## Rule health endpoint +See more info: -🚧 NOTE: this endpoint is **partially implemented**. 🚧 - -```txt -POST /internal/detection_engine/health/_rule -``` - -Get health overview of a rule. Scope: a given detection rule in the current Kibana space. -Returns: - -- health stats at the moment of the API call (rule and its execution summary) -- health stats over a specified period of time ("health interval") -- health stats history within the same interval in the form of a histogram - (the same stats are calculated over each of the discreet sub-intervals of the whole interval) - -Minimal required parameters: - -```json -{ - "rule_id": "d4beff10-f045-11ed-89d8-3b6931af10bc" -} -``` - -Response: - -```json -{ - "timings": { - "requested_at": "2023-05-26T16:09:54.128Z", - "processed_at": "2023-05-26T16:09:54.778Z", - "processing_time_ms": 650 - }, - "parameters": { - "interval": { - "type": "last_day", - "granularity": "hour", - "from": "2023-05-25T16:09:54.128Z", - "to": "2023-05-26T16:09:54.128Z", - "duration": "PT24H" - }, - "rule_id": "d4beff10-f045-11ed-89d8-3b6931af10bc" - }, - "health": { - "stats_at_the_moment": { - "rule": { - "id": "d4beff10-f045-11ed-89d8-3b6931af10bc", - "updated_at": "2023-05-26T15:44:21.689Z", - "updated_by": "elastic", - "created_at": "2023-05-11T21:50:23.830Z", - "created_by": "elastic", - "name": "Test rule", - "tags": ["foo"], - "interval": "1m", - "enabled": true, - "revision": 2, - "description": "-", - "risk_score": 21, - "severity": "low", - "license": "", - "output_index": "", - "meta": { - "from": "6h", - "kibana_siem_app_url": "http://localhost:5601/kbn/app/security" - }, - "author": [], - "false_positives": [], - "from": "now-21660s", - "rule_id": "e46eaaf3-6d81-4cdb-8cbb-b2201a11358b", - "max_signals": 100, - "risk_score_mapping": [], - "severity_mapping": [], - "threat": [], - "to": "now", - "references": [], - "version": 3, - "exceptions_list": [], - "immutable": false, - "related_integrations": [], - "required_fields": [], - "setup": "", - "type": "query", - "language": "kuery", - "index": [ - "apm-*-transaction*", - "auditbeat-*", - "endgame-*", - "filebeat-*", - "logs-*", - "packetbeat-*", - "traces-apm*", - "winlogbeat-*", - "-*elastic-cloud-logs-*", - "foo-*" - ], - "query": "*", - "filters": [], - "actions": [ - { - "group": "default", - "id": "bd59c4e0-f045-11ed-89d8-3b6931af10bc", - "params": { - "body": "Hello world" - }, - "action_type_id": ".webhook", - "uuid": "f8b87eb0-58bb-4d4b-a584-084d44ab847e", - "frequency": { - "summary": true, - "throttle": null, - "notifyWhen": "onActiveAlert" - } - } - ], - "execution_summary": { - "last_execution": { - "date": "2023-05-26T16:09:36.848Z", - "status": "succeeded", - "status_order": 0, - "message": "Rule execution completed successfully", - "metrics": { - "total_search_duration_ms": 2, - "execution_gap_duration_s": 80395 - } - } - } - } - }, - "stats_over_interval": { - "number_of_executions": { - "total": 21, - "by_outcome": { - "succeeded": 20, - "warning": 0, - "failed": 1 - } - }, - "number_of_logged_messages": { - "total": 42, - "by_level": { - "error": 1, - "warn": 0, - "info": 41, - "debug": 0, - "trace": 0 - } - }, - "number_of_detected_gaps": { - "total": 1, - "total_duration_s": 80395 - }, - "schedule_delay_ms": { - "percentiles": { - "1.0": 3061, - "5.0": 3083, - "25.0": 3112, - "50.0": 6049, - "75.0": 6069.5, - "95.0": 100093.79999999986, - "99.0": 207687 - } - }, - "execution_duration_ms": { - "percentiles": { - "1.0": 226, - "5.0": 228.2, - "25.0": 355.5, - "50.0": 422, - "75.0": 447, - "95.0": 677.75, - "99.0": 719 - } - }, - "search_duration_ms": { - "percentiles": { - "1.0": 0, - "5.0": 1.1, - "25.0": 2.75, - "50.0": 7, - "75.0": 13.5, - "95.0": 29.59999999999998, - "99.0": 45 - } - }, - "indexing_duration_ms": { - "percentiles": { - "1.0": 0, - "5.0": 0, - "25.0": 0, - "50.0": 0, - "75.0": 0, - "95.0": 0, - "99.0": 0 - } - }, - "top_errors": [ - { - "count": 1, - "message": "day were not queried between this rule execution and the last execution so signals may have been missed Consider increasing your look behind time or adding more Kibana instances" - } - ], - "top_warnings": [] - }, - "history_over_interval": { - "buckets": [ - { - "timestamp": "2023-05-26T15:00:00.000Z", - "stats": { - "number_of_executions": { - "total": 12, - "by_outcome": { - "succeeded": 11, - "warning": 0, - "failed": 1 - } - }, - "number_of_logged_messages": { - "total": 24, - "by_level": { - "error": 1, - "warn": 0, - "info": 23, - "debug": 0, - "trace": 0 - } - }, - "number_of_detected_gaps": { - "total": 1, - "total_duration_s": 80395 - }, - "schedule_delay_ms": { - "percentiles": { - "1.0": 3106, - "5.0": 3106.8, - "25.0": 3124.5, - "50.0": 6067.5, - "75.0": 9060.5, - "95.0": 188124.59999999971, - "99.0": 207687 - } - }, - "execution_duration_ms": { - "percentiles": { - "1.0": 230, - "5.0": 236.2, - "25.0": 354, - "50.0": 405, - "75.0": 447.5, - "95.0": 563.3999999999999, - "99.0": 576 - } - }, - "search_duration_ms": { - "percentiles": { - "1.0": 0, - "5.0": 0.20000000000000018, - "25.0": 2.5, - "50.0": 5, - "75.0": 14, - "95.0": 42.19999999999996, - "99.0": 45 - } - }, - "indexing_duration_ms": { - "percentiles": { - "1.0": 0, - "5.0": 0, - "25.0": 0, - "50.0": 0, - "75.0": 0, - "95.0": 0, - "99.0": 0 - } - } - } - }, - { - "timestamp": "2023-05-26T16:00:00.000Z", - "stats": { - "number_of_executions": { - "total": 9, - "by_outcome": { - "succeeded": 9, - "warning": 0, - "failed": 0 - } - }, - "number_of_logged_messages": { - "total": 18, - "by_level": { - "error": 0, - "warn": 0, - "info": 18, - "debug": 0, - "trace": 0 - } - }, - "number_of_detected_gaps": { - "total": 0, - "total_duration_s": 0 - }, - "schedule_delay_ms": { - "percentiles": { - "1.0": 3061, - "5.0": 3061, - "25.0": 3104.75, - "50.0": 3115, - "75.0": 6053, - "95.0": 6068, - "99.0": 6068 - } - }, - "execution_duration_ms": { - "percentiles": { - "1.0": 226.00000000000003, - "5.0": 226, - "25.0": 356, - "50.0": 436, - "75.0": 495.5, - "95.0": 719, - "99.0": 719 - } - }, - "search_duration_ms": { - "percentiles": { - "1.0": 2, - "5.0": 2, - "25.0": 5.75, - "50.0": 8, - "75.0": 13.75, - "95.0": 17, - "99.0": 17 - } - }, - "indexing_duration_ms": { - "percentiles": { - "1.0": 0, - "5.0": 0, - "25.0": 0, - "50.0": 0, - "75.0": 0, - "95.0": 0, - "99.0": 0 - } - } - } - } - ] - } - } -} -``` - -## Space health endpoint - -🚧 NOTE: this endpoint is **partially implemented**. 🚧 - -```txt -POST /internal/detection_engine/health/_space -GET /internal/detection_engine/health/_space -``` - -Get health overview of the current Kibana space. Scope: all detection rules in the space. -Returns: - -- health stats at the moment of the API call -- health stats over a specified period of time ("health interval") -- health stats history within the same interval in the form of a histogram - (the same stats are calculated over each of the discreet sub-intervals of the whole interval) - -Minimal required parameters for the `POST` route: empty object. - -```json -{} -``` - -The `GET` route doesn't accept any parameters and uses the default parameters instead: - -- interval: `last_day` -- granularity: `hour` -- debug: `false` - -Response: - -```json -{ - "timings": { - "requested_at": "2023-05-26T16:24:21.628Z", - "processed_at": "2023-05-26T16:24:22.880Z", - "processing_time_ms": 1252 - }, - "parameters": { - "interval": { - "type": "last_day", - "granularity": "hour", - "from": "2023-05-25T16:24:21.628Z", - "to": "2023-05-26T16:24:21.628Z", - "duration": "PT24H" - } - }, - "health": { - "stats_at_the_moment": { - "number_of_rules": { - "all": { - "total": 777, - "enabled": 777, - "disabled": 0 - }, - "by_origin": { - "prebuilt": { - "total": 776, - "enabled": 776, - "disabled": 0 - }, - "custom": { - "total": 1, - "enabled": 1, - "disabled": 0 - } - }, - "by_type": { - "siem.eqlRule": { - "total": 381, - "enabled": 381, - "disabled": 0 - }, - "siem.queryRule": { - "total": 325, - "enabled": 325, - "disabled": 0 - }, - "siem.mlRule": { - "total": 47, - "enabled": 47, - "disabled": 0 - }, - "siem.thresholdRule": { - "total": 18, - "enabled": 18, - "disabled": 0 - }, - "siem.newTermsRule": { - "total": 4, - "enabled": 4, - "disabled": 0 - }, - "siem.indicatorRule": { - "total": 2, - "enabled": 2, - "disabled": 0 - } - }, - "by_outcome": { - "warning": { - "total": 307, - "enabled": 307, - "disabled": 0 - }, - "succeeded": { - "total": 266, - "enabled": 266, - "disabled": 0 - }, - "failed": { - "total": 204, - "enabled": 204, - "disabled": 0 - } - } - } - }, - "stats_over_interval": { - "number_of_executions": { - "total": 5622, - "by_outcome": { - "succeeded": 1882, - "warning": 2129, - "failed": 2120 - } - }, - "number_of_logged_messages": { - "total": 11756, - "by_level": { - "error": 2120, - "warn": 2129, - "info": 7507, - "debug": 0, - "trace": 0 - } - }, - "number_of_detected_gaps": { - "total": 777, - "total_duration_s": 514415894 - }, - "schedule_delay_ms": { - "percentiles": { - "1.0": 216, - "5.0": 3048.5, - "25.0": 3105, - "50.0": 3129, - "75.0": 6112.355119825708, - "95.0": 134006, - "99.0": 195578 - } - }, - "execution_duration_ms": { - "percentiles": { - "1.0": 275, - "5.0": 323.375, - "25.0": 370.80555555555554, - "50.0": 413.1122337092731, - "75.0": 502.25233127864715, - "95.0": 685.8055555555555, - "99.0": 1194.75 - } - }, - "search_duration_ms": { - "percentiles": { - "1.0": 0, - "5.0": 0, - "25.0": 0, - "50.0": 0, - "75.0": 15, - "95.0": 30, - "99.0": 99.44000000000005 - } - }, - "indexing_duration_ms": { - "percentiles": { - "1.0": 0, - "5.0": 0, - "25.0": 0, - "50.0": 0, - "75.0": 0, - "95.0": 0, - "99.0": 0 - } - }, - "top_errors": [ - { - "count": 1202, - "message": "An error occurred during rule execution message verification_exception" - }, - { - "count": 777, - "message": "were not queried between this rule execution and the last execution so signals may have been missed Consider increasing your look behind time or adding more Kibana instances" - }, - { - "count": 3, - "message": "An error occurred during rule execution message rare_error_code missing" - }, - { - "count": 3, - "message": "An error occurred during rule execution message v3_windows_anomalous_path_activity missing" - }, - { - "count": 3, - "message": "An error occurred during rule execution message v3_windows_rare_user_type10_remote_login missing" - } - ], - "top_warnings": [ - { - "count": 2129, - "message": "This rule is attempting to query data from Elasticsearch indices listed in the Index pattern section of the rule definition however no index matching was found This warning will continue to appear until matching index is created or this rule is disabled" - } - ] - }, - "history_over_interval": { - "buckets": [ - { - "timestamp": "2023-05-26T15:00:00.000Z", - "stats": { - "number_of_executions": { - "total": 2245, - "by_outcome": { - "succeeded": 566, - "warning": 849, - "failed": 1336 - } - }, - "number_of_logged_messages": { - "total": 4996, - "by_level": { - "error": 1336, - "warn": 849, - "info": 2811, - "debug": 0, - "trace": 0 - } - }, - "number_of_detected_gaps": { - "total": 777, - "total_duration_s": 514415894 - }, - "schedule_delay_ms": { - "percentiles": { - "1.0": 256, - "5.0": 3086.9722222222217, - "25.0": 3133, - "50.0": 6126, - "75.0": 59484.25, - "95.0": 179817.25, - "99.0": 202613 - } - }, - "execution_duration_ms": { - "percentiles": { - "1.0": 280.6, - "5.0": 327.7, - "25.0": 371.5208333333333, - "50.0": 415.6190476190476, - "75.0": 505.7642857142857, - "95.0": 740.4375, - "99.0": 1446.1500000000005 - } - }, - "search_duration_ms": { - "percentiles": { - "1.0": 0, - "5.0": 0, - "25.0": 0, - "50.0": 0, - "75.0": 8, - "95.0": 25, - "99.0": 46 - } - }, - "indexing_duration_ms": { - "percentiles": { - "1.0": 0, - "5.0": 0, - "25.0": 0, - "50.0": 0, - "75.0": 0, - "95.0": 0, - "99.0": 0 - } - } - } - }, - { - "timestamp": "2023-05-26T16:00:00.000Z", - "stats": { - "number_of_executions": { - "total": 3363, - "by_outcome": { - "succeeded": 1316, - "warning": 1280, - "failed": 784 - } - }, - "number_of_logged_messages": { - "total": 6760, - "by_level": { - "error": 784, - "warn": 1280, - "info": 4696, - "debug": 0, - "trace": 0 - } - }, - "number_of_detected_gaps": { - "total": 0, - "total_duration_s": 0 - }, - "schedule_delay_ms": { - "percentiles": { - "1.0": 207, - "5.0": 3042, - "25.0": 3098.46511627907, - "50.0": 3112, - "75.0": 3145.2820512820517, - "95.0": 6100.571428571428, - "99.0": 6123 - } - }, - "execution_duration_ms": { - "percentiles": { - "1.0": 275, - "5.0": 319.85714285714283, - "25.0": 370.0357142857143, - "50.0": 410.79999229108853, - "75.0": 500.7692307692308, - "95.0": 675, - "99.0": 781.3999999999996 - } - }, - "search_duration_ms": { - "percentiles": { - "1.0": 0, - "5.0": 0, - "25.0": 0, - "50.0": 9, - "75.0": 17.555555555555557, - "95.0": 34, - "99.0": 110.5 - } - }, - "indexing_duration_ms": { - "percentiles": { - "1.0": 0, - "5.0": 0, - "25.0": 0, - "50.0": 0, - "75.0": 0, - "95.0": 0, - "99.0": 0 - } - } - } - } - ] - } - } -} -``` - -## Cluster health endpoint - -🚧 NOTE: this endpoint is **not implemented**. 🚧 - -```txt -POST /internal/detection_engine/health/_cluster -GET /internal/detection_engine/health/_cluster -``` - -Minimal required parameters for the `POST` route: empty object. - -```json -{} -``` - -The `GET` route doesn't accept any parameters and uses the default parameters instead: - -- interval: `last_day` -- granularity: `hour` -- debug: `false` - -Response: - -```json -{ - "message": "Not implemented", - "timings": { - "requested_at": "2023-05-26T16:32:01.878Z", - "processed_at": "2023-05-26T16:32:01.881Z", - "processing_time_ms": 3 - }, - "parameters": { - "interval": { - "type": "last_week", - "granularity": "hour", - "from": "2023-05-19T16:32:01.878Z", - "to": "2023-05-26T16:32:01.878Z", - "duration": "PT168H" - } - }, - "health": { - "stats_at_the_moment": { - "number_of_rules": { - "all": { - "total": 0, - "enabled": 0, - "disabled": 0 - }, - "by_origin": { - "prebuilt": { - "total": 0, - "enabled": 0, - "disabled": 0 - }, - "custom": { - "total": 0, - "enabled": 0, - "disabled": 0 - } - }, - "by_type": {}, - "by_outcome": {} - } - }, - "stats_over_interval": { - "message": "Not implemented" - }, - "history_over_interval": { - "buckets": [] - } - } -} -``` - -## Optional parameters - -All the three endpoints accept optional `interval` and `debug` request parameters. - -### Health interval - -You can change the interval over which the health stats will be calculated. If you don't specify it, by default health stats will be calculated over the last day with the granularity of 1 hour. - -```json -{ - "interval": { - "type": "last_week", - "granularity": "day" - } -} -``` - -You can also specify a custom date range with exact interval bounds. - -```json -{ - "interval": { - "type": "custom_range", - "granularity": "minute", - "from": "2023-05-20T16:24:21.628Z", - "to": "2023-05-26T16:24:21.628Z" - } -} -``` - -Please keep in mind that requesting large intervals with small granularity can generate substantial load on the system and enormous API responses. - -### Debug mode - -You can also include various debug information in the response, such as queries and aggregations sent to Elasticsearch and response received from it. - -```json -{ - "debug": true -} -``` - -In the response you will find something like that: - -```json -{ - "health": { - "debug": { - "rulesClient": { - "request": { - "aggs": { - "rulesByEnabled": { - "terms": { - "field": "alert.attributes.enabled" - } - }, - "rulesByOrigin": { - "terms": { - "field": "alert.attributes.params.immutable" - }, - "aggs": { - "rulesByEnabled": { - "terms": { - "field": "alert.attributes.enabled" - } - } - } - }, - "rulesByType": { - "terms": { - "field": "alert.attributes.alertTypeId" - }, - "aggs": { - "rulesByEnabled": { - "terms": { - "field": "alert.attributes.enabled" - } - } - } - }, - "rulesByOutcome": { - "terms": { - "field": "alert.attributes.lastRun.outcome" - }, - "aggs": { - "rulesByEnabled": { - "terms": { - "field": "alert.attributes.enabled" - } - } - } - } - } - }, - "response": { - "aggregations": { - "rulesByOutcome": { - "doc_count_error_upper_bound": 0, - "sum_other_doc_count": 0, - "buckets": [ - { - "key": "warning", - "doc_count": 307, - "rulesByEnabled": { - "doc_count_error_upper_bound": 0, - "sum_other_doc_count": 0, - "buckets": [ - { - "key": 1, - "key_as_string": "true", - "doc_count": 307 - } - ] - } - }, - { - "key": "succeeded", - "doc_count": 266, - "rulesByEnabled": { - "doc_count_error_upper_bound": 0, - "sum_other_doc_count": 0, - "buckets": [ - { - "key": 1, - "key_as_string": "true", - "doc_count": 266 - } - ] - } - }, - { - "key": "failed", - "doc_count": 204, - "rulesByEnabled": { - "doc_count_error_upper_bound": 0, - "sum_other_doc_count": 0, - "buckets": [ - { - "key": 1, - "key_as_string": "true", - "doc_count": 204 - } - ] - } - } - ] - }, - "rulesByType": { - "doc_count_error_upper_bound": 0, - "sum_other_doc_count": 0, - "buckets": [ - { - "key": "siem.eqlRule", - "doc_count": 381, - "rulesByEnabled": { - "doc_count_error_upper_bound": 0, - "sum_other_doc_count": 0, - "buckets": [ - { - "key": 1, - "key_as_string": "true", - "doc_count": 381 - } - ] - } - }, - { - "key": "siem.queryRule", - "doc_count": 325, - "rulesByEnabled": { - "doc_count_error_upper_bound": 0, - "sum_other_doc_count": 0, - "buckets": [ - { - "key": 1, - "key_as_string": "true", - "doc_count": 325 - } - ] - } - }, - { - "key": "siem.mlRule", - "doc_count": 47, - "rulesByEnabled": { - "doc_count_error_upper_bound": 0, - "sum_other_doc_count": 0, - "buckets": [ - { - "key": 1, - "key_as_string": "true", - "doc_count": 47 - } - ] - } - }, - { - "key": "siem.thresholdRule", - "doc_count": 18, - "rulesByEnabled": { - "doc_count_error_upper_bound": 0, - "sum_other_doc_count": 0, - "buckets": [ - { - "key": 1, - "key_as_string": "true", - "doc_count": 18 - } - ] - } - }, - { - "key": "siem.newTermsRule", - "doc_count": 4, - "rulesByEnabled": { - "doc_count_error_upper_bound": 0, - "sum_other_doc_count": 0, - "buckets": [ - { - "key": 1, - "key_as_string": "true", - "doc_count": 4 - } - ] - } - }, - { - "key": "siem.indicatorRule", - "doc_count": 2, - "rulesByEnabled": { - "doc_count_error_upper_bound": 0, - "sum_other_doc_count": 0, - "buckets": [ - { - "key": 1, - "key_as_string": "true", - "doc_count": 2 - } - ] - } - } - ] - }, - "rulesByOrigin": { - "doc_count_error_upper_bound": 0, - "sum_other_doc_count": 0, - "buckets": [ - { - "key": "true", - "doc_count": 776, - "rulesByEnabled": { - "doc_count_error_upper_bound": 0, - "sum_other_doc_count": 0, - "buckets": [ - { - "key": 1, - "key_as_string": "true", - "doc_count": 776 - } - ] - } - }, - { - "key": "false", - "doc_count": 1, - "rulesByEnabled": { - "doc_count_error_upper_bound": 0, - "sum_other_doc_count": 0, - "buckets": [ - { - "key": 1, - "key_as_string": "true", - "doc_count": 1 - } - ] - } - } - ] - }, - "rulesByEnabled": { - "doc_count_error_upper_bound": 0, - "sum_other_doc_count": 0, - "buckets": [ - { - "key": 1, - "key_as_string": "true", - "doc_count": 777 - } - ] - } - } - } - }, - "eventLog": { - "request": { - "aggs": { - "totalExecutions": { - "cardinality": { - "field": "kibana.alert.rule.execution.uuid" - } - }, - "executeEvents": { - "filter": { - "term": { - "event.action": "execute" - } - }, - "aggs": { - "executionDurationMs": { - "percentiles": { - "field": "kibana.alert.rule.execution.metrics.total_run_duration_ms", - "missing": 0, - "percents": [1, 5, 25, 50, 75, 95, 99] - } - }, - "scheduleDelayNs": { - "percentiles": { - "field": "kibana.task.schedule_delay", - "missing": 0, - "percents": [1, 5, 25, 50, 75, 95, 99] - } - } - } - }, - "statusChangeEvents": { - "filter": { - "bool": { - "filter": [ - { - "term": { - "event.action": "status-change" - } - } - ], - "must_not": [ - { - "terms": { - "kibana.alert.rule.execution.status": ["running", "going to run"] - } - } - ] - } - }, - "aggs": { - "executionsByStatus": { - "terms": { - "field": "kibana.alert.rule.execution.status" - } - } - } - }, - "executionMetricsEvents": { - "filter": { - "term": { - "event.action": "execution-metrics" - } - }, - "aggs": { - "gaps": { - "filter": { - "exists": { - "field": "kibana.alert.rule.execution.metrics.execution_gap_duration_s" - } - }, - "aggs": { - "totalGapDurationS": { - "sum": { - "field": "kibana.alert.rule.execution.metrics.execution_gap_duration_s" - } - } - } - }, - "searchDurationMs": { - "percentiles": { - "field": "kibana.alert.rule.execution.metrics.total_search_duration_ms", - "missing": 0, - "percents": [1, 5, 25, 50, 75, 95, 99] - } - }, - "indexingDurationMs": { - "percentiles": { - "field": "kibana.alert.rule.execution.metrics.total_indexing_duration_ms", - "missing": 0, - "percents": [1, 5, 25, 50, 75, 95, 99] - } - } - } - }, - "messageContainingEvents": { - "filter": { - "terms": { - "event.action": ["status-change", "message"] - } - }, - "aggs": { - "messagesByLogLevel": { - "terms": { - "field": "log.level" - } - }, - "errors": { - "filter": { - "term": { - "log.level": "error" - } - }, - "aggs": { - "topErrors": { - "categorize_text": { - "field": "message", - "size": 5, - "similarity_threshold": 99 - } - } - } - }, - "warnings": { - "filter": { - "term": { - "log.level": "warn" - } - }, - "aggs": { - "topWarnings": { - "categorize_text": { - "field": "message", - "size": 5, - "similarity_threshold": 99 - } - } - } - } - } - }, - "statsHistory": { - "date_histogram": { - "field": "@timestamp", - "calendar_interval": "hour" - }, - "aggs": { - "totalExecutions": { - "cardinality": { - "field": "kibana.alert.rule.execution.uuid" - } - }, - "executeEvents": { - "filter": { - "term": { - "event.action": "execute" - } - }, - "aggs": { - "executionDurationMs": { - "percentiles": { - "field": "kibana.alert.rule.execution.metrics.total_run_duration_ms", - "missing": 0, - "percents": [1, 5, 25, 50, 75, 95, 99] - } - }, - "scheduleDelayNs": { - "percentiles": { - "field": "kibana.task.schedule_delay", - "missing": 0, - "percents": [1, 5, 25, 50, 75, 95, 99] - } - } - } - }, - "statusChangeEvents": { - "filter": { - "bool": { - "filter": [ - { - "term": { - "event.action": "status-change" - } - } - ], - "must_not": [ - { - "terms": { - "kibana.alert.rule.execution.status": ["running", "going to run"] - } - } - ] - } - }, - "aggs": { - "executionsByStatus": { - "terms": { - "field": "kibana.alert.rule.execution.status" - } - } - } - }, - "executionMetricsEvents": { - "filter": { - "term": { - "event.action": "execution-metrics" - } - }, - "aggs": { - "gaps": { - "filter": { - "exists": { - "field": "kibana.alert.rule.execution.metrics.execution_gap_duration_s" - } - }, - "aggs": { - "totalGapDurationS": { - "sum": { - "field": "kibana.alert.rule.execution.metrics.execution_gap_duration_s" - } - } - } - }, - "searchDurationMs": { - "percentiles": { - "field": "kibana.alert.rule.execution.metrics.total_search_duration_ms", - "missing": 0, - "percents": [1, 5, 25, 50, 75, 95, 99] - } - }, - "indexingDurationMs": { - "percentiles": { - "field": "kibana.alert.rule.execution.metrics.total_indexing_duration_ms", - "missing": 0, - "percents": [1, 5, 25, 50, 75, 95, 99] - } - } - } - }, - "messageContainingEvents": { - "filter": { - "terms": { - "event.action": ["status-change", "message"] - } - }, - "aggs": { - "messagesByLogLevel": { - "terms": { - "field": "log.level" - } - } - } - } - } - } - } - }, - "response": { - "aggregations": { - "statsHistory": { - "buckets": [ - { - "key_as_string": "2023-05-26T15:00:00.000Z", - "key": 1685113200000, - "doc_count": 11388, - "statusChangeEvents": { - "doc_count": 2751, - "executionsByStatus": { - "doc_count_error_upper_bound": 0, - "sum_other_doc_count": 0, - "buckets": [ - { - "key": "failed", - "doc_count": 1336 - }, - { - "key": "partial failure", - "doc_count": 849 - }, - { - "key": "succeeded", - "doc_count": 566 - } - ] - } - }, - "totalExecutions": { - "value": 2245 - }, - "messageContainingEvents": { - "doc_count": 4996, - "messagesByLogLevel": { - "doc_count_error_upper_bound": 0, - "sum_other_doc_count": 0, - "buckets": [ - { - "key": "info", - "doc_count": 2811 - }, - { - "key": "error", - "doc_count": 1336 - }, - { - "key": "warn", - "doc_count": 849 - } - ] - } - }, - "executeEvents": { - "doc_count": 2245, - "scheduleDelayNs": { - "values": { - "1.0": 256000000, - "5.0": 3086972222.222222, - "25.0": 3133000000, - "50.0": 6126000000, - "75.0": 59484250000, - "95.0": 179817250000, - "99.0": 202613000000 - } - }, - "executionDurationMs": { - "values": { - "1.0": 280.6, - "5.0": 327.7, - "25.0": 371.5208333333333, - "50.0": 415.6190476190476, - "75.0": 505.575, - "95.0": 740.4375, - "99.0": 1446.1500000000005 - } - } - }, - "executionMetricsEvents": { - "doc_count": 1902, - "searchDurationMs": { - "values": { - "1.0": 0, - "5.0": 0, - "25.0": 0, - "50.0": 0, - "75.0": 8, - "95.0": 25, - "99.0": 46 - } - }, - "gaps": { - "doc_count": 777, - "totalGapDurationS": { - "value": 514415894 - } - }, - "indexingDurationMs": { - "values": { - "1.0": 0, - "5.0": 0, - "25.0": 0, - "50.0": 0, - "75.0": 0, - "95.0": 0, - "99.0": 0 - } - } - } - }, - { - "key_as_string": "2023-05-26T16:00:00.000Z", - "key": 1685116800000, - "doc_count": 28325, - "statusChangeEvents": { - "doc_count": 6126, - "executionsByStatus": { - "doc_count_error_upper_bound": 0, - "sum_other_doc_count": 0, - "buckets": [ - { - "key": "succeeded", - "doc_count": 2390 - }, - { - "key": "partial failure", - "doc_count": 2305 - }, - { - "key": "failed", - "doc_count": 1431 - } - ] - } - }, - "totalExecutions": { - "value": 6170 - }, - "messageContainingEvents": { - "doc_count": 12252, - "messagesByLogLevel": { - "doc_count_error_upper_bound": 0, - "sum_other_doc_count": 0, - "buckets": [ - { - "key": "info", - "doc_count": 8516 - }, - { - "key": "warn", - "doc_count": 2305 - }, - { - "key": "error", - "doc_count": 1431 - } - ] - } - }, - "executeEvents": { - "doc_count": 6126, - "scheduleDelayNs": { - "values": { - "1.0": 193000000, - "5.0": 3017785185.1851854, - "25.0": 3086000000, - "50.0": 3105877192.982456, - "75.0": 3134645161.290323, - "95.0": 6081772222.222222, - "99.0": 6122000000 - } - }, - "executionDurationMs": { - "values": { - "1.0": 275.17333333333335, - "5.0": 324.8014285714285, - "25.0": 377.0752688172043, - "50.0": 431, - "75.0": 532.3870967741935, - "95.0": 720.6761904761904, - "99.0": 922.6799999999985 - } - } - }, - "executionMetricsEvents": { - "doc_count": 3821, - "searchDurationMs": { - "values": { - "1.0": 0, - "5.0": 0, - "25.0": 0, - "50.0": 9.8, - "75.0": 18, - "95.0": 40.17499999999999, - "99.0": 124 - } - }, - "gaps": { - "doc_count": 0, - "totalGapDurationS": { - "value": 0 - } - }, - "indexingDurationMs": { - "values": { - "1.0": 0, - "5.0": 0, - "25.0": 0, - "50.0": 0, - "75.0": 0, - "95.0": 0, - "99.0": 0 - } - } - } - } - ] - }, - "statusChangeEvents": { - "doc_count": 8877, - "executionsByStatus": { - "doc_count_error_upper_bound": 0, - "sum_other_doc_count": 0, - "buckets": [ - { - "key": "partial failure", - "doc_count": 3154 - }, - { - "key": "succeeded", - "doc_count": 2956 - }, - { - "key": "failed", - "doc_count": 2767 - } - ] - } - }, - "totalExecutions": { - "value": 8455 - }, - "messageContainingEvents": { - "doc_count": 17248, - "messagesByLogLevel": { - "doc_count_error_upper_bound": 0, - "sum_other_doc_count": 0, - "buckets": [ - { - "key": "info", - "doc_count": 11327 - }, - { - "key": "warn", - "doc_count": 3154 - }, - { - "key": "error", - "doc_count": 2767 - } - ] - }, - "warnings": { - "doc_count": 3154, - "topWarnings": { - "buckets": [ - { - "doc_count": 3154, - "key": "This rule is attempting to query data from Elasticsearch indices listed in the Index pattern section of the rule definition however no index matching was found This warning will continue to appear until matching index is created or this rule is disabled", - "regex": ".*?This.+?rule.+?is.+?attempting.+?to.+?query.+?data.+?from.+?Elasticsearch.+?indices.+?listed.+?in.+?the.+?Index.+?pattern.+?section.+?of.+?the.+?rule.+?definition.+?however.+?no.+?index.+?matching.+?was.+?found.+?This.+?warning.+?will.+?continue.+?to.+?appear.+?until.+?matching.+?index.+?is.+?created.+?or.+?this.+?rule.+?is.+?disabled.*?", - "max_matching_length": 342 - } - ] - } - }, - "errors": { - "doc_count": 2767, - "topErrors": { - "buckets": [ - { - "doc_count": 1802, - "key": "An error occurred during rule execution message verification_exception", - "regex": ".*?An.+?error.+?occurred.+?during.+?rule.+?execution.+?message.+?verification_exception.*?", - "max_matching_length": 2064 - }, - { - "doc_count": 777, - "key": "were not queried between this rule execution and the last execution so signals may have been missed Consider increasing your look behind time or adding more Kibana instances", - "regex": ".*?were.+?not.+?queried.+?between.+?this.+?rule.+?execution.+?and.+?the.+?last.+?execution.+?so.+?signals.+?may.+?have.+?been.+?missed.+?Consider.+?increasing.+?your.+?look.+?behind.+?time.+?or.+?adding.+?more.+?Kibana.+?instances.*?", - "max_matching_length": 216 - }, - { - "doc_count": 4, - "key": "An error occurred during rule execution message rare_error_code missing", - "regex": ".*?An.+?error.+?occurred.+?during.+?rule.+?execution.+?message.+?rare_error_code.+?missing.*?", - "max_matching_length": 82 - }, - { - "doc_count": 4, - "key": "An error occurred during rule execution message v3_windows_anomalous_path_activity missing", - "regex": ".*?An.+?error.+?occurred.+?during.+?rule.+?execution.+?message.+?v3_windows_anomalous_path_activity.+?missing.*?", - "max_matching_length": 103 - }, - { - "doc_count": 4, - "key": "An error occurred during rule execution message v3_windows_rare_user_type10_remote_login missing", - "regex": ".*?An.+?error.+?occurred.+?during.+?rule.+?execution.+?message.+?v3_windows_rare_user_type10_remote_login.+?missing.*?", - "max_matching_length": 110 - } - ] - } - } - }, - "executeEvents": { - "doc_count": 8371, - "scheduleDelayNs": { - "values": { - "1.0": 206000000, - "5.0": 3027000000, - "25.0": 3092000000, - "50.0": 3116000000, - "75.0": 3278666666.6666665, - "95.0": 99656950000, - "99.0": 186632790000 - } - }, - "executionDurationMs": { - "values": { - "1.0": 275.5325, - "5.0": 326.07857142857137, - "25.0": 375.68969144460027, - "50.0": 427, - "75.0": 526.2948717948718, - "95.0": 727.2480952380952, - "99.0": 1009.5299999999934 - } - } - }, - "executionMetricsEvents": { - "doc_count": 5723, - "searchDurationMs": { - "values": { - "1.0": 0, - "5.0": 0, - "25.0": 0, - "50.0": 4, - "75.0": 16, - "95.0": 34.43846153846145, - "99.0": 116.51333333333302 - } - }, - "gaps": { - "doc_count": 777, - "totalGapDurationS": { - "value": 514415894 - } - }, - "indexingDurationMs": { - "values": { - "1.0": 0, - "5.0": 0, - "25.0": 0, - "50.0": 0, - "75.0": 0, - "95.0": 0, - "99.0": 0 - } - } - } - } - } - } - } - } -} -``` +- [Detection Engine health data](./health_data.md) +- [Detection Engine health endpoints](./health_endpoints.md) diff --git a/x-pack/plugins/security_solution/common/api/detection_engine/rule_monitoring/detection_engine_health/get_cluster_health/get_cluster_health_route.ts b/x-pack/plugins/security_solution/common/api/detection_engine/rule_monitoring/detection_engine_health/get_cluster_health/get_cluster_health_route.ts index dafa1e4a4a1df..fd2c07352dc95 100644 --- a/x-pack/plugins/security_solution/common/api/detection_engine/rule_monitoring/detection_engine_health/get_cluster_health/get_cluster_health_route.ts +++ b/x-pack/plugins/security_solution/common/api/detection_engine/rule_monitoring/detection_engine_health/get_cluster_health/get_cluster_health_route.ts @@ -51,9 +51,6 @@ export interface GetClusterHealthRequest { * Response body of the endpoint. */ export interface GetClusterHealthResponse { - // TODO: https://github.com/elastic/kibana/issues/125642 Implement the endpoint and remove the `message` property - message: 'Not implemented'; - /** * Request processing times and durations. */ diff --git a/x-pack/plugins/security_solution/common/api/detection_engine/rule_monitoring/detection_engine_health/health_data.md b/x-pack/plugins/security_solution/common/api/detection_engine/rule_monitoring/detection_engine_health/health_data.md new file mode 100644 index 0000000000000..052d81d9ffe6a --- /dev/null +++ b/x-pack/plugins/security_solution/common/api/detection_engine/rule_monitoring/detection_engine_health/health_data.md @@ -0,0 +1,152 @@ +# Detection Engine health data + +This document describes the data (state, aggregated metrics, aggregated logs, and other data) we return or are planning to return from the Detection Engine health API. + +Legend for the tables below: + +- ✅ - implemented +- 🚧 - in development +- 👍 - planned +- ❓ - maybe planned +- ❌ - not planned or applicable +- TED - "total, enabled, disabled" (applies to the "number of rules" state or metrics) + +## Health overview + +Health overview data is intended to give a broad, high-level picture of detection rules' health and performance. It is returned from the following three endpoints: + +- **Cluster health**: `/internal/detection_engine/health/_cluster` + - Returns: health overview of the whole cluster + - Scope: all detection rules in all Kibana spaces +- **Space health**: `/internal/detection_engine/health/_space` + - Returns: health overview of a given Kibana space + - Scope: all detection rules in the space +- **Rule health**: `/internal/detection_engine/health/_rule` + - Returns: health overview of a given rule + - Scope: a given detection rule in a given Kibana space + +All three endpoints accept a datetime interval parameter (**"health interval"**) over which they calculate health metrics, such as the number of rule executions happened during this interval. + +All three endpoints return: + +- **Health state at the moment of the API call**. Applies to the "now" moment. Can answer the following type of questions: + - "What rules do I have now?" + - "Are my rules healthy now? What are their last execution statuses?" + - "Are my rules running fast enough now? What are their last execution durations?" +- **Health stats over the specified "health interval"**. Can answer the following type of questions: + - "Overall, were my rules healthy and performant last 24 hours?" + - "How many rule executions in total happened last 24 hours?" + - "What were typical rule execution errors and warnings last 24 hours?" + - "How fast, on average, were my rules executing during this timeframe?", where "on average" can be, for example, a median, or a 95th percentile of the "execution duration" metric. +- **Health history over the specified "health interval"**. Shows dynamics of change of health stats, calculated within the "health interval" in the form of a histogram (the same stats are calculated over each of the discreet sub-intervals of the whole interval). Can answer the following type of questions: + - "How was my rules' health and performance changing during the last 24 hours? Show me stats calculated for each hour." + - "How many rule executions happened every hour of the last 24 hours?" + - "What were typical rule execution errors and warnings every hour of the last 24 hours?" + - "How fast, on average, were my rules executing every hour of the last 24 hours?" + +Below is the data we return or could return from these three endpoints. + +### Health overview: state at the moment of the API call + +ℹ️ When we say "rule" we mean `{ space_id, rule_id, rule_name? }`. + +| Data | `_cluster` | `_space` | `_rule` | +| ------------------------------------------------------------------------ | ---------- | -------- | ------- | +| **RULE OBJECT** | | | | +| rule object with all attributes | ❌ | ❌ | ✅ | +| rule's execution summary (contains last execution status and metrics) | ❌ | ❌ | ✅ | +| rule's exceptions | ❌ | ❌ | ❓ | +| rule's actions | ❌ | ❌ | ✅ | +| rule's action connectors | ❌ | ❌ | ❓ | +| **SYSTEM** | | | | +| number of ES nodes: total | 👍 | ❌ | ❌ | +| number of ES nodes of each role | 👍 | ❌ | ❌ | +| number of Kibana instances: total | 👍 | ❌ | ❌ | +| number of Kibana instances of each role | 👍 | ❌ | ❌ | +| number of Kibana spaces: total | 👍 | ❌ | ❌ | +| number of Kibana spaces: w/ alerting rules (of all types) | 👍 | ❌ | ❌ | +| number of Kibana spaces: w/ detection rules | 👍 | ❌ | ❌ | +| **AGGREGATED RULES** | | | | +| number of all rules: TED | ✅ | ✅ | ❌ | +| number of prebuilt rules: TED | ✅ | ✅ | ❌ | +| number of custom rules: TED | ✅ | ✅ | ❌ | +| number of rules of each type: TED | ✅ | ✅ | ❌ | +| number of prebuilt rules of each type: TED | 👍 | 👍 | ❌ | +| number of custom rules of each type: TED | 👍 | 👍 | ❌ | +| number of rules with exceptions: TED | ❓ | ❓ | ❌ | +| number of rules with notification actions: TED | ❓ | ❓ | ❌ | +| number of rules with legacy notification actions: TED | ❓ | ❓ | ❌ | +| number of rules with response actions: TED | ❓ | ❓ | ❌ | +| **AGGREGATED LAST EXECUTION RESULTS** | | | | +| number of rules by execution outcome ("succeeded", "warning", "failed") | ✅ | ✅ | ❌ | +| top X most common "failed" outcomes | 👍 | 👍 | ❌ | +| top X most common "warning" outcomes | 👍 | 👍 | ❌ | +| number of rules for each most common execution outcome | 👍 | 👍 | ❌ | +| rules for each most common execution outcome | 👍 | 👍 | ❌ | +| top X rules by execution duration (desc) | 👍 | 👍 | ❌ | +| top X rules by search duration (desc) | 👍 | 👍 | ❌ | +| top X rules by indexing duration (desc) | 👍 | 👍 | ❌ | +| top X rules by detected gap duration (desc) | 👍 | 👍 | ❌ | +| top X rules by schedule delay aka drift (desc) | 👍 | 👍 | ❌ | +| top X rules by number of shards queried (desc) | 👍 | 👍 | ❌ | +| top X rules by number of shards queried in a particular data tier (desc) | 👍 | 👍 | ❌ | + +### Health overview: stats and history over interval + +ℹ️ [S, H] == [Stats over interval, History over interval] + +| Data | `_cluster` [S,H] | `_space` [S,H] | `_rule` [S,H] | +| ------------------------------------------------------------------- | ---------------- | -------------- | ------------- | +| **AGGREGATED EXECUTION STATUSES** | | | | +| number of executions: total | [✅, ✅] | [✅, ✅] | [✅, ✅] | +| number of executions: by outcome ("succeeded", "warning", "failed") | [✅, ✅] | [✅, ✅] | [✅, ✅] | +| top X "failed" outcomes (status messages) | [👍, ❓] | [👍, ❓] | [👍, ❓] | +| top X "warning" outcomes (status messages) | [👍, ❓] | [👍, ❓] | [👍, ❓] | +| **AGGREGATED EXECUTION METRICS** | | | | +| aggregated execution duration (percentiles: 50, 95, 99, 99.9) | [✅, ✅] | [✅, ✅] | [✅, ✅] | +| aggregated search duration (percentiles: 50, 95, 99, 99.9) | [✅, ✅] | [✅, ✅] | [✅, ✅] | +| aggregated indexing duration (percentiles: 50, 95, 99, 99.9) | [✅, ✅] | [✅, ✅] | [✅, ✅] | +| aggregated schedule delay aka drift (percentiles: 50, 95, 99, 99.9) | [✅, ✅] | [✅, ✅] | [✅, ✅] | +| detected gaps: total number | [✅, ✅] | [✅, ✅] | [✅, ✅] | +| detected gaps: total duration | [✅, ✅] | [✅, ✅] | [✅, ✅] | +| number of detected alerts (those we generated in memory) | [👍, 👍] | [👍, 👍] | [👍, 👍] | +| number of created alerts (those we wrote to the `.alerts-*` index) | [👍, 👍] | [👍, 👍] | [👍, 👍] | +| number of not created alerts because of cirquit breaker | [👍, 👍] | [👍, 👍] | [👍, 👍] | +| number of executions when cirquit breaker was hit | [👍, 👍] | [👍, 👍] | [👍, 👍] | +| number of triggered actions | [❓, ❓] | [❓, ❓] | [❓, ❓] | +| **AGGREGATED EXECUTION LOGS (MESSAGE EVENTS)** | | | | +| number of logged messages: total | [✅, ✅] | [✅, ✅] | [✅, ✅] | +| number of logged messages: by log level | [✅, ✅] | [✅, ✅] | [✅, ✅] | +| top X errors (messages with log level "error") | [✅, ❓] | [✅, ❓] | [✅, ❓] | +| top X warnings (messages with log level "warn") | [✅, ❓] | [✅, ❓] | [✅, ❓] | +| top X error codes (we don't have error codes in our logs yet) | | | | + +## Health details + +Detailed health data can be used for digging deeper into detection rules' health and performance, when the overall picture is clear. It should be returned from dedicated endpoints. Each kind of details we can calculate within either of two scopes: + +- The whole cluster, i.e. all Kibana spaces. +- A given Kibana space. + +**NOTE**: As of now, we don't have any endpoints that would return detailed data. + +ℹ️ When we say "rule" we mean `{ space_id, rule_id, rule_name? }`. + +| Data | Scope: cluster | Scope: space | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- | ------------ | +| **RULES SORTED BY EXECUTION STATUSES** | | | +| top X rules by number of execution outcomes: total (desc) - in other words, rules that were running most often within a given interval | 👍 | 👍 | +| top X rules by number of execution outcomes: by outcome (desc) - in other words, rules that were failing/succeeding/etc most often within a given interval | 👍 | 👍 | +| **RULES SORTED BY EXECUTION METRICS** | | | +| top X rules by execution duration (percentile, desc) | 👍 | 👍 | +| top X rules by search duration (percentile, desc) | 👍 | 👍 | +| top X rules by indexing duration (percentile, desc) | 👍 | 👍 | +| top X rules by detected gap duration (percentile, desc) | 👍 | 👍 | +| top X rules by schedule delay aka drift (percentile, desc) | 👍 | 👍 | +| top X rules by number of shards queried (percentile, desc) | 👍 | 👍 | +| top X rules by number of shards queried in a particular data tier (percentile, desc) | 👍 | 👍 | +| top X rules that are consuming the most total execution time - summing execution time over the executions for that rule, so it accounts for rules that are running more often | 👍 | 👍 | +| **RULES SORTED BY EXECUTION LOGS (MESSAGE EVENTS)** | | | +| top X rules by number of logged messages (log level, desc) - errors and warnings are most interesting | 👍 | 👍 | +| **SOURCE INDICES / DATA QUALITY** | | | +| all rules that are querying indices with future timestamps + the actual index names with future timestamps in them (the API would need to check all rule's index patterns and data views) | 👍 | 👍 | diff --git a/x-pack/plugins/security_solution/common/api/detection_engine/rule_monitoring/detection_engine_health/health_endpoints.md b/x-pack/plugins/security_solution/common/api/detection_engine/rule_monitoring/detection_engine_health/health_endpoints.md new file mode 100644 index 0000000000000..c82153a0dad4e --- /dev/null +++ b/x-pack/plugins/security_solution/common/api/detection_engine/rule_monitoring/detection_engine_health/health_endpoints.md @@ -0,0 +1,1944 @@ +# Detection Engine health endpoints + +## Rule health endpoint + +🚧 NOTE: this endpoint is **partially implemented**. 🚧 + +```txt +POST /internal/detection_engine/health/_rule +``` + +Get health overview of a rule. Scope: a given detection rule in the current Kibana space. +Returns: + +- health stats at the moment of the API call (rule and its execution summary) +- health stats over a specified period of time ("health interval") +- health stats history within the same interval in the form of a histogram + (the same stats are calculated over each of the discreet sub-intervals of the whole interval) + +Minimal required parameters: + +```json +{ + "rule_id": "d4beff10-f045-11ed-89d8-3b6931af10bc" +} +``` + +Response: + +```json +{ + "timings": { + "requested_at": "2023-05-26T16:09:54.128Z", + "processed_at": "2023-05-26T16:09:54.778Z", + "processing_time_ms": 650 + }, + "parameters": { + "interval": { + "type": "last_day", + "granularity": "hour", + "from": "2023-05-25T16:09:54.128Z", + "to": "2023-05-26T16:09:54.128Z", + "duration": "PT24H" + }, + "rule_id": "d4beff10-f045-11ed-89d8-3b6931af10bc" + }, + "health": { + "state_at_the_moment": { + "rule": { + "id": "d4beff10-f045-11ed-89d8-3b6931af10bc", + "updated_at": "2023-05-26T15:44:21.689Z", + "updated_by": "elastic", + "created_at": "2023-05-11T21:50:23.830Z", + "created_by": "elastic", + "name": "Test rule", + "tags": ["foo"], + "interval": "1m", + "enabled": true, + "revision": 2, + "description": "-", + "risk_score": 21, + "severity": "low", + "license": "", + "output_index": "", + "meta": { + "from": "6h", + "kibana_siem_app_url": "http://localhost:5601/kbn/app/security" + }, + "author": [], + "false_positives": [], + "from": "now-21660s", + "rule_id": "e46eaaf3-6d81-4cdb-8cbb-b2201a11358b", + "max_signals": 100, + "risk_score_mapping": [], + "severity_mapping": [], + "threat": [], + "to": "now", + "references": [], + "version": 3, + "exceptions_list": [], + "immutable": false, + "related_integrations": [], + "required_fields": [], + "setup": "", + "type": "query", + "language": "kuery", + "index": [ + "apm-*-transaction*", + "auditbeat-*", + "endgame-*", + "filebeat-*", + "logs-*", + "packetbeat-*", + "traces-apm*", + "winlogbeat-*", + "-*elastic-cloud-logs-*", + "foo-*" + ], + "query": "*", + "filters": [], + "actions": [ + { + "group": "default", + "id": "bd59c4e0-f045-11ed-89d8-3b6931af10bc", + "params": { + "body": "Hello world" + }, + "action_type_id": ".webhook", + "uuid": "f8b87eb0-58bb-4d4b-a584-084d44ab847e", + "frequency": { + "summary": true, + "throttle": null, + "notifyWhen": "onActiveAlert" + } + } + ], + "execution_summary": { + "last_execution": { + "date": "2023-05-26T16:09:36.848Z", + "status": "succeeded", + "status_order": 0, + "message": "Rule execution completed successfully", + "metrics": { + "total_search_duration_ms": 2, + "execution_gap_duration_s": 80395 + } + } + } + } + }, + "stats_over_interval": { + "number_of_executions": { + "total": 21, + "by_outcome": { + "succeeded": 20, + "warning": 0, + "failed": 1 + } + }, + "number_of_logged_messages": { + "total": 42, + "by_level": { + "error": 1, + "warn": 0, + "info": 41, + "debug": 0, + "trace": 0 + } + }, + "number_of_detected_gaps": { + "total": 1, + "total_duration_s": 80395 + }, + "schedule_delay_ms": { + "percentiles": { + "1.0": 3061, + "5.0": 3083, + "25.0": 3112, + "50.0": 6049, + "75.0": 6069.5, + "95.0": 100093.79999999986, + "99.0": 207687 + } + }, + "execution_duration_ms": { + "percentiles": { + "1.0": 226, + "5.0": 228.2, + "25.0": 355.5, + "50.0": 422, + "75.0": 447, + "95.0": 677.75, + "99.0": 719 + } + }, + "search_duration_ms": { + "percentiles": { + "1.0": 0, + "5.0": 1.1, + "25.0": 2.75, + "50.0": 7, + "75.0": 13.5, + "95.0": 29.59999999999998, + "99.0": 45 + } + }, + "indexing_duration_ms": { + "percentiles": { + "1.0": 0, + "5.0": 0, + "25.0": 0, + "50.0": 0, + "75.0": 0, + "95.0": 0, + "99.0": 0 + } + }, + "top_errors": [ + { + "count": 1, + "message": "day were not queried between this rule execution and the last execution so signals may have been missed Consider increasing your look behind time or adding more Kibana instances" + } + ], + "top_warnings": [] + }, + "history_over_interval": { + "buckets": [ + { + "timestamp": "2023-05-26T15:00:00.000Z", + "stats": { + "number_of_executions": { + "total": 12, + "by_outcome": { + "succeeded": 11, + "warning": 0, + "failed": 1 + } + }, + "number_of_logged_messages": { + "total": 24, + "by_level": { + "error": 1, + "warn": 0, + "info": 23, + "debug": 0, + "trace": 0 + } + }, + "number_of_detected_gaps": { + "total": 1, + "total_duration_s": 80395 + }, + "schedule_delay_ms": { + "percentiles": { + "1.0": 3106, + "5.0": 3106.8, + "25.0": 3124.5, + "50.0": 6067.5, + "75.0": 9060.5, + "95.0": 188124.59999999971, + "99.0": 207687 + } + }, + "execution_duration_ms": { + "percentiles": { + "1.0": 230, + "5.0": 236.2, + "25.0": 354, + "50.0": 405, + "75.0": 447.5, + "95.0": 563.3999999999999, + "99.0": 576 + } + }, + "search_duration_ms": { + "percentiles": { + "1.0": 0, + "5.0": 0.20000000000000018, + "25.0": 2.5, + "50.0": 5, + "75.0": 14, + "95.0": 42.19999999999996, + "99.0": 45 + } + }, + "indexing_duration_ms": { + "percentiles": { + "1.0": 0, + "5.0": 0, + "25.0": 0, + "50.0": 0, + "75.0": 0, + "95.0": 0, + "99.0": 0 + } + } + } + }, + { + "timestamp": "2023-05-26T16:00:00.000Z", + "stats": { + "number_of_executions": { + "total": 9, + "by_outcome": { + "succeeded": 9, + "warning": 0, + "failed": 0 + } + }, + "number_of_logged_messages": { + "total": 18, + "by_level": { + "error": 0, + "warn": 0, + "info": 18, + "debug": 0, + "trace": 0 + } + }, + "number_of_detected_gaps": { + "total": 0, + "total_duration_s": 0 + }, + "schedule_delay_ms": { + "percentiles": { + "1.0": 3061, + "5.0": 3061, + "25.0": 3104.75, + "50.0": 3115, + "75.0": 6053, + "95.0": 6068, + "99.0": 6068 + } + }, + "execution_duration_ms": { + "percentiles": { + "1.0": 226.00000000000003, + "5.0": 226, + "25.0": 356, + "50.0": 436, + "75.0": 495.5, + "95.0": 719, + "99.0": 719 + } + }, + "search_duration_ms": { + "percentiles": { + "1.0": 2, + "5.0": 2, + "25.0": 5.75, + "50.0": 8, + "75.0": 13.75, + "95.0": 17, + "99.0": 17 + } + }, + "indexing_duration_ms": { + "percentiles": { + "1.0": 0, + "5.0": 0, + "25.0": 0, + "50.0": 0, + "75.0": 0, + "95.0": 0, + "99.0": 0 + } + } + } + } + ] + } + } +} +``` + +## Space health endpoint + +🚧 NOTE: this endpoint is **partially implemented**. 🚧 + +```txt +POST /internal/detection_engine/health/_space +GET /internal/detection_engine/health/_space +``` + +Get health overview of the current Kibana space. Scope: all detection rules in the space. +Returns: + +- health stats at the moment of the API call +- health stats over a specified period of time ("health interval") +- health stats history within the same interval in the form of a histogram + (the same stats are calculated over each of the discreet sub-intervals of the whole interval) + +Minimal required parameters for the `POST` route: empty object. + +```json +{} +``` + +The `GET` route doesn't accept any parameters and uses the default parameters instead: + +- interval: `last_day` +- granularity: `hour` +- debug: `false` + +Response: + +```json +{ + "timings": { + "requested_at": "2023-05-26T16:24:21.628Z", + "processed_at": "2023-05-26T16:24:22.880Z", + "processing_time_ms": 1252 + }, + "parameters": { + "interval": { + "type": "last_day", + "granularity": "hour", + "from": "2023-05-25T16:24:21.628Z", + "to": "2023-05-26T16:24:21.628Z", + "duration": "PT24H" + } + }, + "health": { + "state_at_the_moment": { + "number_of_rules": { + "all": { + "total": 777, + "enabled": 777, + "disabled": 0 + }, + "by_origin": { + "prebuilt": { + "total": 776, + "enabled": 776, + "disabled": 0 + }, + "custom": { + "total": 1, + "enabled": 1, + "disabled": 0 + } + }, + "by_type": { + "siem.eqlRule": { + "total": 381, + "enabled": 381, + "disabled": 0 + }, + "siem.queryRule": { + "total": 325, + "enabled": 325, + "disabled": 0 + }, + "siem.mlRule": { + "total": 47, + "enabled": 47, + "disabled": 0 + }, + "siem.thresholdRule": { + "total": 18, + "enabled": 18, + "disabled": 0 + }, + "siem.newTermsRule": { + "total": 4, + "enabled": 4, + "disabled": 0 + }, + "siem.indicatorRule": { + "total": 2, + "enabled": 2, + "disabled": 0 + } + }, + "by_outcome": { + "warning": { + "total": 307, + "enabled": 307, + "disabled": 0 + }, + "succeeded": { + "total": 266, + "enabled": 266, + "disabled": 0 + }, + "failed": { + "total": 204, + "enabled": 204, + "disabled": 0 + } + } + } + }, + "stats_over_interval": { + "number_of_executions": { + "total": 5622, + "by_outcome": { + "succeeded": 1882, + "warning": 2129, + "failed": 2120 + } + }, + "number_of_logged_messages": { + "total": 11756, + "by_level": { + "error": 2120, + "warn": 2129, + "info": 7507, + "debug": 0, + "trace": 0 + } + }, + "number_of_detected_gaps": { + "total": 777, + "total_duration_s": 514415894 + }, + "schedule_delay_ms": { + "percentiles": { + "1.0": 216, + "5.0": 3048.5, + "25.0": 3105, + "50.0": 3129, + "75.0": 6112.355119825708, + "95.0": 134006, + "99.0": 195578 + } + }, + "execution_duration_ms": { + "percentiles": { + "1.0": 275, + "5.0": 323.375, + "25.0": 370.80555555555554, + "50.0": 413.1122337092731, + "75.0": 502.25233127864715, + "95.0": 685.8055555555555, + "99.0": 1194.75 + } + }, + "search_duration_ms": { + "percentiles": { + "1.0": 0, + "5.0": 0, + "25.0": 0, + "50.0": 0, + "75.0": 15, + "95.0": 30, + "99.0": 99.44000000000005 + } + }, + "indexing_duration_ms": { + "percentiles": { + "1.0": 0, + "5.0": 0, + "25.0": 0, + "50.0": 0, + "75.0": 0, + "95.0": 0, + "99.0": 0 + } + }, + "top_errors": [ + { + "count": 1202, + "message": "An error occurred during rule execution message verification_exception" + }, + { + "count": 777, + "message": "were not queried between this rule execution and the last execution so signals may have been missed Consider increasing your look behind time or adding more Kibana instances" + }, + { + "count": 3, + "message": "An error occurred during rule execution message rare_error_code missing" + }, + { + "count": 3, + "message": "An error occurred during rule execution message v3_windows_anomalous_path_activity missing" + }, + { + "count": 3, + "message": "An error occurred during rule execution message v3_windows_rare_user_type10_remote_login missing" + } + ], + "top_warnings": [ + { + "count": 2129, + "message": "This rule is attempting to query data from Elasticsearch indices listed in the Index pattern section of the rule definition however no index matching was found This warning will continue to appear until matching index is created or this rule is disabled" + } + ] + }, + "history_over_interval": { + "buckets": [ + { + "timestamp": "2023-05-26T15:00:00.000Z", + "stats": { + "number_of_executions": { + "total": 2245, + "by_outcome": { + "succeeded": 566, + "warning": 849, + "failed": 1336 + } + }, + "number_of_logged_messages": { + "total": 4996, + "by_level": { + "error": 1336, + "warn": 849, + "info": 2811, + "debug": 0, + "trace": 0 + } + }, + "number_of_detected_gaps": { + "total": 777, + "total_duration_s": 514415894 + }, + "schedule_delay_ms": { + "percentiles": { + "1.0": 256, + "5.0": 3086.9722222222217, + "25.0": 3133, + "50.0": 6126, + "75.0": 59484.25, + "95.0": 179817.25, + "99.0": 202613 + } + }, + "execution_duration_ms": { + "percentiles": { + "1.0": 280.6, + "5.0": 327.7, + "25.0": 371.5208333333333, + "50.0": 415.6190476190476, + "75.0": 505.7642857142857, + "95.0": 740.4375, + "99.0": 1446.1500000000005 + } + }, + "search_duration_ms": { + "percentiles": { + "1.0": 0, + "5.0": 0, + "25.0": 0, + "50.0": 0, + "75.0": 8, + "95.0": 25, + "99.0": 46 + } + }, + "indexing_duration_ms": { + "percentiles": { + "1.0": 0, + "5.0": 0, + "25.0": 0, + "50.0": 0, + "75.0": 0, + "95.0": 0, + "99.0": 0 + } + } + } + }, + { + "timestamp": "2023-05-26T16:00:00.000Z", + "stats": { + "number_of_executions": { + "total": 3363, + "by_outcome": { + "succeeded": 1316, + "warning": 1280, + "failed": 784 + } + }, + "number_of_logged_messages": { + "total": 6760, + "by_level": { + "error": 784, + "warn": 1280, + "info": 4696, + "debug": 0, + "trace": 0 + } + }, + "number_of_detected_gaps": { + "total": 0, + "total_duration_s": 0 + }, + "schedule_delay_ms": { + "percentiles": { + "1.0": 207, + "5.0": 3042, + "25.0": 3098.46511627907, + "50.0": 3112, + "75.0": 3145.2820512820517, + "95.0": 6100.571428571428, + "99.0": 6123 + } + }, + "execution_duration_ms": { + "percentiles": { + "1.0": 275, + "5.0": 319.85714285714283, + "25.0": 370.0357142857143, + "50.0": 410.79999229108853, + "75.0": 500.7692307692308, + "95.0": 675, + "99.0": 781.3999999999996 + } + }, + "search_duration_ms": { + "percentiles": { + "1.0": 0, + "5.0": 0, + "25.0": 0, + "50.0": 9, + "75.0": 17.555555555555557, + "95.0": 34, + "99.0": 110.5 + } + }, + "indexing_duration_ms": { + "percentiles": { + "1.0": 0, + "5.0": 0, + "25.0": 0, + "50.0": 0, + "75.0": 0, + "95.0": 0, + "99.0": 0 + } + } + } + } + ] + } + } +} +``` + +## Cluster health endpoint + +🚧 NOTE: this endpoint is **partially implemented**. 🚧 + +```txt +POST /internal/detection_engine/health/_cluster +GET /internal/detection_engine/health/_cluster +``` + +Minimal required parameters for the `POST` route: empty object. + +```json +{} +``` + +The `GET` route doesn't accept any parameters and uses the default parameters instead: + +- interval: `last_day` +- granularity: `hour` +- debug: `false` + +Response: + +```json +{ + "timings": { + "requested_at": "2023-09-15T13:41:44.565Z", + "processed_at": "2023-09-15T13:41:44.648Z", + "processing_time_ms": 83 + }, + "parameters": { + "interval": { + "type": "last_day", + "granularity": "hour", + "from": "2023-09-14T13:41:44.565Z", + "to": "2023-09-15T13:41:44.565Z", + "duration": "PT24H" + } + }, + "health": { + "state_at_the_moment": { + "number_of_rules": { + "all": { + "total": 40, + "enabled": 40, + "disabled": 0 + }, + "by_origin": { + "prebuilt": { + "total": 40, + "enabled": 40, + "disabled": 0 + }, + "custom": { + "total": 0, + "enabled": 0, + "disabled": 0 + } + }, + "by_type": { + "siem.queryRule": { + "total": 28, + "enabled": 28, + "disabled": 0 + }, + "siem.mlRule": { + "total": 10, + "enabled": 10, + "disabled": 0 + }, + "siem.newTermsRule": { + "total": 2, + "enabled": 2, + "disabled": 0 + } + }, + "by_outcome": { + "warning": { + "total": 30, + "enabled": 30, + "disabled": 0 + }, + "failed": { + "total": 10, + "enabled": 10, + "disabled": 0 + } + } + } + }, + "stats_over_interval": { + "number_of_executions": { + "total": 290, + "by_outcome": { + "succeeded": 0, + "warning": 240, + "failed": 90 + } + }, + "number_of_logged_messages": { + "total": 620, + "by_level": { + "error": 90, + "warn": 240, + "info": 290, + "debug": 0, + "trace": 0 + } + }, + "number_of_detected_gaps": { + "total": 40, + "total_duration_s": 12986680 + }, + "schedule_delay_ms": { + "percentiles": { + "50.0": 261, + "95.0": 330999215.3, + "99.0": 331057597, + "99.9": 331057597 + } + }, + "execution_duration_ms": { + "percentiles": { + "50.0": 530.5, + "95.0": 1864.350000000016, + "99.0": 13863.33, + "99.9": 13871.133 + } + }, + "search_duration_ms": { + "percentiles": { + "50.0": 0, + "95.0": 0, + "99.0": 0, + "99.9": 0 + } + }, + "indexing_duration_ms": { + "percentiles": { + "50.0": 0, + "95.0": 0, + "99.0": 0, + "99.9": 0 + } + }, + "top_errors": [ + { + "count": 40, + "message": "days were not queried between this rule execution and the last execution so signals may have been missed Consider increasing your look behind time or adding more Kibana instances" + }, + { + "count": 10, + "message": "An error occurred during rule execution message high_distinct_count_error_message missing" + }, + { + "count": 10, + "message": "An error occurred during rule execution message rare_error_code missing" + }, + { + "count": 10, + "message": "An error occurred during rule execution message rare_method_for_a_city missing" + }, + { + "count": 10, + "message": "An error occurred during rule execution message rare_method_for_a_username missing" + } + ], + "top_warnings": [ + { + "count": 240, + "message": "This rule is attempting to query data from Elasticsearch indices listed in the Index pattern section of the rule definition however no index matching filebeat logs-aws was found This warning will continue to appear until matching index is created or this rule is disabled" + } + ] + }, + "history_over_interval": { + "buckets": [ + { + "timestamp": "2023-09-15T12:00:00.000Z", + "stats": { + "number_of_executions": { + "total": 110, + "by_outcome": { + "succeeded": 0, + "warning": 90, + "failed": 60 + } + }, + "number_of_logged_messages": { + "total": 260, + "by_level": { + "error": 60, + "warn": 90, + "info": 110, + "debug": 0, + "trace": 0 + } + }, + "number_of_detected_gaps": { + "total": 40, + "total_duration_s": 12986680 + }, + "schedule_delay_ms": { + "percentiles": { + "50.0": 2975, + "95.0": 331046564.55, + "99.0": 331057597, + "99.9": 331057597 + } + }, + "execution_duration_ms": { + "percentiles": { + "50.0": 677.5, + "95.0": 8943.65, + "99.0": 13868.73, + "99.9": 13871.673 + } + }, + "search_duration_ms": { + "percentiles": { + "50.0": 0, + "95.0": 0, + "99.0": 0, + "99.9": 0 + } + }, + "indexing_duration_ms": { + "percentiles": { + "50.0": 0, + "95.0": 0, + "99.0": 0, + "99.9": 0 + } + } + } + }, + { + "timestamp": "2023-09-15T13:00:00.000Z", + "stats": { + "number_of_executions": { + "total": 180, + "by_outcome": { + "succeeded": 0, + "warning": 150, + "failed": 30 + } + }, + "number_of_logged_messages": { + "total": 360, + "by_level": { + "error": 30, + "warn": 150, + "info": 180, + "debug": 0, + "trace": 0 + } + }, + "number_of_detected_gaps": { + "total": 0, + "total_duration_s": 0 + }, + "schedule_delay_ms": { + "percentiles": { + "50.0": 246.5, + "95.0": 3245.35, + "99.0": 3905.0100000000216, + "99.9": 6173.243000000005 + } + }, + "execution_duration_ms": { + "percentiles": { + "50.0": 503.5, + "95.0": 692.15, + "99.0": 758.63, + "99.9": 763.4630000000001 + } + }, + "search_duration_ms": { + "percentiles": { + "50.0": 0, + "95.0": 0, + "99.0": 0, + "99.9": 0 + } + }, + "indexing_duration_ms": { + "percentiles": { + "50.0": 0, + "95.0": 0, + "99.0": 0, + "99.9": 0 + } + } + } + } + ] + } + } +} +``` + +## Optional parameters + +All the three endpoints accept optional `interval` and `debug` request parameters. + +### Health interval + +You can change the interval over which the health stats will be calculated. If you don't specify it, by default health stats will be calculated over the last day with the granularity of 1 hour. + +```json +{ + "interval": { + "type": "last_week", + "granularity": "day" + } +} +``` + +You can also specify a custom date range with exact interval bounds. + +```json +{ + "interval": { + "type": "custom_range", + "granularity": "minute", + "from": "2023-05-20T16:24:21.628Z", + "to": "2023-05-26T16:24:21.628Z" + } +} +``` + +Please keep in mind that requesting large intervals with small granularity can generate substantial load on the system and enormous API responses. + +### Debug mode + +You can also include various debug information in the response, such as queries and aggregations sent to Elasticsearch and response received from it. + +```json +{ + "debug": true +} +``` + +In the response you will find something like that: + +```json +{ + "health": { + "debug": { + "rulesClient": { + "request": { + "aggs": { + "rulesByEnabled": { + "terms": { + "field": "alert.attributes.enabled" + } + }, + "rulesByOrigin": { + "terms": { + "field": "alert.attributes.params.immutable" + }, + "aggs": { + "rulesByEnabled": { + "terms": { + "field": "alert.attributes.enabled" + } + } + } + }, + "rulesByType": { + "terms": { + "field": "alert.attributes.alertTypeId" + }, + "aggs": { + "rulesByEnabled": { + "terms": { + "field": "alert.attributes.enabled" + } + } + } + }, + "rulesByOutcome": { + "terms": { + "field": "alert.attributes.lastRun.outcome" + }, + "aggs": { + "rulesByEnabled": { + "terms": { + "field": "alert.attributes.enabled" + } + } + } + } + } + }, + "response": { + "aggregations": { + "rulesByOutcome": { + "doc_count_error_upper_bound": 0, + "sum_other_doc_count": 0, + "buckets": [ + { + "key": "warning", + "doc_count": 307, + "rulesByEnabled": { + "doc_count_error_upper_bound": 0, + "sum_other_doc_count": 0, + "buckets": [ + { + "key": 1, + "key_as_string": "true", + "doc_count": 307 + } + ] + } + }, + { + "key": "succeeded", + "doc_count": 266, + "rulesByEnabled": { + "doc_count_error_upper_bound": 0, + "sum_other_doc_count": 0, + "buckets": [ + { + "key": 1, + "key_as_string": "true", + "doc_count": 266 + } + ] + } + }, + { + "key": "failed", + "doc_count": 204, + "rulesByEnabled": { + "doc_count_error_upper_bound": 0, + "sum_other_doc_count": 0, + "buckets": [ + { + "key": 1, + "key_as_string": "true", + "doc_count": 204 + } + ] + } + } + ] + }, + "rulesByType": { + "doc_count_error_upper_bound": 0, + "sum_other_doc_count": 0, + "buckets": [ + { + "key": "siem.eqlRule", + "doc_count": 381, + "rulesByEnabled": { + "doc_count_error_upper_bound": 0, + "sum_other_doc_count": 0, + "buckets": [ + { + "key": 1, + "key_as_string": "true", + "doc_count": 381 + } + ] + } + }, + { + "key": "siem.queryRule", + "doc_count": 325, + "rulesByEnabled": { + "doc_count_error_upper_bound": 0, + "sum_other_doc_count": 0, + "buckets": [ + { + "key": 1, + "key_as_string": "true", + "doc_count": 325 + } + ] + } + }, + { + "key": "siem.mlRule", + "doc_count": 47, + "rulesByEnabled": { + "doc_count_error_upper_bound": 0, + "sum_other_doc_count": 0, + "buckets": [ + { + "key": 1, + "key_as_string": "true", + "doc_count": 47 + } + ] + } + }, + { + "key": "siem.thresholdRule", + "doc_count": 18, + "rulesByEnabled": { + "doc_count_error_upper_bound": 0, + "sum_other_doc_count": 0, + "buckets": [ + { + "key": 1, + "key_as_string": "true", + "doc_count": 18 + } + ] + } + }, + { + "key": "siem.newTermsRule", + "doc_count": 4, + "rulesByEnabled": { + "doc_count_error_upper_bound": 0, + "sum_other_doc_count": 0, + "buckets": [ + { + "key": 1, + "key_as_string": "true", + "doc_count": 4 + } + ] + } + }, + { + "key": "siem.indicatorRule", + "doc_count": 2, + "rulesByEnabled": { + "doc_count_error_upper_bound": 0, + "sum_other_doc_count": 0, + "buckets": [ + { + "key": 1, + "key_as_string": "true", + "doc_count": 2 + } + ] + } + } + ] + }, + "rulesByOrigin": { + "doc_count_error_upper_bound": 0, + "sum_other_doc_count": 0, + "buckets": [ + { + "key": "true", + "doc_count": 776, + "rulesByEnabled": { + "doc_count_error_upper_bound": 0, + "sum_other_doc_count": 0, + "buckets": [ + { + "key": 1, + "key_as_string": "true", + "doc_count": 776 + } + ] + } + }, + { + "key": "false", + "doc_count": 1, + "rulesByEnabled": { + "doc_count_error_upper_bound": 0, + "sum_other_doc_count": 0, + "buckets": [ + { + "key": 1, + "key_as_string": "true", + "doc_count": 1 + } + ] + } + } + ] + }, + "rulesByEnabled": { + "doc_count_error_upper_bound": 0, + "sum_other_doc_count": 0, + "buckets": [ + { + "key": 1, + "key_as_string": "true", + "doc_count": 777 + } + ] + } + } + } + }, + "eventLog": { + "request": { + "aggs": { + "totalExecutions": { + "cardinality": { + "field": "kibana.alert.rule.execution.uuid" + } + }, + "executeEvents": { + "filter": { + "term": { + "event.action": "execute" + } + }, + "aggs": { + "executionDurationMs": { + "percentiles": { + "field": "kibana.alert.rule.execution.metrics.total_run_duration_ms", + "missing": 0, + "percents": [1, 5, 25, 50, 75, 95, 99] + } + }, + "scheduleDelayNs": { + "percentiles": { + "field": "kibana.task.schedule_delay", + "missing": 0, + "percents": [1, 5, 25, 50, 75, 95, 99] + } + } + } + }, + "statusChangeEvents": { + "filter": { + "bool": { + "filter": [ + { + "term": { + "event.action": "status-change" + } + } + ], + "must_not": [ + { + "terms": { + "kibana.alert.rule.execution.status": ["running", "going to run"] + } + } + ] + } + }, + "aggs": { + "executionsByStatus": { + "terms": { + "field": "kibana.alert.rule.execution.status" + } + } + } + }, + "executionMetricsEvents": { + "filter": { + "term": { + "event.action": "execution-metrics" + } + }, + "aggs": { + "gaps": { + "filter": { + "exists": { + "field": "kibana.alert.rule.execution.metrics.execution_gap_duration_s" + } + }, + "aggs": { + "totalGapDurationS": { + "sum": { + "field": "kibana.alert.rule.execution.metrics.execution_gap_duration_s" + } + } + } + }, + "searchDurationMs": { + "percentiles": { + "field": "kibana.alert.rule.execution.metrics.total_search_duration_ms", + "missing": 0, + "percents": [1, 5, 25, 50, 75, 95, 99] + } + }, + "indexingDurationMs": { + "percentiles": { + "field": "kibana.alert.rule.execution.metrics.total_indexing_duration_ms", + "missing": 0, + "percents": [1, 5, 25, 50, 75, 95, 99] + } + } + } + }, + "messageContainingEvents": { + "filter": { + "terms": { + "event.action": ["status-change", "message"] + } + }, + "aggs": { + "messagesByLogLevel": { + "terms": { + "field": "log.level" + } + }, + "errors": { + "filter": { + "term": { + "log.level": "error" + } + }, + "aggs": { + "topErrors": { + "categorize_text": { + "field": "message", + "size": 5, + "similarity_threshold": 99 + } + } + } + }, + "warnings": { + "filter": { + "term": { + "log.level": "warn" + } + }, + "aggs": { + "topWarnings": { + "categorize_text": { + "field": "message", + "size": 5, + "similarity_threshold": 99 + } + } + } + } + } + }, + "statsHistory": { + "date_histogram": { + "field": "@timestamp", + "calendar_interval": "hour" + }, + "aggs": { + "totalExecutions": { + "cardinality": { + "field": "kibana.alert.rule.execution.uuid" + } + }, + "executeEvents": { + "filter": { + "term": { + "event.action": "execute" + } + }, + "aggs": { + "executionDurationMs": { + "percentiles": { + "field": "kibana.alert.rule.execution.metrics.total_run_duration_ms", + "missing": 0, + "percents": [1, 5, 25, 50, 75, 95, 99] + } + }, + "scheduleDelayNs": { + "percentiles": { + "field": "kibana.task.schedule_delay", + "missing": 0, + "percents": [1, 5, 25, 50, 75, 95, 99] + } + } + } + }, + "statusChangeEvents": { + "filter": { + "bool": { + "filter": [ + { + "term": { + "event.action": "status-change" + } + } + ], + "must_not": [ + { + "terms": { + "kibana.alert.rule.execution.status": ["running", "going to run"] + } + } + ] + } + }, + "aggs": { + "executionsByStatus": { + "terms": { + "field": "kibana.alert.rule.execution.status" + } + } + } + }, + "executionMetricsEvents": { + "filter": { + "term": { + "event.action": "execution-metrics" + } + }, + "aggs": { + "gaps": { + "filter": { + "exists": { + "field": "kibana.alert.rule.execution.metrics.execution_gap_duration_s" + } + }, + "aggs": { + "totalGapDurationS": { + "sum": { + "field": "kibana.alert.rule.execution.metrics.execution_gap_duration_s" + } + } + } + }, + "searchDurationMs": { + "percentiles": { + "field": "kibana.alert.rule.execution.metrics.total_search_duration_ms", + "missing": 0, + "percents": [1, 5, 25, 50, 75, 95, 99] + } + }, + "indexingDurationMs": { + "percentiles": { + "field": "kibana.alert.rule.execution.metrics.total_indexing_duration_ms", + "missing": 0, + "percents": [1, 5, 25, 50, 75, 95, 99] + } + } + } + }, + "messageContainingEvents": { + "filter": { + "terms": { + "event.action": ["status-change", "message"] + } + }, + "aggs": { + "messagesByLogLevel": { + "terms": { + "field": "log.level" + } + } + } + } + } + } + } + }, + "response": { + "aggregations": { + "statsHistory": { + "buckets": [ + { + "key_as_string": "2023-05-26T15:00:00.000Z", + "key": 1685113200000, + "doc_count": 11388, + "statusChangeEvents": { + "doc_count": 2751, + "executionsByStatus": { + "doc_count_error_upper_bound": 0, + "sum_other_doc_count": 0, + "buckets": [ + { + "key": "failed", + "doc_count": 1336 + }, + { + "key": "partial failure", + "doc_count": 849 + }, + { + "key": "succeeded", + "doc_count": 566 + } + ] + } + }, + "totalExecutions": { + "value": 2245 + }, + "messageContainingEvents": { + "doc_count": 4996, + "messagesByLogLevel": { + "doc_count_error_upper_bound": 0, + "sum_other_doc_count": 0, + "buckets": [ + { + "key": "info", + "doc_count": 2811 + }, + { + "key": "error", + "doc_count": 1336 + }, + { + "key": "warn", + "doc_count": 849 + } + ] + } + }, + "executeEvents": { + "doc_count": 2245, + "scheduleDelayNs": { + "values": { + "1.0": 256000000, + "5.0": 3086972222.222222, + "25.0": 3133000000, + "50.0": 6126000000, + "75.0": 59484250000, + "95.0": 179817250000, + "99.0": 202613000000 + } + }, + "executionDurationMs": { + "values": { + "1.0": 280.6, + "5.0": 327.7, + "25.0": 371.5208333333333, + "50.0": 415.6190476190476, + "75.0": 505.575, + "95.0": 740.4375, + "99.0": 1446.1500000000005 + } + } + }, + "executionMetricsEvents": { + "doc_count": 1902, + "searchDurationMs": { + "values": { + "1.0": 0, + "5.0": 0, + "25.0": 0, + "50.0": 0, + "75.0": 8, + "95.0": 25, + "99.0": 46 + } + }, + "gaps": { + "doc_count": 777, + "totalGapDurationS": { + "value": 514415894 + } + }, + "indexingDurationMs": { + "values": { + "1.0": 0, + "5.0": 0, + "25.0": 0, + "50.0": 0, + "75.0": 0, + "95.0": 0, + "99.0": 0 + } + } + } + }, + { + "key_as_string": "2023-05-26T16:00:00.000Z", + "key": 1685116800000, + "doc_count": 28325, + "statusChangeEvents": { + "doc_count": 6126, + "executionsByStatus": { + "doc_count_error_upper_bound": 0, + "sum_other_doc_count": 0, + "buckets": [ + { + "key": "succeeded", + "doc_count": 2390 + }, + { + "key": "partial failure", + "doc_count": 2305 + }, + { + "key": "failed", + "doc_count": 1431 + } + ] + } + }, + "totalExecutions": { + "value": 6170 + }, + "messageContainingEvents": { + "doc_count": 12252, + "messagesByLogLevel": { + "doc_count_error_upper_bound": 0, + "sum_other_doc_count": 0, + "buckets": [ + { + "key": "info", + "doc_count": 8516 + }, + { + "key": "warn", + "doc_count": 2305 + }, + { + "key": "error", + "doc_count": 1431 + } + ] + } + }, + "executeEvents": { + "doc_count": 6126, + "scheduleDelayNs": { + "values": { + "1.0": 193000000, + "5.0": 3017785185.1851854, + "25.0": 3086000000, + "50.0": 3105877192.982456, + "75.0": 3134645161.290323, + "95.0": 6081772222.222222, + "99.0": 6122000000 + } + }, + "executionDurationMs": { + "values": { + "1.0": 275.17333333333335, + "5.0": 324.8014285714285, + "25.0": 377.0752688172043, + "50.0": 431, + "75.0": 532.3870967741935, + "95.0": 720.6761904761904, + "99.0": 922.6799999999985 + } + } + }, + "executionMetricsEvents": { + "doc_count": 3821, + "searchDurationMs": { + "values": { + "1.0": 0, + "5.0": 0, + "25.0": 0, + "50.0": 9.8, + "75.0": 18, + "95.0": 40.17499999999999, + "99.0": 124 + } + }, + "gaps": { + "doc_count": 0, + "totalGapDurationS": { + "value": 0 + } + }, + "indexingDurationMs": { + "values": { + "1.0": 0, + "5.0": 0, + "25.0": 0, + "50.0": 0, + "75.0": 0, + "95.0": 0, + "99.0": 0 + } + } + } + } + ] + }, + "statusChangeEvents": { + "doc_count": 8877, + "executionsByStatus": { + "doc_count_error_upper_bound": 0, + "sum_other_doc_count": 0, + "buckets": [ + { + "key": "partial failure", + "doc_count": 3154 + }, + { + "key": "succeeded", + "doc_count": 2956 + }, + { + "key": "failed", + "doc_count": 2767 + } + ] + } + }, + "totalExecutions": { + "value": 8455 + }, + "messageContainingEvents": { + "doc_count": 17248, + "messagesByLogLevel": { + "doc_count_error_upper_bound": 0, + "sum_other_doc_count": 0, + "buckets": [ + { + "key": "info", + "doc_count": 11327 + }, + { + "key": "warn", + "doc_count": 3154 + }, + { + "key": "error", + "doc_count": 2767 + } + ] + }, + "warnings": { + "doc_count": 3154, + "topWarnings": { + "buckets": [ + { + "doc_count": 3154, + "key": "This rule is attempting to query data from Elasticsearch indices listed in the Index pattern section of the rule definition however no index matching was found This warning will continue to appear until matching index is created or this rule is disabled", + "regex": ".*?This.+?rule.+?is.+?attempting.+?to.+?query.+?data.+?from.+?Elasticsearch.+?indices.+?listed.+?in.+?the.+?Index.+?pattern.+?section.+?of.+?the.+?rule.+?definition.+?however.+?no.+?index.+?matching.+?was.+?found.+?This.+?warning.+?will.+?continue.+?to.+?appear.+?until.+?matching.+?index.+?is.+?created.+?or.+?this.+?rule.+?is.+?disabled.*?", + "max_matching_length": 342 + } + ] + } + }, + "errors": { + "doc_count": 2767, + "topErrors": { + "buckets": [ + { + "doc_count": 1802, + "key": "An error occurred during rule execution message verification_exception", + "regex": ".*?An.+?error.+?occurred.+?during.+?rule.+?execution.+?message.+?verification_exception.*?", + "max_matching_length": 2064 + }, + { + "doc_count": 777, + "key": "were not queried between this rule execution and the last execution so signals may have been missed Consider increasing your look behind time or adding more Kibana instances", + "regex": ".*?were.+?not.+?queried.+?between.+?this.+?rule.+?execution.+?and.+?the.+?last.+?execution.+?so.+?signals.+?may.+?have.+?been.+?missed.+?Consider.+?increasing.+?your.+?look.+?behind.+?time.+?or.+?adding.+?more.+?Kibana.+?instances.*?", + "max_matching_length": 216 + }, + { + "doc_count": 4, + "key": "An error occurred during rule execution message rare_error_code missing", + "regex": ".*?An.+?error.+?occurred.+?during.+?rule.+?execution.+?message.+?rare_error_code.+?missing.*?", + "max_matching_length": 82 + }, + { + "doc_count": 4, + "key": "An error occurred during rule execution message v3_windows_anomalous_path_activity missing", + "regex": ".*?An.+?error.+?occurred.+?during.+?rule.+?execution.+?message.+?v3_windows_anomalous_path_activity.+?missing.*?", + "max_matching_length": 103 + }, + { + "doc_count": 4, + "key": "An error occurred during rule execution message v3_windows_rare_user_type10_remote_login missing", + "regex": ".*?An.+?error.+?occurred.+?during.+?rule.+?execution.+?message.+?v3_windows_rare_user_type10_remote_login.+?missing.*?", + "max_matching_length": 110 + } + ] + } + } + }, + "executeEvents": { + "doc_count": 8371, + "scheduleDelayNs": { + "values": { + "1.0": 206000000, + "5.0": 3027000000, + "25.0": 3092000000, + "50.0": 3116000000, + "75.0": 3278666666.6666665, + "95.0": 99656950000, + "99.0": 186632790000 + } + }, + "executionDurationMs": { + "values": { + "1.0": 275.5325, + "5.0": 326.07857142857137, + "25.0": 375.68969144460027, + "50.0": 427, + "75.0": 526.2948717948718, + "95.0": 727.2480952380952, + "99.0": 1009.5299999999934 + } + } + }, + "executionMetricsEvents": { + "doc_count": 5723, + "searchDurationMs": { + "values": { + "1.0": 0, + "5.0": 0, + "25.0": 0, + "50.0": 4, + "75.0": 16, + "95.0": 34.43846153846145, + "99.0": 116.51333333333302 + } + }, + "gaps": { + "doc_count": 777, + "totalGapDurationS": { + "value": 514415894 + } + }, + "indexingDurationMs": { + "values": { + "1.0": 0, + "5.0": 0, + "25.0": 0, + "50.0": 0, + "75.0": 0, + "95.0": 0, + "99.0": 0 + } + } + } + } + } + } + } + } +} +``` diff --git a/x-pack/plugins/security_solution/common/api/detection_engine/rule_monitoring/detection_engine_health/model/cluster_health.mock.ts b/x-pack/plugins/security_solution/common/api/detection_engine/rule_monitoring/detection_engine_health/model/cluster_health.mock.ts index 6bd740a87cf54..6fac9e9b38521 100644 --- a/x-pack/plugins/security_solution/common/api/detection_engine/rule_monitoring/detection_engine_health/model/cluster_health.mock.ts +++ b/x-pack/plugins/security_solution/common/api/detection_engine/rule_monitoring/detection_engine_health/model/cluster_health.mock.ts @@ -10,17 +10,13 @@ import { healthStatsMock } from './health_stats.mock'; const getEmptyClusterHealthSnapshot = (): ClusterHealthSnapshot => { return { - stats_at_the_moment: healthStatsMock.getEmptyRuleStats(), - stats_over_interval: { - message: 'Not implemented', - }, + state_at_the_moment: healthStatsMock.getEmptyHealthOverviewState(), + stats_over_interval: healthStatsMock.getEmptyHealthOverviewStats(), history_over_interval: { buckets: [ { timestamp: '2023-05-15T16:12:14.967Z', - stats: { - message: 'Not implemented', - }, + stats: healthStatsMock.getEmptyHealthOverviewStats(), }, ], }, diff --git a/x-pack/plugins/security_solution/common/api/detection_engine/rule_monitoring/detection_engine_health/model/cluster_health.ts b/x-pack/plugins/security_solution/common/api/detection_engine/rule_monitoring/detection_engine_health/model/cluster_health.ts index 441eef935ade5..bbf838a828dfe 100644 --- a/x-pack/plugins/security_solution/common/api/detection_engine/rule_monitoring/detection_engine_health/model/cluster_health.ts +++ b/x-pack/plugins/security_solution/common/api/detection_engine/rule_monitoring/detection_engine_health/model/cluster_health.ts @@ -6,7 +6,7 @@ */ import type { HealthParameters, HealthSnapshot } from './health_metadata'; -import type { RuleStats, StatsHistory } from './health_stats'; +import type { HealthOverviewStats, HealthOverviewState, HealthHistory } from './health_stats'; /** * Health calculation parameters for the whole cluster. @@ -18,30 +18,27 @@ export type ClusterHealthParameters = HealthParameters; */ export interface ClusterHealthSnapshot extends HealthSnapshot { /** - * Health stats at the moment of the calculation request. + * Health state at the moment of the calculation request. */ - stats_at_the_moment: ClusterHealthStatsAtTheMoment; + state_at_the_moment: ClusterHealthState; /** * Health stats calculated over the interval specified in the health parameters. */ - stats_over_interval: ClusterHealthStatsOverInterval; + stats_over_interval: ClusterHealthStats; /** * History of change of the same health stats during the interval. */ - history_over_interval: StatsHistory; + history_over_interval: HealthHistory; } /** - * Health stats at the moment of the calculation request. + * Health state at the moment of the calculation request. */ -export type ClusterHealthStatsAtTheMoment = RuleStats; +export type ClusterHealthState = HealthOverviewState; /** * Health stats calculated over a given interval. */ -export interface ClusterHealthStatsOverInterval { - // TODO: https://github.com/elastic/kibana/issues/125642 Implement and delete this `message` - message: 'Not implemented'; -} +export type ClusterHealthStats = HealthOverviewStats; diff --git a/x-pack/plugins/security_solution/common/api/detection_engine/rule_monitoring/detection_engine_health/model/health_stats.mock.ts b/x-pack/plugins/security_solution/common/api/detection_engine/rule_monitoring/detection_engine_health/model/health_stats.mock.ts index 545a1b0ef0440..ffb9275bdd89a 100644 --- a/x-pack/plugins/security_solution/common/api/detection_engine/rule_monitoring/detection_engine_health/model/health_stats.mock.ts +++ b/x-pack/plugins/security_solution/common/api/detection_engine/rule_monitoring/detection_engine_health/model/health_stats.mock.ts @@ -7,12 +7,12 @@ import type { AggregatedMetric, - RuleExecutionStats, - RuleStats, + HealthOverviewStats, + HealthOverviewState, TotalEnabledDisabled, } from './health_stats'; -const getEmptyRuleStats = (): RuleStats => { +const getEmptyHealthOverviewState = (): HealthOverviewState => { return { number_of_rules: { all: getZeroTotalEnabledDisabled(), @@ -34,7 +34,7 @@ const getZeroTotalEnabledDisabled = (): TotalEnabledDisabled => { }; }; -const getEmptyRuleExecutionStats = (): RuleExecutionStats => { +const getEmptyHealthOverviewStats = (): HealthOverviewStats => { return { number_of_executions: { total: 0, @@ -70,18 +70,15 @@ const getEmptyRuleExecutionStats = (): RuleExecutionStats => { const getZeroAggregatedMetric = (): AggregatedMetric => { return { percentiles: { - '1.0': 0, - '5.0': 0, - '25.0': 0, '50.0': 0, - '75.0': 0, '95.0': 0, '99.0': 0, + '99.9': 0, }, }; }; export const healthStatsMock = { - getEmptyRuleStats, - getEmptyRuleExecutionStats, + getEmptyHealthOverviewState, + getEmptyHealthOverviewStats, }; diff --git a/x-pack/plugins/security_solution/common/api/detection_engine/rule_monitoring/detection_engine_health/model/health_stats.ts b/x-pack/plugins/security_solution/common/api/detection_engine/rule_monitoring/detection_engine_health/model/health_stats.ts index 4af7ea8c6bd07..3098b3c69c4a3 100644 --- a/x-pack/plugins/security_solution/common/api/detection_engine/rule_monitoring/detection_engine_health/model/health_stats.ts +++ b/x-pack/plugins/security_solution/common/api/detection_engine/rule_monitoring/detection_engine_health/model/health_stats.ts @@ -10,7 +10,7 @@ import type { RuleLastRunOutcomes } from '@kbn/alerting-plugin/common'; import type { LogLevel } from '../../model'; // ------------------------------------------------------------------------------------------------- -// Stats history (date histogram) +// History of health stats (date histogram) /** * History of change of a set of stats over a time interval. The interval is split into discreet buckets, @@ -19,14 +19,14 @@ import type { LogLevel } from '../../model'; * This model corresponds to the `date_histogram` aggregation of Elasticsearch: * https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-datehistogram-aggregation.html */ -export interface StatsHistory { - buckets: Array>; +export interface HealthHistory { + buckets: Array>; } /** * Sub-interval with stats calculated over it. */ -export interface StatsBucket { +export interface HealthBucket { /** * Start timestamp of the sub-interval. */ @@ -39,23 +39,15 @@ export interface StatsBucket { } // ------------------------------------------------------------------------------------------------- -// Rule stats - -// TODO: https://github.com/elastic/kibana/issues/125642 Add more stats, such as: -// - number of Kibana instances -// - number of Kibana spaces -// - number of rules with exceptions -// - number of rules with notification actions (total, normal, legacy) -// - number of rules with response actions -// - top X last failed status messages + rule ids for each status -// - top X last partial failure status messages + rule ids for each status -// - top X slowest rules by any metrics (last total execution time, search time, indexing time, etc) -// - top X rules with the largest schedule delay (drift) +// Health overview state + +// TODO: https://github.com/elastic/kibana/issues/125642 Add more data, see health_data.md /** - * "Static" stats calculated for a set of rules, such as number of enabled and disabled rules, etc. + * "Static" health state at the moment of the API call. Calculated for a set of rules. + * Example: number of enabled and disabled rules. */ -export interface RuleStats { +export interface HealthOverviewState { /** * Various counts of different rules. */ @@ -108,19 +100,15 @@ export interface TotalEnabledDisabled { } // ------------------------------------------------------------------------------------------------- -// Rule execution stats +// Health overview stats -// TODO: https://github.com/elastic/kibana/issues/125642 Add more stats, such as: -// - number of detected alerts (source event "hits") -// - number of created alerts (those we wrote to the .alerts-* index) -// - number of times rule hit cirquit breaker, number of not created alerts because of that -// - number of triggered actions -// - top gaps +// TODO: https://github.com/elastic/kibana/issues/125642 Add more data, see health_data.md /** - * "Dynamic" rule execution stats. Can be calculated either for a set of rules or for a single rule. + * "Dynamic" health stats over a specified "health interval". Can be calculated either + * for a set of rules or for a single rule. */ -export interface RuleExecutionStats { +export interface HealthOverviewStats { /** * Number of rule executions. */ @@ -242,13 +230,10 @@ export interface AggregatedMetric { * Distribution of values of an aggregated metric represented by a set of discreet percentiles. * @example * { - * '1.0': 27, - * '5.0': 150, - * '25.0': 240, * '50.0': 420, - * '75.0': 700, * '95.0': 2500, * '99.0': 7800, + * '99.9': 10000, * } */ export type Percentiles = Record; diff --git a/x-pack/plugins/security_solution/common/api/detection_engine/rule_monitoring/detection_engine_health/model/rule_health.mock.ts b/x-pack/plugins/security_solution/common/api/detection_engine/rule_monitoring/detection_engine_health/model/rule_health.mock.ts index 961a057b2603e..50cb91cf202c5 100644 --- a/x-pack/plugins/security_solution/common/api/detection_engine/rule_monitoring/detection_engine_health/model/rule_health.mock.ts +++ b/x-pack/plugins/security_solution/common/api/detection_engine/rule_monitoring/detection_engine_health/model/rule_health.mock.ts @@ -11,15 +11,15 @@ import type { RuleHealthSnapshot } from './rule_health'; const getEmptyRuleHealthSnapshot = (): RuleHealthSnapshot => { return { - stats_at_the_moment: { + state_at_the_moment: { rule: getRulesSchemaMock(), }, - stats_over_interval: healthStatsMock.getEmptyRuleExecutionStats(), + stats_over_interval: healthStatsMock.getEmptyHealthOverviewStats(), history_over_interval: { buckets: [ { timestamp: '2023-05-15T16:12:14.967Z', - stats: healthStatsMock.getEmptyRuleExecutionStats(), + stats: healthStatsMock.getEmptyHealthOverviewStats(), }, ], }, diff --git a/x-pack/plugins/security_solution/common/api/detection_engine/rule_monitoring/detection_engine_health/model/rule_health.ts b/x-pack/plugins/security_solution/common/api/detection_engine/rule_monitoring/detection_engine_health/model/rule_health.ts index 59756df926e27..77471270695bb 100644 --- a/x-pack/plugins/security_solution/common/api/detection_engine/rule_monitoring/detection_engine_health/model/rule_health.ts +++ b/x-pack/plugins/security_solution/common/api/detection_engine/rule_monitoring/detection_engine_health/model/rule_health.ts @@ -7,7 +7,7 @@ import type { RuleResponse } from '../../../model'; import type { HealthParameters, HealthSnapshot } from './health_metadata'; -import type { RuleExecutionStats, StatsHistory } from './health_stats'; +import type { HealthOverviewStats, HealthHistory } from './health_stats'; /** * Health calculation parameters for a given rule. @@ -24,25 +24,25 @@ export interface RuleHealthParameters extends HealthParameters { */ export interface RuleHealthSnapshot extends HealthSnapshot { /** - * Health stats at the moment of the calculation request. + * Health state at the moment of the calculation request. */ - stats_at_the_moment: RuleHealthStatsAtTheMoment; + state_at_the_moment: RuleHealthState; /** * Health stats calculated over the interval specified in the health parameters. */ - stats_over_interval: RuleHealthStatsOverInterval; + stats_over_interval: RuleHealthStats; /** * History of change of the same health stats during the interval. */ - history_over_interval: StatsHistory; + history_over_interval: HealthHistory; } /** - * Health stats at the moment of the calculation request. + * Health state at the moment of the calculation request. */ -export interface RuleHealthStatsAtTheMoment { +export interface RuleHealthState { /** * Rule object including its current execution summary. */ @@ -52,4 +52,4 @@ export interface RuleHealthStatsAtTheMoment { /** * Health stats calculated over a given interval. */ -export type RuleHealthStatsOverInterval = RuleExecutionStats; +export type RuleHealthStats = HealthOverviewStats; diff --git a/x-pack/plugins/security_solution/common/api/detection_engine/rule_monitoring/detection_engine_health/model/space_health.mock.ts b/x-pack/plugins/security_solution/common/api/detection_engine/rule_monitoring/detection_engine_health/model/space_health.mock.ts index 60e1514cee59e..e445a275d6a8c 100644 --- a/x-pack/plugins/security_solution/common/api/detection_engine/rule_monitoring/detection_engine_health/model/space_health.mock.ts +++ b/x-pack/plugins/security_solution/common/api/detection_engine/rule_monitoring/detection_engine_health/model/space_health.mock.ts @@ -10,13 +10,13 @@ import type { SpaceHealthSnapshot } from './space_health'; const getEmptySpaceHealthSnapshot = (): SpaceHealthSnapshot => { return { - stats_at_the_moment: healthStatsMock.getEmptyRuleStats(), - stats_over_interval: healthStatsMock.getEmptyRuleExecutionStats(), + state_at_the_moment: healthStatsMock.getEmptyHealthOverviewState(), + stats_over_interval: healthStatsMock.getEmptyHealthOverviewStats(), history_over_interval: { buckets: [ { timestamp: '2023-05-15T16:12:14.967Z', - stats: healthStatsMock.getEmptyRuleExecutionStats(), + stats: healthStatsMock.getEmptyHealthOverviewStats(), }, ], }, diff --git a/x-pack/plugins/security_solution/common/api/detection_engine/rule_monitoring/detection_engine_health/model/space_health.ts b/x-pack/plugins/security_solution/common/api/detection_engine/rule_monitoring/detection_engine_health/model/space_health.ts index 35648a9257570..173f8e9af1a62 100644 --- a/x-pack/plugins/security_solution/common/api/detection_engine/rule_monitoring/detection_engine_health/model/space_health.ts +++ b/x-pack/plugins/security_solution/common/api/detection_engine/rule_monitoring/detection_engine_health/model/space_health.ts @@ -6,7 +6,7 @@ */ import type { HealthParameters, HealthSnapshot } from './health_metadata'; -import type { RuleExecutionStats, RuleStats, StatsHistory } from './health_stats'; +import type { HealthOverviewStats, HealthOverviewState, HealthHistory } from './health_stats'; /** * Health calculation parameters for the current Kibana space. @@ -18,27 +18,27 @@ export type SpaceHealthParameters = HealthParameters; */ export interface SpaceHealthSnapshot extends HealthSnapshot { /** - * Health stats at the moment of the calculation request. + * Health state at the moment of the calculation request. */ - stats_at_the_moment: SpaceHealthStatsAtTheMoment; + state_at_the_moment: SpaceHealthState; /** * Health stats calculated over the interval specified in the health parameters. */ - stats_over_interval: SpaceHealthStatsOverInterval; + stats_over_interval: SpaceHealthStats; /** * History of change of the same health stats during the interval. */ - history_over_interval: StatsHistory; + history_over_interval: HealthHistory; } /** - * Health stats at the moment of the calculation request. + * Health state at the moment of the calculation request. */ -export type SpaceHealthStatsAtTheMoment = RuleStats; +export type SpaceHealthState = HealthOverviewState; /** * Health stats calculated over a given interval. */ -export type SpaceHealthStatsOverInterval = RuleExecutionStats; +export type SpaceHealthStats = HealthOverviewStats; diff --git a/x-pack/plugins/security_solution/common/experimental_features.ts b/x-pack/plugins/security_solution/common/experimental_features.ts index b92da8f442a07..a30b5cfe17ae6 100644 --- a/x-pack/plugins/security_solution/common/experimental_features.ts +++ b/x-pack/plugins/security_solution/common/experimental_features.ts @@ -108,7 +108,7 @@ export const allowedExperimentalValues = Object.freeze({ * Enables Discover embedded within timeline * * */ - discoverInTimeline: false, + discoverInTimeline: true, /** * disables ES|QL rules diff --git a/x-pack/plugins/security_solution/public/assistant/provider.tsx b/x-pack/plugins/security_solution/public/assistant/provider.tsx index 794ed7e9e3f70..6d38b45914466 100644 --- a/x-pack/plugins/security_solution/public/assistant/provider.tsx +++ b/x-pack/plugins/security_solution/public/assistant/provider.tsx @@ -55,9 +55,6 @@ export const AssistantProvider: React.FC = ({ children }) => { actionTypeRegistry={actionTypeRegistry} augmentMessageCodeBlocks={augmentMessageCodeBlocks} assistantAvailability={assistantAvailability} - // NOTE: `assistantLangChain` and `assistantModelEvaluation` experimental feature will be coupled until upcoming - // Knowledge Base UI updates, which will remove the `assistantLangChain` feature flag in favor of a UI feature toggle - assistantLangChain={isModelEvaluationEnabled} assistantTelemetry={assistantTelemetry} defaultAllow={defaultAllow} defaultAllowReplacement={defaultAllowReplacement} @@ -71,6 +68,7 @@ export const AssistantProvider: React.FC = ({ children }) => { getInitialConversations={getInitialConversation} getComments={getComments} http={http} + modelEvaluatorEnabled={isModelEvaluationEnabled} nameSpace={nameSpace} setConversations={setConversations} setDefaultAllow={setDefaultAllow} diff --git a/x-pack/plugins/security_solution/public/common/components/discover_in_timeline/__mocks__/use_discover_in_timeline_actions.tsx b/x-pack/plugins/security_solution/public/common/components/discover_in_timeline/__mocks__/use_discover_in_timeline_actions.tsx index cd192a528e36f..64f284a8e2137 100644 --- a/x-pack/plugins/security_solution/public/common/components/discover_in_timeline/__mocks__/use_discover_in_timeline_actions.tsx +++ b/x-pack/plugins/security_solution/public/common/components/discover_in_timeline/__mocks__/use_discover_in_timeline_actions.tsx @@ -7,22 +7,22 @@ export const useDiscoverInTimelineActions = () => { return { - resetDiscoverAppState: jest.fn(), + resetDiscoverAppState: jest.fn().mockResolvedValue(true), restoreDiscoverAppStateFromSavedSearch: jest.fn(), updateSavedSearch: jest.fn(), getAppStateFromSavedSearch: jest.fn(), - defaultDiscoverAppState: { + getDefaultDiscoverAppState: () => ({ query: { query: '', - language: 'kuery', + language: 'esql', }, sort: [['@timestamp', 'desc']], columns: [], index: 'security-solution-default', interval: 'auto', filters: [], - hideChart: true, + hideChart: false, grid: {}, - }, + }), }; }; diff --git a/x-pack/plugins/security_solution/public/common/components/discover_in_timeline/use_discover_in_timeline_actions.test.tsx b/x-pack/plugins/security_solution/public/common/components/discover_in_timeline/use_discover_in_timeline_actions.test.tsx index 79e138347c79c..8463097d98d07 100644 --- a/x-pack/plugins/security_solution/public/common/components/discover_in_timeline/use_discover_in_timeline_actions.test.tsx +++ b/x-pack/plugins/security_solution/public/common/components/discover_in_timeline/use_discover_in_timeline_actions.test.tsx @@ -25,8 +25,12 @@ import { createStore } from '../../store'; import { TimelineId } from '../../../../common/types'; import type { ComponentType, FC, PropsWithChildren } from 'react'; import React from 'react'; +import type { DataView } from '@kbn/data-views-plugin/common'; +import TestRenderer from 'react-test-renderer'; -const mockDiscoverStateContainerRef = { +const { act } = TestRenderer; + +let mockDiscoverStateContainerRef = { current: discoverPluginMock.getDiscoverStateMock({}), }; @@ -64,6 +68,9 @@ const getTestProviderWithCustomState = (state: State = mockState) => { }; const renderTestHook = (customWrapper: ComponentType = getTestProviderWithCustomState()) => { + mockDiscoverStateContainerRef = { + current: discoverPluginMock.getDiscoverStateMock({}), + }; return renderHook(() => useDiscoverInTimelineActions(mockDiscoverStateContainerRef), { wrapper: customWrapper, }); @@ -120,6 +127,13 @@ export const savedSearchMock = { const startServicesMock = createStartServicesMock(); +startServicesMock.dataViews.get = jest.fn( + async () => + ({ + getIndexPattern: jest.fn(), + } as unknown as DataView) +); + describe('useDiscoverInTimelineActions', () => { beforeEach(() => { (useKibana as jest.Mock).mockImplementation(() => ({ @@ -188,15 +202,15 @@ describe('useDiscoverInTimelineActions', () => { describe('resetDiscoverAppState', () => { it('should reset Discover AppState to a default state', async () => { const { result, waitFor } = renderTestHook(); - result.current.resetDiscoverAppState(); + await result.current.resetDiscoverAppState(); await waitFor(() => { const appState = mockDiscoverStateContainerRef.current.appState.getState(); - expect(appState).toMatchObject(result.current.defaultDiscoverAppState); + expect(appState).toMatchObject(result.current.getDefaultDiscoverAppState()); }); }); it('should reset Discover time to a default state', async () => { const { result, waitFor } = renderTestHook(); - result.current.resetDiscoverAppState(); + await result.current.resetDiscoverAppState(); await waitFor(() => { const globalState = mockDiscoverStateContainerRef.current.globalState.get(); expect(globalState).toMatchObject({ time: { from: 'now-15m', to: 'now' } }); @@ -206,7 +220,9 @@ describe('useDiscoverInTimelineActions', () => { describe('updateSavedSearch', () => { it('should add defaults to the savedSearch before updating saved search', async () => { const { result } = renderTestHook(); - await result.current.updateSavedSearch(savedSearchMock, TimelineId.active); + await act(async () => { + await result.current.updateSavedSearch(savedSearchMock, TimelineId.active); + }); expect(startServicesMock.savedSearch.save).toHaveBeenNthCalledWith( 1, @@ -242,7 +258,9 @@ describe('useDiscoverInTimelineActions', () => { const LocalTestProvider = getTestProviderWithCustomState(localMockState); const { result } = renderTestHook(LocalTestProvider); - await result.current.updateSavedSearch(savedSearchMock, TimelineId.active); + await act(async () => { + await result.current.updateSavedSearch(savedSearchMock, TimelineId.active); + }); expect(startServicesMock.savedSearch.save).toHaveBeenNthCalledWith( 1, diff --git a/x-pack/plugins/security_solution/public/common/components/discover_in_timeline/use_discover_in_timeline_actions.tsx b/x-pack/plugins/security_solution/public/common/components/discover_in_timeline/use_discover_in_timeline_actions.tsx index 8361612231a24..d6acd1ce7ffc9 100644 --- a/x-pack/plugins/security_solution/public/common/components/discover_in_timeline/use_discover_in_timeline_actions.tsx +++ b/x-pack/plugins/security_solution/public/common/components/discover_in_timeline/use_discover_in_timeline_actions.tsx @@ -40,7 +40,11 @@ export const useDiscoverInTimelineActions = ( const { addError } = useAppToasts(); const { - services: { customDataService: discoverDataService, savedSearch: savedSearchService }, + services: { + customDataService: discoverDataService, + savedSearch: savedSearchService, + dataViews: dataViewService, + }, } = useKibana(); const dispatch = useDispatch(); @@ -69,18 +73,23 @@ export const useDiscoverInTimelineActions = ( }, }); - const defaultDiscoverAppState: DiscoverAppState = useMemo(() => { + const getDefaultDiscoverAppState: () => Promise = useCallback(async () => { + const localDataViewId = dataViewId ?? 'security-solution-default'; + + const dataView = await dataViewService.get(localDataViewId); + return { - query: discoverDataService.query.queryString.getDefaultQuery(), + query: { + esql: dataView ? `from ${dataView.getIndexPattern()} | limit 10` : '', + }, sort: [['@timestamp', 'desc']], columns: [], - index: dataViewId ?? 'security-solution-default', interval: 'auto', filters: [], hideChart: true, grid: {}, }; - }, [discoverDataService, dataViewId]); + }, [dataViewService, dataViewId]); /* * generates Appstate from a given saved Search object @@ -123,13 +132,14 @@ export const useDiscoverInTimelineActions = ( * resets discover state to a default value * * */ - const resetDiscoverAppState = useCallback(() => { + const resetDiscoverAppState = useCallback(async () => { + const defaultDiscoverAppState = await getDefaultDiscoverAppState(); discoverStateContainer.current?.appState.set(defaultDiscoverAppState); discoverStateContainer.current?.globalState.set({ ...discoverStateContainer.current?.globalState.get(), time: defaultDiscoverTimeRange, }); - }, [defaultDiscoverAppState, discoverStateContainer]); + }, [getDefaultDiscoverAppState, discoverStateContainer]); const persistSavedSearch = useCallback( async (savedSearch: SavedSearch, savedSearchOption: SaveSavedSearchOptions) => { @@ -220,14 +230,14 @@ export const useDiscoverInTimelineActions = ( restoreDiscoverAppStateFromSavedSearch, updateSavedSearch, getAppStateFromSavedSearch, - defaultDiscoverAppState, + getDefaultDiscoverAppState, }), [ resetDiscoverAppState, restoreDiscoverAppStateFromSavedSearch, updateSavedSearch, getAppStateFromSavedSearch, - defaultDiscoverAppState, + getDefaultDiscoverAppState, ] ); diff --git a/x-pack/plugins/security_solution/public/common/mock/mock_assistant_provider.tsx b/x-pack/plugins/security_solution/public/common/mock/mock_assistant_provider.tsx index 2954f47e0d1a8..4dc5f01b0ee7d 100644 --- a/x-pack/plugins/security_solution/public/common/mock/mock_assistant_provider.tsx +++ b/x-pack/plugins/security_solution/public/common/mock/mock_assistant_provider.tsx @@ -34,7 +34,6 @@ export const MockAssistantProviderComponent: React.FC = ({ children }) => [])} baseAllow={[]} baseAllowReplacement={[]} diff --git a/x-pack/plugins/security_solution/public/detection_engine/rule_details_ui/pages/rule_details/cast_rule_as_rule_response.ts b/x-pack/plugins/security_solution/public/detection_engine/rule_details_ui/pages/rule_details/cast_rule_as_rule_response.ts new file mode 100644 index 0000000000000..fb1fdfc1fcc99 --- /dev/null +++ b/x-pack/plugins/security_solution/public/detection_engine/rule_details_ui/pages/rule_details/cast_rule_as_rule_response.ts @@ -0,0 +1,24 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { Rule } from '../../../rule_management/logic'; +import type { RuleResponse } from '../../../../../common/api/detection_engine/model/rule_schema/rule_schemas'; + +/* + * This is a temporary workaround to suppress TS errors when using + * rule section components on the rule details page. + * + * The rule details page passes a Rule object to the rule section components, + * but section components expect a RuleResponse object. Rule and RuleResponse + * are basically same object type with only a few minor differences. + * This function casts the Rule object to RuleResponse. + * + * In the near future we'll start using codegen to generate proper response + * types and the rule details page will start passing RuleResponse objects, + * so this workaround will no longer be needed. + */ +export const castRuleAsRuleResponse = (rule: Rule) => rule as Partial; diff --git a/x-pack/plugins/security_solution/public/detection_engine/rule_details_ui/pages/rule_details/index.tsx b/x-pack/plugins/security_solution/public/detection_engine/rule_details_ui/pages/rule_details/index.tsx index 223593ef3e095..6d055af164d07 100644 --- a/x-pack/plugins/security_solution/public/detection_engine/rule_details_ui/pages/rule_details/index.tsx +++ b/x-pack/plugins/security_solution/public/detection_engine/rule_details_ui/pages/rule_details/index.tsx @@ -64,8 +64,6 @@ import { SpyRoute } from '../../../../common/utils/route/spy_routes'; import { StepAboutRuleToggleDetails } from '../../../../detections/components/rules/step_about_rule_details'; import { AlertsHistogramPanel } from '../../../../detections/components/alerts_kpis/alerts_histogram_panel'; import { useUserData } from '../../../../detections/components/user_info'; -import { StepDefineRuleReadOnly } from '../../../../detections/components/rules/step_define_rule'; -import { StepScheduleRuleReadOnly } from '../../../../detections/components/rules/step_schedule_rule'; import { StepRuleActionsReadOnly } from '../../../../detections/components/rules/step_rule_actions'; import { buildAlertsFilter, @@ -120,7 +118,6 @@ import * as ruleI18n from '../../../../detections/pages/detection_engine/rules/t import { RuleDetailsContextProvider } from './rule_details_context'; // eslint-disable-next-line no-restricted-imports import { LegacyUrlConflictCallOut } from './legacy_url_conflict_callout'; -import { useGetSavedQuery } from '../../../../detections/pages/detection_engine/rules/use_get_saved_query'; import * as i18n from './translations'; import { NeedAdminForUpdateRulesCallOut } from '../../../../detections/components/callouts/need_admin_for_update_callout'; import { MissingPrivilegesCallOut } from '../../../../detections/components/callouts/missing_privileges_callout'; @@ -138,12 +135,13 @@ import { useBulkDuplicateExceptionsConfirmation } from '../../../rule_management import { BulkActionDuplicateExceptionsConfirmation } from '../../../rule_management_ui/components/rules_table/bulk_actions/bulk_duplicate_exceptions_confirmation'; import { useAsyncConfirmation } from '../../../rule_management_ui/components/rules_table/rules_table/use_async_confirmation'; import { RuleSnoozeBadge } from '../../../rule_management/components/rule_snooze_badge'; -import { useRuleIndexPattern } from '../../../rule_creation_ui/pages/form'; -import { DataSourceType } from '../../../../detections/pages/detection_engine/rules/types'; import { useBoolState } from '../../../../common/hooks/use_bool_state'; +import { RuleDefinitionSection } from '../../../rule_management/components/rule_details/rule_definition_section'; +import { RuleScheduleSection } from '../../../rule_management/components/rule_details/rule_schedule_section'; // eslint-disable-next-line no-restricted-imports import { useLegacyUrlRedirect } from './use_redirect_legacy_url'; import { RuleDetailTabs, useRuleDetailsTabs } from './use_rule_details_tabs'; +import { castRuleAsRuleResponse } from './cast_rule_as_rule_response'; const RULE_EXCEPTION_LIST_TYPES = [ ExceptionListTypeEnum.DETECTION, @@ -174,7 +172,6 @@ const RuleDetailsPageComponent: React.FC = ({ clearSelected, }) => { const { - data, application: { navigateToApp, capabilities: { actions }, @@ -259,38 +256,14 @@ const RuleDetailsPageComponent: React.FC = ({ onFinish: hideDeleteConfirmation, }); - const { - aboutRuleData, - modifiedAboutRuleDetailsData, - defineRuleData, - scheduleRuleData, - ruleActionsData, - } = + const { aboutRuleData, modifiedAboutRuleDetailsData, ruleActionsData } = rule != null ? getStepsData({ rule, detailsView: true }) : { aboutRuleData: null, modifiedAboutRuleDetailsData: null, - defineRuleData: null, - scheduleRuleData: null, ruleActionsData: null, }; - const [dataViewTitle, setDataViewTitle] = useState(); - useEffect(() => { - const fetchDataViewTitle = async () => { - if (defineRuleData?.dataViewId != null && defineRuleData?.dataViewId !== '') { - const dataView = await data.dataViews.get(defineRuleData?.dataViewId); - setDataViewTitle(dataView.title); - } - }; - fetchDataViewTitle(); - }, [data.dataViews, defineRuleData?.dataViewId]); - - const { indexPattern: ruleIndexPattern } = useRuleIndexPattern({ - dataSourceType: defineRuleData?.dataSourceType ?? DataSourceType.IndexPatterns, - index: defineRuleData?.index ?? [], - dataViewId: defineRuleData?.dataViewId, - }); const { showBuildingBlockAlerts, setShowBuildingBlockAlerts, showOnlyThreatIndicatorAlerts } = useDataTableFilters(TableId.alertsOnRuleDetailsPage); @@ -299,11 +272,6 @@ const RuleDetailsPageComponent: React.FC = ({ const { globalFullScreen } = useGlobalFullScreen(); const [filterGroup, setFilterGroup] = useState(FILTER_OPEN); - const { isSavedQueryLoading, savedQueryBar } = useGetSavedQuery({ - savedQueryId: rule?.saved_id, - ruleType: rule?.type, - }); - // TODO: Refactor license check + hasMlAdminPermissions to common check const hasMlPermissions = hasMlLicense(mlCapabilities) && hasMlAdminPermissions(mlCapabilities); @@ -666,30 +634,25 @@ const RuleDetailsPageComponent: React.FC = ({ - + {rule !== null && ( + + )} - - {defineRuleData != null && !isSavedQueryLoading && !isStartingJobs && ( - + {rule !== null && !isStartingJobs && ( + )} @@ -697,12 +660,8 @@ const RuleDetailsPageComponent: React.FC = ({ - {scheduleRuleData != null && ( - + {rule != null && ( + )} diff --git a/x-pack/plugins/security_solution/public/detection_engine/rule_management/components/rule_details/rule_about_section.tsx b/x-pack/plugins/security_solution/public/detection_engine/rule_management/components/rule_details/rule_about_section.tsx index aef4eccaa4299..7c1ada1c6e1bc 100644 --- a/x-pack/plugins/security_solution/public/detection_engine/rule_management/components/rule_details/rule_about_section.tsx +++ b/x-pack/plugins/security_solution/public/detection_engine/rule_management/components/rule_details/rule_about_section.tsx @@ -53,11 +53,17 @@ const StyledEuiLink = styled(EuiLink)` word-break: break-word; `; +interface NameProps { + name: string; +} + +const Name = ({ name }: NameProps) => {name}; + interface DescriptionProps { description: string; } -const Description = ({ description }: DescriptionProps) => ( +export const Description = ({ description }: DescriptionProps) => ( {description} ); @@ -217,10 +223,29 @@ interface TagsProps { const Tags = ({ tags }: TagsProps) => ; -const prepareAboutSectionListItems = (rule: RuleResponse): EuiDescriptionListProps['listItems'] => { +// eslint-disable-next-line complexity +const prepareAboutSectionListItems = ( + rule: Partial, + hideName?: boolean, + hideDescription?: boolean +): EuiDescriptionListProps['listItems'] => { const aboutSectionListItems: EuiDescriptionListProps['listItems'] = []; - if (rule.author.length > 0) { + if (!hideName && rule.name) { + aboutSectionListItems.push({ + title: i18n.NAME_FIELD_LABEL, + description: , + }); + } + + if (!hideDescription && rule.description) { + aboutSectionListItems.push({ + title: i18n.DESCRIPTION_FIELD_LABEL, + description: , + }); + } + + if (rule.author && rule.author.length > 0) { aboutSectionListItems.push({ title: i18n.AUTHOR_FIELD_LABEL, description: , @@ -234,12 +259,14 @@ const prepareAboutSectionListItems = (rule: RuleResponse): EuiDescriptionListPro }); } - aboutSectionListItems.push({ - title: i18n.SEVERITY_FIELD_LABEL, - description: , - }); + if (rule.severity) { + aboutSectionListItems.push({ + title: i18n.SEVERITY_FIELD_LABEL, + description: , + }); + } - if (rule.severity_mapping.length > 0) { + if (rule.severity_mapping && rule.severity_mapping.length > 0) { aboutSectionListItems.push( ...rule.severity_mapping .filter((severityMappingItem) => severityMappingItem.field !== '') @@ -252,12 +279,14 @@ const prepareAboutSectionListItems = (rule: RuleResponse): EuiDescriptionListPro ); } - aboutSectionListItems.push({ - title: i18n.RISK_SCORE_FIELD_LABEL, - description: , - }); + if (rule.risk_score) { + aboutSectionListItems.push({ + title: i18n.RISK_SCORE_FIELD_LABEL, + description: , + }); + } - if (rule.risk_score_mapping.length > 0) { + if (rule.risk_score_mapping && rule.risk_score_mapping.length > 0) { aboutSectionListItems.push( ...rule.risk_score_mapping .filter((riskScoreMappingItem) => riskScoreMappingItem.field !== '') @@ -270,14 +299,14 @@ const prepareAboutSectionListItems = (rule: RuleResponse): EuiDescriptionListPro ); } - if (rule.references.length > 0) { + if (rule.references && rule.references.length > 0) { aboutSectionListItems.push({ title: i18n.REFERENCES_FIELD_LABEL, description: , }); } - if (rule.false_positives.length > 0) { + if (rule.false_positives && rule.false_positives.length > 0) { aboutSectionListItems.push({ title: i18n.FALSE_POSITIVES_FIELD_LABEL, description: , @@ -307,7 +336,7 @@ const prepareAboutSectionListItems = (rule: RuleResponse): EuiDescriptionListPro }); } - if (rule.threat.length > 0) { + if (rule.threat && rule.threat.length > 0) { aboutSectionListItems.push({ title: i18n.THREAT_FIELD_LABEL, description: , @@ -328,7 +357,7 @@ const prepareAboutSectionListItems = (rule: RuleResponse): EuiDescriptionListPro }); } - if (rule.tags.length > 0) { + if (rule.tags && rule.tags.length > 0) { aboutSectionListItems.push({ title: i18n.TAGS_FIELD_LABEL, description: , @@ -339,30 +368,23 @@ const prepareAboutSectionListItems = (rule: RuleResponse): EuiDescriptionListPro }; export interface RuleAboutSectionProps { - rule: RuleResponse; + rule: Partial; + hideName?: boolean; + hideDescription?: boolean; } -export const RuleAboutSection = ({ rule }: RuleAboutSectionProps) => { - const aboutSectionListItems = prepareAboutSectionListItems(rule); +export const RuleAboutSection = ({ rule, hideName, hideDescription }: RuleAboutSectionProps) => { + const aboutSectionListItems = prepareAboutSectionListItems(rule, hideName, hideDescription); return (
    - {rule.description && ( - , - }, - ]} - /> - )}
    ); 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 e30e6421f37ee..e32968573b6a2 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 @@ -34,12 +34,17 @@ import type { RequiredFieldArray } from '../../../../../common/api/detection_eng import { assertUnreachable } from '../../../../../common/utility_types'; import * as descriptionStepI18n from '../../../../detections/components/rules/description_step/translations'; import { RelatedIntegrationsDescription } from '../../../../detections/components/rules/related_integrations/integrations_description'; +import { AlertSuppressionTechnicalPreviewBadge } from '../../../../detections/components/rules/description_step/alert_suppression_technical_preview_badge'; import { useGetSavedQuery } from '../../../../detections/pages/detection_engine/rules/use_get_saved_query'; +import { useLicense } from '../../../../common/hooks/use_license'; import * as threatMatchI18n from '../../../../common/components/threat_match/translations'; +import { AlertSuppressionMissingFieldsStrategy } from '../../../../../common/api/detection_engine/model/rule_schema/specific_attributes/query_attributes'; import * as timelinesI18n from '../../../../timelines/components/timeline/translations'; import { useRuleIndexPattern } from '../../../rule_creation_ui/pages/form'; import { DataSourceType } from '../../../../detections/pages/detection_engine/rules/types'; +import type { Duration } from '../../../../detections/pages/detection_engine/rules/types'; import { convertHistoryStartToSize } from '../../../../detections/pages/detection_engine/rules/helpers'; +import { MlJobsDescription } from '../../../../detections/components/rules/ml_jobs_description/ml_jobs_description'; 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'; @@ -170,11 +175,16 @@ const AnomalyThreshold = ({ anomalyThreshold }: AnomalyThresholdProps) => ( interface MachineLearningJobListProps { jobIds: string[]; + isInteractive: boolean; } -const MachineLearningJobList = ({ jobIds }: MachineLearningJobListProps) => { +const MachineLearningJobList = ({ jobIds, isInteractive }: MachineLearningJobListProps) => { const { jobs } = useSecurityJobs(); + if (isInteractive) { + return ; + } + const relevantJobs = jobs.filter((job) => jobIds.includes(job.id)); return ( @@ -202,7 +212,7 @@ const getRuleTypeDescription = (ruleType: Type) => { case 'eql': return descriptionStepI18n.EQL_TYPE_DESCRIPTION; case 'esql': - return descriptionStepI18n.ESQL_TYPE_DESCRIPTION; + return ; case 'threat_match': return descriptionStepI18n.THREAT_MATCH_TYPE_DESCRIPTION; case 'new_terms': @@ -301,6 +311,49 @@ const ThreatMapping = ({ threatMapping }: ThreatMappingProps) => { return {description}; }; +interface TitleWithTechnicalPreviewBadgeProps { + title: string; +} + +const TitleWithTechnicalPreviewBadge = ({ title }: TitleWithTechnicalPreviewBadgeProps) => { + const license = useLicense(); + + return ; +}; + +interface SuppressAlertsByFieldProps { + fields: string[]; +} + +const SuppressAlertsByField = ({ fields }: SuppressAlertsByFieldProps) => ( + +); + +interface SuppressAlertsDurationProps { + duration?: Duration; +} + +const SuppressAlertsDuration = ({ duration }: SuppressAlertsDurationProps) => { + const durationDescription = duration + ? `${duration.value}${duration.unit}` + : descriptionStepI18n.ALERT_SUPPRESSION_PER_RULE_EXECUTION; + + return {durationDescription}; +}; + +interface MissingFieldsStrategyProps { + missingFieldsStrategy?: AlertSuppressionMissingFieldsStrategy; +} + +const MissingFieldsStrategy = ({ missingFieldsStrategy }: MissingFieldsStrategyProps) => { + const missingFieldsDescription = + missingFieldsStrategy === AlertSuppressionMissingFieldsStrategy.Suppress + ? descriptionStepI18n.ALERT_SUPPRESSION_SUPPRESS_ON_MISSING_FIELDS + : descriptionStepI18n.ALERT_SUPPRESSION_DO_NOT_SUPPRESS_ON_MISSING_FIELDS; + + return {missingFieldsDescription}; +}; + interface NewTermsFieldsProps { newTermsFields: string[]; } @@ -321,7 +374,8 @@ const HistoryWindowSize = ({ historyWindowStart }: HistoryWindowSizeProps) => { // eslint-disable-next-line complexity const prepareDefinitionSectionListItems = ( - rule: RuleResponse, + rule: Partial, + isInteractive: boolean, savedQuery?: SavedQuery ): EuiDescriptionListProps['listItems'] => { const definitionSectionListItems: EuiDescriptionListProps['listItems'] = []; @@ -358,13 +412,18 @@ const prepareDefinitionSectionListItems = ( description: , }); } + + if (typeof savedQuery.attributes.query.query === 'string') { + definitionSectionListItems.push({ + title: descriptionStepI18n.SAVED_QUERY_LABEL, + description: , + }); + } } - if ('filters' in rule && 'data_view_id' in rule && rule.filters?.length) { + if ('filters' in rule && rule.filters?.length) { definitionSectionListItems.push({ - title: savedQuery - ? descriptionStepI18n.SAVED_QUERY_FILTERS_LABEL - : descriptionStepI18n.FILTERS_LABEL, + title: descriptionStepI18n.FILTERS_LABEL, description: ( , }); } - definitionSectionListItems.push({ - title: i18n.RULE_TYPE_FIELD_LABEL, - description: , - }); + if (rule.type) { + definitionSectionListItems.push({ + title: i18n.RULE_TYPE_FIELD_LABEL, + description: , + }); + } if ('anomaly_threshold' in rule && rule.anomaly_threshold) { definitionSectionListItems.push({ @@ -397,11 +467,16 @@ const prepareDefinitionSectionListItems = ( if ('machine_learning_job_id' in rule) { definitionSectionListItems.push({ title: i18n.MACHINE_LEARNING_JOB_ID_FIELD_LABEL, - description: , + description: ( + + ), }); } - if (rule.related_integrations.length > 0) { + if (rule.related_integrations && rule.related_integrations.length > 0) { definitionSectionListItems.push({ title: i18n.RELATED_INTEGRATIONS_FIELD_LABEL, description: ( @@ -410,7 +485,7 @@ const prepareDefinitionSectionListItems = ( }); } - if (rule.required_fields.length > 0) { + if (rule.required_fields && rule.required_fields.length > 0) { definitionSectionListItems.push({ title: i18n.REQUIRED_FIELDS_FIELD_LABEL, description: , @@ -447,9 +522,7 @@ const prepareDefinitionSectionListItems = ( if ('threat_filters' in rule && rule.threat_filters && rule.threat_filters.length > 0) { definitionSectionListItems.push({ - title: savedQuery - ? descriptionStepI18n.SAVED_QUERY_FILTERS_LABEL - : descriptionStepI18n.FILTERS_LABEL, + title: i18n.THREAT_FILTERS_FIELD_LABEL, description: ( , }); } + if ('alert_suppression' in rule && rule.alert_suppression) { + definitionSectionListItems.push({ + title: , + description: , + }); + + definitionSectionListItems.push({ + title: , + description: , + }); + + definitionSectionListItems.push({ + title: , + description: ( + + ), + }); + } + if ('new_terms_fields' in rule && rule.new_terms_fields && rule.new_terms_fields.length > 0) { definitionSectionListItems.push({ title: i18n.NEW_TERMS_FIELDS_FIELD_LABEL, @@ -476,7 +568,7 @@ const prepareDefinitionSectionListItems = ( }); } - if (rule.type === 'new_terms' || 'history_window_start' in rule) { + if ('history_window_start' in rule) { definitionSectionListItems.push({ title: i18n.HISTORY_WINDOW_SIZE_FIELD_LABEL, description: , @@ -487,24 +579,35 @@ const prepareDefinitionSectionListItems = ( }; export interface RuleDefinitionSectionProps { - rule: RuleResponse; + rule: Partial; + isInteractive?: boolean; + dataTestSubj?: string; } -export const RuleDefinitionSection = ({ rule }: RuleDefinitionSectionProps) => { +export const RuleDefinitionSection = ({ + rule, + isInteractive = false, + dataTestSubj, +}: RuleDefinitionSectionProps) => { const { savedQuery } = useGetSavedQuery({ savedQueryId: rule.type === 'saved_query' ? rule.saved_id : '', ruleType: rule.type, }); - const definitionSectionListItems = prepareDefinitionSectionListItems(rule, savedQuery); + const definitionSectionListItems = prepareDefinitionSectionListItems( + rule, + isInteractive, + savedQuery + ); return ( -
    +
    ); diff --git a/x-pack/plugins/security_solution/public/detection_engine/rule_management/components/rule_details/rule_overview_tab.tsx b/x-pack/plugins/security_solution/public/detection_engine/rule_management/components/rule_details/rule_overview_tab.tsx index aa9b42abe6ba7..3d4501bd1f797 100644 --- a/x-pack/plugins/security_solution/public/detection_engine/rule_management/components/rule_details/rule_overview_tab.tsx +++ b/x-pack/plugins/security_solution/public/detection_engine/rule_management/components/rule_details/rule_overview_tab.tsx @@ -15,7 +15,7 @@ import { useGeneratedHtmlId, } from '@elastic/eui'; import type { RuleResponse } from '../../../../../common/api/detection_engine/model/rule_schema/rule_schemas'; -import { RuleAboutSection } from './rule_about_section'; +import { RuleAboutSection, Description } from './rule_about_section'; import { RuleDefinitionSection } from './rule_definition_section'; import { RuleScheduleSection } from './rule_schedule_section'; import { RuleSetupGuideSection } from './rule_setup_guide_section'; @@ -103,7 +103,8 @@ export const RuleOverviewTab = ({ isOpen={expandedOverviewSections.about} toggle={toggleOverviewSection.about} > - + {rule.description && } + ( ); export interface RuleScheduleSectionProps { - rule: RuleResponse; + rule: Partial; } export const RuleScheduleSection = ({ rule }: RuleScheduleSectionProps) => { + if (!rule.interval || !rule.from) { + return null; + } + const ruleSectionListItems = []; ruleSectionListItems.push( @@ -46,7 +50,7 @@ export const RuleScheduleSection = ({ rule }: RuleScheduleSectionProps) => { ); return ( -
    +
    { - let mockRule: AboutStepRule; + let stepDataMock: AboutStepRule; beforeEach(() => { - mockRule = mockAboutStepRule(); + stepDataMock = mockAboutStepRule(); }); test('it renders loading component when "loading" is true', () => { @@ -35,11 +38,12 @@ describe('StepAboutRuleToggleDetails', () => { ); @@ -49,7 +53,12 @@ describe('StepAboutRuleToggleDetails', () => { test('it does not render details if stepDataDetails is null', () => { const wrapper = shallow( - + ); expect(wrapper.find(StepAboutRule).exists()).toBeFalsy(); @@ -65,6 +74,7 @@ describe('StepAboutRuleToggleDetails', () => { setup: '', }} stepData={null} + rule={mockRule('mocked-rule-id')} /> ); @@ -74,7 +84,7 @@ describe('StepAboutRuleToggleDetails', () => { describe('note value is empty string', () => { test('it does not render toggle buttons', () => { const mockAboutStepWithoutNote = { - ...mockRule, + ...stepDataMock, note: '', }; const wrapper = shallow( @@ -82,10 +92,11 @@ describe('StepAboutRuleToggleDetails', () => { loading={false} stepDataDetails={{ note: '', - description: mockRule.description, + description: stepDataMock.description, setup: '', }} stepData={mockAboutStepWithoutNote} + rule={mockRule('mocked-rule-id')} /> ); @@ -103,11 +114,12 @@ describe('StepAboutRuleToggleDetails', () => { ); @@ -123,11 +135,12 @@ describe('StepAboutRuleToggleDetails', () => { ); @@ -151,11 +164,12 @@ describe('StepAboutRuleToggleDetails', () => { ); @@ -180,11 +194,12 @@ describe('StepAboutRuleToggleDetails', () => { ); @@ -203,11 +218,12 @@ describe('StepAboutRuleToggleDetails', () => { ); @@ -224,11 +240,12 @@ describe('StepAboutRuleToggleDetails', () => { ); @@ -254,11 +271,12 @@ describe('StepAboutRuleToggleDetails', () => { ); diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/step_about_rule_details/index.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/step_about_rule_details/index.tsx index 66ad2cfcf64fe..c0d1db9f837fe 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/step_about_rule_details/index.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/rules/step_about_rule_details/index.tsx @@ -21,14 +21,16 @@ import type { PropsWithChildren } from 'react'; import React, { memo, useCallback, useMemo, useState } from 'react'; import { css } from '@emotion/css'; +import type { Rule } from '../../../../detection_engine/rule_management/logic/types'; +import { RuleAboutSection } from '../../../../detection_engine/rule_management/components/rule_details/rule_about_section'; import { HeaderSection } from '../../../../common/components/header_section'; import { MarkdownRenderer } from '../../../../common/components/markdown_editor'; import type { AboutStepRule, AboutStepRuleDetails, } from '../../../pages/detection_engine/rules/types'; +import { castRuleAsRuleResponse } from '../../../../detection_engine/rule_details_ui/pages/rule_details/cast_rule_as_rule_response'; import * as i18n from './translations'; -import { StepAboutRuleReadOnly } from '../step_about_rule'; import { fullHeight } from './styles'; const detailsOption: EuiButtonGroupOptionProps = { @@ -51,12 +53,14 @@ interface StepPanelProps { stepData: AboutStepRule | null; stepDataDetails: AboutStepRuleDetails | null; loading: boolean; + rule: Rule; } const StepAboutRuleToggleDetailsComponent: React.FC = ({ stepData, stepDataDetails, loading, + rule, }) => { const [selectedToggleOption, setToggleOption] = useState('details'); const [aboutPanelHeight, setAboutPanelHeight] = useState(0); @@ -124,10 +128,10 @@ const StepAboutRuleToggleDetailsComponent: React.FC = ({ -
    )} 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/discover_tab_content/customizations/use_search_bar_customizations.tsx index 66ef304dc7b7f..c748357bb24b8 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/discover_tab_content/customizations/use_search_bar_customizations.tsx @@ -6,15 +6,18 @@ */ 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, }); }; 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/discover_tab_content/customizations/use_set_discover_customizations.ts index 3ae7f5c86ad00..2adf30691294e 100644 --- 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/discover_tab_content/customizations/use_set_discover_customizations.ts @@ -11,7 +11,6 @@ import { useSearchBarCustomizations } from './use_search_bar_customizations'; export const useSetDiscoverCustomizationCallbacks = (): CustomizationCallback[] => { const searchBarCustomizationCallback = useSearchBarCustomizations(); - const histogramCustomizationCallback = useHistogramCustomization(); return [searchBarCustomizationCallback, histogramCustomizationCallback]; 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/discover_tab_content/index.tsx index abce4c9efa9a4..97737a8ebfc3b 100644 --- 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/discover_tab_content/index.tsx @@ -72,6 +72,7 @@ export const DiscoverTabContent: FC = ({ timelineId }) updateSavedSearch, restoreDiscoverAppStateFromSavedSearch, resetDiscoverAppState, + getDefaultDiscoverAppState, } = useDiscoverInTimelineContext(); const { @@ -126,9 +127,10 @@ export const DiscoverTabContent: FC = ({ timelineId }) if (!savedSearchById) { // nothing to restore if savedSearchById is null if (status === 'draft') { - resetDiscoverAppState(); + resetDiscoverAppState().then(() => { + setSavedSearchLoaded(true); + }); } - setSavedSearchLoaded(true); return; } restoreDiscoverAppStateFromSavedSearch(savedSearchById); @@ -227,15 +229,13 @@ export const DiscoverTabContent: FC = ({ timelineId }) savedSearchAppState = getAppStateFromSavedSearch(localSavedSearch); } - const finalAppState = savedSearchAppState?.appState ?? discoverAppState; + const defaultDiscoverAppState = await getDefaultDiscoverAppState(); - if (finalAppState) { - stateContainer.appState.set(finalAppState); - await stateContainer.appState.replaceUrlState(finalAppState); - } else { - // set initial dataView Id - if (dataView) stateContainer.actions.setDataView(dataView); - } + const finalAppState = + savedSearchAppState?.appState ?? discoverAppState ?? defaultDiscoverAppState; + + stateContainer.appState.set(finalAppState); + await stateContainer.appState.replaceUrlState(finalAppState); const unsubscribeState = stateContainer.appState.state$.subscribe({ next: setDiscoverAppState, @@ -272,12 +272,12 @@ export const DiscoverTabContent: FC = ({ timelineId }) setDiscoverSavedSearchState, setDiscoverInternalState, setDiscoverAppState, - dataView, setDiscoverStateContainer, getAppStateFromSavedSearch, discoverDataService.query.timefilter.timefilter, savedSearchId, savedSearchService, + getDefaultDiscoverAppState, ] ); 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 b7b4e92afcb6f..0f6a3fad1eb66 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 @@ -5,7 +5,7 @@ * 2.0. */ -import { EuiBadge, EuiSkeletonText, EuiTabs, EuiTab } from '@elastic/eui'; +import { EuiBadge, EuiSkeletonText, EuiTabs, EuiTab, EuiBetaBadge } from '@elastic/eui'; import { css } from '@emotion/react'; import { Assistant } from '@kbn/elastic-assistant'; import { isEmpty } from 'lodash/fp'; @@ -14,6 +14,7 @@ import React, { lazy, memo, Suspense, useCallback, useEffect, useMemo, useState import { useDispatch } from 'react-redux'; import styled from 'styled-components'; +import { FormattedMessage } from '@kbn/i18n-react'; import { useAssistantTelemetry } from '../../../../assistant/use_assistant_telemetry'; import { useIsExperimentalFeatureEnabled } from '../../../../common/hooks/use_experimental_features'; import { useConversationStore } from '../../../../assistant/use_conversation_store'; @@ -44,6 +45,7 @@ import * as i18n from './translations'; import { useLicense } from '../../../../common/hooks/use_license'; import { TIMELINE_CONVERSATION_TITLE } from '../../../../assistant/content/conversations/translations'; import { initializeTimelineSettings } from '../../../store/timeline/actions'; +import { DISCOVER_ESQL_IN_TIMELINE_TECHNICAL_PREVIEW } from './translations'; const HideShowContainer = styled.div.attrs<{ $isVisible: boolean; isOverflowYScroll: boolean }>( ({ $isVisible = false, isOverflowYScroll = false }) => ({ @@ -248,8 +250,18 @@ const CountBadge = styled(EuiBadge)` margin-left: ${({ theme }) => theme.eui.euiSizeS}; `; +const StyledEuiBetaBadge = styled(EuiBetaBadge)` + vertical-align: middle; + margin-left: ${({ theme }) => theme.eui.euiSizeS}; + + &:hover { + cursor: pointer; + } +`; + const StyledEuiTab = styled(EuiTab)` .euiTab__content { + align-items: center; display: flex; flex-direction: row; white-space: pre; @@ -388,6 +400,28 @@ const TabsContentComponent: React.FC = ({ {i18n.QUERY_TAB} {showTimeline && } + {isDiscoverInTimelineEnabled && ( + + {i18n.DISCOVER_ESQL_IN_TIMELINE_TAB} + + } + /> + + )} {timelineType === TimelineType.default && ( = ({ {i18n.SECURITY_ASSISTANT} )} - {isDiscoverInTimelineEnabled && ( - - {i18n.DISCOVER_IN_TIMELINE_TAB} - - )} )} diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/tabs_content/translations.ts b/x-pack/plugins/security_solution/public/timelines/components/timeline/tabs_content/translations.ts index e900af321c030..91bdd08d34af3 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/tabs_content/translations.ts +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/tabs_content/translations.ts @@ -46,10 +46,17 @@ export const SECURITY_ASSISTANT = i18n.translate( } ); -export const DISCOVER_IN_TIMELINE_TAB = i18n.translate( - 'xpack.securitySolution.timeline.tabs.discoverInTimeline', +export const DISCOVER_ESQL_IN_TIMELINE_TAB = i18n.translate( + 'xpack.securitySolution.timeline.tabs.discoverEsqlInTimeline', { - defaultMessage: 'Discover', + defaultMessage: 'ES|QL', + } +); + +export const DISCOVER_ESQL_IN_TIMELINE_TECHNICAL_PREVIEW = i18n.translate( + 'xpack.securitySolution.timeline.tabs.discoverEsqlInTimeline.technicalPreviewLabel', + { + defaultMessage: 'Technical Preview', } ); diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/api/detection_engine_health/get_cluster_health/get_cluster_health_route.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/api/detection_engine_health/get_cluster_health/get_cluster_health_route.ts index 6d9faeaa95c7f..719f46788a524 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/api/detection_engine_health/get_cluster_health/get_cluster_health_route.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/api/detection_engine_health/get_cluster_health/get_cluster_health_route.ts @@ -26,7 +26,7 @@ import { validateGetClusterHealthRequest } from './get_cluster_health_request'; /** * Get health overview of the whole cluster. Scope: all detection rules in all Kibana spaces. * Returns: - * - health stats at the moment of the API call + * - health state at the moment of the API call * - health stats over a specified period of time ("health interval") * - health stats history within the same interval in the form of a histogram * (the same stats are calculated over each of the discreet sub-intervals of the whole interval) @@ -111,8 +111,6 @@ const handleClusterHealthRequest = async (args: HandleClusterHealthRequestArgs) const clusterHealth = await healthClient.calculateClusterHealth(clusterHealthParameters); const responseBody: GetClusterHealthResponse = { - // TODO: https://github.com/elastic/kibana/issues/125642 Implement the endpoint and remove the `message` property - message: 'Not implemented', timings: calculateHealthTimings(params.requestReceivedAt), parameters: clusterHealthParameters, health: { diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/api/detection_engine_health/get_rule_health/get_rule_health_route.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/api/detection_engine_health/get_rule_health/get_rule_health_route.ts index 310514d17f968..a69f7961b19f8 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/api/detection_engine_health/get_rule_health/get_rule_health_route.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/api/detection_engine_health/get_rule_health/get_rule_health_route.ts @@ -23,7 +23,7 @@ import { validateGetRuleHealthRequest } from './get_rule_health_request'; /** * Get health overview of a rule. Scope: a given detection rule in the current Kibana space. * Returns: - * - health stats at the moment of the API call (rule and its execution summary) + * - health state at the moment of the API call (rule and its execution summary) * - health stats over a specified period of time ("health interval") * - health stats history within the same interval in the form of a histogram * (the same stats are calculated over each of the discreet sub-intervals of the whole interval) diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/api/detection_engine_health/get_space_health/get_space_health_route.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/api/detection_engine_health/get_space_health/get_space_health_route.ts index d76a2212f29c0..96ced4e34151d 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/api/detection_engine_health/get_space_health/get_space_health_route.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/api/detection_engine_health/get_space_health/get_space_health_route.ts @@ -26,7 +26,7 @@ import { validateGetSpaceHealthRequest } from './get_space_health_request'; /** * Get health overview of the current Kibana space. Scope: all detection rules in the space. * Returns: - * - health stats at the moment of the API call + * - health state at the moment of the API call * - health stats over a specified period of time ("health interval") * - health stats history within the same interval in the form of a histogram * (the same stats are calculated over each of the discreet sub-intervals of the whole interval) diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/logic/detection_engine_health/detection_engine_health_client.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/logic/detection_engine_health/detection_engine_health_client.ts index af7066dfa780c..71eb37b7286c6 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/logic/detection_engine_health/detection_engine_health_client.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/logic/detection_engine_health/detection_engine_health_client.ts @@ -20,16 +20,19 @@ import type { import type { IEventLogHealthClient } from './event_log/event_log_health_client'; import type { IRuleObjectsHealthClient } from './rule_objects/rule_objects_health_client'; +import type { IRuleSpacesClient } from './rule_spaces/rule_spaces_client'; import type { IDetectionEngineHealthClient } from './detection_engine_health_client_interface'; import { installAssetsForRuleMonitoring } from './assets/install_assets_for_rule_monitoring'; export const createDetectionEngineHealthClient = ( + ruleSpacesClient: IRuleSpacesClient, ruleObjectsHealthClient: IRuleObjectsHealthClient, eventLogHealthClient: IEventLogHealthClient, savedObjectsImporter: ISavedObjectsImporter, - logger: Logger, - currentSpaceId: string + logger: Logger ): IDetectionEngineHealthClient => { + const currentSpaceId = ruleSpacesClient.getCurrentSpaceId(); + return { calculateRuleHealth: (args: RuleHealthParameters): Promise => { return withSecuritySpan('IDetectionEngineHealthClient.calculateRuleHealth', async () => { @@ -41,7 +44,7 @@ export const createDetectionEngineHealthClient = ( const statsBasedOnEventLog = await eventLogHealthClient.calculateRuleHealth(args); return { - stats_at_the_moment: statsBasedOnRuleObjects.stats_at_the_moment, + state_at_the_moment: statsBasedOnRuleObjects.state_at_the_moment, stats_over_interval: statsBasedOnEventLog.stats_over_interval, history_over_interval: statsBasedOnEventLog.history_over_interval, debug: { @@ -73,7 +76,7 @@ export const createDetectionEngineHealthClient = ( ]); return { - stats_at_the_moment: statsBasedOnRuleObjects.stats_at_the_moment, + state_at_the_moment: statsBasedOnRuleObjects.state_at_the_moment, stats_over_interval: statsBasedOnEventLog.stats_over_interval, history_over_interval: statsBasedOnEventLog.history_over_interval, debug: { @@ -104,7 +107,7 @@ export const createDetectionEngineHealthClient = ( ]); return { - stats_at_the_moment: statsBasedOnRuleObjects.stats_at_the_moment, + state_at_the_moment: statsBasedOnRuleObjects.state_at_the_moment, stats_over_interval: statsBasedOnEventLog.stats_over_interval, history_over_interval: statsBasedOnEventLog.history_over_interval, debug: { diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/logic/detection_engine_health/event_log/aggregations/health_stats_for_rule.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/logic/detection_engine_health/event_log/aggregations/health_stats_for_rule.ts index 7704bdd3f2441..72d93f0d67777 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/logic/detection_engine_health/event_log/aggregations/health_stats_for_rule.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/logic/detection_engine_health/event_log/aggregations/health_stats_for_rule.ts @@ -11,8 +11,8 @@ import type { AggregateEventsBySavedObjectResult } from '@kbn/event-log-plugin/s import type { HealthIntervalGranularity, RuleHealthSnapshot, - RuleHealthStatsOverInterval, - StatsHistory, + RuleHealthStats, + HealthHistory, } from '../../../../../../../../common/api/detection_engine/rule_monitoring'; import type { RawData } from '../../../utils/normalization'; @@ -57,7 +57,7 @@ const getRuleExecutionStatsHistoryAggregation = ( export const normalizeRuleHealthAggregationResult = ( result: AggregateEventsBySavedObjectResult, requestAggs: Record -): Omit => { +): Omit => { const aggregations = result.aggregations ?? {}; return { stats_over_interval: normalizeRuleExecutionStatsAggregationResult( @@ -76,7 +76,7 @@ export const normalizeRuleHealthAggregationResult = ( const normalizeHistoryOverInterval = ( aggregations: Record -): StatsHistory => { +): HealthHistory => { const statsHistory = aggregations.statsHistory || {}; return { diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/logic/detection_engine_health/event_log/aggregations/rule_execution_stats.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/logic/detection_engine_health/event_log/aggregations/rule_execution_stats.ts index 7c3b595be1565..4151355419586 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/logic/detection_engine_health/event_log/aggregations/rule_execution_stats.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/logic/detection_engine_health/event_log/aggregations/rule_execution_stats.ts @@ -13,7 +13,7 @@ import type { NumberOfDetectedGaps, NumberOfExecutions, NumberOfLoggedMessages, - RuleExecutionStats, + HealthOverviewStats, TopMessages, RuleExecutionStatus, } from '../../../../../../../../common/api/detection_engine/rule_monitoring'; @@ -26,23 +26,33 @@ import { import { DEFAULT_PERCENTILES } from '../../../utils/es_aggregations'; import type { RawData } from '../../../utils/normalization'; import * as f from '../../../event_log/event_log_fields'; +import { + ALERTING_PROVIDER, + RULE_EXECUTION_LOG_PROVIDER, +} from '../../../event_log/event_log_constants'; export type RuleExecutionStatsAggregationLevel = 'whole-interval' | 'histogram'; export const getRuleExecutionStatsAggregation = ( - aggregationContext: RuleExecutionStatsAggregationLevel + aggregationLevel: RuleExecutionStatsAggregationLevel ): Record => { return { - totalExecutions: { - cardinality: { - field: f.RULE_EXECUTION_UUID, - }, - }, executeEvents: { filter: { - term: { [f.EVENT_ACTION]: 'execute' }, + bool: { + filter: [ + { term: { [f.EVENT_PROVIDER]: ALERTING_PROVIDER } }, + { term: { [f.EVENT_ACTION]: 'execute' } }, + { term: { [f.EVENT_CATEGORY]: 'siem' } }, + ], + }, }, aggs: { + totalExecutions: { + cardinality: { + field: f.RULE_EXECUTION_UUID, + }, + }, executionDurationMs: { percentiles: { field: f.RULE_EXECUTION_TOTAL_DURATION_MS, @@ -63,11 +73,8 @@ export const getRuleExecutionStatsAggregation = ( filter: { bool: { filter: [ - { - term: { - [f.EVENT_ACTION]: RuleExecutionEventType['status-change'], - }, - }, + { term: { [f.EVENT_PROVIDER]: RULE_EXECUTION_LOG_PROVIDER } }, + { term: { [f.EVENT_ACTION]: RuleExecutionEventType['status-change'] } }, ], must_not: [ { @@ -91,7 +98,12 @@ export const getRuleExecutionStatsAggregation = ( }, executionMetricsEvents: { filter: { - term: { [f.EVENT_ACTION]: RuleExecutionEventType['execution-metrics'] }, + bool: { + filter: [ + { term: { [f.EVENT_PROVIDER]: RULE_EXECUTION_LOG_PROVIDER } }, + { term: { [f.EVENT_ACTION]: RuleExecutionEventType['execution-metrics'] } }, + ], + }, }, aggs: { gaps: { @@ -126,10 +138,17 @@ export const getRuleExecutionStatsAggregation = ( }, messageContainingEvents: { filter: { - terms: { - [f.EVENT_ACTION]: [ - RuleExecutionEventType['status-change'], - RuleExecutionEventType.message, + bool: { + filter: [ + { term: { [f.EVENT_PROVIDER]: RULE_EXECUTION_LOG_PROVIDER } }, + { + terms: { + [f.EVENT_ACTION]: [ + RuleExecutionEventType['status-change'], + RuleExecutionEventType.message, + ], + }, + }, ], }, }, @@ -139,7 +158,7 @@ export const getRuleExecutionStatsAggregation = ( field: f.LOG_LEVEL, }, }, - ...(aggregationContext === 'whole-interval' + ...(aggregationLevel === 'whole-interval' ? { errors: { filter: { @@ -179,13 +198,13 @@ export const getRuleExecutionStatsAggregation = ( export const normalizeRuleExecutionStatsAggregationResult = ( aggregations: Record, aggregationLevel: RuleExecutionStatsAggregationLevel -): RuleExecutionStats => { - const totalExecutions = aggregations.totalExecutions || {}; +): HealthOverviewStats => { const executeEvents = aggregations.executeEvents || {}; const statusChangeEvents = aggregations.statusChangeEvents || {}; const executionMetricsEvents = aggregations.executionMetricsEvents || {}; const messageContainingEvents = aggregations.messageContainingEvents || {}; + const totalExecutions = executeEvents.totalExecutions || {}; const executionDurationMs = executeEvents.executionDurationMs || {}; const scheduleDelayNs = executeEvents.scheduleDelayNs || {}; const executionsByStatus = statusChangeEvents.executionsByStatus || {}; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/logic/detection_engine_health/event_log/event_log_health_client.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/logic/detection_engine_health/event_log/event_log_health_client.ts index f4a164629a618..a5138885b69f5 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/logic/detection_engine_health/event_log/event_log_health_client.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/logic/detection_engine_health/event_log/event_log_health_client.ts @@ -5,11 +5,15 @@ * 2.0. */ +import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; +import type { Logger } from '@kbn/core/server'; +import { SavedObjectsUtils } from '@kbn/core/server'; import type { KueryNode } from '@kbn/es-query'; import type { IEventLogClient } from '@kbn/event-log-plugin/server'; import type { ClusterHealthParameters, ClusterHealthSnapshot, + HealthInterval, RuleHealthParameters, RuleHealthSnapshot, SpaceHealthParameters, @@ -23,6 +27,7 @@ import { RULE_SAVED_OBJECT_TYPE, } from '../../event_log/event_log_constants'; import { kqlOr } from '../../utils/kql'; +import type { IRuleSpacesClient } from '../rule_spaces/rule_spaces_client'; import { getRuleHealthAggregation, normalizeRuleHealthAggregationResult, @@ -32,78 +37,110 @@ import { * Client for calculating health stats based on events in .kibana-event-log-* index. */ export interface IEventLogHealthClient { + /** + * Returns health stats for a given rule in the current Kibana space. + * Calculates the stats based on events in .kibana-event-log-* index. + */ calculateRuleHealth(args: RuleHealthParameters): Promise; + + /** + * Returns health stats for all rules in the current Kibana space. + * Calculates the stats based on events in .kibana-event-log-* index. + */ calculateSpaceHealth(args: SpaceHealthParameters): Promise; + + /** + * Returns health stats for all rules in all existing Kibana spaces (the whole cluster). + * Calculates the stats based on events in .kibana-event-log-* index. + */ calculateClusterHealth(args: ClusterHealthParameters): Promise; } -type RuleHealth = Omit; -type SpaceHealth = Omit; -type ClusterHealth = Omit; +type RuleHealth = Omit; +type SpaceHealth = Omit; +type ClusterHealth = Omit; -export const createEventLogHealthClient = (eventLog: IEventLogClient): IEventLogHealthClient => { - return { - async calculateRuleHealth(args: RuleHealthParameters): Promise { - const { rule_id: ruleId, interval } = args; - const soType = RULE_SAVED_OBJECT_TYPE; - const soIds = [ruleId]; - const eventProviders = [RULE_EXECUTION_LOG_PROVIDER, ALERTING_PROVIDER]; +export const createEventLogHealthClient = ( + eventLog: IEventLogClient, + ruleSpacesClient: IRuleSpacesClient, + logger: Logger +): IEventLogHealthClient => { + const EVENT_PROVIDERS = [RULE_EXECUTION_LOG_PROVIDER, ALERTING_PROVIDER]; + const EVENT_PROVIDERS_FILTER = `${f.EVENT_PROVIDER}: (${kqlOr(EVENT_PROVIDERS)})`; - const kqlFilter = `${f.EVENT_PROVIDER}:${kqlOr(eventProviders)}`; - const aggs = getRuleHealthAggregation(interval.granularity); + async function aggregateEventsForRules( + ruleIds: string[], + interval: HealthInterval, + aggs: Record + ) { + const soType = RULE_SAVED_OBJECT_TYPE; + const soIds = ruleIds; - const result = await eventLog.aggregateEventsBySavedObjectIds(soType, soIds, { + const result = await eventLog.aggregateEventsBySavedObjectIds(soType, soIds, { + start: interval.from, + end: interval.to, + filter: EVENT_PROVIDERS_FILTER, + aggs, + }); + + return result; + } + + async function aggregateEventsForSpaces( + spaceIds: string[], + interval: HealthInterval, + aggs: Record + ) { + const soType = RULE_SAVED_OBJECT_TYPE; + const authFilter = {} as KueryNode; + + // The `aggregateEventsWithAuthFilter` method accepts "namespace ids" instead of "space ids". + // If you have two Kibana spaces with ids ['default', 'space-x'], + // it will only work properly if you pass [undefined, 'space-x']. + const namespaces = spaceIds.map((spaceId) => SavedObjectsUtils.namespaceStringToId(spaceId)); + + const result = await eventLog.aggregateEventsWithAuthFilter( + soType, + authFilter, + { start: interval.from, end: interval.to, - filter: kqlFilter, + filter: EVENT_PROVIDERS_FILTER, aggs, - }); + }, + namespaces + ); + + return result; + } + + return { + async calculateRuleHealth(args: RuleHealthParameters): Promise { + const { rule_id: ruleId, interval } = args; + const aggs = getRuleHealthAggregation(interval.granularity); + const result = await aggregateEventsForRules([ruleId], interval, aggs); return normalizeRuleHealthAggregationResult(result, aggs); }, async calculateSpaceHealth(args: SpaceHealthParameters): Promise { const { interval } = args; - const soType = RULE_SAVED_OBJECT_TYPE; - const authFilter = {} as KueryNode; - const namespaces = undefined; // means current Kibana space - const eventProviders = [RULE_EXECUTION_LOG_PROVIDER, ALERTING_PROVIDER]; - - const kqlFilter = `${f.EVENT_PROVIDER}:${kqlOr(eventProviders)}`; - const aggs = getRuleHealthAggregation(interval.granularity); - // TODO: https://github.com/elastic/kibana/issues/125642 Check with ResponseOps that this is correct usage of this method - const result = await eventLog.aggregateEventsWithAuthFilter( - soType, - authFilter, - { - start: interval.from, - end: interval.to, - filter: kqlFilter, - aggs, - }, - namespaces - ); + const spaceIds = [ruleSpacesClient.getCurrentSpaceId()]; + const aggs = getRuleHealthAggregation(interval.granularity); + const result = await aggregateEventsForSpaces(spaceIds, interval, aggs); return normalizeRuleHealthAggregationResult(result, aggs); }, async calculateClusterHealth(args: ClusterHealthParameters): Promise { - // TODO: https://github.com/elastic/kibana/issues/125642 Implement - return { - stats_over_interval: { - message: 'Not implemented', - }, - history_over_interval: { - buckets: [], - }, - debug: { - eventLog: { - request: {}, - response: {}, - }, - }, - }; + const { interval } = args; + + const spaceIds = await ruleSpacesClient.getAllSpaceIds(); + + const aggs = getRuleHealthAggregation(interval.granularity); + const result = await aggregateEventsForSpaces(spaceIds, interval, aggs); + return normalizeRuleHealthAggregationResult(result, aggs); }, }; }; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/logic/detection_engine_health/rule_objects/aggregations/health_stats_for_cluster.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/logic/detection_engine_health/rule_objects/aggregations/health_stats_for_cluster.ts new file mode 100644 index 0000000000000..f8596ddb7711c --- /dev/null +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/logic/detection_engine_health/rule_objects/aggregations/health_stats_for_cluster.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 * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; +import type { ClusterHealthState } from '../../../../../../../../common/api/detection_engine/rule_monitoring'; +import { getRuleStatsAggregation, normalizeRuleStatsAggregation } from './rule_stats'; + +export const getClusterHealthAggregation = (): Record< + string, + estypes.AggregationsAggregationContainer +> => { + return getRuleStatsAggregation(); +}; + +export const normalizeClusterHealthAggregationResult = ( + aggregations: Record | undefined +): ClusterHealthState => { + return normalizeRuleStatsAggregation(aggregations ?? {}); +}; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/logic/detection_engine_health/rule_objects/aggregations/health_stats_for_space.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/logic/detection_engine_health/rule_objects/aggregations/health_stats_for_space.ts index aba4e6153ad34..1654459e2ea85 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/logic/detection_engine_health/rule_objects/aggregations/health_stats_for_space.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/logic/detection_engine_health/rule_objects/aggregations/health_stats_for_space.ts @@ -6,7 +6,7 @@ */ import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; -import type { SpaceHealthStatsAtTheMoment } from '../../../../../../../../common/api/detection_engine/rule_monitoring'; +import type { SpaceHealthState } from '../../../../../../../../common/api/detection_engine/rule_monitoring'; import { getRuleStatsAggregation, normalizeRuleStatsAggregation } from './rule_stats'; export const getSpaceHealthAggregation = (): Record< @@ -18,6 +18,6 @@ export const getSpaceHealthAggregation = (): Record< export const normalizeSpaceHealthAggregationResult = ( aggregations: Record -): SpaceHealthStatsAtTheMoment => { +): SpaceHealthState => { return normalizeRuleStatsAggregation(aggregations); }; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/logic/detection_engine_health/rule_objects/aggregations/rule_stats.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/logic/detection_engine_health/rule_objects/aggregations/rule_stats.ts index 35b75fdbd4e7e..1dc2230909bc3 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/logic/detection_engine_health/rule_objects/aggregations/rule_stats.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/logic/detection_engine_health/rule_objects/aggregations/rule_stats.ts @@ -7,7 +7,7 @@ import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import type { - RuleStats, + HealthOverviewState, TotalEnabledDisabled, } from '../../../../../../../../common/api/detection_engine/rule_monitoring'; import type { RawData } from '../../../utils/normalization'; @@ -51,7 +51,9 @@ export const getRuleStatsAggregation = (): Record< }; }; -export const normalizeRuleStatsAggregation = (aggregations: Record): RuleStats => { +export const normalizeRuleStatsAggregation = ( + aggregations: Record +): HealthOverviewState => { const rulesByEnabled = aggregations.rulesByEnabled || {}; const rulesByOrigin = aggregations.rulesByOrigin || {}; const rulesByType = aggregations.rulesByType || {}; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/logic/detection_engine_health/rule_objects/filters.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/logic/detection_engine_health/rule_objects/filters.ts new file mode 100644 index 0000000000000..7acb6e0c5f4c7 --- /dev/null +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/logic/detection_engine_health/rule_objects/filters.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 DETECTION_RULES_FILTER = 'alert.attributes.consumer: "siem"'; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/logic/detection_engine_health/rule_objects/rule_objects_health_client.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/logic/detection_engine_health/rule_objects/rule_objects_health_client.ts index 0ba0ccdeaf529..a3d7cb2ed4061 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/logic/detection_engine_health/rule_objects/rule_objects_health_client.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/logic/detection_engine_health/rule_objects/rule_objects_health_client.ts @@ -6,6 +6,7 @@ */ import type { RulesClientApi } from '@kbn/alerting-plugin/server/types'; +import type { SavedObjectsClientContract, Logger } from '@kbn/core/server'; import type { ClusterHealthParameters, ClusterHealthSnapshot, @@ -14,6 +15,12 @@ import type { SpaceHealthParameters, SpaceHealthSnapshot, } from '../../../../../../../common/api/detection_engine/rule_monitoring'; +import { RULE_SAVED_OBJECT_TYPE } from '../../event_log/event_log_constants'; +import { DETECTION_RULES_FILTER } from './filters'; +import { + getClusterHealthAggregation, + normalizeClusterHealthAggregationResult, +} from './aggregations/health_stats_for_cluster'; import { getSpaceHealthAggregation, normalizeSpaceHealthAggregationResult, @@ -21,36 +28,57 @@ import { import { fetchRuleById } from './fetch_rule_by_id'; /** - * Client for calculating health stats based on rule saved objects. + * Client for calculating health stats based on rule objects (saved objects of type "alert"). */ export interface IRuleObjectsHealthClient { + /** + * Returns health stats for a given rule in the current Kibana space. + * Calculates the stats based on rule objects. + */ calculateRuleHealth(args: RuleHealthParameters): Promise; + + /** + * Returns health stats for all rules in the current Kibana space. + * Calculates the stats based on rule objects. + */ calculateSpaceHealth(args: SpaceHealthParameters): Promise; + + /** + * Returns health stats for all rules in all existing Kibana spaces (the whole cluster). + * Calculates the stats based on rule objects. + */ calculateClusterHealth(args: ClusterHealthParameters): Promise; } -type RuleHealth = Pick; -type SpaceHealth = Pick; -type ClusterHealth = Pick; +type RuleHealth = Pick; +type SpaceHealth = Pick; +type ClusterHealth = Pick; export const createRuleObjectsHealthClient = ( - rulesClient: RulesClientApi + rulesClient: RulesClientApi, + internalSavedObjectsClient: SavedObjectsClientContract, + logger: Logger ): IRuleObjectsHealthClient => { return { async calculateRuleHealth(args: RuleHealthParameters): Promise { const rule = await fetchRuleById(rulesClient, args.rule_id); return { - stats_at_the_moment: { rule }, + state_at_the_moment: { rule }, debug: {}, }; }, async calculateSpaceHealth(args: SpaceHealthParameters): Promise { const aggs = getSpaceHealthAggregation(); - const aggregations = await rulesClient.aggregate({ aggs }); + const aggregations = await rulesClient.aggregate({ + options: { + filter: DETECTION_RULES_FILTER, // make sure to query only detection rules + }, + aggs, + }); return { - stats_at_the_moment: normalizeSpaceHealthAggregationResult(aggregations), + state_at_the_moment: normalizeSpaceHealthAggregationResult(aggregations), debug: { rulesClient: { request: { aggs }, @@ -61,35 +89,21 @@ export const createRuleObjectsHealthClient = ( }, async calculateClusterHealth(args: ClusterHealthParameters): Promise { - // TODO: https://github.com/elastic/kibana/issues/125642 Implement + const aggs = getClusterHealthAggregation(); + const response = await internalSavedObjectsClient.find>({ + type: RULE_SAVED_OBJECT_TYPE, // query rules + filter: DETECTION_RULES_FILTER, // make sure to query only detection rules + namespaces: ['*'], // aggregate rules in all Kibana spaces + perPage: 0, // don't return rules in the response, we only need aggs + aggs, + }); + return { - stats_at_the_moment: { - number_of_rules: { - all: { - total: 0, - enabled: 0, - disabled: 0, - }, - by_origin: { - prebuilt: { - total: 0, - enabled: 0, - disabled: 0, - }, - custom: { - total: 0, - enabled: 0, - disabled: 0, - }, - }, - by_type: {}, - by_outcome: {}, - }, - }, + state_at_the_moment: normalizeClusterHealthAggregationResult(response.aggregations), debug: { - rulesClient: { - request: {}, - response: {}, + savedObjectsClient: { + request: { aggs }, + response, }, }, }; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/logic/detection_engine_health/rule_spaces/aggregations/spaces.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/logic/detection_engine_health/rule_spaces/aggregations/spaces.ts new file mode 100644 index 0000000000000..bae44b17c2f92 --- /dev/null +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/logic/detection_engine_health/rule_spaces/aggregations/spaces.ts @@ -0,0 +1,48 @@ +/* + * 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 * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; +import type { RawData } from '../../../utils/normalization'; + +// The number of Kibana spaces is limited by the `maxSpaces` config setting of the spaces plugin. +// At the time of writing this comment, `maxSpaces` defaults to 1000. +// So in normal conditions there can't exist more than 1000 Kibana spaces. +// +// However, we set `MAX_KIBANA_SPACES` to a higher value to handle rare cases when there are more +// than 1000 spaces in a cluster. Hopefully it will cover 99.(9)% of use cases. +// +// In the rest of the edge cases, we will be missing some spaces, but the effect of this will be +// limited by the fact that the aggregation below will sort spaces desc by rules count in them. +// It will return spaces with most of the existing rules, and will not return spaces with fewer +// number of rules. Hopefully, we will miss only spaces with very few rules. This should be +// acceptable because the goal of getting all space ids in the rule monitoring subdomain is to be +// able to aggregate health metrics for those spaces. It's unlikely that spaces with very few rules +// will have a major impact on health and performance metrics of the whole cluster. +const MAX_KIBANA_SPACES = 10_000; + +export const getSpacesAggregation = (): Record< + string, + estypes.AggregationsAggregationContainer +> => { + return { + rulesBySpace: { + terms: { + field: 'alert.namespaces', + size: MAX_KIBANA_SPACES, + }, + }, + }; +}; + +export const normalizeSpacesAggregation = ( + aggregations: Record | undefined +): string[] => { + const rulesBySpace: RawData = aggregations?.rulesBySpace || {}; + const buckets: RawData[] = rulesBySpace.buckets || []; + const spaceIds = buckets.map((b: RawData) => String(b.key)); + return spaceIds; +}; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/logic/detection_engine_health/rule_spaces/rule_spaces_client.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/logic/detection_engine_health/rule_spaces/rule_spaces_client.ts new file mode 100644 index 0000000000000..726d30b518764 --- /dev/null +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/logic/detection_engine_health/rule_spaces/rule_spaces_client.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 type { SavedObjectsClientContract, Logger } from '@kbn/core/server'; +import { RULE_SAVED_OBJECT_TYPE } from '../../event_log/event_log_constants'; +import { DETECTION_RULES_FILTER } from '../rule_objects/filters'; +import { getSpacesAggregation, normalizeSpacesAggregation } from './aggregations/spaces'; + +/** + * Client for getting information about Kibana spaces in the context of detection rules. + */ +export interface IRuleSpacesClient { + /** + * Returns id of the current Kibana space (associated with the current HTTP request). + */ + getCurrentSpaceId(): string; + + /** + * Returns ids of all Kibana spaces where at least one detection rule exists. + */ + getAllSpaceIds(): Promise; +} + +export const createRuleSpacesClient = ( + currentSpaceId: string, + internalSavedObjectsClient: SavedObjectsClientContract, + logger: Logger +): IRuleSpacesClient => { + return { + getCurrentSpaceId(): string { + return currentSpaceId; + }, + + async getAllSpaceIds(): Promise { + const aggs = getSpacesAggregation(); + const response = await internalSavedObjectsClient.find>({ + type: RULE_SAVED_OBJECT_TYPE, // query rules + filter: DETECTION_RULES_FILTER, // make sure to query only detection rules + namespaces: ['*'], // aggregate rules in all Kibana spaces + perPage: 0, // don't return rules in the response, we only need aggs + aggs, + }); + + return normalizeSpacesAggregation(response.aggregations); + }, + }; +}; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/logic/event_log/event_log_fields.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/logic/event_log/event_log_fields.ts index 06e631dece638..8c47d669c2a2c 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/logic/event_log/event_log_fields.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/logic/event_log/event_log_fields.ts @@ -13,6 +13,7 @@ export const TIMESTAMP = `@timestamp` as const; export const MESSAGE = 'message' as const; export const EVENT_PROVIDER = 'event.provider' as const; export const EVENT_ACTION = 'event.action' as const; +export const EVENT_CATEGORY = 'event.category' as const; export const EVENT_SEQUENCE = 'event.sequence' as const; export const LOG_LEVEL = 'log.level' as const; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/logic/service.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/logic/service.ts index b2381d3dbcf26..c92fe66f9cebf 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/logic/service.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/logic/service.ts @@ -27,6 +27,7 @@ import { registerEventLogProvider } from './event_log/register_event_log_provide import { createDetectionEngineHealthClient } from './detection_engine_health/detection_engine_health_client'; import { createEventLogHealthClient } from './detection_engine_health/event_log/event_log_health_client'; import { createRuleObjectsHealthClient } from './detection_engine_health/rule_objects/rule_objects_health_client'; +import { createRuleSpacesClient } from './detection_engine_health/rule_spaces/rule_spaces_client'; import { createEventLogReader } from './rule_execution_log/event_log/event_log_reader'; import { createEventLogWriter } from './rule_execution_log/event_log/event_log_writer'; import { fetchRuleExecutionSettings } from './rule_execution_log/execution_settings/fetch_rule_execution_settings'; @@ -71,23 +72,43 @@ export const createRuleMonitoringService = ( const { rulesClient, eventLogClient, currentSpaceId } = params; const { savedObjects } = coreStart; - const ruleObjectsHealthClient = createRuleObjectsHealthClient(rulesClient); - const eventLogHealthClient = createEventLogHealthClient(eventLogClient); - - // Create an importer that can import saved objects on behalf of the internal Kibana user. - // This is important because we want to let users with access to Security Solution - // to be able to install our internal assets like rule monitoring dashboard without - // the need to configure the additional `Saved Objects Management: All` privilege. - const savedObjectsRepository = savedObjects.createInternalRepository(); - const savedObjectsClient = new SavedObjectsClient(savedObjectsRepository); - const savedObjectsImporter = savedObjects.createImporter(savedObjectsClient); + // Create a saved objects client and an importer that can work with saved objects on behalf + // of the internal Kibana user. This is important because we want to let users with access + // to only Security Solution to be able to: + // 1. Install our internal assets like rule monitoring dashboard without the need to + // configure the additional `Saved Objects Management: All` privilege. + // 2. Aggregate rules in all Kibana spaces to get a health overview of the whole cluster - + // without having explicit access to every existing space. + const internalSavedObjectsRepository = savedObjects.createInternalRepository([ + // Note: we include the "alert" hidden SO type here otherwise we would not be able to query it. + // If at some point it is not considered a hidden type this can be removed. + 'alert', + ]); + const internalSavedObjectsClient = new SavedObjectsClient(internalSavedObjectsRepository); + const internalSavedObjectsImporter = savedObjects.createImporter(internalSavedObjectsClient); + + const ruleSpacesClient = createRuleSpacesClient( + currentSpaceId, + internalSavedObjectsClient, + logger + ); + const ruleObjectsHealthClient = createRuleObjectsHealthClient( + rulesClient, + internalSavedObjectsClient, + logger + ); + const eventLogHealthClient = createEventLogHealthClient( + eventLogClient, + ruleSpacesClient, + logger + ); return createDetectionEngineHealthClient( + ruleSpacesClient, ruleObjectsHealthClient, eventLogHealthClient, - savedObjectsImporter, - logger, - currentSpaceId + internalSavedObjectsImporter, + logger ); }, diff --git a/x-pack/plugins/security_solution_serverless/server/task_manager/task_state.ts b/x-pack/plugins/security_solution_serverless/server/task_manager/task_state.ts new file mode 100644 index 0000000000000..dca03e31c5593 --- /dev/null +++ b/x-pack/plugins/security_solution_serverless/server/task_manager/task_state.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 { schema, type TypeOf } from '@kbn/config-schema'; + +/** + * WARNING: Do not modify the existing versioned schema(s) below, instead define a new version (ex: 2, 3, 4). + * This is required to support zero-downtime upgrades and rollbacks. See https://github.com/elastic/kibana/issues/155764. + * + * As you add a new schema version, don't forget to change latestTaskStateSchema variable to reference the latest schema. + * For example, changing stateSchemaByVersion[1].schema to stateSchemaByVersion[2].schema. + */ +export const stateSchemaByVersion = { + 1: { + // A task that was created < 8.10 will go through this "up" migration + // to ensure it matches the v1 schema. + up: (state: Record) => ({ + lastSuccessfulReport: state.lastSuccessfulReport || null, + }), + schema: schema.object({ + lastSuccessfulReport: schema.nullable(schema.string()), + }), + }, +}; + +const latestTaskStateSchema = stateSchemaByVersion[1].schema; +export type LatestTaskStateSchema = TypeOf; + +export const emptyState: LatestTaskStateSchema = { + lastSuccessfulReport: null, +}; diff --git a/x-pack/plugins/security_solution_serverless/server/task_manager/usage_reporting_task.test.ts b/x-pack/plugins/security_solution_serverless/server/task_manager/usage_reporting_task.test.ts index abd36d9ccb8da..915f07ea283c1 100644 --- a/x-pack/plugins/security_solution_serverless/server/task_manager/usage_reporting_task.test.ts +++ b/x-pack/plugins/security_solution_serverless/server/task_manager/usage_reporting_task.test.ts @@ -47,7 +47,7 @@ describe('SecurityUsageReportingTask', () => { let usageRecord: UsageRecord; function buildMockTaskInstance(overrides?: Partial): ConcreteTaskInstance { - const timestamp = new Date(new Date().setMinutes(-15)); + const timestamp = new Date(new Date().setMinutes(-15)).toISOString(); return assign( { id: `${TYPE}:${VERSION}`, @@ -173,7 +173,7 @@ describe('SecurityUsageReportingTask', () => { cloudSetup: taskArgs.cloudSetup, taskId: TASK_ID, config: taskArgs.config, - lastSuccessfulReport: task?.state.lastSuccessfulReport, + lastSuccessfulReport: new Date(task?.state.lastSuccessfulReport as string), }) ); }); @@ -203,7 +203,16 @@ describe('SecurityUsageReportingTask', () => { const taskInstance = buildMockTaskInstance(); const task = await runTask(taskInstance); const newLastSuccessfulReport = task?.state.lastSuccessfulReport; - expect(newLastSuccessfulReport).toEqual(expect.any(Date)); + expect(newLastSuccessfulReport).toEqual(expect.any(String)); + expect(newLastSuccessfulReport).not.toEqual(taskInstance.state.lastSuccessfulReport); + }); + + it('should set lastSuccessfulReport correctly if no usage records found', async () => { + meteringCallbackMock.mockResolvedValueOnce([]); + const taskInstance = buildMockTaskInstance({ state: { lastSuccessfulReport: null } }); + const task = await runTask(taskInstance); + const newLastSuccessfulReport = task?.state.lastSuccessfulReport; + expect(newLastSuccessfulReport).toEqual(expect.any(String)); expect(newLastSuccessfulReport).not.toEqual(taskInstance.state.lastSuccessfulReport); }); @@ -213,23 +222,31 @@ describe('SecurityUsageReportingTask', () => { }); it('should set lastSuccessfulReport correctly', async () => { - const lastSuccessfulReport = new Date(new Date().setMinutes(-15)); + const lastSuccessfulReport = new Date(new Date().setMinutes(-15)).toISOString(); const taskInstance = buildMockTaskInstance({ state: { lastSuccessfulReport } }); const task = await runTask(taskInstance); - const newLastSuccessfulReport = task?.state.lastSuccessfulReport as Date; + const newLastSuccessfulReport = task?.state.lastSuccessfulReport; expect(newLastSuccessfulReport).toEqual(taskInstance.state.lastSuccessfulReport); }); + it('should set lastSuccessfulReport correctly if previously null', async () => { + const taskInstance = buildMockTaskInstance({ state: { lastSuccessfulReport: null } }); + const task = await runTask(taskInstance); + const newLastSuccessfulReport = task?.state.lastSuccessfulReport; + + expect(newLastSuccessfulReport).toEqual(expect.any(String)); + }); + describe('and lookBackLimitMinutes is set', () => { it('should limit lastSuccessfulReport if past threshold', async () => { taskArgs = buildTaskArgs({ options: { lookBackLimitMinutes: 5 } }); mockTask = new SecurityUsageReportingTask(taskArgs); - const lastSuccessfulReport = new Date(new Date().setMinutes(-30)); + const lastSuccessfulReport = new Date(new Date().setMinutes(-30)).toISOString(); const taskInstance = buildMockTaskInstance({ state: { lastSuccessfulReport } }); const task = await runTask(taskInstance, 1); - const newLastSuccessfulReport = task?.state.lastSuccessfulReport as Date; + const newLastSuccessfulReport = new Date(task?.state.lastSuccessfulReport as string); // should be ~5 minutes so asserting between 4-6 minutes ago const sixMinutesAgo = new Date().setMinutes(-6); @@ -242,10 +259,10 @@ describe('SecurityUsageReportingTask', () => { taskArgs = buildTaskArgs({ options: { lookBackLimitMinutes: 30 } }); mockTask = new SecurityUsageReportingTask(taskArgs); - const lastSuccessfulReport = new Date(new Date().setMinutes(-15)); + const lastSuccessfulReport = new Date(new Date().setMinutes(-15)).toISOString(); const taskInstance = buildMockTaskInstance({ state: { lastSuccessfulReport } }); const task = await runTask(taskInstance, 1); - const newLastSuccessfulReport = task?.state.lastSuccessfulReport as Date; + const newLastSuccessfulReport = task?.state.lastSuccessfulReport; expect(newLastSuccessfulReport).toEqual(taskInstance.state.lastSuccessfulReport); }); diff --git a/x-pack/plugins/security_solution_serverless/server/task_manager/usage_reporting_task.ts b/x-pack/plugins/security_solution_serverless/server/task_manager/usage_reporting_task.ts index f2947bef9602f..2fa2f50f4b9d9 100644 --- a/x-pack/plugins/security_solution_serverless/server/task_manager/usage_reporting_task.ts +++ b/x-pack/plugins/security_solution_serverless/server/task_manager/usage_reporting_task.ts @@ -10,6 +10,7 @@ import type { CoreSetup, Logger } from '@kbn/core/server'; import type { ConcreteTaskInstance } from '@kbn/task-manager-plugin/server'; import type { CloudSetup } from '@kbn/cloud-plugin/server'; import { throwUnrecoverableError } from '@kbn/task-manager-plugin/server'; + import { usageReportingService } from '../common/services'; import type { MeteringCallback, @@ -19,6 +20,8 @@ import type { } from '../types'; import type { ServerlessSecurityConfig } from '../config'; +import { stateSchemaByVersion, emptyState } from './task_state'; + const SCOPE = ['serverlessSecurity']; const TIMEOUT = '1m'; @@ -58,6 +61,7 @@ export class SecurityUsageReportingTask { [taskType]: { title: taskTitle, timeout: TIMEOUT, + stateSchemaByVersion, createTaskRunner: ({ taskInstance }: { taskInstance: ConcreteTaskInstance }) => { return { run: async () => { @@ -94,9 +98,7 @@ export class SecurityUsageReportingTask { schedule: { interval, }, - state: { - lastSuccessfulReport: null, - }, + state: emptyState, params: { version: this.version }, }); } catch (e) { @@ -124,7 +126,8 @@ export class SecurityUsageReportingTask { const [{ elasticsearch }] = await core.getStartServices(); const esClient = elasticsearch.client.asInternalUser; - const lastSuccessfulReport = taskInstance.state.lastSuccessfulReport; + const lastSuccessfulReport = + taskInstance.state.lastSuccessfulReport && new Date(taskInstance.state.lastSuccessfulReport); let usageRecords: UsageRecord[] = []; // save usage record query time so we can use it to know where @@ -168,14 +171,13 @@ export class SecurityUsageReportingTask { } const state = { - lastSuccessfulReport: - usageReportResponse?.status === 201 - ? meteringCallbackTime - : this.getFailedLastSuccessfulReportTime( - meteringCallbackTime, - taskInstance.state.lastSuccessfulReport, - lookBackLimitMinutes - ), + lastSuccessfulReport: this.shouldUpdateLastSuccessfulReport(usageRecords, usageReportResponse) + ? meteringCallbackTime.toISOString() + : this.getFailedLastSuccessfulReportTime( + meteringCallbackTime, + lastSuccessfulReport, + lookBackLimitMinutes + ).toISOString(), }; return { state }; }; @@ -203,6 +205,13 @@ export class SecurityUsageReportingTask { return lookBackLimitTime; } + private shouldUpdateLastSuccessfulReport( + usageRecords: UsageRecord[], + usageReportResponse: Response | undefined + ): boolean { + return !usageRecords.length || usageReportResponse?.status === 201; + } + private get taskId() { return `${this.taskType}:${this.version}`; } diff --git a/x-pack/plugins/stack_connectors/common/slack_api/schema.ts b/x-pack/plugins/stack_connectors/common/slack_api/schema.ts index 4f121fd92389a..d591c7b5f3b64 100644 --- a/x-pack/plugins/stack_connectors/common/slack_api/schema.ts +++ b/x-pack/plugins/stack_connectors/common/slack_api/schema.ts @@ -11,14 +11,30 @@ export const SlackApiSecretsSchema = schema.object({ token: schema.string({ minLength: 1 }), }); -export const SlackApiConfigSchema = schema.object({}, { defaultValue: {} }); +export const SlackApiConfigSchema = schema.object({ + allowedChannels: schema.maybe( + schema.arrayOf( + schema.object({ + id: schema.string({ minLength: 1 }), + name: schema.string({ minLength: 1 }), + }), + { maxSize: 25 } + ) + ), +}); + +export const ValidChannelIdSubActionParamsSchema = schema.object({ + channelId: schema.maybe(schema.string()), +}); -export const GetChannelsParamsSchema = schema.object({ - subAction: schema.literal('getChannels'), +export const ValidChannelIdParamsSchema = schema.object({ + subAction: schema.literal('validChannelId'), + subActionParams: ValidChannelIdSubActionParamsSchema, }); export const PostMessageSubActionParamsSchema = schema.object({ - channels: schema.arrayOf(schema.string(), { maxSize: 1 }), + channels: schema.maybe(schema.arrayOf(schema.string(), { maxSize: 1 })), + channelIds: schema.maybe(schema.arrayOf(schema.string(), { maxSize: 1 })), text: schema.string({ minLength: 1 }), }); @@ -28,6 +44,6 @@ export const PostMessageParamsSchema = schema.object({ }); export const SlackApiParamsSchema = schema.oneOf([ - GetChannelsParamsSchema, + ValidChannelIdParamsSchema, PostMessageParamsSchema, ]); diff --git a/x-pack/plugins/stack_connectors/common/slack_api/types.ts b/x-pack/plugins/stack_connectors/common/slack_api/types.ts index 6d87b078b8c15..7db66261c43cb 100644 --- a/x-pack/plugins/stack_connectors/common/slack_api/types.ts +++ b/x-pack/plugins/stack_connectors/common/slack_api/types.ts @@ -15,6 +15,7 @@ import { SlackApiSecretsSchema, SlackApiParamsSchema, SlackApiConfigSchema, + ValidChannelIdSubActionParamsSchema, } from './schema'; export type SlackApiSecrets = TypeOf; @@ -22,6 +23,7 @@ export type SlackApiConfig = TypeOf; export type PostMessageParams = TypeOf; export type PostMessageSubActionParams = TypeOf; +export type ValidChannelIdSubActionParams = TypeOf; export type SlackApiParams = TypeOf; export type SlackApiConnectorType = ConnectorType< SlackApiConfig, @@ -55,25 +57,34 @@ export interface SlackAPiResponse { }; } -export interface ChannelsResponse { +export interface ChannelResponse { id: string; name: string; is_channel: boolean; is_archived: boolean; is_private: boolean; } -export interface GetChannelsResponse extends SlackAPiResponse { - channels?: ChannelsResponse[]; + +export interface ValidChannelResponse extends SlackAPiResponse { + channel?: ChannelResponse; } export interface PostMessageResponse extends SlackAPiResponse { channel?: string; } +export interface ValidChannelRouteResponse { + validChannels: Array<{ id: string; name: string }>; + invalidChannels: string[]; +} + export interface SlackApiService { - getChannels: () => Promise>; + validChannelId: ( + channelId: string + ) => Promise>; postMessage: ({ channels, + channelIds, text, }: PostMessageSubActionParams) => Promise>; } diff --git a/x-pack/plugins/stack_connectors/public/connector_types/slack/action_form.test.tsx b/x-pack/plugins/stack_connectors/public/connector_types/slack/action_form.test.tsx index f06461dd5fbc9..4e86a25ed26d8 100644 --- a/x-pack/plugins/stack_connectors/public/connector_types/slack/action_form.test.tsx +++ b/x-pack/plugins/stack_connectors/public/connector_types/slack/action_form.test.tsx @@ -174,6 +174,6 @@ describe('ActionForm - Slack API Connector', () => { ); - expect(await screen.findByText('Channel is required.')).toBeInTheDocument(); + expect(await screen.findByText('Channel ID is required.')).toBeInTheDocument(); }); }); diff --git a/x-pack/plugins/stack_connectors/public/connector_types/slack_api/slack_api.test.tsx b/x-pack/plugins/stack_connectors/public/connector_types/slack_api/slack_api.test.tsx index 27776a63673b8..d8c49ef12d9b5 100644 --- a/x-pack/plugins/stack_connectors/public/connector_types/slack_api/slack_api.test.tsx +++ b/x-pack/plugins/stack_connectors/public/connector_types/slack_api/slack_api.test.tsx @@ -44,6 +44,20 @@ describe('Slack action params validation', () => { }); }); + test('should succeed when action params include valid message and channels and channel ids', async () => { + const actionParams = { + subAction: 'postMessage', + subActionParams: { channels: ['general'], channelIds: ['general'], text: 'some text' }, + }; + + expect(await connectorTypeModel.validateParams(actionParams)).toEqual({ + errors: { + text: [], + channels: [], + }, + }); + }); + test('should fail when channels field is missing in action params', async () => { const actionParams = { subAction: 'postMessage', @@ -53,7 +67,7 @@ describe('Slack action params validation', () => { expect(await connectorTypeModel.validateParams(actionParams)).toEqual({ errors: { text: [], - channels: ['Channel is required.'], + channels: ['Channel ID is required.'], }, }); }); diff --git a/x-pack/plugins/stack_connectors/public/connector_types/slack_api/slack_api.tsx b/x-pack/plugins/stack_connectors/public/connector_types/slack_api/slack_api.tsx index 102595ebb89b8..95817c5be3e24 100644 --- a/x-pack/plugins/stack_connectors/public/connector_types/slack_api/slack_api.tsx +++ b/x-pack/plugins/stack_connectors/public/connector_types/slack_api/slack_api.tsx @@ -26,6 +26,17 @@ import { SLACK_API_CONNECTOR_ID } from '../../../common/slack_api/constants'; import { SlackActionParams } from '../types'; import { subtype } from '../slack/slack'; +const isChannelValid = (channels?: string[], channelIds?: string[]) => { + if ( + (channels === undefined && !channelIds?.length) || + (channelIds === undefined && !channels?.length) || + (!channelIds?.length && !channels?.length) + ) { + return false; + } + return true; +}; + export const getConnectorType = (): ConnectorTypeModel< SlackApiConfig, SlackApiSecrets, @@ -50,7 +61,12 @@ export const getConnectorType = (): ConnectorTypeModel< if (!actionParams.subActionParams.text) { errors.text.push(MESSAGE_REQUIRED); } - if (!actionParams.subActionParams.channels?.length) { + if ( + !isChannelValid( + actionParams.subActionParams.channels, + actionParams.subActionParams.channelIds + ) + ) { errors.channels.push(CHANNEL_REQUIRED); } } diff --git a/x-pack/plugins/stack_connectors/public/connector_types/slack_api/slack_connectors.test.tsx b/x-pack/plugins/stack_connectors/public/connector_types/slack_api/slack_connectors.test.tsx index 8c255bce003fe..183637274c157 100644 --- a/x-pack/plugins/stack_connectors/public/connector_types/slack_api/slack_connectors.test.tsx +++ b/x-pack/plugins/stack_connectors/public/connector_types/slack_api/slack_connectors.test.tsx @@ -6,15 +6,15 @@ */ import React from 'react'; -import { act, render, fireEvent, screen } from '@testing-library/react'; +import { act, render, screen, waitFor } from '@testing-library/react'; import { useKibana } from '@kbn/triggers-actions-ui-plugin/public'; import { ConnectorFormTestProvider, waitForComponentToUpdate } from '../lib/test_utils'; -import SlackActionFields from './slack_connectors'; -import { useFetchChannels } from './use_fetch_channels'; +import { SlackActionFieldsComponents as SlackActionFields } from './slack_connectors'; +import { useValidChannels } from './use_valid_channels'; jest.mock('@kbn/triggers-actions-ui-plugin/public/common/lib/kibana'); -jest.mock('./use_fetch_channels'); +jest.mock('./use_valid_channels'); (useKibana as jest.Mock).mockImplementation(() => ({ services: { @@ -32,15 +32,19 @@ jest.mock('./use_fetch_channels'); }, })); -(useFetchChannels as jest.Mock).mockImplementation(() => ({ - channels: [], - isLoading: false, -})); +const useValidChannelsMock = useValidChannels as jest.Mock; describe('SlackActionFields renders', () => { const onSubmit = jest.fn(); beforeEach(() => { + useValidChannelsMock.mockClear(); + onSubmit.mockClear(); jest.clearAllMocks(); + useValidChannelsMock.mockImplementation(() => ({ + channels: [], + isLoading: false, + resetChannelsToValidate: jest.fn(), + })); }); it('all connector fields is rendered for web_api type', async () => { @@ -77,27 +81,68 @@ describe('SlackActionFields renders', () => { isDeprecated: false, }; + // Simulate that user just type a channel ID + useValidChannelsMock.mockImplementation(() => ({ + channels: ['my-channel'], + isLoading: false, + resetChannelsToValidate: jest.fn(), + })); + render( {}} /> ); await waitForComponentToUpdate(); - await act(async () => { - fireEvent.click(screen.getByTestId('form-test-provide-submit')); + act(() => { + screen.getByTestId('form-test-provide-submit').click(); }); - expect(onSubmit).toBeCalledTimes(1); - expect(onSubmit).toBeCalledWith({ - data: { - secrets: { - token: 'some token', + + await waitFor(() => { + expect(onSubmit).toBeCalledTimes(1); + expect(onSubmit).toBeCalledWith({ + data: { + secrets: { + token: 'some token', + }, + config: { + allowedChannels: ['my-channel'], + }, + id: 'test', + actionTypeId: '.slack', + name: 'slack', + isDeprecated: false, }, - id: 'test', - actionTypeId: '.slack', - name: 'slack', - isDeprecated: false, + isValid: true, + }); + }); + }); + + it('connector validation should failed when allowedChannels is empty', async () => { + const actionConnector = { + secrets: { + token: 'some token', }, - isValid: true, + id: 'test', + actionTypeId: '.slack', + name: 'slack', + config: {}, + isDeprecated: false, + }; + + render( + + {}} /> + + ); + await waitForComponentToUpdate(); + act(() => { + screen.getByTestId('form-test-provide-submit').click(); + }); + + await waitFor(() => { + expect(onSubmit).toBeCalledTimes(1); + expect(onSubmit).toBeCalledWith(expect.objectContaining({ isValid: false })); }); }); }); diff --git a/x-pack/plugins/stack_connectors/public/connector_types/slack_api/slack_connectors.tsx b/x-pack/plugins/stack_connectors/public/connector_types/slack_api/slack_connectors.tsx index 71a262954d2d1..0b1b571036927 100644 --- a/x-pack/plugins/stack_connectors/public/connector_types/slack_api/slack_connectors.tsx +++ b/x-pack/plugins/stack_connectors/public/connector_types/slack_api/slack_connectors.tsx @@ -5,7 +5,7 @@ * 2.0. */ -import React from 'react'; +import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'; import { ActionConnectorFieldsProps, ConfigFieldSchema, @@ -13,12 +13,18 @@ import { SimpleConnectorForm, useKibana, } from '@kbn/triggers-actions-ui-plugin/public'; -import { EuiLink } from '@elastic/eui'; +import { EuiComboBoxOptionOption, EuiLink } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n-react'; import { DocLinksStart } from '@kbn/core/public'; +import { useFormContext, useFormData } from '@kbn/es-ui-shared-plugin/static/forms/hook_form_lib'; +import { debounce, isEmpty, isEqual } from 'lodash'; import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; import * as i18n from './translations'; +import { useValidChannels } from './use_valid_channels'; + +/** wait this many ms after the user completes typing before applying the filter input */ +const INPUT_TIMEOUT = 250; const getSecretsFormSchema = (docLinks: DocLinksStart): SecretsFieldSchema[] => [ { @@ -36,20 +42,141 @@ const getSecretsFormSchema = (docLinks: DocLinksStart): SecretsFieldSchema[] => }, ]; -const NO_SCHEMA: ConfigFieldSchema[] = []; +interface AllowedChannels { + id: string; + name: string; +} + +const getConfigFormSchemaAfterSecrets = ({ + options, + isLoading, + isDisabled, + onChange, + onCreateOption, + selectedOptions, +}: { + options: Array>; + isLoading: boolean; + isDisabled: boolean; + onChange: (options: Array>) => void; + onCreateOption: (searchValue: string, options: EuiComboBoxOptionOption[]) => void; + selectedOptions: Array>; +}): ConfigFieldSchema[] => [ + { + id: 'allowedChannels', + isRequired: true, + label: i18n.ALLOWED_CHANNELS, + type: 'COMBO_BOX', + euiFieldProps: { + noSuggestions: true, + isDisabled, + isLoading, + options, + onChange, + onCreateOption, + selectedOptions, + }, + }, +]; +const NO_SCHEMA: ConfigFieldSchema[] = []; +const SEPARATOR = ' - '; export const SlackActionFieldsComponents: React.FC = ({ readOnly, isEdit, }) => { const { docLinks } = useKibana().services; + const form = useFormContext(); + const { setFieldValue } = form; + const [formData] = useFormData({ form }); + const [authToken, setAuthToken] = useState(''); + const [channelsToValidate, setChannelsToValidate] = useState(''); + const { + channels: validChannels, + isLoading, + resetChannelsToValidate, + } = useValidChannels({ + authToken, + channelId: channelsToValidate, + }); + + const onCreateOption = useCallback((searchValue: string, options: EuiComboBoxOptionOption[]) => { + setChannelsToValidate(searchValue); + }, []); + const onChange = useCallback( + (options: Array>) => { + const tempChannelIds: AllowedChannels[] = options.map( + (opt: EuiComboBoxOptionOption) => { + return opt.value!; + } + ); + setChannelsToValidate(''); + resetChannelsToValidate(tempChannelIds); + }, + [resetChannelsToValidate] + ); + + const configFormSchemaAfterSecrets = useMemo(() => { + const validChannelsFormatted = validChannels.map((channel) => ({ + label: `${channel.id}${SEPARATOR}${channel.name}`, + value: channel, + })); + return getConfigFormSchemaAfterSecrets({ + options: validChannelsFormatted, + isLoading, + isDisabled: (authToken || '').length === 0, + onChange, + onCreateOption, + selectedOptions: validChannelsFormatted, + }); + }, [validChannels, isLoading, authToken, onChange, onCreateOption]); + + const debounceSetToken = debounce(setAuthToken, INPUT_TIMEOUT); + useEffect(() => { + if (formData.secrets && formData.secrets.token !== authToken) { + debounceSetToken(formData.secrets.token); + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [formData.secrets]); + + useEffect(() => { + if (isEmpty(authToken) && validChannels.length > 0) { + setFieldValue('config.allowedChannels', []); + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [authToken]); + + useEffect(() => { + const configAllowedChannels = formData?.config?.allowedChannels || []; + if (!isEqual(configAllowedChannels, validChannels)) { + setFieldValue('config.allowedChannels', validChannels); + } + + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [validChannels]); + + const isInitialyzed = useRef(false); + useEffect(() => { + const configAllowedChannels = formData?.config?.allowedChannels || []; + if ( + !isInitialyzed.current && + configAllowedChannels.length > 0 && + !isEqual(configAllowedChannels, validChannels) + ) { + isInitialyzed.current = true; + resetChannelsToValidate(formData.config.allowedChannels); + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [formData.config]); + return ( ); }; diff --git a/x-pack/plugins/stack_connectors/public/connector_types/slack_api/slack_params.test.tsx b/x-pack/plugins/stack_connectors/public/connector_types/slack_api/slack_params.test.tsx index 85f909783f178..3a90116b14ad4 100644 --- a/x-pack/plugins/stack_connectors/public/connector_types/slack_api/slack_params.test.tsx +++ b/x-pack/plugins/stack_connectors/public/connector_types/slack_api/slack_params.test.tsx @@ -6,10 +6,12 @@ */ import React from 'react'; -import { render, screen } from '@testing-library/react'; +import { act, fireEvent, render, screen, waitFor, within } from '@testing-library/react'; import SlackParamsFields from './slack_params'; import type { UseSubActionParams } from '@kbn/triggers-actions-ui-plugin/public/application/hooks/use_sub_action'; import { __IntlProvider as IntlProvider } from '@kbn/i18n-react'; +import { ActionConnector } from '@kbn/triggers-actions-ui-plugin/public'; +import userEvent from '@testing-library/user-event'; interface Result { isLoading: boolean; @@ -19,23 +21,20 @@ interface Result { const triggersActionsPath = '@kbn/triggers-actions-ui-plugin/public'; -const mockUseSubAction = jest.fn]>( - jest.fn]>(() => ({ - isLoading: false, - response: { - channels: [ - { - id: 'id', - name: 'general', - is_channel: true, - is_archived: false, - is_private: true, - }, - ], +const mockUseValidChanelId = jest.fn().mockImplementation(() => ({ + isLoading: false, + response: { + channel: { + id: 'id', + name: 'general', + is_channel: true, + is_archived: false, + is_private: true, }, - error: null, - })) -); + }, + error: null, +})); +const mockUseSubAction = jest.fn]>(mockUseValidChanelId); const mockToasts = { danger: jest.fn(), warning: jest.fn() }; jest.mock(triggersActionsPath, () => { @@ -51,6 +50,23 @@ jest.mock(triggersActionsPath, () => { }); describe('SlackParamsFields renders', () => { + beforeEach(() => { + mockUseSubAction.mockClear(); + mockUseValidChanelId.mockClear(); + mockUseValidChanelId.mockImplementation(() => ({ + isLoading: false, + response: { + channel: { + id: 'id', + name: 'general', + is_channel: true, + is_archived: false, + is_private: true, + }, + }, + error: null, + })); + }); test('when useDefaultMessage is set to true and the default message changes, the underlying message is replaced with the default message', () => { const editAction = jest.fn(); const { rerender } = render( @@ -89,7 +105,7 @@ describe('SlackParamsFields renders', () => { ); expect(editAction).toHaveBeenCalledWith( 'subActionParams', - { channels: ['general'], text: 'some different default message' }, + { channels: ['general'], channelIds: [], text: 'some different default message' }, 0 ); }); @@ -155,17 +171,169 @@ describe('SlackParamsFields renders', () => { expect(screen.getByTestId('webApiTextArea')).toHaveValue('some text'); }); - test('all params fields is rendered for getChannels call', async () => { + test('Show the Channel label when using the old attribute "channels" in subActionParams', async () => { + const mockEditFunc = jest.fn(); + const WrappedComponent = () => { + return ( + + + + ); + }; + const { getByTestId } = render(); + + expect(screen.findByText('Channel')).toBeTruthy(); + expect(screen.getByTestId('slackApiChannelId')).toBeInTheDocument(); + expect(getByTestId('slackApiChannelId')).toHaveValue('old channel name'); + }); + + test('Show the Channel ID label when using the new attribute "channelIds" in subActionParams', async () => { + const mockEditFunc = jest.fn(); + const WrappedComponent: React.FunctionComponent = () => { + return ( + + + + ); + }; + const { getByTestId } = render(); + + expect(screen.findByText('Channel ID')).toBeTruthy(); + expect(screen.getByTestId('slackApiChannelId')).toBeInTheDocument(); + expect(getByTestId('slackApiChannelId')).toHaveValue('channel-id-xxx'); + }); + + test('Channel id subActionParams should be validated', async () => { + const mockEditFunc = jest.fn(); + mockUseValidChanelId.mockImplementation(() => ({ + isLoading: false, + response: { + channel: { + id: 'new-channel-id', + name: 'new channel id', + is_channel: true, + is_archived: false, + is_private: true, + }, + }, + error: null, + })); + const WrappedComponent = () => { + return ( + + + + ); + }; + const { getByTestId } = render(); + + act(() => { + getByTestId('slackApiChannelId').click(); + userEvent.clear(getByTestId('slackApiChannelId')); + fireEvent.change(getByTestId('slackApiChannelId'), { + target: { value: 'new-channel-id' }, + }); + userEvent.tab(); + }); + + await waitFor(() => { + expect(mockEditFunc).toBeCalledWith( + 'subActionParams', + { channelIds: ['new-channel-id'], channels: undefined, text: 'some text' }, + 0 + ); + expect(mockUseSubAction).toBeCalledWith({ + connectorId: 'connector-id', + disabled: false, + subAction: 'validChannelId', + subActionParams: { + channelId: 'new-channel-id', + }, + }); + }); + }); + + test('Channel id work with combobox when allowedChannels pass in the config attributes', async () => { + const mockEditFunc = jest.fn(); const WrappedComponent = () => { return ( {}} + editAction={mockEditFunc} index={0} defaultMessage="default message" messageVariables={[]} @@ -175,14 +343,43 @@ describe('SlackParamsFields renders', () => { }; const { getByTestId } = render(); - getByTestId('slackChannelsComboBox').click(); - getByTestId('comboBoxSearchInput').focus(); + expect(screen.findByText('Channel ID')).toBeTruthy(); + expect(getByTestId('slackChannelsComboBox')).toBeInTheDocument(); + expect(getByTestId('slackChannelsComboBox').textContent).toBe('channel-id-1 - channel 1'); + + act(() => { + const combobox = getByTestId('slackChannelsComboBox'); + const inputCombobox = within(combobox).getByTestId('comboBoxSearchInput'); + inputCombobox.click(); + }); + + await waitFor(() => { + // const popOverElement = within(baseElement).getByTestId('slackChannelsComboBox-optionsList'); + expect(screen.getByTestId('channel-id-1')).toBeInTheDocument(); + expect(screen.getByTestId('channel-id-2')).toBeInTheDocument(); + expect(screen.getByTestId('channel-id-3')).toBeInTheDocument(); + }); - const options = getByTestId( - 'comboBoxOptionsList slackChannelsComboBox-optionsList' - ).querySelectorAll('.euiComboBoxOption__content'); - expect(options).toHaveLength(1); - expect(options[0].textContent).toBe('general'); + act(() => { + screen.getByTestId('channel-id-3').click(); + }); + + await waitFor(() => { + expect( + within(getByTestId('slackChannelsComboBox')).getByText('channel-id-3 - channel 3') + ).toBeInTheDocument(); + expect(mockEditFunc).toBeCalledWith( + 'subActionParams', + { channelIds: ['channel-id-3'], channels: undefined, text: 'some text' }, + 0 + ); + expect(mockUseSubAction).toBeCalledWith({ + connectorId: 'connector-id', + disabled: false, + subAction: 'validChannelId', + subActionParams: { channelId: '' }, + }); + }); }); test('show error message when no channel is selected', async () => { diff --git a/x-pack/plugins/stack_connectors/public/connector_types/slack_api/slack_params.tsx b/x-pack/plugins/stack_connectors/public/connector_types/slack_api/slack_params.tsx index 68172f50d51de..61d61a041dead 100644 --- a/x-pack/plugins/stack_connectors/public/connector_types/slack_api/slack_params.tsx +++ b/x-pack/plugins/stack_connectors/public/connector_types/slack_api/slack_params.tsx @@ -9,9 +9,21 @@ import React, { useState, useEffect, useMemo, useCallback } from 'react'; import type { ActionParamsProps } from '@kbn/triggers-actions-ui-plugin/public'; import { i18n } from '@kbn/i18n'; import { TextAreaWithMessageVariables } from '@kbn/triggers-actions-ui-plugin/public'; -import { EuiSpacer, EuiFormRow, EuiComboBox, EuiComboBoxOptionOption } from '@elastic/eui'; +import { + EuiSpacer, + EuiFormRow, + EuiComboBox, + EuiComboBoxOptionOption, + EuiFieldText, +} from '@elastic/eui'; import { useSubAction, useKibana } from '@kbn/triggers-actions-ui-plugin/public'; -import type { GetChannelsResponse, PostMessageParams } from '../../../common/slack_api/types'; +import { UserConfiguredActionConnector } from '@kbn/triggers-actions-ui-plugin/public/types'; +import type { + PostMessageParams, + SlackApiConfig, + ValidChannelIdSubActionParams, + ValidChannelResponse, +} from '../../../common/slack_api/types'; const SlackParamsFields: React.FunctionComponent> = ({ actionConnector, @@ -23,17 +35,112 @@ const SlackParamsFields: React.FunctionComponent { + const [connectorId, setConnectorId] = useState(); const { subAction, subActionParams } = actionParams; - const { channels = [], text } = subActionParams ?? {}; + const { channels = [], text, channelIds = [] } = subActionParams ?? {}; + const [tempChannelId, setTempChannelId] = useState( + channels.length > 0 + ? channels[0] + : channelIds.length > 0 && channelIds[0].length > 0 + ? channelIds[0] + : '' + ); + const [validChannelId, setValidChannelId] = useState(''); const { toasts } = useKibana().notifications; + const allowedChannelsConfig = + (actionConnector as UserConfiguredActionConnector)?.config + ?.allowedChannels ?? []; + const [selectedChannels, setSelectedChannels] = useState( + (channelIds ?? []).map((c) => { + const allowedChannelSelected = allowedChannelsConfig?.find((ac) => ac.id === c); + return { + value: c, + label: allowedChannelSelected + ? `${allowedChannelSelected.id} - ${allowedChannelSelected.name}` + : c, + }; + }) + ); + const [channelValidError, setChannelValidError] = useState([]); + const { + response: { channel: channelValidInfo } = {}, + isLoading: isValidatingChannel, + error: channelValidErrorResp, + } = useSubAction({ + connectorId: actionConnector?.id, + subAction: 'validChannelId', + subActionParams: { + channelId: validChannelId, + }, + disabled: validChannelId.length === 0 && allowedChannelsConfig.length === 0, + }); useEffect(() => { if (useDefaultMessage || !text) { - editAction('subActionParams', { channels, text: defaultMessage }, index); + editAction('subActionParams', { channels, channelIds, text: defaultMessage }, index); } // eslint-disable-next-line react-hooks/exhaustive-deps }, [defaultMessage, useDefaultMessage]); + useEffect(() => { + if ( + !isValidatingChannel && + !channelValidErrorResp && + channelValidInfo && + validChannelId === channelValidInfo.id + ) { + editAction( + 'subActionParams', + { channels: undefined, channelIds: [channelValidInfo.id], text }, + index + ); + setValidChannelId(''); + setChannelValidError([]); + } + }, [ + channelValidInfo, + validChannelId, + channelValidErrorResp, + isValidatingChannel, + editAction, + text, + index, + ]); + + useEffect(() => { + if (channelValidErrorResp && validChannelId.length > 0) { + editAction('subActionParams', { channels: undefined, channelIds: [], text }, index); + const errorMessage = i18n.translate( + 'xpack.stackConnectors.slack.params.componentError.validChannelsRequestFailed', + { + defaultMessage: '{validChannelId} is not a valid Slack channel', + values: { + validChannelId, + }, + } + ); + setChannelValidError([errorMessage]); + setValidChannelId(''); + toasts.danger({ + title: errorMessage, + body: channelValidErrorResp.message, + }); + } + }, [toasts, channelValidErrorResp, validChannelId, editAction, text, index]); + + useEffect(() => { + // Reset channel id input when we changes connector + if (connectorId && connectorId !== actionConnector?.id) { + editAction('subActionParams', { channels: undefined, channelIds: [], text }, index); + setTempChannelId(''); + setValidChannelId(''); + setChannelValidError([]); + setSelectedChannels([]); + } + setConnectorId(actionConnector?.id ?? ''); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [actionConnector?.id]); + if (!subAction) { editAction('subAction', 'postMessage', index); } @@ -42,82 +149,130 @@ const SlackParamsFields: React.FunctionComponent({ - connectorId: actionConnector?.id, - subAction: 'getChannels', - }); - - useEffect(() => { - if (channelsError) { - toasts.danger({ - title: i18n.translate( - 'xpack.stackConnectors.slack.params.componentError.getChannelsRequestFailed', - { - defaultMessage: 'Failed to retrieve Slack channels list', - } - ), - body: channelsError.message, - }); + const typeChannelInput = useMemo(() => { + if (channels.length > 0 && channelIds.length === 0) { + return 'channel-name'; + } else if ( + ( + (actionConnector as UserConfiguredActionConnector)?.config + ?.allowedChannels ?? [] + ).length > 0 + ) { + return 'channel-allowed-ids'; } - }, [toasts, channelsError]); - - const [selectedChannels, setSelectedChannels] = useState( - (channels ?? []).map((c) => ({ label: c })) - ); + return 'channel-id'; + }, [actionConnector, channelIds.length, channels.length]); - const slackChannels = useMemo( - () => - channelsInfo - ?.filter((slackChannel) => slackChannel.is_channel) - .map((slackChannel) => ({ label: slackChannel.name })) ?? [], - [channelsInfo] - ); + const slackChannelsOptions = useMemo(() => { + return ( + (actionConnector as UserConfiguredActionConnector)?.config + ?.allowedChannels ?? [] + ).map((ac) => ({ + label: `${ac.id} - ${ac.name}`, + value: ac.id, + 'data-test-subj': ac.id, + })); + }, [actionConnector]); - const onChange = useCallback( + const onChangeComboBox = useCallback( (newOptions: EuiComboBoxOptionOption[]) => { - const newSelectedChannels = newOptions.map((option) => option.label); - + const newSelectedChannels = newOptions.map((option) => option.value!.toString()); setSelectedChannels(newOptions); - editAction('subActionParams', { channels: newSelectedChannels, text }, index); + editAction( + 'subActionParams', + { channels: undefined, channelIds: newSelectedChannels, text }, + index + ); }, [editAction, index, text] ); + const onBlurChannelIds = useCallback(() => { + if (tempChannelId === '') { + editAction('subActionParams', { channels: undefined, channelIds: [], text }, index); + } + setValidChannelId(tempChannelId.trim()); + }, [editAction, index, tempChannelId, text]); + + const onChangeTextField = useCallback( + (evt) => { + editAction('subActionParams', { channels: undefined, channelIds: [], text }, index); + setTempChannelId(evt.target.value); + }, + [editAction, index, text] + ); + + const channelInput = useMemo(() => { + if (typeChannelInput === 'channel-name' || typeChannelInput === 'channel-id') { + return ( + 0} + fullWidth={true} + /> + ); + } + return ( + + ); + }, [ + channelValidError.length, + isValidatingChannel, + onBlurChannelIds, + onChangeComboBox, + onChangeTextField, + selectedChannels, + slackChannelsOptions, + tempChannelId, + typeChannelInput, + ]); return ( <> 0 && channels.length === 0} + error={channelValidError.length > 0 ? channelValidError : errors.channels} + isInvalid={errors.channels?.length > 0 || channelValidError.length > 0} + helpText={ + channelIds.length > 0 && channelValidInfo + ? `${channelValidInfo.id} - ${channelValidInfo.name}` + : '' + } > - + {channelInput} - editAction('subActionParams', { channels, text: value }, index) + editAction('subActionParams', { channels, channelIds, text: value }, index) } messageVariables={messageVariables} paramsProperty="webApi" diff --git a/x-pack/plugins/stack_connectors/public/connector_types/slack_api/translations.ts b/x-pack/plugins/stack_connectors/public/connector_types/slack_api/translations.ts index 2d8d6507b8715..57fedf03d9699 100644 --- a/x-pack/plugins/stack_connectors/public/connector_types/slack_api/translations.ts +++ b/x-pack/plugins/stack_connectors/public/connector_types/slack_api/translations.ts @@ -16,7 +16,7 @@ export const MESSAGE_REQUIRED = i18n.translate( export const CHANNEL_REQUIRED = i18n.translate( 'xpack.stackConnectors.components.slack_api.error.requiredSlackChannel', { - defaultMessage: 'Channel is required.', + defaultMessage: 'Channel ID is required.', } ); export const TOKEN_LABEL = i18n.translate( @@ -43,7 +43,7 @@ export const ACTION_TYPE_TITLE = i18n.translate( export const ALLOWED_CHANNELS = i18n.translate( 'xpack.stackConnectors.components.slack_api.allowedChannelsLabel', { - defaultMessage: 'Channels', + defaultMessage: 'Channel IDs', } ); export const SUCCESS_FETCH_CHANNELS = i18n.translate( @@ -53,9 +53,19 @@ export const SUCCESS_FETCH_CHANNELS = i18n.translate( } ); -export const ERROR_FETCH_CHANNELS = i18n.translate( - 'xpack.stackConnectors.components.slack_api.errorFetchChannelsText', +export const ERROR_VALID_CHANNELS = i18n.translate( + 'xpack.stackConnectors.components.slack_api.errorValidChannelsText', { - defaultMessage: 'Cannot fetch channels, please check the validity of your token', + defaultMessage: + 'Cannot valid channels, please check the validity of your token or your channel', } ); + +export const ERROR_INVALID_CHANNELS = (invalidChannels: string[]) => + i18n.translate('xpack.stackConnectors.components.slack_api.errorInvalidChannelsText', { + defaultMessage: + 'Cannot validate channel ID "{channels}", please check the validity of your token and/or the channel ID', + values: { + channels: invalidChannels.join(', '), + }, + }); diff --git a/x-pack/plugins/stack_connectors/public/connector_types/slack_api/use_fetch_channels.tsx b/x-pack/plugins/stack_connectors/public/connector_types/slack_api/use_fetch_channels.tsx deleted file mode 100644 index fa4391c088668..0000000000000 --- a/x-pack/plugins/stack_connectors/public/connector_types/slack_api/use_fetch_channels.tsx +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.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 { useMemo } from 'react'; -import { useQuery } from '@tanstack/react-query'; -import { useKibana } from '@kbn/triggers-actions-ui-plugin/public'; -import { HttpSetup } from '@kbn/core/public'; -import { ChannelsResponse, GetChannelsResponse } from '../../../common/slack_api/types'; -import { INTERNAL_BASE_STACK_CONNECTORS_API_PATH } from '../../../common'; -import * as i18n from './translations'; - -interface UseFetchChannelsProps { - authToken: string; -} - -const fetchChannels = async ( - http: HttpSetup, - newAuthToken: string -): Promise => { - return http.post( - `${INTERNAL_BASE_STACK_CONNECTORS_API_PATH}/_slack_api/channels`, - { - body: JSON.stringify({ - authToken: newAuthToken, - }), - } - ); -}; - -export function useFetchChannels(props: UseFetchChannelsProps) { - const { authToken } = props; - - const { - http, - notifications: { toasts }, - } = useKibana().services; - - const queryFn = () => { - return fetchChannels(http, authToken); - }; - - const onErrorFn = () => { - toasts.addDanger(i18n.ERROR_FETCH_CHANNELS); - }; - - const { data, isLoading, isFetching } = useQuery({ - queryKey: ['fetchChannels', authToken], - queryFn, - onError: onErrorFn, - enabled: authToken.length > 0, - refetchOnWindowFocus: false, - }); - - const channels = useMemo(() => { - return (data?.channels ?? []).map((channel: ChannelsResponse) => ({ - label: channel.name, - })); - }, [data]); - - return { - channels, - isLoading: isLoading || isFetching, - }; -} diff --git a/x-pack/plugins/stack_connectors/public/connector_types/slack_api/use_valid_channels.tsx b/x-pack/plugins/stack_connectors/public/connector_types/slack_api/use_valid_channels.tsx new file mode 100644 index 0000000000000..17745ec4e4d0c --- /dev/null +++ b/x-pack/plugins/stack_connectors/public/connector_types/slack_api/use_valid_channels.tsx @@ -0,0 +1,101 @@ +/* + * 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. + */ + +/* + * 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 { useCallback, useEffect, useState } from 'react'; +import { useQuery } from '@tanstack/react-query'; +import { useKibana } from '@kbn/triggers-actions-ui-plugin/public'; +import { HttpSetup } from '@kbn/core/public'; +import { ValidChannelRouteResponse } from '../../../common/slack_api/types'; +import { INTERNAL_BASE_STACK_CONNECTORS_API_PATH } from '../../../common'; +import * as i18n from './translations'; + +interface UseValidChannelsProps { + authToken: string; + channelId: string; +} + +const validChannelIds = async ( + http: HttpSetup, + newAuthToken: string, + channelId: string +): Promise => { + return http.post( + `${INTERNAL_BASE_STACK_CONNECTORS_API_PATH}/_slack_api/channels/_valid`, + { + body: JSON.stringify({ + authToken: newAuthToken, + channelIds: [channelId], + }), + } + ); +}; + +export function useValidChannels(props: UseValidChannelsProps) { + const { authToken, channelId } = props; + const [channels, setChannels] = useState>([]); + const { + http, + notifications: { toasts }, + } = useKibana().services; + + const channelIdToValidate = channels.some((c: { id: string }) => c.id === channelId) + ? '' + : channelId; + const queryFn = () => { + return validChannelIds(http, authToken, channelIdToValidate); + }; + + const onErrorFn = () => { + toasts.addDanger(i18n.ERROR_VALID_CHANNELS); + }; + + const { data, isLoading, isFetching } = useQuery({ + queryKey: ['validChannels', authToken, channelIdToValidate], + queryFn, + onError: onErrorFn, + enabled: (authToken || '').length > 0 && (channelIdToValidate || '').length > 0, + refetchOnWindowFocus: false, + }); + + useEffect(() => { + if ((data?.invalidChannels ?? []).length > 0) { + toasts.addDanger(i18n.ERROR_INVALID_CHANNELS(data?.invalidChannels ?? [])); + } + if ((data?.validChannels ?? []).length > 0) { + setChannels((prevChannels) => { + return prevChannels.concat(data?.validChannels ?? []); + }); + } + }, [data, toasts]); + + const resetChannelsToValidate = useCallback( + (channelsToReset: Array<{ id: string; name: string }>) => { + if (channelsToReset.length === 0) { + setChannels([]); + } else { + setChannels((prevChannels) => { + if (prevChannels.length === 0) return channelsToReset; + return prevChannels.filter((c) => channelsToReset.some((cTr) => cTr.id === c.id)); + }); + } + }, + [] + ); + + return { + channels, + resetChannelsToValidate, + isLoading: isLoading && isFetching, + }; +} diff --git a/x-pack/plugins/stack_connectors/server/connector_types/slack_api/api.test.ts b/x-pack/plugins/stack_connectors/server/connector_types/slack_api/api.test.ts index 2ae4a998b261a..cda2c5b96cd87 100644 --- a/x-pack/plugins/stack_connectors/server/connector_types/slack_api/api.test.ts +++ b/x-pack/plugins/stack_connectors/server/connector_types/slack_api/api.test.ts @@ -18,25 +18,16 @@ const createMock = (): jest.Mocked => { type: 'message', }, })), - getChannels: jest.fn().mockImplementation(() => [ + validChannelId: jest.fn().mockImplementation(() => [ { ok: true, - channels: [ - { - id: 'channel_id_1', - name: 'general', - is_channel: true, - is_archived: false, - is_private: true, - }, - { - id: 'channel_id_2', - name: 'privat', - is_channel: true, - is_archived: false, - is_private: false, - }, - ], + channels: { + id: 'channel_id_1', + name: 'general', + is_channel: true, + is_archived: false, + is_private: true, + }, }, ]), }; @@ -55,35 +46,28 @@ describe('api', () => { externalService = slackServiceMock.create(); }); - test('getChannels', async () => { - const res = await api.getChannels({ + test('validChannelId', async () => { + const res = await api.validChannelId({ externalService, + params: { channelId: 'channel_id_1' }, }); expect(res).toEqual([ { - channels: [ - { - id: 'channel_id_1', - is_archived: false, - is_channel: true, - is_private: true, - name: 'general', - }, - { - id: 'channel_id_2', - is_archived: false, - is_channel: true, - is_private: false, - name: 'privat', - }, - ], + channels: { + id: 'channel_id_1', + is_archived: false, + is_channel: true, + is_private: true, + name: 'general', + }, + ok: true, }, ]); }); - test('postMessage', async () => { + test('postMessage with channels params', async () => { const res = await api.postMessage({ externalService, params: { channels: ['general'], text: 'a message' }, @@ -98,4 +82,20 @@ describe('api', () => { ok: true, }); }); + + test('postMessage with channelIds params', async () => { + const res = await api.postMessage({ + externalService, + params: { channelIds: ['general'], text: 'a message' }, + }); + + expect(res).toEqual({ + channel: 'general', + message: { + text: 'a message', + type: 'message', + }, + ok: true, + }); + }); }); diff --git a/x-pack/plugins/stack_connectors/server/connector_types/slack_api/api.ts b/x-pack/plugins/stack_connectors/server/connector_types/slack_api/api.ts index b0445b7c26e41..4c66f10761c85 100644 --- a/x-pack/plugins/stack_connectors/server/connector_types/slack_api/api.ts +++ b/x-pack/plugins/stack_connectors/server/connector_types/slack_api/api.ts @@ -5,20 +5,29 @@ * 2.0. */ -import type { PostMessageSubActionParams, SlackApiService } from '../../../common/slack_api/types'; +import type { + PostMessageSubActionParams, + SlackApiService, + ValidChannelIdSubActionParams, +} from '../../../common/slack_api/types'; -const getChannelsHandler = async ({ externalService }: { externalService: SlackApiService }) => - await externalService.getChannels(); +const validChannelIdHandler = async ({ + externalService, + params: { channelId }, +}: { + externalService: SlackApiService; + params: ValidChannelIdSubActionParams; +}) => await externalService.validChannelId(channelId ?? ''); const postMessageHandler = async ({ externalService, - params: { channels, text }, + params: { channelIds, channels, text }, }: { externalService: SlackApiService; params: PostMessageSubActionParams; -}) => await externalService.postMessage({ channels, text }); +}) => await externalService.postMessage({ channelIds, channels, text }); export const api = { - getChannels: getChannelsHandler, + validChannelId: validChannelIdHandler, postMessage: postMessageHandler, }; diff --git a/x-pack/plugins/stack_connectors/server/connector_types/slack_api/index.test.ts b/x-pack/plugins/stack_connectors/server/connector_types/slack_api/index.test.ts index c4922020cdce7..62e7cf771d3cb 100644 --- a/x-pack/plugins/stack_connectors/server/connector_types/slack_api/index.test.ts +++ b/x-pack/plugins/stack_connectors/server/connector_types/slack_api/index.test.ts @@ -79,7 +79,7 @@ describe('validate params', () => { ); }); - test('should validate and pass when params are valid for post message', () => { + test('should validate and pass when channels is used as a valid params for post message', () => { expect( validateParams( connectorType, @@ -92,11 +92,32 @@ describe('validate params', () => { }); }); - test('should validate and pass when params are valid for get channels', () => { + test('should validate and pass when channelIds is used as a valid params for post message', () => { expect( - validateParams(connectorType, { subAction: 'getChannels' }, { configurationUtilities }) + validateParams( + connectorType, + { + subAction: 'postMessage', + subActionParams: { channelIds: ['LKJHGF345'], text: 'a text' }, + }, + { configurationUtilities } + ) + ).toEqual({ + subAction: 'postMessage', + subActionParams: { channelIds: ['LKJHGF345'], text: 'a text' }, + }); + }); + + test('should validate and pass when params are valid for validChannelIds', () => { + expect( + validateParams( + connectorType, + { subAction: 'validChannelId', subActionParams: { channelId: 'KJHGFD867' } }, + { configurationUtilities } + ) ).toEqual({ - subAction: 'getChannels', + subAction: 'validChannelId', + subActionParams: { channelId: 'KJHGFD867' }, }); }); }); @@ -179,7 +200,7 @@ describe('execute', () => { ); }); - test('should fail if subAction is not postMessage/getChannels', async () => { + test('should fail if subAction is not postMessage/validChannelId', async () => { requestMock.mockImplementation(() => ({ data: { ok: true, @@ -195,7 +216,8 @@ describe('execute', () => { config: {}, secrets: { token: 'some token' }, params: { - subAction: 'getMessage' as 'getChannels', + subAction: 'getMessage' as 'validChannelId', + subActionParams: {}, }, configurationUtilities, logger: mockedLogger, @@ -264,19 +286,17 @@ describe('execute', () => { }); }); - test('should execute with success for get channels', async () => { + test('should execute with success for validChannelId', async () => { requestMock.mockImplementation(() => ({ data: { ok: true, - channels: [ - { - id: 'id', - name: 'general', - is_channel: true, - is_archived: false, - is_private: true, - }, - ], + channel: { + id: 'ZXCVBNM567', + name: 'general', + is_channel: true, + is_archived: false, + is_private: true, + }, }, })); const response = await connectorType.executor({ @@ -285,7 +305,10 @@ describe('execute', () => { config: {}, secrets: { token: 'some token' }, params: { - subAction: 'getChannels', + subAction: 'validChannelId', + subActionParams: { + channelId: 'ZXCVBNM567', + }, }, configurationUtilities, logger: mockedLogger, @@ -296,21 +319,19 @@ describe('execute', () => { configurationUtilities, logger: mockedLogger, method: 'get', - url: 'conversations.list?exclude_archived=true&types=public_channel,private_channel&limit=1000', + url: 'conversations.info?channel=ZXCVBNM567', }); expect(response).toEqual({ actionId: SLACK_API_CONNECTOR_ID, data: { - channels: [ - { - id: 'id', - is_archived: false, - is_channel: true, - is_private: true, - name: 'general', - }, - ], + channel: { + id: 'ZXCVBNM567', + is_archived: false, + is_channel: true, + is_private: true, + name: 'general', + }, ok: true, }, status: 'ok', diff --git a/x-pack/plugins/stack_connectors/server/connector_types/slack_api/index.ts b/x-pack/plugins/stack_connectors/server/connector_types/slack_api/index.ts index ffb952f457956..7a61966958415 100644 --- a/x-pack/plugins/stack_connectors/server/connector_types/slack_api/index.ts +++ b/x-pack/plugins/stack_connectors/server/connector_types/slack_api/index.ts @@ -29,7 +29,7 @@ import { SLACK_CONNECTOR_NAME } from './translations'; import { api } from './api'; import { createExternalService } from './service'; -const supportedSubActions = ['getChannels', 'postMessage']; +const supportedSubActions = ['getAllowedChannels', 'validChannelId', 'postMessage']; export const getConnectorType = (): SlackApiConnectorType => { return { @@ -111,9 +111,10 @@ const slackApiExecutor = async ({ configurationUtilities ); - if (subAction === 'getChannels') { - return await api.getChannels({ + if (subAction === 'validChannelId') { + return await api.validChannelId({ externalService, + params: params.subActionParams, }); } diff --git a/x-pack/plugins/stack_connectors/server/connector_types/slack_api/service.test.ts b/x-pack/plugins/stack_connectors/server/connector_types/slack_api/service.test.ts index 85df189c72d29..068bd8d5d923e 100644 --- a/x-pack/plugins/stack_connectors/server/connector_types/slack_api/service.test.ts +++ b/x-pack/plugins/stack_connectors/server/connector_types/slack_api/service.test.ts @@ -29,27 +29,18 @@ axios.create = jest.fn(() => axios); const requestMock = request as jest.Mock; const configurationUtilities = actionsConfigMock.create(); -const channels = [ - { - id: 'channel_id_1', - name: 'general', - is_channel: true, - is_archived: false, - is_private: true, - }, - { - id: 'channel_id_2', - name: 'privat', - is_channel: true, - is_archived: false, - is_private: false, - }, -]; - -const getChannelsResponse = createAxiosResponse({ +const channel = { + id: 'channel_id_1', + name: 'general', + is_channel: true, + is_archived: false, + is_private: true, +}; + +const getValidChannelIdResponse = createAxiosResponse({ data: { ok: true, - channels, + channel, }, }); @@ -105,30 +96,30 @@ describe('Slack API service', () => { }); }); - describe('getChannels', () => { + describe('validChannelId', () => { test('should get slack channels', async () => { - requestMock.mockImplementation(() => getChannelsResponse); - const res = await service.getChannels(); + requestMock.mockImplementation(() => getValidChannelIdResponse); + const res = await service.validChannelId('channel_id_1'); expect(res).toEqual({ actionId: SLACK_API_CONNECTOR_ID, data: { ok: true, - channels, + channel, }, status: 'ok', }); }); test('should call request with correct arguments', async () => { - requestMock.mockImplementation(() => getChannelsResponse); + requestMock.mockImplementation(() => getValidChannelIdResponse); - await service.getChannels(); + await service.validChannelId('channel_id_1'); expect(requestMock).toHaveBeenCalledWith({ axios, logger, configurationUtilities, method: 'get', - url: 'conversations.list?exclude_archived=true&types=public_channel,private_channel&limit=1000', + url: 'conversations.info?channel=channel_id_1', }); }); @@ -137,7 +128,7 @@ describe('Slack API service', () => { throw new Error('request fail'); }); - expect(await service.getChannels()).toEqual({ + expect(await service.validChannelId('channel_id_1')).toEqual({ actionId: SLACK_API_CONNECTOR_ID, message: 'error posting slack message', serviceMessage: 'request fail', @@ -147,7 +138,7 @@ describe('Slack API service', () => { }); describe('postMessage', () => { - test('should call request with correct arguments', async () => { + test('should call request with only channels argument', async () => { requestMock.mockImplementation(() => postMessageResponse); await service.postMessage({ channels: ['general', 'privat'], text: 'a message' }); @@ -163,6 +154,42 @@ describe('Slack API service', () => { }); }); + test('should call request with only channelIds argument', async () => { + requestMock.mockImplementation(() => postMessageResponse); + + await service.postMessage({ + channels: ['general', 'privat'], + channelIds: ['QWEERTYU987', 'POIUYT123'], + text: 'a message', + }); + + expect(requestMock).toHaveBeenCalledTimes(1); + expect(requestMock).toHaveBeenNthCalledWith(1, { + axios, + logger, + configurationUtilities, + method: 'post', + url: 'chat.postMessage', + data: { channel: 'QWEERTYU987', text: 'a message' }, + }); + }); + + test('should call request with channels && channelIds argument', async () => { + requestMock.mockImplementation(() => postMessageResponse); + + await service.postMessage({ channelIds: ['QWEERTYU987', 'POIUYT123'], text: 'a message' }); + + expect(requestMock).toHaveBeenCalledTimes(1); + expect(requestMock).toHaveBeenNthCalledWith(1, { + axios, + logger, + configurationUtilities, + method: 'post', + url: 'chat.postMessage', + data: { channel: 'QWEERTYU987', text: 'a message' }, + }); + }); + test('should throw an error if request to slack fail', async () => { requestMock.mockImplementation(() => { throw new Error('request fail'); diff --git a/x-pack/plugins/stack_connectors/server/connector_types/slack_api/service.ts b/x-pack/plugins/stack_connectors/server/connector_types/slack_api/service.ts index ae85127eb457a..f4ecb95571257 100644 --- a/x-pack/plugins/stack_connectors/server/connector_types/slack_api/service.ts +++ b/x-pack/plugins/stack_connectors/server/connector_types/slack_api/service.ts @@ -5,7 +5,7 @@ * 2.0. */ -import axios, { AxiosHeaders, AxiosResponse } from 'axios'; +import axios, { AxiosResponse } from 'axios'; import { Logger } from '@kbn/core/server'; import { i18n } from '@kbn/i18n'; import { ActionsConfigurationUtilities } from '@kbn/actions-plugin/server/actions_config'; @@ -18,9 +18,8 @@ import type { PostMessageSubActionParams, SlackApiService, PostMessageResponse, - GetChannelsResponse, SlackAPiResponse, - ChannelsResponse, + ValidChannelResponse, } from '../../../common/slack_api/types'; import { retryResultSeconds, @@ -32,9 +31,6 @@ import { import { SLACK_API_CONNECTOR_ID, SLACK_URL } from '../../../common/slack_api/constants'; import { getRetryAfterIntervalFromHeaders } from '../lib/http_response_retry_header'; -const RE_TRY = 5; -const LIMIT = 1000; - const buildSlackExecutorErrorResponse = ({ slackApiError, logger, @@ -106,11 +102,20 @@ const buildSlackExecutorSuccessResponse = ({ }; export const createExternalService = ( - { secrets }: { secrets: { token: string } }, + { + config, + secrets, + }: { + config?: { allowedChannels?: Array<{ id: string; name: string }> }; + secrets: { token: string }; + }, logger: Logger, configurationUtilities: ActionsConfigurationUtilities ): SlackApiService => { const { token } = secrets; + const { allowedChannels } = config || { allowedChannels: [] }; + const allowedChannelIds = allowedChannels?.map((ac) => ac.id); + if (!token) { throw Error(`[Action][${SLACK_CONNECTOR_NAME}]: Wrong configuration.`); } @@ -123,57 +128,30 @@ export const createExternalService = ( }, }); - const getChannels = async (): Promise< - ConnectorTypeExecutorResult - > => { + const validChannelId = async ( + channelId: string + ): Promise> => { try { - const fetchChannels = (cursor: string = ''): Promise> => { - return request({ + const validChannel = (): Promise> => { + return request({ axios: axiosInstance, configurationUtilities, logger, method: 'get', - url: `conversations.list?exclude_archived=true&types=public_channel,private_channel&limit=${LIMIT}${ - cursor.length > 0 ? `&cursor=${cursor}` : '' - }`, + url: `conversations.info?channel=${channelId}`, }); }; - - let numberOfFetch = 0; - let cursor = ''; - const channels: ChannelsResponse[] = []; - let result: AxiosResponse = { - data: { ok: false, channels }, - status: 0, - statusText: '', - headers: {}, - config: { - headers: new AxiosHeaders({}), - }, - }; - - while (numberOfFetch < RE_TRY) { - result = await fetchChannels(cursor); - if (result.data.ok && (result.data?.channels ?? []).length > 0) { - channels.push(...(result.data?.channels ?? [])); - } - if ( - result.data.ok && - result.data.response_metadata && - result.data.response_metadata.next_cursor && - result.data.response_metadata.next_cursor.length > 0 - ) { - numberOfFetch += 1; - cursor = result.data.response_metadata.next_cursor; - } else { - break; - } + if (channelId.length === 0) { + return buildSlackExecutorErrorResponse({ + slackApiError: new Error('The channel id is empty'), + logger, + }); } - result.data.channels = channels; - const responseData = result.data; - return buildSlackExecutorSuccessResponse({ - slackApiResponseData: responseData, + const result = await validChannel(); + + return buildSlackExecutorSuccessResponse({ + slackApiResponseData: result.data, }); } catch (error) { return buildSlackExecutorErrorResponse({ slackApiError: error, logger }); @@ -182,15 +160,47 @@ export const createExternalService = ( const postMessage = async ({ channels, + channelIds = [], text, }: PostMessageSubActionParams): Promise> => { try { + if ( + channelIds.length > 0 && + allowedChannelIds && + allowedChannelIds.length > 0 && + !channelIds.every((cId) => allowedChannelIds.includes(cId)) + ) { + return buildSlackExecutorErrorResponse({ + slackApiError: { + message: `One of channel ids "${channelIds.join()}" is not included in the allowed channels list "${allowedChannelIds.join()}"`, + }, + logger, + }); + } + + // For now, we only allow one channel but we wanted + // to have a array in case we need to allow multiple channels + // in one actions + let channelToUse = channelIds.length > 0 ? channelIds[0] : ''; + if (channelToUse.length === 0 && channels && channels.length > 0 && channels[0].length > 0) { + channelToUse = channels[0]; + } + + if (channelToUse.length === 0) { + return buildSlackExecutorErrorResponse({ + slackApiError: { + message: `The channel is empty"`, + }, + logger, + }); + } + const result: AxiosResponse = await request({ axios: axiosInstance, method: 'post', url: 'chat.postMessage', logger, - data: { channel: channels[0], text }, + data: { channel: channelToUse, text }, configurationUtilities, }); @@ -201,7 +211,7 @@ export const createExternalService = ( }; return { - getChannels, + validChannelId, postMessage, }; }; diff --git a/x-pack/plugins/stack_connectors/server/plugin.ts b/x-pack/plugins/stack_connectors/server/plugin.ts index ce1795b4eb7fb..8e74b3c88395c 100644 --- a/x-pack/plugins/stack_connectors/server/plugin.ts +++ b/x-pack/plugins/stack_connectors/server/plugin.ts @@ -5,10 +5,10 @@ * 2.0. */ -import { PluginInitializerContext, Plugin, CoreSetup } from '@kbn/core/server'; +import { PluginInitializerContext, Plugin, CoreSetup, Logger } from '@kbn/core/server'; import { PluginSetupContract as ActionsPluginSetupContract } from '@kbn/actions-plugin/server'; import { registerConnectorTypes } from './connector_types'; -import { getWellKnownEmailServiceRoute } from './routes'; +import { validSlackApiChannelsRoute, getWellKnownEmailServiceRoute } from './routes'; export interface ConnectorsPluginsSetup { actions: ActionsPluginSetupContract; } @@ -18,13 +18,18 @@ export interface ConnectorsPluginsStart { } export class StackConnectorsPlugin implements Plugin { - constructor(context: PluginInitializerContext) {} + private readonly logger: Logger; + + constructor(context: PluginInitializerContext) { + this.logger = context.logger.get(); + } public setup(core: CoreSetup, plugins: ConnectorsPluginsSetup) { const router = core.http.createRouter(); const { actions } = plugins; getWellKnownEmailServiceRoute(router); + validSlackApiChannelsRoute(router, actions.getActionsConfigurationUtilities(), this.logger); registerConnectorTypes({ actions, diff --git a/x-pack/plugins/stack_connectors/server/routes/index.ts b/x-pack/plugins/stack_connectors/server/routes/index.ts index 2766b99679845..cd9857b2168ed 100644 --- a/x-pack/plugins/stack_connectors/server/routes/index.ts +++ b/x-pack/plugins/stack_connectors/server/routes/index.ts @@ -6,3 +6,4 @@ */ export { getWellKnownEmailServiceRoute } from './get_well_known_email_service'; +export { validSlackApiChannelsRoute } from './valid_slack_api_channels'; diff --git a/x-pack/plugins/stack_connectors/server/routes/valid_slack_api_channels.ts b/x-pack/plugins/stack_connectors/server/routes/valid_slack_api_channels.ts new file mode 100644 index 0000000000000..434f989f56e92 --- /dev/null +++ b/x-pack/plugins/stack_connectors/server/routes/valid_slack_api_channels.ts @@ -0,0 +1,95 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { schema } from '@kbn/config-schema'; +import { + IRouter, + RequestHandlerContext, + KibanaRequest, + IKibanaResponse, + KibanaResponseFactory, + Logger, +} from '@kbn/core/server'; +import axios, { AxiosResponse } from 'axios'; +import { request } from '@kbn/actions-plugin/server/lib/axios_utils'; +import { ActionsConfigurationUtilities } from '@kbn/actions-plugin/server/actions_config'; +import { INTERNAL_BASE_STACK_CONNECTORS_API_PATH } from '../../common'; +import { SLACK_URL } from '../../common/slack_api/constants'; +import { ValidChannelResponse } from '../../common/slack_api/types'; + +const bodySchema = schema.object({ + authToken: schema.string(), + channelIds: schema.arrayOf(schema.string(), { minSize: 1, maxSize: 25 }), +}); + +export const validSlackApiChannelsRoute = ( + router: IRouter, + configurationUtilities: ActionsConfigurationUtilities, + logger: Logger +) => { + router.post( + { + path: `${INTERNAL_BASE_STACK_CONNECTORS_API_PATH}/_slack_api/channels/_valid`, + validate: { + body: bodySchema, + }, + }, + handler + ); + + async function handler( + ctx: RequestHandlerContext, + req: KibanaRequest, + res: KibanaResponseFactory + ): Promise { + const { authToken, channelIds } = req.body; + + const axiosInstance = axios.create({ + baseURL: SLACK_URL, + headers: { + Authorization: `Bearer ${authToken}`, + 'Content-type': 'application/json; charset=UTF-8', + }, + }); + + const validChannelId = ( + channelId: string = '' + ): Promise> => { + return request({ + axios: axiosInstance, + configurationUtilities, + logger, + method: 'get', + url: `conversations.info?channel=${channelId}`, + }); + }; + + const promiseValidChannels = []; + for (const channelId of channelIds) { + promiseValidChannels.push(validChannelId(channelId)); + } + const validChannels: Array<{ id: string; name: string }> = []; + const invalidChannels: string[] = []; + const resultValidChannels = await Promise.all(promiseValidChannels); + + resultValidChannels.forEach((result, resultIdx) => { + if (result.data.ok && result.data?.channel) { + const { id, name } = result.data?.channel; + validChannels.push({ id, name }); + } else if (result.data.error && channelIds[resultIdx]) { + invalidChannels.push(channelIds[resultIdx]); + } + }); + + return res.ok({ + body: { + validChannels, + invalidChannels, + }, + }); + } +}; diff --git a/x-pack/plugins/task_manager/server/mocks.ts b/x-pack/plugins/task_manager/server/mocks.ts index 1363b0ab9b1ee..45a2f117167ca 100644 --- a/x-pack/plugins/task_manager/server/mocks.ts +++ b/x-pack/plugins/task_manager/server/mocks.ts @@ -36,6 +36,7 @@ const createStartMock = () => { bulkDisable: jest.fn(), bulkEnable: jest.fn(), getRegisteredTypes: jest.fn(), + bulkUpdateState: jest.fn(), }; return mock; }; diff --git a/x-pack/plugins/task_manager/server/plugin.ts b/x-pack/plugins/task_manager/server/plugin.ts index 0c1bafe9f4fc1..4c9879f25b591 100644 --- a/x-pack/plugins/task_manager/server/plugin.ts +++ b/x-pack/plugins/task_manager/server/plugin.ts @@ -61,6 +61,7 @@ export type TaskManagerStartContract = Pick< | 'bulkEnable' | 'bulkDisable' | 'bulkSchedule' + | 'bulkUpdateState' > & Pick & { removeIfExists: TaskStore['remove']; @@ -325,6 +326,7 @@ export class TaskManagerPlugin supportsEphemeralTasks: () => this.config.ephemeral_tasks.enabled && this.shouldRunBackgroundTasks, getRegisteredTypes: () => this.definitions.getAllTypes(), + bulkUpdateState: (...args) => taskScheduling.bulkUpdateState(...args), }; } } diff --git a/x-pack/plugins/task_manager/server/task_scheduling.test.ts b/x-pack/plugins/task_manager/server/task_scheduling.test.ts index 9f822b9cd2d76..11a2e8a115d8a 100644 --- a/x-pack/plugins/task_manager/server/task_scheduling.test.ts +++ b/x-pack/plugins/task_manager/server/task_scheduling.test.ts @@ -21,6 +21,7 @@ import { mockLogger } from './test_utils'; import { TaskTypeDictionary } from './task_type_dictionary'; import { ephemeralTaskLifecycleMock } from './ephemeral_task_lifecycle.mock'; import { taskManagerMock } from './mocks'; +import { omit } from 'lodash'; let fakeTimer: sinon.SinonFakeTimers; jest.mock('uuid', () => ({ @@ -370,6 +371,135 @@ describe('TaskScheduling', () => { }); }); + describe('bulkUpdateState', () => { + const id = '01ddff11-e88a-4d13-bc4e-256164e755e2'; + beforeEach(() => { + mockTaskStore.bulkUpdate.mockImplementation(() => + Promise.resolve([{ tag: 'ok', value: taskManagerMock.createTask() }]) + ); + }); + + test('should split search on chunks when input ids array too large', async () => { + mockTaskStore.bulkGet.mockResolvedValue([]); + const taskScheduling = new TaskScheduling(taskSchedulingOpts); + + await taskScheduling.bulkUpdateState(Array.from({ length: 1250 }), jest.fn()); + + expect(mockTaskStore.bulkGet).toHaveBeenCalledTimes(13); + }); + + test('should transform response into correct format', async () => { + const successfulTask = taskManagerMock.createTask({ + id: 'task-1', + enabled: false, + schedule: { interval: '1h' }, + state: { + 'hello i am a state that has been modified': "not really but we're going to pretend", + }, + }); + const failedToUpdateTask = taskManagerMock.createTask({ + id: 'task-2', + enabled: true, + schedule: { interval: '1h' }, + state: { 'this state is unchangeable': 'none shall update me' }, + }); + mockTaskStore.bulkUpdate.mockImplementation(() => + Promise.resolve([ + { tag: 'ok', value: successfulTask }, + { + tag: 'err', + error: { + type: 'task', + id: failedToUpdateTask.id, + error: { + statusCode: 400, + error: 'fail', + message: 'fail', + }, + }, + }, + ]) + ); + mockTaskStore.bulkGet.mockResolvedValue([asOk(successfulTask), asOk(failedToUpdateTask)]); + + const taskScheduling = new TaskScheduling(taskSchedulingOpts); + const result = await taskScheduling.bulkUpdateState( + [successfulTask.id, failedToUpdateTask.id], + jest.fn() + ); + + expect(result).toEqual({ + tasks: [successfulTask], + errors: [ + { + type: 'task', + id: failedToUpdateTask.id, + error: { + statusCode: 400, + error: 'fail', + message: 'fail', + }, + }, + ], + }); + }); + + test('should execute updater function on tasks', async () => { + const task = taskManagerMock.createTask({ + id, + enabled: false, + schedule: { interval: '3h' }, + runAt: new Date('1969-09-13T21:33:58.285Z'), + scheduledAt: new Date('1969-09-10T21:33:58.285Z'), + state: { removeMe: 'please remove me i dont like being in this task manager state' }, + }); + const updaterFn = jest.fn((state) => { + return { + ...omit(state, 'removeMe'), + expectedValue: 'HELLO I AM AN EXPECTED VALUE IT IS VERY NICE TO MEET YOU', + }; + }); + mockTaskStore.bulkUpdate.mockImplementation(() => + Promise.resolve([{ tag: 'ok', value: task }]) + ); + mockTaskStore.bulkGet.mockResolvedValue([asOk(task)]); + + const taskScheduling = new TaskScheduling(taskSchedulingOpts); + await taskScheduling.bulkUpdateState([id], updaterFn); + + const bulkUpdatePayload = mockTaskStore.bulkUpdate.mock.calls[0][0]; + + expect(bulkUpdatePayload).toMatchInlineSnapshot(` + Array [ + Object { + "attempts": 0, + "enabled": false, + "id": "01ddff11-e88a-4d13-bc4e-256164e755e2", + "ownerId": "123", + "params": Object { + "hello": "world", + }, + "retryAt": null, + "runAt": 1969-09-13T21:33:58.285Z, + "schedule": Object { + "interval": "3h", + }, + "scheduledAt": 1969-09-10T21:33:58.285Z, + "scope": undefined, + "startedAt": null, + "state": Object { + "expectedValue": "HELLO I AM AN EXPECTED VALUE IT IS VERY NICE TO MEET YOU", + }, + "status": "idle", + "taskType": "foo", + "user": undefined, + "version": "123", + }, + ] + `); + }); + }); + describe('bulkUpdateSchedules', () => { const id = '01ddff11-e88a-4d13-bc4e-256164e755e2'; beforeEach(() => { diff --git a/x-pack/plugins/task_manager/server/task_scheduling.ts b/x-pack/plugins/task_manager/server/task_scheduling.ts index 5ee848c716bec..795e563986586 100644 --- a/x-pack/plugins/task_manager/server/task_scheduling.ts +++ b/x-pack/plugins/task_manager/server/task_scheduling.ts @@ -186,6 +186,23 @@ export class TaskScheduling { }); } + public async bulkUpdateState( + taskIds: string[], + stateMapFn: (s: ConcreteTaskInstance['state'], id: string) => ConcreteTaskInstance['state'] + ) { + return await retryableBulkUpdate({ + taskIds, + store: this.store, + getTasks: async (ids) => await this.bulkGetTasksHelper(ids), + filter: () => true, + map: (task) => ({ + ...task, + state: stateMapFn(task.state, task.id), + }), + validate: false, + }); + } + /** * Bulk updates schedules for tasks by ids. * Only tasks with `idle` status will be updated, as for the tasks which have `running` status, diff --git a/x-pack/plugins/task_manager/server/task_validator.test.ts b/x-pack/plugins/task_manager/server/task_validator.test.ts index 08c18591e468e..52822adf6f49f 100644 --- a/x-pack/plugins/task_manager/server/task_validator.test.ts +++ b/x-pack/plugins/task_manager/server/task_validator.test.ts @@ -64,7 +64,9 @@ describe('TaskValidator', () => { expect(result).toEqual(task); }); - it(`should fail to validate the state schema when the task type doesn't have stateSchemaByVersion defined`, () => { + // TODO: Remove skip once all task types have defined their state schema. + // https://github.com/elastic/kibana/issues/159347 + it.skip(`should fail to validate the state schema when the task type doesn't have stateSchemaByVersion defined`, () => { const definitions = new TaskTypeDictionary(mockLogger()); definitions.registerTaskDefinitions({ foo: fooTaskDefinition, @@ -320,7 +322,9 @@ describe('TaskValidator', () => { expect(result).toEqual(task); }); - it(`should fail to validate the state schema when the task type doesn't have stateSchemaByVersion defined`, () => { + // TODO: Remove skip once all task types have defined their state schema. + // https://github.com/elastic/kibana/issues/159347 + it.skip(`should fail to validate the state schema when the task type doesn't have stateSchemaByVersion defined`, () => { const definitions = new TaskTypeDictionary(mockLogger()); definitions.registerTaskDefinitions({ foo: fooTaskDefinition, diff --git a/x-pack/plugins/task_manager/server/task_validator.ts b/x-pack/plugins/task_manager/server/task_validator.ts index 900af04cd1207..61d9a903dd5b4 100644 --- a/x-pack/plugins/task_manager/server/task_validator.ts +++ b/x-pack/plugins/task_manager/server/task_validator.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { max, memoize, isEmpty } from 'lodash'; +import { max, memoize } from 'lodash'; import type { Logger } from '@kbn/core/server'; import type { ObjectType } from '@kbn/config-schema'; import { TaskTypeDictionary } from './task_type_dictionary'; @@ -64,13 +64,14 @@ export class TaskValidator { const taskTypeDef = this.definitions.get(task.taskType); const latestStateSchema = this.cachedGetLatestStateSchema(taskTypeDef); - let state = task.state; - - // Skip validating tasks that don't use state - if (!latestStateSchema && isEmpty(state)) { + // TODO: Remove once all task types have defined their state schema. + // https://github.com/elastic/kibana/issues/159347 + // Otherwise, failures on read / write would occur. (don't forget to unskip test) + if (!latestStateSchema) { return task; } + let state = task.state; try { state = this.getValidatedStateSchema( this.migrateTaskState(task.state, task.stateVersion, taskTypeDef, latestStateSchema), @@ -110,8 +111,10 @@ export class TaskValidator { const taskTypeDef = this.definitions.get(task.taskType); const latestStateSchema = this.cachedGetLatestStateSchema(taskTypeDef); - // Skip validating tasks that don't use state - if (!latestStateSchema && isEmpty(task.state)) { + // TODO: Remove once all task types have defined their state schema. + // https://github.com/elastic/kibana/issues/159347 + // Otherwise, failures on read / write would occur. (don't forget to unskip test) + if (!latestStateSchema) { return task; } diff --git a/x-pack/plugins/telemetry_collection_xpack/schema/xpack_plugins.json b/x-pack/plugins/telemetry_collection_xpack/schema/xpack_plugins.json index db7cac9e55cd3..be6ceb1dab3b7 100644 --- a/x-pack/plugins/telemetry_collection_xpack/schema/xpack_plugins.json +++ b/x-pack/plugins/telemetry_collection_xpack/schema/xpack_plugins.json @@ -5672,6 +5672,25 @@ } } }, + "custom_dashboards": { + "properties": { + "kuery_fields": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of up to 500 unique fields used to create the custom dashboards across all spaces. Example [service.language.name, service.name] " + } + } + }, + "total": { + "type": "long", + "_meta": { + "description": "Total number of custom dashboards retrived from the saved object across all spaces" + } + } + } + }, "per_service": { "type": "array", "items": { @@ -6077,6 +6096,20 @@ } } }, + "custom_dashboards": { + "properties": { + "took": { + "properties": { + "ms": { + "type": "long", + "_meta": { + "description": "Execution time in milliseconds for the \"custom_dashboards\" task" + } + } + } + } + } + }, "per_service": { "properties": { "took": { diff --git a/x-pack/plugins/transform/public/app/hooks/use_data_view_exists.ts b/x-pack/plugins/transform/public/app/hooks/use_data_view_exists.ts index d74fa9c909a5d..b81a5e7f9eb25 100644 --- a/x-pack/plugins/transform/public/app/hooks/use_data_view_exists.ts +++ b/x-pack/plugins/transform/public/app/hooks/use_data_view_exists.ts @@ -26,7 +26,7 @@ export const useDataViewExists = (items: TransformListRow[]) => { return false; } const config = items[0].config; - const indexName = Array.isArray(config.dest.index) ? config.dest.index[0] : config.dest.index; + const indexName = config.dest.index; if (indexName === undefined) { return false; diff --git a/x-pack/plugins/transform/public/app/hooks/use_delete_transform.tsx b/x-pack/plugins/transform/public/app/hooks/use_delete_transform.tsx index a7ed779c47cc7..f88ef1e39d446 100644 --- a/x-pack/plugins/transform/public/app/hooks/use_delete_transform.tsx +++ b/x-pack/plugins/transform/public/app/hooks/use_delete_transform.tsx @@ -56,7 +56,7 @@ export const useDeleteIndexAndTargetIndex = (items: TransformListRow[]) => { useEffect(() => { if (dataViewExistsError !== null && items.length === 1) { const config = items[0].config; - const indexName = Array.isArray(config.dest.index) ? config.dest.index[0] : config.dest.index; + const indexName = config.dest.index; toastNotifications.addDanger( i18n.translate( diff --git a/x-pack/plugins/transform/public/app/sections/transform_management/components/action_discover/use_action_discover.tsx b/x-pack/plugins/transform/public/app/sections/transform_management/components/action_discover/use_action_discover.tsx index 24ee1f9dfe092..6d818c90ba7fc 100644 --- a/x-pack/plugins/transform/public/app/sections/transform_management/components/action_discover/use_action_discover.tsx +++ b/x-pack/plugins/transform/public/app/sections/transform_management/components/action_discover/use_action_discover.tsx @@ -19,9 +19,6 @@ import { DiscoverActionName, } from './discover_action_name'; -const getDataViewTitleFromTargetIndex = (item: TransformListRow) => - Array.isArray(item.config.dest.index) ? item.config.dest.index.join(',') : item.config.dest.index; - export type DiscoverAction = ReturnType; export const useDiscoverAction = (forceDisable: boolean) => { const { @@ -48,8 +45,7 @@ export const useDiscoverAction = (forceDisable: boolean) => { (item: TransformListRow) => { const locator = share.url.locators.get(DISCOVER_APP_LOCATOR); if (!locator) return; - const dataViewTitle = getDataViewTitleFromTargetIndex(item); - const dataViewId = getDataViewIdByTitle(dataViewTitle); + const dataViewId = getDataViewIdByTitle(item.config.dest.index); locator.navigateSync({ indexPatternId: dataViewId, }); @@ -59,8 +55,7 @@ export const useDiscoverAction = (forceDisable: boolean) => { const dataViewExists = useCallback( (item: TransformListRow) => { - const dataViewTitle = getDataViewTitleFromTargetIndex(item); - const dataViewId = getDataViewIdByTitle(dataViewTitle); + const dataViewId = getDataViewIdByTitle(item.config.dest.index); return dataViewId !== undefined; }, [getDataViewIdByTitle] diff --git a/x-pack/plugins/transform/public/app/sections/transform_management/components/transform_list/expanded_row.tsx b/x-pack/plugins/transform/public/app/sections/transform_management/components/transform_list/expanded_row.tsx index 079b3f72b59bd..0ab68c5481387 100644 --- a/x-pack/plugins/transform/public/app/sections/transform_management/components/transform_list/expanded_row.tsx +++ b/x-pack/plugins/transform/public/app/sections/transform_management/components/transform_list/expanded_row.tsx @@ -101,7 +101,7 @@ export const ExpandedRow: FC = ({ item, onAlertEdit, transformsStatsLoadi }, { title: 'transform_version', - description: item.config.version, + description: item.config.version ?? '', }, { title: 'description', @@ -120,9 +120,7 @@ export const ExpandedRow: FC = ({ item, onAlertEdit, transformsStatsLoadi }, { title: 'destination_index', - description: Array.isArray(item.config.dest.index) - ? item.config.dest.index[0] - : item.config.dest.index, + description: item.config.dest.index, }, { title: 'authorization', diff --git a/x-pack/plugins/transform/server/routes/api/transforms.ts b/x-pack/plugins/transform/server/routes/api/transforms.ts index 822441c07812b..80d44c0e907bf 100644 --- a/x-pack/plugins/transform/server/routes/api/transforms.ts +++ b/x-pack/plugins/transform/server/routes/api/transforms.ts @@ -677,9 +677,7 @@ async function deleteTransforms( transform_id: transformId, }); const transformConfig = body.transforms[0]; - destinationIndex = Array.isArray(transformConfig.dest.index) - ? transformConfig.dest.index[0] - : transformConfig.dest.index; + destinationIndex = transformConfig.dest.index; } catch (getTransformConfigError) { transformDeleted.error = getTransformConfigError.meta.body.error; results[transformId] = { @@ -692,19 +690,6 @@ async function deleteTransforms( continue; } } - // If user checks box to delete the destinationIndex associated with the job - if (destinationIndex && deleteDestIndex) { - try { - // If user does have privilege to delete the index, then delete the index - // if no permission then return 403 forbidden - await esClient.asCurrentUser.indices.delete({ - index: destinationIndex, - }); - destIndexDeleted.success = true; - } catch (deleteIndexError) { - destIndexDeleted.error = deleteIndexError.meta.body.error; - } - } // Delete the data view if there's a data view that matches the name of dest index if (destinationIndex && deleteDestDataView) { @@ -723,8 +708,11 @@ async function deleteTransforms( await esClient.asCurrentUser.transform.deleteTransform({ transform_id: transformId, force: shouldForceDelete && needToForceDelete, + // @ts-expect-error ES type needs to be updated + delete_dest_index: deleteDestIndex, }); transformDeleted.success = true; + destIndexDeleted.success = deleteDestIndex; } catch (deleteTransformJobError) { transformDeleted.error = deleteTransformJobError.meta.body.error; if (deleteTransformJobError.statusCode === 403) { diff --git a/x-pack/plugins/translations/translations/fr-FR.json b/x-pack/plugins/translations/translations/fr-FR.json index 04b8f1a36fc51..884507b4372a1 100644 --- a/x-pack/plugins/translations/translations/fr-FR.json +++ b/x-pack/plugins/translations/translations/fr-FR.json @@ -14715,8 +14715,6 @@ "xpack.enterpriseSearch.workplaceSearch.groups.sourcesModalLabel": "sources de contenu organisationnelles", "xpack.enterpriseSearch.workplaceSearch.integrations.azureBlob": "Stockage Blob Azure", "xpack.enterpriseSearch.workplaceSearch.integrations.azureBlobDescription": "Effectuez des recherches sur votre contenu sur Stockage Blob Azure avec Enterprise Search.", - "xpack.enterpriseSearch.workplaceSearch.integrations.boxDescription": "Effectuez des recherches dans vos fichiers et dossiers stockés sur Box avec Workplace Search.", - "xpack.enterpriseSearch.workplaceSearch.integrations.boxName": "Box", "xpack.enterpriseSearch.workplaceSearch.integrations.googleCloud": "Google Cloud Storage", "xpack.enterpriseSearch.workplaceSearch.integrations.googleCloudDescription": "Effectuez des recherches sur votre contenu sur Google Cloud Storage avec Enterprise Search.", "xpack.enterpriseSearch.workplaceSearch.integrations.googleDriveDescription": "Effectuez des recherches dans vos documents sur Google Drive avec Workplace Search.", @@ -14739,8 +14737,6 @@ "xpack.enterpriseSearch.workplaceSearch.integrations.sharepointOnlineName": "SharePoint Online", "xpack.enterpriseSearch.workplaceSearch.integrations.sharepointServerDescription": "Effectuez des recherches dans vos fichiers stockés sur le serveur Microsoft SharePoint avec Workplace Search.", "xpack.enterpriseSearch.workplaceSearch.integrations.sharepointServerName": "Serveur SharePoint", - "xpack.enterpriseSearch.workplaceSearch.integrations.zendeskDescription": "Effectuez des recherches dans vos tickets sur Zendesk avec Workplace Search.", - "xpack.enterpriseSearch.workplaceSearch.integrations.zendeskName": "Zendesk", "xpack.enterpriseSearch.workplaceSearch.keepEditing.button": "Continuer la modification", "xpack.enterpriseSearch.workplaceSearch.label.label": "Étiquette", "xpack.enterpriseSearch.workplaceSearch.name.label": "Nom", @@ -21420,13 +21416,9 @@ "xpack.lens.xyChart.verticalAxisLabel": "Axe vertical", "xpack.lens.xyChart.verticalLeftAxisLabel": "Axe gauche vertical", "xpack.lens.xyChart.verticalRightAxisLabel": "Axe droit vertical", - "xpack.lens.xySuggestions.asPercentageTitle": "Pourcentage", - "xpack.lens.xySuggestions.barChartTitle": "Graphique à barres", "xpack.lens.xySuggestions.emptyAxisTitle": "(vide)", "xpack.lens.xySuggestions.flipTitle": "Retourner", "xpack.lens.xySuggestions.lineChartTitle": "Graphique en courbes", - "xpack.lens.xySuggestions.stackedChartTitle": "Empilé", - "xpack.lens.xySuggestions.unstackedChartTitle": "Non empilé", "xpack.lens.xySuggestions.yAxixConjunctionSign": " & ", "xpack.lens.xyVisualization.areaLabel": "Aire", "xpack.lens.xyVisualization.barGroupLabel": "Barres", @@ -30614,7 +30606,7 @@ "xpack.securitySolution.detectionEngine.createRule.mlRuleTypeDescription": "Machine Learning", "xpack.securitySolution.detectionEngine.createRule.newTermsRuleTypeDescription": "Nouveaux termes", "xpack.securitySolution.detectionEngine.createRule.pageTitle": "Créer une nouvelle règle", - "xpack.securitySolution.detectionEngine.createRule.QueryLabel": "Requête personnalisée", + "xpack.securitySolution.detectionEngine.createRule.queryLabel": "Requête personnalisée", "xpack.securitySolution.detectionEngine.createRule.queryRuleTypeDescription": "Requête", "xpack.securitySolution.detectionEngine.createRule.ruleActionsField.ruleActionsFormErrorsTitle": "Veuillez corriger les problèmes répertoriés ci-dessous", "xpack.securitySolution.detectionEngine.createRule.rulePreviewDescription": "L'aperçu des règles reflète la configuration actuelle de vos paramètres et exceptions de règles. Cliquez sur l'icône d'actualisation pour afficher l'aperçu mis à jour.", @@ -35831,7 +35823,6 @@ "xpack.stackConnectors.components.slack_api.connectorTypeTitle": "Envoyer vers Slack", "xpack.stackConnectors.components.slack_api.error.requiredSlackChannel": "Le canal est requis.", "xpack.stackConnectors.components.slack_api.error.requiredSlackMessageText": "Le message est requis.", - "xpack.stackConnectors.components.slack_api.errorFetchChannelsText": "Impossible de récupérer les canaux, veuillez vérifier la validité de votre token", "xpack.stackConnectors.components.slack_api.selectMessageText": "Envoyer des messages aux canaux Slack.", "xpack.stackConnectors.components.slack_api.successFetchChannelsText": "Récupérer tous les canaux", "xpack.stackConnectors.components.slack_api.tokenTextFieldLabel": "Token d'API", @@ -36002,7 +35993,6 @@ "xpack.stackConnectors.slack.errorPostingErrorMessage": "erreur lors de la publication du message slack", "xpack.stackConnectors.slack.errorPostingRetryLaterErrorMessage": "erreur lors de la publication d'un message slack, réessayer ultérieurement", "xpack.stackConnectors.slack.params.channelsComboBoxLabel": "Canaux", - "xpack.stackConnectors.slack.params.componentError.getChannelsRequestFailed": "Impossible de récupérer la liste des canaux Slack", "xpack.stackConnectors.slack.title": "Slack", "xpack.stackConnectors.slack.unexpectedNullResponseErrorMessage": "réponse nulle inattendue de Slack", "xpack.stackConnectors.slackApi.title": "API Slack", diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index 59adf32647cba..4319709c23bea 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -14729,8 +14729,6 @@ "xpack.enterpriseSearch.workplaceSearch.groups.sourcesModalLabel": "組織コンテンツソース", "xpack.enterpriseSearch.workplaceSearch.integrations.azureBlob": "Azure Blob Storage", "xpack.enterpriseSearch.workplaceSearch.integrations.azureBlobDescription": "エンタープライズ サーチでAzure Blob Storageのコンテンツを検索します。", - "xpack.enterpriseSearch.workplaceSearch.integrations.boxDescription": "Workplace Searchを使用して、Boxに保存されたファイルとフォルダーを検索します。", - "xpack.enterpriseSearch.workplaceSearch.integrations.boxName": "Box", "xpack.enterpriseSearch.workplaceSearch.integrations.googleCloud": "Google Cloud Storage", "xpack.enterpriseSearch.workplaceSearch.integrations.googleCloudDescription": "エンタープライズ サーチでGoogle Cloud Storageのコンテンツを検索します。", "xpack.enterpriseSearch.workplaceSearch.integrations.googleDriveDescription": "Workplace Searchを使用して、Google Driveのドキュメントを検索します。", @@ -14753,8 +14751,6 @@ "xpack.enterpriseSearch.workplaceSearch.integrations.sharepointOnlineName": "SharePoint Online", "xpack.enterpriseSearch.workplaceSearch.integrations.sharepointServerDescription": "Workplace Searchを使用して、Microsoft SharePoint Serverに保存されたファイルを検索します。", "xpack.enterpriseSearch.workplaceSearch.integrations.sharepointServerName": "SharePoint Server", - "xpack.enterpriseSearch.workplaceSearch.integrations.zendeskDescription": "Workplace Searchを使用して、Zendeskのチケットを検索します。", - "xpack.enterpriseSearch.workplaceSearch.integrations.zendeskName": "Zendesk", "xpack.enterpriseSearch.workplaceSearch.keepEditing.button": "編集を続行", "xpack.enterpriseSearch.workplaceSearch.label.label": "ラベル", "xpack.enterpriseSearch.workplaceSearch.name.label": "名前", @@ -21435,13 +21431,9 @@ "xpack.lens.xyChart.verticalAxisLabel": "縦軸", "xpack.lens.xyChart.verticalLeftAxisLabel": "縦左軸", "xpack.lens.xyChart.verticalRightAxisLabel": "縦右軸", - "xpack.lens.xySuggestions.asPercentageTitle": "割合(%)", - "xpack.lens.xySuggestions.barChartTitle": "棒グラフ", "xpack.lens.xySuggestions.emptyAxisTitle": "(空)", "xpack.lens.xySuggestions.flipTitle": "反転", "xpack.lens.xySuggestions.lineChartTitle": "折れ線グラフ", - "xpack.lens.xySuggestions.stackedChartTitle": "スタック", - "xpack.lens.xySuggestions.unstackedChartTitle": "スタックが解除されました", "xpack.lens.xySuggestions.yAxixConjunctionSign": " & ", "xpack.lens.xyVisualization.areaLabel": "エリア", "xpack.lens.xyVisualization.barGroupLabel": "棒", @@ -30613,7 +30605,7 @@ "xpack.securitySolution.detectionEngine.createRule.mlRuleTypeDescription": "機械学習", "xpack.securitySolution.detectionEngine.createRule.newTermsRuleTypeDescription": "新しい用語", "xpack.securitySolution.detectionEngine.createRule.pageTitle": "新規ルールを作成", - "xpack.securitySolution.detectionEngine.createRule.QueryLabel": "カスタムクエリ", + "xpack.securitySolution.detectionEngine.createRule.queryLabel": "カスタムクエリ", "xpack.securitySolution.detectionEngine.createRule.queryRuleTypeDescription": "クエリ", "xpack.securitySolution.detectionEngine.createRule.ruleActionsField.ruleActionsFormErrorsTitle": "次の一覧の問題を解決してください", "xpack.securitySolution.detectionEngine.createRule.rulePreviewDescription": "ルールプレビューには、ルール設定と例外の現在の構成が反映されます。更新アイコンをクリックすると、更新されたプレビューが表示されます。", @@ -35830,7 +35822,6 @@ "xpack.stackConnectors.components.slack_api.connectorTypeTitle": "Slack に送信", "xpack.stackConnectors.components.slack_api.error.requiredSlackChannel": "チャンネルが必要です。", "xpack.stackConnectors.components.slack_api.error.requiredSlackMessageText": "メッセージが必要です。", - "xpack.stackConnectors.components.slack_api.errorFetchChannelsText": "チャンネルを取得できません。トークンの有効期限を確認してください", "xpack.stackConnectors.components.slack_api.selectMessageText": "メッセージをSlackチャンネルに送信します。", "xpack.stackConnectors.components.slack_api.successFetchChannelsText": "すべてのチャンネルを取得", "xpack.stackConnectors.components.slack_api.tokenTextFieldLabel": "APIトークン", @@ -36001,7 +35992,6 @@ "xpack.stackConnectors.slack.errorPostingErrorMessage": "slack メッセージの投稿エラー", "xpack.stackConnectors.slack.errorPostingRetryLaterErrorMessage": "slack メッセージの投稿エラー、後ほど再試行", "xpack.stackConnectors.slack.params.channelsComboBoxLabel": "チャンネル", - "xpack.stackConnectors.slack.params.componentError.getChannelsRequestFailed": "Slackチャンネルリストを取得できませんでした", "xpack.stackConnectors.slack.title": "Slack", "xpack.stackConnectors.slack.unexpectedNullResponseErrorMessage": "Slack から予期せぬ null 応答", "xpack.stackConnectors.slackApi.title": "Slack API", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index 213e73960ce74..fdb3d3ac3d227 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -14729,8 +14729,6 @@ "xpack.enterpriseSearch.workplaceSearch.groups.sourcesModalLabel": "组织内容源", "xpack.enterpriseSearch.workplaceSearch.integrations.azureBlob": "Azure Blob 存储", "xpack.enterpriseSearch.workplaceSearch.integrations.azureBlobDescription": "使用 Enterprise Search 在 Azure Blob 存储上搜索您的内容。", - "xpack.enterpriseSearch.workplaceSearch.integrations.boxDescription": "通过 Workplace Search 搜索存储在 Box 上的文件和文件夹。", - "xpack.enterpriseSearch.workplaceSearch.integrations.boxName": "Box", "xpack.enterpriseSearch.workplaceSearch.integrations.googleCloud": "Google Cloud Storage", "xpack.enterpriseSearch.workplaceSearch.integrations.googleCloudDescription": "使用 Enterprise Search 在 Google Cloud Storage 上搜索您的内容。", "xpack.enterpriseSearch.workplaceSearch.integrations.googleDriveDescription": "通过 Workplace Search 搜索 Google 云端硬盘上的文档。", @@ -14753,8 +14751,6 @@ "xpack.enterpriseSearch.workplaceSearch.integrations.sharepointOnlineName": "Sharepoint", "xpack.enterpriseSearch.workplaceSearch.integrations.sharepointServerDescription": "通过 Workplace Search 搜索存储在 Microsoft SharePoint Server 上的文件。", "xpack.enterpriseSearch.workplaceSearch.integrations.sharepointServerName": "SharePoint Server", - "xpack.enterpriseSearch.workplaceSearch.integrations.zendeskDescription": "通过 Workplace Search 搜索 Zendesk 上的工单。", - "xpack.enterpriseSearch.workplaceSearch.integrations.zendeskName": "Zendesk", "xpack.enterpriseSearch.workplaceSearch.keepEditing.button": "继续编辑", "xpack.enterpriseSearch.workplaceSearch.label.label": "标签", "xpack.enterpriseSearch.workplaceSearch.name.label": "名称", @@ -21435,13 +21431,9 @@ "xpack.lens.xyChart.verticalAxisLabel": "垂直轴", "xpack.lens.xyChart.verticalLeftAxisLabel": "垂直左轴", "xpack.lens.xyChart.verticalRightAxisLabel": "垂直右轴", - "xpack.lens.xySuggestions.asPercentageTitle": "百分比", - "xpack.lens.xySuggestions.barChartTitle": "条形图", "xpack.lens.xySuggestions.emptyAxisTitle": "(空)", "xpack.lens.xySuggestions.flipTitle": "翻转", "xpack.lens.xySuggestions.lineChartTitle": "折线图", - "xpack.lens.xySuggestions.stackedChartTitle": "堆叠", - "xpack.lens.xySuggestions.unstackedChartTitle": "非堆叠", "xpack.lens.xySuggestions.yAxixConjunctionSign": " & ", "xpack.lens.xyVisualization.areaLabel": "面积图", "xpack.lens.xyVisualization.barGroupLabel": "条形图", @@ -30609,7 +30601,7 @@ "xpack.securitySolution.detectionEngine.createRule.mlRuleTypeDescription": "Machine Learning", "xpack.securitySolution.detectionEngine.createRule.newTermsRuleTypeDescription": "新字词", "xpack.securitySolution.detectionEngine.createRule.pageTitle": "创建新规则", - "xpack.securitySolution.detectionEngine.createRule.QueryLabel": "定制查询", + "xpack.securitySolution.detectionEngine.createRule.queryLabel": "定制查询", "xpack.securitySolution.detectionEngine.createRule.queryRuleTypeDescription": "查询", "xpack.securitySolution.detectionEngine.createRule.ruleActionsField.ruleActionsFormErrorsTitle": "请修复下面所列的问题", "xpack.securitySolution.detectionEngine.createRule.rulePreviewDescription": "规则预览反映了您的规则设置和例外的当前配置,单击刷新图标可查看已更新的预览。", @@ -35824,7 +35816,6 @@ "xpack.stackConnectors.components.slack_api.connectorTypeTitle": "发送到 Slack", "xpack.stackConnectors.components.slack_api.error.requiredSlackChannel": "“频道”必填。", "xpack.stackConnectors.components.slack_api.error.requiredSlackMessageText": "“消息”必填。", - "xpack.stackConnectors.components.slack_api.errorFetchChannelsText": "无法提取频道,请检查您令牌的有效性", "xpack.stackConnectors.components.slack_api.selectMessageText": "向 Slack 频道发送消息。", "xpack.stackConnectors.components.slack_api.successFetchChannelsText": "提取所有频道", "xpack.stackConnectors.components.slack_api.tokenTextFieldLabel": "API 令牌", @@ -35995,7 +35986,6 @@ "xpack.stackConnectors.slack.errorPostingErrorMessage": "发布 slack 消息时出错", "xpack.stackConnectors.slack.errorPostingRetryLaterErrorMessage": "发布 slack 消息时出错,稍后重试", "xpack.stackConnectors.slack.params.channelsComboBoxLabel": "频道", - "xpack.stackConnectors.slack.params.componentError.getChannelsRequestFailed": "无法检索 Slack 频道列表", "xpack.stackConnectors.slack.title": "Slack", "xpack.stackConnectors.slack.unexpectedNullResponseErrorMessage": "来自 slack 的异常空响应", "xpack.stackConnectors.slackApi.title": "Slack API", diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/alerts_table.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/alerts_table.test.tsx index 564ac2d80bad9..16e7af7c79425 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/alerts_table.test.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/alerts_table.test.tsx @@ -53,6 +53,12 @@ jest.mock('@kbn/kibana-react-plugin/public', () => { useKibana: () => ({ services: { cases: mockCaseService, + notifications: { + toasts: { + addDanger: jest.fn(), + addSuccess: jest.fn(), + }, + }, }, }), }; diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/bulk_actions/bulk_actions.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/bulk_actions/bulk_actions.test.tsx index ff05e9e282e9e..e028ae1867a8e 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/bulk_actions/bulk_actions.test.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/bulk_actions/bulk_actions.test.tsx @@ -49,6 +49,12 @@ const mockCaseService = createCasesServiceMock(); const mockKibana = jest.fn().mockReturnValue({ services: { cases: mockCaseService, + notifications: { + toasts: { + addDanger: jest.fn(), + addSuccess: jest.fn(), + }, + }, }, }); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/hooks/translations.ts b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/hooks/translations.ts index 80b346b833f41..56054948d3ac0 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/hooks/translations.ts +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/hooks/translations.ts @@ -48,3 +48,10 @@ export const ALERTS_ALREADY_ATTACHED_TO_CASE = i18n.translate( defaultMessage: 'All selected alerts are already attached to the case', } ); + +export const MARK_AS_UNTRACKED = i18n.translate( + 'xpack.triggersActionsUI.alerts.table.actions.markAsUntracked', + { + defaultMessage: 'Mark as untracked', + } +); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/hooks/use_bulk_actions.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/hooks/use_bulk_actions.test.tsx index 158867ebb5a53..b6d9616b9fc7d 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/hooks/use_bulk_actions.test.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/hooks/use_bulk_actions.test.tsx @@ -6,7 +6,7 @@ */ import { renderHook } from '@testing-library/react-hooks'; -import { useBulkActions, useBulkAddToCaseActions } from './use_bulk_actions'; +import { useBulkActions, useBulkAddToCaseActions, useBulkUntrackActions } from './use_bulk_actions'; import { AppMockRenderer, createAppMockRenderer } from '../../test_utils'; import { createCasesServiceMock } from '../index.mock'; @@ -43,6 +43,7 @@ describe('bulk action hooks', () => { const refresh = jest.fn(); const clearSelection = jest.fn(); const openNewCase = jest.fn(); + const setIsBulkActionsLoading = jest.fn(); const openExistingCase = jest.fn().mockImplementation(({ getAttachments }) => { getAttachments({ theCase: { id: caseId } }); @@ -295,14 +296,40 @@ describe('bulk action hooks', () => { }); }); + describe('useBulkUntrackActions', () => { + beforeEach(() => { + jest.clearAllMocks(); + }); + it('should not how the bulk actions when the user lacks any observability permissions', () => { + mockKibana.mockImplementation(() => ({ + services: { + application: { capabilities: {} }, + }, + })); + const { result } = renderHook( + () => useBulkUntrackActions({ setIsBulkActionsLoading, refresh, clearSelection }), + { + wrapper: appMockRender.AppWrapper, + } + ); + + expect(result.current.length).toBe(0); + }); + }); + describe('useBulkActions', () => { beforeEach(() => { jest.clearAllMocks(); - mockKibana.mockImplementation(() => ({ services: { cases: mockCaseService } })); + mockKibana.mockImplementation(() => ({ + services: { + cases: mockCaseService, + application: { capabilities: { infrastructure: { show: true } } }, + }, + })); mockCaseService.helpers.canUseCases = jest.fn().mockReturnValue({ create: true, read: true }); }); - it('appends the case bulk actions', async () => { + it('appends the case and untrack bulk actions', async () => { const { result } = renderHook( () => useBulkActions({ alerts: [], query: {}, casesConfig, refresh }), { @@ -331,6 +358,14 @@ describe('bulk action hooks', () => { "label": "Add to existing case", "onClick": [Function], }, + Object { + "data-test-subj": "mark-as-untracked", + "disableOnQuery": true, + "disabledLabel": "Mark as untracked", + "key": "mark-as-untracked", + "label": "Mark as untracked", + "onClick": [Function], + }, ], }, ] diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/hooks/use_bulk_actions.ts b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/hooks/use_bulk_actions.ts index 59a9ad8d1e99f..47a892ef76331 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/hooks/use_bulk_actions.ts +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/hooks/use_bulk_actions.ts @@ -27,9 +27,11 @@ import { ADD_TO_EXISTING_CASE, ADD_TO_NEW_CASE, ALERTS_ALREADY_ATTACHED_TO_CASE, + MARK_AS_UNTRACKED, NO_ALERTS_ADDED_TO_CASE, } from './translations'; import { TimelineItem } from '../bulk_actions/components/toolbar'; +import { useBulkUntrackAlerts } from './use_bulk_untrack_alerts'; interface BulkActionsProps { query: Pick; @@ -51,6 +53,9 @@ export interface UseBulkActions { type UseBulkAddToCaseActionsProps = Pick & Pick; +type UseBulkUntrackActionsProps = Pick & + Pick; + const filterAlertsAlreadyAttachedToCase = (alerts: TimelineItem[], caseId: string) => alerts.filter( (alert) => @@ -171,6 +176,60 @@ export const useBulkAddToCaseActions = ({ ]); }; +export const useBulkUntrackActions = ({ + setIsBulkActionsLoading, + refresh, + clearSelection, +}: UseBulkUntrackActionsProps) => { + const onSuccess = useCallback(() => { + refresh(); + clearSelection(); + }, [clearSelection, refresh]); + + const { application } = useKibana().services; + const { mutateAsync: untrackAlerts } = useBulkUntrackAlerts(); + // Check if at least one Observability feature is enabled + if (!application?.capabilities) return []; + const hasApmPermission = application.capabilities.apm?.['alerting:show']; + const hasInfrastructurePermission = application.capabilities.infrastructure?.show; + const hasLogsPermission = application.capabilities.logs?.show; + const hasUptimePermission = application.capabilities.uptime?.show; + const hasSloPermission = application.capabilities.slo?.show; + const hasObservabilityPermission = application.capabilities.observability?.show; + + if ( + !hasApmPermission && + !hasInfrastructurePermission && + !hasLogsPermission && + !hasUptimePermission && + !hasSloPermission && + !hasObservabilityPermission + ) + return []; + + return [ + { + label: MARK_AS_UNTRACKED, + key: 'mark-as-untracked', + disableOnQuery: true, + disabledLabel: MARK_AS_UNTRACKED, + 'data-test-subj': 'mark-as-untracked', + onClick: async (alerts?: TimelineItem[]) => { + if (!alerts) return; + const alertUuids = alerts.map((alert) => alert._id); + const indices = alerts.map((alert) => alert._index ?? ''); + try { + setIsBulkActionsLoading(true); + await untrackAlerts({ indices, alertUuids }); + onSuccess(); + } finally { + setIsBulkActionsLoading(false); + } + }, + }, + ]; +}; + export function useBulkActions({ alerts, casesConfig, @@ -184,15 +243,24 @@ export function useBulkActions({ const clearSelection = () => { updateBulkActionsState({ action: BulkActionsVerbs.clear }); }; + const setIsBulkActionsLoading = (isLoading: boolean = true) => { + updateBulkActionsState({ action: BulkActionsVerbs.updateAllLoadingState, isLoading }); + }; const caseBulkActions = useBulkAddToCaseActions({ casesConfig, refresh, clearSelection }); + const untrackBulkActions = useBulkUntrackActions({ + setIsBulkActionsLoading, + refresh, + clearSelection, + }); + + const initialItems = [...caseBulkActions, ...untrackBulkActions]; - const bulkActions = - caseBulkActions.length !== 0 - ? addItemsToInitialPanel({ - panels: configBulkActionPanels, - items: caseBulkActions, - }) - : configBulkActionPanels; + const bulkActions = initialItems.length + ? addItemsToInitialPanel({ + panels: configBulkActionPanels, + items: initialItems, + }) + : configBulkActionPanels; const isBulkActionsColumnActive = bulkActions.length !== 0; @@ -200,10 +268,6 @@ export function useBulkActions({ updateBulkActionsState({ action: BulkActionsVerbs.rowCountUpdate, rowCount: alerts.length }); }, [alerts, updateBulkActionsState]); - const setIsBulkActionsLoading = (isLoading: boolean = true) => { - updateBulkActionsState({ action: BulkActionsVerbs.updateAllLoadingState, isLoading }); - }; - return { isBulkActionsColumnActive, getBulkActionsLeadingControlColumn, diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/hooks/use_bulk_untrack_alerts.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/hooks/use_bulk_untrack_alerts.tsx new file mode 100644 index 0000000000000..baec1aeaf86d3 --- /dev/null +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/hooks/use_bulk_untrack_alerts.tsx @@ -0,0 +1,60 @@ +/* + * 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 { useMutation } from '@tanstack/react-query'; +import { INTERNAL_BASE_ALERTING_API_PATH } from '@kbn/alerting-plugin/common'; +import { useKibana } from '../../../../common'; + +export const useBulkUntrackAlerts = () => { + const { + http, + notifications: { toasts }, + } = useKibana().services; + + const untrackAlerts = useMutation( + ['untrackAlerts'], + ({ indices, alertUuids }) => { + try { + const body = JSON.stringify({ + ...(indices?.length ? { indices } : {}), + ...(alertUuids ? { alert_uuids: alertUuids } : {}), + }); + return http.post(`${INTERNAL_BASE_ALERTING_API_PATH}/alerts/_bulk_untrack`, { body }); + } catch (e) { + throw new Error(`Unable to parse bulk untrack params: ${e}`); + } + }, + { + onError: (_err, params) => { + toasts.addDanger( + i18n.translate( + 'xpack.triggersActionsUI.rules.deleteConfirmationModal.errorNotification.descriptionText', + { + defaultMessage: 'Failed to untrack {uuidsCount, plural, one {alert} other {alerts}}', + values: { uuidsCount: params.alertUuids.length }, + } + ) + ); + }, + + onSuccess: (_, params) => { + toasts.addSuccess( + i18n.translate( + 'xpack.triggersActionsUI.rules.deleteConfirmationModal.successNotification.descriptionText', + { + defaultMessage: 'Untracked {uuidsCount, plural, one {alert} other {alerts}}', + values: { uuidsCount: params.alertUuids.length }, + } + ) + ); + }, + } + ); + + return untrackAlerts; +}; diff --git a/x-pack/plugins/triggers_actions_ui/public/index.ts b/x-pack/plugins/triggers_actions_ui/public/index.ts index 6d3c3bbee0d5f..7dd3d36ce6c06 100644 --- a/x-pack/plugins/triggers_actions_ui/public/index.ts +++ b/x-pack/plugins/triggers_actions_ui/public/index.ts @@ -152,3 +152,5 @@ export const getNotifyWhenOptions = async () => { export { transformRule } from './application/lib/rule_api/common_transformations'; export { validateActionFilterQuery } from './application/lib/value_validators'; + +export { useBulkUntrackAlerts } from './application/sections/alerts_table/hooks/use_bulk_untrack_alerts'; diff --git a/x-pack/test/accessibility/apps/lens.ts b/x-pack/test/accessibility/apps/lens.ts index 4029cf7787551..1153d61d1fc68 100644 --- a/x-pack/test/accessibility/apps/lens.ts +++ b/x-pack/test/accessibility/apps/lens.ts @@ -138,7 +138,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { field: 'bytes', }); - await testSubjects.click('lnsSuggestion-barChart > lnsSuggestion'); + await testSubjects.click('lnsSuggestion-barVerticalStacked > lnsSuggestion'); await a11y.testAppSnapshot(); }); diff --git a/x-pack/test/alerting_api_integration/packages/helpers/es_test_index_tool.ts b/x-pack/test/alerting_api_integration/packages/helpers/es_test_index_tool.ts index 07fd5dba0cf23..7607cecc3e2f2 100644 --- a/x-pack/test/alerting_api_integration/packages/helpers/es_test_index_tool.ts +++ b/x-pack/test/alerting_api_integration/packages/helpers/es_test_index_tool.ts @@ -5,6 +5,7 @@ * 2.0. */ import type { Client } from '@elastic/elasticsearch'; +import { DeleteByQueryRequest } from '@elastic/elasticsearch/lib/api/types'; export const ES_TEST_INDEX_NAME = '.kibana-alerting-test-data'; @@ -135,13 +136,12 @@ export class ESTestIndexTool { } async removeAll() { - const params = { + const params: DeleteByQueryRequest = { index: this.index, - body: { - query: { - match_all: {}, - }, + query: { + match_all: {}, }, + conflicts: 'proceed', }; return await this.es.deleteByQuery(params); } diff --git a/x-pack/test/alerting_api_integration/security_and_spaces/group1/tests/alerting/bulk_untrack.ts b/x-pack/test/alerting_api_integration/security_and_spaces/group1/tests/alerting/bulk_untrack.ts new file mode 100644 index 0000000000000..b2710626032fe --- /dev/null +++ b/x-pack/test/alerting_api_integration/security_and_spaces/group1/tests/alerting/bulk_untrack.ts @@ -0,0 +1,132 @@ +/* + * 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 { ES_TEST_INDEX_NAME } from '@kbn/alerting-api-integration-helpers'; +import { ALERT_STATUS, ALERT_UUID } from '@kbn/rule-data-utils'; +import { getUrlPrefix, ObjectRemover, getTestRuleData, getEventLog } from '../../../../common/lib'; +import { FtrProviderContext } from '../../../../common/ftr_provider_context'; +import { UserAtSpaceScenarios } from '../../../scenarios'; + +const alertAsDataIndex = '.internal.alerts-observability.test.alerts.alerts-default-000001'; + +// eslint-disable-next-line import/no-default-export +export default function bulkUntrackTests({ getService }: FtrProviderContext) { + const supertest = getService('supertest'); + const supertestWithoutAuth = getService('supertestWithoutAuth'); + const retry = getService('retry'); + const es = getService('es'); + + describe('bulk untrack', () => { + const objectRemover = new ObjectRemover(supertest); + + afterEach(async () => { + await es.deleteByQuery({ + index: alertAsDataIndex, + query: { + match_all: {}, + }, + conflicts: 'proceed', + }); + objectRemover.removeAll(); + }); + + for (const scenario of UserAtSpaceScenarios) { + describe(scenario.id, () => { + it('should bulk mark alerts as untracked', async () => { + const { body: createdRule } = await supertest + .post(`${getUrlPrefix(scenario.space.id)}/api/alerting/rule`) + .set('kbn-xsrf', 'foo') + .send( + getTestRuleData({ + rule_type_id: 'test.always-firing-alert-as-data', + schedule: { interval: '24h' }, + throttle: undefined, + notify_when: undefined, + params: { + index: ES_TEST_INDEX_NAME, + reference: 'test', + }, + }) + ) + .expect(200); + objectRemover.add(scenario.space.id, createdRule.id, 'rule', 'alerting'); + + await retry.try(async () => { + return await getEventLog({ + getService, + spaceId: scenario.space.id, + type: 'alert', + id: createdRule.id, + provider: 'alerting', + actions: new Map([['active-instance', { equal: 2 }]]), + }); + }); + + await retry.try(async () => { + const { + hits: { hits: activeAlerts }, + } = await es.search({ + index: alertAsDataIndex, + body: { query: { match_all: {} } }, + }); + + activeAlerts.forEach((activeAlert: any) => { + expect(activeAlert._source[ALERT_STATUS]).eql('active'); + }); + }); + + const { + hits: { hits: activeAlerts }, + } = await es.search({ + index: alertAsDataIndex, + body: { query: { match_all: {} } }, + }); + + const ids = activeAlerts.map((activeAlert: any) => activeAlert._source[ALERT_UUID]); + + const response = await supertestWithoutAuth + .post(`${getUrlPrefix(scenario.space.id)}/internal/alerting/alerts/_bulk_untrack`) + .set('kbn-xsrf', 'foo') + .auth(scenario.user.username, scenario.user.password) + .send({ + indices: [alertAsDataIndex], + alert_uuids: ids, + }); + + switch (scenario.id) { + case 'no_kibana_privileges at space1': + case 'space_1_all at space1': + case 'space_1_all at space2': + case 'global_read at space1': + case 'space_1_all_alerts_none_actions at space1': + case 'space_1_all_with_restricted_fixture at space1': + expect(response.statusCode).to.eql(403); + break; + case 'superuser at space1': + expect(response.statusCode).to.eql(204); + await retry.try(async () => { + const { + hits: { hits: untrackedAlerts }, + } = await es.search({ + index: alertAsDataIndex, + body: { query: { match_all: {} } }, + }); + + untrackedAlerts.forEach((untrackedAlert: any) => { + expect(untrackedAlert._source[ALERT_STATUS]).eql('untracked'); + }); + }); + break; + default: + throw new Error(`Scenario untested: ${JSON.stringify(scenario)}`); + } + }); + }); + } + }); +} diff --git a/x-pack/test/alerting_api_integration/security_and_spaces/group1/tests/alerting/index.ts b/x-pack/test/alerting_api_integration/security_and_spaces/group1/tests/alerting/index.ts index 24679b228c379..8c0fb30872ac3 100644 --- a/x-pack/test/alerting_api_integration/security_and_spaces/group1/tests/alerting/index.ts +++ b/x-pack/test/alerting_api_integration/security_and_spaces/group1/tests/alerting/index.ts @@ -32,6 +32,7 @@ export default function alertingTests({ loadTestFile, getService }: FtrProviderC loadTestFile(require.resolve('./get_alert_summary')); loadTestFile(require.resolve('./rule_types')); loadTestFile(require.resolve('./retain_api_key')); + loadTestFile(require.resolve('./bulk_untrack')); }); }); } 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 83dfff9c08d08..2aed9770c56b3 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,7 +62,8 @@ export default function createAlertsAsDataInstallResourcesTest({ getService }: F 'kibana.alert.rule.execution.uuid', ]; - describe('alerts as data', () => { + // Failing: See https://github.com/elastic/kibana/issues/167945 + describe.skip('alerts as data', () => { afterEach(() => objectRemover.removeAll()); after(async () => { await es.deleteByQuery({ index: alertsAsDataIndex, query: { match_all: {} } }); @@ -130,8 +131,8 @@ export default function createAlertsAsDataInstallResourcesTest({ getService }: F // alert UUID should equal doc id expect(source[ALERT_UUID]).to.equal(alertDocsRun1[i]._id); - // duration should be '0' since this is a new alert - expect(source[ALERT_DURATION]).to.equal('0'); + // duration should be 0 since this is a new alert + expect(source[ALERT_DURATION]).to.equal(0); // start should be defined expect(source[ALERT_START]).to.match(timestampPattern); @@ -210,8 +211,7 @@ export default function createAlertsAsDataInstallResourcesTest({ getService }: F expect(source[ALERT_UUID]).to.equal(alertDocsRun2[i]._id); // duration should be greater than 0 since these are not new alerts - const durationAsNumber = Number(source[ALERT_DURATION]); - expect(durationAsNumber).to.be.greaterThan(0); + expect(source[ALERT_DURATION]).to.be.greaterThan(0); } // alertA, run2 @@ -425,8 +425,8 @@ export default function createAlertsAsDataInstallResourcesTest({ getService }: F expect(alertCDocRun3[ALERT_START]).not.to.equal(alertCDocRun2[ALERT_START]); // timestamp should be defined and not the same as prior run expect(alertCDocRun3['@timestamp']).to.match(timestampPattern); - // duration should be '0' since this is a new alert - expect(alertCDocRun3[ALERT_DURATION]).to.equal('0'); + // duration should be 0 since this is a new alert + expect(alertCDocRun3[ALERT_DURATION]).to.equal(0); // flapping false, flapping history should be history from prior run with additional entry expect(alertCDocRun3[ALERT_FLAPPING]).to.equal(false); expect(alertCDocRun3[ALERT_FLAPPING_HISTORY]).to.eql([ diff --git a/x-pack/test/api_integration/apis/aiops/test_data.ts b/x-pack/test/api_integration/apis/aiops/test_data.ts index e9f42a002ac49..9ec8b69a3ca5d 100644 --- a/x-pack/test/api_integration/apis/aiops/test_data.ts +++ b/x-pack/test/api_integration/apis/aiops/test_data.ts @@ -43,6 +43,8 @@ export const logRateAnalysisTestData: TestData[] = [ errorFilter: 'add_error', significantTerms: [ { + key: 'day_of_week:Thursday', + type: 'keyword', fieldName: 'day_of_week', fieldValue: 'Thursday', doc_count: 157, @@ -54,6 +56,8 @@ export const logRateAnalysisTestData: TestData[] = [ normalizedScore: 0.7661649691018979, }, { + key: 'day_of_week:Wednesday', + type: 'keyword', fieldName: 'day_of_week', fieldValue: 'Wednesday', doc_count: 145, diff --git a/x-pack/test/apm_api_integration/tests/alerts/helpers/alerting_api_helper.ts b/x-pack/test/apm_api_integration/tests/alerts/helpers/alerting_api_helper.ts index c32f052886961..e0423d9372d1d 100644 --- a/x-pack/test/apm_api_integration/tests/alerts/helpers/alerting_api_helper.ts +++ b/x-pack/test/apm_api_integration/tests/alerts/helpers/alerting_api_helper.ts @@ -160,7 +160,11 @@ export async function deleteApmRules(supertest: SuperTest) { } export function deleteApmAlerts(es: Client) { - return es.deleteByQuery({ index: APM_ALERTS_INDEX, query: { match_all: {} } }); + return es.deleteByQuery({ + index: APM_ALERTS_INDEX, + conflicts: 'proceed', + query: { match_all: {} }, + }); } export async function clearKibanaApmEventLog(es: Client) { diff --git a/x-pack/test/examples/triggers_actions_ui_examples/alerts_table.ts b/x-pack/test/examples/triggers_actions_ui_examples/alerts_table.ts index 3351dfd0064b5..947849dbde332 100644 --- a/x-pack/test/examples/triggers_actions_ui_examples/alerts_table.ts +++ b/x-pack/test/examples/triggers_actions_ui_examples/alerts_table.ts @@ -54,7 +54,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { await waitAndClickByTestId('close'); const headers = await find.allByCssSelector('.euiDataGridHeaderCell'); - expect(headers.length).to.be(6); + expect(headers.length).to.be(7); }); it('should take into account the column type when sorting', async () => { diff --git a/x-pack/test/functional/apps/aiops/test_data.ts b/x-pack/test/functional/apps/aiops/test_data.ts index d0b9035c69ced..7a1b47cf9ca63 100644 --- a/x-pack/test/functional/apps/aiops/test_data.ts +++ b/x-pack/test/functional/apps/aiops/test_data.ts @@ -21,7 +21,7 @@ export const kibanaLogsDataViewTestData: TestData = { fieldSelectorApplyAvailable: true, action: { type: 'LogPatternAnalysis', - tableRowId: '488337254', + tableRowId: '157690148', expected: { queryBar: 'clientip:30.156.16.164 AND host.keyword:elastic-elastic-elastic.org AND ip:30.156.16.163 AND response.keyword:404 AND machine.os.keyword:win xp AND geo.dest:IN AND geo.srcdest:US\\:IN', @@ -233,7 +233,9 @@ const getArtificialLogDataViewTestData = (analysisType: LogRateAnalysisType): Te }); export const logRateAnalysisTestData: TestData[] = [ - kibanaLogsDataViewTestData, + // Temporarily disabling since the data seems out of sync on local dev installs and CI + // so it's not possible to compare and update assertions accordingly. + // kibanaLogsDataViewTestData, farequoteDataViewTestData, farequoteDataViewTestDataWithQuery, getArtificialLogDataViewTestData(LOG_RATE_ANALYSIS_TYPE.SPIKE), diff --git a/x-pack/test/functional/apps/dashboard/group1/preserve_url.ts b/x-pack/test/functional/apps/dashboard/group1/preserve_url.ts index db9912be25625..cb5713e4d03ee 100644 --- a/x-pack/test/functional/apps/dashboard/group1/preserve_url.ts +++ b/x-pack/test/functional/apps/dashboard/group1/preserve_url.ts @@ -10,13 +10,11 @@ import { FtrProviderContext } from '../../../ftr_provider_context'; export default function ({ getService, getPageObjects }: FtrProviderContext) { const PageObjects = getPageObjects(['common', 'dashboard', 'spaceSelector', 'header']); - const appsMenu = getService('appsMenu'); const globalNav = getService('globalNav'); const kibanaServer = getService('kibanaServer'); const spacesService = getService('spaces'); - // Failing: See https://github.com/elastic/kibana/issues/166900 - describe.skip('preserve url', function () { + describe('preserve url', function () { const anotherSpace = 'another-space'; before(async () => { @@ -39,7 +37,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { await PageObjects.dashboard.navigateToApp(); await PageObjects.dashboard.loadSavedDashboard('A Dashboard'); await PageObjects.common.navigateToApp('home'); - await appsMenu.clickLink('Dashboard', { category: 'kibana' }); + await PageObjects.dashboard.navigateToAppFromAppsMenu(); await PageObjects.dashboard.loadSavedDashboard('A Dashboard'); await PageObjects.header.waitUntilLoadingHasFinished(); const activeTitle = await globalNav.getLastBreadcrumb(); @@ -56,7 +54,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { await PageObjects.spaceSelector.expectHomePage('another-space'); // other space - await appsMenu.clickLink('Dashboard', { category: 'kibana' }); + await PageObjects.dashboard.navigateToAppFromAppsMenu(); await PageObjects.dashboard.loadSavedDashboard('A Dashboard in another space'); await PageObjects.spaceSelector.openSpacesNav(); @@ -64,7 +62,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { await PageObjects.spaceSelector.expectHomePage('default'); // default space - await appsMenu.clickLink('Dashboard', { category: 'kibana' }); + await PageObjects.dashboard.navigateToAppFromAppsMenu(); await PageObjects.dashboard.waitForRenderComplete(); const activeTitleDefaultSpace = await globalNav.getLastBreadcrumb(); expect(activeTitleDefaultSpace).to.be('A Dashboard'); @@ -74,7 +72,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { await PageObjects.spaceSelector.expectHomePage('another-space'); // other space - await appsMenu.clickLink('Dashboard', { category: 'kibana' }); + await PageObjects.dashboard.navigateToAppFromAppsMenu(); await PageObjects.dashboard.waitForRenderComplete(); const activeTitleOtherSpace = await globalNav.getLastBreadcrumb(); expect(activeTitleOtherSpace).to.be('A Dashboard in another space'); diff --git a/x-pack/test/functional/apps/lens/group3/epoch_millis.ts b/x-pack/test/functional/apps/lens/group3/epoch_millis.ts index 9096eaa1aab18..c13f31c97dc60 100644 --- a/x-pack/test/functional/apps/lens/group3/epoch_millis.ts +++ b/x-pack/test/functional/apps/lens/group3/epoch_millis.ts @@ -43,7 +43,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { operation: 'count', field: 'Records', }); - await PageObjects.lens.waitForVisualization('legacyMtrVis'); + await PageObjects.lens.waitForVisualization('lnsSuggestion-countOfRecords'); expect(await PageObjects.lens.getDatatableCellText(0, 0)).to.eql('1'); }); @@ -52,7 +52,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { await PageObjects.lens.enableTimeShift(); await PageObjects.lens.setTimeShift('3d'); - await PageObjects.lens.waitForVisualization('legacyMtrVis'); + await PageObjects.lens.waitForVisualization('lnsSuggestion-countOfRecords3D'); expect(await PageObjects.lens.getDatatableCellText(0, 0)).to.eql('2'); }); }); diff --git a/x-pack/test/functional/apps/lens/group5/drag_and_drop.ts b/x-pack/test/functional/apps/lens/group5/drag_and_drop.ts index d6129d6c1a2d6..d1a449a6fa30b 100644 --- a/x-pack/test/functional/apps/lens/group5/drag_and_drop.ts +++ b/x-pack/test/functional/apps/lens/group5/drag_and_drop.ts @@ -359,11 +359,12 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { await PageObjects.lens.createLayer('data'); + // here the editor will error out as the mandatory vertical axis is missing await PageObjects.lens.dragDimensionToExtraDropType( 'lns-layerPanel-0 > lnsXY_xDimensionPanel > lns-dimensionTrigger', 'lns-layerPanel-1 > lnsXY_xDimensionPanel', 'duplicate', - xyChartContainer + 'workspace-error-message' ); await PageObjects.lens.assertFocusedDimension('@timestamp [1]'); @@ -446,11 +447,12 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { 'lns-layerPanel-1 > lnsXY_splitDimensionPanel > lns-empty-dimension' ); + // here the editor will error out as the mandatory vertical axis is missing await PageObjects.lens.dragDimensionToExtraDropType( 'lns-layerPanel-1 > lnsXY_splitDimensionPanel > lns-dimensionTrigger', 'lns-layerPanel-0 > lnsXY_splitDimensionPanel', 'swap', - xyChartContainer + 'workspace-error-message' ); expect(await PageObjects.lens.getDimensionTriggersTexts('lns-layerPanel-0')).to.eql([ @@ -464,11 +466,12 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { ]); }); it('can combine dimensions', async () => { + // here the editor will error out as the mandatory vertical axis is missing await PageObjects.lens.dragDimensionToExtraDropType( 'lns-layerPanel-0 > lnsXY_splitDimensionPanel > lns-dimensionTrigger', 'lns-layerPanel-1 > lnsXY_splitDimensionPanel', 'combine', - xyChartContainer + 'workspace-error-message' ); expect(await PageObjects.lens.getDimensionTriggersTexts('lns-layerPanel-0')).to.eql([ diff --git a/x-pack/test/functional/apps/lens/group5/formula.ts b/x-pack/test/functional/apps/lens/group5/formula.ts index 641cb4d120caa..0bd1d662608cb 100644 --- a/x-pack/test/functional/apps/lens/group5/formula.ts +++ b/x-pack/test/functional/apps/lens/group5/formula.ts @@ -174,7 +174,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { operation: 'formula', }); - await PageObjects.lens.waitForVisualization('legacyMtrVis'); + await PageObjects.lens.waitForVisualization(); expect(await PageObjects.lens.getWorkspaceErrorCount()).to.eql(0); }); diff --git a/x-pack/test/functional/apps/lens/open_in_lens/tsvb/dashboard.ts b/x-pack/test/functional/apps/lens/open_in_lens/tsvb/dashboard.ts index 9232860012bc9..21e485ebe269c 100644 --- a/x-pack/test/functional/apps/lens/open_in_lens/tsvb/dashboard.ts +++ b/x-pack/test/functional/apps/lens/open_in_lens/tsvb/dashboard.ts @@ -90,7 +90,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { await panelActions.clickEdit(); await visualize.navigateToLensFromAnotherVisulization(); - await lens.waitForVisualization('legacyMtrVis'); + await lens.waitForVisualization('xyVisChart'); await retry.try(async () => { const dimensions = await testSubjects.findAll('lns-dimensionTrigger'); expect(await dimensions[1].getVisibleText()).to.be('Count of records'); diff --git a/x-pack/test/functional/apps/ml/anomaly_detection_result_views/forecasts.ts b/x-pack/test/functional/apps/ml/anomaly_detection_result_views/forecasts.ts index 63f72381d0185..93ec331230a8a 100644 --- a/x-pack/test/functional/apps/ml/anomaly_detection_result_views/forecasts.ts +++ b/x-pack/test/functional/apps/ml/anomaly_detection_result_views/forecasts.ts @@ -42,8 +42,7 @@ export default function ({ getService }: FtrProviderContext) { describe('forecasts', function () { this.tags(['ml']); - // FLAKY: https://github.com/elastic/kibana/issues/164381 - describe.skip('with single metric job', function () { + describe('with single metric job', function () { before(async () => { await esArchiver.loadIfNeeded('x-pack/test/functional/es_archives/ml/farequote'); await ml.testResources.createIndexPatternIfNeeded('ft_farequote', '@timestamp'); diff --git a/x-pack/test/functional/apps/ml/data_frame_analytics/classification_creation_saved_search.ts b/x-pack/test/functional/apps/ml/data_frame_analytics/classification_creation_saved_search.ts index 02c14a37277ec..1444c13192e56 100644 --- a/x-pack/test/functional/apps/ml/data_frame_analytics/classification_creation_saved_search.ts +++ b/x-pack/test/functional/apps/ml/data_frame_analytics/classification_creation_saved_search.ts @@ -14,7 +14,8 @@ export default function ({ getService }: FtrProviderContext) { const ml = getService('ml'); const editedDescription = 'Edited description'; - describe('classification saved search creation', function () { + // FLAKY: https://github.com/elastic/kibana/issues/147020 + describe.skip('classification saved search creation', function () { before(async () => { await esArchiver.loadIfNeeded('x-pack/test/functional/es_archives/ml/farequote_small'); await ml.testResources.createIndexPatternIfNeeded('ft_farequote_small', '@timestamp'); diff --git a/x-pack/test/functional/apps/ml/data_visualizer/index_data_visualizer.ts b/x-pack/test/functional/apps/ml/data_visualizer/index_data_visualizer.ts index 794fad083be22..073023ed6b5dc 100644 --- a/x-pack/test/functional/apps/ml/data_visualizer/index_data_visualizer.ts +++ b/x-pack/test/functional/apps/ml/data_visualizer/index_data_visualizer.ts @@ -244,7 +244,7 @@ export default function ({ getPageObject, getService }: FtrProviderContext) { if (lensMetricField) { await ml.dataVisualizerTable.assertLensActionShowChart( lensMetricField.fieldName, - 'legacyMtrVis' + 'xyVisChart' ); await ml.navigation.browserBackTo('dataVisualizerTableContainer'); } @@ -255,7 +255,7 @@ export default function ({ getPageObject, getService }: FtrProviderContext) { if (lensNonMetricField) { await ml.dataVisualizerTable.assertLensActionShowChart( lensNonMetricField.fieldName, - 'legacyMtrVis' + 'xyVisChart' ); await ml.navigation.browserBackTo('dataVisualizerTableContainer'); } diff --git a/x-pack/test/functional/services/ml/forecast.ts b/x-pack/test/functional/services/ml/forecast.ts index c26216c97adfe..8b131578fd65f 100644 --- a/x-pack/test/functional/services/ml/forecast.ts +++ b/x-pack/test/functional/services/ml/forecast.ts @@ -11,6 +11,7 @@ import { FtrProviderContext } from '../../ftr_provider_context'; export function MachineLearningForecastProvider({ getService }: FtrProviderContext) { const testSubjects = getService('testSubjects'); + const retry = getService('retry'); return { async assertForecastButtonExists() { @@ -32,14 +33,22 @@ export function MachineLearningForecastProvider({ getService }: FtrProviderConte }, async assertForecastChartElementsExists() { - await testSubjects.existOrFail(`mlForecastArea`, { - timeout: 30 * 1000, + await retry.tryForTime(3000, async () => { + await testSubjects.existOrFail(`mlForecastArea`, { + timeout: 30 * 1000, + }); }); - await testSubjects.existOrFail(`mlForecastValuesline`, { - timeout: 30 * 1000, + + await retry.tryForTime(3000, async () => { + await testSubjects.existOrFail(`mlForecastValuesline`, { + timeout: 30 * 1000, + }); }); - await testSubjects.existOrFail(`mlForecastMarkers`, { - timeout: 30 * 1000, + + await retry.tryForTime(3000, async () => { + await testSubjects.existOrFail(`mlForecastMarkers`, { + timeout: 30 * 1000, + }); }); }, diff --git a/x-pack/test/functional_with_es_ssl/apps/triggers_actions_ui/connectors/slack.ts b/x-pack/test/functional_with_es_ssl/apps/triggers_actions_ui/connectors/slack.ts index f975bed9f965e..14dbc0db0c241 100644 --- a/x-pack/test/functional_with_es_ssl/apps/triggers_actions_ui/connectors/slack.ts +++ b/x-pack/test/functional_with_es_ssl/apps/triggers_actions_ui/connectors/slack.ts @@ -68,7 +68,12 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { objectRemover.add(connector.id, 'action', 'actions'); }); - it('should create the web api connector', async () => { + /* FUTURE ENGINEER + /* With this https://github.com/elastic/kibana/pull/167150, we added an allowed list of channel IDs + /* we can not have this test running anymore because this allowed list is required + /* we will have to figure out how to simulate the slack API through functional/API integration testing + */ + it.skip('should create the web api connector', async () => { const connectorName = generateUniqueKey(); await actions.slack.createNewWebAPI({ name: connectorName, @@ -165,7 +170,12 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { expect(toastTitle).to.eql(`Created rule "${ruleName}"`); }); - it('should save webapi type slack connectors', async () => { + /* FUTURE ENGINEER + /* With this https://github.com/elastic/kibana/pull/167150, we added an allowed list of channel IDs + /* we can not have this test running anymore because this allowed list is required + /* we will have to figure out how to simulate the slack API through functional/API integration testing + */ + it.skip('should save webapi type slack connectors', async () => { await setupRule(); await selectSlackConnectorInRuleAction({ connectorId: webApiAction.id, diff --git a/x-pack/test/saved_object_tagging/functional/tests/create.ts b/x-pack/test/saved_object_tagging/functional/tests/create.ts index 16c8958c0fa62..a2bde4ab579dc 100644 --- a/x-pack/test/saved_object_tagging/functional/tests/create.ts +++ b/x-pack/test/saved_object_tagging/functional/tests/create.ts @@ -15,7 +15,8 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { const tagManagementPage = PageObjects.tagManagement; - describe('create tag', () => { + // FLAKY: https://github.com/elastic/kibana/issues/167812 + describe.skip('create tag', () => { let tagModal: typeof tagManagementPage['tagModal']; before(async () => { diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_actions/rule_actions.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_actions/rule_actions.cy.ts index dba23548e5d20..7916458c29ba0 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_actions/rule_actions.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_actions/rule_actions.cy.ts @@ -25,7 +25,7 @@ import { } from '../../../tasks/create_new_rule'; import { login } from '../../../tasks/login'; import { visit } from '../../../tasks/navigation'; - +import { openRuleManagementPageViaBreadcrumbs } from '../../../tasks/rules_management'; import { CREATE_RULE_URL } from '../../../urls/navigation'; // TODO: https://github.com/elastic/kibana/issues/161539 @@ -60,6 +60,7 @@ describe( fillScheduleRuleAndContinue(rule); fillRuleAction(actions); createAndEnableRule(); + openRuleManagementPageViaBreadcrumbs(); goToRuleDetailsOf(rule.name); diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/common_flows.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/common_flows.cy.ts index aa9ef9cd975bd..dffb50ab6dae6 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/common_flows.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/common_flows.cy.ts @@ -21,7 +21,7 @@ import { RULE_NAME_HEADER } from '../../../screens/rule_details'; import { createTimeline } from '../../../tasks/api_calls/timelines'; import { deleteAlertsAndRules } from '../../../tasks/common'; import { - createAndEnableRuleOnly, + createAndEnableRule, expandAdvancedSettings, fillCustomInvestigationFields, fillDescription, @@ -93,8 +93,9 @@ describe('Common rule creation flows', { tags: ['@ess', '@serverless'] }, () => cy.get(ABOUT_CONTINUE_BTN).should('exist').click(); cy.get(SCHEDULE_CONTINUE_BUTTON).click(); - createAndEnableRuleOnly(); + createAndEnableRule(); + // UI redirects to rule creation page of a created rule cy.get(RULE_NAME_HEADER).should('contain', ruleFields.ruleName); }); }); diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/custom_query_rule.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/custom_query_rule.cy.ts index 07f0b8535d835..e4bb4b2bfba83 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/custom_query_rule.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/custom_query_rule.cy.ts @@ -10,10 +10,10 @@ import { RULE_NAME_HEADER } from '../../../screens/rule_details'; import { deleteAlertsAndRules } from '../../../tasks/common'; import { - createAndEnableRuleOnly, fillScheduleRuleAndContinue, fillAboutRuleMinimumAndContinue, fillDefineCustomRuleAndContinue, + createRuleWithoutEnabling, } from '../../../tasks/create_new_rule'; import { login } from '../../../tasks/login'; import { visit } from '../../../tasks/navigation'; @@ -37,7 +37,7 @@ describe('Create custom query rule', { tags: ['@ess', '@serverless'] }, () => { fillDefineCustomRuleAndContinue(rule); fillAboutRuleMinimumAndContinue(rule); fillScheduleRuleAndContinue(rule); - createAndEnableRuleOnly(); + createRuleWithoutEnabling(); cy.log('Asserting we have a new rule created'); cy.get(RULE_NAME_HEADER).should('contain', rule.name); diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/custom_query_rule_data_view.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/custom_query_rule_data_view.cy.ts index 5c23d4dab1b3a..32eb50ef25d53 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/custom_query_rule_data_view.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/custom_query_rule_data_view.cy.ts @@ -64,6 +64,7 @@ import { import { login } from '../../../tasks/login'; import { visit } from '../../../tasks/navigation'; +import { openRuleManagementPageViaBreadcrumbs } from '../../../tasks/rules_management'; import { getDetails, waitForTheRuleToBeExecuted } from '../../../tasks/rule_details'; import { CREATE_RULE_URL } from '../../../urls/navigation'; @@ -97,6 +98,7 @@ describe('Custom query rules', { tags: ['@ess', '@serverless', '@brokenInServerl fillAboutRuleAndContinue(rule); fillScheduleRuleAndContinue(rule); createAndEnableRule(); + openRuleManagementPageViaBreadcrumbs(); cy.get(CUSTOM_RULES_BTN).should('have.text', 'Custom rules (1)'); @@ -161,6 +163,7 @@ describe('Custom query rules', { tags: ['@ess', '@serverless', '@brokenInServerl fillScheduleRuleAndContinue(rule); createRuleWithoutEnabling(); + openRuleManagementPageViaBreadcrumbs(); goToRuleDetailsOf(rule.name); diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/custom_saved_query_rule.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/custom_saved_query_rule.cy.ts index a2abf05ecab40..c0498bdfcbcb1 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/custom_saved_query_rule.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/custom_saved_query_rule.cy.ts @@ -43,9 +43,9 @@ import { visitRuleDetailsPage, } from '../../../tasks/rule_details'; import { createRule } from '../../../tasks/api_calls/rules'; - import { CREATE_RULE_URL } from '../../../urls/navigation'; import { RULES_MANAGEMENT_URL } from '../../../urls/rules_management'; +import { openRuleManagementPageViaBreadcrumbs } from '../../../tasks/rules_management'; const savedQueryName = 'custom saved query'; const savedQueryQuery = 'process.name: test'; @@ -87,6 +87,7 @@ describe('Saved query rules', { tags: ['@ess', '@serverless', '@brokenInServerle fillScheduleRuleAndContinue(rule); cy.intercept('POST', '/api/detection_engine/rules').as('savedQueryRule'); createAndEnableRule(); + openRuleManagementPageViaBreadcrumbs(); cy.wait('@savedQueryRule').then(({ response }) => { // created rule should have saved_query type diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/esql_rule_create.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/esql_rule_create.cy.ts index 857043cd0a84d..386b6c919a5e6 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/esql_rule_create.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/esql_rule_create.cy.ts @@ -31,8 +31,8 @@ import { selectEsqlRuleType, getDefineContinueButton, fillEsqlQueryBar, - pressRuleCreateBtn, fillAboutSpecificEsqlRuleAndContinue, + createRuleWithoutEnabling, } from '../../../tasks/create_new_rule'; import { login } from '../../../tasks/login'; import { visit } from '../../../tasks/navigation'; @@ -68,7 +68,7 @@ describe.skip('Detection ES|QL rules, creation', { tags: ['@ess'] }, () => { fillDefineEsqlRuleAndContinue(rule); fillAboutRuleAndContinue(rule); fillScheduleRuleAndContinue(rule); - pressRuleCreateBtn(); + createRuleWithoutEnabling(); // ensures after rule save ES|QL rule is displayed cy.get(RULE_NAME_HEADER).should('contain', `${rule.name}`); @@ -91,7 +91,7 @@ describe.skip('Detection ES|QL rules, creation', { tags: ['@ess'] }, () => { fillDefineEsqlRuleAndContinue(rule); fillAboutSpecificEsqlRuleAndContinue({ ...rule, rule_name_override: 'test_id' }); fillScheduleRuleAndContinue(rule); - pressRuleCreateBtn(); + createRuleWithoutEnabling(); // ensure rule name override is displayed on details page getDetails(RULE_NAME_OVERRIDE_DETAILS).should('have.text', 'test_id'); diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/esql_rule_details.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/esql_rule_details.cy.ts index 1ceef1fd79826..c4cdba4416f26 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/esql_rule_details.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/esql_rule_details.cy.ts @@ -8,7 +8,7 @@ import { getEsqlRule } from '../../../objects/rule'; import { - CUSTOM_QUERY_DETAILS, + ESQL_QUERY_DETAILS, DEFINITION_DETAILS, RULE_NAME_HEADER, RULE_TYPE_DETAILS, @@ -43,7 +43,7 @@ describe('Detection ES|QL rules, details view', { tags: ['@ess'] }, () => { cy.get(RULE_NAME_HEADER).should('contain', `${rule.name}`); cy.get(DEFINITION_DETAILS).within(() => { - getDetails(CUSTOM_QUERY_DETAILS).should('have.text', rule.query); + getDetails(ESQL_QUERY_DETAILS).should('have.text', rule.query); getDetails(RULE_TYPE_DETAILS).contains('ES|QL'); // ensures ES|QL rule in technical preview diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/esql_rule_edit.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/esql_rule_edit.cy.ts index f3dee0a27160e..fe236f369567a 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/esql_rule_edit.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/esql_rule_edit.cy.ts @@ -7,7 +7,7 @@ import { getEsqlRule } from '../../../objects/rule'; -import { CUSTOM_QUERY_DETAILS, RULE_NAME_OVERRIDE_DETAILS } from '../../../screens/rule_details'; +import { ESQL_QUERY_DETAILS, RULE_NAME_OVERRIDE_DETAILS } from '../../../screens/rule_details'; import { ESQL_QUERY_BAR, ESQL_QUERY_BAR_EXPAND_BTN } from '../../../screens/create_new_rule'; @@ -60,7 +60,7 @@ describe('Detection ES|QL rules, edit', { tags: ['@ess'] }, () => { saveEditedRule(); // ensure updated query is displayed on details page - getDetails(CUSTOM_QUERY_DETAILS).should('have.text', expectedValidEsqlQuery); + getDetails(ESQL_QUERY_DETAILS).should('have.text', expectedValidEsqlQuery); }); it('edits ES|QL rule query and override rule name with new property', () => { diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/event_correlation_rule.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/event_correlation_rule.cy.ts index 66c506e0f2157..d169d44f19761 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/event_correlation_rule.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/event_correlation_rule.cy.ts @@ -22,7 +22,7 @@ import { ABOUT_INVESTIGATION_NOTES, ABOUT_RULE_DESCRIPTION, ADDITIONAL_LOOK_BACK_DETAILS, - CUSTOM_QUERY_DETAILS, + EQL_QUERY_DETAILS, DEFINITION_DETAILS, FALSE_POSITIVES_DETAILS, removeExternalLinkText, @@ -54,7 +54,7 @@ import { } from '../../../tasks/create_new_rule'; import { login } from '../../../tasks/login'; import { visit } from '../../../tasks/navigation'; - +import { openRuleManagementPageViaBreadcrumbs } from '../../../tasks/rules_management'; import { CREATE_RULE_URL } from '../../../urls/navigation'; // TODO: https://github.com/elastic/kibana/issues/161539 @@ -85,6 +85,7 @@ describe('EQL rules', { tags: ['@ess', '@serverless', '@brokenInServerless'] }, fillAboutRuleAndContinue(rule); fillScheduleRuleAndContinue(rule); createAndEnableRule(); + openRuleManagementPageViaBreadcrumbs(); cy.get(CUSTOM_RULES_BTN).should('have.text', 'Custom rules (1)'); @@ -115,7 +116,7 @@ describe('EQL rules', { tags: ['@ess', '@serverless', '@brokenInServerless'] }, cy.get(ABOUT_INVESTIGATION_NOTES).should('have.text', INVESTIGATION_NOTES_MARKDOWN); cy.get(DEFINITION_DETAILS).within(() => { getDetails(INDEX_PATTERNS_DETAILS).should('have.text', getIndexPatterns().join('')); - getDetails(CUSTOM_QUERY_DETAILS).should('have.text', rule.query); + getDetails(EQL_QUERY_DETAILS).should('have.text', rule.query); getDetails(RULE_TYPE_DETAILS).should('have.text', 'Event Correlation'); getDetails(TIMELINE_TEMPLATE_DETAILS).should('have.text', 'None'); }); @@ -162,6 +163,7 @@ describe('EQL rules', { tags: ['@ess', '@serverless', '@brokenInServerless'] }, fillAboutRuleAndContinue(rule); fillScheduleRuleAndContinue(rule); createAndEnableRule(); + openRuleManagementPageViaBreadcrumbs(); goToRuleDetailsOf(rule.name); waitForTheRuleToBeExecuted(); waitForAlertsToPopulate(); diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/indicator_match_rule.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/indicator_match_rule.cy.ts index 8d581d69edb95..0d1466a755185 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/indicator_match_rule.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/indicator_match_rule.cy.ts @@ -109,9 +109,9 @@ import { waitForTheRuleToBeExecuted, visitRuleDetailsPage, } from '../../../tasks/rule_details'; - import { CREATE_RULE_URL } from '../../../urls/navigation'; import { RULES_MANAGEMENT_URL } from '../../../urls/rules_management'; +import { openRuleManagementPageViaBreadcrumbs } from '../../../tasks/rules_management'; const DEFAULT_THREAT_MATCH_QUERY = '@timestamp >= "now-30d/d"'; @@ -435,6 +435,7 @@ describe('indicator match', { tags: ['@ess', '@serverless', '@brokenInServerless fillAboutRuleAndContinue(rule); fillScheduleRuleAndContinue(rule); createAndEnableRule(); + openRuleManagementPageViaBreadcrumbs(); cy.get(CUSTOM_RULES_BTN).should('have.text', 'Custom rules (1)'); diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/machine_learning_rule.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/machine_learning_rule.cy.ts index 38f977f6c309f..7e73310433df1 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/machine_learning_rule.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/machine_learning_rule.cy.ts @@ -51,7 +51,7 @@ import { } from '../../../tasks/create_new_rule'; import { login } from '../../../tasks/login'; import { visit } from '../../../tasks/navigation'; - +import { openRuleManagementPageViaBreadcrumbs } from '../../../tasks/rules_management'; import { CREATE_RULE_URL } from '../../../urls/navigation'; // TODO: https://github.com/elastic/kibana/issues/161539 @@ -78,6 +78,7 @@ describe('Machine Learning rules', { tags: ['@ess', '@serverless', '@brokenInSer fillAboutRuleAndContinue(mlRule); fillScheduleRuleAndContinue(mlRule); createAndEnableRule(); + openRuleManagementPageViaBreadcrumbs(); cy.get(CUSTOM_RULES_BTN).should('have.text', 'Custom rules (1)'); diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/new_terms_rule.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/new_terms_rule.cy.ts index 91a815823ad41..53334bdc80541 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/new_terms_rule.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/new_terms_rule.cy.ts @@ -56,8 +56,8 @@ import { } from '../../../tasks/create_new_rule'; import { login } from '../../../tasks/login'; import { visit } from '../../../tasks/navigation'; - import { CREATE_RULE_URL } from '../../../urls/navigation'; +import { openRuleManagementPageViaBreadcrumbs } from '../../../tasks/rules_management'; // TODO: https://github.com/elastic/kibana/issues/161539 describe('New Terms rules', { tags: ['@ess', '@serverless', '@brokenInServerless'] }, () => { @@ -86,6 +86,7 @@ describe('New Terms rules', { tags: ['@ess', '@serverless', '@brokenInServerless fillAboutRuleAndContinue(rule); fillScheduleRuleAndContinue(rule); createAndEnableRule(); + openRuleManagementPageViaBreadcrumbs(); cy.get(CUSTOM_RULES_BTN).should('have.text', 'Custom rules (1)'); diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/override.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/override.cy.ts index b438d43a25636..6290583e82d82 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/override.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/override.cy.ts @@ -59,8 +59,8 @@ import { import { login } from '../../../tasks/login'; import { visit } from '../../../tasks/navigation'; import { getDetails, waitForTheRuleToBeExecuted } from '../../../tasks/rule_details'; - import { CREATE_RULE_URL } from '../../../urls/navigation'; +import { openRuleManagementPageViaBreadcrumbs } from '../../../tasks/rules_management'; // TODO: https://github.com/elastic/kibana/issues/161539 describe('Rules override', { tags: ['@ess', '@serverless', '@brokenInServerless'] }, () => { @@ -82,6 +82,7 @@ describe('Rules override', { tags: ['@ess', '@serverless', '@brokenInServerless' fillAboutRuleWithOverrideAndContinue(rule); fillScheduleRuleAndContinue(rule); createAndEnableRule(); + openRuleManagementPageViaBreadcrumbs(); cy.get(CUSTOM_RULES_BTN).should('have.text', 'Custom rules (1)'); diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/threshold_rule.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/threshold_rule.cy.ts index 1b4122606c102..1928fd8098f91 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/threshold_rule.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/threshold_rule.cy.ts @@ -56,11 +56,10 @@ import { } from '../../../tasks/create_new_rule'; import { login } from '../../../tasks/login'; import { visit } from '../../../tasks/navigation'; - +import { openRuleManagementPageViaBreadcrumbs } from '../../../tasks/rules_management'; import { CREATE_RULE_URL } from '../../../urls/navigation'; -// TODO: https://github.com/elastic/kibana/issues/161539 -describe('Threshold rules', { tags: ['@ess', '@serverless', '@brokenInServerless'] }, () => { +describe('Threshold rules', { tags: ['@ess', '@serverless'] }, () => { const rule = getNewThresholdRule(); const expectedUrls = rule.references?.join(''); const expectedFalsePositives = rule.false_positives?.join(''); @@ -84,6 +83,7 @@ describe('Threshold rules', { tags: ['@ess', '@serverless', '@brokenInServerless fillAboutRuleAndContinue(rule); fillScheduleRuleAndContinue(rule); createAndEnableRule(); + openRuleManagementPageViaBreadcrumbs(); cy.get(CUSTOM_RULES_BTN).should('have.text', 'Custom rules (1)'); diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/alert_table_action_column.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/alert_table_action_column.cy.ts index be3664c8f7812..d35cc7dd1f7c1 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/alert_table_action_column.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/alert_table_action_column.cy.ts @@ -16,37 +16,33 @@ import { login } from '../../../tasks/login'; import { visitWithTimeRange } from '../../../tasks/navigation'; import { ALERTS_URL } from '../../../urls/navigation'; -describe( - 'Alerts Table Action column', - { tags: ['@ess', '@serverless', '@brokenInServerless'] }, - () => { - before(() => { - cleanKibana(); - cy.task('esArchiverLoad', { - archiveName: 'process_ancestry', - useCreate: true, - docsOnly: true, - }); +describe('Alerts Table Action column', { tags: ['@ess', '@serverless'] }, () => { + before(() => { + cleanKibana(); + cy.task('esArchiverLoad', { + archiveName: 'process_ancestry', + useCreate: true, + docsOnly: true, }); + }); - beforeEach(() => { - login(); - visitWithTimeRange(ALERTS_URL); - waitForAlertsToPopulate(); - }); + beforeEach(() => { + login(); + visitWithTimeRange(ALERTS_URL); + waitForAlertsToPopulate(); + }); - after(() => { - cy.task('esArchiverUnload', 'process_ancestry'); - }); + after(() => { + cy.task('esArchiverUnload', 'process_ancestry'); + }); - it('should have session viewer button visible & open session viewer on click', () => { - openSessionViewerFromAlertTable(); - cy.get(OVERLAY_CONTAINER).should('be.visible'); - }); + it('should have session viewer button visible & open session viewer on click', () => { + openSessionViewerFromAlertTable(); + cy.get(OVERLAY_CONTAINER).should('be.visible'); + }); - it('should have analyzer button visible & open analyzer on click', () => { - openAnalyzerForFirstAlertInTimeline(); - cy.get(OVERLAY_CONTAINER).should('be.visible'); - }); - } -); + it('should have analyzer button visible & open analyzer on click', () => { + openAnalyzerForFirstAlertInTimeline(); + cy.get(OVERLAY_CONTAINER).should('be.visible'); + }); +}); diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/alert_table_controls.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/alert_table_controls.cy.ts index 1028efc8422ba..fbdfd47249941 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/alert_table_controls.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/alert_table_controls.cy.ts @@ -10,7 +10,6 @@ import { switchAlertTableToGridView, waitForAlerts, } from '../../../tasks/alerts'; -import { navigateFromHeaderTo } from '../../../tasks/security_header'; import { FIELDS_BROWSER_BTN } from '../../../screens/rule_details'; import { addsFields, @@ -32,9 +31,8 @@ import { cleanKibana } from '../../../tasks/common'; import { waitForAlertsToPopulate } from '../../../tasks/create_new_rule'; import { login } from '../../../tasks/login'; import { visit } from '../../../tasks/navigation'; -import { ALERTS_URL } from '../../../urls/navigation'; +import { ALERTS_URL, TIMELINES_URL } from '../../../urls/navigation'; import { DATAGRID_HEADER } from '../../../screens/timeline'; -import { TIMELINES, ALERTS } from '../../../screens/security_header'; /* * @@ -43,7 +41,7 @@ import { TIMELINES, ALERTS } from '../../../screens/security_header'; * * */ -describe(`Alert Table Controls`, () => { +describe(`Alert Table Controls`, { tags: ['@ess', '@serverless'] }, () => { before(() => { cleanKibana(); }); @@ -102,8 +100,8 @@ describe(`Alert Table Controls`, () => { closeFieldsBrowser(); cy.get(DATAGRID_HEADER(fieldName)).should('not.exist'); - navigateFromHeaderTo(TIMELINES); - navigateFromHeaderTo(ALERTS); + visit(TIMELINES_URL); + visit(ALERTS_URL); waitForAlerts(); cy.get(DATAGRID_HEADER('_id')).should('not.exist'); }); @@ -115,8 +113,8 @@ describe(`Alert Table Controls`, () => { closeFieldsBrowser(); cy.get(DATAGRID_HEADER('_id')).should('be.visible'); - navigateFromHeaderTo(TIMELINES); - navigateFromHeaderTo(ALERTS); + visit(TIMELINES_URL); + visit(ALERTS_URL); waitForAlerts(); cy.get(DATAGRID_HEADER('_id')).should('be.visible'); }); diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/alerts_cell_actions.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/alerts_cell_actions.cy.ts index 6ac1048c0f928..c19ffc4d8ac6b 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/alerts_cell_actions.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/alerts_cell_actions.cy.ts @@ -29,7 +29,6 @@ import { waitForAlertsToPopulate } from '../../../tasks/create_new_rule'; import { login } from '../../../tasks/login'; import { visit } from '../../../tasks/navigation'; import { - clearKqlQueryBar, fillAddFilterForm, fillKqlQueryBar, openAddFilterPopover, @@ -38,7 +37,7 @@ import { openActiveTimeline } from '../../../tasks/timeline'; import { ALERTS_URL } from '../../../urls/navigation'; -describe('Alerts cell actions', { tags: ['@ess', '@brokenInServerless'] }, () => { +describe('Alerts cell actions', { tags: ['@ess', '@serverless'] }, () => { before(() => { cleanKibana(); createRule(getNewRule()); @@ -70,8 +69,6 @@ describe('Alerts cell actions', { tags: ['@ess', '@brokenInServerless'] }, () => filterForAlertProperty(ALERT_TABLE_FILE_NAME_VALUES, 0); cy.get(FILTER_BADGE).first().should('have.text', 'NOT file.name: exists'); - - clearKqlQueryBar(); }); it('should filter out a non-empty property', () => { @@ -95,8 +92,6 @@ describe('Alerts cell actions', { tags: ['@ess', '@brokenInServerless'] }, () => filterOutAlertProperty(ALERT_TABLE_FILE_NAME_VALUES, 0); cy.get(FILTER_BADGE).first().should('have.text', 'file.name: exists'); - - clearKqlQueryBar(); }); }); diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/alerts_details.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/alerts_details.cy.ts index 19cf0274b148b..bfa5a98921be0 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/alerts_details.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/alerts_details.cy.ts @@ -40,7 +40,7 @@ import { waitForPageToBeLoaded as waitForRuleDetailsPageToBeLoaded, } from '../../../tasks/rule_details'; -describe('Alert details flyout', { tags: ['@ess', '@serverless', '@brokenInServerless'] }, () => { +describe('Alert details flyout', () => { describe('Basic functions', () => { beforeEach(() => { cleanKibana(); @@ -52,18 +52,23 @@ describe('Alert details flyout', { tags: ['@ess', '@serverless', '@brokenInServe expandFirstAlert(); }); - it('should update the table when status of the alert is updated', () => { - cy.get(OVERVIEW_RULE).should('be.visible'); - cy.get(ALERTS_TABLE_COUNT).should('have.text', '2 alerts'); - cy.get(ALERT_SUMMARY_SEVERITY_DONUT_CHART).should('contain.text', '2alerts'); - expandFirstAlert(); - changeAlertStatusTo('acknowledged'); - cy.get(ALERTS_TABLE_COUNT).should('have.text', '1 alert'); - cy.get(ALERT_SUMMARY_SEVERITY_DONUT_CHART).should('contain.text', '1alert'); - }); + // Issue tracked in: https://github.com/elastic/kibana/issues/167809 + it( + 'should update the table when status of the alert is updated', + { tags: ['@ess', '@brokenInServerless'] }, + () => { + cy.get(OVERVIEW_RULE).should('be.visible'); + cy.get(ALERTS_TABLE_COUNT).should('have.text', '2 alerts'); + cy.get(ALERT_SUMMARY_SEVERITY_DONUT_CHART).should('contain.text', '2alerts'); + expandFirstAlert(); + changeAlertStatusTo('acknowledged'); + cy.get(ALERTS_TABLE_COUNT).should('have.text', '1 alert'); + cy.get(ALERT_SUMMARY_SEVERITY_DONUT_CHART).should('contain.text', '1alert'); + } + ); }); - describe('With unmapped fields', () => { + describe('With unmapped fields', { tags: ['@ess', '@serverless'] }, () => { before(() => { cleanKibana(); cy.task('esArchiverLoad', { archiveName: 'unmapped_fields' }); @@ -136,7 +141,7 @@ describe('Alert details flyout', { tags: ['@ess', '@serverless', '@brokenInServe }); }); - describe('Url state management', () => { + describe('Url state management', { tags: ['@ess', '@serverless'] }, () => { before(() => { cleanKibana(); cy.task('esArchiverLoad', { archiveName: 'query_alert', useCreate: true, docsOnly: true }); @@ -182,7 +187,7 @@ describe('Alert details flyout', { tags: ['@ess', '@serverless', '@brokenInServe }); }); - describe('Localstorage management', () => { + describe('Localstorage management', { tags: ['@ess', '@serverless'] }, () => { const ARCHIVED_RULE_ID = '7015a3e2-e4ea-11ed-8c11-49608884878f'; const ARCHIVED_RULE_NAME = 'Endpoint Security'; diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/building_block_alerts.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/building_block_alerts.cy.ts index 64fbb36effebf..5efdfb7d94c8f 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/building_block_alerts.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/building_block_alerts.cy.ts @@ -18,37 +18,33 @@ import { navigateFromHeaderTo } from '../../../tasks/security_header'; const EXPECTED_NUMBER_OF_ALERTS = 5; -describe( - 'Alerts generated by building block rules', - { tags: ['@ess', '@brokenInServerless'] }, - () => { - before(() => { - cy.task('esArchiverLoad', { archiveName: 'auditbeat_big' }); - }); - - after(() => { - cy.task('esArchiverUnload', 'auditbeat_big'); - }); - - beforeEach(() => { - cleanKibana(); - login(); - createRule(getBuildingBlockRule()).then((rule) => visitRuleDetailsPage(rule.body.id)); - }); - - it('Alerts should be visible on the Rule Detail page and not visible on the Overview page', () => { - waitForTheRuleToBeExecuted(); - - // Check that generated events are visible on the Details page - waitForAlertsToPopulate(EXPECTED_NUMBER_OF_ALERTS); - - // Make sure rows are highlighted - cy.get(HIGHLIGHTED_ROWS_IN_TABLE).should('exist'); - - navigateFromHeaderTo(OVERVIEW); - - // Check that generated events are hidden on the Overview page - cy.get(OVERVIEW_ALERTS_HISTOGRAM_EMPTY).should('contain.text', 'No results found'); - }); - } -); +describe('Alerts generated by building block rules', { tags: ['@ess', '@serverless'] }, () => { + before(() => { + cy.task('esArchiverLoad', { archiveName: 'auditbeat_big' }); + }); + + after(() => { + cy.task('esArchiverUnload', 'auditbeat_big'); + }); + + beforeEach(() => { + cleanKibana(); + login(); + createRule(getBuildingBlockRule()).then((rule) => visitRuleDetailsPage(rule.body.id)); + }); + + it('Alerts should be visible on the Rule Detail page and not visible on the Overview page', () => { + waitForTheRuleToBeExecuted(); + + // Check that generated events are visible on the Details page + waitForAlertsToPopulate(EXPECTED_NUMBER_OF_ALERTS); + + // Make sure rows are highlighted + cy.get(HIGHLIGHTED_ROWS_IN_TABLE).should('exist'); + + navigateFromHeaderTo(OVERVIEW); + + // Check that generated events are hidden on the Overview page + cy.get(OVERVIEW_ALERTS_HISTOGRAM_EMPTY).should('contain.text', 'No results found'); + }); +}); diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/changing_alert_status.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/changing_alert_status.cy.ts index c01cd6522c975..7a413849559bb 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/changing_alert_status.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/changing_alert_status.cy.ts @@ -39,6 +39,7 @@ import { visit } from '../../../tasks/navigation'; import { ALERTS_URL } from '../../../urls/navigation'; +// Iusse tracked in: https://github.com/elastic/kibana/issues/167809 describe('Changing alert status', { tags: ['@ess', '@brokenInServerless'] }, () => { before(() => { cy.task('esArchiverLoad', { archiveName: 'auditbeat_big' }); diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/detection_page_filters.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/detection_page_filters.cy.ts index 234eb4193179b..6aa483cf7f785 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/detection_page_filters.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/detection_page_filters.cy.ts @@ -108,7 +108,9 @@ const assertFilterControlsWithFilterObject = ( }); }; -describe(`Detections : Page Filters`, { tags: ['@ess', '@brokenInServerless'] }, () => { +// Failing: See https://github.com/elastic/kibana/issues/167914 +// Failing: See https://github.com/elastic/kibana/issues/167915 +describe.skip(`Detections : Page Filters`, { tags: ['@ess', '@serverless'] }, () => { before(() => { cleanKibana(); createRule(getNewRule({ rule_id: 'custom_rule_filters' })); diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/event_rendered_view.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/event_rendered_view.cy.ts index 6bc165f26f075..66672cf66ec19 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/event_rendered_view.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/event_rendered_view.cy.ts @@ -34,7 +34,7 @@ import { XY_CHART, } from '../../../screens/shared'; -describe(`Event Rendered View`, () => { +describe(`Event Rendered View`, { tags: ['@ess', '@serverless'] }, () => { before(() => { cleanKibana(); }); @@ -60,7 +60,7 @@ describe(`Event Rendered View`, () => { cy.get(SHOW_TOP_N_HEADER).first().should('have.text', 'Top host.name'); cy.get(XY_CHART).should('be.visible'); cy.get(TOP_N_CONTAINER_CLOSE_BTN).trigger('click'); - cy.get(XY_CHART).should('not.be.visible'); + cy.get(XY_CHART).should('not.exist'); }); /* diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_left_panel_correlations_tab.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_left_panel_correlations_tab.cy.ts index 9acd2f2a222df..7a63d5ec09e18 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_left_panel_correlations_tab.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_left_panel_correlations_tab.cy.ts @@ -34,77 +34,71 @@ import { login } from '../../../../tasks/login'; import { visit } from '../../../../tasks/navigation'; import { ALERTS_URL } from '../../../../urls/navigation'; -describe( - 'Expandable flyout left panel correlations', - { tags: ['@ess', '@brokenInServerless'] }, - () => { - beforeEach(() => { - cleanKibana(); - login(); - createRule(getNewRule()); - visit(ALERTS_URL); - waitForAlertsToPopulate(); - expandFirstAlertExpandableFlyout(); - expandDocumentDetailsExpandableFlyoutLeftSection(); - createNewCaseFromExpandableFlyout(); - openInsightsTab(); - openCorrelationsTab(); - }); +describe('Expandable flyout left panel correlations', { tags: ['@ess', '@serverless'] }, () => { + beforeEach(() => { + cleanKibana(); + login(); + createRule(getNewRule()); + visit(ALERTS_URL); + waitForAlertsToPopulate(); + expandFirstAlertExpandableFlyout(); + expandDocumentDetailsExpandableFlyoutLeftSection(); + createNewCaseFromExpandableFlyout(); + openInsightsTab(); + openCorrelationsTab(); + }); - it('should render correlations details correctly', () => { - cy.log('link the alert to a new case'); + it('should render correlations details correctly', () => { + cy.log('link the alert to a new case'); - cy.get(DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB).scrollIntoView(); + cy.get(DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB).scrollIntoView(); - cy.log('should render the Insights header'); - cy.get(DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB) - .should('be.visible') - .and('have.text', 'Insights'); + cy.log('should render the Insights header'); + cy.get(DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB).should('be.visible').and('have.text', 'Insights'); - cy.log('should render the inner tab switch'); - cy.get(DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_BUTTON_GROUP).should('be.visible'); + cy.log('should render the inner tab switch'); + cy.get(DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_BUTTON_GROUP).should('be.visible'); - cy.log('should render correlations tab activator / button'); - cy.get(DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_CORRELATIONS_BUTTON) - .should('be.visible') - .and('have.text', 'Correlations'); + cy.log('should render correlations tab activator / button'); + cy.get(DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_CORRELATIONS_BUTTON) + .should('be.visible') + .and('have.text', 'Correlations'); - cy.log('should render all the correlations sections'); + cy.log('should render all the correlations sections'); - cy.get(CORRELATIONS_ANCESTRY_SECTION_TITLE).scrollIntoView(); - cy.get(CORRELATIONS_ANCESTRY_SECTION_TITLE) - .should('be.visible') - .and('contain.text', '1 alert related by ancestry'); - cy.get(CORRELATIONS_ANCESTRY_SECTION_TABLE).should('be.visible'); - cy.get(CORRELATIONS_ANCESTRY_SECTION_INVESTIGATE_IN_TIMELINE_BUTTON).should('be.visible'); + cy.get(CORRELATIONS_ANCESTRY_SECTION_TITLE).scrollIntoView(); + cy.get(CORRELATIONS_ANCESTRY_SECTION_TITLE) + .should('be.visible') + .and('contain.text', '1 alert related by ancestry'); + cy.get(CORRELATIONS_ANCESTRY_SECTION_TABLE).should('be.visible'); + cy.get(CORRELATIONS_ANCESTRY_SECTION_INVESTIGATE_IN_TIMELINE_BUTTON).should('be.visible'); - // TODO get proper data to test this section - // cy.get(CORRELATIONS_SOURCE_SECTION).scrollIntoView(); - // cy.get(CORRELATIONS_SOURCE_SECTION) - // .should('be.visible') - // .and('contain.text', '0 alerts related by source event'); - // cy.get(CORRELATIONS_SOURCE_SECTION_TABLE).should('be.visible'); - // cy.get(CORRELATIONS_SESSION_SECTION_INVESTIGATE_IN_TIMELINE_BUTTON).should('be.visible'); + // TODO get proper data to test this section + // cy.get(CORRELATIONS_SOURCE_SECTION).scrollIntoView(); + // cy.get(CORRELATIONS_SOURCE_SECTION) + // .should('be.visible') + // .and('contain.text', '0 alerts related by source event'); + // cy.get(CORRELATIONS_SOURCE_SECTION_TABLE).should('be.visible'); + // cy.get(CORRELATIONS_SESSION_SECTION_INVESTIGATE_IN_TIMELINE_BUTTON).should('be.visible'); - cy.get(CORRELATIONS_SESSION_SECTION_TITLE).scrollIntoView(); - cy.get(CORRELATIONS_SESSION_SECTION_TITLE) - .should('be.visible') - .and('contain.text', '1 alert related by session'); - cy.get(CORRELATIONS_SESSION_SECTION_TABLE).should('be.visible'); - cy.get(CORRELATIONS_SESSION_SECTION_INVESTIGATE_IN_TIMELINE_BUTTON).should('be.visible'); + cy.get(CORRELATIONS_SESSION_SECTION_TITLE).scrollIntoView(); + cy.get(CORRELATIONS_SESSION_SECTION_TITLE) + .should('be.visible') + .and('contain.text', '1 alert related by session'); + cy.get(CORRELATIONS_SESSION_SECTION_TABLE).should('be.visible'); + cy.get(CORRELATIONS_SESSION_SECTION_INVESTIGATE_IN_TIMELINE_BUTTON).should('be.visible'); - cy.get(CORRELATIONS_CASES_SECTION_TITLE).scrollIntoView(); - cy.get(CORRELATIONS_CASES_SECTION_TITLE) - .should('be.visible') - .and('contain.text', '1 related case'); - cy.get(CORRELATIONS_CASES_SECTION_TABLE).should('be.visible'); + cy.get(CORRELATIONS_CASES_SECTION_TITLE).scrollIntoView(); + cy.get(CORRELATIONS_CASES_SECTION_TITLE) + .should('be.visible') + .and('contain.text', '1 related case'); + cy.get(CORRELATIONS_CASES_SECTION_TABLE).should('be.visible'); - // TODO get proper data to test suppressed alerts - // cy.get(CORRELATIONS_SUPPRESSED_ALERTS_TITLE).scrollIntoView(); - // cy.get(CORRELATIONS_SUPPRESSED_ALERTS_TITLE) - // .should('be.visible') - // .and('contain.text', '1 suppressed alert'); - // cy.get(CORRELATIONS_SUPPRESSED_ALERTS_INVESTIGATE_IN_TIMELINE_BUTTON).should('be.visible'); - }); - } -); + // TODO get proper data to test suppressed alerts + // cy.get(CORRELATIONS_SUPPRESSED_ALERTS_TITLE).scrollIntoView(); + // cy.get(CORRELATIONS_SUPPRESSED_ALERTS_TITLE) + // .should('be.visible') + // .and('contain.text', '1 suppressed alert'); + // cy.get(CORRELATIONS_SUPPRESSED_ALERTS_INVESTIGATE_IN_TIMELINE_BUTTON).should('be.visible'); + }); +}); diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_left_panel_entities_tab.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_left_panel_entities_tab.cy.ts index ad051444d16b7..088a4c0dc87ee 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_left_panel_entities_tab.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_left_panel_entities_tab.cy.ts @@ -28,7 +28,7 @@ import { waitForAlertsToPopulate } from '../../../../tasks/create_new_rule'; describe( 'Alert details expandable flyout left panel entities', - { tags: ['@ess', '@brokenInServerless'] }, + { tags: ['@ess', '@serverless'] }, () => { beforeEach(() => { cleanKibana(); diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_left_panel_investigation_tab.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_left_panel_investigation_tab.cy.ts index 137beba1dfddb..de6bfd1272fec 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_left_panel_investigation_tab.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_left_panel_investigation_tab.cy.ts @@ -22,7 +22,7 @@ import { waitForAlertsToPopulate } from '../../../../tasks/create_new_rule'; describe( 'Alert details expandable flyout left panel investigation', - { tags: ['@ess', '@brokenInServerless'] }, + { tags: ['@ess', '@serverless'] }, () => { beforeEach(() => { cleanKibana(); diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_left_panel_prevalence_tab.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_left_panel_prevalence_tab.cy.ts index 5c51ef21a499c..3979a28046790 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_left_panel_prevalence_tab.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_left_panel_prevalence_tab.cy.ts @@ -32,54 +32,60 @@ import { getNewRule } from '../../../../objects/rule'; import { ALERTS_URL } from '../../../../urls/navigation'; import { waitForAlertsToPopulate } from '../../../../tasks/create_new_rule'; -describe('Alert details expandable flyout left panel prevalence', () => { - beforeEach(() => { - cleanKibana(); - login(); - createRule({ ...getNewRule(), investigation_fields: { field_names: ['host.os.name'] } }); - visit(ALERTS_URL); - waitForAlertsToPopulate(); - expandFirstAlertExpandableFlyout(); - expandDocumentDetailsExpandableFlyoutLeftSection(); - openInsightsTab(); - openPrevalenceTab(); - }); +describe( + 'Alert details expandable flyout left panel prevalence', + { tags: ['@ess', '@serverless'] }, + () => { + beforeEach(() => { + cleanKibana(); + login(); + createRule({ ...getNewRule(), investigation_fields: { field_names: ['host.os.name'] } }); + visit(ALERTS_URL); + waitForAlertsToPopulate(); + expandFirstAlertExpandableFlyout(); + expandDocumentDetailsExpandableFlyoutLeftSection(); + openInsightsTab(); + openPrevalenceTab(); + }); - it('should display prevalence tab', { tags: ['@ess', '@brokenInServerless'] }, () => { - cy.get(DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB).should('be.visible').and('have.text', 'Insights'); + it('should display prevalence tab', () => { + cy.get(DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB) + .should('be.visible') + .and('have.text', 'Insights'); - cy.get(DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_BUTTON_GROUP).should('be.visible'); + cy.get(DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_BUTTON_GROUP).should('be.visible'); - cy.get(DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_PREVALENCE_BUTTON) - .should('be.visible') - .and('have.text', 'Prevalence'); + cy.get(DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_PREVALENCE_BUTTON) + .should('be.visible') + .and('have.text', 'Prevalence'); - cy.get(DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_PREVALENCE_DATE_PICKER).should('be.visible'); + cy.get(DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_PREVALENCE_DATE_PICKER).should('be.visible'); - cy.get(DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_PREVALENCE_TABLE).should('be.visible'); - cy.get(DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_PREVALENCE_TABLE_TYPE_CELL) - .should('contain.text', 'host.os.name') - .and('contain.text', 'host.name') - .and('contain.text', 'user.name'); - cy.get(DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_PREVALENCE_TABLE_NAME_CELL) - .should('contain.text', 'Mac OS X') - .and('contain.text', 'siem-kibana') - .and('contain.text', 'test'); - cy.get(DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_PREVALENCE_TABLE_ALERT_COUNT_CELL).should( - 'contain.text', - 2 - ); - cy.get(DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_PREVALENCE_TABLE_DOC_COUNT_CELL).should( - 'contain.text', - '—' - ); - cy.get(DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_PREVALENCE_TABLE_HOST_PREVALENCE_CELL).should( - 'contain.text', - 100 - ); - cy.get(DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_PREVALENCE_TABLE_USER_PREVALENCE_CELL).should( - 'contain.text', - 100 - ); - }); -}); + cy.get(DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_PREVALENCE_TABLE).should('be.visible'); + cy.get(DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_PREVALENCE_TABLE_TYPE_CELL) + .should('contain.text', 'host.os.name') + .and('contain.text', 'host.name') + .and('contain.text', 'user.name'); + cy.get(DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_PREVALENCE_TABLE_NAME_CELL) + .should('contain.text', 'Mac OS X') + .and('contain.text', 'siem-kibana') + .and('contain.text', 'test'); + cy.get(DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_PREVALENCE_TABLE_ALERT_COUNT_CELL).should( + 'contain.text', + 2 + ); + cy.get(DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_PREVALENCE_TABLE_DOC_COUNT_CELL).should( + 'contain.text', + '—' + ); + cy.get(DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_PREVALENCE_TABLE_HOST_PREVALENCE_CELL).should( + 'contain.text', + 100 + ); + cy.get(DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_PREVALENCE_TABLE_USER_PREVALENCE_CELL).should( + 'contain.text', + 100 + ); + }); + } +); diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_left_panel_response_tab.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_left_panel_response_tab.cy.ts index 4631b64220b26..7ba5def9b29b2 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_left_panel_response_tab.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_left_panel_response_tab.cy.ts @@ -17,19 +17,23 @@ import { getNewRule } from '../../../../objects/rule'; import { ALERTS_URL } from '../../../../urls/navigation'; import { waitForAlertsToPopulate } from '../../../../tasks/create_new_rule'; -describe('Alert details expandable flyout left panel investigation', () => { - beforeEach(() => { - cleanKibana(); - login(); - createRule(getNewRule()); - visit(ALERTS_URL); - waitForAlertsToPopulate(); - expandFirstAlertExpandableFlyout(); - expandDocumentDetailsExpandableFlyoutLeftSection(); - openResponseTab(); - }); +describe( + 'Alert details expandable flyout left panel investigation', + { tags: ['@ess', '@serverless'] }, + () => { + beforeEach(() => { + cleanKibana(); + login(); + createRule(getNewRule()); + visit(ALERTS_URL); + waitForAlertsToPopulate(); + expandFirstAlertExpandableFlyout(); + expandDocumentDetailsExpandableFlyoutLeftSection(); + openResponseTab(); + }); - it('should display empty response message', () => { - cy.get(DOCUMENT_DETAILS_FLYOUT_RESPONSE_EMPTY).should('be.visible'); - }); -}); + it('should display empty response message', () => { + cy.get(DOCUMENT_DETAILS_FLYOUT_RESPONSE_EMPTY).should('be.visible'); + }); + } +); diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_left_panel_session_view_tab.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_left_panel_session_view_tab.cy.ts index 4636b96beaa04..dd0af1e610b2c 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_left_panel_session_view_tab.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_left_panel_session_view_tab.cy.ts @@ -23,7 +23,7 @@ import { waitForAlertsToPopulate } from '../../../../tasks/create_new_rule'; // TODO enable once the visualize tabs are back describe.skip( 'Alert details expandable flyout left panel session view', - { tags: ['@ess', '@brokenInServerless'] }, + { tags: ['@ess', '@serverless'] }, () => { beforeEach(() => { cleanKibana(); diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_left_panel_threat_intelligence_tab.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_left_panel_threat_intelligence_tab.cy.ts index a0720b026c5d5..a8c97d8beb9d7 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_left_panel_threat_intelligence_tab.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_left_panel_threat_intelligence_tab.cy.ts @@ -25,7 +25,7 @@ import { DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_THREAT_INTELLIGENCE_BUTTON } from describe( 'Expandable flyout left panel threat intelligence', - { tags: ['@ess', '@brokenInServerless'] }, + { tags: ['@ess', '@serverless'] }, () => { beforeEach(() => { cleanKibana(); diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_preview_panel_alert_reason_preview.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_preview_panel_alert_reason_preview.cy.ts index cc6b2a6e8c242..27e85c0066de5 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_preview_panel_alert_reason_preview.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_preview_panel_alert_reason_preview.cy.ts @@ -18,7 +18,7 @@ import { waitForAlertsToPopulate } from '../../../../tasks/create_new_rule'; describe( 'Alert details expandable flyout rule preview panel', - { tags: ['@ess', '@brokenInServerless'] }, + { tags: ['@ess', '@serverless'] }, () => { const rule = getNewRule(); diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_preview_panel_rule_preview.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_preview_panel_rule_preview.cy.ts index 7ce841595f189..b56dfbfdf6ecf 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_preview_panel_rule_preview.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_preview_panel_rule_preview.cy.ts @@ -35,24 +35,24 @@ import { getNewRule } from '../../../../objects/rule'; import { ALERTS_URL } from '../../../../urls/navigation'; import { waitForAlertsToPopulate } from '../../../../tasks/create_new_rule'; -describe('Alert details expandable flyout rule preview panel', () => { - const rule = getNewRule(); +describe( + 'Alert details expandable flyout rule preview panel', + { tags: ['@ess', '@serverless'] }, + () => { + const rule = getNewRule(); - beforeEach(() => { - cleanKibana(); - login(); - createRule(rule); - visit(ALERTS_URL); - waitForAlertsToPopulate(); - expandFirstAlertExpandableFlyout(); - clickRuleSummaryButton(); - }); + beforeEach(() => { + cleanKibana(); + login(); + createRule(rule); + visit(ALERTS_URL); + waitForAlertsToPopulate(); + expandFirstAlertExpandableFlyout(); + clickRuleSummaryButton(); + }); - describe('rule preview', () => { - it( - 'should display rule preview and its sub sections', - { tags: ['@ess', '@brokenInServerless'] }, - () => { + describe('rule preview', () => { + it('should display rule preview and its sub sections', () => { cy.log('rule preview panel'); cy.get(DOCUMENT_DETAILS_FLYOUT_RULE_PREVIEW_SECTION).scrollIntoView(); @@ -97,7 +97,7 @@ describe('Alert details expandable flyout rule preview panel', () => { cy.log('footer'); cy.get(DOCUMENT_DETAILS_FLYOUT_RULE_PREVIEW_FOOTER).scrollIntoView(); cy.get(DOCUMENT_DETAILS_FLYOUT_RULE_PREVIEW_FOOTER).should('be.visible'); - } - ); - }); -}); + }); + }); + } +); diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_right_panel.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_right_panel.cy.ts index 9a64bd46c1e89..4a404496cbdcf 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_right_panel.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_right_panel.cy.ts @@ -67,132 +67,133 @@ import { getNewRule } from '../../../../objects/rule'; import { ALERTS_URL } from '../../../../urls/navigation'; import { waitForAlertsToPopulate } from '../../../../tasks/create_new_rule'; -describe( - 'Alert details expandable flyout right panel', - { tags: ['@ess', '@brokenInServerless'] }, - () => { - const rule = getNewRule(); - - beforeEach(() => { - cleanKibana(); - login(); - createRule(rule); - visit(ALERTS_URL); - waitForAlertsToPopulate(); - }); - - it('should display header and footer basics', () => { - expandFirstAlertExpandableFlyout(); - - cy.get(DOCUMENT_DETAILS_FLYOUT_HEADER_TITLE).should('be.visible').and('have.text', rule.name); - - cy.get(DOCUMENT_DETAILS_FLYOUT_HEADER_CHAT_BUTTON).should('be.visible'); - - cy.get(DOCUMENT_DETAILS_FLYOUT_HEADER_STATUS).should('be.visible'); - - cy.get(DOCUMENT_DETAILS_FLYOUT_HEADER_RISK_SCORE).should('be.visible'); - cy.get(DOCUMENT_DETAILS_FLYOUT_HEADER_RISK_SCORE_VALUE) - .should('be.visible') - .and('have.text', rule.risk_score); - - cy.get(DOCUMENT_DETAILS_FLYOUT_HEADER_SEVERITY).should('be.visible'); - cy.get(DOCUMENT_DETAILS_FLYOUT_HEADER_SEVERITY_VALUE) - .should('be.visible') - .and('have.text', upperFirst(rule.severity)); - - cy.log('Verify all 3 tabs are visible'); - - cy.get(DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB) - .should('be.visible') - .and('have.text', 'Overview'); - cy.get(DOCUMENT_DETAILS_FLYOUT_TABLE_TAB).should('be.visible').and('have.text', 'Table'); - cy.get(DOCUMENT_DETAILS_FLYOUT_JSON_TAB).should('be.visible').and('have.text', 'JSON'); - - cy.log('Verify the expand/collapse button is visible and functionality works'); - - expandDocumentDetailsExpandableFlyoutLeftSection(); - cy.get(DOCUMENT_DETAILS_FLYOUT_COLLAPSE_DETAILS_BUTTON) - .should('be.visible') - .and('have.text', 'Collapse details'); - - collapseDocumentDetailsExpandableFlyoutLeftSection(); - cy.get(DOCUMENT_DETAILS_FLYOUT_EXPAND_DETAILS_BUTTON) - .should('be.visible') - .and('have.text', 'Expand details'); - - cy.log('Verify the take action button is visible on all tabs'); - - cy.get(DOCUMENT_DETAILS_FLYOUT_FOOTER).scrollIntoView(); - cy.get(DOCUMENT_DETAILS_FLYOUT_FOOTER).should('be.visible'); - cy.get(DOCUMENT_DETAILS_FLYOUT_FOOTER_TAKE_ACTION_BUTTON).should('be.visible'); - - openTableTab(); - cy.get(DOCUMENT_DETAILS_FLYOUT_FOOTER).scrollIntoView(); - cy.get(DOCUMENT_DETAILS_FLYOUT_FOOTER).should('be.visible'); - cy.get(DOCUMENT_DETAILS_FLYOUT_FOOTER_TAKE_ACTION_BUTTON).should('be.visible'); - - openJsonTab(); - cy.get(DOCUMENT_DETAILS_FLYOUT_FOOTER).scrollIntoView(); - cy.get(DOCUMENT_DETAILS_FLYOUT_FOOTER).should('be.visible'); - cy.get(DOCUMENT_DETAILS_FLYOUT_FOOTER_TAKE_ACTION_BUTTON).should('be.visible'); - }); - - // TODO this will change when add to existing case is improved - // https://github.com/elastic/security-team/issues/6298 - it('should add to existing case', () => { - navigateToCasesPage(); - createNewCaseFromCases(); - - cy.get(CASE_DETAILS_PAGE_TITLE).should('be.visible').and('have.text', 'case'); - navigateToAlertsPage(); - expandFirstAlertExpandableFlyout(); - openTakeActionButtonAndSelectItem(DOCUMENT_DETAILS_FLYOUT_FOOTER_ADD_TO_EXISTING_CASE); - - cy.get(EXISTING_CASE_SELECT_BUTTON).should('be.visible').contains('Select').click(); - cy.get(VIEW_CASE_TOASTER_LINK).should('be.visible').and('contain.text', 'View case'); - }); - - // TODO this will change when add to new case is improved - // https://github.com/elastic/security-team/issues/6298 - it('should add to new case', () => { - expandFirstAlertExpandableFlyout(); - openTakeActionButtonAndSelectItem(DOCUMENT_DETAILS_FLYOUT_FOOTER_ADD_TO_NEW_CASE); - - cy.get(DOCUMENT_DETAILS_FLYOUT_FOOTER_ADD_TO_NEW_CASE_NAME_INPUT).type('case'); - cy.get(DOCUMENT_DETAILS_FLYOUT_FOOTER_ADD_TO_NEW_CASE_DESCRIPTION_INPUT).type( - 'case description' - ); - cy.get(DOCUMENT_DETAILS_FLYOUT_FOOTER_ADD_TO_NEW_CASE_CREATE_BUTTON).click(); - - cy.get(VIEW_CASE_TOASTER_LINK).should('be.visible').and('contain.text', 'View case'); - }); - - it('should mark as acknowledged', () => { - cy.get(ALERT_CHECKBOX).should('have.length', 2); - - expandFirstAlertExpandableFlyout(); - openTakeActionButtonAndSelectItem(DOCUMENT_DETAILS_FLYOUT_FOOTER_ADD_MARK_AS_ACKNOWLEDGED); - - // TODO figure out how to verify the toasts pops up - // cy.get(KIBANA_TOAST) - // .should('be.visible') - // .and('have.text', 'Successfully marked 1 alert as acknowledged.'); - cy.get(ALERT_CHECKBOX).should('have.length', 1); - }); - - it('should mark as closed', () => { - cy.get(ALERT_CHECKBOX).should('have.length', 2); - - expandFirstAlertExpandableFlyout(); - openTakeActionButtonAndSelectItem(DOCUMENT_DETAILS_FLYOUT_FOOTER_MARK_AS_CLOSED); - - // TODO figure out how to verify the toasts pops up - // cy.get(KIBANA_TOAST).should('be.visible').and('have.text', 'Successfully closed 1 alert.'); - cy.get(ALERT_CHECKBOX).should('have.length', 1); - }); +describe('Alert details expandable flyout right panel', () => { + const rule = getNewRule(); - // these actions are now grouped together as we're not really testing their functionality but just the existence of the option in the dropdown - it('should test other action within take action dropdown', () => { + beforeEach(() => { + cleanKibana(); + login(); + createRule(rule); + visit(ALERTS_URL); + waitForAlertsToPopulate(); + }); + + it('should display header and footer basics', { tags: ['@ess', '@serverless'] }, () => { + expandFirstAlertExpandableFlyout(); + + cy.get(DOCUMENT_DETAILS_FLYOUT_HEADER_TITLE).should('be.visible').and('have.text', rule.name); + + cy.get(DOCUMENT_DETAILS_FLYOUT_HEADER_CHAT_BUTTON).should('be.visible'); + + cy.get(DOCUMENT_DETAILS_FLYOUT_HEADER_STATUS).should('be.visible'); + + cy.get(DOCUMENT_DETAILS_FLYOUT_HEADER_RISK_SCORE).should('be.visible'); + cy.get(DOCUMENT_DETAILS_FLYOUT_HEADER_RISK_SCORE_VALUE) + .should('be.visible') + .and('have.text', rule.risk_score); + + cy.get(DOCUMENT_DETAILS_FLYOUT_HEADER_SEVERITY).should('be.visible'); + cy.get(DOCUMENT_DETAILS_FLYOUT_HEADER_SEVERITY_VALUE) + .should('be.visible') + .and('have.text', upperFirst(rule.severity)); + + cy.log('Verify all 3 tabs are visible'); + + cy.get(DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB).should('be.visible').and('have.text', 'Overview'); + cy.get(DOCUMENT_DETAILS_FLYOUT_TABLE_TAB).should('be.visible').and('have.text', 'Table'); + cy.get(DOCUMENT_DETAILS_FLYOUT_JSON_TAB).should('be.visible').and('have.text', 'JSON'); + + cy.log('Verify the expand/collapse button is visible and functionality works'); + + expandDocumentDetailsExpandableFlyoutLeftSection(); + cy.get(DOCUMENT_DETAILS_FLYOUT_COLLAPSE_DETAILS_BUTTON) + .should('be.visible') + .and('have.text', 'Collapse details'); + + collapseDocumentDetailsExpandableFlyoutLeftSection(); + cy.get(DOCUMENT_DETAILS_FLYOUT_EXPAND_DETAILS_BUTTON) + .should('be.visible') + .and('have.text', 'Expand details'); + + cy.log('Verify the take action button is visible on all tabs'); + + cy.get(DOCUMENT_DETAILS_FLYOUT_FOOTER).scrollIntoView(); + cy.get(DOCUMENT_DETAILS_FLYOUT_FOOTER).should('be.visible'); + cy.get(DOCUMENT_DETAILS_FLYOUT_FOOTER_TAKE_ACTION_BUTTON).should('be.visible'); + + openTableTab(); + cy.get(DOCUMENT_DETAILS_FLYOUT_FOOTER).scrollIntoView(); + cy.get(DOCUMENT_DETAILS_FLYOUT_FOOTER).should('be.visible'); + cy.get(DOCUMENT_DETAILS_FLYOUT_FOOTER_TAKE_ACTION_BUTTON).should('be.visible'); + + openJsonTab(); + cy.get(DOCUMENT_DETAILS_FLYOUT_FOOTER).scrollIntoView(); + cy.get(DOCUMENT_DETAILS_FLYOUT_FOOTER).should('be.visible'); + cy.get(DOCUMENT_DETAILS_FLYOUT_FOOTER_TAKE_ACTION_BUTTON).should('be.visible'); + }); + + // TODO this will change when add to existing case is improved + // https://github.com/elastic/security-team/issues/6298 + it('should add to existing case', { tags: ['@ess', '@serverless'] }, () => { + navigateToCasesPage(); + createNewCaseFromCases(); + + cy.get(CASE_DETAILS_PAGE_TITLE).should('be.visible').and('have.text', 'case'); + navigateToAlertsPage(); + expandFirstAlertExpandableFlyout(); + openTakeActionButtonAndSelectItem(DOCUMENT_DETAILS_FLYOUT_FOOTER_ADD_TO_EXISTING_CASE); + + cy.get(EXISTING_CASE_SELECT_BUTTON).should('be.visible').contains('Select').click(); + cy.get(VIEW_CASE_TOASTER_LINK).should('be.visible').and('contain.text', 'View case'); + }); + + // TODO this will change when add to new case is improved + // https://github.com/elastic/security-team/issues/6298 + it('should add to new case', { tags: ['@ess', '@serverless'] }, () => { + expandFirstAlertExpandableFlyout(); + openTakeActionButtonAndSelectItem(DOCUMENT_DETAILS_FLYOUT_FOOTER_ADD_TO_NEW_CASE); + + cy.get(DOCUMENT_DETAILS_FLYOUT_FOOTER_ADD_TO_NEW_CASE_NAME_INPUT).type('case'); + cy.get(DOCUMENT_DETAILS_FLYOUT_FOOTER_ADD_TO_NEW_CASE_DESCRIPTION_INPUT).type( + 'case description' + ); + cy.get(DOCUMENT_DETAILS_FLYOUT_FOOTER_ADD_TO_NEW_CASE_CREATE_BUTTON).click(); + + cy.get(VIEW_CASE_TOASTER_LINK).should('be.visible').and('contain.text', 'View case'); + }); + + // Issue reported int: https://github.com/elastic/kibana/issues/167809 + it('should mark as acknowledged', { tags: ['@ess', '@brokenInServerless'] }, () => { + cy.get(ALERT_CHECKBOX).should('have.length', 2); + + expandFirstAlertExpandableFlyout(); + openTakeActionButtonAndSelectItem(DOCUMENT_DETAILS_FLYOUT_FOOTER_ADD_MARK_AS_ACKNOWLEDGED); + + // TODO figure out how to verify the toasts pops up + // cy.get(KIBANA_TOAST) + // .should('be.visible') + // .and('have.text', 'Successfully marked 1 alert as acknowledged.'); + cy.get(ALERT_CHECKBOX).should('have.length', 1); + }); + + // Issue reported int: https://github.com/elastic/kibana/issues/167809 + it('should mark as closed', { tags: ['@ess', '@brokenInServerless'] }, () => { + cy.get(ALERT_CHECKBOX).should('have.length', 2); + + expandFirstAlertExpandableFlyout(); + openTakeActionButtonAndSelectItem(DOCUMENT_DETAILS_FLYOUT_FOOTER_MARK_AS_CLOSED); + + // TODO figure out how to verify the toasts pops up + // cy.get(KIBANA_TOAST).should('be.visible').and('have.text', 'Successfully closed 1 alert.'); + cy.get(ALERT_CHECKBOX).should('have.length', 1); + }); + + // these actions are now grouped together as we're not really testing their functionality but just the existence of the option in the dropdown + // Issue reported int: https://github.com/elastic/kibana/issues/167809 + it( + 'should test other action within take action dropdown', + { tags: ['@ess', '@brokenInServerless'] }, + () => { expandFirstAlertExpandableFlyout(); cy.log('should add endpoint exception'); @@ -234,6 +235,6 @@ describe( .within(() => cy.get(DOCUMENT_DETAILS_FLYOUT_FOOTER_INVESTIGATE_IN_TIMELINE_ENTRY).should('be.visible') ); - }); - } -); + } + ); +}); diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_right_panel_json_tab.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_right_panel_json_tab.cy.ts index a00e109bfc4f4..ca2605c47a1a2 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_right_panel_json_tab.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_right_panel_json_tab.cy.ts @@ -18,7 +18,7 @@ import { waitForAlertsToPopulate } from '../../../../tasks/create_new_rule'; describe( 'Alert details expandable flyout right panel json tab', - { tags: ['@ess', '@brokenInServerless'] }, + { tags: ['@ess', '@serverless'] }, () => { beforeEach(() => { cleanKibana(); diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_right_panel_overview_tab.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_right_panel_overview_tab.cy.ts index 691a1626cf174..ba0d5d984dfbe 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_right_panel_overview_tab.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_right_panel_overview_tab.cy.ts @@ -70,7 +70,7 @@ import { describe( 'Alert details expandable flyout right panel overview tab', - { tags: ['@ess', '@brokenInServerless'] }, + { tags: ['@ess', '@serverless'] }, () => { const rule = { ...getNewRule(), investigation_fields: { field_names: ['host.os.name'] } }; diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_right_panel_table_tab.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_right_panel_table_tab.cy.ts index b5b00989df772..7b0625607d8b2 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_right_panel_table_tab.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_right_panel_table_tab.cy.ts @@ -34,7 +34,7 @@ import { waitForAlertsToPopulate } from '../../../../tasks/create_new_rule'; describe( 'Alert details expandable flyout right panel table tab', - { tags: ['@ess', '@brokenInServerless'] }, + { tags: ['@ess', '@serverless'] }, () => { beforeEach(() => { cleanKibana(); diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_url_sync.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_url_sync.cy.ts index ba6f38d494c03..e4025c4679534 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_url_sync.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_url_sync.cy.ts @@ -16,7 +16,7 @@ import { closeFlyout } from '../../../../tasks/expandable_flyout/alert_details_r import { expandFirstAlertExpandableFlyout } from '../../../../tasks/expandable_flyout/common'; import { DOCUMENT_DETAILS_FLYOUT_HEADER_TITLE } from '../../../../screens/expandable_flyout/alert_details_right_panel'; -describe('Expandable flyout state sync', { tags: ['@ess', '@brokenInServerless'] }, () => { +describe('Expandable flyout state sync', { tags: ['@ess', '@serverless'] }, () => { const rule = getNewRule(); beforeEach(() => { diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/investigate_in_timeline.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/investigate_in_timeline.cy.ts index ff8350f54a3c4..89bae99047759 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/investigate_in_timeline.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/investigate_in_timeline.cy.ts @@ -28,80 +28,76 @@ import { } from '../../../screens/alerts_details'; import { verifyInsightCount } from '../../../tasks/alerts_details'; -describe( - 'Investigate in timeline', - { tags: ['@ess', '@serverless', '@brokenInServerless'] }, - () => { - before(() => { - cleanKibana(); - createRule(getNewRule()); - }); +describe('Investigate in timeline', { tags: ['@ess', '@serverless'] }, () => { + before(() => { + cleanKibana(); + createRule(getNewRule()); + }); - describe('From alerts table', () => { - beforeEach(() => { - login(); - visitWithTimeRange(ALERTS_URL); - waitForAlertsToPopulate(); - }); + describe('From alerts table', () => { + beforeEach(() => { + login(); + visitWithTimeRange(ALERTS_URL); + waitForAlertsToPopulate(); + }); - it('should open new timeline from alerts table', () => { - investigateFirstAlertInTimeline(); - cy.get(PROVIDER_BADGE) - .first() - .invoke('text') - .then((eventId) => { - cy.get(PROVIDER_BADGE).filter(':visible').should('have.text', eventId); - }); - }); + it('should open new timeline from alerts table', () => { + investigateFirstAlertInTimeline(); + cy.get(PROVIDER_BADGE) + .first() + .invoke('text') + .then((eventId) => { + cy.get(PROVIDER_BADGE).filter(':visible').should('have.text', eventId); + }); }); + }); - describe('From alerts details flyout', () => { - beforeEach(() => { - login(); - disableExpandableFlyout(); - visitWithTimeRange(ALERTS_URL); - waitForAlertsToPopulate(); - expandFirstAlert(); - }); + describe('From alerts details flyout', () => { + beforeEach(() => { + login(); + disableExpandableFlyout(); + visitWithTimeRange(ALERTS_URL); + waitForAlertsToPopulate(); + expandFirstAlert(); + }); - it('should open a new timeline from a prevalence field', () => { - // Only one alert matches the exact process args in this case - const alertCount = 1; + it('should open a new timeline from a prevalence field', () => { + // Only one alert matches the exact process args in this case + const alertCount = 1; - // Click on the last button that lets us investigate in timeline. - // We expect this to be the `process.args` row. - cy.get(ALERT_FLYOUT) - .find(SUMMARY_VIEW_INVESTIGATE_IN_TIMELINE_BUTTON) - .last() - .should('have.text', alertCount) - .click(); + // Click on the last button that lets us investigate in timeline. + // We expect this to be the `process.args` row. + cy.get(ALERT_FLYOUT) + .find(SUMMARY_VIEW_INVESTIGATE_IN_TIMELINE_BUTTON) + .last() + .should('have.text', alertCount) + .click(); - // Make sure a new timeline is created and opened - cy.get(TIMELINE_TITLE).should('have.text', 'Untitled timeline'); + // Make sure a new timeline is created and opened + cy.get(TIMELINE_TITLE).should('have.text', 'Untitled timeline'); - // The alert count in this timeline should match the count shown on the alert flyout - cy.get(QUERY_TAB_BUTTON).should('contain.text', alertCount); + // The alert count in this timeline should match the count shown on the alert flyout + cy.get(QUERY_TAB_BUTTON).should('contain.text', alertCount); - // The correct filter is applied to the timeline query - cy.get(FILTER_BADGE).should( - 'have.text', - ' {"bool":{"must":[{"term":{"process.args":"-zsh"}},{"term":{"process.args":"unique"}}]}}' - ); - }); + // The correct filter is applied to the timeline query + cy.get(FILTER_BADGE).should( + 'have.text', + ' {"bool":{"must":[{"term":{"process.args":"-zsh"}},{"term":{"process.args":"unique"}}]}}' + ); + }); - it('should open a new timeline from an insights module', () => { - verifyInsightCount({ - tableSelector: INSIGHTS_RELATED_ALERTS_BY_SESSION, - investigateSelector: INSIGHTS_INVESTIGATE_IN_TIMELINE_BUTTON, - }); + it('should open a new timeline from an insights module', () => { + verifyInsightCount({ + tableSelector: INSIGHTS_RELATED_ALERTS_BY_SESSION, + investigateSelector: INSIGHTS_INVESTIGATE_IN_TIMELINE_BUTTON, }); + }); - it('should open a new timeline with alert ids from the process ancestry', () => { - verifyInsightCount({ - tableSelector: INSIGHTS_RELATED_ALERTS_BY_ANCESTRY, - investigateSelector: INSIGHTS_INVESTIGATE_ANCESTRY_ALERTS_IN_TIMELINE_BUTTON, - }); + it('should open a new timeline with alert ids from the process ancestry', () => { + verifyInsightCount({ + tableSelector: INSIGHTS_RELATED_ALERTS_BY_ANCESTRY, + investigateSelector: INSIGHTS_INVESTIGATE_ANCESTRY_ALERTS_IN_TIMELINE_BUTTON, }); }); - } -); + }); +}); diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/resolver.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/resolver.cy.ts index cc62c05e5949b..ba33a9fde8902 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/resolver.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/resolver.cy.ts @@ -18,33 +18,29 @@ import { login } from '../../../tasks/login'; import { visitWithTimeRange } from '../../../tasks/navigation'; import { ALERTS_URL } from '../../../urls/navigation'; -describe( - 'Analyze events view for alerts', - { tags: ['@ess', '@serverless', '@brokenInServerless'] }, - () => { - before(() => { - cleanKibana(); - createRule(getNewRule()); - }); +describe('Analyze events view for alerts', { tags: ['@ess', '@serverless'] }, () => { + before(() => { + cleanKibana(); + createRule(getNewRule()); + }); - beforeEach(() => { - login(); - visitWithTimeRange(ALERTS_URL); - waitForAlertsToPopulate(); - }); + beforeEach(() => { + login(); + visitWithTimeRange(ALERTS_URL); + waitForAlertsToPopulate(); + }); - it('should render when button is clicked', () => { - openAnalyzerForFirstAlertInTimeline(); - cy.get(ANALYZER_NODE).first().should('be.visible'); - }); + it('should render when button is clicked', () => { + openAnalyzerForFirstAlertInTimeline(); + cy.get(ANALYZER_NODE).first().should('be.visible'); + }); - it('should display a toast indicating the date range of found events when a time range has 0 events in it', () => { - const dateContainingZeroEvents = 'Jul 27, 2022 @ 00:00:00.000'; - setStartDate(dateContainingZeroEvents); - waitForAlertsToPopulate(); - openAnalyzerForFirstAlertInTimeline(); - cy.get(TOASTER).should('be.visible'); - cy.get(ANALYZER_NODE).first().should('be.visible'); - }); - } -); + it('should display a toast indicating the date range of found events when a time range has 0 events in it', () => { + const dateContainingZeroEvents = 'Jul 27, 2022 @ 00:00:00.000'; + setStartDate(dateContainingZeroEvents); + waitForAlertsToPopulate(); + openAnalyzerForFirstAlertInTimeline(); + cy.get(TOASTER).should('be.visible'); + cy.get(ANALYZER_NODE).first().should('be.visible'); + }); +}); diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/discover/cell_actions.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/discover/cell_actions.cy.ts index 6ff904f13ebce..5c7e0f85dbc47 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/discover/cell_actions.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/discover/cell_actions.cy.ts @@ -9,7 +9,6 @@ import { grantClipboardReadPerm } from '../../../../tasks/common/clipboard'; import { DISCOVER_CELL_ACTIONS, DISCOVER_CONTAINER, - DISCOVER_FILTER_BADGES, GET_DISCOVER_DATA_GRID_CELL, } from '../../../../screens/discover'; import { waitForDiscoverGridToLoad } from '../../../../tasks/discover'; @@ -28,7 +27,7 @@ describe.skip( `Discover Datagrid Cell Actions`, { env: { ftrConfig: { enableExperimental: ['discoverInTimeline'] } }, - tags: ['@serverless', '@brokenInServerless'], + tags: ['@ess'], }, () => { beforeEach(() => { @@ -39,35 +38,6 @@ describe.skip( updateDateRangeInLocalDatePickers(DISCOVER_CONTAINER, INITIAL_START_DATE, INITIAL_END_DATE); waitForDiscoverGridToLoad(); }); - it('Filter for', () => { - cy.get(GET_DISCOVER_DATA_GRID_CELL(TIMESTAMP_COLUMN_NAME, 0)).then((sub) => { - const selectedTimestamp = sub.text(); - cy.get(GET_DISCOVER_DATA_GRID_CELL(TIMESTAMP_COLUMN_NAME, 0)).realHover(); - cy.get(DISCOVER_CELL_ACTIONS.FILTER_FOR).should('be.visible').trigger('click'); - - cy.get(DISCOVER_FILTER_BADGES).should('have.length', 1); - cy.get(DISCOVER_FILTER_BADGES) - .first() - .should( - 'have.text', - `${TIMESTAMP_COLUMN_NAME}: ${selectedTimestamp} to ${selectedTimestamp}` - ); - }); - }); - it('Filter out', { tags: ['@brokenInServerless'] }, () => { - cy.get(GET_DISCOVER_DATA_GRID_CELL(TIMESTAMP_COLUMN_NAME, 0)).then((sub) => { - const selectedTimestamp = sub.text(); - cy.get(GET_DISCOVER_DATA_GRID_CELL(TIMESTAMP_COLUMN_NAME, 0)).realHover(); - cy.get(DISCOVER_CELL_ACTIONS.FILTER_OUT).should('be.visible').trigger('click'); - cy.get(DISCOVER_FILTER_BADGES).should('have.length', 1); - cy.get(DISCOVER_FILTER_BADGES) - .first() - .should( - 'have.text', - `NOT ${TIMESTAMP_COLUMN_NAME}: ${selectedTimestamp} to ${selectedTimestamp}` - ); - }); - }); // @TODO: copy is incredibly flaky although it is written same strategy as above tests // Need to see what is the reaosn for that. Trusting that above tests prove that `Copy` // will also work correctly. 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/discover/discover_state.cy.ts index ad73a9b33524f..7d438791c3f1b 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/discover/discover_state.cy.ts @@ -5,19 +5,15 @@ * 2.0. */ -import { fillAddFilterForm } from '../../../../tasks/search_bar'; import { - addDiscoverKqlQuery, + addDiscoverEsqlQuery, addFieldToTable, - openAddDiscoverFilterPopover, submitDiscoverSearchBar, - switchDataViewTo, + verifyDiscoverEsqlQuery, } from '../../../../tasks/discover'; import { navigateFromHeaderTo } from '../../../../tasks/security_header'; import { DISCOVER_CONTAINER, - DISCOVER_QUERY_INPUT, - DISCOVER_FILTER_BADGES, DISCOVER_DATA_VIEW_SWITCHER, GET_DISCOVER_DATA_GRID_CELL_HEADER, } from '../../../../screens/discover'; @@ -34,14 +30,14 @@ import { ALERTS, CSP_FINDINGS } from '../../../../screens/security_header'; const INITIAL_START_DATE = 'Jan 18, 2021 @ 20:33:29.186'; 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'; -// FLAKY: https://github.com/elastic/kibana/issues/165663 -// FLAKY: https://github.com/elastic/kibana/issues/165747 describe( 'Discover State', { env: { ftrConfig: { enableExperimental: ['discoverInTimeline'] } }, - tags: ['@ess', '@serverless', '@brokenInServerless'], + tags: ['@ess'], }, () => { beforeEach(() => { @@ -51,36 +47,22 @@ describe( gotToDiscoverTab(); updateDateRangeInLocalDatePickers(DISCOVER_CONTAINER, INITIAL_START_DATE, INITIAL_END_DATE); }); - it('should remember kql query when navigating away and back to discover ', () => { - const kqlQuery = '_id:*'; - addDiscoverKqlQuery(kqlQuery); - submitDiscoverSearchBar(); - navigateFromHeaderTo(CSP_FINDINGS); - navigateFromHeaderTo(ALERTS); - openActiveTimeline(); - gotToDiscoverTab(); - cy.get(DISCOVER_QUERY_INPUT).should('have.text', kqlQuery); + it('should not allow the dataview to be changed', () => { + cy.get(DISCOVER_DATA_VIEW_SWITCHER.BTN).should('not.exist'); }); - it('should remember filters when navigating away and back to discover ', () => { - openAddDiscoverFilterPopover(); - fillAddFilterForm({ - key: 'agent.type', - value: 'winlogbeat', - }); - navigateFromHeaderTo(CSP_FINDINGS); - navigateFromHeaderTo(ALERTS); - openActiveTimeline(); - gotToDiscoverTab(); - cy.get(DISCOVER_FILTER_BADGES).should('have.length', 1); + it('should have the default esql query on load', () => { + verifyDiscoverEsqlQuery(DEFAULT_ESQL_QUERY); }); - it.skip('should remember dataView when navigating away and back to discover ', () => { - const dataviewName = '.kibana-event-log'; - switchDataViewTo(dataviewName); + it('should remember esql query when navigating away and back to discover ', () => { + const esqlQuery = 'from auditbeat-* | limit 5'; + addDiscoverEsqlQuery(esqlQuery); + submitDiscoverSearchBar(); navigateFromHeaderTo(CSP_FINDINGS); navigateFromHeaderTo(ALERTS); openActiveTimeline(); gotToDiscoverTab(); - cy.get(DISCOVER_DATA_VIEW_SWITCHER.BTN).should('contain.text', dataviewName); + + verifyDiscoverEsqlQuery(esqlQuery); }); it('should remember columns when navigating away and back to discover ', () => { addFieldToTable('host.name'); 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/discover/discover_timeline_state_integration.cy.ts index 9f8612551c51c..6e1289f9f8450 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/discover/discover_timeline_state_integration.cy.ts @@ -13,13 +13,10 @@ import { navigateFromKibanaCollapsibleTo, openKibanaNavigation, } from '../../../../tasks/kibana_navigation'; -import { fillAddFilterForm } from '../../../../tasks/search_bar'; import { - addDiscoverKqlQuery, + addDiscoverEsqlQuery, addFieldToTable, - openAddDiscoverFilterPopover, - switchDataViewTo, - switchDataViewToESQL, + verifyDiscoverEsqlQuery, } from '../../../../tasks/discover'; import { GET_LOCAL_DATE_PICKER_START_DATE_POPOVER_BUTTON, @@ -29,8 +26,6 @@ import { ALERTS_URL } from '../../../../urls/navigation'; import { DISCOVER_CONTAINER, DISCOVER_DATA_VIEW_SWITCHER, - DISCOVER_FILTER_BADGES, - DISCOVER_QUERY_INPUT, GET_DISCOVER_DATA_GRID_CELL_HEADER, } from '../../../../screens/discover'; import { updateDateRangeInLocalDatePickers } from '../../../../tasks/date_picker'; @@ -63,6 +58,7 @@ const TIMELINE_PATCH_REQ = 'TIMELINE_PATCH_REQ'; const TIMELINE_RESPONSE_SAVED_OBJECT_ID_PATH = 'response.body.data.persistTimeline.timeline.savedObjectId'; +const esqlQuery = 'from auditbeat-* | where ecs.version == "8.0.0"'; describe( 'Discover Timeline State Integration', @@ -126,19 +122,11 @@ describe( ); }); it('should save/restore discover dataview/timerange/filter/query/columns when saving/resoring timeline', () => { - const dataviewName = '.kibana-event-log'; const timelineSuffix = Date.now(); const timelineName = `DataView timeline-${timelineSuffix}`; - const kqlQuery = '_id:*'; const column1 = 'event.category'; const column2 = 'ecs.version'; - switchDataViewTo(dataviewName); - addDiscoverKqlQuery(kqlQuery); - openAddDiscoverFilterPopover(); - fillAddFilterForm({ - key: 'ecs.version', - value: '1.8.0', - }); + addDiscoverEsqlQuery(esqlQuery); addFieldToTable(column1); addFieldToTable(column2); @@ -155,10 +143,7 @@ describe( openTimelineById(timelineId); cy.get(LOADING_INDICATOR).should('not.exist'); gotToDiscoverTab(); - cy.get(DISCOVER_DATA_VIEW_SWITCHER.BTN).should('contain.text', dataviewName); - cy.get(DISCOVER_QUERY_INPUT).should('have.text', kqlQuery); - cy.get(DISCOVER_FILTER_BADGES).should('have.length', 1); - cy.get(DISCOVER_FILTER_BADGES).should('contain.text', 'ecs.version: 1.8.0'); + verifyDiscoverEsqlQuery(esqlQuery); cy.get(GET_DISCOVER_DATA_GRID_CELL_HEADER(column1)).should('exist'); cy.get(GET_DISCOVER_DATA_GRID_CELL_HEADER(column2)).should('exist'); cy.get(GET_LOCAL_DATE_PICKER_START_DATE_POPOVER_BUTTON(DISCOVER_CONTAINER)).should( @@ -168,19 +153,11 @@ describe( }); }); it('should save/restore discover dataview/timerange/filter/query/columns when timeline is opened via url', () => { - const dataviewName = '.kibana-event-log'; const timelineSuffix = Date.now(); const timelineName = `DataView timeline-${timelineSuffix}`; - const kqlQuery = '_id:*'; const column1 = 'event.category'; const column2 = 'ecs.version'; - switchDataViewTo(dataviewName); - addDiscoverKqlQuery(kqlQuery); - openAddDiscoverFilterPopover(); - fillAddFilterForm({ - key: 'ecs.version', - value: '1.8.0', - }); + addDiscoverEsqlQuery(esqlQuery); addFieldToTable(column1); addFieldToTable(column2); @@ -192,10 +169,7 @@ describe( cy.wait(`@${TIMELINE_REQ_WITH_SAVED_SEARCH}`); // reload the page with the exact url cy.reload(); - cy.get(DISCOVER_DATA_VIEW_SWITCHER.BTN).should('contain.text', dataviewName); - cy.get(DISCOVER_QUERY_INPUT).should('have.text', kqlQuery); - cy.get(DISCOVER_FILTER_BADGES).should('have.length', 1); - cy.get(DISCOVER_FILTER_BADGES).should('contain.text', 'ecs.version: 1.8.0'); + verifyDiscoverEsqlQuery(esqlQuery); cy.get(GET_DISCOVER_DATA_GRID_CELL_HEADER(column1)).should('exist'); cy.get(GET_DISCOVER_DATA_GRID_CELL_HEADER(column2)).should('exist'); cy.get(GET_LOCAL_DATE_PICKER_START_DATE_POPOVER_BUTTON(DISCOVER_CONTAINER)).should( @@ -207,7 +181,6 @@ describe( it('should save/restore discover ES|QL when saving timeline', () => { const timelineSuffix = Date.now(); const timelineName = `ES|QL timeline-${timelineSuffix}`; - switchDataViewToESQL(); addNameToTimeline(timelineName); cy.wait(`@${TIMELINE_PATCH_REQ}`) .its(TIMELINE_RESPONSE_SAVED_OBJECT_ID_PATH) @@ -220,7 +193,7 @@ describe( openTimelineById(timelineId); cy.get(LOADING_INDICATOR).should('not.exist'); gotToDiscoverTab(); - cy.get(DISCOVER_DATA_VIEW_SWITCHER.BTN).should('contain.text', 'ES|QL'); + cy.get(DISCOVER_DATA_VIEW_SWITCHER.BTN).should('not.exist'); }); }); }); @@ -235,8 +208,7 @@ describe( it('should save discover saved search with `Security Solution` tag', () => { const timelineSuffix = Date.now(); const timelineName = `SavedObject timeline-${timelineSuffix}`; - const kqlQuery = '_id: *'; - addDiscoverKqlQuery(kqlQuery); + addDiscoverEsqlQuery(esqlQuery); addNameToTimeline(timelineName); cy.wait(`@${TIMELINE_REQ_WITH_SAVED_SEARCH}`); openKibanaNavigation(); @@ -257,8 +229,7 @@ describe( it('should rename the saved search on timeline rename', () => { const timelineSuffix = Date.now(); const timelineName = `Rename timeline-${timelineSuffix}`; - const kqlQuery = '_id: *'; - addDiscoverKqlQuery(kqlQuery); + addDiscoverEsqlQuery(esqlQuery); addNameToTimeline(timelineName); cy.wait(`@${TIMELINE_PATCH_REQ}`) 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/discover/search_filter.cy.ts index c48fa80baad46..42375aeee5e2e 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/discover/search_filter.cy.ts @@ -6,7 +6,6 @@ */ import { GET_LOCAL_DATE_PICKER_START_DATE_POPOVER_BUTTON } from '../../../../screens/date_picker'; -import { fillAddFilterForm, fillAddFilterFormAsQueryDSL } from '../../../../tasks/search_bar'; import { setStartDate, updateDateRangeInLocalDatePickers, @@ -14,20 +13,15 @@ import { } from '../../../../tasks/date_picker'; import { DISCOVER_CONTAINER, - DISCOVER_NO_RESULTS, DISCOVER_RESULT_HITS, - DISCOVER_FILTER_BADGES, - DISCOVER_QUERY_INPUT, GET_DISCOVER_DATA_GRID_CELL_HEADER, - DISCOVER_DATA_VIEW_SWITCHER, + DISCOVER_ESQL_INPUT_TEXT_CONTAINER, } from '../../../../screens/discover'; import { - addDiscoverKqlQuery, - switchDataViewTo, + addDiscoverEsqlQuery, submitDiscoverSearchBar, - openAddDiscoverFilterPopover, addFieldToTable, - createAdHocDataView, + convertNBSPToSP, } from '../../../../tasks/discover'; import { createNewTimeline, gotToDiscoverTab } from '../../../../tasks/timeline'; import { login } from '../../../../tasks/login'; @@ -37,13 +31,14 @@ import { ALERTS_URL } from '../../../../urls/navigation'; const INITIAL_START_DATE = 'Jan 18, 2021 @ 20:33:29.186'; 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 -describe.skip( +describe( 'Basic discover search and filter operations', { env: { ftrConfig: { enableExperimental: ['discoverInTimeline'] } }, - tags: ['@ess', '@serverless'], + tags: ['@ess'], }, () => { beforeEach(() => { @@ -53,76 +48,34 @@ describe.skip( gotToDiscoverTab(); updateDateRangeInLocalDatePickers(DISCOVER_CONTAINER, INITIAL_START_DATE, INITIAL_END_DATE); }); - it('should change data when dataView is changed', () => { - switchDataViewTo('.kibana-event-log'); - cy.get(DISCOVER_RESULT_HITS).should('have.text', '1'); - }); - it('should show data according to kql query', () => { - const kqlQuery = '_id:"invalid"'; - addDiscoverKqlQuery(kqlQuery); + it('should show data according to esql query', () => { + addDiscoverEsqlQuery(`${esqlQuery} | limit 1`); submitDiscoverSearchBar(); - cy.get(DISCOVER_NO_RESULTS).should('be.visible'); - }); - it('should show correct data according to filter applied', () => { - openAddDiscoverFilterPopover(); - fillAddFilterForm({ - key: 'agent.type', - value: 'winlogbeat', - }); - cy.get(DISCOVER_FILTER_BADGES).should('have.length', 1); - cy.get(DISCOVER_RESULT_HITS).should('have.text', '1'); - }); - it('should show correct data according to query DSL', () => { - const query = { - bool: { - filter: [ - { - term: { - 'agent.type': 'winlogbeat', - }, - }, - ], - }, - }; - openAddDiscoverFilterPopover(); - fillAddFilterFormAsQueryDSL(JSON.stringify(query)); - cy.get(DISCOVER_FILTER_BADGES).should('have.length', 1); - cy.get(DISCOVER_RESULT_HITS).should('have.text', '1'); + cy.get(DISCOVER_RESULT_HITS).should('have.text', 1); }); - - it('should be able to create ad-hoc dataview without saving', () => { - const adHocDVName = 'adHocDataView'; - const indexPattern = 'audit'; - createAdHocDataView(adHocDVName, indexPattern); - cy.get(DISCOVER_DATA_VIEW_SWITCHER.BTN).should('contain.text', adHocDVName); - }); - it('should be able to add fields to the table', () => { addFieldToTable('host.name'); - cy.get(GET_DISCOVER_DATA_GRID_CELL_HEADER('host.name')).should('be.visible'); addFieldToTable('user.name'); + cy.get(GET_DISCOVER_DATA_GRID_CELL_HEADER('host.name')).should('be.visible'); cy.get(GET_DISCOVER_DATA_GRID_CELL_HEADER('user.name')).should('be.visible'); }); context('navigation', () => { - it('should remove the filter when back is pressed after adding a filter', () => { - openAddDiscoverFilterPopover(); - fillAddFilterForm({ - key: 'agent.type', - value: 'winlogbeat', - }); - cy.get(DISCOVER_FILTER_BADGES).should('have.length', 1); - cy.go('back'); - cy.get(DISCOVER_FILTER_BADGES).should('not.exist'); - }); it('should removed the query when back is pressed after adding a query', () => { - const kqlQuery = '_id:"invalid"'; - addDiscoverKqlQuery(kqlQuery); + addDiscoverEsqlQuery(esqlQuery); submitDiscoverSearchBar(); - cy.get(DISCOVER_QUERY_INPUT).should('have.text', kqlQuery); + cy.get(DISCOVER_ESQL_INPUT_TEXT_CONTAINER).then((subj) => { + const currentQuery = subj.text(); + const sanitizedQuery = convertNBSPToSP(currentQuery); + expect(sanitizedQuery).to.eq(esqlQuery); + }); cy.go('back'); - cy.get(DISCOVER_QUERY_INPUT).should('not.have.text', kqlQuery); + cy.get(DISCOVER_ESQL_INPUT_TEXT_CONTAINER).then((subj) => { + const currentQuery = subj.text(); + const sanitizedQuery = convertNBSPToSP(currentQuery); + expect(sanitizedQuery).to.not.eq(esqlQuery); + }); }); it(`should changed the timerange to ${INITIAL_START_DATE} when back is pressed after modifying timerange from ${INITIAL_START_DATE} to ${NEW_START_DATE} `, () => { diff --git a/x-pack/test/security_solution_cypress/cypress/screens/breadcrumbs.ts b/x-pack/test/security_solution_cypress/cypress/screens/breadcrumbs.ts new file mode 100644 index 0000000000000..52910ec9b5f29 --- /dev/null +++ b/x-pack/test/security_solution_cypress/cypress/screens/breadcrumbs.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 RULE_MANAGEMENT_PAGE_BREADCRUMB = + '[data-test-subj~="breadcrumb"][title="Detection rules (SIEM)"]'; + +export const LAST_BREADCRUMB = `[data-test-subj~="breadcrumb"][data-test-subj~="last"]`; diff --git a/x-pack/test/security_solution_cypress/cypress/screens/discover.ts b/x-pack/test/security_solution_cypress/cypress/screens/discover.ts index a728c1f4c82bd..bc3d418b73bb8 100644 --- a/x-pack/test/security_solution_cypress/cypress/screens/discover.ts +++ b/x-pack/test/security_solution_cypress/cypress/screens/discover.ts @@ -26,10 +26,14 @@ export const DISCOVER_DATA_VIEW_EDITOR_FLYOUT = { SAVE_DATA_VIEW_BTN: getDataTestSubjectSelector('saveIndexPatternButton'), }; -export const DISCOVER_QUERY_INPUT = `${DISCOVER_CONTAINER} ${getDataTestSubjectSelector( - 'unifiedQueryInput' +export const DISCOVER_ESQL_INPUT = `${DISCOVER_CONTAINER} ${getDataTestSubjectSelector( + 'kibanaCodeEditor' )}`; +export const DISCOVER_ESQL_INPUT_TEXT_CONTAINER = `${DISCOVER_ESQL_INPUT} .view-lines`; + +export const DISCOVER_ESQL_EDITABLE_INPUT = `${DISCOVER_ESQL_INPUT} textarea:first`; + export const DISCOVER_ADD_FILTER = `${DISCOVER_CONTAINER} ${getDataTestSubjectSelector( 'addFilter' )}`; diff --git a/x-pack/test/security_solution_cypress/cypress/screens/rule_details.ts b/x-pack/test/security_solution_cypress/cypress/screens/rule_details.ts index d061f4a49114d..fd98e38f9cc32 100644 --- a/x-pack/test/security_solution_cypress/cypress/screens/rule_details.ts +++ b/x-pack/test/security_solution_cypress/cypress/screens/rule_details.ts @@ -23,6 +23,10 @@ export const ANOMALY_SCORE_DETAILS = 'Anomaly score'; export const CUSTOM_QUERY_DETAILS = 'Custom query'; +export const EQL_QUERY_DETAILS = 'EQL query'; + +export const ESQL_QUERY_DETAILS = 'ES|QL query'; + export const SAVED_QUERY_NAME_DETAILS = 'Saved query name'; export const SAVED_QUERY_DETAILS = /^Saved query$/; @@ -142,8 +146,5 @@ export const THREAT_TECHNIQUE = '[data-test-subj="threatTechniqueLink"]'; export const THREAT_SUBTECHNIQUE = '[data-test-subj="threatSubtechniqueLink"]'; -export const BACK_TO_RULES_TABLE = - '[data-test-subj="breadcrumbs"] a[title="Detection rules (SIEM)"]'; - export const HIGHLIGHTED_ROWS_IN_TABLE = '[data-test-subj="euiDataGridBody"] .alertsTableHighlightedRow'; diff --git a/x-pack/test/security_solution_cypress/cypress/tasks/alerts.ts b/x-pack/test/security_solution_cypress/cypress/tasks/alerts.ts index fee36ce79faff..1bbdc9eac1539 100644 --- a/x-pack/test/security_solution_cypress/cypress/tasks/alerts.ts +++ b/x-pack/test/security_solution_cypress/cypress/tasks/alerts.ts @@ -162,7 +162,7 @@ export const setEnrichmentDates = (from?: string, to?: string) => { cy.get(ENRICHMENT_QUERY_END_INPUT).type(`{selectall}${to}{enter}`); } }); - cy.get(UPDATE_ENRICHMENT_RANGE_BUTTON).click(); + cy.get(UPDATE_ENRICHMENT_RANGE_BUTTON).click({ force: true }); }; export const refreshAlertPageFilter = () => { diff --git a/x-pack/test/security_solution_cypress/cypress/tasks/create_new_rule.ts b/x-pack/test/security_solution_cypress/cypress/tasks/create_new_rule.ts index a6eb63fe6318b..9faf5fa81ec00 100644 --- a/x-pack/test/security_solution_cypress/cypress/tasks/create_new_rule.ts +++ b/x-pack/test/security_solution_cypress/cypress/tasks/create_new_rule.ts @@ -127,33 +127,20 @@ import { ALERTS_TABLE_COUNT } from '../screens/timeline'; import { TIMELINE } from '../screens/timelines'; import { EUI_FILTER_SELECT_ITEM, COMBO_BOX_INPUT } from '../screens/common/controls'; import { ruleFields } from '../data/detection_engine'; -import { BACK_TO_RULES_TABLE } from '../screens/rule_details'; import { waitForAlerts } from './alerts'; import { refreshPage } from './security_header'; import { EMPTY_ALERT_TABLE } from '../screens/alerts'; -export const createAndEnableRuleOnly = () => { - cy.get(CREATE_AND_ENABLE_BTN).click({ force: true }); - cy.get(CREATE_AND_ENABLE_BTN).should('not.exist'); -}; - export const createAndEnableRule = () => { - cy.get(CREATE_AND_ENABLE_BTN).click({ force: true }); + cy.get(CREATE_AND_ENABLE_BTN).click(); cy.get(CREATE_AND_ENABLE_BTN).should('not.exist'); - cy.get(BACK_TO_RULES_TABLE).click({ force: true }); }; -export const pressRuleCreateBtn = () => { +export const createRuleWithoutEnabling = () => { cy.get(CREATE_WITHOUT_ENABLING_BTN).click(); cy.get(CREATE_WITHOUT_ENABLING_BTN).should('not.exist'); }; -export const createRuleWithoutEnabling = () => { - pressRuleCreateBtn(); - cy.get(BACK_TO_RULES_TABLE).click({ force: true }); - cy.get(BACK_TO_RULES_TABLE).should('not.exist'); -}; - export const fillAboutRule = (rule: RuleCreateProps) => { cy.get(RULE_NAME_INPUT).clear({ force: true }); cy.get(RULE_NAME_INPUT).type(rule.name, { force: true }); 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 90623f239c326..e5d835bbe8c53 100644 --- a/x-pack/test/security_solution_cypress/cypress/tasks/discover.ts +++ b/x-pack/test/security_solution_cypress/cypress/tasks/discover.ts @@ -10,11 +10,12 @@ import { DISCOVER_CONTAINER, DISCOVER_DATA_GRID_UPDATING, DISCOVER_DATA_VIEW_SWITCHER, - DISCOVER_QUERY_INPUT, + DISCOVER_ESQL_INPUT, GET_DISCOVER_COLUMN_TOGGLE_BTN, DISCOVER_FIELD_SEARCH, DISCOVER_DATA_VIEW_EDITOR_FLYOUT, DISCOVER_FIELD_LIST_LOADING, + DISCOVER_ESQL_EDITABLE_INPUT, } from '../screens/discover'; import { GET_LOCAL_SEARCH_BAR_SUBMIT_BUTTON } from '../screens/search_bar'; @@ -43,8 +44,35 @@ export const waitForDiscoverGridToLoad = () => { cy.get(DISCOVER_FIELD_LIST_LOADING).should('not.exist'); }; -export const addDiscoverKqlQuery = (kqlQuery: string) => { - cy.get(DISCOVER_QUERY_INPUT).type(`${kqlQuery}{enter}`); +export const selectCurrentDiscoverEsqlQuery = (discoverEsqlInput = DISCOVER_ESQL_INPUT) => { + cy.get(discoverEsqlInput).click(); + cy.get(discoverEsqlInput).focused(); + cy.get(discoverEsqlInput).type(Cypress.platform === 'darwin' ? '{cmd+a}' : '{ctrl+a}'); +}; + +export const addDiscoverEsqlQuery = (esqlQuery: string) => { + // ESQL input uses the monaco editor which doesn't allow for traditional input updates + selectCurrentDiscoverEsqlQuery(DISCOVER_ESQL_EDITABLE_INPUT); + cy.get(DISCOVER_ESQL_EDITABLE_INPUT).clear(); + cy.get(DISCOVER_ESQL_EDITABLE_INPUT).type(`${esqlQuery}`); + cy.get(DISCOVER_ESQL_EDITABLE_INPUT).blur(); + cy.get(GET_LOCAL_SEARCH_BAR_SUBMIT_BUTTON(DISCOVER_CONTAINER)).realClick(); +}; + +export const convertNBSPToSP = (str: string) => { + return str.replaceAll(String.fromCharCode(160), ' '); +}; + +export const verifyDiscoverEsqlQuery = (esqlQueryToVerify: string) => { + // We select the query first as multi-line queries do not render fully unless all the text is selected + selectCurrentDiscoverEsqlQuery(); + /** + * When selected all visual spaces actually render the middot character, so we replace the spaces with the middot + * If testing without selecting first you can replace with a Non-breaking space character + * https://github.com/cypress-io/cypress/issues/15863#issuecomment-816746693 + */ + const unicodeReplacedQuery = esqlQueryToVerify.replaceAll(' ', '\u00b7'); + cy.get(DISCOVER_ESQL_INPUT).should('include.text', unicodeReplacedQuery); }; export const submitDiscoverSearchBar = () => { @@ -69,6 +97,7 @@ export const clearFieldSearch = () => { export const addFieldToTable = (fieldId: string) => { searchForField(fieldId); + cy.get(GET_DISCOVER_COLUMN_TOGGLE_BTN(fieldId)).first().should('exist'); cy.get(GET_DISCOVER_COLUMN_TOGGLE_BTN(fieldId)).first().trigger('click'); clearFieldSearch(); }; diff --git a/x-pack/test/security_solution_cypress/cypress/tasks/prebuilt_rules.ts b/x-pack/test/security_solution_cypress/cypress/tasks/prebuilt_rules.ts index e6945c551c965..7b58dda17015f 100644 --- a/x-pack/test/security_solution_cypress/cypress/tasks/prebuilt_rules.ts +++ b/x-pack/test/security_solution_cypress/cypress/tasks/prebuilt_rules.ts @@ -22,7 +22,7 @@ import { UPGRADE_ALL_RULES_BUTTON, UPGRADE_SELECTED_RULES_BUTTON, } from '../screens/alerts_detection_rules'; -import { BACK_TO_RULES_TABLE } from '../screens/rule_details'; +import { RULE_MANAGEMENT_PAGE_BREADCRUMB } from '../screens/breadcrumbs'; import type { SAMPLE_PREBUILT_RULE } from './api_calls/prebuilt_rules'; export const addElasticRulesButtonClick = () => { @@ -108,7 +108,7 @@ const assertInstallationSuccessOrFailure = ( cy.get(ADD_ELASTIC_RULES_TABLE).contains(rule['security-rule'].name); } } else { - cy.get(BACK_TO_RULES_TABLE).click(); + cy.get(RULE_MANAGEMENT_PAGE_BREADCRUMB).click(); for (const rule of rules) { cy.get(RULES_MANAGEMENT_TABLE).contains(rule['security-rule'].name); } diff --git a/x-pack/test/security_solution_cypress/cypress/tasks/rule_details.ts b/x-pack/test/security_solution_cypress/cypress/tasks/rule_details.ts index 9264b17fec081..a81be48d229e9 100644 --- a/x-pack/test/security_solution_cypress/cypress/tasks/rule_details.ts +++ b/x-pack/test/security_solution_cypress/cypress/tasks/rule_details.ts @@ -7,6 +7,7 @@ import { ROLES } from '@kbn/security-solution-plugin/common/test'; import type { Exception } from '../objects/exception'; +import { RULE_MANAGEMENT_PAGE_BREADCRUMB } from '../screens/breadcrumbs'; import { PAGE_CONTENT_SPINNER } from '../screens/common/page'; import { RULE_STATUS } from '../screens/create_new_rule'; import { @@ -30,7 +31,6 @@ import { EDIT_EXCEPTION_BTN, ENDPOINT_EXCEPTIONS_TAB, EDIT_RULE_SETTINGS_LINK, - BACK_TO_RULES_TABLE, EXCEPTIONS_TAB_EXPIRED_FILTER, EXCEPTIONS_TAB_ACTIVE_FILTER, RULE_NAME_HEADER, @@ -152,7 +152,7 @@ export const waitForTheRuleToBeExecuted = () => { }; export const goBackToRulesTable = () => { - cy.get(BACK_TO_RULES_TABLE).click(); + cy.get(RULE_MANAGEMENT_PAGE_BREADCRUMB).click(); }; export const getDetails = (title: string | RegExp) => diff --git a/x-pack/test/security_solution_cypress/cypress/tasks/rules_management.ts b/x-pack/test/security_solution_cypress/cypress/tasks/rules_management.ts index 6c6bbfb1564e2..5f795ce97d524 100644 --- a/x-pack/test/security_solution_cypress/cypress/tasks/rules_management.ts +++ b/x-pack/test/security_solution_cypress/cypress/tasks/rules_management.ts @@ -6,6 +6,7 @@ */ import type { ROLES } from '@kbn/security-solution-plugin/common/test'; +import { LAST_BREADCRUMB, RULE_MANAGEMENT_PAGE_BREADCRUMB } from '../screens/breadcrumbs'; import { RULES_MANAGEMENT_URL } from '../urls/rules_management'; import { resetRulesTableState } from './common'; import { visit } from './navigation'; @@ -14,3 +15,9 @@ export function visitRulesManagementTable(role?: ROLES): void { resetRulesTableState(); // Clear persistent rules filter data before page loading visit(RULES_MANAGEMENT_URL, { role }); } + +export function openRuleManagementPageViaBreadcrumbs(): void { + cy.log('Navigate back to rules table via breadcrumbs'); + cy.get(RULE_MANAGEMENT_PAGE_BREADCRUMB).not(LAST_BREADCRUMB).click(); + cy.get(RULE_MANAGEMENT_PAGE_BREADCRUMB).filter(LAST_BREADCRUMB).should('exist'); +} 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 6c985c6d93cc1..a0e81d1f244f7 100644 --- a/x-pack/test/security_solution_cypress/cypress/tasks/timeline.ts +++ b/x-pack/test/security_solution_cypress/cypress/tasks/timeline.ts @@ -102,7 +102,7 @@ export const addDescriptionToTimeline = ( if (!modalAlreadyOpen) { cy.get(TIMELINE_EDIT_MODAL_OPEN_BUTTON).first().click(); } - cy.get(TIMELINE_DESCRIPTION_INPUT).type(description); + cy.get(TIMELINE_DESCRIPTION_INPUT).should('not.be.disabled').type(description); cy.get(TIMELINE_DESCRIPTION_INPUT).invoke('val').should('equal', description); cy.get(TIMELINE_EDIT_MODAL_SAVE_BUTTON).click(); cy.get(TIMELINE_TITLE_INPUT).should('not.exist'); @@ -112,7 +112,7 @@ export const addNameToTimeline = (name: string, modalAlreadyOpen: boolean = fals if (!modalAlreadyOpen) { cy.get(TIMELINE_EDIT_MODAL_OPEN_BUTTON).first().click(); } - cy.get(TIMELINE_TITLE_INPUT).type(`${name}{enter}`); + cy.get(TIMELINE_TITLE_INPUT).should('not.be.disabled').type(`${name}{enter}`); cy.get(TIMELINE_TITLE_INPUT).should('have.attr', 'value', name); cy.get(TIMELINE_EDIT_MODAL_SAVE_BUTTON).click(); cy.get(TIMELINE_TITLE_INPUT).should('not.exist'); @@ -315,7 +315,7 @@ export const createNewTimeline = () => { 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).click(); + cy.get(CREATE_NEW_TIMELINE).eq(0).should('be.visible').click(); }; export const openCreateTimelineOptionsPopover = () => { diff --git a/x-pack/test_serverless/api_integration/test_suites/common/alerting/alert_documents.ts b/x-pack/test_serverless/api_integration/test_suites/common/alerting/alert_documents.ts index 10e5e4d0c88e1..a108ffa4f2d00 100644 --- a/x-pack/test_serverless/api_integration/test_suites/common/alerting/alert_documents.ts +++ b/x-pack/test_serverless/api_integration/test_suites/common/alerting/alert_documents.ts @@ -105,7 +105,7 @@ export default function ({ getService }: FtrProviderContext) { expect(hits1[ALERT_MAINTENANCE_WINDOW_IDS]).to.be.an(Array); expect(typeof hits1[ALERT_REASON]).to.be('string'); expect(typeof hits1[ALERT_RULE_EXECUTION_UUID]).to.be('string'); - expect(typeof hits1[ALERT_DURATION]).to.be('string'); + expect(typeof hits1[ALERT_DURATION]).to.be('number'); expect(new Date(hits1[ALERT_START])).to.be.a(Date); expect(typeof hits1[ALERT_TIME_RANGE]).to.be('object'); expect(typeof hits1[ALERT_UUID]).to.be('string'); @@ -235,8 +235,8 @@ export default function ({ getService }: FtrProviderContext) { expect(hits2['@timestamp']).to.be.greaterThan(hits1['@timestamp']); expect(OPEN_OR_ACTIVE.has(hits1[EVENT_ACTION])).to.be(true); expect(hits2[EVENT_ACTION]).to.be('active'); - expect(parseInt(hits1[ALERT_DURATION], 10)).to.not.be.lessThan(0); - expect(hits2[ALERT_DURATION]).not.to.be('0'); + expect(hits1[ALERT_DURATION]).to.not.be.lessThan(0); + expect(hits2[ALERT_DURATION]).not.to.be(0); // remove fields we know will be different const fields = [ diff --git a/x-pack/test_serverless/api_integration/test_suites/observability/custom_threshold_rule/avg_pct_fired.ts b/x-pack/test_serverless/api_integration/test_suites/observability/custom_threshold_rule/avg_pct_fired.ts index e85222b1d6813..be230b13193f6 100644 --- a/x-pack/test_serverless/api_integration/test_suites/observability/custom_threshold_rule/avg_pct_fired.ts +++ b/x-pack/test_serverless/api_integration/test_suites/observability/custom_threshold_rule/avg_pct_fired.ts @@ -59,10 +59,12 @@ export default function ({ getService }: FtrProviderContext) { await esClient.deleteByQuery({ index: CUSTOM_THRESHOLD_RULE_ALERT_INDEX, query: { term: { 'kibana.alert.rule.uuid': ruleId } }, + conflicts: 'proceed', }); await esClient.deleteByQuery({ index: '.kibana-event-log-*', query: { term: { 'rule.id': ruleId } }, + conflicts: 'proceed', }); await dataViewApi.delete({ id: DATA_VIEW_ID, diff --git a/x-pack/test_serverless/api_integration/test_suites/observability/custom_threshold_rule/avg_pct_no_data.ts b/x-pack/test_serverless/api_integration/test_suites/observability/custom_threshold_rule/avg_pct_no_data.ts index 8a7e5cbebaf70..09af6988dbc29 100644 --- a/x-pack/test_serverless/api_integration/test_suites/observability/custom_threshold_rule/avg_pct_no_data.ts +++ b/x-pack/test_serverless/api_integration/test_suites/observability/custom_threshold_rule/avg_pct_no_data.ts @@ -47,10 +47,12 @@ export default function ({ getService }: FtrProviderContext) { await esClient.deleteByQuery({ index: CUSTOM_THRESHOLD_RULE_ALERT_INDEX, query: { term: { 'kibana.alert.rule.uuid': ruleId } }, + conflicts: 'proceed', }); await esClient.deleteByQuery({ index: '.kibana-event-log-*', query: { term: { 'rule.id': ruleId } }, + conflicts: 'proceed', }); await dataViewApi.delete({ id: DATA_VIEW_ID, diff --git a/x-pack/test_serverless/api_integration/test_suites/observability/custom_threshold_rule/custom_eq_avg_bytes_fired.ts b/x-pack/test_serverless/api_integration/test_suites/observability/custom_threshold_rule/custom_eq_avg_bytes_fired.ts index 3e6d4fccde5fc..9ab6bd73983e3 100644 --- a/x-pack/test_serverless/api_integration/test_suites/observability/custom_threshold_rule/custom_eq_avg_bytes_fired.ts +++ b/x-pack/test_serverless/api_integration/test_suites/observability/custom_threshold_rule/custom_eq_avg_bytes_fired.ts @@ -61,10 +61,12 @@ export default function ({ getService }: FtrProviderContext) { await esClient.deleteByQuery({ index: CUSTOM_THRESHOLD_RULE_ALERT_INDEX, query: { term: { 'kibana.alert.rule.uuid': ruleId } }, + conflicts: 'proceed', }); await esClient.deleteByQuery({ index: '.kibana-event-log-*', query: { term: { 'rule.id': ruleId } }, + conflicts: 'proceed', }); await dataViewApi.delete({ id: DATA_VIEW_ID, diff --git a/x-pack/test_serverless/api_integration/test_suites/observability/custom_threshold_rule/documents_count_fired.ts b/x-pack/test_serverless/api_integration/test_suites/observability/custom_threshold_rule/documents_count_fired.ts index 7759e94997e64..d98334f7d4540 100644 --- a/x-pack/test_serverless/api_integration/test_suites/observability/custom_threshold_rule/documents_count_fired.ts +++ b/x-pack/test_serverless/api_integration/test_suites/observability/custom_threshold_rule/documents_count_fired.ts @@ -55,10 +55,12 @@ export default function ({ getService }: FtrProviderContext) { await esClient.deleteByQuery({ index: CUSTOM_THRESHOLD_RULE_ALERT_INDEX, query: { term: { 'kibana.alert.rule.uuid': ruleId } }, + conflicts: 'proceed', }); await esClient.deleteByQuery({ index: '.kibana-event-log-*', query: { term: { 'rule.id': ruleId } }, + conflicts: 'proceed', }); await dataViewApi.delete({ id: DATA_VIEW_ID, diff --git a/x-pack/test_serverless/api_integration/test_suites/observability/custom_threshold_rule/group_by_fired.ts b/x-pack/test_serverless/api_integration/test_suites/observability/custom_threshold_rule/group_by_fired.ts index 1a3420b85a2e0..2cab54a072f7f 100644 --- a/x-pack/test_serverless/api_integration/test_suites/observability/custom_threshold_rule/group_by_fired.ts +++ b/x-pack/test_serverless/api_integration/test_suites/observability/custom_threshold_rule/group_by_fired.ts @@ -65,10 +65,12 @@ export default function ({ getService }: FtrProviderContext) { await esClient.deleteByQuery({ index: CUSTOM_THRESHOLD_RULE_ALERT_INDEX, query: { term: { 'kibana.alert.rule.uuid': ruleId } }, + conflicts: 'proceed', }); await esClient.deleteByQuery({ index: '.kibana-event-log-*', query: { term: { 'rule.id': ruleId } }, + conflicts: 'proceed', }); await dataViewApi.delete({ id: DATA_VIEW_ID, diff --git a/x-pack/test_serverless/api_integration/test_suites/observability/telemetry/telemetry_config.ts b/x-pack/test_serverless/api_integration/test_suites/observability/telemetry/telemetry_config.ts index 6ef34b9a0966c..d803cf06b4c52 100644 --- a/x-pack/test_serverless/api_integration/test_suites/observability/telemetry/telemetry_config.ts +++ b/x-pack/test_serverless/api_integration/test_suites/observability/telemetry/telemetry_config.ts @@ -25,7 +25,7 @@ export default function telemetryConfigTest({ getService }: FtrProviderContext) it('GET should get the default config', async () => { await supertest .get('/api/telemetry/v2/config') - .set(svlCommonApi.getInternalRequestHeader()) + .set(svlCommonApi.getCommonRequestHeader()) .expect(200, baseConfig); }); @@ -39,7 +39,7 @@ export default function telemetryConfigTest({ getService }: FtrProviderContext) await supertest .get('/api/telemetry/v2/config') - .set(svlCommonApi.getInternalRequestHeader()) + .set(svlCommonApi.getCommonRequestHeader()) .expect(200, { ...baseConfig, labels: { diff --git a/x-pack/test_serverless/api_integration/test_suites/search/telemetry/telemetry_config.ts b/x-pack/test_serverless/api_integration/test_suites/search/telemetry/telemetry_config.ts index 381c2aa0f5cae..8df4bae9df5a0 100644 --- a/x-pack/test_serverless/api_integration/test_suites/search/telemetry/telemetry_config.ts +++ b/x-pack/test_serverless/api_integration/test_suites/search/telemetry/telemetry_config.ts @@ -25,7 +25,7 @@ export default function telemetryConfigTest({ getService }: FtrProviderContext) it('GET should get the default config', async () => { await supertest .get('/api/telemetry/v2/config') - .set(svlCommonApi.getInternalRequestHeader()) + .set(svlCommonApi.getCommonRequestHeader()) .expect(200, baseConfig); }); @@ -39,7 +39,7 @@ export default function telemetryConfigTest({ getService }: FtrProviderContext) await supertest .get('/api/telemetry/v2/config') - .set(svlCommonApi.getInternalRequestHeader()) + .set(svlCommonApi.getCommonRequestHeader()) .expect(200, { ...baseConfig, labels: { diff --git a/x-pack/test_serverless/api_integration/test_suites/security/telemetry/telemetry_config.ts b/x-pack/test_serverless/api_integration/test_suites/security/telemetry/telemetry_config.ts index 5df1da84a8dbf..2be964bc579ba 100644 --- a/x-pack/test_serverless/api_integration/test_suites/security/telemetry/telemetry_config.ts +++ b/x-pack/test_serverless/api_integration/test_suites/security/telemetry/telemetry_config.ts @@ -25,7 +25,7 @@ export default function telemetryConfigTest({ getService }: FtrProviderContext) it('GET should get the default config', async () => { await supertest .get('/api/telemetry/v2/config') - .set(svlCommonApi.getInternalRequestHeader()) + .set(svlCommonApi.getCommonRequestHeader()) .expect(200, baseConfig); }); @@ -39,7 +39,7 @@ export default function telemetryConfigTest({ getService }: FtrProviderContext) await supertest .get('/api/telemetry/v2/config') - .set(svlCommonApi.getInternalRequestHeader()) + .set(svlCommonApi.getCommonRequestHeader()) .expect(200, { ...baseConfig, labels: { diff --git a/x-pack/test_serverless/functional/test_suites/observability/cases/configure.ts b/x-pack/test_serverless/functional/test_suites/observability/cases/configure.ts index 91d5072a8162c..cc5b01292c846 100644 --- a/x-pack/test_serverless/functional/test_suites/observability/cases/configure.ts +++ b/x-pack/test_serverless/functional/test_suites/observability/cases/configure.ts @@ -17,7 +17,8 @@ export default ({ getPageObject, getService }: FtrProviderContext) => { const cases = getService('cases'); const toasts = getService('toasts'); - describe('Configure Case', function () { + // FLAKY: https://github.com/elastic/kibana/issues/166469 + describe.skip('Configure Case', function () { before(async () => { await svlCommonPage.login(); @@ -48,7 +49,8 @@ export default ({ getPageObject, getService }: FtrProviderContext) => { }); }); - describe('Connectors', function () { + // FLAKY: https://github.com/elastic/kibana/issues/167869 + describe.skip('Connectors', function () { it('defaults the connector to none correctly', async () => { expect(await testSubjects.exists('dropdown-connector-no-connector')).to.be(true); }); diff --git a/x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/header_menu.ts b/x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/header_menu.ts index f37d5e33c63ae..c7cba34e28ec2 100644 --- a/x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/header_menu.ts +++ b/x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer/header_menu.ts @@ -20,7 +20,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { 'timePicker', ]); - describe('Header menu', () => { + // FLAKY: https://github.com/elastic/kibana/issues/167189 + describe.skip('Header menu', () => { before(async () => { await kibanaServer.importExport.load('test/functional/fixtures/kbn_archiver/discover'); await esArchiver.load( diff --git a/x-pack/test_serverless/functional/test_suites/search/navigation.ts b/x-pack/test_serverless/functional/test_suites/search/navigation.ts index 9b7e0d545394d..26c2c7cc47ce8 100644 --- a/x-pack/test_serverless/functional/test_suites/search/navigation.ts +++ b/x-pack/test_serverless/functional/test_suites/search/navigation.ts @@ -16,7 +16,8 @@ export default function ({ getPageObject, getService }: FtrProviderContext) { const testSubjects = getService('testSubjects'); const browser = getService('browser'); - describe('navigation', function () { + // FLAKY: https://github.com/elastic/kibana/issues/166597 + describe.skip('navigation', function () { before(async () => { await svlCommonPage.login(); await svlSearchNavigation.navigateToLandingPage(); diff --git a/x-pack/test_serverless/functional/test_suites/security/ftr/cases/create_case_form.ts b/x-pack/test_serverless/functional/test_suites/security/ftr/cases/create_case_form.ts index 251af239b04e3..14288c9c60668 100644 --- a/x-pack/test_serverless/functional/test_suites/security/ftr/cases/create_case_form.ts +++ b/x-pack/test_serverless/functional/test_suites/security/ftr/cases/create_case_form.ts @@ -15,7 +15,8 @@ import { navigateToCasesApp } from '../../../../../shared/lib/cases'; const owner = SECURITY_SOLUTION_OWNER; export default ({ getService, getPageObject }: FtrProviderContext) => { - describe('Create Case', function () { + // FLAKY: https://github.com/elastic/kibana/issues/166842 + describe.skip('Create Case', function () { const find = getService('find'); const cases = getService('cases'); const testSubjects = getService('testSubjects'); diff --git a/yarn.lock b/yarn.lock index 81045d21f49ac..800c37edf20c4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7173,17 +7173,16 @@ resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA= -"@puppeteer/browsers@1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@puppeteer/browsers/-/browsers-1.0.0.tgz#89de56a718c922857b1d802aac473ebbe1f54d99" - integrity sha512-YKecOIlwH0UsiM9zkKy31DYg11iD8NhOoQ7SQ4oCpwDSd1Ud31WYRoAldbVlVBj9b4hLJIXxn7XSnkH1ta1tpA== +"@puppeteer/browsers@1.7.1": + version "1.7.1" + resolved "https://registry.yarnpkg.com/@puppeteer/browsers/-/browsers-1.7.1.tgz#04f1e3aec4b87f50a7acc8f64be2149bda014f0a" + integrity sha512-nIb8SOBgDEMFY2iS2MdnUZOg2ikcYchRrBoF+wtdjieRFKR2uGRipHY/oFLo+2N6anDualyClPzGywTHRGrLfw== dependencies: debug "4.3.4" extract-zip "2.0.1" - https-proxy-agent "5.0.1" progress "2.0.3" - proxy-from-env "1.1.0" - tar-fs "2.1.1" + proxy-agent "6.3.1" + tar-fs "3.0.4" unbzip2-stream "1.4.3" yargs "17.7.1" @@ -8360,6 +8359,11 @@ resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== +"@tootallnate/quickjs-emscripten@^0.23.0": + version "0.23.0" + resolved "https://registry.yarnpkg.com/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz#db4ecfd499a9765ab24002c3b696d02e6d32a12c" + integrity sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA== + "@trysound/sax@0.2.0": version "0.2.0" resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" @@ -10709,6 +10713,13 @@ agent-base@^7.0.2: dependencies: debug "^4.3.4" +agent-base@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.0.tgz#536802b76bc0b34aa50195eb2442276d613e3434" + integrity sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg== + dependencies: + debug "^4.3.4" + agentkeepalive@^3.4.1: version "3.4.1" resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-3.4.1.tgz#aa95aebc3a749bca5ed53e3880a09f5235b48f0c" @@ -11348,6 +11359,13 @@ ast-types@^0.13.2: resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.13.3.tgz#50da3f28d17bdbc7969a3a2d83a0e4a72ae755a7" integrity sha512-XTZ7xGML849LkQP86sWdQzfhwbt3YwIO6MqbX9mUNYY98VKaaVZP7YNNm70IpwecbkkxmfC5IYAzOQ/2p29zRA== +ast-types@^0.13.4: + version "0.13.4" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.13.4.tgz#ee0d77b343263965ecc3fb62da16e7222b2b6782" + integrity sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w== + dependencies: + tslib "^2.0.1" + ast-types@^0.14.2: version "0.14.2" resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.14.2.tgz#600b882df8583e3cd4f2df5fa20fa83759d4bdfd" @@ -11526,6 +11544,11 @@ axobject-query@^3.1.1: dependencies: dequal "^2.0.3" +b4a@^1.6.4: + version "1.6.4" + resolved "https://registry.yarnpkg.com/b4a/-/b4a-1.6.4.tgz#ef1c1422cae5ce6535ec191baeed7567443f36c9" + integrity sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw== + babel-jest@^29.6.1: version "29.6.1" resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.6.1.tgz#a7141ad1ed5ec50238f3cd36127636823111233a" @@ -11825,6 +11848,11 @@ basic-auth@^2.0.1: dependencies: safe-buffer "5.1.2" +basic-ftp@^5.0.2: + version "5.0.3" + resolved "https://registry.yarnpkg.com/basic-ftp/-/basic-ftp-5.0.3.tgz#b14c0fe8111ce001ec913686434fe0c2fb461228" + integrity sha512-QHX8HLlncOLpy54mh+k/sWIFd0ThmRqwe9ZjELybGZK+tZ8rUb9VO0saKJUROTbE+KhzDUT7xziGpGrW8Kmd+g== + batch-processor@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/batch-processor/-/batch-processor-1.0.0.tgz#75c95c32b748e0850d10c2b168f6bdbe9891ace8" @@ -12797,12 +12825,13 @@ chromedriver@^116.0.0: proxy-from-env "^1.1.0" tcp-port-used "^1.0.1" -chromium-bidi@0.4.7: - version "0.4.7" - resolved "https://registry.yarnpkg.com/chromium-bidi/-/chromium-bidi-0.4.7.tgz#4c022c2b0fb1d1c9b571fadf373042160e71d236" - integrity sha512-6+mJuFXwTMU6I3vYLs6IL8A1DyQTPjCfIL971X0aMPVGRbGnNfl6i6Cl0NMbxi2bRYLGESt9T2ZIMRM5PAEcIQ== +chromium-bidi@0.4.28: + version "0.4.28" + resolved "https://registry.yarnpkg.com/chromium-bidi/-/chromium-bidi-0.4.28.tgz#05befef4f3f19003198237245780d1c60e6f4dbc" + integrity sha512-2HZ74QlAApJrEwcGlU/sUu0s4VS+FI3CJ09Toc9aE9VemMyhHZXeaROQgJKNRaYMUTUx6qIv1cLBs3F+vfgjSw== dependencies: - mitt "3.0.0" + mitt "3.0.1" + urlpattern-polyfill "9.0.0" ci-info@^2.0.0: version "2.0.0" @@ -13484,14 +13513,14 @@ core-util-is@1.0.2, core-util-is@^1.0.2, core-util-is@~1.0.0: resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= -cosmiconfig@8.1.3: - version "8.1.3" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.1.3.tgz#0e614a118fcc2d9e5afc2f87d53cd09931015689" - integrity sha512-/UkO2JKI18b5jVMJUp0lvKFMpa/Gye+ZgZjKD+DGEN9y7NRcf/nK1A0sp67ONmKtnDCNMS44E6jrk0Yc3bDuUw== +cosmiconfig@8.3.6: + version "8.3.6" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3" + integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== dependencies: - import-fresh "^3.2.1" + import-fresh "^3.3.0" js-yaml "^4.1.0" - parse-json "^5.0.0" + parse-json "^5.2.0" path-type "^4.0.0" cosmiconfig@^6.0.0: @@ -13604,12 +13633,12 @@ cross-env@^6.0.3: dependencies: cross-spawn "^7.0.0" -cross-fetch@3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f" - integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw== +cross-fetch@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-4.0.0.tgz#f037aef1580bb3a1a35164ea2a848ba81b445983" + integrity sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g== dependencies: - node-fetch "2.6.7" + node-fetch "^2.6.12" cross-spawn@^6.0.0: version "6.0.5" @@ -14269,6 +14298,11 @@ data-uri-to-buffer@^4.0.0: resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz#d8feb2b2881e6a4f58c2e08acfd0e2834e26222e" integrity sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A== +data-uri-to-buffer@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-5.0.1.tgz#db89a9e279c2ffe74f50637a59a32fb23b3e4d7c" + integrity sha512-a9l6T1qqDogvvnw0nKlfZzqsyikEBZBClF39V3TFoKhDtGBqHu2HkuomJc02j5zft8zrUaXEuoicLeW54RkzPg== + data-urls@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-3.0.2.tgz#9cf24a477ae22bcef5cd5f6f0bfbc1d2d3be9143" @@ -14558,6 +14592,15 @@ defined@^1.0.0: resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM= +degenerator@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/degenerator/-/degenerator-5.0.1.tgz#9403bf297c6dad9a1ece409b37db27954f91f2f5" + integrity sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ== + dependencies: + ast-types "^0.13.4" + escodegen "^2.1.0" + esprima "^4.0.1" + del@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" @@ -14790,10 +14833,10 @@ detective@^5.0.2: defined "^1.0.0" minimist "^1.1.1" -devtools-protocol@0.0.1120988: - version "0.0.1120988" - resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.1120988.tgz#8fe49088919ae3b8df7235774633763f1f925066" - integrity sha512-39fCpE3Z78IaIPChJsP6Lhmkbf4dWXOmzLk/KFTdRkNk/0JymRIfUynDVRndV9HoDz8PyalK1UH21ST/ivwW5Q== +devtools-protocol@0.0.1179426: + version "0.0.1179426" + resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.1179426.tgz#c4c3ee671efae868395569123002facbbbffa267" + integrity sha512-KKC7IGwdOr7u9kTGgjUvGTov/z1s2H7oHi3zKCdR9eSDyCPia5CBi4aRhtp7d8uR7l0GS5UTDw3TjKGu5CqINg== dezalgo@^1.0.0: version "1.0.3" @@ -15799,6 +15842,17 @@ escodegen@^2.0.0: optionalDependencies: source-map "~0.6.1" +escodegen@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17" + integrity sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w== + dependencies: + esprima "^4.0.1" + estraverse "^5.2.0" + esutils "^2.0.2" + optionalDependencies: + source-map "~0.6.1" + escodegen@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.2.0.tgz#09de7967791cc958b7f89a2ddb6d23451af327e1" @@ -16501,6 +16555,11 @@ fast-fifo@^1.1.0: resolved "https://registry.yarnpkg.com/fast-fifo/-/fast-fifo-1.3.0.tgz#03e381bcbfb29932d7c3afde6e15e83e05ab4d8b" integrity sha512-IgfweLvEpwyA4WgiQe9Nx6VV2QkML2NkvZnk1oKnIzXgXdWxuhF7zw4DvLTPZJn6PIUneiAXPF24QmoEqHTjyw== +fast-fifo@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/fast-fifo/-/fast-fifo-1.3.2.tgz#286e31de96eb96d38a97899815740ba2a4f3640c" + integrity sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ== + fast-glob@^2.2.6: version "2.2.7" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d" @@ -17182,6 +17241,15 @@ fs-extra@^7.0.1: jsonfile "^4.0.0" universalify "^0.1.0" +fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + fs-extra@^9.0.0, fs-extra@^9.0.1, fs-extra@^9.1.0: version "9.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" @@ -17438,6 +17506,16 @@ get-symbol-description@^1.0.0: call-bind "^1.0.2" get-intrinsic "^1.1.1" +get-uri@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-uri/-/get-uri-6.0.1.tgz#cff2ba8d456c3513a04b70c45de4dbcca5b1527c" + integrity sha512-7ZqONUVqaabogsYNWlYj0t3YZaL6dhuEueZXGF+/YVmf6dHmaFg8/6psJKqhx9QykIDKzpGcy2cn4oV4YC7V/Q== + dependencies: + basic-ftp "^5.0.2" + data-uri-to-buffer "^5.0.1" + debug "^4.3.4" + fs-extra "^8.1.0" + get-value@^2.0.2, get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" @@ -18470,6 +18548,14 @@ http-proxy-agent@^6.0.1: agent-base "^7.0.2" debug "^4.3.4" +http-proxy-agent@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz#e9096c5afd071a3fce56e6252bb321583c124673" + integrity sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ== + dependencies: + agent-base "^7.1.0" + debug "^4.3.4" + http-proxy-middleware@^2.0.3: version "2.0.6" resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz#e1a4dd6979572c7ab5a4e4b55095d1f32a74963f" @@ -18512,7 +18598,7 @@ https-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= -https-proxy-agent@5.0.1, https-proxy-agent@^5.0.0, https-proxy-agent@^5.0.1: +https-proxy-agent@^5.0.0, https-proxy-agent@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== @@ -18528,6 +18614,14 @@ https-proxy-agent@^6.1.0: agent-base "^7.0.2" debug "4" +https-proxy-agent@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz#e2645b846b90e96c6e6f347fb5b2e41f1590b09b" + integrity sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA== + dependencies: + agent-base "^7.0.2" + debug "4" + human-signals@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" @@ -18631,6 +18725,14 @@ import-fresh@^3.1.0, import-fresh@^3.2.1: parent-module "^1.0.0" resolve-from "^4.0.0" +import-fresh@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + import-in-the-middle@1.4.2: version "1.4.2" resolved "https://registry.yarnpkg.com/import-in-the-middle/-/import-in-the-middle-1.4.2.tgz#2a266676e3495e72c04bbaa5ec14756ba168391b" @@ -18857,6 +18959,11 @@ ip-regex@^2.1.0: resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= +ip@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.8.tgz#ae05948f6b075435ed3307acce04629da8cdbf48" + integrity sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg== + ip@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" @@ -21408,6 +21515,11 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" +lru-cache@^7.14.1: + version "7.18.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.3.tgz#f793896e0fd0e954a59dfdd82f0773808df6aa89" + integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA== + lru-cache@^7.7.1: version "7.14.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.14.1.tgz#8da8d2f5f59827edb388e63e459ac23d6d408fea" @@ -22306,10 +22418,10 @@ mississippi@^3.0.0: stream-each "^1.1.0" through2 "^2.0.0" -mitt@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/mitt/-/mitt-3.0.0.tgz#69ef9bd5c80ff6f57473e8d89326d01c414be0bd" - integrity sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ== +mitt@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/mitt/-/mitt-3.0.1.tgz#ea36cf0cc30403601ae074c8f77b7092cdab36d1" + integrity sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw== mixin-deep@^1.2.0: version "1.3.2" @@ -22688,7 +22800,7 @@ nanoid@3.3.3: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25" integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w== -nanoid@^3.3.1, nanoid@^3.3.4: +nanoid@^3.3.1: version "3.3.4" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== @@ -22765,6 +22877,11 @@ nested-error-stacks@^2.0.0, nested-error-stacks@^2.1.0: resolved "https://registry.yarnpkg.com/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz#0fbdcf3e13fe4994781280524f8b96b0cdff9c61" integrity sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug== +netmask@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/netmask/-/netmask-2.0.2.tgz#8b01a07644065d536383835823bc52004ebac5e7" + integrity sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg== + next-line@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/next-line/-/next-line-1.1.0.tgz#fcae57853052b6a9bae8208e40dd7d3c2d304603" @@ -22865,13 +22982,6 @@ node-emoji@^1.10.0: dependencies: lodash.toarray "^4.4.0" -node-fetch@2.6.7: - version "2.6.7" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" - integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== - dependencies: - whatwg-url "^5.0.0" - node-fetch@^1.0.1, node-fetch@^2.6.1, node-fetch@^2.6.7: version "2.6.8" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.8.tgz#a68d30b162bc1d8fd71a367e81b997e1f4d4937e" @@ -22879,6 +22989,13 @@ node-fetch@^1.0.1, node-fetch@^2.6.1, node-fetch@^2.6.7: dependencies: whatwg-url "^5.0.0" +node-fetch@^2.6.12: + version "2.7.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" + integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== + dependencies: + whatwg-url "^5.0.0" + node-fetch@^3.3.1: version "3.3.1" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.3.1.tgz#b3eea7b54b3a48020e46f4f88b9c5a7430d20b2e" @@ -23759,6 +23876,29 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== +pac-proxy-agent@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/pac-proxy-agent/-/pac-proxy-agent-7.0.1.tgz#6b9ddc002ec3ff0ba5fdf4a8a21d363bcc612d75" + integrity sha512-ASV8yU4LLKBAjqIPMbrgtaKIvxQri/yh2OpI+S6hVa9JRkUI3Y3NPFbfngDtY7oFtSMD3w31Xns89mDa3Feo5A== + dependencies: + "@tootallnate/quickjs-emscripten" "^0.23.0" + agent-base "^7.0.2" + debug "^4.3.4" + get-uri "^6.0.1" + http-proxy-agent "^7.0.0" + https-proxy-agent "^7.0.2" + pac-resolver "^7.0.0" + socks-proxy-agent "^8.0.2" + +pac-resolver@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/pac-resolver/-/pac-resolver-7.0.0.tgz#79376f1ca26baf245b96b34c339d79bff25e900c" + integrity sha512-Fd9lT9vJbHYRACT8OhCbZBbxr6KRSawSovFpy8nDGshaK99S/EBhVIHp9+crhxrsZOuvLpgL1n23iyPg6Rl2hg== + dependencies: + degenerator "^5.0.0" + ip "^1.1.8" + netmask "^2.0.2" + package-hash@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/package-hash/-/package-hash-4.0.0.tgz#3537f654665ec3cc38827387fc904c163c54f506" @@ -24625,19 +24765,10 @@ postcss@^7.0.14, postcss@^7.0.16, postcss@^7.0.26, postcss@^7.0.32, postcss@^7.0 picocolors "^0.2.1" source-map "^0.6.1" -postcss@^8.4.14: - version "8.4.14" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf" - integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig== - dependencies: - nanoid "^3.3.4" - picocolors "^1.0.0" - source-map-js "^1.0.2" - -postcss@^8.4.23: - version "8.4.25" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.25.tgz#4a133f5e379eda7f61e906c3b1aaa9b81292726f" - integrity sha512-7taJ/8t2av0Z+sQEvNzCkpDynl0tX3uJMCODi6nT3PfASC7dYCWV9aQ+uiCf+KBD4SEFcu+GvJdGdwzQ6OSjCw== +postcss@^8.4.14, postcss@^8.4.23, postcss@^8.4.31: + version "8.4.31" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d" + integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ== dependencies: nanoid "^3.3.6" picocolors "^1.0.0" @@ -24975,12 +25106,26 @@ proxy-addr@~2.0.7: forwarded "0.2.0" ipaddr.js "1.9.1" +proxy-agent@6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/proxy-agent/-/proxy-agent-6.3.1.tgz#40e7b230552cf44fd23ffaf7c59024b692612687" + integrity sha512-Rb5RVBy1iyqOtNl15Cw/llpeLH8bsb37gM1FUfKQ+Wck6xHlbAhWGUFiTRHtkjqGTA5pSHz6+0hrPW/oECihPQ== + dependencies: + agent-base "^7.0.2" + debug "^4.3.4" + http-proxy-agent "^7.0.0" + https-proxy-agent "^7.0.2" + lru-cache "^7.14.1" + pac-proxy-agent "^7.0.1" + proxy-from-env "^1.1.0" + socks-proxy-agent "^8.0.2" + proxy-from-env@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee" integrity sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4= -proxy-from-env@1.1.0, proxy-from-env@^1.1.0: +proxy-from-env@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== @@ -25072,34 +25217,26 @@ pupa@^2.1.1: dependencies: escape-goat "^2.0.0" -puppeteer-core@20.1.0: - version "20.1.0" - resolved "https://registry.yarnpkg.com/puppeteer-core/-/puppeteer-core-20.1.0.tgz#c74e21ad642b0adb273da83b4bf444fdecc6500f" - integrity sha512-/xTvabzAN4mnnuYkJCuWNnnEhOb3JrBTa3sY6qVi1wybuIEk5ODRg8Z5PPiKUGiKC9iG7GWOJ5CjF3iuMuxZSA== +puppeteer-core@21.3.6: + version "21.3.6" + resolved "https://registry.yarnpkg.com/puppeteer-core/-/puppeteer-core-21.3.6.tgz#5507fafb790692ff887e368de71a1c5a0d08af1e" + integrity sha512-ZH6tjTdRXwW2fx5W3jBbG+yUVQdDfZW1kjfwvWwMzsnKEli5ZwV70Zp97GOebHQHrK8zM3vX5VqI9sd48c9PnQ== dependencies: - "@puppeteer/browsers" "1.0.0" - chromium-bidi "0.4.7" - cross-fetch "3.1.5" + "@puppeteer/browsers" "1.7.1" + chromium-bidi "0.4.28" + cross-fetch "4.0.0" debug "4.3.4" - devtools-protocol "0.0.1120988" - extract-zip "2.0.1" - https-proxy-agent "5.0.1" - proxy-from-env "1.1.0" - tar-fs "2.1.1" - unbzip2-stream "1.4.3" - ws "8.13.0" + devtools-protocol "0.0.1179426" + ws "8.14.2" -puppeteer@20.1.0: - version "20.1.0" - resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-20.1.0.tgz#30331e2729b235b3306a39cab3ad5b0cf2b90e7d" - integrity sha512-kZp1eYScK1IpHxkgnDaFSGKKCzt27iZfsxO6Xlv/cklzYrhobxTK9/PxzCacPCrYnxNQwKwHzHLPOCuSyjw1jg== +puppeteer@21.3.6: + version "21.3.6" + resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-21.3.6.tgz#961a44cd532ab5344ed53d7714aa56b4602ace10" + integrity sha512-ulK9+KLvdaVsG0EKbKyw/DCXCz88rsnrvIJg9tY8AmkGR01AxI4ZJTH9BJl1OE7cLfh2vxjBvY+xfvJod6rfgw== dependencies: - "@puppeteer/browsers" "1.0.0" - cosmiconfig "8.1.3" - https-proxy-agent "5.0.1" - progress "2.0.3" - proxy-from-env "1.1.0" - puppeteer-core "20.1.0" + "@puppeteer/browsers" "1.7.1" + cosmiconfig "8.3.6" + puppeteer-core "21.3.6" pure-rand@^6.0.0: version "6.0.2" @@ -27086,14 +27223,7 @@ semver@^6.0.0, semver@^6.1.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semve resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.0, semver@^7.5.2, semver@^7.5.3: - version "7.5.3" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.3.tgz#161ce8c2c6b4b3bdca6caadc9fa3317a4c4fe88e" - integrity sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ== - dependencies: - lru-cache "^6.0.0" - -semver@^7.5.4: +semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.0, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4: version "7.5.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== @@ -27534,7 +27664,16 @@ socks-proxy-agent@^7.0.0: debug "^4.3.3" socks "^2.6.2" -socks@^2.6.1, socks@^2.6.2: +socks-proxy-agent@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz#5acbd7be7baf18c46a3f293a840109a430a640ad" + integrity sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g== + dependencies: + agent-base "^7.0.2" + debug "^4.3.4" + socks "^2.7.1" + +socks@^2.6.1, socks@^2.6.2, socks@^2.7.1: version "2.7.1" resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.1.tgz#d8e651247178fde79c0663043e07240196857d55" integrity sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ== @@ -28067,6 +28206,14 @@ streamx@^2.12.0, streamx@^2.12.5, streamx@^2.13.2, streamx@^2.14.0: fast-fifo "^1.1.0" queue-tick "^1.0.1" +streamx@^2.15.0: + version "2.15.1" + resolved "https://registry.yarnpkg.com/streamx/-/streamx-2.15.1.tgz#396ad286d8bc3eeef8f5cea3f029e81237c024c6" + integrity sha512-fQMzy2O/Q47rgwErk/eGeLu/roaFWV0jVsogDmrszM9uIw8L5OA+t+V93MgYlufNptfjmYR1tOMWhei/Eh7TQA== + dependencies: + fast-fifo "^1.1.0" + queue-tick "^1.0.1" + strict-uri-encode@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" @@ -28611,7 +28758,16 @@ tape@^5.0.1: string.prototype.trim "^1.2.1" through "^2.3.8" -tar-fs@2.1.1, tar-fs@^2.0.0, tar-fs@^2.1.1: +tar-fs@3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-3.0.4.tgz#a21dc60a2d5d9f55e0089ccd78124f1d3771dbbf" + integrity sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w== + dependencies: + mkdirp-classic "^0.5.2" + pump "^3.0.0" + tar-stream "^3.1.5" + +tar-fs@^2.0.0, tar-fs@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== @@ -28632,6 +28788,15 @@ tar-stream@^2.1.4, tar-stream@^2.2.0: inherits "^2.0.3" readable-stream "^3.1.1" +tar-stream@^3.1.5: + version "3.1.6" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-3.1.6.tgz#6520607b55a06f4a2e2e04db360ba7d338cc5bab" + integrity sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg== + dependencies: + b4a "^1.6.4" + fast-fifo "^1.2.0" + streamx "^2.15.0" + tar@^6.0.2, tar@^6.1.11, tar@^6.1.15, tar@^6.1.2: version "6.1.15" resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.15.tgz#c9738b0b98845a3b344d334b8fa3041aaba53a69" @@ -29848,6 +30013,11 @@ url@^0.11.0: punycode "1.3.2" querystring "0.2.0" +urlpattern-polyfill@9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/urlpattern-polyfill/-/urlpattern-polyfill-9.0.0.tgz#bc7e386bb12fd7898b58d1509df21d3c29ab3460" + integrity sha512-WHN8KDQblxd32odxeIgo83rdVDE2bvdkb86it7bMhYZwWKJz0+O0RK/eZiHYnM+zgt/U7hAHOlCQGfjjvSkw2g== + use-callback-ref@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/use-callback-ref/-/use-callback-ref-1.3.0.tgz#772199899b9c9a50526fedc4993fc7fa1f7e32d5" @@ -31121,7 +31291,12 @@ write-file-atomic@^4.0.1, write-file-atomic@^4.0.2: imurmurhash "^0.1.4" signal-exit "^3.0.7" -ws@8.13.0, ws@>=8.13.0: +ws@8.14.2: + version "8.14.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.14.2.tgz#6c249a806eb2db7a20d26d51e7709eab7b2e6c7f" + integrity sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g== + +ws@>=8.13.0: version "8.13.0" resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==