Skip to content

Commit b431638

Browse files
animehartkibanamachinealexreal1314
authored
[Cloud Security] Update Vulnerability Flyout to match Security Solution Flyout (#218515)
## Summary This PR covers both, changing the way we render Vulnerability Flyout as well as Updating the UI for the Vulnerability flyout. This PR also combines both UI updates for Vulnerability Flyout ( one of the Expandable flyout and the other for supporting multiple value for a given fields) Now Vulnerability flyout will have similar looks to other Flyout from Security Solution and instead of rendering it normally, we are using Expandable API hook to call what Flyout it supposed to render https://github.com/user-attachments/assets/898a1f12-be6f-4f78-9e9f-3ac8af2a153d --------- Co-authored-by: kibanamachine <[email protected]> Co-authored-by: alex prozorov <[email protected]>
1 parent ab77347 commit b431638

File tree

35 files changed

+1692
-1364
lines changed

35 files changed

+1692
-1364
lines changed

.github/CODEOWNERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2640,6 +2640,7 @@ x-pack/solutions/security/plugins/security_solution/public/cloud_security_postur
26402640
x-pack/solutions/security/plugins/security_solution/public/kubernetes @elastic/kibana-cloud-security-posture
26412641
x-pack/solutions/security/plugins/security_solution/server/lib/asset_inventory @elastic/kibana-cloud-security-posture
26422642
x-pack/solutions/security/plugins/security_solution/public/flyout/entity_details/universal_right @elastic/kibana-cloud-security-posture
2643+
/x-pack/solutions/security/plugins/security_solution/public/flyout/csp_details @elastic/kibana-cloud-security-posture
26432644

26442645
## Fleet plugin (co-owned with Fleet team)
26452646
x-pack/platform/plugins/shared/fleet/public/components/cloud_security_posture @elastic/fleet @elastic/kibana-cloud-security-posture

x-pack/platform/plugins/private/translations/translations/fr-FR.json

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15416,22 +15416,11 @@
1541615416
"xpack.csp.vulnerabilities.groupUnit.resource": "{groupCount} {groupCount, plural, =1 {ressource} other {ressources}}",
1541715417
"xpack.csp.vulnerabilities.unit": "{totalCount, plural, =1 {vulnérabilité} other {vulnérabilités}}",
1541815418
"xpack.csp.vulnerabilities.vulnerabilitiesFindingFlyout.flyoutDescriptionList.packageTitle": "Pack",
15419-
"xpack.csp.vulnerabilities.vulnerabilitiesFindingFlyout.flyoutDescriptionList.resourceId": "ID ressource",
15420-
"xpack.csp.vulnerabilities.vulnerabilitiesFindingFlyout.flyoutDescriptionList.resourceName": "Nom de ressource",
1542115419
"xpack.csp.vulnerabilities.vulnerabilitiesFindingFlyout.flyoutDescriptionList.versionTitle": "Version",
1542215420
"xpack.csp.vulnerabilities.vulnerabilityFindingFlyout.jsonTabLabel": "JSON",
15423-
"xpack.csp.vulnerabilities.vulnerabilityFindingFlyout.loadingAriaLabel": "Chargement",
1542415421
"xpack.csp.vulnerabilities.vulnerabilityFindingFlyout.overviewTabLabel": "Aperçu",
1542515422
"xpack.csp.vulnerabilities.vulnerabilityFindingFlyout.tableTabLabel": "Tableau",
15426-
"xpack.csp.vulnerabilities.vulnerabilityOverviewTab.alertsTitle": "Alertes",
15427-
"xpack.csp.vulnerabilities.vulnerabilityOverviewTab.descriptionTitle": "Description",
1542815423
"xpack.csp.vulnerabilities.vulnerabilityOverviewTab.emptyFixesMessage": "Aucun correctif n'est disponible pour l'instant.",
15429-
"xpack.csp.vulnerabilities.vulnerabilityOverviewTab.fixes": "Corrigé par",
15430-
"xpack.csp.vulnerabilities.vulnerabilityOverviewTab.vendorTitle": "Fournisseur",
15431-
"xpack.csp.vulnerabilities.vulnerabilityOverviewTab.vulnerabilityScores": "Scores de vulnérabilité",
15432-
"xpack.csp.vulnerabilities.vulnerabilityOverviewTile.cvsScore": "CVSS",
15433-
"xpack.csp.vulnerabilities.vulnerabilityOverviewTile.dataSource": "Source de données",
15434-
"xpack.csp.vulnerabilities.vulnerabilityOverviewTile.publishedDateText": "{date}",
1543515424
"xpack.csp.vulnerabilitiesByResource.severityMap.tooltipTitle": "Carte des degrés de gravité",
1543615425
"xpack.csp.vulnerability_dashboard.cspPageTemplate.pageTitle": "Gestion des vulnérabilités natives du cloud",
1543715426
"xpack.csp.vulnerabilityDashboard.trendGraphChart.accountsDropDown.option.allTitle": "Tous",

x-pack/platform/plugins/private/translations/translations/ja-JP.json

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15397,22 +15397,11 @@
1539715397
"xpack.csp.vulnerabilities.groupUnit.resource": "{groupCount} {groupCount, plural, other {個のリソース}}",
1539815398
"xpack.csp.vulnerabilities.unit": "{totalCount, plural, other {脆弱性}}",
1539915399
"xpack.csp.vulnerabilities.vulnerabilitiesFindingFlyout.flyoutDescriptionList.packageTitle": "パッケージ",
15400-
"xpack.csp.vulnerabilities.vulnerabilitiesFindingFlyout.flyoutDescriptionList.resourceId": "リソースID",
15401-
"xpack.csp.vulnerabilities.vulnerabilitiesFindingFlyout.flyoutDescriptionList.resourceName": "リソース名",
1540215400
"xpack.csp.vulnerabilities.vulnerabilitiesFindingFlyout.flyoutDescriptionList.versionTitle": "Version",
1540315401
"xpack.csp.vulnerabilities.vulnerabilityFindingFlyout.jsonTabLabel": "JSON",
15404-
"xpack.csp.vulnerabilities.vulnerabilityFindingFlyout.loadingAriaLabel": "読み込み中",
1540515402
"xpack.csp.vulnerabilities.vulnerabilityFindingFlyout.overviewTabLabel": "概要",
1540615403
"xpack.csp.vulnerabilities.vulnerabilityFindingFlyout.tableTabLabel": "表",
15407-
"xpack.csp.vulnerabilities.vulnerabilityOverviewTab.alertsTitle": "アラート",
15408-
"xpack.csp.vulnerabilities.vulnerabilityOverviewTab.descriptionTitle": "説明",
1540915404
"xpack.csp.vulnerabilities.vulnerabilityOverviewTab.emptyFixesMessage": "まだ利用可能な修正はありません。",
15410-
"xpack.csp.vulnerabilities.vulnerabilityOverviewTab.fixes": "修正者",
15411-
"xpack.csp.vulnerabilities.vulnerabilityOverviewTab.vendorTitle": "ベンダー",
15412-
"xpack.csp.vulnerabilities.vulnerabilityOverviewTab.vulnerabilityScores": "脆弱性スコア",
15413-
"xpack.csp.vulnerabilities.vulnerabilityOverviewTile.cvsScore": "CVSS",
15414-
"xpack.csp.vulnerabilities.vulnerabilityOverviewTile.dataSource": "データソース",
15415-
"xpack.csp.vulnerabilities.vulnerabilityOverviewTile.publishedDateText": "{date}",
1541615405
"xpack.csp.vulnerabilitiesByResource.severityMap.tooltipTitle": "重要度マップ",
1541715406
"xpack.csp.vulnerability_dashboard.cspPageTemplate.pageTitle": "Cloud Native Vulnerability Management",
1541815407
"xpack.csp.vulnerabilityDashboard.trendGraphChart.accountsDropDown.option.allTitle": "すべて",

x-pack/platform/plugins/private/translations/translations/zh-CN.json

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15431,22 +15431,11 @@
1543115431
"xpack.csp.vulnerabilities.groupUnit.resource": "{groupCount} 个{groupCount, plural, other {资源}}",
1543215432
"xpack.csp.vulnerabilities.unit": "{totalCount, plural, other {个漏洞}}",
1543315433
"xpack.csp.vulnerabilities.vulnerabilitiesFindingFlyout.flyoutDescriptionList.packageTitle": "软件包",
15434-
"xpack.csp.vulnerabilities.vulnerabilitiesFindingFlyout.flyoutDescriptionList.resourceId": "资源 ID",
15435-
"xpack.csp.vulnerabilities.vulnerabilitiesFindingFlyout.flyoutDescriptionList.resourceName": "资源名称",
1543615434
"xpack.csp.vulnerabilities.vulnerabilitiesFindingFlyout.flyoutDescriptionList.versionTitle": "版本",
1543715435
"xpack.csp.vulnerabilities.vulnerabilityFindingFlyout.jsonTabLabel": "JSON",
15438-
"xpack.csp.vulnerabilities.vulnerabilityFindingFlyout.loadingAriaLabel": "正在加载",
1543915436
"xpack.csp.vulnerabilities.vulnerabilityFindingFlyout.overviewTabLabel": "概览",
1544015437
"xpack.csp.vulnerabilities.vulnerabilityFindingFlyout.tableTabLabel": "表",
15441-
"xpack.csp.vulnerabilities.vulnerabilityOverviewTab.alertsTitle": "告警",
15442-
"xpack.csp.vulnerabilities.vulnerabilityOverviewTab.descriptionTitle": "描述",
1544315438
"xpack.csp.vulnerabilities.vulnerabilityOverviewTab.emptyFixesMessage": "尚没有修复可用。",
15444-
"xpack.csp.vulnerabilities.vulnerabilityOverviewTab.fixes": "固定方式",
15445-
"xpack.csp.vulnerabilities.vulnerabilityOverviewTab.vendorTitle": "向量",
15446-
"xpack.csp.vulnerabilities.vulnerabilityOverviewTab.vulnerabilityScores": "漏洞分数",
15447-
"xpack.csp.vulnerabilities.vulnerabilityOverviewTile.cvsScore": "CVSS",
15448-
"xpack.csp.vulnerabilities.vulnerabilityOverviewTile.dataSource": "数据源",
15449-
"xpack.csp.vulnerabilities.vulnerabilityOverviewTile.publishedDateText": "{date}",
1545015439
"xpack.csp.vulnerabilitiesByResource.severityMap.tooltipTitle": "严重性映射",
1545115440
"xpack.csp.vulnerability_dashboard.cspPageTemplate.pageTitle": "云原生漏洞管理",
1545215441
"xpack.csp.vulnerabilityDashboard.trendGraphChart.accountsDropDown.option.allTitle": "全部",

x-pack/solutions/security/packages/kbn-cloud-security-posture/public/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,4 @@ export { createMisconfigurationFindingsQuery } from './src/utils/findings_query_
2424
export { ActionableBadge, type MultiValueCellAction } from './src/components/actionable_badge';
2525
export { MultiValueCellPopover } from './src/components/multi_value_cell_popover';
2626
export { findReferenceLink } from './src/utils/find_reference_link.util';
27+
export { getVulnerabilitiesQuery } from './src/utils/findings_query_builders';
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
/*
2+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
3+
* or more contributor license agreements. Licensed under the Elastic License
4+
* 2.0; you may not use this file except in compliance with the Elastic License
5+
* 2.0.
6+
*/
7+
import { useQuery } from '@tanstack/react-query';
8+
import { useKibana } from '@kbn/kibana-react-plugin/public';
9+
import { lastValueFrom } from 'rxjs';
10+
import type { IKibanaSearchResponse, IKibanaSearchRequest } from '@kbn/search-types';
11+
import {
12+
SearchRequest,
13+
SearchResponse,
14+
AggregationsMultiBucketAggregateBase,
15+
AggregationsStringRareTermsBucketKeys,
16+
} from '@elastic/elasticsearch/lib/api/types';
17+
import type { CspVulnerabilityFinding } from '@kbn/cloud-security-posture-common/schema/vulnerabilities/latest';
18+
import type { CoreStart } from '@kbn/core/public';
19+
import {
20+
CDR_3RD_PARTY_RETENTION_POLICY,
21+
CDR_VULNERABILITIES_INDEX_PATTERN,
22+
} from '@kbn/cloud-security-posture-common';
23+
import type { CspClientPluginStartDeps, UseCspOptions } from '../types';
24+
import { showErrorToast } from '../..';
25+
26+
type LatestFindingsRequest = IKibanaSearchRequest<SearchRequest>;
27+
type LatestFindingsResponse = IKibanaSearchResponse<
28+
SearchResponse<CspVulnerabilityFinding, FindingsAggs>
29+
>;
30+
31+
interface FindingsAggs {
32+
count: AggregationsMultiBucketAggregateBase<AggregationsStringRareTermsBucketKeys>;
33+
}
34+
35+
const buildGetVulnerabilityFindingsQuery = ({ query }: UseCspOptions) => ({
36+
index: CDR_VULNERABILITIES_INDEX_PATTERN,
37+
size: 1,
38+
ignore_unavailable: true,
39+
query: buildVulnerabilityFindingsQueryWithFilters(query),
40+
});
41+
42+
const buildVulnerabilityFindingsQueryWithFilters = (query: UseCspOptions['query']) => {
43+
return {
44+
...query,
45+
bool: {
46+
...query?.bool,
47+
filter: [
48+
...(query?.bool?.filter ?? []),
49+
{
50+
range: {
51+
'@timestamp': {
52+
gte: `now-${CDR_3RD_PARTY_RETENTION_POLICY}`,
53+
lte: 'now',
54+
},
55+
},
56+
},
57+
],
58+
},
59+
};
60+
};
61+
62+
export const useVulnerabilityFinding = (options: UseCspOptions) => {
63+
const {
64+
data,
65+
notifications: { toasts },
66+
} = useKibana<CoreStart & CspClientPluginStartDeps>().services;
67+
/**
68+
* We're using useInfiniteQuery in this case to allow the user to fetch more data (if available and up to 10k)
69+
* useInfiniteQuery differs from useQuery because it accumulates and caches a chunk of data from the previous fetches into an array
70+
* it uses the getNextPageParam to know if there are more pages to load and retrieve the position of
71+
* the last loaded record to be used as a from parameter to fetch the next chunk of data.
72+
*/
73+
return useQuery(
74+
['csp_vulnerabilities_findings', { params: options }],
75+
async () => {
76+
const {
77+
rawResponse: { hits },
78+
} = await lastValueFrom(
79+
data.search.search<LatestFindingsRequest, LatestFindingsResponse>({
80+
params: buildGetVulnerabilityFindingsQuery(options) as LatestFindingsRequest['params'],
81+
})
82+
);
83+
return {
84+
result: hits,
85+
};
86+
},
87+
{
88+
keepPreviousData: true,
89+
enabled: options.enabled,
90+
onError: (err: Error) => showErrorToast(toasts, err),
91+
}
92+
);
93+
};

x-pack/solutions/security/packages/kbn-cloud-security-posture/public/src/types.ts

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,11 @@ import type { FleetStart } from '@kbn/fleet-plugin/public';
2222
import type { UsageCollectionStart } from '@kbn/usage-collection-plugin/public';
2323
import { SharePluginStart } from '@kbn/share-plugin/public';
2424
import { SpacesPluginStart } from '@kbn/spaces-plugin/public';
25-
import { CspFinding, RuleResponse } from '@kbn/cloud-security-posture-common';
25+
import {
26+
CspFinding,
27+
CspVulnerabilityFinding,
28+
RuleResponse,
29+
} from '@kbn/cloud-security-posture-common';
2630
import type { estypes } from '@elastic/elasticsearch';
2731
import type { IKibanaSearchResponse, IKibanaSearchRequest } from '@kbn/search-types';
2832

@@ -131,3 +135,32 @@ export interface FindingMisconfigurationFlyoutContentProps {
131135
createRuleFn: (http: HttpSetup) => Promise<RuleResponse>;
132136
isPreviewMode?: boolean;
133137
}
138+
139+
export interface FindingVulnerabilityFlyoutProps extends Record<string, unknown> {
140+
vulnerabilityId: string | string[];
141+
resourceId: string;
142+
packageName: string | string[];
143+
packageVersion: string | string[];
144+
eventId: string;
145+
}
146+
export interface FindingVulnerabilityPanelExpandableFlyoutProps extends FlyoutPanelProps {
147+
key: 'findings-vulnerability-panel';
148+
params: FindingVulnerabilityFlyoutProps;
149+
}
150+
151+
export interface FindingsVulnerabilityFlyoutHeaderProps {
152+
finding: CspVulnerabilityFinding;
153+
}
154+
155+
export interface FindingsVulnerabilityFlyoutContentProps {
156+
finding: CspVulnerabilityFinding;
157+
}
158+
159+
export interface FindingsVulnerabilityFlyoutFooterProps {
160+
createRuleFn: (http: HttpSetup) => Promise<RuleResponse>;
161+
}
162+
163+
export interface FindingVulnerabilityFullFlyoutContentProps {
164+
finding: CspVulnerabilityFinding;
165+
createRuleFn: (http: HttpSetup) => Promise<RuleResponse>;
166+
}

x-pack/solutions/security/packages/kbn-cloud-security-posture/public/src/utils/findings_query_builders.ts

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -240,3 +240,40 @@ export const createMisconfigurationFindingsQuery = (resourceId?: string, ruleId?
240240
},
241241
};
242242
};
243+
244+
/*
245+
The event.id is important in this query because removing it can lead to unintended results—specifically,
246+
if vulnerabilityId = ['a'], the query may return documents where vulnerabilityId is ['a'], ['a', 'b'], and so on.
247+
This happens because the check only verifies if the value exists within the combined string representation.
248+
*/
249+
export const createGetVulnerabilityFindingsQuery = (
250+
vulnerabilityId?: string | string[],
251+
resourceId?: string | string[],
252+
packageName?: string | string[],
253+
packageVersion?: string | string[],
254+
eventId?: string | string[]
255+
) => {
256+
const filters: Array<{ terms: Record<string, string[]> }> = [];
257+
258+
const addTermFilter = (field: string, value?: string | string[]) => {
259+
if (value !== undefined) {
260+
filters.push({
261+
terms: {
262+
[field]: Array.isArray(value) ? value : [value],
263+
},
264+
});
265+
}
266+
};
267+
268+
addTermFilter('vulnerability.id', vulnerabilityId);
269+
addTermFilter('resource.id', resourceId);
270+
addTermFilter('package.name', packageName);
271+
addTermFilter('package.version', packageVersion);
272+
addTermFilter('event.id', eventId);
273+
274+
return {
275+
bool: {
276+
filter: filters,
277+
},
278+
};
279+
};

