Metabase 59 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 59.2
Upgrading | 59.2
Metabase Open Source | 59.2
- Docker image:
metabase/metabase:v0.59.2.x - JAR download
Metabase Enterprise | 59.2
- Docker image:
metabase/metabase-enterprise:v1.59.2.x - JAR download
Breaking changes
- ClickHouse: Additional connection string options must be prefixed with
clickhouse_settings_, otherwise they won’t take effect. See ClickHouse docs.
Enhancements | 59.2
Transforms
- Remove superfluous settings in transform variables (#70095)
- Change transform metering to tier-based keys (#70366)
Metabot AI
- Metabot should receive transform errors (#70462)
- Filter out inactive tables for Metabot (#70440)
- Improve appearance of
@-mention menu in Metabot (#69650)
Other
- Allow loading of tables serialized in v58 into in v59+ (#70486)
- Use the default Metabot conversation profile in SQL editor (#70436)
- Fix incomplete URL substring sanitization in LeafletMap (#70428)
- Update jspdf to fix security issues (#70393)
- Don’t call trial check EE endpoint in OSS for Remote Sync upsell (#70349)
Bug fixes | 59.2
Administration
- Remote sync - cannot update dashboard caching policy on a read-only instance (#70481)
- Hashed alias in model becomes unresolvable after upgrade when model uses date-transformed joined field with sandboxing (#70231)
- SSO users locked out after subscription downgrade removes SSO capability (#70171)
- Models from csv uploads to Metabase Cloud Storage disappear (#69667)
- log lines about semantic search don’t mean anything (#70032)
Database
- Upgrade ClickHouse JDBC driver to 0.9.6+ to fix Nested column reading (#70432)
- ClickHouse driver incorrectly marks tables inactive and truncates database name with hyphens (e.g. cs-backend-prod) — AWS Cloud ClickHouse (#58691)
Embedding
- StaticQuestion layout has empty space when TopBar has no children (#70391)
- Table viz guest embeds don’t span the whole width of the component (but static embeds did) (#69831)
Querying
- Nil expression key when model custom column is a direct field reference (#70232)
- Pivot table with offset expressions fails on Redshift: constant PARTITION BY (#70088)
- Generate same SQL for queries that use dashboard parameters or question filters (“exclude date” filters) (#68479)
- Model custom column name does not persist in saved questions (#65532)
- Columns Renamed in Model Metadata aren’t Propagated to Downstream Questions in Some Cases (#64490)
- Filter/Summarize/Editor buttons don’t collapse or wrap on smaller screen widths (#62784)
Visualization
- Pivot Table shows a blank card when rendered on a dashboard (#70019)
- Pie chart represents only a single series when there should be more (#52686)
Other
- Transforms are enabled for self-hosted pro licences in v57 and v58 (#70430)
Metabase 59.1
What’s in the release? | 59.1
Upgrading | 59.1
Metabase Open Source | 59.1
- Docker image:
metabase/metabase:v0.59.1.x - JAR download
Metabase Enterprise | 59.1
- Docker image:
metabase/metabase-enterprise:v1.59.1.x - JAR download
New features | 59.1
Data Studio
Data Studio provides tools to shape and track your data so everyone can trust the numbers.
- Create an easy-to-understand semantic layer to match how people think about your business.
- Speed up queries by transforming tables to anticipate usage patterns.
- View dependency graphs to identify and fix problems before they impact reports.
What’s in Data Studio:
- Library*. A curated space for your organization’s most trusted analytics content—tables, metrics, and SQL snippets that your data team recommends.
- Data structure. Add table metadata to make tables easier to work with.
- Glossary. Define terms relevant to your business, both for people and agents trying to understand your data.
- Dependency graph*. A visual map of how your content connects, so you can understand the impact of changes before you make them.
- Dependency diagnostics*. See which items have broken dependencies, or that aren’t used.
- Transforms. Wrangle your data in Metabase, write the query results back to your database, and reuse them in Metabase as sources for new queries.
Data studio comes with new permissions*, git sync*, and an option to add a separate connection* for write operations.
* Available on Pro and Enterprise plans.
Visualizations
- Box and whisker visualization (#10783).
- Our second-most requested viz type is here!
- To build a box plot, build a query with a numeric column and one or two grouping dimensions, then select “Box plot” in visualization settings.
- Conditional colors for the “Big number” visualization type.
- You can choose to display the number a certain color based on condition, for example green for <10, red for >10.
AI
- Single-shot text-to-SQL generation for Metabase Open Source
- AI for everyone! Open source self-hosted users can now BYO Anthropic key to generate SQL code.
- Go to the Admin Settings > AI to enable, and then try it in SQL editor with Ctrl/Cmd+Shift+I.
- Agent API (Pro/Enterprise)
- Programmatic API for LLM agents and external tools to query Metabase’s semantic layer (tables, metrics, segments, measures). Includes streaming response support and authenticated endpoints.
- Configure embedded and internal Metabot separately.
Embedded analytics updates | 59.1
Modular embedding
-
Content translations in modular embedding and the SDK (#63395) (Pro/Enterprise).
- Translate chart titles, column names, and even data itself. Upload a dictionary and pass a locale parameter to your embed.
- Previously only available for static/guest embedding. Now in v59expanded to authenticated modular embeds.
-
Alerts in modular embedding (Pro/Enterprise).
- Both
StaticQuestionandInteractiveQuestioncomponents in modular embedding now have the option to enable email alerts. - Reminder: dashboards subscriptions were already added to modular embedding in v58.
- Both
-
SQL editor component in modular embedding #67295 (Pro/Enterprise)
- You can now embed the SQL editor by using the interactive question component with
question-id = new-native. - Keep in mind that there’s a lot of nuance to how Metabase permissions work with SQL! Make sure to thoroughly review docs for your permission setup if you’re planning to enable SQL editor for your embedding users.
- You can now embed the SQL editor by using the interactive question component with
-
Auto-refresh support for modular embedding(#68195) (Pro/Enterprise).
-
handleLinkfunction for modular embedding (Pro/Enterprise).- Customize what happens when links are clicked in your embedded components
- Previously only available in the React SDK (since v57). Now available in any modular embedding setup.
-
Support saving and editing questions created with Metabot in modular embedding (#66073)
- Previously, embedded Metabot could create a question/chart, but users did not have the option to save it
- In v59, you can pass a parameter to control whether you want to enable saving questions generated by Metabot.
-
Guest embedding can now be used when database routing is enabled. Metabase will use the primary database.
- Guest embedding doesn’t have a logged-in Metabase user, so there’s no way to actually “route” the queries. This update just ensures that the guest embedding functionality is not blocked when DB routing is enabled. All queries from guest embeds will be routed through the primary database.
Tenants
Tenant (Pro/Enterprise only) were released in v58. They simplify content and permission management in multi-tenant Metabases. In v59, we released a couple of improvements:
-
Create tenant attributes with JWT.
- Pass
@tenant.attributein your JWT to create a tenant attribute. Tenant attributes can be used to configure data permissions. - In v58, you could only create tenant attributes through the Metabase UI. In v59, the setup can be automated via JWT.
- Pass
-
Configure access to tenant collections
- In v58, only admins had access to tenant collections. In v59, you can grant access to tenant collections to other groups of internal users
Enhancements | 59.1
- Toggle to enable/disable Metabot.
- Redesigned item picker: context-aware, single unified list with model filtering, and first-class search by name and type.
- Duplicate documents through three-dots menu.
- Support SQL snippets in Remote Sync.
- Allow setting custom Y-axis range that cuts off data points (#10434).
- Support for measures and segments in Metabot.
- Allow creating measures and segments for hidden tables.
See more…
Metabot
- Always run Metabot-triggered refingerprinting in admin context to match sync behavior (#70087)
- Update v59 sample Examples visualizations and dashboard. (#70075)
- [59] Security fix (#69923)
- Adding an event to a synced collection should put collection in dirty state (#69768)
- Show default pie/map charts for queries with multiple metrics (#69664)
- Correct function for fetching field values in Metabot tools (#69589
- Add loading state to “Pull changes” remote sync dropdown (#69380)
- Implement DB-level caching of premium features (#69241)
- Unify table visibility with can-query semantics (#69199)
- Prevent editing snippets from question editor when remote sync is read-only (#69147)
- fix: cancelling remote sync tasks dismisses modal (#67613)
MB_MONITOR_PERFORMANCEconfiguration option (#69298)- Resolved CVE-2026-25639 (#69340)
- Security dependency bump for brace-expansion (#67401)
- Glossary deduplication UX fix (#68243)
UI polish
- feat(dashboard): move subscriptions to action menu (#64950)
- Do not automatically open data reference sidebar for new SQL questions when Metabot sidebar is active (#70120)
- Close @-mention popup in Metabot when pressing esc (#69485)
- Don’t show hosting upsell in “Updates” to pro self hosted users (#69522)
- Preserve new lines when pasting text into Metabot chat (#69493)
- Line height of placeholder text in metabot side panel should be 20px (#69377)
- Do not select query text while resizing code editor (#68970)
- Better error message for unauthenticated requests in Metabot chat (#69352)
- Add tooltips for Metabot message action buttons (#69369)
- Group SSL/SSH settings together in database connection UI (#67682)
- Filter counter chip text color update (#68958)
Notable UI changes | 59.1
- The data picker in the query builder has been streamlined and will only show relevant content by default (e.g. the current database). Click on “Browse all” to get the full data picker. Bonus: you can now search for data inline by just typing in the Data field without opening the full data picker.
- “Subscription” button on dashboard has moved to the three-dots menu (out of the Sharing menu)
Bug fixes | 59.1
Administration
- Email subscriptions are unreadable in Outlook dark mode (#68165)
- Group membership removal from custom groups is not recorded in activity log (#66905)
- Application fails to load if token check endpoint is unroutable (#67697)
- Non-admins can’t see segments in data reference (#63782)
TIMESTAMP_NTZcolumns aren’t syncable with Databricks JDBC (#47359)- Data models don’t update to reflect fields that have been removed from the parent table (#45919)
Database
- Can’t add filters on boolean MySQL columns when the data source is a model (#65826)
- Redshift external tables have unknown types for string/enum columns on sync (#63025)
- Druid: can’t use count aggregation while grouping on a field named “count” (#10670)
Embedding
- [SDK] View details button on row index doesn’t work (#68975)
- IsSticky CSS applied to Parameter/Filter Panel upon scroll, not when panel sticks (#66742)
- [SDK] After drilling a question from a dashboard, the “Return to” link doesn’t do anything (#68555)
- Back button on eajs browser component doesn’t work (#69273)
- Broken Metabase icon in SDK banner when using EE with license (#69215)
Documents
- viewing a document adds a revision (which errored) (#69293)
- Can’t copy/paste a chart in Documents (#66504)
- Ctrl-clicking on a link doesn’t open in a new window in Documents (#66448)
- Limited choice of tables and dashboards to link in Documents (#62727)
- Document printing fix (#66972)
Querying
- The breakpoint for making the view-the-sql side panel 100% wide is too aggressive (#67767)
- Empty schema isn’t visible after running “Sync database schema” (#68378)
- Filters in dashboards stick to old tables when switching the data source of a model (#67679)
- Filtering for a backslash on a text field with “contains” doesn’t show results (#67075)
- Update filter click behavior grouped by hour doesn’t respect the hour part (#58556)
- Custom columns in models show in the column selector and the query (#50178)
Visualization
- Conditional Formatting affected rows with dark colors are unreadable in Subscriptions (#66833)
- Export errors should be reported to the frontend rather than resulting in invalid exports (#21937)
- Clicking on detail view for a map pin resets zoom if there’s a filter applied (#65076)
- Row chart tooltip doesn’t reflect column rename (#68137)
Other
- CSV and XLSX downloads broken with “Local symbol ($)” currency format (#69779)
- OpenAPI Spec Doc does not follow OpenAPI 3.1.0 spec (#67748)
- Python transforms not enabled after adding to the trial (#70109)
- Bookmark list isn’t updated when you archive a collection containing a bookmarked item (#44499)
- Add error state for incorrect CSV/TSV file upload type (#40589)
- Non-string column names crash the Python data editor (#67892)
Metabase 59.0-beta
This changelog is for the BETA release. To see the full changelog for v59 stable release, see Metabase 59.1
See changelog for v59 BETA…
What’s in the release? | 59.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 | 59.0-beta
Metabase Open Source | 59.0-beta
- Docker image:
metabase/metabase:v0.59.0-beta - JAR download
Metabase Enterprise | 59.0-beta
- Docker image:
metabase/metabase-enterprise:v1.59.0-beta - JAR download
New features | 59.0-beta
Data Studio
Data Studio provides tools to shape and track your data so everyone can trust the numbers.
- Create an easy-to-understand semantic layer to match how people think about your business.
- Speed up queries by transforming tables to anticipate usage patterns.
- View dependency graphs to identify and fix problems before they impact reports.
What’s in Data Studio:
- Library*. A curated space for your organization’s most trusted analytics content—tables, metrics, and SQL snippets that your data team recommends.
- Data structure. Add table metadata to make tables easier to work with.
- Glossary. Define terms relevant to your business, both for people and agents trying to understand your data.
- Dependency graph*. A visual map of how your content connects, so you can understand the impact of changes before you make them.
- Dependency diagnostics*. See which items have broken dependencies, or that aren’t used.
- Transforms. Wrangle your data in Metabase, write the query results back to your database, and reuse them in Metabase as sources for new queries.
* Available on Pro and Enterprise plans.
See Data Studio docs.
Semantic Layer Agent API
Programmatic API for LLM agents and external tools to query Metabase’s semantic layer (tables, metrics, segments, measures). Includes streaming response support and authenticated endpoints. (#68260, #68163, #68914, #68814, #68627, #68386)
Embedded analytics | 59.0-beta
- Content translations for column names, aggregations, breakouts, and Collection/Browser components in modular embedding and the SDK (#69192, #68954, #68733, #68608, #68063, #67730)
- Alerts support for modular embedding (#68777)
- Auto-refresh support for modular embedding (#68195)
- Native/SQL question editing and saving in the SDK (#68138, #66073)
handleLinkfunction support for embedded apps (#68418)- Guest embedding now uses the primary database for queries (#68952)
Enhancements | 59.0-beta
Organization
- Duplicate option in document three-dot menu (#68075)
- Redesigned item picker: context-aware, single unified list with model filtering, and first-class search by name and type (#66978)
- Remote Sync: support for snippets, measures, transforms, and the Python library (#66361, #68392, #68255, #68515)
Visualization
- Allow setting custom Y-axis range that cuts off data points (#10434)
- Allow empty min/max for scalar conditional colors (#69177)
- Scalar viz field selection improvements (#69179)
- Scalar tab color configuration (#67877)
Metabot
Other
- Group SSL/SSH settings together in database connection UI (#67682)
MB_MONITOR_PERFORMANCEconfiguration option (#69298)- Resolved CVE-2026-25639 (#69340)
- Security dependency bump for brace-expansion (#67401)
- Filter counter chip text color update (#68958)
- Glossary deduplication UX fix (#68243)
Bug fixes | 59.0-beta
Administration
- Application fails to load if token check endpoint is unroutable (#67697)
- Non-admins can’t see segments in data reference (#63782)
TIMESTAMP_NTZcolumns aren’t syncable with Databricks JDBC (#47359)- Data models don’t update to reflect fields that have been removed from the parent table (#45919)
Database
- Can’t add filters on boolean MySQL columns when the data source is a model (#65826)
- Redshift external tables have unknown types for string/enum columns on sync (#63025)
- Druid: can’t use count aggregation while grouping on a field named “count” (#10670)
Embedding
- [SDK] After drilling a question from a dashboard, the “Return to” link doesn’t do anything (#68555)
- Back button on eajs browser component doesn’t work (#69273)
- Broken Metabase icon in SDK banner when using EE with license (#69215)
Organization
- Can’t copy/paste a chart in Documents (#66504)
- Ctrl-clicking on a link doesn’t open in a new window in Documents (#66448)
- Limited choice of tables and dashboards to link in Documents (#62727)
- Bookmark list isn’t updated when you archive a collection containing a bookmarked item (#44499)
- Add error state for incorrect CSV/TSV file upload type (#40589)
- Document printing fix (#66972)
Querying
- Empty schema isn’t visible after running “Sync database schema” (#68378)
- Filters in dashboards stick to old tables when switching the data source of a model (#67679)
- Filtering for a backslash on a text field with “contains” doesn’t show results (#67075)
- Update filter click behavior grouped by hour doesn’t respect the hour part (#58556)
- Custom columns in models show in the column selector and the query (#50178)
Visualization
- Clicking on detail view for a map pin resets zoom if there’s a filter applied (#65076)
- Row chart tooltip doesn’t reflect column rename (#68137)
Other
- Non-string column names crash the Python data editor (#67892) </details>