<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Cloudflare changelogs | Cloudflare Mesh</title><description>Cloudflare changelogs for Cloudflare Mesh</description><link>https://developers.cloudflare.com/changelog/</link><item><title>Gateway, Cloudflare Mesh, Workers VPC - Filter Workers&apos; public Internet traffic using Gateway policies</title><link>https://developers.cloudflare.com/changelog/post/2026-06-05-gateway-egress/</link><guid isPermaLink="true">https://developers.cloudflare.com/changelog/post/2026-06-05-gateway-egress/</guid><description>&lt;p&gt;Workers using a &lt;a href=&quot;https://developers.cloudflare.com/workers-vpc/configuration/vpc-networks/&quot;&gt;VPC Network&lt;/a&gt; binding with &lt;code&gt;network_id: &quot;cf1:network&quot;&lt;/code&gt; now egress to public Internet destinations through &lt;a href=&quot;https://developers.cloudflare.com/cloudflare-one/traffic-policies/&quot;&gt;Cloudflare Gateway&lt;/a&gt;. This means your existing Zero Trust traffic policies — DNS, HTTP, Network, and egress — extend to traffic that originates from your Workers, the same way they do for WARP users today.&lt;/p&gt;
&lt;figure&gt; &lt;ol&gt; &lt;li&gt; &lt;div&gt; &lt;div&gt; &lt;span&gt;&lt;/span&gt; &lt;a href=&quot;https://developers.cloudflare.com/workers/&quot;&gt;Worker&lt;/a&gt; &lt;/div&gt; &lt;p&gt;Calls &lt;code class=&quot;astro-ptfydbty&quot;&gt;env.EGRESS.fetch()&lt;/code&gt;&lt;/p&gt; &lt;/div&gt; &lt;/li&gt; &lt;li&gt; &lt;a href=&quot;https://developers.cloudflare.com/workers-vpc/&quot;&gt;VPC binding&lt;/a&gt; &lt;span&gt;↓&lt;/span&gt; &lt;/li&gt; &lt;li&gt; &lt;div&gt; &lt;div&gt; &lt;span&gt;&lt;/span&gt; &lt;a href=&quot;https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-mesh/&quot;&gt;Cloudflare Mesh&lt;/a&gt; &lt;/div&gt; &lt;p&gt;
Bind via &lt;a href=&quot;https://developers.cloudflare.com/workers-vpc/configuration/vpc-networks/&quot;&gt;&lt;code class=&quot;astro-ptfydbty&quot;&gt;cf1:network&lt;/code&gt;&lt;/a&gt; &lt;/p&gt; &lt;/div&gt; &lt;/li&gt; &lt;li&gt; &lt;span&gt;↓&lt;/span&gt; &lt;/li&gt; &lt;li&gt; &lt;div&gt; &lt;div&gt; &lt;span&gt;&lt;/span&gt; &lt;a href=&quot;https://developers.cloudflare.com/cloudflare-one/traffic-policies/&quot;&gt;Cloudflare Gateway&lt;/a&gt; &lt;/div&gt; &lt;p&gt;Policies applied:&lt;/p&gt; &lt;div&gt; &lt;a href=&quot;https://developers.cloudflare.com/cloudflare-one/traffic-policies/dns-policies/&quot;&gt; DNS &lt;/a&gt;&lt;a href=&quot;https://developers.cloudflare.com/cloudflare-one/traffic-policies/http-policies/&quot;&gt; HTTP &lt;/a&gt;&lt;a href=&quot;https://developers.cloudflare.com/cloudflare-one/traffic-policies/network-policies/&quot;&gt; Network &lt;/a&gt; &lt;/div&gt; &lt;/div&gt; &lt;/li&gt; &lt;li&gt; &lt;span&gt;↓&lt;/span&gt; &lt;/li&gt; &lt;li&gt; &lt;div&gt; &lt;div&gt; &lt;span&gt;↗&lt;/span&gt; &lt;span&gt;Public Internet&lt;/span&gt; &lt;/div&gt; &lt;p&gt;Any public hostname or IP&lt;/p&gt; &lt;/div&gt; &lt;/li&gt; &lt;/ol&gt; &lt;a href=&quot;https://developers.cloudflare.com/cloudflare-one/insights/logs/dashboard-logs/gateway-logs/&quot;&gt; &lt;span&gt;Gateway logs&lt;/span&gt; &lt;span&gt; &lt;span&gt;DNS&lt;/span&gt; &lt;span&gt;HTTP&lt;/span&gt; &lt;span&gt;Network&lt;/span&gt; &lt;/span&gt; &lt;/a&gt; &lt;/figure&gt;
&lt;p&gt;What you get by default:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Visibility.&lt;/strong&gt; Worker egress shows up in Gateway &lt;a href=&quot;https://developers.cloudflare.com/cloudflare-one/traffic-policies/dns-policies/&quot;&gt;DNS&lt;/a&gt;, &lt;a href=&quot;https://developers.cloudflare.com/cloudflare-one/traffic-policies/http-policies/&quot;&gt;HTTP&lt;/a&gt;, and &lt;a href=&quot;https://developers.cloudflare.com/cloudflare-one/traffic-policies/network-policies/&quot;&gt;Network&lt;/a&gt; logs alongside your other traffic, so you can audit what your Workers are calling and when.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Enforcement.&lt;/strong&gt; Any existing Gateway policy whose selectors match a Worker request will apply — including allow / block lists, DNS category filtering, and HTTP destination rules. If you have already blocked a category for your workforce, your Workers inherit that block.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;&lt;li&gt;&lt;p&gt;wrangler.jsonc&lt;/p&gt;&lt;div&gt;  &lt;div&gt;&lt;figure&gt;&lt;pre data-language=&quot;jsonc&quot;&gt;&lt;code class=&quot;language-jsonc&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;&quot;&lt;/span&gt;&lt;span&gt;vpc_networks&lt;/span&gt;&lt;span&gt;&quot;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;[&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;      &lt;/span&gt;&lt;span&gt;&quot;&lt;/span&gt;&lt;span&gt;binding&lt;/span&gt;&lt;span&gt;&quot;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&quot;EGRESS&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;      &lt;/span&gt;&lt;span&gt;&quot;&lt;/span&gt;&lt;span&gt;network_id&lt;/span&gt;&lt;span&gt;&quot;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&quot;cf1:network&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;      &lt;/span&gt;&lt;span&gt;&quot;&lt;/span&gt;&lt;span&gt;remote&lt;/span&gt;&lt;span&gt;&quot;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;true&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;},&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;],&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;  &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;wrangler.toml&lt;/p&gt;&lt;div&gt;  &lt;div&gt;&lt;figure&gt;&lt;pre data-language=&quot;toml&quot;&gt;&lt;code class=&quot;language-toml&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;[[&lt;/span&gt;&lt;span&gt;vpc_networks&lt;/span&gt;&lt;span&gt;]]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;binding&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&quot;EGRESS&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;network_id&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&quot;cf1:network&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;remote&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;true&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;  &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;  
&lt;ul&gt;&lt;li&gt;&lt;p&gt;JavaScript&lt;/p&gt;&lt;div&gt;  &lt;div&gt;&lt;figure&gt;&lt;pre data-language=&quot;js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;// Egress to a public destination — subject to your Gateway policies and logged&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;response&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;await&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;env&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;EGRESS&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;fetch&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&quot;https://api.example.com/data&quot;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;  &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;TypeScript&lt;/p&gt;&lt;div&gt;  &lt;div&gt;&lt;figure&gt;&lt;pre data-language=&quot;ts&quot;&gt;&lt;code class=&quot;language-ts&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;// Egress to a public destination — subject to your Gateway policies and logged&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;response&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;await&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;env&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;EGRESS&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;fetch&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&quot;https://api.example.com/data&quot;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;  &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;  
&lt;p&gt;For configuration options, refer to &lt;a href=&quot;https://developers.cloudflare.com/workers-vpc/configuration/vpc-networks/&quot;&gt;VPC Networks&lt;/a&gt;. For policy authoring, refer to &lt;a href=&quot;https://developers.cloudflare.com/cloudflare-one/traffic-policies/&quot;&gt;Cloudflare Gateway traffic policies&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><product>Gateway</product><category>Gateway</category><category>Cloudflare Mesh</category><category>Workers VPC</category></item><item><title>Cloudflare Mesh, Cloudflare One - High availability replica management for Cloudflare Mesh</title><link>https://developers.cloudflare.com/changelog/post/2026-05-28-mesh-ha-replica-ui/</link><guid isPermaLink="true">https://developers.cloudflare.com/changelog/post/2026-05-28-mesh-ha-replica-ui/</guid><description>&lt;p&gt;The &lt;a href=&quot;https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-mesh/&quot;&gt;Cloudflare Mesh&lt;/a&gt; dashboard now shows per-replica details for &lt;a href=&quot;https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-mesh/high-availability/&quot;&gt;high availability&lt;/a&gt; nodes. You can see which replica is active, view each replica&apos;s Mesh IP and connection details, and manually trigger failover — all from the node detail page.&lt;/p&gt;
&lt;starlight-image-zoom-zoomable&gt;&lt;img src=&quot;https://developers.cloudflare.com/_astro/mesh-ha-replicas.Dvf1GMmQ_Z2i6nGi.webp&quot; alt=&quot;Mesh HA replica tabs showing active and passive replicas with per-replica Mesh IPs and a manual failover option&quot;&gt;&lt;/starlight-image-zoom-zoomable&gt;
&lt;h4&gt;What&apos;s new&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Replica tabs&lt;/strong&gt; on the node detail page — switch between replicas to see each one&apos;s Mesh IP, edge data center, origin IP, platform, version, and uptime.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Active/passive badges&lt;/strong&gt; identify which replica is currently routing traffic.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Manual failover&lt;/strong&gt; — promote a passive replica to active with a single click. The previous active replica switches to standby.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;HA badge&lt;/strong&gt; in the overview table identifies nodes running multiple replicas.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Active replica IP&lt;/strong&gt; shown in the overview table — the dashboard now resolves which replica is active and displays the correct Mesh IP.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Manual failover&lt;/h4&gt;
&lt;p&gt;To manually promote a passive replica:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;In the &lt;a href=&quot;https://dash.cloudflare.com/?to=/:account/mesh&quot; target=&quot;_blank&quot;&gt;Cloudflare dashboard&lt;/a&gt;, go to &lt;strong&gt;Networking&lt;/strong&gt; &gt; &lt;strong&gt;Mesh&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select an HA-enabled node.&lt;/li&gt;
&lt;li&gt;Select the passive replica tab.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Promote to active&lt;/strong&gt; and confirm.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Traffic reroutes to the promoted replica immediately. Refer to &lt;a href=&quot;https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-mesh/high-availability/&quot;&gt;High availability&lt;/a&gt; for details on failover behavior.&lt;/p&gt;</description><pubDate>Thu, 28 May 2026 00:00:00 GMT</pubDate><product>Cloudflare Mesh</product><category>Cloudflare Mesh</category><category>Cloudflare One</category></item><item><title>Cloudflare Fundamentals, Cloudflare One, Cloudflare Tunnel for SASE, Cloudflare Tunnel, Cloudflare Mesh - Granular permissions for Cloudflare Tunnel and Cloudflare Mesh</title><link>https://developers.cloudflare.com/changelog/post/2026-05-21-tunnel-mesh-granular-permissions/</link><guid isPermaLink="true">https://developers.cloudflare.com/changelog/post/2026-05-21-tunnel-mesh-granular-permissions/</guid><description>&lt;p&gt;You can now scope Cloudflare permissions to individual &lt;a href=&quot;https://developers.cloudflare.com/tunnel/&quot;&gt;Cloudflare Tunnel&lt;/a&gt; instances and &lt;a href=&quot;https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-mesh/&quot;&gt;Cloudflare Mesh&lt;/a&gt; nodes. Administrators can delegate access to specific Tunnels or Mesh nodes without granting account-wide control over private networking.&lt;/p&gt;
&lt;h4&gt;What is new&lt;/h4&gt;
&lt;p&gt;When you &lt;a href=&quot;https://developers.cloudflare.com/fundamentals/manage-members/manage/&quot;&gt;add a member&lt;/a&gt; or create a &lt;a href=&quot;https://developers.cloudflare.com/fundamentals/manage-members/policies/&quot;&gt;permission policy&lt;/a&gt;, the resource picker now lists &lt;a href=&quot;https://developers.cloudflare.com/tunnel/&quot;&gt;Cloudflare Tunnel&lt;/a&gt; instances and &lt;a href=&quot;https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-mesh/&quot;&gt;Cloudflare Mesh&lt;/a&gt; nodes as scopable resource types. You can:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Grant a read-only role on a single Cloudflare Tunnel instance to a support operator for log streaming and diagnostics — without exposing other Tunnels or destructive actions.&lt;/li&gt;
&lt;li&gt;Grant a write role on a specific Cloudflare Mesh node to an application team — without giving them access to the rest of your private network.&lt;/li&gt;
&lt;li&gt;Scope a single policy to one or many Tunnels and Mesh nodes at once.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;How it works&lt;/h4&gt;
&lt;p&gt;Granular permissions are a parallel layer to existing account-level roles — they do not replace them.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Existing account-level roles continue to work.&lt;/strong&gt; A member with &lt;code&gt;Cloudflare Access&lt;/code&gt; or &lt;code&gt;Cloudflare Zero Trust&lt;/code&gt; retains write access to every Tunnel and Mesh node in the account. This ensures backward compatibility for existing automation and tokens.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Granular permissions are additive.&lt;/strong&gt; For any API request on a specific Tunnel or Mesh node, access is granted if the principal has &lt;strong&gt;either&lt;/strong&gt; the account-level role &lt;strong&gt;or&lt;/strong&gt; a granular permission for that resource.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Resource enumeration is authorization-aware.&lt;/strong&gt; Listing endpoints (&lt;code&gt;GET /accounts/{id}/cfd_tunnel&lt;/code&gt;, &lt;code&gt;GET /accounts/{id}/warp_connector&lt;/code&gt;) return only the resources the principal has at least read access to.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Get started&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Configure &lt;a href=&quot;https://developers.cloudflare.com/tunnel/advanced/granular-permissions/&quot;&gt;granular permissions for Cloudflare Tunnel&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Configure &lt;a href=&quot;https://developers.cloudflare.com/cloudflare-one/networks/connectors/granular-permissions/&quot;&gt;granular permissions for Cloudflare Tunnel and Cloudflare Mesh in Cloudflare One&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Review the &lt;a href=&quot;https://developers.cloudflare.com/fundamentals/manage-members/roles/#resource-scoped-roles&quot;&gt;resource-scoped roles&lt;/a&gt; on the Cloudflare role reference.&lt;/li&gt;
&lt;/ul&gt;</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><product>Cloudflare Fundamentals</product><category>Cloudflare Fundamentals</category><category>Cloudflare One</category><category>Cloudflare Tunnel for SASE</category><category>Cloudflare Tunnel</category><category>Cloudflare Mesh</category></item></channel></rss>