Skip to content

Changelog

Release notes, grouped by product. Latest:

ProductVersionWire protocol
BisonDB enginev1.2.0 (TLS and authentication)v2
Prairie (GUI)v1.2.1 (UI/UX and motion)v2

The engine and Prairie are in sync on wire protocol v2. Prairie requires a BisonDB 1.1.0-or-newer server. Downloads are on the home page.

BisonDB engine

The server (bisond), shell (bisonsh), CLI (bisonc), and the bisondb_core library.

v1.2.0 (2026-06-14)

Engine release · Security guide

TLS transport encryption. With --tls, the authentication handshake and all data travel inside an encrypted session, completing the security story: an encrypted, authenticated transport for single-node use.

  • TLS 1.2 (ECDHE + AES-GCM) via Mbed-TLS 3.6 (vendored through FetchContent, so the binaries stay dependency-free). All TLS lives behind a net::Stream abstraction; the framing/commands above it are unchanged. (TLS 1.3 is deferred behind a config wrinkle.)
  • Server: bisond --tls with --tls-cert/--tls-key, or --tls-self-signed (prints a SHA-256 fingerprint to pin). The TLS handshake runs in the worker thread under a timeout, so a stalled/malicious handshake can't block accepting.
  • Clients: bisonsh and bisonc gain --tls / --tls-ca / --tls-pin / --tls-insecure; verification is secure by default (OS trust store + hostname). The shell banner shows a transport indicator (verified / ENCRYPTED-but-UNVERIFIED / not-encrypted).
  • Tooling: bisonc tls gen-cert --out-dir <dir> writes cert.pem + a 0600 key.pem, which is the recommended setup over runtime self-signing.
  • Private keys are never logged; a plaintext↔TLS mismatch fails fast with a guiding message.

v1.1.0 (2026-06-14)

Engine release · Security guide

Authentication. The engine now requires every connection to log in before any data command. At this release there was still no TLS. Credentials travelled in clear text (TLS landed in v1.2.0).

  • Users, roles, and tokens. Three roles (read, readWrite, admin) gate every command through a central capability check. Users live in a hidden __auth.bsd system file (never listed or exported). Passwords are Argon2id-hashed (memory-hard, via Monocypher) with per-user salts; a successful login issues a 256-bit session token whose BLAKE2b-256 hash alone is kept in memory.
  • Wire protocol $\rightarrow$ v2. New authenticate, authenticateToken, logout, createUser, dropUser, changePassword, listUsers commands; new AuthRequired / AuthFailed (generic, no user enumeration) / Forbidden / TokenExpired error codes; serverStatus reports a security block. This is breaking for v1 clients (which never authenticate); they are rejected once any user exists.
  • First-run bootstrap. bisond --init-admin <user> (password from $BISONDB_ADMIN_PASSWORD), or a one-time bootstrap token printed to stderr, or the offline bisonc auth create-admin --dir <dbdir> --username <u>. No anonymous access once users exist; anti-lockout protects the last admin. A --no-auth dev escape hatch refuses non-loopback binds.
  • Clients. bisonsh adds --username/--token and auth login/logout/whoami/passwd/ create-user/list-users/bootstrap; bisonc remote commands accept --username/--token. Passwords are read from a no-echo prompt or the environment, never from the command line.

v1.0.0 (2026-06-13)

Engine release

First stable release.

  • BSON codec for 11 types, validated against the official corpus; Extended JSON v2 (relaxed + canonical) read/write; byte-exact mongodump round-trips.
  • Append-only collection store with torn-write recovery and compaction.
  • On-disk B+Tree indexes: 4 KB slotted pages, order-preserving key encoding, splits, lazy deletion, free-list reuse, clean-flag crash detection, fuzzed with 100k operations against an oracle.
  • Query engine: $eq/$ne/$gt/$gte/$lt/$lte/$in/$and/$or, dotted paths, index-aware planning with residual re-checks, explain.
  • bisond server: framed-BSON wire protocol (v1, reported in serverStatus), 16-command catalog, graceful shutdown, thread-pooled connections.
  • bisonsh interactive shell: relaxed JSON, multi-line input, caret diagnostics, history, colored output with gradient banner, scriptable --eval/-f modes.
  • bisonc converter: BSON ⇄ JSON files, embedded and remote database operations.
  • Windows x64 release binaries are fully static (no runtime DLLs).

Prairie

The Compass-style desktop GUI (Tauri + React). Tracks the engine's wire protocol, which is now on v2 (auth and TLS).

v1.2.1 (2026-06-14)

Release. Fixes a logout crash introduced by the route cross-fade (the workspace now reads its connection defensively during the exit animation) and adds a slide transition between the Documents / Indexes / Import-Export tabs.

v1.2.0 (2026-06-14)

Release. UI/UX elevation and motion, focusing on restraint over effects, using the same dark amber-on-neutral theme.

  • A design-token layer (surfaces, one accent, radii, elevation, type scale) on the Inter typeface; cohesive buttons, inputs, cards, modals, and toasts.
  • A small motion system (framer-motion): modal and toast transitions, route cross-fades, a capped document-list stagger, and skeleton loaders, all honoring prefers-reduced-motion.
  • A ⌘/Ctrl-K command palette, a polished connection-screen entrance, and friendlier auth/TLS error messages. No protocol change.

v1.1.0 (2026-06-14)

Release. Sync with BisonDB v1.1.0+ (wire protocol v2): authentication and TLS.

  • TLS with the server's verification modes (system trust, CA or self-signed file, SHA-256 pin, or insecure), a workspace lock indicator, and local databases that run the bundled sidecar over a pinned self-signed cert (encrypted and verified, no login).
  • Authentication: a login step and a first-run setup screen; session tokens stay in the Rust backend (never web storage) with transparent re-auth on expiry.
  • Admin Users panel (create, reset password, or drop with roles) and a role-aware UI (read-only users have write controls disabled).
  • Recent connections remember username and TLS prefs, never secrets.

v1.0.3 (2026-06-13)

Release. Relicensed from MIT to GPL-3.0-or-later to match the engine: full GPLv3 LICENSE, a GPL notice header on every source file, and the bundled engine's license shipped as LICENSE-bisond.txt beside bisond in the install directory.

v1.0.2 (2026-06-13)

Release. Fix: opening a local database no longer pops a visible bisond.exe console window on Windows, as the sidecar is spawned with CREATE_NO_WINDOW.

v1.0.1 (2026-06-13)

Release. Fix: local databases failed with "bisond binary not found" because the sidecar resolver only checked a working-directory-relative path. It now searches the Tauri resource directory and several executable-relative locations, and lists every path tried when the binary is genuinely absent.

v1.0.0 (2026-06-13)

Release. First stable release, matching BisonDB v1.0.0 (wire protocol v1).

  • Connection screen with remote servers, local databases via bundled bisond sidecar (ephemeral port, reaped on disconnect and window close), persisted recent connections.
  • Document browser: paginated JSON tree with type badges, CodeMirror filter bar with linting, explain plans with index hints, per-collection filter memory.
  • Mutations with guarded confirmations; $set-diff editing.
  • Index management; import .bson/.json/.jsonl with progress; export json/jsonl/bson/csv.
  • Wire-protocol version check with a blocking mismatch screen.

Last updated:

BisonDB and Prairie are GPLv3 · educational projects.