Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ Payment headers (`crawler-exact-price` or `crawler-max-price`) must now be inclu

### New `crawler-error` header

Pay Per Crawl error responses now include a new `crawler-error` header with 11 specific [error codes](/ai-crawl-control/features/pay-per-crawl/use-pay-per-crawl-as-ai-owner/crawl-pages/#error-code-reference) for programmatic handling. Error response bodies remain unchanged for compatibility. These codes enable robust error handling, automated retry logic, and accurate spending tracking.
Pay Per Crawl error responses now include a new `crawler-error` header with 11 specific [error codes](/ai-crawl-control/features/pay-per-crawl/use-pay-per-crawl-as-ai-owner/error-codes/) for programmatic handling. Error response bodies remain unchanged for compatibility. These codes enable robust error handling, automated retry logic, and accurate spending tracking.

## For site owners

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ You can now subscribe to events from other Cloudflare services (for example, [Wo

Event subscriptions allow you to receive messages when events occur across your Cloudflare account. Cloudflare products can publish structured events to a queue, which you can then consume with [Workers](/workers/) or [pull via HTTP from anywhere](/queues/configuration/pull-consumers/).

To create a subscription, use the dashboard or [Wrangler](/workers/wrangler/commands/#subscription-create):
To create a subscription, use the dashboard or [Wrangler](/workers/wrangler/commands/queues/#subscription-create):

```bash
npx wrangler queues subscription create my-queue --source r2 --events bucket.created
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
date: 2025-06-09
---

Workers native integrations were [originally launched in May 2023](https://blog.cloudflare.com/announcing-database-integrations/) to connect to popular database and observability providers with your Worker in just a few clicks. We are changing how developers connect Workers to these external services. The **Integrations** tab in the dashboard has been removed in favor of a more direct, command-line-based approach using [Wrangler secrets](/workers/wrangler/commands/#secret).
Workers native integrations were [originally launched in May 2023](https://blog.cloudflare.com/announcing-database-integrations/) to connect to popular database and observability providers with your Worker in just a few clicks. We are changing how developers connect Workers to these external services. The **Integrations** tab in the dashboard has been removed in favor of a more direct, command-line-based approach using [Wrangler secrets](/workers/wrangler/commands/general/#secret).

Check warning on line 9 in src/content/changelog/workers/2025-06-09-workers-integrations-changes.mdx

View workflow job for this annotation

GitHub Actions / Semgrep

semgrep.style-guide-potential-date-year

Potential year found. Documentation should strive to represent universal truth, not something time-bound. (add [skip style guide checks] to commit message to skip)

Check warning on line 9 in src/content/changelog/workers/2025-06-09-workers-integrations-changes.mdx

View workflow job for this annotation

GitHub Actions / Semgrep

semgrep.style-guide-potential-date-month

Potential month found. Documentation should strive to represent universal truth, not something time-bound. (add [skip style guide checks] to commit message to skip)

## What's changed

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ When you create a pull request:

## Custom alias name

You can also assign a custom preview alias using the [Wrangler CLI](/workers/wrangler/), by passing the `--preview-alias` flag when [uploading a version](/workers/wrangler/commands/#versions-upload) of your Worker:
You can also assign a custom preview alias using the [Wrangler CLI](/workers/wrangler/), by passing the `--preview-alias` flag when [uploading a version](/workers/wrangler/commands/general/#versions-upload) of your Worker:

```bash
wrangler versions upload --preview-alias staging
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,6 @@ This allows you to:

* Split traffic using [gradual deployments](/workers/configuration/versions-and-deployments/gradual-deployments/) between your latest code and any of the 100 most recent versions.

You can do this through the Cloudflare dashboard or with [Wrangler's rollback command](/workers/wrangler/commands/#rollback)
You can do this through the Cloudflare dashboard or with [Wrangler's rollback command](/workers/wrangler/commands/general/#rollback)

Learn more about [versioned deployments](/workers/configuration/versions-and-deployments/) and [rollbacks](/workers/configuration/versions-and-deployments/rollbacks/).
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ date: 2025-11-21
import { Example } from "~/components";

Until now, if a Worker had been previously deployed via the [Cloudflare Dashboard](https://dash.cloudflare.com), a subsequent deployment done via the Cloudflare Workers CLI, [**Wrangler**](/workers/wrangler/)
(through the [`deploy` command](/workers/wrangler/commands/#deploy)), would allow the user to override the Worker's dashboard settings without providing details on
(through the [`deploy` command](/workers/wrangler/commands/general/#deploy)), would allow the user to override the Worker's dashboard settings without providing details on
what dashboard settings would be lost.

Now instead, `wrangler deploy` presents a helpful representation of the differences between the [local configuration](/workers/wrangler/configuration/)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ products:
date: 2025-12-18
---

Wrangler now includes a new [`wrangler auth token`](/workers/wrangler/commands/#auth-token) command that retrieves your current authentication token or credentials for use with other tools and scripts.
Wrangler now includes a new [`wrangler auth token`](/workers/wrangler/commands/general/#auth-token) command that retrieves your current authentication token or credentials for use with other tools and scripts.

```sh
wrangler auth token
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,4 +37,4 @@ wrangler kv <TAB> # shows subcommands: namespace, key, bulk

Tab completions are dynamically generated from Wrangler's command registry, so they stay up-to-date as new commands and options are added. This feature is powered by [`@bomb.sh/tab`](https://github.com/bombshell-dev/tab/).

See the [`wrangler complete` documentation](/workers/wrangler/commands/#complete) for more details.
See the [`wrangler complete` documentation](/workers/wrangler/commands/general/#complete) for more details.
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,4 @@ npx wrangler types --check

If your types are up to date, the command will succeed silently. If they are out of date, you'll see an error message indicating which files need to be regenerated.

For more information, see the [Wrangler types documentation](/workers/wrangler/commands/#types).
For more information, see the [Wrangler types documentation](/workers/wrangler/commands/general/#types).
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,4 @@ If you want the previous behavior of generating types for only a specific enviro
wrangler types --env production
```

Learn more about [generating types for your Worker](/workers/wrangler/commands/#types) in the Wrangler documentation.
Learn more about [generating types for your Worker](/workers/wrangler/commands/general/#types) in the Wrangler documentation.
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@ This aligns our logging with `wrangler tail` and gives us the opportunity to foc

We have made improvements to this logging viewer based on your feedback such that you can log object and array types, and easily clear the list of logs. This does not include class instances. Limitations are documented in the [Workers Playground docs](/workers/playground/).

If you do need to develop your Worker with a remote inspector, you can still do this using Wrangler locally. Cloning a project from your quick editor to your computer for local development can be done with the `wrangler init --from-dash` command. For more information, refer to [Wrangler commands](/workers/wrangler/commands/#init).
If you do need to develop your Worker with a remote inspector, you can still do this using Wrangler locally. Cloning a project from your quick editor to your computer for local development can be done with the `wrangler init --from-dash` command. For more information, refer to [Wrangler commands](/workers/wrangler/commands/general/#init).
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

You can now deploy any existing project to Cloudflare Workers — even without a Wrangler configuration file — and `wrangler deploy` will _just work_.

Starting with Wrangler **4.68.0**, running [`wrangler deploy`](/workers/wrangler/commands/#deploy) [automatically configures your project](/workers/framework-guides/automatic-configuration/) by detecting your framework, installing required adapters, and deploying it to Cloudflare Workers.
Starting with Wrangler **4.68.0**, running [`wrangler deploy`](/workers/wrangler/commands/general/#deploy) [automatically configures your project](/workers/framework-guides/automatic-configuration/) by detecting your framework, installing required adapters, and deploying it to Cloudflare Workers.

### Using Wrangler locally

Expand All @@ -24,7 +24,7 @@
4. Generates a `wrangler.jsonc` [configuration file](/workers/wrangler/configuration/)
5. Deploys your project to Cloudflare Workers

You can also use [`wrangler setup`](/workers/wrangler/commands/#setup) to configure without deploying, or pass [`--yes`](/workers/wrangler/commands/#deploy) to skip prompts.
You can also use [`wrangler setup`](/workers/wrangler/commands/general/#setup) to configure without deploying, or pass [`--yes`](/workers/wrangler/commands/general/#deploy) to skip prompts.

### Using the Cloudflare dashboard

Expand All @@ -38,6 +38,6 @@

## Background

In December 2025, we [introduced automatic configuration](/changelog/2025-12-16-wrangler-autoconfig/) as an experimental feature. It is now generally available and the default behavior.

Check warning on line 41 in src/content/changelog/workers/2026-02-25-wrangler-autoconfig-ga.mdx

View workflow job for this annotation

GitHub Actions / Semgrep

semgrep.style-guide-potential-date-year

Potential year found. Documentation should strive to represent universal truth, not something time-bound. (add [skip style guide checks] to commit message to skip)

Check warning on line 41 in src/content/changelog/workers/2026-02-25-wrangler-autoconfig-ga.mdx

View workflow job for this annotation

GitHub Actions / Semgrep

semgrep.style-guide-potential-date-month

Potential month found. Documentation should strive to represent universal truth, not something time-bound. (add [skip style guide checks] to commit message to skip)

If you have questions or run into issues, join the [GitHub discussion](https://github.com/cloudflare/workers-sdk/discussions/11667).
2 changes: 1 addition & 1 deletion src/content/docs/agents/api-reference/mcp-agent-api.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ Available jurisdictions include `"eu"` (European Union) and `"fedramp"` (FedRAMP

## Hibernation support

`McpAgent` instances automatically support [WebSockets Hibernation](/durable-objects/best-practices/websockets/#websocket-hibernation-api), allowing stateful MCP servers to sleep during inactive periods while preserving their state. This means your agents only consume compute resources when actively processing requests, optimizing costs while maintaining the full context and conversation history.
`McpAgent` instances automatically support [WebSockets Hibernation](/durable-objects/best-practices/websockets/#durable-objects-hibernation-websocket-api), allowing stateful MCP servers to sleep during inactive periods while preserving their state. This means your agents only consume compute resources when actively processing requests, optimizing costs while maintaining the full context and conversation history.

Hibernation is enabled by default and requires no additional configuration.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -214,7 +214,7 @@ Configure assets in the Wrangler configuration file:

## 6. Generate TypeScript types

Do not hand-write your `Env` interface. Run [`wrangler types`](/workers/wrangler/commands/#types) to generate a type definition file that matches your Wrangler configuration. This catches mismatches between your config and code at compile time instead of at deploy time.
Do not hand-write your `Env` interface. Run [`wrangler types`](/workers/wrangler/commands/general/#types) to generate a type definition file that matches your Wrangler configuration. This catches mismatches between your config and code at compile time instead of at deploy time.

Re-run `wrangler types` whenever you add or rename a binding.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -149,4 +149,4 @@ Your worker has access to the following bindings:

This spins up a local development server that runs the same runtime as Cloudflare Workers, and allows you to iterate on your Agent's code and test it locally without deploying it.

Visit the [`wrangler dev`](https://developers.cloudflare.com/workers/wrangler/commands/#dev) docs to review the CLI flags and configuration options.
Visit the [`wrangler dev`](https://developers.cloudflare.com/workers/wrangler/commands/general/#dev) docs to review the CLI flags and configuration options.
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ You may have both of the following features enabled:
- [WAF custom rule to block traffic from specific countries](/waf/custom-rules/use-cases/block-traffic-from-specific-countries/)
- AI Crawl Control's [pay per crawl](/ai-crawl-control/features/pay-per-crawl/what-is-pay-per-crawl/) to charge AI crawlers when they request access to your content

Since WAF custom rules are enforced before pay per crawl, traffic (including AI crawlers) from your blocked countries will continue to be blocked, even if they provide the [required headers](/ai-crawl-control/features/pay-per-crawl/use-pay-per-crawl-as-ai-owner/crawl-pages/#1-include-required-headers) for pay per crawl.
Since WAF custom rules are enforced before pay per crawl, traffic (including AI crawlers) from your blocked countries will continue to be blocked, even if they provide the [required headers](/ai-crawl-control/features/pay-per-crawl/use-pay-per-crawl-as-ai-owner/crawl-pages/#1-identify-payment-requirements) for pay per crawl.

### Allowed search engine bots via WAF custom rule vs pay per crawl

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,6 @@ Cloudflare is not responsible for configuring spending limits. Ensure you have c

## Billing

Charges are recorded upon successful delivery of content that is requested with valid [crawler price headers](/ai-crawl-control/features/pay-per-crawl/use-pay-per-crawl-as-ai-owner/crawl-pages/#22-include-payment-headers).
Charges are recorded upon successful delivery of content that is requested with valid [crawler price headers](/ai-crawl-control/features/pay-per-crawl/use-pay-per-crawl-as-ai-owner/crawl-pages/#21-include-payment-headers).

Invoices are created and managed via Stripe. Crawlers are responsible for setting and enforcing their own spending limits.
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ The metrics help you understand:
- Request patterns and trends
- Robots.txt violations

For detailed information about available metrics, refer to [View AI Crawl Control metrics](/ai-crawl-control/features/analyze-ai-traffic/#view-ai-crawl-control-metrics).
For detailed information about available metrics, refer to [View AI Crawl Control metrics](/ai-crawl-control/features/analyze-ai-traffic/#view-the-metrics-tab).

:::note[Balance visibility]
Your accrued earnings balance is not currently visible in the dashboard. You can request balance updates from your Cloudflare team.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,14 +27,14 @@ Once your domain's visibility is set to **Visible** in Account Settings, you can
<Steps>
1. Go to **AI Crawl Control**.

<DashButton url="/?to=/:account/:zone/ai" />
<DashButton url="/?to=/:account/:zone/ai" />

2. Go to the **Settings** tab.
3. In the **Pay Per Crawl** card, select **Enable**.
4. Set your default per crawl price. This is the amount charged for each successful content retrieval (HTTP 200 response) by an AI crawler.
- (Optional) To set different prices for different content, select **Enable custom pricing**. Refer to [Advanced configuration](/ai-crawl-control/features/pay-per-crawl/use-pay-per-crawl-as-site-owner/advanced-configuration/#custom-pricing) for details.
- (Optional) To set different prices for different content, select **Enable custom pricing**. Refer to [Advanced configuration](/ai-crawl-control/features/pay-per-crawl/use-pay-per-crawl-as-site-owner/advanced-configuration/) for details.
5. Select **Save**.
</Steps>
</Steps>

After enabling and setting a price, the domain's status in Account Settings will change to **Enabled**.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ Up to this point, you have created an AI binding for your Worker and configured

## 4. Develop locally with Wrangler

While in your project directory, test Workers AI locally by running [`wrangler dev`](/workers/wrangler/commands/#dev):
While in your project directory, test Workers AI locally by running [`wrangler dev`](/workers/wrangler/commands/general/#dev):

```bash
npx wrangler dev
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

In this tutorial, you will learn how to deploy a Worker that makes calls to OpenAI through AI Gateway. AI Gateway helps you better observe and control your AI applications with more analytics, caching, rate limiting, and logging.

This tutorial uses the most recent v4 OpenAI node library, an update released in August 2023.

Check warning on line 16 in src/content/docs/ai-gateway/tutorials/deploy-aig-worker.mdx

View workflow job for this annotation

GitHub Actions / Semgrep

semgrep.style-guide-potential-date-year

Potential year found. Documentation should strive to represent universal truth, not something time-bound. (add [skip style guide checks] to commit message to skip)

Check warning on line 16 in src/content/docs/ai-gateway/tutorials/deploy-aig-worker.mdx

View workflow job for this annotation

GitHub Actions / Semgrep

semgrep.style-guide-potential-date-month

Potential month found. Documentation should strive to represent universal truth, not something time-bound. (add [skip style guide checks] to commit message to skip)

## Before you start

Expand Down Expand Up @@ -89,7 +89,7 @@
};
```

To make this work, you need to use [`wrangler secret put`](/workers/wrangler/commands/#secret-put) to set your `OPENAI_API_KEY`. This will save the API key to your environment so your Worker can access it when deployed. This key is the API key you created earlier in the OpenAI dashboard:
To make this work, you need to use [`wrangler secret put`](/workers/wrangler/commands/general/#secret-put) to set your `OPENAI_API_KEY`. This will save the API key to your environment so your Worker can access it when deployed. This key is the API key you created earlier in the OpenAI dashboard:

<PackageManagers type="exec" pkg="wrangler" args="secret put OPENAI_API_KEY" />

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -247,7 +247,7 @@ Run `npx wrangler dev` to test your Worker locally.

## 7. Deploy

Run [`npx wrangler deploy`](/workers/wrangler/commands/#deploy) to deploy your Worker to the Cloudflare global network.
Run [`npx wrangler deploy`](/workers/wrangler/commands/general/#deploy) to deploy your Worker to the Cloudflare global network.

## Related resources

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@ sidebar:

import { Render, PackageManagers, WranglerConfig } from "~/components";

You can use [dynamic dispatch](/cloudflare-for-platforms/workers-for-platforms/configuration/dynamic-dispatch/) Workers to route millions of vanity domains or subdomains to Workers without hitting traditional [route limits](/workers/platform/limits/#number-of-routes-per-zone). These hostnames can be subdomains under your managed domain (e.g. `customer1.saas.com`) or vanity domains controlled by your end customers (e.g. `mystore.com`), which can be managed through [custom hostnames](/cloudflare-for-platforms/cloudflare-for-saas/domain-support/).
You can use [dynamic dispatch](/cloudflare-for-platforms/workers-for-platforms/configuration/dynamic-dispatch/) Workers to route millions of vanity domains or subdomains to Workers without hitting traditional [route limits](/workers/platform/limits/#routes-and-domains). These hostnames can be subdomains under your managed domain (e.g. `customer1.saas.com`) or vanity domains controlled by your end customers (e.g. `mystore.com`), which can be managed through [custom hostnames](/cloudflare-for-platforms/cloudflare-for-saas/domain-support/).

## (Recommended) Wildcard route with a dispatch Worker

Configure a wildcard [Route](/workers/configuration/routing/routes/) (`*/*`) on your SaaS domain (the domain where you configure custom hostnames) to point to your dynamic dispatch Worker. This allows you to:

- **Support both subdomains and vanity domains**: Handle `customer1.myplatform.com` (subdomain) and `shop.customer.com` (custom hostname) with the same routing logic.
- **Avoid route limits**: Instead of creating individual routes for every domain, which can cause you to hit [Routes limits](/workers/platform/limits/#number-of-routes-per-zone), you can handle the routing logic in code and proxy millions of domains to individual Workers.
- **Avoid route limits**: Instead of creating individual routes for every domain, which can cause you to hit [Routes limits](/workers/platform/limits/#routes-and-domains), you can handle the routing logic in code and proxy millions of domains to individual Workers.
- **Programmatically control routing logic**: Write custom code to route requests based on hostname, [custom metadata](/cloudflare-for-platforms/cloudflare-for-saas/domain-support/custom-metadata/), path, or any other properties.

:::note
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ This guide walks through how to deploy a remote <GlossaryTooltip term="MCP serve

## Prerequisites

- Create a [Zero Trust organization](/cloudflare-one/setup/#create-a-zero-trust-organization).
- Create a [Zero Trust organization](/cloudflare-one/setup/#2-create-a-zero-trust-organization).
- Configure [One-time PIN](/cloudflare-one/integrations/identity-providers/one-time-pin/) or connect a third-party [identity provider](/cloudflare-one/integrations/identity-providers/).

## 1. Deploy an example MCP server
Expand Down
Loading
Loading