Skip to content

Flower v0.2.0

Latest

Choose a tag to compare

@github-actions github-actions released this 01 Oct 01:11
· 1 commit to main since this release
v0.2.0
90e619a

Flower 0.2.0 adds continuous backups with point-in-time restores, and foreign keys that the server enforces.

Get started: Run Flower in five minutes downloads the server below and installs the SDK:

npm install @flower-js/sdk@0.2.0

New

  • Backups and point-in-time restores. Set FLOWER_BACKUP_URL to s3://BUCKET/PREFIX (AWS S3 or any S3-compatible store; FLOWER_BACKUP_S3_* sets the endpoint and credentials) or file:///PATH. The leader then ships every entry it applies, stamped with the time it was applied, and now and then writes a compressed base of the whole state (zstd). Retention keeps 30 days by default. flower backup restore --data DIR --id N --advertise HOST:PORT --at TIME (or --index N) rebuilds the state as of any moment in that window, offline, into the data directory of a new single-node cluster. flower backup list shows what each generation can restore, and GET /admin/backup shows what a node's backup is doing. Guide: Backups & restores.
  • Foreign keys. collection.references(target, on, { onDelete }) declares that each row holds the key of one of target's rows: in a field, in several fields that make up a tuple key, or in its own key. At the end of every mutation, the server checks that each row written refers only to rows that exist, and that no deleted row is still referred to. Otherwise the mutation fails with FOREIGN_KEY_VIOLATION. onDelete is restrict (the default), cascade or setNull. Reference: References.

Upgrading from 0.1.0

Upgrade every node of a cluster together: stop them all, replace the binary, then start them again. Foreign keys add a replicated command, so the compatibility contract's state machine version goes from 17 to 18, and 0.1.0 and 0.2.0 nodes refuse to talk to each other. Data directories written by 0.1.0 open as they are. They can't be downgraded afterwards.

Also

  • The handbook no longer calls Flower unreleased, and its backups page uses the release's ./flower.
  • The SDK is published to npm by the release workflow itself, through npm trusted publishing, with a provenance statement.

Downloads

Archive Runs on
flower-0.2.0-x86_64-unknown-linux-gnu.tar.gz Linux x86-64, glibc 2.35+
flower-0.2.0-aarch64-unknown-linux-gnu.tar.gz Linux Arm64, glibc 2.35+
flower-0.2.0-x86_64-apple-darwin.tar.gz macOS 15+, Intel
flower-0.2.0-aarch64-apple-darwin.tar.gz macOS 15+, Apple silicon

Each archive holds the standalone flower server, its MIT license and third-party notices. The .sha256 files verify the archives. macOS builds are not notarized. flower-js-sdk-0.2.0.tgz is the tested SDK package, as published to npm.

Full Changelog: v0.1.0...v0.2.0