Skip to content

Commit f79f89d

Browse files
authored
Merge branch 'cloudflare:production' into production
2 parents a2959c4 + 81edf34 commit f79f89d

File tree

193 files changed

+1754
-648
lines changed

Some content is hidden

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

193 files changed

+1754
-648
lines changed

bin/validate-redirects.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ async function main() {
88
let numDuplicateRedirects = 0;
99
let numNonSlashedRedirects = 0;
1010

11-
const validEndings = ["/", "*", ".xml", ".md", ".json", ".html"];
11+
const validEndings = ["/", "*", ".xml", ".md", ".json", ".html", ".pdf"];
1212

1313
const redirectSourceUrls: string[] = [];
1414

public/__redirects

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -418,6 +418,7 @@
418418
/network-interconnect/express-cni/create-interconnects/ /network-interconnect/ 301
419419
/network-interconnect/express-cni/ /network-interconnect/ 301
420420
/network-interconnect/pni-and-peering/ /network-interconnect/ 301
421+
/network-interconnect/static/cni-locations-04-08-2025.pdf /network-interconnect/static/cni-locations-30-10-2025.pdf 301
421422

422423
# Constellation
423424
/constellation/ /workers-ai/ 301
@@ -520,13 +521,14 @@
520521
/ddos-protection/managed-rulesets/adjust-rules/ /ddos-protection/managed-rulesets/http/http-overrides/override-examples/ 301
521522

522523
# developer spotlight
523-
/developer-spotlight/tutorials/ /developer-spotlight/ 301
524-
/developer-spotlight/tutorials/create-sitemap-from-sanity-cms/ /developer-spotlight/ 301
525-
/developer-spotlight/tutorials/creating-a-recommendation-api/ /developer-spotlight/ 301
526-
/developer-spotlight/tutorials/custom-access-control-for-files/ /developer-spotlight/ 301
527-
/developer-spotlight/tutorials/fullstack-authentication-with-next-js-and-cloudflare-d1/ /developer-spotlight/ 301
528-
/developer-spotlight/tutorials/handle-form-submission-with-astro-resend/ /developer-spotlight/ 301
529-
/developer-spotlight/application-guide/ /developer-spotlight/ 301
524+
/developer-spotlight/tutorials/ /resources/ 301
525+
/developer-spotlight/tutorials/create-sitemap-from-sanity-cms/ /resources/ 301
526+
/developer-spotlight/tutorials/creating-a-recommendation-api/ /resources/ 301
527+
/developer-spotlight/tutorials/custom-access-control-for-files/ /resources/ 301
528+
/developer-spotlight/tutorials/fullstack-authentication-with-next-js-and-cloudflare-d1/ /resources/ 301
529+
/developer-spotlight/tutorials/handle-form-submission-with-astro-resend/ /resources/ 301
530+
/developer-spotlight/application-guide/ /resources/ 301
531+
/developer-spotlight/ /resources/ 301
530532

531533
# dns
532534
/dns/additional-options/cname-flattening/ /dns/cname-flattening/ 301
@@ -667,7 +669,7 @@
667669
/fundamentals/global-configurations/ /fundamentals/ 301
668670
/fundamentals/customizations/ /fundamentals/ 301
669671
/fundamentals/security/cybersafe/ /fundamentals/reference/policies-compliances/cybersafe/ 301
670-
/fundamentals/security/challenge-passage/ /cloudflare-challenges/challenge-types/challenge-pages/#challenge-passage 301
672+
/fundamentals/security/challenge-passage/ /cloudflare-challenges/challenge-types/challenge-pages/challenge-passage/ 301
671673
/fundamentals/glossary/ /fundamentals/reference/glossary/ 301
672674
/fundamentals/account-and-billing/login/ /fundamentals/user-profiles/login/ 301
673675
/fundamentals/account-and-billing/account-maintenance/delete-account/ /fundamentals/user-profiles/delete-account/ 301
@@ -782,7 +784,7 @@
782784
/fundamentals/concepts/the-internet/ https://www.cloudflare.com/learning/network-layer/how-does-the-internet-work/ 301
783785
/fundamentals/concepts/free-plan/ /billing/ 301
784786
/fundamentals/setup/manage-domains/connect-your-domain/ /fundamentals/manage-domains/add-site/ 301
785-
/fundamentals/security/cloudflare-challenges/challenge-passage/ /cloudflare-challenges/challenge-types/challenge-pages/#challenge-passage 301
787+
/fundamentals/security/cloudflare-challenges/challenge-passage/ /cloudflare-challenges/challenge-types/challenge-pages/challenge-passage/ 301
786788
/fundamentals/security/cloudflare-challenges/challenge-solve-rate/ /cloudflare-challenges/reference/challenge-solve-rate/ 301
787789
/fundamentals/security/cloudflare-challenges/challenge-solve-issues/ /cloudflare-challenges/troubleshooting/challenge-solve-issues/ 301
788790
/fundamentals/security/cloudflare-challenges/ /cloudflare-challenges/ 301
@@ -1676,7 +1678,7 @@
16761678
/waf/analytics/security-events/paid-plans/ /waf/analytics/security-events/ 301
16771679
/waf/analytics/security-events/additional-information/ /waf/tools/validation-checks/ 301
16781680
/waf/reference/cloudflare-challenges/ /cloudflare-challenges/ 301
1679-
/waf/tools/challenge-passage/ /cloudflare-challenges/challenge-types/challenge-pages/#challenge-passage 301
1681+
/waf/tools/challenge-passage/ /cloudflare-challenges/challenge-types/challenge-pages/challenge-passage/ 301
16801682
/waf/reference/migration-guides/ /waf/reference/legacy/ 301
16811683
/waf/reference/migration-guides/old-rate-limiting-deprecation/ /waf/reference/legacy/old-rate-limiting/upgrade/ 301
16821684
/waf/reference/migration-guides/waf-managed-rules-migration/ /waf/reference/legacy/old-waf-managed-rules/upgrade/ 301
@@ -1907,8 +1909,8 @@
19071909
/workers/configuration/bindings/about-service-bindings/ /workers/runtime-apis/bindings/service-bindings/ 301
19081910
/workers/tutorials/localize-a-website/ /pages/tutorials/localize-a-website/ 301
19091911
/workers/tutorials/manage-projects-with-lerna/ /pages/configuration/monorepos/#monorepo-management-tools 301
1910-
/workers/tutorials/create-sitemap-from-sanity-cms/ /developer-spotlight/ 301
1911-
/workers/tutorials/custom-access-control-for-files-in-r2-using-d1-and-workers/ /developer-spotlight/ 301
1912+
/workers/tutorials/create-sitemap-from-sanity-cms/ /resources/ 301
1913+
/workers/tutorials/custom-access-control-for-files-in-r2-using-d1-and-workers/ /resources/ 301
19121914
/workers/tutorials/generate-dynamic-og-images-using-workers/ /workers/tutorials/ 302
19131915
/workers/static-assets/migrate-from-pages/ /workers/static-assets/migration-guides/migrate-from-pages/ 301
19141916
/workers/static-assets/compatibility-matrix/ /workers/static-assets/migration-guides/migrate-from-pages/ 301
@@ -1941,8 +1943,8 @@
19411943
/workers/testing/miniflare/get-started/migrating/ /workers/testing/miniflare/migrations/from-v2/ 301
19421944
/workers/databases/native-integrations/fauna/ /workers/databases/native-integrations/ 301
19431945
/workers/tutorials/store-data-with-fauna/ https://fauna.com/blog/the-future-of-fauna 301
1944-
/workers/tutorials/live-cursors-with-nextjs-rpc-do/ /developer-spotlight/ 301
1945-
/workers/tutorials/automated-analytics-reporting/ /developer-spotlight/ 301
1946+
/workers/tutorials/live-cursors-with-nextjs-rpc-do/ /resources/ 301
1947+
/workers/tutorials/automated-analytics-reporting/ /resources/ 301
19461948

19471949
# workers ai
19481950
/workers-ai/models/llm/ /workers-ai/models/#text-generation 301
@@ -1959,11 +1961,11 @@
19591961
/workers-ai/configuration/function-calling/ /workers-ai/features/function-calling/ 301
19601962
/workers-ai/platform/storage-options/ /workers/platform/storage-options/ 301
19611963
/workers-ai/configuration/workers-ai-sdk/ /workers-ai/configuration/bindings/ 301
1962-
/workers-ai/tutorials/creating-a-recommendation-api/ /developer-spotlight/ 301
1964+
/workers-ai/tutorials/creating-a-recommendation-api/ /resources/ 301
19631965
/workers/observability/baselime-integration/ /workers/observability/integrations/baselime-integration/ 301
19641966
/workers-ai/tutorials/image-generator-flux/ /workers-ai/tutorials/image-generation-playground/ 301
1965-
/workers-ai/guides/tutorials/build-a-voice-notes-app-with-auto-transcription/ /developer-spotlight/ 301
1966-
/workers-ai/tutorials/build-ai-interview-practice-tool/ /developer-spotlight/ 301
1967+
/workers-ai/guides/tutorials/build-a-voice-notes-app-with-auto-transcription/ /resources/ 301
1968+
/workers-ai/tutorials/build-ai-interview-practice-tool/ /resources/ 301
19671969

19681970
# Function calling
19691971
/workers-ai/function-calling/ /workers-ai/features/function-calling/ 301
@@ -2298,6 +2300,7 @@
22982300
/cloudflare-one/policies/gateway/block-page/ /cloudflare-one/reusable-components/custom-pages/gateway-block-page/ 301
22992301
/cloudflare-one/team-and-resources/devices/warp/user-side-certificates/ /cloudflare-one/team-and-resources/devices/user-side-certificates/ 301
23002302
/cloudflare-one/traffic-policies/lists/ /cloudflare-one/reusable-components/lists/ 301
2303+
/cloudflare-one/traffic-policies/ids/ /cloudflare-one/traffic-policies/enable-ids/ 301
23012304

23022305
# Email Security new revamp (statics)
23032306
/cloudflare-one/email-security/auto-moves/ /cloudflare-one/email-security/settings/auto-moves/ 301
-61.3 KB
Binary file not shown.
88.7 KB
Binary file not shown.
396 KB
Loading
Lines changed: 30 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,34 @@
11
---
22
import { Code } from "@astrojs/starlight/components";
3-
import Routes from "~/content/dash-routes/index.json";
3+
import AnchorHeading from "./AnchorHeading.astro";
4+
import CoreRoutes from "~/content/dash-routes/core.json";
5+
import ZeroTrustRoutes from "~/content/dash-routes/zero-trust.json";
46
---
57

6-
<ul>
7-
{
8-
Routes.map((route) => (
9-
<li>
10-
<strong>{(route.parent ?? []).concat(route.name).join(" > ")}</strong>
11-
<br />
12-
<Code lang="mdx" code={`<DashButton url="${route.deeplink}" />`} />
13-
</li>
14-
))
15-
}
16-
</ul>
8+
<div>
9+
<AnchorHeading depth={3} title="Core Routes" />
10+
<ul>
11+
{
12+
CoreRoutes.map((route) => (
13+
<li>
14+
<strong>{(route.parent ?? []).concat(route.name).join(" > ")}</strong>
15+
<br />
16+
<Code lang="mdx" code={`<DashButton url="${route.deeplink}" />`} />
17+
</li>
18+
))
19+
}
20+
</ul>
21+
22+
<AnchorHeading depth={3} title="Zero Trust Routes" />
23+
<ul>
24+
{
25+
ZeroTrustRoutes.map((route) => (
26+
<li>
27+
<strong>{route.name}</strong>
28+
<br />
29+
<Code lang="mdx" code={`<DashButton url="${route.deeplink}" />`} />
30+
</li>
31+
))
32+
}
33+
</ul>
34+
</div>

src/components/DashButton.astro

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,33 @@
11
---
22
import { z } from "astro:schema";
33
import { LinkButton } from "@astrojs/starlight/components";
4-
import Routes from "~/content/dash-routes/index.json";
4+
import CoreRoutes from "~/content/dash-routes/core.json";
5+
import ZeroTrustRoutes from "~/content/dash-routes/zero-trust.json";
56
67
const props = z
78
.object({
89
url: z.string(),
10+
zeroTrust: z.boolean().optional().default(false),
11+
buttonName: z.string().optional(),
912
})
1013
.strict();
1114
12-
const { url } = props.parse(Astro.props);
15+
const { url, zeroTrust, buttonName } = props.parse(Astro.props);
1316
14-
const route = Routes.find((route) => route.deeplink === url);
17+
const routes = zeroTrust ? ZeroTrustRoutes : CoreRoutes;
18+
19+
const route = routes.find((route) => route.deeplink === url);
1520
1621
if (!route) {
1722
throw new Error(`[DashButton] No route found for ${url}`);
1823
}
1924
20-
const { name } = route;
25+
const name = buttonName ?? route.name;
26+
const baseUrl = zeroTrust
27+
? "https://one.dash.cloudflare.com"
28+
: "https://dash.cloudflare.com";
2129
22-
const { href } = new URL(route.deeplink, "https://dash.cloudflare.com");
30+
let { href } = new URL(route.deeplink, baseUrl);
2331
---
2432

2533
<LinkButton href={href} icon="external" target="_blank"
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
---
2+
title: New TCP-based fields available in Rulesets
3+
description: Cloudflare Rulesets now support evaluating TCP connections and TCP RTT as part of request logic.
4+
date: 2025-10-30
5+
---
6+
7+
## Build rules based on TCP transport and latency
8+
9+
Cloudflare now provides two new request fields in the Ruleset engine that let you make decisions based on whether a request used TCP and the measured TCP round-trip time between the client and Cloudflare. These fields help you understand protocol usage across your traffic and build policies that respond to network performance. For example, you can distinguish TCP from QUIC traffic or route high latency requests to alternative origins when needed.
10+
11+
---
12+
13+
### New fields
14+
15+
| Field | Type | Description |
16+
| --- | --- | --- |
17+
| `cf.edge.client_tcp` | Boolean | Indicates whether the request used TCP. A value of true means the client connected using TCP instead of QUIC. |
18+
| `cf.timings.client_tcp_rtt_msec` | Number | Reports the smoothed TCP round-trip time between the client and Cloudflare in milliseconds. For example, a value of 20 indicates roughly twenty milliseconds of RTT. |
19+
20+
Example filter expression:
21+
22+
```
23+
cf.edge.client_tcp && cf.timings.client_tcp_rtt_msec < 100
24+
```
25+
26+
More information can be found in the Rules language [fields reference](/ruleset-engine/rules-language/fields/reference/).
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
---
2+
title: Access Workers preview URLs from the Build details page
3+
description: You can now access Preview URLs directly from the build details page
4+
products:
5+
- workers
6+
date: 2025-10-30
7+
---
8+
9+
You can now access [preview URLs](/workers/configuration/previews/) directly from the build details page, making it easier to test your changes when reviewing builds in the dashboard.
10+
11+
![preview button](src/assets/images/changelog/workers/builds-preview-button.png)
12+
13+
14+
**What's new**
15+
* A **Preview** button now appears in the top-right corner of the build details page for successful builds
16+
* Click it to instantly open the latest preview URL
17+
* Matches the same experience you're familiar with from Pages
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
---
2+
title: Increased Workflows instance and concurrency limits
3+
description: Higher concurrency and creation limits for Workflow instances now available
4+
products:
5+
- workflows
6+
- workers
7+
date: 2025-10-31
8+
---
9+
10+
We've raised the [Cloudflare Workflows](/workflows/) account-level limits for all accounts on the [Workers paid plan](/workers/platform/pricing/):
11+
12+
* **Instance creation rate** increased from 100 workflow instances per 10 seconds to 100 instances per second
13+
* **Concurrency limit** increased from 4,500 to 10,000 workflow instances per account
14+
15+
These increases mean you can create new instances up to 10x faster, and have more workflow instances concurrently executing. To learn more and get started with Workflows, refer to [the getting started guide](/workflows/get-started/guide/).
16+
17+
If your application requires a higher limit, fill out the [Limit Increase Request Form](/workers/platform/limits/) or contact your account team. Please refer to [Workflows pricing](/workflows/reference/pricing/) for more information.

0 commit comments

Comments
 (0)