Skip to content

Harden Vercel migration releases - #158

Draft
bporterfield wants to merge 1 commit into
mainfrom
codex/vercel-deploy-hardening
Draft

bporterfield wants to merge 1 commit into
mainfrom
codex/vercel-deploy-hardening

Conversation

@bporterfield

Copy link
Copy Markdown
Collaborator

Summary

  • compile the application before a Vercel build may mutate its database
  • migrate Production builds by default while keeping Preview/custom builds opt-in
  • disable the known-broken boot migration path unconditionally on Vercel
  • stage manual Production deployments, deep-health check them, and promote only on success

Why

The existing vercel-build ran migrations before compilation. A broken application build
could therefore advance a shared schema even though no new application was publishable.
Preview builds also had no platform-aware default, and the manual deploy command assigned
the Production alias before checking health.

This PR is the Vercel release solution only. Hosted Fly tenant rollout is handled
independently.

The schema still must follow expand/contract: the migration completes before Vercel moves
the Production alias, so the currently live deployment must tolerate the expanded schema
during that bounded window.

Verification

  • full public unit suite: 133 passing
  • npm run lint
  • bash -n scripts/deploy.sh
  • git diff --check

Rollout verification still required

No real Vercel deployment was created from this branch. Before marking ready, exercise a
Production staging deployment against a disposable or staging database and verify build
→ migrate → staged health → promote.

Build before schema mutation, keep Preview databases untouched by default, and stage Production deployments behind a deep-health check before promotion.

Co-Authored-By: Codex <noreply@openai.com>

Signed-off-by: Ben Porterfield <benporterfield@gmail.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant