<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Cloudflare changelogs | Application performance</title><description>Cloudflare changelogs for Application performance products</description><link>https://developers.stormtrust.net/changelog/</link><item><title>SSL/TLS - Certificate Transparency Monitoring is now Generally Available</title><link>https://developers.stormtrust.net/changelog/post/2026-08-13-ct-monitoring-ga/</link><guid isPermaLink="true">https://developers.stormtrust.net/changelog/post/2026-08-13-ct-monitoring-ga/</guid><description>&lt;p&gt;Certificate Transparency Monitoring is now &lt;a href=&quot;https://blog.cloudflare.com/certificate-transparency-monitoring-ga&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;generally available&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt; across all Cloudflare plans.&lt;/p&gt;
&lt;p&gt;Alerts for certificates Cloudflare issues on your behalf (Universal SSL renewals, backup certificates, Advanced Certificate Manager, Total TLS) are now automatically filtered out. Alert emails are also clearer and more actionable, with structured certificate details and a direct link to manage CT Monitoring in the Cloudflare dashboard.&lt;/p&gt;
&lt;p&gt;Learn more in the &lt;a href=&quot;https://blog.cloudflare.com/certificate-transparency-monitoring-ga&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;launch blog post&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt; or the &lt;a href=&quot;https://developers.stormtrust.net/ssl/edge-certificates/additional-options/certificate-transparency-monitoring/&quot;&gt;CT Monitoring docs&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Thu, 13 Aug 2026 00:00:00 GMT</pubDate><product>SSL/TLS</product><category>SSL/TLS</category></item><item><title>SSL/TLS - Faster and more secure TLS handshakes to your origins, automatically</title><link>https://developers.stormtrust.net/changelog/post/2026-07-21-automatic-origin-key-exchange/</link><guid isPermaLink="true">https://developers.stormtrust.net/changelog/post/2026-07-21-automatic-origin-key-exchange/</guid><description>&lt;p&gt;Cloudflare now takes the guesswork out of TLS 1.3 key agreement with your origins. Automatic key exchange predicts the preferred algorithm and sends its key share in the first &lt;code&gt;ClientHello&lt;/code&gt;, helping avoid a &lt;code&gt;HelloRetryRequest&lt;/code&gt; and one extra network round trip.&lt;/p&gt;
&lt;p&gt;Automatic key exchange is on for all existing zones and on by default for new zones. When an origin supports both classical and post-quantum key agreements, Cloudflare prefers the post-quantum &lt;code&gt;X25519MLKEM768&lt;/code&gt; hybrid key agreement.&lt;/p&gt;
&lt;p&gt;To change this behavior, go to &lt;strong&gt;SSL/TLS&lt;/strong&gt; &amp;gt; &lt;strong&gt;Overview&lt;/strong&gt; &amp;gt; &lt;strong&gt;Origin connection &amp;amp; post-quantum encryption&lt;/strong&gt;. Turn off &lt;strong&gt;Automatic key exchange&lt;/strong&gt; to stop automatic scans and preference updates. Turning it off does not change your compliance requirements.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Compliance requirements&lt;/strong&gt; apply only to TLS 1.3 connections. The &lt;strong&gt;Post-quantum hybrid&lt;/strong&gt; option requires hybrid post-quantum key agreements support on your origin server. The &lt;strong&gt;Federal Information Processing Standards (FIPS)&lt;/strong&gt; option requires FIPS-compliant key agreements. Select both to require key agreements that satisfy both, or leave both unselected to allow all supported key agreements.&lt;/p&gt;
&lt;p&gt;For requirements, configuration options, and rollout details, refer to &lt;a href=&quot;https://developers.stormtrust.net/ssl/origin-configuration/automatic-key-exchange/&quot;&gt;Automatic key exchange to origins&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Tue, 21 Jul 2026 00:00:00 GMT</pubDate><product>SSL/TLS</product><category>SSL/TLS</category></item><item><title>Gateway, DNS - Internal DNS is now generally available</title><link>https://developers.stormtrust.net/changelog/post/2026-07-15-internal-dns-ga/</link><guid isPermaLink="true">https://developers.stormtrust.net/changelog/post/2026-07-15-internal-dns-ga/</guid><description>&lt;p&gt;&lt;a href=&quot;https://developers.stormtrust.net/dns/internal-dns/&quot;&gt;Internal DNS&lt;/a&gt; is now generally available. Internal DNS provides authoritative and recursive DNS for private networks on the same global network and control plane you already use for public DNS, Zero Trust, and application services.&lt;/p&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;why-it-matters&quot;&gt;Why it matters&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#why-it-matters&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Consolidate DNS operations.&lt;/strong&gt; Public and private DNS run on one platform, with one API, one audit trail, and one place to set policy.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Simplify split-horizon DNS.&lt;/strong&gt; Internal and external resolution are defined as separate &lt;a href=&quot;https://developers.stormtrust.net/dns/internal-dns/dns-views/&quot;&gt;views&lt;/a&gt; over shared zones, managed from a single control plane — so there is no drift to chase down.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Extend Zero Trust to DNS.&lt;/strong&gt; Resolver policies decide which users and devices resolve against which view, enforced by the same &lt;a href=&quot;https://developers.stormtrust.net/cloudflare-one/traffic-policies/&quot;&gt;Gateway&lt;/a&gt; that already governs the rest of your traffic.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Setting up Internal DNS takes three steps: create a zone, create a view, and define a resolver policy.&lt;/p&gt;
&lt;figure class=&quot;nb-code-figure&quot; data-nb-lang=&quot;json&quot;&gt;&lt;pre class=&quot;astro-code astro-code-themes github-light github-dark nb-shiki-c6xiwz&quot; tabindex=&quot;0&quot; data-language=&quot;json&quot; data-nb-lang=&quot;json&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;POST /zones&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;  &quot;account&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;    &quot;id&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt;&quot;&amp;lt;ACCOUNT_ID&amp;gt;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;  },&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;  &quot;name&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt;&quot;corp.internal&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;  &quot;type&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt;&quot;internal&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;
&lt;p&gt;Internal DNS is included with &lt;a href=&quot;https://developers.stormtrust.net/cloudflare-one/traffic-policies/&quot;&gt;Cloudflare Gateway&lt;/a&gt; for Enterprise customers. To get started, refer to the &lt;a href=&quot;https://developers.stormtrust.net/dns/internal-dns/&quot;&gt;Internal DNS documentation&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Wed, 15 Jul 2026 00:00:00 GMT</pubDate><product>Gateway</product><category>Gateway</category><category>DNS</category></item><item><title>Cloudflare Web Analytics - Improved reliability for account-wide Web Analytics dashboards</title><link>https://developers.stormtrust.net/changelog/post/2026-06-10-improved-reliability-for-web-analytics-dash/</link><guid isPermaLink="true">https://developers.stormtrust.net/changelog/post/2026-06-10-improved-reliability-for-web-analytics-dash/</guid><description>&lt;p&gt;Cloudflare Web Analytics (Real User Monitoring) has rolled out performance optimizations to significantly improve the stability and loading speed of account-wide dashboards.&lt;/p&gt;
&lt;p&gt;For larger accounts (with &amp;gt;100 Web Analytics sites), loading the aggregate account-wide view would often fail, running into timeouts or unexpected interface errors due to the massive scale of parallel query processing. This update optimizes how high-volume multi-site data is queried to reduce errors and provide a snappier dashboard experience.&lt;/p&gt;
&lt;p&gt;Accounts with up to 1,000 sites will now be able to load this account-wide aggregate view without experiencing misleading errors.&lt;/p&gt;
&lt;p&gt;If you have an account with over 1,000 sites, we cannot currently aggregate over this volume due to processing constraints but you will now be presented with a clear error and instruction to filter to the relevant site(s) you wish to see the data for.&lt;/p&gt;</description><pubDate>Tue, 14 Jul 2026 00:00:00 GMT</pubDate><product>Cloudflare Web Analytics</product><category>Cloudflare Web Analytics</category></item><item><title>DNS - New DNS Firewall UX with more dashboard settings</title><link>https://developers.stormtrust.net/changelog/post/2026-07-09-new-dns-firewall-ux/</link><guid isPermaLink="true">https://developers.stormtrust.net/changelog/post/2026-07-09-new-dns-firewall-ux/</guid><description>
&lt;p&gt;The DNS Firewall page in the Cloudflare dashboard has been refreshed, bringing several settings that were previously API-only into the UI and modernizing how you view and manage your DNS Firewall clusters.&lt;/p&gt;
&lt;img src=&quot;https://developers.stormtrust.net/cdn-cgi/image/onerror=redirect,width=2694,height=1247,format=webp/_astro/dnsfw-new-ux.vHgdhBZD.png&quot; alt=&quot;New DNS Firewall UX&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;2694&quot; height=&quot;1247&quot;&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;what-is-new&quot;&gt;What is new&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#what-is-new&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;More settings in the dashboard&lt;/strong&gt;: cluster options that were previously only configurable through the API — such as attack mitigation, rate limiting, negative TTL, and resolver subnet — are now available directly in the dashboard.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Better table experience&lt;/strong&gt;: the DNS Firewall cluster table has been revised to surface cluster details at a glance, with resizable columns and the option to show or hide columns to tailor the view to your workflow.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;New create and edit UX&lt;/strong&gt;: adding and editing clusters now uses a modernized form that groups related settings together, making configuration faster and clearer.&lt;/li&gt;
&lt;/ul&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;availability&quot;&gt;Availability&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#availability&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;Available to all DNS Firewall customers as part of their existing subscription.&lt;/p&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;where-to-find-it&quot;&gt;Where to find it&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#where-to-find-it&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;In the Cloudflare dashboard, go to the &lt;strong&gt;DNS Firewall&lt;/strong&gt; page.&lt;/p&gt;
&lt;a href=&quot;https://dash.cloudflare.com/?to=/:account/dns-firewall/clusters&quot; data-nb-button class=&quot;group inline-flex w-max shrink-0 items-center justify-center rounded-full font-medium whitespace-nowrap no-underline shadow-xs transition-colors cursor-pointer select-none focus-visible:outline-2 focus-visible:outline-ring focus-visible:outline-offset-2 disabled:cursor-not-allowed disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary-hover h-9 gap-1.5 px-3 text-sm&quot; target=&quot;_blank&quot;&gt;Go to &lt;strong&gt;Clusters&lt;/strong&gt;&amp;nbsp;&amp;#8599;&lt;/a&gt;
&lt;p&gt;For more information, refer to &lt;a href=&quot;https://developers.stormtrust.net/dns/dns-firewall/&quot;&gt;DNS Firewall&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Thu, 09 Jul 2026 00:00:00 GMT</pubDate><product>DNS</product><category>DNS</category></item><item><title>Cache - Cache multiple versions of a URL with Vary</title><link>https://developers.stormtrust.net/changelog/post/2026-07-02-vary-for-cache-rules/</link><guid isPermaLink="true">https://developers.stormtrust.net/changelog/post/2026-07-02-vary-for-cache-rules/</guid><description>&lt;p&gt;Your origin can serve different responses for the same URL — different languages based on &lt;code&gt;Accept-Language&lt;/code&gt;, or different formats based on &lt;code&gt;Accept&lt;/code&gt; — by returning a &lt;a href=&quot;https://www.rfc-editor.org/rfc/rfc9110.html#name-vary&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;code&gt;Vary&lt;/code&gt;&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt; response header. Cloudflare&apos;s cache now honors that header directly in &lt;a href=&quot;https://developers.stormtrust.net/cache/how-to/cache-rules/&quot;&gt;Cache Rules&lt;/a&gt;, so the same URL can hold multiple cached versions and each request is matched to the right one. Content that previously had to bypass cache to stay correct can now be cached, following standard &lt;a href=&quot;https://www.rfc-editor.org/rfc/rfc9111.html#name-calculating-cache-keys-with&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;HTTP caching behavior&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;what-changed&quot;&gt;What changed&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#what-changed&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;Your origin now decides which request headers matter by listing them in its &lt;code&gt;Vary&lt;/code&gt; response, and you control how Cloudflare treats each one. When you have enabled Vary using a cache rule and a response includes a &lt;code&gt;Vary&lt;/code&gt; header, the request headers listed become part of the cache key.&lt;/p&gt;
&lt;p&gt;For each header your origin varies on, choose one of three actions:&lt;/p&gt;
&lt;div class=&quot;table-scroll&quot; tabindex=&quot;0&quot; role=&quot;region&quot; aria-label=&quot;Table&quot;&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Action&lt;/th&gt;
&lt;th&gt;Behavior&lt;/th&gt;
&lt;th&gt;Best for&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;normalize&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Converts equivalent header values to the same cache key value before matching, collapsing redundant versions.&lt;/td&gt;
&lt;td&gt;Most &lt;code&gt;Accept&lt;/code&gt;, &lt;code&gt;Accept-Language&lt;/code&gt;, and &lt;code&gt;Accept-Encoding&lt;/code&gt; use cases.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;passthrough&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Uses the raw header value to select the cached version and forwards it to the origin unchanged.&lt;/td&gt;
&lt;td&gt;When byte-for-byte differences in the header value should create versions.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;bypass&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Bypasses cache whenever this header name appears in the origin&apos;s &lt;code&gt;Vary&lt;/code&gt; response.&lt;/td&gt;
&lt;td&gt;Per-user values, or headers with too many possible values to cache safely.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;benefits&quot;&gt;Benefits&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#benefits&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Higher cache hit ratios&lt;/strong&gt;: &lt;code&gt;normalize&lt;/code&gt; treats semantically equivalent headers as one version. For example, &lt;code&gt;Accept-Language: en-US, fr;q=0.8&lt;/code&gt; and &lt;code&gt;Accept-Language: fr;q=0.8, en-GB&lt;/code&gt; both resolve to the same cache key, so you serve more requests from cache instead of the origin.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Correct content negotiation&lt;/strong&gt;: Requests always receive the cached version that matches their headers, so language and format variants stay accurate.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No origin or Worker changes required&lt;/strong&gt;: If your origin already sends &lt;code&gt;Vary&lt;/code&gt;, you configure the behavior entirely in Cache Rules.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Standards-aligned&lt;/strong&gt;: Cache key calculation follows RFC 9111, and &lt;code&gt;Vary: *&lt;/code&gt; continues to bypass cache as required by RFC 9110.&lt;/li&gt;
&lt;/ul&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;availability&quot;&gt;Availability&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#availability&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;Vary in Cache Rules is available on all plans (Free, Pro, Business, and Enterprise). For per-request control in Workers subrequests, use the &lt;a href=&quot;https://developers.stormtrust.net/workers/runtime-apis/request/#the-cfvary-property&quot;&gt;&lt;code&gt;cf.vary&lt;/code&gt;&lt;/a&gt; property.&lt;/p&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;get-started&quot;&gt;Get started&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#get-started&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;Configure Vary in the &lt;a href=&quot;https://dash.cloudflare.com/?to=/:account/:zone/caching/cache-rules&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Cloudflare dashboard&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt; under &lt;strong&gt;Caching&lt;/strong&gt; &amp;gt; &lt;strong&gt;Cache Rules&lt;/strong&gt;, or through the &lt;a href=&quot;https://developers.stormtrust.net/ruleset-engine/rulesets-api/&quot;&gt;Rulesets API&lt;/a&gt;. To learn how Vary affects cache keys and how each action works, refer to &lt;a href=&quot;https://developers.stormtrust.net/cache/concepts/vary/&quot;&gt;Vary&lt;/a&gt; and the &lt;a href=&quot;https://developers.stormtrust.net/cache/how-to/cache-rules/settings/#vary&quot;&gt;Cache Rules Vary setting&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Thu, 02 Jul 2026 00:00:00 GMT</pubDate><product>Cache</product><category>Cache</category></item><item><title>Speed - Cloudflare AMP/SXG is now end of life.</title><link>https://developers.stormtrust.net/changelog/post/2026-06-23-amp-sxg-end-of-life/</link><guid isPermaLink="true">https://developers.stormtrust.net/changelog/post/2026-06-23-amp-sxg-end-of-life/</guid><description>&lt;p&gt;Cloudflare Accelerated Mobile Pages (AMP) and Signed Exchanges (SXG) support has reached end of life. The features have been disabled since October 2025, so customers who had them configured should see no change to their traffic.&lt;/p&gt;
&lt;p&gt;Customers will no longer be able to configure AMP/SXG through API or rulesets. The Zone API will start throwing errors. Rulesets with the SXG configuration will fail to save until SXG has been removed.&lt;/p&gt;</description><pubDate>Tue, 23 Jun 2026 00:00:00 GMT</pubDate><product>Speed</product><category>Speed</category></item><item><title>Speed - Cloudflare Fonts error handling and security improvements</title><link>https://developers.stormtrust.net/changelog/post/2026-06-18-cloudflare-fonts-error-handling-security/</link><guid isPermaLink="true">https://developers.stormtrust.net/changelog/post/2026-06-18-cloudflare-fonts-error-handling-security/</guid><description>&lt;p&gt;Cloudflare Fonts now forwards &lt;code&gt;/cf-fonts&lt;/code&gt; requests to your origin server when it encounters invalid paths or unexpected runtime errors, instead of returning 4xx or 5xx responses directly. This update also adds additional input validation to enhance security.&lt;/p&gt;</description><pubDate>Thu, 18 Jun 2026 00:00:00 GMT</pubDate><product>Speed</product><category>Speed</category></item><item><title>SSL/TLS - Post-quantum ML-DSA certificates for Authenticated Origin Pulls and Custom Origin Trust Store</title><link>https://developers.stormtrust.net/changelog/post/2026-06-17-pqc-mldsa-aop-cots/</link><guid isPermaLink="true">https://developers.stormtrust.net/changelog/post/2026-06-17-pqc-mldsa-aop-cots/</guid><description>&lt;p&gt;Cloudflare now accepts &lt;a href=&quot;https://csrc.nist.gov/pubs/fips/204/final&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;ML-DSA&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt; (FIPS 204) post-quantum certificates on the connection between Cloudflare&apos;s edge and your origin server. Combined with our existing &lt;a href=&quot;https://developers.stormtrust.net/ssl/post-quantum-cryptography/#hybrid-key-agreement&quot;&gt;X25519MLKEM768&lt;/a&gt; key agreement, this lets you establish end-to-end post-quantum authentication on the Cloudflare-to-origin connection.&lt;/p&gt;
&lt;p&gt;ML-DSA is supported in two origin-facing features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://developers.stormtrust.net/ssl/origin-configuration/authenticated-origin-pull/&quot;&gt;Authenticated Origin Pulls&lt;/a&gt; (AOP) — upload an ML-DSA client certificate that Cloudflare will present during the mTLS handshake to your origin. Available at both zone-level and per-hostname scopes.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developers.stormtrust.net/ssl/origin-configuration/custom-origin-trust-store/&quot;&gt;Custom Origin Trust Store&lt;/a&gt; (COTS) — upload an ML-DSA certificate authority that Cloudflare will trust when validating your origin server certificate under &lt;a href=&quot;https://developers.stormtrust.net/ssl/origin-configuration/ssl-modes/full-strict/&quot;&gt;Full (strict) encryption mode&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Refer to &lt;a href=&quot;https://developers.stormtrust.net/ssl/post-quantum-cryptography/pqc-to-origin/#post-quantum-signatures&quot;&gt;Post-quantum signatures&lt;/a&gt; for certificate generation and setup guidance, and to &lt;a href=&quot;https://developers.stormtrust.net/ssl/post-quantum-cryptography/pqc-cloudflare-products/&quot;&gt;PQC in Cloudflare products&lt;/a&gt; for the current post-quantum deployment status across Cloudflare.&lt;/p&gt;</description><pubDate>Wed, 17 Jun 2026 00:00:00 GMT</pubDate><product>SSL/TLS</product><category>SSL/TLS</category></item><item><title>DNS - Account-level DNS records quota</title><link>https://developers.stormtrust.net/changelog/post/2026-06-10-account-level-record-quota/</link><guid isPermaLink="true">https://developers.stormtrust.net/changelog/post/2026-06-10-account-level-record-quota/</guid><description>&lt;p&gt;Cloudflare now enforces DNS records quotas at the account level for Enterprise accounts. Instead of a per-zone limit, these accounts have a quota on the total number of records across all of their zones, letting you distribute records across your zones however you like — regardless of each zone&apos;s plan. Public and internal zones are counted separately, each with a default quota of 1,000,000 records.&lt;/p&gt;
&lt;p&gt;Accounts without an account-level quota are unaffected: existing per-zone quotas behave exactly as before.&lt;/p&gt;
&lt;p&gt;For more details, refer to &lt;a href=&quot;https://developers.stormtrust.net/dns/manage-dns-records/#dns-records-quota&quot;&gt;DNS records quota&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Wed, 10 Jun 2026 00:00:00 GMT</pubDate><product>DNS</product><category>DNS</category></item><item><title>Cache - BYPASS status now returned for uncacheable responses</title><link>https://developers.stormtrust.net/changelog/post/2026-05-26-bypass-status-for-uncacheable-responses/</link><guid isPermaLink="true">https://developers.stormtrust.net/changelog/post/2026-05-26-bypass-status-for-uncacheable-responses/</guid><description>&lt;p&gt;Cloudflare now returns a &lt;code&gt;BYPASS&lt;/code&gt; &lt;a href=&quot;https://developers.stormtrust.net/cache/concepts/cache-responses/&quot;&gt;cache status&lt;/a&gt; whenever a response is not cacheable, instead of the previous mix of &lt;code&gt;BYPASS&lt;/code&gt; and &lt;code&gt;MISS&lt;/code&gt; that depended on why Cloudflare chose not to cache the response.&lt;/p&gt;
&lt;p&gt;There are multiple reasons Cloudflare may refuse to cache a response — for example, the response exceeds the &lt;a href=&quot;https://developers.stormtrust.net/cache/concepts/default-cache-behavior/#cacheable-size-limits&quot;&gt;maximum cacheable file size&lt;/a&gt; for your plan, the origin sends &lt;code&gt;Cache-Control: no-cache&lt;/code&gt;, &lt;code&gt;private&lt;/code&gt;, or &lt;code&gt;max-age=0&lt;/code&gt;, the response includes a &lt;code&gt;Set-Cookie&lt;/code&gt; header, or the request includes an &lt;code&gt;Authorization&lt;/code&gt; header.&lt;/p&gt;
&lt;p&gt;Previously, only some of these conditions returned &lt;code&gt;BYPASS&lt;/code&gt;. Others — such as responses exceeding the maximum cacheable file size — returned &lt;code&gt;MISS&lt;/code&gt; on every request, regardless of whether &lt;a href=&quot;https://developers.stormtrust.net/cache/concepts/cache-control/#origin-cache-control-behavior&quot;&gt;Origin Cache Control&lt;/a&gt; was on or off. Because the response could never be cached, every subsequent request also returned &lt;code&gt;MISS&lt;/code&gt;, which looked indistinguishable from a broken cache and made it hard to tell whether Cloudflare was trying and failing to cache the asset or had deliberately chosen not to cache it.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;BYPASS&lt;/code&gt; now consistently signals that Cloudflare refused to cache the response, regardless of the reason. &lt;code&gt;MISS&lt;/code&gt; is reserved for cacheable responses that simply were not in the local cache at request time.&lt;/p&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;what-to-expect-in-your-analytics&quot;&gt;What to expect in your analytics&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#what-to-expect-in-your-analytics&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;After this change rolls out, you should see:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MISS rate decreases&lt;/strong&gt;: Uncacheable responses no longer count as cache misses.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;BYPASS rate increases&lt;/strong&gt;: These same responses are now reported as bypasses.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cache hit ratio increases&lt;/strong&gt;: Hit ratio calculations no longer include uncacheable traffic that could never have been cached, giving you a more accurate view of cache effectiveness.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Your total request volume and origin traffic are unchanged — only the cache status label is different.&lt;/p&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;browser-cache-ttl-behavior-is-preserved&quot;&gt;Browser cache TTL behavior is preserved&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#browser-cache-ttl-behavior-is-preserved&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;The cache status label is the only thing changing — browser cache TTL handling for any given response is identical to what it was before:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Responses that historically returned &lt;code&gt;MISS&lt;/code&gt; because Cloudflare refused to cache them (for example, responses over the maximum cacheable file size) now return &lt;code&gt;BYPASS&lt;/code&gt;, but continue to have browser cache TTL applied — exactly as they did when they were labeled &lt;code&gt;MISS&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Responses that historically returned &lt;code&gt;BYPASS&lt;/code&gt; and skipped browser cache TTL continue to skip browser cache TTL.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In both cases, the decision to apply browser cache TTL depends on the underlying reason Cloudflare did not cache the response, not on the new &lt;code&gt;BYPASS&lt;/code&gt; label.&lt;/p&gt;</description><pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate><product>Cache</product><category>Cache</category></item><item><title>DNS - New DNS records UX is rolling out</title><link>https://developers.stormtrust.net/changelog/post/2026-05-20-new-dns-records-ux/</link><guid isPermaLink="true">https://developers.stormtrust.net/changelog/post/2026-05-20-new-dns-records-ux/</guid><description>&lt;p&gt;Starting today, everyone can opt in to a refreshed DNS records page in the Cloudflare dashboard. Over the coming weeks, the new experience will become the default for Free plan users first, followed by paid plans.&lt;/p&gt;
&lt;img src=&quot;https://developers.stormtrust.net/cdn-cgi/image/onerror=redirect,width=3706,height=2070,format=webp/_astro/new-dns-ux.Bfs_yXPa.png&quot; alt=&quot;New DNS records UX&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;3706&quot; height=&quot;2070&quot;&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;what-is-new&quot;&gt;What is new&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#what-is-new&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Better table experience&lt;/strong&gt;: resizable and hideable columns, row pinning, advanced filters with logical operators (AND/OR), configurable pagination, and expanded input fields so long values are no longer cut off.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;First-class mobile experience&lt;/strong&gt;: responsive layout with a touch-friendly, card-based UI and compact controls for small screens.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DNS quick reference&lt;/strong&gt;: bite-sized explainers for DNS, proxy status, and TTL, available directly in the product to help users configure records without leaving the page.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Modern frontend&lt;/strong&gt;: a refactor onto Cloudflare&apos;s new UI framework that improves performance and lays the foundation for future improvements.&lt;/li&gt;
&lt;/ul&gt;
&lt;img src=&quot;https://developers.stormtrust.net/cdn-cgi/image/onerror=redirect,width=754,height=572,format=webp/_astro/new-dns-ux.DV6gCbme.gif&quot; alt=&quot;New DNS records UX&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;754&quot; height=&quot;572&quot;&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;rollout-plan&quot;&gt;Rollout plan&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#rollout-plan&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;Dates are subject to change based on feedback received during the rollout.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;20 May - 05 June&lt;/strong&gt;: ramped rollout to Free, then Pro and Business plans.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;08 June - 03 July&lt;/strong&gt;: ramped rollout to Enterprise plans.&lt;/li&gt;
&lt;/ul&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;share-your-feedback&quot;&gt;Share your feedback&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#share-your-feedback&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;Once the new experience is turned on for your account, look for the feedback link at the top of the DNS records page in the Cloudflare dashboard and let us know what you think. Your input helps us prioritize the next round of improvements.&lt;/p&gt;</description><pubDate>Wed, 20 May 2026 00:00:00 GMT</pubDate><product>DNS</product><category>DNS</category></item><item><title>Cloudflare Web Analytics - /cdn-cgi/rum endpoint now returns 405 for non-POST requests</title><link>https://developers.stormtrust.net/changelog/post/2026-05-13-rum-405-method-not-allowed/</link><guid isPermaLink="true">https://developers.stormtrust.net/changelog/post/2026-05-13-rum-405-method-not-allowed/</guid><description>&lt;p&gt;The &lt;code&gt;/cdn-cgi/rum&lt;/code&gt; beacon endpoint now returns &lt;code&gt;405 Method Not Allowed&lt;/code&gt; for non-POST requests instead of &lt;code&gt;404 Not Found&lt;/code&gt;. The response includes an &lt;code&gt;Allow: POST, OPTIONS&lt;/code&gt; header per &lt;a href=&quot;https://www.rfc-editor.org/rfc/rfc9110#section-15.5.6&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;RFC 9110 §15.5.6&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Previously, sending a &lt;code&gt;GET&lt;/code&gt; or other non-POST request to this endpoint returned a &lt;code&gt;404&lt;/code&gt;, which was misleading because it suggested the endpoint did not exist. The new &lt;code&gt;405&lt;/code&gt; response clearly indicates that the endpoint exists but only accepts &lt;code&gt;POST&lt;/code&gt; requests.&lt;/p&gt;
&lt;p&gt;The Web Analytics beacon (&lt;code&gt;beacon.min.js&lt;/code&gt;) already uses &lt;code&gt;POST&lt;/code&gt; for all metric submissions, so this change does not affect normal beacon operation. &lt;code&gt;OPTIONS&lt;/code&gt; requests for CORS preflight continue to work as before.&lt;/p&gt;
&lt;p&gt;For more information, refer to the &lt;a href=&quot;https://developers.stormtrust.net/web-analytics/faq/#why-am-i-getting-a-405-method-not-allowed-error-from-cdn-cgirum&quot;&gt;Web Analytics FAQ&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Wed, 13 May 2026 00:00:00 GMT</pubDate><product>Cloudflare Web Analytics</product><category>Cloudflare Web Analytics</category></item><item><title>Cache - Pingora now powers Cloudflare&apos;s cache</title><link>https://developers.stormtrust.net/changelog/post/2026-05-04-pingora-powers-cache/</link><guid isPermaLink="true">https://developers.stormtrust.net/changelog/post/2026-05-04-pingora-powers-cache/</guid><description>&lt;p&gt;Cloudflare&apos;s cache now runs on a new proxy built on &lt;a href=&quot;https://github.com/cloudflare/pingora&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Pingora&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt;, the Rust-based framework that already serves a significant portion of Cloudflare&apos;s network traffic. The new proxy is faster, more memory-safe, and designed to evolve our cache architecture. It delivers immediate performance improvements and enables new caching capabilities.&lt;/p&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;what-this-brings&quot;&gt;What this brings&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#what-this-brings&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Lower latency&lt;/strong&gt;: The new proxy reduces per-request overhead through improved connection reuse.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reduced cache MISSes&lt;/strong&gt;: Enhanced cache retention improves origin offload.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Better RFC compliance&lt;/strong&gt;: Caching behavior more closely follows HTTP caching standards.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Foundation for future features&lt;/strong&gt;: The new architecture enables upcoming improvements to cache functionality and efficiency.&lt;/li&gt;
&lt;/ul&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;new-features&quot;&gt;New features&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#new-features&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Asynchronous &lt;code&gt;stale-while-revalidate&lt;/code&gt;&lt;/strong&gt;: Every request returns stale content immediately while revalidation happens in the background, instead of the first request after expiry blocking on the origin. Refer to the &lt;a href=&quot;https://developers.stormtrust.net/changelog/post/2026-02-26-async-stale-while-revalidate/&quot;&gt;asynchronous &lt;code&gt;stale-while-revalidate&lt;/code&gt; changelog&lt;/a&gt; for details.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Unbuffered bypass by default&lt;/strong&gt;: Responses that bypass cache are streamed directly to the client without buffering, reducing time-to-first-byte for uncacheable content.&lt;/li&gt;
&lt;/ul&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;behavioral-changes&quot;&gt;Behavioral changes&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#behavioral-changes&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;The new architecture introduces the following behavioral changes to improve RFC compliance and correctness:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;Vary: *&lt;/code&gt; results in cache bypass&lt;/strong&gt;: According to &lt;a href=&quot;https://httpwg.org/specs/rfc9110.html#field.vary&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;RFC 9110 Section 12.5.5&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt;, a &lt;code&gt;Vary&lt;/code&gt; header value of &lt;code&gt;*&lt;/code&gt; indicates the response varies on factors beyond request headers and must not be served from cache. Cloudflare now bypasses cache for these responses instead of storing them.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;Set-Cookie&lt;/code&gt; stripped on MISS and EXPIRED&lt;/strong&gt;: For cacheable assets, &lt;code&gt;Set-Cookie&lt;/code&gt; is now stripped on MISS and EXPIRED responses, not only on HITs.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Floating-point TTL values&lt;/strong&gt;: Floating-point time-to-live values (for example, &lt;code&gt;max-age=1.5&lt;/code&gt;) are rounded down to the nearest integer instead of being rejected as invalid.&lt;/li&gt;
&lt;/ul&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;whats-next&quot;&gt;What&apos;s next&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#whats-next&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;A deeper look at the new cache proxy is coming soon to the &lt;a href=&quot;https://blog.cloudflare.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Cloudflare blog&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt;. For background on the underlying framework, read:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.cloudflare.com/pingora-open-source/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Open sourcing Pingora: our Rust framework for building programmable network services&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.cloudflare.com/how-we-built-pingora-the-proxy-that-connects-cloudflare-to-the-internet/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;How we built Pingora, the proxy that connects Cloudflare to the Internet&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><pubDate>Mon, 04 May 2026 00:00:00 GMT</pubDate><product>Cache</product><category>Cache</category></item><item><title>Speed - Shared dictionaries passthrough now in open beta</title><link>https://developers.stormtrust.net/changelog/post/2026-04-30-shared-dictionaries-passthrough-beta/</link><guid isPermaLink="true">https://developers.stormtrust.net/changelog/post/2026-04-30-shared-dictionaries-passthrough-beta/</guid><description>
&lt;p&gt;&lt;a href=&quot;https://developers.stormtrust.net/speed/optimization/content/shared-dictionaries/&quot;&gt;Shared dictionaries&lt;/a&gt; (&lt;a href=&quot;https://www.rfc-editor.org/rfc/rfc9842.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;RFC 9842&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt;) let an origin compress a response against a previous version of the same resource that the browser already has cached, so only the difference between versions travels over the wire. Shared dictionaries passthrough is now in open beta on all plans.&lt;/p&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;what-changed&quot;&gt;What changed&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#what-changed&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;In passthrough mode, Cloudflare:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Forwards the &lt;code&gt;Use-As-Dictionary&lt;/code&gt; and &lt;code&gt;Available-Dictionary&lt;/code&gt; headers between client and origin without modification.&lt;/li&gt;
&lt;li&gt;Treats &lt;code&gt;dcb&lt;/code&gt; (Dictionary-Compressed Brotli) and &lt;code&gt;dcz&lt;/code&gt; (Dictionary-Compressed Zstandard) as valid &lt;code&gt;Content-Encoding&lt;/code&gt; values end to end, without recompressing them.&lt;/li&gt;
&lt;li&gt;Extends the cache key to vary on &lt;code&gt;Available-Dictionary&lt;/code&gt; and &lt;code&gt;Accept-Encoding&lt;/code&gt; so each delta-compressed variant is cached correctly.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Your origin manages the dictionary lifecycle: deciding which assets are dictionaries, attaching &lt;code&gt;Use-As-Dictionary&lt;/code&gt; headers, and producing deltas in response to &lt;code&gt;Available-Dictionary&lt;/code&gt; requests. Cloudflare handles the transport and the cache.&lt;/p&gt;
&lt;p&gt;In internal testing on a 272 KB JavaScript bundle, the asset shrinks from 92.1 KB with Gzip to 2.6 KB with delta Zstandard against the previous version — a 97% reduction over standard compression — with download times improving by 81–89% versus Gzip.&lt;/p&gt;
&lt;p&gt;Shared dictionaries work with browsers that advertise &lt;code&gt;dcb&lt;/code&gt; or &lt;code&gt;dcz&lt;/code&gt; in &lt;code&gt;Accept-Encoding&lt;/code&gt;. Today, this includes Chrome 130 or later and Edge 130 or later.&lt;/p&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;get-started&quot;&gt;Get started&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#get-started&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;Turn on passthrough for your zone with a single API call:&lt;/p&gt;
&lt;figure class=&quot;nb-code-figure&quot; data-nb-lang=&quot;bash&quot;&gt;&lt;pre class=&quot;astro-code astro-code-themes github-light github-dark nb-shiki-c6xiwz&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot; data-nb-lang=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1t8gfj&quot;&gt;curl&lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt; &quot;https://api.cloudflare.com/client/v4/zones/&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;$ZONE_ID&lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt;/settings/shared_dictionary_mode&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt; \&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;	--request&lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt; PATCH&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt; \&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;	--header&lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt; &quot;Authorization: Bearer &lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;$CLOUDFLARE_API_TOKEN&lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt; \&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;	--json&lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt; &apos;{&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt;		&quot;value&quot;: &quot;passthrough&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt;	}&apos;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;
&lt;p&gt;You can also turn it on under &lt;strong&gt;Speed&lt;/strong&gt; &amp;gt; &lt;strong&gt;Settings&lt;/strong&gt; &amp;gt; &lt;strong&gt;Content Optimization&lt;/strong&gt; in the &lt;a href=&quot;https://dash.cloudflare.com/?to=/:account/:zone/speed/optimization&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Cloudflare dashboard&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt;. For full origin setup instructions and a working test recipe, refer to &lt;a href=&quot;https://developers.stormtrust.net/speed/optimization/content/shared-dictionaries/&quot;&gt;Shared dictionaries&lt;/a&gt;, or try the live demo at &lt;a href=&quot;https://canicompress.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;canicompress.com&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Thu, 30 Apr 2026 00:00:00 GMT</pubDate><product>Speed</product><category>Speed</category></item><item><title>Cloudflare Web Analytics - Web Analytics adds Navigation Type filtering and reporting</title><link>https://developers.stormtrust.net/changelog/post/2026-04-30-rum-navigation-types/</link><guid isPermaLink="true">https://developers.stormtrust.net/changelog/post/2026-04-30-rum-navigation-types/</guid><description>&lt;p&gt;Cloudflare Web Analytics now supports &lt;strong&gt;Navigation Type&lt;/strong&gt; reporting and filtering.&lt;/p&gt;
&lt;p&gt;This update allows developers and performance analysts to see how users are navigating between pages — whether through a link click or form submission, a page reload, or using the browser&apos;s back/forward buttons — and whether a browser cache hit occurred for these behaviors.&lt;/p&gt;
&lt;p&gt;Understanding navigation types is critical for optimizing user experience. For example, if a high volume of your traffic consists of &quot;Back-forward&quot; navigations versus &quot;Back-forward Cache&quot;, those visitors are not benefiting from the Back/Forward Cache (bfcache) and therefore are experiencing higher load times due to potentially unnecessary network requests.&lt;/p&gt;
&lt;p&gt;The same applies for regular &quot;Navigate&quot; entries — where &quot;Navigate Cache&quot;, &quot;Navigate Prefetch Cache&quot; and &quot;Prerender&quot; would provide instant document retrieval — and &quot;Reload&quot;, where &quot;Reload cache&quot; would be more optimal.&lt;/p&gt;
&lt;p&gt;A high volume of &quot;Reload&quot; entries can also indicate a potential stability problem with your website.&lt;/p&gt;
&lt;p&gt;By identifying these patterns, you can tune your browser caching strategies to ensure HTML documents are served instantaneously from local caches rather than requiring a roundtrip to the network.&lt;/p&gt;
&lt;p&gt;For more information, refer to &lt;a href=&quot;https://developers.stormtrust.net/web-analytics/data-metrics/dimensions/#navigation-types&quot;&gt;Navigation Types&lt;/a&gt;.&lt;/p&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;key-benefits&quot;&gt;Key benefits&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#key-benefits&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Monitor Cache Effectiveness:&lt;/strong&gt; See how often your site is served from the HTTP cache or bfcache.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Identify Performance Bottlenecks:&lt;/strong&gt; Filter by the different types to understand performance opportunity of improving browser cache hit ratio.&lt;/li&gt;
&lt;/ul&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;analyze-navigation-types-in-the-cloudflare-dashboard&quot;&gt;Analyze navigation types in the Cloudflare dashboard&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#analyze-navigation-types-in-the-cloudflare-dashboard&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;You can now find the &lt;strong&gt;Navigation Type&lt;/strong&gt; dimension in the Web Analytics dashboard. You can filter to include/exclude one or more specific types using &quot;equals&quot;, &quot;does not equal&quot;, &quot;in&quot;, or &quot;not in&quot; matchers.&lt;/p&gt;
&lt;img src=&quot;https://developers.stormtrust.net/cdn-cgi/image/onerror=redirect,width=2646,height=1040,format=webp/_astro/dash-web_analytics-navigation-type-filter.Cculflhp.png&quot; alt=&quot;Navigation Type filter&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;2646&quot; height=&quot;1040&quot;&gt;
&lt;p&gt;To check the list of popular navigation types, select &lt;strong&gt;Page views&lt;/strong&gt; on the Web Analytics sidebar and scroll down to the bottom:&lt;/p&gt;
&lt;img src=&quot;https://developers.stormtrust.net/cdn-cgi/image/onerror=redirect,width=2076,height=500,format=webp/_astro/dash-web_analytics-navigation-types-list.CWaiEQzO.png&quot; alt=&quot;Navigation Types list in Page Views tab&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;2076&quot; height=&quot;500&quot;&gt;</description><pubDate>Thu, 30 Apr 2026 00:00:00 GMT</pubDate><product>Cloudflare Web Analytics</product><category>Cloudflare Web Analytics</category></item><item><title>DNS - Account-level enforce DNS-only</title><link>https://developers.stormtrust.net/changelog/post/2026-04-28-enforce-dns-only/</link><guid isPermaLink="true">https://developers.stormtrust.net/changelog/post/2026-04-28-enforce-dns-only/</guid><description>
&lt;p&gt;You can now disable Cloudflare&apos;s reverse proxy across all zones in your account simultaneously using the new &lt;code&gt;enforce_dns_only&lt;/code&gt; setting. When enabled, Cloudflare responds to DNS queries for all proxied records with your origin IP addresses instead of Cloudflare&apos;s anycast IPs.
This account-level kill switch is designed for incident response scenarios where you need to quickly route traffic directly to your origin servers.&lt;/p&gt;
&lt;aside role=&quot;note&quot; aria-label=&quot;Caution&quot; class=&quot;aside-card flex items-start gap-3 rounded-lg px-4 py-3 my-4&quot; style=&quot;--_c: var(--nb-warning); --_t: var(--nb-warning-muted);&quot; data-astro-cid-znle5jil&gt;&lt;span class=&quot;flex h-[1.375em] shrink-0 items-center&quot; aria-hidden=&quot;true&quot; data-astro-cid-znle5jil&gt;&lt;svg width=&quot;1em&quot; height=&quot;1em&quot; viewBox=&quot;0 0 256 256&quot; class=&quot;h-[1em] w-[1em]&quot; data-astro-cid-znle5jil=&quot;true&quot; data-icon=&quot;ph:warning&quot;&gt;&lt;path fill=&quot;currentColor&quot; d=&quot;M236.8 188.09L149.35 36.22a24.76 24.76 0 0 0-42.7 0L19.2 188.09a23.51 23.51 0 0 0 0 23.72A24.35 24.35 0 0 0 40.55 224h174.9a24.35 24.35 0 0 0 21.33-12.19a23.51 23.51 0 0 0 .02-23.72m-13.87 15.71a8.5 8.5 0 0 1-7.48 4.2H40.55a8.5 8.5 0 0 1-7.48-4.2a7.59 7.59 0 0 1 0-7.72l87.45-151.87a8.75 8.75 0 0 1 15 0l87.45 151.87a7.59 7.59 0 0 1-.04 7.72M120 144v-40a8 8 0 0 1 16 0v40a8 8 0 0 1-16 0m20 36a12 12 0 1 1-12-12a12 12 0 0 1 12 12&quot;/&gt;&lt;/svg&gt;&lt;/span&gt;&lt;div class=&quot;flex min-w-0 flex-1 flex-col gap-0.5&quot; data-astro-cid-znle5jil&gt;&lt;p class=&quot;m-0 text-base leading-snug font-semibold&quot; data-astro-cid-znle5jil&gt;Caution&lt;/p&gt;&lt;div class=&quot;aside-card-body text-sm leading-normal&quot; data-astro-cid-znle5jil&gt;&lt;p&gt;Enabling this setting exposes your origin IP addresses and removes all Cloudflare protections — including DDoS mitigation, WAF, caching, and all other proxy-based features — for every zone in your account. Use with extreme caution and only after proper &lt;a href=&quot;https://developers.stormtrust.net/dns/proxy-status/enforce-dns-only/#preparation&quot;&gt;preparations&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/aside&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;key-characteristics&quot;&gt;Key characteristics&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#key-characteristics&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Account-level&lt;/strong&gt; — Affects all zones in the account simultaneously with a single API call.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Non-destructive&lt;/strong&gt; — Does not modify your DNS records. Disabling the setting restores normal proxy behavior.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;API-only&lt;/strong&gt; — Available through the API only, not in the Cloudflare dashboard.&lt;/li&gt;
&lt;/ul&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;whats-affected&quot;&gt;What&apos;s affected&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#whats-affected&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Included:&lt;/strong&gt; Standard proxied A, AAAA, and CNAME records, Load Balancing records, and records matching Worker routes.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Excluded:&lt;/strong&gt; Spectrum applications, Cloudflare Tunnel CNAMEs, R2 custom domains, Web3 gateways, and Workers custom domains continue to operate normally.&lt;/p&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;before-you-enable&quot;&gt;Before you enable&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#before-you-enable&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Verify your origin servers can handle direct traffic without Cloudflare&apos;s caching and filtering.&lt;/li&gt;
&lt;li&gt;Review which origin IPs will become publicly visible through DNS queries.&lt;/li&gt;
&lt;li&gt;Test the API in a staging account before relying on it for incident response.&lt;/li&gt;
&lt;/ul&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;availability&quot;&gt;Availability&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#availability&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;Available via API to all Cloudflare customers.&lt;/p&gt;
&lt;p&gt;For information on how to use it, refer to &lt;a href=&quot;https://developers.stormtrust.net/dns/proxy-status/enforce-dns-only/&quot;&gt;Enforce DNS-only developer documentation&lt;/a&gt; .&lt;/p&gt;</description><pubDate>Tue, 28 Apr 2026 00:00:00 GMT</pubDate><product>DNS</product><category>DNS</category></item><item><title>Cache - Cache Response Rules now support zone versioning</title><link>https://developers.stormtrust.net/changelog/post/2026-04-27-cache-response-rules-zone-versioning/</link><guid isPermaLink="true">https://developers.stormtrust.net/changelog/post/2026-04-27-cache-response-rules-zone-versioning/</guid><description>&lt;p&gt;Cache Response Rules now work with &lt;a href=&quot;https://developers.stormtrust.net/version-management/&quot;&gt;Version Management&lt;/a&gt;. You can version response-phase cache settings and promote them through environments, just like Cache Rules and other supported configurations.&lt;/p&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;what-changed&quot;&gt;What changed&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#what-changed&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;Previously, Cache Response Rules were excluded from zone versioning. Any response-phase rule you created applied globally across all environments with no way to test changes in staging first. Cache Rules already supported versioning, but the response phase, where you modify &lt;code&gt;Cache-Control&lt;/code&gt; directives, manage cache tags, and strip headers, did not.&lt;/p&gt;
&lt;p&gt;Cache Response Rules are now fully integrated with Version Management. You can create or modify response-phase rules within a version, and those changes stay scoped to that version until promoted.&lt;/p&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;benefits&quot;&gt;Benefits&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#benefits&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Safe rollout of cache behavior changes&lt;/strong&gt;: Test response-phase rules in a staging environment before promoting to production. Catch unintended caching side effects early.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Parity with Cache Rules&lt;/strong&gt;: Cache Response Rules now follow the same versioning workflow as Cache Rules, so you can manage all cache configuration through a single promotion pipeline.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Independent environment control&lt;/strong&gt;: Run different response-phase cache settings per environment. For example, strip &lt;code&gt;Set-Cookie&lt;/code&gt; headers in staging to validate cacheability without affecting production traffic.&lt;/li&gt;
&lt;/ul&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;get-started&quot;&gt;Get started&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#get-started&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;Configure Cache Response Rules in the &lt;a href=&quot;https://dash.cloudflare.com/?to=/:account/:zone/caching/cache-rules&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Cloudflare dashboard&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt; under &lt;strong&gt;Caching&lt;/strong&gt; &amp;gt; &lt;strong&gt;Cache Rules&lt;/strong&gt;, or via the &lt;a href=&quot;https://developers.stormtrust.net/ruleset-engine/rulesets-api/&quot;&gt;Rulesets API&lt;/a&gt;. For more details, refer to the &lt;a href=&quot;https://developers.stormtrust.net/cache/how-to/cache-response-rules/&quot;&gt;Cache Response Rules documentation&lt;/a&gt; and the &lt;a href=&quot;https://developers.stormtrust.net/version-management/&quot;&gt;Version Management documentation&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Mon, 27 Apr 2026 00:00:00 GMT</pubDate><product>Cache</product><category>Cache</category></item><item><title>Cache - Smart Tiered Cache optimizes public cloud origins</title><link>https://developers.stormtrust.net/changelog/post/2026-04-17-smart-tiered-cache-for-public-cloud/</link><guid isPermaLink="true">https://developers.stormtrust.net/changelog/post/2026-04-17-smart-tiered-cache-for-public-cloud/</guid><description>&lt;p&gt;You can now achieve higher cache HIT rates and reduce origin load for origins hosted on public cloud providers with &lt;a href=&quot;https://developers.stormtrust.net/cache/how-to/tiered-cache/#smart-tiered-cache&quot;&gt;Smart Tiered Cache&lt;/a&gt;. By setting a cloud region hint for your origin, Cloudflare selects the optimal upper-tier data center for that cloud region, funneling all cache MISSes through a single location close to your origin.&lt;/p&gt;
&lt;p&gt;Previously, Smart Tiered Cache could not reliably select an optimal upper tier for origins behind anycast or regional unicast networks commonly used by cloud providers. Origins on AWS, GCP, Azure, and Oracle Cloud would fall back to a multi-upper-tier topology, resulting in lower cache HIT rates and more requests reaching your origin.&lt;/p&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;how-it-works&quot;&gt;How it works&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#how-it-works&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;Set a cloud region hint (for example, &lt;code&gt;aws/us-east-1&lt;/code&gt; or &lt;code&gt;gcp/europe-west1&lt;/code&gt;) for your origin IP or hostname. Smart Tiered Cache uses this hint along with real-time latency data to select a primary upper tier close to your cloud region, plus a fallback in a different location for resilience.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Supported providers&lt;/strong&gt;: AWS, GCP, Azure, and Oracle Cloud.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;All plans&lt;/strong&gt;: Available on Free, Pro, Business, and Enterprise plans at no additional cost.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dashboard and API&lt;/strong&gt;: Configure from &lt;strong&gt;Caching&lt;/strong&gt; &amp;gt; &lt;strong&gt;Tiered Cache&lt;/strong&gt; &amp;gt; &lt;strong&gt;Origin Configuration&lt;/strong&gt;, or use the API and Terraform.&lt;/li&gt;
&lt;/ul&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;get-started&quot;&gt;Get started&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#get-started&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;To get started, enable &lt;a href=&quot;https://developers.stormtrust.net/cache/how-to/tiered-cache/&quot;&gt;Smart Tiered Cache&lt;/a&gt; and set a cloud region hint for your origin in the &lt;a href=&quot;https://developers.stormtrust.net/cache/how-to/tiered-cache/#public-cloud-origins&quot;&gt;Tiered Cache settings&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Fri, 17 Apr 2026 00:00:00 GMT</pubDate><product>Cache</product><category>Cache</category></item><item><title>SSL/TLS - Manage mTLS and BYO CA certificates from the Cloudflare dashboard</title><link>https://developers.stormtrust.net/changelog/post/2026-04-07-mtls-byoca-dashboard/</link><guid isPermaLink="true">https://developers.stormtrust.net/changelog/post/2026-04-07-mtls-byoca-dashboard/</guid><description>&lt;p&gt;You can now manage mutual TLS (mTLS) and Bring Your Own Certificate Authority
(BYO CA) configurations directly from the Cloudflare dashboard — no API required.&lt;/p&gt;
&lt;p&gt;Previously, these advanced workflows required the Cloudflare API. The following
are now available in the dashboard:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;AOP certificate management&lt;/strong&gt; — Upload and manage your own
certificate authorities for &lt;a href=&quot;https://developers.stormtrust.net/ssl/origin-configuration/authenticated-origin-pull/&quot;&gt;Authenticated Origin Pulls (AOP)&lt;/a&gt;
directly from the dashboard.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;BYO Client mTLS certificate management&lt;/strong&gt; — Upload and manage your own CA
certificates for &lt;a href=&quot;https://developers.stormtrust.net/ssl/client-certificates/byo-ca/&quot;&gt;client mTLS enforcement&lt;/a&gt;
without needing API access.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CDN hostname to client mTLS certificate mapping&lt;/strong&gt; — Associate client mTLS
certificates with specific hostnames directly from the dashboard.&lt;/li&gt;
&lt;/ul&gt;</description><pubDate>Tue, 07 Apr 2026 00:00:00 GMT</pubDate><product>SSL/TLS</product><category>SSL/TLS</category></item><item><title>DNS - Internal DNS - now in open beta</title><link>https://developers.stormtrust.net/changelog/post/2026-03-31-internal-dns-open-beta/</link><guid isPermaLink="true">https://developers.stormtrust.net/changelog/post/2026-03-31-internal-dns-open-beta/</guid><description>&lt;p&gt;Internal DNS is now in open beta.&lt;/p&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;who-can-use-it&quot;&gt;Who can use it?&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#who-can-use-it&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;Internal DNS is bundled as a part of Cloudflare Gateway and is now available to every Enterprise customer with one of the following subscriptions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cloudflare Zero Trust Enterprise&lt;/li&gt;
&lt;li&gt;Cloudflare Gateway Enterprise&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To learn more and get started, refer to the &lt;a href=&quot;https://developers.stormtrust.net/dns/internal-dns/&quot;&gt;Internal DNS documentation&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Tue, 31 Mar 2026 00:00:00 GMT</pubDate><product>DNS</product><category>DNS</category></item><item><title>Cache - Cache Response Rules</title><link>https://developers.stormtrust.net/changelog/post/2026-03-24-cache-response-rules/</link><guid isPermaLink="true">https://developers.stormtrust.net/changelog/post/2026-03-24-cache-response-rules/</guid><description>&lt;p&gt;You can now control how Cloudflare handles origin responses without changing your origin. Cache Response Rules let you modify &lt;code&gt;Cache-Control&lt;/code&gt; directives, manage cache tags, and strip headers like &lt;code&gt;Set-Cookie&lt;/code&gt; from origin responses &lt;em&gt;before&lt;/em&gt; they reach Cloudflare&apos;s cache. Whether traffic is cached or passed through dynamically, these rules give you control over origin response behavior that was previously out of reach.&lt;/p&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;what-changed&quot;&gt;What changed&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#what-changed&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;Cache Rules previously only operated on request attributes. Cache Response Rules introduce a new response phase that evaluates origin responses and lets you act on them before caching. You can now:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Modify &lt;code&gt;Cache-Control&lt;/code&gt; directives&lt;/strong&gt;: Set or remove individual directives like &lt;code&gt;no-store&lt;/code&gt;, &lt;code&gt;no-cache&lt;/code&gt;, &lt;code&gt;max-age&lt;/code&gt;, &lt;code&gt;s-maxage&lt;/code&gt;, &lt;code&gt;stale-while-revalidate&lt;/code&gt;, &lt;code&gt;immutable&lt;/code&gt;, and more. For example, remove a &lt;code&gt;no-cache&lt;/code&gt; directive your origin sends so Cloudflare can cache the asset, or set an &lt;code&gt;s-maxage&lt;/code&gt; to control how long Cloudflare stores it.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Set a different browser &lt;code&gt;Cache-Control&lt;/code&gt;&lt;/strong&gt;: Send a different &lt;code&gt;Cache-Control&lt;/code&gt; header downstream to browsers and other clients than what Cloudflare uses internally, giving you independent control over edge and browser caching strategies.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Manage cache tags&lt;/strong&gt;: Add, set, or remove cache tags on responses, including converting tags from another CDN&apos;s header format into Cloudflare&apos;s &lt;code&gt;Cache-Tag&lt;/code&gt; header. This is especially useful if you are migrating from a CDN that uses a different tag header or delimiter.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Strip headers that block caching&lt;/strong&gt;: Remove &lt;code&gt;Set-Cookie&lt;/code&gt;, &lt;code&gt;ETag&lt;/code&gt;, or &lt;code&gt;Last-Modified&lt;/code&gt; headers from origin responses before caching, so responses that would otherwise be treated as uncacheable can be stored and served from cache.&lt;/li&gt;
&lt;/ul&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;benefits&quot;&gt;Benefits&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#benefits&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;No origin changes required&lt;/strong&gt;: Fix caching behavior entirely from Cloudflare, even when your origin configuration is locked down or managed by a different team.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Simpler CDN migration&lt;/strong&gt;: Match caching behavior from other CDN providers without rewriting your origin. Translate cache tag formats and override directives that do not align with Cloudflare&apos;s defaults.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Native support, fewer workarounds&lt;/strong&gt;: Functionality that previously required workarounds is now built into Cache Rules with full Tiered Cache compatibility.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Fine-grained control&lt;/strong&gt;: Use expressions to match on request and response attributes, then apply precise cache settings per rule. Rules are stackable and composable with existing Cache Rules.&lt;/li&gt;
&lt;/ul&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;get-started&quot;&gt;Get started&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#get-started&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;Configure Cache Response Rules in the &lt;a href=&quot;https://dash.cloudflare.com/?to=/:account/:zone/caching/cache-rules&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Cloudflare dashboard&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt; under &lt;strong&gt;Caching&lt;/strong&gt; &amp;gt; &lt;strong&gt;Cache Rules&lt;/strong&gt;, or via the &lt;a href=&quot;https://developers.cloudflare.com/ruleset-engine/rulesets-api/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Rulesets API&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt;. For more details, refer to the &lt;a href=&quot;https://developers.cloudflare.com/cache/how-to/cache-response-rules/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Cache Rules documentation&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Tue, 24 Mar 2026 00:00:00 GMT</pubDate><product>Cache</product><category>Cache</category></item><item><title>DNS - DNS Analytics for Customer Metadata Boundary set to EU region</title><link>https://developers.stormtrust.net/changelog/post/2026-03-20-dns-analytics-cmb-eu/</link><guid isPermaLink="true">https://developers.stormtrust.net/changelog/post/2026-03-20-dns-analytics-cmb-eu/</guid><description>
&lt;p&gt;DNS Analytics is now available for customers with &lt;a href=&quot;https://developers.stormtrust.net/data-localization/metadata-boundary/&quot;&gt;Customer Metadata Boundary&lt;/a&gt; (CMB) set to EU. Query your DNS analytics data while keeping metadata stored in the EU region.&lt;/p&gt;
&lt;p&gt;This update includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;DNS Analytics&lt;/strong&gt; — Access the same DNS analytics experience for zones in CMB=EU accounts.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;EU data residency&lt;/strong&gt; — Analytics data is stored and queried from the EU region, meeting data localization requirements.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DNS Firewall Analytics&lt;/strong&gt; — DNS Firewall analytics is now supported for CMB=EU customers.&lt;/li&gt;
&lt;/ul&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;availability&quot;&gt;Availability&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#availability&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;Available to customers with the &lt;a href=&quot;https://developers.stormtrust.net/data-localization/&quot;&gt;Data Localization Suite&lt;/a&gt; who have Customer Metadata Boundary configured for the EU region.&lt;/p&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;where-to-find-it&quot;&gt;Where to find it&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#where-to-find-it&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul&gt;&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Authoritative DNS:&lt;/strong&gt; In the Cloudflare dashboard, select your zone and go to the &lt;strong&gt;Analytics&lt;/strong&gt; page.&lt;/p&gt;
&lt;a href=&quot;https://dash.cloudflare.com/?to=/:account/:zone/dns/analytics&quot; data-nb-button class=&quot;group inline-flex w-max shrink-0 items-center justify-center rounded-full font-medium whitespace-nowrap no-underline shadow-xs transition-colors cursor-pointer select-none focus-visible:outline-2 focus-visible:outline-ring focus-visible:outline-offset-2 disabled:cursor-not-allowed disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary-hover h-9 gap-1.5 px-3 text-sm&quot; target=&quot;_blank&quot;&gt;Go to &lt;strong&gt;Analytics&lt;/strong&gt;&amp;nbsp;&amp;#8599;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;
&lt;p&gt;&lt;strong&gt;DNS Firewall:&lt;/strong&gt; In the Cloudflare dashboard, go to the &lt;strong&gt;DNS Firewall Analytics&lt;/strong&gt; page.&lt;/p&gt;
&lt;a href=&quot;https://dash.cloudflare.com/?to=/:account/dns-firewall/analytics&quot; data-nb-button class=&quot;group inline-flex w-max shrink-0 items-center justify-center rounded-full font-medium whitespace-nowrap no-underline shadow-xs transition-colors cursor-pointer select-none focus-visible:outline-2 focus-visible:outline-ring focus-visible:outline-offset-2 disabled:cursor-not-allowed disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary-hover h-9 gap-1.5 px-3 text-sm&quot; target=&quot;_blank&quot;&gt;Go to &lt;strong&gt;Analytics&lt;/strong&gt;&amp;nbsp;&amp;#8599;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;For more information, refer to &lt;a href=&quot;https://developers.stormtrust.net/dns/additional-options/analytics/&quot;&gt;DNS Analytics&lt;/a&gt; and &lt;a href=&quot;https://developers.stormtrust.net/dns/dns-firewall/analytics/&quot;&gt;DNS Firewall Analytics&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Fri, 20 Mar 2026 00:00:00 GMT</pubDate><product>DNS</product><category>DNS</category></item><item><title>Cache - Asynchronous stale-while-revalidate</title><link>https://developers.stormtrust.net/changelog/post/2026-02-26-async-stale-while-revalidate/</link><guid isPermaLink="true">https://developers.stormtrust.net/changelog/post/2026-02-26-async-stale-while-revalidate/</guid><description>&lt;p&gt;Cloudflare&apos;s &lt;a href=&quot;https://developers.stormtrust.net/cache/concepts/cache-control/#revalidation&quot;&gt;&lt;code&gt;stale-while-revalidate&lt;/code&gt;&lt;/a&gt; support is now fully asynchronous. Previously, the first request for a stale (expired) asset in cache had to wait for an origin response, after which that visitor received a REVALIDATED or EXPIRED status. Now, the first request after the asset expires triggers revalidation in the background and immediately receives stale content with an UPDATING status. All following requests also receive stale content with an &lt;code&gt;UPDATING&lt;/code&gt; status until the origin responds, after which subsequent requests receive fresh content with a &lt;code&gt;HIT&lt;/code&gt; status.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;stale-while-revalidate&lt;/code&gt; is a &lt;code&gt;Cache-Control&lt;/code&gt; directive set by your origin server that allows Cloudflare to serve an expired cached asset while a fresh copy is fetched from the origin.&lt;/p&gt;
&lt;p&gt;Asynchronous revalidation brings:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Lower latency&lt;/strong&gt;: No visitor is waiting for the origin when the asset is already in cache. Every request is served from cache during revalidation.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Consistent experience&lt;/strong&gt;: All visitors receive the same cached response during revalidation.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reduced error exposure&lt;/strong&gt;: The first request is no longer vulnerable to origin timeouts or errors. All visitors receive a cached response while revalidation happens in the background.&lt;/li&gt;
&lt;/ul&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;availability&quot;&gt;Availability&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#availability&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;This change is live for all Free, Pro, and Business zones. Approximately 75% of Enterprise zones have been migrated, with the remaining zones rolling out throughout the quarter.&lt;/p&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;get-started&quot;&gt;Get started&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#get-started&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;To use this feature, make sure your origin includes the &lt;code&gt;stale-while-revalidate&lt;/code&gt; directive in the &lt;code&gt;Cache-Control&lt;/code&gt; header. Refer to the &lt;a href=&quot;https://developers.stormtrust.net/cache/concepts/cache-control/#revalidation&quot;&gt;Cache-Control documentation&lt;/a&gt; for details.&lt;/p&gt;</description><pubDate>Thu, 26 Feb 2026 00:00:00 GMT</pubDate><product>Cache</product><category>Cache</category></item><item><title>Cache - Audit Logs for Cache Purge Events</title><link>https://developers.stormtrust.net/changelog/post/2025-11-25-audit-logs-for-cache-purge-events/</link><guid isPermaLink="true">https://developers.stormtrust.net/changelog/post/2025-11-25-audit-logs-for-cache-purge-events/</guid><description>&lt;p&gt;You can now review detailed audit logs for cache purge events, giving you visibility into what purge requests were sent, what they contained, and by whom. Audit your purge requests via the Dashboard or API for all purge methods:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Purge everything&lt;/li&gt;
&lt;li&gt;List of prefixes&lt;/li&gt;
&lt;li&gt;List of tags&lt;/li&gt;
&lt;li&gt;List of hosts&lt;/li&gt;
&lt;li&gt;List of files&lt;/li&gt;
&lt;/ul&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;example&quot;&gt;Example&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#example&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;The detailed audit payload is visible within the Cloudflare Dashboard (under &lt;strong&gt;Manage Account&lt;/strong&gt; &amp;gt; &lt;strong&gt;Audit Logs&lt;/strong&gt;) and via the API. Below is an example of the Audit Logs v2 payload structure:&lt;/p&gt;
&lt;figure class=&quot;nb-code-figure&quot; data-nb-lang=&quot;json&quot;&gt;&lt;pre class=&quot;astro-code astro-code-themes github-light github-dark nb-shiki-c6xiwz&quot; tabindex=&quot;0&quot; data-language=&quot;json&quot; data-nb-lang=&quot;json&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;  &quot;action&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;    &quot;result&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt;&quot;success&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;    &quot;type&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt;&quot;create&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;  },&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;  &quot;actor&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;    &quot;id&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt;&quot;1234567890abcdef&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;    &quot;email&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt;&quot;user@example.com&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;    &quot;type&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt;&quot;user&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;  },&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;  &quot;resource&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;    &quot;product&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt;&quot;purge_cache&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;    &quot;request&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;      &quot;files&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: [&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt;        &quot;https://example.com/images/logo.png&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt;        &quot;https://example.com/css/styles.css&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;      ]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;    }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;  },&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;  &quot;zone&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;    &quot;id&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt;&quot;023e105f4ecef8ad9ca31a8372d0c353&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;    &quot;name&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt;&quot;example.com&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;  }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;get-started&quot;&gt;Get started&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#get-started&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;To get started, refer to the &lt;a href=&quot;https://developers.stormtrust.net/fundamentals/account/account-security/audit-logs/&quot;&gt;Audit Logs documentation&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Tue, 25 Nov 2025 00:00:00 GMT</pubDate><product>Cache</product><category>Cache</category></item><item><title>Cache - Inspect Cache Keys with Cloudflare Trace</title><link>https://developers.stormtrust.net/changelog/post/2025-11-07-cache-keys-for-cloudflare-trace/</link><guid isPermaLink="true">https://developers.stormtrust.net/changelog/post/2025-11-07-cache-keys-for-cloudflare-trace/</guid><description>&lt;p&gt;You can now see the exact cache key generated for any request directly in Cloudflare Trace. This visibility helps you troubleshoot cache hits and misses, and verify that your Custom Cache Keys — configured via Cache Rules or Page Rules — are working as intended.&lt;/p&gt;
&lt;p&gt;Previously, diagnosing caching behavior required inferring the key from configuration settings. Now, you can confirm that your custom logic for headers, query strings, and device types is correctly applied.&lt;/p&gt;
&lt;p&gt;Access Trace via the &lt;a href=&quot;https://developers.stormtrust.net/rules/trace-request/how-to/#use-trace-in-the-dashboard&quot;&gt;dashboard&lt;/a&gt; or &lt;a href=&quot;https://developers.stormtrust.net/api/resources/request_tracer/methods/trace/&quot;&gt;API&lt;/a&gt;, either manually for ad-hoc debugging or automated as part of your quality-of-service monitoring.&lt;/p&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;example-scenario&quot;&gt;Example scenario&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#example-scenario&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;If you have a Cache Rule that segments content based on a specific cookie (for example, &lt;code&gt;user_region&lt;/code&gt;), run a Trace with that cookie present to confirm the &lt;code&gt;user_region&lt;/code&gt; value appears in the resulting cache key.&lt;/p&gt;
&lt;p&gt;The Trace response includes the cache key in the &lt;code&gt;cache&lt;/code&gt; object:&lt;/p&gt;
&lt;figure class=&quot;nb-code-figure&quot; data-nb-lang=&quot;json&quot;&gt;&lt;pre class=&quot;astro-code astro-code-themes github-light github-dark nb-shiki-c6xiwz&quot; tabindex=&quot;0&quot; data-language=&quot;json&quot; data-nb-lang=&quot;json&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;  &quot;step_name&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt;&quot;request&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;  &quot;type&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt;&quot;cache&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;  &quot;matched&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;  &quot;public_name&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt;&quot;Cache Parameters&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;  &quot;cache&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;    &quot;key&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;      &quot;zone_id&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt;&quot;023e105f4ecef8ad9ca31a8372d0c353&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;      &quot;scheme&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt;&quot;https&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;      &quot;host&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt;&quot;example.com&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;      &quot;uri&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt;&quot;/images/hero.jpg&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;    },&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;    &quot;key_string&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt;&quot;023e105f4ecef8ad9ca31a8372d0c353::::https://example.com/images/hero.jpg:::::&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;  }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;get-started&quot;&gt;Get started&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#get-started&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;To learn more, refer to the &lt;a href=&quot;https://developers.stormtrust.net/rules/trace-request/&quot;&gt;Trace documentation&lt;/a&gt; and our guide on &lt;a href=&quot;https://developers.stormtrust.net/cache/how-to/cache-keys/&quot;&gt;Custom Cache Keys&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Fri, 07 Nov 2025 00:00:00 GMT</pubDate><product>Cache</product><category>Cache</category></item><item><title>Load Balancing - Monitor Groups for Advanced Health Checking With Load Balancing</title><link>https://developers.stormtrust.net/changelog/post/2025-08-15-monitor-groups-for-load-balancing/</link><guid isPermaLink="true">https://developers.stormtrust.net/changelog/post/2025-08-15-monitor-groups-for-load-balancing/</guid><description>&lt;p&gt;Cloudflare Load Balancing now supports Monitor Groups, a powerful new way to combine multiple health monitors into a single, logical group. This allows you to create sophisticated health checks that more accurately reflect the true availability of your applications by assessing multiple services at once.&lt;/p&gt;
&lt;p&gt;With Monitor Groups, you can ensure that all critical components of an application are healthy before sending traffic to an origin pool, enabling smarter failover decisions and greater resilience. This feature is now available via the API for customers with an Enterprise Load Balancing subscription.&lt;/p&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;what-you-can-do&quot;&gt;What you can do:&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#what-you-can-do&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Combine Multiple Monitors&lt;/strong&gt;: Group different health monitors (for example, HTTP, TCP) that check various application components, like a primary API gateway and a specific &lt;code&gt;/login&lt;/code&gt; service.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Isolate Monitors for Observation&lt;/strong&gt;: Mark a monitor as &quot;monitoring only&quot; to receive alerts and data without it affecting a pool&apos;s health status or traffic steering. This is perfect for testing new checks or observing non-critical dependencies.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Improve Steering Intelligence&lt;/strong&gt;: Latency for Dynamic Steering is automatically averaged across all active monitors in a group, providing a more holistic view of an origin&apos;s performance.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This enhancement is ideal for complex, multi-service applications where the health of one component depends on another. By aggregating health signals, Monitor Groups provide a more accurate and comprehensive assessment of your application&apos;s true status.&lt;/p&gt;
&lt;p&gt;For detailed information and API configuration guides, please visit our &lt;a href=&quot;https://developers.stormtrust.net/load-balancing/monitors/monitor-groups&quot;&gt;developer documentation&lt;/a&gt; for Monitor Groups.&lt;/p&gt;</description><pubDate>Thu, 16 Oct 2025 00:00:00 GMT</pubDate><product>Load Balancing</product><category>Load Balancing</category></item><item><title>DNS - DNS Firewall Analytics — now in the Cloudflare dashboard</title><link>https://developers.stormtrust.net/changelog/post/2025-09-16-DNSFW-Analytics-UI/</link><guid isPermaLink="true">https://developers.stormtrust.net/changelog/post/2025-09-16-DNSFW-Analytics-UI/</guid><description>
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;whats-new&quot;&gt;What&apos;s New&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#whats-new&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;Access &lt;a href=&quot;https://developers.stormtrust.net/dns/dns-firewall/analytics/&quot;&gt;GraphQL-powered DNS Firewall analytics&lt;/a&gt; directly in the Cloudflare dashboard.&lt;/p&gt;
&lt;img src=&quot;https://developers.stormtrust.net/cdn-cgi/image/onerror=redirect,width=512,height=284,format=webp/_astro/DNSFW_Analytics_UI.CgjmZFOO.png&quot; alt=&quot;DNS Firewall Analytics UI&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;512&quot; height=&quot;284&quot;&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;explore-four-interactive-panels&quot;&gt;Explore Four Interactive Panels&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#explore-four-interactive-panels&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Query summary&lt;/strong&gt;: Describes trends over time, segmented by dimensions.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Query statistics&lt;/strong&gt;: Describes totals, cached/uncached queries, and processing/response times.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DNS queries by data center&lt;/strong&gt;: Describes global view and the top 10 data centers.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Top query statistics&lt;/strong&gt;: Shows a breakdown by key dimensions, with search and expand options (up to top 100 items).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Additional features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Apply filters and time ranges once. Changes reflect across all panels.&lt;/li&gt;
&lt;li&gt;Filter by dimensions like query name, query type, cluster, data center, protocol (UDP/TCP), IP version, response code/reason, and more.&lt;/li&gt;
&lt;li&gt;Access up to 62 days of historical data with flexible intervals.&lt;/li&gt;
&lt;/ul&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;availability&quot;&gt;Availability&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#availability&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;Available to all DNS Firewall customers as part of their existing subscription.&lt;/p&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;where-to-find-it&quot;&gt;Where to Find It&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#where-to-find-it&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul&gt;&lt;li&gt;
&lt;p&gt;In the Cloudflare dashboard, go to the &lt;strong&gt;DNS Firewall&lt;/strong&gt; page.&lt;/p&gt;
&lt;a href=&quot;https://dash.cloudflare.com/?to=/:account/dns-firewall/analytics&quot; data-nb-button class=&quot;group inline-flex w-max shrink-0 items-center justify-center rounded-full font-medium whitespace-nowrap no-underline shadow-xs transition-colors cursor-pointer select-none focus-visible:outline-2 focus-visible:outline-ring focus-visible:outline-offset-2 disabled:cursor-not-allowed disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary-hover h-9 gap-1.5 px-3 text-sm&quot; target=&quot;_blank&quot;&gt;Go to &lt;strong&gt;Analytics&lt;/strong&gt;&amp;nbsp;&amp;#8599;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Refer to the &lt;a href=&quot;https://developers.stormtrust.net/dns/dns-firewall/analytics/&quot;&gt;DNS Firewall Analytics&lt;/a&gt; to learn more.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</description><pubDate>Tue, 16 Sep 2025 00:00:00 GMT</pubDate><product>DNS</product><category>DNS</category></item><item><title>Cache - Smart Tiered Cache Fallback to Generic</title><link>https://developers.stormtrust.net/changelog/post/2025-08-29-smart-tiered-cache-fallback-to-generic/</link><guid isPermaLink="true">https://developers.stormtrust.net/changelog/post/2025-08-29-smart-tiered-cache-fallback-to-generic/</guid><description>&lt;p&gt;&lt;a href=&quot;https://developers.stormtrust.net/cache/how-to/tiered-cache/#smart-tiered-cache&quot;&gt;Smart Tiered Cache&lt;/a&gt; now falls back to &lt;a href=&quot;https://developers.stormtrust.net/cache/how-to/tiered-cache/#generic-global-tiered-cache&quot;&gt;Generic Tiered Cache&lt;/a&gt; when the origin location cannot be determined, improving cache precision for your content.&lt;/p&gt;
&lt;p&gt;Previously, when Smart Tiered Cache was unable to select the optimal upper tier (such as when origins are masked by Anycast IPs), latency could be negatively impacted. This fallback now uses Generic Tiered Cache instead, providing better performance and cache efficiency.&lt;/p&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;how-it-works&quot;&gt;How it works&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#how-it-works&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;When Smart Tiered Cache falls back to Generic Tiered Cache:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Multiple upper-tiers&lt;/strong&gt;: Uses all of Cloudflare&apos;s global data centers as a network of upper-tiers instead of a single optimal location.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Distributed cache requests&lt;/strong&gt;: Lower-tier data centers can query any available upper-tier for cached content.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Improved global coverage&lt;/strong&gt;: Provides better cache hit ratios across geographically distributed visitors.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Automatic fallback&lt;/strong&gt;: Seamlessly transitions when origin location cannot be determined, such as with Anycast-masked origins.&lt;/li&gt;
&lt;/ol&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;benefits&quot;&gt;Benefits&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#benefits&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Preserves high performance during fallback&lt;/strong&gt;: Smart Tiered Cache now maintains strong cache efficiency even when optimal upper tier selection is not possible.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Minimizes latency impact&lt;/strong&gt;: Automatically uses Generic Tiered Cache topology to keep performance high when origin location cannot be determined.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Seamless experience&lt;/strong&gt;: No configuration changes or intervention required when fallback occurs.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Improved resilience&lt;/strong&gt;: Smart Tiered Cache remains effective across diverse origin infrastructure, including Anycast-masked origins.&lt;/li&gt;
&lt;/ul&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;get-started&quot;&gt;Get started&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#get-started&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;This improvement is automatically applied to all zones using &lt;a href=&quot;https://developers.stormtrust.net/cache/how-to/tiered-cache/&quot;&gt;Smart Tiered Cache&lt;/a&gt;. No action is required on your part.&lt;/p&gt;</description><pubDate>Fri, 29 Aug 2025 00:00:00 GMT</pubDate><product>Cache</product><category>Cache</category></item><item><title>Secrets Store, AI Gateway, SSL/TLS - Manage and deploy your AI provider keys through Bring Your Own Key (BYOK) with AI Gateway, now powered by Cloudflare Secrets Store</title><link>https://developers.stormtrust.net/changelog/post/2025-08-25-secrets-store-ai-gateway/</link><guid isPermaLink="true">https://developers.stormtrust.net/changelog/post/2025-08-25-secrets-store-ai-gateway/</guid><description>
&lt;p&gt;Cloudflare Secrets Store is now integrated with AI Gateway, allowing you to store, manage, and deploy your AI provider keys in a secure and seamless configuration through &lt;a href=&quot;https://developers.cloudflare.com/ai-gateway/configuration/bring-your-own-keys/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Bring Your Own Key&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt;. Instead of passing your AI provider keys directly in every request header, you can centrally manage each key with Secrets Store and deploy in your gateway configuration using only a reference, rather than passing the value in plain text.&lt;/p&gt;
&lt;p&gt;You can now create a secret directly from your AI Gateway &lt;a href=&quot;http://dash.cloudflare.com/?to=/:account/ai-gateway&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;in the dashboard&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt; by navigating into your gateway -&amp;gt; &lt;strong&gt;Provider Keys&lt;/strong&gt; -&amp;gt; &lt;strong&gt;Add&lt;/strong&gt;.&lt;/p&gt;
&lt;img src=&quot;https://developers.stormtrust.net/cdn-cgi/image/onerror=redirect,width=2410,height=1842,format=webp/_astro/add-secret-ai-gateway.B-SIPr6s.png&quot; alt=&quot;Import repo or choose template&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;2410&quot; height=&quot;1842&quot;&gt;
&lt;p&gt;You can also create your secret with the newly available &lt;strong&gt;ai_gateway&lt;/strong&gt; scope via &lt;a href=&quot;https://developers.cloudflare.com/workers/wrangler/commands/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;wrangler&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt;, the &lt;a href=&quot;http://dash.cloudflare.com/?to=/:account/secrets-store&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Secrets Store dashboard&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt;, or the &lt;a href=&quot;https://developers.cloudflare.com/api/resources/secrets_store/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;API&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Then, pass the key in the request header using its Secrets Store reference:&lt;/p&gt;
&lt;figure class=&quot;nb-code-figure&quot; data-nb-lang=&quot;bash&quot;&gt;&lt;pre class=&quot;astro-code astro-code-themes github-light github-dark nb-shiki-c6xiwz&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot; data-nb-lang=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1t8gfj&quot;&gt;curl&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt; -X&lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt; POST&lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt; https://gateway.ai.cloudflare.com/v1/&lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt;ACCOUNT_I&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;D&lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt;/my-gateway/anthropic/v1/messages&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt; \&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt; --header&lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt; &apos;cf-aig-authorization: ANTHROPIC_KEY_1 \&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt; --header &apos;anthropic-version:&lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt; 2023-06-01&apos; \&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt; --header &apos;Content-Type:&lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt; application/json&apos; \&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt; --data  &apos;{&quot;model&quot;:&lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt; &quot;claude-3-opus-20240229&quot;,&lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt; &quot;messages&quot;:&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt; [{&lt;/span&gt;&lt;span class=&quot;nb-shiki-1t8gfj&quot;&gt;&quot;role&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt; &quot;user&quot;,&lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt; &quot;content&quot;:&lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt; &quot;What is Cloudflare?&quot;}]}&apos;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;
&lt;p&gt;Or, using Javascript:&lt;/p&gt;
&lt;figure class=&quot;nb-code-figure&quot; data-nb-lang=&quot;plaintext&quot;&gt;&lt;pre class=&quot;astro-code astro-code-themes github-light github-dark nb-shiki-c6xiwz&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot; data-nb-lang=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-wvjl67&quot;&gt;import Anthropic from &apos;@anthropic-ai/sdk&apos;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-wvjl67&quot;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-wvjl67&quot;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-wvjl67&quot;&gt;const anthropic = new Anthropic({&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-wvjl67&quot;&gt; apiKey: &quot;ANTHROPIC_KEY_1&quot;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-wvjl67&quot;&gt; baseURL: &quot;https://gateway.ai.cloudflare.com/v1/&amp;lt;ACCOUNT_ID&amp;gt;/my-gateway/anthropic&quot;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-wvjl67&quot;&gt;});&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-wvjl67&quot;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-wvjl67&quot;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-wvjl67&quot;&gt;const message = await anthropic.messages.create({&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-wvjl67&quot;&gt; model: &apos;claude-3-opus-20240229&apos;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-wvjl67&quot;&gt; messages: [{role: &quot;user&quot;, content: &quot;What is Cloudflare?&quot;}],&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-wvjl67&quot;&gt; max_tokens: 1024&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-wvjl67&quot;&gt;});&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;
&lt;p&gt;For more information, check out the &lt;a href=&quot;https://blog.cloudflare.com/ai-gateway-aug-2025-refresh&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;blog&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt;!&lt;/p&gt;</description><pubDate>Mon, 25 Aug 2025 11:00:00 GMT</pubDate><product>Secrets Store</product><category>Secrets Store</category><category>AI Gateway</category><category>SSL/TLS</category></item><item><title>Load Balancing - Steer Traffic by AS Number in Load Balancing Custom Rules</title><link>https://developers.stormtrust.net/changelog/post/2025-08-15-asnum-support-in-custom-rules/</link><guid isPermaLink="true">https://developers.stormtrust.net/changelog/post/2025-08-15-asnum-support-in-custom-rules/</guid><description>&lt;p&gt;You can now create more granular, network-aware Custom Rules in Cloudflare Load Balancing using the Autonomous System Number (ASN) of an incoming request.&lt;/p&gt;
&lt;p&gt;This allows you to steer traffic with greater precision based on the network source of a request. For example, you can route traffic from specific Internet Service Providers (ISPs) or enterprise customers to dedicated infrastructure, optimize performance, or enforce compliance by directing certain networks to preferred data centers.&lt;/p&gt;
&lt;img src=&quot;https://developers.stormtrust.net/cdn-cgi/image/onerror=redirect,width=2554,height=1472,format=webp/_astro/asnum-custom-rule.CtcHu_zj.png&quot; alt=&quot;Create a Load Balancing Custom Rule using AS Num&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;2554&quot; height=&quot;1472&quot;&gt;
&lt;p&gt;To get started, create a &lt;a href=&quot;https://developers.cloudflare.com/load-balancing/additional-options/load-balancing-rules/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Custom Rule&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt; in your Load Balancer and select &lt;strong&gt;AS Num&lt;/strong&gt; from the &lt;strong&gt;Field&lt;/strong&gt; dropdown.&lt;/p&gt;</description><pubDate>Fri, 15 Aug 2025 00:00:00 GMT</pubDate><product>Load Balancing</product><category>Load Balancing</category></item><item><title>Load Balancing - Improvements to Monitoring Using Zone Settings</title><link>https://developers.stormtrust.net/changelog/post/2025-08-06-zone-monitoring-improvements/</link><guid isPermaLink="true">https://developers.stormtrust.net/changelog/post/2025-08-06-zone-monitoring-improvements/</guid><description>&lt;p&gt;Cloudflare Load Balancing Monitors support loading and applying settings for a specific zone to monitoring requests to origin endpoints. This feature has been migrated to new infrastructure to improve reliability, performance, and accuracy.&lt;/p&gt;
&lt;p&gt;All zone monitors have been tested against the new infrastructure. There should be no change to health monitoring results of currently healthy and active pools. Newly created or re-enabled pools may need validation of their monitor zone settings before being introduced to service, especially regarding correct application of mTLS.&lt;/p&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;what-you-can-expect&quot;&gt;What you can expect:&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#what-you-can-expect&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;More reliable application of zone settings to monitoring requests, including
&lt;ul&gt;
&lt;li&gt;Authenticated Origin Pulls&lt;/li&gt;
&lt;li&gt;Aegis Egress IP Pools&lt;/li&gt;
&lt;li&gt;Argo Smart Routing&lt;/li&gt;
&lt;li&gt;HTTP/2 to Origin&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Improved support and bug fixes for retries, redirects, and proxied origin resolution&lt;/li&gt;
&lt;li&gt;Improved performance and reliability of monitoring requests within the Cloudflare network&lt;/li&gt;
&lt;li&gt;Unrelated CDN or WAF configuration changes should have no risk of impact to pool health&lt;/li&gt;
&lt;/ul&gt;</description><pubDate>Wed, 06 Aug 2025 00:00:00 GMT</pubDate><product>Load Balancing</product><category>Load Balancing</category></item><item><title>DNS - Account-level DNS analytics now available via GraphQL Analytics API</title><link>https://developers.stormtrust.net/changelog/post/2025-06-23-account-level-dns-analytics-api/</link><guid isPermaLink="true">https://developers.stormtrust.net/changelog/post/2025-06-23-account-level-dns-analytics-api/</guid><description>&lt;p&gt;Authoritative DNS analytics are now available on the &lt;strong&gt;account level&lt;/strong&gt; via the &lt;a href=&quot;https://developers.stormtrust.net/analytics/graphql-api/&quot;&gt;Cloudflare GraphQL Analytics API&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This allows users to query DNS analytics across multiple zones in their account, by using the &lt;code&gt;accounts&lt;/code&gt; filter.&lt;/p&gt;
&lt;p&gt;Here is an example to retrieve the most recent DNS queries across all zones in your account that resulted in an &lt;code&gt;NXDOMAIN&lt;/code&gt; response over a given time frame. Please replace &lt;code&gt;a30f822fcd7c401984bf85d8f2a5111c&lt;/code&gt; with your actual account ID.&lt;/p&gt;
&lt;figure class=&quot;nb-code-figure nb-code-figure-titled&quot; data-nb-lang=&quot;graphql&quot;&gt;&lt;figcaption class=&quot;nb-code-title&quot;&gt;&lt;span class=&quot;nb-code-title-name&quot;&gt;GraphQL example for account-level DNS analytics&lt;/span&gt;&lt;span class=&quot;nb-code-title-lang&quot;&gt;graphql&lt;/span&gt;&lt;/figcaption&gt;&lt;pre class=&quot;astro-code astro-code-themes github-light github-dark nb-shiki-c6xiwz&quot; tabindex=&quot;0&quot; data-language=&quot;graphql&quot; data-nb-lang=&quot;graphql&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;query&lt;/span&gt;&lt;span class=&quot;nb-shiki-1t8gfj&quot;&gt; GetLatestNXDOMAINResponses&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1jdh33&quot;&gt;	viewer&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1jdh33&quot;&gt;		accounts&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb-shiki-1jdh33&quot;&gt;filter&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: { &lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt;accountTag&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt;&quot;a30f822fcd7c401984bf85d8f2a5111c&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt; }) {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1jdh33&quot;&gt;			dnsAnalyticsAdaptive&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;(&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1jdh33&quot;&gt;				filter&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt;					date_geq&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt;&quot;2025-06-16&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt;					date_leq&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt;&quot;2025-06-18&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt;					responseCode&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt;&quot;NXDOMAIN&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;				}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1jdh33&quot;&gt;				limit&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;10000&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1jdh33&quot;&gt;				orderBy&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: [&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;datetime_DESC&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;			) {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1jdh33&quot;&gt;				zoneTag&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1jdh33&quot;&gt;				queryName&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1jdh33&quot;&gt;				responseCode&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1jdh33&quot;&gt;				queryType&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1jdh33&quot;&gt;				datetime&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;			}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;		}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;	}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;
&lt;p&gt;To learn more and get started, refer to the &lt;a href=&quot;https://developers.stormtrust.net/dns/additional-options/analytics/#analytics&quot;&gt;DNS Analytics documentation&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Thu, 19 Jun 2025 00:00:00 GMT</pubDate><product>DNS</product><category>DNS</category></item><item><title>DNS - Internal DNS (beta) now manageable in the Cloudflare dashboard</title><link>https://developers.stormtrust.net/changelog/post/2025-06-16-internal-dns-beta-ui/</link><guid isPermaLink="true">https://developers.stormtrust.net/changelog/post/2025-06-16-internal-dns-beta-ui/</guid><description>&lt;p&gt;Participating beta testers can now fully configure &lt;a href=&quot;https://developers.stormtrust.net/dns/internal-dns/&quot;&gt;Internal DNS&lt;/a&gt; directly in the &lt;a href=&quot;https://dash.cloudflare.com/?to=/:account/internal-dns&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Cloudflare dashboard&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;internal-dns-enables-customers-to&quot;&gt;Internal DNS enables customers to:&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#internal-dns-enables-customers-to&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Map internal hostnames to private IPs for services, devices, and applications not exposed to the public Internet&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Resolve internal DNS queries securely through &lt;a href=&quot;https://developers.stormtrust.net/cloudflare-one/traffic-policies/&quot;&gt;Cloudflare Gateway&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Use split-horizon DNS to return different responses based on network context&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Consolidate internal and public DNS zones within a single management platform&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;whats-new-in-this-release&quot;&gt;What’s new in this release:&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#whats-new-in-this-release&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Beta participants can now create and manage internal zones and views in the Cloudflare dashboard&lt;/li&gt;
&lt;/ul&gt;
&lt;img src=&quot;https://developers.stormtrust.net/cdn-cgi/image/onerror=redirect,width=2364,height=1320,format=webp/_astro/internal-dns-beta-ui.B5uCVZ9o.png&quot; alt=&quot;Internal DNS UI&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;2364&quot; height=&quot;1320&quot;&gt;&lt;aside role=&quot;note&quot; aria-label=&quot;Note&quot; class=&quot;aside-card flex items-start gap-3 rounded-lg px-4 py-3 my-4&quot; style=&quot;--_c: var(--nb-info); --_t: var(--nb-info-muted);&quot; data-astro-cid-znle5jil&gt;&lt;span class=&quot;flex h-[1.375em] shrink-0 items-center&quot; aria-hidden=&quot;true&quot; data-astro-cid-znle5jil&gt;&lt;svg width=&quot;1em&quot; height=&quot;1em&quot; viewBox=&quot;0 0 256 256&quot; class=&quot;h-[1em] w-[1em]&quot; data-astro-cid-znle5jil=&quot;true&quot; data-icon=&quot;ph:info&quot;&gt;&lt;path fill=&quot;currentColor&quot; d=&quot;M128 24a104 104 0 1 0 104 104A104.11 104.11 0 0 0 128 24m0 192a88 88 0 1 1 88-88a88.1 88.1 0 0 1-88 88m16-40a8 8 0 0 1-8 8a16 16 0 0 1-16-16v-40a8 8 0 0 1 0-16a16 16 0 0 1 16 16v40a8 8 0 0 1 8 8m-32-92a12 12 0 1 1 12 12a12 12 0 0 1-12-12&quot;/&gt;&lt;/svg&gt;&lt;/span&gt;&lt;div class=&quot;flex min-w-0 flex-1 flex-col gap-0.5&quot; data-astro-cid-znle5jil&gt;&lt;p class=&quot;m-0 text-base leading-snug font-semibold&quot; data-astro-cid-znle5jil&gt;Note&lt;/p&gt;&lt;div class=&quot;aside-card-body text-sm leading-normal&quot; data-astro-cid-znle5jil&gt;&lt;p&gt;The Internal DNS beta is currently only available to Enterprise customers.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/aside&gt;
&lt;p&gt;To learn more and get started, refer to the &lt;a href=&quot;https://developers.stormtrust.net/dns/internal-dns/&quot;&gt;Internal DNS documentation&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Mon, 16 Jun 2025 00:00:00 GMT</pubDate><product>DNS</product><category>DNS</category></item><item><title>DNS - NSEC3 support for DNSSEC</title><link>https://developers.stormtrust.net/changelog/post/2025-06-11-nsec3-support/</link><guid isPermaLink="true">https://developers.stormtrust.net/changelog/post/2025-06-11-nsec3-support/</guid><description>&lt;p&gt;Enterprise customers can now select NSEC3 as method for proof of non-existence on their zones.&lt;/p&gt;
&lt;p&gt;What&apos;s new:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;NSEC3 support for live-signed zones&lt;/strong&gt; – For both primary and secondary zones that are configured to be live-signed (also known as &quot;on-the-fly signing&quot;), NSEC3 can now be selected as proof of non-existence.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;NSEC3 support for pre-signed zones&lt;/strong&gt; – Secondary zones that are transferred to Cloudflare in a &lt;a href=&quot;https://developers.stormtrust.net/dns/zone-setups/zone-transfers/cloudflare-as-secondary/dnssec-for-secondary/#set-up-pre-signed-dnssec&quot;&gt;pre-signed setup&lt;/a&gt; now also support NSEC3 as proof of non-existence.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For more information and how to enable NSEC3, refer to the &lt;a href=&quot;https://developers.stormtrust.net/dns/dnssec/enable-nsec3/&quot;&gt;NSEC3 documentation&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Wed, 11 Jun 2025 00:00:00 GMT</pubDate><product>DNS</product><category>DNS</category></item><item><title>Load Balancing - New Account-Level Load Balancing UI and Private Load Balancers</title><link>https://developers.stormtrust.net/changelog/post/2025-06-04-account-load-balancing-ui/</link><guid isPermaLink="true">https://developers.stormtrust.net/changelog/post/2025-06-04-account-load-balancing-ui/</guid><description>&lt;p&gt;We&apos;ve made two large changes to load balancing:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Redesigned the user interface, now centralized at the &lt;strong&gt;account level&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Introduced &lt;a href=&quot;https://developers.stormtrust.net/load-balancing/private-network/&quot;&gt;&lt;strong&gt;Private Load Balancers&lt;/strong&gt;&lt;/a&gt; to the UI, enabling you to manage traffic for all of your external and internal applications in a single spot.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This update streamlines how you manage load balancers across multiple zones and extends robust traffic management to your private network infrastructure.&lt;/p&gt;
&lt;img src=&quot;https://developers.stormtrust.net/cdn-cgi/image/onerror=redirect,width=1600,height=822,format=webp/_astro/account-load-balancing-ui.CoCi7gPb.png&quot; alt=&quot;Load Balancing UI&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;1600&quot; height=&quot;822&quot;&gt;
&lt;p&gt;&lt;strong&gt;Key Enhancements:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Account-Level UI Consolidation:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Unified Management:&lt;/strong&gt; Say goodbye to navigating individual zones for load balancing tasks. You can now view, configure, and monitor all your load balancers across every zone in your account from a single, intuitive interface at the account level.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Improved Efficiency:&lt;/strong&gt; This centralized approach provides a more streamlined workflow, making it faster and easier to manage both your public-facing and internal traffic distribution.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Private Network Load Balancing:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Secure Internal Application Access:&lt;/strong&gt; Create &lt;a href=&quot;https://developers.stormtrust.net/load-balancing/private-network/&quot;&gt;&lt;strong&gt;Private Load Balancers&lt;/strong&gt;&lt;/a&gt; to distribute traffic to applications hosted within your private network, ensuring they are not exposed to the public Internet.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;WARP &amp;amp; Magic WAN Integration:&lt;/strong&gt; Effortlessly direct internal traffic from users connected via Cloudflare WARP or through your Magic WAN infrastructure to the appropriate internal endpoint pools.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Enhanced Security for Internal Resources:&lt;/strong&gt; Combine reliable Load Balancing with Zero Trust access controls to ensure your internal services are both performant and only accessible by verified users.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;img src=&quot;https://developers.stormtrust.net/cdn-cgi/image/onerror=redirect,width=1600,height=744,format=webp/_astro/private-load-balancer.yti20m_p.png&quot; alt=&quot;Private Load Balancers&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;1600&quot; height=&quot;744&quot;&gt;</description><pubDate>Wed, 04 Jun 2025 00:00:00 GMT</pubDate><product>Load Balancing</product><category>Load Balancing</category></item><item><title>DNS - Improved onboarding for Shopify merchants</title><link>https://developers.stormtrust.net/changelog/post/2025-06-03-shopify-o2o-improvements/</link><guid isPermaLink="true">https://developers.stormtrust.net/changelog/post/2025-06-03-shopify-o2o-improvements/</guid><description>&lt;p&gt;Shopify merchants can now onboard to &lt;strong&gt;O2O&lt;/strong&gt; automatically, without needing to contact support or community members.&lt;/p&gt;
&lt;p&gt;What&apos;s new:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Automatic enablement&lt;/strong&gt; – O2O is available for all mutual Cloudflare and Shopify customers.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Branded record display&lt;/strong&gt; – Merchants see a Shopify logo in DNS records, complete with helpful tooltips.&lt;/p&gt;
&lt;img src=&quot;https://developers.stormtrust.net/cdn-cgi/image/onerror=redirect,width=848,height=112,format=webp/_astro/shop-dns-icon-o2o.Ca5DAZHL.png&quot; alt=&quot;Shopify O2O logo&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;848&quot; height=&quot;112&quot;&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Checkout protection&lt;/strong&gt; – Workers and Snippets are blocked from running on the checkout path to reduce risk and improve security.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For more information, refer to the &lt;a href=&quot;https://developers.stormtrust.net/cloudflare-for-platforms/cloudflare-for-saas/saas-customers/provider-guides/shopify/&quot;&gt;provider guide&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Tue, 03 Jun 2025 00:00:00 GMT</pubDate><product>DNS</product><category>DNS</category></item><item><title>SSL/TLS, Cloudflare for SaaS, Secrets Store - Increased limits for Cloudflare for SaaS and Secrets Store free and Pay-as-you-go plans</title><link>https://developers.stormtrust.net/changelog/post/2025-05-19-paygo-updates/</link><guid isPermaLink="true">https://developers.stormtrust.net/changelog/post/2025-05-19-paygo-updates/</guid><description>
&lt;p&gt;With upgraded limits to &lt;a href=&quot;https://www.cloudflare.com/plans/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;all free and paid plans&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt;, you can now scale more easily with &lt;a href=&quot;https://developers.cloudflare.com/cloudflare-for-platforms/cloudflare-for-saas/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Cloudflare for SaaS&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt; and &lt;a href=&quot;https://developers.cloudflare.com/secrets-store/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Secrets Store&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://developers.cloudflare.com/cloudflare-for-platforms/cloudflare-for-saas/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Cloudflare for SaaS&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt; allows you to extend the benefits of Cloudflare to your customers via their own custom or vanity domains. Now, the &lt;a href=&quot;https://developers.cloudflare.com/cloudflare-for-platforms/cloudflare-for-saas/plans/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;limit for custom hostnames&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt; on a Cloudflare for SaaS Pay-as-you-go plan has been &lt;strong&gt;raised from 5,000 custom hostnames to 50,000 custom hostnames.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;With custom origin server -- previously an enterprise-only feature -- you can route traffic from one or more custom hostnames somewhere other than your default proxy fallback. &lt;a href=&quot;https://developers.cloudflare.com/cloudflare-for-platforms/cloudflare-for-saas/start/advanced-settings/custom-origin/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Custom origin server&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt; is now available to Cloudflare for SaaS customers on Free, Pro, and Business plans.&lt;/p&gt;
&lt;p&gt;You can enable custom origin server on a per-custom hostname basis &lt;a href=&quot;https://developers.cloudflare.com/api/resources/custom_hostnames/methods/edit/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;via the API&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt; or the UI:&lt;/p&gt;
&lt;img src=&quot;https://developers.stormtrust.net/cdn-cgi/image/onerror=redirect,width=1896,height=1636,format=webp/_astro/custom-origin-server.B-BXcG-1.png&quot; alt=&quot;Import repo or choose template&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;1896&quot; height=&quot;1636&quot;&gt;
&lt;p&gt;Currently &lt;a href=&quot;https://blog.cloudflare.com/secrets-store-beta/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;in beta with a Workers integration&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt;, &lt;a href=&quot;https://developers.cloudflare.com/secrets-store/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Cloudflare Secrets Store&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt; allows you to store, manage, and deploy account level secrets from a secure, centralized platform your &lt;a href=&quot;https://developers.cloudflare.com/workers/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Cloudflare Workers&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt;. Now, you can create and deploy &lt;strong&gt;100 secrets per account&lt;/strong&gt;. Try it out &lt;a href=&quot;http://dash.cloudflare.com/?to=/:account/secrets-store&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;in the dashboard&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt;, with &lt;a href=&quot;https://developers.cloudflare.com/secrets-store/integrations/workers/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Wrangler&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt;, or &lt;a href=&quot;https://developers.cloudflare.com/api/resources/secrets_store/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;via the API&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt; today.&lt;/p&gt;</description><pubDate>Tue, 27 May 2025 11:00:00 GMT</pubDate><product>SSL/TLS</product><category>SSL/TLS</category><category>Cloudflare for SaaS</category><category>Secrets Store</category></item><item><title>Load Balancing - UDP and ICMP Monitor Support for Private Load Balancing Endpoints</title><link>https://developers.stormtrust.net/changelog/post/2025-05-06-private-health-monitoring-methods/</link><guid isPermaLink="true">https://developers.stormtrust.net/changelog/post/2025-05-06-private-health-monitoring-methods/</guid><description>&lt;p&gt;Cloudflare Load Balancing now supports &lt;strong&gt;UDP (Layer 4)&lt;/strong&gt; and &lt;strong&gt;ICMP (Layer 3)&lt;/strong&gt; health monitors for &lt;strong&gt;private endpoints&lt;/strong&gt;. This makes it simple to track the health and availability of internal services that don’t respond to HTTP, TCP, or other protocol probes.&lt;/p&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;what-you-can-do&quot;&gt;What you can do:&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#what-you-can-do&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Set up &lt;strong&gt;ICMP ping monitors&lt;/strong&gt; to check if your private endpoints are reachable.&lt;/li&gt;
&lt;li&gt;Use &lt;strong&gt;UDP monitors&lt;/strong&gt; for lightweight health checks on non-TCP workloads, such as DNS, VoIP, or custom UDP-based services.&lt;/li&gt;
&lt;li&gt;Gain better visibility and uptime guarantees for services running behind &lt;strong&gt;Private Network Load Balancing&lt;/strong&gt;, without requiring public IP addresses.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This enhancement is ideal for internal applications that rely on low-level protocols, especially when used in conjunction with &lt;a href=&quot;https://developers.stormtrust.net/cloudflare-one/networks/connectors/cloudflare-tunnel/&quot;&gt;&lt;strong&gt;Cloudflare Tunnel&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&quot;https://developers.stormtrust.net/cloudflare-one/team-and-resources/devices/cloudflare-one-client/&quot;&gt;&lt;strong&gt;WARP&lt;/strong&gt;&lt;/a&gt;, and &lt;a href=&quot;https://developers.stormtrust.net/cloudflare-wan/&quot;&gt;&lt;strong&gt;Magic WAN&lt;/strong&gt;&lt;/a&gt; to create a secure and observable private network.&lt;/p&gt;
&lt;p&gt;Learn more about &lt;a href=&quot;https://developers.stormtrust.net/load-balancing/private-network/&quot;&gt;Private Network Load Balancing&lt;/a&gt; or view the full list of &lt;a href=&quot;https://developers.stormtrust.net/load-balancing/monitors/#supported-protocols&quot;&gt;supported health monitor protocols&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Tue, 06 May 2025 00:00:00 GMT</pubDate><product>Load Balancing</product><category>Load Balancing</category></item><item><title>Secrets Store, SSL/TLS - Cloudflare Secrets Store now available in Beta</title><link>https://developers.stormtrust.net/changelog/post/2025-04-09-secrets-store-beta/</link><guid isPermaLink="true">https://developers.stormtrust.net/changelog/post/2025-04-09-secrets-store-beta/</guid><description>&lt;p&gt;Cloudflare Secrets Store is available today in Beta. You can now store, manage, and deploy account level secrets from a secure, centralized platform to your Workers.&lt;/p&gt;
&lt;img src=&quot;https://developers.stormtrust.net/cdn-cgi/image/onerror=redirect,width=1914,height=1536,format=webp/_astro/secrets-store-landing-page.BQoEWsq8.png&quot; alt=&quot;Import repo or choose template&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;1914&quot; height=&quot;1536&quot;&gt;
&lt;p&gt;To spin up your Cloudflare Secrets Store, simply click the new Secrets Store tab &lt;a href=&quot;http://dash.cloudflare.com/?to=/:account/secrets-store&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;in the dashboard&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt; or use this Wrangler command:&lt;/p&gt;
&lt;figure class=&quot;nb-code-figure&quot; data-nb-lang=&quot;sh&quot;&gt;&lt;pre class=&quot;astro-code astro-code-themes github-light github-dark nb-shiki-c6xiwz&quot; tabindex=&quot;0&quot; data-language=&quot;sh&quot; data-nb-lang=&quot;sh&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1t8gfj&quot;&gt;wrangler&lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt; secrets-store&lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt; store&lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt; create&lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt; &amp;lt;&lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt;nam&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;e&lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt; --remote&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;
&lt;p&gt;The following are supported in the Secrets Store beta:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Secrets Store UI &amp;amp; API: create your store &amp;amp; create, duplicate, update, scope, and delete a secret&lt;/li&gt;
&lt;li&gt;Workers UI: bind a new or existing account level secret to a Worker and deploy in code&lt;/li&gt;
&lt;li&gt;Wrangler: create your store &amp;amp; create, duplicate, update, scope, and delete a secret&lt;/li&gt;
&lt;li&gt;Account Management UI &amp;amp; API: assign Secrets Store permissions roles &amp;amp; view audit logs for actions taken in Secrets Store core platform&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For instructions on how to get started, visit our &lt;a href=&quot;https://developers.stormtrust.net/secrets-store/&quot;&gt;developer documentation&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Wed, 09 Apr 2025 00:00:00 GMT</pubDate><product>Secrets Store</product><category>Secrets Store</category><category>SSL/TLS</category></item><item><title>Cache - Workers Fetch API can override Cache Rules</title><link>https://developers.stormtrust.net/changelog/post/2025-04-04-workers-fetch-api-override-cache-rules/</link><guid isPermaLink="true">https://developers.stormtrust.net/changelog/post/2025-04-04-workers-fetch-api-override-cache-rules/</guid><description>&lt;p&gt;You can now programmatically override Cache Rules using the &lt;code&gt;cf&lt;/code&gt; object in the &lt;code&gt;fetch()&lt;/code&gt; command. This feature gives you fine-grained control over caching behavior on a per-request basis, allowing Workers to customize cache settings dynamically based on request properties, user context, or business logic.&lt;/p&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;how-it-works&quot;&gt;How it works&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#how-it-works&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;Using the &lt;code&gt;cf&lt;/code&gt; object in &lt;code&gt;fetch()&lt;/code&gt;, you can override specific Cache Rules settings by:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Setting custom cache options&lt;/strong&gt;: Pass cache properties in the &lt;code&gt;cf&lt;/code&gt; object as the second argument to &lt;code&gt;fetch()&lt;/code&gt; to override default Cache Rules.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dynamic cache control&lt;/strong&gt;: Apply different caching strategies based on request headers, cookies, or other runtime conditions.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Per-request customization&lt;/strong&gt;: Bypass or modify Cache Rules for individual requests while maintaining default behavior for others.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Programmatic cache management&lt;/strong&gt;: Implement complex caching logic that adapts to your application&apos;s needs.&lt;/li&gt;
&lt;/ol&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;what-can-be-configured&quot;&gt;What can be configured&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#what-can-be-configured&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;Workers can override the following Cache Rules settings through the &lt;code&gt;cf&lt;/code&gt; object:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;cacheEverything&lt;/code&gt;&lt;/strong&gt;: Treat all content as static and cache all file types beyond the default cached content.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;cacheTtl&lt;/code&gt;&lt;/strong&gt;: Set custom time-to-live values in seconds for cached content at the edge, regardless of origin headers.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;cacheTtlByStatus&lt;/code&gt;&lt;/strong&gt;: Set different TTLs based on the response status code (for example, &lt;code&gt;{ &quot;200-299&quot;: 86400, 404: 1, &quot;500-599&quot;: 0 }&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;cacheKey&lt;/code&gt;&lt;/strong&gt;: Customize cache keys to control which requests are treated as the same for caching purposes (Enterprise only).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;cacheTags&lt;/code&gt;&lt;/strong&gt;: Append additional cache tags for targeted cache purging operations.&lt;/li&gt;
&lt;/ul&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;benefits&quot;&gt;Benefits&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#benefits&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Enhanced flexibility&lt;/strong&gt;: Customize cache behavior without modifying zone-level Cache Rules.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dynamic optimization&lt;/strong&gt;: Adjust caching strategies in real-time based on request context.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Simplified configuration&lt;/strong&gt;: Reduce the number of Cache Rules needed by handling edge cases programmatically.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Improved performance&lt;/strong&gt;: Fine-tune cache behavior for specific use cases to maximize hit rates.&lt;/li&gt;
&lt;/ul&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;get-started&quot;&gt;Get started&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#get-started&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;To get started, refer to the &lt;a href=&quot;https://developers.stormtrust.net/workers/runtime-apis/fetch/&quot;&gt;Workers Fetch API documentation&lt;/a&gt; and the &lt;a href=&quot;https://developers.stormtrust.net/workers/runtime-apis/request/#the-cf-property-requestinitcfproperties&quot;&gt;cf object properties documentation&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Fri, 04 Apr 2025 00:00:00 GMT</pubDate><product>Cache</product><category>Cache</category></item><item><title>Cache - All cache purge methods now available for all plans</title><link>https://developers.stormtrust.net/changelog/post/2025-04-01-purge-for-all/</link><guid isPermaLink="true">https://developers.stormtrust.net/changelog/post/2025-04-01-purge-for-all/</guid><description>&lt;p&gt;You can now access all Cloudflare cache purge methods — no matter which plan you’re on. Whether you need to update a single asset or instantly invalidate large portions of your site’s content, you now have the same powerful tools previously reserved for Enterprise customers.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Anyone on Cloudflare can now:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://developers.stormtrust.net/cache/how-to/purge-cache/purge-everything/&quot;&gt;Purge Everything&lt;/a&gt;: Clears all cached content associated with a website.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developers.stormtrust.net/cache/how-to/purge-cache/purge_by_prefix/&quot;&gt;Purge by Prefix&lt;/a&gt;: Targets URLs sharing a common prefix.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developers.stormtrust.net/cache/how-to/purge-cache/purge-by-hostname/&quot;&gt;Purge by Hostname&lt;/a&gt;: Invalidates content by specific hostnames.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developers.stormtrust.net/cache/how-to/purge-cache/purge-by-single-file/&quot;&gt;Purge by URL (single-file purge)&lt;/a&gt;: Precisely targets individual URLs.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developers.stormtrust.net/cache/how-to/purge-cache/purge-by-tags/&quot;&gt;Purge by Tag&lt;/a&gt;: Uses Cache-Tag response headers to invalidate grouped assets, offering flexibility for complex cache management scenarios.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Want to learn how each purge method works, when to use them, or what limits apply to your plan? Dive into our &lt;a href=&quot;https://developers.stormtrust.net/cache/how-to/purge-cache/&quot;&gt;purge cache documentation&lt;/a&gt; and &lt;a href=&quot;https://developers.cloudflare.com/api/resources/cache/methods/purge/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;API reference&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt; for all the details.&lt;/p&gt;</description><pubDate>Thu, 03 Apr 2025 00:00:00 GMT</pubDate><product>Cache</product><category>Cache</category></item><item><title>SSL/TLS - Upload a certificate bundle with an RSA and ECDSA certificate per custom hostname</title><link>https://developers.stormtrust.net/changelog/post/2025-02-14-cert-bundling-for-custom-hostnames/</link><guid isPermaLink="true">https://developers.stormtrust.net/changelog/post/2025-02-14-cert-bundling-for-custom-hostnames/</guid><description>
&lt;p&gt;Cloudflare has supported both RSA and ECDSA certificates across our platform for a number of years. Both certificates offer the same security, but ECDSA is more performant due to a smaller key size. However, RSA is more widely adopted and ensures compatibility with legacy clients. Instead of choosing between them, you may want both – that way, ECDSA is used when clients support it, but RSA is available if not.&lt;/p&gt;
&lt;p&gt;Now, you can upload both an RSA and ECDSA certificate on a custom hostname via the API.&lt;/p&gt;
&lt;figure class=&quot;nb-code-figure&quot; data-nb-lang=&quot;plaintext&quot;&gt;&lt;pre class=&quot;astro-code astro-code-themes github-light github-dark nb-shiki-c6xiwz&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot; data-nb-lang=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-wvjl67&quot;&gt;curl -X POST https://api.cloudflare.com/client/v4/zones/$ZONE_ID/custom_hostnames \&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-wvjl67&quot;&gt;    -H &apos;Content-Type: application/json&apos; \&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-wvjl67&quot;&gt;    -H &quot;X-Auth-Email: $CLOUDFLARE_EMAIL&quot; \&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-wvjl67&quot;&gt;    -H &quot;X-Auth-Key: $CLOUDFLARE_API_KEY&quot; \&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-wvjl67&quot;&gt;    -d &apos;{&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-wvjl67&quot;&gt;    &quot;hostname&quot;: &quot;hostname&quot;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-wvjl67&quot;&gt;    &quot;ssl&quot;: {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-wvjl67&quot;&gt;        &quot;custom_cert_bundle&quot;: [&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-wvjl67&quot;&gt;            {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-wvjl67&quot;&gt;                &quot;custom_certificate&quot;: &quot;RSA Cert&quot;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-wvjl67&quot;&gt;                &quot;custom_key&quot;: &quot;RSA Key&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-wvjl67&quot;&gt;            },&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-wvjl67&quot;&gt;            {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-wvjl67&quot;&gt;                &quot;custom_certificate&quot;: &quot;ECDSA Cert&quot;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-wvjl67&quot;&gt;                &quot;custom_key&quot;: &quot;ECDSA Key&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-wvjl67&quot;&gt;            }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-wvjl67&quot;&gt;        ],&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-wvjl67&quot;&gt;        &quot;bundle_method&quot;: &quot;force&quot;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-wvjl67&quot;&gt;        &quot;wildcard&quot;: false,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-wvjl67&quot;&gt;        &quot;settings&quot;: {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-wvjl67&quot;&gt;            &quot;min_tls_version&quot;: &quot;1.0&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-wvjl67&quot;&gt;        }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-wvjl67&quot;&gt;    }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-wvjl67&quot;&gt;}’&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;
&lt;p&gt;You can also:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://developers.stormtrust.net/api/resources/custom_hostnames/methods/create/&quot;&gt;Upload&lt;/a&gt; an RSA or ECDSA certificate to a custom hostname with an existing ECDSA or RSA certificate, respectively.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://developers.stormtrust.net/api/resources/custom_hostnames/subresources/certificate_pack/subresources/certificates/methods/update/&quot;&gt;Replace&lt;/a&gt; the RSA or ECDSA certificate with a certificate of its same type.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://developers.stormtrust.net/api/resources/custom_hostnames/subresources/certificate_pack/subresources/certificates/methods/delete/&quot;&gt;Delete&lt;/a&gt; the RSA or ECDSA certificate (if the custom hostname has both an RSA and ECDSA uploaded).&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This feature is available for Business and Enterprise customers who have purchased custom certificates.&lt;/p&gt;</description><pubDate>Fri, 14 Feb 2025 00:00:00 GMT</pubDate><product>SSL/TLS</product><category>SSL/TLS</category></item><item><title>Cache - Configurable multiplexing HTTP/2 to Origin</title><link>https://developers.stormtrust.net/changelog/post/2025-02-12-configurable-multiplexing-http2-to-origin/</link><guid isPermaLink="true">https://developers.stormtrust.net/changelog/post/2025-02-12-configurable-multiplexing-http2-to-origin/</guid><description>&lt;p&gt;You can now configure HTTP/2 multiplexing settings for origin connections on Enterprise plans. This feature allows you to optimize how Cloudflare manages concurrent requests over HTTP/2 connections to your origin servers, improving cache efficiency and reducing connection overhead.&lt;/p&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;how-it-works&quot;&gt;How it works&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#how-it-works&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;HTTP/2 multiplexing allows multiple requests to be sent over a single TCP connection. With this configuration option, you can:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Control concurrent streams&lt;/strong&gt;: Adjust the maximum number of concurrent streams per connection.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Optimize connection reuse&lt;/strong&gt;: Fine-tune connection pooling behavior for your origin infrastructure.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reduce connection overhead&lt;/strong&gt;: Minimize the number of TCP connections required between Cloudflare and your origin.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Improve cache performance&lt;/strong&gt;: Better connection management can enhance cache fetch efficiency.&lt;/li&gt;
&lt;/ol&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;benefits&quot;&gt;Benefits&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#benefits&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Customizable performance&lt;/strong&gt;: Tailor multiplexing settings to your origin&apos;s capabilities.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reduced latency&lt;/strong&gt;: Fewer connection handshakes improve response times.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Lower origin load&lt;/strong&gt;: More efficient connection usage reduces server resource consumption.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Enhanced scalability&lt;/strong&gt;: Better connection management supports higher traffic volumes.&lt;/li&gt;
&lt;/ul&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;get-started&quot;&gt;Get started&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#get-started&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;Enterprise customers can configure HTTP/2 multiplexing settings in the &lt;a href=&quot;https://dash.cloudflare.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Cloudflare Dashboard&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt; or through our &lt;a href=&quot;https://developers.stormtrust.net/api/&quot;&gt;API&lt;/a&gt;.&lt;/p&gt;
&lt;aside role=&quot;note&quot; aria-label=&quot;Important consideration&quot; class=&quot;aside-card flex items-start gap-3 rounded-lg px-4 py-3 my-4&quot; style=&quot;--_c: var(--nb-info); --_t: var(--nb-info-muted);&quot; data-astro-cid-znle5jil&gt;&lt;span class=&quot;flex h-[1.375em] shrink-0 items-center&quot; aria-hidden=&quot;true&quot; data-astro-cid-znle5jil&gt;&lt;svg width=&quot;1em&quot; height=&quot;1em&quot; viewBox=&quot;0 0 256 256&quot; class=&quot;h-[1em] w-[1em]&quot; data-astro-cid-znle5jil=&quot;true&quot; data-icon=&quot;ph:info&quot;&gt;&lt;path fill=&quot;currentColor&quot; d=&quot;M128 24a104 104 0 1 0 104 104A104.11 104.11 0 0 0 128 24m0 192a88 88 0 1 1 88-88a88.1 88.1 0 0 1-88 88m16-40a8 8 0 0 1-8 8a16 16 0 0 1-16-16v-40a8 8 0 0 1 0-16a16 16 0 0 1 16 16v40a8 8 0 0 1 8 8m-32-92a12 12 0 1 1 12 12a12 12 0 0 1-12-12&quot;/&gt;&lt;/svg&gt;&lt;/span&gt;&lt;div class=&quot;flex min-w-0 flex-1 flex-col gap-0.5&quot; data-astro-cid-znle5jil&gt;&lt;p class=&quot;m-0 text-base leading-snug font-semibold&quot; data-astro-cid-znle5jil&gt;Important consideration&lt;/p&gt;&lt;div class=&quot;aside-card-body text-sm leading-normal&quot; data-astro-cid-znle5jil&gt;&lt;p&gt;This setting needs to be tuned carefully for your origin infrastructure. Setting the concurrent stream limit too high can negatively impact performance by saturating the shared TCP connection and overwhelming server processing capacity, leading to increased latency for individual requests.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/aside&gt;</description><pubDate>Wed, 12 Feb 2025 00:00:00 GMT</pubDate><product>Cache</product><category>Cache</category></item><item><title>Cache - Fight CSAM More Easily Than Ever</title><link>https://developers.stormtrust.net/changelog/post/2025-02-04-easier-onboarding-for-csam-scanning-tool/</link><guid isPermaLink="true">https://developers.stormtrust.net/changelog/post/2025-02-04-easier-onboarding-for-csam-scanning-tool/</guid><description>&lt;p&gt;You can now implement our &lt;strong&gt;child safety tooling&lt;/strong&gt;, the &lt;strong&gt;&lt;a href=&quot;https://developers.stormtrust.net/cache/reference/csam-scanning/&quot;&gt;CSAM Scanning Tool&lt;/a&gt;&lt;/strong&gt;, more easily. Instead of requiring external reporting credentials, you only need a verified email address for notifications to onboard. This change makes the tool more accessible to a wider range of customers.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How It Works&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;When enabled, the tool automatically &lt;a href=&quot;https://blog.cloudflare.com/the-csam-scanning-tool/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;hashes images for enabled websites as they enter the Cloudflare cache&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt;. These hashes are then checked against a database of &lt;strong&gt;known abusive images&lt;/strong&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Potential match detected?&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;strong&gt;content URL is blocked&lt;/strong&gt;, and&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cloudflare will notify you&lt;/strong&gt; about the found matches via the provided email address.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Updated Service-Specific Terms&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;We have also made updates to our &lt;strong&gt;&lt;a href=&quot;https://www.cloudflare.com/service-specific-terms-application-services/#csam-scanning-tool-terms&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Service-Specific Terms&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt;&lt;/strong&gt; to reflect these changes.&lt;/p&gt;</description><pubDate>Tue, 04 Feb 2025 00:00:00 GMT</pubDate><product>Cache</product><category>Cache</category></item><item><title>DNS - Removed unused meta fields from DNS records</title><link>https://developers.stormtrust.net/changelog/post/2025-02-02-removed-meta-fields/</link><guid isPermaLink="true">https://developers.stormtrust.net/changelog/post/2025-02-02-removed-meta-fields/</guid><description>&lt;p&gt;Cloudflare is removing five fields from the &lt;code&gt;meta&lt;/code&gt; object of DNS records. These fields have been unused for more than a year and are no longer set on new records. This change may take up to four weeks to fully roll out.&lt;/p&gt;
&lt;p&gt;The affected fields are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;the &lt;code&gt;auto_added&lt;/code&gt; boolean&lt;/li&gt;
&lt;li&gt;the &lt;code&gt;managed_by_apps&lt;/code&gt; boolean and corresponding &lt;code&gt;apps_install_id&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;the &lt;code&gt;managed_by_argo_tunnel&lt;/code&gt; boolean and corresponding &lt;code&gt;argo_tunnel_id&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;An example record returned from the API would now look like the following:&lt;/p&gt;
&lt;figure class=&quot;nb-code-figure nb-code-figure-titled&quot; data-nb-lang=&quot;json&quot;&gt;&lt;figcaption class=&quot;nb-code-title&quot;&gt;&lt;span class=&quot;nb-code-title-name&quot;&gt;Updated API Response&lt;/span&gt;&lt;span class=&quot;nb-code-title-lang&quot;&gt;json&lt;/span&gt;&lt;/figcaption&gt;&lt;pre class=&quot;astro-code astro-code-themes github-light github-dark nb-shiki-c6xiwz&quot; tabindex=&quot;0&quot; data-language=&quot;json&quot; data-nb-lang=&quot;json&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;	&quot;result&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;		&quot;id&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt;&quot;&amp;lt;ID&amp;gt;&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;		&quot;zone_id&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt;&quot;&amp;lt;ZONE_ID&amp;gt;&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;		&quot;zone_name&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt;&quot;example.com&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;		&quot;name&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt;&quot;www.example.com&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;		&quot;type&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt;&quot;A&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;		&quot;content&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt;&quot;192.0.2.1&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;		&quot;proxiable&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;		&quot;proxied&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;		&quot;ttl&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;		&quot;locked&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;		&quot;meta&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line diff remove&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;			&quot;auto_added&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line diff remove&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;			&quot;managed_by_apps&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line diff remove&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;			&quot;managed_by_argo_tunnel&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;			&quot;source&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt;&quot;primary&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;		},&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;		&quot;comment&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;		&quot;tags&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: [],&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;		&quot;created_on&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt;&quot;2025-03-17T20:37:05.368097Z&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;		&quot;modified_on&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt;&quot;2025-03-17T20:37:05.368097Z&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;	},&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;	&quot;success&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;	&quot;errors&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: [],&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;	&quot;messages&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: []&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;
&lt;p&gt;For more guidance, refer to &lt;a href=&quot;https://developers.stormtrust.net/dns/manage-dns-records/&quot;&gt;Manage DNS records&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Sun, 02 Feb 2025 00:00:00 GMT</pubDate><product>DNS</product><category>DNS</category></item><item><title>Cache - Smart Tiered Cache optimizes Load Balancing Pools</title><link>https://developers.stormtrust.net/changelog/post/2025-01-08-smart-tiered-cache-for-load-balancing/</link><guid isPermaLink="true">https://developers.stormtrust.net/changelog/post/2025-01-08-smart-tiered-cache-for-load-balancing/</guid><description>&lt;p&gt;You can now achieve higher cache hit rates and reduce origin load when using &lt;a href=&quot;https://developers.stormtrust.net/load-balancing/&quot;&gt;Load Balancing&lt;/a&gt; with &lt;a href=&quot;https://developers.stormtrust.net/cache/how-to/tiered-cache/&quot;&gt;Smart Tiered Cache&lt;/a&gt;. Cloudflare automatically selects a single, optimal tiered data center for all origins in your Load Balancing Pool.&lt;/p&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;how-it-works&quot;&gt;How it works&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#how-it-works&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;When you use &lt;a href=&quot;https://developers.stormtrust.net/load-balancing/&quot;&gt;Load Balancing&lt;/a&gt; with &lt;a href=&quot;https://developers.stormtrust.net/cache/how-to/tiered-cache/&quot;&gt;Smart Tiered Cache&lt;/a&gt;, Cloudflare analyzes performance metrics across your pool&apos;s origins and automatically selects the optimal Upper Tier data center for the entire pool. This means:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Consistent cache location&lt;/strong&gt;: All origins in the pool share the same Upper Tier cache.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Higher HIT rates&lt;/strong&gt;: Requests for the same content hit the cache more frequently.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reduced origin requests&lt;/strong&gt;: Fewer requests reach your origin servers.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Improved performance&lt;/strong&gt;: Faster response times for cache HITs.&lt;/li&gt;
&lt;/ul&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;example-workflow&quot;&gt;Example workflow&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#example-workflow&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;figure class=&quot;nb-code-figure&quot; data-nb-lang=&quot;txt&quot;&gt;&lt;pre class=&quot;astro-code astro-code-themes github-light github-dark nb-shiki-c6xiwz&quot; tabindex=&quot;0&quot; data-language=&quot;txt&quot; data-nb-lang=&quot;txt&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-wvjl67&quot;&gt;Load Balancing Pool: api-pool&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-wvjl67&quot;&gt;├── Origin 1: api-1.example.com&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-wvjl67&quot;&gt;├── Origin 2: api-2.example.com&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-wvjl67&quot;&gt;└── Origin 3: api-3.example.com&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-wvjl67&quot;&gt;    ↓&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-wvjl67&quot;&gt;Selected Upper Tier: [Optimal data center based on pool performance]&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;get-started&quot;&gt;Get started&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#get-started&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;To get started, enable &lt;a href=&quot;https://developers.stormtrust.net/cache/how-to/tiered-cache/&quot;&gt;Smart Tiered Cache&lt;/a&gt; on your zone and configure your &lt;a href=&quot;https://developers.stormtrust.net/load-balancing/&quot;&gt;Load Balancing Pool&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Wed, 08 Jan 2025 00:00:00 GMT</pubDate><product>Cache</product><category>Cache</category></item><item><title>Cache - Smart Tiered Cache automatically optimizes R2 caching</title><link>https://developers.stormtrust.net/changelog/post/2024-11-20-smart-tiered-cache-for-r2/</link><guid isPermaLink="true">https://developers.stormtrust.net/changelog/post/2024-11-20-smart-tiered-cache-for-r2/</guid><description>&lt;p&gt;You can now reduce latency and lower R2 egress costs automatically when using &lt;a href=&quot;https://developers.stormtrust.net/cache/how-to/tiered-cache/&quot;&gt;Smart Tiered Cache&lt;/a&gt; with &lt;a href=&quot;https://developers.stormtrust.net/r2/&quot;&gt;R2&lt;/a&gt;. Cloudflare intelligently selects a tiered data center close to your R2 bucket location, creating an efficient caching topology without additional configuration.&lt;/p&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;how-it-works&quot;&gt;How it works&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#how-it-works&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;When you enable &lt;a href=&quot;https://developers.stormtrust.net/cache/how-to/tiered-cache/&quot;&gt;Smart Tiered Cache&lt;/a&gt; for zones using &lt;a href=&quot;https://developers.stormtrust.net/r2/&quot;&gt;R2&lt;/a&gt; as an origin, Cloudflare automatically:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Identifies your R2 bucket location&lt;/strong&gt;: Determines the geographical region where your R2 bucket is stored.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Selects an optimal Upper Tier&lt;/strong&gt;: Chooses a data center close to your bucket as the common Upper Tier cache.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Routes requests efficiently&lt;/strong&gt;: All cache misses in edge locations route through this Upper Tier before reaching R2.&lt;/li&gt;
&lt;/ol&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;benefits&quot;&gt;Benefits&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#benefits&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Automatic optimization&lt;/strong&gt;: No manual configuration required.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Lower egress costs&lt;/strong&gt;: Fewer requests to R2 reduce egress charges.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Improved hit ratio&lt;/strong&gt;: Common Upper Tier increases cache efficiency.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reduced latency&lt;/strong&gt;: Upper Tier proximity to R2 minimizes fetch times.&lt;/li&gt;
&lt;/ul&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;get-started&quot;&gt;Get started&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#get-started&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;To get started, enable &lt;a href=&quot;https://developers.stormtrust.net/cache/how-to/tiered-cache/&quot;&gt;Smart Tiered Cache&lt;/a&gt; on your zone using R2 as an origin.&lt;/p&gt;</description><pubDate>Wed, 20 Nov 2024 00:00:00 GMT</pubDate><product>Cache</product><category>Cache</category></item><item><title>Cache - Stage and test cache configurations safely</title><link>https://developers.stormtrust.net/changelog/post/2024-11-07-cache-versioning/</link><guid isPermaLink="true">https://developers.stormtrust.net/changelog/post/2024-11-07-cache-versioning/</guid><description>&lt;p&gt;You can now stage and test cache configurations before deploying them to production. Versioned environments let you safely validate cache rules, purge operations, and configuration changes without affecting live traffic.&lt;/p&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;how-it-works&quot;&gt;How it works&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#how-it-works&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;With versioned environments, you can:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Create staging versions&lt;/strong&gt; of your cache configuration.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Test cache rules&lt;/strong&gt; in a non-production environment.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Purge staged content&lt;/strong&gt; independently from production.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Validate changes&lt;/strong&gt; before promoting to production.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This capability integrates with Cloudflare&apos;s broader &lt;a href=&quot;https://developers.stormtrust.net/version-management/&quot;&gt;versioning system&lt;/a&gt;, allowing you to manage cache configurations alongside other zone settings.&lt;/p&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;benefits&quot;&gt;Benefits&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#benefits&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Risk-free testing&lt;/strong&gt;: Validate configuration changes without impacting production.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Independent purging&lt;/strong&gt;: Clear staging cache without affecting live content.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Deployment confidence&lt;/strong&gt;: Catch issues before they reach end users.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Team collaboration&lt;/strong&gt;: Multiple team members can work on different versions.&lt;/li&gt;
&lt;/ul&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;get-started&quot;&gt;Get started&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#get-started&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;To get started, refer to the &lt;a href=&quot;https://developers.stormtrust.net/version-management/&quot;&gt;version management documentation&lt;/a&gt;.&lt;/p&gt;
&lt;aside role=&quot;note&quot; aria-label=&quot;Important limitation&quot; class=&quot;aside-card flex items-start gap-3 rounded-lg px-4 py-3 my-4&quot; style=&quot;--_c: var(--nb-info); --_t: var(--nb-info-muted);&quot; data-astro-cid-znle5jil&gt;&lt;span class=&quot;flex h-[1.375em] shrink-0 items-center&quot; aria-hidden=&quot;true&quot; data-astro-cid-znle5jil&gt;&lt;svg width=&quot;1em&quot; height=&quot;1em&quot; viewBox=&quot;0 0 256 256&quot; class=&quot;h-[1em] w-[1em]&quot; data-astro-cid-znle5jil=&quot;true&quot; data-icon=&quot;ph:info&quot;&gt;&lt;path fill=&quot;currentColor&quot; d=&quot;M128 24a104 104 0 1 0 104 104A104.11 104.11 0 0 0 128 24m0 192a88 88 0 1 1 88-88a88.1 88.1 0 0 1-88 88m16-40a8 8 0 0 1-8 8a16 16 0 0 1-16-16v-40a8 8 0 0 1 0-16a16 16 0 0 1 16 16v40a8 8 0 0 1 8 8m-32-92a12 12 0 1 1 12 12a12 12 0 0 1-12-12&quot;/&gt;&lt;/svg&gt;&lt;/span&gt;&lt;div class=&quot;flex min-w-0 flex-1 flex-col gap-0.5&quot; data-astro-cid-znle5jil&gt;&lt;p class=&quot;m-0 text-base leading-snug font-semibold&quot; data-astro-cid-znle5jil&gt;Important limitation&lt;/p&gt;&lt;div class=&quot;aside-card-body text-sm leading-normal&quot; data-astro-cid-znle5jil&gt;&lt;p&gt;Cache Reserve is only supported for your production environment. Staged environments can use standard cache functionality, but Cache Reserve persistence is limited to production deployments.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/aside&gt;</description><pubDate>Thu, 07 Nov 2024 00:00:00 GMT</pubDate><product>Cache</product><category>Cache</category></item><item><title>Cache - Shard cache using custom cache key values</title><link>https://developers.stormtrust.net/changelog/post/2024-11-07-shard-cache-by-cache-key/</link><guid isPermaLink="true">https://developers.stormtrust.net/changelog/post/2024-11-07-shard-cache-by-cache-key/</guid><description>&lt;p&gt;Enterprise customers can now optimize cache hit ratios for content that varies by device, language, or referrer by &lt;strong&gt;sharding cache&lt;/strong&gt; using up to ten values from previously restricted headers with &lt;a href=&quot;https://developers.stormtrust.net/cache/how-to/cache-keys/&quot;&gt;custom cache keys&lt;/a&gt;.&lt;/p&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;how-it-works&quot;&gt;How it works&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#how-it-works&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;When configuring &lt;a href=&quot;https://developers.stormtrust.net/cache/how-to/cache-keys/&quot;&gt;custom cache keys&lt;/a&gt;, you can now include values from these headers to create distinct cache entries:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;accept*&lt;/code&gt; headers&lt;/strong&gt; (for example, &lt;code&gt;accept&lt;/code&gt;, &lt;code&gt;accept-encoding&lt;/code&gt;, &lt;code&gt;accept-language&lt;/code&gt;): Serve different cached versions based on content negotiation.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;referer&lt;/code&gt; header&lt;/strong&gt;: Cache content differently based on the referring page or site.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;user-agent&lt;/code&gt; header&lt;/strong&gt;: Maintain separate caches for different browsers, devices, or bots.&lt;/li&gt;
&lt;/ul&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;when-to-use-cache-sharding&quot;&gt;When to use cache sharding&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#when-to-use-cache-sharding&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Content varies significantly by device type (mobile vs desktop).&lt;/li&gt;
&lt;li&gt;Different language or encoding preferences require distinct responses.&lt;/li&gt;
&lt;li&gt;Referrer-specific content optimization is needed.&lt;/li&gt;
&lt;/ul&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;example-configuration&quot;&gt;Example configuration&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#example-configuration&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;figure class=&quot;nb-code-figure&quot; data-nb-lang=&quot;json&quot;&gt;&lt;pre class=&quot;astro-code astro-code-themes github-light github-dark nb-shiki-c6xiwz&quot; tabindex=&quot;0&quot; data-language=&quot;json&quot; data-nb-lang=&quot;json&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;  &quot;cache_key&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;    &quot;custom_key&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;      &quot;header&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;        &quot;include&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: [&lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt;&quot;accept-language&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;, &lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt;&quot;user-agent&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;],&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;        &quot;check_presence&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;: [&lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt;&quot;referer&quot;&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;      }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;    }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;  }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;
&lt;p&gt;This configuration creates separate cache entries based on the &lt;code&gt;accept-language&lt;/code&gt; and &lt;code&gt;user-agent&lt;/code&gt; headers, while also considering whether the &lt;code&gt;referer&lt;/code&gt; header is present.&lt;/p&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;get-started&quot;&gt;Get started&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#get-started&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;To get started, refer to the &lt;a href=&quot;https://developers.stormtrust.net/cache/how-to/cache-keys/&quot;&gt;custom cache keys documentation&lt;/a&gt;.&lt;/p&gt;
&lt;aside role=&quot;note&quot; aria-label=&quot;Note&quot; class=&quot;aside-card flex items-start gap-3 rounded-lg px-4 py-3 my-4&quot; style=&quot;--_c: var(--nb-info); --_t: var(--nb-info-muted);&quot; data-astro-cid-znle5jil&gt;&lt;span class=&quot;flex h-[1.375em] shrink-0 items-center&quot; aria-hidden=&quot;true&quot; data-astro-cid-znle5jil&gt;&lt;svg width=&quot;1em&quot; height=&quot;1em&quot; viewBox=&quot;0 0 256 256&quot; class=&quot;h-[1em] w-[1em]&quot; data-astro-cid-znle5jil=&quot;true&quot; data-icon=&quot;ph:info&quot;&gt;&lt;path fill=&quot;currentColor&quot; d=&quot;M128 24a104 104 0 1 0 104 104A104.11 104.11 0 0 0 128 24m0 192a88 88 0 1 1 88-88a88.1 88.1 0 0 1-88 88m16-40a8 8 0 0 1-8 8a16 16 0 0 1-16-16v-40a8 8 0 0 1 0-16a16 16 0 0 1 16 16v40a8 8 0 0 1 8 8m-32-92a12 12 0 1 1 12 12a12 12 0 0 1-12-12&quot;/&gt;&lt;/svg&gt;&lt;/span&gt;&lt;div class=&quot;flex min-w-0 flex-1 flex-col gap-0.5&quot; data-astro-cid-znle5jil&gt;&lt;p class=&quot;m-0 text-base leading-snug font-semibold&quot; data-astro-cid-znle5jil&gt;Note&lt;/p&gt;&lt;div class=&quot;aside-card-body text-sm leading-normal&quot; data-astro-cid-znle5jil&gt;&lt;p&gt;While cache sharding can improve hit ratios for specific use cases, overly sharding your cache can reduce overall cache efficiency and negatively impact performance. Carefully evaluate whether sharding benefits your specific traffic patterns.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/aside&gt;</description><pubDate>Thu, 07 Nov 2024 00:00:00 GMT</pubDate><product>Cache</product><category>Cache</category></item><item><title>Cache - One-click Cache Rules templates now available</title><link>https://developers.stormtrust.net/changelog/post/2024-09-05-cache-rules-templates/</link><guid isPermaLink="true">https://developers.stormtrust.net/changelog/post/2024-09-05-cache-rules-templates/</guid><description>&lt;p&gt;You can now create optimized cache rules instantly with &lt;strong&gt;one-click templates&lt;/strong&gt;, eliminating the complexity of manual rule configuration.&lt;/p&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;how-it-works&quot;&gt;How it works&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#how-it-works&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to &lt;strong&gt;Rules&lt;/strong&gt; &amp;gt; &lt;strong&gt;Templates&lt;/strong&gt; in your Cloudflare dashboard.&lt;/li&gt;
&lt;li&gt;Select a template for your use case.&lt;/li&gt;
&lt;li&gt;Click to apply the template with sensible defaults.&lt;/li&gt;
&lt;li&gt;Customize as needed for your specific requirements.&lt;/li&gt;
&lt;/ol&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;available-cache-templates&quot;&gt;Available cache templates&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#available-cache-templates&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Cache everything&lt;/strong&gt;: Adjust the cache level for all requests.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bypass cache for everything&lt;/strong&gt;: Bypass cache for all requests.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cache default file extensions&lt;/strong&gt;: Replicate Page Rules caching behavior by making only default extensions eligible for cache.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bypass cache on cookie&lt;/strong&gt;: Bypass cache for requests containing specific cookies.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Set edge cache time&lt;/strong&gt;: Cache responses with status code between 200 and 599 on the Cloudflare edge.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Set browser cache time&lt;/strong&gt;: Adjust how long a browser should cache a resource.&lt;/li&gt;
&lt;/ul&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;get-started&quot;&gt;Get started&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#get-started&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;To get started, go to &lt;a href=&quot;https://dash.cloudflare.com/?to=/:account/:zone/caching/cache-rules&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;strong&gt;Rules &amp;gt; Templates&lt;/strong&gt;&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt; in the dashboard. For more information, refer to the &lt;a href=&quot;https://developers.stormtrust.net/cache/how-to/cache-rules/&quot;&gt;Cache Rules documentation&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Thu, 05 Sep 2024 00:00:00 GMT</pubDate><product>Cache</product><category>Cache</category></item><item><title>Cache - Regionalized Generic Tiered Cache for higher hit ratios</title><link>https://developers.stormtrust.net/changelog/post/2024-07-19-regionalized-generic-tiered-cache/</link><guid isPermaLink="true">https://developers.stormtrust.net/changelog/post/2024-07-19-regionalized-generic-tiered-cache/</guid><description>&lt;p&gt;You can now achieve higher cache hit ratios with &lt;a href=&quot;https://developers.stormtrust.net/cache/how-to/tiered-cache/#generic-global-tiered-cache&quot;&gt;Generic Global Tiered Cache&lt;/a&gt;. Regional content hashing routes content consistently to the same upper-tier data centers, eliminating redundant caching and reducing origin load.&lt;/p&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;how-it-works&quot;&gt;How it works&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#how-it-works&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;Regional content hashing groups data centers by region and uses consistent hashing to route content to designated upper-tier caches:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Same content always routes to the same upper-tier data center within a region.&lt;/li&gt;
&lt;li&gt;Eliminates redundant copies across multiple upper-tier caches.&lt;/li&gt;
&lt;li&gt;Increases the likelihood of cache HITs for the same content.&lt;/li&gt;
&lt;/ul&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;example&quot;&gt;Example&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#example&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;A popular image requested from multiple edge locations in a region:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Before&lt;/strong&gt;: Cached at 3-4 different upper-tier data centers&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;After&lt;/strong&gt;: Cached at 1 designated upper-tier data center&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Result&lt;/strong&gt;: 3-4x fewer cache MISSes, reducing origin load and improving performance&lt;/li&gt;
&lt;/ul&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;get-started&quot;&gt;Get started&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#get-started&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;To get started, enable &lt;a href=&quot;https://developers.stormtrust.net/cache/how-to/tiered-cache/#generic-global-tiered-cache&quot;&gt;Generic Global Tiered Cache&lt;/a&gt; on your zone.&lt;/p&gt;</description><pubDate>Fri, 19 Jul 2024 00:00:00 GMT</pubDate><product>Cache</product><category>Cache</category></item><item><title>Cloudflare Web Analytics - Easily Exclude EU Visitors from RUM</title><link>https://developers.stormtrust.net/changelog/post/2025-02-25-rum-exclude-eu/</link><guid isPermaLink="true">https://developers.stormtrust.net/changelog/post/2025-02-25-rum-exclude-eu/</guid><description>&lt;p&gt;You can now easily enable Real User Monitoring (RUM) monitoring for your hostnames, while safely dropping requests from visitors in the European Union to comply with GDPR and CCPA.&lt;/p&gt;
&lt;img src=&quot;https://developers.stormtrust.net/cdn-cgi/image/onerror=redirect,width=1101,height=1061,format=webp/_astro/2025-02-26-rum-eu.X0ZtbXWA.png&quot; alt=&quot;RUM Enablement UI&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;1101&quot; height=&quot;1061&quot;&gt;
&lt;p&gt;Our Web Analytics product has always been centered on giving you insights into your users&apos; experience that you need to provide the best quality experience, without sacrificing user privacy in the process.&lt;/p&gt;
&lt;p&gt;To help with that aim, you can now selectively enable RUM monitoring for your hostname and exclude EU visitor data in a single click. If you opt for this option, we will drop all metrics collected by our EU data centers automatically.&lt;/p&gt;
&lt;p&gt;You can learn more about what metrics are reported by Web Analytics and how it is collected &lt;a href=&quot;https://developers.stormtrust.net/web-analytics/data-metrics/&quot;&gt;in the Web Analytics documentation&lt;/a&gt;. You can enable Web Analytics on any hostname by going to the &lt;a href=&quot;https://dash.cloudflare.com/?to=/:account/web-analytics/sites&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Web Analytics&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt; section of the dashboard, selecting &quot;Manage Site&quot; for the hostname you want to monitor, and choosing the appropriate enablement option.&lt;/p&gt;</description><pubDate>Mon, 26 Feb 2024 00:00:00 GMT</pubDate><product>Cloudflare Web Analytics</product><category>Cloudflare Web Analytics</category></item></channel></rss>