Compare commits

...

565 Commits

Author SHA1 Message Date
bryan
a4ee84f8e7 Merge branch 'release-x.54.x' into docs-gen-sync-54 2025-06-18 16:48:47 -06:00
bryan
2f291efd24 Add workflows to 54 (#59757)
Fix docs workflow trigger action syntax (#59723)
2025-06-18 22:39:47 +00:00
bryan
799074df47 also add the workflows 2025-06-18 16:28:10 -06:00
Bryan Maass
6fb54a1bd3 Add docs bump comment 2025-06-18 16:17:48 -06:00
John Swanson
b86e78154e Localize the trash name on memoized collection (#59745) 2025-06-18 21:46:05 +00:00
github-automation-metabase
04adead095 [MBQL lib] Fix underlying-records drill on breakout of custom column (#59218) (#59729)
Fixes #59005.

The FE-supplied `:dimension` column was being used directly, when it needs to be looked up anew on the massaged query.

Co-authored-by: Braden Shepherdson <braden@metabase.com>
2025-06-18 19:40:19 +00:00
github-automation-metabase
0690fc7831 Render Mantine and Echarts tooltips in a proper portal container for SDK (#59691)
Co-authored-by: Timofey Kachalov <timofei@metabase.com>
2025-06-18 18:28:23 +04:00
github-automation-metabase
4c2a58a7e2 increment failed-fingerprints rather than the throwable object (#59627) (#59680)
* increment failed-fingerprints rather than the throwable object

* fix: continue? needs updated stats

Co-authored-by: Nicola Mometto <nicola.mometto@metabase.com>
2025-06-18 11:36:34 +00:00
github-automation-metabase
b523ffd10d 🤖 backported "fix: card before-update to not always force update" (#59624)
* fix: card before update to not always force update (#59559)

* fixup! args to old fns

* fixup! remove schema version test

* fixup! implicit actions check

* fixup! handle inconsistent after-select mutations

---------

Co-authored-by: Edward Paget <edpaget@users.noreply.github.com>
Co-authored-by: Edward Paget <ed.paget@gmail.com>
2025-06-17 16:26:44 -05:00
github-automation-metabase
55ad21a9ae Correct saving of pivot card metadata (#59283) (#59647)
Co-authored-by: Nathan Voxland <nathan@metabase.com>
2025-06-17 18:46:55 +00:00
William
6b4decef01 Add setting to disable reusing a dashboard's last used parameters (#59293) (#59607)
Set MB_DASHBOARDS_SAVE_LAST_USED_PARAMETER to false to disable saving.
2025-06-17 13:13:08 -05:00
github-automation-metabase
ffa76d731c support pivots with between 31 and 63 breakouts (#59494) (#59578)
Co-authored-by: Noah Moss <32746338+noahmoss@users.noreply.github.com>
2025-06-17 13:16:48 +00:00
github-automation-metabase
76a261ecf0 Update upgrading-metabase.md (#58477) (#59572)
* Update upgrading-metabase.md

Adding a note about upgrading between major versions

* Update upgrading-metabase.md

* Apply suggestions from code review



---------

Co-authored-by: Luis Paolini <paoliniluis@gmail.com>
Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-06-16 19:11:18 +00:00
github-automation-metabase
e63d1ebf3e Close table header popover with escape (#59262) (#59537)
* Manually close popover on escape

* Add repro for metabase#55673

* Revert "Manually close popover on escape"

This reverts commit cce85f0882.

* Trap focus in click actions popover

* Remove unneeded closeOnEscape

Co-authored-by: Romeo Van Snick <romeo@romeovansnick.be>
2025-06-16 16:26:33 +02:00
github-automation-metabase
40a9c6edca fix: improve effective children performance (#59004) (#59439)
* fix: improve effective children performance

on the /items endpoint by reusing the permission CTE



* fix: remove n+1 hydration call for card children

* fix: remove case/whens in sort statements

* fix: scope search results for modal to collections



* fix: function to convert to collection items

* fixup! PR suggestion



* fixup! add row-lock fixture for mariadb flake

* add debug for failing test

* fixup! make sure api/bit->boolean is called first

---------

Co-authored-by: Edward Paget <edpaget@users.noreply.github.com>
Co-authored-by: John Swanson <john.swanson@metabase.com>
Co-authored-by: Nathan Voxland <nathan@metabase.com>
Co-authored-by: Ryan Laurie <ryan@metabase.com>
2025-06-13 14:25:09 +00:00
Edward Paget
5095e8f6fe don't assume a keyset doesn't exist if the value it's set to is the same as it already has (#59032) (#59433)
Co-authored-by: Nicola Mometto <nicola.mometto@metabase.com>
2025-06-13 14:20:10 +00:00
github-automation-metabase
7e648a2c66 Remove unnecessary horizontal scroll on static embed sharing modal (#59230) (#59447)
* Remove unnecessary horizontal scroll on static embed sharing modal

* Fix undefined CSS custom property via linter

* fix tests

* Fix the style regression from the previous commit

Co-authored-by: Mahatthana (Kelvin) Nomsawadi <me@bboykelvin.dev>
2025-06-13 04:05:59 +00:00
github-automation-metabase
68731a8314 Update react-virtualized-to-9.22.6 (#59343) (#59412)
Co-authored-by: Timofey Kachalov <timofei@metabase.com>
2025-06-12 15:16:04 +00:00
github-automation-metabase
6f46675185 test: add basic tests for interactive embedding with sso (#58698) (#59415)
Co-authored-by: Nicolò Pretto <info@npretto.com>
2025-06-12 15:12:34 +00:00
github-automation-metabase
36f014144a Remove back push filters for embedding-sdk.yml (#59406)
Co-authored-by: Timofey Kachalov <timofei@metabase.com>
2025-06-12 19:11:48 +04:00
github-automation-metabase
14a6d7ec9f Use latest docker-compose for Sample App e2e CI (#59392)
Co-authored-by: Timofey Kachalov <timofei@metabase.com>
2025-06-12 17:23:10 +04:00
github-automation-metabase
61f7ce1147 fix(sdk): Remove unhelpful error Error: null (#59168) (#59377)
* Don't log `Error: null` on the SDK

* Assert error another way

Co-authored-by: Mahatthana (Kelvin) Nomsawadi <me@bboykelvin.dev>
2025-06-12 10:27:03 +00:00
github-automation-metabase
e1e5932b39 Fix can't download static SQL question\ (#59164) (#59374)
when a parameter only expects a single value

Co-authored-by: Mahatthana (Kelvin) Nomsawadi <me@bboykelvin.dev>
2025-06-12 09:39:01 +00:00
github-automation-metabase
932500c6a6 fix: snowflake keep additional-options with private key (#59287) (#59358)
Co-authored-by: Case Nelson <case@metabase.com>
2025-06-11 21:06:53 +00:00
github-automation-metabase
0f29738f82 fix: audit migration for schema casing (#59346) (#59350)
We can have tables in migrated instances that have two copies of the
audit db tables one with a 'public' schema and one with a 'PUBLIC'
schema. This handles that case.

Co-authored-by: Edward Paget <edpaget@users.noreply.github.com>
2025-06-11 20:26:02 +00:00
github-automation-metabase
8cb28156bc Add limitation about CSS vars in SDK theming (#59238) (#59251)
Co-authored-by: Alberto Perdomo <albertoperdomo@users.noreply.github.com>
Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-06-10 13:11:11 +00:00
github-automation-metabase
8d468cc440 Remove flash of default title when saving a question (#59094) (#59119)
* Use existing name when possible

* Add repro for metabase#55631

* Fall back to empty string

Co-authored-by: Romeo Van Snick <romeo@romeovansnick.be>
2025-06-10 12:19:50 +02:00
github-automation-metabase
3c47601224 feat(sdk): Add Visualization Button, hook, and onRun event (#58080) (#59235)
Co-authored-by: Oisin Coveney <oisin@metabase.com>
2025-06-10 08:54:14 +00:00
Riley Thompson
fab314773c Revert "Upgrade ClickHouse JDBC driver to 0.8.6" (#59179)
This reverts commit 91708524f2.
2025-06-09 18:36:02 -04:00
github-automation-metabase
b344d6a87a docs - data picker option (#59136) (#59211)
Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-06-09 18:01:39 +00:00
github-automation-metabase
2013f932ec Better detection of card metadata changes (#59131) (#59203)
Co-authored-by: Nathan Voxland <nathan@metabase.com>
2025-06-09 17:48:08 +00:00
github-automation-metabase
1733aac648 fix: check for row existence in parameter upsert (#59127) (#59200)
* fix: check for row existence in parameter upsert

Do an exists check instead of relying on the result of `update!` being
zero. `update!` can return zero either when a row does not exist or when
there are no applicable changes in the request.

* fixup! use medley/mapply instead

Co-authored-by: Edward Paget <edpaget@users.noreply.github.com>
2025-06-09 17:30:10 +00:00
github-automation-metabase
222319005a Don't count dashboard subscriptions as a reason to count a card as recently viewed (#59080) (#59193)
Co-authored-by: Nathan Voxland <nathan@metabase.com>
2025-06-09 15:33:02 +00:00
github-automation-metabase
eeed854185 fix: audit adjust to source handles nil schemas (#59003) (#59047)
Some mysql -> postgresql migrated users still had adjust to source
failing because they had two tables with downcased names but one with a
"public" schema column and the other with a null schema column. This
handles that case by only selecting tables if there is not already a
table with a "public" schema column.

Co-authored-by: Edward Paget <edpaget@users.noreply.github.com>
2025-06-09 14:03:03 +00:00
github-automation-metabase
a00b872be2 no archived collections in perm graph (#59065) (#59177)
Co-authored-by: John Swanson <john.swanson@metabase.com>
2025-06-09 13:24:34 +00:00
github-automation-metabase
bc5752bf31 Properly expose initialParameters on dashboard components (#59115) (#59163)
Co-authored-by: Mahatthana (Kelvin) Nomsawadi <me@bboykelvin.dev>
2025-06-09 06:04:51 +00:00
github-automation-metabase
c88ed4ed91 closes VIZ-187 double scrollbar on viz settings (#59095) (#59121)
Co-authored-by: Sébastien <sebastien@metabase.com>
2025-06-06 16:01:53 +00:00
github-automation-metabase
cd6cbfdd22 🤖 backported "Fix 3 flaky tests" (#58984)
* Fix 3 flaky tests (#58729)

* Fix a flaky test for max-refingerprint-field-count

The code here goes through tables and refingerprints them (with all
their fields). After each table it checks the
`max-refingerprint-field-count` and stops if we've hit it.

The test gave some wiggle-room - we'd allow 10 extra fields. But in a
fresh run of my tests, the biggest table has... 13 fields. So if the
last table we hit before hitting the limit was *that* table, we exceed
our wiggle-room and the test fails.

Instead, the test now actually looks to see what's the biggest table we
have (in terms of number of fields), and asserts that the number of
fields refingerprinted is, at the most, the max plus that number of
fields.

* fix two more flaky tests

one is clearly a symptom of another test being super naughty but I can't
figure out which one. It's marked `parallel` and doing

```
(mt/with-temp [:model/Card {id :id} ...]
 (do-something-with (t2/select-one :model/Card id)))
```

which is failing because `(t2/select-one :model/Card id)` is returning
nil. We can just pass the card that was actually returned by
`mt/with-temp` here and that should be more resilient to horrible tests
being horrible.

the other is checking that we're caching something by checking the call
count to toucan on the first and subsequent call to a function. But it
asserts that the first call count is exactly 6, which isn't relevant.
If I start a fresh REPL I get more than 6 the first time. It doesn't
matter! Just assert that we don't get MORE than the first time on the
second run!

* fix flaky tests freal

* fix: use t2/query to skip card callbacks

* fix: retry on failed pk insert

* fix: log when we have the cluster lock

* fix: try catching all sqlexceptions

* fix: add a fixture to pre-create the cluster_lock

* fixup! remove with-connection from update-used-cards

---------

Co-authored-by: Edward Paget <ed.paget@gmail.com>

* fixup! fix cluster lock module require

---------

Co-authored-by: John Swanson <john.swanson@metabase.com>
Co-authored-by: Edward Paget <ed.paget@gmail.com>
2025-06-06 08:13:27 -05:00
github-automation-metabase
4f5b1e58e1 Remove debugging code (#59041) (#59090)
Co-authored-by: Kamil Mielnik <kamil@kamilmielnik.com>
2025-06-06 08:10:58 +00:00
github-automation-metabase
c1944a7bfb Apply filter correctly when clicking Contains... or Does not contain... quick filters (#58798) (#59026)
* Remove popover for quick drill

* Add repro for metabase#58247

* Show filter popover instead of immediately applying filter

* Do not prefill values

* Change filter propt to Filterable

* Remove nonsensical comment

* Remove duplicate filter

* Remove superflouous checks

Co-authored-by: Romeo Van Snick <romeo@romeovansnick.be>
2025-06-05 16:49:25 +02:00
Filipe Silva
723e32b6ee fix: lookup cloud migration part keys (#58881) (#58990) (#59021)
* fix: lookup cloud migration part keys

Mapping over multipart-urls map entries wasn't ordered or deterministic, but it happened to be for less than 8 elements.

Changed to a lookup on advice from @dpsutton.

Fix https://metaboat.slack.com/archives/C010ZSXQY87/p1748611922362219

* test: update cloud migration settings test vars

* fix: add early multipart errors

Co-authored-by: github-automation-metabase <166700802+github-automation-metabase@users.noreply.github.com>
2025-06-05 11:41:55 +01:00
github-automation-metabase
b53080c39a Fix before-and-after :join generative test (#58913) (#58981)
* Add testing context around before-and-after gen tests

To ensure you can see the before and after queries as well as the steps that produced them when a test fails.

* Fix before-and-after :join in generative tests

Pass stage-number to check for aggregations and breakouts on the stage where the join was added rather than the final
stage.

Co-authored-by: appleby <86076+appleby@users.noreply.github.com>
2025-06-04 17:06:37 +00:00
github-automation-metabase
6464ddbba4 Randomize the timing of upgrade checks (#58701) (#58808)
Co-authored-by: John Swanson <john.swanson@metabase.com>
2025-06-04 15:59:14 +00:00
Noah Moss
2f0a96ad77 Always fully uncollapse pivots in exports (#58716) (#58938)
* keep backend pivot exports uncollapsed

* fix kondo errors

* update tests - only run collapsing tests on cljs, add a new test for clj that rows are not collapsed

* fix more kondo warnings

* cleanup
2025-06-04 11:58:14 -04:00
github-automation-metabase
d230cb17e5 Add an option to opt in to multi-staged data picker (#58575) (#58949)
* Add an option to force multi-staged data picker

* Move type to a proper location

* Add `question` to `entity_types`

* Add ability to select saved questions back to multi-staged data picker

* Auto select Questions or Models when there is only a single option

* Prevent accidental types

* Remove unreachable code

* Default the join step after selecting a question to the question step

* Fix type errors

* Improve typing + fix unit tests

* Remove unnecessary await

* Add unit tests

* Update the default simple data picker value

* Fix the picker name typo

* Ignore `question` in Simple data picker

* Add E2E tests

* Move a constant out of a type file

* Fix types

* Address review. Make code more sane

* Address review. Improve variable name clarity.

---------

Co-authored-by: Mahatthana (Kelvin) Nomsawadi <me@bboykelvin.dev>
Co-authored-by: Oisin Coveney <oisin@metabase.com>
2025-06-04 15:21:48 +00:00
github-automation-metabase
aab38159e4 🤖 backported "fix: prevent empty updated_at updates" (#58894)
* fix: prevent empty updated_at updates (#58811)

Use cluster locking around both last_viewed_at and view_count updateds
for report_dashboard models.

* fixup! merge added the api module in the wrong place

* fixup! old model with bad t2/changes

* fixup! old model test

---------

Co-authored-by: Edward Paget <edpaget@users.noreply.github.com>
Co-authored-by: Edward Paget <ed.paget@gmail.com>
2025-06-04 13:41:15 +00:00
Cam Saul
76f9859512 Mega App DB memory usage improvements (#58664) (#58685) (#58900)
* Mega App DB memory usage improvements

* Add a test

* Minor comment formatting

* Fix test name

* This test can be ^:parallel

* Actually no it can not

* Fix test name


# Conflicts:
#	test/metabase/db/connection_pool_setup_test.clj

Co-authored-by: github-automation-metabase <166700802+github-automation-metabase@users.noreply.github.com>
2025-06-04 06:29:29 -04:00
github-automation-metabase
18810635a2 Handle datetime extracted values in filters for xrays (#58725) (#58769)
Fixes #47196.

Co-authored-by: metamben <103100869+metamben@users.noreply.github.com>
2025-06-03 21:12:49 +03:00
github-automation-metabase
d52912d1cd array-map for json export to preserve order (#58451) (#58455)
* array-map for json export to preserve order

* fix indents

* add comment

Co-authored-by: Tyler Plude <tsplude@gmail.com>
2025-06-03 08:11:15 -07:00
github-automation-metabase
d277cb78da 🤖 backported "Convert BigDecimals to double for color getter JS bundle" (#58452)
* Convert BigDecimals to double for color getter JS bundle (#58263)

* Convert bigdecimals in table static viz

* unit test; support for bigint conversion

* fix

---------

Co-authored-by: Tyler Plude <tsplude@gmail.com>
2025-06-03 08:11:04 -07:00
github-automation-metabase
ebb9a40b7b Ensure display-info returns correct :long-display-name for aggregations from a previous stage (#58614) (#58746)
* Add lib.util/find-clause-by-uuid

* Lookup clause by uuid to generate the :long display-name for a :metadata/column

* Fix display-name expectations in targets.unit.spec.ts

* Fix display-name expectations in click-behavior.cy.spec.js

* Fix display-name expectations in filter-sources.cy.spec.js

* Review feedback: ensure last-stage? throw when given an invalid stage-number

* Review feedback: use lib.tu/venues-query

* Review feedback: explict true? and false? checks for first-stage? and last-stage?

Co-authored-by: appleby <86076+appleby@users.noreply.github.com>
2025-06-03 00:59:50 +00:00
github-automation-metabase
b0da5b93e8 Fix embarrassing styling in Data Reference (#58544) (#58752)
* fix alignment on table lists

* make all the lists align the same

* remove unnecessary 100% width

* standardize card widths

* fix up edit state

Co-authored-by: Maz Ameli <maz@metabase.com>
2025-05-31 05:34:51 +00:00
github-automation-metabase
855e3f72df fix: no log on migrations without a rollback (#58577) (#58735)
Co-authored-by: Edward Paget <edpaget@users.noreply.github.com>
2025-05-30 19:59:35 +00:00
github-automation-metabase
0ad4d27ab0 🤖 backported "Use user locale setting if available for lang prop in <html>" (#58483)
* Use user locale setting if available for lang prop in <html>

* fixing unit test

---------

Co-authored-by: Nick Fitzpatrick <nickfitz.582@gmail.com>
2025-05-30 23:13:08 +05:30
Case Nelson
ab78fa4ba3 fix: sqlserver properly convey ssh-tunnel details to connection-pool cache (#58309) (#58649)
* fix: drivers properly convey ssh-tunnel details to connection-pool cache
2025-05-30 11:06:01 -06:00
github-automation-metabase
662562c861 🤖 backported "Generate valid multi arg string filters in parameter chaining" (#58675)
* Generate valid multi arg string filters in parameter chaining (#58646)

Fixes #57287

* Fix namespace ordering

---------

Co-authored-by: metamben <103100869+metamben@users.noreply.github.com>
Co-authored-by: Tamás Benkő <tamas@metabase.com>
2025-05-30 18:47:33 +03:00
github-automation-metabase
4a42a8b9bb 🤖 backported "Reduce parameter data sent in public csv download url" (#57891)
* Reduce parameter data sent in public csv download url (#57195)

* Only send id and value when downloading csv

* Add repro for metabase#51813

* Merge in template tag parameters to parameters when running cards

* Fix erroneous test

* Do not pass all parameter data for cards

* Remove commented out code

* Only pass sparse parameters on public dashboards or cards

* Remove unused import

* Fix lint

---------

Co-authored-by: Tamás Benkő <tamas@metabase.com>

* Add missing import

* Fix e2e test

---------

Co-authored-by: Romeo Van Snick <romeo@romeovansnick.be>
Co-authored-by: Tamás Benkő <tamas@metabase.com>
2025-05-30 09:17:14 +02:00
github-automation-metabase
106183385f 🤖 backported "fix: audit-db adjust source check for lower case" (#58654)
* fix: audit-db adjust source check for lower case (#58605)

* fixup! skip lowercase test on mysql

doesn't make sense to run pre-55 since our unique constraint before then
on mysql was case insensitive

---------

Co-authored-by: Edward Paget <edpaget@users.noreply.github.com>
Co-authored-by: Edward Paget <ed.paget@gmail.com>
2025-05-29 20:03:53 +00:00
github-automation-metabase
a8d499b6d9 🤖 backported "fix: set download-results to no on table block" (#58610)
* fix: set download-results to no on table block (#58597)

* fix: set download-results to no on table block

When a view-data permission for a table is set to blocked set the
create-queries and download-results permissions to no. Also includes a
migration script read to backport to v52 to update databases to be
consistent with this change

* fixup! remove precondition

* fixup! join in update to work on mysql

* fixup! separate migrations on mysql/postgres

* fixup! test order

* fixup! replace add-user-to-group!

* fixup! set schema in a test

---------

Co-authored-by: Edward Paget <edpaget@users.noreply.github.com>
Co-authored-by: Edward Paget <ed.paget@gmail.com>
2025-05-29 19:17:21 +00:00
Alexander Polyankin
80cc1beffa Port MultiAutocomplete from v55 to v54 (#58643) 2025-05-29 12:01:29 -04:00
github-automation-metabase
e6a82c5349 Fix nextjs dependency (#58584) (#58617)
Co-authored-by: Timofey Kachalov <timofei@metabase.com>
2025-05-29 08:22:52 +00:00
github-automation-metabase
eedc296ccd Fix Viz settings of 2 questions with the same query on dashboard subsciprionts (#58471) (#58503)
Co-authored-by: Ngoc Khuat <qn.khuat@gmail.com>
2025-05-29 14:15:47 +07:00
Riley Thompson
91708524f2 Upgrade ClickHouse JDBC driver to 0.8.6
* Bump com.clickhouse/clickhouse-jdbc from 0.8.5 to 0.8.6 (#58142)

Inspect dependency changes here:

Co-authored-by: Metabase bot <metabase-bot@metabase.com>

* fix clickhouse tests

---------

Co-authored-by: github-automation-metabase <166700802+github-automation-metabase@users.noreply.github.com>
Co-authored-by: Metabase bot <metabase-bot@metabase.com>
2025-05-28 15:03:09 -04:00
github-automation-metabase
13e87f835e Fix underlying records drill for question with multiple breakouts on the same column (#58454) (#58549)
* Add breakout->filterable-column and matching-filterable-column

* Call breakout->filterable-column in underlying records drill-filter

* Use matching-filterable-column util in prepare-query-for-drill-addition

* Add e2e test

* Remove unused lib.ref alias

* Review feedback: nested -> card-sourced

* Review feedback: DrillThrough -> DrillThru

Co-authored-by: appleby <86076+appleby@users.noreply.github.com>
2025-05-28 01:36:40 +00:00
github-automation-metabase
ff71d52066 Add Clickhouse UUID cast implementation for native filtering (#58496) (#58522)
* clickhouse replace uuid impl

* generate uuids in tests

Co-authored-by: Riley Thompson <riley@metabase.com>
2025-05-27 14:21:30 +00:00
github-automation-metabase
1ab9486d9d Update Readme version references and published npm version to 0.54.13 (#58511) 2025-05-27 10:17:14 +00:00
github-automation-metabase
5697d1d446 🤖 backported "repurpose entityTypeFilter as entityTypes for new embedding data pickers for the SDK" (#58490)
* repurpose `entityTypeFilter` as `entityTypes` for new embedding data pickers for the SDK (#58208)

* used `entityTypeFilter` for new embedding data pickers

* Rename `entityTypeFilter` to be consistent with `entity_types`

* Migrate `entity_types` to a new reducer

* Add E2E test

* remove unused prop

* Fix interactive embedding's `entity_types`

* Fix unit tests

* Fix stuff that are missing because master removed it

---------

Co-authored-by: Mahatthana (Kelvin) Nomsawadi <me@bboykelvin.dev>
2025-05-27 10:14:38 +01:00
github-automation-metabase
1f67bd251f Email domain check when adding notification recipients (#57416) (#57603)
Co-authored-by: Ngoc Khuat <qn.khuat@gmail.com>
2025-05-27 06:51:50 +00:00
github-automation-metabase
dbbbf7030e Fix static question embed download when parameters have multiple values (#58423) (#58507)
* Fix static question embed download when parameters have multiple values

* Simplify type

* Don't wanna deal with outdated query builder types 🤷

* Use a proper value when asserting

Co-authored-by: Mahatthana (Kelvin) Nomsawadi <me@bboykelvin.dev>
2025-05-27 06:34:59 +00:00
github-automation-metabase
392364e854 nest-query explicitly adds all fields to the query (#58331) (#58502)
Before, nest-query relied on the preprocessor (specifically, the add-implicit-clauses middleware) to add all possible
fields to the newly created inner query (and then removes unnecessary fields later).  However, add-implicit-fields
ignores fields with a parent id.  The main user of parent-id is mongo, and mongo doesn't use nest-query, so this
usually isn't an issue.  However, bigquery also uses parent-id, and bigquery is a sql driver that uses nest-query.  As
a result, nest-query wasn't adding bigquery struct member fields to the inner query, which caused some queries to
break.  Now, nest-query explicitly finds all non-sensitive/retired fields (including fields with parent ids) and
ensures that they are in the inner query.

Co-authored-by: William <william@metabase.com>
2025-05-26 23:37:48 +00:00
github-automation-metabase
c232ad74ef Add bigquery user agent (#58410) (#58457)
Co-authored-by: Riley Thompson <riley@metabase.com>
2025-05-26 15:09:21 -06:00
github-automation-metabase
077dd468df Update Readme version references and published npm version to 0.54.12 (#58481) 2025-05-26 12:17:21 +00:00
github-automation-metabase
23185d513c Remove edit permissions from other users personal collections (#58281) (#58480)
Co-authored-by: Nick Fitzpatrick <nick@metabase.com>
2025-05-26 12:12:19 +00:00
github-automation-metabase
4961061409 fix: audit db not working after import form h2 (#58374) (#58440)
* fix: audit db not working after import form h2

Removes conditions from the `adjust-audit-db-to-source!` function so we
make sure we always restoring the audit db tables to their original form
regardless of what type of app-db is used.

* fixup! test setting up db triggers

* fixup! cljfmt

Co-authored-by: Edward Paget <edpaget@users.noreply.github.com>
2025-05-23 21:41:44 +00:00
github-automation-metabase
8f84c25502 Improved search metrics (#57797) (#58418)
# Conflicts:
#	src/metabase/search/appdb/index.clj
#	src/metabase/search/task/search_index.clj

Co-authored-by: Nathan Voxland <nathan@metabase.com>
2025-05-23 15:04:31 -05:00
github-automation-metabase
8cb0a816c0 url-encode parameters substituted into link and iframe cards (#58429) (#58444)
Co-authored-by: Noah Moss <32746338+noahmoss@users.noreply.github.com>
2025-05-23 20:00:32 +00:00
github-automation-metabase
ce2f571321 Fix column alignment for fully-collapsed pivot exports (#58372) (#58442)
* Fix fully collapsed pivot exports

* Fix tests, fix unrelated typo

Co-authored-by: Noah Moss <32746338+noahmoss@users.noreply.github.com>
2025-05-23 19:46:21 +00:00
github-automation-metabase
59ae3577a9 fix(sdk): fix tooltip crash by migrating away from renderToString (#58394) (#58411)
Co-authored-by: Phoomparin Mano <poom@metabase.com>
2025-05-23 14:19:21 +00:00
github-automation-metabase
c461706f21 cross versions tests: skip @OSS tests and use prod build for the FE (#58277) (#58406)
run breaking changes tests on multiple runners

TO BE REVERTED BEFORE MERGING

force production fe build

build-release as setting node_env fucks up everything

exclude @OSS tests

Revert "TO BE REVERTED BEFORE MERGING"

This reverts commit c907a2f492.

Co-authored-by: Nicolò Pretto <info@npretto.com>
2025-05-23 13:25:06 +00:00
github-automation-metabase
8a0cfe498c Questions in usage analytics should never show native preview panel (#58229) (#58400)
* Add additional check on rendering native preview panel

* adding e2e test

* adjusting e2e test

* do not show native panel when no data is selected

* move e2e test to instance analytics suite

Co-authored-by: Nick Fitzpatrick <nick@metabase.com>
2025-05-23 12:14:44 +00:00
github-automation-metabase
e54fa459d4 Set sensible default data picker step when joining (#58065) (#58397)
* simplify embedding data picker code

* Show the data picker step based on starting query source

* Set starting model collection ID when joining a model

* Improve initial collection loading UX

* Fix failed unit tests and types

* Fix failed E2E tests

* remove unused var

* Fix sometimes the starting collection is incorrect

* Add an E2E test

* Add a comment to clarify

* Clarify a new prop

Co-authored-by: Mahatthana (Kelvin) Nomsawadi <me@bboykelvin.dev>
2025-05-23 11:11:16 +00:00
github-automation-metabase
6080fac312 Disable distribution drill if binning is not available (#58356) (#58370)
* disable distribution drill if binning is not supported

* add unit test

Co-authored-by: Nicola Mometto <nicola.mometto@metabase.com>
2025-05-23 09:05:30 +00:00
github-automation-metabase
f15d248a61 sdk(docs): Remove remarks from SdkDashboardDisplayProps type annotations (#58368) (#58391)
Co-authored-by: Timofey Kachalov <timofei@metabase.com>
2025-05-23 08:22:54 +00:00
github-automation-metabase
138d0ddcbf Disable quartz metrics trigger listener (#58244) (#58388)
Co-authored-by: Edward Paget <edpaget@users.noreply.github.com>
2025-05-23 02:34:12 +00:00
github-automation-metabase
c0b0c121e3 Closes VIZ-329 -> Applying formatting updates is unintuitive happens on scroll (#58252) (#58381)
* VIZ-329 Updates ChartSettingInput and ChartSettingInputNumeric to apply changes when the user pauses typing in addition to on blur

* VIZ-329 Removes now-redundant blur handler in ChartSettingInputNumeric and updates unit tests

Co-authored-by: Brad Anderson <brad@metabase.com>
2025-05-22 21:46:36 +00:00
github-automation-metabase
35313e6e16 fix: drop execution time quartz job metric (#58351) (#58362)
Co-authored-by: Edward Paget <edpaget@users.noreply.github.com>
2025-05-22 16:23:18 +00:00
github-automation-metabase
9b0b80270b Show "Use instance font" in default dropdown in static embed (#58335) (#58354)
Co-authored-by: Phoomparin Mano <poom@metabase.com>
2025-05-22 14:34:16 +00:00
github-automation-metabase
f700095e59 🤖 backported "fix: explicitly mark when fields are gtapped" (#58319)
* fix: explicitly mark when fields are gtapped (#58113)

* fix: explicitly mark when fields are gtapped

* add debug

* fixup! tests setup to set advanced feature

* fixup! strip any user-added gtapped-tables keys

* fix a bad import

* fix test var

---------

Co-authored-by: Edward Paget <edpaget@users.noreply.github.com>
Co-authored-by: Edward Paget <ed.paget@gmail.com>
2025-05-22 14:18:02 +00:00
github-automation-metabase
3bcca3df4c Render bucketing popover in portal (#58170) (#58353)
* Render popover in portal

* Revert withinPortal change

* WIP

* Move overflow onto child container

* Move fix to css-only

* Remove fixed strategy

* Fix e2e tests

* Reduce diff

Co-authored-by: Romeo Van Snick <romeo@romeovansnick.be>
2025-05-22 14:11:42 +00:00
github-automation-metabase
a6ead61f57 feat(sdk): remove question and metric from entity type filters in the sdk's data picker (#58339) (#58350)
Co-authored-by: Phoomparin Mano <poom@metabase.com>
2025-05-22 13:37:10 +00:00
github-automation-metabase
b54d4a669b Update toast design (#58145) (#58278)
* Make default toast color darker

* Avoid remounting the UndoList on overy toast change

* Tweak the undo animation to come in from the left

* Move more undo state into UndoListingOverlay

* Reverse toast order

* Manually manage undo target

* Remove unused props

* Store pause state in undo itself

* Use react-transition-group to render toast notifications

* Measure height so we can animate toast position

* Use css transforms only and avoid animating bottom

* Mock react-transition-group in test

* Unmount elements on exit

* Wait for animation in test

* Make toast ref optional

* Clean up transition

* Fix e2e test

* Disable transition group in cypress

* Add check_filled icon

* Default to check_filled

* Add text-secondary-inverse

* Use text-secondary-inverse color for icon on tooltip

* Remove min-width from toast

* Control the animation state of the todo's after moving the portal

* Fix icon in unit tests

* Simplify undo hooks

* Avoid overwriting state

* Add missing import

* Allow transitioning new todos even when not moving the portal

* Fix e2e test

* Update Loki Snapshots

---------

Co-authored-by: Romeo Van Snick <romeo@romeovansnick.be>
2025-05-22 14:13:38 +02:00
github-automation-metabase
615d8280f6 run breaking changes tests on multiple runners (#58092) (#58343)
Co-authored-by: Nicolò Pretto <info@npretto.com>
2025-05-22 11:57:15 +00:00
github-automation-metabase
88e7ee4935 Fix race condition in sync, causing failure if a table gets deleted inbetween steps (#58217) (#58275)
* fix typo

* don't error out during fields-metadata fallback if table is known to not exist

* table known to not exist impl for drivers

* add test

* add debug log

* add to changelog

* address review comments

Co-authored-by: Nicola Mometto <nicola.mometto@metabase.com>
2025-05-22 10:15:30 +01:00
github-automation-metabase
428ab97aaf Remove :expression_name from col-info-for-expression in annotate middleware (#57981) (#58174)
* Fix the sorting of custom column from a saved card in a new question

* Remove the expression_name that is not actually used.

* Use col.name instead of expression_name in sanatizeResultData

* Remove additional :expression_name references in tests

* Remove comment that was attached to now-removed :expression_name

* Remove expression_name from static-viz components

* Remove expression_name from instance_analytics export

* Add comment to now-deprecated expression_name field in DatasetColumn

* Add e2e test for sorting on nested custom column

---------

Co-authored-by: Lifeng Lv <lvlifen9@gmail.com>

 Conflicts:
	src/metabase/query_processor/middleware/annotate.clj
	test/metabase/query_processor/middleware/annotate_test.clj

Co-authored-by: appleby <86076+appleby@users.noreply.github.com>
2025-05-21 17:41:40 -07:00
github-automation-metabase
e09b611b62 Log view count information (#58259) (#58303)
BEFORE:
```
2025-05-20 22:24:17,586 DEBUG middleware.log :: POST /api/dashboard/pivot/1/dashcard/12/card/10/query 202 [ASYNC: completed] 634ms (81 DB calls) App DB connections: 1/15 Jetty threads: 4/50 (3 idle, 0 queued) (132 total active threads) Queries in flight: 1 (0 queued); h2 DB 1 connections: 0/7 (0 threads blocked) {:metabase-user-id 1}
2025-05-20 22:24:25,629 DEBUG events.view-log :: Increment view counts of 24 items
```

AFTER:

```
2025-05-20 22:24:17,586 DEBUG middleware.log :: POST /api/dashboard/pivot/1/dashcard/12/card/10/query 202 [ASYNC: completed] 634ms (81 DB calls) App DB connections: 1/15 Jetty threads: 4/50 (3 idle, 0 queued) (132 total active threads) Queries in flight: 1 (0 queued); h2 DB 1 connections: 0/7 (0 threads blocked) {:metabase-user-id 1}
2025-05-20 22:24:25,629 DEBUG events.view-log :: Increment view counts of 24 items
2025-05-20 22:24:25,638 DEBUG events.view-log :: Writing 3 items to :model/Dashboard with lock :metabase.events.view_log/report_dashboard-view-count
2025-05-20 22:24:25,654 DEBUG events.view-log :: Writing 21 items to :model/Card with lock :metabase.util.cluster-lock/statistics-lock
2025-05-20 22:24:27,649 WARN models.card :: Best-effort backfill of :entity_id failed for Card null
2025-05-20 22:24:27,656 WARN models.card :: Best-effort backfill of :entity_id failed for Card null
2025-05-20 22:24:27,660 WARN models.card :: Best-effort backfill of :entity_id failed for Card null
```

Co-authored-by: dpsutton <dan@dpsutton.com>
2025-05-21 19:58:33 +00:00
github-automation-metabase
9b67f93e3f fix: appdb table permssions search slowdown (#58294) (#58305)
Use a correlated subquery to make sure we hit the pk index

Co-authored-by: Edward Paget <edpaget@users.noreply.github.com>
Co-authored-by: John Swanson <john.swanson@metabase.com>
2025-05-21 19:53:13 +00:00
github-automation-metabase
820c30a616 fix: split snyk scans (#58290) (#58291)
Fits them under githubs 20 runs per sarif file limit

Co-authored-by: Edward Paget <edpaget@users.noreply.github.com>
2025-05-21 16:24:17 +00:00
github-automation-metabase
b4c2cf0e08 🤖 backported "Update translations 2025-04-29" (#57656) 2025-05-21 12:22:33 -04:00
github-automation-metabase
5baf7ff1e6 fix narrow columns widths in dashcards (#57873) (#58272)
* expand columns to minGridWidth

* specs, flakiness

* refactor measuring code, reduce flakiness

* fix types

* Update Loki Snapshots

---------

Co-authored-by: Aleksandr Lesnenko <alxnddr@users.noreply.github.com>
2025-05-21 12:41:13 +00:00
github-automation-metabase
d1663f6021 🤖 backported "Fix snowplow e2e test helpers to be less flaky" (#57904)
* Fix snowplow helpers to be less flaky (#57750)

Remove `expectGoodSnowplowEvents` entirely - it was an antipattern.

Replace it with a good set of snowplow helper functions that actually
accomplish what we want:

- `expectSnowplowEvent`, which matches on the *entire* event rather than
assuming the event is an unstructured event (most of ours are, but some
are not).

- `expectUnstructuredSnowplowEvent`, which behaves the same as
  `expectGoodSnowplowEvent` used to, except I removed an unused behavior
  where it took a function instead of a partial-match object.

- `assertNoUnstructuredSnowplowEvent`, which asserts the inverse of
  `expectGoodSnowplowEvent` - there are zero matching snowplow events.

I removed `Good` from all these names as I think that's implied - if you
want to make an assertion that a bad event is being received you can
write your own helper :)

* fix

---------

Co-authored-by: John Swanson <john.swanson@metabase.com>
2025-05-21 05:33:40 -07:00
github-automation-metabase
ef4389649e Restore embed signal fallback when in embedding (#58240) (#58270)
Co-authored-by: Phoomparin Mano <poom@metabase.com>
2025-05-21 09:01:42 +00:00
github-automation-metabase
f222547ecd API key creation modal alawys shows error after selecting group (#58210) (#58269)
* fixing FormGroupWidget error prop

* update unit test

Co-authored-by: Nick Fitzpatrick <nick@metabase.com>
2025-05-21 07:29:07 +00:00
github-automation-metabase
4075101eb1 Add script to facilitate translation backports (#58189) (#58266)
Co-authored-by: Raphael Krut-Landau <raphael.kl@gmail.com>
2025-05-21 02:51:14 +00:00
github-automation-metabase
633b01a537 Remove field ident calculation (#58257)
Co-authored-by: Alexander Polyankin <alexander.polyankin@metabase.com>
2025-05-20 22:29:32 +00:00
github-automation-metabase
b3b96e20dc docs: make sure the code renders (#58205) (#58256)
* Update funnel.md

* don't need to escape apparently

Co-authored-by: Alex Yarosh <alexandra@metabase.com>
2025-05-20 21:45:28 +00:00
github-automation-metabase
adf45f46bd 🤖 backported "Better support for non-english searching in appdb index" (#58169)
# Conflicts:
#	.clj-kondo/config/modules/config.edn
#	resources/migrations/001_update_migrations.yaml
#	src/metabase/search/appdb/core.clj
#	src/metabase/search/settings.clj

* Deleted unused file

---------

Co-authored-by: Nathan Voxland <nathan@metabase.com>
2025-05-20 16:30:29 -05:00
Nathan Voxland
72e72c432e Wait a bit longer in util.queue tests to let them pass in CI (#56681) (#58255)
(cherry picked from commit f786d876bb)

Co-authored-by: metamben <103100869+metamben@users.noreply.github.com>
2025-05-20 16:29:06 -05:00
github-automation-metabase
9604aa351a Limit data selected out to what will be eventually indexed (#57552) (#58184)
# Conflicts:
#	src/metabase/search/appdb/specialization/postgres.clj

Co-authored-by: Nathan Voxland <nathan@metabase.com>
2025-05-20 13:52:35 -05:00
Alexander Polyankin
4687a2ed9a Delete backfill job in 54 (#58241) 2025-05-20 19:19:05 +01:00
Anton Kulyk
d4fffcfeea Manual backport: Close table header popover on second click (#58076)
* Close table header popover on second click (#57282)

* Un-skip and update repro test

* Close table header popover on subsequent click

* Fix e2e test helper
2025-05-20 16:30:14 +00:00
github-automation-metabase
52476b8380 fix(sdk): questions shows an error while loading on strict mode (#58183) (#58219)
Co-authored-by: Phoomparin Mano <poom@metabase.com>
2025-05-20 11:58:01 +00:00
github-automation-metabase
f7ece68642 Fix menu text on sharing and subscription menu (#58089) (#58149)
Co-authored-by: Oisin Coveney <oisin@metabase.com>
2025-05-20 12:20:04 +02:00
github-automation-metabase
e928f902ae chore: add bpander as a team member (#58176) (#58186)
Co-authored-by: Brad Anderson <brad@metabase.com>
2025-05-19 19:42:24 +00:00
github-automation-metabase
3205378d96 fix tooltip flakes (#58117) (#58159)
Co-authored-by: Aleksandr Lesnenko <alxnddr@users.noreply.github.com>
2025-05-19 17:24:22 +00:00
github-automation-metabase
b762cd76b3 🤖 backported "Fix default for condense duplicate totals setting" (#58167)
* Fix default for condense duplicate totals setting (#58112)

* fixups, fix default for collapsed rows setting

* add condense_duplicate_totals test for pivot csv exports

* tweak order of checks

* remove test incorrectly added in backport merge

---------

Co-authored-by: Noah Moss <32746338+noahmoss@users.noreply.github.com>
Co-authored-by: Noah Moss <noahbmoss@gmail.com>
2025-05-19 16:47:50 +00:00
github-automation-metabase
6e96d82071 🤖 backported "Refresh temporary tokens" (#58115)
* Refresh temporary tokens (#58046)

* refresh temporary tokens

* fix tests

* update comments

* backport test helper

---------

Co-authored-by: Ryan Laurie <30528226+iethree@users.noreply.github.com>
Co-authored-by: Ryan Laurie <iethree@gmail.com>
2025-05-19 15:54:53 +00:00
github-automation-metabase
830164a1d7 Unlimit pivot exports (#58109) (#58171)
* unlimit pivot exports

* fixups, fix default for collapsed rows setting

* address import issue

* simple unit test

* simplify test a bit

---------

Co-authored-by: Noah Moss <32746338+noahmoss@users.noreply.github.com>
Co-authored-by: Tyler Plude <tsplude@gmail.com>
2025-05-19 15:45:43 +00:00
github-automation-metabase
97f4323dc3 Bump HoneySQL version (#58156) (#58163)
Co-authored-by: Oleksandr Yakushev <alex@bytopia.org>
2025-05-19 13:48:10 +00:00
github-automation-metabase
1c301e5bd8 cljs: Fix obscenely large schema expansions (#58094) (#58165)
Co-authored-by: Oleksandr Yakushev <alex@bytopia.org>
2025-05-19 13:44:18 +00:00
github-automation-metabase
4e391c9e95 perf: Small optimizations for metabase.search.spec (#57935) (#58162)
Co-authored-by: Oleksandr Yakushev <alex@bytopia.org>
2025-05-19 13:42:56 +00:00
github-automation-metabase
8b44a805fd fix legend flaky spec (#58006) (#58160)
Co-authored-by: Aleksandr Lesnenko <alxnddr@users.noreply.github.com>
2025-05-19 11:32:14 +00:00
github-automation-metabase
c0e7a8f766 Bump Toucan and Methodical (#57932) (#58153)
Co-authored-by: Oleksandr Yakushev <alex@bytopia.org>
2025-05-19 14:30:52 +03:00
github-automation-metabase
8caf9921cb perf: Cache metabase.driver.util/features (#57811) (#58154)
Co-authored-by: Oleksandr Yakushev <alex@bytopia.org>
2025-05-19 11:01:22 +00:00
github-automation-metabase
b7de6e8d10 convert script to js in preparation of splitting the work on multiple runners (#58086) (#58147)
* convert script to js

import os

* remove two tests as one file there fails

* Update bin/backward-compatibility-test.js



* test -> tests

* address feedback

---------

Co-authored-by: Nicolò Pretto <info@npretto.com>
Co-authored-by: Mahatthana (Kelvin) Nomsawadi <me@bboykelvin.dev>
2025-05-19 10:19:05 +00:00
github-automation-metabase
f3dfdaf270 Remove field references (#57950) (#58144)
Co-authored-by: Mahatthana (Kelvin) Nomsawadi <me@bboykelvin.dev>
2025-05-19 04:57:06 +00:00
github-automation-metabase
dce798d137 revert and disable entity-id backfill (#58098) (#58107)
Co-authored-by: William <william@metabase.com>
2025-05-16 15:25:42 -05:00
github-automation-metabase
3f997055f3 Adapt the setup flow for the "embedding" use case (#57749) (#58100)
We're greatly simplifying and speeding up a Metabase setup 
when the use case is "embedding". This currently applies only to 
hosted instances. The FE in the main app will expect the query param
`use_case=embedding` to exist. If it does, we're showing the simplified
setup flow.

Co-authored-by: Nemanja Glumac <31325167+nemanjaglumac@users.noreply.github.com>
2025-05-16 17:32:42 +00:00
github-automation-metabase
682205a1d7 cljs: Don't require cljs.pprint in :cljs-release mode to reduce bundle size (#58085) (#58093)
Co-authored-by: Oleksandr Yakushev <alex@bytopia.org>
2025-05-16 15:39:53 +00:00
github-automation-metabase
e0296eba54 🤖 backported "Robust InitSendPulseTriggers" (#58081)
* Robust `InitSendPulseTriggers` (#58007)

* fix imports

---------

Co-authored-by: Ngoc Khuat <qn.khuat@gmail.com>
2025-05-16 15:32:50 +00:00
github-automation-metabase
df9b543e2a Return nil when there are no params in a subscription (#58075) (#58079)
We're using the `computed.filters` value in the handlebars email template.
Previously, if `parameters` were an empty list `[]` we were returning a truthy value,
and handlebars was rendering an empty row in an email.

@ngoc figured out that we need to wrap parameters with `seq` in order to have a
a proper `nil` assigned to `:parameters`.

Co-authored-by: Nemanja Glumac <31325167+nemanjaglumac@users.noreply.github.com>
2025-05-16 12:07:57 +00:00
github-automation-metabase
ae5a2bc5a0 feat(sdk): Reduce bundle size by avoiding the usage of jsrsasign dependency (#58009) (#58078)
Co-authored-by: Timofey Kachalov <timofei@metabase.com>
2025-05-16 11:33:04 +00:00
github-automation-metabase
8d7c4917df fix flaky timelines spec (#58060) (#58077)
Co-authored-by: Aleksandr Lesnenko <alxnddr@users.noreply.github.com>
2025-05-16 11:04:30 +00:00
github-automation-metabase
a2bb110831 new login email fallback to last_name, email if it exists (#58027) (#58066)
Co-authored-by: Ngoc Khuat <qn.khuat@gmail.com>
2025-05-16 07:16:41 +00:00
github-automation-metabase
f4628d795b Update Readme version references and published npm version to 0.54.11 (#58068) 2025-05-16 07:12:57 +00:00
github-automation-metabase
a64f416258 fix the enterprise feature that let admin archive all notifications of a user and unsubscribe them from notifiations (#57881) (#57970)
Co-authored-by: Ngoc Khuat <qn.khuat@gmail.com>
2025-05-16 05:31:44 +00:00
github-automation-metabase
51dab5f6fc Giving system event notifications its own queue (#57769) (#57944)
Co-authored-by: Ngoc Khuat <qn.khuat@gmail.com>
2025-05-16 05:02:40 +00:00
github-automation-metabase
210c301d2d prefix all of our log context with mb- (#58023) (#58064)
Co-authored-by: Ngoc Khuat <qn.khuat@gmail.com>
2025-05-16 04:09:27 +00:00
github-automation-metabase
c03af11724 feat: generic data permissions visibility queries (#57712) (#57996)
* feat: generic data permissions visibility queries

Creates a new namespace with a generically applicable set of sql queries
for getting only models controlled by data permissions that a given user
has access to.

It also creates a new model.interface defmulti `visible-filter-clause`
that allows us to generate a filter clause for a given model to filter a
query on a supplied expression to only those models allowed for the
supplied user. There is a default implementation that is always true.

the `visible-filter-clause` method is only implemented for the Table
model so far since that is used in a search.

This also fixes a bug in the previous implementation of the sql
filtering for Table models that did not correctly handle the logic in
`data-perms/coalesce` for `:perms/view-data` where `:blocked` is ranked
ahead of `:legacy-no-self-service` for the purposes of selecting the
applicable user permission but is ranked below when testing permission levels.



* fixup! default for visible-fliter-clause to false

* fixup! add cast back for search permissions

* fixup! correct db type test

* fixup! more verbose table names in perms test

---------

Co-authored-by: Edward Paget <edpaget@users.noreply.github.com>
Co-authored-by: John Swanson <john.swanson@metabase.com>
2025-05-15 17:41:47 +00:00
github-automation-metabase
1462dcf84c Do not transform :has css selectors by Post CSS (#58011) (#58042)
Co-authored-by: Timofey Kachalov <timofei@metabase.com>
2025-05-15 16:55:26 +00:00
github-automation-metabase
aa198cafd0 Handle emptyable expressions in desugar-is-empty-and-not-empty (#57870) (#57941)
Closes #41265.

The schema for is-empty and not-empty was updated in #56855 to allow StringExpressionArg as well as Field. This
updates desugar-is-empty-and-not-empty to also understand non-field args.

Co-authored-by: appleby <86076+appleby@users.noreply.github.com>
2025-05-15 16:19:39 +00:00
github-automation-metabase
c51875a2a3 Fix fonts.styled.ts braces (#58025) (#58035)
Co-authored-by: Timofey Kachalov <timofei@metabase.com>
2025-05-15 16:10:07 +00:00
github-automation-metabase
beac616952 add yet another linter, no literal strings so we don't forget to translate everything (#57785) (#57964)
Co-authored-by: Nicolò Pretto <info@npretto.com>
2025-05-15 17:55:01 +02:00
github-automation-metabase
c4f8952d4a Fix ModalHeader back button position (#58008) (#58018)
Co-authored-by: Timofey Kachalov <timofei@metabase.com>
2025-05-15 15:49:01 +00:00
github-automation-metabase
84e776dd8a Fix wrong names of CSS module files (#58012) (#58019)
Co-authored-by: Timofey Kachalov <timofei@metabase.com>
2025-05-15 15:48:20 +00:00
github-automation-metabase
6a2ed8fe84 ci(sdk): fix flaky tests on entity id target collection (#58014) (#58031)
Co-authored-by: Phoomparin Mano <poom@metabase.com>
2025-05-15 11:28:27 +00:00
Roman Abdulmanov
b393d043c7 Revert "🤖 backported "Send param_fields per parameter to avoid field ref ma…" (#58021)
This reverts commit e2ca582d7d.
2025-05-15 12:11:07 +01:00
github-automation-metabase
95c385fc31 ci(sdk): fix flaky tests on interactive question theming (#58010) (#58029)
Co-authored-by: Phoomparin Mano <poom@metabase.com>
2025-05-15 10:45:58 +00:00
github-automation-metabase
86630b17d0 🤖 backported "track first non-table chart generated" (#57982)
* track first non-table chart generated (#56858)

* track first non-table chart generated

* specs

* fix types

* review

* fix serialization

* eliminate chart rerender when instance settings change

* fix prop name

* rename chart-generated setting

* update e2e spec

* update e2e spec

---------

Co-authored-by: Aleksandr Lesnenko <alxnddr@users.noreply.github.com>
Co-authored-by: Aleksandr Lesnenko <alxnddr@gmail.com>
2025-05-15 04:22:40 +00:00
github-automation-metabase
92df77e55a Add DWH Paused Modal for Uploads (#57285) (#57786)
* add paused modal

* trigger paused modal

* add unit tests
# Conflicts:
#	frontend/src/metabase-types/api/settings.ts

Co-authored-by: Ryan Laurie <30528226+iethree@users.noreply.github.com>
2025-05-14 17:13:33 -06:00
github-automation-metabase
9c8d399447 Fix FE navigation when the query is running (#57977) (#57992)
* Fix FE navigation when the query is running

* Fix FE navigation when the query is running

* Add test

* Add test

Co-authored-by: Alexander Polyankin <alexander.polyankin@metabase.com>
2025-05-14 22:21:58 +00:00
github-automation-metabase
e5ab312543 Improved liquibase rollback-major-version! logic to not use a simple count (#57754) (#57927)
# Conflicts:
#	src/metabase/db/liquibase.clj

Co-authored-by: Nathan Voxland <nathan@metabase.com>
2025-05-14 16:50:47 -05:00
github-automation-metabase
e2563e1581 Docs: update links so that they land on final URLs instead of internal redirects (#57461) (#57995)
Co-authored-by: Gustavo Saiani <gus@metabase.com>
2025-05-14 20:38:25 +00:00
github-automation-metabase
781d322e60 Pass param to plans-blockquote (#57991) (#57994)
Co-authored-by: Gustavo Saiani <gus@metabase.com>
2025-05-14 20:31:06 +00:00
github-automation-metabase
d7cf84136f Fix FE permission checks for Edit query definition (#57987)
Co-authored-by: Alexander Polyankin <alexander.polyankin@metabase.com>
2025-05-14 19:52:42 +00:00
github-automation-metabase
5936becaa4 fix(sdk): Move @cypress/react as dev dependency for SDK (#57962) (#57983)
Co-authored-by: Timofey Kachalov <timofei@metabase.com>
2025-05-14 19:29:29 +00:00
github-automation-metabase
71bb141b4f Update link (#57963) (#57988)
Co-authored-by: Gustavo Saiani <gus@metabase.com>
2025-05-14 19:22:39 +00:00
github-automation-metabase
5cdaecf927 🤖 backported "make the uberjar artifact from the cross-version tests not collide with the one from component tests" (#57975)
* make the uberjar artifact from the cross-version tests not collide with (#57971)

the one from component tests

* change retrieve key too

---------

Co-authored-by: Nicolò Pretto <info@npretto.com>
2025-05-14 18:44:15 +00:00
github-automation-metabase
066354e011 Add more tests to cover missing cases (#57744) (#57947)
* Add the first integration test!!!

* Finish integration tests

* Add missing E2E cases

* Remove WIP comment

* Ensure join data only show selected database

* Clarify cryptic Cypress step

* Make test types clearer

* Stop abusing `await` in unit tests

* Consolidate tests

Co-Authored-by: Poom poom@poom.dev

Co-authored-by: Mahatthana (Kelvin) Nomsawadi <me@bboykelvin.dev>
2025-05-14 15:13:54 +00:00
github-automation-metabase
582c344fae 🤖 backported "fix(ci-sdk): make cross versions tests run again" (#57953)
* fix(ci-sdk): make cross versions tests run again (#57856)

* debug logs

* testing please ignore

* cleanup and add comment

* remove double concurrency group causing deadlock

---------

Co-authored-by: Nicolò Pretto <info@npretto.com>
2025-05-14 17:00:41 +02:00
github-automation-metabase
619fcbb030 Update case.md (#57958) (#57959)
Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-05-14 13:38:11 +00:00
github-automation-metabase
d692890e8d Handle nulls with MBQL lib (#57943)
Co-authored-by: Alexander Polyankin <alexander.polyankin@metabase.com>
2025-05-14 13:19:07 +00:00
github-automation-metabase
474e61e4d5 Fix past1hours and past1seconds filters (#57907) (#57934)
* Fix past1hours and past1seconds filters

Without this change, both of these types generate 1 minute intervals.

Co-authored-by: metamben <103100869+metamben@users.noreply.github.com>
2025-05-14 11:54:31 +00:00
github-automation-metabase
e6060044f6 Don't add isCollapsed nodes for paths not in the data (#57704) (#57708)
Co-authored-by: Noah Moss <32746338+noahmoss@users.noreply.github.com>
2025-05-13 17:46:45 -07:00
github-automation-metabase
9c726f99a8 fix: snowflake test and migrate happening repeatedly (#57540) (#57925)
* fix: snowflake test and migrate happening repeatedly

* Improve comments in test

* Fix kondo

Co-authored-by: Case Nelson <case@metabase.com>
2025-05-13 20:11:30 +00:00
github-automation-metabase
06c3d65af7 fix(sdk): table cell color is always white on the sdk (#57770) (#57920)
Co-authored-by: Phoomparin Mano <poom@metabase.com>
2025-05-13 19:26:56 +00:00
github-automation-metabase
08f31d60a6 🤖 backported "[BUG FIX] Correctly merge column settings in exports" (#57892)
* [BUG FIX] Correctly merge column settings in exports (#57473)

* use existing col settings helper

* forward declaration of viz-settings-for-col to prevent compilation issues

* fixing typo in parens

* fix unit tests

* Fix clj kondo warnings

* cljkondo fix

---------

Co-authored-by: Tyler Plude <tsplude@gmail.com>
2025-05-13 12:18:17 -07:00
github-automation-metabase
61ec72fa4b feat(sdk): theme-dependent default question toolbar colors (#57747) (#57917)
Co-authored-by: Phoomparin Mano <poom@metabase.com>
2025-05-13 18:22:15 +00:00
Cam Saul
c5d2022eed Fix 401 vs 403 (#57912) 2025-05-13 11:11:21 -07:00
github-automation-metabase
5a2792f34d Update upgrading-metabase.md (#57751) (#57914)
* Update upgrading-metabase.md

Add changes that were needed for a long time :)

* suggested edits (#57913)

---------

Co-authored-by: Luis Paolini <paoliniluis@gmail.com>
Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-05-13 17:57:22 +00:00
github-automation-metabase
34e040828f 🤖 backported "fix: wrap un-translated strings in t``" (#57780)
* fix: wrap un-translated strings in t`` (#57693)

* fix: wrap un-translated strings in t``

* fix more untranslated strings

* translate some aria-labels

* use interpolation instead of having to provide context

* address feedback and add context

* more t calls added

* revert changes to slider component as it's not used and may get removed

* remove file that i re-created when rebasing

* more context

* more context

* Update frontend/src/metabase/query_builder/components/MoveQuestionModal/MoveQuestionModal.tsx

Co-authored-by: Raphael Krut-Landau <raphael.kl@gmail.com>

* Update frontend/src/metabase/query_builder/components/expressions/Editor/Listbox/Listbox.tsx

Co-authored-by: Raphael Krut-Landau <raphael.kl@gmail.com>

* address feedback

* add context to what is SSL short for

* remove whitespace that could possibly create issues

* add missing import for c

---------

Co-authored-by: Raphael Krut-Landau <raphael.kl@gmail.com>

* translate "Email Settings"

---------

Co-authored-by: Nicolò Pretto <info@npretto.com>
Co-authored-by: Raphael Krut-Landau <raphael.kl@gmail.com>
2025-05-13 16:48:55 +00:00
github-automation-metabase
f94ebf67a5 fix: remove fast snowflake sync (#57858) (#57866)
* fix: remove fast snowflake sync

* Fix kondo

Co-authored-by: Case Nelson <case@metabase.com>
2025-05-13 12:33:18 -04:00
github-automation-metabase
0b0a848f65 Closes VIZ-400 fix stickiness for initial rendering as well (#57886) (#57903)
Co-authored-by: Sébastien <sebastien@metabase.com>
2025-05-13 15:28:35 +00:00
github-automation-metabase
de183c634d merge (#57841)
Co-authored-by: jeff bruemmer <jeff.bruemmer@gmail.com>
2025-05-13 14:16:06 +00:00
github-automation-metabase
6ae58d3df6 fix formating value for contains parameter (#57876) (#57879)
Co-authored-by: Ngoc Khuat <qn.khuat@gmail.com>
2025-05-13 12:22:19 +00:00
github-automation-metabase
c615ca0f22 Update Readme version references and published npm version to 0.54.10 (#57878) 2025-05-13 09:11:52 +00:00
github-automation-metabase
e2ca582d7d 🤖 backported "Send param_fields per parameter to avoid field ref matching" (#57872)
Co-authored-by: Alexander Polyankin <alexander.polyankin@metabase.com>
2025-05-13 01:41:53 +00:00
github-automation-metabase
79e7bfbf16 wrap strings in t in EditSandboxingModal (#57787) (#57854)
Co-authored-by: Nicolò Pretto <info@npretto.com>
2025-05-12 17:29:09 +00:00
github-automation-metabase
5619b0b8cd fix text align setting on text dashcards (#57807) (#57850)
Co-authored-by: Aleksandr Lesnenko <alxnddr@users.noreply.github.com>
2025-05-12 16:32:10 +00:00
metamben
2971c240b3 Add back wrongly removed tests (#57848) 2025-05-12 16:18:13 +00:00
github-automation-metabase
d20447dd86 Add bronsa to team json files (#57834) (#57838)
Co-authored-by: Nicola Mometto <nicola.mometto@metabase.com>
2025-05-12 12:17:59 +00:00
github-automation-metabase
49b89c164e feat: add a link to field filter docs from dashboard sidebar with native question (#57687) (#57727)
* feat: add a link to field filter docs from dashboard sidebar with native question

* oops

* add missing translation

Co-authored-by: Uladzimir Havenchyk <125459446+uladzimirdev@users.noreply.github.com>
2025-05-12 08:10:55 +00:00
github-automation-metabase
6544bf4df9 🤖 backported "Use dedicated endpoints for remapping in dashboards & questions" (#57801) 2025-05-10 01:56:36 +00:00
github-automation-metabase
a2eab8bfea links (#57796) (#57798)
Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-05-09 20:52:02 +00:00
github-automation-metabase
ca922fa603 update learn links (#57782) (#57783)
Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-05-09 16:24:42 +00:00
github-automation-metabase
272d897f88 Support bigint model_pks in model_index_value (#57661) (#57713)
Co-authored-by: Nathan Voxland <nathan@metabase.com>
2025-05-09 15:40:09 +00:00
github-automation-metabase
374cfe1023 better snowplow errors when expecting the wrong number of good events (#57730) (#57772)
* add ?. to make it more resilient

* add more logssss

* cy.log

* some nicer error message

* fix eventType

* removes leftover lines

* typos on comments

* Update e2e/support/helpers/e2e-snowplow-helpers.js



---------

Co-authored-by: Nicolò Pretto <info@npretto.com>
Co-authored-by: Phoomparin Mano <poom@metabase.com>
2025-05-09 17:27:53 +02:00
github-automation-metabase
ae4ebbf9f7 fix audit log to record external emails when sending notifications (#57679) (#57726)
Co-authored-by: Ngoc Khuat <qn.khuat@gmail.com>
2025-05-09 16:27:54 +07:00
github-automation-metabase
559daac394 speed up notification tests (#57763) (#57764)
Co-authored-by: Ngoc Khuat <qn.khuat@gmail.com>
2025-05-09 08:13:07 +00:00
github-automation-metabase
28f4cb7e8d Remove unused code in embedding data picker (#57700) (#57761)
* Remove unused exported components

* Remove references to metrics

* Remove references to saved questions

* Remove irrelevant tests

* Remove unnecessary prop

* Fix more unit tests

* Remove more unnecessary code

* Fix failed unit tests

* Remove unnecessary prop

Co-authored-by: Mahatthana (Kelvin) Nomsawadi <me@bboykelvin.dev>
2025-05-09 06:19:47 +00:00
github-automation-metabase
53f74f7072 Improve Table Static Viz Text Wrapping Column Widths (#56991) (#57290)
* Updating text wrap and minibar logic to gracefully handle structure of column widths; updated fallback column width when no width is present in viz settings

* removing inline defs

Co-authored-by: Tyler Plude <tsplude@gmail.com>
2025-05-08 23:45:09 +00:00
github-automation-metabase
08c61bd901 [svg] Pool static-viz-context objects (#56648) (#57558)
Co-authored-by: Oleksandr Yakushev <alex@bytopia.org>
2025-05-09 01:34:32 +03:00
github-automation-metabase
5020b689ad fix: redshift pg_enum error when missing base types (#57397) (#57658)
Co-authored-by: Case Nelson <case@metabase.com>
2025-05-08 22:18:19 +00:00
github-automation-metabase
786ff0ef46 Fix flaky e2e test in the onboarding setup spec (#57735) (#57741)
Co-authored-by: Nemanja Glumac <31325167+nemanjaglumac@users.noreply.github.com>
2025-05-08 14:45:51 +00:00
github-automation-metabase
f3996ff1b7 Mark setup tests flaky (#57710) (#57732)
* mark setup tests flaky

* add flake

---------

Co-authored-by: Ryan Laurie <30528226+iethree@users.noreply.github.com>
Co-authored-by: Sloan Sparger <sloansparger@gmail.com>
2025-05-08 12:39:07 +00:00
github-automation-metabase
c53a4d13dd make LocaleProvider change the return of useLocale and set the locale used by Mantine (#57534) (#57691)
* refactor: rename test file to tsx to have hopefully better diff in the
next commit

* fix EMB-360: Make Mantine components use the locale from LocaleProvider

* close EMB-373: make useLocale return the locale from LocaleProvider if
present

Co-authored-by: Nicolò Pretto <info@npretto.com>
2025-05-07 10:53:31 +00:00
github-automation-metabase
115831e0fe Fix missing snippet create button (#57479) (#57689)
* Use Mantine dropdown for snippet menu

* Fix search icon in snippet header too

* Remove default ICON_SIZE

* Fix MIN_SNIPPETS_FOR_SEARCH

* Add createSnippet helper

* Add repro for metabase#57441

* Add test for snippet search

* Move snippet helper to api

* Use actual ref for input

* Simplify header search rendering

* Use SidebarHeader for snippet sidebar

* Use Flex for most components

* Simplify padding

* Use class component for archived snippets

* Use class for header button

* Use direct properties

* Rely less on custom css

* Fix header padding

* Fix e2e tests

* Remove unused eslint-disable

* Add type annotation



---------

Co-authored-by: Romeo Van Snick <romeo@romeovansnick.be>
Co-authored-by: Kamil Mielnik <kamil@kamilmielnik.com>
2025-05-07 10:08:49 +00:00
github-automation-metabase
793d09b371 Copy multi-stage components (#57436) (#57686)
* Move SimpleDataPicker to a new directory preparing for new components

* Use the embedding data picker from a new folder

This requires turning the component into a plugin, which we'll do in the
next commit.

* Move plugin property to a more appropriate place

* Implement embedding multi-stage data picker as an EE plugin

* Add DataSourceSelectorProps

* Remove reference to query builder data picker

* Fix failing unit tests

* Move embedding data picker components to a proper location

Co-authored-by: Mahatthana (Kelvin) Nomsawadi <me@bboykelvin.dev>
2025-05-07 09:02:42 +00:00
github-automation-metabase
14e67b4f5b update chart settings types (#57657) (#57664)
Co-authored-by: Aleksandr Lesnenko <alxnddr@users.noreply.github.com>
2025-05-06 22:08:57 +00:00
github-automation-metabase
d56bf2351c fix(sdk): custom GeoJSON maps does not load due to wrong domain (#57539) (#57645)
Co-authored-by: Phoomparin Mano <poom@metabase.com>
2025-05-06 12:43:19 +00:00
github-automation-metabase
182a678c3e fix(sdk): updating collection's entity id crashes InteractiveQuestion and CollectionBrowser (#57529) (#57642)
Co-authored-by: Phoomparin Mano <poom@metabase.com>
2025-05-06 12:19:22 +00:00
github-automation-metabase
2fbfbe59ac move context info to after the log message (#57588) (#57636)
Co-authored-by: Ngoc Khuat <qn.khuat@gmail.com>
2025-05-06 08:36:05 +00:00
github-automation-metabase
0703e96e01 help page (#57619) (#57624)
Co-authored-by: Alex Yarosh <alexandra@metabase.com>
2025-05-05 22:17:26 +00:00
github-automation-metabase
fbf2293be3 🤖 backported "fix: add table-level sql based permission query" (#57610)
* fix: add table-level sql based permission query (#57541)

* fix: add table-level sql based permission query

Some places in our code we may be returning fewer tables than a user has
access to because we load a limited number of models from the database
then apply permissions filters to those. This provides a subquery based
check for table permissions that we can use in other queries to do the
same kind of test for table access that we would do on the clojure-side.

Co-Authored-By: Nathan Voxland <nathan@metabase.com>

* fixup! restore check-permissions-for-model impl

* Update src/metabase/models/table.clj

Co-authored-by: Noah Moss <32746338+noahmoss@users.noreply.github.com>

* fixup! caluse -> clause spelling

* fixup! reformat malli annotations; add docstring

* fixup! add Literal type to honeysql helpers

* fixup! restore accidentally deleted clause

---------

Co-authored-by: Nathan Voxland <nathan@metabase.com>
Co-authored-by: Noah Moss <32746338+noahmoss@users.noreply.github.com>

* fixup! kondo

---------

Co-authored-by: Edward Paget <edpaget@users.noreply.github.com>
Co-authored-by: Nathan Voxland <nathan@metabase.com>
Co-authored-by: Noah Moss <32746338+noahmoss@users.noreply.github.com>
Co-authored-by: Edward Paget <ed.paget@gmail.com>
2025-05-05 19:09:02 +00:00
github-automation-metabase
749c50d5f5 backported "Apply filter split button" (#57612)
Co-authored-by: Alexander Polyankin <alexander.polyankin@metabase.com>
2025-05-05 18:36:35 +00:00
github-automation-metabase
1b2fa2d716 fix(sdk): manual fixes for module level ttag calls causing broken translations (#57391) (#57589)
* fix: filter button labels

* fix: part of EMB-335, uiName: t => getUiName: () => t

* fix linting issue

* fixed unit test mock missing getUiName
frontend/src/metabase/visualizations/components/Visualization/Visualization.unit.spec.js
missing

* make application-permissions.cy.spec.js pass

Co-authored-by: Nicolò Pretto <info@npretto.com>
2025-05-05 08:43:06 +00:00
github-automation-metabase
2fd071bb38 Further limit tsvector size since it's concatinated (#57514) (#57548)
Co-authored-by: Nathan Voxland <nathan@metabase.com>
2025-05-03 06:08:49 +00:00
github-automation-metabase
09bd5af878 Backported fix (#57456)
Co-authored-by: Nathan Voxland <nathan@metabase.com>
2025-05-03 00:42:44 -05:00
github-automation-metabase
dad9ed0f45 remove old static pie chart interface (#57545) (#57569)
Co-authored-by: Aleksandr Lesnenko <alxnddr@users.noreply.github.com>
2025-05-03 01:34:17 +00:00
github-automation-metabase
f2466fab70 🤖 backported "Fix remapping caching" (#57568)
* backported "Fix remapping caching"

* backported "Fix remapping caching"

---------

Co-authored-by: Alexander Polyankin <alexander.polyankin@metabase.com>
2025-05-03 00:43:11 +00:00
github-automation-metabase
a4a81db234 Fix for Grey areas around the cards when exporting to PDF (#56928) (#57563)
* cursor says this could fix the issue

* harder vibe coding

* remove handling of made up by llm elements that do not exist

---------

Co-authored-by: Vamsi Peri <vamsi@metabase.com>
Co-authored-by: Aleksandr Lesnenko <alxnddr@gmail.com>
2025-05-02 23:18:59 +00:00
github-automation-metabase
f262d88fcd druid jdbc localdate set param impl (#57507) (#57537)
Co-authored-by: Riley Thompson <riley@metabase.com>
2025-05-02 16:46:12 +00:00
github-automation-metabase
14db621d9e 🤖 backported "Fix remaining identity hash test flakes" (#57536)
* set timezone for identity-hash-test tests (#57530)

* fix backport

---------

Co-authored-by: Riley Thompson <riley@metabase.com>
Co-authored-by: Riley Thompson <rileythompson99@gmail.com>
2025-05-02 16:04:21 +00:00
github-automation-metabase
6a0163ac88 🤖 backported "Disable sqlite for array-query-can-be-cached-test " (#57345)
* Disable sqlite for array-query-can-be-cached-test  (#57302)

* disable sqlite

* fix backport

---------

Co-authored-by: Riley Thompson <riley@metabase.com>
Co-authored-by: Riley Thompson <rileythompson99@gmail.com>
2025-05-02 15:26:51 +00:00
github-automation-metabase
301b09bbfd 🤖 backported "Try specifying tz for identity hash test flake" (#57462)
* Try specifying tz for identity hash test flake (#57408)

* fix backport

---------

Co-authored-by: Riley Thompson <riley@metabase.com>
Co-authored-by: Riley Thompson <rileythompson99@gmail.com>
2025-05-02 14:09:30 +00:00
github-automation-metabase
5ab43c4079 Do not set card when using browser back button (#57389) (#57522)
* Add reproduction for metabase#56775

* Pass the correct card to the location change

* Unwrap card when navigating to model or metric

Co-authored-by: Romeo Van Snick <romeo@romeovansnick.be>
2025-05-02 12:44:07 +00:00
github-automation-metabase
2c6579e22f [serdes] break endless loops (#57482) (#57520)
When making sure stuff can load even with a loop, the circuit breaker was removed, leading to endless loops. That
would happen if the data causing the loop wasn't stripped properly. Right now if stripping things once did not help
and the entity is in the pipeline again, the process will break (with hopefully enough data to detect why).

This also changes the logic from exception to just recursive calls. Plus it's back at skipping all dashcards in a
Dashboard instead of just skipping visualization logic, which should make for a way faster processing (less deep for
sure). Plus it tries to improve logging a bit so it's easier to understand what's going on in complex cases.

Co-authored-by: Alexander Solovyov <alexander@solovyov.net>
2025-05-02 11:12:30 +00:00
github-automation-metabase
913207cbc7 closes viz-360 esc key should not add a recipient (#57253) (#57515)
* closes viz-360 esc key should not add a recipient

* better code in e2e test to avoid eslint-disable-next-line

Co-authored-by: Sébastien <sebastien@metabase.com>
2025-05-02 08:16:07 +00:00
github-automation-metabase
571cd296ce Closes VIZ-349 unknown date style warnings (#57263) (#57513)
* closes VIZ-349 unknown date style warnings

* safer approach

Co-authored-by: Sébastien <sebastien@metabase.com>
2025-05-02 05:46:53 +00:00
github-automation-metabase
649611cd1e backported "Drop param_values" (#57512)
Co-authored-by: Alexander Polyankin <alexander.polyankin@metabase.com>
2025-05-02 03:08:23 +00:00
github-automation-metabase
f742fcb95e deps: remove simpleclient_jetty and javax.servlet (#57487) (#57494)
Co-authored-by: Edward Paget <edpaget@users.noreply.github.com>
2025-05-01 20:49:05 +00:00
github-automation-metabase
1fd8802ce5 docs - note on role setting (#57268) (#57498)
* note on role setting

* format

Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-05-01 20:24:01 +00:00
github-automation-metabase
dc01205e9d Fix sorting by aggregation expression with cumulative function works (#57292) (#57449)
Co-authored-by: lbrdnk <lbrdnk@users.noreply.github.com>
2025-05-01 19:19:20 +03:00
github-automation-metabase
571e44cca6 Fix cumulative aggregations legacy transform (#57258) (#57475)
* Fix cum-sum and cum-count legacy transform

* Address review remarks

* Adjsut test

* ag idents

* dissoc-in

Co-authored-by: lbrdnk <lbrdnk@users.noreply.github.com>
2025-05-01 08:20:40 +00:00
github-automation-metabase
576f877198 feat: add prometheus metric for quartz task states (#56994) (#57431)
* feat: add prometheus metric for quartz task states

Adds a new quartz_task_state metric that will report to prometheus the
states of all quartz jobs running on a metabase instance using a guage.

Each task state is reported as a label and we also report a state for
tasks that are executing.

All hosts on a metabase cluster _should_ report the same value for these
metrics if they are scraped at the same time, and we need to consider if
the additional DB load is okay since this does query the database during
a prometheus scrape to report this metric.

* fixup! add job-name tag and histogram of job time

Co-authored-by: Edward Paget <edpaget@users.noreply.github.com>
2025-04-30 21:57:13 +00:00
github-automation-metabase
1e010ce819 fix: move internal stats for module organization (#57430) (#57443)
Co-authored-by: Edward Paget <edpaget@users.noreply.github.com>
2025-04-30 16:22:35 -05:00
github-automation-metabase
ee993eaea5 Update countif.md (#57373) (#57447)
Co-authored-by: Alex Yarosh <alexandra@metabase.com>
2025-04-30 18:20:51 +00:00
github-automation-metabase
415de263ae add locale selector to sdk storybook (#57393) (#57428)
* add locale selector to sdk storybook

* clarify the default value and change to have objects as items

Co-authored-by: Nicolò Pretto <info@npretto.com>
2025-04-30 13:56:34 +00:00
github-automation-metabase
e8492bc1d6 Add Access-Control-Max-Age header to cache CORS preflight requests made by SDK (#57383) (#57418)
Co-authored-by: Timofey Kachalov <timofei@metabase.com>
2025-04-30 09:10:37 +00:00
github-automation-metabase
061384d2d9 Delete indexed rows from the search index which correspond to deleted rows (#57086) (#57406)
Co-authored-by: Nathan Voxland <nathan@metabase.com>
2025-04-29 22:15:12 +00:00
github-automation-metabase
017280d3c9 fix: scheduler state management in cloud migration (#57338) (#57344)
* fix: scheduler state management in cloud migration

When we create the h2 database to dump a metabase instance to during
cloud migration we need to stop and start the quartz scheduler instance
running on the instance during the migration.

Some liquibase migrations handling quartz job changes expect to control
the scehduler and start/stop it while those migrations run. Recent
changes to guard against this behaviour in testing case these
migrations to throw an exception when they run during the cloud
migration task.

This also fixes an older bug that the quartz scheduler would remain off
on the instance being migrated after the cloud migration task finishes.

* fixup! stop scheduler after all calls to migrate!

* fixup! formatting

Co-authored-by: Edward Paget <edpaget@users.noreply.github.com>
2025-04-29 13:58:04 +00:00
github-automation-metabase
ebd097e6c0 Enable query caching in flaky test (#57226) (#57283)
Co-authored-by: Riley Thompson <riley@metabase.com>
2025-04-29 13:36:04 +00:00
github-automation-metabase
6262b34099 fix invalid tooltip on interpolated values (#57305) (#57364)
* fix invalid tooltip on interpolated values

* specs, timezone issues for interpolated datums

* fix waterfall, scatter

* update e2e spec after fixing timezone issue

* fix e2e failures

* specs

Co-authored-by: Aleksandr Lesnenko <alxnddr@users.noreply.github.com>
2025-04-28 22:35:31 +00:00
github-automation-metabase
5a73d8bb12 fix: avoid deadlocks by not holding connection (#56524) (#57354)
Avoid the possiblity of deadlocks during cached query processing by no
taking the connection using with-connection and instead just selecting
the cached result using toucan.

I _think_ this connection holding was introduced under the assumption
that we could 'stream' a binary column from postgresql using the
.getBinaryStreaming jdbc method. However postgres requires binary
columns to be full read and written and so we are unable to stream
results from that column, so this operation ends up being the same as
just querying the column normally.

Because we are not streaming the result in it seems safe to just yeild
the connection back to pool so it can shared with other requests.

Co-authored-by: Edward Paget <edpaget@users.noreply.github.com>
2025-04-28 21:32:00 +00:00
github-automation-metabase
64291ffd5a Hide email domains for non-admin users without settings access (#57300) (#57351)
* hide email domains for users without settings access

* fix test

* fix up e2e test

* update BE setting visibility

* Revert "update BE setting visibility"

This reverts commit b3728ad21d.

* remove commented-out line

Co-authored-by: Noah Moss <32746338+noahmoss@users.noreply.github.com>
2025-04-28 20:12:09 +00:00
github-automation-metabase
971a1cf9d2 Prevent falling back on type before cast when qp/ignore-coercion (#57095) (#57347)
Fixes #56886

This is assuming that qp/ignore-coercion is set to avoid repeated casting.  That means, that we should type is as if
the cast has happened.

Co-authored-by: metamben <103100869+metamben@users.noreply.github.com>
2025-04-28 17:16:58 +00:00
github-automation-metabase
91531325dd fix: wrong syntax on if was making 'cross-version-for-breaking-changes' always run (#57339) (#57342)
* fix: wrong syntax on `if:` was making 'cross-version-for-breaking-changes'
always run

* Update .github/workflows/embedding-sdk.yml



---------

Co-authored-by: Nicolò Pretto <info@npretto.com>
Co-authored-by: Phoomparin Mano <poom@metabase.com>
2025-04-28 14:43:35 +00:00
github-automation-metabase
d6cfe52acd Drills use column data from lib/returned-columns (#56894) (#57233)
result_metadata for a query on a model returns the underlying columns, not the model's columns.  This was causing
drills to break in certain circumstances, because the query processor was trying to cast a particular value twice.
Making drills default to using the column from lib/returned-columns fixes the issue.

Co-authored-by: William <william@metabase.com>
2025-04-28 14:43:12 +00:00
github-automation-metabase
fe0c0c2944 Make CumulativeCount a window function and Sum an aggregation (#57323) (#57333)
Co-authored-by: Romeo Van Snick <romeo@romeovansnick.be>
2025-04-28 13:04:51 +00:00
github-automation-metabase
1d9b268c0c 🤖 backported "Fix - Cannot schedule automatic value scanning for postgres database" (#57275)
* Fix - Cannot schedule automatic value scanning for postgres database (#57256)

* Fix #57198

* Use proper setter

* Repro #57198

* Fix test

---------

Co-authored-by: Kamil Mielnik <kamil@kamilmielnik.com>
2025-04-28 08:47:09 +00:00
github-automation-metabase
bbf8b21356 Prevent path-to-regexp from breaking when a libary require v6+ (#57242) (#57320)
Co-authored-by: Mahatthana (Kelvin) Nomsawadi <me@bboykelvin.dev>
2025-04-28 06:45:00 +00:00
github-automation-metabase
7cbd5fee21 [dashboard-templates] Use more efficent every? implementation (#56948) (#57311)
Co-authored-by: Oleksandr Yakushev <alex@bytopia.org>
2025-04-27 23:58:57 +00:00
Sloan Sparger
e69e66e1f1 Sticky footer for database connection modal (#56997) (#57288) 2025-04-25 17:11:09 -05:00
github-automation-metabase
cb213a3e16 docs: add casting section to list of custom expressions (#56689) (#57294)
* add casting section

* Update docs/questions/query-builder/expressions-list.md

* Revert "add casting section"

* Update docs/questions/query-builder/expressions-list.md



* Apply suggestions from code review

---------

Co-authored-by: Alex Yarosh <alexandra@metabase.com>
Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-04-25 18:47:46 +00:00
Edward Paget
0220b98b51 feat: upgrade ring-jetty to 1.14.1 (#57139)
* feat: upgrade ring-jetty to 1.14.1 (#55921)

* feat: upgrade ring-jetty to 1.14.1

Moves us onto Jetty 12 which has some features (pthreading, QoSHanlder)
that we may want to take advantage of.

* fixup! customize jetty metrics

* fixup! license info for jetty ee9

* fixup! make a var private

* fixup! don't use deprecated method

* fixup! create custom statistics handler

Replicate the Jetty 11 statistics handler that is able to report on
asynchronously handled requests separately from synchronously handled
ones. Also ports it to directly report statistics to our prometheus
rather than needing to build a connector between the stats handler
object and our metrics reporting

Co-Authored-By: John Swanson <john.swanson@metabase.com>

* fixup! fix race condition in stats test

* fixup! missing private annotation

* fixup! use normal jetty release with logging fix

---------

Co-authored-by: John Swanson <john.swanson@metabase.com>

* fix: request max time stat reports seconds (#57121)

Forgot to divide millis by 1000 before saving so this stat was reporting
some silly numbers on stats. Also adds tests around this metric

* fix: test flake in jetty stats (#57141)

---------

Co-authored-by: John Swanson <john.swanson@metabase.com>
2025-04-25 18:09:48 +00:00
github-automation-metabase
3ae41a21d1 Fix sync for 66K tables db (#57066) (#57176)
* Fix 66k statement params in sync-table-privileges and sync-fks

* Test for privileges

* Test privileges

* Update and test set-initial-table-sync-complete-for-db!

Co-authored-by: lbrdnk <lbrdnk@users.noreply.github.com>
2025-04-25 16:32:22 +00:00
github-automation-metabase
670b24f3c9 Update Readme version references and published npm version to 0.54.9 (#57278) 2025-04-25 15:49:19 +00:00
github-automation-metabase
0f5bbc2e42 Add parameter default options in subscriptions (#57188) (#57271)
Co-authored-by: Alexander Polyankin <alexander.polyankin@metabase.com>
2025-04-25 15:37:57 +00:00
github-automation-metabase
d35ac2c506 Fix inefficient regex (#57218) (#57265)
* Update dom.unit.spec.js

* Update dom.js

* add more tests

---------

Co-authored-by: Ryan Laurie <30528226+iethree@users.noreply.github.com>
Co-authored-by: mmmsssttt404 <931121963@qq.com>
2025-04-25 15:31:23 +00:00
Luis Paolini
1bb74191d7 Bump com.microsoft.sqlserver/mssql-jdbc from 12.9.0.jre11-preview to 12.10.0.jre11 (#57262)
Inspect dependency changes here:
https://github.com/microsoft/mssql-jdbc/releases
2025-04-25 12:01:48 -03:00
Jeff Bruemmer
8d51b94efa api and env vars (#57264) 2025-04-25 14:22:30 +00:00
github-automation-metabase
5f8f6dae60 fix flakey check for duration (#57254) (#57261)
also hunting for that cache test flake

Co-authored-by: Alexander Solovyov <alexander@solovyov.net>
2025-04-25 14:18:19 +00:00
github-automation-metabase
d5e2deac50 More robust checking for timeout exceptions (#56737) (#57221)
* wip

* More robust checking for timeout exceptions

Overview:
We enumerate items in the database and then we want to see which ones
the user can actually run queries against. To do this we run a query
like `select false from TABLE where 1 != 1 limit 0`. The hope is that
the query analyzer realizes it only needs to do permission checks and
doesn't try to satisfy these conditions (either because limit says no
rows, or 1 != 1 is easily proven to filter all rows). So we _usually_
get very quick feedback if we can select from the table or not.

Snowflake seems to not do this on views. If a view takes a long time to
query, snowflake seems to take a long time to query. The original fix
was to add a 15 second timeout to the query. The expectation here is
that Snowflake can quickly fail if there are no permissions for the
table or view, but might take a long time to run the probe query. But we
can interpret a timeout as a successful permission check.

The original way we checked for timeouts was a very naive check for
`java.sql.SQLTimeoutException`. It seems basically no one uses this when
you do:

```clojure
(with-open [stmt (...)]
  (doto stmt
    (.setQueryTimeout 15)
    (.execute)))
```

For instance, here's some logs from Snowflake:

```
WARN net.snowflake.client.core.StmtUtil Cancelling query 0e8987ee-2d22-40f9-b30d-0129d38ce976 with reason TIMEOUT
INFO metabase.driver.sql-jdbc.sync.describe-database <schema>:<table-name>: Assuming no SELECT privileges: caught exception,net.snowflake.client.jdbc.SnowflakeSQLException: SQL execution canceled,	at ...
```

Note It's a regular `net.snowflake.client.jdbc.SnowflakeSQLException`.
Here's a true permissions failure for comparison:

```
sync.describe-database <schema>:<table>: Assuming no SELECT privileges: caught exception,net.snowflake.client.jdbc.SnowflakeSQLException: SQL compilation error:,Failure during expansion of view 'SOME_VIEW': SQL compilation error:,Object 'DB.SCHEMA.TABLE' does not exist or not authorized.,
```

So we use some regex checks against the messages to try to detect when
we have a permissions failure (cannot select) vs a timeout of the
probe (presumably can select).

And a reminder of the balances here: it's better to show someone a table
that they get an error if they try to query than to hide a table that
they can query. So this change should bias towards reporting can-select
in cases where it might not be clear.

* Only run tests when classes are present

if you don't have :drivers on classpath it would fail

* ensure boolean is returned

tests assert false? on a nil

* CI fails based on the indentation of comments

* empty commit for CI

* Move postgres test into postgres test namespace

* Replace ex-msg matching with sqlerrorcode/sqlstate

Use jdbc error codes and sql state matching to figure out if a
SQLException is caused by user action canceling the request (essentially
how setQueryTimeout works). This adds a multimethod dispatching off the
driver keyword to match up either the SQLState code or the SQLErrorCode
with the appropriate value for a given database driver. Some of these
were found by looking how QueryTimeoutException is implemented in
Hibernate and others were found from JDBC driver source code or documentation.

* fixup! handle multiple codes for mariadb

* fixup! add partial query timeout test

* fixup! split apart sql timeout tests

* fixup! use correct sqlstate for snowflake timeout

* fixup! remove split out tests

* fixup! remove when-class

* fixup! snowflake sql state

* fixup! move query-canceled? into driver code

Removes the jdbc-exceptions namespace and instead makes query-canceled a
driver multimethod that extracts and dispatches on the SQLException
class within the sql-jdbc driver.

Non-jdbc drivers can implement this method, but it is only used for
handling errors in the cluster lock using the appdb and for the sql-jdbc
describe-database sync task.



* fixup! update driver changelog add default method

* fixup! merge mysql/mariadb methods

* fixup! add added metadata

* fixup! make test throw instead of is false

---------

Co-authored-by: dpsutton <dan@dpsutton.com>
Co-authored-by: Edward Paget <ed.paget@gmail.com>
Co-authored-by: Edward Paget <edpaget@users.noreply.github.com>
Co-authored-by: Nathan Voxland <nathan@metabase.com>
2025-04-25 14:00:26 +00:00
github-automation-metabase
ae57a2d918 fix(sdk): clicking on "and X more" in chart legend throws error (#57175) (#57251)
Co-authored-by: Phoomparin Mano <poom@metabase.com>
2025-04-25 10:35:17 +00:00
github-automation-metabase
fdbbeed6f7 fix flakey identity-hash tests everywhere (#57245) (#57247)
Co-authored-by: Alexander Solovyov <alexander@solovyov.net>
2025-04-25 10:32:40 +00:00
github-automation-metabase
69c93aae1e docs(sdk): Add generation of embeddable .md tables for Embedding SDK components (#56990) (#57244)
Co-authored-by: Timofey Kachalov <timofei@metabase.com>
2025-04-25 09:22:44 +00:00
github-automation-metabase
7ab773d334 Add min-width to popover (#57181) (#57241)
* Add minimum width to description popover

* Add repro for metabase#57132

Co-authored-by: Romeo Van Snick <romeo@romeovansnick.be>
2025-04-25 08:19:35 +00:00
github-automation-metabase
5ba814a6b8 Fix send once alerts repeatedly sending (#57164) (#57235)
Co-authored-by: Ngoc Khuat <qn.khuat@gmail.com>
2025-04-25 03:31:48 +00:00
github-automation-metabase
05af3b54d0 test: await for data in temporal unit spec (#57178) (#57228)
Co-authored-by: Uladzimir Havenchyk <125459446+uladzimirdev@users.noreply.github.com>
2025-04-24 22:32:28 +00:00
github-automation-metabase
6afd5ae9ef Make edit db form tab-able (#56902) (#57223)
Co-authored-by: Sloan Sparger <sloansparger@users.noreply.github.com>
2025-04-24 21:56:34 +00:00
github-automation-metabase
14b08c0434 fix: improve database status metric (#56469) (#57219)
* fix: improve database status metric

* Format line better

* Fix tests and kondo

* Remove unhealthy counter too

Co-authored-by: Case Nelson <case@metabase.com>
2025-04-24 21:11:26 +00:00
github-automation-metabase
d41b729692 remove react 19 as a limitation (#57158) (#57213)
Co-authored-by: Aleksandr Lesnenko <alxnddr@users.noreply.github.com>
2025-04-24 19:04:12 +00:00
github-automation-metabase
ceba161e60 fix: snowflake rsa doesn't work with hostname (#57157) (#57208)
* fix: snowflake rsa doesn't work with hostname

* update account if present

Co-authored-by: Case Nelson <case@metabase.com>
2025-04-24 18:24:55 +00:00
github-automation-metabase
e305790f71 🤖 backported "add ttag/no-module-declaration rule" (#57182)
* add ttag/no-module-declaration rule (#56848)

* add ttag/no-module-declaration rule + eslint ignore comments

* change the reference to github issue instead of linear

* add new ignores after rebase

* remove formatting changes from eslint files

* fix eslint rule mising from a file

* convert one field to getter as that got added after I opened the codemod
pr and it's failing the check here

* more //eslint-disable-next-line

* manual fixes

---------

Co-authored-by: Nicolò Pretto <info@npretto.com>
2025-04-24 17:13:58 +00:00
github-automation-metabase
7abbad9207 fix: snowflake key fails when editing unrelated details (#57156) (#57200)
* fix: snowflake key fails when editing unrelated details

* Fix test comment

* Compare byte arrays

Co-authored-by: Case Nelson <case@metabase.com>
2025-04-24 16:42:01 +00:00
github-automation-metabase
3089f38f0d ci: make cross versions tests run only if the pr is against a release (#57197) (#57202)
branch

Co-authored-by: Nicolò Pretto <info@npretto.com>
2025-04-24 16:27:30 +00:00
github-automation-metabase
ac4440d5ab Fix inaccurate row collapsing for pivot exports (#56998) (#57099)
* fix for inaccurate collapsed rows in export

* add unit tests

* fix test

* lint

* edit docstring, skip roundtripping on cljs

* address feedback

Co-authored-by: Noah Moss <32746338+noahmoss@users.noreply.github.com>
2025-04-24 12:51:02 +00:00
github-automation-metabase
b7952e8968 Update Readme version references and published npm version to 0.54.8 (#57172) 2025-04-24 10:16:02 +00:00
github-automation-metabase
c5f5fa0fcf fix(sdk): use background color in sankey chart text outline (#57135) (#57168)
* use bg-white instead of white

* add visual test

* fixed storybook stories

* add loki snapshot

Co-authored-by: Phoomparin Mano <poom@metabase.com>
2025-04-24 10:08:14 +00:00
github-automation-metabase
16405584d1 fix(sdk): Ensure that questions don't flicker when fetching entity IDs (#57073) (#57129)
Co-authored-by: Oisin Coveney <oisin@metabase.com>
2025-04-24 08:05:27 +01:00
github-automation-metabase
b265d0b100 rename starburst to startburst (trino) to help customers understand that starburst is trino compatible (#56891) (#57150)
Co-authored-by: Luiz Arakaki <luiz.arakaki@metabase.com>
2025-04-23 20:31:40 +00:00
github-automation-metabase
f0764bf6db ci: run linting when e2e specs are changed (#57118) (#57143)
* ci: run linting when e2e specs are changed

* fixup

Co-authored-by: Uladzimir Havenchyk <125459446+uladzimirdev@users.noreply.github.com>
2025-04-23 18:09:53 +00:00
github-automation-metabase
6289b445ac fix link (#57122) (#57127)
Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-04-23 15:16:19 +00:00
github-automation-metabase
16b5839109 chore: fix linting issue (#57115) (#57119)
Co-authored-by: Uladzimir Havenchyk <125459446+uladzimirdev@users.noreply.github.com>
2025-04-23 13:47:23 +00:00
github-automation-metabase
36223ea087 test: move flaky test to jail (#57091) (#57107)
Co-authored-by: Uladzimir Havenchyk <125459446+uladzimirdev@users.noreply.github.com>
2025-04-23 11:50:17 +00:00
github-automation-metabase
303fad4f72 Update Readme version references and published npm version to 0.54.7 (#57106) 2025-04-23 10:51:36 +00:00
github-automation-metabase
e3dba65d42 Exclude nil card IDs for preemptive caching reruns (#57082) (#57100)
* Exclude nil card IDs for preemptive caching reruns

* Update enterprise/backend/src/metabase_enterprise/task/cache.clj



---------

Co-authored-by: Noah Moss <32746338+noahmoss@users.noreply.github.com>
Co-authored-by: bryan <bryan.maass@gmail.com>
2025-04-23 03:42:25 +00:00
github-automation-metabase
e6ca53183c Fix click behavior reset (#57096)
Co-authored-by: Alexander Polyankin <alexander.polyankin@metabase.com>
2025-04-23 02:52:00 +00:00
github-automation-metabase
ec568af468 Upgrade ClickHouse JDBC driver to 0.8.4 (#57055) (#57092)
* upgrade to 0.8.4

* add test

* update clickhouse contributors

Co-authored-by: Riley Thompson <riley@metabase.com>
2025-04-22 22:34:06 +00:00
github-automation-metabase
9a1640cad6 [MBQL lib] Gracefully handle invalid :fields refs in joins (#57078) (#57090)
Fixes #56434.

A join clause's `:fields` might contain refs to columns that no longer exist on the joined table/card.

Before this change, a malformed column was being passed to `with-join-alias`, causing it to throw.
Now the bad fields are dropped from `returned-columns`, and if they all get dropped then it is treated as `:all`.

Co-authored-by: Braden Shepherdson <braden@metabase.com>
2025-04-22 21:59:53 +00:00
github-automation-metabase
b931fe1692 ci: use variant for trunk to distinguish tests from matrix (#57069) (#57087)
* ci: use variant for trunk to distinguish tests from matrix

* group e2e

---------

Co-authored-by: Uladzimir Havenchyk <125459446+uladzimirdev@users.noreply.github.com>
Co-authored-by: Ryan Laurie <iethree@gmail.com>
2025-04-22 21:35:36 +00:00
github-automation-metabase
1e4b3b61da Properly handle non-pr context for notify-pull-request action (#57081) (#57089)
Co-authored-by: Timofey Kachalov <timofei@metabase.com>
2025-04-22 21:15:38 +00:00
github-automation-metabase
d6d70a82c3 remove bulk filter modal docs (#57083) (#57085)
Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-04-22 21:14:04 +00:00
github-automation-metabase
57d8a308f0 fix: use a shared lock for report_card updates (#57040) (#57079)
the view_count and last_view_at updates of report cards can deadlock
against each other, so introduce a shared keyword they can use to each
take a cluster lock when updating these values to prevent the deadlocks.

Co-authored-by: Edward Paget <edpaget@users.noreply.github.com>
2025-04-22 20:59:05 +00:00
github-automation-metabase
33dddaa090 closes VIZ-400 dashboard parameters panel background FF (#56906) (#57076)
Co-authored-by: Sébastien <sebastien@metabase.com>
2025-04-22 18:39:46 +00:00
github-automation-metabase
1351de6521 Add schema, table and field to missing database type to base type mapping (#56843) (#57067)
* Adjust missing base type logging for jdbc drivers

* Adjust base type logging for Athena

* Add schema and table to missing base type logging

* Comments

* Update test

* Drop only preceding nils

Co-authored-by: lbrdnk <lbrdnk@users.noreply.github.com>
2025-04-22 17:27:39 +00:00
github-automation-metabase
eea709f671 test: sign in as admin for external db (#56963) (#57056)
Co-authored-by: Uladzimir Havenchyk <125459446+uladzimirdev@users.noreply.github.com>
2025-04-22 15:52:08 +00:00
github-automation-metabase
73686da5b4 Update Readme version references and published npm version to 0.54.6 (#57051) 2025-04-22 15:11:01 +00:00
github-automation-metabase
593a80bdaf fix: add cluster lock around view count update (#56977) (#56986)
To avoid deadlocks on postgresql appdbs caused by overlapping ids in the
in clause of these updates.

I also had to change the `call-count` implementation for one of the
tests to spy on t2/query instead. The call-count pipeline middleware
will register either 2 or 4 depending on if we need to insert rows into
the lock table or not.

Co-authored-by: Edward Paget <edpaget@users.noreply.github.com>
2025-04-22 14:35:15 +00:00
github-automation-metabase
9c342688e0 add a note to okta scim (#57032) (#57043)
Adding the header, which is coming often

Co-authored-by: Luis Paolini <paoliniluis@gmail.com>
2025-04-22 14:33:35 +00:00
github-automation-metabase
9fc44ec433 run codemod to convert t calls on module level to getters when possible (#56793) (#57009)
* ran the codemod, lets see if it greens out on ci

* manually remove some changes as not-needed or risky

* remove other createEntity

Co-authored-by: Nicolò Pretto <info@npretto.com>
2025-04-22 15:39:31 +02:00
github-automation-metabase
6edd8beb43 Remove ed25519 dep (#56940) (#57018)
Not needed since
https://github.com/apache/mina-sshd/pull/639

Will also remove one security alert due to https://github.com/advisories/GHSA-p53j-g8pw-4w5f

Co-authored-by: Luis Paolini <paoliniluis@gmail.com>
2025-04-22 12:43:13 +00:00
github-automation-metabase
5df4060bf9 fix(sdk): css variables leak from Mantine to the host app (#56985) (#57026)
* add tests for mb-wrapper leaks

* revert me - temporarily check diffs

* Revert "revert me - temporarily check diffs"

This reverts commit f474fe7b25.

* only apply mb-wrapper when in the sdk

* use cy.log to show e2e messages

---------

Co-authored-by: Phoomparin Mano <poom@metabase.com>
Co-authored-by: Mahatthana (Kelvin) Nomsawadi <me@bboykelvin.dev>
2025-04-22 12:36:33 +00:00
github-automation-metabase
8baa0437cc test: add timeout after dragging tab to avoid flakiness (#57019) (#57025)
Co-authored-by: Uladzimir Havenchyk <125459446+uladzimirdev@users.noreply.github.com>
2025-04-22 12:12:55 +00:00
github-automation-metabase
e1c7a56cbc test: move flaky tests to jail (#56964) (#57021)
* test: move flaky tests to jail

* two more tests

* one more

Co-authored-by: Uladzimir Havenchyk <125459446+uladzimirdev@users.noreply.github.com>
2025-04-22 11:48:03 +00:00
github-automation-metabase
7ab8c379e5 Adjust CI on exposed internal types from Embedding SDK (#57014) (#57017)
Co-authored-by: Timofey Kachalov <timofei@metabase.com>
2025-04-22 10:13:22 +00:00
github-automation-metabase
ce0066eaab Fix infinite loop in native editor (#57012) (#57015)
* Use _.isEqual to check if ranges are equal

* Add back in reproduction for metabase#53649

Co-authored-by: Romeo Van Snick <romeo@romeovansnick.be>
2025-04-22 10:06:52 +00:00
github-automation-metabase
b14952c745 Allow passing strings to isEmpty and notEmpty (#56855) (#56975)
* Allow strings to be passed to isEmpty

* Add repro for metabase#55687

* Add be test for is-empty and not-empty

* Use Emptyable var

Co-authored-by: Romeo Van Snick <romeo@romeovansnick.be>
2025-04-22 11:13:43 +02:00
github-automation-metabase
44bc4816ce Fail CI on exposed internal types from Embedding SDK (#56958) (#57005)
Co-authored-by: Timofey Kachalov <timofei@metabase.com>
2025-04-22 08:08:55 +00:00
github-automation-metabase
f47175baaf Fix - Filtering the foreign key dropdown randomly works (#56916) (#57006)
* Fix #56839

* Repro #56839

* Update log

Co-authored-by: Kamil Mielnik <kamil@kamilmielnik.com>
2025-04-22 07:58:56 +00:00
github-automation-metabase
f5b1ab6057 Dowgraded postgresql driver until liquibase fix is released (#56981) (#56995)
Co-authored-by: Nathan Voxland <nathan@metabase.com>
2025-04-21 22:05:20 +00:00
github-automation-metabase
cc086c5d8d Fix column resizing (#56898) (#56980)
* fix column resizing

* comments

* specs

* change column measurement approach

* repro

* move pagination issue to a separate PR

* fix specs

* fix unit specs

* specs

* unnecessary dependency

* extract a hook and fix failing specs

* adjust to latest master branch updates

* fix types

---------

Co-authored-by: Aleksandr Lesnenko <alxnddr@users.noreply.github.com>
Co-authored-by: Sébastien <sebastien@metabase.com>
2025-04-21 13:32:06 -04:00
github-automation-metabase
34ad90b7ad Don't update the "active" index table from the "reindex" job (#56671) (#56968)
Co-authored-by: Nathan Voxland <nathan@metabase.com>
2025-04-21 15:12:02 +00:00
github-automation-metabase
a66626ba99 Update field-types.md (#56938) (#56939)
Co-authored-by: Alex Yarosh <alexandra@metabase.com>
2025-04-18 21:16:08 +00:00
github-automation-metabase
aab5552a5e Update links in docs (#56930) (#56933)
* Update link

* Update links

Co-authored-by: Gustavo Saiani <gus@metabase.com>
2025-04-18 19:56:33 +00:00
github-automation-metabase
e511481f12 fix: make enhance table stats a single query (#56738) (#56860)
Avoids hitting the postgresql query parameter limit when there are more
than MAX_UINT16 tables in a database, also should be more efficient to
fetch this in a single query.

Co-authored-by: Edward Paget <edpaget@users.noreply.github.com>
2025-04-18 13:34:00 +00:00
github-automation-metabase
1f38b1b010 docs(sdk): Remove remaining internal types from being exposed (#56895) (#56911)
Co-authored-by: Timofey Kachalov <timofei@metabase.com>
2025-04-18 13:30:02 +00:00
Nicolò Pretto
34f2af6e41 remove embedding as codeowners on release branch to avoid useless review (#56912)
requests
2025-04-18 15:18:10 +02:00
github-automation-metabase
8d71fba502 use big number mode for apache compress (#56719) (#56730)
possibly fixes a problem we're seeing in #53354

Co-authored-by: Alexander Solovyov <alexander@solovyov.net>
2025-04-18 07:22:58 +00:00
github-automation-metabase
f58a1b32f0 Pinned items moderation status (#56668) (#56904)
* pinned questions show moderated status, handle their own caption title

* unit tests, description

* fixing grid spacing

* e2e test adjustments

* fix for verified skeletons

* update quetion embed test, dashboard embed test

Co-authored-by: Nick Fitzpatrick <nick@metabase.com>
2025-04-18 05:39:43 +00:00
github-automation-metabase
ebe051ef0c Fix pivot metadata (#56786) (#56903)
Co-authored-by: Alexander Polyankin <alexander.polyankin@metabase.com>
2025-04-18 02:29:32 +00:00
github-automation-metabase
6a755c282b [test] Speed up metabase.pulse.send-test tests (#56336) (#56896)
* perf: Optimize duplicate-model-ids and search/ingestion functions

* [test] Mock javascript-visualization in m.pulse.send-test to speed up tests

Co-authored-by: Oleksandr Yakushev <alex@bytopia.org>
2025-04-17 23:08:33 +00:00
github-automation-metabase
19abbeae7f feat(sdk): Use public types for Dashboard/Collection/User and other entities (#56888)
Co-authored-by: Timofey Kachalov <timofei@metabase.com>
2025-04-18 01:50:58 +04:00
github-automation-metabase
1e43bd1ba3 Setup app cleanup for sample-app runner (#56866) (#56889)
Co-authored-by: Timofey Kachalov <timofei@metabase.com>
2025-04-17 19:39:44 +00:00
github-automation-metabase
9850dc636f Fixing division by zero for minibar columns (#56871) (#56882)
Co-authored-by: Tyler Plude <tsplude@gmail.com>
2025-04-17 18:12:34 +00:00
github-automation-metabase
502c8d70aa Add missing docsPage links to custom expression HELPER_TEXT_STRINGS (#56818) (#56884)
Co-authored-by: appleby <86076+appleby@users.noreply.github.com>
2025-04-17 17:55:18 +00:00
github-automation-metabase
e931e8fe3a fix(sdk): use instance locale if no locale is passed (#56683) (#56873)
* fix(sdk): use instance locale if no locale is passed

* update docs

* we do support country codes, we have tests for it

* Update e2e/test-component/scenarios/embedding-sdk/locale-on-provider.cy.spec.tsx



* remove manual fallback to "en", site-locale is never undefined as it has
a default

---------

Co-authored-by: Nicolò Pretto <info@npretto.com>
Co-authored-by: Phoomparin Mano <poom@metabase.com>
2025-04-17 16:34:28 +00:00
github-automation-metabase
34a16e5272 feat(sdk): Export public plugin and icon types (#56851) (#56867)
Co-authored-by: Timofey Kachalov <timofei@metabase.com>
2025-04-17 16:07:56 +00:00
github-automation-metabase
b2abd08e8d [Permissions] Skip fetching of table fields when updating db permissions (#56859) (#56863)
Co-authored-by: Sloan Sparger <sloansparger@users.noreply.github.com>
2025-04-17 15:37:46 +00:00
github-automation-metabase
443ff9f1cb Add memory usage logging to sync steps (#56834) (#56846)
Co-authored-by: lbrdnk <lbrdnk@users.noreply.github.com>
2025-04-17 11:55:29 +00:00
github-automation-metabase
1186671800 feat(sdk): Export more public SDK types (#56838) (#56840)
Co-authored-by: Timofey Kachalov <timofei@metabase.com>
2025-04-17 10:23:59 +00:00
github-automation-metabase
3201bb647e fix: run cross-version-for-breaking-changes only on pull requests to (#56794) (#56831)
make it pass on master

Co-authored-by: Nicolò Pretto <info@npretto.com>
2025-04-17 07:37:51 +00:00
github-automation-metabase
536f63772d test: release healthy specs from jail (#56764) (#56815)
Co-authored-by: Uladzimir Havenchyk <125459446+uladzimirdev@users.noreply.github.com>
2025-04-16 20:07:56 +00:00
github-automation-metabase
001fa18bcc Log metric data for failures in qp.middleware.metrics/adjust (#56747) (#56804)
* Log metric data for failures in qp.middleware.metrics/adjust

When qp.middleware.metrics/adjust fails to expand a metric, log the metric's name and dataset_query, not just the
metric id.

Closes QUE-862

* Update test to assert that metric data is present in ExceptionInfo

Co-authored-by: appleby <86076+appleby@users.noreply.github.com>
2025-04-16 17:35:40 +00:00
github-automation-metabase
ed460571cd Temporal units translation fix (#56792) (#56802)
Co-authored-by: Alexander Polyankin <alexander.polyankin@metabase.com>
2025-04-16 17:20:56 +00:00
github-automation-metabase
778914b4ea POC of cross version tests to detect breaking changes (#56130) (#56788)
* wip script to build the frankenjar

* build/run/test functions that seem to be working

* preparing for ci

* wip ci workflow

* need to run the job "manually" at least one to be able to dispatch it
from the gh cli

* add workflow_call

* bash instead of sh to solve issue of illegal option -o pipefail?

* use correct version of node

* prepare backend

* more envs to ci

* make jar run on the background in ci

* trying to run a list of specs in ci, tagging with tags probably won't
work as tags potentially need to be there on "older" versions of the
test

* fewer tests so it maybe doesn't timeout

* run on prs targerting the pr branch and the target base one
:wq

* clean up

* fix: without --env it wasn't really using the grepTags param:wq

* refactor: check for the actual files instead of doing ls*

* add back some more test files

* add log for ci

* remove colors as they're not shown in ci

* test: wait for data to load in a flaky test

* test: wait for data to load in a flaky test

* make sure we're building the EE jar

* skip licnese step as we don't need it

* move script out of embedding-sdk folder

* make curl -s to spam less in ci

* refactor: move jops to keep the result job last

---------

Co-authored-by: Nicolò Pretto <info@npretto.com>
Co-authored-by: Uladzimir Havenchyk <uladzimir.dev@gmail.com>
2025-04-16 17:09:52 +00:00
github-automation-metabase
bc12842753 Guard notification pool for exhaustion (#56766) (#56776)
Co-authored-by: Ngoc Khuat <qn.khuat@gmail.com>
2025-04-16 11:59:14 +00:00
github-automation-metabase
311378dd0a Speculative OOM fix: partition index updates, update logging for index sync (#55866) (#56643)
* Adjust logging

* Speculative OOM fix

* Update partitioning logic of sync-all-indexes!

* Add test

* Use bigger partitions

* Adjust tests

* Remarks

Co-authored-by: lbrdnk <lbrdnk@users.noreply.github.com>
2025-04-16 08:22:45 +00:00
github-automation-metabase
e345b3f8a9 test: move flaky mongo test to jail (#56753) (#56762)
Co-authored-by: Uladzimir Havenchyk <125459446+uladzimirdev@users.noreply.github.com>
2025-04-16 06:56:39 +00:00
github-automation-metabase
7c0261c088 docs: semantic types (#56703) (#56750)
* semantic types

* Apply suggestions from code review



* feedback

---------

Co-authored-by: Alex Yarosh <alexandra@metabase.com>
Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-04-15 21:02:00 +00:00
github-automation-metabase
fb586cb3cb Correct output for dashboard filter variables (#56619) (#56748)
* Correct output for dashboard filter variables

* Whitespace

* Add node script for testing clojurescript

* Enhance format-unit and add parse-unit.

parse-unit is new.

format-unit now works with moment (cljs) or java.time (clj) values, not just strings and numbers. I also added two new
units (:day-of-week-abbrev and :month-of-year-full).

* Refactor to use time/parse-unit and time/format-unit

Co-authored-by: Eric Normand <ericwnormand@gmail.com>
2025-04-15 20:25:19 +00:00
github-automation-metabase
d16e1a7fdf Less ambiguous notification logs (#56701) (#56746)
Co-authored-by: Ngoc Khuat <qn.khuat@gmail.com>
2025-04-15 18:22:28 +00:00
github-automation-metabase
4746b6a453 test: fix another flakiness (#56711) (#56742)
* test: fix another flakiness

* another assert

* add comment back and remove flaky

Co-authored-by: Uladzimir Havenchyk <125459446+uladzimirdev@users.noreply.github.com>
2025-04-15 16:56:53 +00:00
github-automation-metabase
07c9c7f452 docs(sdk): Improve typedoc output and plugins (#56712) (#56740)
Co-authored-by: Timofey Kachalov <timofei@metabase.com>
2025-04-15 15:26:30 +00:00
github-automation-metabase
6b5b4605c1 fix identity-hash-test flakes (#56728) (#56734)
this happens because we're not hashing `now` in this case, but what is coming from DB; which is OffsetDateTime and can
have slightly different precision, leading to different hash.

Co-authored-by: Alexander Solovyov <alexander@solovyov.net>
2025-04-15 14:37:26 +00:00
github-automation-metabase
2d75fbc90c Fix native model perms (#56697) (#56723)
Co-authored-by: Alexander Polyankin <alexander.polyankin@metabase.com>
2025-04-15 13:32:37 +00:00
github-automation-metabase
d975e0aca4 Run build job for SDK on any FE code change (#56718) (#56726)
Co-authored-by: Timofey Kachalov <timofei@metabase.com>
2025-04-15 13:11:49 +00:00
github-automation-metabase
6d8958137c feat(sdk): Automatically set a sensible display to interactive questions (#56584) (#56667) (#56713)
Co-authored-by: Oisin Coveney <oisin@metabase.com>
Co-authored-by: Mahatthana (Kelvin) Nomsawadi <me@bboykelvin.dev>
2025-04-15 10:47:58 +00:00
github-automation-metabase
f281909071 Update connecting.md (#56708) (#56710)
Co-authored-by: Alex Yarosh <alexandra@metabase.com>
2025-04-15 09:31:35 +00:00
github-automation-metabase
bb4d832cd6 Fix redirect from internal module, replace metadata description via a plugin (#56614) (#56705)
Co-authored-by: Timofey Kachalov <timofei@metabase.com>
Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-04-15 08:29:06 +00:00
Timofey Kachalov
1f03c858c3 Remove Embedding SDK API generated doc files from repo (#56704) 2025-04-15 12:22:51 +04:00
github-automation-metabase
80eb215d42 docs - expression casing (#56695) (#56696)
Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-04-14 22:40:31 +00:00
appleby
87c3c58da4 Do not throw if metric metadata lookup fails in lib.metadata.calculation/metadata-method :metric (#56692)
This is a partial backport of 7425651 from #55468 to fix pivot dashcards that reference metrics (#56348).
2025-04-14 20:28:05 +00:00
github-automation-metabase
5322cebfc0 test: fix flakiness in action creator unit tests (#56672) (#56688)
Co-authored-by: Uladzimir Havenchyk <125459446+uladzimirdev@users.noreply.github.com>
2025-04-14 18:03:59 +00:00
github-automation-metabase
650a39ad0a make the sdk docs check not required so we can merge things (#56685) (#56686)
Co-authored-by: Nicolò Pretto <info@npretto.com>
2025-04-14 17:08:30 +00:00
github-automation-metabase
de7a484336 Parse BigQuery timestamp values with microsecond precision (#56626) (#56684)
Fixes #51175

BigQuery sometimes returns timestamp values as floating point values (as strings, of course). We used to pass the
parsed double value to java-time.api/instant, but that seems to have microsecond precision. In this change we use
Java's built-in Instant construction function to keep the full precision.

Co-authored-by: metamben <103100869+metamben@users.noreply.github.com>
2025-04-14 17:00:14 +00:00
github-automation-metabase
0a61ef8895 docs: mention supabase (#56676) (#56682)
* mention supabase

* Update docs/databases/connections/postgresql.md



---------

Co-authored-by: Alex Yarosh <alexandra@metabase.com>
Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-04-14 16:27:21 +00:00
github-automation-metabase
47cc3b4b34 fix typo (#56678) (#56679)
Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-04-14 16:17:36 +00:00
github-automation-metabase
6a1798b2ac Fix dissappearing string escapes (#56605) (#56675)
* Add repro for #56596

* Allow escaping backslash

* Use unquoteString everywhere to parse strings and references

* Do string quoting and unquoting more consistently

* Add repro for #56596

* Make string parsing more straightforward and consistent

* Use quoteString to find errors with quoting

* Type string helpers more strictly

* Add fuzz tests for string quoting

* Move fuzz helper to test folder

* Make string fuzzing repeatable

* Add sanity check

* Fuzz all three quoting modalities

* Add [-quote tests

* Rename quote to delimiter

* Fix path for lexifier fuzz testing

* Fix name for compiler fuzz testing

* Use constant to store delimiter pairs

* Fix option name in formatter

* Add more cases around half-quoted strings

* Rename quote to delimiter in comment



---------

Co-authored-by: Romeo Van Snick <romeo@romeovansnick.be>
Co-authored-by: Kamil Mielnik <kamil@kamilmielnik.com>
2025-04-14 15:57:33 +00:00
github-automation-metabase
b15886c277 Fix native editor sidebar (#56594) (#56662)
* Fix issue where toolbar is being pushed off screen

* Add repro for metabase#56570

Co-authored-by: Romeo Van Snick <romeo@romeovansnick.be>
2025-04-14 10:39:53 +00:00
github-automation-metabase
1a4e58d278 Require only id and value for parameters when running questions (#56565) (#56592)
This is the BE part of #51813

Co-authored-by: metamben <103100869+metamben@users.noreply.github.com>
2025-04-13 10:33:35 +03:00
github-automation-metabase
e15758485c [metrics] Fix race condition in jvm-hiccup/alloc-rate metrics (#56528) (#56638)
Co-authored-by: Oleksandr Yakushev <alex@bytopia.org>
2025-04-12 19:42:43 +00:00
github-automation-metabase
32d80798f5 test: use mousemove instead of realHover for echart tooltip (#56583) (#56627)
Co-authored-by: Uladzimir Havenchyk <125459446+uladzimirdev@users.noreply.github.com>
2025-04-11 22:11:38 +00:00
github-automation-metabase
70ecf9ebb8 Add route prop to disable command palette, Disable in setup routes (#56507) (#56617)
* Add route prop to disable command palette, Disable in setup routes

* increase wait timeout

* refresh user on setup

* Lets try a unit test instead

* removing refresh user from UserStep

Co-authored-by: Nick Fitzpatrick <nick@metabase.com>
2025-04-11 19:05:22 +00:00
github-automation-metabase
d3a4793a4c docs - note on quotes (#56520) (#56599)
* note on quotes

* edit

* tags

* format

* spacing

* edit

Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-04-11 15:18:38 +00:00
github-automation-metabase
2c037dac5a 🤖 backported "Added include_metadata argument to search API" (#56513)
* Added include_metadata argument to search API (#56397)

* Backported changes

---------

Co-authored-by: Nathan Voxland <nathan@metabase.com>
2025-04-11 15:01:46 +00:00
github-automation-metabase
f0e9e67b29 test: fix a broken entity picker test (#56586) (#56600)
Co-authored-by: Uladzimir Havenchyk <125459446+uladzimirdev@users.noreply.github.com>
2025-04-11 14:57:42 +00:00
github-automation-metabase
be3925cd74 closes metabase#56307: faint line on tooltip arrow in FF (#56588) (#56591)
Co-authored-by: Sébastien <sebastien@metabase.com>
2025-04-11 12:11:05 +00:00
Timofey Kachalov
d539b57bb0 Setup automatic documentation generation for @metabase/embedding-sdk package (#56366) 2025-04-11 12:58:46 +04:00
Timofey Kachalov
e1dfb2738a feat(sdk): Apply dts rollup to generate a single .d.ts file with types (#56205) (#56582) 2025-04-11 11:43:32 +04:00
github-automation-metabase
9d033b7c9c test: fix another flakiness (#56563) (#56568)
Co-authored-by: Uladzimir Havenchyk <125459446+uladzimirdev@users.noreply.github.com>
2025-04-10 19:31:21 +00:00
github-automation-metabase
6eb4484b25 fix incorrect series colors in static viz (#56415) (#56566)
* fix static charts may have incorrect series colors

* use hex colors in static viz

Co-authored-by: Aleksandr Lesnenko <alxnddr@users.noreply.github.com>
2025-04-10 18:37:10 +00:00
github-automation-metabase
f41ff1c972 Growing entity picker (#56462) (#56558)
* resize observer entity picker

* adding e2e test

* e2e adjustments

Co-authored-by: Nick Fitzpatrick <nick@metabase.com>
2025-04-10 16:08:39 +00:00
github-automation-metabase
38ff11e325 fix bars width on dst timezone data (#56466) (#56555)
* fix bars width on dst timezone data

* specs

Co-authored-by: Aleksandr Lesnenko <alxnddr@users.noreply.github.com>
2025-04-10 15:34:02 +00:00
github-automation-metabase
9ab41f3512 Support binning by column with a single numerical value (#56517) (#56554)
Fixes #53521

--

Co-authored with lyulifeng (lyulifengg@gmail.com)

Co-authored-by: metamben <103100869+metamben@users.noreply.github.com>
2025-04-10 15:25:45 +00:00
github-automation-metabase
d38a5ef17b Refactor Embedding SDK CI workflow and improve notify-pull-request action (#56545) (#56552)
Co-authored-by: Timofey Kachalov <timofei@metabase.com>
2025-04-10 14:52:48 +00:00
github-automation-metabase
d0faf77b6a Improve links (#56549) (#56551)
Co-authored-by: Gustavo Saiani <gus@metabase.com>
2025-04-10 14:14:23 +00:00
github-automation-metabase
9a0cb6df9a call e2e-component-tests-embedding-sdk-cross-version from (#56454) (#56547)
* call e2e-component-tests-embedding-sdk-cross-version from
embedding-sdk.yml

* add e2e-component-tests-embedding-sdk-cross-version to the tests-results
so it needs to pass (or be skipped)

Co-authored-by: Nicolò Pretto <info@npretto.com>
2025-04-10 14:02:12 +00:00
github-automation-metabase
49d28c6b1d Reset all errored triggers to WAITING on startup (#55769) (#56546)
* Reset all errored triggers to `WAITING` on startup



* Add explanatory comments

---------

Co-authored-by: John Swanson <john.swanson@metabase.com>
Co-authored-by: Ed Paget <ed@metabase.com>
2025-04-10 13:15:17 +00:00
github-automation-metabase
fcaafaad65 Fix percentile with expression argument on Clickhouse (#56488) (#56539)
* Fix percentile honeysql generation on Clickhouse

* Fix lib/case arities

* Add test

* Whitespace

Co-authored-by: lbrdnk <lbrdnk@users.noreply.github.com>
2025-04-10 07:55:46 +00:00
github-automation-metabase
1612888af3 fix: allow metabase jars to start on JVM 24 and up (#56518) (#56526)
Metabase jars would crash when running on JVM 24 because the getReourse
method on the ClassLoader object was changed to return null if there is
no file at the provided path. This adds a ".keep-me" file to the
resources directory that Metabase can use to check if it is running in a
jar.

Co-authored-by: Edward Paget <edpaget@users.noreply.github.com>
2025-04-09 22:12:23 +00:00
github-automation-metabase
6447d02508 fix: resolve snowflake sync cost issue (#56337) (#56511)
* fix: resolve snowflake sync cost issue

Using information_schema queries will cause snowflake to wake an
instance and thus incur costs. Using `show` queries will not do so.

In addition this adds a new multi-method for manipulating the results of
`describe-fields-sql`.

* Fix database-position and sorting

* Fix kondo

* Add order-by to mysql describe-fields

* Sort deps

* Use identity not map identity

* Fix databricks

* Address PR comments

Co-authored-by: Case Nelson <case@metabase.com>
2025-04-09 20:34:56 +00:00
github-automation-metabase
5677868446 remove duplicate function, translate dates (#56449) (#56510)
Co-authored-by: Nick Fitzpatrick <nick@metabase.com>
2025-04-09 19:46:12 +00:00
github-automation-metabase
c0693d1e31 Created queue listener and updated search to use it (#55069) (#56508)
Co-authored-by: Nathan Voxland <nathan@metabase.com>
2025-04-09 18:57:15 +00:00
github-automation-metabase
2ed69e42c1 Update translations 2025-04-08 (#56418) (#56467)
* Update translation sources 2025-04-08

* Update translations

---------

Co-authored-by: github-actions <github-actions@github.com>
# Conflicts:
#	locales/ar-SA.po
#	locales/ar.po
#	locales/bg.po
#	locales/ca.po
#	locales/cs.po
#	locales/da.po
#	locales/de.po
#	locales/es.po
#	locales/fa.po
#	locales/fi.po
#	locales/fr.po
#	locales/he.po
#	locales/hu.po
#	locales/id.po
#	locales/it.po
#	locales/ja.po
#	locales/ko.po
#	locales/lv.po
#	locales/metabase.po
#	locales/ms.po
#	locales/nb.po
#	locales/nl.po
#	locales/pl.po
#	locales/pt-BR.po
#	locales/ru.po
#	locales/sk.po
#	locales/sl.po
#	locales/sq.po
#	locales/sr.po
#	locales/sv.po
#	locales/tr.po
#	locales/uk.po
#	locales/vi.po
#	locales/zh-CN.po
#	locales/zh-HK.po
#	locales/zh-TW.po

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-04-09 12:03:05 -06:00
github-automation-metabase
cbce53e085 (mini-PR) Remove irrelevant msgctxt from error diagnostic modal (#56484) (#56492)
Like it says on the tin

Co-authored-by: Raphael Krut-Landau <raphael.kl@gmail.com>
2025-04-09 14:00:29 +00:00
github-automation-metabase
1e0d6d19b6 Allow lhs and rhs columns to be selected in existing join (#56446) (#56489)
* Allow lhs and rhs columns to be selected in existing join

* Only mark selected if there is a current selection (tests)

Also simplify the test.

Co-authored-by: Eric Normand <ericwnormand@gmail.com>
2025-04-09 13:57:41 +00:00
github-automation-metabase
d1cbbf80f8 feat: make cluster locking reusable (#56310) (#56455)
* feat: make cluster locking reusable

Builds a more generic interface for cluster locking using our existing
retry mechanism and jdbc level timeouts that will work with any database
rather than just postgresql.

* fixup! handle alt error text on mysql/mariadb

* fixup! don't lock on h2

* fixup! move malli annotations to retry

Co-authored-by: Edward Paget <edpaget@users.noreply.github.com>
2025-04-09 13:35:22 +00:00
github-automation-metabase
524a756666 docs - data picker entities (#56448) (#56490)
* entity types for data picker

* dropdown and sidebar

* separate page

* note on metrics

* notes

* edit

* table

Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-04-09 13:28:13 +00:00
github-automation-metabase
fbe59d9779 Fix flaky unsubscribe test (#56472) (#56479)
Co-authored-by: Ngoc Khuat <qn.khuat@gmail.com>
2025-04-09 09:07:42 +00:00
github-automation-metabase
fa3558063c test: several fixes for flaky tests (#56441) (#56474)
* test: wait for data to load in a flaky test

* fix two more tests

* fix one more test

Co-authored-by: Uladzimir Havenchyk <125459446+uladzimirdev@users.noreply.github.com>
2025-04-09 06:02:50 +00:00
github-automation-metabase
c98475c0a1 Preserve non-default effective type of column in field-ref metadata (#56453) (#56470)
Fixes #55171

Co-authored-by: metamben <103100869+metamben@users.noreply.github.com>
2025-04-08 23:38:43 +00:00
github-automation-metabase
70f86e5c68 Support formatting postgres and oracle concatenation operator (#56331) (#56465)
Fixes #55961

Co-authored-by: metamben <103100869+metamben@users.noreply.github.com>
2025-04-08 21:17:39 +00:00
github-automation-metabase
446d9aa99f Don't update report_card.result_metadata if it has not changed (#56314) (#56432)
* Don't update card metadata if it has not changed

* Store stored-metadata as a different field on info

* Fixed failing tests

* Update src/metabase/query_processor/middleware/results_metadata.clj



* Addressed review comments

* Update src/metabase/query_processor/middleware/results_metadata.clj



* Addressed review comments

* Update src/metabase/query_processor/middleware/results_metadata.clj



* Addressed review comments

* fixup! exclude info map from legacy normalization

* fixup! test that metadata equality skips update

* fixup! make adding the info map conditional

* fixup! use qp.store instead of adding to info map

* fixup! remove #p

* fixup! remove cyclic dep

* fixup! move load and store fns to same ns

* fixup! test name

---------

Co-authored-by: Nathan Voxland <nathan@metabase.com>
Co-authored-by: Edward Paget <edpaget@users.noreply.github.com>
Co-authored-by: Braden Shepherdson <braden@metabase.com>
Co-authored-by: Edward Paget <ed.paget@gmail.com>
2025-04-08 15:30:21 +00:00
github-automation-metabase
215ae7f250 Allow selecting multiple ranges and running those in native editor (#56420) (#56445)
* Store all native editor selected ranges in redux

* Pass all selected ranges to redux

* Add repro for metabase#54799

* Fix unit tests

* Fix typo



* Do not intersperse space in when running selected text

---------

Co-authored-by: Romeo Van Snick <romeo@romeovansnick.be>
Co-authored-by: Kamil Mielnik <kamil@kamilmielnik.com>
2025-04-08 15:28:08 +00:00
github-automation-metabase
7c4f2732f7 fix: mock time to middle of a utc day (#56296) (#56437)
This test was flaking if it was run close to the boundary of a UTC day
where the models could be created one day and then the clock ticked over
to a new day before the query ran.

Co-authored-by: Edward Paget <edpaget@users.noreply.github.com>
2025-04-08 14:30:55 +00:00
github-automation-metabase
85ba3575f8 feat: add basic schema for sso saml settings api (#56318) (#56435)
Co-authored-by: Edward Paget <edpaget@users.noreply.github.com>
2025-04-08 14:15:17 +00:00
github-automation-metabase
ac2fdba29c closes VIZ-613 caret on readonly input in FF (#56380) (#56429)
Co-authored-by: Sébastien <sebastien@metabase.com>
2025-04-08 12:15:06 +00:00
github-automation-metabase
2618aebb88 [metrics] Add hiccup and allocation rate metrics (#56345) (#56422)
Co-authored-by: Oleksandr Yakushev <alex@bytopia.org>
2025-04-08 09:18:23 +00:00
github-automation-metabase
b5135fd4a1 [Notification] Improve memory usage for alerts (#55896) (#56069)
Co-authored-by: Ngoc Khuat <qn.khuat@gmail.com>
2025-04-08 07:49:54 +00:00
github-automation-metabase
b685dece63 test: wait for data to load in a flaky test (#56409) (#56414)
Co-authored-by: Uladzimir Havenchyk <125459446+uladzimirdev@users.noreply.github.com>
2025-04-07 22:10:38 +00:00
github-automation-metabase
d766705a27 fix: snowflake can-connect with ssh without touching other drivers (#56325) (#56404)
* fix: snowflake can-connect with ssh without touching other drivers

* Adjust host-and-port for can-connect without calling incorporate-ssh-tunnel-details

Co-authored-by: Case Nelson <case@metabase.com>
2025-04-07 19:44:44 +00:00
github-automation-metabase
3d1556d6a5 Prevent Athena sync failing due to catalog (#56038) (#56407)
Co-authored-by: Riley Thompson <riley@metabase.com>
2025-04-07 19:19:02 +00:00
github-automation-metabase
36942f28de Don't need to be running "configure the scheduler" liquibase tasks during testing (#56176) (#56401)
Co-authored-by: Nathan Voxland <nathan@metabase.com>
2025-04-07 18:41:11 +00:00
github-automation-metabase
50f023efb4 change table cells vertical align to top instead of center for wrapping (#56256) (#56402)
Co-authored-by: Aleksandr Lesnenko <alxnddr@users.noreply.github.com>
2025-04-07 18:39:30 +00:00
github-automation-metabase
b2472be972 fix: dont log db-details (#56386) (#56398)
We were inadvertently logging db-details in the rarely used
`maybe-test-and-migrate-details`. This changes to more of a data
diff where we can still get important information on how it changed.

Co-authored-by: Case Nelson <case@metabase.com>
2025-04-07 18:37:43 +00:00
github-automation-metabase
7511b4eda5 fix readability of map buttons (#56341) (#56396)
Co-authored-by: Aleksandr Lesnenko <alxnddr@users.noreply.github.com>
2025-04-07 17:39:07 +00:00
github-automation-metabase
f698fd7c14 Closes VIZ-579: jarring layout change in object detail view (#56287) (#56389)
* fixed console warning

* closes VIZ-579 object detail layout no longer jumps

* e2e

Co-authored-by: Sébastien <sebastien@metabase.com>
2025-04-07 16:53:49 +00:00
github-automation-metabase
6819503b3d Fix MySQL JSON decimals (#56102) (#56191)
Co-authored-by: Riley Thompson <riley@metabase.com>
2025-04-07 15:45:51 +00:00
github-automation-metabase
5db33ac8d0 Replace - with _ in Mongo join aliases (#56185) (#56316)
Co-authored-by: Riley Thompson <riley@metabase.com>
2025-04-07 15:35:11 +00:00
github-automation-metabase
6b819f679f Fix relative-time-view rendering (#56326) (#56382)
Co-authored-by: Eric Normand <ericwnormand@gmail.com>
2025-04-07 15:12:02 +00:00
github-automation-metabase
42c01eee19 New entry for metabot team (#56384) (#56385)
Co-authored-by: Vamsi Peri <vamsi@metabase.com>
2025-04-07 14:50:15 +00:00
github-automation-metabase
a23f4cd816 docs - various changes (#56230) (#56239)
* path

* add firebolt driver

* remove api description

Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-04-07 14:08:12 +00:00
github-automation-metabase
e5494e9267 Retain formatting for links with no URL (#56327) (#56378)
* Retain formatting for links with no URL

* Rework approach to fix tests

Co-authored-by: Noah Moss <32746338+noahmoss@users.noreply.github.com>
2025-04-07 14:03:56 +00:00
github-automation-metabase
1088fe7d52 switch css rule for <FileInput /> component (#56349) (#56377)
Co-authored-by: Nick Fitzpatrick <nick@metabase.com>
2025-04-07 13:41:55 +00:00
github-automation-metabase
e38397d190 Invalidate card's cache on PUT (#56365) (#56375)
* Invalidate card cache on put

* Add test

Co-authored-by: lbrdnk <lbrdnk@users.noreply.github.com>
2025-04-07 12:55:18 +00:00
github-automation-metabase
f0bb173921 Fix goal line doesn't appear on a normalized stacked bar chart (#56298) (#56372)
* Normalize goal line value

* Add visual test

Co-authored-by: Anton Kulyk <kuliks.anton@gmail.com>
2025-04-07 11:09:50 +00:00
github-automation-metabase
a965c3a0dc Disable indefinite vertical panning on leaflet maps, and enable smooth horizontal wrapping (#56329) (#56343)
Co-authored-by: Noah Moss <32746338+noahmoss@users.noreply.github.com>
2025-04-05 04:07:24 +00:00
github-automation-metabase
16ed0c70b7 Hide trend line widget when multiple series present (#54107) (#56339)
* Hide trend line widget when multiple series present

* Adding unit test for trend line hidden state

* Prettier

Co-authored-by: Tyler Plude <tsplude@gmail.com>
2025-04-05 00:59:05 +00:00
github-automation-metabase
13f526fc5f Fixing typo in embed type ui (#56116) (#56338)
Co-authored-by: Tyler Plude <tsplude@gmail.com>
2025-04-04 23:52:26 +00:00
github-automation-metabase
befb7d2f00 fix bar width on non-linear x-axis scales (#56265) (#56333)
Co-authored-by: Aleksandr Lesnenko <alxnddr@users.noreply.github.com>
2025-04-04 22:49:55 +00:00
github-automation-metabase
8f4405f6e5 🤖 backported "Support for individual google sheets" (#56240)
* Add connection info to disconnect modal (#55588)

* rename and reorganize

# Conflicts:
#	enterprise/frontend/src/metabase-enterprise/google_drive/GdriveConnectionModal.tsx
#	enterprise/frontend/src/metabase-enterprise/google_drive/GdriveSyncStatus.tsx

* resolve conflicts

* update disconnect modal

* better spacing

* Support for individual google sheets (#54938)

Co-authored-by: bryan <bryan.maass@gmail.com>
Co-authored-by: Ryan Laurie <30528226+iethree@users.noreply.github.com>

* fix type

---------

Co-authored-by: Ryan Laurie <30528226+iethree@users.noreply.github.com>
Co-authored-by: Nathan Voxland <nathan@metabase.com>
Co-authored-by: bryan <bryan.maass@gmail.com>
Co-authored-by: Ryan Laurie <iethree@gmail.com>
2025-04-04 16:40:43 -06:00
github-automation-metabase
ddc4f22e6f perf: Optimize available-drivers-info (#55970) (#56332)
Co-authored-by: Oleksandr Yakushev <alex@bytopia.org>
2025-04-04 22:34:35 +00:00
github-automation-metabase
e2e97fe764 Do not enforce table cruftiness during updates (#56312) (#56328)
* do not enforce table cruftiness during updates

- matches original behavior

* add test

Co-authored-by: bryan <bryan.maass@gmail.com>
2025-04-04 20:54:24 +00:00
github-automation-metabase
a305fdaf72 Revert "fix: properly test snowflake ssh connection details" (#56315) (#56323)
This reverts commit 0fc5cbe7dc.

Co-authored-by: Case Nelson <case@metabase.com>
2025-04-04 19:58:26 +00:00
github-automation-metabase
ffc38affa3 skip loki flaky table test (#56305) (#56317)
* skip loki flaky table test

* Update Loki Snapshots

---------

Co-authored-by: Aleksandr Lesnenko <alxnddr@users.noreply.github.com>
2025-04-04 19:39:21 +00:00
github-automation-metabase
a89b3ad533 Add note about allowtcpforwarding (#56320) (#56321)
Co-authored-by: Luis Paolini <paoliniluis@gmail.com>
2025-04-04 19:18:48 +00:00
github-automation-metabase
e2c8b034cf Closes VIZ-588 wrong hover index (#55910) (#56308)
* closes VIZ-588 wrong hover index

* test

* type

Co-authored-by: Sébastien <sebastien@metabase.com>
2025-04-04 16:35:24 +00:00
github-automation-metabase
a6ba82ea76 test: scroll in the virtual table (#56269) (#56299)
* test: scroll in the virtual table

* fix linting issues

* revert assert back

Co-authored-by: Uladzimir Havenchyk <125459446+uladzimirdev@users.noreply.github.com>
2025-04-04 14:47:41 +00:00
github-automation-metabase
3d7e9b99cf drop leading equals operator (#56294) (#56297)
Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-04-04 14:00:41 +00:00
github-automation-metabase
d802ae3d83 add metabase logo (#56292) (#56295)
Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-04-04 13:48:25 +00:00
github-automation-metabase
bdcc1a1cc8 test: wait for data in a flaky test (#56248) (#56283)
* test: wait for data in a flaky test

* one more check

* set smaller viewport

* add wait

* add a helper

Co-authored-by: Uladzimir Havenchyk <125459446+uladzimirdev@users.noreply.github.com>
2025-04-04 13:13:54 +00:00
github-automation-metabase
046091a97a Fix product screenshot link in README (#56268) (#56284)
Co-authored-by: Kamil Mielnik <kamil@kamilmielnik.com>
2025-04-04 12:56:34 +00:00
github-automation-metabase
1493f53c52 Update Readme version references and published npm version to 0.54.5 (#56278) 2025-04-04 12:29:11 +00:00
github-automation-metabase
60d69cf2fd Fix wrong default cell background color on SDK (#55669) (#56275)
Co-authored-by: Mahatthana (Kelvin) Nomsawadi <me@bboykelvin.dev>
2025-04-04 11:53:34 +00:00
Phoomparin Mano
99ec879a9e ci(sdk): mark 54 as a stable release version (#56274) 2025-04-04 18:19:25 +07:00
github-automation-metabase
8f24cf2e0e Multi line help text (#56155) (#56212)
* Allow detecting enclosing function in multiline expressions

* Add repro for metabase#56152

Co-authored-by: Romeo Van Snick <romeo@romeovansnick.be>
2025-04-04 09:27:26 +02:00
github-automation-metabase
e0993d3e2a skip tooltip loki specs (#56250) (#56253)
Co-authored-by: Aleksandr Lesnenko <alxnddr@users.noreply.github.com>
2025-04-03 23:37:19 +00:00
github-automation-metabase
5f7f4db118 fix: make saml issuer identity required in FE (#56154) (#56224)
Co-authored-by: Edward Paget <edpaget@users.noreply.github.com>
2025-04-03 20:32:39 +00:00
github-automation-metabase
b5a7871186 fix(sdk): fix dataset endpoint being called on every re-render (#56100) (#56233)
* fix missing useMemo in ad-hoc question

* add a test case for EMB-288

* fix test case for interactive dashboard

Co-authored-by: Phoomparin Mano <poom@metabase.com>
2025-04-03 17:18:07 +00:00
github-automation-metabase
84de22944f test: use dynamic data for referencing columns and tables instead of static (#56139) (#56229)
Co-authored-by: Uladzimir Havenchyk <125459446+uladzimirdev@users.noreply.github.com>
2025-04-03 15:16:53 +00:00
github-automation-metabase
7d64761f66 (mini-PR) Localize string in sidesheet (#56221) (#56226)
Let's localize the string "Learn more" in the question info sidesheet

Co-authored-by: Raphael Krut-Landau <raphael.kl@gmail.com>
2025-04-03 14:57:15 +00:00
Oisin Coveney
23d8d50053 Revert "fix(sdk): Clean up "Unrecognized Prop" errors on CreateDashboardModal…" (#56222)
This reverts commit 8977c2e9af.
2025-04-03 14:23:10 +00:00
github-automation-metabase
16016bca82 Changelog for api/card/:card-id/query/export-format (#56189) (#56217)
Examples in 52:
-----

```
52:

WORKS (form data)
curl 'http://localhost:3002/api/card/119/query/csv' \
  -H "x-api-key: $KEY_52" \
  -H 'Content-Type: application/x-www-form-urlencoded;charset=UTF-8' \
  --data-raw 'parameters=%5B%7B%22id%22%3A%227c1e5d79-453a-490e-a507-ffba548aa071%22%2C%22type%22%3A%22id%22%2C%22value%22%3A%5B%225%22%5D%2C%22target%22%3A%5B%22dimension%22%2C%5B%22template-tag%22%2C%22param%22%5D%5D%7D%5D&format_rows=true&pivot_results=false'

WORKS (query param)
curl 'http://localhost:3002/api/card/119/query/csv?parameters=%5B%7B%22id%22%3A%227c1e5d79-453a-490e-a507-ffba548aa071%22%2C%22type%22%3A%22id%22%2C%22value%22%3A%5B%225%22%5D%2C%22target%22%3A%5B%22dimension%22%2C%5B%22template-tag%22%2C%22param%22%5D%5D%7D%5D&format_rows=true&pivot_results=false' \
  -X POST \
  -H "x-api-key: $KEY_52"

DOES NOT WORK (json body)
curl 'http://localhost:3002/api/card/119/query/csv' \
  -H "x-api-key: $KEY_52" \
  -H 'Content-Type: application/json' \
  --data-raw '{"parameters": [{"id":"7c1e5d79-453a-490e-a507-ffba548aa071","type":"id","value":["5"],"target":["dimension",["template-tag","param"]]}], "format_rows": true}'
```

Examples for 53:
---------
```
53:
WORKS
curl 'http://localhost:3003/api/card/113/query/csv' \
  -H 'Content-Type: application/x-www-form-urlencoded;charset=UTF-8' \
  -H "x-api-key: $KEY_53" \
  --data-raw 'parameters=%5B%7B%22id%22%3A%229971a99a-32cb-4b6c-8339-584884e3b3e2%22%2C%22type%22%3A%22id%22%2C%22value%22%3A%5B%225%22%5D%2C%22target%22%3A%5B%22dimension%22%2C%5B%22template-tag%22%2C%22param%22%5D%5D%7D%5D&format_rows=true&pivot_results=false'

WORKS:
curl 'http://localhost:3003/api/card/113/query/csv' \
  -H "x-api-key: $KEY_53" \
  -H 'Content-Type: application/json' \
  --data-raw '{"parameters": [{"id":"9971a99a-32cb-4b6c-8339-584884e3b3e2","type":"id","value":["5"],"target":["dimension",["template-tag","param"]]}], "format_rows": true}'

DOES NOT WORK
curl 'http://localhost:3003/api/card/113/query/csv?parameters=%5B%7B%22id%22%3A%229971a99a-32cb-4b6c-8339-584884e3b3e2%22%2C%22type%22%3A%22id%22%2C%22value%22%3A%5B%225%22%5D%2C%22target%22%3A%5B%22dimension%22%2C%5B%22template-tag%22%2C%22param%22%5D%5D%7D%5D&format_rows=true&pivot_results=false' \
  -X POST \
  -H "x-api-key: $KEY_53"
```

Co-authored-by: dpsutton <dan@dpsutton.com>
2025-04-03 13:59:50 +00:00
github-automation-metabase
4d50f77f9e Fix - When DB is stuck in a Sync Loop, DB List in Native Editor Blinks Constantly (#55995) (#56219)
* Add a repro for #55951

* Fix typos

* Refactor repro

* Fix #55951

* Remove unused components

* Use 'loading'

* Format code

* Fix test setup

* Rename isLoading back to isSearchLoading since it indicates Search.loadList usage

* Use 1 /search API call instead of 2

* Get rid of rawData

* Update unit tests

Co-authored-by: Kamil Mielnik <kamil@kamilmielnik.com>
2025-04-03 13:57:40 +00:00
github-automation-metabase
56f11a849f fix(sdk): Add questionProps to dashboard components (#55993) (#56214)
Co-authored-by: Oisin Coveney <oisin@metabase.com>
2025-04-03 13:53:13 +00:00
github-automation-metabase
98612fe668 🤖 backported "Allow Assertion Functions in Jest Tests" (#55796)
* allow assertion functions (#55772)

# Conflicts:
#	frontend/src/metabase/metadata/components/SemanticTypePicker/SemanticTypePicker.unit.spec.tsx

* make prettier happy

---------

Co-authored-by: Ryan Laurie <30528226+iethree@users.noreply.github.com>
Co-authored-by: Ryan Laurie <iethree@gmail.com>
2025-04-03 07:48:42 -06:00
github-automation-metabase
4005abf2ea fix: deadlock in last used at (#56173) (#56192)
* fix: deadlock in last used at

This prevents bulk updates to last used at from deadlocking by creating
a new table in metabase's database that can be used by instances to take
cluster wide locks. It adds an initial implementation of a customizeable
db-based locking mechanism.

For the last_used_at update, a metabase instance will first set a
session variable to control locking timesout then take a cluster lock
using SELECT * FROM metabase_cluster_lock WHERE lock_name = 'name' then
execute the update_at.

If another table is holding this lock metabase will wait .5s for the
lock to be released then timeout its SQL transaction, sleep the Thread
for 1s then retry taking the lock. This makes sure we're not holding DB
connections waiting for locks.

* fixup! kondo

* Update resources/migrations/001_update_migrations.yaml



* Update src/metabase/query_processor/middleware/update_used_cards.clj



* fixup! finish method rename

---------

Co-authored-by: Edward Paget <edpaget@users.noreply.github.com>
Co-authored-by: Noah Moss <32746338+noahmoss@users.noreply.github.com>
2025-04-03 13:22:37 +00:00
Alex Yarosh
3e7f52b37f update env var (#56197) 2025-04-03 08:49:09 -04:00
github-automation-metabase
8977c2e9af fix(sdk): Clean up "Unrecognized Prop" errors on CreateDashboardModal (#55523) (#56206)
Co-authored-by: Oisin Coveney <oisin@metabase.com>
2025-04-03 10:42:48 +00:00
github-automation-metabase
6e8b564649 Revert search engine default to in-place (#56199) (#56200)
Co-authored-by: Chris Truter <crisptrutski@users.noreply.github.com>
2025-04-03 06:52:33 +00:00
github-automation-metabase
f9cbc5f0a8 Fix formatter support for field id or name col settings (#55067) (#56188)
* Fix formatter support for when both field ids and col names are used in viz settings

* Apply fix in qp common as well, which date formatter consumes

* Addressing PR feedback and breaking up large test

* Fixing or->merge reversion; adding datetime formatter tests

* Improving viz setting merges based on types of field_ref and column setting keys

* Addressing PR feedback

Co-authored-by: Tyler Plude <tsplude@gmail.com>
2025-04-02 22:20:58 +00:00
github-automation-metabase
11510a1494 docs - remove partner drivers (#56184) (#56187)
Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-04-02 21:39:59 +00:00
github-automation-metabase
df677e8604 perf: Optimize settings retrieval (#55969) (#56181)
Co-authored-by: Oleksandr Yakushev <alex@bytopia.org>
2025-04-02 20:41:33 +00:00
github-automation-metabase
cb13652cf3 Change decimal field for Number question to only accept positive integers and update E2E test to cover edge cases (#56112) (#56183)
Co-authored-by: eliotmetabase <eliot@metabase.com>
2025-04-02 20:32:48 +00:00
github-automation-metabase
b34d275bf4 docs - table viz updates (#56162) (#56175)
* paginate table on dashcards

Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-04-02 19:07:44 +00:00
github-automation-metabase
774e5a31f7 fix: correct setting name check for static stats (#56145) (#56168)
* fix: correct setting name check for static stats

also fix namespace for the defenterprise in token check to load the
embedding stats module

* fixup! use get-raw-value

* fixup! use-get-value-of-type

Co-authored-by: Edward Paget <edpaget@users.noreply.github.com>
2025-04-02 18:30:19 +00:00
github-automation-metabase
29a2862cf0 fix: attempt #2 to skip adding non-existent partner jars (#56171) (#56172)
Co-authored-by: Case Nelson <case@metabase.com>
2025-04-02 17:55:31 +00:00
github-automation-metabase
673de80146 Split :cast into three features (#56153) (#56165)
* Split :cast into three features

* Update frontend feature names

* Update changelog

* PoC

---------

Co-authored-by: Eric Normand <ericwnormand@gmail.com>
Co-authored-by: Alexander Polyankin <alexander.polyankin@metabase.com>
2025-04-02 17:45:32 +00:00
github-automation-metabase
e35a1634ec fix: ee-build should skip adding jars when there are none (#56166) (#56167)
Co-authored-by: Case Nelson <case@metabase.com>
2025-04-02 17:23:09 +00:00
github-automation-metabase
1ef4f5efc4 docs - mention config file on api keys page (#56150) (#56164)
Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-04-02 16:49:46 +00:00
github-automation-metabase
c1b7279dad Make mongo between condition inclusive (#56087) (#56161)
Co-authored-by: Riley Thompson <riley@metabase.com>
2025-04-02 16:46:48 +00:00
github-automation-metabase
8d09df66ac Remove opacity from viz settings gear icon (#56143) (#56156)
* remove opacity from view button icon

* remove reference to ViewButtonIcon CSS module

Co-authored-by: Noah Moss <32746338+noahmoss@users.noreply.github.com>
2025-04-02 15:56:47 +00:00
github-automation-metabase
c02f09d7b4 Fix chain filters on public dashboards (#56096) (#56141)
Fixes [QUE-838](https://linear.app/metabase/issue/QUE-838/linked-filters-are-not-working-on-public-dashboards).

Query params were getting parsed incorrectly to a map like `{:17fdc812 ...}`
with a keyword rather than a string. These failed to match any of the
dashboard's parameters (which are keyed by strings like `"17fdc812"`)
and returned no values (but did not throw any errors in prod).

Co-authored-by: Braden Shepherdson <braden@metabase.com>
2025-04-02 14:06:54 +00:00
github-automation-metabase
06a16fc69f fix conflicts (#56098)
Co-authored-by: Luiz Arakaki <luiz.arakaki@metabase.com>
2025-04-02 09:12:34 -04:00
github-automation-metabase
bd1d58b1c9 Fix - Visibility explanation copy is the same across all 3 options (#56081) (#56134)
* Fix #56077

* Repro #56077

Co-authored-by: Kamil Mielnik <kamil@kamilmielnik.com>
2025-04-02 12:33:27 +00:00
github-automation-metabase
b706f87215 Fix storybook not working with MetabotQuestion (#56127) (#56132)
Co-authored-by: Mahatthana (Kelvin) Nomsawadi <me@bboykelvin.dev>
2025-04-02 12:32:00 +00:00
github-automation-metabase
6a57b2b3db fix testing and CDPATH issues with mage (#56125) (#56128)
also make script code a bit simpler with early breaks

Co-authored-by: Alexander Solovyov <alexander@solovyov.net>
2025-04-02 11:34:21 +00:00
github-automation-metabase
1d41817494 Flaky test fix: unsubscribe-receive-email-test (#56123) (#56126)
Co-authored-by: Ngoc Khuat <qn.khuat@gmail.com>
2025-04-02 10:06:54 +00:00
github-automation-metabase
82d744229e [Notification] more 🪵 (#55751) (#55982)
Co-authored-by: Ngoc Khuat <qn.khuat@gmail.com>
2025-04-02 16:43:11 +07:00
github-automation-metabase
beb3421224 Fix overflow in expression editor suggestions (#55986) (#56054)
* Fix overflow in custom expression suggestions

* Add repro for #55984

* Use isScrollableHorizontally helper



* Use isScrollableHorizontally helper



* Don't allow icon to shrink

* Allow suggestion names to break

---------

Co-authored-by: Romeo Van Snick <romeo@romeovansnick.be>
Co-authored-by: Kamil Mielnik <kamil@kamilmielnik.com>
2025-04-02 11:35:01 +02:00
github-automation-metabase
790cdc45b7 Add job context for all quartz jobs (#55889) (#56118)
Co-authored-by: Ngoc Khuat <qn.khuat@gmail.com>
2025-04-02 04:40:08 +00:00
github-automation-metabase
de81cd329a test: add native query test to flaky group (#56093) (#56108)
Co-authored-by: Uladzimir Havenchyk <125459446+uladzimirdev@users.noreply.github.com>
2025-04-01 21:29:06 +00:00
github-automation-metabase
08d383c208 task: update ee-extra to understand noop from registry (#55934) (#56107)
Co-authored-by: Case Nelson <case@metabase.com>
2025-04-01 20:03:42 +00:00
github-automation-metabase
0f81cc60c7 Bigquery handles nested fields in nested queries appropriately (#56033) (#56095)
Before, when you had an outer query referring to something in a nested field from the inner query, the query processor
would assume the field is still nested and generate invalid sql.  Now, it will just refer to the alias.

Co-authored-by: William <william@metabase.com>
2025-04-01 18:02:47 +00:00
github-automation-metabase
673b2bd1bc docs - note on caching and permissions (#56034) (#56097)
* note on caching and permissions

* differentiate caching

* clarify caching

* remove impersonation note

Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-04-01 17:58:15 +00:00
github-automation-metabase
3c98919a2f fix scatter charts freeze (#56016) (#56091)
Co-authored-by: Aleksandr Lesnenko <alxnddr@users.noreply.github.com>
2025-04-01 16:18:28 +00:00
github-automation-metabase
a93bc4cfae ci: run sample app tests and sdk cross version tests on draft prs (#56008) (#56089)
Co-authored-by: Nicolò Pretto <info@npretto.com>
2025-04-01 16:12:19 +00:00
github-automation-metabase
d23f5b2e77 test: add a fix for flaky test but move to jail anyway (#56071) (#56086)
Co-authored-by: Uladzimir Havenchyk <125459446+uladzimirdev@users.noreply.github.com>
2025-04-01 15:57:18 +00:00
github-automation-metabase
2ee6685ad3 support keys in env vars (#55756) (#55864)
# Support Environment Variables for API Keys
### Overview
This PR adds support for using environment variables to define API keys in the configuration file, enhancing security and flexibility for deployment environments.
### Changes
- Modified API key validation to support environment variable substitution in the key field
- Added runtime validation for API keys from environment variables to ensure proper formatting
- Refactored tests to properly validate environment variable integration
- All API keys (including those from environment variables) still must follow the required format:
  - Must be between 11-254 characters
  - Must start with mb_
  - Must match the pattern mb_[A-Za-z0-9+/=]+
### Usage
```
api-keys:
  - name: "ENV API Key"
    key: "{{env API_KEY_FROM_ENV}}"
    creator: "admin@example.com"
    group: "admin"
```

### Testing
- Creation of API keys from environment variables
- Validation of API key format from environment variables
- Error handling for improperly formatted environment variable values

# Skip keys if they exist
To guarantee that it is possible to keep the same yaml file on each instance initialization, if there is a key in the instance and the config file has a key with the same name, the creation is skipped.

Co-authored-by: Luiz Arakaki <luiz.arakaki@metabase.com>
2025-04-01 13:58:01 +00:00
github-automation-metabase
9d616bd4ff test: move flaky test to jail (#56039) (#56067)
Co-authored-by: Uladzimir Havenchyk <125459446+uladzimirdev@users.noreply.github.com>
2025-04-01 11:39:49 +00:00
github-automation-metabase
a15900454c Fix coercion for model (#55870) (#56063)
* Fix coercion for model

* Add test

* Update test

Co-authored-by: lbrdnk <lbrdnk@users.noreply.github.com>
2025-04-01 09:41:49 +00:00
github-automation-metabase
3a99f5ec06 Global scrollIntoView & scrollBy mocks (#55983) (#56062)
* Remove redundant mocks

* Use jest.fn

* Remove scrollIntoViewMock from setup

* Remove mockScrollIntoView

* Remove mockScrollTo and mockScrollBy

* Introduce getScrollIntoViewMock

* Remove remaining scrollIntoView mocks

Co-authored-by: Kamil Mielnik <kamil@kamilmielnik.com>
2025-04-01 09:31:59 +00:00
github-automation-metabase
8894cb038e Closes VIZ-289 duplicated cards never ending loading state (#55256) (#56057)
* closes VIZ-289 duplicated cards never ending loading state

* added test

Co-authored-by: Sébastien <sebastien@metabase.com>
2025-04-01 09:08:17 +00:00
github-automation-metabase
c97613e8f7 Fix console.warn message (#56004) (#56056)
Co-authored-by: Oisin Coveney <oisin@metabase.com>
2025-04-01 09:04:41 +00:00
github-automation-metabase
4e280413cf Respect whitelabeling when showing the instructional video (#55987) (#56052)
Co-authored-by: Nemanja Glumac <31325167+nemanjaglumac@users.noreply.github.com>
2025-04-01 08:00:14 +00:00
github-automation-metabase
17fd157992 QueryDownloadPopover -> QuestionDownloadWidget + QueryDownloadWidget -> QuestionDownloadPopover (#55894) (#56049)
Co-authored-by: Oisin Coveney <oisin@metabase.com>
2025-04-01 07:29:07 +00:00
github-automation-metabase
62d7dbdf80 Merge expression tokenizer and lexer (#55916) (#56048)
* Move the lexifier to it's own file

* Remove duplicate type union member

* Remove unused typeinferencer

* Add ParseError type to errors

* Lexify straight in to pratt.Token

* Remove unused TOKEN type

* Use pratt.Token type everywhere

* Fix type

* Remove unused __support__/expressions helper file

* Ignore END_OF_INPUT when matching suggestions

Co-authored-by: Romeo Van Snick <romeo@romeovansnick.be>
2025-04-01 07:03:14 +00:00
github-automation-metabase
9847c8a5cf 🤖 backported "Fix compilation of case with clauses that need pre-processing" (#56031)
* Fix compilation of case with clauses that need pre-processing (#55958)

* Fix test

---------

Co-authored-by: Alexander Polyankin <alexander.polyankin@metabase.com>
2025-04-01 02:35:58 +00:00
github-automation-metabase
a7b1b6c291 [refs] Fixing Audit DB init and audit content export to handle idents (#56032) (#56035)
Fixes #55929. (Requires a new export for 54 that also gets backported.)

Adds a new setting `install-analytics-database` that skips loading the
database at all, if set to false. That allows the dev instance that
exports the analytics content to have no real audit DB, and therefore to
generate the right `entity_id` hashes for the audit export!

Existing audit DBs are fine; the checksum will see these new entity_ids
in the export and overwrite any existing content.

Co-authored-by: Braden Shepherdson <braden@metabase.com>
2025-03-31 22:08:37 +00:00
github-automation-metabase
2b64fb9fd8 test: fix flake caused by popover appearance order (#55989) (#56037)
* test: fix flake caused by popover appearance order

* put back flaky tag

Co-authored-by: Uladzimir Havenchyk <125459446+uladzimirdev@users.noreply.github.com>
2025-03-31 21:57:54 +00:00
github-automation-metabase
90770e159e test: fix flake caused by data not loaded on slow network (#55998) (#56036)
Co-authored-by: Uladzimir Havenchyk <125459446+uladzimirdev@users.noreply.github.com>
2025-03-31 21:55:20 +00:00
github-automation-metabase
467cfda5d4 fix: Ensure that local timestamps params work (#55931) (#56026)
* fix: Ensure that local timestamps params work

Fixes #53371

By filtering a timestamp or date column on an OffsetDateTime it results
in an index being missed since the lhs needs to be upcast by the db engine
to a `timestamp with timezone`.

This ensures we only pass OffsetDateTime to `timestamp with timezone`
columns.

Context about decision here:
https://metaboat.slack.com/archives/C0645JP1W81/p1743111964032089

* Handle sending a datetime range rather than just a date

* Feature gate to dynamic dataset loading

* Fix kondo

* Remove comment

Co-authored-by: Case Nelson <case@metabase.com>
2025-03-31 18:19:52 +00:00
github-automation-metabase
31396994fc Limit tsvector inserts to 1048575 bytes (#55954) (#56028)
Co-authored-by: Nathan Voxland <nathan@metabase.com>
2025-03-31 18:09:24 +00:00
github-automation-metabase
b1496fce06 Mark Mongo binData as a text like type during sync (#55792) (#56002)
Co-authored-by: Riley Thompson <riley@metabase.com>
2025-03-31 16:33:54 +00:00
github-automation-metabase
b767fefd6f docs: can't permanently delete collections (#56014) (#56018)
* Update delete-and-restore.md

* format

* Update delete-and-restore.md

---------

Co-authored-by: Alex Yarosh <alexandra@metabase.com>
Co-authored-by: jeff bruemmer <jeff.bruemmer@gmail.com>
2025-03-31 16:19:49 +00:00
github-automation-metabase
27ea71746b scan section in sparksql (#56015) (#56017)
Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-03-31 15:55:35 +00:00
github-automation-metabase
feaab8c9f4 Case-sensitivity arg name vs example disambiguation (#55965) (#56013)
* Rename caseInsensitive to caseSensitivity

* Use literal string for case-insensitive template

* Update argument description to be more clear

* Support inline expression highlights

* Render help text description with Markdown

* Add more markdown to help text strings

* Use markdown code blocks to mark code in help text descriptions

* Highlight argument references in help text descriptions

* Fix arg alignment

* Fix HelpText unit tests

* Fix FunctionBrowser tests

* Render FunctionBrowser descriptions using Markdown too

* Mark true

* Fix e2e tests

* Fix e2e tests

* Remove commented-out code



---------

Co-authored-by: Romeo Van Snick <romeo@romeovansnick.be>
Co-authored-by: Uladzimir Havenchyk <125459446+uladzimirdev@users.noreply.github.com>
2025-03-31 15:51:34 +00:00
github-automation-metabase
8fff071ce1 Fix Snowflake casted date field relative time filters (#55225) (#56012)
Co-authored-by: Riley Thompson <riley@metabase.com>
2025-03-31 15:49:06 +00:00
github-automation-metabase
43c91fe06d fix: typo in token check stats name (#55999) (#56005)
Co-authored-by: Edward Paget <edpaget@users.noreply.github.com>
2025-03-31 15:14:46 +00:00
github-automation-metabase
c397970a18 formatting (#56009) (#56011)
Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-03-31 14:42:37 +00:00
github-automation-metabase
98cca38ea7 docs - add ClickHouse and Starburst to list of supported databases (#56001) (#56003)
Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-03-31 14:05:42 +00:00
github-automation-metabase
4d9dbfda51 Fix table row heights with rich content (#55960) (#56000)
* allow wrapping links

* fix image rendering, add specs

* update wrapping setting validation and visibility

Co-authored-by: Aleksandr Lesnenko <alxnddr@users.noreply.github.com>
2025-03-31 13:31:51 +00:00
github-automation-metabase
edcd0d0684 docs(sdk): Add docs for dashboard types (#55988) (#55990)
Co-authored-by: Oisin Coveney <oisin@metabase.com>
Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-03-31 11:41:52 +00:00
github-automation-metabase
73f6378180 docs - api keys in config file (#55771) (#55898)
Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-03-31 11:39:34 +00:00
github-automation-metabase
64ac079303 notifications: log skipping reason (#55701) (#55832)
Co-authored-by: Alexander Solovyov <alexander@solovyov.net>
2025-03-31 11:33:24 +00:00
github-automation-metabase
6941159eb7 Log context (#55746) (#55981)
Co-authored-by: Ngoc Khuat <qn.khuat@gmail.com>
2025-03-31 07:04:17 +00:00
github-automation-metabase
ee90e19c93 When randomize sync db schemas, avoid at 0th minute marks (#55891) (#55980)
Co-authored-by: Ngoc Khuat <qn.khuat@gmail.com>
2025-03-31 06:44:15 +00:00
github-automation-metabase
cd587771cf Update impersonation.md (#55957) (#55967)
Co-authored-by: Alex Yarosh <alexandra@metabase.com>
2025-03-30 18:42:32 +00:00
github-automation-metabase
965e1436d9 Fix offset example (#55942) (#55964)
* Apply all passes to examples

* Add format test for offset example

* Make sure all help texts return a string

* Add repro for #55940

* Typo

Co-authored-by: Romeo Van Snick <romeo@romeovansnick.be>
2025-03-30 09:07:49 +00:00
github-automation-metabase
37fd28e256 docs: mb_api key docstring (#55924) (#55947)
* mb_api key docstring

* formatting

* edit

---------

Co-authored-by: Alex Yarosh <alexandra@metabase.com>
Co-authored-by: jeff bruemmer <jeff.bruemmer@gmail.com>
2025-03-28 21:47:12 +00:00
github-automation-metabase
7f850d4b0e test: add flaky test to a flaky group (#55871) (#55949)
Co-authored-by: Uladzimir Havenchyk <125459446+uladzimirdev@users.noreply.github.com>
2025-03-28 21:30:20 +00:00
github-automation-metabase
c2bd39d781 disable column reordering on raw query views (#55581) (#55943)
Co-authored-by: Aleksandr Lesnenko <alxnddr@users.noreply.github.com>
2025-03-28 20:48:13 +00:00
github-automation-metabase
db6f469f36 Table pagination viz settings in dashcards, rows count footer (#55735) (#55936)
Co-authored-by: Aleksandr Lesnenko <alxnddr@users.noreply.github.com>
2025-03-28 20:02:48 +00:00
github-automation-metabase
f47e0db156 Use clickable styles only for links in detail view (#55903) (#55933)
Co-authored-by: Anton Kulyk <kuliks.anton@gmail.com>
2025-03-28 19:46:01 +00:00
github-automation-metabase
cde131ccd2 fix: properly test snowflake ssh connection details (#55879) (#55925)
Co-authored-by: Case Nelson <case@metabase.com>
2025-03-28 19:09:39 +00:00
github-automation-metabase
ba341bd80b Don't show dashcard's info tooltip in edit mode (#55905) (#55928)
Co-authored-by: Anton Kulyk <kuliks.anton@gmail.com>
2025-03-28 19:09:21 +00:00
github-automation-metabase
83f338cdd7 deps: upgrade rspack to 1.3 (#55901) (#55923)
Co-authored-by: Uladzimir Havenchyk <125459446+uladzimirdev@users.noreply.github.com>
2025-03-28 18:47:05 +00:00
github-automation-metabase
99693ca0ff prevent text wrapping from being applied to links (#55882) (#55913)
Co-authored-by: Aleksandr Lesnenko <alxnddr@users.noreply.github.com>
2025-03-28 16:57:34 +00:00
github-automation-metabase
5562f6a51f Change version for alert api change log from 53 to 54 (#55890) (#55917)
Co-authored-by: Ngoc Khuat <qn.khuat@gmail.com>
2025-03-28 16:28:30 +00:00
github-automation-metabase
b6946715c6 Auto-categorize truncation units as datetime columns in insights code (#55861) (#55911)
* Auto-categorize truncation units as datetime columns in insights code

* detect datetime units on the FE as well when rendering trend visualization

* prettier

* add unit test

* typo

* fix comment alignment

Co-authored-by: Noah Moss <32746338+noahmoss@users.noreply.github.com>
2025-03-28 16:01:15 +00:00
github-automation-metabase
f57430887d force <DefaultLogoIcon /> on welcome page (#55869) (#55902)
Co-authored-by: Nick Fitzpatrick <nick@metabase.com>
2025-03-28 13:07:26 +00:00
github-automation-metabase
4a561856cc test: another attempt to fix dashboard flaky test (#55873) (#55892)
Co-authored-by: Uladzimir Havenchyk <125459446+uladzimirdev@users.noreply.github.com>
2025-03-28 05:28:58 +00:00
github-automation-metabase
81b22f0f23 Update driver-changelog for :cast :distinct-where :split-part features (#55664) (#55885)
Co-authored-by: appleby <86076+appleby@users.noreply.github.com>
2025-03-28 01:20:11 +00:00
github-automation-metabase
ab018db856 Add new Tanstack table viz settings support to static viz (#55517) (#55883)
* Initial support for text wrapping in static viz

* Add text-align support

* Add row index support

* Fixing broken unit tests

* Adding new unit test coverage for Tanstack viz settings

* Fixing typo in whitespace; removing debug def

* Removing defs & outdated comment

* Addressing PR feedback

* Adding column width support to minibar columns; improving doc strings

* Adding minibar column width support; improving doc strings; moving consts to style namespace

* Fixing broken unit test after font size change

* Remove trailing whitespace

Co-authored-by: Tyler Plude <tsplude@gmail.com>
2025-03-28 00:52:55 +00:00
github-automation-metabase
88ac8815b4 Fix bottom margin on query builder view #55876 (#55878) (#55884)
Co-authored-by: Tyler Plude <tsplude@gmail.com>
2025-03-28 00:42:08 +00:00
github-automation-metabase
8577a1a429 test: add test to a flaky group (#55867) (#55872)
Co-authored-by: Uladzimir Havenchyk <125459446+uladzimirdev@users.noreply.github.com>
2025-03-27 21:24:24 +00:00
github-automation-metabase
f3f4e72e2d Minibar chart support in table static viz (#55736) (#55862)
* Minibar chart support in table static viz

* Fixing unit test; adding new minibar unit test

* Fixing clj kondo warnings

* Addressing PR feedback

* Removing dead minibar code

* Removing old minibar unit tests

Co-authored-by: Tyler Plude <tsplude@gmail.com>
2025-03-27 21:04:23 +00:00
github-automation-metabase
568ed40bb9 Upgrade ClickHouse JDBC driver version to 0.8.2 (#55713) (#55852)
Co-authored-by: Riley Thompson <riley@metabase.com>
2025-03-27 19:58:21 +00:00
github-automation-metabase
841c6cb7e4 feat: add remaining token check stats and settings (#55638) (#55857)
* feat: add remaining token check stats and settings

Adds the remaining five data points we want to report during the token
check request. Adds a new module to internal stats that does the
embedding counts and setting checks.

* fixup! log stats

* fixup! move enterprise settings into defenterprise

* fixup! remove row count

Co-authored-by: Edward Paget <edpaget@users.noreply.github.com>
2025-03-27 19:42:27 +00:00
github-automation-metabase
8b4f3d11c3 fix: only remove vis_settings from dashboardcard (#55846) (#55854)
* fix: only remove vis_settings from dashboardcard

Fixes loading serialized dashboard cards where we would previously
delete and recreate them on each load.

In order to handle circular dependencies caused by links to other
dashboards in a dashboardcard's visualization_settings we were removing
the dashboardcards entirely from the dashboard model to break the cycle.
Later when we traversed back through the dependency path we would load
the original dashboard a second time with the restored dashboardcards.

However, on the load of the cycle breaking change we could entirely drop
dashcards belonging to the dashboard because the serialization code was
treating our cycle breaking changes as an edit to the dashboard to drop those
cards. This meant when we got back to the the second load of the
dashboard we would create the dashcards fresh instead of updating
existing instances.

The fix here is that we only remove the values from the dasboard card
model that can cause the cycle -- in this case just the
visualization_settings column. This seemed the most straightforward fix,
but there are other possibilities here.

One is that we could _just_ preserve the entity_id column in dashcards
which would eliminate the possibility of any other cycles here.

Another option would be to change how we handle nested models in serialization.
There is not really a foreign key dependency here between dashboard A
and dashboard B linked by the dashboard card. If we instead just created
those dashboards first _then_ went back and created their dashcards we
don't have any problems at all. We could move nested models up to the
same level of handling in serialization that we do for models, which
would let us create the dashboards first then create any dashboard cards
in a subsequent step.

* fixup! update docstring

Co-authored-by: Edward Paget <edpaget@users.noreply.github.com>
2025-03-27 19:33:29 +00:00
github-automation-metabase
4a44ddb41e docs: don't forget to use headers in split files (#55856) (#55859)
* Update uploads.md

* Update docs/databases/uploads.md



---------

Co-authored-by: Alex Yarosh <alexandra@metabase.com>
Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-03-27 19:07:36 +00:00
github-automation-metabase
ab74febc25 Use :value for bigint values in queries (#55698) (#55849)
Co-authored-by: Alexander Polyankin <alexander.polyankin@metabase.com>
2025-03-27 19:01:46 +00:00
github-automation-metabase
2e1e08794e Bit more logging (#55837) (#55842)
```
2025-03-27 15:25:21,322 INFO sync.describe-database :: Checking "PUBLIC"."LARGE_NUMBERS"
2025-03-27 15:25:21,757 INFO sync.describe-database :: "PUBLIC"."LARGE_NUMBERS": SELECT privileges confirmed
2025-03-27 15:25:21,759 INFO sync.describe-database :: Checking "PUBLIC"."SINGLE_ROW_TABLE"
2025-03-27 15:25:21,975 INFO sync.describe-database :: "PUBLIC"."SINGLE_ROW_TABLE": SELECT privileges confirmed
2025-03-27 15:25:21,976 INFO sync.describe-database :: Checking "PUBLIC"."SLOW_QUERY_VIEW"
2025-03-27 15:25:22,219 INFO sync.describe-database :: "PUBLIC"."SLOW_QUERY_VIEW": SELECT privileges confirmed
```

This will list all tables it enumerates and then which ones it
removes. There are also two error handling states:

```
2025-03-27 15:29:25,418 INFO sync.describe-database :: "schema"."some_table": SELECT privileges confirmed
2025-03-27 15:29:25,419 INFO sync.describe-database :: "schema"."some_table": Assuming SELECT privileges: caught timeout exception
2025-03-27 15:29:25,419 INFO sync.describe-database :: "schema"."some_table": Assuming no SELECT privileges: caught exception
java.lang.Exception: Some exception
	at metabase.driver.sql_jdbc.sync.describe_database$eval194718.invokeStatic(NO_SOURCE_FILE:33)
	at metabase.driver.sql_jdbc.sync.describe_database$eval194718.invoke(NO_SOURCE_FILE:33)
        [more stacktrace from the exception]
```

This is essentially just changing the log level. We can and perhaps
should change these back to debug or trace in the future but this is
useful for now.

Co-authored-by: dpsutton <dan@dpsutton.com>
2025-03-27 17:52:16 +00:00
github-automation-metabase
6b0275d053 fix: move classloader to init as soon as possible (#55786) (#55844)
Co-authored-by: Case Nelson <case@metabase.com>
2025-03-27 17:47:29 +00:00
github-automation-metabase
f3744891af Closes viz-447 disable text selection when dragging/resizing dashcards (#55528) (#55840)
* closes viz-447 disable text selection when dragging/resizing dashcards

* eslint

* fixed e2e

Co-authored-by: Sébastien <sebastien@metabase.com>
2025-03-27 16:55:42 +00:00
github-automation-metabase
0cb58ac63c Remove stack traces from SQLExceptions (#55765) (#55830)
Co-authored-by: Riley Thompson <riley@metabase.com>
2025-03-27 15:47:09 +00:00
github-automation-metabase
e5206899ed Ignore parameters targets with stage-number out of range (#55761) (#55826)
Co-authored-by: Alexander Polyankin <alexander.polyankin@metabase.com>
2025-03-27 15:33:44 +00:00
github-automation-metabase
ee2efb478e upgrade @octokit/rest to address ReDos vulnerabilities (metabase#351) (#55828) (#55833)
Co-authored-by: Sébastien <sebastien@metabase.com>
2025-03-27 15:23:18 +00:00
github-automation-metabase
ff41cff4b2 test: another fix for dashboard flaky test (#55759) (#55823)
* test: another fix for dashboard flaky test

* increase timeout

Co-authored-by: Uladzimir Havenchyk <125459446+uladzimirdev@users.noreply.github.com>
2025-03-27 14:46:01 +00:00
github-automation-metabase
d916662ad1 test: make dashboard flaky test more robust and stable (#55715) (#55819)
* test: make dashboard flaky test more robust and stable

* revert flaky

* add additional check

* fix that works locally

* revert prev version

* add missing line

Co-authored-by: Uladzimir Havenchyk <125459446+uladzimirdev@users.noreply.github.com>
2025-03-27 13:01:12 +00:00
github-automation-metabase
942f76dc04 test: make scrollable echarts tooltip stable (#55699) (#55818)
* test: make scrollable echarts tooltip stable

* make test better

Co-authored-by: Uladzimir Havenchyk <125459446+uladzimirdev@users.noreply.github.com>
2025-03-27 12:58:02 +00:00
github-automation-metabase
924a200d66 config.yml.sample (#55804) (#55815)
Co-authored-by: Alexander Solovyov <alexander@solovyov.net>
2025-03-27 12:11:08 +00:00
github-automation-metabase
6b83f4901f Update some function names to match modern casing (#55672) (#55812)
* Update some function names to match modern casing

* Fix test cases

* Update casing in docs for isEmpty, notEmpty, lTrim, rTrim, isNull, and notNull

* Fix isNull and isEmpty casing in tests

* Fix case in unit test

* Fix casing in e2e tests

Co-authored-by: Romeo Van Snick <romeo@romeovansnick.be>
2025-03-27 10:57:15 +00:00
Kamil Mielnik
6c8ba4e73d RFC 118. Prettier - arrowParens: “always” - v54 (#55808)
* Update .prettierrc
- remove "arrowParens": "avoid" so that it defaults to "always" instead

* Run "yarn prettier"
2025-03-27 09:33:49 +00:00
github-automation-metabase
373bdabd05 reverts #53898 (#55695) (#55800)
Co-authored-by: Sébastien <sebastien@metabase.com>
2025-03-27 06:27:26 +00:00
github-automation-metabase
96281ab55f Fix Slack channel couldn't be found when it's behind pagination (#55748) (#55802)
* Fix couldn't find Slack channel

When the first `conversations.list` doesn't return the Slack channel we
want, we need to continue to paginate until we found it.

* [debug] for testing

* Revert "[debug] for testing"

This reverts commit 67dd2c0405.

* Simplify logic



---------

Co-authored-by: Mahatthana (Kelvin) Nomsawadi <me@bboykelvin.dev>
Co-authored-by: Timofey Kachalov <timofei@metabase.com>
2025-03-27 06:08:47 +00:00
github-automation-metabase
0772450b82 Add group mappings in keycloak (#55775) (#55797)
* Add group mappings in keycloak

* Apply suggestions from code review

---------

Co-authored-by: Luis Paolini <paoliniluis@gmail.com>
Co-authored-by: Alex Yarosh <alexandra@metabase.com>
2025-03-27 02:06:13 +00:00
github-automation-metabase
360c044777 Don't load gsheets sync status component for non-admins (#55724) (#55788)
* don't load gsheets sync status for non-admins

* kick ci

Co-authored-by: Ryan Laurie <30528226+iethree@users.noreply.github.com>
2025-03-26 22:22:00 +00:00
github-automation-metabase
1770688567 Adjust jdbc-get-tables and probe query logging (#55658) (#55784)
Co-authored-by: lbrdnk <lbrdnk@users.noreply.github.com>
2025-03-26 20:48:31 +00:00
github-automation-metabase
1917278188 Update mongodb.md (#55789) (#55790)
Co-authored-by: Alex Yarosh <alexandra@metabase.com>
2025-03-26 20:44:56 +00:00
github-automation-metabase
27c04f6216 feat: Bring starburst driver in house (#55123) (#55782)
* feat: Bring starburst driver in house

* Fixing lints and github service

* Fix kondo and reflection warnings

* Fix some tests

* Fixing tests

* Fix database check test

* Fix tests

* Hide impersonation

* Cleanup

* Cleanup kondo override

* Add License

* Update modules/drivers/starburst/test/metabase/test/data/starburst.clj



* Update modules/drivers/starburst/test/metabase/test/data/starburst.clj



* Update modules/drivers/starburst/test/metabase/test/data/starburst.clj



* Address Review comments

* Better exception messages

* Fix source version for metabase

* Fix source test

---------

Co-authored-by: Case Nelson <case@metabase.com>
Co-authored-by: Riley Thompson <riley@metabase.com>
2025-03-26 20:27:00 +00:00
github-automation-metabase
dfe961018b docs - alert updates (#54623) (#55787)
* update question caching

* update alerts

* remove images

* notifications

* add supported schedules

* edits

Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-03-26 20:25:46 +00:00
github-automation-metabase
3b4c701a9b remove outdated snapshots (#55663) (#55776)
Co-authored-by: Aleksandr Lesnenko <alxnddr@users.noreply.github.com>
2025-03-26 19:28:46 +00:00
github-automation-metabase
ba12cf857b Translate comparison text for smart scalars on the BE (#55722) (#55770)
* Translate comparison text for smart scalars on the BE

* lint

* add back space

* refactor

Co-authored-by: Noah Moss <32746338+noahmoss@users.noreply.github.com>
2025-03-26 19:17:02 +00:00
github-automation-metabase
af0fa56351 feat: use semi-join for collection permissions (#55727) (#55767)
Improve the performance of the collection permission query by using a
semi-join instead of an inner join to the permission tables. This
ensures each collection only needs to be tested once for a route that
gives a user permission to access it rather than multiple times.

This reduces the query time for users that are members of lots of
collections since we dont need postgresql to create large join tables or
return the same collection id more than once from this query.

Co-authored-by: Edward Paget <edpaget@users.noreply.github.com>
2025-03-26 19:14:19 +00:00
github-automation-metabase
6023d6fc14 Remove JS from mongo queries (#55499) (#55760)
Co-authored-by: Riley Thompson <riley@metabase.com>
2025-03-26 15:31:18 +00:00
github-automation-metabase
5a8d600695 test: skip flaky calendar test as it is broken (#55689) (#55757)
Co-authored-by: Uladzimir Havenchyk <125459446+uladzimirdev@users.noreply.github.com>
2025-03-26 14:10:14 +00:00
github-automation-metabase
87a96bc85b Operator prefix suggestions (#55697) (#55750)
* Match functions even when the current token is an identifier

* Add repro for metabase#55686

* Use existing function in test

Co-authored-by: Romeo Van Snick <romeo@romeovansnick.be>
2025-03-26 09:44:17 +00:00
github-automation-metabase
63b2a5e44e Add Expressionable type (#55683) (#55747)
* Add Expressionable

* Accept Lib.Expressionable in expression editor

* Remove type casts in AggregationPicker and FilterPicker

Co-authored-by: Romeo Van Snick <romeo@romeovansnick.be>
2025-03-26 08:06:30 +00:00
github-automation-metabase
ba920a4bd1 Update Readme version references and published npm version to 0.54.4-nightly (#55745) 2025-03-26 06:59:27 +00:00
github-automation-metabase
944312af8a ci(sdk): make 54 the latest in release workflow (#55741) (#55742)
Co-authored-by: Mahatthana (Kelvin) Nomsawadi <me@bboykelvin.dev>
2025-03-26 06:18:10 +00:00
github-automation-metabase
d667a32636 fix: add index to field_usage query_execution_id (#55712) (#55738)
* fix: add index to field_usage query_execution_id

Supports faster deletes on the query_execution table. Without this index
deleting rows from that table leads to a seq scan on the field usage
table for each row deleted to handle the ON DELETE CASCADE trigger.

* fixup! drop empty preconditions

Co-authored-by: Edward Paget <edpaget@users.noreply.github.com>
2025-03-26 01:56:46 +00:00
github-automation-metabase
3dc593c866 🤖 backported "fix: reset connection pool after app-db tz change" (#55717)
* fix: reset connection pool after app-db tz change (#55567)

* fix: kick ci

---------

Co-authored-by: Edward Paget <edpaget@users.noreply.github.com>
Co-authored-by: Edward Paget <ed.paget@gmail.com>
2025-03-25 23:45:29 +00:00
github-automation-metabase
913011a7ba update athena to 3.5.0 (#55391) (#55702)
Co-authored-by: Alexander Solovyov <alexander@solovyov.net>
2025-03-25 23:23:18 +00:00
github-automation-metabase
44e4e2eaa1 docs - expression updates (#55645) (#55711)
Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-03-25 16:13:17 +00:00
github-automation-metabase
a141a5159e remove smoke test (#55655) (#55693)
Co-authored-by: Ryan Laurie <30528226+iethree@users.noreply.github.com>
2025-03-25 14:32:38 +00:00
github-automation-metabase
40b9796bb9 Closes viz-456: decimals setting not being honored compact formatting (#55181) (#55677)
* closes viz-456 decimals not being honored compact formatting

* fixup

* .

Co-authored-by: Sébastien <sebastien@metabase.com>
2025-03-25 13:39:12 +00:00
github-automation-metabase
3f45c5f916 Update e2e-tests.md (#55676) (#55681)
Co-authored-by: Alex Yarosh <alexandra@metabase.com>
2025-03-25 12:51:49 +00:00
github-automation-metabase
94d9a05d6a update cypress and some of its dependencies to the latest version (#55614) (#55671)
Co-authored-by: Filip Hric <filip@filiphric.sk>
2025-03-25 10:58:30 +00:00
github-automation-metabase
0d0821414d Baseline-align text in NativeQueryClickFallback (#55653) (#55661)
Co-authored-by: Noah Moss <32746338+noahmoss@users.noreply.github.com>
2025-03-24 23:29:01 +00:00
github-automation-metabase
4404627af3 Return 5000 unique user attribute keys (#55649) (#55659)
Previously we looked at 1000 users and got the set of unique user
attribute names from them. So if 1000 users each had a `name` and user
1001 had `some-other-attribute`, we would give you back `name` as the
complete set of available attributes.

This modifies the magic number (to 5000 from 1000) and the logic. We
select the first 5000 unique *attributes*. So if 1000 users each have a
`name`, that only counts as 1, and we'll continue looking for other
unique attributes before returning to the client.

Co-authored-by: John Swanson <john.swanson@metabase.com>
2025-03-24 22:41:41 +00:00
github-automation-metabase
c73cb49e17 Add constraints to key (#55211) (#55656)
Implemented validation that ensures API keys when created with config.yml:
Start with the mb_ prefix
Have a minimum length of 12 characters and max 254
Prefix (first 7 characters) must be unique
String must be Base64

Co-authored-by: Luiz Arakaki <luiz.arakaki@metabase.com>
2025-03-24 21:45:13 +00:00
Jeff Bruemmer
db508fd14b api docs (#55652) 2025-03-24 19:22:24 +00:00
github-automation-metabase
0682cef7a5 Add hover effect for dirty query state (#55627) (#55648)
* Add

* Hover effect

* Remove unused compact prop

* Remove unused borderless prop

* Rename className

* Rename className

* Fix circular button padding and icon

* Fix circular button padding and icon

* Fix circular button padding and icon

* Fix circular button padding and icon

* Fix circular button padding and icon

* Fix circular button padding and icon

Co-authored-by: Alexander Polyankin <alexander.polyankin@metabase.com>
2025-03-24 17:22:57 +00:00
Ryan Laurie
401ed5c8ae Gsheets frontend refactoring (#55564) (#55636)
* rename and reorganize

# Conflicts:
#	enterprise/frontend/src/metabase-enterprise/google_drive/GdriveConnectionModal.tsx
#	enterprise/frontend/src/metabase-enterprise/google_drive/GdriveSyncStatus.tsx

* resolve conflicts

* oops forgot one
2025-03-24 10:19:08 -06:00
4120 changed files with 229188 additions and 162888 deletions

View File

@@ -204,6 +204,7 @@
:sparksql
:sqlite
:sqlserver
:starburst
:vertica}}
;;
@@ -274,6 +275,7 @@
compojure.core/context {:message "Use metabase.api.util.handlers/route-map-handler instead of compojure.core/context, it is much faster and supports OpenAPI spec generation"}
compojure.core/defroutes {:message "Use metabase.api.util.handlers/defroutes instead of compojure.core/routes, it supports OpenAPI spec generation."}
compojure.core/routes {:message "Use metabase.api.util.handlers/routes instead of compojure.core/routes, it supports OpenAPI spec generation."}
clojurewerkz.quartzite.jobs/defjob {:message "Use metabase.task/defjob instead of clojurewerkz.quartzite.jobs/defjob"}
fipp.edn/pprint {:message "Use metabase.util.log instead of fipp.edn/pprint"}
honeysql.core/call {:message "Use hx/call instead because it is Honey SQL 2 friendly"}
honeysql.core/raw {:message "Use hx/raw instead because it is Honey SQL 2 friendly"}
@@ -299,7 +301,7 @@
honeysql.types {:message "Use Honey SQL 2. Honey SQL 1 is removed as a dependency in Metabase 49+."}
honeysql.util {:message "Use Honey SQL 2. Honey SQL 1 is removed as a dependency in Metabase 49+."}}
:discouraged-tag {p {:message "You can use it, but don't commit it." }}
:discouraged-tag {p {:message "You can use it, but don't commit it."}}
:unresolved-var
{:exclude
@@ -569,6 +571,7 @@
metabase.sso.ldap/with-ldap-connection clojure.core/fn
metabase.sync.util/sum-for clojure.core/for
metabase.sync.util/with-emoji-progress-bar clojure.core/let
metabase.task/defjob clojure.core/defn
metabase.test.data.interface/defdataset clojure.core/def
metabase.test.data.interface/defdataset-edn clojure.core/def
metabase.test/defdataset clojure.core/def
@@ -636,6 +639,7 @@
metabase.api.embed-test/with-temp-dashcard hooks.common/let-one-with-optional-value
metabase.api.macros/defendpoint hooks.metabase.api.macros/defendpoint
metabase.api.user-test/with-temp-user-email! hooks.common/with-one-binding
metabase.channel.render.js.svg/with-static-viz-context hooks.common/with-one-top-level-binding
metabase.channel.template.handlebars-helper/defhelper hooks.metabase.channel.template.handlebars-helper/defhelper
metabase.channel.template.handlebars-test/with-temp-template! hooks.common/with-vec-first-binding
metabase.dashboard-subscription-test/with-link-card-fixture-for-dashboard hooks.common/let-second
@@ -769,6 +773,7 @@
metabase.public-sharing.api-test/with-sharing-enabled-and-temp-dashcard-referencing! macros.metabase.public-sharing.api-test/with-sharing-enabled-and-temp-dashcard-referencing!
metabase.query-analysis.task.test-setup/with-test-setup! macros.metabase.query-analysis.task.test-setup/with-test-setup!
metabase.query-processor.streaming/streaming-response macros.metabase.query-processor.streaming/streaming-response
metabase.server.statistics-handler-test/with-server macros.metabase.server.statistics-handler-test/with-server
metabase.test.data.users/with-group-for-user macros.metabase.test.data.users/with-group-for-user
metabase.test.util/with-temp-env-var-value! macros.metabase.test.util/with-temp-env-var-value!
metabase.test.util/with-temporary-raw-setting-values macros.metabase.test.util/with-temporary-raw-setting-values

View File

@@ -123,7 +123,7 @@
{:api #{metabase.cloud-migration.api
metabase.cloud-migration.core
metabase.cloud-migration.init}
:uses #{api cmd config db models premium-features util}}
:uses #{api cmd config db models premium-features task util}}
cmd
{:api #{metabase.cmd
@@ -219,7 +219,7 @@
:uses #{events models util}}
internal-stats
{:api #{metabase.internal-stats}
{:api #{metabase.internal-stats.core}
:uses #{db models}}
legacy-mbql
@@ -516,7 +516,7 @@
metabase.search.ingestion
metabase.search.init
metabase.search.spec}
:uses #{analytics api audit config db driver models permissions premium-features public-settings request task util}}
:uses #{analytics api audit config db driver events models permissions premium-features public-settings request startup task util}}
segments
{:api #{metabase.segments.api}
@@ -560,6 +560,10 @@
metabase.sso.init}
:uses #{api models permissions premium-features util}}
startup
{:api #{metabase.startup.core}
:uses #{util}}
sync
{:api #{metabase.sync.api
metabase.sync.core
@@ -612,7 +616,7 @@
util
{:api :any
:uses #{config driver legacy-mbql lib models plugins premium-features public-settings}}
:uses #{config db driver legacy-mbql lib models plugins premium-features public-settings}}
xrays
{:api #{metabase.xrays.api metabase.xrays.core}
@@ -620,7 +624,8 @@
enterprise/advanced-config
{:api #{metabase-enterprise.advanced-config.api.logs
metabase-enterprise.advanced-config.models.pulse-channel
metabase-enterprise.advanced-config.init
metabase-enterprise.advanced-config.models.notification
metabase-enterprise.advanced-config.file
metabase-enterprise.advanced-config.crufty}
:uses #{api db driver models permissions premium-features setup sync util}}
@@ -674,7 +679,7 @@
enterprise/core
{:api #{metabase-enterprise.core.init}
:uses #{enterprise/enhancements}}
:uses #{enterprise/advanced-config enterprise/enhancements}}
enterprise/dashboard-subscription-filters
{:api #{}
@@ -697,6 +702,10 @@
metabase-enterprise.impersonation.api}
:uses #{api audit driver enterprise/sandbox lib models permissions premium-features query-processor util}}
enterprise/internal-stats
{:api #{metabase-enterprise.internal-stats}
:uses #{models premium-features}}
enterprise/llm
{:api #{metabase-enterprise.llm.api}
:uses #{analytics analyze api models query-processor util}}

View File

@@ -0,0 +1,9 @@
(ns macros.metabase.server.statistics-handler-test)
(defmacro with-server
[_ _ [connector chan-start-handle chan-finish-handle chan-done-request] & body]
`(let [~connector nil
~chan-start-handle nil
~chan-finish-handle nil
~chan-done-request nil]
~@body))

View File

@@ -300,6 +300,7 @@
metabase.util.malli/with [[:default]]
metabase.util.malli/with-api-error-message [[:default]]
metabase.util.namespaces/import-fns [[:default]]
metabase.util.queue-test/await-test-while [[:block 1]]
metabuild-common.core/exit-when-finished-nonzero-on-exception [[:block 0]]
metabuild-common.core/step [[:block 1]]
metabuild-common.entrypoint/exit-when-finished-nonzero-on-exception [[:block 0]]

View File

@@ -6,7 +6,7 @@
// can use this flag to enable it. This is set to true in CI
const shouldLintCssModules =
process.env.LINT_CSS_MODULES === "true" || process.env.CI;
const plugins = ["react", "no-only-tests"];
const plugins = ["react", "no-only-tests", "ttag", "i18next"];
if (shouldLintCssModules) {
plugins.push("postcss-modules");
}
@@ -149,6 +149,7 @@ module.exports = {
"plugin:import/typescript",
"plugin:depend/recommended",
"plugin:storybook/recommended",
"plugin:i18next/recommended",
],
settings: {
"import/internal-regex": "^metabase/|^metabase-lib/",
@@ -201,6 +202,8 @@ module.exports = {
"e2e/**/*",
"**/tests/*",
"release/**/*",
"webpack.config.js",
"rspack.config.js",
],
rules: {
"no-color-literals": "off",
@@ -208,6 +211,22 @@ module.exports = {
"no-literal-metabase-strings": "off",
},
},
{
files: [
"*.unit.spec.*",
"frontend/lint/**/*",
"*.stories.*",
"stories-data.*",
"e2e/**/*",
"**/tests/*",
"release/**/*",
"webpack.config.js",
"rspack.config.js",
],
rules: {
"i18next/no-literal-string": "off",
},
},
{
extends: ["plugin:@typescript-eslint/recommended"],
files: ["*.ts", "*.tsx"],
@@ -255,6 +274,13 @@ module.exports = {
],
rules: {
"jest/valid-title": ["error", { ignoreTypeOfDescribeName: true }],
"jest/expect-expect": [
"error",
{
assertFunctionNames: ["expect*", "assert*"],
additionalTestBlockFunctions: [],
},
],
},
},
{
@@ -284,7 +310,7 @@ module.exports = {
selector: "Literal[value=/mb-base-color-/]",
message:
"You may not use base colors in the application, use semantic colors instead. (see colors.module.css)",
}
},
],
},
},

8
.github/CODEOWNERS vendored
View File

@@ -1,10 +1,10 @@
# Before changing this file, make sure you have read how we use it:
# https://www.notion.so/metabase/Pull-Request-Code-Review-Guide-374f05df889748b69d67af753f9bc9b8?pvs=4#36550c04ceab40b5a8b8bee6264b090c
enterprise/frontend/src/embedding-sdk @metabase/embedding
frontend/src/metabase/embedding-sdk @metabase/embedding
frontend/src/metabase/public/containers/PublicOrEmbeddedQuestion @metabase/embedding
frontend/src/metabase/public/containers/PublicOrEmbeddedDashboard @metabase/embedding
# enterprise/frontend/src/embedding-sdk @metabase/embedding
# frontend/src/metabase/embedding-sdk @metabase/embedding
# frontend/src/metabase/public/containers/PublicOrEmbeddedQuestion @metabase/embedding
# frontend/src/metabase/public/containers/PublicOrEmbeddedDashboard @metabase/embedding
frontend/src/metabase/ui @metabase/core-frontend-admin-webapp
# snowplow/* @metabase/data

View File

@@ -72,27 +72,31 @@ runs:
return extraDrivers;
- name: Download Firebolt driver
if: ${{ fromJson(steps.drivers_registry.outputs.result).firebolt != 'noop' }}
run: |
curl -OL ${{ fromJson(steps.drivers_registry.outputs.result).firebolt }}
working-directory: modules
shell: bash
- name: Download Starburst driver
if: ${{ fromJson(steps.drivers_registry.outputs.result).starburst != 'noop' }}
run: |
curl -OL ${{ fromJson(steps.drivers_registry.outputs.result).starburst }}
shell: bash
working-directory: modules
- name: Download Clickhouse driver
if: ${{ fromJson(steps.drivers_registry.outputs.result).clickhouse != 'noop' }}
run: |
curl -OL ${{ fromJson(steps.drivers_registry.outputs.result).clickhouse }}
shell: bash
working-directory: modules
- name: Download Materialize driver
if: ${{ fromJson(steps.drivers_registry.outputs.result).materialize != 'noop' }}
run: |
curl -OL ${{ fromJson(steps.drivers_registry.outputs.result).materialize }}
shell: bash
working-directory: modules
- name: Bundle additional drivers into the Uberjar
run: jar uf bin/docker/metabase.jar modules/*.jar
run: if test -n "$(find modules -maxdepth 1 -name '*.jar' -print -quit)"; then jar uf bin/docker/metabase.jar modules/*.jar; fi
shell: bash
- name: Launch uberjar
run: >-

View File

@@ -46,7 +46,7 @@ runs:
echo "git reset HEAD~1" > ./backport.sh
echo "rm ./backport.sh" >> ./backport.sh
echo "git cherry-pick ${COMMIT}" >> ./backport.sh
echo "echo 'Resolve conflicts and force push this branch'" >> ./backport.sh
echo "echo 'Resolve conflicts and force push this branch.\n\nTo backport translations run: bin/i18n/merge-translations <release-branch>'" >> ./backport.sh
chmod +x ./backport.sh
git add ./backport.sh
git commit -m "Add backport resolution script"

View File

@@ -1,5 +1,13 @@
name: Notify Pull Request
inputs:
remove-previous-comment:
required: false
type: boolean
default: false
add-new-comment:
required: false
type: boolean
default: true
message:
required: true
include-log:
@@ -9,7 +17,44 @@ inputs:
runs:
using: "composite"
steps:
- uses: actions/github-script@v7
- name: Remove previous pull-request comment
uses: actions/github-script@v7
if: ${{ inputs.remove-previous-comment == 'true' && always() && github.event_name == 'pull_request' }}
with:
script: |
const pr = context.payload.pull_request ?? context.payload.issue;
if (!pr) {
console.error("This action can only be run on pull requests");
return;
}
const { owner, repo } = context.repo;
const { data: comments } = await github.rest.issues.listComments({
owner,
repo,
issue_number: pr.number,
}).catch(console.error);
if (!comments) {
return;
}
const message = "${{ inputs.message }}";
const comment = comments.find((comment) => comment.body.includes(message));
if (comment) {
await github.rest.issues.deleteComment({
owner,
repo,
comment_id: comment.id,
});
}
- name: Notify pull-request
uses: actions/github-script@v7
if: ${{ inputs.add-new-comment == 'true' && always() && github.event_name == 'pull_request' }}
id: notify-pull-request
with:
result-encoding: string
@@ -21,7 +66,7 @@ runs:
return;
}
const message = "${{ inputs.message }}"
const message = "${{ inputs.message }}";
const shouldIncludeLog = ${{ inputs.include-log }}.toString() === "true";
const author = context.payload.sender.login;

View File

@@ -1,6 +1,12 @@
name: Prepare cypress environment
description: Cypress preparation steps
inputs:
working-directory:
description: "Optional working directory for yarn commands"
required: false
default: "."
outputs:
chrome-path:
description: Path to the custom Chrome executable
@@ -33,3 +39,4 @@ runs:
yarn cypress cache list
yarn cypress verify
shell: bash
working-directory: ${{ inputs.working-directory }}

View File

@@ -18,6 +18,9 @@ inputs:
required: true
trunk-api-token:
required: true
variant:
required: false
default: ''
runs:
using: "composite"
@@ -49,6 +52,7 @@ runs:
uses: trunk-io/analytics-uploader@main
with:
junit-paths: ${{ inputs.input-path }}
variant: ${{ inputs.variant || inputs.output-name }}
org-slug: metabase
token: ${{ inputs.trunk-api-token }}
continue-on-error: true

View File

@@ -32,7 +32,7 @@ frontend_sources: &frontend_sources
- ".nvmrc"
frontend_embedding_sdk_sources:
- "enterprise/frontend/src/embedding-sdk/**"
- *frontend_sources
frontend_specs: &frontend_specs
- *shared_specs
@@ -108,9 +108,6 @@ e2e_ci: &e2e_ci
e2e_specs: &e2e_specs
- "**/*.cy.*.js"
- "**/*.cy.*.ts"
- "e2e/runner/**"
- "e2e/support/**"
- "e2e/snapshot*/**"
e2e_cross_version: &e2e_cross_version
- ".github/workflows/e2e-cross-version.yml"
@@ -121,12 +118,16 @@ e2e_all:
- *e2e_ci
- *sources
- *e2e_specs
- "e2e/runner/**"
- "e2e/support/**"
- "e2e/snapshot*/**"
snowplow:
- ".github/workflows/snowplow.yml"
- "snowplow/**"
documentation:
- ".typedoc/**"
- "docs/**"
- "**/*.md"

13
.github/team.json vendored
View File

@@ -19,7 +19,8 @@
"label": ".Team/SemanticLayer",
"members": [
"kamilmielnik",
"lbrdnk"
"lbrdnk",
"bronsa"
]
},
{
@@ -76,7 +77,8 @@
"kulyk",
"tsplude",
"lorem--ipsum",
"noahmoss"
"noahmoss",
"bpander"
]
},
{
@@ -86,6 +88,13 @@
"camsaul",
"escherize"
]
},
{
"name": "Metabot",
"label": ".Team/Metabot",
"members": [
"somtom"
]
}
]
}

View File

@@ -18,7 +18,7 @@ jobs:
uses: actions/checkout@v4
- name: Set up Babashka
uses: turtlequeue/setup-babashka@v1
uses: turtlequeue/setup-babashka@v1.7.0
with:
babashka-version: 1.12.197
@@ -34,5 +34,5 @@ jobs:
- name: Verify deployment
run: |
echo "Athena JDBC driver version ${{ github.event.inputs.version }} has been deployed"
aws s3 ls s3://metabase-maven-downloads/com/metabase/athena-jdbc/${{ github.event.inputs.version }}/
echo "Athena JDBC driver version ${{ github.event.inputs.version }} has been deployed"

View File

@@ -53,13 +53,13 @@ jobs:
- name: Setup Babashka
uses: turtlequeue/setup-babashka@v1.7.0
with:
babashka-version: 1.12.196
babashka-version: 1.12.197
- name: Check bb runs
run: bb --version
- name: bb task list
run: bb tasks
- name: Run mage tests
run: bb ./test/mage/core_test.clj
run: bb ./test/mage/runtests.clj
be-tests:
if: ${{ !inputs.skip }}

View File

@@ -18,7 +18,6 @@ jobs:
timeout-minutes: 3
outputs:
frontend_all: ${{ steps.changes.outputs.frontend_all }}
e2e_specs: ${{ steps.changes.outputs.e2e_specs }}
steps:
- uses: actions/checkout@v4
- name: Test which files changed

View File

@@ -0,0 +1,37 @@
name: Docs Bump Detected
on:
pull_request_target:
types:
- opened
- synchronize
- reopened
branches:
- 'master'
- 'release-x.[0-9]+.x'
paths:
- 'docs/**'
jobs:
push_workflow_to_docs_metabase_github_io_job:
runs-on: ubuntu-latest
env:
SOURCE_BRANCH: ${{ github.head_ref || github.ref }}
TARGET_BRANCH: ${{ github.event.pull_request.base.ref }}
steps:
- name: Report changed docs files exist
run: |
echo "A change in the docs directory was detected."
- name: Trigger repo dispatch
uses: actions/github-script@v7
with:
github-token: ${{ secrets.METABASE_AUTOMATION_USER_TOKEN }}
script: | #js
github.rest.repos.createDispatchEvent({
owner: "${{ github.repository_owner }}",
repo: "docs.metabase.github.io",
event_type: "docs_update",
client_payload: {
source_branch: process.env.SOURCE_BRANCH,
target_branch: process.env.TARGET_BRANCH}});

View File

@@ -0,0 +1,36 @@
name: Docs Merge Detected
on:
pull_request:
types:
- closed
branches:
- 'master'
- 'release-x.[0-9]+.x'
paths:
- 'docs/**'
jobs:
push_and_merge_workflow_to_docs_metabase_github_io_job:
if: github.event.pull_request.merged == true
runs-on: ubuntu-latest
env:
SOURCE_BRANCH: ${{ github.head_ref || github.ref }}
TARGET_BRANCH: ${{ github.event.pull_request.base.ref }}
steps:
- name: Report changed docs files exist
run: |
echo "A PR with changes to the docs directory was merged."
- name: Trigger repo dispatch
uses: actions/github-script@v7
with:
github-token: ${{ secrets.METABASE_AUTOMATION_USER_TOKEN }}
script: | #js
github.rest.repos.createDispatchEvent({
owner: "${{ github.repository_owner }}",
repo: "docs.metabase.github.io",
event_type: "docs_merge",
client_payload: {
source_branch: process.env.SOURCE_BRANCH,
target_branch: process.env.TARGET_BRANCH}});

View File

@@ -42,6 +42,7 @@ on:
- SQLite
- SQL Server 2017
- SQL Server 2022
- Starburst
- Vertica
jobs:
@@ -663,6 +664,31 @@ jobs:
junit-name: 'be-tests-sqlserver-2022-ee'
test-args: ":only ${{ inputs.test }} :times ${{ inputs.times }}"
be-tests-starburst-ee:
if: inputs.driver == 'Starburst'
runs-on: ubuntu-22.04
timeout-minutes: 90
env:
CI: 'true'
DRIVERS: starburst
services:
starburst:
image: trinodb/trino:latest
env:
CATALOG_MANAGEMENT: dynamic
ports:
- "8080:8080"
name: Starburst
steps:
- uses: actions/checkout@v4
- name: Make plugins directory
run: mkdir plugins
- name: Test Starburst driver
uses: ./.github/actions/test-driver
with:
junit-name: 'be-tests-starburst-ee'
test-args: ":only ${{ inputs.test }} :times ${{ inputs.times }}"
be-tests-vertica-ee:
if: inputs.driver == 'Vertica'
runs-on: ubuntu-22.04

View File

@@ -932,6 +932,43 @@ jobs:
aws-region: ${{ vars.AWS_REGION }}
trunk-api-token: ${{ secrets.TRUNK_API_TOKEN }}
be-tests-starburst-ee:
if: ${{ !inputs.skip }}
runs-on: ubuntu-22.04
timeout-minutes: 60
env:
CI: 'true'
DRIVERS: starburst
services:
starburst:
image: trinodb/trino:latest
env:
CATALOG_MANAGEMENT: dynamic
ports:
- "8080:8080"
name: Starburst
steps:
- uses: actions/checkout@v4
- name: Make plugins directory
run: mkdir plugins
- name: Test Starburst driver
uses: ./.github/actions/test-driver
with:
junit-name: 'be-tests-starburst-ee'
test-args: >-
:only-tags [:mb/driver-tests]
- name: Upload Test Results
uses: ./.github/actions/upload-test-results
if: always()
with:
input-path: ./target/junit/
output-name: ${{ github.job }}
bucket: ${{ vars.AWS_S3_TEST_RESULTS_BUCKET }}
aws-access-key-id: ${{ secrets.AWS_TEST_RESULTS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_TEST_RESULTS_SECRET_ACCESS_KEY }}
aws-region: ${{ vars.AWS_REGION }}
trunk-api-token: ${{ secrets.TRUNK_API_TOKEN }}
be-tests-vertica-ee:
if: ${{ !inputs.skip }}
runs-on: ubuntu-22.04
@@ -1035,6 +1072,7 @@ jobs:
- be-tests-sparksql-ee
- be-tests-sqlite-ee
- be-tests-sqlserver
- be-tests-starburst-ee
- be-tests-vertica-ee
- be-tests-clickhouse-ee
runs-on: ubuntu-latest

View File

@@ -1,17 +1,7 @@
name: E2E Cross-version Component Tests for Embedding SDK
on:
push:
branches:
- "release-**"
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
branches:
- "release-**"
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref && github.ref || github.run_id }}
cancel-in-progress: true
workflow_call:
jobs:
files-changed:
@@ -66,8 +56,7 @@ jobs:
build:
needs: [files-changed, get-build-requirements]
if: |
!cancelled() &&
github.event.pull_request.draft == false
!cancelled()
runs-on: ubuntu-22.04
timeout-minutes: 25
env:
@@ -93,7 +82,7 @@ jobs:
- name: Prepare uberjar artifact
uses: ./.github/actions/prepare-uberjar-artifact
with:
name: metabase-ee-${{ github.event.pull_request.head.sha || github.sha }}-uberjar
name: metabase-ee-${{ github.event.pull_request.head.sha || github.sha }}-uberjar-cross-version
resolve-sdk-version:
if: |
@@ -175,7 +164,7 @@ jobs:
- name: Retrieve uberjar artifact for ee
uses: actions/download-artifact@v4
with:
name: metabase-ee-${{ github.event.pull_request.head.sha || github.sha }}-uberjar
name: metabase-ee-${{ github.event.pull_request.head.sha || github.sha }}-uberjar-cross-version
- name: Prepare front-end environment
uses: ./.github/actions/prepare-frontend

View File

@@ -2,6 +2,10 @@ name: E2E Component Tests for Embedding SDK
on:
workflow_call:
inputs:
cached-embedding-sdk-dist-artifact-name:
required: true
type: string
jobs:
files-changed:
@@ -88,45 +92,11 @@ jobs:
with:
name: metabase-ee-${{ github.event.pull_request.head.sha || github.sha }}-uberjar
build-embedding-sdk:
needs: [files-changed, get-build-requirements]
if: |
!cancelled() &&
needs.files-changed.outputs.e2e_all == 'true'
runs-on: ubuntu-22.04
timeout-minutes: 15
env:
MB_EDITION: ee
steps:
- uses: actions/checkout@v4
- name: Prepare front-end environment
uses: ./.github/actions/prepare-frontend
- name: Prepare back-end environment
uses: ./.github/actions/prepare-backend
with:
m2-cache-key: "cljs"
- name: Compile CLJS
run: yarn build-pure:cljs
shell: bash
- name: Build Embedding SDK package
run: yarn build-embedding-sdk
- name: Upload Embedding SDK artifact
uses: actions/upload-artifact@v4
with:
name: embedding-sdk-build
path: resources/embedding-sdk
e2e-tests:
needs: [get-build-requirements, build-uberjar, build-embedding-sdk]
needs: [get-build-requirements, build-uberjar]
if: |
!cancelled() &&
needs.build-uberjar.result == 'success' &&
needs.build-embedding-sdk.result == 'success'
needs.build-uberjar.result == 'success'
runs-on: ubuntu-22.04
timeout-minutes: 45
strategy:
@@ -179,11 +149,11 @@ jobs:
with:
m2-cache-key: "cljs"
- name: Download Embedding SDK artifact
- name: Retrieve Embedding SDK dist artifact
uses: actions/download-artifact@v4
with:
name: embedding-sdk-build
path: resources/embedding-sdk
name: ${{ inputs.cached-embedding-sdk-dist-artifact-name }}
path: ${{ github.workspace }}/resources/embedding-sdk
- name: Run Metabase
run: node e2e/runner/run_cypress_ci.js start

View File

@@ -0,0 +1,155 @@
name: E2E Cross-version Tests
on:
workflow_dispatch:
inputs:
fe-ref:
description: "Frontend git ref to use"
type: string
required: true
default: "master"
be-ref:
description: "Backend git ref to use"
type: string
required: true
default: "master"
total-shards:
description: "Total number of parallel test shards"
type: number
required: false
default: 4
workflow_call:
inputs:
fe-ref:
description: "Frontend git ref to use"
type: string
required: true
be-ref:
description: "Backend git ref to use"
type: string
required: true
total-shards:
description: "Total number of parallel test shards"
type: number
required: false
default: 4
jobs:
generate-matrix:
runs-on: ubuntu-latest
outputs:
matrix_json: ${{ steps.set_matrix.outputs.matrix_json }}
shards_total: ${{ steps.set_matrix.outputs.shards_total }}
steps:
- name: Set up shard matrix
id: set_matrix
uses: actions/github-script@v7
with:
# generate an output like `{"matrixJson": "{\"shard\": [1, 2, 3, 4]}", "shardsTotal": 4}` to be used in the other jobs
script: |
const totalShards = parseInt(process.env.TOTAL_SHARDS_INPUT, 10);
const matrix = { shard: Array.from({ length: totalShards }, (_, i) => i + 1) };
console.log("Generated matrix JSON", matrix);
console.log(`Total shards: ${totalShards}`);
core.setOutput('matrix_json', JSON.stringify(matrix));
core.setOutput('shards_total', totalShards);
env:
TOTAL_SHARDS_INPUT: ${{ inputs.total-shards }}
build-jar:
runs-on: ubuntu-22.04
timeout-minutes: 45
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Prepare Node.js
# We're not using `actions/prepare-frontend` because we don't want to install deps from the root repo
# nor we want to touch the cache as we'll be potentially be installing different versions of packages
uses: actions/setup-node@v4
with:
node-version-file: ".nvmrc"
- name: Prepare back-end environment
uses: ./.github/actions/prepare-backend
with:
m2-cache-key: cross-version-uberjar
- name: Build jar with different frontend and backend version
env:
MB_EDITION: ee
CYPRESS_CI: true
run: |
node bin/backward-compatibility-test.js \
${{ inputs.fe-ref }} ${{ inputs.be-ref }} \
build
- name: Upload Uberjar
uses: actions/upload-artifact@v4
with:
name: metabase-jar-cross-version
path: .tmp/metabase-be/target/uberjar/metabase.jar
if-no-files-found: error
run-breaking-changes-tests:
needs: [build-jar, generate-matrix]
runs-on: ubuntu-22.04
timeout-minutes: 45
env:
TOTAL_SHARDS: ${{ needs.generate-matrix.outputs.shards_total }}
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.generate-matrix.outputs.matrix_json) }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Prepare Node.js
uses: actions/setup-node@v4
with:
node-version-file: ".nvmrc"
- name: Prepare back-end environment
uses: ./.github/actions/prepare-backend
with:
m2-cache-key: cross-version-uberjar
- name: Download Uberjar
uses: actions/download-artifact@v4
with:
name: metabase-jar-cross-version
path: .tmp/metabase-be/target/uberjar/
- name: Download FE repo
run: |
git clone --depth 1 -b ${{ inputs.fe-ref }} https://github.com/metabase/metabase.git .tmp/metabase-fe
- name: Install FE dependencies
working-directory: .tmp/metabase-fe
run: |
yarn install
- name: Prepare Cypress environment
id: cypress-prep
uses: ./.github/actions/prepare-cypress
with:
working-directory: .tmp/metabase-fe
- name: Run the tests
env:
MB_EDITION: ee
CYPRESS_ALL_FEATURES_TOKEN: ${{ secrets.ENTERPRISE_TOKEN }}
CYPRESS_NO_FEATURES_TOKEN: ${{ secrets.E2E_STARTER_TOKEN }}
CYPRESS_CI: true
run: |
node bin/backward-compatibility-test.js \
${{ inputs.fe-ref }} ${{ inputs.be-ref }} \
start > /dev/null & \
node bin/backward-compatibility-test.js \
${{ inputs.fe-ref }} ${{ inputs.be-ref }} \
test ${{ matrix.shard}}/${{ env.TOTAL_SHARDS }}

View File

@@ -24,8 +24,8 @@ env:
[
"shoppy-e2e"
]
SAMPLE_APP_MAIN_BRANCH_NAME: 'main'
SAMPLE_APP_STABLE_RELEASE_BRANCH_NAME_SUFFIX: 'stable'
SAMPLE_APP_MAIN_BRANCH_NAME: "main"
SAMPLE_APP_STABLE_RELEASE_BRANCH_NAME_SUFFIX: "stable"
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref && github.ref || github.run_id }}
@@ -150,7 +150,6 @@ jobs:
needs: [files-changed, get-build-requirements, get-sample-apps-data]
if: |
!cancelled() &&
github.event.pull_request.draft == false &&
needs.files-changed.outputs.e2e_all == 'true' &&
fromJSON(needs.get-sample-apps-data.outputs.matrix)[0] != null
runs-on: ubuntu-22.04
@@ -225,6 +224,12 @@ jobs:
steps:
- uses: actions/checkout@v4
# We have to use the latest version that does not have this issue https://github.com/docker/compose/pull/12752
- name: Set up Docker Compose
uses: docker/setup-compose-action@v1
with:
version: latest
- name: Retrieve uberjar artifact for ee
uses: actions/download-artifact@v4
with:

View File

@@ -49,6 +49,7 @@ jobs:
CYPRESS_PULL_REQUEST_ID: ${{ github.event.pull_request.number || '' }}
COMMIT_INFO_MESSAGE: ${{ github.event.pull_request.title || github.event.head_commit.message || github.event.head.sha }}
MB_EXPERIMENTAL_SEARCH_BLOCK_ON_QUEUE: true
MB_SEARCH_ENGINE: appdb
MB_SNOWPLOW_AVAILABLE: true
MB_SNOWPLOW_URL: "http://localhost:9090" # Snowplow micro
TZ: US/Pacific # to make node match the instance tz
@@ -156,6 +157,7 @@ jobs:
with:
input-path: ./target/junit
output-name: e2e-${{ inputs.name }}
variant: e2e-tests
bucket: ${{ vars.AWS_S3_TEST_RESULTS_BUCKET }}
aws-access-key-id: ${{ secrets.AWS_TEST_RESULTS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_TEST_RESULTS_SECRET_ACCESS_KEY }}

View File

@@ -29,11 +29,14 @@ jobs:
token: ${{ github.token }}
filters: .github/file-paths.yaml
embedding-sdk-cli-snippets-type-check:
needs: [ files-changed ]
if: needs.files-changed.outputs.frontend_embedding_sdk_sources == 'true'
build:
needs: [files-changed]
if: |
!cancelled() &&
(needs.files-changed.outputs.frontend_embedding_sdk_sources == 'true' ||
needs.files-changed.outputs.documentation == 'true')
runs-on: ubuntu-22.04
timeout-minutes: 20
timeout-minutes: 25
steps:
- uses: actions/checkout@v4
- name: Prepare front-end environment
@@ -42,44 +45,116 @@ jobs:
uses: ./.github/actions/prepare-backend
with:
m2-cache-key: "cljs"
- name: Compile CLJS
run: yarn build-pure:cljs
shell: bash
- name: Build Embedding SDK package
run: yarn build-embedding-sdk
- name: Prepare Embedding SDK artifact
uses: actions/upload-artifact@v4
with:
name: embedding-sdk-${{ github.event.pull_request.head.sha || github.sha }}
path: resources/embedding-sdk
embedding-sdk-cli-snippets-type-check:
needs: [files-changed, build]
if: |
needs.files-changed.outputs.frontend_embedding_sdk_sources == 'true' &&
needs.build.result == 'success'
runs-on: ubuntu-22.04
timeout-minutes: 20
steps:
- uses: actions/checkout@v4
- name: Prepare front-end environment
uses: ./.github/actions/prepare-frontend
- name: Retrieve Embedding SDK dist artifact
uses: actions/download-artifact@v4
with:
name: embedding-sdk-${{ github.event.pull_request.head.sha || github.sha }}
path: ${{ github.workspace }}/resources/embedding-sdk
- name: Run frontend embedding SDK snippets type check
run: yarn run embedding-sdk:cli-snippets:type-check
embedding-sdk-docs-snippets-type-check:
needs: [ files-changed ]
if: needs.files-changed.outputs.documentation == 'true'
needs: [files-changed, build]
if: |
needs.files-changed.outputs.documentation == 'true' &&
needs.build.result == 'success'
runs-on: ubuntu-22.04
timeout-minutes: 20
steps:
- uses: actions/checkout@v4
- name: Prepare front-end environment
uses: ./.github/actions/prepare-frontend
- name: Prepare back-end environment
uses: ./.github/actions/prepare-backend
- name: Retrieve Embedding SDK dist artifact
uses: actions/download-artifact@v4
with:
m2-cache-key: "cljs"
- name: Compile CLJS
run: yarn build-pure:cljs
shell: bash
- name: Build Embedding SDK package
run: yarn build-embedding-sdk
name: embedding-sdk-${{ github.event.pull_request.head.sha || github.sha }}
path: ${{ github.workspace }}/resources/embedding-sdk
- name: Run frontend embedding SDK snippets type check
run: yarn run embedding-sdk:docs-snippets:type-check
embedding-sdk-no-exposed-internal-types-validate:
needs: [ files-changed, build ]
if: |
needs.files-changed.outputs.frontend_embedding_sdk_sources == 'true' &&
needs.build.result == 'success'
runs-on: ubuntu-22.04
timeout-minutes: 20
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Prepare front-end environment
uses: ./.github/actions/prepare-frontend
- name: Retrieve Embedding SDK dist artifact
uses: actions/download-artifact@v4
with:
name: embedding-sdk-${{ github.event.pull_request.head.sha || github.sha }}
path: ${{ github.workspace }}/resources/embedding-sdk
- name: Run no exposed internal types validation
run: |
output="$(yarn embedding-sdk:docs:generate:pure --emit none 2>&1)" || {
if [[ "$output" == *"not included in the documentation"* ]]; then
echo "$output"
exit 1
fi
}
- name: Comment on PR if docs need update
uses: ./.github/actions/notify-pull-request
if: success() || failure()
with:
remove-previous-comment: true
add-new-comment: ${{ job.status == 'failure' }}
message: "📝 One or more internal Metabase types were accidentally exported from the `@metabase/embedding‑sdk‑react` package in this pull request.<br/><br/>Publishing these types would change the public API and may drastically change generated SDK documentation.<br/><br/>Please update the code so internal types remain private and the public API stays unchanged."
include-log: true
sdk-e2e-tests:
uses: ./.github/workflows/e2e-component-tests-embedding-sdk.yml
needs: [build]
secrets: inherit
with:
cached-embedding-sdk-dist-artifact-name: embedding-sdk-${{ github.event.pull_request.head.sha || github.sha }}
e2e-component-tests-embedding-sdk-cross-version:
# run on: every push on release branches, and every pr that targets a release branch
if: ${{ startsWith(github.ref, 'refs/heads/release-x.') || (github.event_name == 'pull_request' && startsWith(github.base_ref, 'release-x.')) }}
uses: ./.github/workflows/e2e-component-tests-embedding-sdk-cross-version.yml
secrets: inherit
cross-version-for-breaking-changes:
# run on: every pr that targets a release branch
if: ${{ github.event_name == 'pull_request' && startsWith(github.base_ref, 'release-x.') }}
uses: ./.github/workflows/e2e-cross-version-for-breaking-changes.yml
secrets: inherit
with:
fe-ref: ${{ github.base_ref }}
be-ref: ${{ github.head_ref }}
embedding-sdk-tests-result:
needs:
- embedding-sdk-cli-snippets-type-check
- embedding-sdk-docs-snippets-type-check
- embedding-sdk-no-exposed-internal-types-validate
- sdk-e2e-tests
- e2e-component-tests-embedding-sdk-cross-version
if: always() && !cancelled()
runs-on: ubuntu-latest
timeout-minutes: 5

View File

@@ -6,6 +6,9 @@ on:
skip:
type: boolean
default: false
skip-lint:
type: boolean
default: false
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref && github.ref || github.run_id }}-frontend
@@ -13,7 +16,7 @@ concurrency:
jobs:
fe-lint:
if: ${{ !inputs.skip }}
if: ${{ !inputs.skip-lint }}
runs-on: ubuntu-22.04
timeout-minutes: 20
steps:

View File

@@ -13,7 +13,7 @@ on:
- "frontend/src/metabase-lib/expressions/**"
jobs:
fe-fuzz-tokenizer:
fe-fuzz-lexifier:
runs-on: ubuntu-22.04
timeout-minutes: 15
steps:
@@ -24,10 +24,10 @@ jobs:
uses: ./.github/actions/prepare-backend
with:
m2-cache-key: "cljs"
- run: yarn test-unit frontend/src/metabase-lib/v1/expressions/tokenizer/fuzz.unit.spec.ts
- run: yarn test-unit frontend/src/metabase-lib/v1/expressions/pratt/fuzz.lexifier.unit.spec.ts
env:
MB_FUZZ: 1
name: Run fuzz testing on the tokenizer
name: Run fuzz testing on the lexifier
fe-fuzz-compiler:
runs-on: ubuntu-22.04
@@ -44,3 +44,19 @@ jobs:
env:
MB_FUZZ: 1
name: Run fuzz testing on the custom expression compiler
fe-fuzz-string-quoting:
runs-on: ubuntu-22.04
timeout-minutes: 15
steps:
- uses: actions/checkout@v4
- name: Prepare front-end environment
uses: ./.github/actions/prepare-frontend
- name: Prepare back-end environment
uses: ./.github/actions/prepare-backend
with:
m2-cache-key: "cljs"
- run: yarn test-unit frontend/src/metabase-lib/v1/expressions/fuzz.string.unit.spec.ts
env:
MB_FUZZ: 1
name: Run fuzz testing on the custom expression string quoter

View File

@@ -45,7 +45,7 @@ jobs:
echo "Storybook is being served!"
- name: Update Loki Snapshots
run: yarn test-visual:loki || yarn test-visual:loki-approve-diff
run: yarn test-visual:loki || yarn test-visual:loki-approve-diff && yarn test-visual:loki-prune
- name: Check for changes
id: check-changes

View File

@@ -14,6 +14,7 @@ on:
- release-x.51.x
- release-x.52.x
- release-x.53.x
- release-x.54.x
concurrency:
# We want to ensure only one job is running at a time per branch because
@@ -390,10 +391,10 @@ jobs:
run: |
echo //registry.npmjs.org/:_authToken=${{ secrets.NPM_RELEASE_TOKEN }} > .npmrc
# Please keep the value in sync with `inputs.branch`'s release branch
npm publish --tag ${{fromJson('{"master": "nightly", "release-x.51.x": "51-stable", "release-x.52.x": "52-stable", "release-x.53.x": "53-stable"}')[inputs.branch]}}
npm publish --tag ${{fromJson('{"master": "nightly", "release-x.51.x": "51-stable", "release-x.52.x": "52-stable", "release-x.53.x": "53-stable", "release-x.54.x": "54-stable"}')[inputs.branch]}}
- name: Add `latest` tag to the latest release branch (`release-x.53.x`) deployment
if: ${{ inputs.branch == 'release-x.53.x' }}
- name: Add `latest` tag to the latest release branch (`release-x.54.x`) deployment
if: ${{ inputs.branch == 'release-x.54.x' }}
working-directory: sdk
run: |
npm dist-tag add @metabase/embedding-sdk-react@${{ env.sdk_version }} latest

View File

@@ -15,6 +15,7 @@ jobs:
timeout-minutes: 5
outputs:
e2e_all: ${{ steps.changes.outputs.e2e_all }}
e2e_specs: ${{ steps.changes.outputs.e2e_specs }}
backend_all: ${{ steps.changes.outputs.backend_all }}
frontend_all: ${{ steps.changes.outputs.frontend_all }}
frontend_sources: ${{ steps.changes.outputs.frontend_sources }}
@@ -79,6 +80,7 @@ jobs:
secrets: inherit
with:
skip: ${{ needs.files-changed.outputs.frontend_all != 'true' }}
skip-lint: ${{ needs.files-changed.outputs.frontend_all != 'true' && needs.files-changed.outputs.e2e_specs != 'true' }}
e2e-tests:
needs: files-changed

View File

@@ -29,12 +29,23 @@ jobs:
- uses: snyk/actions/setup@0.4.0
- name: Generate all pom.xml
run: .github/scripts/write-poms.sh
- name: Run snyk
- name: Run snyk main project
env:
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
continue-on-error: true
run: snyk test --all-projects --sarif-file-output=snyk.sarif
run: snyk test --all-projects --exclude="modules" --sarif-file-output=snyk-main.sarif
- name: Upload result to GitHub Code Scanning
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: snyk.sarif
sarif_file: snyk-main.sarif
category: main-project
- name: Run snyk drivers
env:
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
continue-on-error: true
run: cd modules && snyk test --all-projects --sarif-file-output=snyk-drivers.sarif
- name: Upload result to GitHub Code Scanning
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: modules/snyk-drivers.sarif
category: drivers

3
.gitignore vendored
View File

@@ -39,6 +39,7 @@
/docs/**/node_modules
/docs/**/package.json
/docs/**/yarn.lock
/docs/embedding/sdk/api/
/frontend/test/snapshots/*
/e2e/snapshots/*
/e2e/tmp/*
@@ -70,6 +71,7 @@
/storybook-static
/target
/test-report-*
/temp
**/cli-snippets-tmp/**
\#*\#
bin/node_modules/
@@ -131,3 +133,4 @@ modules/drivers/*/.lsp/*
/bin/bb
.aider*
/config.yml

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 77 KiB

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 75 KiB

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 81 KiB

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 77 KiB

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 134 KiB

After

Width:  |  Height:  |  Size: 133 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Some files were not shown because too many files have changed in this diff Show More