Problem
Split from #7180 — this piece is buildable now, unlike the container/secret-injection pieces which are blocked on open isolation-tier and secret-injection-mechanism decisions. TenantProvisioningDriver.provisionDatabase/deprovisionDatabase (control-plane/src/tenant-provisioning-driver.ts) only has a fake in-memory implementation. The Postgres provider decision is made (Neon + Cloudflare Hyperdrive, decided on #7180) — nothing blocks implementing the real methods.
Area
control-plane/src/tenant-provisioning-driver.ts.
Proposal
Implement provisionDatabase/deprovisionDatabase for real: create/destroy a tenant-scoped Neon database (or branch, if Neon's branching model is used for per-tenant isolation — check Neon's current API for the right primitive), returning connection details routed through Hyperdrive. Keep the fake driver as-is for tests; this adds the real implementation alongside it, selected by whatever mechanism the driver factory already uses (check tenant-provisioning-driver.ts for the existing fake-vs-real selection pattern before inventing a new one).
Deliverables
Resources
Boundaries
Database provisioning only — does not touch container creation or secret injection (separate pieces, both still blocked on open decisions).
maintainer-only — provisions real infrastructure with real credentials, not a build task for a first-pass contributor.
Problem
Split from #7180 — this piece is buildable now, unlike the container/secret-injection pieces which are blocked on open isolation-tier and secret-injection-mechanism decisions.
TenantProvisioningDriver.provisionDatabase/deprovisionDatabase(control-plane/src/tenant-provisioning-driver.ts) only has a fake in-memory implementation. The Postgres provider decision is made (Neon + Cloudflare Hyperdrive, decided on #7180) — nothing blocks implementing the real methods.Area
control-plane/src/tenant-provisioning-driver.ts.Proposal
Implement
provisionDatabase/deprovisionDatabasefor real: create/destroy a tenant-scoped Neon database (or branch, if Neon's branching model is used for per-tenant isolation — check Neon's current API for the right primitive), returning connection details routed through Hyperdrive. Keep the fake driver as-is for tests; this adds the real implementation alongside it, selected by whatever mechanism the driver factory already uses (checktenant-provisioning-driver.tsfor the existing fake-vs-real selection pattern before inventing a new one).Deliverables
provisionDatabase/deprovisionDatabaseimplementations against Neon + Hyperdrive.Resources
control-plane/src/tenant-provisioning-driver.tsBoundaries
Database provisioning only — does not touch container creation or secret injection (separate pieces, both still blocked on open decisions).
maintainer-only — provisions real infrastructure with real credentials, not a build task for a first-pass contributor.