Skip to content

Commit a65d3f3

Browse files
authored
Merge branch 'cloudflare:production' into production
2 parents 02a066c + 8f26006 commit a65d3f3

File tree

44 files changed

+331
-425
lines changed

Some content is hidden

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

44 files changed

+331
-425
lines changed

.github/workflows/issue-sync.yml

Lines changed: 0 additions & 36 deletions
This file was deleted.

public/__redirects

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2298,7 +2298,8 @@
22982298
/fundamentals/speed/amp-real-ulr/* /speed/optimization/other/amp-real-ulr/:splat 301
22992299
/fundamentals/speed/rocket-loader/* /speed/optimization/content/rocket-loader/:splat 301
23002300
/fundamentals/speed/signed-exchanges/* /speed/optimization/other/signed-exchanges/:splat 301
2301-
/fundamentals/speed/speed-test/* /speed/speed-test/:splat 301
2301+
/fundamentals/speed/speed-test/* /speed/observatory/:splat 301
2302+
/speed/speed-test/* /speed/observatory/:splat 301
23022303
/http-applications/* /version-management/:splat 301
23032304
/http3/* https://www.cloudflare.com/learning/performance/what-is-http3/ 301
23042305
/railgun/* / 301
253 KB
Loading
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
---
2+
title: New Metrics View in AutoRAG
3+
description: Track file indexing, search activity, and top retrievals to understand how your AutoRAG instance is being used.
4+
products:
5+
- autorag
6+
date: 2025-09-19
7+
---
8+
9+
[AutoRAG](/autorag/) now includes a **Metrics** tab that shows how your data is indexed and searched. Get a clear view of the health of your indexing pipeline, compare usage between `ai-search` and `search`, and see which files are retrieved most often.
10+
11+
![Metrics](~/assets/images/autorag/metrics.png)
12+
13+
You can find these metrics within each AutoRAG instance:
14+
15+
- Indexing: Track how files are ingested and see status changes over time.
16+
- Search breakdown: Compare usage between `ai-search` and `search` endpoints.
17+
- Top file retrievals: Identify which files are most frequently retrieved in a given period.
18+
19+
Try it today in [AutoRAG](/autorag/get-started/).

src/content/changelog/waf/2025-07-14-waf-release.mdx

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ This week’s vulnerability analysis highlights emerging web application threats
1212

1313
- XSS – Attribute Overloading: A novel cross-site scripting technique where attackers abuse custom or non-standard HTML attributes to smuggle payloads into the DOM. These payloads evade traditional sanitization logic, especially in frameworks that loosely validate attributes or trust unknown tokens.
1414
- XSS – onToggle Event Abuse: Exploits the lesser-used onToggle event (triggered by elements like `<details>`) to execute arbitrary JavaScript when users interact with UI elements. This vector is often overlooked by static analyzers and can be embedded in seemingly benign components.
15-
- SQLi – Obfuscated Boolean Logic: An advanced SQL injection variant that uses non-standard Boolean expressions, comment-based obfuscation, or alternate encodings (for example, `/*!true*/`, `AND/**/1=1`) to bypass basic input validation and WAF signatures. This technique is particularly dangerous in dynamic query construction contexts.
15+
1616

1717
**Impact**
1818

@@ -53,16 +53,5 @@ These vulnerabilities target both user-facing components and back-end databases,
5353
<td>Block</td>
5454
<td>This is a New Detection</td>
5555
</tr>
56-
<tr>
57-
<td>Cloudflare Managed Ruleset</td>
58-
<td>
59-
<RuleID id="7663ea44178441a0b3205c145563445f" />
60-
</td>
61-
<td>100800</td>
62-
<td>SQLi - Obfuscated Boolean</td>
63-
<td>Log</td>
64-
<td>Block</td>
65-
<td>This is a New Detection</td>
66-
</tr>
6756
</tbody>
6857
</table>

src/content/changelog/waf/2025-07-28-waf-release.mdx

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -89,16 +89,5 @@ These vulnerabilities target user-facing components, web application servers, an
8989
<td>Block</td>
9090
<td>This is a New Detection</td>
9191
</tr>
92-
<tr>
93-
<td>Cloudflare Managed Ruleset</td>
94-
<td>
95-
<RuleID id="9b5c5e13d2ca4253a89769f2194f7b2d" />
96-
</td>
97-
<td>100822</td>
98-
<td>WordPress:Plugin:WPBookit - Remote Code Execution - CVE:CVE-2025-6058</td>
99-
<td>Log</td>
100-
<td>Block</td>
101-
<td>This is a New Detection</td>
102-
</tr>
10392
</tbody>
10493
</table>
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
---
2+
title: Rate Limiting in Workers is now GA
3+
description: Workers Rate Limiting is now Generally Available
4+
products:
5+
- workers
6+
date: 2025-09-19
7+
---
8+
9+
[Rate Limiting within Cloudflare Workers](/workers/runtime-apis/bindings/rate-limit/) is now Generally Available (GA).
10+
11+
The `ratelimit` binding is now stable and recommended for all production workloads. Existing deployments using the unsafe binding will continue to function to allow for a smooth transition.
12+
13+
For more details, refer to [Workers Rate Limiting](/workers/runtime-apis/bindings/rate-limit/) documentation.
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
---
2+
title: Panic Recovery for Rust Workers
3+
description: Deployments on workers-rs are now more reliable with automatic panic recovery
4+
date: 2025-09-19
5+
---
6+
7+
import { WranglerConfig, Aside } from "~/components";
8+
9+
In [workers-rs](https://github.com/cloudflare/workers-rs), Rust panics were previously non-recoverable. A panic would put the Worker into an invalid state, and further function calls could result in memory overflows or exceptions.
10+
11+
Now, when a panic occurs, in-flight requests will throw 500 errors, but the Worker will automatically and instantly recover for future requests.
12+
13+
This ensures more reliable deployments. Automatic panic recovery is enabled for all new workers-rs deployments as of version 0.6.5, with no configuration required.
14+
15+
## Fixing Rust Panics with Wasm Bindgen
16+
17+
Rust Workers are built with Wasm Bindgen, which treats panics as non-recoverable. After a panic, the entire Wasm application is considered to be in an invalid state.
18+
19+
We now attach a default panic handler in Rust:
20+
21+
```rust
22+
std::panic::set_hook(Box::new(move |panic_info| {
23+
hook_impl(panic_info);
24+
}));
25+
```
26+
27+
Which is registered by default in the JS initialization:
28+
29+
```js
30+
import { setPanicHook } from "./index.js";
31+
setPanicHook(function (err) {
32+
console.error("Panic handler!", err);
33+
});
34+
```
35+
36+
When a panic occurs, we reset the Wasm state to revert the Wasm application to how it was when the application started.
37+
38+
## Resetting VM State in Wasm Bindgen
39+
40+
We worked upstream on the Wasm Bindgen project to implement a new [`--experimental-reset-state-function` compilation option](https://github.com/wasm-bindgen/wasm-bindgen/pull/4644) which outputs a new `__wbg_reset_state` function.
41+
42+
This function clears all internal state related to the Wasm VM, and updates all function bindings in place to reference the new WebAssembly instance.
43+
44+
One other necessary change here was associating Wasm-created JS objects with an instance identity. If a JS object created by an earlier instance is then passed into a new instance later on, a new "stale object" error is specially thrown when using this feature.
45+
46+
## Layered Solution
47+
48+
Building on this new Wasm Bindgen feature, layered with our new default panic handler, we also added a proxy wrapper to ensure all top-level exported class instantiations (such as for Rust Durable Objects) are tracked and fully reinitialized when resetting the Wasm instance. This was necessary because
49+
the workerd runtime will instantiate exported classes, which would then be associated with the Wasm instance.
50+
51+
This approach now provides full panic recovery for Rust Workers on subsequent requests.
52+
53+
Of course, we never want panics, but when they do happen they are isolated and can be investigated further from the error logs - avoiding broader service disruption.
54+
55+
## WebAssembly Exception Handling
56+
57+
In the future, full support for recoverable panics could be implemented without needing reinitialization at all, utilizing the [WebAssembly Exception Handling](https://github.com/WebAssembly/exception-handling/blob/main/proposals/exception-handling/Exceptions.md)
58+
proposal, part of the newly announced [WebAssembly 3.0](https://webassembly.org/news/2025-09-17-wasm-3.0/) specification. This would allow unwinding panics as normal JS errors, and concurrent requests would no longer fail.
59+
60+
**We're making significant improvements to the reliability of [Rust Workers](https://github.com/cloudflare/workers-rs). Join us in `#rust-on-workers` on the [Cloudflare Developers Discord](https://discord.gg/cloudflaredev) to stay updated.**

