Skip to content

Commit 906c31c

Browse files
committed
Merge commit '0d7ef0a4e6064fdc22d5aa436090ae4105bfcad3' into jun/do/ft-srs-ga
2 parents 1905b72 + 0d7ef0a commit 906c31c

File tree

279 files changed

+2710
-2502
lines changed

Some content is hidden

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

279 files changed

+2710
-2502
lines changed

package-lock.json

Lines changed: 165 additions & 256 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@
5151
"@types/react": "19.0.7",
5252
"@types/react-dom": "19.0.4",
5353
"@typescript-eslint/parser": "8.26.1",
54-
"algoliasearch": "5.20.4",
54+
"algoliasearch": "5.21.0",
5555
"astro": "5.4.1",
5656
"astro-breadcrumbs": "3.3.1",
5757
"astro-icon": "1.1.5",
@@ -62,7 +62,7 @@
6262
"dedent": "1.5.3",
6363
"dompurify": "3.2.4",
6464
"dot-prop": "9.0.0",
65-
"eslint": "9.21.0",
65+
"eslint": "9.22.0",
6666
"eslint-plugin-astro": "1.3.1",
6767
"eslint-plugin-jsx-a11y": "6.10.2",
6868
"eslint-plugin-react": "7.37.4",
@@ -111,8 +111,8 @@
111111
"tippy.js": "6.3.7",
112112
"ts-blank-space": "0.6.1",
113113
"tsx": "4.19.3",
114-
"typescript": "5.7.3",
115-
"typescript-eslint": "8.25.0",
114+
"typescript": "5.8.2",
115+
"typescript-eslint": "8.26.1",
116116
"unified": "11.0.5",
117117
"unist-util-visit": "5.0.0",
118118
"vite-tsconfig-paths": "5.1.4",

