Changelog
5.29.0 (2026-11-10)
Full Changelog: v5.28.1...v5.29.0
⚠ BREAKING CHANGES
- zone_dns_settings, account_dns_settings: the deprecated
foundation_dnsattribute has been removed. Oncloudflare_zone_dns_settingsa configuration that still sets it now fails with an "Unsupported argument" error; remove it and usenameservers.type(cloudflare.advancedto enable Advanced Nameservers,cloudflare.standardto disable). Oncloudflare_account_dns_settingsthe field lived inside the nestedzone_defaultsobject and is dropped silently on upgrade. No state upgrader is required. - zero_trust_gateway_policy: the
rule_settings.audit_sshblock has been removed; the Audit SSH action is no longer offered. Removeaudit_sshfrom any policy configuration. An automatic state migration drops a previously storedaudit_sshvalue. - worker_version: the Durable Object binding
retryblock (retry.max_attempts,retry.timeout_ms) has been removed from thecloudflare_worker_versionresource andcloudflare_worker_versionsdata source, following its removal from the API. Remove it from any configuration. - zero_trust_access_application, zero_trust_access_policy: the MFA authenticator value
ssh_piv_keyhas been replaced. Usepiv_keyfor PIV smart cards and the newssh_fido2_keyfor FIDO2 SSH authenticators. - precursor:
default_modehas been renamed tomodeandenforcement_rulestorules, and the enforcement enum valuesmin-frictionandmax-securityare replaced byoff,monitor, andarm. The import ID is now<zone_id>/<cloudflare_version>instead of<zone_id>. Rename the arguments, update any enum values and expressions, and adjustterraform importcommands. - ai_search_instance: the import ID is now
<account_id>/<namespace>/<id>instead of<account_id>/<id>. Update anyterraform importcommands to include the namespace. - organization: the
profileandparentattributes now force replacement — changing either destroys and recreates the organization. Review plans before applying. - share_recipient: the
organization_idattribute has been removed; configurations that still set it now fail with an "Unsupported argument" error. Remove it.
Notes
- cloudflare-go: the Go SDK dependency is updated to v7.15.0.
- zero_trust_access_policy: the computed
app_countattribute has been removed from the resource because it changes outside Terraform and produced perpetual diffs. The attribute remains available on thecloudflare_zero_trust_access_policydata source and list data source; update any expressions that referencedcloudflare_zero_trust_access_policy.<name>.app_count.
Features
New Resources
- cloudflare_ai_security: manage AI Security for Apps on a zone.
- cloudflare_ai_security_custom_topics: manage custom topic categories for AI Security content detection on a zone.
- cloudflare_log_explorer_dataset: manage a Log Explorer dataset for an account or zone, with optional field selection and filtering. Supports
terraform import. - cloudflare_zero_trust_casb_finding_type: manage a custom CASB finding type, including its asset class, vendor, and Rego detection expression. Supports
terraform import. - cloudflare_zero_trust_dlp_proximity_validator: manage a DLP proximity validator that raises match confidence using a keyword list. Supports
terraform import. - cloudflare_zero_trust_organization_trust_settings: manage cross-account Access trust for an organization, granting trust to all accounts or a specified set. Supports
terraform import. - cloudflare_zero_trust_cws_basic_auth_credential, cloudflare_zero_trust_cws_basic_auth_secret, cloudflare_zero_trust_cws_deployment, cloudflare_zero_trust_cws_domain_acl, cloudflare_zero_trust_cws_policy, cloudflare_zero_trust_cws_policy_set, cloudflare_zero_trust_cws_rego_metadata, cloudflare_zero_trust_cws_rego_module, cloudflare_zero_trust_cws_tenant_structure, cloudflare_zero_trust_cws_tenant_structure_node, cloudflare_zero_trust_cws_workload: manage CWS deployments, policy sets and Rego policies, domain ACLs, basic-auth credentials and secrets, tenant structures and nodes, and workloads. All support
terraform import.
New Data Sources
- Singular and list data sources for each new resource above (
cloudflare_ai_security,cloudflare_ai_security_custom_topics,cloudflare_zero_trust_casb_finding_type, thecloudflare_zero_trust_cws_*set,cloudflare_zero_trust_dlp_proximity_validator,cloudflare_zero_trust_organization_trust_settings);cloudflare_log_explorer_datasetships a list data source. - cloudflare_zero_trust_gateway_dns_destination_ips: new list data source returning an account's Gateway DNS destination IP pairs (
primary_ip,backup_ip,pair_type).
New Attributes
- ruleset:
webmcp_enabledandwebmcp_packson configuration rules. - worker_version:
containeradded to theexportsschema.
New Accepted Values
- zero_trust_access_application:
session_durationis now supported for infrastructure applications; it sets the maximum connection duration and must use whole seconds expressed withs,m, orh. - zero_trust_access_policy:
connection_rules.rdpclipboard format attributes acceptfilein addition totext. - account_dns_settings:
zone_defaults.nameservers.typeacceptscloudflare.advanced.
Bug Fixes
- account_subscription, stream_download: drop model fields missing from the schema that could break state reads.
- account_token: send null when
expires_on,not_before, orconditionis removed. - ai_gateway_dynamic_routing: preserve response envelopes and normalize version-graph responses.
- ai_search_instance: restore the generated resource and data sources; keep the data source
account_idoptional. - certificate_pack: warn when deletion times out; detect soft deletion.
- custom_ssl: rotate
legacy_customcertificates via PATCH instead of DELETE+POST. - dns_record: require
contentat plan time for record types that use it (A, AAAA, CNAME, MX, NS, OPENPGPKEY, PTR, TXT); ignore a trailing dot when comparing CNAME content. - email_routing_settings: apply
support_subaddresson create and update. - list, list_item: reject unnormalized IPs and CIDRs at plan time; check item attribute conflicts faster.
- load_balancer: preserve safe defaults in plans; give the v4 override
session_affinity_attributesits own source model. - logpush_job: skip destination config refresh.
- managed_transforms: remove duplicate schema fields and use the generated SDK response union.
- observatory_scheduled_test: support an optional region during import.
- snippet: do not crash when reading a snippet after import.
- workers_script: plan
startup_time_msas unknown when a deploy is planned; preservebindings_inheritduring the v0 state upgrade. - zone: correctly upgrade v5-shaped state stored at schema version 0, guarding against missing raw state, so early v5 state (v5.0–v5.16) is not re-transformed.
- zone_cache_variants: send the full value on update.
- zone_dns_settings: remove
foundation_dnsto match the DNS settings API. - zero_trust_access_application: stop inline policy selectors leaking across rules on refresh; nullify all-null
landing_page_designon refresh; default and normalize the login prompt on import and against false/null drift. - zero_trust_access_group, zero_trust_access_policy: stop selectors leaking across rules on refresh.
- zero_trust_access_identity_provider: default
login_page_auto_prompton read. - zero_trust_device_custom_profile: match split-tunnel entries by address or host.
- zero_trust_device_default_profile: keep
policy_idfrom state in plans. - zero_trust_gateway_policy: preserve precedence during state migration.
- zero_trust_organization: preserve omitted security settings.
- zero_trust_tunnel_cloudflared_config: stop
origin_request {}to null drift.