Beta 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.

  • `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 …

  • Admin UI punch list — five silent-failure modes fixed

    15 May 2026 · Joe Drumgoole

    Summary: Admin UI punch list — five silent-failure modes fixed (v0.5.1b14).

    The May 2026 end-to-end review of the secantus-admin web UI catalogued five P0s — bugs that didn't crash anything but presented wrong information to the user. v0.5.1b14 fixes all five. None of them require any database-level change …

  • Zero actionable failures — every driver gauge classified, every gap explained

    15 May 2026 · Joe Drumgoole

    Summary: Zero actionable failures — every driver gauge classified, every gap explained (v0.5.1b13).

    Over the past few releases the cross-driver gauge pass rate has been climbing — 99.5% at v0.5.1b4, 99.9% by last week's refresh. The last 0.1% was a handful of failures that either …

  • Cross-driver conformance summary — 99.5% across 7,186 tests on one page

    12 May 2026 · Joe Drumgoole

    Summary: Cross-driver conformance summary — 99.5% across 7,186 tests on one page (v0.5.1b4).

    Until this release, comparing SecantusDB's conformance across the five driver gauges (pymongo / mongo-java-driver / mongo-go-driver / mongo-node-driver / mongo-ruby-driver) required opening five different reports and squinting at five different per-category breakdowns whose denominators came from incompatible units …

  • Java gauge scope made honest — 18 of 112 driver-sync classes, five named follow-ups

    12 May 2026 · Joe Drumgoole

    Summary: Java gauge scope made honest — 18 of 112 driver-sync classes, five named follow-ups (v0.5.1b1).

    The mongo-java-driver validation report has been showing a flat 100% pass rate, which is true on what it ran — but what it ran was 15 of the 112 test classes in driver-sync/src …

  • Ruby gauge climbs to 99%, completing the cross-driver 99–100% band

    12 May 2026 · Joe Drumgoole

    Summary: Ruby gauge climbs to 99%, completing the cross-driver 99–100% band (v0.5.0b18).

    The mongo-ruby-driver conformance gauge moved from 94.6% to 99.0% across this release. Four discrete fixes did the work, each driven by a specific test that previously failed:

    • writeConcernError for unsatisfiable w — single-node secantus …
  • Java gauge hangs squashed; `let` user-vars threaded through the query path

    10 May 2026 · Joe Drumgoole

    Summary: Java gauge hangs squashed; let user-vars threaded through the query path (v0.5.0b3).

    The Java integration gauge used to sit at the wall-clock budget waiting for a single tailable-getMore or SDAM-retry-loop test to give up. With v0.5.0b3, every gradle test invocation now gets a per-test 15s …

  • Driver gauges widened — 868 integration tests now exercise the wire path

    10 May 2026 · Joe Drumgoole

    Summary: Three driver gauges (Node, Ruby, Java) widened from curated single-file scopes to broader integration suites. 868 tests now exercise SecantusDB's wire path end-to-end (up from 213), surfacing real divergences from mongod for follow-up.

    The driver gauges shipped in v0.5.0b1 were intentionally narrow — one file per driver, just …