From ae607349eb475b82690ef2fdbae30a7f0ea61921 Mon Sep 17 00:00:00 2001 From: Dmitrii Shevchenko Date: Tue, 3 Jan 2023 12:07:17 +0100 Subject: [PATCH 1/8] [Fleet] Fix crashes when installing a package with a lot of saved objects (#148141) **Resolves: https://github.com/elastic/kibana/issues/147695, https://github.com/elastic/kibana/issues/148174** **Related to: https://github.com/elastic/kibana/pull/145851, https://github.com/elastic/kibana/issues/137420** ## Summary This PR improves the stability of the Fleet packages installation process with many saved objects. 1. Changed mappings of the `installed_kibana` and `package_assets` fields from `nested` to `object` with `enabled: false`. Values of those fields were retrieved from `_source`, and no queries or aggregations were performed against them. So the mappings were unused, while during the installation of packages containing more than 10,000 saved objects, an error was thrown due to the nested field limitations: ``` Error installing security_detection_engine 8.4.1: The number of nested documents has exceeded the allowed limit of [10000]. This limit can be set by changing the [index.mapping.nested_objects.limit] index level setting. ``` 2. Improved the deletion of previous package assets by switching from sending multiple `savedObjectsClient.delete` requests in parallel to a single `savedObjectsClient.bulkDelete` request. Multiple parallel requests were causing the Elasticsearch cluster to stop responding for some time; see [this ticket](https://github.com/elastic/kibana/issues/147695) for more info. **Before** ![Screenshot 2022-12-28 at 11 09 35](https://user-images.githubusercontent.com/1938181/209816219-ade6dd0a-0d56-4acc-929e-b88571f0fe81.png) **After** ![Screenshot 2022-12-28 at 13 56 44](https://user-images.githubusercontent.com/1938181/209816209-16c69922-4ae2-4589-9aa4-5a28050037f4.png) --- .../migrations/check_registered_types.test.ts | 2 +- x-pack/plugins/fleet/server/saved_objects/index.ts | 14 ++++---------- .../fleet/server/services/epm/archive/storage.ts | 5 ++--- .../fleet/server/services/epm/packages/remove.ts | 5 +---- 4 files changed, 8 insertions(+), 18 deletions(-) diff --git a/src/core/server/integration_tests/saved_objects/migrations/check_registered_types.test.ts b/src/core/server/integration_tests/saved_objects/migrations/check_registered_types.test.ts index 2c6fee861ce7d..048efa5008533 100644 --- a/src/core/server/integration_tests/saved_objects/migrations/check_registered_types.test.ts +++ b/src/core/server/integration_tests/saved_objects/migrations/check_registered_types.test.ts @@ -85,7 +85,7 @@ describe('checking migration metadata changes on all registered SO types', () => "endpoint:user-artifact": "f94c250a52b30d0a2d32635f8b4c5bdabd1e25c0", "endpoint:user-artifact-manifest": "8c14d49a385d5d1307d956aa743ec78de0b2be88", "enterprise_search_telemetry": "fafcc8318528d34f721c42d1270787c52565bad5", - "epm-packages": "2915aee4302d4b00472ed05c21f59b7d498b5206", + "epm-packages": "7d80ba3f1fcd80316aa0b112657272034b66d5a8", "epm-packages-assets": "9fd3d6726ac77369249e9a973902c2cd615fc771", "event_loop_delays_daily": "d2ed39cf669577d90921c176499908b4943fb7bd", "exception-list": "fe8cc004fd2742177cdb9300f4a67689463faf9c", diff --git a/x-pack/plugins/fleet/server/saved_objects/index.ts b/x-pack/plugins/fleet/server/saved_objects/index.ts index 6c87e894e5777..03f072747a33d 100644 --- a/x-pack/plugins/fleet/server/saved_objects/index.ts +++ b/x-pack/plugins/fleet/server/saved_objects/index.ts @@ -266,19 +266,13 @@ const getSavedObjectTypes = ( }, }, installed_kibana: { - type: 'nested', - properties: { - id: { type: 'keyword' }, - type: { type: 'keyword' }, - }, + type: 'object', + enabled: false, }, installed_kibana_space_id: { type: 'keyword' }, package_assets: { - type: 'nested', - properties: { - id: { type: 'keyword' }, - type: { type: 'keyword' }, - }, + type: 'object', + enabled: false, }, install_started_at: { type: 'date' }, install_version: { type: 'keyword' }, diff --git a/x-pack/plugins/fleet/server/services/epm/archive/storage.ts b/x-pack/plugins/fleet/server/services/epm/archive/storage.ts index c6176b94f5fd2..3b6f38971eff7 100644 --- a/x-pack/plugins/fleet/server/services/epm/archive/storage.ts +++ b/x-pack/plugins/fleet/server/services/epm/archive/storage.ts @@ -102,10 +102,9 @@ export async function removeArchiveEntries(opts: { }) { const { savedObjectsClient, refs } = opts; if (!refs) return; - const results = await Promise.all( - refs.map((ref) => savedObjectsClient.delete(ASSETS_SAVED_OBJECT_TYPE, ref.id)) + return savedObjectsClient.bulkDelete( + refs.map((ref) => ({ id: ref.id, type: ASSETS_SAVED_OBJECT_TYPE })) ); - return results; } export async function saveArchiveEntries(opts: { diff --git a/x-pack/plugins/fleet/server/services/epm/packages/remove.ts b/x-pack/plugins/fleet/server/services/epm/packages/remove.ts index 61780c7977166..4a4183965913a 100644 --- a/x-pack/plugins/fleet/server/services/epm/packages/remove.ts +++ b/x-pack/plugins/fleet/server/services/epm/packages/remove.ts @@ -125,11 +125,8 @@ async function deleteKibanaAssets( // in the case of a partial install, it is expected that some assets will be not found // we filter these out before calling delete const assetsToDelete = foundObjects.map(({ saved_object: { id, type } }) => ({ id, type })); - const promises = assetsToDelete.map(async ({ id, type }) => { - return savedObjectsClient.delete(type, id, { namespace }); - }); - return Promise.all(promises); + return savedObjectsClient.bulkDelete(assetsToDelete, { namespace }); } function deleteESAssets( From a4c13e446809e4425f2981487f6e6711a6ebc478 Mon Sep 17 00:00:00 2001 From: Yaroslav Kuznietsov Date: Tue, 3 Jan 2023 13:23:14 +0200 Subject: [PATCH 2/8] [Unified Search] Sql editor border fix on resize. (#148198) ## Summary Completes part of https://github.com/elastic/kibana/issues/136950. https://user-images.githubusercontent.com/22456368/209969988-0138355b-8ffe-418e-ae04-a415e6b5e304.mov https://user-images.githubusercontent.com/22456368/209970036-407276ed-1532-4bbc-9224-461bb960c910.mov Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../text_based_languages_editor/index.tsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/plugins/unified_search/public/query_string_input/text_based_languages_editor/index.tsx b/src/plugins/unified_search/public/query_string_input/text_based_languages_editor/index.tsx index 6ea8724923352..18f08bfa750eb 100644 --- a/src/plugins/unified_search/public/query_string_input/text_based_languages_editor/index.tsx +++ b/src/plugins/unified_search/public/query_string_input/text_based_languages_editor/index.tsx @@ -468,7 +468,12 @@ export const TextBasedLanguagesEditor = memo(function TextBasedLanguagesEditor({ )} - + {(resizeRef) => ( Date: Tue, 3 Jan 2023 13:42:28 +0200 Subject: [PATCH 3/8] [Cloud Posture] replace integration extension form (#147751) --- .../common/constants.ts | 5 - .../cloud_security_posture/common/types.ts | 5 + .../public/common/constants.ts | 3 +- .../get_enabled_csp_integration_details.ts | 7 +- .../fleet_extensions/aws_credentials_form.tsx | 12 +- .../csp_boxed_radio_group.tsx | 108 +++++++++++++ .../deployment_type_select.tsx | 68 -------- .../components/fleet_extensions/eks_form.tsx | 153 ------------------ .../fleet_extensions/inline_radio_group.tsx | 83 ---------- .../components/fleet_extensions/mocks.ts | 2 +- .../policy_extension_create.test.tsx | 93 ----------- .../policy_extension_create.tsx | 42 +---- .../policy_extension_edit.test.tsx | 80 --------- .../policy_extension_edit.tsx | 35 +--- .../policy_template_form.test.tsx | 5 +- .../fleet_extensions/policy_template_form.tsx | 3 +- .../policy_template_input_selector.tsx | 76 +++++---- .../components/fleet_extensions/utils.ts | 93 ++--------- .../translations/translations/fr-FR.json | 13 -- .../translations/translations/ja-JP.json | 13 -- .../translations/translations/zh-CN.json | 13 -- 21 files changed, 186 insertions(+), 726 deletions(-) create mode 100644 x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/csp_boxed_radio_group.tsx delete mode 100644 x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/deployment_type_select.tsx delete mode 100644 x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/eks_form.tsx delete mode 100644 x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/inline_radio_group.tsx delete mode 100644 x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_extension_create.test.tsx delete mode 100644 x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_extension_edit.test.tsx diff --git a/x-pack/plugins/cloud_security_posture/common/constants.ts b/x-pack/plugins/cloud_security_posture/common/constants.ts index 644c6bb5a8c42..797b29ad2be32 100644 --- a/x-pack/plugins/cloud_security_posture/common/constants.ts +++ b/x-pack/plugins/cloud_security_posture/common/constants.ts @@ -59,8 +59,3 @@ export const SUPPORTED_CLOUDBEAT_INPUTS = [ CLOUDBEAT_GCP, CLOUDBEAT_AZURE, ] as const; - -export type CLOUDBEAT_INTEGRATION = typeof SUPPORTED_CLOUDBEAT_INPUTS[number]; -export type POLICY_TEMPLATE = typeof SUPPORTED_POLICY_TEMPLATES[number]; -export type PostureInput = typeof SUPPORTED_CLOUDBEAT_INPUTS[number]; -export type PosturePolicyTemplate = typeof SUPPORTED_POLICY_TEMPLATES[number]; diff --git a/x-pack/plugins/cloud_security_posture/common/types.ts b/x-pack/plugins/cloud_security_posture/common/types.ts index 29525fa95e19b..757ec5ebb0eb5 100644 --- a/x-pack/plugins/cloud_security_posture/common/types.ts +++ b/x-pack/plugins/cloud_security_posture/common/types.ts @@ -6,6 +6,7 @@ */ import type { PackagePolicy, AgentPolicy } from '@kbn/fleet-plugin/common'; +import { SUPPORTED_CLOUDBEAT_INPUTS, SUPPORTED_POLICY_TEMPLATES } from './constants'; import type { CspRuleMetadata } from './schemas/csp_rule_metadata'; export type Evaluation = 'passed' | 'failed' | 'NA'; @@ -100,3 +101,7 @@ export interface Benchmark { export type BenchmarkId = CspRuleMetadata['benchmark']['id']; export type BenchmarkName = CspRuleMetadata['benchmark']['name']; + +// Fleet Integration types +export type PostureInput = typeof SUPPORTED_CLOUDBEAT_INPUTS[number]; +export type PosturePolicyTemplate = typeof SUPPORTED_POLICY_TEMPLATES[number]; diff --git a/x-pack/plugins/cloud_security_posture/public/common/constants.ts b/x-pack/plugins/cloud_security_posture/public/common/constants.ts index 1a96b8b095541..521885044f480 100644 --- a/x-pack/plugins/cloud_security_posture/public/common/constants.ts +++ b/x-pack/plugins/cloud_security_posture/public/common/constants.ts @@ -7,14 +7,13 @@ import { i18n } from '@kbn/i18n'; import { euiThemeVars } from '@kbn/ui-theme'; +import type { PosturePolicyTemplate, PostureInput } from '../../common/types'; import { CLOUDBEAT_EKS, CLOUDBEAT_VANILLA, CLOUDBEAT_AWS, CLOUDBEAT_GCP, CLOUDBEAT_AZURE, - type PostureInput, - type PosturePolicyTemplate, } from '../../common/constants'; import eksLogo from '../assets/icons/cis_eks_logo.svg'; diff --git a/x-pack/plugins/cloud_security_posture/public/common/utils/get_enabled_csp_integration_details.ts b/x-pack/plugins/cloud_security_posture/public/common/utils/get_enabled_csp_integration_details.ts index eff420fd94af4..4cf3d7d129f0c 100644 --- a/x-pack/plugins/cloud_security_posture/public/common/utils/get_enabled_csp_integration_details.ts +++ b/x-pack/plugins/cloud_security_posture/public/common/utils/get_enabled_csp_integration_details.ts @@ -5,9 +5,10 @@ * 2.0. */ -import { PackagePolicy } from '@kbn/fleet-plugin/common'; -import { PostureInput, SUPPORTED_CLOUDBEAT_INPUTS } from '../../../common/constants'; -import { cloudPostureIntegrations, CloudPostureIntegrations } from '../constants'; +import type { PackagePolicy } from '@kbn/fleet-plugin/common'; +import type { PostureInput } from '../../../common/types'; +import { SUPPORTED_CLOUDBEAT_INPUTS } from '../../../common/constants'; +import { cloudPostureIntegrations, type CloudPostureIntegrations } from '../constants'; const isPolicyTemplate = (name: unknown): name is keyof CloudPostureIntegrations => typeof name === 'string' && name in cloudPostureIntegrations; diff --git a/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/aws_credentials_form.tsx b/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/aws_credentials_form.tsx index e3cae37d18600..3585e63cf5143 100644 --- a/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/aws_credentials_form.tsx +++ b/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/aws_credentials_form.tsx @@ -17,7 +17,7 @@ import type { NewPackagePolicy } from '@kbn/fleet-plugin/public'; import { NewPackagePolicyInput } from '@kbn/fleet-plugin/common'; import { FormattedMessage } from '@kbn/i18n-react'; import { i18n } from '@kbn/i18n'; -import { InlineRadioGroup } from './inline_radio_group'; +import { RadioGroup } from './csp_boxed_radio_group'; import { getPosturePolicy, NewPackagePolicyPostureInput } from './utils'; const DocsLink = ( @@ -197,11 +197,13 @@ const getInputVarsFields = ( } as const; }); -const getDefaultAwsType = (input: Props['input']): AwsCredentialsType => - input.streams[0].vars['aws.credentials.type'].value; +const getAwsCredentialsType = (input: Props['input']): AwsCredentialsType | undefined => + input.streams[0].vars?.['aws.credentials.type'].value; export const AwsCredentialsForm = ({ input, newPolicy, updatePolicy }: Props) => { - const awsCredentialsType = getDefaultAwsType(input); + // We only have a value for 'aws.credentials.type' once the form has mounted. + // On initial render we don't have that value so we default to the first option. + const awsCredentialsType = getAwsCredentialsType(input) || AWS_CREDENTIALS_OPTIONS[0].id; const group = options[awsCredentialsType]; const fields = getInputVarsFields(input, group.fields); @@ -240,7 +242,7 @@ const AwsCredentialTypeSelector = ({ onChange(type: AwsCredentialsType): void; type: AwsCredentialsType; }) => ( - { + const { euiTheme } = useEuiTheme(); + + return ( +
+ {options.map((option) => { + const isChecked = option.id === idSelected; + return ( + + onChange(option.id)} + iconType={option.icon} + iconSide="right" + contentProps={{ + style: { + justifyContent: 'flex-start', + }, + }} + css={css` + width: 100%; + height: ${size === 's' ? euiTheme.size.xxl : euiTheme.size.xxxl}; + svg, + img { + margin-left: auto; + } + + &&, + &&:hover { + text-decoration: none; + } + &:disabled { + svg, + img { + filter: grayscale(1); + } + } + `} + > + {}} + /> + + + ); + })} +
+ ); +}; diff --git a/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/deployment_type_select.tsx b/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/deployment_type_select.tsx deleted file mode 100644 index bc5c61fa0370b..0000000000000 --- a/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/deployment_type_select.tsx +++ /dev/null @@ -1,68 +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 from 'react'; -import { - EuiFlexGroup, - EuiFlexItem, - EuiComboBox, - EuiToolTip, - EuiFormRow, - EuiIcon, - type EuiComboBoxOptionOption, - EuiDescribedFormGroup, -} from '@elastic/eui'; -import { FormattedMessage } from '@kbn/i18n-react'; -import { cloudPostureIntegrations } from '../../common/constants'; -import { CLOUDBEAT_INTEGRATION, POLICY_TEMPLATE } from '../../../common/constants'; - -interface Props { - policyTemplate: POLICY_TEMPLATE; - type: CLOUDBEAT_INTEGRATION; - onChange?: (type: CLOUDBEAT_INTEGRATION) => void; - isDisabled?: boolean; -} - -const kubeDeployOptions = ( - policyTemplate: POLICY_TEMPLATE -): Array> => - cloudPostureIntegrations[policyTemplate].options.map((o) => ({ value: o.type, label: o.name })); - -const KubernetesDeploymentFieldLabel = () => ( - - } - > - - - -   - - - - -); - -export const DeploymentTypeSelect = ({ policyTemplate, type, isDisabled, onChange }: Props) => ( - }> - }> - o.value === type)} - isDisabled={isDisabled} - onChange={(options) => !isDisabled && onChange?.(options[0].value!)} - /> - - -); diff --git a/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/eks_form.tsx b/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/eks_form.tsx deleted file mode 100644 index b160561807d64..0000000000000 --- a/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/eks_form.tsx +++ /dev/null @@ -1,153 +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 from 'react'; -import { - EuiFormRow, - EuiFieldText, - EuiDescribedFormGroup, - EuiText, - EuiSpacer, - EuiLink, -} from '@elastic/eui'; -import { FormattedMessage } from '@kbn/i18n-react'; -import type { NewPackagePolicyInput } from '@kbn/fleet-plugin/common'; -import { i18n } from '@kbn/i18n'; -import { isEksInput } from './utils'; - -export const eksVars = [ - { - id: 'access_key_id', - label: i18n.translate( - 'xpack.csp.createPackagePolicy.eksIntegrationSettingsSection.accessKeyIdFieldLabel', - { defaultMessage: 'Access key ID' } - ), - }, - { - id: 'secret_access_key', - label: i18n.translate( - 'xpack.csp.createPackagePolicy.eksIntegrationSettingsSection.secretAccessKeyFieldLabel', - { defaultMessage: 'Secret Access Key' } - ), - }, - { - id: 'session_token', - label: i18n.translate( - 'xpack.csp.createPackagePolicy.eksIntegrationSettingsSection.sessionTokenFieldLabel', - { defaultMessage: 'Session Token' } - ), - }, - { - id: 'shared_credential_file', - label: i18n.translate( - 'xpack.csp.createPackagePolicy.eksIntegrationSettingsSection.sharedCredentialsFileFieldLabel', - { defaultMessage: 'Shared Credential File' } - ), - }, - { - id: 'credential_profile_name', - label: i18n.translate( - 'xpack.csp.createPackagePolicy.eksIntegrationSettingsSection.sharedCredentialFileFieldLabel', - { defaultMessage: 'Credential Profile Name' } - ), - }, - { - id: 'role_arn', - label: i18n.translate( - 'xpack.csp.createPackagePolicy.eksIntegrationSettingsSection.roleARNFieldLabel', - { defaultMessage: 'ARN Role' } - ), - }, -] as const; - -type EksVars = typeof eksVars; -type EksVarId = EksVars[number]['id']; -type EksFormVars = { [K in EksVarId]: string }; - -interface Props { - onChange(key: EksVarId, value: string): void; - inputs: NewPackagePolicyInput[]; -} - -const getEksVars = (input?: NewPackagePolicyInput): EksFormVars => { - const vars = input?.streams?.[0]?.vars; - return { - access_key_id: vars?.access_key_id.value || '', - secret_access_key: vars?.secret_access_key.value || '', - session_token: vars?.session_token.value || '', - shared_credential_file: vars?.shared_credential_file.value || '', - credential_profile_name: vars?.credential_profile_name.value || '', - role_arn: vars?.role_arn.value || '', - }; -}; - -export const EksFormWrapper = ({ onChange, inputs }: Props) => ( - <> - - - -); - -const EksForm = ({ onChange, inputs }: Props) => { - const values = getEksVars(inputs.find(isEksInput)); - - const eksFormTitle = ( -

- -

- ); - - const eksFormDescription = ( - <> - - - - ), - }} - /> - - - - ); - - return ( - - {eksVars.map((field) => ( - - - - } - > - onChange(field.id, event.target.value)} - /> - - ))} - - ); -}; diff --git a/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/inline_radio_group.tsx b/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/inline_radio_group.tsx deleted file mode 100644 index 6aba7275a79dd..0000000000000 --- a/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/inline_radio_group.tsx +++ /dev/null @@ -1,83 +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 from 'react'; -import { useEuiTheme, EuiRadioGroup, type EuiRadioGroupProps } from '@elastic/eui'; -import { css } from '@emotion/react'; - -type RadioGroupProps = Pick; - -type Props = RadioGroupProps & { - size?: 's' | 'm'; -}; - -export const InlineRadioGroup = ({ idSelected, size, options, disabled, onChange }: Props) => { - const { euiTheme } = useEuiTheme(); - - return ( - ({ - id: o.id, - label: o.label, - disabled: o.disabled, - ['data-enabled']: idSelected === o.id, - ['data-disabled']: o.disabled, - className: '__extendedRadioOption', - }))} - onChange={onChange} - css={css` - display: grid; - grid-template-columns: repeat(${options.length}, 1fr); - grid-template-rows: ${size === 's' ? euiTheme.size.xxl : euiTheme.size.xxxl}; - column-gap: ${euiTheme.size.s}; - align-items: center; - - > .__extendedRadioOption { - margin-top: 0; - height: 100%; - padding-left: ${euiTheme.size.m}; - padding-right: ${euiTheme.size.m}; - - display: grid; - grid-template-columns: auto 1fr; - column-gap: ${euiTheme.size.s}; - align-items: center; - - border: 1px solid ${euiTheme.colors.lightShade}; - border-radius: ${euiTheme.border.radius.medium}; - background: ${euiTheme.colors.emptyShade}; - - &[data-enabled='true'] { - border-color: ${euiTheme.colors.primary}; - background: ${euiTheme.colors.lightestShade}; - } - - &[data-disabled='true'] { - border-color: ${euiTheme.colors.disabled}; - background: ${euiTheme.colors.emptyShade}; - } - - // EuiRadio shows an absolute positioned div as a circle instead of input[type=radio] which is hidden - // removing the absolute position to make it part of document flow, set by css grid - &.__extendedRadioOption { - & > *:not(label):not(input) { - position: inherit; - top: 0; - left: 0; - } - - & > label { - padding-left: 0; - } - } - } - `} - /> - ); -}; diff --git a/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/mocks.ts b/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/mocks.ts index bf8616aaeeb3b..ecc435aa5961d 100644 --- a/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/mocks.ts +++ b/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/mocks.ts @@ -9,7 +9,7 @@ import type { PackagePolicy } from '@kbn/fleet-plugin/common'; import { createNewPackagePolicyMock } from '@kbn/fleet-plugin/common/mocks'; import { BenchmarkId } from '../../../common/types'; import { CLOUDBEAT_EKS, CLOUDBEAT_VANILLA } from '../../../common/constants'; -import { PostureInput } from '../../../common/constants'; +import type { PostureInput } from '../../../common/types'; export const getCspNewPolicyMock = (type: BenchmarkId = 'cis_k8s'): NewPackagePolicy => ({ name: 'some-cloud_security_posture-policy', diff --git a/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_extension_create.test.tsx b/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_extension_create.test.tsx deleted file mode 100644 index 29916477837f1..0000000000000 --- a/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_extension_create.test.tsx +++ /dev/null @@ -1,93 +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 from 'react'; -import { fireEvent, render } from '@testing-library/react'; -import CspCreatePolicyExtension from './policy_extension_create'; -import { eksVars } from './eks_form'; -import Chance from 'chance'; -import { TestProvider } from '../../test/test_provider'; -import userEvent from '@testing-library/user-event'; -import { getCspNewPolicyMock } from './mocks'; - -// ensures that fields appropriately match to their label -jest.mock('@elastic/eui/lib/services/accessibility/html_id_generator', () => ({ - ...jest.requireActual('@elastic/eui/lib/services/accessibility/html_id_generator'), - htmlIdGenerator: () => () => `id-${Math.random()}`, -})); - -// ensures that fields appropriately match to their label -jest.mock('@elastic/eui/lib/services/accessibility', () => ({ - ...jest.requireActual('@elastic/eui/lib/services/accessibility'), - useGeneratedHtmlId: () => `id-${Math.random()}`, -})); - -const chance = new Chance(); - -describe('', () => { - const onChange = jest.fn(); - - const WrappedComponent = ({ newPolicy = getCspNewPolicyMock() }) => ( - - - - ); - - beforeEach(() => { - onChange.mockClear(); - }); - - it('renders non-disabled ', () => { - const { getByLabelText } = render(); - const input = getByLabelText('Kubernetes Deployment') as HTMLInputElement; - expect(input).toBeInTheDocument(); - expect(input).not.toBeDisabled(); - }); - - it('renders non-disabled ', () => { - const { getByLabelText } = render( - - ); - - eksVars.forEach((eksVar) => { - expect(getByLabelText(eksVar.label)).toBeInTheDocument(); - expect(getByLabelText(eksVar.label)).not.toBeDisabled(); - }); - }); - - it('handles updating deployment type', () => { - const { getByLabelText } = render(); - const input = getByLabelText('Kubernetes Deployment') as HTMLInputElement; - - userEvent.type(input, 'EKS (Elastic Kubernetes Service){enter}'); - - expect(onChange).toBeCalledWith({ - isValid: true, - updatedPolicy: getCspNewPolicyMock('cis_eks'), - }); - }); - - it('handles updating EKS vars', () => { - const { getByLabelText } = render( - - ); - - const randomValues = chance.unique(chance.string, eksVars.length); - - eksVars.forEach((eksVar, i) => { - const eksVarInput = getByLabelText(eksVar.label) as HTMLInputElement; - fireEvent.change(eksVarInput, { target: { value: randomValues[i] } }); - - const policy = getCspNewPolicyMock('cis_eks'); - policy.inputs[1].streams[0].vars![eksVar.id].value = randomValues[i]; - - expect(onChange).toBeCalledWith({ - isValid: true, - updatedPolicy: policy, - }); - }); - }); -}); diff --git a/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_extension_create.tsx b/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_extension_create.tsx index 790cd8978725c..b4d3828dd97b8 100644 --- a/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_extension_create.tsx +++ b/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_extension_create.tsx @@ -5,47 +5,13 @@ * 2.0. */ import React, { memo } from 'react'; -import { EuiForm } from '@elastic/eui'; import type { PackagePolicyCreateExtensionComponentProps } from '@kbn/fleet-plugin/public'; -import { CLOUDBEAT_AWS, CLOUDBEAT_EKS, CLOUDBEAT_INTEGRATION } from '../../../common/constants'; -import { DeploymentTypeSelect } from './deployment_type_select'; -import { EksFormWrapper } from './eks_form'; -import { - getEnabledInput, - getEnabledInputType, - getUpdatedDeploymentType, - getUpdatedEksVar, -} from './utils'; +import { CspPolicyTemplateForm } from './policy_template_form'; export const CspCreatePolicyExtension = memo( - ({ newPolicy, onChange }) => { - const selectedDeploymentType = getEnabledInputType(newPolicy.inputs); - const selectedInput = getEnabledInput(newPolicy.inputs); - const policyTemplate = selectedInput?.policy_template; - const updateDeploymentType = (inputType: CLOUDBEAT_INTEGRATION) => - onChange(getUpdatedDeploymentType(newPolicy, inputType)); - - const updateEksVar = (key: string, value: string) => - onChange(getUpdatedEksVar(newPolicy, key, value)); - - return ( - - {selectedInput && (policyTemplate === 'kspm' || policyTemplate === 'cspm') && ( - <> - - {(selectedDeploymentType === CLOUDBEAT_EKS || - selectedDeploymentType === CLOUDBEAT_AWS) && ( - - )} - - )} - - ); - } + ({ newPolicy, onChange }) => ( + + ) ); CspCreatePolicyExtension.displayName = 'CspCreatePolicyExtension'; diff --git a/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_extension_edit.test.tsx b/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_extension_edit.test.tsx deleted file mode 100644 index 856e4650ff045..0000000000000 --- a/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_extension_edit.test.tsx +++ /dev/null @@ -1,80 +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 from 'react'; -import { fireEvent, render } from '@testing-library/react'; -import CspEditPolicyExtension from './policy_extension_edit'; -import { TestProvider } from '../../test/test_provider'; -import { getCspNewPolicyMock, getCspPolicyMock } from './mocks'; -import Chance from 'chance'; -import { eksVars } from './eks_form'; - -const chance = new Chance(); - -// ensures that fields appropriately match to their label -jest.mock('@elastic/eui/lib/services/accessibility/html_id_generator', () => ({ - ...jest.requireActual('@elastic/eui/lib/services/accessibility/html_id_generator'), - htmlIdGenerator: () => () => `id-${Math.random()}`, -})); - -// ensures that fields appropriately match to their label -jest.mock('@elastic/eui/lib/services/accessibility', () => ({ - ...jest.requireActual('@elastic/eui/lib/services/accessibility'), - useGeneratedHtmlId: () => `id-${Math.random()}`, -})); - -describe('', () => { - const onChange = jest.fn(); - - const WrappedComponent = ({ policy = getCspPolicyMock(), newPolicy = getCspNewPolicyMock() }) => ( - - - - ); - - beforeEach(() => { - onChange.mockClear(); - }); - - it('renders disabled ', () => { - const { getByLabelText } = render(); - const input = getByLabelText('Kubernetes Deployment') as HTMLInputElement; - expect(input).toBeInTheDocument(); - expect(input).toBeDisabled(); - }); - - it('renders non-disabled ', () => { - const { getByLabelText } = render( - - ); - - eksVars.forEach((eksVar) => { - expect(getByLabelText(eksVar.label)).toBeInTheDocument(); - expect(getByLabelText(eksVar.label)).not.toBeDisabled(); - }); - }); - - it('handles updating EKS vars', () => { - const { getByLabelText } = render( - - ); - - const randomValues = chance.unique(chance.string, eksVars.length); - - eksVars.forEach((eksVar, i) => { - const eksVarInput = getByLabelText(eksVar.label) as HTMLInputElement; - fireEvent.change(eksVarInput, { target: { value: randomValues[i] } }); - - const policy = getCspNewPolicyMock('cis_eks'); - policy.inputs[1].streams[0].vars![eksVar.id].value = randomValues[i]; - - expect(onChange).toBeCalledWith({ - isValid: true, - updatedPolicy: policy, - }); - }); - }); -}); diff --git a/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_extension_edit.tsx b/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_extension_edit.tsx index e268dac8cd14e..b2be1b0c0d7cc 100644 --- a/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_extension_edit.tsx +++ b/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_extension_edit.tsx @@ -5,40 +5,13 @@ * 2.0. */ import React, { memo } from 'react'; -import { EuiForm } from '@elastic/eui'; import type { PackagePolicyEditExtensionComponentProps } from '@kbn/fleet-plugin/public'; -import { CLOUDBEAT_EKS, CLOUDBEAT_AWS } from '../../../common/constants'; -import { DeploymentTypeSelect } from './deployment_type_select'; -import { EksFormWrapper } from './eks_form'; -import { getEnabledInput, getEnabledInputType, getUpdatedEksVar } from './utils'; +import { CspPolicyTemplateForm } from './policy_template_form'; export const CspEditPolicyExtension = memo( - ({ newPolicy, onChange }) => { - const selectedDeploymentType = getEnabledInputType(newPolicy.inputs); - const selectedInput = getEnabledInput(newPolicy.inputs); - const policyTemplate = selectedInput?.policy_template; - - const updateEksVar = (key: string, value: string) => - onChange(getUpdatedEksVar(newPolicy, key, value)); - - return ( - - {(policyTemplate === 'kspm' || policyTemplate === 'cspm') && ( - <> - - {(selectedDeploymentType === CLOUDBEAT_EKS || - selectedDeploymentType === CLOUDBEAT_AWS) && ( - - )} - - )} - - ); - } + ({ newPolicy, onChange }) => ( + + ) ); CspEditPolicyExtension.displayName = 'CspEditPolicyExtension'; diff --git a/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_template_form.test.tsx b/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_template_form.test.tsx index a43a9fd26fb10..0d4ab59bd31b9 100644 --- a/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_template_form.test.tsx +++ b/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_template_form.test.tsx @@ -12,6 +12,7 @@ import { getMockPolicyAWS, getMockPolicyEKS, getMockPolicyK8s } from './mocks'; import type { NewPackagePolicy } from '@kbn/fleet-plugin/common'; import userEvent from '@testing-library/user-event'; import { getPosturePolicy } from './utils'; +import { CLOUDBEAT_AWS, CLOUDBEAT_EKS } from '../../../common/constants'; describe('', () => { const onChange = jest.fn(); @@ -148,8 +149,8 @@ describe('', () => { * AWS Credentials input fields tests for KSPM/CSPM integrations */ const awsInputs = { - 'cloudbeat/cis_eks': getMockPolicyEKS, - 'cloudbeat/cis_aws': getMockPolicyAWS, + [CLOUDBEAT_EKS]: getMockPolicyEKS, + [CLOUDBEAT_AWS]: getMockPolicyAWS, }; for (const [inputKey, getPolicy] of Object.entries(awsInputs) as Array< diff --git a/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_template_form.tsx b/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_template_form.tsx index 3298d368bf7d9..eee8f86ef6b48 100644 --- a/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_template_form.tsx +++ b/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_template_form.tsx @@ -10,7 +10,8 @@ import type { NewPackagePolicy, PackagePolicyCreateExtensionComponentProps, } from '@kbn/fleet-plugin/public'; -import { CLOUDBEAT_AWS, CLOUDBEAT_VANILLA, PostureInput } from '../../../common/constants'; +import type { PostureInput } from '../../../common/types'; +import { CLOUDBEAT_AWS, CLOUDBEAT_VANILLA } from '../../../common/constants'; import { getPosturePolicy, INPUTS_WITH_AWS_VARS, diff --git a/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_template_input_selector.tsx b/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_template_input_selector.tsx index be3ba857e9691..34d00a95d6899 100644 --- a/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_template_input_selector.tsx +++ b/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_template_input_selector.tsx @@ -5,20 +5,11 @@ * 2.0. */ import React from 'react'; -import { - EuiFlexGroup, - EuiToolTip, - EuiFlexItem, - EuiIcon, - EuiSpacer, - EuiText, - EuiTitle, -} from '@elastic/eui'; +import { EuiSpacer, EuiText, EuiTitle } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n-react'; -import { css } from '@emotion/react'; -import type { PostureInput } from '../../../common/constants'; +import type { PostureInput, PosturePolicyTemplate } from '../../../common/types'; import { getPolicyTemplateInputOptions, type NewPackagePolicyPostureInput } from './utils'; -import { InlineRadioGroup } from './inline_radio_group'; +import { RadioGroup } from './csp_boxed_radio_group'; interface Props { disabled: boolean; @@ -26,43 +17,19 @@ interface Props { setInput: (inputType: PostureInput) => void; } -const RadioLabel = ({ - label, - icon, - disabled, - tooltip, -}: ReturnType[number]) => ( - - - {label} - {icon && ( - - - - )} - - -); - export const PolicyInputSelector = ({ input, disabled, setInput }: Props) => { const baseOptions = getPolicyTemplateInputOptions(input.policy_template); const options = baseOptions.map((option) => ({ ...option, disabled: option.disabled || disabled, - label: , + label: option.label, + icon: option.icon, })); return (
- + ( ); + +const ConfigureIntegrationInfo = ({ type }: { type: PosturePolicyTemplate }) => ( + <> + +

+ +

+
+ + + {type === 'kspm' && ( + + )} + {type === 'cspm' && ( + + )} + + + +); diff --git a/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/utils.ts b/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/utils.ts index e6fe0e09e44f6..dde25b7477543 100644 --- a/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/utils.ts +++ b/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/utils.ts @@ -7,7 +7,6 @@ import type { NewPackagePolicy, NewPackagePolicyInput, - NewPackagePolicyInputStream, PackagePolicyConfigRecordEntry, } from '@kbn/fleet-plugin/common'; import merge from 'lodash/merge'; @@ -15,96 +14,26 @@ import { CLOUDBEAT_AWS, CLOUDBEAT_EKS, CLOUDBEAT_VANILLA, + CLOUDBEAT_GCP, + CLOUDBEAT_AZURE, SUPPORTED_POLICY_TEMPLATES, SUPPORTED_CLOUDBEAT_INPUTS, - type PostureInput, - type PosturePolicyTemplate, } from '../../../common/constants'; +import { type PostureInput, type PosturePolicyTemplate } from '../../../common/types'; import { assert } from '../../../common/utils/helpers'; import { cloudPostureIntegrations } from '../../common/constants'; -export const isEksInput = (input: NewPackagePolicyInput) => input.type === CLOUDBEAT_EKS; export const INPUTS_WITH_AWS_VARS = [CLOUDBEAT_EKS, CLOUDBEAT_AWS]; -const defaultInputType: Record = { - kspm: CLOUDBEAT_VANILLA, - cspm: CLOUDBEAT_AWS, -}; -export const getEnabledInputType = (inputs: NewPackagePolicy['inputs']): PostureInput => { - const enabledInput = getEnabledInput(inputs); - - if (enabledInput) return enabledInput.type as PostureInput; - - const policyTemplate = inputs[0].policy_template as PosturePolicyTemplate | undefined; - - if (policyTemplate && SUPPORTED_POLICY_TEMPLATES.includes(policyTemplate)) - return defaultInputType[policyTemplate]; - - throw new Error('unsupported policy template'); -}; - -export const getEnabledInput = ( - inputs: NewPackagePolicy['inputs'] -): NewPackagePolicyInput | undefined => inputs.find((input) => input.enabled); - -export const getUpdatedDeploymentType = (newPolicy: NewPackagePolicy, inputType: PostureInput) => ({ - isValid: true, // TODO: add validations - updatedPolicy: { - ...newPolicy, - inputs: newPolicy.inputs.map((item) => ({ - ...item, - enabled: item.type === inputType, - streams: item.streams.map((stream) => ({ - ...stream, - enabled: item.type === inputType, - })), - })), - }, -}); - -export const getUpdatedEksVar = (newPolicy: NewPackagePolicy, key: string, value: string) => ({ - isValid: true, // TODO: add validations - updatedPolicy: { - ...newPolicy, - inputs: newPolicy.inputs.map((item) => - INPUTS_WITH_AWS_VARS.includes(item.type) ? getUpdatedStreamVars(item, key, value) : item - ), - }, -}); - -// TODO: remove access to first stream -const getUpdatedStreamVars = (item: NewPackagePolicyInput, key: string, value: string) => { - if (!item.streams[0]) return item; - - return { - ...item, - streams: [ - { - ...item.streams[0], - vars: { - ...item.streams[0]?.vars, - [key]: { - ...item.streams[0]?.vars?.[key], - value, - }, - }, - }, - ], - }; -}; -type StreamWithRequiredVars = Array< - NewPackagePolicyInputStream & Required> ->; +type PosturePolicyInput = + | { type: typeof CLOUDBEAT_AZURE; policy_template: 'cspm' } + | { type: typeof CLOUDBEAT_GCP; policy_template: 'cspm' } + | { type: typeof CLOUDBEAT_AWS; policy_template: 'cspm' } + | { type: typeof CLOUDBEAT_VANILLA; policy_template: 'kspm' } + | { type: typeof CLOUDBEAT_EKS; policy_template: 'kspm' }; -// Extend NewPackagePolicyInput with known string literals for input type, policy template and streams -export type NewPackagePolicyPostureInput = NewPackagePolicyInput & - ( - | { type: 'cloudbeat/cis_azure'; policy_template: 'cspm' } - | { type: 'cloudbeat/cis_gcp'; policy_template: 'cspm' } - | { type: 'cloudbeat/cis_k8s'; policy_template: 'kspm' } - | { type: 'cloudbeat/cis_aws'; policy_template: 'cspm'; streams: StreamWithRequiredVars } - | { type: 'cloudbeat/cis_eks'; policy_template: 'kspm'; streams: StreamWithRequiredVars } - ); +// Extend NewPackagePolicyInput with known string literals for input type and policy template +export type NewPackagePolicyPostureInput = NewPackagePolicyInput & PosturePolicyInput; export const isPostureInput = ( input: NewPackagePolicyInput diff --git a/x-pack/plugins/translations/translations/fr-FR.json b/x-pack/plugins/translations/translations/fr-FR.json index a2bd70f068552..b5484f5a56e83 100644 --- a/x-pack/plugins/translations/translations/fr-FR.json +++ b/x-pack/plugins/translations/translations/fr-FR.json @@ -10171,7 +10171,6 @@ "xpack.csp.cloudPosturePage.errorRenderer.errorDescription": "{error} {statusCode} : {body}", "xpack.csp.cloudPosturePage.packageNotInstalled.description": "Utilisez notre intégration {integrationFullName} (KSPM) pour mesurer votre configuration de cluster Kubernetes par rapport aux recommandations du CIS.", "xpack.csp.complianceDashboard.complianceByCisSection.complianceColumnTooltip": "{passed}/{total}", - "xpack.csp.createPackagePolicy.eksIntegrationSettingsSection.awsCredentialsDescription": "L'intégration nécessite des droits d'accès supérieurs pour l'exécution de règles CIS Benchmarks. Vous pouvez suivre {link} pour générer les informations d'identification nécessaires.", "xpack.csp.dashboard.benchmarkSection.clusterTitle": "{title} - {shortId}", "xpack.csp.dashboard.benchmarkSection.clusterTitleTooltip.clusterTitle": "{title} - {shortId}", "xpack.csp.dashboard.benchmarkSection.lastEvaluatedTitle": "Dernière évaluation {dateFromNow}", @@ -10210,18 +10209,6 @@ "xpack.csp.createPackagePolicy.customAssetsTab.dashboardViewLabel": "Afficher le tableau de bord CSP", "xpack.csp.createPackagePolicy.customAssetsTab.findingsViewLabel": "Afficher les résultats CSP ", "xpack.csp.createPackagePolicy.customAssetsTab.rulesViewLabel": "Afficher les règles CSP ", - "xpack.csp.createPackagePolicy.eksIntegrationSettingsSection.accessKeyIdFieldLabel": "ID de clé d'accès", - "xpack.csp.createPackagePolicy.eksIntegrationSettingsSection.awsCredentialsInstructionsLink": "ces instructions", - "xpack.csp.createPackagePolicy.eksIntegrationSettingsSection.awsCredentialsNote": "Si vous choisissez de ne pas fournir vos informations d'identification, seul un sous-ensemble des règles de benchmark sera évalué avec vos clusters.", - "xpack.csp.createPackagePolicy.eksIntegrationSettingsSection.awsCredentialsTitle": "Informations d'identification AWS", - "xpack.csp.createPackagePolicy.eksIntegrationSettingsSection.optionalField": "Facultatif", - "xpack.csp.createPackagePolicy.eksIntegrationSettingsSection.roleARNFieldLabel": "Rôle ARN", - "xpack.csp.createPackagePolicy.eksIntegrationSettingsSection.secretAccessKeyFieldLabel": "Clé d'accès secrète", - "xpack.csp.createPackagePolicy.eksIntegrationSettingsSection.sessionTokenFieldLabel": "Token de session", - "xpack.csp.createPackagePolicy.eksIntegrationSettingsSection.sharedCredentialFileFieldLabel": "Nom de profil des informations d'identification", - "xpack.csp.createPackagePolicy.eksIntegrationSettingsSection.sharedCredentialsFileFieldLabel": "Fichier d'informations d'identification partagé", - "xpack.csp.createPackagePolicy.stepConfigure.integrationSettingsSection.kubernetesDeploymentLabel": "Déploiement Kubernetes", - "xpack.csp.createPackagePolicy.stepConfigure.integrationSettingsSection.kubernetesDeploymentLabelTooltip": "Sélectionner votre type de déploiement Kubernetes", "xpack.csp.cspEvaluationBadge.failLabel": "Échec", "xpack.csp.cspEvaluationBadge.passLabel": "Réussite", "xpack.csp.cspSettings.rules": "Règles de sécurité du CSP - ", diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index fc998e22ac922..95ff0e1bcd852 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -10160,7 +10160,6 @@ "xpack.csp.cloudPosturePage.errorRenderer.errorDescription": "{error} {statusCode}: {body}", "xpack.csp.cloudPosturePage.packageNotInstalled.description": "{integrationFullName}(KSPM)統合は、CISの推奨事項に照らしてKubernetesクラスター設定を測定します。", "xpack.csp.complianceDashboard.complianceByCisSection.complianceColumnTooltip": "{passed}/{total}", - "xpack.csp.createPackagePolicy.eksIntegrationSettingsSection.awsCredentialsDescription": "この統合では、一部のCISベンチマークルールを実行するために昇格されたアクセス権が必要です。必要な資格情報を生成するには、{link}に従ってください。", "xpack.csp.dashboard.benchmarkSection.clusterTitle": "{title} - {shortId}", "xpack.csp.dashboard.benchmarkSection.clusterTitleTooltip.clusterTitle": "{title} - {shortId}", "xpack.csp.dashboard.benchmarkSection.lastEvaluatedTitle": "前回の評価{dateFromNow}", @@ -10199,18 +10198,6 @@ "xpack.csp.createPackagePolicy.customAssetsTab.dashboardViewLabel": "CSPダッシュボードを表示", "xpack.csp.createPackagePolicy.customAssetsTab.findingsViewLabel": "CSP調査結果を表示 ", "xpack.csp.createPackagePolicy.customAssetsTab.rulesViewLabel": "CSPルールを表示 ", - "xpack.csp.createPackagePolicy.eksIntegrationSettingsSection.accessKeyIdFieldLabel": "アクセスキーID", - "xpack.csp.createPackagePolicy.eksIntegrationSettingsSection.awsCredentialsInstructionsLink": "これらの手順", - "xpack.csp.createPackagePolicy.eksIntegrationSettingsSection.awsCredentialsNote": "資格情報を指定しない場合は、ベンチマークルールのサブネットのみがクラスターに対して評価されます。", - "xpack.csp.createPackagePolicy.eksIntegrationSettingsSection.awsCredentialsTitle": "AWS認証情報", - "xpack.csp.createPackagePolicy.eksIntegrationSettingsSection.optionalField": "オプション", - "xpack.csp.createPackagePolicy.eksIntegrationSettingsSection.roleARNFieldLabel": "ARNロール", - "xpack.csp.createPackagePolicy.eksIntegrationSettingsSection.secretAccessKeyFieldLabel": "シークレットアクセスキー", - "xpack.csp.createPackagePolicy.eksIntegrationSettingsSection.sessionTokenFieldLabel": "セッショントークン", - "xpack.csp.createPackagePolicy.eksIntegrationSettingsSection.sharedCredentialFileFieldLabel": "資格情報プロファイル名", - "xpack.csp.createPackagePolicy.eksIntegrationSettingsSection.sharedCredentialsFileFieldLabel": "共有資格情報ファイル", - "xpack.csp.createPackagePolicy.stepConfigure.integrationSettingsSection.kubernetesDeploymentLabel": "Kubernetesデプロイ", - "xpack.csp.createPackagePolicy.stepConfigure.integrationSettingsSection.kubernetesDeploymentLabelTooltip": "Kubernetesデプロイタイプを選択", "xpack.csp.cspEvaluationBadge.failLabel": "失敗", "xpack.csp.cspEvaluationBadge.passLabel": "合格", "xpack.csp.cspSettings.rules": "CSPセキュリティルール - ", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index c063e7e87fe79..4b4d96d9e049d 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -10175,7 +10175,6 @@ "xpack.csp.cloudPosturePage.errorRenderer.errorDescription": "{error} {statusCode}:{body}", "xpack.csp.cloudPosturePage.packageNotInstalled.description": "使用我们的 {integrationFullName} (KSPM) 集成根据 CIS 建议衡量 Kubernetes 集群设置。", "xpack.csp.complianceDashboard.complianceByCisSection.complianceColumnTooltip": "{passed}/{total}", - "xpack.csp.createPackagePolicy.eksIntegrationSettingsSection.awsCredentialsDescription": "该集成需要提升访问权限才能运行某些 CIS 基准规则。您可以访问 {link} 以生成必要的凭据。", "xpack.csp.dashboard.benchmarkSection.clusterTitle": "{title} - {shortId}", "xpack.csp.dashboard.benchmarkSection.clusterTitleTooltip.clusterTitle": "{title} - {shortId}", "xpack.csp.dashboard.benchmarkSection.lastEvaluatedTitle": "上次评估于 {dateFromNow}", @@ -10214,18 +10213,6 @@ "xpack.csp.createPackagePolicy.customAssetsTab.dashboardViewLabel": "查看 CSP 仪表板", "xpack.csp.createPackagePolicy.customAssetsTab.findingsViewLabel": "查看 CSP 结果 ", "xpack.csp.createPackagePolicy.customAssetsTab.rulesViewLabel": "查看 CSP 规则 ", - "xpack.csp.createPackagePolicy.eksIntegrationSettingsSection.accessKeyIdFieldLabel": "访问密钥 ID", - "xpack.csp.createPackagePolicy.eksIntegrationSettingsSection.awsCredentialsInstructionsLink": "以下说明", - "xpack.csp.createPackagePolicy.eksIntegrationSettingsSection.awsCredentialsNote": "如果选择不提供凭据,将仅根据您的集群评估基准规则的子集。", - "xpack.csp.createPackagePolicy.eksIntegrationSettingsSection.awsCredentialsTitle": "AWS 凭据", - "xpack.csp.createPackagePolicy.eksIntegrationSettingsSection.optionalField": "可选", - "xpack.csp.createPackagePolicy.eksIntegrationSettingsSection.roleARNFieldLabel": "ARN 角色", - "xpack.csp.createPackagePolicy.eksIntegrationSettingsSection.secretAccessKeyFieldLabel": "机密访问密钥", - "xpack.csp.createPackagePolicy.eksIntegrationSettingsSection.sessionTokenFieldLabel": "会话令牌", - "xpack.csp.createPackagePolicy.eksIntegrationSettingsSection.sharedCredentialFileFieldLabel": "凭据配置文件名", - "xpack.csp.createPackagePolicy.eksIntegrationSettingsSection.sharedCredentialsFileFieldLabel": "共享凭据文件", - "xpack.csp.createPackagePolicy.stepConfigure.integrationSettingsSection.kubernetesDeploymentLabel": "Kubernetes 部署", - "xpack.csp.createPackagePolicy.stepConfigure.integrationSettingsSection.kubernetesDeploymentLabelTooltip": "选择 Kubernetes 部署类型", "xpack.csp.cspEvaluationBadge.failLabel": "失败", "xpack.csp.cspEvaluationBadge.passLabel": "通过", "xpack.csp.cspSettings.rules": "CSP 安全规则 - ", From 5fddc7da8171dadc71b6931e69ab29921c50f8e7 Mon Sep 17 00:00:00 2001 From: Jatin Kathuria Date: Tue, 3 Jan 2023 13:43:21 +0100 Subject: [PATCH 4/8] [Security Solution][feat] Alert filters for Detection Page (#146989) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary This PR adds feature according to https://github.com/elastic/security-team/issues/4128. ### Capabilities Added - 💚 Page Filters are dynamic component that have been added on Detection Alerts Page. - 🌀 The status of the page filters is propagated to the URL and any external page can direct users to Detection Alert Page with custom filters populated. - 🌴 Filters are `hierarchical` in nature, what it means is that they should be arranged from lowers cardinality to highest from left to right. Any change in the filter on the left side, will update all the filters on the right hand side. - 💊 Existing alerts status change pill ( open/acknowledged/closed) has been removed from the alerts page but ❗it still exists on the rule details page. - 📄 Filters are persisted during user's browser session through local storage but they are not shared across spaces. 📔 Here is how the page looks when alert index exists v/s if there is some error in fetching the index. | Working Page Filters | When Index is unavailable | |--|--| |
diff --git a/x-pack/plugins/security_solution/public/detections/components/detection_page_filters/index.tsx b/x-pack/plugins/security_solution/public/detections/components/detection_page_filters/index.tsx new file mode 100644 index 0000000000000..e4b1850025d0a --- /dev/null +++ b/x-pack/plugins/security_solution/public/detections/components/detection_page_filters/index.tsx @@ -0,0 +1,55 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { ComponentProps } from 'react'; +import React, { useState, useCallback } from 'react'; +import type { Filter } from '@kbn/es-query'; +import { isEqual } from 'lodash'; +import { DEFAULT_DETECTION_PAGE_FILTERS } from '../../../../common/constants'; +import { FilterGroup } from '../../../common/components/filter_group'; + +type FilterItemSetProps = Omit, 'initialControls'>; + +const FilterItemSetComponent = (props: FilterItemSetProps) => { + const { dataViewId, onFilterChange, ...restFilterItemGroupProps } = props; + + const [initialFilterControls] = useState(DEFAULT_DETECTION_PAGE_FILTERS); + + const filterChangesHandler = useCallback( + (newFilters: Filter[]) => { + if (!onFilterChange) { + return; + } + const updatedFilters = newFilters.map((filter) => { + return { + ...filter, + meta: { + ...filter.meta, + disabled: false, + }, + }; + }); + onFilterChange(updatedFilters); + }, + [onFilterChange] + ); + return ( + + ); +}; + +const arePropsEqual = (prevProps: FilterItemSetProps, newProps: FilterItemSetProps) => { + const _isEqual = isEqual(prevProps, newProps); + return _isEqual; +}; + +export const DetectionPageFilterSet = React.memo(FilterItemSetComponent, arePropsEqual); diff --git a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/chart_panels/index.tsx b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/chart_panels/index.tsx index 83df1b0018b1f..ddfe14d51201f 100644 --- a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/chart_panels/index.tsx +++ b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/chart_panels/index.tsx @@ -7,7 +7,7 @@ import type { MappingRuntimeFields } from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import type { Filter, Query } from '@kbn/es-query'; -import { EuiFlexItem, EuiLoadingSpinner } from '@elastic/eui'; +import { EuiFlexItem, EuiLoadingContent, EuiLoadingSpinner } from '@elastic/eui'; import React, { useCallback, useMemo } from 'react'; import styled from 'styled-components'; @@ -143,7 +143,7 @@ const ChartPanelsComponent: React.FC = ({ {alertViewSelection === 'trend' && ( {isLoadingIndexPattern ? ( - + ) : ( = ({ {alertViewSelection === 'table' && ( {isLoadingIndexPattern ? ( - + ) : ( = ({ {alertViewSelection === 'treemap' && ( {isLoadingIndexPattern ? ( - + ) : ( = ({ - clearEventsDeleted, - clearEventsLoading, -}) => { +const DetectionEnginePageComponent: React.FC = () => { const dispatch = useDispatch(); const containerElement = useRef(null); const getTable = useMemo(() => dataTableSelectors.getTableByIdSelector(), []); const graphEventId = useShallowEqualSelector( (state) => (getTable(state, TableId.alertsOnAlertsPage) ?? tableDefaults).graphEventId ); - const updatedAt = useShallowEqualSelector( - (state) => (getTable(state, TableId.alertsOnAlertsPage) ?? tableDefaults).updated - ); - const isAlertsLoading = useShallowEqualSelector( - (state) => (getTable(state, TableId.alertsOnAlertsPage) ?? tableDefaults).isLoading - ); const getGlobalFiltersQuerySelector = useMemo( () => inputsSelectors.globalFiltersQuerySelector(), [] @@ -128,9 +109,12 @@ const DetectionEnginePageComponent: React.FC = ({ const { loading: listsConfigLoading, needsConfiguration: needsListsConfiguration } = useListsConfig(); + const [detectionPageFilters, setDetectionPageFilters] = useState(); + const { indexPattern, runtimeMappings, + dataViewId, loading: isLoadingIndexPattern, } = useSourcererDataView(SourcererScopeName.detections); @@ -140,10 +124,8 @@ const DetectionEnginePageComponent: React.FC = ({ const loading = userInfoLoading || listsConfigLoading; const { application: { navigateToUrl }, - timelines: timelinesUi, data, } = useKibana().services; - const [filterGroup, setFilterGroup] = useState(FILTER_OPEN); const { filterManager } = data.query; @@ -163,8 +145,6 @@ const DetectionEnginePageComponent: React.FC = ({ [filterManager] ); - const showUpdating = useMemo(() => isAlertsLoading || loading, [isAlertsLoading, loading]); - const updateDateRangeCallback = useCallback( ({ x }) => { if (!x) { @@ -190,25 +170,14 @@ const DetectionEnginePageComponent: React.FC = ({ [formatUrl, navigateToUrl] ); - // Callback for when open/closed filter changes - const onFilterGroupChangedCallback = useCallback( - (newFilterGroup: Status) => { - const timelineId = TableId.alertsOnAlertsPage; - clearEventsLoading({ id: timelineId }); - clearEventsDeleted({ id: timelineId }); - setFilterGroup(newFilterGroup); - }, - [clearEventsLoading, clearEventsDeleted, setFilterGroup] - ); - const alertsHistogramDefaultFilters = useMemo( () => [ ...filters, ...buildShowBuildingBlockFilter(showBuildingBlockAlerts), - ...buildAlertStatusFilter(filterGroup), ...buildThreatMatchFilter(showOnlyThreatIndicatorAlerts), + ...(detectionPageFilters ?? []), ], - [filters, showBuildingBlockAlerts, showOnlyThreatIndicatorAlerts, filterGroup] + [filters, showBuildingBlockAlerts, showOnlyThreatIndicatorAlerts, detectionPageFilters] ); // AlertsTable manages global filters itself, so not including `filters` @@ -216,8 +185,9 @@ const DetectionEnginePageComponent: React.FC = ({ () => [ ...buildShowBuildingBlockFilter(showBuildingBlockAlerts), ...buildThreatMatchFilter(showOnlyThreatIndicatorAlerts), + ...(detectionPageFilters ?? []), ], - [showBuildingBlockAlerts, showOnlyThreatIndicatorAlerts] + [showBuildingBlockAlerts, showOnlyThreatIndicatorAlerts, detectionPageFilters] ); const onShowBuildingBlockAlertsChangedCallback = useCallback( @@ -258,6 +228,19 @@ const DetectionEnginePageComponent: React.FC = ({ [containerElement, onSkipFocusBeforeEventsTable, onSkipFocusAfterEventsTable] ); + const pageFiltersUpdateHandler = useCallback((newFilters: Filter[]) => { + setDetectionPageFilters(newFilters); + }, []); + + const isAlertTableLoading = useMemo( + () => loading || !Array.isArray(detectionPageFilters), + [loading, detectionPageFilters] + ); + const isChartPanelLoading = useMemo( + () => isLoadingIndexPattern || !Array.isArray(detectionPageFilters), + [isLoadingIndexPattern, detectionPageFilters] + ); + if (loading) { return ( @@ -324,33 +307,24 @@ const DetectionEnginePageComponent: React.FC = ({ {i18n.BUTTON_MANAGE_RULES} - - - - - - - - - - {updatedAt && - timelinesUi.getLastUpdated({ - updatedAt: updatedAt || Date.now(), - showUpdating, - })} - - - - - + + = ({ = ({ showOnlyThreatIndicatorAlerts={showOnlyThreatIndicatorAlerts} onShowOnlyThreatIndicatorAlertsChanged={onShowOnlyThreatIndicatorAlertsCallback} to={to} - filterGroup={filterGroup} /> diff --git a/x-pack/plugins/security_solution/tsconfig.json b/x-pack/plugins/security_solution/tsconfig.json index f508a920fa8bd..4ea871a5d8433 100644 --- a/x-pack/plugins/security_solution/tsconfig.json +++ b/x-pack/plugins/security_solution/tsconfig.json @@ -125,6 +125,8 @@ "@kbn/core-status-common-internal", "@kbn/repo-info", "@kbn/storybook", + "@kbn/controls-plugin", + "@kbn/shared-ux-utility", ], "exclude": [ "target/**/*", From 0b1ecc9844565188113a60f8f267068f6ce30a54 Mon Sep 17 00:00:00 2001 From: Antonio Date: Tue, 3 Jan 2023 14:09:50 +0100 Subject: [PATCH 5/8] [ResponseOps] [Cases] Allow sorting cases list by status, severity and title (#148193) Connected to #132041 ## Summary Sorting by status, severity, and title is now allowed in the all-cases list. ### Checklist - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios - [x] Any UI touched in this PR is usable by keyboard only (learn more about [keyboard accessibility](https://webaim.org/techniques/keyboard/)) - [x] This renders correctly on smaller devices using a responsive layout. (You can test this [in your browser](https://www.browserstack.com/guide/responsive-testing-on-local-server)) - [x] This was checked for [cross-browser compatibility](https://www.elastic.co/support/matrix#matrix_browsers) --- ## Release notes Sorting by status, severity, and title is now allowed in the all-cases list. Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- x-pack/plugins/cases/common/ui/types.ts | 5 +- .../all_cases/all_cases_list.test.tsx | 73 ++++++++++++++++++- .../components/all_cases/all_cases_list.tsx | 3 +- .../all_cases/use_cases_columns.test.tsx | 54 ++++++++++++++ .../all_cases/use_cases_columns.tsx | 24 +++--- 5 files changed, 144 insertions(+), 15 deletions(-) diff --git a/x-pack/plugins/cases/common/ui/types.ts b/x-pack/plugins/cases/common/ui/types.ts index dc8ccf55c9f5d..bc385b68aeeaf 100644 --- a/x-pack/plugins/cases/common/ui/types.ts +++ b/x-pack/plugins/cases/common/ui/types.ts @@ -127,8 +127,11 @@ export type SingleCaseMetricsFeature = | 'lifespan'; export enum SortFieldCase { - createdAt = 'createdAt', closedAt = 'closedAt', + createdAt = 'createdAt', + severity = 'severity', + status = 'status', + title = 'title', } export type ElasticUser = SnakeToCamelCase; diff --git a/x-pack/plugins/cases/public/components/all_cases/all_cases_list.test.tsx b/x-pack/plugins/cases/public/components/all_cases/all_cases_list.test.tsx index 838ebeea59030..3450313114a0b 100644 --- a/x-pack/plugins/cases/public/components/all_cases/all_cases_list.test.tsx +++ b/x-pack/plugins/cases/public/components/all_cases/all_cases_list.test.tsx @@ -8,7 +8,7 @@ import React from 'react'; import { mount } from 'enzyme'; import moment from 'moment-timezone'; -import { render, waitFor, screen, act } from '@testing-library/react'; +import { render, waitFor, screen, act, within } from '@testing-library/react'; import { renderHook } from '@testing-library/react-hooks'; import userEvent from '@testing-library/user-event'; import { waitForEuiPopoverOpen } from '@elastic/eui/lib/test/rtl'; @@ -257,23 +257,28 @@ describe('AllCasesListGeneric', () => { expect.objectContaining({ queryParams: { ...DEFAULT_QUERY_PARAMS, - sortOrder: 'asc', }, }) ); }); }); + it('renders the title column', async () => { + const res = appMockRenderer.render(); + + expect(res.getByTestId('tableHeaderCell_title_0')).toBeInTheDocument(); + }); + it('renders the status column', async () => { const res = appMockRenderer.render(); - expect(res.getByTestId('tableHeaderCell_Status_6')).toBeInTheDocument(); + expect(res.getByTestId('tableHeaderCell_status_6')).toBeInTheDocument(); }); it('renders the severity column', async () => { const res = appMockRenderer.render(); - expect(res.getByTestId('tableHeaderCell_Severity_7')).toBeInTheDocument(); + expect(res.getByTestId('tableHeaderCell_severity_7')).toBeInTheDocument(); }); it('should render the case stats', () => { @@ -393,6 +398,66 @@ describe('AllCasesListGeneric', () => { }); }); + it('should sort by status', async () => { + const result = appMockRenderer.render(); + + userEvent.click( + within(result.getByTestId('tableHeaderCell_status_6')).getByTestId('tableHeaderSortButton') + ); + + await waitFor(() => { + expect(useGetCasesMock).toHaveBeenLastCalledWith( + expect.objectContaining({ + queryParams: { + ...DEFAULT_QUERY_PARAMS, + sortField: SortFieldCase.status, + sortOrder: 'asc', + }, + }) + ); + }); + }); + + it('should sort by severity', async () => { + const result = appMockRenderer.render(); + + userEvent.click( + within(result.getByTestId('tableHeaderCell_severity_7')).getByTestId('tableHeaderSortButton') + ); + + await waitFor(() => { + expect(useGetCasesMock).toHaveBeenLastCalledWith( + expect.objectContaining({ + queryParams: { + ...DEFAULT_QUERY_PARAMS, + sortField: SortFieldCase.severity, + sortOrder: 'asc', + }, + }) + ); + }); + }); + + it('should sort by title', async () => { + const result = appMockRenderer.render(); + + userEvent.click( + within(result.getByTestId('tableHeaderCell_title_0')).getByTestId('tableHeaderSortButton') + ); + + await waitFor(() => { + expect(useGetCasesMock).toHaveBeenLastCalledWith( + expect.objectContaining({ + queryParams: { + ...DEFAULT_QUERY_PARAMS, + sortField: SortFieldCase.title, + sortOrder: 'asc', + }, + }) + ); + }); + }); + it('should filter by status: closed', async () => { const result = appMockRenderer.render(); userEvent.click(result.getByTestId('case-status-filter')); diff --git a/x-pack/plugins/cases/public/components/all_cases/all_cases_list.tsx b/x-pack/plugins/cases/public/components/all_cases/all_cases_list.tsx index d4ba5692a0b72..3d786b787369a 100644 --- a/x-pack/plugins/cases/public/components/all_cases/all_cases_list.tsx +++ b/x-pack/plugins/cases/public/components/all_cases/all_cases_list.tsx @@ -45,7 +45,8 @@ const ProgressLoader = styled(EuiProgress)` `; const getSortField = (field: string): SortFieldCase => - field === SortFieldCase.closedAt ? SortFieldCase.closedAt : SortFieldCase.createdAt; + // @ts-ignore + SortFieldCase[field] ?? SortFieldCase.title; export interface AllCasesListProps { hiddenStatuses?: CaseStatusWithAllStatus[]; diff --git a/x-pack/plugins/cases/public/components/all_cases/use_cases_columns.test.tsx b/x-pack/plugins/cases/public/components/all_cases/use_cases_columns.test.tsx index 0647bdd25e382..0b8777465ff2d 100644 --- a/x-pack/plugins/cases/public/components/all_cases/use_cases_columns.test.tsx +++ b/x-pack/plugins/cases/public/components/all_cases/use_cases_columns.test.tsx @@ -49,8 +49,10 @@ describe('useCasesColumns ', () => { Object { "columns": Array [ Object { + "field": "title", "name": "Name", "render": [Function], + "sortable": true, "width": "20%", }, Object { @@ -95,12 +97,16 @@ describe('useCasesColumns ', () => { "render": [Function], }, Object { + "field": "status", "name": "Status", "render": [Function], + "sortable": true, }, Object { + "field": "severity", "name": "Severity", "render": [Function], + "sortable": true, }, Object { "align": "right", @@ -130,8 +136,10 @@ describe('useCasesColumns ', () => { Object { "columns": Array [ Object { + "field": "title", "name": "Name", "render": [Function], + "sortable": true, "width": "20%", }, Object { @@ -176,12 +184,16 @@ describe('useCasesColumns ', () => { "render": [Function], }, Object { + "field": "status", "name": "Status", "render": [Function], + "sortable": true, }, Object { + "field": "severity", "name": "Severity", "render": [Function], + "sortable": true, }, Object { "align": "right", @@ -210,8 +222,10 @@ describe('useCasesColumns ', () => { Object { "columns": Array [ Object { + "field": "title", "name": "Name", "render": [Function], + "sortable": true, "width": "20%", }, Object { @@ -250,12 +264,16 @@ describe('useCasesColumns ', () => { "render": [Function], }, Object { + "field": "status", "name": "Status", "render": [Function], + "sortable": true, }, Object { + "field": "severity", "name": "Severity", "render": [Function], + "sortable": true, }, Object { "align": "right", @@ -282,8 +300,10 @@ describe('useCasesColumns ', () => { Object { "columns": Array [ Object { + "field": "title", "name": "Name", "render": [Function], + "sortable": true, "width": "20%", }, Object { @@ -321,12 +341,16 @@ describe('useCasesColumns ', () => { "render": [Function], }, Object { + "field": "status", "name": "Status", "render": [Function], + "sortable": true, }, Object { + "field": "severity", "name": "Severity", "render": [Function], + "sortable": true, }, Object { "align": "right", @@ -347,8 +371,10 @@ describe('useCasesColumns ', () => { Object { "columns": Array [ Object { + "field": "title", "name": "Name", "render": [Function], + "sortable": true, "width": "20%", }, Object { @@ -387,12 +413,16 @@ describe('useCasesColumns ', () => { "render": [Function], }, Object { + "field": "status", "name": "Status", "render": [Function], + "sortable": true, }, Object { + "field": "severity", "name": "Severity", "render": [Function], + "sortable": true, }, Object { "align": "right", @@ -418,8 +448,10 @@ describe('useCasesColumns ', () => { Object { "columns": Array [ Object { + "field": "title", "name": "Name", "render": [Function], + "sortable": true, "width": "20%", }, Object { @@ -458,12 +490,16 @@ describe('useCasesColumns ', () => { "render": [Function], }, Object { + "field": "status", "name": "Status", "render": [Function], + "sortable": true, }, Object { + "field": "severity", "name": "Severity", "render": [Function], + "sortable": true, }, Object { "align": "right", @@ -487,8 +523,10 @@ describe('useCasesColumns ', () => { Object { "columns": Array [ Object { + "field": "title", "name": "Name", "render": [Function], + "sortable": true, "width": "20%", }, Object { @@ -527,12 +565,16 @@ describe('useCasesColumns ', () => { "render": [Function], }, Object { + "field": "status", "name": "Status", "render": [Function], + "sortable": true, }, Object { + "field": "severity", "name": "Severity", "render": [Function], + "sortable": true, }, Object { "align": "right", @@ -555,8 +597,10 @@ describe('useCasesColumns ', () => { Object { "columns": Array [ Object { + "field": "title", "name": "Name", "render": [Function], + "sortable": true, "width": "20%", }, Object { @@ -595,12 +639,16 @@ describe('useCasesColumns ', () => { "render": [Function], }, Object { + "field": "status", "name": "Status", "render": [Function], + "sortable": true, }, Object { + "field": "severity", "name": "Severity", "render": [Function], + "sortable": true, }, Object { "align": "right", @@ -622,8 +670,10 @@ describe('useCasesColumns ', () => { Object { "columns": Array [ Object { + "field": "title", "name": "Name", "render": [Function], + "sortable": true, "width": "20%", }, Object { @@ -662,12 +712,16 @@ describe('useCasesColumns ', () => { "render": [Function], }, Object { + "field": "status", "name": "Status", "render": [Function], + "sortable": true, }, Object { + "field": "severity", "name": "Severity", "render": [Function], + "sortable": true, }, ], } diff --git a/x-pack/plugins/cases/public/components/all_cases/use_cases_columns.tsx b/x-pack/plugins/cases/public/components/all_cases/use_cases_columns.tsx index df261b613b0b2..601e60ae9a5c5 100644 --- a/x-pack/plugins/cases/public/components/all_cases/use_cases_columns.tsx +++ b/x-pack/plugins/cases/public/components/all_cases/use_cases_columns.tsx @@ -112,8 +112,10 @@ export const useCasesColumns = ({ const columns: CasesColumns[] = [ { + field: 'title', name: i18n.NAME, - render: (theCase: Case) => { + sortable: true, + render: (title: string, theCase: Case) => { if (theCase.id != null && theCase.title != null) { const caseDetailsLinkComponent = isSelectorView ? ( @@ -287,23 +289,27 @@ export const useCasesColumns = ({ }, }, { + field: 'status', name: i18n.STATUS, - render: (theCase: Case) => { - if (theCase.status === null || theCase.status === undefined) { - return getEmptyTagValue(); + sortable: true, + render: (status: Case['status']) => { + if (status != null) { + return ; } - return ; + return getEmptyTagValue(); }, }, { + field: 'severity', name: i18n.SEVERITY, - render: (theCase: Case) => { - if (theCase.severity != null) { - const severityData = severities[theCase.severity ?? CaseSeverity.LOW]; + sortable: true, + render: (severity: Case['severity']) => { + if (severity != null) { + const severityData = severities[severity ?? CaseSeverity.LOW]; return ( {severityData.label} From 1c3dc4a15164c12d428158a279d73e7ca850134a Mon Sep 17 00:00:00 2001 From: Jonathan Budzenski Date: Tue, 3 Jan 2023 07:36:24 -0600 Subject: [PATCH 6/8] skip flaky suite (#148263) --- .../saved_objects/migrations/multiple_kibana_nodes.test.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/core/server/integration_tests/saved_objects/migrations/multiple_kibana_nodes.test.ts b/src/core/server/integration_tests/saved_objects/migrations/multiple_kibana_nodes.test.ts index a947854e9249b..34df1d484b92b 100644 --- a/src/core/server/integration_tests/saved_objects/migrations/multiple_kibana_nodes.test.ts +++ b/src/core/server/integration_tests/saved_objects/migrations/multiple_kibana_nodes.test.ts @@ -106,7 +106,8 @@ async function createRoot({ logFileName }: CreateRootConfig) { // suite is very long, the 10mins default can cause timeouts jest.setTimeout(15 * 60 * 1000); -describe('migration v2', () => { +// FLAKY: https://github.com/elastic/kibana/issues/148263 +describe.skip('migration v2', () => { let esServer: TestElasticsearchUtils; let rootA: Root; let rootB: Root; From 9111a2ebfc10813b018c61ab249e099f90f7582a Mon Sep 17 00:00:00 2001 From: Walter Rafelsberger Date: Tue, 3 Jan 2023 15:58:15 +0100 Subject: [PATCH 7/8] [ML] AIOps: Replace useMount with useEffect to consider return cleanup callback. (#148229) Replace `useMount` (just the usages with return callbacks) with `useEffect` to consider return cleanup callback. --- .../change_point_detection_context.tsx | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/x-pack/plugins/aiops/public/components/change_point_detection/change_point_detection_context.tsx b/x-pack/plugins/aiops/public/components/change_point_detection/change_point_detection_context.tsx index 600a68ff1a498..8d67a28c3055f 100644 --- a/x-pack/plugins/aiops/public/components/change_point_detection/change_point_detection_context.tsx +++ b/x-pack/plugins/aiops/public/components/change_point_detection/change_point_detection_context.tsx @@ -16,7 +16,6 @@ import React, { } from 'react'; import { type DataViewField } from '@kbn/data-views-plugin/public'; import { startWith } from 'rxjs'; -import useMount from 'react-use/lib/useMount'; import type { Query, Filter } from '@kbn/es-query'; import { usePageUrlState } from '@kbn/ml-url-state'; import { @@ -129,7 +128,7 @@ export const ChangePointDetectionContextProvider: FC = ({ children }) => { const timeRange = useTimeRangeUpdates(); - useMount(function updateIntervalOnTimeBoundsChange() { + useEffect(function updateIntervalOnTimeBoundsChange() { const timeUpdateSubscription = timefilter .getTimeUpdate$() .pipe(startWith(timefilter.getTime())) @@ -145,7 +144,8 @@ export const ChangePointDetectionContextProvider: FC = ({ children }) => { return () => { timeUpdateSubscription.unsubscribe(); }; - }); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); const metricFieldOptions = useMemo(() => { return dataView.fields.filter(({ aggregatable, type }) => aggregatable && type === 'number'); @@ -195,7 +195,7 @@ export const ChangePointDetectionContextProvider: FC = ({ children }) => { [filterManager] ); - useMount(() => { + useEffect(() => { setResultFilter(filterManager.getFilters()); const sub = filterManager.getUpdates$().subscribe(() => { setResultFilter(filterManager.getFilters()); @@ -203,7 +203,8 @@ export const ChangePointDetectionContextProvider: FC = ({ children }) => { return () => { sub.unsubscribe(); }; - }); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); useEffect( function syncFilters() { From 55f6006a7f40490c4febc874eb83ddb3e3c51427 Mon Sep 17 00:00:00 2001 From: Ashokaditya <1849116+ashokaditya@users.noreply.github.com> Date: Tue, 3 Jan 2023 16:03:19 +0100 Subject: [PATCH 8/8] [Fleet][RBAC v2] Add tests for fleet API changes (#147611) ## Summary Tests related to changes in elastic/kibana/pull/145361 ### Checklist - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios Co-authored-by: Mark Hopkin Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- .../test_packages/endpoint/endpoint-8.6.1.zip | Bin 0 -> 1473718 bytes .../apis/package_policy/get.ts | 131 ++++++++++++++++-- .../apis/package_policy/update.ts | 109 ++++++++++++++- .../fleet_api_integration/apis/test_users.ts | 31 +++++ x-pack/test/fleet_api_integration/config.ts | 1 + 5 files changed, 255 insertions(+), 17 deletions(-) create mode 100644 x-pack/test/fleet_api_integration/apis/fixtures/test_packages/endpoint/endpoint-8.6.1.zip diff --git a/x-pack/test/fleet_api_integration/apis/fixtures/test_packages/endpoint/endpoint-8.6.1.zip b/x-pack/test/fleet_api_integration/apis/fixtures/test_packages/endpoint/endpoint-8.6.1.zip new file mode 100644 index 0000000000000000000000000000000000000000..4c20854aee729c649bd514b3e16344c6ee63eea8 GIT binary patch literal 1473718 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

lU_wY4MO2jRQ{ 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 M0Q}{fUypD9KlLGTFaQ7m literal 0 HcmV?d00001 diff --git a/x-pack/test/fleet_api_integration/apis/package_policy/get.ts b/x-pack/test/fleet_api_integration/apis/package_policy/get.ts index d46aea0dbbd1b..5e3978dc50597 100644 --- a/x-pack/test/fleet_api_integration/apis/package_policy/get.ts +++ b/x-pack/test/fleet_api_integration/apis/package_policy/get.ts @@ -8,11 +8,15 @@ import expect from '@kbn/expect'; import { FtrProviderContext } from '../../../api_integration/ftr_provider_context'; import { skipIfNoDockerRegistry } from '../../helpers'; +import { testUsers } from '../test_users'; export default function (providerContext: FtrProviderContext) { const { getService } = providerContext; const supertest = getService('supertest'); + const superTestWithoutAuth = getService('supertestWithoutAuth'); const dockerServers = getService('dockerServers'); + const esArchiver = getService('esArchiver'); + const kibanaServer = getService('kibanaServer'); const server = dockerServers.get('registry'); // use function () {} and not () => {} here @@ -23,23 +27,19 @@ export default function (providerContext: FtrProviderContext) { skipIfNoDockerRegistry(providerContext); before(async () => { - await getService('kibanaServer').savedObjects.cleanStandardList(); - - await getService('esArchiver').load( - 'x-pack/test/functional/es_archives/fleet/empty_fleet_server' - ); + await kibanaServer.savedObjects.cleanStandardList(); + await esArchiver.load('x-pack/test/functional/es_archives/fleet/empty_fleet_server'); }); after(async () => { - await getService('esArchiver').unload( - 'x-pack/test/functional/es_archives/fleet/empty_fleet_server' - ); - await getService('kibanaServer').savedObjects.cleanStandardList(); + await esArchiver.unload('x-pack/test/functional/es_archives/fleet/empty_fleet_server'); + await kibanaServer.savedObjects.cleanStandardList(); }); describe('get by id', async function () { let agentPolicyId: string; let packagePolicyId: string; + let endpointPackagePolicyId: string; before(async function () { if (!server.enabled) { @@ -72,6 +72,25 @@ export default function (providerContext: FtrProviderContext) { }, }); packagePolicyId = packagePolicyResponse.item.id; + + const { body: endpointPackagePolicyResponse } = await supertest + .post(`/api/fleet/package_policies`) + .set('kbn-xsrf', 'xxxx') + .send({ + name: 'endpoint-1', + description: '', + namespace: 'default', + policy_id: agentPolicyId, + enabled: true, + inputs: [], + force: true, + package: { + name: 'endpoint', + title: 'Elastic Defend', + version: '8.6.1', + }, + }); + endpointPackagePolicyId = endpointPackagePolicyResponse.item.id; }); after(async function () { @@ -88,7 +107,14 @@ export default function (providerContext: FtrProviderContext) { await supertest .post(`/api/fleet/package_policies/delete`) .set('kbn-xsrf', 'xxxx') - .send({ packagePolicyIds: [packagePolicyId] }) + .send({ packagePolicyIds: [packagePolicyId, endpointPackagePolicyId] }) + .expect(200); + + // uninstall endpoint package + await supertest + .delete(`/api/fleet/epm/packages/endpoint-8.6.1`) + .set('kbn-xsrf', 'xxxx') + .send({ force: true }) .expect(200); }); @@ -96,6 +122,33 @@ export default function (providerContext: FtrProviderContext) { await supertest.get(`/api/fleet/package_policies/${packagePolicyId}`).expect(200); }); + it('should succeed when requesting with policy ids that match package names allowed by package privileges', async function () { + await superTestWithoutAuth + .get(`/api/fleet/package_policies/${endpointPackagePolicyId}`) + .set('kbn-xsrf', 'xxxx') + .auth( + testUsers.endpoint_integr_read_policy.username, + testUsers.endpoint_integr_read_policy.password + ) + .expect(200); + }); + + it('should return 403 for requests with authenticated role but not allowed packages', async function () { + await superTestWithoutAuth + .get(`/api/fleet/package_policies/${packagePolicyId}`) + .set('kbn-xsrf', 'xxxx') + .auth( + testUsers.endpoint_integr_read_policy.username, + testUsers.endpoint_integr_read_policy.password + ) + .expect(403, { + statusCode: 403, + error: 'Forbidden', + message: + "Authorization denied to [package.name=filetest]. Allowed package.name's: endpoint", + }); + }); + it('should return a 404 with an invalid id', async function () { await supertest.get(`/api/fleet/package_policies/IS_NOT_PRESENT`).expect(404); }); @@ -104,6 +157,7 @@ export default function (providerContext: FtrProviderContext) { describe('POST /api/fleet/package_policies/_bulk_get', async function () { let agentPolicyId: string; let packagePolicyId: string; + let endpointPackagePolicyId: string; before(async function () { if (!server.enabled) { @@ -136,6 +190,25 @@ export default function (providerContext: FtrProviderContext) { }, }); packagePolicyId = packagePolicyResponse.item.id; + + const { body: endpointPackagePolicyResponse } = await supertest + .post(`/api/fleet/package_policies`) + .set('kbn-xsrf', 'xxxx') + .send({ + name: 'endpoint-1', + description: '', + namespace: 'default', + policy_id: agentPolicyId, + enabled: true, + inputs: [], + force: true, + package: { + name: 'endpoint', + title: 'Elastic Defend', + version: '8.6.1', + }, + }); + endpointPackagePolicyId = endpointPackagePolicyResponse.item.id; }); after(async function () { @@ -152,7 +225,14 @@ export default function (providerContext: FtrProviderContext) { await supertest .post(`/api/fleet/package_policies/delete`) .set('kbn-xsrf', 'xxxx') - .send({ packagePolicyIds: [packagePolicyId] }) + .send({ packagePolicyIds: [packagePolicyId, endpointPackagePolicyId] }) + .expect(200); + + // uninstall endpoint package + await supertest + .delete(`/api/fleet/epm/packages/endpoint-8.6.1`) + .set('kbn-xsrf', 'xxxx') + .send({ force: true }) .expect(200); }); @@ -176,6 +256,35 @@ export default function (providerContext: FtrProviderContext) { .expect(404); }); + it('should return 403 without allowed package names', async function () { + await superTestWithoutAuth + .post(`/api/fleet/package_policies/_bulk_get`) + .set('kbn-xsrf', 'xxxx') + .auth( + testUsers.endpoint_integr_read_policy.username, + testUsers.endpoint_integr_read_policy.password + ) + .send({ ids: [packagePolicyId] }) + .expect(403, { + error: 'Forbidden', + message: + "Authorization denied to [package.name=filetest]. Allowed package.name's: endpoint", + statusCode: 403, + }); + }); + + it('should succeed when bulk requesting with policy ids that match package names allowed by package privileges', async function () { + await superTestWithoutAuth + .post(`/api/fleet/package_policies/_bulk_get`) + .set('kbn-xsrf', 'xxxx') + .auth( + testUsers.endpoint_integr_read_policy.username, + testUsers.endpoint_integr_read_policy.password + ) + .send({ ids: [endpointPackagePolicyId] }) + .expect(200); + }); + it('should succeed with mixed valid ids and invalid ids and ignoreMissing flag ', async function () { const { body: { items }, diff --git a/x-pack/test/fleet_api_integration/apis/package_policy/update.ts b/x-pack/test/fleet_api_integration/apis/package_policy/update.ts index 8d565728c2d4c..3a931ca09ca3d 100644 --- a/x-pack/test/fleet_api_integration/apis/package_policy/update.ts +++ b/x-pack/test/fleet_api_integration/apis/package_policy/update.ts @@ -5,14 +5,18 @@ * 2.0. */ import expect from '@kbn/expect'; +import { policyFactory } from '@kbn/security-solution-plugin/common/endpoint/models/policy_config'; import { FtrProviderContext } from '../../../api_integration/ftr_provider_context'; import { skipIfNoDockerRegistry } from '../../helpers'; +import { testUsers } from '../test_users'; export default function (providerContext: FtrProviderContext) { const { getService } = providerContext; const supertest = getService('supertest'); + const superTestWithoutAuth = getService('supertestWithoutAuth'); const dockerServers = getService('dockerServers'); const kibanaServer = getService('kibanaServer'); + const esArchiver = getService('esArchiver'); const getPackagePolicyById = async (id: string) => { const { body } = await supertest.get(`/api/fleet/package_policies/${id}`); @@ -31,11 +35,10 @@ export default function (providerContext: FtrProviderContext) { let packagePolicyId: string; let packagePolicyId2: string; let packagePolicyId3: string; + let endpointPackagePolicyId: string; before(async () => { await kibanaServer.savedObjects.cleanStandardList(); - await getService('esArchiver').load( - 'x-pack/test/functional/es_archives/fleet/empty_fleet_server' - ); + await esArchiver.load('x-pack/test/functional/es_archives/fleet/empty_fleet_server'); }); before(async function () { @@ -132,6 +135,31 @@ export default function (providerContext: FtrProviderContext) { }, }); packagePolicyId3 = packagePolicyResponse3.item.id; + + const { body: endpointPackagePolicyResponse } = await supertest + .post(`/api/fleet/package_policies`) + .set('kbn-xsrf', 'xxxx') + .send({ + name: 'endpoint-1', + description: '', + namespace: 'default', + policy_id: agentPolicyId, + enabled: true, + inputs: [ + { + enabled: true, + streams: [], + type: 'endpoint', + }, + ], + force: true, + package: { + name: 'endpoint', + title: 'Elastic Defend', + version: '8.6.1', + }, + }); + endpointPackagePolicyId = endpointPackagePolicyResponse.item.id; }); after(async function () { @@ -139,12 +167,17 @@ export default function (providerContext: FtrProviderContext) { .post(`/api/fleet/agent_policies/delete`) .set('kbn-xsrf', 'xxxx') .send({ agentPolicyId }); + + // uninstall endpoint package + await supertest + .delete(`/api/fleet/epm/packages/endpoint-8.6.1`) + .set('kbn-xsrf', 'xxxx') + .send({ force: true }) + .expect(200); }); after(async () => { - await getService('esArchiver').unload( - 'x-pack/test/functional/es_archives/fleet/empty_fleet_server' - ); + await esArchiver.unload('x-pack/test/functional/es_archives/fleet/empty_fleet_server'); await kibanaServer.savedObjects.cleanStandardList(); }); @@ -209,6 +242,70 @@ export default function (providerContext: FtrProviderContext) { }); }); + it('should succeed when updating packages that are allowed with package privileges', async function () { + await superTestWithoutAuth + .put(`/api/fleet/package_policies/${endpointPackagePolicyId}`) + .set('kbn-xsrf', 'xxxx') + .auth( + testUsers.endpoint_integr_write_policy.username, + testUsers.endpoint_integr_write_policy.password + ) + .send({ + name: 'endpoint-1', + description: '', + namespace: 'updated_namespace', + policy_id: agentPolicyId, + enabled: true, + inputs: [ + { + enabled: true, + streams: [], + config: { + policy: { + value: policyFactory(), + }, + }, + type: 'endpoint', + }, + ], + force: true, + package: { + name: 'endpoint', + title: 'Elastic Defend', + version: '8.6.1', + }, + }) + .expect(200); + }); + + it('should return a 403 with package names that are not allowed', async function () { + await superTestWithoutAuth + .put(`/api/fleet/package_policies/${packagePolicyId}`) + .set('kbn-xsrf', 'xxxx') + .auth( + testUsers.endpoint_integr_write_policy.username, + testUsers.endpoint_integr_write_policy.password + ) + .send({ + name: 'updated_name', + description: '', + namespace: 'updated_namespace', + policy_id: agentPolicyId, + enabled: true, + inputs: [], + package: { + name: 'filetest', + title: 'For File Tests', + version: '0.1.0', + }, + }) + .expect(403, { + error: 'Forbidden', + message: 'Update for package name filetest is not authorized.', + statusCode: 403, + }); + }); + it('should return a 400 if there is another package policy with the same name', async function () { await supertest .put(`/api/fleet/package_policies/${packagePolicyId2}`) diff --git a/x-pack/test/fleet_api_integration/apis/test_users.ts b/x-pack/test/fleet_api_integration/apis/test_users.ts index d27ae1c4c29ae..2b55facefbc75 100644 --- a/x-pack/test/fleet_api_integration/apis/test_users.ts +++ b/x-pack/test/fleet_api_integration/apis/test_users.ts @@ -73,6 +73,37 @@ export const testUsers: { username: 'integr_all', password: 'changeme', }, + // for package_policy get one, bulk get with ids, get list + endpoint_integr_read_policy: { + permissions: { + feature: { + fleet: ['read'], + siem: [ + 'minimal_all', + 'trusted_applications_read', + 'host_isolation_exceptions_read', + 'blocklist_read', + 'event_filters_read', + 'policy_management_read', + ], + }, + spaces: ['*'], + }, + username: 'endpoint_integr_read_policy', + password: 'changeme', + }, + // for package_policy update API + endpoint_integr_write_policy: { + permissions: { + feature: { + fleet: ['all'], + siem: ['minimal_all', 'policy_management_all'], + }, + spaces: ['*'], + }, + username: 'endpoint_integr_write_policy', + password: 'changeme', + }, }; export const setupTestUsers = async (security: SecurityService) => { diff --git a/x-pack/test/fleet_api_integration/config.ts b/x-pack/test/fleet_api_integration/config.ts index a0882254d53e3..ed7c90f96bc38 100644 --- a/x-pack/test/fleet_api_integration/config.ts +++ b/x-pack/test/fleet_api_integration/config.ts @@ -72,6 +72,7 @@ export default async function ({ readConfigFile }: FtrConfigProviderContext) { `--xpack.fleet.packageVerification.gpgKeyPath=${getFullPath( './apis/fixtures/package_verification/signatures/fleet_test_key_public.asc' )}`, + `--xpack.securitySolution.enableExperimental=${JSON.stringify(['endpointRbacEnabled'])}`, `--logging.loggers=${JSON.stringify([ ...getKibanaCliLoggers(xPackAPITestsConfig.get('kbnTestServer.serverArgs')),