608 words
3 minutes

11 from Terraform MCP server GA: the Apply Gate your auditor will ask about

The apply gate: an agent may plan, a named person applies

By Docker Captain · CNCF Ambassador · IBM Champion
Dark datacenter rack aisle with bone-white light and one red status LED

The code an agent writes is rarely the problem. The record of who let it apply is.

Read-only is the right default for almost every team today. The steps below are what has to exist before the flag flips for any workspace, and the flag flips per deployment, never for the organization.

  1. 1

    Pin what the server can reach

    Name the toolsets explicitly (--toolsets=registry,registry-private, or --tools for single tools), leave ENABLE_TF_OPERATIONS unset, and scope TFE_TOKEN to the fewest workspaces that work. On an HTTP deployment set MCP_ORGANIZATION_ALLOWLIST to the smallest set of organizations. The deliverable is a written list of what the agent can see before it can change anything. Owner: platform engineer.

  2. 2

    Know what the flag unlocks

    It is not one capability: auto_approve and is_destroy runs, action_run, and the deletes (delete_workspace_safely, force_unlock_workspace, delete_project, delete_team). Read the list against the installed version before deciding, because it grows.

  3. 3

    Gate every workspace an agent may apply against

    Attach a Sentinel policy set to it (attach_policy_set_to_workspaces, checked with list_workspace_policy_sets). No policy set attached, no agent apply on that workspace. Owner: security or platform lead.

  4. 4

    Keep the approval with a person

    Auto-apply stays off on every workspace the agent reaches, so a run it queues waits for a named approver in HCP Terraform or Terraform Enterprise.

  5. 5

    Keep two records

    The platform's audit trail answers who triggered and who approved each run. The server's metrics, with OTEL_METRICS_ENABLED=true, answer how often the agent called a tool and how it failed: mcp_tool_calls_total, mcp_tool_errors_total, mcp_tool_duration_seconds.

  6. 6

    Flip the flag only where the first five exist

    One deployment, the workspaces it is scoped to, and a date to read both records back.

What the flag changes (server reference, read 14 November 2026, v1.4.1)

ToolFlag unset (the default)With the flag
create_runplan_and_apply with auto-apply off, refresh_state, plan_only, allow_empty_applyAdds auto_approve and is_destroy
action_runNot registeredApply, discard or cancel a run
delete_workspace_safely, delete_project, delete_teamNot registeredDelete
force_unlock_workspaceNot registeredForce-unlock a locked workspace

Where to check it

The vendor's own reference and code, read at the version named.

Read-only this week. The apply gate opens when the record can answer for it.

The long version is the post Terraform MCP server GA. HashiCorp, the GA announcement and the server reference; ISMS.online on SOC 2 CC8.1.


Vladimir Mikhalev

Docker CaptainCNCF AmbassadorIBM Champion

The Verdict — production-tested analysis on YouTube.

The Verdict

Inconvenient truths about shipping in the AI era

Container security, platform engineering, and the agentic shift — tested in production, argued without the hype. The verdict reaches your inbox the moment there's one worth sending.

Related Posts

Same category
  1. 1
    Terraform MCP server GA: the Apply Gate your auditor will ask about
    DevOps & Cloud · HashiCorp's Terraform MCP server is GA and IBM Bob can write production IaC. ENABLE_TF_OPERATIONS separates a safe assistant from autonomous apply.
  2. 2
    Docker Hardened Images Migration: A Healthy Database That Kept Nothing
    DevOps & Cloud · Moving a Compose stack to Docker Hardened Images changes user IDs, paths and tools. On the old mount path, PostgreSQL stayed healthy and kept nothing.
  3. 3
    EKS Validation on a Real AWS Account: Seven Failures No Mock Saw
    DevOps & Cloud · Proving an EKS platform on a real AWS account: twenty cents a run by estimate, about fifty on the bill, and seven failures no mocked test or kind saw.
  4. 4
    A Partial Read Is Not a Smaller Fleet: A GitHub API Rate Limit and the Numbers That Lied for an Hour
    DevOps & Cloud · A partial read published as the whole. For an hour the profile said 24 restore scripts across 15 repositories, and the fleet had 73 across 48. Three guards now.

More Blueprints

All 12
  1. 12
    The evidence join
    Signal, 11 August 2026 · Bind each agent to its governance use case, give every run a span with the same id, keep the spans for the longest obligation, and alert when a run has no evidence to match.
  2. 01
    The blast radius assessment
    Signal, 23 February 2026 · Map what an AI agent can break, and how fast a person can undo it, before it gets a single key: six steps, a worksheet and the repositories that measure the same rules.
  3. 02
    The AI intake gate
    Signal, 12 March 2026 · Find every AI tool in use, ask for its backend's access rules instead of a questionnaire, and block what cannot use SSO and central logging, before the first prompt.
  4. 03
    Build or buy a no-code AI platform
    Signal, 20 January 2026 · When a no-code computer vision subscription is the right buy, when it is a slow trap, three questions before the pilot and four clauses before you sign.
The apply gate: an agent may plan, a named person applies
https://heyvaldemar.com/blueprints/apply-gate/
Author
Vladimir Mikhalev
Published
2026-11-14
License
CC BY-NC-SA 4.0