The binding loss problem
Wrangler treats deploy config as source of truth. If D1 or R2 bindings exist only in the Cloudflare dashboard and not in deploy config, a later deploy can remove them. OmniDock avoids placeholder IDs and does not commit private binding values to the public template.
Use the binding-preserving deploy command
npm run build
node tools/deploy-preserving-bindings.mjs
Do not use bare deploy for normal Git updates: avoid
npx wrangler deploy unless you know the generated config includes every D1 and R2 binding you need.Upgrade checklist
- Pull upstream changes into your fork.
- Confirm
OMNIDOCK_D1_DATABASE_IDandOMNIDOCK_R2_BUCKET_NAMEare still set in Cloudflare build configuration. - Confirm extra buckets remain listed in
OMNIDOCK_EXTRA_R2_BUCKETS. - Deploy with the binding-preserving command.
- Open the setup/check screen and confirm D1, R2, Email, secrets, and primary domain are still green.