public/_redirects

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1948,6 +1948,7 @@
19481948
/cloudflare-one/policies/filtering/http-policies/data-loss-prevention/* /cloudflare-one/policies/data-loss-prevention/ 301
19491949
/cloudflare-one/policies/data-loss-prevention/configuration-guides/* /cloudflare-one/policies/data-loss-prevention/dlp-policies/common-policies/ 301
19501950
/cloudflare-one/insights/dex/fleet-status/ /cloudflare-one/insights/dex/monitoring/ 301
1951+
/cloudflare-one/identity/idp-integration/gsuite/ /cloudflare-one/identity/idp-integration/google-workspace/ 301
19511952

19521953
# Learning paths
19531954
/learning-paths/modules/cybersafe/cybersafe-account-creation/* /learning-paths/cybersafe/account-creation/:splat 301

public/robots.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,6 @@ Disallow: /plans/
55
Disallow: /constellation
66
Disallow: /cdn-cgi/
77
Disallow: /google-tag-first-party-mode/
8+
Disallow: /security/
89

910
Sitemap: https://developers.cloudflare.com/sitemap-index.xml

src/components/APIRequest.astro

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ const tokenGroups = operation["x-api-token-group"];
136136
</span>
137137
<ul>
138138
{tokenGroups.map((group) => (
139-
<li>{group}</li>
139+
<li><code>{group}</code></li>
140140
))}
141141
</ul>
142142
</Details>

src/components/ListTutorials.astro

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ if (!currentProduct) {
2020
}
2121
2222
const productTitle = currentProduct.data.product.title;
23+
const videoText = "🎥 Video"
24+
const tutorialText = "📝 Tutorial"
2325
2426
const docs = await getCollection("docs", (entry) => {
2527
return (
@@ -82,7 +84,7 @@ const timeAgo = (date?: Date) => {
8284
<Fragment set:html={anchor} />
8385
</td>
8486
<td>{timeAgo(tutorial.data.updated)}</td>
85-
<td>{tutorial.data.content_type}</td>
87+
<td>{tutorial.collection === "docs" ? tutorialText : videoText}</td>
8688
<td>{tutorial.data.difficulty}</td>
8789
</tr>
8890
);

src/components/overrides/Head.astro

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import type { CollectionEntry } from "astro:content";
1010
// grab the current top-level folder. Remove . characters for 1.1.1.1 URL
1111
const currentSection = Astro.url.pathname.split("/")[1].replaceAll(".", "");
1212
const head = Astro.locals.starlightRoute.entry.data.head;
13+
const noIndexProductsList = ["style-guide", "security"];
1314
1415
if (currentSection) {
1516
const product = await getEntry("products", currentSection);
@@ -77,7 +78,7 @@ if (currentSection) {
7778
}
7879
}
7980
80-
if (currentSection === "style-guide") {
81+
if (noIndexProductsList.includes(currentSection)) {
8182
head.push({
8283
tag: "meta",
8384
attrs: {
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
---
2+
title: Threaded replies now possible in Email Workers
3+
description: You can now use Email Workers to send multiple replies to the same email thread.
4+
date: 2025-03-12T18:00:00Z
5+
---
6+
7+
We’re removing some of the restrictions in Email Routing so that AI Agents and task automation can better handle email workflows, including how Workers can [reply](/email-routing/email-workers/reply-email-workers/) to incoming emails.
8+
9+
It's now possible to keep a threaded email conversation with an [Email Worker](/email-routing/email-workers/) script as long as:
10+
11+
* The incoming email has to have valid [DMARC](https://www.cloudflare.com/learning/dns/dns-records/dns-dmarc-record/).
12+
* The email can only be replied to once in the same `EmailMessage` event.
13+
* The recipient in the reply must match the incoming sender.
14+
* The outgoing sender domain must match the same domain that received the email.
15+
* Every time an email passes through Email Routing or another MTA, an entry is added to the `References` list. We stop accepting replies to emails with more than 100 `References` entries to prevent abuse or accidental loops.
16+
17+
Here's an example of a Worker responding to Emails using a Workers AI model:
18+
19+
```ts title="AI model responding to emails"
20+
import PostalMime from "postal-mime";
21+
import {createMimeMessage} from "mimetext"
22+
import { EmailMessage } from "cloudflare:email";
23+
24+
export default {
25+
async email(message, env, ctx) {
26+
const email = await PostalMime.parse(message.raw)
27+
const res = await env.AI.run('@cf/meta/llama-2-7b-chat-fp16', {
28+
messages: [{
29+
role: "user",
30+
content: email.text ?? ''
31+
}]
32+
})
33+
34+
// message-id is generated by mimetext
35+
const response = createMimeMessage()
36+
response.setHeader("In-Reply-To", message.headers.get("Message-ID")!);
37+
response.setSender("[email protected]");
38+
response.setRecipient(message.from);
39+
response.setSubject("Llama response");
40+
response.addMessage({
41+
contentType: 'text/plain',
42+
data: res instanceof ReadableStream ? await new Response(res).text() : res.response!
43+
})
44+
45+
const replyMessage = new EmailMessage("<email>", message.from, response.asRaw());
46+
await message.reply(replyMessage)
47+
}
48+
} satisfies ExportedHandler<Env>;
49+
```
50+
51+
See [Reply to emails from Workers](/email-routing/email-workers/reply-email-workers/) for more information.
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
---
2+
title: Use the latest JavaScript features with Wrangler CLI v4
3+
description: Wrangler v4 is available!
4+
products:
5+
- workers
6+
date: 2025-03-13T09:00:00Z
7+
---
8+
9+
import { PackageManagers } from "~/components";
10+
11+
We've released the next major version of [Wrangler](/workers/wrangler/), the CLI for Cloudflare Workers — `[email protected]`. Wrangler v4 is a major release focused on updates to underlying systems and dependencies, along with improvements to keep Wrangler commands consistent and clear.
12+
13+
You can run the following command to install it in your projects:
14+
15+
<PackageManagers pkg="wrangler@latest" />
16+
17+
Unlike previous major versions of Wrangler, which were [foundational rewrites](https://blog.cloudflare.com/wrangler-v2-beta/) and [rearchitectures](https://blog.cloudflare.com/wrangler3/) — Version 4 of Wrangler includes a much smaller set of changes. If you use Wrangler today, your workflow is very unlikely to change.
18+
19+
A [detailed migration guide](/workers/wrangler/migration/update-v3-to-v4) is available and if you find a bug or hit a roadblock when upgrading to Wrangler v4, [open an issue on the `cloudflare/workers-sdk` repository on GitHub](https://github.com/cloudflare/workers-sdk/issues/new?template=bug-template.yaml).
20+
21+
Going forward, we'll continue supporting Wrangler v3 with bug fixes and security updates until Q1 2026, and with critical security updates until Q1 2027, at which point it will be out of support.
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
---
2+
title: Set breakpoints and debug your Workers tests with @cloudflare/vitest-pool-workers
3+
description: You can now debug your workers tests with the Workers <> Vitest integration
4+
products:
5+
- workers
6+
date: 2025-03-13T14:00:00Z
7+
---
8+
9+
You can now debug your Workers tests with our [Vitest integration](/workers/testing/vitest-integration/) by running the following command:
10+
11+
```sh
12+
vitest --inspect --no-file-parallelism
13+
```
14+
15+
Attach a debugger to the port 9229 and you can start stepping through your Workers tests. This is available with `@cloudflare/vitest-pool-workers` v0.7.5 or later.
16+
17+
Learn more in our [documentation](/workers/testing/vitest-integration/debugging/).

0 commit comments

Comments
 (0)