x-pack/solutions/security/packages/kbn-cloud-security-posture/public/src/utils/is_native_csp_finding.test.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,6 @@ describe('isNativeCspFinding', () => {
5050
dataset: undefined,
5151
},
5252
} as CspFinding;
53-
5453
expect(isNativeCspFinding(findingWithUndefinedDataset)).toBe(false);
5554
});
5655
});

x-pack/solutions/security/packages/kbn-cloud-security-posture/public/src/utils/is_native_csp_finding.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,10 @@
77

88
import { CspFinding, CSP_MISCONFIGURATIONS_DATASET } from '@kbn/cloud-security-posture-common';
99
import { CspVulnerabilityFinding } from '@kbn/cloud-security-posture-common/schema/vulnerabilities/csp_vulnerability_finding';
10-
import { CSP_VULN_DATASET } from './get_vendor_name';
10+
import { CSP_VULN_DATASET, QUALYS_VULN_DATASET, WIZ_VULN_DATASET } from './get_vendor_name';
1111

1212
export const isNativeCspFinding = (finding: CspFinding | CspVulnerabilityFinding) =>
1313
finding.data_stream?.dataset === CSP_MISCONFIGURATIONS_DATASET ||
14-
finding.data_stream?.dataset === CSP_VULN_DATASET;
14+
finding.data_stream?.dataset === CSP_VULN_DATASET ||
15+
finding.data_stream?.dataset === WIZ_VULN_DATASET ||
16+
(finding.data_stream?.dataset?.startsWith(QUALYS_VULN_DATASET) ?? false);

