Beta v0.5.1b24 — past initial proving, but the Python API surface may still shift before 1.0. WiredTiger on-disk format is stable, but there's no migration tool yet — don't put production data here.

Blog

Updates, design notes, and deep dives from the SecantusDB project.

  • mongo-rust-driver lands as the 6th conformance gauge — 24/24 at first check

    21 May 2026 · Joe Drumgoole

    Summary: mongo-rust-driver lands as the 6th conformance gauge — 24/24 at first check (v0.5.2b7).

    The Rust driver joins SecantusDB's driver-conformance lineup as the sixth gauge alongside pymongo, mongo-go-driver, mongo-node-driver, mongo-java-driver, and mongo-ruby-driver. The runner spawns SecantusDB on a fresh ephemeral port and runs cargo test --lib -p mongodb …

  • $rank for $setWindowFields, apiStrict distinct rejection, +80 pymongo tests

    21 May 2026 · Joe Drumgoole

    Summary: $rank for $setWindowFields, apiStrict distinct rejection, +80 pymongo tests (v0.5.2b5).

    Three slices land on top of last week's 0.5.2b1, each one closing a gap the previous release explicitly deferred. $setWindowFields gains the three rank functions — $rank (1-indexed with gaps after ties: [10, 20, 20, 30 …

  • Collation reaches every read path; `$unionWith` / `$redact` / `$setWindowFields` land

    20 May 2026 · Joe Drumgoole

    Summary: Collation reaches every read path; $unionWith / $redact / $setWindowFields land (v0.5.2b1).

    Eleven slices in one beta. The collation domain — the per-query collation argument that mongod's drivers carry on every CRUD call — now reaches every read path: single-field equality / range / $in (b25), compound bare-equality and prefix + trailing-operator (b27), and …

  • `secantusdb.toml` config file, native checkpoint restore, j:true durability knob

    19 May 2026 · Joe Drumgoole

    Summary: secantusdb.toml config file, native checkpoint restore, j:true durability knob (v0.5.1b20).

    Two production-shaping slices land together. A new secantusdb.toml configuration file exposes every CLI flag plus the WT and oplog knobs that were previously hard-coded — including cache_size (so you can size the engine for your …

  • Native TLS + mTLS + per-write `j:true` — production gaps closed

    19 May 2026 · Joe Drumgoole

    Summary: Native TLS + mTLS + per-write j:true — production gaps closed (v0.5.1b23).

    Three slices land together against the production-readiness gaps called out in the docs/production.md page.

    [tls] cert_file + [tls] key_file (in secantusdb.toml) or --tls-cert-file / --tls-key-file (CLI) makes the daemon wrap every accepted socket in TLS before …

  • Geo: legacy `$near` sibling form, 2d quadtree covering, java gauge

    19 May 2026 · Joe Drumgoole

    Summary: Geo: legacy $near sibling form, 2d quadtree covering, java gauge (v0.5.1b24).

    Three geo improvements that close the long-standing tail of the phase 1/2 geo work and lift the mongo-java-driver gauge into the geo surface for the first time.

    Legacy mongod 2d shape — {geo: {$near: [x, y …

  • Native WT-checkpoint backups, admin UI /oplog page, and change-stream fidelity wins

    18 May 2026 · Joe Drumgoole

    Summary: Native WT-checkpoint backups, admin UI /oplog page, and change-stream fidelity wins (v0.5.1b18).

    The natural follow-on to v0.5.1b17's local.oplog.rs synthetic collection lands as the admin UI /oplog page: a paged entry browser with a window selector (last 50 / 500 / 5000), op-checkbox filter (i …

  • `local.oplog.rs` queryable from pymongo, `$merge` pipeline form + `$fill` stage + `$$var.path` resolution

    17 May 2026 · Joe Drumgoole

    Summary: local.oplog.rs queryable from pymongo, $merge pipeline form + $fill stage + $$var.path resolution (v0.5.1b17).

    Real mongod exposes the oplog as a queryable collection at local.oplog.rs — pymongo clients can db.oplog.rs.find() against it the same way they would against any collection. Until this …

  • Sidebar grouping, auto-refreshing connections and cursors, Roles in the nav

    17 May 2026 · Joe Drumgoole

    Summary: Sidebar grouping, auto-refreshing connections and cursors, Roles in the nav (v0.5.1b16).

    The /connections and /cursors admin pages have always been live-data views — they read currentOp and render the connection / cursor list each time the page is requested — but they didn't refresh. The dashboard polls 1 Hz over …

  • One scaffold for every confirmation modal — escape, focus-trap, restored focus

    16 May 2026 · Joe Drumgoole

    Summary: One scaffold for every confirmation modal — escape, focus-trap, restored focus (v0.5.1b15).

    The secantus-admin UI has nine confirmation / edit modals: drop-database, drop-collection, drop-index, drop-user, change-password, manage-roles, edit-document, delete-document, kill-cursor. They were assembled at slightly different times and drifted in five different ways — different destructive-button copy ("Drop" vs "Drop …