From 24e6f0a08ff773caf03d3a4bedce6429bf5857dc Mon Sep 17 00:00:00 2001 From: Benjamin Chouraqui Date: Mon, 13 Oct 2025 10:55:15 +0200 Subject: [PATCH 1/3] style: changed framework by platform Also added logos for k8s and CICD Refs: K9VULN-8510 --- layouts/iac_security/list.html | 50 ++++++++++++++++++---------------- 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/layouts/iac_security/list.html b/layouts/iac_security/list.html index da7a4d3f9525d..71a6f1be563fb 100644 --- a/layouts/iac_security/list.html +++ b/layouts/iac_security/list.html @@ -25,18 +25,18 @@

{{ .Title }}

{{ range ($list.GroupByParam "group_id") }} {{ range .Pages }} {{ $pad.Set "providers" ( union ($pad.Get "providers") (slice (( .Params.meta.cloud_provider ))) ) }} - {{ $pad.Set "frameworks" ( union ($pad.Get "frameworks") (slice (( .Params.meta.framework ))) ) }} + {{ $pad.Set "platforms" ( union ($pad.Get "platforms") (slice (( .Params.meta.platform ))) ) }} {{ end }} {{ end }} {{ $valid_clouds := $pad.Get "providers" }} - {{ $valid_frameworks := $pad.Get "frameworks" }} + {{ $valid_platforms := $pad.Get "platforms" }}
{{ .Title }} // if logo name different than 'providers' name, // map to appropriate integration logo name (e.g. csharp: 'net') gcp: 'google-cloud-platform', - aws: 'amazon-web-services' + aws: 'amazon-web-services', + k8s: 'kubernetes' }, - framework_aliases: { - // if logo name different than 'frameworks' name, + platform_aliases: { + cicd: 'github', + // if logo name different than 'platforms' name, // map to appropriate integration logo name (e.g. csharp: 'net') }, resetFilteredRulesets () { @@ -86,7 +88,7 @@

{{ .Title }}

* FILTER LOGIC (containsFilteredValue) e.g. * { * providers: [aws, azure], - * frameworks: [terraform, kurbernetes], + * platforms: [terraform, kurbernetes], * categories: [severity], * severities: [warning] * } @@ -132,11 +134,11 @@

{{ .Title }}

window.history.pushState(null,'', newURL || url.toString()) }, - updateWithURLParams (validClouds, validFrameworks) { + updateWithURLParams (validClouds, validPlatforms) { // Updates x-data properties with url param values const validCloudsArr = validClouds.replaceAll(/[\[\]]/g, '').split(' ') - const validFrameworksArr = validFrameworks.replaceAll(/[\[\]]/g, '').split(' ') + const validPlatformsArr = validPlatforms.replaceAll(/[\[\]]/g, '').split(' ') const url = new URL(window.location.href) const cloudAliasMap = validCloudsArr.reduce((acc,l) => { // map to appropriate cloud display name @@ -144,9 +146,9 @@

{{ .Title }}

acc[cloud.toLowerCase()] = displayName return acc }, {}) - const frameworkAliasMap = validFrameworksArr.reduce((acc,l) => { - const [framework, displayName] = l.split(';') - acc[framework.toLowerCase()] = displayName + const platformAliasMap = validPlatformsArr.reduce((acc,l) => { + const [platform, displayName] = l.split(';') + acc[platform.toLowerCase()] = displayName return acc }, {}) @@ -158,12 +160,12 @@

{{ .Title }}

const displayName = cloudAliasMap[value.toLowerCase()] ?? value const cloudLookupName = cloudAliasMap[value.toLowerCase()] ? `,${value}`: '' this.filterTypes[key].push(`${displayName},https://static.datadoghq.com/static/images/logos/${logoName.toLowerCase()}_avatar.svg${cloudLookupName}`) - } else if ((key === 'frameworks') && validFrameworksArr.some(l => l.replace(/\;\w./, '').toLowerCase() === value.toLowerCase())){ - const logoName = this.framework_aliases[value.toLowerCase()] ?? value - const displayName = frameworkAliasMap[value.toLowerCase()] ?? value - const frameworkLookupName = frameworkAliasMap[value.toLowerCase()] ? `,${value}`: '' - this.filterTypes[key].push(`${displayName},https://static.datadoghq.com/static/images/logos/${logoName.toLowerCase()}_avatar.svg${frameworkLookupName}`) - } else if (key != 'providers' && key != 'frameworks'){ + } else if ((key === 'platform') && validPlatformsArr.some(l => l.replace(/\;\w./, '').toLowerCase() === value.toLowerCase())){ + const logoName = this.platform_aliases[value.toLowerCase()] ?? value + const displayName = platformAliasMap[value.toLowerCase()] ?? value + const platformLookupName = platformAliasMap[value.toLowerCase()] ? `,${value}`: '' + this.filterTypes[key].push(`${displayName},https://static.datadoghq.com/static/images/logos/${logoName.toLowerCase()}_avatar.svg${platformLookupName}`) + } else if (key != 'providers' && key != 'platforms'){ this.filterTypes[key]?.push(value) } }) @@ -229,7 +231,7 @@

{{ .Title }}

} } }" - x-init="updateWithURLParams('{{$valid_clouds}}', '{{$valid_frameworks}}')"> + x-init="updateWithURLParams('{{$valid_clouds}}', '{{$valid_platforms}}')"> {{/* DATA TABLE */}}
@@ -251,7 +253,7 @@

{{ .Title }}

build a string with rule's lookup info for filtering and searching against */}} {{ $rule_id := index (split .Params.meta.name "/") 1}} - {{ $filter_info := (printf "%s,%s,%s,%s" .Params.meta.cloud_provider .Params.meta.category .Params.meta.severity .Params.meta.framework) }} + {{ $filter_info := (printf "%s,%s,%s,%s" .Params.meta.cloud_provider .Params.meta.category .Params.meta.severity .Params.meta.platform) }} {{ $rule_info := (replaceRE "(`|')" "" (delimit (slice $filter_info ($rule_id|lower) $ruleset_title .Params.group_id .Title ) ";")) }}
{{ .Title }} e.g: filters: { Provider: [], - Framework: [], + Platform: [], Category: [], Severity: {} } */}} {{ $pad.SetInMap "filters" "Providers" (union (index ($pad.Get "filters") "Providers") (slice .Params.meta.cloud_provider)) }} - {{ $pad.SetInMap "filters" "Frameworks" (union (index ($pad.Get "filters") "Frameworks") (slice .Params.meta.framework)) }} + {{ $pad.SetInMap "filters" "Platforms" (union (index ($pad.Get "filters") "Platforms") (slice .Params.meta.platform)) }} {{ $pad.SetInMap "filters" "Categories" (union (index ($pad.Get "filters") "Categories") (slice .Params.meta.category)) }} {{ $pad.SetInMap "filters" "Severities" (slice "CRITICAL" "HIGH" "MEDIUM" "LOW" "INFO") }} {{/* @@ -337,7 +339,7 @@

{{ .Title }}

{{/* NAV - Keep here. scratch pad for filters need to form first */}}