Start Pro Trial
27 Releases

Release History

Track all versions, updates, and improvements to VisuaLeaf.

v1.0.2091

Latest
July 30, 2026

VisuaLeaf v1.0.2091 Release Notes

Release Date: July 30, 2026


Headline: Faster Results, Schemas You Can Build For Real, One Connections List, and a Modern Look Throughout

This release is mostly about the app you use every day — the grid, the sidebar, the editors, the dialogs — getting faster, tidier, and more consistent. The things you'll feel first:

  • Big query results arrive sooner — aimed squarely at the extreme end, like a page of 50 documents at MongoDB's 16 MB limit each load even faster than before ( which was already pretty fast)
  • Materialize a schema diagram into a real database — design it once, preview the exact DDL or validators, then build the tables or collections for real.
  • One connections list for every engine — MongoDB, SQL, and Redis in the same sidebar, with the connection manager to match.
  • Real folders for saved queries, scripts, and charts, offered everywhere you save.
  • Live index-build progress, and index errors written in plain English instead of driver-speak.
  • Results from your own SQL are editable, and browsing tables on a remote database is much faster.
  • A modern look across modals and editors — the dialogs you live in no longer each look like the year they were written.

Also shipping: Deploy MongoDB (BETA) — stand up and run a standalone server, replica set, or sharded cluster on your own cloud accounts, servers, or Docker — Redis as a first-class connection type (BETA), and backups and exports straight to S3 / Cloudflare R2.


Faster Large Result Sets

  • Big query results arrive sooner. Loading a large result no longer alternates between waiting on the network and processing what arrived — both happen at once, on both sides of the connection. The target case is the punishing one: a page of 50 documents at MongoDB's 16 MB ceiling each, roughly 800 MB in one go, where the load used to spend most of its time idle in the middle. If anything goes wrong the app falls back to the old behaviour rather than failing.
  • Loading a collection of those documents is lighter on memory — moving between pages of 16 MB documents settles faster and leaves less behind.
  • Scrolling a long result stays smooth as the data grows, including in the tree view.
  • The query builder no longer stalls on complex queries — building up a big filter, projection, or sort no longer gets slower with every field you add.
  • Binary and UUID fields survive the trip. Streamed results used to be able to corrupt Binary and UUID values in rare cases; every path now reads them the same, correct way.

Connections Sidebar & Connection Manager

  • One list for every engine. MongoDB, SQL, and Redis connections sit in a single sidebar list, each with its own brand logo, and the connection manager looks the same — so you're not moving between two different-looking lists of the same connections.
  • Recent connections first — both the sidebar and the connection manager can filter to what you've actually opened lately, instead of scrolling a list of fifty.
  • Every SQL object action came with it — views, procedures, triggers, sequences, packages, and events are still edited straight from the tree in the unified list.
  • Capped collections are labelled in the tree, so you know before you try to write to one.
  • SQL connections show when you last connected, like MongoDB ones do.
  • Redis over SSH — reach a Redis server on a private network through an SSH tunnel.
  • Reconnect without hunting — if a connection dropped, actions that need it now offer to reconnect instead of failing.

Saved Queries, Scripts & Charts: Real Folders

  • Folders are real now. A folder you create exists on its own, so the Save As dialogs offer the same folders the list shows — including an empty one you just made.
  • Rename a folder and everything in it follows.
  • Sensible default names when saving from the file explorer, instead of a blank field.
  • Saved lists behave. What you save lands where you saved it, the list shows it without a manual refresh, and the counts are right — across saved queries, scripts, charts, dashboards, schemas, and JSON schemas.

