Metabase 60 changelog
Before you upgrade, back up your Metabase application database!
Check out our upgrading instructions.
Get the most out of Metabase. Learn more about advanced features, managed cloud, and first-class support.
Metabase 60.3
Upgrading | 60.3
Metabase Open Source | 60.3
- Docker image:
metabase/metabase:v0.60.3.x - JAR download
Metabase Enterprise | 60.3
- Docker image:
metabase/metabase-enterprise:v1.60.3.x - JAR download
Enhancements | 60.3
- Render tables in AI markdown (#73125)
- Clean up buttons in Admin UI (#73010)
- Open Metric Viewer in the same tab (#73009)
- fix: enabling metabase ai requires multiple clicks (#72974)
- Add spacing above buttons in new collection modal (#72927)
- BOT-1368 Drop metabase-enterprise.metabot.task.ai-usage-trimmer (#72926)
- Fix darker background behind disabled source input in table overview (#72915)
- Add a step to show fk tables in publish flow from Library (#72875)
- Rename remaining ‘library’ reference to ‘synced collection’ (#72821)
- Fix db filter in metadata endpoint (#72791)
- Fix issues with Codex MCP search + query pagination/row limit semantics (#72741)
- Fix metabot button overlap on transform screen (#72727)
- Data Complexity Score (#72681)
- Show Python Library even when we have 0 transforms (#72638)
- update copy in Enable Transforms Page based on plan (#72625)
- Fix metrics on models with custom column dims (#72164)
- feat: i18n workspace permission error msgs (#72152)
- Guard transform runner from being poisoned by unrunable transforms (#72149)
- Suppress New Login emails after first X sent (#30242)
Bug fixes | 60.3
Administration
- Invite someone modal shows up with an error state (#72356)
- OAuth consent page breaks custom logo when
application-logo-urlis a data URI (#71772)
Reporting
- Columns sometimes missing from Dashboard Subscription (#72922)
- Add spacing above buttons in new dashboard modal (#72497)
Other
- Join analysis lens in transform inspector doesn’t work (#73074)
Already Fixed | 60.3
Issues confirmed to have been fixed in a previous release.
Under the Hood | 60.3
Other
Metabase 60.2
Upgrading | 60.2
Metabase Open Source | 60.2
- Docker image:
metabase/metabase:v0.60.2.x - JAR download
Metabase Enterprise | 60.2
- Docker image:
metabase/metabase-enterprise:v1.60.2.x - JAR download
Enhancements | 60.2
Visualization
Other
- Add streaming endpoint for bulk metadata retrieval
GET /api/database/metadata endpoint(#72683) - Hide process UUID in log viewer if there is only one process (#67152)
- Implement current-user-table-privileges for Oracle and SQL Server to fix N+1 query (#72656)
AI
- Show the MCP URL in the admin panel (#72737)
- Do not disable agent api and mcp when not configured (#72730)
- Align embedding Metabot profile with NLQ profile tools and system prompt (#72448)
- Allow use of legacy metabase AI (#72568)
Bug fixes | 60.2
Administration
- Buttons on metric homepage should be the same height (#71624)
- Oracle DB with locale specific start of week breaks “first day of week” setting (#57794)
Database
- TIMESTAMP_TRUNC doesnt work for joins using calculated columns (#59614)
Embedding
- [SDK] Crash due to OSS hook turning into EE hook when ComponentProvider mounts late (#70763)
Operation
- Remote Sync produces phantom YAML changes in PRs (#72270)
Organization
- H2 sample data runs out April 2026 which affects Example collection (#72551)
Querying
- Row Chart Drilldowns on empty values return no results. (#67079)
Other
- [Bug] Transforms crash on OSS edition: db-routing-enabled? tries to load Enterprise-only model DatabaseRouter (#72764)
- Don’t show Open in Data Studio action if the user doesn’t have DS permission (#71625)
- Metabot creates malformed chart URL (#72566)
- Metabot doesn’t see column names in saved questions (#72469)
Metabase 60.1
What’s in the release? | 60.1
Upgrading | 60.1
Metabase Open Source | 60.1
- Docker image:
metabase/metabase:v0.60.1.x - JAR download
Metabase Enterprise | 60.1
- Docker image:
metabase/metabase-enterprise:v1.60.1.x - JAR download
New features | 60.1
AI
- Metabot and Agent API for everyone!
- Metabot and Agent API are now available in all versions, including Open Source, and on both Cloud and self-hosted Metabases.
- Bring Your Own Key for Metabot.
- Bring your own API key and specify which model you want to use for Metabot. Anthropic only for now (stay tuned!). Both Metabase Cloud and self-hosted.
- Metabase MCP server.
- Official way for you to connect Claude, Cursor, etc to Metabase.
- Metabot in Slack
- Ask questions like “
@Metabothey what’s our revenue” directly from Slack
- Ask questions like “
- File-based development
- Metabase content like questions and dashboards can be serialized as YAML files. You can edit those YAML files directly, but the most productive workflow is to let an agent do the editing for you.
Querying and visualization
-
Metrics explorer and new metrics home page.
- Metrics get a new home page to edit the metric’s definition and configure its settings.
- Metrics explorer lets you compare different measures and metrics across dimensions, add filters, and specify breakouts
- Visit a metric to see the home page, and click on Explore (or append
/exploreto your instance URL) to check it out;
-
Replace data sources (Pro/enterprise only)
- Swap all occurrences of a data source X to the data source Y.
- To try out, go to Data Studio > Dependencies, search for data source to replace, and click on
-
Stacked bar/line/area/scatter graphs.
- Visualize multiple series as facets/trellis/stacked charts, instead of stacking the series themselves.
- in visualization settings, toggle on “Split series into panels”.
-
Freeze columns and rows in table visualization
- Exactly what you think it is: pick the number of columns or rows to freeze in a table viz, and they’ll stay on the screen while you scroll.
Transforms
-
Transform inspector (Requires the Advanced transforms add-on)
- Diagnostic view for your transforms, where you can check things like column stats, unmatched rows for joins, value distributions etc.
- Reminder: transforms were introduced in v59 and let you, well, transform your data inside Metabase and write the results back into your data warehouse.
- Go to Data Studio > transforms, select a transform, and switch to “Inspect” tab.
-
Replace models with transforms (Pro/enterprise only)
- One-click way to swap a model for a transform in your questions.
- Use this to swap your persisted models for transforms. Transforms are more performant and are supported for the majority of drivers.
- Go to Data studio > Transforms and click on “Tools”
Administration and Operation
- Auth: OpenID authentication (#3101)
- Support for Git Providers Beyond GitHub in Metabase Remote Sync (#65880)
Embedded analytics updates | 60.1
-
Embedding startup guide
- Step-by-step wizard to set up Metabase embedded in your app
- Go to Admin settings > Embedding > Setup guide.
-
OSS users can now configure CORS settings for Embedding
- Add “New embed” to command palette in OSS
- [SDK] Support staged data picker for questions based on questions
- [SDK] Specify targetCollection for dashboards
- [SDK] Speed up the embedding sdk loading time: do auth flow in parallel with bundle loading and split the bundle in chunks
Notable UI changes | 60.1
- New experience for metric exploration and editing.
- When visiting a metric, you’ll now see a new metric home page where you can edit the metric’s definition, configure caching, see history etc.
- “Data Structure” section of Data Studio has been renamed to “Tables”
Enhancements | 60.1
New serialization format
- We simplified the YAML format for serialized content: removed unnecessary fields, used human-readable file structure etc.
- Your exports/imports will still work, but you might see a large diff on first export after this change.
Administration and operation
- Disallow adding new classpath resources as geojson paths (#70745)
- Introduce config option to specify known hosts for SSH tunnels (#71194)
- Fail early if unsupported appdb version is detected (#36848)
Data studio
- Make it clearer why transforms can’t be created in read-only mode (#71051)
- Transform tables should not be editable (#70441)
- Enable native entity validation for dependencies (#69784)
- Implement improved illustration for in-app Library upsell (#69760)
Other
Read more…
- Improve Accessibility In Dashboards #70540
- Update copy and styling of table variable alias toggle (#71101)
- Validate FK target and dimension remap fields belong to the same database (#70879)
- Update minimum supported App DB versions: Postgres 14, MySQL 8.4, MariaDB 10.6 (#70446)
- Semantic search speedup (#70317)
- remove task logs from usage analytics (#69739)
- Add keyboard shortcut (
g s) to navigate to Data Studio (#71328) - Reject multi statement queries (#71573)
- Version slack secret and expire linked accounts on rotation (#72559)
- Fix OIDC SSRF: validate all discovery-document URLs before HTTP requests (#72534)
- Migrate hive-like driver from hive-jdbc$standalone to hive-jdbc (#72379)
- Re-export usage analytics collection with new serialization format (#72063)
- Speed up table sync process for SQLite. (#71950)
- Add Agent API endpoints to fetch metadata (#71852)
- Fix empty string content blocks in anthropic API (#71765)
- Let Metabot write a brief response after building an x-ray (#71758)
- Remove stale archived_message instructions (#71715)
- metabot: ability to make requests via ai proxy w/o having api key configured (#71714)
- [BOT-1233] Fix
get-table-detailsarg flag typos (#71679) - BOT-1226 Only run metabot internal tasks when the llm-metabot-provider-lite is configured (#71667)
- [metabot] add repr for measures and segments (#71656)
- feat: metabase as an AI provider (#71655)
- Fix typo in transform database validation messages (#71596)
- [Metabot] Hide embedded settings if embedding is not available (#71594)
- adjust styling on parameter placeholders (#71577)
- Adjust search schemas (#71572)
- Native query context formatting (#71566)
- metabot llm calls: tools are optional/maybe (#71555)
- Improve model encapsulation with serialization bypass (#71553)
- BOT-1199 ORDERS table link points to an invalid path (#71543)
- [Metabot] Temporary removal of analyze chart button on dashboard page (#71540)
- [Metabot] Hide metabot feedback buttons on non-hosted instances (#71539)
- [backport 60] Inject context in user message (#71045) (#71503)
- Optimize transform target table backfill migrations (#71487)
- Add db fallback for renamed settings (#71470)
- Inject context in user message (#71045)
- Make dependency graph calculation async on entity updates (#71037)
- Safer conversion of the Data Analysts group (#71032)
- Increase debounce delay to 500ms (#70083)
- Skip cache auto-refresh attempts for routed dbs (#70082)
- Scroll to top on page change in admin settings (#71369)
- feat: redesign AI settings (#72041)
- Update Measure Icon in Data Studio and Metric Explorer (#71924)
- Adding Details tab to table section (#71722)
Bug fixes | 60.1
Administration
- Row and column security through SQL on table with number casted to datetime shows incorrect values (#69867)
- Output of fk-metadata does not match schema (#28060)
- When a transform fails and an email is sent, a link to the failing transform is hard to spot (#68360)
- Inconsistent Sidebar Behavior in Database-Reference UI (Version 1.59.4) (#72001)
- Header briefly stays light when switching themes (#71992)
- MB_SESSION_TIMEOUT is not enforced server-side — sessions survive tab closure (#71796)
- Don’t show a divider in metric right-click menu if there’s only one item (#71626)
- Metric viewer and homepage should respect row level security (#71576)
- Metrics viewer errors on metrics with joins (#71455)
- Metrics viewer doesn’t work well with Boolean types (#71377)
- database routing modal cuts the buttons at the bottom (#71297)
- Data picker doesn’t surface tables for tenant user even though they have table access (#71251)
- “Regenerate key” does nothing if MB_JWT_SHARED_SECRET is set (#70327)
- Confusing UX in Admin Panel when Configuring JWT Auth via Env Var (#66533)
- Textarea auto-resizes but remains scrollable (#55103)
Database
- Sometimes BQ Connection Fails on Cloud Instances (#70908)
- Query error in Athena/Trino/Presto if Column name “source” is selected from Nested Question (#70224)
- Snowflake uses an old AWS package leading to warnings on our logs (#68079)
- Boolean expression in a custom column is accepted but does not not work on SQL Server (#53805)
- 500 error on /api/dataset on sqlite (#71205)
- Query Preview applies formatting, which breaks GoogleSQL Pipe Operators (#70447)
- TIMESTAMP_TRUNC doesnt work for joins using calculated columns (#59614)
Embedding
- Modular Embedding: Table column widths don’t respect themed font size (#71054)
- Drill through shows duplicate events due to URL changing twice. (#68856)
- Make Anthropic API errors and SSE parsing more explicit (#72471)
- Drilling in
MetabotQuestionhides question results (#72207) <metabase-question>in Guest embed callspulse/form_inputendpoint that does not exist (#71738)- Inconsistent terminology between “exploration” and “question” in embedded experience (#71612)
- 59 broke funnel visualization with different locale in Static embedding (#71488)
- Modular Embedding: Table column widths don’t respect themed font size (#71054)
- React SDK throws invalid unhandled rejection errors when non-critical requests fail (#65536)
- Variable/Parameter odering is not kept on published questions (#62079)
Operation
- Remote Sync does not show a UI error when Git authentication fails (#71148)
Organization
- Sidebar gets automatically closed twice when navigating bookmarked entities (#44602)
Querying
- Bins are mislabeled when custom field labels are in use (#57978)
- Can’t differentiate between multiple joins to the same table (#37025)
- Models Metadata changes does not work for aggregation metrics (#26755)
- Fields won’t get remapped on native models even if the metadata says so (#35842)
Reporting
- It’s possible to drag placeholder cards from the entity picker modal (#71273)
- Bad optimization on dashboard chart re-sizing - dependent on FPS (#70451)
- Buttons in alert modal aren’t vertically aligned (#71945)
- Restore New Dashboard button in save question picker (#71873)
- Viz icon uses background color when hovering a question item (#71649)
- Page titles not in sync with data studio tabs (#71214)
- Alerts Continue to be Sent to Deactivated Users (#70686)
Visualization
- Bar/line chart with time and boolean breakouts shows no data when time breakout is removed in viz settings (#70835)
- List of available charts changes when pivot is selected (#70013)
- Spacing on x-axis of time-series charts is inconsistent starting on v57 (#69943)
- Broken font family on downloaded results as PNG (#66416)
- Date labels on x-axis for bar/line chart are leaving large gaps when there is room for labels, makes charts harder to read (#63103)
Other
- Remote sync fails switching back from test branch (#72284)
- Checkbox misaligned when error is shown (#72224)
- to_session endpoint triggers the “Login from new device” email every time (#68220)
- Pivot table - misalignment of rows / columns when a scroll bar is present (#57986)
- data_model-only export will always fail if there is a card in a personal collection used by anything in normal collections (#71940)
Metabot
- Metabot can’t update or create transforms (#71100)
- “Have Metabot fix it” - fixed question is treated as new on Save (#68992)
Metabase 60.0 BETA
What’s in the release? | 60.0-beta
NOTE: This is a beta release. We don’t recommend running this in production without testing it in a staging environment first. If you encounter any issues with this beta, please report them on GitHub.
Upgrading | 60.0-beta
Metabase Open Source | 60.0-beta
- Docker image:
metabase/metabase:v0.60.0-beta - JAR download
Metabase Enterprise | 60.0-beta
- Docker image:
metabase/metabase-enterprise:v1.60.0-beta - JAR download
New features | 60.0-beta
AI
- Metabot and Agent API for everyone!
- Metabot and Agent API are now available in all versions, including Open Source, regardless of plans or deployment options.
- Bring Your Own Key for Metabot.
- Bring your own API key and specify which model you want to use for Metabot. Anthropic only for now (stay tuned!)
- Metabase MCP server.
- Official way for you to connect Claude, Cursor, etc to Metabase.
- Metabot in Slack
- Ask questions like “
@Metabothey what’s our revenue” directly from Slack
- Ask questions like “
Querying and visualization
-
Metrics explorer and new metrics home page.
- Metrics get a new home page to edit the metric’s definition and configure its settings.
- Metrics explorer lets you compare different measures and metrics across dimensions, add filters, and specify breakouts
- Visit a metric to see the home page, and click on Explore (or append
/exploreto your instance URL) to check it out;
-
Replace data sources (Pro/enterprise only)
- Swap all occurrences of a data source X to the data source Y.
- To try out, go to Data Studio > Dependencies, search for data source to replace, and click on
-
Stacked bar/line/area/scatter graphs.
- Visualize multiple series as facets/trellis/stacked charts, instead of stacking the series themselves.
- in visualization settings, toggle on “Split series into panels”.
-
Freeze columns and rows in table visualization
- Exactly what you think it is: pick the number of columns or rows to freeze in a table viz, and they’ll stay on the screen while you scroll.
Transforms
-
Transform inspector (Requires the Advanced transforms add-on)
- Diagnostic view for your transforms, where you can check things like column stats, unmatched rows for joins, value distributions etc.
- Reminder: transforms were introduced in v59 and let you, well, transform your data inside Metabase and write the results back into your data warehouse.
- Go to Data Studio > transforms, select a transform, and switch to “Inspect” tab.
-
Replace models with transforms (Pro/enterprise only)
- One-click way to swap a model for a transform in your questions.
- Use this to swap your persisted models for transforms. Transforms are more performant and are supported for the majority of drivers.
- Go to Data studio > Transforms and click on “Tools”
Administration and Operation
- Auth: OpenID authentication (#3101)
- Support for Git Providers Beyond GitHub in Metabase Remote Sync (#65880)
Embedded analytics updates | 60.0-beta
-
Embedding startup guide
- Step-by-step wizard to set up Metabase embedded in your app
- Go to Admin settings > Embedding > Setup guide.
- Add “New embed” to command palette in OSS
- [SDK] Support staged data picker for questions based on questions
- [SDK] Specify targetCollection for dashboards
- [SDK] Speed up the embedding sdk loading time: do auth flow in parallel with bundle loading and split the bundle in chunks
Notable UI changes | 60.0-beta
- New experience for metric exploration and editing.
- When visiting a metric, you’ll now see a new metric home page where you can edit the metric’s definition, configure caching, see history etc.
Enhancements | 60.0-beta
Administration and operation
- Disallow adding new classpath resources as geojson paths (#70745)
- Introduce config option to specify known hosts for SSH tunnels (#71194)
- Fail early if unsupported appdb version is detected (#36848)
Data studio
- Make it clearer why transforms can’t be created in read-only mode (#71051)
- Transform tables should not be editable (#70441)
- Enable native entity validation for dependencies (#69784)
- Implement improved illustration for in-app Library upsell (#69760)
Other
- Improve Accessibility In Dashboards #70540
- Update copy and styling of table variable alias toggle (#71101)
- Validate FK target and dimension remap fields belong to the same database (#70879)
- Update minimum supported App DB versions: Postgres 14, MySQL 8.4, MariaDB 10.6 (#70446)
- Semantic search speedup (#70317)
- remove task logs from usage analytics (#69739)
Bug fixes | 60.0-beta
Administration
- Row and column security through SQL on table with number casted to datetime shows incorrect values (#69867)
- Output of fk-metadata does not match schema (#28060)
- When a transform fails and an email is sent, a link to the failing transform is hard to spot (#68360)
Database
- Sometimes BQ Connection Fails on Cloud Instances (#70908)
- Query error in Athena/Trino/Presto if Column name “source” is selected from Nested Question (#70224)
- Snowflake uses an old AWS package leading to warnings on our logs (#68079)
- Boolean expression in a custom column is accepted but does not not work on SQL Server (#53805)
Embedding
- Modular Embedding: Table column widths don’t respect themed font size (#71054)
- Drill through shows duplicate events due to URL changing twice. (#68856)
Querying
- Bins are mislabeled when custom field labels are in use (#57978)
- Can’t differentiate between multiple joins to the same table (#37025)
- Models Metadata changes does not work for aggregation metrics (#26755)
- Fields won’t get remapped on native models even if the metadata says so (#35842)
Reporting
- It’s possible to drag placeholder cards from the entity picker modal (#71273)
- Bad optimization on dashboard chart re-sizing - dependent on FPS (#70451)
Other
- “Have Metabot fix it” - fixed question is treated as new on Save (#68992)