mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 01:38:56 -04:00
[Cloud Security] Change update dataview (#183789)
## Summary Removing Update logic for Findings table from Client Side as well as overriding table column name
This commit is contained in:
parent
3deea5cf8f
commit
9cb7940601
14 changed files with 48 additions and 181 deletions
|
@ -0,0 +1,29 @@
|
|||
/*
|
||||
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
||||
* or more contributor license agreements. Licensed under the Elastic License
|
||||
* 2.0; you may not use this file except in compliance with the Elastic License
|
||||
* 2.0.
|
||||
*/
|
||||
|
||||
import { useQuery } from '@tanstack/react-query';
|
||||
import { useKibana } from '@kbn/kibana-react-plugin/public';
|
||||
import { CspClientPluginStartDeps } from '../../types';
|
||||
|
||||
/**
|
||||
* Hook to retrieve a Data View by it's Index Pattern title
|
||||
*/
|
||||
export const useDataView = (indexPattern: string) => {
|
||||
const {
|
||||
data: { dataViews },
|
||||
} = useKibana<CspClientPluginStartDeps>().services;
|
||||
|
||||
return useQuery(['useDataView', indexPattern], async () => {
|
||||
const [dataView] = await dataViews.find(indexPattern);
|
||||
|
||||
if (!dataView) {
|
||||
throw new Error(`Data view not found [${indexPattern}]`);
|
||||
}
|
||||
|
||||
return dataView;
|
||||
});
|
||||
};
|
|
@ -1,120 +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 { useQuery } from '@tanstack/react-query';
|
||||
import { useKibana } from '@kbn/kibana-react-plugin/public';
|
||||
import type { DataView } from '@kbn/data-plugin/common';
|
||||
import { i18n } from '@kbn/i18n';
|
||||
import {
|
||||
LATEST_FINDINGS_INDEX_PATTERN,
|
||||
LATEST_VULNERABILITIES_INDEX_PATTERN,
|
||||
} from '../../../common/constants';
|
||||
import { CspClientPluginStartDeps } from '../../types';
|
||||
|
||||
/**
|
||||
* TODO: Remove this static labels once https://github.com/elastic/kibana/issues/172615 is resolved
|
||||
*/
|
||||
const cloudSecurityFieldLabels: Record<string, string> = {
|
||||
'result.evaluation': i18n.translate(
|
||||
'xpack.csp.findings.findingsTable.findingsTableColumn.resultColumnLabel',
|
||||
{ defaultMessage: 'Result' }
|
||||
),
|
||||
'resource.id': i18n.translate(
|
||||
'xpack.csp.findings.findingsTable.findingsTableColumn.resourceIdColumnLabel',
|
||||
{ defaultMessage: 'Resource ID' }
|
||||
),
|
||||
'resource.name': i18n.translate(
|
||||
'xpack.csp.findings.findingsTable.findingsTableColumn.resourceNameColumnLabel',
|
||||
{ defaultMessage: 'Resource Name' }
|
||||
),
|
||||
'resource.sub_type': i18n.translate(
|
||||
'xpack.csp.findings.findingsTable.findingsTableColumn.resourceTypeColumnLabel',
|
||||
{ defaultMessage: 'Resource Type' }
|
||||
),
|
||||
'rule.benchmark.rule_number': i18n.translate(
|
||||
'xpack.csp.findings.findingsTable.findingsTableColumn.ruleNumberColumnLabel',
|
||||
{ defaultMessage: 'Rule Number' }
|
||||
),
|
||||
'rule.name': i18n.translate(
|
||||
'xpack.csp.findings.findingsTable.findingsTableColumn.ruleNameColumnLabel',
|
||||
{ defaultMessage: 'Rule Name' }
|
||||
),
|
||||
'rule.section': i18n.translate(
|
||||
'xpack.csp.findings.findingsTable.findingsTableColumn.ruleSectionColumnLabel',
|
||||
{ defaultMessage: 'CIS Section' }
|
||||
),
|
||||
'@timestamp': i18n.translate(
|
||||
'xpack.csp.findings.findingsTable.findingsTableColumn.lastCheckedColumnLabel',
|
||||
{ defaultMessage: 'Last Checked' }
|
||||
),
|
||||
'vulnerability.id': i18n.translate(
|
||||
'xpack.csp.findings.findingsTable.findingsTableColumn.vulnerabilityIdColumnLabel',
|
||||
{ defaultMessage: 'Vulnerability' }
|
||||
),
|
||||
'vulnerability.score.base': i18n.translate(
|
||||
'xpack.csp.findings.findingsTable.findingsTableColumn.vulnerabilityScoreColumnLabel',
|
||||
{ defaultMessage: 'CVSS' }
|
||||
),
|
||||
'vulnerability.severity': i18n.translate(
|
||||
'xpack.csp.findings.findingsTable.findingsTableColumn.vulnerabilitySeverityColumnLabel',
|
||||
{ defaultMessage: 'Severity' }
|
||||
),
|
||||
'package.name': i18n.translate(
|
||||
'xpack.csp.findings.findingsTable.findingsTableColumn.packageNameColumnLabel',
|
||||
{ defaultMessage: 'Package' }
|
||||
),
|
||||
'package.version': i18n.translate(
|
||||
'xpack.csp.findings.findingsTable.findingsTableColumn.packageVersionColumnLabel',
|
||||
{ defaultMessage: 'Version' }
|
||||
),
|
||||
'package.fixed_version': i18n.translate(
|
||||
'xpack.csp.findings.findingsTable.findingsTableColumn.packageFixedVersionColumnLabel',
|
||||
{ defaultMessage: 'Fix Version' }
|
||||
),
|
||||
} as const;
|
||||
|
||||
/**
|
||||
* TODO: use perfected kibana data views
|
||||
*/
|
||||
export const useLatestFindingsDataView = (dataView: string) => {
|
||||
const {
|
||||
data: { dataViews },
|
||||
} = useKibana<CspClientPluginStartDeps>().services;
|
||||
|
||||
const findDataView = async (): Promise<DataView> => {
|
||||
const [dataViewObj] = await dataViews.find(dataView);
|
||||
if (!dataViewObj) {
|
||||
throw new Error(`Data view not found [Name: {${dataView}}]`);
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO: Remove this update logic once https://github.com/elastic/kibana/issues/172615 is resolved
|
||||
*/
|
||||
if (
|
||||
dataView === LATEST_FINDINGS_INDEX_PATTERN ||
|
||||
dataView === LATEST_VULNERABILITIES_INDEX_PATTERN
|
||||
) {
|
||||
let shouldUpdate = false;
|
||||
Object.entries(cloudSecurityFieldLabels).forEach(([field, label]) => {
|
||||
if (
|
||||
!dataViewObj.getFieldAttrs()[field]?.customLabel ||
|
||||
dataViewObj.getFieldAttrs()[field]?.customLabel === field
|
||||
) {
|
||||
dataViewObj.setFieldCustomLabel(field, label);
|
||||
shouldUpdate = true;
|
||||
}
|
||||
});
|
||||
if (shouldUpdate) {
|
||||
await dataViews.updateSavedObject(dataViewObj);
|
||||
}
|
||||
}
|
||||
|
||||
return dataViewObj;
|
||||
};
|
||||
|
||||
return useQuery([`useDataView-${dataView}`], findDataView);
|
||||
};
|
|
@ -33,8 +33,8 @@ jest.mock('./use_kibana', () => ({
|
|||
},
|
||||
}),
|
||||
}));
|
||||
jest.mock('../api/use_latest_findings_data_view', () => ({
|
||||
useLatestFindingsDataView: jest.fn().mockReturnValue({
|
||||
jest.mock('../api/use_data_view', () => ({
|
||||
useDataView: jest.fn().mockReturnValue({
|
||||
status: 'success',
|
||||
data: {
|
||||
id: 'data-view-id',
|
||||
|
|
|
@ -15,7 +15,7 @@ import {
|
|||
import { findingsNavigation } from '../navigation/constants';
|
||||
import { encodeQuery } from '../navigation/query_utils';
|
||||
import { useKibana } from './use_kibana';
|
||||
import { useLatestFindingsDataView } from '../api/use_latest_findings_data_view';
|
||||
import { useDataView } from '../api/use_data_view';
|
||||
|
||||
interface NegatedValue {
|
||||
value: string | number;
|
||||
|
@ -77,12 +77,12 @@ const useNavigate = (pathname: string, dataViewId = SECURITY_DEFAULT_DATA_VIEW_I
|
|||
};
|
||||
|
||||
export const useNavigateFindings = () => {
|
||||
const { data } = useLatestFindingsDataView(LATEST_FINDINGS_INDEX_PATTERN);
|
||||
const { data } = useDataView(LATEST_FINDINGS_INDEX_PATTERN);
|
||||
return useNavigate(findingsNavigation.findings_default.path, data?.id);
|
||||
};
|
||||
|
||||
export const useNavigateFindingsByResource = () => {
|
||||
const { data } = useLatestFindingsDataView(LATEST_FINDINGS_INDEX_PATTERN);
|
||||
const { data } = useDataView(LATEST_FINDINGS_INDEX_PATTERN);
|
||||
return useNavigate(findingsNavigation.findings_by_resource.path, data?.id);
|
||||
};
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@ import React from 'react';
|
|||
import Chance from 'chance';
|
||||
import type { UseQueryResult } from '@tanstack/react-query';
|
||||
import { of } from 'rxjs';
|
||||
import { useLatestFindingsDataView } from '../../common/api/use_latest_findings_data_view';
|
||||
import { useDataView } from '../../common/api/use_data_view';
|
||||
import { Configurations } from './configurations';
|
||||
import { TestProvider } from '../../test/test_provider';
|
||||
import { dataPluginMock } from '@kbn/data-plugin/public/mocks';
|
||||
|
@ -27,7 +27,7 @@ import { expectIdsInDoc } from '../../test/utils';
|
|||
import { PACKAGE_NOT_INSTALLED_TEST_SUBJECT } from '../../components/cloud_posture_page';
|
||||
import { useLicenseManagementLocatorApi } from '../../common/api/use_license_management_locator_api';
|
||||
|
||||
jest.mock('../../common/api/use_latest_findings_data_view');
|
||||
jest.mock('../../common/api/use_data_view');
|
||||
jest.mock('../../common/api/use_setup_status_api');
|
||||
jest.mock('../../common/api/use_license_management_locator_api');
|
||||
jest.mock('../../common/hooks/use_subscription_status');
|
||||
|
@ -197,7 +197,7 @@ describe('<Findings />', () => {
|
|||
}));
|
||||
(source.fetch$ as jest.Mock).mockReturnValue(of({ rawResponse: { hits: { hits: [] } } }));
|
||||
|
||||
(useLatestFindingsDataView as jest.Mock).mockReturnValue({
|
||||
(useDataView as jest.Mock).mockReturnValue({
|
||||
status: 'success',
|
||||
data: createStubDataView({
|
||||
spec: {
|
||||
|
|
|
@ -12,14 +12,14 @@ import { LATEST_FINDINGS_INDEX_PATTERN } from '../../../common/constants';
|
|||
import { useCspSetupStatusApi } from '../../common/api/use_setup_status_api';
|
||||
import { NoFindingsStates } from '../../components/no_findings_states';
|
||||
import { CloudPosturePage } from '../../components/cloud_posture_page';
|
||||
import { useLatestFindingsDataView } from '../../common/api/use_latest_findings_data_view';
|
||||
import { useDataView } from '../../common/api/use_data_view';
|
||||
import { cloudPosturePages, findingsNavigation } from '../../common/navigation/constants';
|
||||
import { LatestFindingsContainer } from './latest_findings/latest_findings_container';
|
||||
import { DataViewContext } from '../../common/contexts/data_view_context';
|
||||
|
||||
export const Configurations = () => {
|
||||
const location = useLocation();
|
||||
const dataViewQuery = useLatestFindingsDataView(LATEST_FINDINGS_INDEX_PATTERN);
|
||||
const dataViewQuery = useDataView(LATEST_FINDINGS_INDEX_PATTERN);
|
||||
const { data: getSetupStatus } = useCspSetupStatusApi();
|
||||
const hasConfigurationFindings =
|
||||
getSetupStatus?.kspm.status === 'indexed' || getSetupStatus?.cspm.status === 'indexed';
|
||||
|
|
|
@ -28,7 +28,7 @@ import {
|
|||
LATEST_FINDINGS_INDEX_DEFAULT_NS,
|
||||
LATEST_FINDINGS_INDEX_PATTERN,
|
||||
} from '../../../../common/constants';
|
||||
import { useLatestFindingsDataView } from '../../../common/api/use_latest_findings_data_view';
|
||||
import { useDataView } from '../../../common/api/use_data_view';
|
||||
import { useKibana } from '../../../common/hooks/use_kibana';
|
||||
import { CspFinding } from '../../../../common/schemas/csp_finding';
|
||||
import { CisKubernetesIcons, CodeBlock, CspFlyoutMarkdown } from './findings_flyout';
|
||||
|
@ -178,7 +178,7 @@ export const OverviewTab = ({
|
|||
ruleFlyoutLink: string;
|
||||
}) => {
|
||||
const { discover } = useKibana().services;
|
||||
const latestFindingsDataView = useLatestFindingsDataView(LATEST_FINDINGS_INDEX_PATTERN);
|
||||
const latestFindingsDataView = useDataView(LATEST_FINDINGS_INDEX_PATTERN);
|
||||
|
||||
const discoverIndexLink = useMemo(
|
||||
() =>
|
||||
|
|
|
@ -11,12 +11,12 @@ import { NoVulnerabilitiesStates } from '../../components/no_vulnerabilities_sta
|
|||
import { useCspSetupStatusApi } from '../../common/api/use_setup_status_api';
|
||||
import { CloudPosturePage } from '../../components/cloud_posture_page';
|
||||
import { findingsNavigation } from '../../common/navigation/constants';
|
||||
import { useLatestFindingsDataView } from '../../common/api/use_latest_findings_data_view';
|
||||
import { useDataView } from '../../common/api/use_data_view';
|
||||
import { LatestVulnerabilitiesContainer } from './latest_vulnerabilities_container';
|
||||
import { DataViewContext } from '../../common/contexts/data_view_context';
|
||||
|
||||
export const Vulnerabilities = () => {
|
||||
const dataViewQuery = useLatestFindingsDataView(LATEST_VULNERABILITIES_INDEX_PATTERN);
|
||||
const dataViewQuery = useDataView(LATEST_VULNERABILITIES_INDEX_PATTERN);
|
||||
|
||||
const getSetupStatus = useCspSetupStatusApi();
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ import {
|
|||
VULN_MGMT_POLICY_TEMPLATE,
|
||||
} from '../../../common/constants';
|
||||
import { useCspSetupStatusApi } from '../../common/api/use_setup_status_api';
|
||||
import { useLatestFindingsDataView } from '../../common/api/use_latest_findings_data_view';
|
||||
import { useDataView } from '../../common/api/use_data_view';
|
||||
import { useSubscriptionStatus } from '../../common/hooks/use_subscription_status';
|
||||
import { createReactQueryResponse } from '../../test/fixtures/react_query';
|
||||
import { useCISIntegrationPoliciesLink } from '../../common/navigation/use_navigate_to_cis_integration_policies';
|
||||
|
@ -28,7 +28,7 @@ import { TestProvider } from '../../test/test_provider';
|
|||
import { useLicenseManagementLocatorApi } from '../../common/api/use_license_management_locator_api';
|
||||
import { createStubDataView } from '@kbn/data-views-plugin/common/stubs';
|
||||
|
||||
jest.mock('../../common/api/use_latest_findings_data_view');
|
||||
jest.mock('../../common/api/use_data_view');
|
||||
jest.mock('../../common/api/use_setup_status_api');
|
||||
jest.mock('../../common/api/use_license_management_locator_api');
|
||||
jest.mock('../../common/hooks/use_subscription_status');
|
||||
|
@ -54,7 +54,7 @@ beforeEach(() => {
|
|||
})
|
||||
);
|
||||
|
||||
(useLatestFindingsDataView as jest.Mock).mockReturnValue({
|
||||
(useDataView as jest.Mock).mockReturnValue({
|
||||
status: 'success',
|
||||
data: createStubDataView({
|
||||
spec: {
|
||||
|
|
|
@ -32,7 +32,7 @@ import { VULNERABILITY_DASHBOARD_CONTAINER } from '../compliance_dashboard/test_
|
|||
import { useVulnerabilityDashboardApi } from '../../common/api/use_vulnerability_dashboard_api';
|
||||
import { mockCnvmDashboardData } from './_mocks_/vulnerability_dashboard.mock';
|
||||
|
||||
jest.mock('../../common/api/use_latest_findings_data_view');
|
||||
jest.mock('../../common/api/use_data_view');
|
||||
jest.mock('../../common/api/use_setup_status_api');
|
||||
jest.mock('../../common/api/use_license_management_locator_api');
|
||||
jest.mock('../../common/hooks/use_subscription_status');
|
||||
|
|
|
@ -12926,20 +12926,6 @@
|
|||
"xpack.csp.findings.findingsFlyout.ruleTab.tagsTitle": "Balises",
|
||||
"xpack.csp.findings.findingsFlyout.ruleTabTitle": "Règle",
|
||||
"xpack.csp.findings.findingsFlyout.tableTabTitle": "Tableau",
|
||||
"xpack.csp.findings.findingsTable.findingsTableColumn.lastCheckedColumnLabel": "Dernière vérification",
|
||||
"xpack.csp.findings.findingsTable.findingsTableColumn.packageFixedVersionColumnLabel": "Version du correctif",
|
||||
"xpack.csp.findings.findingsTable.findingsTableColumn.packageNameColumnLabel": "Pack",
|
||||
"xpack.csp.findings.findingsTable.findingsTableColumn.packageVersionColumnLabel": "Version",
|
||||
"xpack.csp.findings.findingsTable.findingsTableColumn.resourceIdColumnLabel": "ID ressource",
|
||||
"xpack.csp.findings.findingsTable.findingsTableColumn.resourceNameColumnLabel": "Nom de ressource",
|
||||
"xpack.csp.findings.findingsTable.findingsTableColumn.resourceTypeColumnLabel": "Type de ressource",
|
||||
"xpack.csp.findings.findingsTable.findingsTableColumn.resultColumnLabel": "Résultat",
|
||||
"xpack.csp.findings.findingsTable.findingsTableColumn.ruleNameColumnLabel": "Nom de règle",
|
||||
"xpack.csp.findings.findingsTable.findingsTableColumn.ruleNumberColumnLabel": "Numéro de règle",
|
||||
"xpack.csp.findings.findingsTable.findingsTableColumn.ruleSectionColumnLabel": "Section CIS",
|
||||
"xpack.csp.findings.findingsTable.findingsTableColumn.vulnerabilityIdColumnLabel": "Vulnérabilité",
|
||||
"xpack.csp.findings.findingsTable.findingsTableColumn.vulnerabilityScoreColumnLabel": "CVSS",
|
||||
"xpack.csp.findings.findingsTable.findingsTableColumn.vulnerabilitySeverityColumnLabel": "Sévérité",
|
||||
"xpack.csp.findings.gcpIntegration.gcpInputText.credentialFileText": "Chemin vers le fichier JSON qui contient les informations d'identification et la clé utilisés pour souscrire",
|
||||
"xpack.csp.findings.gcpIntegration.gcpInputText.credentialJSONText": "Blob JSON qui contient les informations d'identification et la clé utilisées pour souscrire",
|
||||
"xpack.csp.findings.gcpIntegration.gcpInputText.credentialSelectBoxTitle": "Informations d'identification",
|
||||
|
|
|
@ -12906,20 +12906,6 @@
|
|||
"xpack.csp.findings.findingsFlyout.ruleTab.tagsTitle": "タグ",
|
||||
"xpack.csp.findings.findingsFlyout.ruleTabTitle": "ルール",
|
||||
"xpack.csp.findings.findingsFlyout.tableTabTitle": "表",
|
||||
"xpack.csp.findings.findingsTable.findingsTableColumn.lastCheckedColumnLabel": "最終確認",
|
||||
"xpack.csp.findings.findingsTable.findingsTableColumn.packageFixedVersionColumnLabel": "修正バージョン",
|
||||
"xpack.csp.findings.findingsTable.findingsTableColumn.packageNameColumnLabel": "パッケージ",
|
||||
"xpack.csp.findings.findingsTable.findingsTableColumn.packageVersionColumnLabel": "バージョン",
|
||||
"xpack.csp.findings.findingsTable.findingsTableColumn.resourceIdColumnLabel": "リソースID",
|
||||
"xpack.csp.findings.findingsTable.findingsTableColumn.resourceNameColumnLabel": "リソース名",
|
||||
"xpack.csp.findings.findingsTable.findingsTableColumn.resourceTypeColumnLabel": "リソースタイプ",
|
||||
"xpack.csp.findings.findingsTable.findingsTableColumn.resultColumnLabel": "結果",
|
||||
"xpack.csp.findings.findingsTable.findingsTableColumn.ruleNameColumnLabel": "ルール名",
|
||||
"xpack.csp.findings.findingsTable.findingsTableColumn.ruleNumberColumnLabel": "ルール番号",
|
||||
"xpack.csp.findings.findingsTable.findingsTableColumn.ruleSectionColumnLabel": "CISセクション",
|
||||
"xpack.csp.findings.findingsTable.findingsTableColumn.vulnerabilityIdColumnLabel": "脆弱性",
|
||||
"xpack.csp.findings.findingsTable.findingsTableColumn.vulnerabilityScoreColumnLabel": "CVSS",
|
||||
"xpack.csp.findings.findingsTable.findingsTableColumn.vulnerabilitySeverityColumnLabel": "深刻度",
|
||||
"xpack.csp.findings.gcpIntegration.gcpInputText.credentialFileText": "サブスクライブに使用される資格情報とキーを含むJSONファイルへのパス",
|
||||
"xpack.csp.findings.gcpIntegration.gcpInputText.credentialJSONText": "サブスクライブに使用される資格情報とキーを含むJSON blob",
|
||||
"xpack.csp.findings.gcpIntegration.gcpInputText.credentialSelectBoxTitle": "資格情報",
|
||||
|
|
|
@ -12932,20 +12932,6 @@
|
|||
"xpack.csp.findings.findingsFlyout.ruleTab.tagsTitle": "标签",
|
||||
"xpack.csp.findings.findingsFlyout.ruleTabTitle": "规则",
|
||||
"xpack.csp.findings.findingsFlyout.tableTabTitle": "表",
|
||||
"xpack.csp.findings.findingsTable.findingsTableColumn.lastCheckedColumnLabel": "上次检查时间",
|
||||
"xpack.csp.findings.findingsTable.findingsTableColumn.packageFixedVersionColumnLabel": "修复版本",
|
||||
"xpack.csp.findings.findingsTable.findingsTableColumn.packageNameColumnLabel": "软件包",
|
||||
"xpack.csp.findings.findingsTable.findingsTableColumn.packageVersionColumnLabel": "版本",
|
||||
"xpack.csp.findings.findingsTable.findingsTableColumn.resourceIdColumnLabel": "资源 ID",
|
||||
"xpack.csp.findings.findingsTable.findingsTableColumn.resourceNameColumnLabel": "资源名称",
|
||||
"xpack.csp.findings.findingsTable.findingsTableColumn.resourceTypeColumnLabel": "资源类型",
|
||||
"xpack.csp.findings.findingsTable.findingsTableColumn.resultColumnLabel": "结果",
|
||||
"xpack.csp.findings.findingsTable.findingsTableColumn.ruleNameColumnLabel": "规则名称",
|
||||
"xpack.csp.findings.findingsTable.findingsTableColumn.ruleNumberColumnLabel": "规则编号",
|
||||
"xpack.csp.findings.findingsTable.findingsTableColumn.ruleSectionColumnLabel": "CIS 部分",
|
||||
"xpack.csp.findings.findingsTable.findingsTableColumn.vulnerabilityIdColumnLabel": "漏洞",
|
||||
"xpack.csp.findings.findingsTable.findingsTableColumn.vulnerabilityScoreColumnLabel": "CVSS",
|
||||
"xpack.csp.findings.findingsTable.findingsTableColumn.vulnerabilitySeverityColumnLabel": "严重性",
|
||||
"xpack.csp.findings.gcpIntegration.gcpInputText.credentialFileText": "包含用于订阅的凭据和密钥的 JSON 文件的路径",
|
||||
"xpack.csp.findings.gcpIntegration.gcpInputText.credentialJSONText": "包含用于订阅的凭据和密钥的 JSON Blob",
|
||||
"xpack.csp.findings.gcpIntegration.gcpInputText.credentialSelectBoxTitle": "凭据",
|
||||
|
|
|
@ -403,7 +403,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
await groupSelector.setValue('Resource');
|
||||
|
||||
// Filter bar uses the field's customLabel in the DataView
|
||||
await filterBar.addFilter({ field: 'Rule Name', operation: 'is', value: ruleName1 });
|
||||
await filterBar.addFilter({ field: 'rule.name', operation: 'is', value: ruleName1 });
|
||||
expect(await filterBar.hasFilter('rule.name', ruleName1)).to.be(true);
|
||||
|
||||
const grouping = await findings.findingsGrouping();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue