Skip to content

Add app connection schema and deployment selection rules - #7647

Draft
Flo4604 wants to merge 10 commits into
mainfrom
private-network/schema
Draft

Flo4604 wants to merge 10 commits into
mainfrom
private-network/schema

Conversation

@Flo4604

@Flo4604 Flo4604 commented Sep 30, 2026 •

Copy link
Copy Markdown
Member

Problem:

App connections need explicit caller and target ownership, stable names, and rules for selecting a deployment.

Solution:

Add the database foundation for app connections. Keep target selection within project, environment, branch, and fork boundaries. Record whether a deployment has reached ready and support connection cleanup.

Impact:

This layer does not activate private networking. Schema rollout and historical readiness backfill require separate operational checks. Later layers add lifecycle protection, discovery, network access, DNS, and the dashboard. The stack's naming layer changes the remaining internal identifiers to connections.

Testing:

Earlier combined-stack build and lint passed. Targeted verification included database selection and shared connection rules. An earlier local combined-stack run passed 397 targeted Go tests; migration tests passed 7 cases on disposable MySQL. Final combined-stack verification passed: GOMAXPROCS=4 GOFLAGS=-p=2 mise run test --concurrency 2 completed 318 suites with 25,790 passed, 0 failed, and 7,875 ignored tests (195 suites cached). mise run build passed; lint reported 0 issues. No production migration was run.

Flo4604 and others added 5 commits September 29, 2026 14:43
Store app bindings by source app and environment. Select live production,
matching previews, or pinned deployments without crossing tenant scope.
Keep first-ready history so failed starts cannot become discovery targets.

Amp-Thread-ID: https://ampcode.com/threads/T-01a0867e-f00a-7718-961d-5d9cf2250eaf
Co-authored-by: Amp <amp@ampcode.com>
Read bindings and replicas in stable keyset pages. Keep filters before the
page limit so an excluded workspace cannot truncate the snapshot. Reserve
the app slug for replica discovery and index enrollment and deployment pins.

Amp-Thread-ID: https://ampcode.com/threads/T-01a0867e-f00a-7718-961d-5d9cf2250eaf
Co-authored-by: Amp <amp@ampcode.com>
@vercel

vercel Bot commented Sep 30, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
dashboard Ready Ready Preview Oct 1, 2026 11:23pm UTC
design Ready Ready Preview Oct 1, 2026 11:23pm UTC

Request Review

@Flo4604
Flo4604 added this pull request to stack #7655 September 30, 2026 08:28
@Flo4604 Flo4604 changed the title private network/schema Private networking 1/8: binding schema and target selection Sep 30, 2026
@Flo4604 Flo4604 changed the title Private networking 1/8: binding schema and target selection Add app binding schema and deployment selection rules Sep 30, 2026
Flo4604 and others added 4 commits September 30, 2026 20:23
The conditional status update used by Deploy left first_ready_at NULL.
Preview binding discovery requires that timestamp, so successful Git
previews were excluded from DNS. Preserve the first timestamp and the
existing guard against cancellation and compensation races.

Amp-Thread-ID: https://ampcode.com/threads/T-01a0867e-f00a-7718-961d-5d9cf2250eaf
Co-authored-by: Amp <amp@ampcode.com>
Use successful finalizing steps as durable proof for historical deployments and current ready status as a fallback. Preserve existing markers and document the two-pass rollout before readers are enabled.

Amp-Thread-ID: https://ampcode.com/threads/T-01a0867e-f00a-7718-961d-5d9cf2250eaf
Co-authored-by: Amp <amp@ampcode.com>
The pinned mysql2 prepared-statement path rejects the LIMIT parameter
on MySQL 9.4. Keep parameter escaping through query and verify the real
batched backfill and idempotent rerun against disposable MySQL data.

Co-authored-by: Amp <amp@ampcode.com>
Amp-Thread-ID: https://ampcode.com/threads/T-01a0867e-f00a-7718-961d-5d9cf2250eaf
A completed finalizing step can race with a stop and never write ready.
Only backfill rows still ready. Report ambiguous history and fail the
migration command so readers remain gated on an operator review.

Exercise bounded updates, reruns, and both CLI exit paths on MySQL.

Amp-Thread-ID: https://ampcode.com/threads/T-01a0867e-f00a-7718-961d-5d9cf2250eaf
Co-authored-by: Amp <amp@ampcode.com>
@Flo4604 Flo4604 changed the title Add app binding schema and deployment selection rules Add app connection schema and deployment selection rules Oct 1, 2026
@mintlify

mintlify Bot commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated
engineering 🟢 Ready View Preview Oct 1, 2026, 11:16 PM

💡 Tip: Enable Automations to automatically generate PRs for you.

This branch was successfully deployed

3 active deployments
Preview – design — 349af9bd Deployed Oct 1, 2026 by vercel[bot]
Preview – dashboard — 349af9bd Deployed Oct 1, 2026 by vercel[bot]
staging - docs/engineering — 349af9bd Deployed Oct 1, 2026 by mintlify[bot]
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