Skip to content

Commit 1557cc3

Browse files
authored
Merge branch 'main' into triage
2 parents bcbbe0c + d9a1497 commit 1557cc3

File tree

1,389 files changed

+20912
-5301
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,389 files changed

+20912
-5301
lines changed

.github/workflows/acceptance-tests.yml

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,11 +48,24 @@ jobs:
4848
#
4949
# - name: Pre-Sweeper
5050
# run: go test ./internal/services/... -v -sweep="1" -timeout 60m
51+
- name: Run Magic acceptance tests
52+
id: magic_acc_tests
53+
# tests need to be run one-by-one to avoid account lock contention
54+
run: go test -parallel=1 -p=1 -count=1 ./internal/services/{magic_wan_ipsec_tunnel,magic_wan_gre_tunnel,magic_wan_static_route} -run "^TestAcc"
55+
env:
56+
TF_ACC: 1
57+
continue-on-error: true
5158
- name: Run acceptance tests
59+
id: acc_tests
5260
# note: not all resources are covered here, only passing ones should be included here (for now).
53-
run: go test ./internal/services/{account,account_api_token_permission_groups,account_dns_settings,account_dns_settings_internal_view,account_permission_group,account_role,account_subscription,account_token,address_map,api_shield,api_shield_discovery_operation,api_shield_schema,api_token_permission_groups,argo_smart_routing,argo_tiered_caching,authenticated_origin_pulls,authenticated_origin_pulls_certificate,authenticated_origin_pulls_settings,botnet_feed_config_asn,byo_ip_prefix,calls_sfu_app,calls_turn_app,certificate_pack,cloud_connector_rules,cloudforce_one_request,cloudforce_one_request_asset,cloudforce_one_request_message,cloudforce_one_request_priority,content_scanning_expression,custom_pages,custom_ssl,dcv_delegation,dns_record,dns_settings_internal_view,dns_zone_transfers_acl,dns_zone_transfers_peer,dns_zone_transfers_tsig,email_routing_address,email_routing_catch_all,email_routing_dns,email_routing_rule,email_security_block_sender,email_security_impersonation_registry,email_security_trusted_domains,image,image_variant,ip_ranges,leaked_credential_check,leaked_credential_check_rule,list,logpull_retention,logpush_dataset_field,logpush_dataset_job,logpush_job,logpush_ownership_challenge,magic_network_monitoring_configuration,magic_network_monitoring_rule,magic_transit_connector,magic_transit_site,magic_transit_site_acl,magic_transit_site_lan,magic_transit_site_wan,magic_wan_gre_tunnel,magic_wan_ipsec_tunnel,magic_wan_static_route,observatory_scheduled_test,origin_ca_certificate,page_rule,page_shield_connections,page_shield_cookies,page_shield_policy,page_shield_scripts,pages_domain,pages_project,queue,queue_consumer,r2_bucket,r2_bucket_cors,r2_bucket_event_notification,r2_bucket_lifecycle,r2_bucket_lock,r2_bucket_sippy,r2_custom_domain,r2_managed_domain,regional_hostname,regional_tiered_cache,registrar_domain,resource_group,ruleset,snippet_rules,snippets,stream,stream_audio_track,stream_caption_language,stream_download,stream_key,stream_live_input,stream_watermark,stream_webhook,tiered_cache,turnstile_widget,url_normalization_settings,user,waiting_room_settings,workers_cron_trigger,workers_custom_domain,workers_deployment,workers_for_platforms_dispatch_namespace,workers_kv_namespace,workers_route,workers_script,workers_script_subdomain,zero_trust_access_infrastructure_target,zero_trust_access_key_configuration,zero_trust_access_mtls_hostname_settings,zero_trust_access_service_token,zero_trust_access_tag,zero_trust_device_custom_profile,zero_trust_device_default_profile,zero_trust_device_default_profile_certificates,zero_trust_device_managed_networks,zero_trust_dlp_custom_profile,zero_trust_dlp_dataset,zero_trust_dlp_entry,zero_trust_dlp_predefined_profile,zero_trust_gateway_app_types,zero_trust_gateway_categories,zero_trust_gateway_certificate,zero_trust_gateway_logging,zero_trust_gateway_proxy_endpoint,zero_trust_list,zero_trust_risk_behavior,zero_trust_risk_scoring_integration,zero_trust_tunnel_cloudflared,zero_trust_tunnel_cloudflared_route,zero_trust_tunnel_cloudflared_token,zero_trust_tunnel_warp_connector_token,zone,zone_cache_reserve,zone_cache_variants,zone_dns_settings,zone_hold,zone_lockdown,zone_setting,zone_subscription} -run "^TestAcc" -count 1
61+
run: ./scripts/run-ci-acceptance-tests
5462
env:
5563
TF_ACC: 1
64+
- name: Check Test Status
65+
if: ${{ steps.magic_acc_tests.outcome == 'failure' || steps.acc_tests.outcome == 'failure' }}
66+
run: exit 1
67+
68+
5669
# when all resources support sweepers, re-enable.
5770
#
5871
# - name: Post-Sweeper

