Skip to content

Commit

Permalink
[Cloud Security] Change update dataview (elastic#183789)
Browse files Browse the repository at this point in the history
## Summary

Removing Update logic for Findings table from Client Side as well as
overriding table column name
  • Loading branch information
animehart authored and rshen91 committed May 29, 2024
1 parent d6e2fc6 commit a203d32
Show file tree
Hide file tree
Showing 14 changed files with 48 additions and 181 deletions.
Original file line number Diff line number Diff line change
@@ -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;
});
};

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -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',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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);
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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';
Expand All @@ -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');
Expand Down Expand Up @@ -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: {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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';
Expand Down Expand Up @@ -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(
() =>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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';
Expand All @@ -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');
Expand All @@ -54,7 +54,7 @@ beforeEach(() => {
})
);

(useLatestFindingsDataView as jest.Mock).mockReturnValue({
(useDataView as jest.Mock).mockReturnValue({
status: 'success',
data: createStubDataView({
spec: {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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');
Expand Down
14 changes: 0 additions & 14 deletions x-pack/plugins/translations/translations/fr-FR.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
14 changes: 0 additions & 14 deletions x-pack/plugins/translations/translations/ja-JP.json
Original file line number Diff line number Diff line change
Expand Up @@ -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": "資格情報",
Expand Down
14 changes: 0 additions & 14 deletions x-pack/plugins/translations/translations/zh-CN.json
Original file line number Diff line number Diff line change
Expand Up @@ -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": "凭据",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down

0 comments on commit a203d32

Please sign in to comment.