Metabase - v0.49.0
Security
Metabase 49 release announcement
Upgrading
You can download a .jar of the release, or get the latest on Docker. Make sure to back up your Metabase
database before you upgrade! Need help? Check out our upgrading instructions.
Docker image: metabase/metabase:v0.49.0
Download the JAR here: https://downloads.metabase.com/v0.49.0/metabase.jar
Notes
SHA-256 checksum for the v0.49.0 JAR:
7766e2fa3120bd11224dae33e7b23eeaf759e49af0088e025c9e24b87347f3d2
Changelog
**Enhancements**
**Dashboard improvements**
- Make dashboard filters global or tab specific (#31621)
- Add Sections (pre-defined layout of empty dash cards) to a dashboard (#38209, #38575)
- Let creators duplicate dashboards tabs and cards (#38208)
- Let creators swap out dashboard questions with a different question (#36497)
- Add "Replace question" action to dashboard cards (#36744)
- Let creators make dashboard and native query filters required (#36524, #18097, #39159, #5320, #37709)
- Default dashboards to a fixed width to give creators a more predictable canvas (#36358, #10364)
**Trend charts improvements** #33411
- Increase design control over Big Numbers (#31951)
- Smart Numbers: chose the unit of the lag displayed (#11200)
- Smart numbers: configurable lag (#9510)
- Smart Number visualization wording (#8919)
- Trend text not translated correctly depending on period (#25670)
- Support arbitrary date comparison (#35551)
**Allow appending more data to CSV uploads** (#35614, #38837, #37220, #36640, #13358)
**Remove Models from Browse data** (#40108, #40037)
- Models in Browse Data (#37707, #38560, #38661, #38730, #38704, #38635, #38518, #38107, #38126)
**Serialization API** (#36843, #36240, #20632, #38359, #38804)
**API Authentication method** (#2699, #36593, #37607, #36347, #37051)
- Write a `GET /api/api-key` endpoint to list API keys (#37000)
- Write a `PUT /api/api-key/:id/regenerate` endpoint to regenerate an existing API key (#36999)
- Write a `PUT /api/api-key/:id` endpoint to update API key names/groups (#36998)
- Remove API bits from ApiKey model (#37085)
- Return `group` instead of just `group_name` for ApiKeys (#37061)- Add last_name to ApiKey users (#37234)
- Avoid failing call to /api/model-index (#37284)
**Add connection impersonation to Redshift** (#38445, #32388)
**Embedding improvements**
- Setup flow for Static and Public embedding, and embedding feature discoverability (#35961, #36048, #36481, #36170)
- Modified setup flow for admins who want to start embedding (#38233)
- Fix public links refer to `null` when question is new (#39154)
- Sticky filters on embedded and Public dashboards (#24726)
- Enable default public-sharing for new instances (#38609)
**White-labeling**
- Customize or hide “Help” link; hide links to metabase.com outside of admin settings (#35915, #36966)
- Fix white-labeled icon colors of official collections and verified models (#39238)
- Add anonymous usage tracking for relevant white-labeling (#37656)
**Metabase Library v2** (#28689)
- Include implicit joins for breakout/order on models (#40027)
- `joinable-columns` on a Join sets source and alias (#39529)
- Ensure `:name` is unique on returned columns in the FE (#39118)
- Handle `Object.isFrozen()` legacy columns as input (#39032)
- Custom columns testing plan (#37173, #36235)
- Migrate `setDefaultDisplay` to MLv2 (#37172)
- Migrate `_syncStructuredQueryColumnsAndSettings` to MLv2 (#37171)
- Migrate `sourceTableId`, `sourceTable` to use `sourceTableOrCardId` from MLv2 (#37170)
- Migrate `databaseId`, `database` to use `databaseID` from MLv2 (#37169)
- Add caching for the common case of visible-columns w/o options (#38409)
- Cache JS -> CLJS metadata conversion (#38375)
- Add tests and fix a special case for fk-filter drills (#38297)
- fk-details drill should preserve `:=` filters for other PKs (#38296)
- Drill-thru coverage: Add a structured column and fix that case (#38295)
- Fix some edge cases and add more unit tests for zoom in drills (#38275)
- Add description and fingerprint to `displayInfo` for columns (#38476)
- New "canned" queries and clicks for drill-thru testing (#38210)
- Add `isTemporalExtraction` flag to `displayInfo` (#37889)
- Add `aggregation-column` and `breakout-column` (#37873)
- Look up FK columns in `visible-columns`, not metadata (#37771)
- Make `query=` treat missing `:base-type` as matching (#37727)
- findColumnIndexForColumnSetting and findColumnSettingIndexForColumn (#37677)
- Add `display-info` for queries (#37675)
- Add `legacy-column->metadata` for converting `DatasetColumn` (#37648)
- Migrate data reference (#37629)
- Migrate object detail (#37628)
- Add `compatible-type?` wrapper that handles JS `DatasetColumn`s (#37609)
- Remove aggregate, breakout, filter methods from Question (#37509)
- Migrate supportsImplicitActions (#37507)
- Migrate QuestionDataSource (#37396)
- Migrate initializeQB (#37391)
- Make displayInfo for column groups straightforward to use (#37369)
- Remove unused legacy MLv2 functions (#36988)
- Notebook steps (#36983, #36516)
- Add a flag to `displayInfo(query, stageIndex, temporalBucket)` indicating it's for an extraction temporal unit (#36978)
- Drop redundant :fields clauses from stages and joins (#36959)
- Track drill-thru unit test coverage (#36601)
- Unskip FE integration tests for automatic-insights drills (#36529)
- Fix pivot drills integration with the FE (#36509)
- Implement `automatic-insights` drill (#36443)
- Migrate `suggest.ts` to use MLv2 for computing columns (#36233)
- Support changing expressions in the query w/o removing parts depending on the original (#36211)
- `View` - remove `BreakoutPopover` usage (#36737)
- `View` - remove `AggregationPopover` usage (#36736)
- Reorder column filter and distribution drills (#36700)
- Add support for segment and metric in legacyFieldRef (#36699)
- Add `sourceTableOrCardId(query)` (#36672)
- `fk-filter` drills should not appear on native queries (#36660)
- Fix an edge case where a join-alias is needed on a field ref (#36871)
- Add `breakoutColumn` and `aggregationColumn` APIs to simply columns retrieval from these clauses (#37120)
- Resolve a string `:fk-field-id` to a numeric ID if possible (#37079)
- Migrate functions used in ExpressionEditorTextfield to MLv2 query (#36254)
- Convert ExpressionStep to MLv2 (#35982)
- Expressions in FilterPicker without legacy query (#35948)
- Expressions in AggregationPicker without legacy query (#35947)
**Misc:**
- Add `align-temporal-unit-with-param-type-and-value` multimethod (#37813)
- Add the timestamp to the filename in the subscription attachment (#39120)
- Add intermittent test solver (#38159)
- Add BE for routing billing status (#38153)
- Add Creator Sentiment Email task (#38787)
- Add stress testing workflow for frontend unit tests (#38081)
- Add a banner to the top of `locales.clj` (#37877)
- Allow toggling of the dashboard subscription sidebar from the icon (#36244)
- Bigquery: Sync required partition column ([#36668](https://github.com/metabase/metabase/issues/36668), [#36677](https://github.com/metabase/metabase/pull/36677), [#36892](https://github.com/metabase/metabase/pull/36892))
- [chain filters] should not be using inactive fields for joins (#39635)
- Compute results of timestamp/current-date functions during query processing (#21518)
- Consistent Date and Time Formatting for `metabase.formatter.datetime` (#36559)
- Count `:model/User`, not `:core_user` (#36985)
- Create a unified rendering pipeline for formatting (#36015)
- Delete all pruned persisted info records (#39219)
- Don't delete "off" persisted_info records (#39272)
- Download Updated Translations for v49 (#40086)
- Elevate selected filter field values (#40055)
- Ensure consistent percentage formatting across FE and pulses (#36327)
- Ensure results metadata is applied to standalone cards in pulse HTML output (#36323)
- Ensure results metadata is applied to csv files in pulse exports (#36320)
- Error if DB downgrades are required (#37239)
- Export to PDF should have the filter values that were used on the dashboard (#35475)
- Faster sync-fks for Redshift (#38970) (#40062)
- Filter picker search free input (#38907)
- Fix permissions graph performance (#36610, #36797, #36543)
- Fix confusion of expressions with the same name as columns (#39526, #39255)
- Fix isNavigationAllowed (#38703)
- Fix TableBrowser flex (#38324)
- Flaky QueryBuilder.unit.spec.tsx (#37184)
- Format SQL Query option in the Native Query Editor (#9142)
- Hitting enter doesn't save filter changes (#6552)
- Honey SQL 2 Migration (#28684, #28396, #28156, #28165, #28161)
- Introduce describeWithSnowplowEE (#39623)
- Join performance issues (#39633)
- Kondo lint to enforce naming convention for thread not safe defn/defmacro in tests (#37126)
- Load analytics only when changed using a checksum (#38280)
- Let admins disable user provision on SSO (#36371)
- Migrate the FieldInfo card to Mantine so it can be reused (#38432)
- Make dashboard subscription attachment behavior match the user's choice in-product (#36441)
- Merge viz settings correctly (#36154)
- Merge metadata correctly (#36153)
- Monger does not support Atlas Serverless (#27385)
- Make effective use of Snowflake's query result caching (#20988)
- No view logging for OSS (#39957)
- Only return helpText for supported features (#39766)
- Optimize autocomplete query (#38080)
- Port LastEditInfoLabel (#38109)
- Query metadata within comments leads to cache misses in AWS Athena (#29615)
- Remove unused global css (#39220, 39020, #39531)
- Remove normalization from legacyFieldRef method (#36717)
- Remove legacyQuery (#36639)
- Remove Pulses (#34147, #35841)
- Refactor drills unit tests structure, split huge file by drill type (#35883)
- Switch back to ring-jetty-adapter to addresses security issue (#39321)
- Sidebar loading state regression fix (#38875)
- Show more billing info on license and billing settings page (#38497)
- Specify one more guava explicitly (#38173)
- Sync column index information (#36452, #36624)
- Type routing in State (#38645)
- Test some modals more semantically (#37028)
- Tighten visual design of charts (#36991)
- Update required parameter reset icon (#39068)
- Uploads: 01/01/2012 is coerced to 1 (#38956)
- Update Metabase Analytics content (#38524, #38474)
- Update graalvm (#38218)
- Update deps with security issues (#39286, #37789)
- Update Enterprise readme to 2024 (#37207)
- Use the alias for unfolded JSON columns from previous stages (#39446)
- Unify type of timestamp columns (#33577)
- When querying a bare model with parameters, wrap an extra stage (#39963, #40047)
- Wrap literals around expression refs (#38886)
- When updating an alert, don't also update the question (#36866)
**Bug fixes**
- Apply Filters button cropped when a lot of values (#40071)
- "Add tab" button is covered with a right scroll button on dashboards with many tabs (#38641)
- Aurora Serverless v2 fails to verify CA due to RDS Combined CA Bundle not importing all certificate chains (#27790)
- Adding a description to a model column duplicates the description to other columns if they are null (#25884)
- `Admin > People` header "jumps" when switching from active and deselected users views (#37129)
- Autosuggestion in native queries peaks the CPU on instances with > 1M fields (#30588)
- Action Button label cut off when editing click behavior (#35234)
- `Between` filter errors out with min > max (#16745)
- Browse database page refreshes N seconds when a new DB is added that makes the page unusable (#39732)
- Bookmark icon should be correct size, and should be filled when an item is bookmarked (#34327)
- Custom columns that have same name as existing columns cause failure (#39059)
- Changing groups or dbs on data permissions, after saving a value causes the client to falsely believe that someone else edited the perm graph ([#37811](https://github.com/metabase/metabase/issues/37811))
- Canceling editing a dashboard does not reset current tab (#38055)
- Cannot "filter by this column" (#38034)
- Cannot see Models as the data source in the data selector when opening a model (#39699)
- Click Behavior not working for Pivot Table (and Table pivoted) for the non-value columns (#25203)
- Custom columns to do filters for the past 1 day/month/year (#37165)
- “contains” and “does-not-contain” returned for the wrong fields (#36856)
- `column-filter` should come before other column drills (#36674)
- Cancelled Queries are retried with Bigquery Driver (#36623)
- Custom Column in Models doesn't respect filtering when binning is applied (#26202)
- CSV exports of timestamps at midnight (00:00:00) is truncated to date (#14504)
- Dashboard ID filter does not work on models (#39940)
- Dashboard filters are slow (#37285)
- Dashcard text gets cut off (#36463)
- Data source is not properly highlighted for simple saved questions based on a table in a multi-schema database (#39807)
- Dashboard saves fails after adding the first tab then canceling the edit (#38278)
- Datetime filter not working correctly on mysql (#8762)
- Dashboard Email Subscription seems to cache incorrect settings (#30314)
- Date filter selection from the chart footer is glitchy and results in wrong selection (#22973)
- Date filtering on time-series viz is not available when the second grouping field is not a category type (#34690)
- Date filtering on time-series viz only works if time is added as a first grouping category (#34688)
- Description for calculated columns in model metadata editing page is incorrectly populated with description from other columns (#34349)
- `drill-thru/pk` drill should be returned for query that has multiple PKs on non-PK columns click (#35618)
- Error calculating display info on filtering with a model (#36400)
- Exports should include formatting everywhere (#17753)
- Export formatting for Longitude & Latitude (#38419)
- Extreme slowness while editing parameters on a dashboard (#38225)
- Execute an Action on embedded Dashboard fails with 404 not found API call (#34395)
- `findMatchingColumn` does not find matching column (#37851)
- `filter-args-display-name` doesn't handle exclude date filters (#37219)
- Grouping by and summarizing on a custom column fails (#39081)
- Grid Map "Zoom In" broken for "Custom Questions" (#11210)
- Implicit joined fields are not available as breakouts in Models (#39657)
- Instance Analytics titles drop after page load (#38566)
- Issue with click Behavior and passing filters to custom destinations that are tabs of the same dashboard (#38455)
- "Is" filter in the header of the columns in a table context should be linked and allow free input (#37906)
- Interactive embedding dashboard with multiple tabs and parameter `header=false` will not load (#39002)
- Joining on aggregated dates via the editor generates "No matching signature for function TIMESTAMP" (#27969)
- LDAP logging is non-existent (#39760)
- MongoDB nested fields not showing in v0.47.x (#35938)
- Make `query=` ignore absence of `base-type` and `effective-type` in field references (#37659)
- No option to hide/show tabs in Interactive embedding as a parameter. header=false will hide all tabs and go to tab 1 by default (#38429)
- On Date filter returns no results on a summarized question (#18769)
- PNG export of chart from a dashboard includes the menu ellipsis in the top right corner of the image (#36261)
- Pivot table with the filter on a date column breaks dashboard sending (#27941)
- Pie chart legend percentages are vertically not aligned with their label (#37635)
- Printed Dashboard is missing Color Indicators in the Legend (#6963)
- Preview results of intermediate stages are wrong in query builder (#39102)
- Question filters are not being updated if there are breakout clauses for the same column (#37463)
- removeClause throws "Cannot remove the final join condition" error (#36690)
- Redundant text card scrollbars shown in Firefox (#34537)
- Relative date filters don't work with custom date columns (#33528)
- Refreshing after setting a table to be sandboxed causes an error (#37774)
- Renamed columns in CSV/JSON exports (#18572)
- [`result_metadata`] Implicit binning on longitude from SQL question results in error (#16672)
- `returnedColumns` does not handle columns with the same name (#37517)
- SAML auth page is weird when set by env vars (#33264)
- Support constants in expressions (#37461)
- Show progress charts' current values on small dashboard cards (#5554)
- Seeing scrollbars in search and admin (#38673)
- Sorting Dashboard Tabs has a weird animation on drop (#38056)
- Top nav + New and Settings buttons lock up when a dashboard is loading (#39303)
- Toast/notification after custom dashboard has invisible text (#38722)
- Trend Chart font is incorrect in certain email clients (#38684)
- Unknown error in the revision history of a dashboard leads to a NullPointerException (#38910)
- Unsaved dashcards with mapped params error when switching tabs (#38245)
- `underlying-records` is not available for pivot table cell (#35394)
- `underlying-records` should be returned for chart legend clicks (#35343)
- "View details" (PK) drill thru on non-PK value for a row with multiple PKs only adds a filter for one of the PKs, nondeterminiate (#36426)
- Version info could have duplicate versions (#33803)
- Visual glitches when dragging a tab on another (#34966)
- When modifying the "fields" clause, remove the clause entirely if it becomes equivalent to not having the clause at all (#36574)
- Wrong field highlighted when editing model metadata if custom column added to left of column (#29943)
- `zoom-in.timeseries` isn't returned in all known cases (#36173)
Security
Security wording was detected, but no CVEs were found.
Details
date
March 15, 2024, 5:46 a.m.
name
Metabase v0.49.0
type
Minor
👇
Register or login to:
- 🔍View and search all Metabase releases.
- 🛠️Create and share lists to track your tools.
- 🚨Setup notifications for major, security, feature or patch updates.
- 🚀Much more coming soon!