diff --git a/locales/en.json b/locales/en.json index 53a4baff6..787e6bed0 100644 --- a/locales/en.json +++ b/locales/en.json @@ -1,4 +1,5 @@ { + "CVEsReport.filters.advisoryAvailable": "{prefix} advisory {values}", "CVEsReport.filters.businessRisk": "{prefix} business risk of {values}", "CVEsReport.filters.osVersion": "{prefix} which apply to {values}", "CVEsReport.filters.securityRule": "{prefix} {values}", @@ -8,11 +9,13 @@ "CVEsReport.subheaderExploit": "Of the identified CVEs, {knownExploitCount, plural, one {# CVE} other {# CVEs}} {knownExploitCount, plural, one {has} other {have}} a known exploit.", "actions": "Actions", "advisory": "Advisory", + "advisoryColumnTooltip": "CVEs with the Security rule label will appear in this list regardless of whether or not an advisory is available. For standard CVEs, advisories may not exist for all major/minor versions of RHEL. Click on the CVE to determine which OS versions have supported advisories.", "advisoryName": "Advisory name", "advisoryTooltip": "An advisory is not available. For more information, view this CVE in the {link}", "affectsSystems": "Systems", "ansibleRemediationTooltip": "You can create Ansible Playbooks and remediate your systems with Remediation application", "associatedCves": "Associated CVEs:", + "available": "Available", "businessRisk": "Business risk", "businessRiskHighToLow": "Business risk: High to Low", "businessRiskLowToHigh": "Business risk: Low to High", @@ -109,7 +112,8 @@ "emptyState.notConnected.buttonText": "Learn how to activate the Insights client", "emptyState.notConnected.titleText": "This system isn’t connected to Insights yet", "emptyState.prodSecLink": "Red Hat Product Security", - "emptyState.thereShouldBeCVE": "As of today, Insights Vulnerability shows CVEs with Errata. It is possible the CVE you are searching for does not yet have an associated Errata. Please check the {cveDatabaseLink} or if you would like more information, contact {prodSecLink}", + "emptyState.thereShouldBeCVE": "Currently, you are only viewing CVEs with Errata. It is possible the CVE you are searching for does not yet have an associated Errata. Please adjust your settings and search again. Please check the {cveDatabaseLink} or if you would like more information, contact {prodSecLink}", + "emptyState.thereShouldBeCVE.noErrata": "Please check the {cveDatabaseLink} or if you would like more information, contact {prodSecLink}", "emptyState.thisSystemShouldHaveCVEs": "If you think this system has applicable CVEs or would like more information, contact {prodSecLink}.", "emptyStateSystem.enableAnalysis": "Enable Vulnerability analysis", "emptyStateSystemDisabled.body": "Vulnerability analysis on this system has been disabled. It is not being evaluated for potential vulnerabilities by Red Hat Insights.", @@ -156,6 +160,7 @@ "filter.withoutSecurityRule": "Does not have security rule", "filterByAffectedSystems": "Filter by {count, plural, =-1 {affected systems} one {# system} other {# systems}}", "hasKnownExploit": "Has a known exploit", + "hideCvesWithoutAdvisories": "Hide CVEs without Advisories", "high": "High", "impactList.critical": "Critical", "impactList.high": "High", @@ -282,6 +287,7 @@ "selectPage": "Select page ({count, plural, one {# item} other {# items}})", "severityHighToLow": "Severity: High to Low", "severityLowToHigh": "Severity: Low to High", + "showCvesWithoutAdvisories": "Show CVEs without Advisories", "status": "Status", "systemKebab.disableAnalysis": "Disable Vulnerability analysis on {count, plural, one {system} other {systems}}", "systemKebab.enableAnalysis": "Enable Vulnerability analysis on {count, plural, one {system} other {systems}}", diff --git a/package-lock.json b/package-lock.json index 67d189429..2c7aa78b3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,7 +21,7 @@ "@redhat-cloud-services/frontend-components-translations": "^3.2.4", "@redhat-cloud-services/frontend-components-utilities": "^3.7.0", "@redhat-cloud-services/host-inventory-client": "^1.0.116", - "@redhat-cloud-services/vulnerabilities-client": "^1.0.116", + "@redhat-cloud-services/vulnerabilities-client": "^1.2.5", "@scalprum/react-core": "^0.1.9", "@unleash/proxy-client-react": "^3.6.0", "axios": "^1.4.0", @@ -5092,19 +5092,20 @@ "integrity": "sha512-1aqJcgQZq4uih+LxRpVJQblt2x4o/hlrqSZMYFhWyTLgnVNhJ8Y7B5pwoVjpA5PCE1fBNahrydVwugEKMsDDtg==" }, "node_modules/@redhat-cloud-services/vulnerabilities-client": { - "version": "1.0.116", - "resolved": "https://registry.npmjs.org/@redhat-cloud-services/vulnerabilities-client/-/vulnerabilities-client-1.0.116.tgz", - "integrity": "sha512-jEr5rvAdrBmsxWX+KkU6fE1OVVimnopmrABEXnU7gjG0LP5PUM6G8FNJNNnhm03KVAL9HLJuJJopXOXKKv6W1A==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@redhat-cloud-services/vulnerabilities-client/-/vulnerabilities-client-1.2.5.tgz", + "integrity": "sha512-A/dgGs8vnP+KGCwUv8Go/euqyNZqF7AWmL2S8tMumrrSQQqa1gNADb/wHN/9RWPUzLg9MFOcd2NHcVNs8vgdeA==", "dependencies": { - "axios": "^0.21.1" + "axios": "^0.27.2" } }, "node_modules/@redhat-cloud-services/vulnerabilities-client/node_modules/axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", "dependencies": { - "follow-redirects": "^1.14.0" + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" } }, "node_modules/@rollup/plugin-commonjs": { @@ -30605,19 +30606,20 @@ "integrity": "sha512-1aqJcgQZq4uih+LxRpVJQblt2x4o/hlrqSZMYFhWyTLgnVNhJ8Y7B5pwoVjpA5PCE1fBNahrydVwugEKMsDDtg==" }, "@redhat-cloud-services/vulnerabilities-client": { - "version": "1.0.116", - "resolved": "https://registry.npmjs.org/@redhat-cloud-services/vulnerabilities-client/-/vulnerabilities-client-1.0.116.tgz", - "integrity": "sha512-jEr5rvAdrBmsxWX+KkU6fE1OVVimnopmrABEXnU7gjG0LP5PUM6G8FNJNNnhm03KVAL9HLJuJJopXOXKKv6W1A==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@redhat-cloud-services/vulnerabilities-client/-/vulnerabilities-client-1.2.5.tgz", + "integrity": "sha512-A/dgGs8vnP+KGCwUv8Go/euqyNZqF7AWmL2S8tMumrrSQQqa1gNADb/wHN/9RWPUzLg9MFOcd2NHcVNs8vgdeA==", "requires": { - "axios": "^0.21.1" + "axios": "^0.27.2" }, "dependencies": { "axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", "requires": { - "follow-redirects": "^1.14.0" + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" } } } diff --git a/package.json b/package.json index d6d653f0d..9c5333ad1 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "@redhat-cloud-services/frontend-components-translations": "^3.2.4", "@redhat-cloud-services/frontend-components-utilities": "^3.7.0", "@redhat-cloud-services/host-inventory-client": "^1.0.116", - "@redhat-cloud-services/vulnerabilities-client": "^1.0.116", + "@redhat-cloud-services/vulnerabilities-client": "^1.2.5", "@scalprum/react-core": "^0.1.9", "@unleash/proxy-client-react": "^3.6.0", "axios": "^1.4.0", diff --git a/src/Components/PresentationalComponents/EmptyStates/__snapshots__/EmptyState.test.js.snap b/src/Components/PresentationalComponents/EmptyStates/__snapshots__/EmptyState.test.js.snap index e1e45748b..3d2dfb08a 100644 --- a/src/Components/PresentationalComponents/EmptyStates/__snapshots__/EmptyState.test.js.snap +++ b/src/Components/PresentationalComponents/EmptyStates/__snapshots__/EmptyState.test.js.snap @@ -170,7 +170,7 @@ exports[`Empty states should render EmptyStateNoCVEs 1`] = ` - As of today, Insights Vulnerability shows CVEs with Errata. It is possible the CVE you are searching for does not yet have an associated Errata. Please check the + Currently, you are only viewing CVEs with Errata. It is possible the CVE you are searching for does not yet have an associated Errata. Please adjust your settings and search again. Please check the { + let { advisory_available: currentValue } = currentFilter; + + const filterByAdvisoryAvailability = values => { + apply({ + advisory_available: values.length > 0 ? values?.join(',') : undefined, + page: 1 + }); + }; + + return { + label: intl.formatMessage(messages.advisory), + type: conditionalFilterType.checkbox, + key: 'advisory_available', + filterValues: { + onChange: (event, value) => { + filterByAdvisoryAvailability(value); + }, + items: ADVISORY_AVAILABILITY_FILTER_OPTIONS.map(({ label, value }) => ({ label, value })), + value: currentValue?.split(',') + } + }; +}; + +export default AdvisoryAvailabilityFilter; diff --git a/src/Components/SmartComponents/CVEs/CVEs.js b/src/Components/SmartComponents/CVEs/CVEs.js index 11621befe..735358533 100644 --- a/src/Components/SmartComponents/CVEs/CVEs.js +++ b/src/Components/SmartComponents/CVEs/CVEs.js @@ -35,7 +35,13 @@ export const CVEs = ({ rbac }) => { const [CveBusinessRiskModal, setBusinessRiskModal] = useState(() => () => null); const [isFirstLoad, setFirstLoad] = useState(true); - const [[canEditStatusOrBusinessRisk, canEditPairStatus, canExport, canReadVulnerabilityResults], isRbacLoading] = rbac; + const [[ + canEditStatusOrBusinessRisk, + canEditPairStatus, + canExport, + canReadVulnerabilityResults, + canToggleCvesWithoutErrata + ], isRbacLoading] = rbac; const cveList = useSelector( ({ CVEsStore }) => CVEsStore.cveList @@ -132,7 +138,7 @@ export const CVEs = ({ rbac }) => { if (!cves.errors) { return ( - isRbacLoading ? : canReadVulnerabilityResults ? + isRbacLoading ? : canReadVulnerabilityResults ? ( { } }} > - - + + - { ColumnManagementModal } + {ColumnManagementModal} @@ -175,7 +182,7 @@ export const CVEs = ({ rbac }) => { ) : ); } else { - return ; + return ; } }; @@ -188,7 +195,8 @@ const CVEsWithRbac = () => { PERMISSIONS.setCveStatusAndBusinessRisk, PERMISSIONS.setPairStatus, PERMISSIONS.basicReporting, - PERMISSIONS.readVulnerabilityResults + PERMISSIONS.readVulnerabilityResults, + PERMISSIONS.toggleCvesWithoutErrata ]); return ; diff --git a/src/Components/SmartComponents/CVEs/CVEsTable.js b/src/Components/SmartComponents/CVEs/CVEsTable.js index ec439760d..05b62c138 100644 --- a/src/Components/SmartComponents/CVEs/CVEsTable.js +++ b/src/Components/SmartComponents/CVEs/CVEsTable.js @@ -16,7 +16,14 @@ const CVEsTableWithContext = ({ context, header, canEditStatusOrBusinessRisk }) cells: [ { props: { colSpan: header?.length }, - title: + title: + } ] }]); diff --git a/src/Components/SmartComponents/CVEs/CVEsTableToolbar.js b/src/Components/SmartComponents/CVEs/CVEsTableToolbar.js index 752a7ec1e..cd73485a6 100644 --- a/src/Components/SmartComponents/CVEs/CVEsTableToolbar.js +++ b/src/Components/SmartComponents/CVEs/CVEsTableToolbar.js @@ -1,5 +1,5 @@ /* eslint-disable camelcase */ -import React, { useState } from 'react'; +import React, { useEffect, useState } from 'react'; import propTypes from 'prop-types'; import { injectIntl } from 'react-intl'; import messages from '../../../Messages'; @@ -15,6 +15,7 @@ import securityRuleFilter from '../../PresentationalComponents/Filters/PrimaryTo import businessRiskFilter from '../../PresentationalComponents/Filters/PrimaryToolbarFilters/BusinessRiskFilter'; import knownExploitFilter from '../../PresentationalComponents/Filters/PrimaryToolbarFilters/KnownExploitFilter'; import statusFilter from '../../PresentationalComponents/Filters/PrimaryToolbarFilters/StatusFilter'; +import advisoryAvailabilityFilter from '../../PresentationalComponents/Filters/PrimaryToolbarFilters/AdvisoryAvailabilityFilter'; import { kebabItemDownloadPDF } from '../../PresentationalComponents/Kebab/KebabItems'; import DownloadCVEsReport from '../Reports/DownloadCVEsReport'; import { @@ -32,15 +33,25 @@ import { RULE_PRESENCE_OPTIONS } from '../../../Helpers/constants'; import { fetchCvesIds } from '../../../Store/Actions/Actions'; +import { setCvesWithoutErrata } from '../../../Helpers/APIHelper'; -const CVEsTableToolbarWithContext = ({ context, canEditStatusOrBusinessRisk, canExport, intl }) => { +const CVEsTableToolbarWithContext = ({ context, canEditStatusOrBusinessRisk, canExport, canToggleCvesWithoutErrata, intl }) => { const [exportPDF, setExportPDF] = useState(false); const { cves, params, methods, selectedCves } = context; + const { isLoading } = cves; const { filter } = params; const selectedCvesCount = selectedCves && selectedCves.length; + const [showCvesWithoutErrata, setShowCvesWithoutErrata] = useState(false); + + useEffect(() => { + if (!isLoading) { + setShowCvesWithoutErrata(cves?.meta?.cves_without_errata); + } + }, [cves?.meta?.cves_without_errata, isLoading]); + const selectOptions = selectAllCheckbox({ selectedItems: selectedCves, selectorHandler: methods.selectCves, @@ -86,7 +97,18 @@ const CVEsTableToolbarWithContext = ({ context, canEditStatusOrBusinessRisk, can { label: intl.formatMessage(messages.columnManagementModalTitle), onClick: () => methods.setColumnManagementModalOpen(true) - } + }, + ...canToggleCvesWithoutErrata ? [( + showCvesWithoutErrata ? + { + label: intl.formatMessage(messages.hideCvesWithoutAdvisories), + onClick: () => setCvesWithoutErrata(false).then(() => methods.apply({ page: 1 })) + } : + { + label: intl.formatMessage(messages.showCvesWithoutAdvisories), + onClick: () => setCvesWithoutErrata(true).then(() => methods.apply({ page: 1 })) + } + )] : [] ]; return ( @@ -128,7 +150,8 @@ const CVEsTableToolbarWithContext = ({ context, canEditStatusOrBusinessRisk, can businessRiskFilter(methods.apply, params), affectingFilter(methods.apply, params), publishDateFilter(methods.apply, params), - statusFilter(methods.apply, params) + statusFilter(methods.apply, params), + ...showCvesWithoutErrata ? [advisoryAvailabilityFilter(methods.apply, params)] : [] ] }} activeFiltersConfig={{ @@ -161,7 +184,8 @@ CVEsTableToolbarWithContext.propTypes = { context: propTypes.object, intl: propTypes.object, canEditStatusOrBusinessRisk: propTypes.bool, - canExport: propTypes.bool + canExport: propTypes.bool, + canToggleCvesWithoutErrata: propTypes.bool }; CVEsTableToolbarWithContext.defaultProps = { diff --git a/src/Components/SmartComponents/CVEs/__snapshots__/CVEs.test.js.snap b/src/Components/SmartComponents/CVEs/__snapshots__/CVEs.test.js.snap index 73275c954..5dcbfff86 100644 --- a/src/Components/SmartComponents/CVEs/__snapshots__/CVEs.test.js.snap +++ b/src/Components/SmartComponents/CVEs/__snapshots__/CVEs.test.js.snap @@ -129,6 +129,32 @@ exports[`CVEs Should render without props 1`] = ` [Function], ], }, + { + "isShownByDefault": true, + "key": "advisory_available", + "title": + Advisory + + + + , + "transforms": [ + [Function], + [Function], + ], + }, ] } applyColumns={[Function]} @@ -398,6 +424,11 @@ exports[`CVEs Should render without props 1`] = ` On-hold , }, + { + "title": + Not available + , + }, ], "exposed_systems_count": 1, "id": "CVE-2019-6454", @@ -3844,6 +3875,32 @@ exports[`CVEs Should render without props 1`] = ` [Function], ], }, + { + "isShownByDefault": true, + "key": "advisory_available", + "title": + Advisory + + + + , + "transforms": [ + [Function], + [Function], + ], + }, ] } > @@ -3912,6 +3969,11 @@ exports[`CVEs Should render without props 1`] = ` On-hold , }, + { + "title": + Not available + , + }, ], "exposed_systems_count": 1, "id": "CVE-2019-6454", @@ -4035,6 +4097,32 @@ exports[`CVEs Should render without props 1`] = ` [Function], ], }, + { + "isShownByDefault": true, + "key": "advisory_available", + "title": + Advisory + + + + , + "transforms": [ + [Function], + [Function], + ], + }, ] } > @@ -4122,6 +4210,32 @@ exports[`CVEs Should render without props 1`] = ` [Function], ], }, + { + "isShownByDefault": true, + "key": "advisory_available", + "title": + Advisory + + + + , + "transforms": [ + [Function], + [Function], + ], + }, ] } className="" @@ -4204,6 +4318,11 @@ exports[`CVEs Should render without props 1`] = ` On-hold , }, + { + "title": + Not available + , + }, ], "exposed_systems_count": 1, "id": "CVE-2019-6454", @@ -4751,6 +4870,7 @@ exports[`CVEs Should render without props 1`] = ` "transforms": [ [Function], [Function], + [Function], ], }, "data": undefined, @@ -4784,16 +4904,88 @@ exports[`CVEs Should render without props 1`] = ` }, "header": { "formatters": [], - "label": "", + "label": + Advisory + + + + , "transforms": [ [Function], [Function], [Function], + [Function], ], }, "property": "column-9", "props": { "data-key": 9, + "data-label": "column-9", + }, + }, + { + "cell": { + "formatters": [ + [Function], + ], + "transforms": [ + [Function], + [Function], + ], + }, + "data": undefined, + "extraParams": { + "actionResolver": [Function], + "actions": undefined, + "actionsToggle": undefined, + "allRowsExpanded": false, + "allRowsSelected": false, + "areActionsDisabled": undefined, + "canCollapseAll": true, + "canSelectAll": false, + "canSortFavorites": true, + "collapseAllAriaLabel": "", + "contentId": "expanded-content", + "dropdownDirection": "down", + "dropdownPosition": "right", + "expandId": "expandable-toggle", + "firstUserColumnIndex": 2, + "isHeaderSelectDisabled": false, + "menuAppendTo": "inline", + "onCollapse": [Function], + "onExpand": undefined, + "onFavorite": undefined, + "onRowEdit": undefined, + "onSelect": [Function], + "onSort": [Function], + "rowLabeledBy": "simple-node", + "selectVariant": "checkbox", + "sortBy": {}, + }, + "header": { + "formatters": [], + "label": "", + "transforms": [ + [Function], + [Function], + [Function], + ], + }, + "property": "column-10", + "props": { + "data-key": 10, "data-label": "", }, }, @@ -5383,6 +5575,7 @@ exports[`CVEs Should render without props 1`] = ` "transforms": [ [Function], [Function], + [Function], ], }, "data": undefined, @@ -5416,16 +5609,88 @@ exports[`CVEs Should render without props 1`] = ` }, "header": { "formatters": [], - "label": "", + "label": + Advisory + + + + , "transforms": [ [Function], [Function], [Function], + [Function], ], }, "property": "column-9", "props": { "data-key": 9, + "data-label": "column-9", + }, + }, + { + "cell": { + "formatters": [ + [Function], + ], + "transforms": [ + [Function], + [Function], + ], + }, + "data": undefined, + "extraParams": { + "actionResolver": [Function], + "actions": undefined, + "actionsToggle": undefined, + "allRowsExpanded": false, + "allRowsSelected": false, + "areActionsDisabled": undefined, + "canCollapseAll": true, + "canSelectAll": false, + "canSortFavorites": true, + "collapseAllAriaLabel": "", + "contentId": "expanded-content", + "dropdownDirection": "down", + "dropdownPosition": "right", + "expandId": "expandable-toggle", + "firstUserColumnIndex": 2, + "isHeaderSelectDisabled": false, + "menuAppendTo": "inline", + "onCollapse": [Function], + "onExpand": undefined, + "onFavorite": undefined, + "onRowEdit": undefined, + "onSelect": [Function], + "onSort": [Function], + "rowLabeledBy": "simple-node", + "selectVariant": "checkbox", + "sortBy": {}, + }, + "header": { + "formatters": [], + "label": "", + "transforms": [ + [Function], + [Function], + [Function], + ], + }, + "property": "column-10", + "props": { + "data-key": 10, "data-label": "", }, }, @@ -5997,6 +6262,7 @@ exports[`CVEs Should render without props 1`] = ` "transforms": [ [Function], [Function], + [Function], ], }, "data": undefined, @@ -6030,16 +6296,88 @@ exports[`CVEs Should render without props 1`] = ` }, "header": { "formatters": [], - "label": "", + "label": + Advisory + + + + , "transforms": [ [Function], [Function], [Function], + [Function], ], }, "property": "column-9", "props": { "data-key": 9, + "data-label": "column-9", + }, + }, + { + "cell": { + "formatters": [ + [Function], + ], + "transforms": [ + [Function], + [Function], + ], + }, + "data": undefined, + "extraParams": { + "actionResolver": [Function], + "actions": undefined, + "actionsToggle": undefined, + "allRowsExpanded": false, + "allRowsSelected": false, + "areActionsDisabled": undefined, + "canCollapseAll": true, + "canSelectAll": false, + "canSortFavorites": true, + "collapseAllAriaLabel": "", + "contentId": "expanded-content", + "dropdownDirection": "down", + "dropdownPosition": "right", + "expandId": "expandable-toggle", + "firstUserColumnIndex": 2, + "isHeaderSelectDisabled": false, + "menuAppendTo": "inline", + "onCollapse": [Function], + "onExpand": undefined, + "onFavorite": undefined, + "onRowEdit": undefined, + "onSelect": [Function], + "onSort": [Function], + "rowLabeledBy": "simple-node", + "selectVariant": "checkbox", + "sortBy": {}, + }, + "header": { + "formatters": [], + "label": "", + "transforms": [ + [Function], + [Function], + [Function], + ], + }, + "property": "column-10", + "props": { + "data-key": 10, "data-label": "", }, }, @@ -6874,26 +7212,244 @@ exports[`CVEs Should render without props 1`] = ` + + + + + + + + + + + + Advisory + + + + , "transforms": [ [Function], [Function], [Function], + [Function], ], }, "property": "column-9", "props": { "data-key": 9, + "data-label": "column-9", + }, + }, + { + "cell": { + "formatters": [ + [Function], + ], + "transforms": [ + [Function], + [Function], + ], + }, + "data": undefined, + "extraParams": { + "actionResolver": [Function], + "actions": undefined, + "actionsToggle": undefined, + "allRowsExpanded": false, + "allRowsSelected": false, + "areActionsDisabled": undefined, + "canCollapseAll": true, + "canSelectAll": false, + "canSortFavorites": true, + "collapseAllAriaLabel": "", + "contentId": "expanded-content", + "dropdownDirection": "down", + "dropdownPosition": "right", + "expandId": "expandable-toggle", + "firstUserColumnIndex": 2, + "isHeaderSelectDisabled": false, + "menuAppendTo": "inline", + "onCollapse": [Function], + "onExpand": undefined, + "onFavorite": undefined, + "onRowEdit": undefined, + "onSelect": [Function], + "onSort": [Function], + "rowLabeledBy": "simple-node", + "selectVariant": "checkbox", + "sortBy": {}, + }, + "header": { + "formatters": [], + "label": "", + "transforms": [ + [Function], + [Function], + [Function], + ], + }, + "property": "column-10", + "props": { + "data-key": 10, "data-label": "", }, }, @@ -7553,6 +8182,11 @@ exports[`CVEs Should render without props 1`] = ` On-hold , }, + { + "title": + Not available + , + }, ], "exposed_systems_count": 1, "id": "CVE-2019-6454", @@ -7651,7 +8285,21 @@ exports[`CVEs Should render without props 1`] = ` On-hold , }, + { + "title": + Not available + , + }, ], + "column-9": { + "formatters": [], + "props": { + "isVisible": true, + }, + "title": + Not available + , + }, "cve-id": { "formatters": [], "props": { @@ -7848,7 +8496,21 @@ exports[`CVEs Should render without props 1`] = ` On-hold , }, + { + "title": + Not available + , + }, ], + "column-9": { + "formatters": [], + "props": { + "isVisible": true, + }, + "title": + Not available + , + }, "cve-id": { "formatters": [], "props": { @@ -8469,7 +9131,80 @@ exports[`CVEs Should render without props 1`] = ` }, "header": { "formatters": [], - "label": "Status", + "label": "Status", + "transforms": [ + [Function], + [Function], + [Function], + [Function], + ], + }, + "property": "status", + "props": { + "data-key": 8, + "data-label": "Status", + }, + }, + { + "cell": { + "formatters": [ + [Function], + ], + "transforms": [ + [Function], + [Function], + [Function], + ], + }, + "data": undefined, + "extraParams": { + "actionResolver": [Function], + "actions": undefined, + "actionsToggle": undefined, + "allRowsExpanded": false, + "allRowsSelected": false, + "areActionsDisabled": undefined, + "canCollapseAll": true, + "canSelectAll": false, + "canSortFavorites": true, + "collapseAllAriaLabel": "", + "contentId": "expanded-content", + "dropdownDirection": "down", + "dropdownPosition": "right", + "expandId": "expandable-toggle", + "firstUserColumnIndex": 2, + "isHeaderSelectDisabled": false, + "menuAppendTo": "inline", + "onCollapse": [Function], + "onExpand": undefined, + "onFavorite": undefined, + "onRowEdit": undefined, + "onSelect": [Function], + "onSort": [Function], + "rowLabeledBy": "simple-node", + "selectVariant": "checkbox", + "sortBy": {}, + }, + "header": { + "formatters": [], + "label": + Advisory + + + + , "transforms": [ [Function], [Function], @@ -8477,10 +9212,10 @@ exports[`CVEs Should render without props 1`] = ` [Function], ], }, - "property": "status", + "property": "column-9", "props": { - "data-key": 8, - "data-label": "Status", + "data-key": 9, + "data-label": "column-9", }, }, { @@ -8531,9 +9266,9 @@ exports[`CVEs Should render without props 1`] = ` [Function], ], }, - "property": "column-9", + "property": "column-10", "props": { - "data-key": 9, + "data-key": 10, "data-label": "", }, }, @@ -8610,7 +9345,21 @@ exports[`CVEs Should render without props 1`] = ` On-hold , }, + { + "title": + Not available + , + }, ], + "column-9": { + "formatters": [], + "props": { + "isVisible": true, + }, + "title": + Not available + , + }, "cve-id": { "formatters": [], "props": { @@ -8831,7 +9580,21 @@ exports[`CVEs Should render without props 1`] = ` On-hold , }, + { + "title": + Not available + , + }, ], + "column-9": { + "formatters": [], + "props": { + "isVisible": true, + }, + "title": + Not available + , + }, "cve-id": { "formatters": [], "props": { @@ -9030,7 +9793,21 @@ exports[`CVEs Should render without props 1`] = ` On-hold , }, + { + "title": + Not available + , + }, ], + "column-9": { + "formatters": [], + "props": { + "isVisible": true, + }, + "title": + Not available + , + }, "cve-id": { "formatters": [], "props": { @@ -9686,6 +10463,7 @@ exports[`CVEs Should render without props 1`] = ` "transforms": [ [Function], [Function], + [Function], ], }, "data": undefined, @@ -9719,16 +10497,88 @@ exports[`CVEs Should render without props 1`] = ` }, "header": { "formatters": [], - "label": "", + "label": + Advisory + + + + , "transforms": [ [Function], [Function], [Function], + [Function], ], }, "property": "column-9", "props": { "data-key": 9, + "data-label": "column-9", + }, + }, + { + "cell": { + "formatters": [ + [Function], + ], + "transforms": [ + [Function], + [Function], + ], + }, + "data": undefined, + "extraParams": { + "actionResolver": [Function], + "actions": undefined, + "actionsToggle": undefined, + "allRowsExpanded": false, + "allRowsSelected": false, + "areActionsDisabled": undefined, + "canCollapseAll": true, + "canSelectAll": false, + "canSortFavorites": true, + "collapseAllAriaLabel": "", + "contentId": "expanded-content", + "dropdownDirection": "down", + "dropdownPosition": "right", + "expandId": "expandable-toggle", + "firstUserColumnIndex": 2, + "isHeaderSelectDisabled": false, + "menuAppendTo": "inline", + "onCollapse": [Function], + "onExpand": undefined, + "onFavorite": undefined, + "onRowEdit": undefined, + "onSelect": [Function], + "onSort": [Function], + "rowLabeledBy": "simple-node", + "selectVariant": "checkbox", + "sortBy": {}, + }, + "header": { + "formatters": [], + "label": "", + "transforms": [ + [Function], + [Function], + [Function], + ], + }, + "property": "column-10", + "props": { + "data-key": 10, "data-label": "", }, }, @@ -9812,7 +10662,21 @@ exports[`CVEs Should render without props 1`] = ` On-hold , }, + { + "title": + Not available + , + }, ], + "column-9": { + "formatters": [], + "props": { + "isVisible": true, + }, + "title": + Not available + , + }, "cve-id": { "formatters": [], "props": { @@ -9979,7 +10843,21 @@ exports[`CVEs Should render without props 1`] = ` On-hold , }, + { + "title": + Not available + , + }, ], + "column-9": { + "formatters": [], + "props": { + "isVisible": true, + }, + "title": + Not available + , + }, "cve-id": { "formatters": [], "props": { @@ -10431,7 +11309,7 @@ exports[`CVEs Should render without props 1`] = ` + + + + + + + + Advisory + + + + , "transforms": [ [Function], [Function], [Function], + [Function], ], }, "property": "column-9", "props": { "data-key": 9, + "data-label": "column-9", + }, + }, + { + "cell": { + "formatters": [ + [Function], + ], + "transforms": [ + [Function], + [Function], + ], + }, + "data": undefined, + "extraParams": { + "actionResolver": [Function], + "actions": undefined, + "actionsToggle": undefined, + "allRowsExpanded": true, + "allRowsSelected": true, + "areActionsDisabled": undefined, + "canCollapseAll": true, + "canSelectAll": false, + "canSortFavorites": true, + "collapseAllAriaLabel": "", + "contentId": "expanded-content", + "dropdownDirection": "down", + "dropdownPosition": "right", + "expandId": "expandable-toggle", + "firstUserColumnIndex": 2, + "isHeaderSelectDisabled": false, + "menuAppendTo": "inline", + "onCollapse": [Function], + "onExpand": undefined, + "onFavorite": undefined, + "onRowEdit": undefined, + "onSelect": [Function], + "onSort": [Function], + "rowLabeledBy": "simple-node", + "selectVariant": "checkbox", + "sortBy": {}, + }, + "header": { + "formatters": [], + "label": "", + "transforms": [ + [Function], + [Function], + [Function], + ], + }, + "property": "column-10", + "props": { + "data-key": 10, "data-label": "", }, }, @@ -3810,6 +4408,11 @@ exports[`CVEs: Should match the snapshot 1`] = ` On-hold , }, + { + "title": + Not available + , + }, ], "exposed_systems_count": 1, "id": "CVE-2019-6454", @@ -3907,7 +4510,21 @@ exports[`CVEs: Should match the snapshot 1`] = ` On-hold , }, + { + "title": + Not available + , + }, ], + "column-9": { + "formatters": [], + "props": { + "isVisible": true, + }, + "title": + Not available + , + }, "cve-id": { "formatters": [], "props": { @@ -4102,7 +4719,21 @@ exports[`CVEs: Should match the snapshot 1`] = ` On-hold , }, + { + "title": + Not available + , + }, ], + "column-9": { + "formatters": [], + "props": { + "isVisible": true, + }, + "title": + Not available + , + }, "cve-id": { "formatters": [], "props": { @@ -4674,10 +5305,66 @@ exports[`CVEs: Should match the snapshot 1`] = ` [Function], ], }, - "property": "business-risk", + "property": "business-risk", + "props": { + "data-key": 7, + "data-label": "Business risk", + }, + }, + { + "cell": { + "formatters": [ + [Function], + ], + "transforms": [ + [Function], + [Function], + [Function], + ], + }, + "data": undefined, + "extraParams": { + "actionResolver": [Function], + "actions": undefined, + "actionsToggle": undefined, + "allRowsExpanded": true, + "allRowsSelected": true, + "areActionsDisabled": undefined, + "canCollapseAll": true, + "canSelectAll": false, + "canSortFavorites": true, + "collapseAllAriaLabel": "", + "contentId": "expanded-content", + "dropdownDirection": "down", + "dropdownPosition": "right", + "expandId": "expandable-toggle", + "firstUserColumnIndex": 2, + "isHeaderSelectDisabled": false, + "menuAppendTo": "inline", + "onCollapse": [Function], + "onExpand": undefined, + "onFavorite": undefined, + "onRowEdit": undefined, + "onSelect": [Function], + "onSort": [Function], + "rowLabeledBy": "simple-node", + "selectVariant": "checkbox", + "sortBy": {}, + }, + "header": { + "formatters": [], + "label": "Status", + "transforms": [ + [Function], + [Function], + [Function], + [Function], + ], + }, + "property": "status", "props": { - "data-key": 7, - "data-label": "Business risk", + "data-key": 8, + "data-label": "Status", }, }, { @@ -4722,7 +5409,24 @@ exports[`CVEs: Should match the snapshot 1`] = ` }, "header": { "formatters": [], - "label": "Status", + "label": + Advisory + + + + , "transforms": [ [Function], [Function], @@ -4730,10 +5434,10 @@ exports[`CVEs: Should match the snapshot 1`] = ` [Function], ], }, - "property": "status", + "property": "column-9", "props": { - "data-key": 8, - "data-label": "Status", + "data-key": 9, + "data-label": "column-9", }, }, { @@ -4784,9 +5488,9 @@ exports[`CVEs: Should match the snapshot 1`] = ` [Function], ], }, - "property": "column-9", + "property": "column-10", "props": { - "data-key": 9, + "data-key": 10, "data-label": "", }, }, @@ -4862,7 +5566,21 @@ exports[`CVEs: Should match the snapshot 1`] = ` On-hold , }, + { + "title": + Not available + , + }, ], + "column-9": { + "formatters": [], + "props": { + "isVisible": true, + }, + "title": + Not available + , + }, "cve-id": { "formatters": [], "props": { @@ -5081,7 +5799,21 @@ exports[`CVEs: Should match the snapshot 1`] = ` On-hold , }, + { + "title": + Not available + , + }, ], + "column-9": { + "formatters": [], + "props": { + "isVisible": true, + }, + "title": + Not available + , + }, "cve-id": { "formatters": [], "props": { @@ -5278,7 +6010,21 @@ exports[`CVEs: Should match the snapshot 1`] = ` On-hold , }, + { + "title": + Not available + , + }, ], + "column-9": { + "formatters": [], + "props": { + "isVisible": true, + }, + "title": + Not available + , + }, "cve-id": { "formatters": [], "props": { @@ -5933,6 +6679,7 @@ exports[`CVEs: Should match the snapshot 1`] = ` "transforms": [ [Function], [Function], + [Function], ], }, "data": undefined, @@ -5966,16 +6713,88 @@ exports[`CVEs: Should match the snapshot 1`] = ` }, "header": { "formatters": [], - "label": "", + "label": + Advisory + + + + , "transforms": [ [Function], [Function], [Function], + [Function], ], }, "property": "column-9", "props": { "data-key": 9, + "data-label": "column-9", + }, + }, + { + "cell": { + "formatters": [ + [Function], + ], + "transforms": [ + [Function], + [Function], + ], + }, + "data": undefined, + "extraParams": { + "actionResolver": [Function], + "actions": undefined, + "actionsToggle": undefined, + "allRowsExpanded": true, + "allRowsSelected": true, + "areActionsDisabled": undefined, + "canCollapseAll": true, + "canSelectAll": false, + "canSortFavorites": true, + "collapseAllAriaLabel": "", + "contentId": "expanded-content", + "dropdownDirection": "down", + "dropdownPosition": "right", + "expandId": "expandable-toggle", + "firstUserColumnIndex": 2, + "isHeaderSelectDisabled": false, + "menuAppendTo": "inline", + "onCollapse": [Function], + "onExpand": undefined, + "onFavorite": undefined, + "onRowEdit": undefined, + "onSelect": [Function], + "onSort": [Function], + "rowLabeledBy": "simple-node", + "selectVariant": "checkbox", + "sortBy": {}, + }, + "header": { + "formatters": [], + "label": "", + "transforms": [ + [Function], + [Function], + [Function], + ], + }, + "property": "column-10", + "props": { + "data-key": 10, "data-label": "", }, }, @@ -6058,7 +6877,21 @@ exports[`CVEs: Should match the snapshot 1`] = ` On-hold , }, + { + "title": + Not available + , + }, ], + "column-9": { + "formatters": [], + "props": { + "isVisible": true, + }, + "title": + Not available + , + }, "cve-id": { "formatters": [], "props": { @@ -6223,7 +7056,21 @@ exports[`CVEs: Should match the snapshot 1`] = ` On-hold , }, + { + "title": + Not available + , + }, ], + "column-9": { + "formatters": [], + "props": { + "isVisible": true, + }, + "title": + Not available + , + }, "cve-id": { "formatters": [], "props": { @@ -6673,7 +7520,7 @@ exports[`CVEs: Should match the snapshot 1`] = `