Changelog
Release notes, grouped by product. Latest:
| Product | Version | Wire protocol |
|---|---|---|
| BisonDB engine | v1.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::Streamabstraction; the framing/commands above it are unchanged. (TLS 1.3 is deferred behind a config wrinkle.) - Server:
bisond --tlswith--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:
bisonshandbisoncgain--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>writescert.pem+ a0600key.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.bsdsystem 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,listUserscommands; newAuthRequired/AuthFailed(generic, no user enumeration) /Forbidden/TokenExpirederror codes;serverStatusreports asecurityblock. 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 offlinebisonc auth create-admin --dir <dbdir> --username <u>. No anonymous access once users exist; anti-lockout protects the last admin. A--no-authdev escape hatch refuses non-loopback binds. - Clients.
bisonshadds--username/--tokenandauth login/logout/whoami/passwd/ create-user/list-users/bootstrap;bisoncremote 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)
First stable release.
- BSON codec for 11 types, validated against the official corpus; Extended JSON v2 (relaxed + canonical) read/write; byte-exact
mongodumpround-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. bisondserver: framed-BSON wire protocol (v1, reported inserverStatus), 16-command catalog, graceful shutdown, thread-pooled connections.bisonshinteractive shell: relaxed JSON, multi-line input, caret diagnostics, history, colored output with gradient banner, scriptable--eval/-fmodes.bisoncconverter: 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/.jsonlwith progress; export json/jsonl/bson/csv. - Wire-protocol version check with a blocking mismatch screen.
