OCMLABS/MODULE-CLOUDFLARE · CHANGELOG
Cloudflare module changelog
All notable changes to OCMLabs Cloudflare are listed here. This module follows Semantic Versioning.
1.0.1 - 2026-10-28
Fixed
- Test Connection and the
token_validhealth check rejected account-owned API tokens (Manage Account > Account API Tokens, prefixcfat_) with “Invalid API Token”. Cloudflare’suser/tokens/verifyendpoint only accepts user-owned tokens; the module now verifies ataccounts/{id}/tokens/verifywhen an Account ID is configured, and otherwise falls back to it when the user endpoint returns 401. Every other call the module makes is zone-scoped and already worked with both kinds.
1.0.0 - 2026-10-22
First public release.
Added
- Edge caching of storefront HTML. Pages Magento’s full page cache treats as public get
Cache-Control: public, max-age=0, s-maxage=<ttl>,CDN-Cache-Controland aCache-Tagheader built from Magento’s cache tags. Everything else getsprivate, no-store. Off by default. - Session cookies are stripped from cacheable responses, as Magento’s Kernel and VCL do. Responses that set
X-Magento-Varyare never cached. - Purging by cache tag, URL, prefix or everything, triggered by Magento’s own cache invalidation. A tag purge sends exactly the tags Magento cleaned (never the store or website tags every page carries). Queued through the
ocmlabsCloudflarePurgeconsumer by default, with a per-account rate limiter that follows Cloudflare’s plan limits (one token per 100-item request) and honoursRetry-After; a rate limit part-way re-queues only what is left. - Purge log in System > Cloudflare > Purge Log.
- Recommended cache rules, previewed as a diff and applied without touching rules the merchant wrote. Custom cache keys on Enterprise zones; the vary bypass rule on other plans.
- Admin dashboard with Overview (zone, plan, development mode, quick purge), Analytics and Health tabs.
- 25 health checks in five groups (connection, zone settings, cache rules, Magento, live probes), run hourly from cron and on demand.
- Real visitor IP from
CF-Connecting-IP, honoured only when the peer is a Cloudflare IP. Cloudflare’s IP ranges are refreshed daily with a bundled fallback. - Cloudflare-aware Varnish VCL export, from the CLI or the Health tab. In Varnish mode the module leaves Magento’s headers and cookies to Varnish and keeps the edge marker and
Cache-Tagfor the VCL, which makes the edge decision and skips vary-context requests. - CLI:
ocmlabs:cloudflare:purge,ocmlabs:cloudflare:status,ocmlabs:cloudflare:dev-mode,ocmlabs:cloudflare:health,ocmlabs:cloudflare:rules:apply,ocmlabs:cloudflare:vcl:export. - Multi-website support: each website can map to its own zone and its own API token. Websites sharing a zone each own their own
[OCMLabs] ... (<website code>)cache rules. - The Enable Cloudflare Integration switch is a kill switch: off means no edge headers, no real IP handling and no module cron work.
Upgrade notes
- After installing or upgrading, run
bin/magento setup:di:compile(or cleargenerated/) and a fullbin/magento cache:clean. Generated proxies and the merged RequireJS config are stale otherwise. - In production mode, run
bin/magento setup:static-content:deploy.
Known limitations
- Behind Varnish the edge caches default-context pages only; Vary Handling
Cache keyis not supported in Varnish mode. - The exported Varnish VCL is not syntax-checked by the module. Run
varnishd -C -f <file>before loading it. - If Cloudflare renames a GraphQL Analytics field, the affected panel fails on its own; the rest of the Analytics tab still loads.
- In URL purge mode, tags that do not map to a product, category or CMS page URL (for example
cat_c_p_*) purge everything.
Requirements
- Magento Open Source or Adobe Commerce 2.4.4 or later
- PHP 8.1 or later
- A Cloudflare zone proxying the storefront
- Cron running, so the purge queue consumer runs