Skip to content
AbloAblo
Esc
navigateopen⌘Jpreview
On this page

v0.7.0

Minor Changes

  • Structured error contract, schema/migration engine, and a full ablo CLI.

    • Structured error contract across HTTP + WS planes. A closed, canonical error-code registry is now the code tier of a Stripe-style error model. A single HTTP egress funnel converts every throw to a canonical { type, code, message, doc_url, request_id, ...details } envelope; the WS plane narrows mutation/claim error codes to the same union.
    • Versioned contract + drift guard. ERROR_CONTRACT_VERSION (date-based) ships in errors.json and on the Ablo-Version response header, so consumers detect contract changes without diffing docs. Generated errors.mdx / errors.json plus a CI drift guard keep the docs, OpenAPI spec, and SDK from silently diverging from the registry.
    • Always-on request correlation. Every response carries a req_… request id (honoring an inbound x-request-id), stamped into the envelope’s request_id.
    • OpenAPI parity. The stale { error, reason } schema is replaced by the canonical envelope plus a generated ErrorCode enum.

    CLI + schema:

    • Schema diff + migration planning engine (generateProvisionPlan / generateMigrationPlan in @abloatai/ablo/schema) — pure diff, classify, apply, and constant-value backfill for required-field migrations.
    • ablo generate — emit TypeScript types from the pushed schema.
    • Full ablo CLI suite, Stripe-CLI-shaped: init, login / logout / status, mode [test|live], dev (push schema to the test sandbox + watch), logs (tail your scope’s commit activity), and the data-source commands below. Authentication is the OAuth 2.0 device flow; login provisions and stores a test and a live key, and mode switches the active one.
    • Database-URL structure (bring-your-own-database). The CLI is split by where it writes:
      • ablo pull / ablo check / ablo migrate operate on your own DATABASE_URLpull introspects it to emit defineSchema(...) from existing tables (read-only, like prisma db pull), check verifies tables fit the schema with no DDL, and migrate applies DDL to DATABASE_URL.
      • ablo schema push / ablo dev target the hosted test/live sandbox; the server diffs, migrates, and activates the uploaded schema. dev never touches live data.

    BREAKING — removed the legacy React hooks useQuery / useOne / useMutate / useReader. Use useAblo() + ablo.<model>.* instead. The MutateActions, ReaderActions, and ReaderFindOptions types are still re-exported for callers that referenced them.

Was this page helpful?