Skip to content

Commit 30f6c8c

Browse files
committed
Updating branch to align with HEAD
2 parents 7b3b387 + 8ac64e5 commit 30f6c8c

File tree

8 files changed

+99
-37
lines changed

8 files changed

+99
-37
lines changed

src/content/changelogs/gateway.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@ productLink: "/cloudflare-one/policies/gateway/"
55
productArea: Cloudflare One
66
productAreaLink: /cloudflare-one/changelog/
77
entries:
8+
- publish_date: "2024-11-20"
9+
title: Category Filtering in the Network Policy Builder
10+
description: |-
11+
Gateway users can now create Network Policies with Content Categories and Security Risks traffic selectors. This update simplifies malicious traffic blocking and streamlines network monitoring for improved security management.
812
- publish_date: "2024-10-17"
913
title: Per-account Cloudflare root certificate
1014
description: |-

src/content/changelogs/workflows.yaml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,18 @@ productLink: "/workflows/"
55
productArea: Developer platform
66
productAreaLink: /workers/platform/changelog/platform/
77
entries:
8+
- publish_date: "2024-11-21"
9+
title: "Fixed create instance API in Workers bindings"
10+
description: |-
11+
You can now call `create()` without any arguments when using the [Workers API](/workflows/build/workers-api/#create) for Workflows. Workflows will automatically generate the ID of the Workflow on your behalf.
12+
13+
This addresses a bug that caused calls to `create()` to fail when provided with no arguments.
14+
- publish_date: "2024-11-20"
15+
title: "Multiple Workflows in local development now supported"
16+
description: |-
17+
Local development with `wrangler dev` now correctly supports multiple Workflow definitions per script.
18+
19+
There is no change to production Workflows, where multiple Workflow definitions per Worker script was already supported.
820
- publish_date: "2024-10-23"
921
title: "Workflows is now in public beta!"
1022
description: |-

src/content/docs/ai-gateway/configuration/caching.mdx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@ Enable and customize your gateway cache to serve requests directly from Cloudfla
1313

1414
:::note
1515

16-
Currently caching is supported only for text and image responses, and it applies only to identical requests. This is helpful for use cases when there are limited prompt options - for example, a support bot that asks "How can I help you?" and lets the user select an answer from a limited set of options works well with the current caching configuration.
16+
Currently caching is supported only for text and image responses, and it applies only to identical requests.
17+
18+
This is helpful for use cases when there are limited prompt options - for example, a support bot that asks "How can I help you?" and lets the user select an answer from a limited set of options works well with the current caching configuration.
1719
We plan on adding semantic search for caching in the future to improve cache hit rates.
1820
:::
1921

src/content/docs/ddos-protection/botnet-threat-feed.mdx

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ A single DDoS attack consisting of thousands of bots can involve as little as on
2323

2424
In the case of HTTPS DDoS attacks, service providers only see encrypted payloads leaving their network without any possibility to decrypt or understand if it is malicious or legitimate traffic. However, Cloudflare can see an entire attack and all of its sources if the attack targets an Internet property that uses Cloudflare's services. This global view can help service providers stop the abusers.
2525

26+
For more details, refer to [How DDoS protection works](/ddos-protection/about/how-ddos-protection-works/).
27+
2628
## Availability
2729

2830
The Cloudflare DDoS Botnet Threat Feed is available for free to service providers. For more information, refer to the [Terms of Use](https://www.cloudflare.com/en-gb/service-specific-terms-application-services/#ddos-botnet-threat-feed).
@@ -45,6 +47,10 @@ Make sure that:
4547
4. On the list of ASNs configured for your threat feed, select **Add ASN**.
4648
5. You will be redirected to the PeeringDB authentication page, where you can log in and consent to share the affiliation data with us. You will be redirected back to the configuration page once it is successful.
4749

50+
:::note
51+
You can add multiple ASNs to your threat feed.
52+
:::
53+
4854
### 2. Obtain Cloudflare API token
4955

5056
You must [obtain a Cloudflare API token](/fundamentals/api/get-started/create-token/) with at least the following account-level permission:
@@ -66,6 +72,7 @@ Invoke one of the Botnet Threat Feed API endpoints:
6672

6773
- The API URI path is planned to change from `.../botnet_feed/...` to `.../ddos_botnet_feed/...` in the future.
6874
- Responses with no IP addresses in the results (empty state) will return an `HTTP 200` status code (success), with an empty list in the `result` property.
75+
- When the response is a success but the result is `0` or `null`, this means that there are no detected offenses.
6976
:::
7077

7178
To invoke an API endpoint, append the operation endpoint to the Cloudflare API base URL:

src/content/docs/workers/configuration/smart-placement.mdx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ Smart Placement only considers candidate locations where the Worker has previous
3131

3232
Smart Placement only affects the execution of [fetch event handlers](/workers/runtime-apis/handlers/fetch/). Workers without a fetch event handler will be ignored by Smart Placement. For Workers with both fetch and non-fetch event handlers, Smart Placement will only affect the execution of the fetch event handler.
3333

34+
Similarly, Smart Placement will not affect where [static assets](/workers/static-assets/) are served from. Static assets will continue to be served from the location nearest to the incoming request. If a Worker is invoked and your code retrieves assets via the [static assets binding](https://developers.cloudflare.com/workers/static-assets/binding/), then assets will be served from the location that your Worker runs in.
35+
3436
## Enable Smart Placement
3537

3638
Smart Placement is available to users on all Workers plans.

src/content/docs/workers/static-assets/compatibility-matrix.mdx

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -42,15 +42,15 @@ We plan to bridge the gaps between Workers and Pages and provide ways to migrate
4242
| [Custom HTTP headers for static assets](/pages/configuration/headers/) | 🟡 [^2] ||
4343
| [Middleware](/pages/functions/middleware/) | 🟡 [^3] ||
4444
| [Redirects](/pages/configuration/redirects/) | 🟡 [^4] ||
45-
| [Smart Placement](/workers/configuration/smart-placement/) | [^5] ||
45+
| [Smart Placement](/workers/configuration/smart-placement/) | ||
4646
| **Observability** | | |
4747
| [Workers Logs](/workers/observability/) |||
4848
| [Logpush](/workers/observability/logs/logpush/) |||
4949
| [Tail Workers](/workers/observability/logs/tail-workers/) |||
5050
| [Real-time logs](/workers/observability/logs/real-time-logs/) |||
5151
| **Runtime APIs & Compute Models** | | |
5252
| [Node.js Compatibility Mode](/workers/runtime-apis/nodejs/) |||
53-
| [Durable Objects](/durable-objects/api/) || 🟡 [^6] |
53+
| [Durable Objects](/durable-objects/api/) || 🟡 [^5] |
5454
| [Cron Triggers](/workers/configuration/cron-triggers/) |||
5555
| **Bindings** | | |
5656
| [AI](/workers-ai/get-started/workers-wrangler/#2-connect-your-worker-to-workers-ai) |||
@@ -66,7 +66,7 @@ We plan to bridge the gaps between Workers and Pages and provide ways to migrate
6666
| [Queue Producers](/queues/configuration/configure-queues/#producer) |||
6767
| [Queue Consumers](/queues/configuration/configure-queues/#consumer) |||
6868
| [R2](/r2/) |||
69-
| [Rate Limiting](/workers/runtime-apis/bindings/rate-limit/) || |
69+
| [Rate Limiting](/workers/runtime-apis/bindings/rate-limit/) || |
7070
| [Secrets](/workers/configuration/secrets/) |||
7171
| [Service bindings](/workers/runtime-apis/bindings/service-bindings/) |||
7272
| [Vectorize](/vectorize/get-started/intro/#3-bind-your-worker-to-your-index) |||
@@ -78,8 +78,8 @@ We plan to bridge the gaps between Workers and Pages and provide ways to migrate
7878
| [Branch Deploy Controls](/pages/configuration/branch-build-controls/) |||
7979
| [Custom Branch Aliases](/pages/how-to/custom-branch-aliases/) |||
8080
| **Pages Functions** | | |
81-
| [File-based Routing](/pages/functions/routing/) |[^7] ||
82-
| [Pages Plugins](/pages/functions/plugins/) |[^8] ||
81+
| [File-based Routing](/pages/functions/routing/) |[^6] ||
82+
| [Pages Plugins](/pages/functions/plugins/) |[^7] ||
8383

8484
[^1]: Does not currently support Workers with static assets. For more details on which bindings are supported in remote development, [refer to the docs](/workers/testing/local-development/#supported-resource-bindings-in-different-environments).
8585

@@ -89,10 +89,8 @@ We plan to bridge the gaps between Workers and Pages and provide ways to migrate
8989

9090
[^4]: You can handle redirects by adding code to your Worker (a [community package](https://npmjs.com/package/redirects-in-workers) is available for `_redirects` support), or you can use [Bulk Redirects](/rules/url-forwarding/bulk-redirects/).
9191

92-
[^5]: You cannot yet enable [Smart Placement](/workers/configuration/smart-placement/) for Workers with static assets. This is a temporary limitation we are working to remove.
92+
[^5]: To [use Durable Objects with your Cloudflare Pages project](/pages/functions/bindings/#durable-objects), you must create a separate Worker with a Durable Object and then declare a binding to it in both your Production and Preview environments. Using Durable Objects with Workers is simpler and recommended.
9393

94-
[^6]: To [use Durable Objects with your Cloudflare Pages project](/pages/functions/bindings/#durable-objects), you must create a separate Worker with a Durable Object and then declare a binding to it in both your Production and Preview environments. Using Durable Objects with Workers is simpler and recommended.
94+
[^6]: Workers [supports popular frameworks](/workers/frameworks/), many of which implement file-based routing.
9595

96-
[^7]: Workers [supports popular frameworks](/workers/frameworks/), many of which implement file-based routing.
97-
98-
[^8]: Everything that is possible with Pages Functions can also be achieved by adding code to your Worker or by using framework-specific plugins for relevant third party tools.
96+
[^7]: Everything that is possible with Pages Functions can also be achieved by adding code to your Worker or by using framework-specific plugins for relevant third party tools.

src/content/docs/workflows/build/workers-api.mdx

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,24 @@ Get a specific Workflow instance by ID.
194194

195195
* `id` - the ID of the Workflow instance.
196196

197-
Returns a `WorkflowInstance`.
197+
Returns a `WorkflowInstance`. Throws an exception if the instance ID does not exist.
198+
199+
```ts
200+
// Fetch an existing Workflow instance by ID:
201+
try {
202+
let instance = await env.MY_WORKFLOW.get(id)
203+
return Response.json({
204+
id: instance.id,
205+
details: await instance.status(),
206+
});
207+
} catch (e: any) {
208+
// Handle errors
209+
// .get will throw an exception if the ID doesn't exist or is invalid.
210+
const msg = `failed to get instance ${id}: ${e.message}`
211+
console.error(msg)
212+
return Response.json({error: msg}, { status: 400 })
213+
}
214+
```
198215

199216
## WorkflowInstanceCreateOptions
200217

src/content/partials/cloudflare-one/access/create-service-token.mdx

Lines changed: 45 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
---
55

6-
import { Tabs, TabItem } from '~/components';
6+
import { Tabs, TabItem, Details } from '~/components';
77

88
<Tabs syncKey="dashPlusAPI"> <TabItem label="Dashboard">
99

@@ -32,35 +32,55 @@ import { Tabs, TabItem } from '~/components';
3232

3333
```tf
3434
resource "cloudflare_zero_trust_access_service_token" "example_service_token" {
35-
account_id = var.cloudflare_account_id
36-
name = "Example service token"
37-
duration = "8760h"
38-
}
39-
```
35+
account_id = var.cloudflare_account_id
36+
name = "Example service token"
37+
duration = "8760h"
4038
41-
3. Output the Client ID and Client Secret to the Terraform state file:
42-
43-
```tf
44-
output "example_service_token_client_id" {
45-
value = cloudflare_zero_trust_access_service_token.example_service_token.client_id
39+
lifecycle {
40+
create_before_destroy = true
41+
}
4642
}
43+
```
4744

48-
output "example_service_token_client_secret" {
49-
value = cloudflare_zero_trust_access_service_token.example_service_token.client_secret
50-
sensitive = true
45+
3. Get the Client ID and Client Secret of the service token:
46+
47+
<Details header="Example: Output to CLI" open = {false}>
48+
1. Output the Client ID and Client Secret to the Terraform state file:
49+
```tf
50+
output "example_service_token_client_id" {
51+
value = cloudflare_zero_trust_access_service_token.example_service_token.client_id
52+
}
53+
54+
output "example_service_token_client_secret" {
55+
value = cloudflare_zero_trust_access_service_token.example_service_token.client_secret
56+
sensitive = true
57+
}
58+
```
59+
2. Apply the configuration:
60+
```sh
61+
terraform apply
62+
```
63+
3. Read the Client ID and Client Secret:
64+
```sh
65+
terraform output -raw example_service_token_client_id
66+
```
67+
```sh
68+
terraform output -raw example_service_token_client_secret
69+
```
70+
</Details>
71+
72+
<Details header="Example: Store in HashiCorp Vault" open = {false}>
73+
```tf
74+
resource "vault_generic_secret" "example_service_token" {
75+
path = "kv/cloudflare/example_service_token"
76+
77+
data_json = jsonencode({
78+
"CLIENT_ID" = cloudflare_access_service_token.example_service_token.client_id
79+
"CLIENT_SECRET" = cloudflare_access_service_token.example_service_token.client_secret
80+
})
5181
}
5282
```
53-
4. Apply the configuration:
54-
```sh
55-
terraform apply
56-
```
83+
</Details>
5784

58-
5. Read the Client ID and Client Secret:
59-
```sh
60-
terraform output -raw example_service_token_client_id
61-
```
62-
```sh
63-
terraform output -raw example_service_token_client_secret
64-
```
6585

6686
</TabItem> </Tabs>

0 commit comments

Comments
 (0)