diff --git a/pkg/sbombastic-image-vulnerability-scanner/components/SeverityDistribution.vue b/pkg/sbombastic-image-vulnerability-scanner/components/SeverityDistribution.vue new file mode 100644 index 0000000..28a7dcd --- /dev/null +++ b/pkg/sbombastic-image-vulnerability-scanner/components/SeverityDistribution.vue @@ -0,0 +1,52 @@ + + + + {{ t('imageScanner.vulnerabilities.severityDistribution.title') }} + + + + + + + + + + \ No newline at end of file diff --git a/pkg/sbombastic-image-vulnerability-scanner/components/TopSevereVulnerabilitiesChart.vue b/pkg/sbombastic-image-vulnerability-scanner/components/TopSevereVulnerabilitiesChart.vue new file mode 100644 index 0000000..60f5c95 --- /dev/null +++ b/pkg/sbombastic-image-vulnerability-scanner/components/TopSevereVulnerabilitiesChart.vue @@ -0,0 +1,64 @@ + + + + {{ t('imageScanner.vulnerabilities.vulnerabilitiesBySeverityChart.title') }} + + + + + + + + + + \ No newline at end of file diff --git a/pkg/sbombastic-image-vulnerability-scanner/components/common/SevereVulnerabilitiesItem.vue b/pkg/sbombastic-image-vulnerability-scanner/components/common/SevereVulnerabilitiesItem.vue new file mode 100644 index 0000000..2fe6117 --- /dev/null +++ b/pkg/sbombastic-image-vulnerability-scanner/components/common/SevereVulnerabilitiesItem.vue @@ -0,0 +1,84 @@ + + + + {{ vulnerability.cve }} + + + + + {{ vulnerability.impactedImages }} + + + + + + + + + \ No newline at end of file diff --git a/pkg/sbombastic-image-vulnerability-scanner/detail/sbombastic.rancher.io.vexhub.vue b/pkg/sbombastic-image-vulnerability-scanner/detail/sbombastic.rancher.io.vexhub.vue index 82a0ca5..cf4847c 100644 --- a/pkg/sbombastic-image-vulnerability-scanner/detail/sbombastic.rancher.io.vexhub.vue +++ b/pkg/sbombastic-image-vulnerability-scanner/detail/sbombastic.rancher.io.vexhub.vue @@ -64,7 +64,7 @@ const defaultMastheadProps = computed(() => { - + { .btn.actions { gap: 12px; } + +/* Hide empty labels and annotations section */ +/* TODO: Remove when rancher provides option in their masthead component */ +.masthead:deep(.labels-and-annotations-empty) { + display: none; +} \ No newline at end of file diff --git a/pkg/sbombastic-image-vulnerability-scanner/l10n/en-us.yaml b/pkg/sbombastic-image-vulnerability-scanner/l10n/en-us.yaml index dc2ed0f..f37182c 100644 --- a/pkg/sbombastic-image-vulnerability-scanner/l10n/en-us.yaml +++ b/pkg/sbombastic-image-vulnerability-scanner/l10n/en-us.yaml @@ -99,6 +99,11 @@ imageScanner: vulnerabilities: vulnerabilities vulnerabilities: title: Vulnerabilities + vulnerabilitiesBySeverityChart: + title: Most severe, affecting vulnerabilities + severityDistribution: + title: Severity distribution + subTitle: vulnerabilities in total vexManagement: title: VEX management description: Configure the security scanner to use up-to-date VEX reports. This will prioritize remediation efforts, focusing on vulnerabilities that are confirmed to be exploitable and reducing the noise coming from false positives. diff --git a/pkg/sbombastic-image-vulnerability-scanner/models/sbombastic.rancher.io.vexhub.js b/pkg/sbombastic-image-vulnerability-scanner/models/sbombastic.rancher.io.vexhub.js index 6350964..7a20a25 100644 --- a/pkg/sbombastic-image-vulnerability-scanner/models/sbombastic.rancher.io.vexhub.js +++ b/pkg/sbombastic-image-vulnerability-scanner/models/sbombastic.rancher.io.vexhub.js @@ -1,6 +1,4 @@ import SteveModel from '@shell/plugins/steve/steve-class'; -import { PRODUCT_NAME, PAGE } from "@sbombastic-image-vulnerability-scanner/types"; -import { insertAt } from '@shell/utils/array'; export default class SbombasticRancherIoVexhub extends SteveModel { get _availableActions() { @@ -57,18 +55,6 @@ export default class SbombasticRancherIoVexhub extends SteveModel { return !this.spec?.enabled; } - get listLocation() { - return { name: `c-cluster-${PRODUCT_NAME}-${PAGE.VEX_MANAGEMENT}`, }; - } - - get doneOverride() { - return this.listLocation; - } - - get parentLocationOverride() { - return this.listLocation; - } - get fullDetailPageOverride() { return true; } diff --git a/pkg/sbombastic-image-vulnerability-scanner/pages/c/_cluster/sbombastic-image-vulnerability-scanner/Vulnerabilities.vue b/pkg/sbombastic-image-vulnerability-scanner/pages/c/_cluster/sbombastic-image-vulnerability-scanner/Vulnerabilities.vue index 6c0294a..27dbd41 100644 --- a/pkg/sbombastic-image-vulnerability-scanner/pages/c/_cluster/sbombastic-image-vulnerability-scanner/Vulnerabilities.vue +++ b/pkg/sbombastic-image-vulnerability-scanner/pages/c/_cluster/sbombastic-image-vulnerability-scanner/Vulnerabilities.vue @@ -1,38 +1,73 @@ - + Vulnerabilities - - + + + - @@ -47,19 +82,18 @@ align-self: stretch; } - .header { + .header-section { display: flex; align-items: flex-start; gap: 24px; align-self: stretch; } - .charts { - /* layout */ - align-items: center; + .summary-section { + display: flex; + min-width: 912px; + align-items: flex-start; align-self: stretch; - padding: 4px 48px; - /* style */ border-radius: 6px; border: 1px solid #DCDEE7; background: #FFF;