{# ── S-143 · Step 1 (Connect) ───────────────────────────────────────────── Real connect surface: a small Alpine island POSTs to ``/api/connect`` with a DSN, and a native multipart form POSTs to ``/api/schema/load`` for file uploads. The success path stamps ``workspace.schema`` server-side, which unblocks the Step 1 → 2 gate (see ``WizardState.can_advance_from``). After either path returns 2xx, the small ``#wizard-connect-status`` slot refreshes via ``hx-get="/api/schema"`` so the user sees how many tables were loaded before clicking Next. The ``data-wizard="true"`` attribute on the root keeps the JS scoped — the same form pattern is reused on the Studio page (no clash). ── #} {% extends "wizard/_step_base.html" %} {% block content %}
Connect to a live database (Postgres / MySQL / SQLite / MSSQL) or upload a schema file (SQL DDL, DBML, Mermaid, PlantUML, Prisma, Django). One of the two paths must succeed before you can advance to Review.
{# ── Live DB connect ───────────────────────────────────────────────── #}Connected. Loading schema summary…