src/content/docs/bots/additional-configurations/managed-robots-txt.mdx

Lines changed: 48 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ If your website already has a `robots.txt` file — verified by a HTTP `200` res
2626

2727
For example, without this feature enabled, the `robots.txt` content of `crawlstop.com` would be:
2828

29-
```txt
29+
```txt title="Feature not enabled"
3030
User-agent: *
3131
Disallow: /lp
3232
Disallow: /feedback
@@ -37,16 +37,53 @@ Sitemap: https://www.crawlstop.com/sitemap.xml
3737

3838
With the managed `robots.txt` enabled, Cloudflare will prepend our managed content before your original content, resulting in what you can view at https://www.crawlstop.com/robots.txt.
3939

40-
**Robots.txt example**
41-
<div style="position: relative; padding-top: 56.25%; border: 1px solid orange; border-radius: 5px">
42-
<iframe
43-
src="https://www.crawlstop.com/robots.txt"
44-
style="border: none; position: absolute; top: 0; left: 0; height: 100%; width: 100%;"
45-
allowfullscreen="true"
46-
title="crawltop.com robots.txt file"
47-
>
48-
</iframe>
49-
</div>
40+
```txt title="Feature enabled"
41+
# NOTICE: The collection of content and other data on this
42+
# site through automated means, including any device, tool,
43+
# or process designed to data mine or scrape content, is
44+
# prohibited except (1) for the purpose of search engine indexing or
45+
# artificial intelligence retrieval augmented generation or (2) with express
46+
# written permission from this site’s operator.
47+
48+
# To request permission to license our intellectual
49+
# property and/or other materials, please contact this
50+
# site’s operator directly.
51+
52+
# BEGIN Cloudflare Managed content
53+
54+
User-agent: Amazonbot
55+
Disallow: /
56+
57+
User-agent: Applebot-Extended
58+
Disallow: /
59+
60+
User-agent: Bytespider
61+
Disallow: /
62+
63+
User-agent: CCBot
64+
Disallow: /
65+
66+
User-agent: ClaudeBot
67+
Disallow: /
68+
69+
User-agent: Google-Extended
70+
Disallow: /
71+
72+
User-agent: GPTBot
73+
Disallow: /
74+
75+
User-agent: meta-externalagent
76+
Disallow: /
77+
78+
# END Cloudflare Managed Content
79+
User-agent: *
80+
Disallow: /lp
81+
Disallow: /feedback
82+
Disallow: /langtest
83+
84+
85+
Sitemap: https://www.crawlstop.com/sitemap.xml
86+
```
5087

