diff --git a/src/views/Dashboard.vue b/src/views/Dashboard.vue index c0ce9b935..d7247c91e 100644 --- a/src/views/Dashboard.vue +++ b/src/views/Dashboard.vue @@ -44,15 +44,15 @@ -

{{ $t('message.policy_violations') }}

+

{{ $t('message.policy_violations') }}

+
{{$t('message.policy_violations_by_state')}}
- -
+
- +
{{ $t("policy_violation.fails") }}
{{ failViolations }} ({{ failViolationsPercent }}%) @@ -71,6 +71,37 @@
+ + + + +

{{ $t('message.policy_violations') }}

+
{{$t('message.policy_violations_by_classification')}}
+ + +
+ +
+ + +
{{ $t("policy_violation.security") }}
+ {{ securityViolations }} ({{ securityViolationsPercent }}%) + +
+ +
{{ $t("policy_violation.operational") }}
+ {{ operationalViolations }} ({{ operationalViolationsPercent }}%) + +
+ +
{{ $t("policy_violation.license") }}
+ {{ licenseViolations }} ({{ licenseViolationsPercent }}%) + +
+
+
+
+
@@ -286,7 +317,8 @@ import ChartProjectVulnerabilities from "./dashboard/ChartProjectVulnerabilities"; import ChartAuditingFindingsProgress from "./dashboard/ChartAuditingFindingsProgress"; import ChartAuditingViolationsProgress from "./dashboard/ChartAuditingViolationsProgress"; - import ChartPolicyViolations from "./dashboard/ChartPolicyViolations"; + import ChartPolicyViolationsState from "./dashboard/ChartPolicyViolationsState"; + import ChartPolicyViolationsClassification from "./dashboard/ChartPolicyViolationsClassification"; import ChartComponentVulnerabilities from "./dashboard/ChartComponentVulnerabilities"; import { Callout } from '@coreui/vue' import permissionsMixin from "../mixins/permissionsMixin"; @@ -301,7 +333,8 @@ ChartProjectVulnerabilities, ChartAuditingFindingsProgress, ChartAuditingViolationsProgress, - ChartPolicyViolations, + ChartPolicyViolationsState, + ChartPolicyViolationsClassification, ChartComponentVulnerabilities }, data() { @@ -335,9 +368,12 @@ warnViolationsPercent: 0, infoViolations: 0, infoViolationsPercent: 0, - licenseViolations: 0, - operationalViolations: 0, securityViolations: 0, + securityViolationsPercent: 0, + operationalViolations: 0, + operationalViolationsPercent: 0, + licenseViolations: 0, + licenseViolationsPercent: 0, vulnerabilities: 0, suppressed: 0, @@ -379,9 +415,12 @@ this.warnViolationsPercent = common.calcProgressPercent(this.totalViolations, this.warnViolations); this.infoViolations = common.valueWithDefault(metric.policyViolationsInfo, "0"); this.infoViolationsPercent = common.calcProgressPercent(this.totalViolations, this.infoViolations); - this.licenseViolations = common.valueWithDefault(metric.policyViolationsLicenseTotal,"0"); - this.operationalViolations = common.valueWithDefault(metric.policyViolationsOperationalTotal,"0"); - this.securityViolations = common.valueWithDefault(metric.policyViolationsSecurityTotal,"0"); + this.securityViolations = common.valueWithDefault(metric.policyViolationsSecurityTotal, "0"); + this.securityViolationsPercent = common.calcProgressPercent(this.totalViolations, this.securityViolations); + this.operationalViolations = common.valueWithDefault(metric.policyViolationsOperationalTotal, "0"); + this.operationalViolationsPercent = common.calcProgressPercent(this.totalViolations, this.operationalViolations); + this.licenseViolations = common.valueWithDefault(metric.policyViolationsLicenseTotal, "0"); + this.licenseViolationsPercent = common.calcProgressPercent(this.totalViolations, this.licenseViolations); this.vulnerabilities = common.valueWithDefault(metric.vulnerabilities, "0"); this.suppressed = common.valueWithDefault(metric.suppressed, "0"); @@ -404,7 +443,8 @@ this.$refs.chartProjectVulnerabilities.render(response.data); this.$refs.chartAuditingFindingsProgress.render(response.data); this.$refs.chartAuditingViolationsProgress.render(response.data); - this.$refs.chartPolicyViolations.render(response.data); + this.$refs.chartPolicyViolationsState.render(response.data); + this.$refs.chartPolicyViolationsClassification.render(response.data); this.$refs.chartComponentVulnerabilities.render(response.data); this.extractStats(response.data); }); diff --git a/src/views/dashboard/ChartPolicyViolationsClassification.vue b/src/views/dashboard/ChartPolicyViolationsClassification.vue new file mode 100644 index 000000000..3ccc0f4a2 --- /dev/null +++ b/src/views/dashboard/ChartPolicyViolationsClassification.vue @@ -0,0 +1,106 @@ + diff --git a/src/views/dashboard/ChartPolicyViolations.vue b/src/views/dashboard/ChartPolicyViolationsState.vue similarity index 100% rename from src/views/dashboard/ChartPolicyViolations.vue rename to src/views/dashboard/ChartPolicyViolationsState.vue diff --git a/src/views/portfolio/projects/ComponentDashboard.vue b/src/views/portfolio/projects/ComponentDashboard.vue index bd2d07e5d..d279cfc76 100644 --- a/src/views/portfolio/projects/ComponentDashboard.vue +++ b/src/views/portfolio/projects/ComponentDashboard.vue @@ -78,7 +78,7 @@ - + @@ -105,7 +105,7 @@ import { Callout } from '@coreui/vue' import ChartComponentVulnerabilities from "../../dashboard/ChartComponentVulnerabilities"; import ChartPortfolioVulnerabilities from '../../dashboard/ChartPortfolioVulnerabilities'; - import ChartPolicyViolations from "@/views/dashboard/ChartPolicyViolations"; + import ChartPolicyViolationsState from "@/views/dashboard/ChartPolicyViolationsState"; import ChartPolicyViolationBreakdown from '@/views/dashboard/ChartPolicyViolationBreakdown'; export default { @@ -113,7 +113,7 @@ components: { ChartComponentVulnerabilities, ChartPortfolioVulnerabilities, - ChartPolicyViolations, + ChartPolicyViolationsState, ChartPolicyViolationBreakdown, Callout, @@ -171,7 +171,7 @@ let url = `${this.$api.BASE_URL}/${this.$api.URL_METRICS}/component/${uuid}/days/${daysBack}`; this.axios.get(url).then((response) => { this.$refs.chartComponentVulnerabilities.render(response.data); - this.$refs.chartPolicyViolations.render(response.data); + this.$refs.chartPolicyViolationsState.render(response.data); this.$refs.chartPolicyViolationBreakdown.render(response.data); this.extractStats(response.data); }); diff --git a/src/views/portfolio/projects/ProjectDashboard.vue b/src/views/portfolio/projects/ProjectDashboard.vue index 533a9bad4..e2d4125cf 100644 --- a/src/views/portfolio/projects/ProjectDashboard.vue +++ b/src/views/portfolio/projects/ProjectDashboard.vue @@ -90,7 +90,7 @@ - + @@ -144,13 +144,13 @@ import ChartAuditingFindingsProgress from "../../dashboard/ChartAuditingFindingsProgress"; import ChartComponentVulnerabilities from "../../dashboard/ChartComponentVulnerabilities"; import ChartPortfolioVulnerabilities from '../../dashboard/ChartPortfolioVulnerabilities' - import ChartPolicyViolations from "@/views/dashboard/ChartPolicyViolations"; + import ChartPolicyViolationsState from "@/views/dashboard/ChartPolicyViolationsState"; import ChartPolicyViolationBreakdown from '@/views/dashboard/ChartPolicyViolationBreakdown'; export default { name: 'project-dashboard', components: { - ChartPolicyViolations, + ChartPolicyViolationsState, ChartPolicyViolationBreakdown, ChartAuditingFindingsProgress, ChartComponentVulnerabilities, @@ -213,7 +213,7 @@ let url = `${this.$api.BASE_URL}/${this.$api.URL_METRICS}/project/${this.uuid}/days/${daysBack}`; this.axios.get(url).then((response) => { this.$refs.chartProjectVulnerabilities.render(response.data); - this.$refs.chartPolicyViolations.render(response.data); + this.$refs.chartPolicyViolationsState.render(response.data); this.$refs.chartPolicyViolationBreakdown.render(response.data); this.$refs.chartAuditingFindingsProgress.render(response.data); this.$refs.chartComponentVulnerabilities.render(response.data); diff --git a/src/views/portfolio/projects/ServiceDashboard.vue b/src/views/portfolio/projects/ServiceDashboard.vue index 3d199453f..a71065fef 100644 --- a/src/views/portfolio/projects/ServiceDashboard.vue +++ b/src/views/portfolio/projects/ServiceDashboard.vue @@ -78,7 +78,7 @@ - + @@ -105,7 +105,7 @@ import common from "../../../shared/common" import { Callout } from '@coreui/vue' import ChartComponentVulnerabilities from "../../dashboard/ChartComponentVulnerabilities"; import ChartPortfolioVulnerabilities from '../../dashboard/ChartPortfolioVulnerabilities'; -import ChartPolicyViolations from "@/views/dashboard/ChartPolicyViolations"; +import ChartPolicyViolationsState from "@/views/dashboard/ChartPolicyViolationsState"; import ChartPolicyViolationBreakdown from '@/views/dashboard/ChartPolicyViolationBreakdown'; export default { @@ -113,7 +113,7 @@ export default { components: { ChartComponentVulnerabilities, ChartPortfolioVulnerabilities, - ChartPolicyViolations, + ChartPolicyViolationsState, ChartPolicyViolationBreakdown, Callout, @@ -174,7 +174,7 @@ export default { let url = `${this.$api.BASE_URL}/${this.$api.URL_METRICS}/service/${uuid}/days/${daysBack}`; this.axios.get(url).then((response) => { this.$refs.chartServiceVulnerabilities.render(response.data); - this.$refs.chartPolicyViolations.render(response.data); + this.$refs.chartPolicyViolationsState.render(response.data); this.$refs.chartPolicyViolationBreakdown.render(response.data); this.extractStats(response.data); });