x-pack/solutions/security/plugins/cloud_security_posture/public/common/hooks/use_expandable_flyout_csp.ts

Lines changed: 32 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,13 @@
66
*/
77

88
import { useContext, useCallback, useState } from 'react';
9-
import { CspFinding } from '@kbn/cloud-security-posture-common';
9+
import { CspFinding, CspVulnerabilityFinding } from '@kbn/cloud-security-posture-common';
1010
import { DataTableRecord } from '@kbn/discover-utils';
1111
import { SecuritySolutionContext } from '../../application/security_solution_context';
1212

13-
export const useExpandableFlyoutCsp = () => {
13+
export const useExpandableFlyoutCsp = (
14+
flyoutType: 'misconfiguration' | 'vulnerability' = 'misconfiguration'
15+
) => {
1416
const [expandedDoc, setExpandedDoc] = useState<DataTableRecord | undefined>(undefined);
1517
const securitySolutionContext = useContext(SecuritySolutionContext);
1618

@@ -34,18 +36,36 @@ export const useExpandableFlyoutCsp = () => {
3436
setFlyoutCloseCallback(setExpandedDoc);
3537

3638
const onExpandDocClick = (record?: DataTableRecord | undefined) => {
39+
let finding;
3740
if (record) {
38-
const finding = record?.raw?._source as unknown as CspFinding;
39-
setExpandedDoc(record);
40-
openFlyout({
41-
right: {
42-
id: 'findings-misconfiguration-panel',
43-
params: {
44-
resourceId: finding.resource.id,
45-
ruleId: finding.rule.id,
41+
if (flyoutType === 'vulnerability') {
42+
finding = record?.raw?._source as unknown as CspVulnerabilityFinding;
43+
setExpandedDoc(record);
44+
openFlyout({
45+
right: {
46+
id: 'findings-vulnerability-panel',
47+
params: {
48+
vulnerabilityId: finding?.vulnerability?.id,
49+
resourceId: finding?.resource?.id,
50+
packageName: finding?.package?.name,
51+
packageVersion: finding?.package?.version,
52+
eventId: finding?.event?.id,
53+
},
4654
},
47-
},
48-
});
55+
});
56+
} else {
57+
finding = record?.raw?._source as unknown as CspFinding;
58+
setExpandedDoc(record);
59+
openFlyout({
60+
right: {
61+
id: 'findings-misconfiguration-panel',
62+
params: {
63+
resourceId: finding.resource.id,
64+
ruleId: finding.rule.id,
65+
},
66+
},
67+
});
68+
}
4969
} else {
5070
closeFlyout();
5171
setExpandedDoc(undefined);

x-pack/solutions/security/plugins/cloud_security_posture/public/components/cloud_security_data_table/cloud_security_data_table.tsx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,8 @@ export interface CloudSecurityDataTableProps {
101101
* Specify if distribution bar is shown on data table, used to calculate height of data table in virtualized mode
102102
*/
103103
hasDistributionBar?: boolean;
104+
/* Specify Flyout type so the expandable API hook knows what parameter it uses to call the flout */
105+
flyoutType?: 'misconfiguration' | 'vulnerability';
104106
}
105107

106108
export const CloudSecurityDataTable = ({
@@ -118,6 +120,7 @@ export const CloudSecurityDataTable = ({
118120
createRuleFn,
119121
columnHeaders,
120122
hasDistributionBar = true,
123+
flyoutType = 'misconfiguration',
121124
...rest
122125
}: CloudSecurityDataTableProps) => {
123126
const {
@@ -247,7 +250,7 @@ export const CloudSecurityDataTable = ({
247250
return customCellRenderer(rows);
248251
}, [customCellRenderer, rows]);
249252

250-
const { expandedDoc, onExpandDocClick } = useExpandableFlyoutCsp();
253+
const { expandedDoc, onExpandDocClick } = useExpandableFlyoutCsp(flyoutType);
251254

252255
if (!onExpandDocClick) {
253256
return <></>;
@@ -325,7 +328,7 @@ export const CloudSecurityDataTable = ({
325328
height: computeDataTableRendering.wrapperHeight,
326329
}}
327330
>
328-
<EuiProgress size="xs" color="accent" style={loadingStyle} />
331+
<EuiProgress size="xs" color="accent" css={loadingStyle} />
329332
<UnifiedDataTable
330333
key={computeDataTableRendering.mode}
331334
className={styles.gridStyle}

0 commit comments

Comments
 (0)