<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Cloudflare changelogs | Workers VPC</title><description>Cloudflare changelogs for Workers VPC</description><link>https://developers.cloudflare.com/changelog/</link><item><title>Workers VPC - TCP connections via connect() over VPC Networks</title><link>https://developers.cloudflare.com/changelog/post/2026-06-16-tcp-connect-vpc-networks/</link><guid isPermaLink="true">https://developers.cloudflare.com/changelog/post/2026-06-16-tcp-connect-vpc-networks/</guid><description>&lt;p&gt;&lt;a href=&quot;https://developers.cloudflare.com/workers-vpc/configuration/vpc-networks/&quot;&gt;VPC Network&lt;/a&gt; bindings now support the &lt;a href=&quot;https://developers.cloudflare.com/workers/runtime-apis/tcp-sockets/&quot;&gt;&lt;code&gt;connect()&lt;/code&gt;&lt;/a&gt; Socket API for raw TCP connections to private destinations, in addition to HTTP traffic via &lt;code&gt;fetch()&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;This means Workers can now open TCP sockets to any private service reachable through the bound Cloudflare Tunnel, Cloudflare Mesh, or Cloudflare WAN on-ramp — Redis, Memcached, MQTT, custom binary protocols, or any other TCP-based service.&lt;/p&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;$schema&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;./node_modules/wrangler/config-schema.json&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;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;PRIVATE_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;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;/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;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;PRIVATE_NETWORK&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;p&gt;At runtime, use &lt;code&gt;connect()&lt;/code&gt; on the binding to open a TCP socket to a private destination:&lt;/p&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;export&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;default&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;async&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;request&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Request&lt;/span&gt;&lt;span&gt;,&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; &lt;/span&gt;&lt;span&gt;Env&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;// Open a TCP connection to a private Redis instance&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;socket&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;PRIVATE_NETWORK&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;connect&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&quot;10.0.1.50:6379&quot;&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;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;// Write a Redis PING command&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;writer&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;socket&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;writable&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;getWriter&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;await&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;writer&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;write&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;TextEncoder&lt;/span&gt;&lt;span&gt;()&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;encode&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&quot;PING&lt;/span&gt;&lt;span&gt;\r\n&lt;/span&gt;&lt;span&gt;&quot;&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;await&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;writer&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;close&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;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;new&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;socket&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;readable&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;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;aside&gt;&lt;p&gt;Note&lt;/p&gt;&lt;div&gt;&lt;p&gt;&lt;code&gt;connect()&lt;/code&gt; over VPC Networks currently supports plaintext TCP only.&lt;/p&gt;&lt;/div&gt;&lt;/aside&gt;
&lt;p&gt;For more details, refer to &lt;a href=&quot;https://developers.cloudflare.com/workers-vpc/configuration/vpc-networks/&quot;&gt;VPC Networks&lt;/a&gt; and the &lt;a href=&quot;https://developers.cloudflare.com/workers-vpc/api/&quot;&gt;Workers Binding API&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Tue, 16 Jun 2026 00:00:00 GMT</pubDate><product>Workers VPC</product><category>Workers VPC</category></item><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>Workers VPC - Reach Cloudflare WAN destinations from Workers VPC</title><link>https://developers.cloudflare.com/changelog/post/2026-05-21-vpc-networks-cloudflare-wan/</link><guid isPermaLink="true">https://developers.cloudflare.com/changelog/post/2026-05-21-vpc-networks-cloudflare-wan/</guid><description>&lt;p&gt;You can now use &lt;a href=&quot;https://developers.cloudflare.com/workers-vpc/configuration/vpc-networks/&quot;&gt;VPC Network&lt;/a&gt; bindings with &lt;code&gt;network_id: &quot;cf1:network&quot;&lt;/code&gt; to reach your full private network from Workers, including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-mesh/&quot;&gt;Cloudflare Mesh&lt;/a&gt; nodes and client devices&lt;/li&gt;
&lt;li&gt;Subnet routes and hostname routes announced through &lt;a href=&quot;https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/&quot;&gt;Cloudflare Tunnel&lt;/a&gt; or Cloudflare Mesh&lt;/li&gt;
&lt;li&gt;Destinations connected through &lt;a href=&quot;https://developers.cloudflare.com/cloudflare-wan/&quot;&gt;Cloudflare WAN&lt;/a&gt; on-ramps — GRE, IPsec, and CNI&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This means a single VPC Network binding can route Worker requests to private services regardless of how those services are connected to Cloudflare: through a Cloudflare Tunnel from a cloud VPC, a Mesh node on a private subnet, or a Cloudflare WAN on-ramp from your data center or branch site.&lt;/p&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;PRIVATE_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;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;PRIVATE_NETWORK&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;p&gt;At runtime, the URL you pass to &lt;code&gt;fetch()&lt;/code&gt; determines the destination:&lt;/p&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;// Reach a service behind a Cloudflare WAN IPsec on-ramp&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;PRIVATE_NETWORK&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;http://10.50.0.100:8080/api&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;aside&gt;&lt;p&gt;Note&lt;/p&gt;&lt;div&gt;&lt;p&gt;For destinations behind Cloudflare WAN on-ramps (GRE, IPsec, or CNI), your network must route the &lt;a href=&quot;https://developers.cloudflare.com/cloudflare-wan/configuration/how-to/configure-cloudflare-source-ips/&quot;&gt;Cloudflare source IP range&lt;/a&gt; back through the on-ramp so reply traffic returns to Cloudflare. Without this route, stateful flows will fail. This is part of standard Cloudflare WAN onboarding.&lt;/p&gt;&lt;/div&gt;&lt;/aside&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;.&lt;/p&gt;</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><product>Workers VPC</product><category>Workers VPC</category></item><item><title>Workers VPC - VPC Networks and Cloudflare Mesh support now in public beta</title><link>https://developers.cloudflare.com/changelog/post/2026-04-14-vpc-networks/</link><guid isPermaLink="true">https://developers.cloudflare.com/changelog/post/2026-04-14-vpc-networks/</guid><description>&lt;p&gt;&lt;a href=&quot;https://developers.cloudflare.com/workers-vpc/configuration/vpc-networks/&quot;&gt;VPC Network&lt;/a&gt; bindings now give your Workers access to any service in your private network without pre-registering individual hosts or ports. This complements existing &lt;a href=&quot;https://developers.cloudflare.com/workers-vpc/configuration/vpc-services/&quot;&gt;VPC Service&lt;/a&gt; bindings, which scope each binding to a specific host and port.&lt;/p&gt;
&lt;p&gt;You can bind to a &lt;a href=&quot;https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/&quot;&gt;Cloudflare Tunnel&lt;/a&gt; by &lt;code&gt;tunnel_id&lt;/code&gt; to reach any service on the network where that tunnel is running, or bind to your &lt;a href=&quot;https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-mesh/&quot;&gt;Cloudflare Mesh&lt;/a&gt; network using &lt;code&gt;cf1:network&lt;/code&gt; to reach any Mesh node, client device, or subnet route in your account:&lt;/p&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;MESH&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;/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;MESH&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;p&gt;At runtime, &lt;code&gt;fetch()&lt;/code&gt; routes through the network to reach the service at the IP and port you specify:&lt;/p&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;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;MESH&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;http://10.0.1.50:8080/api/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;p&gt;For configuration options and examples, refer to &lt;a href=&quot;https://developers.cloudflare.com/workers-vpc/configuration/vpc-networks/&quot;&gt;VPC Networks&lt;/a&gt; and &lt;a href=&quot;https://developers.cloudflare.com/workers-vpc/examples/connect-to-cloudflare-mesh/&quot;&gt;Connect Workers to Cloudflare Mesh&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Tue, 14 Apr 2026 00:00:00 GMT</pubDate><product>Workers VPC</product><category>Workers VPC</category></item><item><title>Workers VPC - Observability for Workers VPC Services</title><link>https://developers.cloudflare.com/changelog/post/2026-03-20-metrics-and-settings-dashboard/</link><guid isPermaLink="true">https://developers.cloudflare.com/changelog/post/2026-03-20-metrics-and-settings-dashboard/</guid><description>&lt;p&gt;Each VPC Service now has a &lt;strong&gt;Metrics&lt;/strong&gt; tab so you can monitor connection health and debug failures without leaving the dashboard.&lt;/p&gt;
&lt;starlight-image-zoom-zoomable&gt;&lt;img src=&quot;https://developers.cloudflare.com/_astro/2026-03-20-metrics-dashboard.6kfnbqQd_1Oc7Ft.webp&quot; alt=&quot;Workers VPC Metrics dashboard showing connections, latency, and errors charts&quot;&gt;&lt;/starlight-image-zoom-zoomable&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Connections&lt;/strong&gt; — See successful and failed connections over time, broken down by what is responsible: your origin (Bad Upstream), your configuration (Client), or Cloudflare (Internal).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Latency&lt;/strong&gt; — Track connection and DNS resolution latency trends.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Errors&lt;/strong&gt; — Drill into specific error codes grouped by category, with filters to isolate upstream, client, or internal failures.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can also view and edit your VPC Service configuration, host details, and port assignments from the &lt;strong&gt;Settings&lt;/strong&gt; tab.&lt;/p&gt;
&lt;p&gt;For a full list of error codes and what they mean, refer to &lt;a href=&quot;https://developers.cloudflare.com/workers-vpc/reference/troubleshooting/&quot;&gt;Troubleshooting&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Fri, 20 Mar 2026 00:00:00 GMT</pubDate><product>Workers VPC</product><category>Workers VPC</category></item><item><title>Workers VPC - Origin CA certificate support for Workers VPC</title><link>https://developers.cloudflare.com/changelog/post/2026-02-13-origin-ca-certificate-support/</link><guid isPermaLink="true">https://developers.cloudflare.com/changelog/post/2026-02-13-origin-ca-certificate-support/</guid><description>&lt;p&gt;Workers VPC now supports &lt;a href=&quot;https://developers.cloudflare.com/ssl/origin-configuration/origin-ca/&quot;&gt;Cloudflare Origin CA certificates&lt;/a&gt; when connecting to your private services over HTTPS. Previously, Workers VPC only trusted certificates issued by publicly trusted certificate authorities (for example, Let&apos;s Encrypt, DigiCert).&lt;/p&gt;
&lt;p&gt;With this change, you can use free Cloudflare Origin CA certificates on your origin servers within private networks and connect to them from Workers VPC using the &lt;code&gt;https&lt;/code&gt; scheme. This is useful for encrypting traffic between the tunnel and your service without needing to provision certificates from a public CA.&lt;/p&gt;
&lt;p&gt;For more information, refer to &lt;a href=&quot;https://developers.cloudflare.com/workers-vpc/configuration/vpc-services/#supported-tls-certificates&quot;&gt;Supported TLS certificates&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Fri, 13 Feb 2026 00:00:00 GMT</pubDate><product>Workers VPC</product><category>Workers VPC</category></item><item><title>Workers VPC - Announcing Workers VPC Services (Beta)</title><link>https://developers.cloudflare.com/changelog/post/2025-09-25-workers-vpc/</link><guid isPermaLink="true">https://developers.cloudflare.com/changelog/post/2025-09-25-workers-vpc/</guid><description>&lt;p&gt;&lt;strong&gt;Workers VPC Services&lt;/strong&gt; is now available, enabling your Workers to securely access resources in your private networks, without having to expose them on the public Internet.&lt;/p&gt;
&lt;h4&gt;What&apos;s new&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;VPC Services&lt;/strong&gt;: Create secure connections to internal APIs, databases, and services using familiar Worker binding syntax&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Multi-cloud Support&lt;/strong&gt;: Connect to resources in private networks in any external cloud (AWS, Azure, GCP, etc.) or on-premise using Cloudflare Tunnels&lt;/li&gt;
&lt;/ul&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;export&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;default&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;async&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;request&lt;/span&gt;&lt;span&gt;,&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; &lt;/span&gt;&lt;span&gt;ctx&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;// Perform application logic in Workers here&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;// Sample call to an internal API running on ECS in AWS using the binding&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&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;AWS_VPC_ECS_API&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://internal-host.example.com&quot;&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;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;// Additional application logic in Workers&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;new&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;/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;div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h4&gt;Getting started&lt;/h4&gt;
&lt;p&gt;Set up a Cloudflare Tunnel, create a VPC Service, add service bindings to your Worker, and access private resources securely. &lt;a href=&quot;https://developers.cloudflare.com/workers-vpc/&quot;&gt;Refer to the documentation&lt;/a&gt; to get started.&lt;/p&gt;</description><pubDate>Wed, 05 Nov 2025 00:00:00 GMT</pubDate><product>Workers VPC</product><category>Workers VPC</category></item></channel></rss>