0ca383dae6
Create run_codegen.sh (pre-TF: env check, validate, resolve, adapt). Create run_postapply.sh (post-TF: Checkov, confidence, HITL, outbox, SSM, uptime). Add variable 'enabled' (bool, default true) + count=var.enabled?1:0 to all 12 L1 modules (alb, cloudfront, ecr, ecs-cluster, ecs-service, iam-role, kms-key, rds, s3, uptime, vpc, waf). Fix all cross-resource references with [0] indexing. Update interface.json for all modules to declare 'enabled' input. Fix stale artifact path /tmp/acdl_platform_run_v18 → /tmp/nova_platform_run (REQ-238). run_platform.sh remains as backward-compat shim for local-dev usage. ---ci--- project: acdl phase: 4 milestone: v1.20 status: execute requirements: [REQ-233, REQ-234, REQ-235, REQ-236, REQ-237, REQ-238] ---/ci---
53 lines
1.3 KiB
Terraform
53 lines
1.3 KiB
Terraform
resource "aws_wafv2_web_acl" "this" {
|
|
count = var.enabled ? 1 : 0
|
|
name = var.name
|
|
scope = local.scope
|
|
|
|
default_action {
|
|
dynamic "allow" {
|
|
for_each = local.action_type == "allow" ? [1] : []
|
|
content {}
|
|
}
|
|
dynamic "block" {
|
|
for_each = local.action_type == "block" ? [1] : []
|
|
content {}
|
|
}
|
|
}
|
|
|
|
visibility_config {
|
|
cloudwatch_metrics_enabled = true
|
|
metric_name = "nova-waf-metrics"
|
|
sampled_requests_enabled = true
|
|
}
|
|
|
|
dynamic "rule" {
|
|
for_each = var.rules
|
|
content {
|
|
name = lookup(rule.value, "name", "custom-rule-${rule.key}")
|
|
priority = lookup(rule.value, "priority", rule.key)
|
|
override_action {
|
|
none {}
|
|
}
|
|
statement {
|
|
byte_match_statement {
|
|
search_string = lookup(rule.value, "search_string", "/")
|
|
positional_constraint = "CONTAINS"
|
|
field_to_match {
|
|
single_header {
|
|
name = "user-agent"
|
|
}
|
|
}
|
|
text_transformation {
|
|
priority = 0
|
|
type = "NONE"
|
|
}
|
|
}
|
|
}
|
|
visibility_config {
|
|
cloudwatch_metrics_enabled = true
|
|
metric_name = "${lookup(rule.value, "name", "custom-rule-${rule.key}")}-metrics"
|
|
sampled_requests_enabled = true
|
|
}
|
|
}
|
|
}
|
|
} |