5188
### No robots.txt file
5289

src/content/docs/cloudflare-one/connections/connect-networks/do-more-with-tunnels/local-management/configuration-file.mdx

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ warp-routing:
2828
enabled: true
2929
```
3030
31-
## File structure for public hostnames
31+
## File structure for published applications
3232
3333
If you are exposing local services to the Internet, you can assign a public hostname to each service:
3434
@@ -79,9 +79,9 @@ You can use wildcards to match traffic to multiple subdomains. For example, if y
7979

8080
You can also enter regular expressions for the `path` key. For example, if `hostname` is `static.example.com` and `path` is `\.(jpg|png|css|js)$`, matching URLs could include `https://static.example.com/data.js`, `http://static.example.com/images/photo.jpg`, and so on. Cloudflare parses the path regex using the [Go `syntax` package](https://pkg.go.dev/regexp/syntax).
8181

82-
### Supported protocols
82+
### Services
8383

84-
In addition to HTTP, `cloudflared` supports protocols like SSH, RDP, arbitrary TCP services, and Unix sockets. You can also route traffic to the built-in `Hello World` test server or respond to traffic with an HTTP status.
84+
In addition to HTTP, `cloudflared` supports protocols like SSH, RDP, arbitrary TCP services, and Unix sockets. You can also route traffic to the built-in `hello_world` test server or respond to traffic with an HTTP status. For a full list of supported service types, refer to [Protocols for published applications](/cloudflare-one/connections/connect-networks/routing-to-tunnel/protocols/).
8585

8686
```yml
8787
tunnel: 6ff42ae2-765d-4adf-8112-31c55c1551ef
@@ -101,18 +101,6 @@ ingress:
101101
- service: http_status:404
102102
```
103103

104-
| Service | Description | Example `service` value |
105-
| ---------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ------------------------------------- |
106-
| HTTP/S | Incoming HTTP requests are proxied directly to your local service. | `https://localhost:8000` |
107-
| HTTP over Unix socket | Just like HTTP, but using a Unix socket instead. | `unix:/home/production/echo.sock` |
108-
| HTTPS over Unix socket | Just like HTTPS, but using a Unix socket instead. | `unix+tls:/home/production/echo.sock` |
109-
| TCP | TCP connections are proxied to your local service. | `tcp://localhost:2222` |
110-
| SSH | SSH connections are proxied to your local service. [Learn more](/cloudflare-one/connections/connect-networks/use-cases/ssh/). | `ssh://localhost:22` |
111-
| RDP | RDP connections are proxied to your local service. [Learn more](/cloudflare-one/connections/connect-networks/use-cases/rdp/). | `rdp://localhost:3389` |
112-
| kubectl bastion mode | `cloudflared` will act like a jumphost, allowing access to any local address. | `bastion` |
113-
| Hello World | Test server for validating your Cloudflare Tunnel setup. | `hello_world` |
114-
| HTTP status | Responds to all requests with the given HTTP status. | `http_status:404` |
115-
116104
### Origin configuration
117105

118106
If you need to proxy traffic to multiple origins within one instance of `cloudflared`, you can define the way `cloudflared` sends requests to each service by specifying [configuration options](/cloudflare-one/connections/connect-networks/configure-tunnels/cloudflared-parameters/origin-parameters/) as part of your ingress rules.

0 commit comments

Comments
 (0)