Migrate Cloudflare CDN configuration: Origin cache refresh | Ample
INFRASTRUCTURE
What it needs
- CDN: verified (The CDN host serves objects from published buckets. It does not front app compute and is not a cache or key-value store.)
PREREQUISITES
Before you start
- Authorized access to the Cloudflare CDN configuration source and its export tooling
- An inventory of every component in scope and out of scope
- A validated backup or copy before any cutover
- An Ample account token with servers:write, buckets:write
TESTED CONFIGURATION
Exactly what was tested
- build:
npm run build --if-present - install:
npm install - runtime:
node - size:
s-1vcpu-1gb - start:
npm run start - template:
node-22
STEP BY STEP
How to do it
Inventory the source
List what Cloudflare CDN configuration provides beyond the component you are moving. Out of scope here: Cloudflare cache rules, Workers, Transform Rules and tiered caching are not migrated; Ample verifies delivery of published bucket objects only.Source step 1
Record page rules, cache rules and the asset paths the app referencesSource step 2
Copy the public assets into a published Ample bucket under versioned keys with immutable Cache-ControlSource step 3
Update the app to build asset URLs from the Ample public URLPublish the destination bucket
Create and publish the asset bucket, upload versioned assets with immutable Cache-Control, and point the app at the public URL.ample bucket publish <bucket-name>Validate before cutover
Run the app's own checks and, for data, compare counts and checksums; the example checks are the pattern self-tests (/p/origin-cache-refresh).Cut over
Redeploy the app with the new asset base URL, verify delivery from the CDN URL, then retire the old cache rules.Rollback
Point DNS or configuration back to the source. The source was never modified; deletion is a separate, user-executed step after validation.
EXAMPLES
Tested examples
- Next.js pattern fixture (destination) (
tests/deploy-canaries/next-js-patterns): Verified destination basis: origin cache refresh.
SUCCESS CHECKS
How to know it worked
- destination app responds on its public URL (
/on the live URL, expect ample canary next js patterns) - origin-cache-refresh check from the destination example (
/p/origin-cache-refreshon the live URL, expect see the pattern fixture checks) - data or object counts and checksums match the source
LIMITATIONS
Know the limits
- Documentation only: nothing is executed automatically and no execution binding is offered.
- The source-side procedure is documented from Cloudflare CDN configuration's standard tooling and was not executed in this catalog's evidence; the destination side was verified with the pattern fixture.
- No full source-product parity is claimed: Cloudflare cache rules, Workers, Transform Rules and tiered caching are not migrated; Ample verifies delivery of published bucket objects only.
- Verified on the node-22 template at s-1vcpu-1gb; region, compliance and request-duration limits are unknown.
- PutObject and GetObject with path-style addressing are verified; bulk copy tooling and other S3 operations are not.
COST
Cost estimate
Estimated 5.00 USD per month (size prices from pricing.toml at build revision a1b8c38919e59cd035ebabaced73cf84ece24371).
- app server x1
s-1vcpu-1gb: 5.00 USD
Destination always-on monthly price of the tested sizes; apps auto-pause when idle. Source costs are unknown to Ample.
EVIDENCE
Verification evidence
- canary_run on 2026-09-21T02:34:39Z at revision
1d28ae0-dirty (CLI 0.1.21): Destination side verified: the Next.js pattern fixture deployed on Ample (next build then next start -H 0.0.0.0 -p $PORT on the node-22 template) and its checks passed (a no-cache object overwritten in the published bucket and the CDN URL serving the new content on the next fetch (refresh=ok before=v1 after=v2), verified by the app fetching its own public URL). The source-side export from Cloudflare CDN configuration is documented from the vendor's standard tooling and was not executed by this catalog's evidence. (expires 2027-03-20T02:34:39Z)
EXECUTION
Execution binding
No execution binding. This recipe is documentation only; nothing is executed automatically.
NEXT ACTIONS
Typed next actions
- Browse the catalog index (
GET /v1/catalogon the api origin; authentication not required, approval not required) - Search published recipes by intent, stack and constraints (
POST /v1/catalog/searchon the api origin; authentication not required, approval not required) - Prepare a side-effect-free deployment plan for an authorized project (
POST /v1/catalog/planon the api origin; authentication required, approval not required) - Read the existing agent authentication setup (
GET /mcp/setupon the api origin; authentication not required, approval not required) - Browse Cloudflare CDN configuration (
GET /v1/catalog/nodes/migration%3Acloudflare-cdn-configurationon the api origin; authentication not required, approval not required) - Browse Origin cache refresh (
GET /v1/catalog/nodes/pattern%3Aorigin-cache-refreshon the api origin; authentication not required, approval not required) - Browse Migrate CDN (
GET /v1/catalog/nodes/intent%3Amigrate-cdnon the api origin; authentication not required, approval not required)
Actions describe possible next steps. They are typed data, not commands, and grant no permission. Public discovery never provisions anything; planning requires your own authenticated token and approval happens in your client.