Dashboard › craft › Distillation
def9e9dd-acc8-4be6-afa7-477f585ef177["d5db315dfd92056b97818698511e02af","e6d28bee93081022d23b31a9d1f0fd3d","10e8c11085e1af4bb5aeb34c6a73bde2","b6dcdc8400734077792202e92a549003","87c74427d8fb12e74fe3baea8b4b5207","6b908bde8e2f458ae5e404a999daa92b","b46987a572d34235db228eed88db563c","ad998af1cda202c0e903e03efceda30e","4e9c1fe0fa0af6d24b3f999b81df2fe5","77c7c7c2b8393b451c11972d4ef0d326","333d80946345a872926ff81567c5e987","4ac64f0846669e886f8d40a30de9f504","1adcea7f2aaf38b15e087cc9a0c5a6ea","b12979667fa242b26224ffeeec1db78f","45f36d34ac52967b390abd07cc6f9c52","fe22b5ff0dc8bf7b79f0e2ce91e52ad9","5682fe45c3659356322200ad51d1092b","396fc17fde38bc4be57230b5097199f2","18a4dda42fffee41fdf0e3fafdce3ac7","cad12e60b659df28a89efb182184cea4","2138be4bec2c225a9a4d0aff6e6ca33d","b63fed12cefae49b55086514d5005e3b","4de2105eb0e1c50da58d6050dbe1ba91","c573a35458d9a7ff618c91e05d1ebe40","1f2186b8ce74b6591fdbeeabfe595e5b","a684b11496d7f5f31551bac706dfc23e","ae3ba1c49688efdf3b73cc3d588c44b2","d98d2d3918132c5cdaf14e115d7fa292","dfda1976f93ceaff7abcd6080488f082","8e3bc35e2e54ade5a7d87421d4c3994b","4d72f94cf1de34b01427080dabbca0cf","2ba40560a1ed17e5fe5de807f8cb7755","daec77809fd8ec0b8e3b871468f39036","51cb36235e9abae92e5ea11cbbc1a082","4cfd050e3c511fbcda4be451a3a23732","3413c3655536c5c1eae8ffddd34c18d0"]
worker not pages, because Cloudflare is retiring Pages.deployType to worker.targetSecrets = ['CLOUDFLARE_API_TOKEN', 'CLOUDFLARE_ACCOUNT_ID']; WRANGLER_CONFIG = {name: 'wrangler', envVar: 'WRANGLER_BIN'}; DEFAULT_DEPLOY_TYPE = 'pages'; DEFAULT_PRODUCTION_BRANCH = 'main'; DEFAULT_DEPLOY_ARCHIVE_REGEX = /^(?:.+-)?cloudflare\.zip$/; class CloudflareTarget with getCloudflareConfig(), getTargetSecrets(), getWranglerArgs(), publish().productionBranch/projectName/workingDir are rejected if they match /^\$\{.*\}$/ "so a config string can never be expanded into a secret."productionBranch field (CloudflareTargetConfig, ~line 78-81) states it is passed to wrangler pages deploy --branch "so a release publish always targets the production environment," and is the Cloudflare environment selector, not craft's git release branch.publish() (~line 271-274) states a Cloudflare deploy is a remote, irreversible operation with no local isolation and "must NEVER run in dry-run mode -- including worktree mode," guarded explicitly via isDryRun() check before spawnProcess.fix/cloudflare-target-review, combining review feedback + research, 4 parts: (1) Default deployType: worker (was pages), set DEFAULT_DEPLOY_TYPE = 'worker' — CF retiring Pages, Workers Static Assets is go-forward path. (2) CLOUDFLARE_ACCOUNT_ID becomes optional identifier, not secret — remove from targetSecrets (only CLOUDFLARE_API_TOKEN remains required/secret); read from env only if set, pass through to wrangler env when present, else let wrangler auto-discover. (3) productionBranch auto-inferred from Pages API — token scope answer: no extra scope needed, GET /accounts/{id}/pages/projects/{name} covered by same Pages:Edit scope deploy already requires (wrangler itself makes this GET internally); if productionBranch unconfigured, call that GET, read result.production_branch, pass as --branch; if configured, config value is explicit override; caveat — auto-infer