Skip to content

Releases: philbir/mango

Mango 0.5.0-beta.6

Mango 0.5.0-beta.6 Pre-release
Pre-release

Choose a tag to compare

@philbir philbir released this 10 Jul 21:11

0.5.0-beta.6

✨ Features

OIDC browser selection

  • Pick, per connection, which browser runs the interactive Azure OIDC (azure-browser) sign-in flow — Chrome, Edge, Firefox, or Safari, or fall back to the system default.
  • Browser profile picker: for browsers that expose profiles, choose the exact profile (e.g. a specific work account) to authenticate with instead of the default one.
  • Unavailable browsers are detected and disabled in the picker, so you only see what's actually installed.
  • New OIDC auth dialog that surfaces the sign-in prompt and status inline while the browser flow completes.
  • The chosen browser and profile persist on the connection (oidcBrowser / oidcBrowserProfile).

Batch document operations

  • Multi-select rows in the collection query results — per-row checkboxes plus a select-all checkbox in the header (with indeterminate state).
  • A selection action bar shows the count with Update and Delete actions that run updateMany / deleteMany against the selected documents.
  • Selection builds a correctly-typed { _id: { $in: [...] } } filter and can span pages — retained _id values keep off-page rows in the batch.
  • A confirmation dialog shows the target filter, an editor for the update operator body, and a live db.<coll>.deleteMany(...) / updateMany(...) command preview before you commit.
  • Guardrails: the server refuses a deleteMany / updateMany with an empty filter — bulk-clearing goes through the dedicated Clear action instead.

Delete / clean collections

  • From the database Stats tab you can now, per collection:
    • Clear — delete all documents while keeping the collection and its indexes.
    • Delete (drop) — remove the collection entirely.
  • Both are behind an explicit typed confirmation dialog to prevent accidents.

JSON display formats

  • Choose how documents render in the viewer via a format selector:
    • Legacy Mongo Shell
    • MongoDB Shell
    • Simple
    • Mongoexport (canonical Extended JSON)
    • Pure (plain JSON, without MongoDB types)
  • Mirrors the export/copy formats offered by tools like Studio 3T. The chosen format is remembered across sessions.

🐛 Fixes

  • GridFS: fixed collection ordering in the sidebar.
  • Auto-updater: fixed update handling.

⚙️ Under the hood

  • Faster listing counts — unfiltered listings use estimatedDocumentCount() (O(1) metadata read) instead of a full scan, avoiding maxTimeMS timeouts on large collections.
  • Expanded the local Mongo seed script and added tests (mongo-util, browser detection).
  • Auto-updater: fixed the desktop update check being blocked by the webview ACL, and quieted the background check so it no longer shows an error banner when no manifest is reachable.
  • Dependencies: security update round — 27 → 2 advisories (remaining two have no upstream fix); Tauri updated within v2.

Mango 0.5.0-beta.5

Mango 0.5.0-beta.5 Pre-release
Pre-release

Choose a tag to compare

@philbir philbir released this 10 Jul 20:22

0.5.0-beta.5

✨ Features

OIDC browser selection

  • Pick, per connection, which browser runs the interactive Azure OIDC (azure-browser) sign-in flow — Chrome, Edge, Firefox, or Safari, or fall back to the system default.
  • Browser profile picker: for browsers that expose profiles, choose the exact profile (e.g. a specific work account) to authenticate with instead of the default one.
  • Unavailable browsers are detected and disabled in the picker, so you only see what's actually installed.
  • New OIDC auth dialog that surfaces the sign-in prompt and status inline while the browser flow completes.
  • The chosen browser and profile persist on the connection (oidcBrowser / oidcBrowserProfile).

Batch document operations

  • Multi-select rows in the collection query results — per-row checkboxes plus a select-all checkbox in the header (with indeterminate state).
  • A selection action bar shows the count with Update and Delete actions that run updateMany / deleteMany against the selected documents.
  • Selection builds a correctly-typed { _id: { $in: [...] } } filter and can span pages — retained _id values keep off-page rows in the batch.
  • A confirmation dialog shows the target filter, an editor for the update operator body, and a live db.<coll>.deleteMany(...) / updateMany(...) command preview before you commit.
  • Guardrails: the server refuses a deleteMany / updateMany with an empty filter — bulk-clearing goes through the dedicated Clear action instead.

Delete / clean collections

  • From the database Stats tab you can now, per collection:
    • Clear — delete all documents while keeping the collection and its indexes.
    • Delete (drop) — remove the collection entirely.
  • Both are behind an explicit typed confirmation dialog to prevent accidents.

JSON display formats

  • Choose how documents render in the viewer via a format selector:
    • Legacy Mongo Shell
    • MongoDB Shell
    • Simple
    • Mongoexport (canonical Extended JSON)
    • Pure (plain JSON, without MongoDB types)
  • Mirrors the export/copy formats offered by tools like Studio 3T. The chosen format is remembered across sessions.

🐛 Fixes

  • GridFS: fixed collection ordering in the sidebar.
  • Auto-updater: fixed update handling.

⚙️ Under the hood

  • Faster listing counts — unfiltered listings use estimatedDocumentCount() (O(1) metadata read) instead of a full scan, avoiding maxTimeMS timeouts on large collections.
  • Expanded the local Mongo seed script and added tests (mongo-util, browser detection).

