feat(scripting): add MongoDB support to JavaScript scripting - #101
Merged
Conversation
Extend db.query scripting to MongoDB connections. In a Mongo script,
db.query(...) takes a mongo-shell command string (db.coll.find({…})) instead
of SQL — the driver's stream() already parses that syntax, so the existing
ScriptRunner seam works unchanged; only the run_script SQL-only gate needed
relaxing to also allow QueryLang::MongoShell.
- Backend: run_script accepts SQL or MongoShell connections.
- Frontend: scriptingAvailable includes the mongo engine; the JS-in-SQL-mode
guard is skipped for Mongo (a shell command isn't a mis-typed script).
- Test: real-driver integration test runs db.query('db.users.find({…})')
through the actual Mongo driver in a script and iterates the array result.
- Docs: scripting page now covers MongoDB + the Console strip.
Merged
oesukam
added a commit
that referenced
this pull request
Aug 6, 2026
Version bump for the **v0.4.0** release: `0.3.0 → 0.4.0` in `tauri.conf.json`, `Cargo.toml`, and `Cargo.lock`. ## What's in v0.4.0 (since v0.3.0) **Features** - MongoDB support: JS scripting, table-data browse/edit/insert/delete, connection URL, TLS handling (#101, #103, #105) - Engine registry — per-engine metadata drives the connection form, queries, display (#103) - Rail sessions behave like tabs: click selects, right-click to close, dim inactive, reconnect on click (#104) - Row count + query timer moved to a footer below the grid, for both table-data and SQL tabs (#108, #109) **Fixes** - Grid fills the pane for few-column tables; no open blink (#106) - Edit-connection opens the real connection; Mongo honors its pinned database (#107) - Startup white-flash eliminated (dark window bg + pre-render tab hydration) (#110) - Mongo defaults to TLS-off so a local Mongo connects (#105) - Actionable commitlint PR-title error (#102); release gated on lint/typecheck/tests (#100) ## Gate lint (0 errors), typecheck (CI-style clean), 321 unit tests, frontend build — all green locally. After merge, the Release workflow is triggered with `publish=false` to produce a **draft** release for review.
oesukam
added a commit
that referenced
this pull request
Aug 22, 2026
Version bump for the **v0.4.0** release: `0.3.0 → 0.4.0` in `tauri.conf.json`, `Cargo.toml`, and `Cargo.lock`. ## What's in v0.4.0 (since v0.3.0) **Features** - MongoDB support: JS scripting, table-data browse/edit/insert/delete, connection URL, TLS handling (#101, #103, #105) - Engine registry — per-engine metadata drives the connection form, queries, display (#103) - Rail sessions behave like tabs: click selects, right-click to close, dim inactive, reconnect on click (#104) - Row count + query timer moved to a footer below the grid, for both table-data and SQL tabs (#108, #109) **Fixes** - Grid fills the pane for few-column tables; no open blink (#106) - Edit-connection opens the real connection; Mongo honors its pinned database (#107) - Startup white-flash eliminated (dark window bg + pre-render tab hydration) (#110) - Mongo defaults to TLS-off so a local Mongo connects (#105) - Actionable commitlint PR-title error (#102); release gated on lint/typecheck/tests (#100) ## Gate lint (0 errors), typecheck (CI-style clean), 321 unit tests, frontend build — all green locally. After merge, the Release workflow is triggered with `publish=false` to produce a **draft** release for review.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Extends JS scripting mode to MongoDB connections (previously SQL-only).
How it works
In a Mongo script,
db.query(...)takes a mongo-shell command string (db.coll.find({…})) instead of SQL. The Mongo driver'sstream()already parses that syntax and streams documents as rows, so the existingScriptRunnerseam works unchanged — only therun_scriptSQL-only gate needed relaxing to also allowQueryLang::MongoShell.The array result, console strip, ⌘+Enter, and return-value echo all behave exactly as they do for SQL scripting.
Changes
run_scriptaccepts SQL or MongoShell connections.scriptingAvailableincludes themongoengine; the JS-in-SQL guard is skipped for Mongo (a shell command isn't a mis-typed script).db.query('db.users.find({…})')through the actual Mongo driver (testcontainer) in a script and iterates the array result.Tests
Mongo real-driver script test passes; fmt/clippy clean; frontend tsc + lint (0 errors) + 276 unit tests green.
Completes the MongoDB scripting task from the scripting-mode roadmap.