.github/workflows/ci.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ on:
1515
jobs:
1616
lint:
1717
runs-on: ${{ github.repository == 'stainless-sdks/cloudflare-terraform' && 'depot-ubuntu-24.04' || 'lx64' }}
18+
if: github.event_name == 'push' || github.event.pull_request.head.repo.fork
1819
steps:
1920
- uses: actions/checkout@v4
2021

@@ -31,6 +32,7 @@ jobs:
3132

3233
test:
3334
runs-on: ${{ github.repository == 'stainless-sdks/cloudflare-terraform' && 'depot-ubuntu-24.04' || 'lx64' }}
35+
if: github.event_name == 'push' || github.event.pull_request.head.repo.fork
3436
steps:
3537
- uses: actions/checkout@v4
3638

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@
22
dist/
33
terraform-provider-cloudflare
44
go.work*
5+
.DS_Store

.grit/patterns/cloudflare_terraform_v5_attribute_renames_state.grit

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,18 @@ pattern cloudflare_terraform_v5_attribute_renames_state() {
5656
`{ $..., "mode": "managed", "type": "$resource_type", $..., "instances":[$instances] }` where {
5757
$resource_type <: contains `cloudflare_queue`,
5858
$instances <: any {
59-
contains `"name": $q` => `"queue_name": $q`
59+
contains `"name": $q` => `"queue_name": $q`,
60+
contains `"id": $id` => `"id": $id,
61+
"queue_id": $id`
62+
}
63+
},
64+
65+
// cloudflare_turnstile_widget
66+
`{ $..., "mode": "managed", "type": "$resource_type", $..., "instances":[$instances] }` where {
67+
$resource_type <: contains `cloudflare_turnstile_widget`,
68+
$instances <: any {
69+
contains `"id": $id` => `"id": $id,
70+
"sitekey": $id`
6071
}
6172
},
6273

.grit/patterns/cloudflare_terraform_v5_block_to_attribute_configuration.grit

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -138,12 +138,12 @@ pattern cloudflare_terraform_v5_block_to_attribute_configuration() {
138138
inline_cloudflare_block_to_list(`status_code_ttl`) as $block where { $block <: within `resource "cloudflare_ruleset" $_ { $_ }` },
139139
inline_cloudflare_block_to_list(`status_code_range`) as $block where { $block <: within `resource "cloudflare_ruleset" $_ { $_ }` },
140140
inline_cloudflare_block_to_list(`from_list`) as $block where { $block <: within `resource "cloudflare_ruleset" $_ { $_ }` },
141-
inline_cloudflare_block_to_list(`from_value`) as $block where { $block <: within `resource "cloudflare_ruleset" $_ { $_ }` },
142-
inline_cloudflare_block_to_list(`target_url`) as $block where { $block <: within `resource "cloudflare_ruleset" $_ { $_ }` },
141+
inline_cloudflare_block_to_map(`from_value`) as $block where { $block <: within `resource "cloudflare_ruleset" $_ { $_ }` },
142+
inline_cloudflare_block_to_map(`target_url`) as $block where { $block <: within `resource "cloudflare_ruleset" $_ { $_ }` },
143143
inline_cloudflare_block_to_list(`headers`) as $block where { $block <: within `resource "cloudflare_ruleset" $_ { $_ }` },
144144
inline_cloudflare_block_to_list(`matched_data`) as $block where { $block <: within `resource "cloudflare_ruleset" $_ { $_ }` },
145145
inline_cloudflare_block_to_list(`origin`) as $block where { $block <: within `resource "cloudflare_ruleset" $_ { $_ }` },
146-
inline_cloudflare_block_to_list(`overrides`) as $block where { $block <: within `resource "cloudflare_ruleset" $_ { $_ }` },
146+
inline_cloudflare_block_to_map(`overrides`) as $block where { $block <: within `resource "cloudflare_ruleset" $_ { $_ }` },
147147
inline_cloudflare_block_to_list(`categories`) as $block where { $block <: within `resource "cloudflare_ruleset" $_ { $_ }` },
148148
inline_cloudflare_block_to_map(`response`) as $block where { $block <: within `resource "cloudflare_ruleset" $_ { $_ }` },
149149
inline_cloudflare_block_to_list(`serve_stale`) as $block where { $block <: within `resource "cloudflare_ruleset" $_ { $_ }` },
@@ -153,7 +153,7 @@ pattern cloudflare_terraform_v5_block_to_attribute_configuration() {
153153
inline_cloudflare_block_to_list(`query`) as $block where { $block <: within `resource "cloudflare_ruleset" $_ { $_ }` },
154154
inline_cloudflare_block_to_list(`exposed_credential_check`) as $block where { $block <: within `resource "cloudflare_ruleset" $_ { $_ }` },
155155
inline_cloudflare_block_to_map(`logging`) as $block where { $block <: within `resource "cloudflare_ruleset" $_ { $_ }` },
156-
inline_cloudflare_block_to_list(`ratelimit`) as $block where { $block <: within `resource "cloudflare_ruleset" $_ { $_ }` },
156+
inline_cloudflare_block_to_map(`ratelimit`) as $block where { $block <: within `resource "cloudflare_ruleset" $_ { $_ }` },
157157
inline_cloudflare_block_to_map(`dns`) as $block where { $block <: within `resource "cloudflare_spectrum_application" $_ { $_ }` },
158158
inline_cloudflare_block_to_map(`edge_ips`) as $block where { $block <: within `resource "cloudflare_spectrum_application" $_ { $_ }` },
159159
inline_cloudflare_block_to_map(`origin_dns`) as $block where { $block <: within `resource "cloudflare_spectrum_application" $_ { $_ }` },

.grit/patterns/cloudflare_terraform_v5_resource_renames_state.grit

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,12 @@ pattern cloudflare_terraform_v5_resource_renames_state() {
4040
`"cloudflare_tunnel_config"` => `"cloudflare_zero_trust_tunnel_cloudflared_config"`,
4141
`"cloudflare_tunnel_route"` => `"cloudflare_zero_trust_tunnel_cloudflared_route"`,
4242
`"cloudflare_tunnel_virtual_network"` => `"cloudflare_zero_trust_tunnel_cloudflared_virtual_network"`,
43+
`"cloudflare_worker_cron_trigger"` => `"cloudflare_workers_cron_trigger"`,
44+
`"cloudflare_worker_domain"` => `"cloudflare_workers_custom_domain"`,
45+
`"cloudflare_worker_script"` => `"cloudflare_workers_script"`,
46+
`"cloudflare_worker_secret"` => `"cloudflare_workers_secret"`,
47+
`"cloudflare_workers_for_platforms_namespace"` => `"cloudflare_workers_for_platforms_dispatch_namespace"`,
48+
`"cloudflare_managed_headers"` => `"cloudflare_managed_transforms"`,
4349

4450
// handle dependencies
4551
`"cloudflare_access_application.$dep"` => `"cloudflare_zero_trust_access_application.$dep"`,

.grit/patterns/test_v5.md

Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,137 @@ resource "cloudflare_access_policy" "test_policy" {
108108
}
109109
```
110110

111+
## test-rulesets: collapse list, nested blocks mapped
112+
```hcl
113+
resource "cloudflare_ruleset" "test_ruleset" {
114+
kind = "zone"
115+
name = "test"
116+
phase = "http_request_dynamic_redirect"
117+
zone_id = "f037e56e89293a057740de681ac9abbe"
118+
119+
rules {
120+
action = "redirect"
121+
action_parameters {
122+
from_value {
123+
preserve_query_string = true
124+
status_code = 301
125+
target_url {
126+
value = "https://example.com"
127+
}
128+
}
129+
}
130+
description = "foo"
131+
enabled = false
132+
expression = "(http.host in {\"www.foo.com\"} and (http.user_agent contains \"foo\" or http.user_agent contains \"foo\"))"
133+
ref = "f037e56e89293a057740de681ac9abbe"
134+
}
135+
rules {
136+
action = "redirect"
137+
action_parameters {
138+
from_value {
139+
preserve_query_string = false
140+
status_code = 301
141+
target_url {
142+
value = "https://example.com"
143+
}
144+
}
145+
}
146+
description = "foo"
147+
enabled = false
148+
expression = "(http.host in {\"www.foo.com\"} and (http.user_agent contains \"foo\" or http.user_agent contains \"foo\"))"
149+
ref = "f037e56e89293a057740de681ac9abbe"
150+
}
151+
rules {
152+
action = "execute"
153+
action_parameters {
154+
id = "f037e56e89293a057740de681ac9abbe"
155+
overrides {
156+
enabled = true
157+
categories {
158+
category = "drupal"
159+
action = "managed_challenge"
160+
}
161+
categories {
162+
category = "command-injection"
163+
action = "block"
164+
}
165+
categories {
166+
category = "apache-struts"
167+
action = "challenge"
168+
}
169+
}
170+
}
171+
enabled = true
172+
expression = "true"
173+
}
174+
}
175+
```
176+
```hcl
177+
resource "cloudflare_ruleset" "test_ruleset" {
178+
kind = "zone"
179+
name = "test"
180+
phase = "http_request_dynamic_redirect"
181+
zone_id = "f037e56e89293a057740de681ac9abbe"
182+
183+
rules = [{
184+
action = "redirect"
185+
action_parameters = {
186+
from_value = {
187+
preserve_query_string = true
188+
status_code = 301
189+
target_url = {
190+
value = "https://example.com"
191+
}
192+
}
193+
}
194+
description = "foo"
195+
enabled = false
196+
expression = "(http.host in {\"www.foo.com\"} and (http.user_agent contains \"foo\" or http.user_agent contains \"foo\"))"
197+
ref = "f037e56e89293a057740de681ac9abbe"
198+
},
199+
{
200+
action = "redirect"
201+
action_parameters = {
202+
from_value = {
203+
preserve_query_string = false
204+
status_code = 301
205+
target_url = {
206+
value = "https://example.com"
207+
}
208+
}
209+
}
210+
description = "foo"
211+
enabled = false
212+
expression = "(http.host in {\"www.foo.com\"} and (http.user_agent contains \"foo\" or http.user_agent contains \"foo\"))"
213+
ref = "f037e56e89293a057740de681ac9abbe"
214+
},
215+
{
216+
action = "execute"
217+
action_parameters = {
218+
id = "f037e56e89293a057740de681ac9abbe"
219+
overrides = {
220+
enabled = true
221+
categories = [{
222+
category = "drupal"
223+
action = "managed_challenge"
224+
},
225+
{
226+
category = "command-injection"
227+
action = "block"
228+
},
229+
{
230+
category = "apache-struts"
231+
action = "challenge"
232+
}]
233+
234+
235+
}
236+
}
237+
enabled = true
238+
expression = "true"
239+
}]
240+
}
241+
```
111242
## test: single blocks
112243

113244
Blocks which are not lists should become attribute objects. This is based on the schema, not the number of blocks.

.release-please-manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
".": "5.6.0"
2+
".": "5.8.2"
33
}

.stats.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
configured_endpoints: 1752
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-b9cf8d97f015bd3c7509f68b4dea2c37dc5f97183372064702ea540b6dd999f8.yml
3-
openapi_spec_hash: 83243c9ee06f88d0fa91e9b185d8a42e
4-
config_hash: cce40d4d65a4d67d5df957a75a15b567
1+
configured_endpoints: 1783
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-e408a7cdec2dae3d1a18842dcc59280c56050fb042569139aec3fe0f12e0d461.yml
3+
openapi_spec_hash: 7e210c76f5dd4c79b3e67204ad279b81
4+
config_hash: a433f3793b734bc6fcc9d9e0c27ff8c2

0 commit comments

Comments
 (0)