Skip to content

Release v0.6.0 — Metabase v0.59+ compatibility & doctor command#16

Merged
rohanraarora merged 17 commits into
mainfrom
release/v0.6.0
Apr 7, 2026
Merged

Release v0.6.0 — Metabase v0.59+ compatibility & doctor command#16
rohanraarora merged 17 commits into
mainfrom
release/v0.6.0

Conversation

@rohanraarora

Copy link
Copy Markdown
Owner

Summary

Release v0.6.0 brings Metabase v0.59+ compatibility, migrates deprecated API endpoints, adds a diagnostic command, and fixes 4 security vulnerabilities.

Added

  • metabase-cli doctor — runs 8 diagnostic checks against your Metabase instance (connectivity, version detection, API compatibility)
  • --template-tags and --template-tags-file flags on question update

Fixed

  • question update --sql no longer corrupts questions on Metabase v0.59+ (stages format support)
  • Migrated alert commands from deprecated /api/alert to /api/notification
  • segment delete uses PUT with archived: true instead of deprecated DELETE
  • dashboard list falls back to search API if /api/dashboard returns 404
  • Security: vite 7.3.1→7.3.2, picomatch 4.0.3→4.0.4 (4 Dependabot alerts)

PRs included

Test plan

  • All 116 tests pass
  • Typecheck passes
  • Build succeeds
  • Security deps verified (vite 7.3.2, picomatch 4.0.4)
  • Tag v0.6.0 and publish after merge

🤖 Generated with Claude Code

rohanraarora and others added 17 commits April 7, 2026 19:06
The Metabase DELETE /api/segment/:id endpoint is deprecated. This change
switches to PUT /api/segment/:id with `archived: true` and a revision
message, adds `archived` to UpdateSegmentParams, and updates the CLI
command description and output to reflect archival instead of deletion.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…urns 404

The GET /api/dashboard endpoint is deprecated in newer Metabase versions.
This adds a fallback to GET /api/search?models=dashboard so the CLI
continues to work when the legacy endpoint is removed.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The Metabase pulse.api.alert namespace is deprecated. This migrates
all alert CRUD operations to use /api/notification endpoints instead:

- list() filters by payload_type=notification/card
- get/create/update use /api/notification/{id} endpoints
- delete archives via PUT with active=false (no DELETE on notifications)
- Alert params translated to notification payload/handlers format
- User-facing CLI interface remains identical

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Metabase v0.59+ stores SQL in dataset_query.stages[0].native instead of
dataset_query.native.query. The update command now detects the format and
patches the correct location. Also adds --template-tags and
--template-tags-file flags to the update command.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Introduces `metabase-cli doctor` which runs connectivity, authentication,
and API endpoint checks against the configured Metabase instance, reporting
pass/fail/warning status for each diagnostic.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add search API fallback for deprecated dashboard list endpoint
Add stages property to DatasetQuery for Metabase v0.59+ support, and
fix type narrowing in question update command for stages and native access.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add npm overrides to force vite >= 7.3.2 and picomatch >= 4.0.4,
fixing 4 Dependabot alerts (3 high/medium vite, 1 medium picomatch).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Fix question update --sql corrupting dataset_query on Metabase v0.59+
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add doctor command for instance compatibility checks
Fix security vulnerabilities in vite and picomatch
Update test expectations to verify the migrated AlertApi correctly
translates calls to /api/notification endpoints with proper payload
and handler translation.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Migrate alert commands from deprecated Alert API to Notification API
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…object

On Metabase v0.59+, stages[0].native holds the raw SQL string directly,
not an object with {query, template-tags}. Spreading a string produced
garbage character keys ({0:"S", 1:"E", ...}) causing query execution to
fail with "Assert failed: (string? sql)".

Now keeps native as a plain string when only updating SQL, and only uses
the object form when template-tags are needed.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@rohanraarora rohanraarora merged commit 92e9bc3 into main Apr 7, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant