Hand-written mutating commands have no `--dry-run`, and `cf deploy --dry-run` does not check required secrets
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 45/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- typescript
- Domain
- cli, developer-experience
Research direction
Start by locating the implementations for the six listed hand-written commands and comparing their help and dry-run behavior with generated commands. Then inspect the cf deploy --dry-run path for how it handles bindings.secret() and the bindings table. Done means each listed mutating command supports --dry-run, and dry-run reports missing required secrets and fails where the real run would fail on local information.
Written by the indexing model from the issue text.
Description
cf version: 1.0.0-beta.5, macOS
1. Hand-written mutating commands have no --dry-run, unlike every generated command. None of these list it in --help:
cf d1 migrations applycf pages deploycf previews deploycf containers pushcf containers images deletecf tunnels run
Wrappers and agents that rely on "try --dry-run first" can't do that for exactly the commands that change production state (migrations, deploys, deletes).
2. cf deploy --dry-run doesn't check required secrets. For a new Worker whose config declares bindings.secret() and no secret is set, cf deploy --dry-run prints "Dry run complete" and exits 0. The dry-run bindings table also leaves the secret out. The real deploy then fails.
Expected: --dry-run on every mutating command, and a dry-run that fails wherever the real run would fail on local information.
Related: cloudflare/workers-sdk#16109, cloudflare/cf#63.
Found while evaluating cf for a dev workflow: https://github.com/joeblew999/cf-cli-test (FINDINGS.md, findings/).
- Dominant language
- TypeScript
- Stars
- 853
- Forks
- 42
- Avg merge
- 17h 57m
- Merged PRs (30d)
- 146
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from cloudflare/cf
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
cloudflare/cf#344 ·
Maintainers usually reply within 1 day
-
upstream
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
cloudflare/cf#262 ·
Maintainers usually reply within 1 day
-
`cf dev` rejects `--port` and `--host` for Vite projects, including the `cf init` templatePossibly taken @jamesopstad claimed this 6 days ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
cloudflare/cf#223 · 2 assignees ·
Maintainers usually reply within 1 day
-
upstream
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
cloudflare/cf#179 ·
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 58/100
cloudflare/cf#347 ·
Maintainers usually reply within 1 day
Similar issues
-
"Contains" page watch never matches when its text has a trailing spacePossibly taken @RaphaelFakhri claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 77/100
CopilotKit/openmuse#184 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 88/100
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
bootstrap-vue-next/bootstrap-vue-next#3357 ·
Maintainers usually reply within 1 day
-
[quality] tide.ts: six mutation survivors in the merge-queue gate, draft refusal, fork-403 workflow-file diagnosis and getPull's fork flag are unpinned by any testPossibly taken @hivecommons-hive claimed this today. Openagent/quality needs-kind stage/040-covered-by-pr testing
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
cncf/prow-github-actions#517 · 1 comment ·
Maintainers usually reply within 2 days
-
Unsampled pageload span is profiled when profileLifecycle is 'trace' (browser UI profiling)Possibly taken @Jxxunnn claimed this today. OpenBrowser Waiting for: Product Owner
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
getsentry/sentry-javascript#25497 · 1 comment ·
Maintainers usually reply within 1 day