[{"data":1,"prerenderedAt":238},["ShallowReactive",2],{"navigation":3,"/blog/pro-tip-wrangler-local-dev-trick":130,"surround-pro-tip-wrangler-local-dev-trick":225},[4],{"title":5,"path":6,"stem":7,"children":8,"page":129},"Blog","/blog","blog",[9,13,17,21,25,29,33,37,41,45,49,53,57,61,65,69,73,77,81,85,89,93,97,101,105,109,113,117,121,125],{"title":10,"path":11,"stem":12},"How to Increase Free Tier Memory on AWS EC2","/blog/aws-ec2-ram","blog/aws-ec2-ram",{"title":14,"path":15,"stem":16},"Blooper: The Disappearing Cloudflare Variables","/blog/blooper-cloudflare-env-vars","blog/blooper-cloudflare-env-vars",{"title":18,"path":19,"stem":20},"Blooper: Hardcoded Content Links cause 404s","/blog/blooper-hardcoded-nuxt-content-links","blog/blooper-hardcoded-nuxt-content-links",{"title":22,"path":23,"stem":24},"Blooper: The Invisible SEO","/blog/blooper-nuxt-seo-env","blog/blooper-nuxt-seo-env",{"title":26,"path":27,"stem":28},"Blooper: The SSR Crash of Doom","/blog/blooper-ssr-feedback-form","blog/blooper-ssr-feedback-form",{"title":30,"path":31,"stem":32},"Blooper: The YouTube Crawl Budget Killer","/blog/blooper-video-crawl-budget","blog/blooper-video-crawl-budget",{"title":34,"path":35,"stem":36},"Blooper: PWA Redirecting SPA Routes","/blog/blooper-vite-pwa-ssr-redirects","blog/blooper-vite-pwa-ssr-redirects",{"title":38,"path":39,"stem":40},"Disk Management in Linux","/blog/disk-management-in-linux","blog/disk-management-in-linux",{"title":42,"path":43,"stem":44},"Docker Devtools Stage | Powerlevel, OhMyZSH, tmux, fuzzy finder, autocomplete etc","/blog/docker-devtools","blog/docker-devtools",{"title":46,"path":47,"stem":48},"Docker container | Resolving Permission Denied Woes: A Decade-Long Struggle Unraveled","/blog/docker-non-root-user-perms","blog/docker-non-root-user-perms",{"title":50,"path":51,"stem":52},"Git commands | underrated","/blog/git-commands-underrated","blog/git-commands-underrated",{"title":54,"path":55,"stem":56},"Journey: Taming Edge Caching and KV Storage","/blog/journey-github-streak-caching","blog/journey-github-streak-caching",{"title":58,"path":59,"stem":60},"Kubernetes Cluster Setup Guide","/blog/k8s-setup","blog/k8s-setup",{"title":62,"path":63,"stem":64},"Linux WiFi Drivers","/blog/linux-wifi-drivers","blog/linux-wifi-drivers",{"title":66,"path":67,"stem":68},"pfSense basic firewall setup","/blog/pfsense-basic-firewall-setup","blog/pfsense-basic-firewall-setup",{"title":70,"path":71,"stem":72},"pfSense Quickstart","/blog/pfsense-quickstart","blog/pfsense-quickstart",{"title":74,"path":75,"stem":76},"Postmortem: Cloudflare Worker Missing Dependency on Deploy","/blog/postmortem-cloudflare-worker-dependency-deploy","blog/postmortem-cloudflare-worker-dependency-deploy",{"title":78,"path":79,"stem":80},"Postmortem: Serverless HTTP Driver Transaction Failures","/blog/postmortem-neon-http-transactions","blog/postmortem-neon-http-transactions",{"title":82,"path":83,"stem":84},"Postmortem: Nuxt Content 404s on Staging Deployments","/blog/postmortem-nuxt-content-404-staging","blog/postmortem-nuxt-content-404-staging",{"title":86,"path":87,"stem":88},"Postmortem: 500 Internal Server Error on ISR Routes","/blog/postmortem-nuxt-content-payload-extraction","blog/postmortem-nuxt-content-payload-extraction",{"title":90,"path":91,"stem":92},"Post-Mortem: Intrusive Database Driver Refactoring","/blog/postmortem-proxy-re-architecting","blog/postmortem-proxy-re-architecting",{"title":94,"path":95,"stem":96},"Post-Mortem: Cloudflare Worker Connection Hang & Resilient DB Fallbacks","/blog/postmortem-worker-db-connection-hang","blog/postmortem-worker-db-connection-hang",{"title":98,"path":99,"stem":100},"Pro Tip: Sandboxing Cloudflare Workers for AI Agents","/blog/pro-tip-wrangler-local-dev-trick","blog/pro-tip-wrangler-local-dev-trick",{"title":102,"path":103,"stem":104},"Proxmox DNS Management","/blog/proxmox-dns","blog/proxmox-dns",{"title":106,"path":107,"stem":108},"Proxmox Recovery","/blog/proxmox-recovery","blog/proxmox-recovery",{"title":110,"path":111,"stem":112},"Proxmox WiFi Connection Story","/blog/proxmox-wifi","blog/proxmox-wifi",{"title":114,"path":115,"stem":116},"roadauth-rails api jwt cors","/blog/rodauth-jwt","blog/rodauth-jwt",{"title":118,"path":119,"stem":120},"SOCKS5 Proxy Quickstart","/blog/sock5-proxy","blog/sock5-proxy",{"title":122,"path":123,"stem":124},"tmux status bar toggle","/blog/tmux-status","blog/tmux-status",{"title":126,"path":127,"stem":128},"UFW - Cheatsheet","/blog/ufw-cheatsheet","blog/ufw-cheatsheet",false,{"id":131,"title":98,"authors":132,"badge":138,"body":140,"date":214,"description":215,"extension":216,"image":217,"imageComponent":218,"meta":219,"navigation":220,"path":99,"pinned":129,"seo":221,"seoImage":222,"stem":100,"__hash__":224},"posts/blog/pro-tip-wrangler-local-dev-trick.md",[133],{"name":134,"to":135,"avatar":136},"Rahul Dhole","/",{"src":137},"/profile.png",{"label":139},"Pro Tip",{"type":141,"value":142,"toc":210},"minimark",[143,147,150,186,189],[144,145,146],"p",{},"When giving AI agents access to your development environment, you want to ensure they can't accidentally deploy broken code or leak secrets to your production Cloudflare account.",[144,148,149],{},"Here is a simple trick to sandbox them:",[151,152,153,161,176],"ol",{},[154,155,156,160],"li",{},[157,158,159],"strong",{},"Clone your account:"," Create a completely separate, free-tier Cloudflare account specifically for your AI agent.",[154,162,163,166,167,171,172,175],{},[157,164,165],{},"Override the Account ID:"," Set a different ",[168,169,170],"code",{},"CLOUDFLARE_ACCOUNT_ID"," in your local environment variables (",[168,173,174],{},".env",").",[154,177,178,181,182,185],{},[157,179,180],{},"Login:"," Run ",[168,183,184],{},"npx wrangler login"," and authenticate with the sandboxed account.",[144,187,188],{},"This completely isolates the agent's actions from your production infrastructure.",[190,191,192],"blockquote",{},[144,193,194,198,199,201,202,205,206,209],{},[195,196,197],"span",{},"!WARNING","\nKeep in mind that local ",[168,200,174],{}," variables can override ",[168,203,204],{},"wrangler.toml"," variables. Always double check your generated ",[168,207,208],{},"worker-configuration.d.ts"," file to ensure the agent hasn't accidentally wiped out your production bindings when generating types.",{"title":211,"searchDepth":212,"depth":212,"links":213},"",2,[],"2026-06-29","How to safely sandbox your Cloudflare Workers environment when working with AI coding agents.","md",null,{"type":139},{},true,{"title":98,"description":215},{"src":223},"https://placehold.co/800x400/0f172a/3b82f6?text=Sandboxing+Cloudflare+Workers","hYe_33CL-bkf-UmsjPowyCfqn-s0RwRqen7MPe8_LCk",[226,232],{"title":94,"path":95,"stem":96,"description":227,"imageComponent":228,"seoImage":230,"children":-1},"Resolving Cloudflare Worker connection hangs caused by database connection pools and missing API fallbacks.",{"type":229},"Postmortem",{"src":231},"https://placehold.co/800x400/0f172a/3b82f6?text=Worker+Connection+Hang",{"title":102,"path":103,"stem":104,"description":233,"imageComponent":234,"seoImage":236,"children":-1},"Proxmox DNS Management - Dive into the details of proxmox dns management with this quick guide.",{"type":235},"Proxmox",{"src":237},"https://placehold.co/800x400/0f172a/3b82f6?text=Proxmox+DNS+Management",1784464468315]