5.22.0 (2026-07-09)
Full Changelog: v5.21.1...v5.22.0
⚠ BREAKING CHANGES
The following upstream API schema changes required corresponding provider schema updates. Existing state files load without user action (the plugin framework silently drops attributes that no longer exist in the schema), but Terraform configurations that still reference removed attributes must be updated before terraform plan will succeed.
- ai_search_instance: the
source_params.web_crawler.crawl_optionsblock has been removed. Cloudflare's AI Search API dropped this field from its public schema in June 2026 and no longer accepts it, so keeping it in the provider would surface as a runtime API error rather than a plan-time error. Remove anycrawl_options { ... }block from yourcloudflare_ai_search_instanceconfigurations. (0843c7f) - zero_trust_access_ai_controls_mcp_portal: the
serversattribute changed from a list to a set. HCL syntax is unchanged (servers = [ ... ]), but element ordering is no longer significant — Terraform will no longer plan a change when only the order ofserversentries differs, and any code that relied on stable list ordering (e.g.element(..., 0)) may need to be updated. (099fc24)
Notes
- managed_transforms:
managed_request_headersandmanaged_response_headersare nowOptionalinstead ofRequired. Existing configurations that set both blocks keep working unchanged; you may now omit either block if you don't need to manage those transforms. (928173)
New Resources
- cloudflare_moq_relay: onboard new Terraform resource for Media over QUIC (MoQ) relays (9f2678c)
Features
- d1_database: add v4-to-v5 state upgrader (32f42b1)
- d1_database: add CRUD acceptance tests (3491e69)
- hyperdrive_config: add comprehensive acceptance tests (59399bb)
- oauth: add oauth_client resource CRUD support (154668f)
- workers_custom_domain: add acceptance tests for resource, data sources, and import (26e0092)
- workers_script: add exports and package_dependencies to schema (c15cef1)
- zero_trust_access_application: add
fileas valid RDP connection_rules value (2659e30) - zero_trust_access_short_lived_certificate: add MoveState handler for access_ca_certificate rename (v4 -> v5 auto-migration) (90f3324)
Bug Fixes
- dns_record: dedupe schema key and drop unused import (8faa422)
- dns_record: revert Meta model to jsontypes.Normalized to match schema (c0eea18)
- docs: add .md extension to migration guide links (7546f3e)
- hyperdrive_config: address review feedback (92ce892)
- load_balancer_pool: remove phantom flatten_cname from v4 source model (baa1b92)
- migration: correct v4 test configs and migration test harness for access_ca_certificate (2c47cf7)
- moq_relay: add schema Version: 500 (890b9f9)
- oauth: remove custom oauth visibility change (6b4a0ed)
- ruleset: add asset_name to v4 source schema so v4->v5 state upgrader parses correctly (baa1b92)
- worker_version: add CustomType to assets schema to match model (7e7e0d3)
- worker_version: use NestedObject accessors for Assets field (78d419f)
- workers_custom_domain: address review feedback (3271949)
- workers_script: resolve duplicate cache_options tag (c15cef1)
- zero_trust_list: handle ambiguous schema_version=0 state (v4 vs v5) (c010f78)
Chores
- api: force regen of moq_relay and email_routing_rule (a9e500a)
- ci: add 30m timeout to unit test shards (635637b)
- ci: trigger acceptance tests on release-tf-* branches (5921d00)
- go.mod: pin cloudflare-go to release-770 branch head for v5.22.0 (05272f3)
- internal: codegen related update (c7a96ca)
- use 'next' for Terraform builds (30c04e6)
Documentation
- list: fix missing comma in resource and data source examples (bfe1c34)
- regenerate provider docs; fix provider address and .stats.yml (cbde062)
- update documentation for moved blocks to Terraform 1.8 (d93208d)
- v5-migration: document session_duration behavior change for access policies (90c58a7)
- v5-upgrade: add destructive-behavior warning for app-scoped policy migration (1e832d6)
- v5-upgrade: document zone_id removal for access policies (831f0bb)