Skip to content

Commit 83325df

Browse files
committed
feat(zero_trust_access_policy): v4 to v5 migration
1 parent 274fc8f commit 83325df

File tree

11 files changed

+2723
-1
lines changed

11 files changed

+2723
-1
lines changed

integration/v4_to_v5/integration_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,9 @@ import (
2525
_ "github.com/cloudflare/tf-migrate/internal/resources/workers_kv_namespace"
2626
_ "github.com/cloudflare/tf-migrate/internal/resources/workers_script"
2727
_ "github.com/cloudflare/tf-migrate/internal/resources/zero_trust_access_group"
28-
_ "github.com/cloudflare/tf-migrate/internal/resources/zero_trust_access_service_token"
2928
_ "github.com/cloudflare/tf-migrate/internal/resources/zero_trust_access_identity_provider"
29+
_ "github.com/cloudflare/tf-migrate/internal/resources/zero_trust_access_policy"
30+
_ "github.com/cloudflare/tf-migrate/internal/resources/zero_trust_access_service_token"
3031
_ "github.com/cloudflare/tf-migrate/internal/resources/zero_trust_dlp_custom_profile"
3132
_ "github.com/cloudflare/tf-migrate/internal/resources/zero_trust_gateway_policy"
3233
_ "github.com/cloudflare/tf-migrate/internal/resources/zero_trust_list"
8 KB
Binary file not shown.
Lines changed: 257 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,257 @@
1+
{
2+
"lineage": "test-zero-trust-access-policy-lineage",
3+
"outputs": {},
4+
"resources": [
5+
{
6+
"instances": [
7+
{
8+
"attributes": {
9+
"account_id": "test-account-id",
10+
"id": "policy-minimal-id",
11+
"name": "Minimal Policy",
12+
"decision": "allow",
13+
"include": [{"everyone": true}],
14+
"session_duration": "24h"
15+
},
16+
"schema_version": 0
17+
}
18+
],
19+
"mode": "managed",
20+
"name": "minimal",
21+
"provider": "provider[\"registry.terraform.io/cloudflare/cloudflare\"]",
22+
"type": "cloudflare_zero_trust_access_policy"
23+
},
24+
{
25+
"instances": [
26+
{
27+
"attributes": {
28+
"account_id": "test-account-id",
29+
"id": "policy-deprecated-id",
30+
"name": "Policy with Deprecated Fields",
31+
"decision": "allow",
32+
"include": [{"everyone": true}],
33+
"session_duration": "24h"
34+
},
35+
"schema_version": 0
36+
}
37+
],
38+
"mode": "managed",
39+
"name": "with_deprecated_fields",
40+
"provider": "provider[\"registry.terraform.io/cloudflare/cloudflare\"]",
41+
"type": "cloudflare_zero_trust_access_policy"
42+
},
43+
{
44+
"instances": [
45+
{
46+
"attributes": {
47+
"account_id": "test-account-id",
48+
"id": "policy-email-id",
49+
"name": "Email Array Expansion",
50+
"decision": "allow",
51+
"include": [{"email": ["alice@example.com", "bob@example.com"]}],
52+
"session_duration": "24h"
53+
},
54+
"schema_version": 0
55+
}
56+
],
57+
"mode": "managed",
58+
"name": "email_expansion",
59+
"provider": "provider[\"registry.terraform.io/cloudflare/cloudflare\"]",
60+
"type": "cloudflare_zero_trust_access_policy"
61+
},
62+
{
63+
"instances": [
64+
{
65+
"attributes": {
66+
"account_id": "test-account-id",
67+
"id": "policy-group-id",
68+
"name": "Group Array Expansion",
69+
"decision": "allow",
70+
"include": [{"group": ["group-id-1", "group-id-2"]}],
71+
"session_duration": "24h"
72+
},
73+
"schema_version": 0
74+
}
75+
],
76+
"mode": "managed",
77+
"name": "group_expansion",
78+
"provider": "provider[\"registry.terraform.io/cloudflare/cloudflare\"]",
79+
"type": "cloudflare_zero_trust_access_policy"
80+
},
81+
{
82+
"instances": [
83+
{
84+
"attributes": {
85+
"account_id": "test-account-id",
86+
"id": "policy-mixed-id",
87+
"name": "Mixed Conditions",
88+
"decision": "allow",
89+
"include": [{"everyone": true, "email": ["admin@example.com"], "group": ["admins"]}],
90+
"session_duration": "24h"
91+
},
92+
"schema_version": 0
93+
}
94+
],
95+
"mode": "managed",
96+
"name": "mixed_conditions",
97+
"provider": "provider[\"registry.terraform.io/cloudflare/cloudflare\"]",
98+
"type": "cloudflare_zero_trust_access_policy"
99+
},
100+
{
101+
"instances": [
102+
{
103+
"attributes": {
104+
"account_id": "test-account-id",
105+
"id": "policy-github-id",
106+
"name": "GitHub Teams",
107+
"decision": "allow",
108+
"include": [{"github": [{"name": "my-org", "teams": ["engineering", "devops"], "identity_provider_id": "provider-123"}]}],
109+
"session_duration": "24h"
110+
},
111+
"schema_version": 0
112+
}
113+
],
114+
"mode": "managed",
115+
"name": "github_teams",
116+
"provider": "provider[\"registry.terraform.io/cloudflare/cloudflare\"]",
117+
"type": "cloudflare_zero_trust_access_policy"
118+
},
119+
{
120+
"instances": [
121+
{
122+
"attributes": {
123+
"account_id": "test-account-id",
124+
"id": "policy-exclude-id",
125+
"name": "Exclude and Require",
126+
"decision": "allow",
127+
"include": [{"email": ["allowed@example.com"]}],
128+
"exclude": [{"geo": ["CN", "RU"]}],
129+
"require": [{"certificate": true}],
130+
"session_duration": "24h"
131+
},
132+
"schema_version": 0
133+
}
134+
],
135+
"mode": "managed",
136+
"name": "exclude_require",
137+
"provider": "provider[\"registry.terraform.io/cloudflare/cloudflare\"]",
138+
"type": "cloudflare_zero_trust_access_policy"
139+
},
140+
{
141+
"instances": [
142+
{
143+
"attributes": {
144+
"account_id": "test-account-id",
145+
"id": "policy-ip-id",
146+
"name": "IP and Email Domain",
147+
"decision": "allow",
148+
"include": [{"ip": ["192.168.1.0/24", "10.0.0.0/8"], "email_domain": ["example.com", "company.org"]}],
149+
"session_duration": "24h"
150+
},
151+
"schema_version": 0
152+
}
153+
],
154+
"mode": "managed",
155+
"name": "ip_email_domain",
156+
"provider": "provider[\"registry.terraform.io/cloudflare/cloudflare\"]",
157+
"type": "cloudflare_zero_trust_access_policy"
158+
},
159+
{
160+
"instances": [
161+
{
162+
"attributes": {
163+
"account_id": "test-account-id",
164+
"id": "policy-approval-id",
165+
"name": "Policy with Approval Group",
166+
"decision": "allow",
167+
"include": [{"everyone": true}],
168+
"approval_groups": [{
169+
"approvals_needed": 2.0,
170+
"email_addresses": ["manager@example.com", "director@example.com"]
171+
}],
172+
"session_duration": "24h"
173+
},
174+
"schema_version": 0
175+
}
176+
],
177+
"mode": "managed",
178+
"name": "with_approval_group",
179+
"provider": "provider[\"registry.terraform.io/cloudflare/cloudflare\"]",
180+
"type": "cloudflare_zero_trust_access_policy"
181+
},
182+
{
183+
"instances": [
184+
{
185+
"attributes": {
186+
"account_id": "test-account-id",
187+
"id": "policy-ssh-id",
188+
"name": "SSH Policy with Connection Rules",
189+
"decision": "allow",
190+
"include": [{"everyone": true}],
191+
"connection_rules": {
192+
"ssh": {
193+
"usernames": ["admin", "deploy"],
194+
"allow_email_alias": true
195+
}
196+
},
197+
"session_duration": "24h"
198+
},
199+
"schema_version": 0
200+
}
201+
],
202+
"mode": "managed",
203+
"name": "with_connection_rules",
204+
"provider": "provider[\"registry.terraform.io/cloudflare/cloudflare\"]",
205+
"type": "cloudflare_zero_trust_access_policy"
206+
},
207+
{
208+
"instances": [
209+
{
210+
"attributes": {
211+
"account_id": "test-account-id",
212+
"id": "policy-complex-id",
213+
"name": "Complex Policy",
214+
"decision": "allow",
215+
"session_duration": "12h",
216+
"include": [{
217+
"everyone": true,
218+
"email": ["user1@example.com", "user2@example.com"],
219+
"group": ["group-1", "group-2"],
220+
"github": [{
221+
"name": "acme-corp",
222+
"teams": ["platform", "security", "devops"],
223+
"identity_provider_id": "idp-123"
224+
}]
225+
}],
226+
"exclude": [{
227+
"email_domain": ["competitor.com"],
228+
"geo": ["CN"]
229+
}],
230+
"require": [{
231+
"certificate": true,
232+
"group": ["mfa-enabled"]
233+
}],
234+
"approval_groups": [{
235+
"approvals_needed": 3.0,
236+
"email_addresses": ["ceo@example.com", "cto@example.com"]
237+
}],
238+
"connection_rules": {
239+
"ssh": {
240+
"usernames": ["root", "admin"],
241+
"allow_email_alias": true
242+
}
243+
}
244+
},
245+
"schema_version": 0
246+
}
247+
],
248+
"mode": "managed",
249+
"name": "complex",
250+
"provider": "provider[\"registry.terraform.io/cloudflare/cloudflare\"]",
251+
"type": "cloudflare_zero_trust_access_policy"
252+
}
253+
],
254+
"serial": 1,
255+
"terraform_version": "1.5.0",
256+
"version": 4
257+
}

0 commit comments

Comments
 (0)