diff --git a/assets/scss/_security.scss b/assets/scss/_security.scss new file mode 100644 index 00000000..c8b4951a --- /dev/null +++ b/assets/scss/_security.scss @@ -0,0 +1,49 @@ +/* security summary page */ + +.security-page { + margin-top: 4rem; + + @include media-breakpoint-down(sm) { + margin-top: 2rem; + } + + .security-card { + border: none; + border-radius: 0.75rem; + transition: transform 0.15s ease; + + &:hover { + transform: translateY(-2px); + } + + .security-icon { + font-size: 1.75rem; + color: $primary; + margin-bottom: 0.5rem; + } + + .security-value { + font-size: 2.5rem; + font-weight: 700; + color: $cozy-black; + line-height: 1.2; + } + + .security-label { + font-size: 0.95rem; + font-weight: 600; + color: $cozy-mid-gray; + text-transform: uppercase; + letter-spacing: 0.05em; + margin-top: 0.25rem; + } + } + + .table code { + color: $primary; + font-weight: 500; + background: rgba($primary, 0.06); + padding: 0.15rem 0.4rem; + border-radius: 0.25rem; + } +} diff --git a/assets/scss/main.scss b/assets/scss/main.scss index 02ed92ed..3b070bf8 100644 --- a/assets/scss/main.scss +++ b/assets/scss/main.scss @@ -149,3 +149,4 @@ a { @import "announcement-banner"; @import "tabs_alerts"; @import "override-docsy-tabs"; +@import "security"; diff --git a/content/en/oss-health/_index.md b/content/en/oss-health/_index.md new file mode 100644 index 00000000..f71a0864 --- /dev/null +++ b/content/en/oss-health/_index.md @@ -0,0 +1,5 @@ +--- +title: OSS Health +description: Open source project health metrics for Cozystack +type: oss-health +--- diff --git a/content/en/oss-health/security/_index.md b/content/en/oss-health/security/_index.md new file mode 100644 index 00000000..953a03d8 --- /dev/null +++ b/content/en/oss-health/security/_index.md @@ -0,0 +1,6 @@ +--- +title: Security Summary +description: Monthly public security summary for the Cozystack project +type: oss-health +layout: security +--- diff --git a/data/security/monthly.json b/data/security/monthly.json new file mode 100644 index 00000000..900a933b --- /dev/null +++ b/data/security/monthly.json @@ -0,0 +1,13 @@ +{ + "month": "", + "generated_at": "", + "new_count": 0, + "fixed": [], + "in_progress": [], + "accepted_risk": [], + "stats": { + "total_tracked": 0, + "total_triaged": 0, + "false_positives": 0 + } +} diff --git a/hugo.yaml b/hugo.yaml index 2cf566a7..a290d5e8 100644 --- a/hugo.yaml +++ b/hugo.yaml @@ -178,6 +178,13 @@ params: menus: main: + - name: OSS Health + weight: 3 + identifier: oss-health + - name: Security Summary + parent: oss-health + url: /oss-health/security/ + weight: 1 - name: Enterprise support url: /support weight: 5 diff --git a/layouts/oss-health/baseof.html b/layouts/oss-health/baseof.html new file mode 100644 index 00000000..d22e0c7e --- /dev/null +++ b/layouts/oss-health/baseof.html @@ -0,0 +1,18 @@ + + + + {{ partial "head.html" . }} + + +
+ {{ partial "navbar.html" . }} +
+
+
+ {{ block "main" . }}{{ end }} +
+ {{ partial "footer.html" . }} +
+ {{ partial "scripts.html" . }} + + diff --git a/layouts/oss-health/security.html b/layouts/oss-health/security.html new file mode 100644 index 00000000..330a265b --- /dev/null +++ b/layouts/oss-health/security.html @@ -0,0 +1,147 @@ +{{ define "main" }} +{{ $data := index .Site.Data.security "monthly" }} + +
+
+

Security Summary

+

Monthly public security report for the Cozystack project.

+
+ + {{ if and $data $data.month (ne $data.month "") }} + +

{{ $data.month }}

+ + +
+
+
+
+
+
{{ $data.new_count }}
+
New This Month
+
+
+
+
+
+
+
+
{{ len $data.fixed }}
+
Fixed
+
+
+
+
+
+
+
+
{{ len $data.in_progress }}
+
In Progress
+
+
+
+
+
+
+
+
{{ $data.stats.total_tracked }}
+
Total Tracked
+
+
+
+
+ + + {{ if $data.fixed }} +
Security Updates Released
+
+ + + + + + {{ range $data.fixed }} + + + + + + + {{ end }} + +
CVESeverityPackageFixed Version
{{ .cve_id }}{{ .severity }}{{ .package }}{{ .fixed_version }}
+
+ {{ end }} + + + {{ if $data.in_progress }} +
In Progress
+
+ + + + + + {{ range $data.in_progress }} + + + + + + + {{ end }} + +
CVESeverityPackageStatus
{{ .cve_id }}{{ .severity }}{{ .package }}Fix in progress
+
+ {{ end }} + + + {{ if $data.accepted_risk }} +
Accepted Risks
+
+ + + + + + {{ range $data.accepted_risk }} + + + + + + + {{ end }} + +
CVESeverityPackageReason
{{ .cve_id }}{{ .severity }}{{ .package }}{{ .reason }}
+
+ {{ end }} + + {{ if $data.generated_at }} +

+ Report generated: {{ $data.generated_at }} +

+ {{ end }} + + {{ else }} + +
+
+

No security summary available yet

+

The first monthly report will appear here after the next reporting cycle.

+
+ + {{ end }} + +
+

+ + To report a vulnerability, use + GitHub Private Vulnerability Reporting + or email cncf-cozystack-security@lists.cncf.io. + +

+
+
+ +{{ end }}