crabster

Changelog

The repository holds a single copy of this document: both languages of this site point at the same text.

{% raw %} Format based on Keep a Changelog. Versioning follows SemVer: before 1.0, a minor bump may carry breaking changes, and every one of them is listed here.

The generator and the templates are versioned separately — see CONTRIBUTING.md. Changes are tagged [generator], [templates], [language], [examples] or [docs] accordingly, because a template change can break an existing generated project without the CLI moving at all.

[Unreleased]🔗

Added🔗

Changed🔗

[0.3.0] - 2026-09-17🔗

What a report turned up, and what it took to answer it. Somebody ran crabster new block, answered the three questions, and got twenty files and a server — while the README said a monolith comes with a front end and named three of them. Every entry below follows from that one attempt.

The templates move to 0.20.0, and it is the first time that number has moved without a core template changing: the three UI blueprints ship inside the binary now and gained a sign-in screen, so a project generated with ui react under 0.19.0 has something to receive and crabster upgrade is what gives it one.

Added🔗

Fixed🔗

Added🔗

[0.2.0] - 2026-09-16🔗

The generator becomes a lifecycle tool. The templates it ships are 0.19.0, the number a generated project records and the one a later crabster upgrade crosses — 0.1.0 shipped 0.16.1, so every project generated with it has three template versions to cross, and crabster upgrade is the thing that crosses them.

Every phase of the V2 scope is delivered but two. crabster upgrade carries a project across a templates version, merging what you edited with what the templates changed and never overwriting in silence; crabster apply turns a changed model into fresh migrations; crabster introspect writes a .cdl from a database that already exists; and crabster new asks for what it needs instead of being told in flags. A model can name several service blocks and generate a system — a gateway, service discovery, a database per service — and deploy it under Compose or Kubernetes. Records can be kept in MongoDB rather than in tables, searched full text through Meilisearch, guarded by roles the model declares, and read through a typed TypeScript or Rust client generated beside them. Tokens can come from an OAuth2/OIDC provider, and a browser can hold a session against one.

What is not here: cloud deployment beyond a conformant cluster (phase 17), and a blueprint maintained by somebody outside this repository (phase 18), which is waiting on people rather than on code.

Added🔗

Fixed🔗

[0.1.0] - 2026-09-10🔗

The first release. Everything under this heading is what it contains, and the templates it ships are 0.16.1 — the number a generated project records, and the one a later crabster upgrade crosses.

Every phase of the V1 roadmap is complete: a domain model written in CDL generates a Rust project that compiles and serves a working CRUD API — paged, ordered and filtered — on any of PostgreSQL, MySQL or SQLite, describes itself in OpenAPI, reports on itself through health probes and Prometheus metrics, carries accounts and JWT sessions when the model asks for them, ships a test suite that runs against the database it targets, builds into an image and brings its own CI — and crabster record adds a record to a project that already exists, without overwriting what was written there by hand. Ahead of Phase 4, three families of defect that belonged to none of those phases were closed: the generator was not installable, three column types lost data on MySQL, and a project deployed without APP_PROFILE came up listening on the loopback address.

Fixed🔗

Added🔗

Changed🔗

Fixed🔗

Security🔗

Notes🔗