Code vs. Configuration

The philosophy behind separating Terraform Logic from Environment Data.

In traditional Terraform implementations, it is common to see values hardcoded into modules or duplicative `.tfvars` files scattered across directories. IaCConsole enforces a strict separation between Units (Logic) and Dimensions (Configuration).

The Problem with Monolithic Terraform

When code and configuration are mixed, you end up with "ClickOps" drift or massive copy-pasted folders for `dev`, `staging`, and `prod`. Changing a resource definition requires patching multiple files.

The IaCConsole Solution

1. Units (The Code)

A Unit is a pure Terraform module. It accepts variables and creates resources. It does not know about "prod" or "dev".

variable "instance_type" {}
resource "aws_instance" "app" {
  instance_type = var.instance_type
  # ...
}

2. Dimensions (The Config)

A Dimension is a slice of configuration data stored in the IaCConsole Inventory. It defines the values for a specific context.

// Dimension: env=prod
{
  "instance_type": "t3.large",
  "region": "us-east-1"
}