0.4.1

Choose a tag to compare

@philbir philbir released this 26 May 19:42
b67d27f

What's Changed

  • chore(deps): bump packages and harden yarn install by @philbir in #14

Full Changelog: 0.4.0...0.4.1

0.4.0

Choose a tag to compare

@philbir philbir released this 26 May 18:54
3a6963b

What's Changed

  • Workspaces by @philbir in #10
  • chore(deps): bump tauri from 2.11.0 to 2.11.1 in /desktop/src-tauri in the cargo group across 1 directory by @dependabot[bot] in #11
  • GridFS File Preview by @philbir in #13

Full Changelog: 0.3.6...0.4.0

0.4.0-p.1

0.4.0-p.1 Pre-release
Pre-release

Choose a tag to compare

@philbir philbir released this 14 May 17:37
5011a68

Mango — Workspaces release

This release lands the Workspaces feature alongside a new database tools
view, a one-command Aspire dev environment, and a sweeping dependency refresh
that clears every known security advisory.

✨ Workspaces

Save and version your work. A workspace is a folder of Markdown notebooks —
mix shell queries, document drafts, and notes in one file, then commit the
folder to git. Open any folder as a workspace, browse it as a tree, and pick
up exactly where you left off.

  • Notebook-style editor with executable shell blocks
  • Save-as / open-as dialogs, server-side folder picker, native folder
    picker on desktop
  • Git status badge in the sidebar — clean / modified / untracked at a glance
  • Files are plain Markdown — diff-friendly, no proprietary format

🛠️ Database view

A dedicated "Database" tab joins the connection sidebar with three sub-views:

  • Stats — sizes, document counts, index storage at a glance
  • Dev tools — drop / clear / rename collections, drop a database
    (only shown when MANGO_DEV_MODE=true)
  • Import / Export — JSON / EJSON round-trip for any collection

🚀 One-command dev environment

A new TypeScript Aspire AppHost (aspire run) brings up the whole stack:
MongoDB 8 + Mango server + UI + docs site + sample-data seeder, all
wired together with structured logs and traces in the Aspire dashboard.

  • Sample databases (acme, bloggy) are seeded automatically with
    realistic data — users, products, orders, posts, comments — so a fresh
    clone gives you something to click through immediately
  • MONGO_URL is tracked on every boot, so the "Default" connection
    always points at the active mongo

🔒 Security

Every known advisory in the dependency graph is now fixed:

  • High: OpenTelemetry Prometheus exporter crash (GHSA-q7rr-3cgh-j5r3)
  • Moderate: Vite path-traversal in optimized-deps .map handling
    (GHSA-4w7w-66w2-5vf9), esbuild dev-server SSRF
    (GHSA-67mh-4wv8-2f99), DOMPurify XSS family (8 advisories),
    protobufjs prototype pollution

Audit drops from 3 high + 4 moderate to a single unfixable upstream
deprecation notice.

⬆️ Modern stack

A repo-wide refresh keeps every workspace on the current latest:

  • Runtime: MongoDB driver 7, BSON 7, Hono node-server 2,
    OpenTelemetry 2 / 0.218, Zod 4
  • Frontend: Vite 8, Vitest 4, Tailwind 4 (CSS-first config),
    React 19.2, Monaco 0.55
  • Tooling: TypeScript 6, Aspire CLI 13.3, Tauri CLI 2.11

🧰 Under the hood

  • Migrated Tailwind 3 → 4 with the new CSS-first @theme directive —
    smaller config surface, no more tailwind.config.js
  • OpenTelemetry SDK uses the new resourceFromAttributes API
  • Server noUncheckedIndexedAccess cleanup across API client and
    document table
  • ESLint flat config covers the Aspire AppHost
  • Docker image rename: @antoniq/...@mango/...

📦 Upgrade notes

  • Mongo data: if you have a mango-mongo-data volume from a previous
    release that ran MongoDB 7, you'll need to either let MongoDB do a
    sequential FCV upgrade (mongo:8.0mongo:8.2) or wipe the volume:
    docker volume rm mango-mongo-data
  • Tailwind plugins: if you forked the UI and added Tailwind plugins
    in tailwind.config.js, port them to the @theme block in
    ui/src/index.css
  • Master key: set MANGO_MASTER_KEY (openssl rand -base64 32) to
    keep saved connections readable across restarts — without it Mango
    warns on boot and generates an ephemeral key

Mango 0.3.6

Choose a tag to compare

@lazydonkeytim lazydonkeytim released this 11 May 14:39
6fb9309
Merge pull request #9 from philbir/fix/ui-build-ts-errors

fix: resolve noUncheckedIndexedAccess TS errors in UI client and Docu…

Mango 0.3.3

Choose a tag to compare

@lazydonkeytim lazydonkeytim released this 05 May 07:22
dce5893
Merge pull request #5 from philbir/feat/desktop-auto-update

feat: desktop auto update

Mango 0.3.2

Choose a tag to compare

@github-actions github-actions released this 04 May 19:45
0f95067
Mango 0.3.2

Mango 0.3.1

Choose a tag to compare

@github-actions github-actions released this 04 May 18:55
d7a2b3f
Mango 0.3.1

Mango 0.3.0

Choose a tag to compare

@github-actions github-actions released this 04 May 18:03
7f82579
Mango 0.3.0