[{"data":1,"prerenderedAt":230},["ShallowReactive",2],{"docs:navigation":3,"docs:page:\u002Fdocs\u002Fdeployment\u002Fsupport":115},[4],{"title":5,"path":6,"stem":7,"children":8,"icon":10},"Introduction","\u002Fdocs","docs\u002F1.index",[9,11,16,21,38,95,110],{"title":5,"path":6,"stem":7,"icon":10},"i-lucide-house",{"title":12,"path":13,"stem":14,"icon":15},"Quickstart","\u002Fdocs\u002Fquickstart","docs\u002F2.quickstart","i-lucide-rocket",{"title":17,"path":18,"stem":19,"icon":20},"Essentials","\u002Fdocs\u002Fconfiguration","docs\u002F3.configuration","i-lucide-book-open",{"title":22,"path":23,"stem":24,"children":25,"icon":27},"Authentication","\u002Fdocs\u002Fauthentication","docs\u002F4.authentication\u002Findex",[26,28,33],{"title":22,"path":23,"stem":24,"icon":27},"i-lucide-shield-check",{"title":29,"path":30,"stem":31,"icon":32},"Protect User Data","\u002Fdocs\u002Fauthentication\u002Fuser-data","docs\u002F4.authentication\u002F1.user-data","i-lucide-user-lock",{"title":34,"path":35,"stem":36,"icon":37},"Two-Factor Verification","\u002Fdocs\u002Fauthentication\u002Ftwo-factor","docs\u002F4.authentication\u002F2.two-factor","i-lucide-key-round",{"title":39,"path":40,"stem":41,"children":42,"icon":44},"Deployment","\u002Fdocs\u002Fdeployment","docs\u002F5.deployment\u002Findex",[43,45,50,55,60,65,70,75,80,85,90],{"title":39,"path":40,"stem":41,"icon":44},"i-lucide-cloud-upload",{"title":46,"path":47,"stem":48,"icon":49},"Deploy to Cloudflare","\u002Fdocs\u002Fdeployment\u002Fcloudflare","docs\u002F5.deployment\u002F1.cloudflare","i-simple-icons-cloudflare",{"title":51,"path":52,"stem":53,"icon":54},"Platform Support","\u002Fdocs\u002Fdeployment\u002Fsupport","docs\u002F5.deployment\u002F10.support","i-lucide-list-checks",{"title":56,"path":57,"stem":58,"icon":59},"Deploy to Vercel","\u002Fdocs\u002Fdeployment\u002Fvercel","docs\u002F5.deployment\u002F2.vercel","i-simple-icons-vercel",{"title":61,"path":62,"stem":63,"icon":64},"Deploy to Azure","\u002Fdocs\u002Fdeployment\u002Fazure","docs\u002F5.deployment\u002F3.azure","i-simple-icons-microsoftazure",{"title":66,"path":67,"stem":68,"icon":69},"Switch Hosts","\u002Fdocs\u002Fdeployment\u002Fswitch-hosts","docs\u002F5.deployment\u002F4.switch-hosts","i-lucide-arrow-right-left",{"title":71,"path":72,"stem":73,"icon":74},"Database and File Storage","\u002Fdocs\u002Fdeployment\u002Fdata-services","docs\u002F5.deployment\u002F5.data-services","i-lucide-database",{"title":76,"path":77,"stem":78,"icon":79},"Domains and Secrets","\u002Fdocs\u002Fdeployment\u002Fsettings","docs\u002F5.deployment\u002F6.settings","i-lucide-settings",{"title":81,"path":82,"stem":83,"icon":84},"Troubleshoot Deployment","\u002Fdocs\u002Fdeployment\u002Ftroubleshooting","docs\u002F5.deployment\u002F7.troubleshooting","i-lucide-wrench",{"title":86,"path":87,"stem":88,"icon":89},"Deploy Agents","\u002Fdocs\u002Fdeployment\u002Fagents","docs\u002F5.deployment\u002F8.agents","i-lucide-bot",{"title":91,"path":92,"stem":93,"icon":94},"Deploy Automations","\u002Fdocs\u002Fdeployment\u002Fautomations","docs\u002F5.deployment\u002F9.automations","i-lucide-workflow",{"title":96,"path":97,"stem":98,"children":99,"icon":101},"Connect Accounts","\u002Fdocs\u002Fconnect","docs\u002F6.connect\u002Findex",[100,102,106],{"title":96,"path":97,"stem":98,"icon":101},"i-lucide-plug",{"title":103,"path":104,"stem":105,"icon":37},"Connection Credentials","\u002Fdocs\u002Fconnect\u002Fcredentials","docs\u002F6.connect\u002F1.credentials",{"title":107,"path":108,"stem":109,"icon":84},"Connect MCP Servers","\u002Fdocs\u002Fconnect\u002Fmcp","docs\u002F6.connect\u002F2.mcp",{"title":111,"path":112,"stem":113,"icon":114},"Project Reference","\u002Fdocs\u002Freference","docs\u002F7.reference","i-lucide-terminal",{"page":116,"surround":225},{"id":117,"title":51,"body":118,"description":218,"extension":219,"links":220,"meta":221,"navigation":222,"path":52,"seo":223,"stem":53,"__hash__":224},"docs\u002Fdocs\u002F5.deployment\u002F10.support.md",{"type":119,"value":120,"toc":210},"minimark",[121,134,139,142,153,157,165,168,171,177,180,197,200,204,207],[122,123,124,125,129,130,133],"p",{},"CloudConfig shares its application API across Cloudflare, Vercel, and Azure.\nSome features use different native infrastructure, and a successful app build\ndoes not prove every vendor account, permission, or workload will work in\nproduction. Use ",[126,127,128],"code",{},"cloudconfig doctor"," and ",[126,131,132],{},"cloudconfig deploy --dry-run"," to check\nthe declared project before deployment.",[135,136,138],"h2",{"id":137},"shared-application-features","Shared Application Features",[122,140,141],{},"Models, validation, access rules, REST routes, the typed client, server hooks,\nOpenAPI, and the MCP API use the same core on each host. Nuxt selects bindings\nper request. Standalone and Next projects use their generated mounts and the\nconfigured production database adapter.",[122,143,144,145,148,149,152],{},"Sign-in and Connect use the configured application database and server secrets.\nOAuth callbacks, encrypted account credentials, API-key connections, and hosted\nMCP connections share the same runtime. Provider credentials, redirect URLs,\nvendor consent, quotas, and approvals still need configuration. Email\nverification and OTP require a reachable email service; passkeys require the\ncorrect public origin. Connect integration webhooks can hand off to durable jobs\nand run scheduled maintenance on all three clouds when ",[126,146,147],{},"deploy.automations"," is\ndeclared. See ",[150,151,91],"a",{"href":92},".",[135,154,156],{"id":155},"native-durable-features","Native Durable Features",[122,158,159,160,164],{},"The automatic ",[161,162,163],"strong",{},"Nuxt"," path deploys agents and automations through Cloudflare\nAgents and Durable Object alarms, Vercel Workflow and queue triggers, or a\nseparate Azure Durable Functions app. Each includes persisted checkpoints,\nscheduled continuation, and scoped execution. Azure activities and Vercel step\nworkers bind both platform ports for callbacks between agents and jobs.",[122,166,167],{},"Production does not fall back to process memory. Development uses a memory\nadapter whose jobs and timers end when the dev server stops. Other frameworks\nmust compose the native adapters explicitly; automatic portable automation\ndeployment currently rejects them. Raw Cloudflare Workflow classes, Queues,\nbindings, and managed Turnstile resources remain Cloudflare services. The\narchived automation editor is not an active cross-platform feature.",[135,169,71],{"id":170},"database-and-file-storage",[122,172,173,174,152],{},"Cloudflare defaults to D1. Vercel defaults to a Turso database that you create and\nprovide credentials for. Azure retains the D1 HTTPS default. Explicit D1, Turso,\nor libSQL selection is independent of the application host. Local development\nuses SQLite. All currently supported engines are SQLite-compatible;\nPostgreSQL, MySQL, Neon, Supabase, PlanetScale, Cosmos DB, and AWS-specific engine\nadapters are deferred. Changing hosts does not copy existing data or native run\nhistory. See ",[150,175,176],{"href":72},"Data Services",[122,178,179],{},"Application uploads use R2 bindings on Cloudflare or S3-compatible HTTPS storage\non any host. Azure's private execution-state Blob account is separate; a native\nAzure application Blob-storage adapter is not included.",[122,181,182,183,186,187,190,191,152],{},"Vercel limits Function request and response bodies to 4.5 MB. CloudConfig's\nmultipart upload and proxied download routes are subject to that limit even if\n",[126,184,185],{},"storage.maxSize"," is larger. Keep proxied files below 4 MB to leave multipart\noverhead, or implement direct object-storage transfer in the application. Built-in\npresigned browser uploads are not available yet. ",[126,188,189],{},"doctor"," warns when a Vercel\nstorage model declares a larger maximum. See ",[150,192,196],{"href":193,"rel":194},"https:\u002F\u002Fvercel.com\u002Fdocs\u002Ffunctions\u002Flimitations#request-body-size",[195],"nofollow","Vercel Function limits",[122,198,199],{},"Azure automatic custom-domain and certificate binding is not implemented;\nconfigure that separately. All hosts retain their platform execution, memory,\npayload, regional, and service-quota limits. A durable job can wait for a long\ntime, but each action must fit the underlying activity's limits.",[135,201,203],{"id":202},"what-repository-checks-establish","What Repository Checks Establish",[122,205,206],{},"Package E2E checks install packed npm artifacts into fresh consumers, exercise\nlocal API and sign-in behavior, and build Nuxt agents, automations, Connect, and\nscheduled jobs for all three targets. They inspect Cloudflare class exports and\nVercel's compiled workflows and queue triggers. Real local workerd tests cover\nCloudflare checkpoint continuation, event waits, schedule dispatch, and worker\nrestarts. Azure tests build native Function artifacts and check replay-safe\norchestration, private deployment settings, and invocation-bound cross-workload\ncalls. Integration contract tests verify signatures, queue-failure responses,\nidempotent delivery identities, token refresh, and encryption-key maintenance.",[122,208,209],{},"These checks do not deploy paid cloud resources or certify every live OAuth\nprovider. Before a production rollout, exercise deployment, a scheduled job, an\nagent approval, and one real integration with that environment's credentials.\nThe repository checks alone do not establish “100% support” for every feature\ncombination or third-party account.",{"title":211,"searchDepth":212,"depth":212,"links":213},"",2,[214,215,216,217],{"id":137,"depth":212,"text":138},{"id":155,"depth":212,"text":156},{"id":170,"depth":212,"text":71},{"id":202,"depth":212,"text":203},"Understand shared features, native services, verification, and remaining deployment limits.","md",null,{},{"icon":54},{"title":51,"description":218},"XlSldNaG_PFU0OHzArnFSxWK-rF-2wmqwa-IbgKRDZg",[226,228],{"title":46,"path":47,"stem":48,"description":227,"icon":49},"Build and publish a Worker with your database, migrations, and secrets.",{"title":56,"path":57,"stem":58,"description":229,"icon":59},"Publish your application as production Vercel Functions.",1792122403883]