@@ -5,41 +5,42 @@ integration_type:
55 - azure_subscription
66parameters :
77 - key : azureMandatoryTags
8+ default : ' ["name","environment"]'
89policy :
9- language : sql
10- primary_resource : azure_resource_group
11- definition : |
12- WITH analysis AS (
13- SELECT
14- platform_integration_id,
15- platform_resource_id,
16- id,
17- title,
18- tags ?& '{{.azureMandatoryTags}}'::text[] AS has_mandatory_tags,
19- TO_JSONB('{{.azureMandatoryTags}}'::text[]) - ARRAY(
20- SELECT jsonb_object_keys(tags)
21- ) AS missing_tags,
22- subscription_id
23- FROM
24- azure_resource_group
25- )
26- SELECT
27- platform_integration_id,
28- platform_resource_id,
29- id AS resource,
30- CASE
31- WHEN has_mandatory_tags THEN 'ok'
32- ELSE 'alarm'
33- END AS status,
34- CASE
35- WHEN has_mandatory_tags THEN title || ' has all mandatory tags.'
36- ELSE title || ' is missing tags: ' || array_to_string(
37- ARRAY(
38- SELECT jsonb_array_elements_text(missing_tags)
39- ), ', ') || '.'
40- END AS reason,
41- subscription_id
42- FROM
43- analysis;
10+ language : sql
11+ primary_resource : azure_resource_group
12+ definition : |
13+ WITH analysis AS (
14+ SELECT
15+ platform_integration_id,
16+ platform_resource_id,
17+ id,
18+ title,
19+ tags ?& '{{.azureMandatoryTags}}'::text[] AS has_mandatory_tags,
20+ TO_JSONB('{{.azureMandatoryTags}}'::text[]) - ARRAY(
21+ SELECT jsonb_object_keys(tags)
22+ ) AS missing_tags,
23+ subscription_id
24+ FROM
25+ azure_resource_group
26+ )
27+ SELECT
28+ platform_integration_id,
29+ platform_resource_id,
30+ id AS resource,
31+ CASE
32+ WHEN has_mandatory_tags THEN 'ok'
33+ ELSE 'alarm'
34+ END AS status,
35+ CASE
36+ WHEN has_mandatory_tags THEN title || ' has all mandatory tags.'
37+ ELSE title || ' is missing tags: ' || array_to_string(
38+ ARRAY(
39+ SELECT jsonb_array_elements_text(missing_tags)
40+ ), ', ') || '.'
41+ END AS reason,
42+ subscription_id
43+ FROM
44+ analysis;
4445severity : high
4546tags : {}
0 commit comments