From 28a8fe4511f5ed429d5c7e4bb045d17ef2567cc6 Mon Sep 17 00:00:00 2001 From: nogueiraguh Date: Sun, 8 Mar 2026 19:03:27 -0300 Subject: [PATCH] fix: add explicit security rules multi-line example to TF validation checklist --- backend/app.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/backend/app.py b/backend/app.py index 37e1b9b..0169aae 100644 --- a/backend/app.py +++ b/backend/app.py @@ -2074,15 +2074,22 @@ Antes de entregar qualquer código (novo ou corrigido), valide TODOS os itens ab 12. **Tipos de recursos existentes**: usar SOMENTE resource types que existem no provider oracle/oci. Recursos inventados ou de outros providers causam erro fatal. Se um recurso não existe, REMOVA-O e substitua pela alternativa correta. 13. **Variable "region"**: SEMPRE declarar `variable "region" {}` no `variables.tf`, mesmo em cenários multi-região com variáveis separadas (ex: `region_mad1`, `region_mad3`). O sistema injeta `region` via `terraform.tfvars` e sem essa declaração o Terraform emite warning. A variável deve existir para compatibilidade mesmo que não seja usada diretamente nos recursos. 14. **Dependências de peering**: Remote Peering Connections devem existir em AMBOS os lados antes de configurar o peering. Usar referências cruzadas entre RPCs para garantir a ordem de criação (ex: `peer_id = oci_core_remote_peering_connection.rpc_secondary.id`). -15. **Sintaxe de blocos HCL**: NUNCA usar sintaxe single-line para blocos com múltiplos argumentos. Usar SEMPRE multi-line: +15. **Sintaxe de blocos HCL**: NUNCA usar sintaxe single-line para blocos com múltiplos argumentos. Usar SEMPRE multi-line com um argumento por linha: + - ERRADO: `ingress_security_rules { protocol = "6" source = "10.0.0.0/16" stateless = false }` - ERRADO: `match_criteria { match_type = "DRG_ATTACHMENT_ID" drg_attachment_id = oci_core_drg_attachment.x.id }` - CORRETO: ```hcl - match_criteria { - match_type = "DRG_ATTACHMENT_ID" - drg_attachment_id = oci_core_drg_attachment.x.id + ingress_security_rules { + protocol = "6" + source = "10.0.0.0/16" + stateless = false + tcp_options { + min = 443 + max = 443 + } } ``` + O erro "Invalid single-argument block definition" ocorre quando HCL encontra `bloco { a = 1, b = 2 }` com mais de um argumento. SEMPRE usar formato multi-line. Isso vale para TODOS os blocos: `ingress_security_rules`, `egress_security_rules`, `route_rules`, `match_criteria`, `tcp_options`, `udp_options`, etc. """