Skip to content

Metabase® Enterprise Edition™ v1.49.0

Compare
Choose a tag to compare
@github-actions github-actions released this 15 Mar 05:47
· 1029 commits to master since this release
46c668b

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-enterprise:v1.49.0
Download the JAR here: https://downloads.metabase.com/enterprise/v1.49.0/metabase.jar

Notes

SHA-256 checksum for the v1.49.0 JAR:

126a449a2f301744bc542392fca360dc8a2c562faadf6831539cafc0e973db48

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)

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 DatasetColumns (#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, #36677, #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)
  • 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)