{
  "kind": "cloudon-synthetic-plan-review",
  "version": "2026-10-28",
  "notice": "本站合成、精簡的 plan 判讀教材；不是 provider 實測，也不是完整 terraform show -json 輸出。外層 review_context 是教材資料，不是 Terraform 欄位。此 JSON 不能交給 terraform apply。所有名稱、位址、密碼標記與修訂識別均為虛構。",
  "review_context": {
    "requested_change": "升級 checkout 計算層並維持入口與結帳服務可用；未授權刪除封存資料、擴大 IAM 或逆轉事故修復。",
    "environment": "demo-production",
    "workspace": "checkout-demo",
    "previous_approval": {
      "artifact_id": "plan-A",
      "source_revision": "demo-revision-a",
      "decision": "只核准 plan-A，不含後續新 plan"
    },
    "candidate": {
      "artifact_id": "plan-B",
      "source_revision": "demo-revision-b",
      "decision": "待審核"
    },
    "incident": "INC-DEMO-7：應用已改在 TCP 8443 服務，值班人員將 checkout-internal 從 443 改成 8443；事故尚未結案，修復尚未回寫 Git。",
    "archive": "demo-checkout-archive 仍含需保留的訂單封存；未提供可驗證的移轉副本、還原演練或刪除核准。",
    "missing_evidence": [
      "替換期間的容量、入口切換與使用者旅程驗證",
      "新位址的 DNS／流量切換與回復驗證",
      "密碼輪替後的應用連線與失敗處理",
      "release 身分的最小權限需求"
    ]
  },
  "plan_excerpt": {
    "format_version": "1.2",
    "resource_changes": [
      {
        "address": "google_compute_instance.checkout",
        "mode": "managed",
        "type": "google_compute_instance",
        "name": "checkout",
        "provider_name": "registry.terraform.io/hashicorp/google",
        "change": {
          "actions": ["delete", "create"],
          "before": {
            "name": "checkout-blue"
          },
          "after": {
            "name": "checkout-green"
          },
          "after_unknown": {},
          "before_sensitive": {},
          "after_sensitive": {},
          "replace_paths": [["name"]]
        }
      },
      {
        "address": "google_compute_address.ingress",
        "mode": "managed",
        "type": "google_compute_address",
        "name": "ingress",
        "provider_name": "registry.terraform.io/hashicorp/google",
        "change": {
          "actions": ["create", "delete"],
          "before": {
            "name": "ingress-blue",
            "address": "192.0.2.10"
          },
          "after": {
            "name": "ingress-green",
            "address": null
          },
          "after_unknown": {
            "address": true
          },
          "before_sensitive": {},
          "after_sensitive": {},
          "replace_paths": [["name"]]
        }
      },
      {
        "address": "google_storage_bucket.archive",
        "mode": "managed",
        "type": "google_storage_bucket",
        "name": "archive",
        "provider_name": "registry.terraform.io/hashicorp/google",
        "change": {
          "actions": ["delete"],
          "before": {
            "name": "demo-checkout-archive",
            "location": "ASIA-EAST1"
          },
          "after": null,
          "after_unknown": {},
          "before_sensitive": {},
          "after_sensitive": {}
        }
      },
      {
        "address": "google_sql_user.checkout",
        "mode": "managed",
        "type": "google_sql_user",
        "name": "checkout",
        "provider_name": "registry.terraform.io/hashicorp/google",
        "change": {
          "actions": ["update"],
          "before": {
            "name": "checkout",
            "password": "LAB_PLACEHOLDER_OLD"
          },
          "after": {
            "name": "checkout",
            "password": null
          },
          "after_unknown": {
            "password": true
          },
          "before_sensitive": {
            "password": true
          },
          "after_sensitive": {
            "password": true
          }
        }
      },
      {
        "address": "data.google_project.current",
        "mode": "data",
        "type": "google_project",
        "name": "current",
        "provider_name": "registry.terraform.io/hashicorp/google",
        "change": {
          "actions": ["read"],
          "before": null,
          "after": {
            "project_id": "demo-checkout-project",
            "number": null
          },
          "after_unknown": {
            "number": true
          },
          "before_sensitive": {},
          "after_sensitive": {}
        }
      },
      {
        "address": "google_compute_firewall.checkout",
        "mode": "managed",
        "type": "google_compute_firewall",
        "name": "checkout",
        "provider_name": "registry.terraform.io/hashicorp/google",
        "change": {
          "actions": ["update"],
          "before": {
            "name": "checkout-internal",
            "allow": [
              {
                "protocol": "tcp",
                "ports": ["8443"]
              }
            ]
          },
          "after": {
            "name": "checkout-internal",
            "allow": [
              {
                "protocol": "tcp",
                "ports": ["443"]
              }
            ]
          },
          "after_unknown": {},
          "before_sensitive": {},
          "after_sensitive": {}
        }
      },
      {
        "address": "google_project_iam_member.release",
        "mode": "managed",
        "type": "google_project_iam_member",
        "name": "release",
        "provider_name": "registry.terraform.io/hashicorp/google",
        "change": {
          "actions": ["create"],
          "before": null,
          "after": {
            "project": "demo-checkout-project",
            "role": "roles/owner",
            "member": "serviceAccount:release@demo-checkout-project.iam.gserviceaccount.com"
          },
          "after_unknown": {},
          "before_sensitive": {},
          "after_sensitive": {}
        }
      },
      {
        "address": "google_compute_network.shared",
        "mode": "managed",
        "type": "google_compute_network",
        "name": "shared",
        "provider_name": "registry.terraform.io/hashicorp/google",
        "change": {
          "actions": ["no-op"],
          "before": {
            "name": "demo-shared",
            "auto_create_subnetworks": false
          },
          "after": {
            "name": "demo-shared",
            "auto_create_subnetworks": false
          },
          "after_unknown": {},
          "before_sensitive": {},
          "after_sensitive": {}
        }
      }
    ],
    "resource_drift": [
      {
        "address": "google_compute_firewall.checkout",
        "mode": "managed",
        "type": "google_compute_firewall",
        "name": "checkout",
        "provider_name": "registry.terraform.io/hashicorp/google",
        "change": {
          "actions": ["update"],
          "before": {
            "name": "checkout-internal",
            "allow": [
              {
                "protocol": "tcp",
                "ports": ["443"]
              }
            ]
          },
          "after": {
            "name": "checkout-internal",
            "allow": [
              {
                "protocol": "tcp",
                "ports": ["8443"]
              }
            ]
          },
          "after_unknown": {},
          "before_sensitive": {},
          "after_sensitive": {}
        }
      }
    ]
  }
}
