pulumi-webflow 0.0.0__py3-none-any.whl → 0.9.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pulumi_webflow/collection.py +10 -0
- pulumi_webflow/registered_script.py +28 -19
- {pulumi_webflow-0.0.0.dist-info → pulumi_webflow-0.9.0.dist-info}/METADATA +37 -174
- {pulumi_webflow-0.0.0.dist-info → pulumi_webflow-0.9.0.dist-info}/RECORD +6 -6
- {pulumi_webflow-0.0.0.dist-info → pulumi_webflow-0.9.0.dist-info}/WHEEL +0 -0
- {pulumi_webflow-0.0.0.dist-info → pulumi_webflow-0.9.0.dist-info}/top_level.txt +0 -0
pulumi_webflow/collection.py
CHANGED
|
@@ -153,6 +153,7 @@ class Collection(pulumi.CustomResource):
|
|
|
153
153
|
raise TypeError("Missing required property 'site_id'")
|
|
154
154
|
__props__.__dict__["site_id"] = site_id
|
|
155
155
|
__props__.__dict__["slug"] = slug
|
|
156
|
+
__props__.__dict__["collection_id"] = None
|
|
156
157
|
__props__.__dict__["created_on"] = None
|
|
157
158
|
__props__.__dict__["last_updated"] = None
|
|
158
159
|
super(Collection, __self__).__init__(
|
|
@@ -177,6 +178,7 @@ class Collection(pulumi.CustomResource):
|
|
|
177
178
|
|
|
178
179
|
__props__ = CollectionArgs.__new__(CollectionArgs)
|
|
179
180
|
|
|
181
|
+
__props__.__dict__["collection_id"] = None
|
|
180
182
|
__props__.__dict__["created_on"] = None
|
|
181
183
|
__props__.__dict__["display_name"] = None
|
|
182
184
|
__props__.__dict__["last_updated"] = None
|
|
@@ -185,6 +187,14 @@ class Collection(pulumi.CustomResource):
|
|
|
185
187
|
__props__.__dict__["slug"] = None
|
|
186
188
|
return Collection(resource_name, opts=opts, __props__=__props__)
|
|
187
189
|
|
|
190
|
+
@_builtins.property
|
|
191
|
+
@pulumi.getter(name="collectionId")
|
|
192
|
+
def collection_id(self) -> pulumi.Output[Optional[_builtins.str]]:
|
|
193
|
+
"""
|
|
194
|
+
The Webflow-assigned collection ID (24-character lowercase hexadecimal string). Use this ID when creating CollectionField or CollectionItem resources. This is automatically assigned when the collection is created and is read-only.
|
|
195
|
+
"""
|
|
196
|
+
return pulumi.get(self, "collection_id")
|
|
197
|
+
|
|
188
198
|
@_builtins.property
|
|
189
199
|
@pulumi.getter(name="createdOn")
|
|
190
200
|
def created_on(self) -> pulumi.Output[Optional[_builtins.str]]:
|
|
@@ -23,24 +23,25 @@ class RegisteredScriptArgs:
|
|
|
23
23
|
hosted_location: pulumi.Input[_builtins.str],
|
|
24
24
|
integrity_hash: pulumi.Input[_builtins.str],
|
|
25
25
|
site_id: pulumi.Input[_builtins.str],
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
can_copy: Optional[pulumi.Input[_builtins.bool]] = None,
|
|
27
|
+
version: Optional[pulumi.Input[_builtins.str]] = None):
|
|
28
28
|
"""
|
|
29
29
|
The set of arguments for constructing a RegisteredScript resource.
|
|
30
30
|
:param pulumi.Input[_builtins.str] display_name: The user-facing name for the script (1-50 alphanumeric characters). This name is used to identify the script in the Webflow interface. Only letters (A-Z, a-z) and numbers (0-9) are allowed. Example valid names: 'CmsSlider', 'AnalyticsScript', 'MyCustomScript123'.
|
|
31
31
|
:param pulumi.Input[_builtins.str] hosted_location: The URI for the externally hosted script (e.g., 'https://cdn.example.com/my-script.js'). Must be a valid HTTP or HTTPS URL. The script should be publicly accessible and properly configured for cross-origin requests.
|
|
32
32
|
:param pulumi.Input[_builtins.str] integrity_hash: The Sub-Resource Integrity (SRI) hash for the script. Format: 'sha384-<hash>', 'sha256-<hash>', or 'sha512-<hash>'. SRI hashes help ensure that the script hasn't been modified in transit. You can generate an SRI hash using https://www.srihash.org/
|
|
33
33
|
:param pulumi.Input[_builtins.str] site_id: The Webflow site ID (24-character lowercase hexadecimal string, e.g., '5f0c8c9e1c9d440000e8d8c3'). You can find your site ID in the Webflow dashboard under Site Settings. This field will be validated before making any API calls.
|
|
34
|
-
:param pulumi.Input[_builtins.str] version: The Semantic Version (SemVer) string for the script (e.g., '1.0.0', '2.3.1'). This helps track different versions of your script. See https://semver.org/ for more information on semantic versioning.
|
|
35
34
|
:param pulumi.Input[_builtins.bool] can_copy: Indicates whether the script can be copied when the site is duplicated. Default: false. When true, the script will be included when creating a copy of the site.
|
|
35
|
+
:param pulumi.Input[_builtins.str] version: The Semantic Version (SemVer) string for the script (e.g., '1.0.0', '2.3.1'). This helps track different versions of your script. See https://semver.org/ for more information on semantic versioning.
|
|
36
36
|
"""
|
|
37
37
|
pulumi.set(__self__, "display_name", display_name)
|
|
38
38
|
pulumi.set(__self__, "hosted_location", hosted_location)
|
|
39
39
|
pulumi.set(__self__, "integrity_hash", integrity_hash)
|
|
40
40
|
pulumi.set(__self__, "site_id", site_id)
|
|
41
|
-
pulumi.set(__self__, "version", version)
|
|
42
41
|
if can_copy is not None:
|
|
43
42
|
pulumi.set(__self__, "can_copy", can_copy)
|
|
43
|
+
if version is not None:
|
|
44
|
+
pulumi.set(__self__, "version", version)
|
|
44
45
|
|
|
45
46
|
@_builtins.property
|
|
46
47
|
@pulumi.getter(name="displayName")
|
|
@@ -90,18 +91,6 @@ class RegisteredScriptArgs:
|
|
|
90
91
|
def site_id(self, value: pulumi.Input[_builtins.str]):
|
|
91
92
|
pulumi.set(self, "site_id", value)
|
|
92
93
|
|
|
93
|
-
@_builtins.property
|
|
94
|
-
@pulumi.getter
|
|
95
|
-
def version(self) -> pulumi.Input[_builtins.str]:
|
|
96
|
-
"""
|
|
97
|
-
The Semantic Version (SemVer) string for the script (e.g., '1.0.0', '2.3.1'). This helps track different versions of your script. See https://semver.org/ for more information on semantic versioning.
|
|
98
|
-
"""
|
|
99
|
-
return pulumi.get(self, "version")
|
|
100
|
-
|
|
101
|
-
@version.setter
|
|
102
|
-
def version(self, value: pulumi.Input[_builtins.str]):
|
|
103
|
-
pulumi.set(self, "version", value)
|
|
104
|
-
|
|
105
94
|
@_builtins.property
|
|
106
95
|
@pulumi.getter(name="canCopy")
|
|
107
96
|
def can_copy(self) -> Optional[pulumi.Input[_builtins.bool]]:
|
|
@@ -114,6 +103,18 @@ class RegisteredScriptArgs:
|
|
|
114
103
|
def can_copy(self, value: Optional[pulumi.Input[_builtins.bool]]):
|
|
115
104
|
pulumi.set(self, "can_copy", value)
|
|
116
105
|
|
|
106
|
+
@_builtins.property
|
|
107
|
+
@pulumi.getter
|
|
108
|
+
def version(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
109
|
+
"""
|
|
110
|
+
The Semantic Version (SemVer) string for the script (e.g., '1.0.0', '2.3.1'). This helps track different versions of your script. See https://semver.org/ for more information on semantic versioning.
|
|
111
|
+
"""
|
|
112
|
+
return pulumi.get(self, "version")
|
|
113
|
+
|
|
114
|
+
@version.setter
|
|
115
|
+
def version(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
116
|
+
pulumi.set(self, "version", value)
|
|
117
|
+
|
|
117
118
|
|
|
118
119
|
@pulumi.type_token("webflow:index:RegisteredScript")
|
|
119
120
|
class RegisteredScript(pulumi.CustomResource):
|
|
@@ -192,11 +193,10 @@ class RegisteredScript(pulumi.CustomResource):
|
|
|
192
193
|
if site_id is None and not opts.urn:
|
|
193
194
|
raise TypeError("Missing required property 'site_id'")
|
|
194
195
|
__props__.__dict__["site_id"] = site_id
|
|
195
|
-
if version is None and not opts.urn:
|
|
196
|
-
raise TypeError("Missing required property 'version'")
|
|
197
196
|
__props__.__dict__["version"] = version
|
|
198
197
|
__props__.__dict__["created_on"] = None
|
|
199
198
|
__props__.__dict__["last_updated"] = None
|
|
199
|
+
__props__.__dict__["script_id"] = None
|
|
200
200
|
super(RegisteredScript, __self__).__init__(
|
|
201
201
|
'webflow:index:RegisteredScript',
|
|
202
202
|
resource_name,
|
|
@@ -225,6 +225,7 @@ class RegisteredScript(pulumi.CustomResource):
|
|
|
225
225
|
__props__.__dict__["hosted_location"] = None
|
|
226
226
|
__props__.__dict__["integrity_hash"] = None
|
|
227
227
|
__props__.__dict__["last_updated"] = None
|
|
228
|
+
__props__.__dict__["script_id"] = None
|
|
228
229
|
__props__.__dict__["site_id"] = None
|
|
229
230
|
__props__.__dict__["version"] = None
|
|
230
231
|
return RegisteredScript(resource_name, opts=opts, __props__=__props__)
|
|
@@ -277,6 +278,14 @@ class RegisteredScript(pulumi.CustomResource):
|
|
|
277
278
|
"""
|
|
278
279
|
return pulumi.get(self, "last_updated")
|
|
279
280
|
|
|
281
|
+
@_builtins.property
|
|
282
|
+
@pulumi.getter(name="scriptId")
|
|
283
|
+
def script_id(self) -> pulumi.Output[Optional[_builtins.str]]:
|
|
284
|
+
"""
|
|
285
|
+
The Webflow-assigned script ID (read-only). This is typically the lowercase version of displayName. Use this value when referencing the script in SiteCustomCode or PageCustomCode resources.
|
|
286
|
+
"""
|
|
287
|
+
return pulumi.get(self, "script_id")
|
|
288
|
+
|
|
280
289
|
@_builtins.property
|
|
281
290
|
@pulumi.getter(name="siteId")
|
|
282
291
|
def site_id(self) -> pulumi.Output[_builtins.str]:
|
|
@@ -287,7 +296,7 @@ class RegisteredScript(pulumi.CustomResource):
|
|
|
287
296
|
|
|
288
297
|
@_builtins.property
|
|
289
298
|
@pulumi.getter
|
|
290
|
-
def version(self) -> pulumi.Output[_builtins.str]:
|
|
299
|
+
def version(self) -> pulumi.Output[Optional[_builtins.str]]:
|
|
291
300
|
"""
|
|
292
301
|
The Semantic Version (SemVer) string for the script (e.g., '1.0.0', '2.3.1'). This helps track different versions of your script. See https://semver.org/ for more information on semantic versioning.
|
|
293
302
|
"""
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pulumi_webflow
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.9.0
|
|
4
4
|
Summary: Unofficial community-maintained Pulumi provider for managing Webflow sites, redirects, and robots.txt. Not affiliated with Pulumi Corporation or Webflow, Inc.
|
|
5
|
-
Home-page: https://github.com/
|
|
5
|
+
Home-page: https://github.com/JDetmar/pulumi-webflow
|
|
6
|
+
Project-URL: Repository, https://github.com/JDetmar/pulumi-webflow
|
|
6
7
|
Requires-Python: >=3.9
|
|
7
8
|
Description-Content-Type: text/markdown
|
|
8
9
|
Requires-Dist: parver>=0.2.1
|
|
@@ -12,14 +13,20 @@ Requires-Dist: typing-extensions<5,>=4.11; python_version < "3.11"
|
|
|
12
13
|
Dynamic: description
|
|
13
14
|
Dynamic: description-content-type
|
|
14
15
|
Dynamic: home-page
|
|
16
|
+
Dynamic: project-url
|
|
15
17
|
Dynamic: requires-dist
|
|
16
18
|
Dynamic: requires-python
|
|
17
19
|
Dynamic: summary
|
|
18
20
|
|
|
19
21
|
# Webflow Pulumi Provider
|
|
20
22
|
|
|
21
|
-
[](https://github.com/JDetmar/pulumi-webflow/actions)
|
|
22
24
|
[](https://opensource.org/licenses/MIT)
|
|
25
|
+
[](https://www.npmjs.com/package/@jdetmar/pulumi-webflow)
|
|
26
|
+
[](https://pypi.org/project/pulumi-webflow/)
|
|
27
|
+
[](https://www.nuget.org/packages/Community.Pulumi.Webflow)
|
|
28
|
+
[](https://pkg.go.dev/github.com/JDetmar/pulumi-webflow/sdk/go/webflow)
|
|
29
|
+
[](https://goreportcard.com/report/github.com/JDetmar/pulumi-webflow)
|
|
23
30
|
|
|
24
31
|
> **⚠️ Unofficial Community Provider**
|
|
25
32
|
>
|
|
@@ -27,15 +34,15 @@ Dynamic: summary
|
|
|
27
34
|
>
|
|
28
35
|
> - **Not an official product** - Created and maintained by the community
|
|
29
36
|
> - **No warranties** - Provided "as-is" under the MIT License
|
|
30
|
-
> - **Community support only** - Issues and questions via [GitHub](https://github.com/
|
|
37
|
+
> - **Community support only** - Issues and questions via [GitHub](https://github.com/JDetmar/pulumi-webflow/issues)
|
|
31
38
|
|
|
32
39
|
**Manage your Webflow sites and resources as code using Pulumi**
|
|
33
40
|
|
|
34
|
-
The Webflow Pulumi Provider lets you programmatically manage Webflow resources
|
|
41
|
+
The Webflow Pulumi Provider lets you programmatically manage Webflow resources using the same Pulumi infrastructure-as-code approach you use for cloud resources. Manage sites, pages, collections, redirects, webhooks, assets, and more. Deploy, preview, and destroy Webflow infrastructure alongside your other cloud deployments.
|
|
35
42
|
|
|
36
43
|
## What You Can Do
|
|
37
44
|
|
|
38
|
-
- **Deploy Webflow resources as code** - Define sites, redirects,
|
|
45
|
+
- **Deploy Webflow resources as code** - Define sites, pages, collections, redirects, webhooks, assets, and more in TypeScript, Python, Go, C#, or Java
|
|
39
46
|
- **Preview before deploying** - Use `pulumi preview` to see exactly what will change
|
|
40
47
|
- **Manage multiple environments** - Create separate stacks for dev, staging, and production
|
|
41
48
|
- **Version control your infrastructure** - Track all changes in Git
|
|
@@ -45,10 +52,10 @@ The Webflow Pulumi Provider lets you programmatically manage Webflow resources (
|
|
|
45
52
|
|
|
46
53
|
1. [Prerequisites](#prerequisites)
|
|
47
54
|
2. [Installation](#installation)
|
|
48
|
-
3. [Quick Start](#quick-start)
|
|
55
|
+
3. [Quick Start](#quick-start) - Start here
|
|
49
56
|
4. [Authentication](#authentication)
|
|
50
57
|
5. [Verification](#verification)
|
|
51
|
-
6. [
|
|
58
|
+
6. [Get Help](#get-help)
|
|
52
59
|
7. [Version Control & Audit Trail](#version-control--audit-trail)
|
|
53
60
|
8. [Multi-Language Examples](#multi-language-examples)
|
|
54
61
|
9. [Next Steps](#next-steps)
|
|
@@ -65,8 +72,8 @@ Before you begin, make sure you have:
|
|
|
65
72
|
- Verify installation: `pulumi version` (requires v3.0 or later)
|
|
66
73
|
|
|
67
74
|
### 2. **Programming Language Runtime** (choose at least one)
|
|
68
|
-
- **TypeScript**: [Node.js](https://nodejs.org/)
|
|
69
|
-
- **Python**: [Python](https://www.python.org/downloads/) 3.
|
|
75
|
+
- **TypeScript**: [Node.js](https://nodejs.org/) 18.x or later
|
|
76
|
+
- **Python**: [Python](https://www.python.org/downloads/) 3.9 or later
|
|
70
77
|
- **Go**: [Go](https://golang.org/dl/) 1.21 or later
|
|
71
78
|
- **C#**: [.NET](https://dotnet.microsoft.com/download) 6.0 or later
|
|
72
79
|
- **Java**: [Java](https://adoptopenjdk.net/) 11 or later
|
|
@@ -144,7 +151,7 @@ Replace the contents of `index.ts` with:
|
|
|
144
151
|
|
|
145
152
|
```typescript
|
|
146
153
|
import * as pulumi from "@pulumi/pulumi";
|
|
147
|
-
import * as webflow from "pulumi-webflow";
|
|
154
|
+
import * as webflow from "@jdetmar/pulumi-webflow";
|
|
148
155
|
|
|
149
156
|
// Get config values
|
|
150
157
|
const config = new pulumi.Config();
|
|
@@ -304,7 +311,7 @@ jobs:
|
|
|
304
311
|
runs-on: ubuntu-latest
|
|
305
312
|
steps:
|
|
306
313
|
- uses: actions/checkout@v3
|
|
307
|
-
- uses: pulumi/actions@
|
|
314
|
+
- uses: pulumi/actions@v6
|
|
308
315
|
with:
|
|
309
316
|
command: up
|
|
310
317
|
```
|
|
@@ -360,180 +367,31 @@ pulumi preview
|
|
|
360
367
|
|
|
361
368
|
---
|
|
362
369
|
|
|
363
|
-
##
|
|
370
|
+
## Get Help
|
|
364
371
|
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
Error: Plugin webflow not found. Run `pulumi plugin install` to make sure the plugin is installed.
|
|
371
|
-
```
|
|
372
|
-
|
|
373
|
-
**Solution:**
|
|
374
|
-
```bash
|
|
375
|
-
# Manual plugin installation
|
|
376
|
-
pulumi plugin install resource webflow
|
|
377
|
-
|
|
378
|
-
# Or just run pulumi up - it will install automatically
|
|
379
|
-
pulumi up
|
|
380
|
-
```
|
|
381
|
-
|
|
382
|
-
---
|
|
383
|
-
|
|
384
|
-
### Authentication Issues
|
|
385
|
-
|
|
386
|
-
**Problem: "Unauthorized" error during pulumi up**
|
|
387
|
-
|
|
388
|
-
```
|
|
389
|
-
Error: Unauthorized - Invalid or expired Webflow API token
|
|
390
|
-
```
|
|
391
|
-
|
|
392
|
-
**Solutions:**
|
|
393
|
-
1. Verify your token was set correctly:
|
|
394
|
-
```bash
|
|
395
|
-
pulumi config get webflow:apiToken --show-secrets
|
|
396
|
-
# Should show your actual token (masked normally, shown with --show-secrets)
|
|
397
|
-
```
|
|
398
|
-
|
|
399
|
-
2. Check if token is expired - regenerate it in Webflow:
|
|
400
|
-
- Account Settings → API Tokens
|
|
401
|
-
- Click the refresh icon next to your token
|
|
402
|
-
- Update Pulumi: `pulumi config set webflow:apiToken --secret`
|
|
403
|
-
|
|
404
|
-
3. Verify token permissions:
|
|
405
|
-
- Go to Webflow Account Settings → API Tokens
|
|
406
|
-
- Check that the token has "Sites: Read & Write" permission
|
|
407
|
-
|
|
408
|
-
---
|
|
409
|
-
|
|
410
|
-
### Configuration Issues
|
|
411
|
-
|
|
412
|
-
**Problem: "Invalid site ID" error**
|
|
413
|
-
|
|
414
|
-
```
|
|
415
|
-
Error: Invalid or malformed siteId. Must be a 24-character hex string.
|
|
416
|
-
```
|
|
417
|
-
|
|
418
|
-
**Solutions:**
|
|
419
|
-
1. Get the correct site ID:
|
|
420
|
-
- Open Webflow Designer
|
|
421
|
-
- Go to Project Settings → API & Webhooks
|
|
422
|
-
- Copy your Site ID (24-character hex string)
|
|
423
|
-
|
|
424
|
-
2. Update your config:
|
|
425
|
-
```bash
|
|
426
|
-
pulumi config set siteId --secret
|
|
427
|
-
# Paste your correct site ID
|
|
428
|
-
```
|
|
429
|
-
|
|
430
|
-
3. Verify it was set:
|
|
431
|
-
```bash
|
|
432
|
-
pulumi config get siteId --show-secrets
|
|
433
|
-
```
|
|
434
|
-
|
|
435
|
-
---
|
|
436
|
-
|
|
437
|
-
### Network Issues
|
|
438
|
-
|
|
439
|
-
**Problem: "Connection timeout" or "Connection refused"**
|
|
440
|
-
|
|
441
|
-
**Solutions:**
|
|
442
|
-
1. Check your internet connection
|
|
443
|
-
2. Check if Webflow API is accessible:
|
|
444
|
-
```bash
|
|
445
|
-
curl -H "Authorization: Bearer YOUR_TOKEN" https://api.webflow.com/v2/sites
|
|
446
|
-
```
|
|
447
|
-
3. Check for corporate firewalls or proxy issues
|
|
448
|
-
4. Try again - may be temporary API issue
|
|
449
|
-
|
|
450
|
-
---
|
|
451
|
-
|
|
452
|
-
### Get Help
|
|
453
|
-
|
|
454
|
-
- 📖 **Full Troubleshooting Guide**: [docs/troubleshooting.md](./docs/troubleshooting.md) - Comprehensive error reference and diagnostic procedures
|
|
455
|
-
- ❓ **FAQ**: [docs/faq.md](./docs/faq.md) - Answers to common questions
|
|
456
|
-
- 📚 **Full Documentation**: [docs/](./docs/)
|
|
457
|
-
- 🔧 **Examples**: Check [examples/](./examples/) for comprehensive examples
|
|
458
|
-
- 🐛 **Report Bugs**: [GitHub Issues](https://github.com/jdetmar/pulumi-webflow/issues)
|
|
459
|
-
- 💬 **Ask Questions**: [GitHub Discussions](https://github.com/jdetmar/pulumi-webflow/discussions)
|
|
372
|
+
- [Troubleshooting Guide](./docs/troubleshooting.md) - Comprehensive error reference and solutions
|
|
373
|
+
- [FAQ](./docs/faq.md) - Answers to common questions
|
|
374
|
+
- [Examples](./examples/) - Working code for all resources
|
|
375
|
+
- [GitHub Issues](https://github.com/JDetmar/pulumi-webflow/issues) - Report bugs
|
|
376
|
+
- [GitHub Discussions](https://github.com/JDetmar/pulumi-webflow/discussions) - Ask questions
|
|
460
377
|
|
|
461
378
|
---
|
|
462
379
|
|
|
463
380
|
## Version Control & Audit Trail
|
|
464
381
|
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
### Key Features
|
|
468
|
-
|
|
469
|
-
- ✅ **Automatic Audit Trail** - Every change tracked with author, timestamp, and reason
|
|
470
|
-
- ✅ **Code Review Process** - Pull requests enable peer review before deployment
|
|
471
|
-
- ✅ **Compliance Ready** - Generate audit reports for SOC 2, HIPAA, GDPR compliance
|
|
472
|
-
- ✅ **CI/CD Integration** - GitHub Actions validates changes before merge
|
|
473
|
-
- ✅ **Multi-Environment** - Separate tracking for dev, staging, production
|
|
474
|
-
|
|
475
|
-
### Quick Example
|
|
476
|
-
|
|
477
|
-
```bash
|
|
478
|
-
# Create a feature branch for your change
|
|
479
|
-
git checkout -b feat/add-redirects
|
|
480
|
-
|
|
481
|
-
# Make infrastructure changes
|
|
482
|
-
# ... update your Pulumi code ...
|
|
483
|
-
|
|
484
|
-
# Preview the changes
|
|
485
|
-
pulumi preview
|
|
486
|
-
|
|
487
|
-
# Commit with a clear message
|
|
488
|
-
git commit -m "feat(redirects): add GDPR-compliant redirect rules
|
|
489
|
-
|
|
490
|
-
- Redirect /privacy to privacy-policy.webflow.io
|
|
491
|
-
- Redirect /terms to terms-of-service.webflow.io
|
|
492
|
-
- Requires approval before deployment
|
|
493
|
-
|
|
494
|
-
Story: 2.2 - Redirect CRUD Operations"
|
|
495
|
-
|
|
496
|
-
# Push and create a Pull Request for code review
|
|
497
|
-
git push origin feat/add-redirects
|
|
498
|
-
```
|
|
499
|
-
|
|
500
|
-
### Compliance Documentation
|
|
382
|
+
Track all infrastructure changes in Git for compliance and auditability. Features include automatic audit trails, code review via pull requests, and SOC 2/HIPAA/GDPR-ready reporting.
|
|
501
383
|
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
### Generating Audit Reports
|
|
505
|
-
|
|
506
|
-
```bash
|
|
507
|
-
# View recent changes
|
|
508
|
-
git log --oneline -- Pulumi.*.yaml
|
|
509
|
-
|
|
510
|
-
# Generate detailed audit report for a time period
|
|
511
|
-
git log --since="2025-12-01" --until="2025-12-31" \
|
|
512
|
-
--format="%ai | %an | %s" \
|
|
513
|
-
-- Pulumi.*.yaml
|
|
514
|
-
|
|
515
|
-
# Export audit trail for compliance review
|
|
516
|
-
git log -p -- Pulumi.*.yaml > audit-report.txt
|
|
517
|
-
```
|
|
518
|
-
|
|
519
|
-
See the [Version Control guide](./docs/version-control.md) for complete instructions on setting up Git workflows and compliance reporting.
|
|
384
|
+
See the [Version Control Guide](./docs/version-control.md) for Git workflows, commit conventions, and audit report generation.
|
|
520
385
|
|
|
521
386
|
---
|
|
522
387
|
|
|
523
388
|
## Multi-Language Examples
|
|
524
389
|
|
|
525
|
-
The
|
|
390
|
+
The Quick Start uses TypeScript. Complete examples for all languages are in [examples/quickstart/](./examples/quickstart/):
|
|
526
391
|
|
|
527
|
-
-
|
|
528
|
-
- **Python**: [examples/quickstart/python/](./examples/quickstart/python/) - Pythonic approach
|
|
529
|
-
- **Go**: [examples/quickstart/go/](./examples/quickstart/go/) - High-performance deployment
|
|
392
|
+
- [TypeScript](./examples/quickstart/typescript/) | [Python](./examples/quickstart/python/) | [Go](./examples/quickstart/go/)
|
|
530
393
|
|
|
531
|
-
Each
|
|
532
|
-
- Complete, copy-pasteable code
|
|
533
|
-
- Language-specific setup instructions
|
|
534
|
-
- Pulumi.yaml configuration
|
|
535
|
-
- Package manager files (package.json, requirements.txt, go.mod)
|
|
536
|
-
- Comprehensive README
|
|
394
|
+
Each includes setup instructions, complete code, and a README.
|
|
537
395
|
|
|
538
396
|
---
|
|
539
397
|
|
|
@@ -573,8 +431,8 @@ We welcome contributions! Please see [CONTRIBUTING.md](./CONTRIBUTING.md) for gu
|
|
|
573
431
|
|
|
574
432
|
### Ways to Contribute
|
|
575
433
|
|
|
576
|
-
- **Report bugs** - Found an issue? [Create a GitHub issue](https://github.com/
|
|
577
|
-
- **Submit improvements** - Have an idea? [Create a discussion](https://github.com/
|
|
434
|
+
- **Report bugs** - Found an issue? [Create a GitHub issue](https://github.com/JDetmar/pulumi-webflow/issues)
|
|
435
|
+
- **Submit improvements** - Have an idea? [Create a discussion](https://github.com/JDetmar/pulumi-webflow/discussions)
|
|
578
436
|
- **Contribute code** - Fork the repo, make changes, and submit a pull request
|
|
579
437
|
- **Improve documentation** - Help us document features and patterns
|
|
580
438
|
|
|
@@ -596,6 +454,11 @@ This project is licensed under the MIT License - see [LICENSE](./LICENSE) file f
|
|
|
596
454
|
| Deployment times out | Check internet connection, try again |
|
|
597
455
|
| Token format error | Ensure you're using the full API token (not just a prefix) |
|
|
598
456
|
| Site not found | Verify site ID matches the site where you want to deploy |
|
|
457
|
+
| Need detailed logs | Enable debug logging: `PULUMI_LOG_LEVEL=debug pulumi up` - See [Logging Guide](./docs/logging.md) |
|
|
458
|
+
|
|
459
|
+
For more troubleshooting help and detailed logging documentation:
|
|
460
|
+
- **[Logging and Debugging Guide](./docs/logging.md)** - Comprehensive guide to structured logging features
|
|
461
|
+
- **[Troubleshooting Guide](./docs/troubleshooting.md)** - Common issues and detailed solutions
|
|
599
462
|
|
|
600
463
|
---
|
|
601
464
|
|
|
@@ -3,7 +3,7 @@ pulumi_webflow/_inputs.py,sha256=tAbxSgnw8VSL47jao14dmu2vt1_9UPGBvNMJbuF3Te4,128
|
|
|
3
3
|
pulumi_webflow/_utilities.py,sha256=66uLGQDI1oMFOI3Fe5igAphtexWhcSLDyuVW50jW3ik,10789
|
|
4
4
|
pulumi_webflow/asset.py,sha256=MEPASdIWuxTRTxy7APO8oNIer5OuSiq-ERk5dhDny0Q,18126
|
|
5
5
|
pulumi_webflow/asset_folder.py,sha256=02IEQmimax8yMjA6QX6wI_Zxwzx4l-zTKW60pgPTKUI,12197
|
|
6
|
-
pulumi_webflow/collection.py,sha256=
|
|
6
|
+
pulumi_webflow/collection.py,sha256=08A6UJwKP2kmSlh6TCymkBXEQMvtOxzG_zx5CGttows,13121
|
|
7
7
|
pulumi_webflow/collection_field.py,sha256=aPx0l7mdCgs93F94CxlyGeWEtBEbTEgqz_otH7z4q1U,18260
|
|
8
8
|
pulumi_webflow/collection_item.py,sha256=GPQ4d_7cg4tGNLWs8F-E9vkSy2iOWqINjG0i-46nIbI,15736
|
|
9
9
|
pulumi_webflow/ecommerce_settings.py,sha256=dkAJtkMwoOZC_iTrrTVFE7j0eElMn3ChSWkhRCl_xBQ,7429
|
|
@@ -17,7 +17,7 @@ pulumi_webflow/provider.py,sha256=v13Yst8mLWrpu1_dBoDavWtryeVZ2qWgpoiLuTtgVQs,46
|
|
|
17
17
|
pulumi_webflow/pulumi-plugin.json,sha256=c77GRJCQKzHPfmH_6OmXyTh5vKa_4KJmjhK---FwWOY,44
|
|
18
18
|
pulumi_webflow/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
19
19
|
pulumi_webflow/redirect.py,sha256=nZSu7DK4rgXtwpA169ygBD-pHFdAVxj0KbDot5gF20g,12686
|
|
20
|
-
pulumi_webflow/registered_script.py,sha256=
|
|
20
|
+
pulumi_webflow/registered_script.py,sha256=J9wOTZuspoeHuBviqbTPG45osrZXgSul8dP8OouNja8,17621
|
|
21
21
|
pulumi_webflow/robots_txt.py,sha256=WedpyXZTM3wqPXEkUrAMyRCzhgoHeZfazDCnpbJuAds,7157
|
|
22
22
|
pulumi_webflow/site.py,sha256=nRSYC12dYNO30Oih4sv16W2YaVn3MJDV2VuCV6ptCgQ,25373
|
|
23
23
|
pulumi_webflow/site_custom_code.py,sha256=dQptKYF6LkSPP8oMEd0fd2Acdj1RhuOEEOKYMR01-F4,9653
|
|
@@ -26,7 +26,7 @@ pulumi_webflow/webhook.py,sha256=elQ2HuxxvaymdEIWJ6gt8NTCvH1fswQp3kl4vPOsK1w,145
|
|
|
26
26
|
pulumi_webflow/config/__init__.py,sha256=XWnQfVtc2oPapjSXXCdORFJvMpXt_SMJQASWdTRoPmc,296
|
|
27
27
|
pulumi_webflow/config/__init__.pyi,sha256=FK2g3b6EloPUN7wom8YDgpHJsiuHm5vNgCzWU7HbDQU,659
|
|
28
28
|
pulumi_webflow/config/vars.py,sha256=erUQ8U-jZboaNQ3YSkj1z6jiTl-Z0p3eAZ2KloeDZ40,864
|
|
29
|
-
pulumi_webflow-0.
|
|
30
|
-
pulumi_webflow-0.
|
|
31
|
-
pulumi_webflow-0.
|
|
32
|
-
pulumi_webflow-0.
|
|
29
|
+
pulumi_webflow-0.9.0.dist-info/METADATA,sha256=bMRXELtXyG7MVIr5yl2aPwKXOQEHWGHOt_uG3ECDVE4,15327
|
|
30
|
+
pulumi_webflow-0.9.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
31
|
+
pulumi_webflow-0.9.0.dist-info/top_level.txt,sha256=-1b2U0Ie6psHtXao-GFcGkTevh4fd_mHJRSneH8G9Hs,15
|
|
32
|
+
pulumi_webflow-0.9.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|