Index Management

  • Watch an index build. Creating or rebuilding an index shows live progress, and that progress survives switching tabs or closing and re-opening the index screen. When it finishes you get a notification, wherever you are.
  • Index errors in plain English. A failed index no longer dumps a driver error at you — you get a short sentence naming the problem (a duplicate value blocking a unique index, a field that's too long, an unsupported option) and what to do about it.

SQL Editing & Query Building

  • Edit the results of your own SQL. Results from a hand-written query used to be read-only. Now, when a result column traces back to a real table column, you can edit it in place — and a badge on the grid tells you which cells are editable and why the others aren't.
  • Browsing tables on a remote database is much faster. Opening a table on a distant Oracle, SQL Server, or Postgres box no longer re-reads the whole catalogue every time — the second visit is close to instant.
  • Change the schema and the tree keeps up. Run a CREATE, DROP, or ALTER in the editor and the connection tree refreshes itself; you don't have to reconnect to see the new table.
  • Paging shows real numbers. Changing a filter no longer leaves a stale row count on screen while the new page loads.
  • Writing SQL and editing JSON feels quicker — typing stays responsive on long statements, with sharper highlighting and completion that keeps up.
  • Smart split layout — the query editor and its results now arrange themselves from the shape of the panel: side-by-side when it's wide, stacked when it's tall, with the results getting the space. Drag the divider and your size is respected until you change the layout.
  • A better SQL query builder — a cleaner layout and a much more responsive one on large queries.
  • SQL table schemas get their own list view, alongside the MongoDB JSON-schema list.
  • Query profiling tells you where you stand — if your engine doesn't support profiling, it says so in a sentence instead of showing an empty screen, and on SQL Server the statistics no longer drop ad-hoc queries.
  • Writes respect the engine. Generated and imported SQL now adapts to what each dialect actually supports — upsert style, foreign keys, transactions, identity columns, batch sizes, identifier limits — so a script that works on Postgres also works on MySQL, ClickHouse, or SQLite.
  • Fixed SQLite connections and imports.

A Modern Look for Modals and Editors

A broad styling pass — the dialogs and editors you live in every day were brought up to the same modern standard, instead of each one looking like the year it was written.

  • Modals across the app share one look — rounded panels, a proper iconified header with the context you're working in, a soft fade on open, and consistent buttons. Query History, Load Query, the Save Query / Script / Chart dialogs, the command palette, the keyboard-shortcut sheets, the feedback and help panels, the JSON-schema editor, and the whole Settings screen (Appearance, AI Configuration, Storage, Email, License Information) all follow it now.
  • Query History is genuinely searchable — filter by type and status, search as you type, and see a real "nothing matches" message instead of a blank panel.
  • Load Query got the same treatment — search your saved queries, with clear empty states when you have none yet.
  • Editors look and behave consistently — the shell, SQL, and JSON editors share one visual language, and the aggregation stage editors show a ghost hint of the expected shape while they're empty, so an empty stage tells you what goes in it.
  • Dropdowns look the same on every OS — the AI model picker no longer renders as a native menu that looks out of place on Windows.

Schema Diagram (VisuaSchema)

  • Import a schema from a "smart query" JSON dump — paste the metadata output from tools like ChartDB and get tables, columns, keys, indexes, and views laid out for you.
  • Smoother pan and zoom — the minimap no longer redraws the whole canvas while you move around, and a locate bug that jumped you to the wrong place is fixed.
  • A new collection shows up in the diagram without a manual refresh.
  • JSON schema on collection stats — see a collection's schema where you're already looking at its numbers.
  • Exported diagrams keep their fonts, so a shared PNG looks like what you saw.

Materialize a diagram into a real database

A diagram doesn't have to stay a drawing. Materialize takes the schema you designed and builds it for real, on the connection and database you point it at.

  • See exactly what will run before it runs. Every materialization starts as a dry run: on SQL you get the full generated DDL script in an editor; on MongoDB you get the JSON Schema validator that will be attached to each collection. Nothing touches the database until you say so.
  • Tables get created in the right order. Foreign keys are worked out ahead of time so parent tables exist before the tables that reference them — no hand-sorting your CREATE TABLE statements.
  • Collections come with their rules attached. On MongoDB, each collection is created with its JSON Schema validator in place, so the shape you designed is enforced from the first insert.
  • Decide what happens to anything that already exists — skip it (the safe default), attach or refresh just its validator, or stop the whole run and fail. You get a per-collection report of what was created, skipped, or updated.

Deploy MongoDB (BETA)

A new Deploy MongoDB launcher creates and runs MongoDB for you, and a Cluster tab manages each deployment afterwards. It works the same whether the machine is a cloud VM you've never logged into, a server you already own, or Docker on your laptop.

What you can see

  • A card per cluster with its phase, members, versions, and live resource usage (CPU, memory, disk) that refreshes on its own instead of being a one-shot snapshot.
  • An Infrastructure tab listing every server behind your clusters with live status, so you can tell a sick machine from a sick database.
  • A live progress panel for long operations — adding a shard, growing a disk, upgrading a version — instead of a spinner that tells you nothing.
  • An Audit log tab recording every deploy, scale, restart, password reset, and destroy, with who ran it and when.
  • Plain-English preflight before anything is created: whether Docker or the deploy tooling is present, whether the port is free, and what to do about it if not. If port 27017 is already taken on the target machine, the deploy stops immediately and tells you, instead of failing halfway through. Nothing to install by hand first — VisuaLeaf fetches the tooling it needs for a cloud deploy on its own.

What you can do

  • Pick a deployment shape — standalone server, replica set, or sharded cluster (config servers, shards, and a router), on cloud VMs, your own SSH hosts, Docker, or Kubernetes.
  • Bring your own accounts and servers — add a target once (DigitalOcean, AWS EC2, Hetzner Cloud, Hostinger VPS, OVHcloud, DigitalOcean Kubernetes, your own Kubernetes, an SSH host, or Docker), and reuse it for every cluster. Targets are editable after the fact, credentials are checked against the provider when you save them, and SSH hosts get a real reachability test rather than a hopeful "saved".
  • Authenticate SSH targets your way — private key or password, and per-server credentials when the members live on different machines with different logins.
  • Deploy secured by default — set the admin password yourself (the field starts empty on purpose), turn on TLS with one toggle, and download the cluster's CA certificate from the Overview tab so other tools can trust it.
  • Get a working connection immediately — VisuaLeaf creates the connection for you, matching the cluster's TLS setting, and marks it as managed. For a database on a private network, open an SSH tunnel from the Tunnels pane and connect through it.
  • Run day-2 operations without a shell — reset the admin password, scale members up or down, grow a disk, add a shard, scale config servers, restart a member, do a rolling MongoDB version upgrade, or convert a replica set into a sharded cluster.
  • Schedule backups — pick a schedule and retention window, organise runs into folders, and optionally push copies offsite to S3 / R2. Each run shows up as a task you can open, and delete failures now surface an error instead of quietly doing nothing.
  • Set up alerts and auto-heal — get told when a cluster is unhealthy, and let VisuaLeaf bring failed members back on its own with the auto-heal toggle on each cluster card.
  • Place members deliberately — spread a replica set across regions or across different targets, one member at a time.
  • Adopt what already exists — point VisuaLeaf at a replica set you built yourself and watch it read-only, then take over management of it. It can also scan a remote Docker host or an SSH host for MongoDB it didn't create, recover a cluster whose container is gone but whose data volume survives, and add a new member to an existing set for you.
  • Remove things safely — a target that still has databases on it can't be removed, and the app tells you which ones are in the way. Adding an account you already added reuses it instead of creating a duplicate.

Deployments survive an app restart, and the deploy and cluster screens are ordinary tabs, so they can be split and popped out like anything else.


Redis Support (BETA)

Redis now behaves like every other connection: add it from the connection manager, see it in the sidebar with its own logo, and open activities against it.

  • Connect to any shape of Redis — standalone, cluster (with seed nodes), or Sentinel (with sentinel nodes and a master name), plus Redis Enterprise and Redis Cloud using their management APIs. Pick a database index, or authenticate with a username and password.
  • Browse keys — a searchable key tree with a value filter, so you can find session:* without scanning by eye. Values open in a proper editor: a form view for simple values, a code view for JSON, and per-type editing for hashes, lists, sets, and sorted sets (with member and score fields).
  • Run commands — a Redis CLI tab with command help built in.
  • Read server health — the System Monitor button opens Redis Server Info for a Redis connection instead of a Mongo-shaped screen.
  • Manage security — the Users & Roles button opens Redis Security for a Redis connection: manage ACL users and permissions, set or change the server password, and manage users on Redis Enterprise and Redis Cloud. A banner makes clear that ACL changes apply to the remote Redis server, and the panel refreshes once instead of thrashing.

Backups & Exports to S3 / Cloudflare R2

  • Save your buckets once — a new Cloud Storage screen holds your S3 and Cloudflare R2 buckets with a connection test, so tasks can just pick one. Secrets are stored encrypted with no extra setup on your part.
  • Export to a bucket — pick a saved bucket and a path, and browse the bucket's folders (or create one) right from the picker instead of typing a path blind.
  • Restore from a bucket — a dump sitting in S3 or R2 can now be the source of a job, not just the destination.
  • Back up a whole cluster — every database in one job, and restore the same way.
  • Dated paths without editing the job — use date tokens in the path and every run lands in its own folder.
  • Job lists read correctly — object-storage sources and targets show up properly instead of a red "Unknown", and jobs that don't have a field mapping (whole-database and object-storage jobs) no longer show an irrelevant preview.

Improvements

Stability

  • An AI provider rejecting your key no longer signs you out of VisuaLeaf. You get a clear message about the AI key instead of being dropped back to the login screen.
  • Fixed a start-up failure that could stop the desktop app from opening at all.
  • Control your crash reports. Settings now has a Crash Reporting panel: send reports automatically, keep them local only, and view the recent ones yourself.

Tabs & Workspace

  • Put a popped-out tab back. A tab you popped into its own window can be returned to the main window.
  • Heavy tabs no longer break your workspace. Long-running monitor and oplog tabs used to be able to grow your saved workspace past its limit, which meant it stopped saving; they now keep their history locally and repaint instantly when you come back.
  • A workspace saved by a newer build opens in an older one instead of failing to load.
  • Custom tooltips across the app render properly instead of getting clipped at panel edges.
  • Select-all no longer runs away on very large selections.

Export & Import Jobs

  • Paste documents straight into a task — no file needed. An import task's file source now has a Paste JSON box: drop in an array or one document per line, hit Use this JSON, and it becomes the task's source. Handy for a quick one-off set of documents you'd otherwise have to save to disk first. Pasted data is kept as a file behind the scenes, so the job still streams, resumes, and re-runs like any other; anything over 8 MB should still come from a file.
  • One job at a time. Clicking a job that takes a moment to open no longer opens it three times.
  • Standalone imports are editable — choose insert, upsert, or drop-and-insert per import.
  • Exported queries match what you ran — a query saved into a job now carries its exact values, so ObjectId, Decimal128, dates, and binary fields survive round-tripping instead of being re-parsed from text.
  • Shell-style JSON import and export works correctly, including ObjectId(...) and friends.
  • Export tasks run on connection existence, not on whether the connection is currently open — a scheduled task no longer skips because you closed a tab.
  • Tell running, pending, and scheduled work apart at a glance in the Execution Monitor and a job's history — and when a section is empty, it says why instead of leaving you guessing.
  • Saving a job sticks. A batch of bugs where job and export settings didn't save, or came back changed after a reload, is fixed.
  • Renaming the key field no longer loses your records. An import that mapped _id to a different name with "include unmapped fields" turned off used to produce rows with no key at all; the key now follows the mapping (SOZO-1329).
  • Opening a run's log is instant, even on a job with a long history, and old execution history is cleaned up on a retention schedule instead of growing forever.
  • Import warnings belong to the right item. When several items of a task run at once, each one's warnings now stay with it instead of bleeding into its neighbours.
  • Job history and live progress work in the desktop app's own storage — some log and running-status lookups used to fail there, which could leave a running export looking stuck.
  • The help panels answer the question you have — bulk import, field mapping, and data-source variables now explain what to type and show an example.

Users & Roles

  • Rebuilt user and role management — clearer user and role lists, a cleaner create-user and create-role flow, role detail, and an effective-privileges view that answers "what can this user actually do?".

Queries, Aggregations & Profiling

  • Complex aggregations save correctly. Pipelines with nested stages and rich values used to come back altered — or not save at all. Save, reopen, and you get exactly the pipeline you wrote.
  • Aggregation builder uses the space it has — a much more compact, readable layout.
  • Aggregation history works again.
  • Query profiling shows correct data, and you can now inspect active sessions.
  • Copy and paste files in the file explorer, including JSON files.
  • Capped collections get a proper configuration panel, with a clear warning that converting is irreversible.

Naming & Navigation

  • Names that say what the tool does. The schema diagram is now Visual Schema (ERD), the JSON-schema editor is Schema Manager, and Mongo Sync is now Database Sync — since it moves data between SQL engines as well, not just MongoDB. Each new name is used everywhere: sidebar, tabs, and the command palette.
  • Every create flow goes through the same picker. Starting a chart, query, aggregation, shell, or schema from the welcome page, the + button, or the command palette now behaves identically, and each one only offers what the connection actually supports.
  • Redis sits in the same list as MongoDB, rather than in a separate tree of its own.

Dashboards & Onboarding

  • An empty dashboard offers to create a chart instead of leaving you at a dead end.
  • Pick your chart's source — including an aggregation — from a clearer source picker.
  • Check for updates manually from within the app.
  • Getting-started guides for the comparison and compare screens, and a refreshed getting-started modal.
  • The free-trial prompt only appears if you haven't already started a trial.

Notes

  • Deploy MongoDB and Redis support are BETA. They're complete enough to use daily, but expect rough edges; the destructive operations (destroy, convert-to-sharded, force reconfig) are all behind confirmations for a reason.
  • Deploying to a cloud provider needs your own account and credentials. VisuaLeaf spawns servers in your account and you pay your provider directly — nothing runs through us.
  • A cluster deployed with TLS uses a self-signed certificate. Use Download CA certificate on the cluster Overview tab to make other tools trust it.
  • Adopted clusters start read-only. A replica set you import is observed first; take over management explicitly when you're ready.
  • Existing workspaces, connections, and export jobs upgrade in place — nothing to migrate.
Read the full v1.0.2091 release notes

v1.0.1948

July 16, 2026

Quick Fix:
Table view optimization + Shell result gets formatted correctly after leaving and entering the mongodb shell

v1.0.1947

July 16, 2026

VisuaLeaf v1.0.1947 Release Notes

Release Date: July 15, 2026


Headline: Database Copy Respects Your Collection Selection, and Safer $out / $merge in the Aggregation Builder

Two fixes you'll feel:

  • Copying a database to another database now copies only the collections you picked. You can select collections in a database-to-database export job, and the copy honors the selection — before, it silently copied the entire database no matter what you chose.
  • $out can no longer silently overwrite an existing collection. The aggregation builder now blocks the run with a clear error when the target collection already exists, and the $out / $merge forms got smarter database and collection pickers.

Also shipping: a more reliable Linux release pipeline behind the scenes.


Database → Database Copy: Pick Your Collections

  • Choose exactly what to copy — the collection picker in a database-to-database export job is now enabled, so you can copy three collections out of fifty instead of all or nothing.
  • The selection actually applies — previously a job with specific collections selected still copied the whole source database. Now a non-empty selection copies just those collections; leaving it empty copies everything, as before.
  • The picker lists the right collections — the collection list now always reflects the database you selected for the job, not the connection's default database.
  • No more irrelevant preview — database-level copy jobs no longer try to show a field-mapping preview that doesn't apply to them.

Aggregation Builder: Safer $out and $merge

  • $out won't silently destroy data anymore. The target collection field is now a plain "new collection name" input, and if you type a name that already exists, you get a blocking error explaining that $out would overwrite it — not just a small warning icon you could miss.
  • Database fields have real suggestions — when writing to another database with $out or $merge, the database field now autocompletes from the databases on your connection instead of being a blank text box.
  • $merge suggests the right collections — the collection dropdown now lists collections from the target database you picked, not from the source database.
  • One terminal stage per pipeline — the builder now stops you from adding a second $out or $merge when the pipeline already ends with one, with a message explaining why, instead of letting you build a pipeline that can't run.

Infrastructure

Electron & Distribution

  • Overhauled the Linux release pipeline — RPM packaging, apt repository cleanup, native-library signing, and staged publishing with duplicate-upload detection — so Linux builds publish faster and more reliably.
  • Added an internal release runbook documenting the full publish process.

Diff scale

  • Frontend: 11 files changed, 338 insertions, 39 deletions (4 commits)
  • Backend: 13 files changed, 687 insertions, 24 deletions (4 commits)

Notes

  • Existing database-to-database export jobs are unaffected — a job with no collection selection still copies the full database.
Read the full v1.0.1947 release notes

v1.0.1940

July 16, 2026

VisuaLeaf v1.0.1940 Release Notes

Release Date: July 15, 2026


Headline: findOne Finally Prints Real Documents in the Shell, the Console Remembers Its Output, and Charts Let You Choose the Aggregation

Three things in this release:

  • Printing a findOne() result in the shell now shows the actual document — real BSON values, dates, decimals and all. It used to show a cursor instead of your data.
  • The Shell output console no longer wipes itself — switch to another tab and back, and everything you printed is still there. It even survives an app restart.
  • Charts now let you pick the aggregation — when multiple rows share the same category, you decide whether the chart shows their Sum, Average, Count, Min, Max, First, or Last value. Before, everything was silently summed.

Details below.


findOne Prints Real Documents

The big shell fix: printing a findOne() result now shows the document itself. Before, print(db.users.findOne(...)) (or just evaluating a findOne and printing it) showed you a cursor rather than your data. Now you get the actual document, with every BSON type rendered faithfully:

  • Dates show the actual timestamp — they used to come through as Null.
  • Decimals keep full precision — double values were being silently rounded to a lower precision before display.
  • NumberLong and NumberDecimal display correctly, including special decimal values like NaN and Infinity, which used to error out.
  • Regular expressions render as regexes — with their exact flags preserved, instead of unfolding into a {pattern, options} object.
  • Fields with numeric names survive — a field literally named "3" used to vanish from findOne results.
  • Declaring a function no longer prints a stray "js function" line in the console.

Shell Tabs Remember Everything

  • The Shell output console survives tab switches — flip to another activity and back, and your accumulated output is still there. It's also saved with your workspace, so it comes back after a restart.
  • Result tabs keep their names and numbering — switching away and running another query no longer produces colliding or mislabeled result tabs.
  • Undo/redo history in the shell editor survives tab switches⌘Z still works on edits you made before flipping away.
  • print() output lands in order — printed lines now always appear before the "N results" summary of the script that produced them, never after.

Chart Aggregation

When your data has several rows that land on the same point — same x-axis value within a series, same pie slice, same funnel stage, same heatmap cell — the chart has to combine them into one number. Until now it always summed them. Now you choose.

What you can do:

  • Pick the operation — a new Aggregation dropdown in the Data Field Mapping panel offers Sum, Average, Count, Min, Max, First, and Last. It appears as soon as your chart has a grouping field (Series for line/bar/area, Category for pie and funnel, both axes for heatmap).
  • See it everywhere the chart lives — the choice saves with the chart and applies in the chart builder, on dashboards, and in dashboard edit mode alike.
  • Trust the funnel's "Others" bucket — when a funnel has more stages than the display cap, the overflow collapses into "Others" using your chosen operation correctly: with Average selected, "Others" is the true average of all overflow rows, not a sum of per-stage averages.
  • Set the funnel stage cap and keep it — the "max funnel items" setting now saves with the chart instead of resetting.

Two honesty guarantees while aggregating: non-numeric values are skipped rather than counted as zero, and a category whose values are all invalid simply doesn't appear — no fabricated data points. The help tooltips in the mapper now describe exactly what will happen for your chart type.


Chart Builder Polish

  • The chart builder's settings panel, Data Field Mapping, and Parameters editor share a cleaner look — rounded inputs, a softer focus highlight, tidy uppercase section headers.
  • Tooltips and help popovers in the mapper are now readable in light mode (they were dark-on-dark before).

Notes

  • Existing charts are unaffected — the aggregation default is Sum, which matches the previous behavior exactly. Clearing a chart's grouping field resets the aggregation back to Sum.
Read the full v1.0.1940 release notes

v1.0.1933

July 15, 2026

VisuaLeaf v1.0.1933 Release Notes

Release Date: July 15, 2026


Headline: Stability Fixes — No More Ubuntu Crash, Stuck Modals, Broken Popouts, or Surprise Read-only Errors

This release is a stability pass. The fixes you'll feel:

  • The app no longer crashes on Ubuntu 24.04 when running shells or streaming queries under load. If your desktop was dying with a native crash during shell or export work on prior builds, upgrade and it's gone.
  • Stuck modals close. Some dialogs used to appear on screen with no way to close them — no button, no Esc, nothing worked. Every modal now opens and closes cleanly.
  • Popout windows actually work. In a popped-out window, the + button and ⌘/Ctrl+K command palette now show your create / saved / nav items (they were empty before), and your connections, databases, and collections stay in sync with the main window in real time. Saved queries no longer flash a wrong "Connection Deleted" badge when a popout opens.
  • No more surprise "not writable" errors on replica-set secondaries. If your connection points at a secondary, the collection view and shell result grid now tell you up front, with a clear amber read-only banner naming the current primary. If the secondary is promoted, editing turns back on automatically.
  • Importing a schema from a collection is reliable now. A progress indicator stays visible even when you switch tabs, and if the import fails you get a proper error message instead of it silently disappearing.
  • Pasting a connection string keeps your connection name. Paste no longer overwrites the name you already typed.

Alongside the fixes, this release also opens Replica Set Management (BETA) — a first-class MongoDB replica-set operations panel — plus a SQL engine expansion (MySQL, CockroachDB, YugabyteDB, Redshift, Aurora Postgres/MySQL, RDS Postgres/MySQL, Percona, TiDB) with per-engine brand logos in the sidebar, and a modal + list-view design polish pass. Details below.


Replica Set Management (BETA)

Right-click any replica-set connection and pick "Replica Set…" to open a live operations panel for your cluster. Everything works read-only first, so it's fully useful on Atlas and other managed deployments where you can't make changes. When you want to make changes, flip the "Enable changes" toggle and every safe-guarded action becomes available.

What you can see (no permissions needed beyond a working connection):

  • A live topology diagram — every member with its role, health, replication lag, and sync source. One-glance answer to "is my set healthy?"
  • Quorum math and cluster lint — plain-English findings on dangerous configurations (PSA with w:majority, even voters, single-region quorum, mixed versions, arbiters where they don't belong, and more) with the fix on the same card
  • Election timeline — every election in this session with a plain-English why it happened
  • Read-preference tester + write-concern simulator — pick a mode and see which members are eligible right now, and whether writes at your chosen w can actually complete
  • Oplog window with fall-off projection — how much history you have, how fast it's shrinking
  • Certificate expiry per member — amber under 90 days, red under 30
  • Failover preflight — a single card that answers "can I fail over safely right now?"

What you can do (after arming "Enable changes"):

  • Step down, step up, freeze primaries with a candidate preview
  • Safe reconfig (priority, tags, hidden, delayed members) with a diff preview and safety validator that refuses unsafe changes
  • Add / remove members with live initial-sync progress
  • Force reconfig for majority-loss recovery — the "it's 3 a.m. and my primary is gone" button, gated behind a typed confirmation
  • Maintenance mode, per-member oplog resize, rolling compact runner with live progress
  • Cancel slow ops per member (killOp) — the #1 fix for a lagging secondary
  • Index-build coordination across members
  • Backup coordination — a planned secondary-targeted dump with an fsyncLock helper
  • x509 user management and a keyfile-rotation checklist

Three focused secondary tabs support the flagship:

  • Oplog browser — a filterable log console over local.oplog.rs. Colored op badges, human-readable Simplified view by default (or Raw for extended-JSON), namespace typeahead, multi-select op filter, and session/txn attribution on each entry.
  • Monitor — 24-hour charts of lag and oplog window with alerts (lag, window, quorum-at-risk, unexpected election). Range picker, CSV/JSON export.
  • Fleet — a dense, worst-first status table covering every replica set across every connection you have open.

Every RS surface has an in-product learn layer — inline concept-explainer popovers next to every jargon term, and a dismissible "how this works" intro on every tab, so the panel stays approachable even if you don't live in MongoDB internals.


SQL Engine Expansion

More engines to pick from when adding a connection, and every engine now shows its own brand logo in the sidebar so you can tell them apart at a glance.

  • New engines — MySQL, CockroachDB, YugabyteDB, Redshift, Aurora Postgres, Aurora MySQL, RDS Postgres, RDS MySQL, Percona, TiDB. Each with sensible default ports so you rarely need to change them.
  • Brand logos in the connection sidebar — Postgres, MariaDB, MySQL, SQLite, ClickHouse, DuckDB, CockroachDB, TiDB rendered as brand marks; less-common engines get distinct colored icons (Firebird = flame, Derby = feather, HSQLDB = bolt, DB2 = server, H2 = blue database).
  • The connection manager's MongoDB tab is now labelled "NoSQL".

Modal & List-view Design Polish

  • Format Chart, Shell Keyboard Shortcuts, and Schema Actions Help modals have a cleaner, more consistent look with rounded corners, iconified headers, and a soft fade on open/close.
  • Slim, command-palette-style search bars on the schema list, MongoDB schema list, user-management list, and database collection stats — same tidy inline look everywhere.
  • Selection highlight only shows during keyboard navigation — a mouse click no longer leaves a lingering blue row behind, so the two interaction modes stay visually distinct.
  • Apply Schema now uses the shared connection picker — same modal you already know from Edit & Query Data, pre-filled with whatever the schema already knows about.
  • Data mapper — the "map required fields" warning is now a subtle inline row with each missing field name as a tidy chip.

Replica Set Polish

  • Panel and monitor headers now lead with the connection name — instantly recognizable when you have several open in split panels.
  • Fleet is now a dense worst-first table (previously cards), with topology and quorum explanations right on the column headers.
  • Fleet auto-refresh is opt-in and off by default — no polling cost on tabs you left open.
  • Read-preference and write-concern testers are clearly marked read-only so you know they can't accidentally change anything.
  • Add-member dialog now requires host:port (a bare port used to silently fail).
  • RS tabs keep their view state across tab switches — no reload when you flip away and back — and the armed "changes enabled" state also survives a tab switch inside the same session.

Notes

  • Replica-set features are BETA. The read-only path is proven against Atlas dedicated, Atlas shared, self-managed replica sets, and mongos. Mutation paths are safety-gated; feedback on any edge case is welcome.
  • On Atlas and other managed deployments, actions the provider blocks (reconfigs, step-down, oplog resize, etc.) are greyed out with an explanation, not hidden — you always see the full surface.
Read the full v1.0.1933 release notes

v1.0.1901

July 9, 2026

VisuaLeaf v1.0.1901 Release Notes

Release Date: July 8, 2026


Headline: Quality-of-Life Refresh — Command Palette, 10× Faster Table View, Schema-Diagram Overhaul, Full Light/Dark Polish

The main focus of this release is quality of life. VisuaLeaf now has a Cmd/Ctrl+K command palette with fuzzy search and inline action chips, a full keyboard-shortcuts catalog modal, complete tab-management hotkeys (close, reopen last closed, jump to tab N, next/previous), a rebuilt SQL table view that renders roughly 10× faster through GPU-cached cell rendering, a top-to-bottom Schema Diagram overhaul with translate-based pan, an infinite xyflow-style background pattern, a RAF-throttled minimap, and hover-relation highlighting in the HTML export, plus a sweeping light/dark mode polish touching ~5,600 style rules across the app.

On top of that quality-of-life work, three flagship epics also ship:

  • My Files (SOZO-1228 → SOZO-1241) — end-to-end user-file system with local-disk and S3/R2-compatible storage backends, admin auditing, health monitoring, soft-delete lifecycle, and an SSRF/DNS-pinning security layer.
  • MongoDB Sharding BETA — full sharding activity with a cluster-overview dashboard, shard-collection dialog, and a shard-key advisor backed by a new ShardingService / ShardKeyAdvisorService.
  • Tables as first-class Charts (SOZO-1146) — standalone Table system removed and re-introduced as TABLE, PIVOT, and TREE chart types over the new virtualized data-grid.

Also shipping: an in-app release-notes + auto-update flow, a demo mode for showcase clusters, an Atlas SSH-tunnel + SOCKS5 connection fix, and signed Linux apt/dnf repo distribution for the desktop app.


Command Palette, Keyboard Shortcuts & Tab Management

The centerpiece of this release's QoL push — a single fuzzy-searchable command surface, a complete keyboard-shortcut catalog, and browser-style tab hotkeys everywhere.

Command palette (⌘/Ctrl+K)

  • Global fuzzy search — one keystroke opens a search-anything box across activities, connections, and commands
  • Categorized results — grouped by section so you can scan or scroll
  • Inline action chips — right-side quick actions on each row (e.g. Documents | Aggregator | Indexes …) so you can jump straight to a sub-view
  • Same picker on the "+" button — the split-panel + opens a Blank tab with the same palette content, so you can pick a new activity without losing your current layout
  • Extensible — any part of the app can contribute items into the palette

Keyboard shortcuts modal (keyboard-shortcuts-modal)

Full catalog surfaced through the palette and Help menu, with per-platform modifier rendering ( on macOS, Ctrl elsewhere):

  • Tabs & Panels — Close current tab (⌘/Ctrl+W), close other tabs in panel (⌘/Ctrl+Alt+W), close all tabs in panel (⌘/Ctrl+Shift+W), reopen last closed tab (⌘/Ctrl+Shift+T), next tab (⌘/Ctrl+Tab), previous tab (⌘/Ctrl+Shift+Tab), jump to tab 1–9 (⌘/Ctrl+1..9), jump to last tab (⌘/Ctrl+Shift+0)
  • Navigation — Command palette / global search (⌘/Ctrl+K), new connection (⌘/Ctrl+N)
  • View — Zoom in / out / reset (⌘/Ctrl + +, ⌘/Ctrl + -, ⌘/Ctrl + 0)
  • Modals & Dialogs — Close modal / dialog (Esc)
  • Table View — Navigation — Move cell, PgUp/PgDn, extend selection (Shift + Arrows), select all rows (⌘/Ctrl+A), clear selection (Esc), refresh (⌘/Ctrl+R)
  • Tree View — Navigation — Move row, Alt+→ expand, Alt+← collapse, extend selection, select all, refresh document (⌘/Ctrl+Shift+R)

Reopen last closed tab

  • ⌘/Ctrl+Shift+T restores the most recently closed tab — closed a tab by mistake? Just pop it back
  • Works with the tab close button too, so nothing is ever really lost

SQL Table View — ~10× Faster

The SQL table view (sql-table-view-draggable) was rebuilt for speed. Scrolling and panning through wide result sets is now roughly 10× faster and runs at a smooth 60 fps, even on huge tables. Wide grids that used to hitch or drop frames while scrolling now feel instant.


Schema Diagram Overhaul

The Schema Diagram got a top-to-bottom rewrite focused on making pan, zoom, and navigation feel silky, and on making exports actually useful.

Pan & zoom

  • Smoother pan and zoom — Pan is now translate-based instead of scroll-based, so panning and zooming stay locked together at any scale and the minimap always agrees with the main canvas
  • Pan-by-default — Click-and-drag now pans; hold ⌘/Ctrl to temporarily switch mode
  • Snappier minimap — Dragging the minimap rectangle no longer stalls the canvas, and moving between large schemas stays 60 fps
  • Cleaner zoom-to-center — Zoom in/out keeps whatever you were looking at in the center of the viewport
  • Auto-migration — Older saved schemas that used the old pan model are migrated on load; if a schema looks off-center after upgrade, "Reset Zoom" re-centers it

Infinite background pattern

  • New infinite grid background — Replaces the old fixed background with a tiled pattern that scrolls and scales with the canvas
  • Theme-aware — Background color follows light/dark mode live, so it never flickers or mismatches the diagram

Better HTML export

  • Field-hover relations — Hovering a field in an exported HTML schema now highlights every field on the other side of any relationship, with a floating tooltip showing type, related peers, and cardinality (N → 1, 1 ← N)
  • Connection lines light up — Any relationships touching the hovered field render in an elevated style so you can trace them at a glance

Connection picker

  • Rebuilt connection selector — Cleaner flow for attaching a connection to a schema
  • New connection picker — Shared picker used from the schema, the split-panel + button, and the command palette

Bug fixes

  • Fixed minimap rectangle getting stuck when a schema was opened empty and then gained its first collection
  • Fixed background pattern flickering on light/dark toggle
  • Fixed pan drift when resetting zoom mid-drag
  • Fixed HTML export losing hover interactivity in Safari

Light / Dark Mode & UI Polish

A sweeping visual pass: thousands of style rules retouched so both themes finally feel consistent and polished, plus a general modernization of the visual language.

  • Modal fade in / out — Every modal now fades in on open and fades out on close, and blocks input mid-leave so you can't accidentally click through a closing dialog
  • Mongo Sync — Big visual refresh to the setup and monitor views; cleaner headers, better spacing, new sync signature accent
  • Aggregation pipeline — Stage palette, stage preview, and work panel look consistent in both themes
  • Chart builder — New Format Chart modal that unifies title, subtitle, and axis-label editing in one place
  • Comparison sessions — Session list and results reworked for dark mode
  • Feedback modal — Larger, restyled feedback surface
  • Database collection stats — Restyled cards and dark-mode badges
  • Task canvas — Export job task canvas visual refresh
  • File explorer — Theme-aware header, buttons, and empty states
  • Welcome / intro — Cleaner welcome screen and intro flow
  • Update banner — Theme-aware update prompt
  • Schema diagram — Collection cards, inline editors, and the diagram background all follow the current theme in real time

My Files & User File Storage (SOZO-1228 → SOZO-1241)

A new per-user file workspace with a pluggable storage backend, admin controls, auditing, and lifecycle sweeps.

Backend

  • Foundation (SOZO-1230) — Models, VirtualPath, LocalDiskUserFileStorage, and ArchUnit rules (UserFileSafetyRulesTest) enforcing production isolation
  • Resolver wiring (SOZO-1231) — Temp-file unification and ArchUnit production enforcement across the resolver seam
  • Service layer (SOZO-1232)UserFileService (1391 lines), controllers, sweeps, and Feature.USER_FILES feature gate; system-override layer implemented (stale docstring corrected in SOZO-1232)
  • MyFiles activity subtype (SOZO-1229) — Registered for workspace persistence
  • Startup guard (SOZO-1229) — Fail-fast: web mode requires a MongoDB replica set; enforced only when the user-files feature is configured
  • Security (SOZO-1235)SecretCipher (AES-GCM-256) for at-rest credential encryption and UrlSafetyGuard (SSRF + DNS-pinning) for outbound URL validation
  • S3/R2 storage backend (SOZO-1236)S3CompatibleUserFileStorage (622 lines) with factory swap between local disk and S3-compatible object stores
  • S3 extraOptions + async recompute-usage (SOZO-1240) — Wired extraOptions into PutObject and moved usage recomputation to an async background job
  • Storage admin (SOZO-1237)StorageBackendAdminService, admin endpoints, destructive backend-switch flow, and UserFileReconcileService
  • Health monitoring (SOZO-1238)UserFilesHealthService and /health endpoint for the local-disk backend
  • Lifecycle (SOZO-1239) — Soft-delete window for user files, username reservation, and hard-delete sweep (UserFileSweepService, UserFileLifecycleService)
  • Audit + operator runbook (SOZO-1241)UserFileAuditService, admin audit log, docs/USER_FILES_RUNBOOK.md, and load tests
  • Epic close (SOZO-1229) — S3 export-staging seam, secrets fail-fast, and stale-TODO cleanup

Frontend

  • My Files activity (SOZO-1234)my-files-activity (2261-line component) with file explorer, workspace activity integration, and admin user-files panels
  • Virtual folder service (SOZO-1233) — Mode-aware service facade, stale-path warning, and path-mode-utils
  • Admin storage backend (SOZO-1238 FE) — Admin storage backend card, destructive-switch confirmation modal, and monitoring banner
  • Admin audit log (SOZO-1241 FE) — User-files admin audit log tab with CSV export
  • Demo-mode gating (SOZO-1229) — New demoMode env flag toggles the "Back to visualeaf.com" link
  • User-file admin service — New core/services/file/user-file-admin.service.ts
  • Design docsdocs/VIRTUAL_FOLDER_PLAN.md and docs/replica-set-management-plan.md

Test coverage

~4,000 lines added across 20+ new unit/integration/concurrency/load-test classes: UserFileServiceIntegrationTest, UserFileServiceConcurrencyTest, UserFilesLoadTest, S3CompatibleUserFileStorageTest, SecretCipherTest, UrlSafetyGuardTest, UserFilesModeValidatorTest, UserFileStorageAdminTest, UserFileLifecycleServiceTest, UserFileReconcileServiceTest, UserFileSweepServiceTest, UserFileAuditServiceTest, and more.


MongoDB Sharding BETA

End-to-end sharding activity for browsing, planning, and applying shard configuration on live MongoDB clusters.

Frontend

  • Sharding activitysharding-activity (403-line component) with shard/chunk visualization
  • Cluster overview dashboardcluster-overview.component (707 + 575 lines) covering shards, chunks, balancer, and database placement
  • Shard collection dialog (439 lines) — Guided shard-collection flow with key preview
  • Shard key advisor (129 + 164 lines) — Advisor UI wired to the backend service
  • sharding.service.ts (395 lines) — Client for the new controller
  • Design docsdocs/sharding-feature-plan.html and docs/docker/shard/test-case.md

Tables as first-class Charts (SOZO-1146)

The standalone Table widget introduced earlier was rebuilt as TABLE, PIVOT, and TREE chart types so it shares the dashboard, save, and export pipeline with every other chart.

Backend

  • /api/tables — New backend module (model + repo + service + controller)
  • Chart typesTABLE, PIVOT, and TREE added to ChartType; tableConfig added to ChartConfig
  • Column configTableColumnConfig.pinned and ChartTableConfig.filters
  • Cell templatesTableColumnConfig.transform field for cell-value templates
  • Cleanup — Standalone Table system removed on the backend

Frontend (data-grid Phase 1 → 5)

  • Phase 1 — Virtualized rendering, sticky header, and row numbers
  • Phase 2 — Selection, keyboard navigation, and Ctrl+C TSV copy
  • Phase 3 — Header and cell context menus
  • Phase 4 — Per-column filters with persistence
  • Phase 5 — Sticky pinned columns
  • Column controls — Show/hide, rename, transform, and format
  • Currency formats — Expanded to all ISO 4217 codes
  • Widget scaffold — Table library, builder, and save dialog landed as a UI slice; Playwright spec and docs added
  • Cleanup — Standalone Table system removed on the frontend
  • Fix — Table builder template no longer allows arrow functions in expressions

In-App Release Notes & Auto-Update

A new user-facing release-note surface and update UX for the desktop app.

  • release-notes-modal (505 lines) — Shows the current release's notes on first launch after upgrade
  • release-history-modal (472 lines) — Browsable history of prior releases
  • update-banner (308 lines) — Non-blocking update prompt
  • update.service.ts (328 lines) — Check/download/apply update lifecycle
  • release-history.service.ts — Indexes files under release-note/
  • Electron main.js (+303 lines) — Auto-update wiring
  • Cloudflare uploaderupload-cloudflare.js (+323 lines) and r2-list-packages.js publish releases to R2
  • Linux repo distributionbuild-linux-repos.sh, setup-linux-repos.sh, LINUX-REPO-USER-DOCS.md, and signed APT/DNF keyrings shipped under electron-app/certs/
  • memory-selector.html — Updated selector chrome for the memory-selection boot dialog

Demo Mode

Showcase-friendly runtime for demo clusters and public trials.

Backend

  • DemoDataSeeder (395 lines), DemoMongoService (190 lines), and DemoExceptions
  • DemoController REST endpoints for seeding and resetting demo data

Frontend

  • demo-chart-creator.service.ts (216 lines) — Programmatic chart creation for demos
  • demo-chart-folder-dialog — Pick where seeded demo charts land
  • demoMode env flag threaded through environment.web-local.ts, environment.web-stg.ts, environment.prod.ts, and the electron envs

MongoDB Connectivity

  • Atlas SSH tunnel fixSshTunnelManager (259 lines changed) and new JschSocks5Server (213 lines) bridge JSch through a local SOCKS5 proxy so Atlas SRV/DNS-seedlist connections work over SSH; documented in docs/ATLAS_SSH_TUNNEL_FIX.md
  • PEM utilities — New backend PemLoaders (162 lines) with tests (156 lines) and FE pem-utils.ts for TLS cert handling across mixed input formats
  • BulkOp (268 lines) — New batched mongosh operation support under com.mongodb.mongosh.service
  • GridFSGridFSService (+268), GridFSController (+259), and FE gridfs.service (+136)
  • Mongo shell sessionMongoShellSessionService updates (+128)
  • MongoConnectionManager — 375 lines reworked for Atlas, shard, and user-files scenarios

Accessibility & Platform Polish

  • Login form accessibility (SOZO-1148) — Accessible labels added to login form inputs
  • Platform modifier hints (SOZO-1151)Ctrl instead of on Windows/Linux in the My Files context menu
  • Sidebar layering fix (SOZO-1172) — Operation Details sidebar no longer hidden behind the Electron title bar
  • Modal consolidation (SOZO-1173) — Converted 7 inline modals in collection-mod to use modalService
  • Connection sidebar — Improved tree-view search matching in the connected list

Improvements

Modals & Dialogs

  • 7 inline modals in collection-mod converted to the shared modal service for consistency (SOZO-1173)
  • Confirmation modal added for the destructive admin storage-backend switch
  • Modal fade-in / fade-out animation applied globally
  • Command palette with keyboard navigation and inline action chips

Data Grid

  • Sticky pinned columns; per-column filters with persistence; virtualized rendering; keyboard navigation with Ctrl+C TSV copy; header + cell context menus; expanded ISO 4217 currency formatting

SQL Editor

  • Monaco SQL editor gets richer syntax handling, type definitions, and inline icons for a nicer SQL editing experience

Chart Model

  • Chart model refreshed for the new TABLE / PIVOT / TREE chart types, with grid state now preserved across tab switches

Infrastructure

Backend

  • UserFilesModeValidator (218 lines) — Startup-time consistency check between deployment mode and user-files config
  • UserFileTransactionalOps (659 lines) — Transactional wrapper for cross-document user-file mutations
  • UserFileStorageFactory (163 lines) — Swaps LocalDisk vs S3Compatible at runtime
  • User-file repository seamSzUserFileMongoDBRepositoryService (+146) with adjustments to SzGridFsUploadSessionMongoDBRepositoryService and SzUploadSessionMongoDBRepositoryService
  • ArchUnitUserFileSafetyRulesTest (412 lines) enforces production isolation of the user-files module
  • SecurityConfig and JwtAuthenticationFilter — Updated after the license-filter removal
  • Test additionsUserFileServiceIntegrationTest, UserFileAdminControllerIntegrationTest, UserFileControllerIntegrationTest, UserFileServiceConcurrencyTest, UserFilesLoadTest, UserFilesModeValidatorTest, UserFileServicePR13Test, UserFileStorageAdminTest, S3CompatibleUserFileStorageTest, LocalDiskUserFileStorageTest, UserFileStorageFactoryTest, S3ExtraOptionsTest, UserFileLifecycleServiceTest, UserFileReconcileServiceTest, UserFileSweepServiceTest, UserFileAuditServiceTest, UserFilesHealthServiceTest, VirtualPathTest, RecomputeUsageJobServiceTest, SecretCipherTest, UrlSafetyGuardTest, PemLoadersTest, WebUserAdminControllerReservationTest, UserFileRepoStubs, UserFileTestFixtures

Frontend

  • 15+ new My Files, Sharding, Table-widget, and command-palette UI slices with matching activity models
  • New servicesside-bar-manager.service.ts (+32), update.service.ts (+328), release-history.service.ts, user-file-admin.service.ts (+335), sharding.service.ts (+395), demo-chart-creator.service.ts (+216), sql-monaco-init.service.ts (+166)
  • activity-manager.service.ts — New reopenLastClosedActivity(), requestNewActivity(), registerCommandPaletteItemsBuilder(), newActivityRequested$ subject; wired for the My Files and Sharding activities
  • activity-factory.service.ts — Updated for the new My Files and Sharding activities
  • New environment flagdemoMode threaded through every environment config

Electron & Distribution

  • Electron main.js, preload.js, and package.json bumped; package-lock.json regenerated (~2,700 lines)
  • Linux repo publishing — build-linux-repos.sh, setup-linux-repos.sh, merge-platform-yml.js, r2-list-packages.js, upload-cloudflare.js
  • Signed APT/DNF keyrings — Shipped under electron-app/certs/
  • memory-selector.html — Updated boot screen for the memory-selection dialog

Diff scale

  • Frontend: 433 files changed, 43,880 insertions, 8,793 deletions (494 commits)
  • Backend: 193 files changed, 23,453 insertions, 2,884 deletions (281 commits)
  • ~5,600 dark: style rules touched across the frontend for the light/dark polish pass

Notes

  • The standalone Table system was fully removed as part of SOZO-1146; existing standalone tables must be re-created as TABLE, PIVOT, or TREE charts.
  • If a saved Schema Diagram looks off-center after upgrade, "Reset Zoom" will re-center it under the new pan model.
Read the full v1.0.1901 release notes

v1.0.1685

May 21, 2026

VisuaLeaf v1.0.1685 Release Notes

Release Date: May 20, 2026


Headline: Full SQL Database Support + SQL Import/Export Pipeline

This release lands the full SQL subsystem first introduced in v1.0.1542, plus a major extension that brings SQL databases and SQL dump files into the first-class import/export job pipeline (SOZO-1107). VisuaLeaf is now a true cross-engine data platform: MongoDB and PostgreSQL, MySQL/MariaDB, Microsoft SQL Server, Oracle, and SQLite can be browsed, queried, and exchanged through a unified job system, with 15 SQL activity types and a dedicated backend module (src-sql/).


New SQL Activities

  • SQL Editor (sql-editor-activity) — Full SQL console with Ace/CodeMirror editors, multi-statement script splitting per dialect, live session state via SSE, and explain-plan visualization
  • SQL Table (sql-table-activity) — Spreadsheet-style table browsing and editing with row-edit modals, batch update/delete, and FK preview
  • SQL Query Builder (visua-sql-query-activity) — Visual, no-code SQL query construction
  • SQL Create Table (sql-create-table-activity) — Visual table creation with column/constraint editor
  • SQL Table Info (sql-table-info-activity) — Table schema, indexes, constraints, and DDL code viewer
  • SQL Table Statistics (sql-table-statistics-activity) — Row counts, storage, and distribution stats
  • SQL Export (sql-export-activity) — Export table/query results to multiple formats
  • SQL Manage Views (sql-manage-views-activity) — Create, edit, and drop database views
  • SQL Manage Procedures (sql-manage-procedures-activity) — Stored procedure management
  • SQL Manage Sequences (sql-manage-sequences-activity) — Sequence management
  • SQL User Management (sql-user-management-activity) — Users, roles, and privileges
  • SQL Events (sql-events-activity) — Scheduled event management
  • SQL System Monitor (sql-system-monitor-activity) — Live system monitoring with per-dialect strategies (MSSQL, MySQL, Oracle, Postgres, fallback)
  • SQL Query Profiling (sql-query-profiling-activity) — Query profiler with explain-plan parsing
  • SQL Server Build Info (sql-server-build-info-activity) — Server version and build metadata

SQL Infrastructure

  • Dynamic JDBC driver loading — Drivers for PostgreSQL, MariaDB, MSSQL, Oracle, and SQLite loaded on demand (SQLite driver manifest added in v1.0.1542)
  • Per-dialect script splitters — MariaDB, MSSQL, Oracle, PostgreSQL, SQLite
  • Per-dialect update strategies — MSSQL, MySQL, Oracle, Postgres, SQLite
  • Per-dialect explain-plan parsers — MariaDB, MSSQL, Oracle, PostgreSQL
  • SQL connection lifecycle — Connection manager, dashboard SSE, session controllers, and connection list sidebar
  • SQL table comparison (SOZO-999) — Diff tables across SQL connections with sync job support
  • SQL Sync Job Service — Background compare/sync jobs between SQL sources

SQL in the Import/Export Pipeline (SOZO-1107)

SQL is now a first-class citizen in the job system used for dumps, restores, exports, transformations, and comparisons.

New source and target types

  • SqlDatabase — Live SQL connection as a source/target
  • SqlDump — Folder of SQL dump files (one per table, or a single combined file) as a source/target
  • SqlScript, CSV, JSON added to the MongoDatabase target list

Cross-engine strategies

  • SqlDatabase → JSON / CSV — Export tables or query results to flat files (parallel per-table execution, per-collection progress, resumable)
  • SqlDatabase → SqlDatabase — Move data between SQL instances of any supported dialect
  • SqlDump → SqlDatabase — Restore a dump folder/file with parallel execution, savepoint-based error handling, per-statement progress tracking, and mid-file pause detection
  • MongoDatabase → SqlScript — Generate a SQL script from a Mongo collection set
  • MongoDatabase → CSV / JSON — Parallel per-collection export with progress and resume support; filters system collections; uses estimatedDocumentCount for size hints

Dump features

  • Single-file vs folder dump mode — Pick one combined .sql file or one file per table
  • DROP / CREATE / DATA options — Choose which DDL/DML sections to include
  • Portable ANSI SQL mode — Generate cross-dialect-friendly output with dialect detection and dialect-compatibility tags so incompatible restores are blocked up front
  • Per-file metadata scanning/sql-dump-metadata endpoint scans a dump folder and surfaces table list, row counts, and dialect badges in the UI
  • Table size stats/sql-database-stats endpoint and per-table badges in the dump options UI; on-demand analyze
  • SqlDump source uses a folder picker (not a file picker); transformation step is hidden for SqlDatabase/SqlDump sources

Robustness & performance

  • Streaming everywhere — Streaming JSON, JDBC fetchSize tuning, single-pass directory walks
  • Memory — CSV/JSON files streamed instead of read into memory; SqlDump restore streams the file with batched transactions
  • Resource leaks fixed in BsonDumpRestoreService and export engines
  • Race conditions in checkpoint timing fixed
  • Audit logging — Detailed per-collection audit logs for Mongo dump/restore strategies and per-statement audit logs for SQL dump restore
  • Transformation warning tracking — Edge-case warnings (array transformations, missing target item paths) logged to a dedicated file

UX

  • Single-workspace selector clickable — Opens workspace manager directly
  • Folder picker for SqlDatabase exports; SQL database stats panel
  • Auto-connect SQL on open when a saved connection backs an activity
  • Block incompatible SQL dump restore — UI refuses to start when source and target dialects mismatch
  • Job list polish — Per-table badges, duration tooltip label ("tables" for SQL, "collections" for Mongo), execution summary timeline for all MongoDatabase exports, dump operation info shown for MongoDatabase exports

Pause / Resume Across All Job Types (SOZO-1092)

  • Pause/resume support added to every remaining strategy and to inter-job sequencing
  • MongoDatabaseToSqlScript strategy now respects pause; collection progress guarded
  • Auto-cancel orphaned paused executions when starting a new run
  • Fix flickering on pause/resume by breaking on Pending status as well
  • Duplicate execution in the monitor after pause/resume fixed
  • Resumable hints surfaced for CSV and NDJSON formats

AI Assistant

  • Multi-provider AI support — Added Google Gemini, Anthropic Claude, and xAI Grok (Grok 3, Grok 3 Mini, Grok 2) alongside existing providers
  • Markdown rendering in chat — AI responses now render Markdown with dark-mode-aware styles
  • Debug AI mode — Debug tooling for inspecting AI requests and responses
  • Configurable max tokens — Per-provider max-token configuration with automatic truncation recovery
  • Shell-syntax aware parsing (SOZO-1031) — AI queries and aggregations are sanitized through the shell parser for accurate syntax handling
  • Context-aware conversations (SOZO-1081) — Current query/pipeline is fed to the AI on every message for better suggestions
  • Chatbot positioning (SOZO-1139) — z-index lowered to 1210 (below dropdowns at 1250); top boundary respects the custom title bar

Custom Title Bar & Window Chrome

  • Custom title bar for all platforms (SOZO-842) — New draggable title bar with taller height (40px), larger logo, and subtle workspace selector on macOS, Windows, and Linux
  • VS Code-style menu bar (SOZO-1015) — Custom menu bar for Windows/Linux title bar with menu-action IPC handler and hidden native menu; rounded corners on Linux
  • Title bar polish (SOZO-1047) — Increased Win/Linux title-bar logo/text size, adjusted vertical alignment, moved workspace gear icon to the left of the dropdown
  • Windows title bar theme (SOZO-1178) — Dynamic overlay theme that follows app theme; light-mode title bar tuned to #f4f6f4 to match the overlay; border extended under the overlay with box-shadow
  • Memory Settings menu (SOZO-1137) — Added to Windows/Linux menu; Developer Tools entry removed; duplicate "Getting Started" removed from File menu (kept in Help)
  • Platform modifier hints (SOZO-1156) on macOS / Ctrl elsewhere now displayed consistently across modals (Getting Started, GridFS preview/zip/PDF, comparison results, job item table, export job list, section menu, keyboard shortcuts)

MongoDB Data & Workflow

  • Schema editor drag-to-reorder & sort (SOZO-992) — Drag fields to reorder and sort columns in the schema editor
  • Table view interaction (SOZO-760) — Background context menu and click-to-deselect in table view
  • Unmapped fields handling (SOZO-1032) — "Include unmapped fields" toggle and on-missing field handling UI for imports/syncs; defaultValue now saves correctly, debounced while typing, restricted to string types, with On Missing help text
  • Query state preservation (SOZO-902) — Query state preserved when relocating panels
  • Mongo-to-Mongo dump gzip (SOZO-1082) — Dump operation respects the gzip flag
  • MongoScript job progress — Indeterminate progress bar for single-script jobs
  • Background query loading (SOZO-1166) — Collection loading continues in the background when switching tabs; background query results persist; Cancel works on tab switch; fixes stuck-loading state when switching back
  • Restricted-user collection counts (SOZO-1154) — Collections no longer show (0) for MongoDB users without dbStats privilege
  • MongoBuildInfo (SOZO-1130) — Safe Int / Double parsing for fields that vary by server version
  • JSON import timezone fix (SOZO-1116) — Import no longer fails on ISO-8601 timezone offsets without a colon (e.g. +0530)

Improvements

Zoom System (SOZO-1049, SOZO-1070)

  • Windows zoom shortcuts (SOZO-1049) — Fixed Ctrl+/− zoom shortcuts on Windows
  • Zoom on all platforms — Keyboard zoom handler extended to macOS, Windows, and Linux; native zoom menu replaced with custom handlers
  • CSS content-only zoom (SOZO-1070) — Experimental CSS-based zoom with centered counter-zoomed toast (later reverted to native Electron zoom for stability)
  • Zoom layout — Workspace height now uses flex: 1 instead of calc(100vh) to cooperate with zoom transforms

Windows Drag & Drop (SOZO-1029)

  • Fixed Chromium Windows drop-event bug at devicePixelRatio: 1
  • Dragover handlers attached directly to drop target elements
  • effectAllowed changed from link to all for Windows compatibility
  • Drag image kept in DOM; transparent-GIF ghost replaces canvas-based drag image at 100% zoom

Charts & Visualization

  • Scatter plot legend (SOZO-1042) — Legend position fixed at smaller window sizes
  • Additional chart rendering improvements

Tabs & Navigation

  • Middle-click to close tabs (SOZO-1159) — Browser-style middle-click closes a tab via window-level auxclick (no drag interference)

Theming

  • Light/dark mode for File Explorer modal and additional modals/UI components
  • Loading-state background fix in dark mode (dark:bg-slate-50bg-slate-50)
  • Dropdown colors on Linux/Windows (SOZO-1133) — Fixed Task Manager History dropdown contrast

Forms & Dialogs

  • MongoScript job form — Target and transformation fields hidden for MongoScript jobs; validation and title corrected
  • Type editor popup (SOZO-1085) — No longer clipped in DB Schema collection card
  • Modal backdrop close — Uses mousedown instead of click to prevent accidental close on drag-out
  • Login disclaimer modal — No longer closes on outside click
  • Query builder — Fixed operator autocomplete behavior; fixed deletion of disabled expression when running a query
  • SQL connection save — UUID generation, name sync, dashboard refresh, and form validation all fixed
  • Dropdown positioning (SOZO-1128) — Race condition and stale focus state fixed

Jobs & Exports

  • MongoScript jobs — Capture print output, rethrow errors, cleaner error messages
  • Job delete — Cleans up dependencies on sibling jobs
  • Field mapping (SOZO-1097) — Fixed preview and transformation for query and collection exports

File Explorer & Paths

  • check-path and create-directories endpoints for path validation
  • Tilde (~) expansion in directory listing and target file/folder paths
  • Home-directory detection fix in File Explorer
  • Inline path validation with a "create directory" offer for source and target

Licensing

  • Lock state defaults from license (SOZO-1158) — No license starts locked; lock state is derived from the active license rather than user-configurable in that case

Infrastructure

Backend

  • New src-sql/ module — Entire SQL subsystem in its own Gradle source set: connection manager, DDL service, metadata service, monitoring service, table service, DDL controller, editor controller, dashboard SSE controller, table controller, user management controller, monitoring controller, compare controller, and sync job controller
  • Binary ↔ BsonBinary Spring Data converters — New converters added; minimongo bumped to 1.6.15 for BsonBinary deserialization fix (1.6.14 intermediate)
  • Desktop mode securitysecurity.enabled now matches desktop-mode for consistent enforcement
  • Deep-link auth flow — Register endpoint ensures user record exists
  • AI prompt — Restored projection-only example in AI prompt
  • Electron — Debug flag removed from package.json; window config adjusted for 40px title bar; traffic-light position adjusted for custom title bar; resetMemorySettings IPC handler added; toggleDevTools removed from menu actions
  • Spring bean ambiguity fix — Use ExportEngineMongoToMongo instead of AbstractExportEngineMongo
  • JWT filter NPE fix in the new SQL endpoints
  • Unit test fixes and new SQL-side tests (DatabaseTypeTest, JdbcDriverLoaderServiceTest, SqlConnectionManagerTest, SqlDbConnectionConfigTest, SqlTableServiceTest, MySqlMonitoringStrategyTest), plus new tests for ChartConfigValidatorTest, MongoDocumentMapperTest, SqlDialectTest

Frontend

  • 15 new SQL activity components and matching activity models
  • New shared SQL components: sql-ace-editor, sql-codemirror-editor, sql-connection-form, sql-connection-list, sql-connection-info-dialog, sql-table-tree-view, sql-table-cell, sql-table-view-draggable, sql-query-builder, sql-query-explain (with per-dialect parsers), sql-row-edit-modal, sql-batch-update-modal, sql-batch-delete-modal, sql-fk-preview-modal, sql-user-management-container
  • Dashboard refresh wiring for SQL connection lifecycle
  • Dark-mode chat styles and AI config panels for new providers
  • FontAwesome local webfonts dropped in favor of the CDN/CSS-only flow

Diff scale

  • Frontend: 881 files changed, 142,787 insertions, 19,844 deletions
  • Backend: 431 files changed, 34,915 insertions, 2,682 deletions

Notes

  • Several intermediate commits (SOZO-1070 CSS zoom, SOZO-999 SQL compare early revisions, SOZO-1159 middle-click first attempt) were reverted and reintroduced; the shipped behavior reflects the final state.
  • SqlDump → MongoDatabase was prototyped and removed before release to keep the matrix focused on the supported cross-engine paths.
Read the full v1.0.1685 release notes

v1.0.1331-4

April 13, 2026
  • Fix Connection SSH + Replica Set Bug

v1.0.1331-2

Critical Update
March 26, 2026
  • Critical Issue in the Shell not able to decode ISODATE

v1.0.1331

March 23, 2026

================================================================================
NEW FEATURES
================================================================================

MONGODB SYNC (FULL FEATURE)


  • Real-time data synchronization
  • New MongoDB-to-MongoDB sync engine with change stream watching, polling
    fallback, and oplog window checking

  • Sync job management
  • Create, start, pause, resume, and stop sync jobs with full lifecycle
    control

  • Sync monitoring dashboard
  • Live sync progress tracking via SSE with metrics collection (documents
    synced, lag, throughput)

  • Initial sync support
  • Bulk initial data sync with progress tracking before switching to live
    change stream replication

  • Transformation mappings
  • Define field-level transformations during sync with a dedicated
    transformation editor component

  • Dead letter queue
  • Failed documents are captured in a dead letter queue for inspection
    and retry

  • Heartbeat & health checks
  • Automatic heartbeat scheduling to detect stalled sync jobs

  • Sync audit logging
  • Full audit trail of sync operations for debugging and compliance

  • Three new activity types
  • MongoSync, MongoSyncList, and MongoSyncMonitor activities with
    dedicated UI components

SQL DATABASE CONNECTIVITY


  • SQL driver management
  • New SQL driver controller and loader service with support for
    PostgreSQL, MariaDB, MSSQL, and Oracle

  • JDBC driver lists
  • Platform-specific JDBC driver manifests for dynamic driver loading

  • SQL connections dialog
  • Enhanced SQL connections dialog with improved configuration UI

SUBSCRIPTION & LICENSE MANAGEMENT


  • Trial expiration notification modal (LM-31)
  • New modal warns users when their trial period is about to expire

  • Subscription expiration modal (SOZO-922)
  • Unified expiration modal for all license statuses replacing the
    forced-logout dialog

  • Improved expiration detection
  • Enhanced license service with better expiration detection logic

================================================================================
IMPROVEMENTS
================================================================================

PERFORMANCE


  • Fix heap memory leak in table views
  • Clear old tableUtils/shadowTable instances before creating new ones,
    preventing memory buildup

  • Fix heap memory leak on pagination
  • Clear old data before fetching new page to prevent memory accumulation

JSON SCHEMA EDITOR


  • Enhanced schema editor UI
  • Updated JSON schema line component with improved styling and additional
    editing capabilities

  • Schema viewer improvements
  • Updated mongo-schema-viewer activity with enhanced layout

EXPORT


  • Fix file extension not updating
  • File extension now correctly updates when switching export target type

COLLECTION VIEW


  • Collection compare enhancements
  • Updated collection compare component with additional comparison options

  • Collection selector improvements
  • Enhanced collection selector with better filtering

Read the full v1.0.1331 release notes

Looking for the latest version?

Go to Downloads