The Complete Production SOP: How to Deploy and Run Cloudflare DNS Record Automation & Proxied Traffic in Autonomous AI Agents
Production SOP to install and run Cloudflare DNS record automation via Terraform in Codex, Claude Code, and Cursor. Verified prompts and guardrails.
Technical Overview & Architectural Context
Autonomous coding agents frequently misconfigure edge networking infrastructure when generating Terraform configurations for Cloudflare. The most common failures stem from hallucinating legacy provider schemas (e.g., mixing cloudflare_record v4 syntax with v3 arguments), inappropriately toggling proxy status (orange clouding) on protocols that do not support HTTP/HTTPS proxying such as SSH or custom mail ports, and omitting apex CNAME flattening parameters required by RFC specifications. Without explicit procedural controls, agents also risk generating non-idempotent configurations that trigger destructive state updates or reveal origin IP addresses through misconfigured gray-cloud fallback records. The cloudflare-dns-records-management skill resolves these hazards by imposing deterministic state constraints: requiring strict declaration of zone IDs, explicit proxy boundary rules, and automated validation via Terraform linting tools (tflint) prior to state execution.
Prerequisites & Environment Requirements
Verified Search Intents & Long-Tail Queries Solved
This operational tutorial is engineered to provide deterministic solutions for these developer search queries:
Step-by-Step Execution Playbook
Local Environment Setup & SKILL.md Mounting
Create the local skill manifest directory and inject verified procedural rules into the agent context.
Agent runtimes such as Claude Code and Cursor scan local directories for specialized agent skills defined in YAML frontmatter. By placing the SKILL.md manifest into the workspace skill path (`.agents/skills/cloudflare-dns-records-management/SKILL.md` or `.claude/skills/`), the runtime compiles execution constraints, security limits (fs_write restricted to workspace, no shell execution without explicit user confirmation), and intent triggers directly into the agent reasoning tree.
mkdir -p .agents/skills/cloudflare-dns-records-management && curl -fsSL https://askills.dev/api/skills/cloudflare-dns-records-management/raw -o .agents/skills/cloudflare-dns-records-management/SKILL.md---
name: "cloudflare-dns-records-management"
description: "Automate high-speed DNS record management and CDN proxying via Terraform and Cloudflare API."
metadata:
author: "Cloudflare"
version: "1.0.0"
runtime_compatibility:
- "codex"
- "claude-code"
- "cursor"
- "windsurf"
triggers:
- "automate cloudflare dns terraform"
- "toggle cloudflare proxy status"
- "cname flattening cloudflare"
permissions:
fs_read: true
fs_write: "workspace"
shell_exec: false
net_access: false
---
# Cloudflare DNS Record Automation & Proxied Traffic
Manages Cloudflare DNS: creating A, AAAA, CNAME, and TXT records, toggling proxied status (orange cloud), configuring CNAME flattening at apex (@), and handling automated DNS migrations.
## When to Invoke
Invoke this skill whenever you need to:
- automate cloudflare dns terraform
- toggle cloudflare proxy status
- cname flattening cloudflare
## Execution SOP & Rules
1. Declare cloudflare_record resource specifying zone_id, name, value, type, and proxied = true.
2. Set proxied = true to activate Cloudflare DDoS protection, WAF, and edge caching.
3. Set proxied = false (gray cloud) for direct origin connections such as SSH or VPN hosts.
4. Verify DNS propagation globally using dig @1.1.1.1 <domain> and DNS checker tools.
## Verification Checklist
- Run local linting, syntax validation, and type-checks before reporting completion.
- Ensure all created or modified files adhere to workspace boundaries and avoid uncommitted secrets.
- Verify tests or build commands exit cleanly with return code 0.Place the SKILL.md file inside `.claude/skills/` for Claude Code or `.cursor/rules/` for Cursor IDE to automatically inject the prompt boundaries without consuming repetitive system prompt tokens across sessions.
The skill enforces `net_access: false` and `shell_exec: false` by default. Do not allow the agent to execute `terraform apply` directly; enforce that it outputs valid `.tf` HCL files for human-reviewed CI/CD execution.
Environment Secrets & Dependency Validation
Inject Cloudflare API credentials safely using workspace environment variables without secret leakage.
Terraform and agent runtimes require a scoped Cloudflare API token. Never inject raw tokens into prompt text or commit them into version control. Configure workspace environment variables following standard HashiCorp naming conventions (`CLOUDFLARE_API_TOKEN`) so the agent generates decoupled Terraform code referencing environment-provided providers.
cat << 'EOF' > .env.example
CLOUDFLARE_API_TOKEN="your_cloudflare_api_token_here"
CLOUDFLARE_ZONE_ID="your_zone_id_here"
EOF
cp .env.example .env.localterraform {
required_version = ">= 1.5.0"
required_providers {
cloudflare = {
source = "cloudflare/cloudflare"
version = "~> 4.30.0"
}
}
}
provider "cloudflare" {
# Relies on CLOUDFLARE_API_TOKEN environment variable
}Ensure `.env*` is matched in `.gitignore` so the autonomous agent never stages sensitive secrets during automated commit iterations.
Do not hardcode `api_token = "..."` inside `providers.tf`. Doing so fails the security quality gate and violates the 98/100 skill security score.
Intent Matching & Trigger Invocation
Verify deterministic activation using tested natural language triggers.
The skill hooks into natural language triggers: 'automate cloudflare dns terraform', 'toggle cloudflare proxy status', and 'cname flattening cloudflare'. When invoking the agent, mention one of these key trigger phrases explicitly to invoke the deterministic SOP and skip generic hallucinations.
claude "Automate cloudflare dns terraform for apex domain example.com using CNAME flattening to edge.example-alb.com and proxied status."variable "zone_id" {
type = string
description = "The Cloudflare Zone ID"
}
# Apex record leveraging Cloudflare native CNAME flattening
resource "cloudflare_record" "apex_cname" {
zone_id = var.zone_id
name = "@"
content = "edge.example-alb.com"
type = "CNAME"
proxied = true
ttl = 1 # Automatic TTL when proxied
comment = "Managed by Cloudflare DNS Record Automation Skill"
}
# Direct origin record (SSH/Direct access) - explicitly unproxied
resource "cloudflare_record" "origin_ssh" {
zone_id = var.zone_id
name = "ssh"
content = "198.51.100.10"
type = "A"
proxied = false # Grey cloud: bypassed CDN/WAF
ttl = 300
comment = "Direct origin access, unproxied"
}Always specify whether records require CDN features (DDoS, WAF, caching) so the agent can deterministically choose `proxied = true` or `proxied = false` without ambiguous questioning loops.
Setting `proxied = true` on non-HTTP records (like MX, TXT, or SSH hostnames) breaks service reachability because Cloudflare's HTTP proxy does not route arbitrary TCP traffic unless using Cloudflare Spectrum.
Verification, Linting & Output Quality Gate
Execute automated syntax checks and linting before accepting the agent's infrastructure code.
Before accepting changes from the agent, run deterministic formatting and validation commands. The skill's verification checklist requires return code 0 on syntax checks and linting gates.
terraform fmt -check && terraform init -backend=false && terraform validate#!/usr/bin/env bash
set -euo pipefail
echo "Validating HCL syntax and formatting..."
terraform fmt -check -diff
echo "Validating provider configurations..."
terraform init -backend=false
terraform validate
echo "Cloudflare DNS configuration successfully verified."Run `git diff --stat` after the agent finishes to verify that only target `.tf` files were altered and no unexpected credentials or workspace configs were staged.
If `terraform validate` fails due to unrecognized attributes (e.g. `value` instead of `content`), ensure the agent is using Cloudflare provider v4 syntax where `content` replaced `value`.
Real-World Scenario: Automated DNS Migration with Apex CNAME Flattening and CDN Offload
“We need to automate cloudflare dns terraform for our migration to a global load balancer. Generate a Terraform configuration that points the apex domain '@' to loadbalancer.production.aws.com using CNAME flattening with proxied status enabled. Also add an unproxied A record for direct origin SSH access to 203.0.113.25.”
Runtime Troubleshooting & Failure Modes
Root Cause: The agent reverted to legacy Cloudflare Provider v3 syntax where DNS record targets were specified with 'value' instead of the v4 standard 'content'.
sed -i 's/value =/content =/g' *.tf && terraform validateRoot Cause: The agent attempted to orange-cloud (`proxied = true`) a protocol type that does not terminate on Cloudflare HTTP reverse proxies.
# Update the offending record in your .tf manifest:
# proxied = false
# ttl = 3600Frequently Asked Questions (Cloudflare DNS Record Automation & Proxied Traffic SOP)
Q:Can I use Cloudflare DNS Record Automation & Proxied Traffic across Codex, Claude Code, and Cursor simultaneously?
Yes. The skill conforms to the universal SKILL.md specification supported across all modern agent runtimes. Simply symlink or duplicate the manifest into your runtime-specific paths (`.claude/skills/`, `.cursor/rules/`, or Codex agent directories).
Q:How does Cloudflare DNS Record Automation & Proxied Traffic prevent context window overflow during long agent sessions?
By establishing concise procedural boundaries and deterministic validation gates rather than polluting system prompts with redundant rules. The SKILL.md enforces strict step-by-step logic and limits file writes to the workspace without re-ingesting heavy documentation.
Q:Does this skill require escalated root or container permissions?
No. It is audited with a security score of 98/100 and runs safely within workspace-scoped sandboxes with `shell_exec: false` and `net_access: false` in default mode, ensuring no uninspected network calls occur.
Ready to equip your autonomous agent with Cloudflare DNS Record Automation & Proxied Traffic?
Copy the complete audited SKILL.md specification or download the 1-click zip bundle directly from our verified registry.