Compare commits

...

240 Commits

Author SHA1 Message Date
bryan
2c63e7fef2 Merge branch 'release-x.55.x' into docs-gen-sync-55 2025-06-18 16:48:51 -06:00
github-automation-metabase
d728124642 Make sure no inactive or archived tables and dashboards are shown in the popular items result (#59636) (#59747)
Co-authored-by: Nathan Voxland <nathan@metabase.com>
2025-06-18 22:26:34 +00:00
Bryan Maass
8a0ad66aba Add docs bump comment 2025-06-18 16:18:27 -06:00
Bryan Maass
6a2fc326b5 Merge branch 'release-x.55.x' of github.com:metabase/metabase into release-x.55.x 2025-06-18 16:18:27 -06:00
github-automation-metabase
d0c1de1cdd 🤖 backported "Clear checksums when rolling back from 55" (#59650) 2025-06-18 16:38:40 -05:00
github-automation-metabase
e291e8b3a1 Localize the trash name on memoized collection (#59662) (#59737)
* Localize the trash name on memoized collection

* just defer translation on the `trash-collection`

When we're getting it explicitly rather than for all collections - for
the sake of speed here, since this was causing some issues with
serialization.

* parallelize

* docstring

Co-authored-by: John Swanson <john.swanson@metabase.com>
2025-06-18 20:53:15 +00:00
github-automation-metabase
0611e14ff7 Fix re-rendering error modal on collection upload (#59073) (#59736)
* fix re-rendering error modal on collection upload

* migrating file upload error modal, adding e2e

Co-authored-by: Nick Fitzpatrick <nick@metabase.com>
2025-06-18 20:34:00 +00:00
bryan
7f5ba7184d [manual backport] modify trigger to send source + target branches (#59575) (#59724)
Fix docs workflow trigger action syntax (#59723)
2025-06-18 13:06:19 -06:00
bryan
d7f3c10cce Fix docs workflow trigger action syntax (#59723) 2025-06-18 12:25:25 -06:00
bryan
6a6543492b modify trigger to send source + target branches (#59575) 2025-06-18 12:25:18 -06:00
github-automation-metabase
a3e728305a Small UI Fixes (#59644) (#59716)
Co-authored-by: Nick Fitzpatrick <nick@metabase.com>
2025-06-18 17:01:59 +00:00
github-automation-metabase
817e3a33bc make database widget keyboard friendly (#59468) (#59715)
* make database widget keyboard friendly

* restore role=option, as it's the correct one inside a listbox

* add unit test

Co-authored-by: Nicolò Pretto <info@npretto.com>
2025-06-18 16:59:36 +00:00
github-automation-metabase
bf3394ee2c shorten filename to not overflow byte limit in some filesystems (#59625) (#59689)
shorten filename to not overflow byte limit in some filesystems

in particular ext4 limits file name by 255 *bytes*, not chars, which is doable by using 3-byte chars

fixes #59233

Co-authored-by: Oleksandr Solovyov <alexander@solovyov.net>
2025-06-18 16:31:23 +00:00
github-automation-metabase
f2b646a1db embedding setup: prefill user details and update settings (#59694) (#59711)
* update settings set in the processing step, closes EMB-499 and EMB-500

* EMB-486 prefill user details

Co-authored-by: Nicolò Pretto <info@npretto.com>
2025-06-18 16:01:34 +00:00
github-automation-metabase
9b0c8f19e1 Closes VIZ-162 - Stacked bar chart with mixed negative and positive values creates nonsensical percentage breakdowns in tooltips (#59138) (#59699)
* VIZ-162 Updates percent calculation for stacked bar charts’ tooltips for bars with a mix of positive and negative values. Positive values are a percentage of the positive total and negative values are a percentage of the negative total.

* VIZ-162 Updates e2e tests to verify new stacked bar chart behavior

Co-authored-by: Brad Anderson <brad@metabase.com>
2025-06-18 14:53:47 +00:00
github-automation-metabase
cfab7f9d8c Render Mantine and Echarts tooltips in a proper portal container for SDK (#59690)
Co-authored-by: Timofey Kachalov <timofei@metabase.com>
2025-06-18 18:11:00 +04:00
github-automation-metabase
0bdb368e6e increment failed-fingerprints rather than the throwable object (#59627) (#59679)
* 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 10:55:54 +00:00
github-automation-metabase
39ee072743 perf: filter json fields first (#59631) (#59654)
Co-authored-by: Nicola Mometto <nicola.mometto@metabase.com>
2025-06-18 09:49:40 +00:00
github-automation-metabase
f6cdd9daf6 fix: allow dragging editor border to completely hide it (#59335) (#59542)
Co-authored-by: Uladzimir Havenchyk <125459446+uladzimirdev@users.noreply.github.com>
2025-06-18 11:37:20 +03:00
github-automation-metabase
fdbdb039af chore: cleanup native editor after refactoring (#59281) (#59618)
Co-authored-by: Uladzimir Havenchyk <125459446+uladzimirdev@users.noreply.github.com>
Co-authored-by: Uladzimir Havenchyk <uladzimir.dev@gmail.com>
2025-06-18 10:26:36 +03:00
github-automation-metabase
3f951da6d3 Add e2e reproduction for #35067 (#59584) (#59661)
* Add e2e reproduction for #35067

Closes #35067

* Inline single-use query

Co-authored-by: appleby <86076+appleby@users.noreply.github.com>
2025-06-17 21:50:50 +00:00
github-automation-metabase
dda8f2fa40 Add regression tests for clickhouse (#59348) (#59651)
* add regression tests

* Add issue references

* make double comment test driver agnostic

* make tests more agnostic

* format

* make another test agnostic

* add prometheus metrics

* add driver query metrics test

* test against failed count

* move clickhouse native tests back, remove parallel from metrics query test

* fix kondo

* add todo attribution

* disable 0.8.4 broken tests, re-enable 0.8.6 broken tests

Co-authored-by: Riley Thompson <riley@metabase.com>
2025-06-17 17:21:26 -04:00
github-automation-metabase
5b7cb8769c Correct saving of pivot card metadata (#59283) (#59646)
Co-authored-by: Nathan Voxland <nathan@metabase.com>
2025-06-17 21:04:15 +00:00
github-automation-metabase
5f835e1fba dev notes (#59643) (#59653)
Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-06-17 19:10:17 +00:00
github-automation-metabase
24776a33e6 Use substring optimization on any text fields (#59061) (#59429)
* Use substring optimization on any text fields

* Add integration test for coercion

Co-authored-by: lbrdnk <lbrdnk@users.noreply.github.com>
2025-06-17 18:04:58 +00:00
github-automation-metabase
7465006a6d EMB-501 and EMB-503, review wording on the last step and flip order of code and preview (#59612) (#59637)
* emb-501: Review wording so that it's not perceived as working

* EMB-503: Flip order of code and preview

* update top sentence

Co-authored-by: Nicolò Pretto <info@npretto.com>
2025-06-17 17:22:07 +00:00
github-automation-metabase
d9b1ee4f8c Add team names to backend modules config (#58907) (#59085)
Co-authored-by: Cam Saul <1455846+camsaul@users.noreply.github.com>
2025-06-17 17:16:57 +00:00
github-automation-metabase
ec29c093aa Performance + memory usage optimisations for json unfolding during sync (#59122) (#59380)
* a bit lazier table->unfold-json-fields

* remove need for dynamic var

* more optimised

* don't leak json parsers

* code style

* better perf

* short circuit earlier in case of a lot of nested fields

* add to changelog

* rename

Co-authored-by: Nicola Mometto <nicola.mometto@metabase.com>
2025-06-17 18:03:01 +01:00
github-automation-metabase
893bdfc033 Support type deduction for case and coalesce (#59331) (#59367)
* Support type deduction for `case` and `coalesce`

* Revert accidental changes

* Fix CLJS tests

Co-authored-by: Cam Saul <1455846+camsaul@users.noreply.github.com>
2025-06-17 09:45:33 -07:00
github-automation-metabase
7833c48e3f 🤖 backported "Fix searching for uuid column values in dashboard filter" (#59564)
* Fix searching for uuid column values in dashboard filter (#59272)

* Fix searching for uuid column values in dashboard filter

* Adjust so only the uuid fields are remapped for search

* Address review remarks

* No driver-api available on 55

---------

Co-authored-by: lbrdnk <lbrdnk@users.noreply.github.com>
2025-06-17 16:24:50 +00:00
github-automation-metabase
d07616db35 Update metrics.md (#59629) (#59630)
Co-authored-by: Alex Yarosh <alexandra@metabase.com>
2025-06-17 16:22:58 +00:00
github-automation-metabase
cf9f542bd0 [Metabot] Analyze chart improvements (#59449) (#59603)
Co-authored-by: Sloan Sparger <sloansparger@users.noreply.github.com>
Co-authored-by: Sloan Sparger <sloansparger@gmail.com>
2025-06-17 11:12:24 -05:00
github-automation-metabase
f2a6ab386b 🤖 backported "fix: card before-update to not always force update" (#59623)
* fix: card before update to not always force update (#59559)

* fixup! query analysis args

---------

Co-authored-by: Edward Paget <edpaget@users.noreply.github.com>
Co-authored-by: Edward Paget <ed.paget@gmail.com>
2025-06-17 10:26:13 -05:00
github-automation-metabase
a1ea609c55 test: fix flaky test (#59547) (#59576)
* test: fix flaky test

* one more attempt

* debug

* one more time

* one more time

* one more time

Co-authored-by: Uladzimir Havenchyk <125459446+uladzimirdev@users.noreply.github.com>
2025-06-17 16:35:09 +03:00
github-automation-metabase
3a03d60d12 Ignore ?locale search param in result downloads (#59243) (#59611)
* Fix can't download static SQL question\

when a parameter only expects a single value

* Ignore `?locale` search param in result downloads

* Finish the comment

* Fix public action tests failing

* Address review: Call side-effect explicitly

* Preserve same behavior

* Flip boolean to make it easier to read

* Improve boolean condition

* revert the use of `isEmbeddingSdk` env until #59602 is fixed

* Add missing condition to retain the same behavior

* Fix more failing tests duh!

* Fix should sync logic for real this time.

Co-authored-by: Mahatthana (Kelvin) Nomsawadi <me@bboykelvin.dev>
2025-06-17 13:27:47 +01:00
github-automation-metabase
4dbb6c0dc4 set embedding-homepage visible as soon as we can (#59476) (#59613)
* set embedding-homepage visible as soon as we can

* cleanup test

* reorder because it makes more sense

* Update frontend/src/metabase/setup/components/EmbeddingSetup/steps/UserCreationStep.tsx



---------

Co-authored-by: Nicolò Pretto <info@npretto.com>
Co-authored-by: Phoomparin Mano <poom@metabase.com>
2025-06-17 10:17:54 +00:00
github-automation-metabase
f2c77434c5 Bot 188 sql features in chat (#59382) (#59601)
* Use Metabot for FixSQL Button

* Enrich context with sql schema if user is viewing a native query (or the editor)

Co-authored-by: Thomas Schmidt <thomas@metabase.com>
2025-06-17 11:52:28 +02:00
github-automation-metabase
4771545446 fix a flake (#59424) (#59581)
just no reason to hardcode an ID like this.

Co-authored-by: John Swanson <john.swanson@metabase.com>
2025-06-16 22:06:52 +00:00
github-automation-metabase
62f75b55a3 support pivots with between 31 and 63 breakouts (#59494) (#59577)
Co-authored-by: Noah Moss <32746338+noahmoss@users.noreply.github.com>
2025-06-16 21:06:37 +00:00
github-automation-metabase
7d99a0f82b Update upgrading-metabase.md (#58477) (#59571)
* 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:12:18 +00:00
github-automation-metabase
950d8b2a10 Update table.md (#59490) (#59565)
Fixed wrong header level (was h2, should be h3)

Co-authored-by: Jacob Joseph <likeshumidity@users.noreply.github.com>
2025-06-16 17:40:51 +00:00
github-automation-metabase
f0845fdc1d MVP of Embedding setup flow (#58853) (#59561)
* Add embedding setup flow with multi-step wizard. Add EmbeddingSetup component with welcome, data connection, processing, and final steps. Create setupEmbeddingSettings action for configuring embedding and JWT. Add CodeSnippet component for displaying code examples. Set up proper routing for the embedding setup flow.

* Update embedding setup flow to actually create the database and handle errors. Update DataConnectionStep to display error messages.

* Fix linter errors in EmbeddingSetup component and setupEmbeddingSettings action

* Setup embedding flow: Remove SchemaSelectionStep, fix imports and types

* Fix linter errors and finalize embedding setup flow with navigation and original content restored

* Add EmbeddingSetupWrapper to provide context for embedding setup flow

* Fix table fetching in TableSelectionStep to use metadata endpoint

* Implement model and dashboard creation in ProcessingStep using /api/card endpoint

* Fix useEffect and useCallback dependencies and import order in TableSelectionStep

* working flow

* small tweaks

* sidebar with steps

* update snippet to use iframe embed

* better "Need assistance" positioning

* fix and refactor database and tables steps

* style final step

* bottom part of /final

* done step and idk i'm tired

* remove chevron and add syntax highlight as per feedback on the loom

* fix user not being loaded

* welcome step and final step

* remove dead code

* add query builder

* more stuff

* add comment about keepMounted

* set the proper settings during setup, fixes EMB-462 and EMB-461

* hide DatabaseStatus, fixes EMB-458

* "do later" -> link to /, closes EMB-456

* attempt at setting a max width, maybe closes EMB-454

* fix icons

* fix scrollbar on tall pages

* to refactor: wip link between setup and onboarding

* fix jumpy layout while moving across pages

* fix DatabaseStatus showing up after landing to the homepage

* Revert "to refactor: wip link between setup and onboarding"

This reverts commit b4c19da37d.

* wip user step

* revert changes to database status, we don't need those changes now that we're not in the routes that use the App component

* prevent going to setup/embedding if setup is already done

* table search

* restore original position of metabot to keep diff cleaner

* category + icon on search input

* restore routes structures

* add widht and height, fixes EMB-480

* remove "Need assistance" link, closes EMB-479

* change content in DoneStep, closes EMB-478

* removed /embed from the url

* empty set for search + layout adjustements, closes EMB-481

* removing things i commited by mistake

* locale selector, closes EMB-466

* cleanup unused code

* fix loading not being centered in table selection loading

* fix processingStatus i18n issue

* Remove undefined CSS custom property

* Revert "fix loading not being centered in table selection loading"

This reverts commit 8fda19338a.

* re-do the centering

* close EMB-473, refactor to be only one page

* move CodeSnippet in the file where it's used, it's not a generic
component for now

* Add a basic embedding onboarding E2E test (#59323)

* Add a basic E2E test

* Add missing import

* Finish assertions

* Wait for DB sync

* Hide DB sync status, so Cypress could click a button

* Fix test on CI

* Fix E2E after upstream change

* Some adjustment to make CI passes

* Wait for loader to disappear to avoid failing CI

* Simulate being on cloud

* Addresses review feedback

* fix sidebar steps, titles and visibility

* fix another wrong string

* Update frontend/src/metabase/setup/components/EmbeddingSetup/EmbeddingSetupSidebar.tsx



* address pr feedbback

* fix error ui in table selection

* add useForceLocaleRefresh to table step

* update label on test too

* more label updates

* Properly refetch database API

* Add DB sync retries assertion

* fix the retry of the database sync

---------

Co-authored-by: Nicolò Pretto <info@npretto.com>
Co-authored-by: Kyle Doherty <5248953+kdoh@users.noreply.github.com>
Co-authored-by: Mahatthana (Kelvin) Nomsawadi <me@bboykelvin.dev>
2025-06-16 17:20:33 +00:00
github-automation-metabase
c98ecebe85 update link (#59557) (#59562)
Co-authored-by: Alex Yarosh <alexandra@metabase.com>
2025-06-16 17:03:40 +00:00
github-automation-metabase
e7e9ad08e7 Closes VIZ-917 two data points for one series (second try) (#59546) (#59558)
* trying

* no comment

Co-authored-by: Sébastien <sebastien@metabase.com>
2025-06-16 16:39:51 +00:00
github-automation-metabase
4e563b75cc Fix v_alerts incorrectly classify by the minute and custom schedule (#58468) (#59552)
Co-authored-by: Ngoc Khuat <qn.khuat@gmail.com>
2025-06-16 15:32:15 +00:00
github-automation-metabase
977a515ecb docs - note on db routing (#59549) (#59556)
* note on db routing

* note on connection swapping

* add warning

* edits

* revisions

Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-06-16 15:31:58 +00:00
github-automation-metabase
78e1ec542f Resolve visibility in query instead of filtering with mi/can-read? (#59360) (#59541)
* Resolve visibility in query instead of filtering with mi/can-read?

---------

Co-authored-by: metamben <103100869+metamben@users.noreply.github.com>
Co-authored-by: Mihael Konjevic <konjevic@gmail.com>
2025-06-16 12:49:33 +00:00
github-automation-metabase
ed169c8c2e Close table header popover with escape (#59262) (#59536)
* 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 10:26:33 +00:00
github-automation-metabase
843f49f1ad Update Readme version references and published npm version to 0.55.3 (#59535) 2025-06-16 09:46:08 +00:00
github-automation-metabase
27cc4abb26 Update the SDK version for the latest npm tag (#59532) (#59533)
Co-authored-by: Timofey Kachalov <timofei@metabase.com>
2025-06-16 08:51:43 +00:00
github-automation-metabase
c42b7cce9a 🤖 backported "adjust measured cells spacing" (#59489)
* adjust measured cells spacing (#59475)

* adjust measured cells spacing

* Update Loki Snapshots

* update specs for new widths

---------

Co-authored-by: Metabase Automation <github-automation@metabase.com>

* fix object id column size (#59505)

* fix object id column size

* Update Loki Snapshots

---------

Co-authored-by: Metabase Automation <github-automation@metabase.com>

* Update Loki Snapshots

---------

Co-authored-by: Aleksandr Lesnenko <alxnddr@users.noreply.github.com>
2025-06-13 22:06:16 -04:00
github-automation-metabase
65da45c098 Added validation for email-from-name (#59330) (#59500)
Co-authored-by: Nathan Voxland <nathan@metabase.com>
2025-06-13 23:19:26 +00:00
github-automation-metabase
01fce987e0 relativedatetime truncates (#59501) (#59504)
Co-authored-by: Alex Yarosh <alexandra@metabase.com>
2025-06-13 23:15:00 +00:00
github-automation-metabase
de3d7077d2 docs: update pivot docs (#59492) (#59493)
* pivots

* Apply suggestions from code review



---------

Co-authored-by: Alex Yarosh <alexandra@metabase.com>
Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-06-13 20:54:51 +00:00
github-automation-metabase
bbdaab3d8f Add setting to disable reusing a dashboard's last used parameters (#59293) (#59488)
Set MB_DASHBOARDS_SAVE_LAST_USED_PARAMETER to false to disable saving.

Co-authored-by: William <william@metabase.com>
2025-06-13 20:02:58 +00:00
github-automation-metabase
1bf231e80c docs - alert note (#59481) (#59485)
* note on disposable alerts

* edit

* alerts permissions note

* summary

* phrasing

Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-06-13 18:10:03 +00:00
github-automation-metabase
bd75132198 fix: make the jwt idp uri a required setting (#59344) (#59478)
The SDK now requires the jwt uri to be set to function in version 55
this enforces that requirement on the admin page.

Co-authored-by: Edward Paget <ed.paget@gmail.com>
2025-06-13 18:00:47 +00:00
github-automation-metabase
43a0f2a5cb VIZ-1020 Updates text card "extra large" breakpoint version so it's only applied on full-width dashboards since fixed-width dashboards don't have enough height to display it without scrollbars (#59466)
Co-authored-by: Brad Anderson <brad@metabase.com>
2025-06-13 10:49:58 -04:00
github-automation-metabase
88935bb7bd [Metabot] Guard ai entity analysis (#59339) (#59469)
* guard ai entity analysis

* fix types

* add token feature to BE

* Add :ai_entity_analysis premium feature to token feature test

* iteration

* fix bad reference

---------

Co-authored-by: Sloan Sparger <sloansparger@users.noreply.github.com>
Co-authored-by: Mihael Konjevic <konjevic@gmail.com>
2025-06-13 14:39:07 +00:00
github-automation-metabase
a137110141 Select the most viewed tables when generating SQL queries (#59359) (#59465)
Fixes BOT-181

Co-authored-by: metamben <103100869+metamben@users.noreply.github.com>
2025-06-13 14:14:31 +00:00
github-automation-metabase
8bfa8ff556 CI debugging improvements (#58883) (#59197)
* test logs as artifact

* better test logs

* debugging improvements

* fix `with-context` query to work with non-literals

```
(with-context {:foo "bar"}
 ...)
```

worked,

```
(with-context (merge {:foo "bar"} {:bin "baz"})
 ...)
```

did not, now it does!

* add compiled query args to context

* kondo

* compact logs

* use an `:after` method

* use defonce to avoid repeated `test-var` overwrite

Co-authored-by: John Swanson <john.swanson@metabase.com>
2025-06-13 12:43:28 +00:00
github-automation-metabase
0bb43a1a5d [MBQL lib] Update downstream refs after swapping clauses (#59318) (#59387)
Fixes #59273.
Fixes #48306.

Swapping two clauses can change their names, eg. two sum aggregations
`sum` and `sum_2`. Since refs in later stages are based on those names,
the refs need updating to track the same column, rather than change
targets.

`lib.remove-replace` already has logic for this when replacing a clause,
it was readily reused here. I added tests for swapping aggregations and
multiple breakouts of the same column.

Note that viz settings (also based on the names) are not updated as part
of this PR. There are separate bugs open for that issue both when
removing a clause and reordering them.

Co-authored-by: Braden Shepherdson <braden@metabase.com>
2025-06-13 12:19:41 +00:00
github-automation-metabase
4efffa7785 add a startNewConversation helper (#59423) (#59461)
Co-authored-by: Sloan Sparger <sloansparger@users.noreply.github.com>
2025-06-13 12:08:55 +00:00
github-automation-metabase
3a1d6ae053 adding Native Query Editory shortcuts to glossary (#59372) (#59431)
Co-authored-by: Nick Fitzpatrick <nick@metabase.com>
2025-06-13 08:41:15 +00:00
github-automation-metabase
d3a4a4259e chore: upgrade rspack to address webpack-dev-server vulnerability (#59384) (#59396) 2025-06-13 10:13:38 +03:00
github-automation-metabase
b37f1a5b37 Remove unnecessary horizontal scroll on static embed sharing modal (#59230) (#59446)
* 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 03:52:48 +00:00
github-automation-metabase
a1eac8b288 fix: improve effective children performance (#59004) (#59438)
* 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-12 22:50:25 +00:00
github-automation-metabase
73e60daaef Remove back push filters for embedding-sdk.yml (#59406)
Co-authored-by: Timofey Kachalov <timofei@metabase.com>
2025-06-12 19:11:40 +04:00
github-automation-metabase
77e98801ba Update react-virtualized-to-9.22.6 (#59343) (#59411)
Co-authored-by: Timofey Kachalov <timofei@metabase.com>
2025-06-12 15:10:54 +00:00
github-automation-metabase
082dbc18c9 test: add basic tests for interactive embedding with sso (#58698) (#59414)
Co-authored-by: Nicolò Pretto <info@npretto.com>
2025-06-12 14:58:12 +00:00
github-automation-metabase
ec5df62b4d Revert "Ensure we use a different connection per have-select-privilege? call (#58620)" (#59400) (#59403)
This reverts commit 13dedb2e85.

Co-authored-by: Nicola Mometto <nicola.mometto@metabase.com>
2025-06-12 14:45:54 +00:00
github-automation-metabase
1244e5483c Closes VIZ-1111 no chevron in edit mode (#59300) (#59404)
* closes VIZ-1111 no chevron in edit mode

* e2e -> unit

Co-authored-by: Sébastien <sebastien@metabase.com>
2025-06-12 14:30:54 +00:00
github-automation-metabase
1ea41280d9 Closes VIZ-1098 copy on settings (#59299) (#59402)
Co-authored-by: Sébastien <sebastien@metabase.com>
2025-06-12 14:02:23 +00:00
github-automation-metabase
4450aef337 Use latest docker-compose for Sample App e2e CI (#59391)
Co-authored-by: Timofey Kachalov <timofei@metabase.com>
2025-06-12 17:23:02 +04:00
github-automation-metabase
a22ec71522 no archived collections in perm graph (#59065) (#59176)
Co-authored-by: John Swanson <john.swanson@metabase.com>
2025-06-12 13:06:17 +00:00
github-automation-metabase
3f60bb4166 fix(sdk): Remove unhelpful error Error: null (#59168) (#59376)
* Don't log `Error: null` on the SDK

* Assert error another way

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

Co-authored-by: Mahatthana (Kelvin) Nomsawadi <me@bboykelvin.dev>
2025-06-12 09:35:18 +00:00
github-automation-metabase
5e19bbc2c5 Fix single and multi-value string filter widget for non-string columns (#59352) (#59365)
Co-authored-by: Alexander Polyankin <alexander.polyankin@metabase.com>
2025-06-12 00:44:41 +00:00
github-automation-metabase
e777063ffe fix: snowflake keep additional-options with private key (#59287) (#59357)
Co-authored-by: Case Nelson <case@metabase.com>
2025-06-11 20:35:43 +00:00
github-automation-metabase
fdedb65b60 fix: audit migration for schema casing (#59346) (#59349)
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:15:09 +00:00
github-automation-metabase
eeda1125d2 Add admin settings step to JWT SSO SDK upgrade guide (#59332) (#59355)
Co-authored-by: Alberto Perdomo <albertoperdomo@users.noreply.github.com>
Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-06-11 20:01:18 +00:00
github-automation-metabase
bd638c913f use the right color prop for the settings gear (#59347) (#59353)
Co-authored-by: Ryan Laurie <30528226+iethree@users.noreply.github.com>
2025-06-11 19:40:41 +00:00
github-automation-metabase
cf7d68240a Do not normalize escaped join aliases (QUE-1353) (#59327) (#59338)
Co-authored-by: Cam Saul <1455846+camsaul@users.noreply.github.com>
2025-06-11 18:26:00 +00:00
github-automation-metabase
3fbcfc57ed [Metabot] Suggestions UI improvements (#59320) (#59342)
Co-authored-by: Sloan Sparger <sloansparger@users.noreply.github.com>
2025-06-11 18:20:46 +00:00
github-automation-metabase
a343d67ad5 Update saml-google.md (#58602) (#58603)
Added docs about synchronize group membership specific to Google SAML config

Co-authored-by: Jacob Joseph <likeshumidity@users.noreply.github.com>
2025-06-11 18:15:04 +00:00
github-automation-metabase
3275e6f43f docs - note on dev instances (#59326) (#59341)
* note on dev instances

* edit

Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-06-11 18:12:50 +00:00
github-automation-metabase
a95bf66163 early access program link (#59328) (#59340)
Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-06-11 18:11:58 +00:00
github-automation-metabase
811b440ecc 🤖 backported "[Metabot] Suggested prompts" (#59313)
* [Metabot] Suggested prompts (#58823)

* FE wip

* more FE progress

* last big pass at UI

* url page param sync, show model name, move new code to new file

* remove pagination in url and add link to new metabot convo

* unit testing

* finish tests

* move prompt result fetching outside of metabot agent hook and into chat sidebar

* fix constant reference

* fix

* Add metabot prompts and wire up AI service

* Return prompt suggestions for cards visible by the user

* pr feedback

* Test metabot-scope

* Add BE tests

* Fix tests and kondo issues

* Fix tests and kondo issues

* Fix tests more

* Fix serialization

* Fix serdes more

* Use MySQL compatible delete syntax

* have FE use new regenerate endpoint instead of delete

* change mocked status code

* fix flaking unit test and fix failing MetabotAdminPage spec from wrong mocked pagination value

* Add prompt regeneration endpoint

* Document prompt regeneration endpoint

* fix test flake

* doh... fix the right test this time

* Use the collection configured int the app-db in answer-sources

---------

Co-authored-by: metamben <103100869+metamben@users.noreply.github.com>

* [Metabot] Unit test flake fix (#59321)

* fix flaking unit test

* run enterprise tests on change

---------

Co-authored-by: Sloan Sparger <sloansparger@users.noreply.github.com>
Co-authored-by: metamben <103100869+metamben@users.noreply.github.com>
2025-06-11 20:42:33 +03:00
github-automation-metabase
59289bbe16 feat: add parameter card dashboard api tests (#59205) (#59334)
* chore: add parameter card api tests

* fixup! add row lock fixture to avoid a flake

Co-authored-by: Edward Paget <edpaget@users.noreply.github.com>
2025-06-11 17:25:49 +00:00
github-automation-metabase
b08a91d3ea Add repro for "Longer filter values overrun the screen when a single value is selected" (#59258) (#59319)
* Add repro for metbase#44090

* Also test values without spaces

Co-authored-by: Romeo Van Snick <romeo@romeovansnick.be>
2025-06-11 15:24:37 +00:00
github-automation-metabase
553b94d6ed docs: customize logging levels (#59290) (#59317)
* logging

* Apply suggestions from code review



---------

Co-authored-by: Alex Yarosh <alexandra@metabase.com>
Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-06-11 15:01:08 +00:00
github-automation-metabase
c65f90be7d Show only valid linked filters in dashboards (#59084) (#59291)
Co-authored-by: Alexander Polyankin <alexander.polyankin@metabase.com>
2025-06-11 01:03:23 +00:00
github-automation-metabase
073a3bcbbb Prevent long dashboard names Inline (#59228) (#59289)
* Limit input to 100 chars

Co-authored-by: Fraser <fraser@metabase.com>
2025-06-10 23:16:27 +00:00
github-automation-metabase
d4a0640d09 add blockquote for db routing (#59285) (#59286)
Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-06-10 22:18:55 +00:00
github-automation-metabase
f402326b7e Add e2e repro (#59270) (#59278)
Co-authored-by: Alexander Polyankin <alexander.polyankin@metabase.com>
2025-06-10 19:15:59 +00:00
github-automation-metabase
d0b5929f8d docs(sdk): Add upgrade instructions for new auth flow (#59248) (#59274)
* Add more docs

* Update authentication.md

* Apply suggestions from code review

* revisions

* edits

* note on saml

---------

Co-authored-by: Oisin Coveney <oisin@metabase.com>
Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-06-10 18:17:06 +00:00
github-automation-metabase
aa51cc41e5 Fix filtering for string SQL columns (#59216) (#59268)
Co-authored-by: Alexander Polyankin <alexander.polyankin@metabase.com>
2025-06-10 17:53:00 +00:00
github-automation-metabase
618118a4c6 Cloes VIZ-1098 polish for approximate number of intervals setting (#59254) (#59259)
Co-authored-by: Sébastien <sebastien@metabase.com>
2025-06-10 18:15:47 +02:00
github-automation-metabase
ff58482aad Fix the stale database cache when we enable or disable uploads for a certain database (#59184) (#59261)
Co-authored-by: Nemanja Glumac <31325167+nemanjaglumac@users.noreply.github.com>
2025-06-10 16:14:17 +00:00
github-automation-metabase
12f6e2e834 Don't count dashboard subscriptions as a reason to count a card as recently viewed (#59080) (#59192)
Co-authored-by: Nathan Voxland <nathan@metabase.com>
2025-06-10 15:34:47 +00:00
github-automation-metabase
cf2dbb0f15 Better detection of card metadata changes (#59131) (#59202)
Co-authored-by: Nathan Voxland <nathan@metabase.com>
2025-06-10 14:28:31 +00:00
github-automation-metabase
dcc5bc7704 Add limitation about CSS vars in SDK theming (#59238) (#59250)
Co-authored-by: Alberto Perdomo <albertoperdomo@users.noreply.github.com>
Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-06-10 13:11:07 +00:00
github-automation-metabase
486a88215c Remove flash of default title when saving a question (#59094) (#59118)
* 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:20:58 +02:00
github-automation-metabase
fc8d6a91dd 🤖 backported "Don't open the database picker when there is only one database" (#59024)
* Don't open the database picker when there is only one database (#58849)

* Don't open the database picker when there is only one database

* Allow null for database

* Add repro for metabase#57644

* Remove duplicate it

* Use == to check for undefined

* Fix test description

* Update e2e/test/scenarios/native/native-reproductions.cy.spec.ts

Wording

Co-authored-by: Kamil Mielnik <kamil@kamilmielnik.com>

---------

Co-authored-by: Kamil Mielnik <kamil@kamilmielnik.com>

* Remove unrelated repro

---------

Co-authored-by: Romeo Van Snick <romeo@romeovansnick.be>
Co-authored-by: Kamil Mielnik <kamil@kamilmielnik.com>
2025-06-10 12:20:06 +02:00
github-automation-metabase
6deed0f8bb Fields values work for secondary series in a dashcard (#59076) (#59219)
Field values check both :card and :series for the relevant card

Co-authored-by: William <william@metabase.com>
2025-06-10 09:04:35 +00:00
github-automation-metabase
1fa9ae4e88 feat(sdk): Add Visualization Button, hook, and onRun event (#58080) (#59234)
Co-authored-by: Oisin Coveney <oisin@metabase.com>
2025-06-10 08:54:58 +00:00
Riley Thompson
4575c22a9a Downgrade clickhouse jdbc driver to 0.8.4 (#59223)
* downgrade clickhouse jdbc driver to 0.8.4

* revert test

* fix tests
2025-06-09 23:07:02 -04:00
Riley Thompson
05fe0df0bf Revert "Add text comparison support for ClickHouse UUIDs (#58576) (#58596)" (#59224)
This reverts commit ec8ab6a4f1.
2025-06-09 22:32:05 -04:00
github-automation-metabase
a063ca93a9 [MBQL lib] Fix underlying-records drill on breakout of custom column (#59218) (#59220)
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-09 21:35:05 +00:00
github-automation-metabase
29ce6a4f3e notes (#59214) (#59215)
Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-06-09 18:22:21 +00:00
github-automation-metabase
5cced69207 docs - data picker option (#59136) (#59210)
Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-06-09 18:02:24 +00:00
github-automation-metabase
c1c78462ee docs - native editor menu (#59204) (#59209)
* update sql snippet

* update images

Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-06-09 18:01:29 +00:00
github-automation-metabase
be45ac5d68 docs - dev instances (#59186) (#59208)
* dev instances

* link

* notes on tokens

Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-06-09 18:00:30 +00:00
github-automation-metabase
cd3d2e680f fix: check for row existence in parameter upsert (#59127) (#59199)
* 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:40:13 +00:00
github-automation-metabase
7a4107c65c fix a tiny flake (#58902) (#59198)
Co-authored-by: John Swanson <john.swanson@metabase.com>
2025-06-09 17:12:34 +00:00
github-automation-metabase
17f133d715 __METABASE_ROUTER__ instead of primary db (#59189) (#59195)
Co-authored-by: Luiz Arakaki <luiz.arakaki@metabase.com>
2025-06-09 15:14:21 +00:00
github-automation-metabase
a9fcfb7417 static size for watermark background, changing source url (#58647) (#59182)
Co-authored-by: Nick Fitzpatrick <nick@metabase.com>
2025-06-09 14:32:36 +00:00
github-automation-metabase
6c2fd11714 Reduce log level to debug for some sync logs (#59161) (#59172)
* Reduce log level to debug for some sync logs

* Update describe_table.clj

Co-authored-by: Vamsi Peri <vamsi@metabase.com>
2025-06-09 13:02:17 +00:00
github-automation-metabase
3fe9169f2f Properly expose initialParameters on dashboard components (#59115) (#59162)
Co-authored-by: Mahatthana (Kelvin) Nomsawadi <me@bboykelvin.dev>
2025-06-09 05:57:34 +00:00
github-automation-metabase
43db3bd3a6 fix: increase starburst percentile acceptable epsilon (#59129) (#59134)
Co-authored-by: Case Nelson <case@metabase.com>
2025-06-06 21:43:10 +00:00
github-automation-metabase
661d40bd19 Auto Focus save button on the SaveQuestion Modal (#59093) (#59130)
* Auto Focus save button on the SaveQuestion Modal

* adjusting e2e tests

Co-authored-by: Nick Fitzpatrick <nick@metabase.com>
2025-06-06 20:08:51 +00:00
github-automation-metabase
57c356bfa1 Use Resize Observer to set google button width (#59125) (#59128)
* Use Resize Observer to set google button width

* remove shame

Co-authored-by: Nick Fitzpatrick <nick@metabase.com>
2025-06-06 19:33:12 +00:00
github-automation-metabase
adfd39b69b s/mirror database/destination database/g (#58438) (#59126)
Co-authored-by: John Swanson <john.swanson@metabase.com>
2025-06-06 17:31:28 +00:00
github-automation-metabase
0379e493b8 🤖 backported "End-to-end tests for SSO authentication for new iframe embedding" (#59113)
Co-authored-by: Mahatthana (Kelvin) Nomsawadi <me@bboykelvin.dev>
Co-authored-by: Phoomparin Mano <poom@metabase.com>
Co-authored-by: Phoomparin Mano <phoomparin@gmail.com>
2025-06-06 23:42:38 +07:00
github-automation-metabase
374c35c066 closes VIZ-187 double scrollbar on viz settings (#59095) (#59120)
Co-authored-by: Sébastien <sebastien@metabase.com>
2025-06-06 15:56:38 +00:00
github-automation-metabase
be7aec8ab6 update table docs (#59068) (#59117)
Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-06-06 15:43:08 +00:00
github-automation-metabase
d3ee5d04e0 fix(sdk): omit jwt token response from error messages (#59108) (#59114)
Co-authored-by: Phoomparin Mano <poom@metabase.com>
2025-06-06 15:02:33 +00:00
github-automation-metabase
5a6c6b9500 fix typo in authcard (#59101) (#59111)
* fix typo in authcard

* add translation context

Co-authored-by: Ryan Laurie <30528226+iethree@users.noreply.github.com>
2025-06-06 14:22:30 +00:00
github-automation-metabase
f2749f504c refactor(sdk): rename authMethod to preferredAuthMethod (#59099) (#59109)
Co-authored-by: Phoomparin Mano <poom@metabase.com>
2025-06-06 13:54:57 +00:00
github-automation-metabase
cce105ff35 SSO authentication for new iframe embedding (#58567) (#59104)
Co-authored-by: Phoomparin Mano <poom@metabase.com>
2025-06-06 13:30:31 +00:00
github-automation-metabase
e019767c92 fix: move metabot migrations back to 001 (#59066) (#59078)
* fix: move metabot migrations back to 001

* fix: embedded metabot name

* fix: add dummy migration

Co-authored-by: Edward Paget <edpaget@users.noreply.github.com>
2025-06-06 13:21:38 +00:00
Mahatthana (Kelvin) Nomsawadi
36afb52625 Remove the workaround for embedding SDK test (#59097)
We've already release a new version with the correct tests, so cross
version testing should succeed without requiring `MB_SEARCH_ENGINE`
anymore.
2025-06-06 10:36:56 +00:00
github-automation-metabase
0aa6f53ad1 Update Readme version references and published npm version to 0.55.2 (#59096) 2025-06-06 10:27:07 +00:00
github-automation-metabase
1fa8ac23b1 SEM-359 Toasts shown when nothing changed (#58946) (#59092)
* Fix SEM-359

* Update ChartSettingInput interface

* Add repros

Co-authored-by: Kamil Mielnik <kamil@kamilmielnik.com>
2025-06-06 08:51:38 +00:00
Mahatthana (Kelvin) Nomsawadi
931b6c92fd Unskip test (#59088) 2025-06-06 09:45:04 +01:00
github-automation-metabase
d6c5771222 Remove debugging code (#59041) (#59089)
Co-authored-by: Kamil Mielnik <kamil@kamilmielnik.com>
2025-06-06 08:13:53 +00:00
github-automation-metabase
379274d3a7 Stabilize flaky mongo tests (#59059) (#59071)
* stabilize flaky mongo tests

* replace mongo tag

Co-authored-by: Ryan Laurie <30528226+iethree@users.noreply.github.com>
2025-06-05 19:56:01 +00:00
github-automation-metabase
129edd96b3 Fix zoom drill for clicks on a joined PK column (#58204) (#58824)
* Fix zoom drill for clicks on a joined PK column

* Add lib.drill-thru.common.primary-key? and foreign-key? helpers

* Fix zoom and quick-filter drill for clicks on a joined PK column

* Remove unused imports

* Move source fields check into lib.drill-thru.common and revert changes in lib.metadata.calculation

* Remove trailing whitespace from docstring

* Lookup primary key in visible-columns ignoring joins rather than source-table fields

* Fix docstring

Co-authored-by: appleby <86076+appleby@users.noreply.github.com>
2025-06-05 19:02:52 +00:00
github-automation-metabase
02cc22b415 Fix before-and-after :join generative test (#58913) (#58980)
* 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-05 17:49:50 +00:00
github-automation-metabase
2bf5ddcb02 refactor(sdk): move auth functions to the auth-common module (#58557) (#59057)
Co-authored-by: Phoomparin Mano <poom@metabase.com>
2025-06-05 16:39:08 +00:00
github-automation-metabase
843afd1cbc docs: update offset limitations (#59056) (#59058)
* Update offset.md

* Update expressions-list.md

Co-authored-by: Alex Yarosh <alexandra@metabase.com>
2025-06-05 16:36:00 +00:00
github-automation-metabase
6d43aadbb2 Fix model sigma icon (#57989) (#59053)
Co-authored-by: Alexander Polyankin <alexander.polyankin@metabase.com>
2025-06-05 16:25:37 +00:00
github-automation-metabase
0e7dd5dcb7 🤖 backported "Make new "appdb" search engine the default starting with v55" (#58891)
* Make new "appdb" search engine the default starting with v55 (#58718)

* Skip broken sdk question temporarily

* Temporarily pass the test on SEARCH_ENGINE appdb backport

---------

Co-authored-by: Nathan Voxland <nathan@metabase.com>
Co-authored-by: Mahatthana (Kelvin) Nomsawadi <me@bboykelvin.dev>
2025-06-05 15:06:37 +00:00
github-automation-metabase
03edf415e2 fix: audit adjust to source handles nil schemas (#59003) (#59046)
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-05 14:42:53 +00:00
github-automation-metabase
9b483697a4 Closes VIZ-192: Goal line tooltip formatting does not match ticks formatting (#58805) (#59044)
* VIZ-192 Updates goal tooltip to use same formatting as y-axis (but ignores compact/auto formatting to ensure the goal value is represented accurately)

* VIZ-192 Adds support for formatting percentage-based goals (e.g. bar charts with "Stack - 100%" selected)

* VIZ-192 Updates getGoalLineHoverData to accept a formatGoal param rather than a chartModel per PR feedback

* VIZ-192 Adds e2e tests for goal value formatting

Co-authored-by: Brad Anderson <brad@metabase.com>
2025-06-05 14:09:58 +00:00
github-automation-metabase
ab5d43bed2 Closes VIZ-181: Negative values overlap with x-axis labels, making them unreadable (#58740) (#59042)
* VIZ-181 Adds boundaryGap to bar chart y-axis if it has negative values to ensure bar labels don’t overlap axis labels

* VIZ-181 Minor performance consideration; `ensureRoomForLabels` only checks `dataSeriesOptions` since "bar" series won't show up in other seriesOptions

* VIZ-181 Tweaks ensureRoomForLabels calculation

* VIZ-181 Adds unit tests for ensureRoomForLabels

Co-authored-by: Brad Anderson <brad@metabase.com>
2025-06-05 14:03:36 +00:00
github-automation-metabase
38712a7312 Randomize the timing of upgrade checks (#58701) (#58807)
Co-authored-by: John Swanson <john.swanson@metabase.com>
2025-06-05 12:30:12 +00:00
github-automation-metabase
767ad1eeef don't assume a keyset doesn't exist if the value it's set to is the same as it already has (#59032) (#59035)
Co-authored-by: Nicola Mometto <nicola.mometto@metabase.com>
2025-06-05 11:39:15 +00:00
github-automation-metabase
df0aab2fb0 Update SDK release workflow after 55 gold (#59016) (#59031)
Co-authored-by: Mahatthana (Kelvin) Nomsawadi <me@bboykelvin.dev>
2025-06-05 10:26:54 +00:00
Mahatthana (Kelvin) Nomsawadi
1abad61ec9 Remove package prerelease identifier after 55 gold (#59017) 2025-06-05 11:01:35 +01:00
github-automation-metabase
65507dce6d Apply filter correctly when clicking Contains... or Does not contain... quick filters (#58798) (#59025)
* 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 09:45:30 +00:00
github-automation-metabase
bde13d332b Remove data-editing API (#58955) (#59022)
This early API was unintentionally committed to master. See the
`internal-tools` branch for the working version.

Co-authored-by: Dan Stone <wotbrew@gmail.com>
2025-06-05 09:37:04 +00:00
github-automation-metabase
f657138b57 Disallow aggregations in filters and custom columns (#58839) (#59019)
* Add check for correct clauses for expression mode

* Add support helper to expressions/mode

* Do not show help text for unsupported functions

* Add repro for metabase#58230

* Add e2e test for not showing helptext for unsopported functions

* Allow value operator

* Pass expressionMode where needed

* Tranlate mode name in error message

* Avoid throwing in checkExpressionModeSupportsClause

Co-authored-by: Romeo Van Snick <romeo@romeovansnick.be>
2025-06-05 08:32:10 +00:00
github-automation-metabase
d05abc5d7c Ensure we use a different connection per have-select-privilege? call (#58620) (#59010)
* fix info formatting

* ensure exception is not swallowed

* Ensure we use a different connection per [[have-select-privilege?]] call.

This is to guard against databases (like Oracle) closing a connection when attempting
    to execute a priviledged select, causing subsequent calls to fail.

* adjust usage of snowflake driver

* adjust usage of postgres driver

* update tests

* more efficient: move filtering within db-tables

* add test

* add changes to driver changelog

* route through driver rather than jdbc, so athena doesn't fail

* ensure we're testing only the drivers using default jdbc impl

* expose wrapper, rename

Co-authored-by: Nicola Mometto <nicola.mometto@metabase.com>
2025-06-04 23:23:58 +00:00
github-automation-metabase
8faebeab23 Add the special empty viz state for native queries (#59001) (#59007)
Co-authored-by: Nemanja Glumac <31325167+nemanjaglumac@users.noreply.github.com>
2025-06-04 21:45:25 +00:00
github-automation-metabase
3ed601e3d7 PRG-53 add community translations notice (#58789) (#58997)
* PRG-53 add community translations notice

Enhance localization features by adding community translation links and descriptions across user profile, localization settings, and setup components.

* PRG-53 Refactor localization components to use CommunityLocalizationNotice

Replaced direct translation links and descriptions in UserProfileForm, LocalizationSettingsPage, and LanguageStep with the new CommunityLocalizationNotice component for improved code reuse and consistency.



* PRG-53 Use external link in the notice and add tests

* PRG-53 Fix e2e i18n test

* PRG-53 Prefer stack over brs, add a11y label, refactor export

* PRG-53 Improve cy selector to a semantic one

* PRG-53 Use hardcoded Metabase name in the setup flow

* PRG-53 use color name in color property

* PRG-53 use show-metabase-link setting

* PRG-53 Use Metabase original name for admin screens

* PRG-53 Add storybook stories

* PRG-53 Don't mention custom name in the translation when white labelling

* PRG-53 use static for crowdin link

* PRG-53 remove CommunityLocalizationNotice story

* PRG-53 Fix e2e i18n test

---------

Signed-off-by: Jakub Chodorowicz <jakub@chodorowicz.com>
Co-authored-by: Jakub Chodorowicz <jakub.chodorowicz@metabase.com>
2025-06-04 19:39:26 +00:00
github-automation-metabase
430922b074 add notIn entry (#58998) (#59000)
Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-06-04 19:33:57 +00:00
github-automation-metabase
b3b08f03b1 remove ai dashboard analysis (#58378) (#58988)
* remove ai dashboard analysis

* add back explaining dashcards

---------

Co-authored-by: Aleksandr Lesnenko <alxnddr@users.noreply.github.com>
Co-authored-by: Sloan Sparger <sloansparger@gmail.com>
2025-06-04 18:41:55 +00:00
github-automation-metabase
cc093e01c4 Closes VIZ-1051 no title menu for single source cards (#58797) (#58989)
* Closes VIZ-1051 no title menu for single source cards

* fix

Co-authored-by: Sébastien <sebastien@metabase.com>
2025-06-04 18:02:20 +00:00
github-automation-metabase
487bd5c5f9 fix: lookup cloud migration part keys (#58881) (#58990)
* 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: Filipe Silva <filipematossilva@gmail.com>
2025-06-04 18:01:16 +00:00
github-automation-metabase
fc9e7ed9b3 respect modularisation effort and use analytics.core (#58920) (#58986)
Co-authored-by: Nicola Mometto <nicola.mometto@metabase.com>
2025-06-04 17:48:15 +00:00
github-automation-metabase
2a738dac1f Fix 3 flaky tests (#58729) (#58983)
* 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: John Swanson <john.swanson@metabase.com>
Co-authored-by: Edward Paget <ed.paget@gmail.com>
2025-06-04 17:07:05 +00:00
github-automation-metabase
65809644ec Don't show schemas for destination databases (#58409) (#58636)
Co-authored-by: John Swanson <john.swanson@metabase.com>
2025-06-04 15:30:11 +00:00
Jeff Bruemmer
6a5407308e docs - 55 generated docs (#58960)
* update env var docs

* update config template

* api docs
2025-06-04 15:13:16 +00:00
github-automation-metabase
3edd5cc074 Add an option to opt in to multi-staged data picker (#58575) (#58948)
* 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:09:00 +00:00
github-automation-metabase
4d46f1fcec docs(sdk): Fix docs for new auth flow (#58776) (#58945)
Co-authored-by: Oisin Coveney <oisin@metabase.com>
Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-06-04 14:36:33 +00:00
github-automation-metabase
cbe1122bc0 Fix disappearing padding on filter (#58932) (#58944)
* Make padding consistent on different filter types

* Add repro for metabase#58923

Co-authored-by: Romeo Van Snick <romeo@romeovansnick.be>
2025-06-04 14:35:15 +00:00
github-automation-metabase
d1b72456b5 Closes viz-1053 UI polish on download popover (#58844) (#58940)
* closes viz-1053 UI polish on download popover

* addressed comments

Co-authored-by: Sébastien <sebastien@metabase.com>
2025-06-04 14:26:19 +00:00
github-automation-metabase
7f17e4270c use a much cheaper query in the snowflake driver to detect ability to connect (#58868) (#58936)
Co-authored-by: Nicola Mometto <nicola.mometto@metabase.com>
2025-06-04 14:10:43 +00:00
Anton Kulyk
204272ff3d Backport missing visualizer PRs (#58933) 2025-06-04 14:59:33 +01:00
github-automation-metabase
2a14cecbaf handle effective_type/coercions in fingerprinters (#58693) (#58926)
* add tests for SEM-3

* let fingerprinters respect ->Number coercers

* explicitely assert for supported coercions

* add test on fingerprinted supported coercions

Co-authored-by: Nicola Mometto <nicola.mometto@metabase.com>
2025-06-04 12:58:14 +00:00
github-automation-metabase
209204d8c2 add remember me to google sign in (#58239) (#58879)
* add remember me to google sign in

* UI adjustments

* assert that remember me checkbox is rendered with google button

* backend test that cooke expiration is set

* rollback model changes in BE test

* create user model and use with-model-cleanup

---------

Co-authored-by: Nick Fitzpatrick <nick@metabase.com>
Co-authored-by: Edward Paget <ed.paget@gmail.com>
2025-06-04 09:47:46 +00:00
github-automation-metabase
fe774afba1 add some snowplow events for semantic layer events (#58843) (#58919)
* track sync/scan on snowplow

* allow analytics in warehouse_schema

* some field analytics

* add tests

Co-authored-by: Nicola Mometto <nicola.mometto@metabase.com>
2025-06-04 09:44:30 +00:00
github-automation-metabase
c8023ad602 Don't show prompt to add duplicated model to dashboard (#54701) (#58906)
* Don't show prompt to add duplicated model to dashboard

Co-authored-by: Fraser <fraser@metabase.com>
2025-06-03 22:52:34 +00:00
github-automation-metabase
53ec18eb76 fix: prevent empty updated_at updates (#58811) (#58893)
Use cluster locking around both last_viewed_at and view_count updateds
for report_dashboard models.

Co-authored-by: Edward Paget <edpaget@users.noreply.github.com>
2025-06-03 21:46:47 +00:00
github-automation-metabase
59ad97bed9 docs - multi-catalog support for databricks (#58901) (#58903)
* multi-catalog support

* Update docs/databases/connections/databricks.md



* Update docs/databases/connections/databricks.md



* Update docs/databases/connections/databricks.md



---------

Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
Co-authored-by: Alex Yarosh <alexandra@metabase.com>
2025-06-03 21:40:26 +00:00
github-automation-metabase
120dd8e2f4 Always fully uncollapse pivots in exports (#58716) (#58726)
* 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

Co-authored-by: Noah Moss <32746338+noahmoss@users.noreply.github.com>
2025-06-03 14:17:39 -07:00
github-automation-metabase
b3ab893ae4 Correctly handle nil last-sync-started-at in gsheets response (#58661) (#58888)
Co-authored-by: Nathan Voxland <nathan@metabase.com>
2025-06-03 21:05:37 +00:00
github-automation-metabase
44ea22093a docs: custom expression support updates (#58895) (#58899)
* custom expression updates

* Apply suggestions from code review



* Apply suggestions from code review



---------

Co-authored-by: Alex Yarosh <alexandra@metabase.com>
Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-06-03 20:51:16 +00:00
github-automation-metabase
2af2c404a9 docs - remove export branding (#58897) (#58898)
* note on Metabase branding

* keyword

Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-06-03 20:49:09 +00:00
github-automation-metabase
b4b338c439 Short circuit on sync error (#58706) (#58880)
* update sync error handling to take into account `do-not-retry-exceptions?` as per its docstring

* add test

* introduce `with-returning-throwable`, use consistently

* update test

Co-authored-by: Nicola Mometto <nicola.mometto@metabase.com>
2025-06-03 20:44:14 +00:00
github-automation-metabase
f84fdc22d3 Remove LLM Autodescription Frontend (#58828) (#58890)
Co-authored-by: Ryan Laurie <30528226+iethree@users.noreply.github.com>
2025-06-03 18:22:40 +00:00
github-automation-metabase
1be7240919 Add galdre to internal team config (#58819) (#58877)
Co-authored-by: Timothy S. Dean <timothy@timothydean.dev>
2025-06-03 16:35:13 +00:00
github-automation-metabase
e6cc051a9f VIZ-1024 small polish items on visualizer (#58360) (#58870)
* closes VIZ-1024 more menu with only one item feels weird

* fixed e2e test

* removed dead code

Co-authored-by: Sébastien <sebastien@metabase.com>
2025-06-03 15:45:00 +00:00
github-automation-metabase
1dddbe1c59 docs - shortcuts (#58737) (#58861)
* keyboard shortcuts doc

* script to generate docs

* handle ctrl/cmd

* readme

* casing

* more casing

* revision

* note on menu

* message

* typo

* dir name

* update test

* Update docs/util/resources/introduction.md



* Update frontend/src/metabase/palette/shortcuts/question.ts



* edits

* update docs

* interpolate >

---------

Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
Co-authored-by: Alex Yarosh <alexandra@metabase.com>
2025-06-03 15:19:17 +00:00
github-automation-metabase
b9a9eaf903 Browser nav for model editor (#58786) (#58860)
* Change tab as well when url changes

* Do not get confused about editor height

* Add repro for metabase#55486

* Scope loading query

* Test forward button too

* Limit query

* Remove loading check altogether

Co-authored-by: Romeo Van Snick <romeo@romeovansnick.be>
2025-06-03 14:36:36 +00:00
Nemanja Glumac
a5203ae1a9 Remove transient "Getting started" section from the main sidebar in v55 (#58332)" (#58781)
This reverts commit 86350c8a04.
2025-06-03 16:29:17 +02:00
github-automation-metabase
29e4abf469 edit uploads (#58845) (#58859)
Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-06-03 14:12:07 +00:00
github-automation-metabase
c21f8dd652 docs - visualizer updates (#58604) (#58858)
Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-06-03 14:07:15 +00:00
github-automation-metabase
b52cf777c0 Adjust external column type sync (#58528) (#58736)
* Adjust external column types sync

* Adjust

* Typo

Co-authored-by: lbrdnk <lbrdnk@users.noreply.github.com>
2025-06-03 13:22:40 +00:00
github-automation-metabase
043ce92800 Fixup snowflake old dataset check (#58818) (#58832)
Error we were getting:

```
1. Unhandled net.snowflake.client.jdbc.SnowflakeSQLException
   The result set size exceeded the max number of rows(10000)
   supported for SHOW statements. Use LIMIT option to limit result set
   to a smaller number.
        SnowflakeUtil.java:  170  net.snowflake.client.jdbc.SnowflakeUtil/checkErrorAndThrowExceptionSub
        SnowflakeUtil.java:  102  net.snowflake.client.jdbc.SnowflakeUtil/checkErrorAndThrowException
             StmtUtil.java:  488  net.snowflake.client.core.StmtUtil/pollForOutput
             StmtUtil.java:  394  net.snowflake.client.core.StmtUtil/execute
          SFStatement.java:  502  net.snowflake.client.core.SFStatement/executeHelper
          SFStatement.java:  211  net.snowflake.client.core.SFStatement/executeQueryInternal
          SFStatement.java:  145  net.snowflake.client.core.SFStatement/executeQuery
          SFStatement.java:  779  net.snowflake.client.core.SFStatement/execute
          SFStatement.java:  697  net.snowflake.client.core.SFStatement/execute
 SnowflakeStatementV1.java:  293  net.snowflake.client.jdbc.SnowflakeStatementV1/executeQueryInternal
 SnowflakeStatementV1.java:  149  net.snowflake.client.jdbc.SnowflakeStatementV1/executeQuery
SnowflakeDatabaseMetaData.java: 1648  net.snowflake.client.jdbc.SnowflakeDatabaseMetaData/getCatalogs
                      REPL:  107  metabase.test.data.snowflake/old-dataset-names/fn
```

We do this in `old-dataset-names` by just calling `(.getCatalogs
metadata)` which runs
fa58e34968/src/main/java/net/snowflake/client/jdbc/SnowflakeDatabaseMetaData.java (L1644C21-L1644C90)
or

```sql
String showDB = "show /* JDBC:DatabaseMetaData.getCatalogs() */ databases in account";
```

I've modified that to have a limit and then run that
`jdbc/reducible-query` to get the names

Co-authored-by: dpsutton <dan@dpsutton.com>
2025-06-03 11:54:07 +00:00
github-automation-metabase
d8d35a1ae9 add logging for table filtering during sync (#58777) (#58836)
* add logging for table filtering

* make sure drivers also log schema exclusions

Co-authored-by: Nicola Mometto <nicola.mometto@metabase.com>
2025-06-03 11:04:17 +00:00
github-automation-metabase
f15f1931d1 Handle datetime extracted values in filters for xrays (#58725) (#58768)
Fixes #47196.

Co-authored-by: metamben <103100869+metamben@users.noreply.github.com>
2025-06-03 09:40:45 +00:00
github-automation-metabase
e53822a376 Reflect include-current option in filter name (#58662) (#58744)
* Reflect include-current option in filter name

Fixes #50139

Co-authored-by: metamben <103100869+metamben@users.noreply.github.com>
2025-06-03 09:36:55 +00:00
github-automation-metabase
4621879cd0 Ensure display-info returns correct :long-display-name for aggregations from a previous stage (#58614) (#58745)
* 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:50:40 +00:00
github-automation-metabase
0677067e6a Fixing strings for relative date params in subscriptions (#56471) (#58822)
* Fixing mapped user facing strings for relative date params in subscriptions and alerts

* Adding frontend fix + spec

* Changing 'is' to '->' in UI

* pr feedback

* e2e test fix

* use badges in oss sidebar; update pulse card rendering; test fixes

* test fix

* test fix

* pr feedback

Co-authored-by: Tyler Plude <tsplude@gmail.com>
2025-06-03 00:12:46 +00:00
github-automation-metabase
864576de3e docs - pivot table exports (#58660) (#58813)
Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-06-02 21:13:35 +00:00
github-automation-metabase
5fc643d77b Mega App DB memory usage improvements (#58664) (#58685)
* 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

Co-authored-by: Cam Saul <1455846+camsaul@users.noreply.github.com>
2025-06-02 17:14:02 +00:00
github-automation-metabase
d6198703cb Don't create mega queries when deleting databases (#58491) (#58535) (#58684)
* Don't create mega queries when deleting databases (#58491)

* Improved fix

* Don't require new migrations to have preconditions (this is bad)

* Remove test

* Revert migrations

* Manually set Field.parent_id = NULL for all Fields in a Database when deleting a Database

* Tweak query for MySQL

* Yet another fix 🔧

* `IS NULL` => `IS NOT NULL`

* Give up on trying to find a nice fix

* MySQL fix

* MySQL fix (for real)

Co-authored-by: Cam Saul <1455846+camsaul@users.noreply.github.com>
2025-06-02 17:04:56 +00:00
github-automation-metabase
92c856255f feat: move native query sidebar icons to the header (#58501) (#58800)
* feat: move native query sidebar icons to the header

* fix unit test

* fix tests

* cleanup

* fix svg icon

* align items to the top

* rename action-editor-sidebar to action-editor-action-buttons

* address review

* fix styles

* fix styles

* review

Co-authored-by: Uladzimir Havenchyk <125459446+uladzimirdev@users.noreply.github.com>
2025-06-02 16:44:11 +00:00
github-automation-metabase
9ae566a7cf use string literals for i18n context (#58784) (#58793)
Co-authored-by: Ryan Laurie <30528226+iethree@users.noreply.github.com>
2025-06-02 16:20:12 +00:00
github-automation-metabase
ea5bdc690a docs - download button for static embeds (#58707) (#58792)
Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-06-02 14:15:24 +00:00
github-automation-metabase
65e01a51b2 Update data-sandboxes.md (#58754) (#58790)
Co-authored-by: Alex Yarosh <alexandra@metabase.com>
2025-06-02 14:07:12 +00:00
github-automation-metabase
3d593d7a92 sentence case (#58681) (#58711)
Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-06-02 13:59:42 +00:00
github-automation-metabase
bdbc5c327d test: wait for card data in a flaky test (#58778) (#58783)
Co-authored-by: Uladzimir Havenchyk <125459446+uladzimirdev@users.noreply.github.com>
2025-06-02 12:54:38 +00:00
github-automation-metabase
95514e8d42 fix currency formatting bug (#58733) (#58782)
Co-authored-by: Ryan Laurie <30528226+iethree@users.noreply.github.com>
2025-06-02 12:46:14 +00:00
github-automation-metabase
019b3ad302 Deduplicate binning information (#58587) (#58774)
* Remove binning from pinned items

* Add reproduction for metabase#57697

* Revert "Remove binning from pinned items"

This reverts commit aa2d4abbb4472b835dee901ce7ac36c4bc43cd5e.

* Remove binning from column when calculating displayname

Co-authored-by: Romeo Van Snick <romeo@romeovansnick.be>
2025-06-02 09:49:10 +00:00
github-automation-metabase
d4552b8708 Reproduction for missing hyphen in formatting in joined columns (#58574) (#58775)
* Add repro for metabase#58371

* Add unit test to reproduce metabase#58371

Co-authored-by: Romeo Van Snick <romeo@romeovansnick.be>
2025-06-02 09:33:46 +00:00
github-automation-metabase
5996fc21d6 Fix embarrassing styling in Data Reference (#58544) (#58751)
* 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:36:33 +00:00
github-automation-metabase
c60ab340fe feat: api and models for managing metabot entities (#58168) (#58728)
* feat: api and models for managing metabot entities

* Add stubs

* Add models; liquibase migration; ...

and other model incantations

* tests for api

* Update h2 copy

* rename model to dataset

* Add fk constraint after indexes

* Wrap tests with with premium feature

* Add seed migration; drop unused index

* Update API to wrap in items instead of data

* Update model tests for column names

* Pass remaining serdes tests

* Reorder migrations

* serdes fixes

* correct api to remove metabot_model_entity_id

Handle root collection

* fix mistake in merge

* Replace remaining missing metabot_model_entity_id

* Update generated baselines

* fix rollback sql syntax

* update api to support collections

* update serdes for collections in metabot entities

* fix precondition for loading metabots

* fix cleanup metabot table before list endpoint test

* fix whitespace

* fix serialization tests

* fixup! change migration version to 56

* fixup! remove remaining no-metabot tags

* fixup! super nit

* fixup! move api into new namespace

make /metabot API routes singular

* fixup! better combine routes

Co-authored-by: Edward Paget <edpaget@users.noreply.github.com>
2025-05-31 05:02:41 +00:00
github-automation-metabase
5f70f21049 Metabot Admin - Folder Edition (#58316) (#58748)
* Add models; liquibase migration; ...

and other model incantations

* Add fk constraint after indexes

* Update model tests for column names

* serdes fixes

* Replace remaining missing metabot_model_entity_id

* Update generated baselines

* fix serialization tests

* initial implementation

* make the api match

* wip

* align types with API

* improved routing

* empty state

* cleanup and tests

* pivot to collection picking

* no personal collection

* update tests

* remove defunct table changes

* fix conflicts

* add copy for embedded metabot

* linter appeasement program

* linter appeasement program

* linter appeasement program

* update api

* no thank you migration

* un-un-un revert some stuff

* address review comments

---------

Co-authored-by: Ryan Laurie <30528226+iethree@users.noreply.github.com>
Co-authored-by: Edward Paget <ed.paget@gmail.com>
2025-05-31 01:31:45 +00:00
github-automation-metabase
4be18fa874 fix: no log on migrations without a rollback (#58577) (#58734)
Co-authored-by: Edward Paget <edpaget@users.noreply.github.com>
2025-05-30 20:50:08 +00:00
github-automation-metabase
b0e7978dbc Use better icons in filter popover (#58377) (#58739)
Co-authored-by: Raphael Krut-Landau <raphael.kl@gmail.com>
2025-05-30 20:08:35 +00:00
github-automation-metabase
04cda66324 remove starts (#58731) (#58732)
Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-05-30 19:22:19 +00:00
github-automation-metabase
819b59ec3c More improvements to CLJS bundle size (#58702) (#58719)
* cljs: Make currency definitions more compact

Useful for reducing CLJS bundle size.

* cljs: Use unquoted functions in metabase.lib.drill-thru

* cljs: Make var re-exporting leaner in CLJS

Co-authored-by: Oleksandr Yakushev <alex@bytopia.org>
2025-05-30 18:26:08 +00:00
github-automation-metabase
25a78a355f feat(sdk): ability to specify preferred authentication method (#58641) (#58720)
Co-authored-by: Phoomparin Mano <poom@metabase.com>
Co-authored-by: Mahatthana (Kelvin) Nomsawadi <me@bboykelvin.dev>
2025-05-30 17:00:17 +00:00
github-automation-metabase
d9b586cbdd VIZ-327 Updates styling and text for cryptic "unknown map" error message (#58540) (#58715)
Co-authored-by: Brad Anderson <brad@metabase.com>
2025-05-30 15:57:16 +00:00
github-automation-metabase
ddf035ab89 [HOTFIX] Metabot requests causing interactive embedding to improperly redirect (#58687) (#58708)
* prevent Metabot from making a request for suggested prompts if no user is logged in to prevent auth redirect

* this fix is better

* add code comment

* reference PR in code comment

* revert unneeded change

Co-authored-by: Sloan Sparger <sloansparger@users.noreply.github.com>
2025-05-30 14:39:40 +00:00
github-automation-metabase
33ed416293 Update adminAppState mock to remove isNoticeEnabled (#58633) (#58640)
Co-authored-by: Ryan Laurie <30528226+iethree@users.noreply.github.com>
2025-05-30 12:24:25 +00:00
github-automation-metabase
809ce3192f Update SDK JWT auth docs (#58692) (#58694)
Co-authored-by: Timofey Kachalov <timofei@metabase.com>
2025-05-30 10:17:42 +00:00
github-automation-metabase
d9ff58371a Fix nextjs dependency (#58584) (#58616)
Co-authored-by: Timofey Kachalov <timofei@metabase.com>
2025-05-30 08:28:41 +00:00
github-automation-metabase
62534528cd Improve error handling in gsheets integration (#58439) (#58679)
* Improve error UI for gsheets (#58594)

---------

Co-authored-by: Nathan Voxland <nathan@metabase.com>
Co-authored-by: Ryan Laurie <30528226+iethree@users.noreply.github.com>
2025-05-29 21:07:11 +00:00
github-automation-metabase
6d55c3c859 fix: data perms test to set schemas for tables (#58671) (#58677)
Co-authored-by: Edward Paget <edpaget@users.noreply.github.com>
2025-05-29 20:57:10 +00:00
github-automation-metabase
202de96d98 Generate valid multi arg string filters in parameter chaining (#58646) (#58674)
Fixes #57287

Co-authored-by: metamben <103100869+metamben@users.noreply.github.com>
2025-05-29 20:37:05 +00:00
github-automation-metabase
40bcc8ce13 docs - boolean filter (#58678) (#58680)
* george boole

* image

* auto-apply filters

Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
2025-05-29 20:28:01 +00:00
github-automation-metabase
8ddaba0bee Surface Group API error messages, update components (#58494) (#58667)
* surface API error messages, update components

* use <ConfirmModal>

Co-authored-by: Nick Fitzpatrick <nick@metabase.com>
2025-05-29 18:45:52 +00:00
github-automation-metabase
ec9c7c8259 Optimize version info fetching (#58000) (#58600)
* optimize version info fetching

* fix type

Co-authored-by: Ryan Laurie <30528226+iethree@users.noreply.github.com>
2025-05-29 18:22:02 +00:00
github-automation-metabase
c0b7a52d81 Fix fail-y downloads tests (#58652) (#58663)
* fix fail-y downloads tests

* stabilize flake

Co-authored-by: Ryan Laurie <30528226+iethree@users.noreply.github.com>
2025-05-29 18:21:38 +00:00
github-automation-metabase
a35f60bb2f fix: audit-db adjust source check for lower case (#58605) (#58653)
Co-authored-by: Edward Paget <edpaget@users.noreply.github.com>
2025-05-29 18:11:00 +00:00
github-automation-metabase
7d28a7f45e Add embed options for templates to new iframe embedding (#58338) (#58656)
Co-authored-by: Phoomparin Mano <poom@metabase.com>
2025-05-29 16:58:05 +00:00
github-automation-metabase
aacf902b64 Don't Require tech-writer review for developers guide docs (#58658) (#58659)
adding a diretory without an owner after a parent directory with an owner should exclude it from code ownership

Co-authored-by: Ryan Laurie <30528226+iethree@users.noreply.github.com>
2025-05-29 16:46:53 +00:00
github-automation-metabase
ec8ab6a4f1 Add text comparison support for ClickHouse UUIDs (#58576) (#58596)
* allow rerunning clickhouse field filter test

* add proper uuid support for clickhouse

* require left-join feature for join test

* cleanup

Co-authored-by: Riley Thompson <riley@metabase.com>
2025-05-29 16:45:18 +00:00
github-automation-metabase
17702007f3 fix: set download-results to no on table block (#58597) (#58609)
* 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

Co-authored-by: Edward Paget <edpaget@users.noreply.github.com>
2025-05-29 16:14:01 +00:00
Mahatthana (Kelvin) Nomsawadi
8b6ef378dc Fix SDK cross version tests getting version number from other prerelease labels (#58638)
* Fix SDK cross version tests getting version number from other prerelease labels

* Make the code easier to read

* Fix test names

* Make code even easier to read

* Fix Englizh

* Remove unnecessary console.log

* Simplify code even moarrrrrrr
2025-05-29 16:13:39 +01:00
github-automation-metabase
c6b5bc19e5 Sem 258 identifier case sensitivity (#58515) (#58562)
* be case-sensitive during sync

* add SEM-258 test

* extract to top-level fn with docstring

Co-authored-by: Nicola Mometto <nicola.mometto@metabase.com>
2025-05-29 12:52:13 +00:00
Phoomparin Mano
8dcf84b8ad ci(sdk): restore package.json version to 0.55.1-nightly (#58624) 2025-05-29 11:53:22 +00:00
github-automation-metabase
20cd1b6387 Export UserBackendJwtResponse from SDK (#58589) (#58595)
Co-authored-by: Timofey Kachalov <timofei@metabase.com>
2025-05-28 20:31:29 +00:00
github-automation-metabase
414fc65262 fix: sqlserver properly convey ssh-tunnel details to connection-pool cache (#58309) (#58586)
* fix: drivers properly convey ssh-tunnel details to connection-pool cache

Co-authored-by: Case Nelson <case@metabase.com>
2025-05-28 19:59:42 +00:00
github-automation-metabase
50a80ee809 Center radio label wrappers, vertically (#58389) (#58565)
Co-authored-by: Raphael Krut-Landau <raphael.kl@gmail.com>
2025-05-28 14:00:09 +00:00
github-automation-metabase
372aaec236 chore: add chodorowicz as a team member (#58555) (#58560)
Co-authored-by: Jakub Chodorowicz <jakub.chodorowicz@metabase.com>
2025-05-28 10:12:30 +00:00
949 changed files with 24712 additions and 9975 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -28,6 +28,7 @@
database-enable-actions
deprecation-notice-version
dismissed-custom-dashboard-toast
dismissed-onboarding-sidebar-link
email-configured?
email-from-address
email-from-name

1
.github/CODEOWNERS vendored
View File

@@ -13,6 +13,7 @@ src/metabase/analytics/prometheus.clj @metabase/cloud-ops
deps.edn @metabase/backend-developers
docs @metabase/tech-writers
docs/developers-guide # exclude from tech-writer ownership
#
# Backend modules <=> teams that own them

View File

@@ -38,3 +38,10 @@ runs:
list-suites: failed
list-tests: failed
fail-on-error: false
- name: Upload Logs on Failure
if: failure()
uses: actions/upload-artifact@v4
with:
name: test-logs-${{ github.job }}
path: logs/test-log.json
retention-days: 1

View File

@@ -40,6 +40,7 @@ frontend_specs: &frontend_specs
- "frontend/test/**"
- "frontend/**/tests/**"
- "frontend/**/*.unit.*"
- "enterprise/frontend/**/*.unit.*"
- ".github/**/*.unit.spec.*"
- "jest.config.js"
- "jest.tz.unit.conf.json"

10
.github/team.json vendored
View File

@@ -11,7 +11,8 @@
"appleby",
"uladzimirdev",
"wzimrin",
"ericnormand"
"ericnormand",
"galdre"
]
},
{
@@ -99,7 +100,12 @@
{
"name": "Product Growth",
"label": ".Team/ProductGrowth",
"members": ["nemanjaglumac"]
"members": ["nemanjaglumac", "chodorowicz"]
},
{
"name": "Cloud",
"label": "cloud",
"members": []
}
]
}

View File

@@ -153,6 +153,14 @@ jobs:
list-tests: failed
fail-on-error: false
- name: Upload Logs on Failure
if: failure()
uses: actions/upload-artifact@v4
with:
name: test-logs-${{ matrix.java-version }}-${{ matrix.job.edition }}-${{ github.job }}
path: logs/test-log.json
retention-days: 1
# checks that all the namespaces we actually ship can be compiled, without any dependencies that we don't ship (such
# as `:dev` dependencies). See #27009 for more context.
be-check:

View File

@@ -1,13 +1,23 @@
name: Docs Bump Detected
on:
pull_request:
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: |
@@ -15,20 +25,13 @@ jobs:
- name: Trigger repo dispatch
uses: actions/github-script@v7
env:
BRANCH_NAME: ${{ github.head_ref || github.ref }}
with:
github-token: ${{ secrets.METABASE_AUTOMATION_USER_TOKEN }}
script: | #js
if (process.env.BRANCH_NAME === "master" ||
/^release-x\.\d+\.x$/.test(process.env.BRANCH_NAME)) {
github.rest.repos.createDispatchEvent({
owner: "${{ github.repository_owner }}",
repo: "docs.metabase.github.io",
event_type: "docs_update",
client_payload: { branch_name: process.env.BRANCH_NAME
}
});
} else {
console.log("Branch name is not to be published: ", process.env.BRANCH_NAME);
}
client_payload: {
source_branch: process.env.SOURCE_BRANCH,
target_branch: process.env.TARGET_BRANCH}});

View File

@@ -1,35 +1,36 @@
name: Docs Merge Detected
on:
push:
pull_request:
types:
- closed
branches:
- master
- 'master'
- 'release-x.[0-9]+.x'
paths:
- 'docs/**'
jobs:
push_workflow_to_docs_metabase_github_io_job_merge:
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 change in the docs directory was detected on merge."
echo "A PR with changes to the docs directory was merged."
- name: Trigger repo dispatch
uses: actions/github-script@v7
env:
BRANCH_NAME: ${{ github.head_ref || github.ref }}
with:
github-token: ${{ secrets.METABASE_AUTOMATION_USER_TOKEN }}
script: | #js
if (process.env.BRANCH_NAME === "master" ||
/^release-x\.\d+\.x$/.test(process.env.BRANCH_NAME)) {
github.rest.repos.createDispatchEvent({
github.rest.repos.createDispatchEvent({
owner: "${{ github.repository_owner }}",
repo: "docs.metabase.github.io",
event_type: "docs_merge",
client_payload: { branch_name: process.env.BRANCH_NAME }
});
} else {
console.log("Branch name is not to be published: ", process.env.BRANCH_NAME);
}
client_payload: {
source_branch: process.env.SOURCE_BRANCH,
target_branch: process.env.TARGET_BRANCH}});

View File

@@ -227,6 +227,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

@@ -2,7 +2,9 @@ name: Embedding SDK
on:
push:
branches:
- "master"
- "release-**"
pull_request:
types: [opened, synchronize, reopened]

View File

@@ -15,7 +15,7 @@ on:
- release-x.52.x
- release-x.53.x
- release-x.54.x
- metabot-v3-main
- release-x.55.x
- esbuild-main
concurrency:
@@ -393,10 +393,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", "release-x.54.x": "54-stable", "metabot-v3-main": "55-metabot", "esbuild-main": "56-esbuild"}')[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", "release-x.55.x": "55-stable", "esbuild-main": "56-esbuild"}')[inputs.branch]}}
- name: Add `latest` tag to the latest release branch (`release-x.54.x`) deployment
if: ${{ inputs.branch == 'release-x.54.x' }}
- name: Add `latest` tag to the latest release branch (`release-x.55.x`) deployment
if: ${{ inputs.branch == 'release-x.55.x' }}
working-directory: sdk
run: |
npm dist-tag add @metabase/embedding-sdk-react@${{ env.sdk_version }} latest

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 75 KiB

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 KiB

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 133 KiB

After

Width:  |  Height:  |  Size: 133 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 116 KiB

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 112 KiB

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 KiB

After

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 112 KiB

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 167 KiB

After

Width:  |  Height:  |  Size: 167 KiB

View File

@@ -9,6 +9,6 @@
"express": "^5.0.1",
"express-session": "^1.18.1",
"jsonwebtoken": "^9.0.2",
"next": "^15.2.2"
"next": "^15.2.3"
}
}

View File

@@ -2,170 +2,180 @@
# yarn lockfile v1
"@emnapi/runtime@^1.2.0":
version "1.3.1"
resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.3.1.tgz#0fcaa575afc31f455fd33534c19381cfce6c6f60"
integrity sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==
"@emnapi/runtime@^1.4.3":
version "1.4.3"
resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.4.3.tgz#c0564665c80dc81c448adac23f9dfbed6c838f7d"
integrity sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==
dependencies:
tslib "^2.4.0"
"@img/sharp-darwin-arm64@0.33.5":
version "0.33.5"
resolved "https://registry.yarnpkg.com/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz#ef5b5a07862805f1e8145a377c8ba6e98813ca08"
integrity sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==
"@img/sharp-darwin-arm64@0.34.2":
version "0.34.2"
resolved "https://registry.yarnpkg.com/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.2.tgz#65049ef7c6be7857da742cd028f97602ce209635"
integrity sha512-OfXHZPppddivUJnqyKoi5YVeHRkkNE2zUFT2gbpKxp/JZCFYEYubnMg+gOp6lWfasPrTS+KPosKqdI+ELYVDtg==
optionalDependencies:
"@img/sharp-libvips-darwin-arm64" "1.0.4"
"@img/sharp-libvips-darwin-arm64" "1.1.0"
"@img/sharp-darwin-x64@0.33.5":
version "0.33.5"
resolved "https://registry.yarnpkg.com/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz#e03d3451cd9e664faa72948cc70a403ea4063d61"
integrity sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==
"@img/sharp-darwin-x64@0.34.2":
version "0.34.2"
resolved "https://registry.yarnpkg.com/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.2.tgz#d37ff7c75c46d5a68a3756e3f1924ef7ca7b285e"
integrity sha512-dYvWqmjU9VxqXmjEtjmvHnGqF8GrVjM2Epj9rJ6BUIXvk8slvNDJbhGFvIoXzkDhrJC2jUxNLz/GUjjvSzfw+g==
optionalDependencies:
"@img/sharp-libvips-darwin-x64" "1.0.4"
"@img/sharp-libvips-darwin-x64" "1.1.0"
"@img/sharp-libvips-darwin-arm64@1.0.4":
version "1.0.4"
resolved "https://registry.yarnpkg.com/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz#447c5026700c01a993c7804eb8af5f6e9868c07f"
integrity sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==
"@img/sharp-libvips-darwin-arm64@1.1.0":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.1.0.tgz#843f7c09c7245dc0d3cfec2b3c83bb08799a704f"
integrity sha512-HZ/JUmPwrJSoM4DIQPv/BfNh9yrOA8tlBbqbLz4JZ5uew2+o22Ik+tHQJcih7QJuSa0zo5coHTfD5J8inqj9DA==
"@img/sharp-libvips-darwin-x64@1.0.4":
version "1.0.4"
resolved "https://registry.yarnpkg.com/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz#e0456f8f7c623f9dbfbdc77383caa72281d86062"
integrity sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==
"@img/sharp-libvips-darwin-x64@1.1.0":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.1.0.tgz#1239c24426c06a8e833815562f78047a3bfbaaf8"
integrity sha512-Xzc2ToEmHN+hfvsl9wja0RlnXEgpKNmftriQp6XzY/RaSfwD9th+MSh0WQKzUreLKKINb3afirxW7A0fz2YWuQ==
"@img/sharp-libvips-linux-arm64@1.0.4":
version "1.0.4"
resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz#979b1c66c9a91f7ff2893556ef267f90ebe51704"
integrity sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==
"@img/sharp-libvips-linux-arm64@1.1.0":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.1.0.tgz#20d276cefd903ee483f0441ba35961679c286315"
integrity sha512-IVfGJa7gjChDET1dK9SekxFFdflarnUB8PwW8aGwEoF3oAsSDuNUTYS+SKDOyOJxQyDC1aPFMuRYLoDInyV9Ew==
"@img/sharp-libvips-linux-arm@1.0.5":
version "1.0.5"
resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz#99f922d4e15216ec205dcb6891b721bfd2884197"
integrity sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==
"@img/sharp-libvips-linux-arm@1.1.0":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.1.0.tgz#067c0b566eae8063738cf1b1db8f8a8573b5465c"
integrity sha512-s8BAd0lwUIvYCJyRdFqvsj+BJIpDBSxs6ivrOPm/R7piTs5UIwY5OjXrP2bqXC9/moGsyRa37eYWYCOGVXxVrA==
"@img/sharp-libvips-linux-s390x@1.0.4":
version "1.0.4"
resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz#f8a5eb1f374a082f72b3f45e2fb25b8118a8a5ce"
integrity sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==
"@img/sharp-libvips-linux-ppc64@1.1.0":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.1.0.tgz#682334595f2ca00e0a07a675ba170af165162802"
integrity sha512-tiXxFZFbhnkWE2LA8oQj7KYR+bWBkiV2nilRldT7bqoEZ4HiDOcePr9wVDAZPi/Id5fT1oY9iGnDq20cwUz8lQ==
"@img/sharp-libvips-linux-x64@1.0.4":
version "1.0.4"
resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz#d4c4619cdd157774906e15770ee119931c7ef5e0"
integrity sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==
"@img/sharp-libvips-linux-s390x@1.1.0":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.1.0.tgz#82fcd68444b3666384235279c145c2b28d8ee302"
integrity sha512-xukSwvhguw7COyzvmjydRb3x/09+21HykyapcZchiCUkTThEQEOMtBj9UhkaBRLuBrgLFzQ2wbxdeCCJW/jgJA==
"@img/sharp-libvips-linuxmusl-arm64@1.0.4":
version "1.0.4"
resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz#166778da0f48dd2bded1fa3033cee6b588f0d5d5"
integrity sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==
"@img/sharp-libvips-linux-x64@1.1.0":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.1.0.tgz#65b2b908bf47156b0724fde9095676c83a18cf5a"
integrity sha512-yRj2+reB8iMg9W5sULM3S74jVS7zqSzHG3Ol/twnAAkAhnGQnpjj6e4ayUz7V+FpKypwgs82xbRdYtchTTUB+Q==
"@img/sharp-libvips-linuxmusl-x64@1.0.4":
version "1.0.4"
resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz#93794e4d7720b077fcad3e02982f2f1c246751ff"
integrity sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==
"@img/sharp-libvips-linuxmusl-arm64@1.1.0":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.1.0.tgz#72accf924e80b081c8db83b900b444a67c203f01"
integrity sha512-jYZdG+whg0MDK+q2COKbYidaqW/WTz0cc1E+tMAusiDygrM4ypmSCjOJPmFTvHHJ8j/6cAGyeDWZOsK06tP33w==
"@img/sharp-linux-arm64@0.33.5":
version "0.33.5"
resolved "https://registry.yarnpkg.com/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz#edb0697e7a8279c9fc829a60fc35644c4839bb22"
integrity sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==
"@img/sharp-libvips-linuxmusl-x64@1.1.0":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.1.0.tgz#1fa052737e203f46bf44192acd01f9faf11522d7"
integrity sha512-wK7SBdwrAiycjXdkPnGCPLjYb9lD4l6Ze2gSdAGVZrEL05AOUJESWU2lhlC+Ffn5/G+VKuSm6zzbQSzFX/P65A==
"@img/sharp-linux-arm64@0.34.2":
version "0.34.2"
resolved "https://registry.yarnpkg.com/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.2.tgz#c9690fac5f3137eaab3f7ad6065390d10f66f1fa"
integrity sha512-D8n8wgWmPDakc83LORcfJepdOSN6MvWNzzz2ux0MnIbOqdieRZwVYY32zxVx+IFUT8er5KPcyU3XXsn+GzG/0Q==
optionalDependencies:
"@img/sharp-libvips-linux-arm64" "1.0.4"
"@img/sharp-libvips-linux-arm64" "1.1.0"
"@img/sharp-linux-arm@0.33.5":
version "0.33.5"
resolved "https://registry.yarnpkg.com/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz#422c1a352e7b5832842577dc51602bcd5b6f5eff"
integrity sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==
"@img/sharp-linux-arm@0.34.2":
version "0.34.2"
resolved "https://registry.yarnpkg.com/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.2.tgz#771dd2ec645f85f98441359bfc118afaf38cbd8b"
integrity sha512-0DZzkvuEOqQUP9mo2kjjKNok5AmnOr1jB2XYjkaoNRwpAYMDzRmAqUIa1nRi58S2WswqSfPOWLNOr0FDT3H5RQ==
optionalDependencies:
"@img/sharp-libvips-linux-arm" "1.0.5"
"@img/sharp-libvips-linux-arm" "1.1.0"
"@img/sharp-linux-s390x@0.33.5":
version "0.33.5"
resolved "https://registry.yarnpkg.com/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz#f5c077926b48e97e4a04d004dfaf175972059667"
integrity sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==
"@img/sharp-linux-s390x@0.34.2":
version "0.34.2"
resolved "https://registry.yarnpkg.com/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.2.tgz#82132d158abff57bd90b53574f2865f72f94e6c8"
integrity sha512-EGZ1xwhBI7dNISwxjChqBGELCWMGDvmxZXKjQRuqMrakhO8QoMgqCrdjnAqJq/CScxfRn+Bb7suXBElKQpPDiw==
optionalDependencies:
"@img/sharp-libvips-linux-s390x" "1.0.4"
"@img/sharp-libvips-linux-s390x" "1.1.0"
"@img/sharp-linux-x64@0.33.5":
version "0.33.5"
resolved "https://registry.yarnpkg.com/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz#d806e0afd71ae6775cc87f0da8f2d03a7c2209cb"
integrity sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==
"@img/sharp-linux-x64@0.34.2":
version "0.34.2"
resolved "https://registry.yarnpkg.com/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.2.tgz#d815fb87899d462b28b62a9252ad127f02fe0740"
integrity sha512-sD7J+h5nFLMMmOXYH4DD9UtSNBD05tWSSdWAcEyzqW8Cn5UxXvsHAxmxSesYUsTOBmUnjtxghKDl15EvfqLFbQ==
optionalDependencies:
"@img/sharp-libvips-linux-x64" "1.0.4"
"@img/sharp-libvips-linux-x64" "1.1.0"
"@img/sharp-linuxmusl-arm64@0.33.5":
version "0.33.5"
resolved "https://registry.yarnpkg.com/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz#252975b915894fb315af5deea174651e208d3d6b"
integrity sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==
"@img/sharp-linuxmusl-arm64@0.34.2":
version "0.34.2"
resolved "https://registry.yarnpkg.com/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.2.tgz#cfac45b2abbc04628f676e123bfe3aeb300266c7"
integrity sha512-NEE2vQ6wcxYav1/A22OOxoSOGiKnNmDzCYFOZ949xFmrWZOVII1Bp3NqVVpvj+3UeHMFyN5eP/V5hzViQ5CZNA==
optionalDependencies:
"@img/sharp-libvips-linuxmusl-arm64" "1.0.4"
"@img/sharp-libvips-linuxmusl-arm64" "1.1.0"
"@img/sharp-linuxmusl-x64@0.33.5":
version "0.33.5"
resolved "https://registry.yarnpkg.com/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz#3f4609ac5d8ef8ec7dadee80b560961a60fd4f48"
integrity sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==
"@img/sharp-linuxmusl-x64@0.34.2":
version "0.34.2"
resolved "https://registry.yarnpkg.com/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.2.tgz#b876c23ff51d0fb6d9f3b0a07e2f4d1436c203ad"
integrity sha512-DOYMrDm5E6/8bm/yQLCWyuDJwUnlevR8xtF8bs+gjZ7cyUNYXiSf/E8Kp0Ss5xasIaXSHzb888V1BE4i1hFhAA==
optionalDependencies:
"@img/sharp-libvips-linuxmusl-x64" "1.0.4"
"@img/sharp-libvips-linuxmusl-x64" "1.1.0"
"@img/sharp-wasm32@0.33.5":
version "0.33.5"
resolved "https://registry.yarnpkg.com/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz#6f44f3283069d935bb5ca5813153572f3e6f61a1"
integrity sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==
"@img/sharp-wasm32@0.34.2":
version "0.34.2"
resolved "https://registry.yarnpkg.com/@img/sharp-wasm32/-/sharp-wasm32-0.34.2.tgz#b1dd0bab547dccf517586eb1fa5852160bba3b82"
integrity sha512-/VI4mdlJ9zkaq53MbIG6rZY+QRN3MLbR6usYlgITEzi4Rpx5S6LFKsycOQjkOGmqTNmkIdLjEvooFKwww6OpdQ==
dependencies:
"@emnapi/runtime" "^1.2.0"
"@emnapi/runtime" "^1.4.3"
"@img/sharp-win32-ia32@0.33.5":
version "0.33.5"
resolved "https://registry.yarnpkg.com/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz#1a0c839a40c5351e9885628c85f2e5dfd02b52a9"
integrity sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==
"@img/sharp-win32-arm64@0.34.2":
version "0.34.2"
resolved "https://registry.yarnpkg.com/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.2.tgz#f37bee0f60c167f825a09d2b8de6849b823e8b30"
integrity sha512-cfP/r9FdS63VA5k0xiqaNaEoGxBg9k7uE+RQGzuK9fHt7jib4zAVVseR9LsE4gJcNWgT6APKMNnCcnyOtmSEUQ==
"@img/sharp-win32-x64@0.33.5":
version "0.33.5"
resolved "https://registry.yarnpkg.com/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz#56f00962ff0c4e0eb93d34a047d29fa995e3e342"
integrity sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==
"@img/sharp-win32-ia32@0.34.2":
version "0.34.2"
resolved "https://registry.yarnpkg.com/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.2.tgz#8fc30b6655bc6ff8910344a2020d334aa6361672"
integrity sha512-QLjGGvAbj0X/FXl8n1WbtQ6iVBpWU7JO94u/P2M4a8CFYsvQi4GW2mRy/JqkRx0qpBzaOdKJKw8uc930EX2AHw==
"@next/env@15.2.2":
version "15.2.2"
resolved "https://registry.yarnpkg.com/@next/env/-/env-15.2.2.tgz#6345352365a811c523cecf284874ff489b675e59"
integrity sha512-yWgopCfA9XDR8ZH3taB5nRKtKJ1Q5fYsTOuYkzIIoS8TJ0UAUKAGF73JnGszbjk2ufAQDj6mDdgsJAFx5CLtYQ==
"@img/sharp-win32-x64@0.34.2":
version "0.34.2"
resolved "https://registry.yarnpkg.com/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.2.tgz#ecf19250f8fe35de684aa2b0ec6f773b3447247b"
integrity sha512-aUdT6zEYtDKCaxkofmmJDJYGCf0+pJg3eU9/oBuqvEeoB9dKI6ZLc/1iLJCTuJQDO4ptntAlkUmHgGjyuobZbw==
"@next/swc-darwin-arm64@15.2.2":
version "15.2.2"
resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.2.2.tgz#d3131279d4815ed7604eba7bf0063e0b8bfd2135"
integrity sha512-HNBRnz+bkZ+KfyOExpUxTMR0Ow8nkkcE6IlsdEa9W/rI7gefud19+Sn1xYKwB9pdCdxIP1lPru/ZfjfA+iT8pw==
"@next/env@15.3.2":
version "15.3.2"
resolved "https://registry.yarnpkg.com/@next/env/-/env-15.3.2.tgz#7143eafa9b11cfdf3d3c7318b0facb9dfdb2948f"
integrity sha512-xURk++7P7qR9JG1jJtLzPzf0qEvqCN0A/T3DXf8IPMKo9/6FfjxtEffRJIIew/bIL4T3C2jLLqBor8B/zVlx6g==
"@next/swc-darwin-x64@15.2.2":
version "15.2.2"
resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-15.2.2.tgz#8562f6b51177aa30f3a6e95a8b3e0e176a6cb04f"
integrity sha512-mJOUwp7al63tDpLpEFpKwwg5jwvtL1lhRW2fI1Aog0nYCPAhxbJsaZKdoVyPZCy8MYf/iQVNDuk/+i29iLCzIA==
"@next/swc-darwin-arm64@15.3.2":
version "15.3.2"
resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.3.2.tgz#1a7b36bf3c439f899065c878a580bc57a3630ec7"
integrity sha512-2DR6kY/OGcokbnCsjHpNeQblqCZ85/1j6njYSkzRdpLn5At7OkSdmk7WyAmB9G0k25+VgqVZ/u356OSoQZ3z0g==
"@next/swc-linux-arm64-gnu@15.2.2":
version "15.2.2"
resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.2.2.tgz#c2466cffc541f39ae4d435087c81f5899d401903"
integrity sha512-5ZZ0Zwy3SgMr7MfWtRE7cQWVssfOvxYfD9O7XHM7KM4nrf5EOeqwq67ZXDgo86LVmffgsu5tPO57EeFKRnrfSQ==
"@next/swc-darwin-x64@15.3.2":
version "15.3.2"
resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-15.3.2.tgz#3742026344f49128cf1b0f43814c67e880db7361"
integrity sha512-ro/fdqaZWL6k1S/5CLv1I0DaZfDVJkWNaUU3un8Lg6m0YENWlDulmIWzV96Iou2wEYyEsZq51mwV8+XQXqMp3w==
"@next/swc-linux-arm64-musl@15.2.2":
version "15.2.2"
resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.2.2.tgz#24ed87fe47325597e986bd01c427efae53d6b677"
integrity sha512-cgKWBuFMLlJ4TWcFHl1KOaVVUAF8vy4qEvX5KsNd0Yj5mhu989QFCq1WjuaEbv/tO1ZpsQI6h/0YR8bLwEi+nA==
"@next/swc-linux-arm64-gnu@15.3.2":
version "15.3.2"
resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.3.2.tgz#fb29d45c034e3d2eef89b0e2801d62eb86155823"
integrity sha512-covwwtZYhlbRWK2HlYX9835qXum4xYZ3E2Mra1mdQ+0ICGoMiw1+nVAn4d9Bo7R3JqSmK1grMq/va+0cdh7bJA==
"@next/swc-linux-x64-gnu@15.2.2":
version "15.2.2"
resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.2.2.tgz#0240f44530ca39c1fc899fabe8f33aa35d7e77da"
integrity sha512-c3kWSOSsVL8rcNBBfOq1+/j2PKs2nsMwJUV4icUxRgGBwUOfppeh7YhN5s79enBQFU+8xRgVatFkhHU1QW7yUA==
"@next/swc-linux-arm64-musl@15.3.2":
version "15.3.2"
resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.3.2.tgz#396784ef312666600ab1ae481e34cb1f6e3ae730"
integrity sha512-KQkMEillvlW5Qk5mtGA/3Yz0/tzpNlSw6/3/ttsV1lNtMuOHcGii3zVeXZyi4EJmmLDKYcTcByV2wVsOhDt/zg==
"@next/swc-linux-x64-musl@15.2.2":
version "15.2.2"
resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.2.2.tgz#cca6ce8e9ec89afaa618673f0f8658682c30ff56"
integrity sha512-PXTW9PLTxdNlVYgPJ0equojcq1kNu5NtwcNjRjHAB+/sdoKZ+X8FBu70fdJFadkxFIGekQTyRvPMFF+SOJaQjw==
"@next/swc-linux-x64-gnu@15.3.2":
version "15.3.2"
resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.3.2.tgz#ac01fda376878e02bc6b57d1e88ab8ceae9f868e"
integrity sha512-uRBo6THWei0chz+Y5j37qzx+BtoDRFIkDzZjlpCItBRXyMPIg079eIkOCl3aqr2tkxL4HFyJ4GHDes7W8HuAUg==
"@next/swc-win32-arm64-msvc@15.2.2":
version "15.2.2"
resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.2.2.tgz#08f621602ed53fa21ddf6f656160b9186860be15"
integrity sha512-nG644Es5llSGEcTaXhnGWR/aThM/hIaz0jx4MDg4gWC8GfTCp8eDBWZ77CVuv2ha/uL9Ce+nPTfYkSLG67/sHg==
"@next/swc-linux-x64-musl@15.3.2":
version "15.3.2"
resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.3.2.tgz#327a5023003bcb3ca436efc08733f091bba2b1e8"
integrity sha512-+uxFlPuCNx/T9PdMClOqeE8USKzj8tVz37KflT3Kdbx/LOlZBRI2yxuIcmx1mPNK8DwSOMNCr4ureSet7eyC0w==
"@next/swc-win32-x64-msvc@15.2.2":
version "15.2.2"
resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.2.2.tgz#2072d69374f8c944134a5c5a80ce03ff84254cfa"
integrity sha512-52nWy65S/R6/kejz3jpvHAjZDPKIbEQu4x9jDBzmB9jJfuOy5rspjKu4u77+fI4M/WzLXrrQd57hlFGzz1ubcQ==
"@next/swc-win32-arm64-msvc@15.3.2":
version "15.3.2"
resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.3.2.tgz#ce3a6588bd9c020960704011ab20bd0440026965"
integrity sha512-LLTKmaI5cfD8dVzh5Vt7+OMo+AIOClEdIU/TSKbXXT2iScUTSxOGoBhfuv+FU8R9MLmrkIL1e2fBMkEEjYAtPQ==
"@next/swc-win32-x64-msvc@15.3.2":
version "15.3.2"
resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.3.2.tgz#43cc36097ac27639e9024a5ceaa6e7727fa968c8"
integrity sha512-aW5B8wOPioJ4mBdMDXkt5f3j8pUr9W8AnlX0Df35uRWNT1Y6RIybxjnSUe+PhM+M1bwgyY8PHLmXZC6zT1o5tA==
"@swc/counter@0.1.3":
version "0.1.3"
@@ -437,10 +447,10 @@ destroy@^1.2.0:
resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015"
integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==
detect-libc@^2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.3.tgz#f0cd503b40f9939b894697d19ad50895e30cf700"
integrity sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==
detect-libc@^2.0.4:
version "2.0.4"
resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.4.tgz#f04715b8ba815e53b4d8109655b6508a6865a7e8"
integrity sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==
dunder-proto@^1.0.1:
version "1.0.1"
@@ -802,12 +812,12 @@ negotiator@^1.0.0:
resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-1.0.0.tgz#b6c91bb47172d69f93cfd7c357bbb529019b5f6a"
integrity sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==
next@^15.2.2:
version "15.2.2"
resolved "https://registry.yarnpkg.com/next/-/next-15.2.2.tgz#e3941a0e0e76cfe1880b57452807489e0546e3a2"
integrity sha512-dgp8Kcx5XZRjMw2KNwBtUzhngRaURPioxoNIVl5BOyJbhi9CUgEtKDO7fx5wh8Z8vOVX1nYZ9meawJoRrlASYA==
next@^15.2.3:
version "15.3.2"
resolved "https://registry.yarnpkg.com/next/-/next-15.3.2.tgz#97510629e38a058dd154782a5c2ec9c9ab94d0d8"
integrity sha512-CA3BatMyHkxZ48sgOCLdVHjFU36N7TF1HhqAHLFOkV6buwZnvMI84Cug8xD56B9mCuKrqXnLn94417GrZ/jjCQ==
dependencies:
"@next/env" "15.2.2"
"@next/env" "15.3.2"
"@swc/counter" "0.1.3"
"@swc/helpers" "0.5.15"
busboy "1.6.0"
@@ -815,15 +825,15 @@ next@^15.2.2:
postcss "8.4.31"
styled-jsx "5.1.6"
optionalDependencies:
"@next/swc-darwin-arm64" "15.2.2"
"@next/swc-darwin-x64" "15.2.2"
"@next/swc-linux-arm64-gnu" "15.2.2"
"@next/swc-linux-arm64-musl" "15.2.2"
"@next/swc-linux-x64-gnu" "15.2.2"
"@next/swc-linux-x64-musl" "15.2.2"
"@next/swc-win32-arm64-msvc" "15.2.2"
"@next/swc-win32-x64-msvc" "15.2.2"
sharp "^0.33.5"
"@next/swc-darwin-arm64" "15.3.2"
"@next/swc-darwin-x64" "15.3.2"
"@next/swc-linux-arm64-gnu" "15.3.2"
"@next/swc-linux-arm64-musl" "15.3.2"
"@next/swc-linux-x64-gnu" "15.3.2"
"@next/swc-linux-x64-musl" "15.3.2"
"@next/swc-win32-arm64-msvc" "15.3.2"
"@next/swc-win32-x64-msvc" "15.3.2"
sharp "^0.34.1"
object-assign@^4:
version "4.1.1"
@@ -939,11 +949,16 @@ safe-buffer@5.2.1, safe-buffer@^5.0.1:
resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
semver@^7.5.4, semver@^7.6.3:
semver@^7.5.4:
version "7.7.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.1.tgz#abd5098d82b18c6c81f6074ff2647fd3e7220c9f"
integrity sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==
semver@^7.7.2:
version "7.7.2"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.2.tgz#67d99fdcd35cec21e6f8b87a7fd515a33f982b58"
integrity sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==
send@^1.0.0, send@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/send/-/send-1.1.0.tgz#4efe6ff3bb2139b0e5b2648d8b18d4dec48fc9c5"
@@ -977,34 +992,36 @@ setprototypeof@1.2.0:
resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424"
integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==
sharp@^0.33.5:
version "0.33.5"
resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.33.5.tgz#13e0e4130cc309d6a9497596715240b2ec0c594e"
integrity sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==
sharp@^0.34.1:
version "0.34.2"
resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.34.2.tgz#648bd639854dbe48047b0b420213c186d036b32d"
integrity sha512-lszvBmB9QURERtyKT2bNmsgxXK0ShJrL/fvqlonCo7e6xBF8nT8xU6pW+PMIbLsz0RxQk3rgH9kd8UmvOzlMJg==
dependencies:
color "^4.2.3"
detect-libc "^2.0.3"
semver "^7.6.3"
detect-libc "^2.0.4"
semver "^7.7.2"
optionalDependencies:
"@img/sharp-darwin-arm64" "0.33.5"
"@img/sharp-darwin-x64" "0.33.5"
"@img/sharp-libvips-darwin-arm64" "1.0.4"
"@img/sharp-libvips-darwin-x64" "1.0.4"
"@img/sharp-libvips-linux-arm" "1.0.5"
"@img/sharp-libvips-linux-arm64" "1.0.4"
"@img/sharp-libvips-linux-s390x" "1.0.4"
"@img/sharp-libvips-linux-x64" "1.0.4"
"@img/sharp-libvips-linuxmusl-arm64" "1.0.4"
"@img/sharp-libvips-linuxmusl-x64" "1.0.4"
"@img/sharp-linux-arm" "0.33.5"
"@img/sharp-linux-arm64" "0.33.5"
"@img/sharp-linux-s390x" "0.33.5"
"@img/sharp-linux-x64" "0.33.5"
"@img/sharp-linuxmusl-arm64" "0.33.5"
"@img/sharp-linuxmusl-x64" "0.33.5"
"@img/sharp-wasm32" "0.33.5"
"@img/sharp-win32-ia32" "0.33.5"
"@img/sharp-win32-x64" "0.33.5"
"@img/sharp-darwin-arm64" "0.34.2"
"@img/sharp-darwin-x64" "0.34.2"
"@img/sharp-libvips-darwin-arm64" "1.1.0"
"@img/sharp-libvips-darwin-x64" "1.1.0"
"@img/sharp-libvips-linux-arm" "1.1.0"
"@img/sharp-libvips-linux-arm64" "1.1.0"
"@img/sharp-libvips-linux-ppc64" "1.1.0"
"@img/sharp-libvips-linux-s390x" "1.1.0"
"@img/sharp-libvips-linux-x64" "1.1.0"
"@img/sharp-libvips-linuxmusl-arm64" "1.1.0"
"@img/sharp-libvips-linuxmusl-x64" "1.1.0"
"@img/sharp-linux-arm" "0.34.2"
"@img/sharp-linux-arm64" "0.34.2"
"@img/sharp-linux-s390x" "0.34.2"
"@img/sharp-linux-x64" "0.34.2"
"@img/sharp-linuxmusl-arm64" "0.34.2"
"@img/sharp-linuxmusl-x64" "0.34.2"
"@img/sharp-wasm32" "0.34.2"
"@img/sharp-win32-arm64" "0.34.2"
"@img/sharp-win32-ia32" "0.34.2"
"@img/sharp-win32-x64" "0.34.2"
side-channel-list@^1.0.0:
version "1.0.0"

View File

@@ -122,30 +122,6 @@
(some change-types-supporting-rollback (mapcat keys changes))
(contains? change-set :rollback)))
(def ^:private change-types-requiring-preconditions
#{:createTable
:dropTable
:addColumn
:dropColumn
:createIndex
:dropIndex
:addForeignKeyConstraint
:dropForeignKeyConstraint})
(defn- precondition-present-when-required?
"Ensures that certain changeSet types include a preCondition. The intent is for the preCondition to ensure that the changeSet is
idempotent by checking whether the table/column/index/etc does not exist before trying to create it. (Or inversely, that it does
exist before trying to drop it.)
We don't currently assert on the structure of the preCondition to provide flexibility if there are cases where idempotence is not
desired."
[{:keys [id changes] :as change-set}]
(or
(int? id)
(< (major-version id) 51)
(not-any? change-types-requiring-preconditions (mapcat keys changes))
(contains? change-set :preConditions)))
(defn- disallow-delete-cascade-with-add-column
"Returns false if addColumn changeSet uses deleteCascade. See Metabase issue #14321"
[{:keys [changes]}]
@@ -160,7 +136,6 @@
(s/def ::change-set
(s/and
rollback-present-when-required?
precondition-present-when-required?
disallow-delete-cascade-with-add-column
(s/keys :req-un [::id ::author ::changes ::comment]
:opt-un [::preConditions])))

View File

@@ -252,35 +252,6 @@
(testing "change types with automatic rollback support are allowed"
(is (= :ok (validate (mock-change-set :id "v49.2024-01-01T10:30:00" :changes [(mock-add-column-changes)]))))))
(deftest require-precondition-test
(testing "certain change types require preConditions"
(is (thrown-with-msg?
clojure.lang.ExceptionInfo
#"Invalid change set\."
(validate (mock-change-set
:id "v51.2024-01-01T10:30:00"
:changes [(mock-create-table-changes)])))))
(testing "other change types are exempt"
(is (= :ok
(validate
(mock-change-set
:changes
[{:sql {:dbms "h2", :sql "1"}}])))))
(testing "nil preConditions is allowed"
(is (= :ok
(validate (mock-change-set
:id "v51.2024-01-01T10:30:00"
:changes [(mock-create-table-changes)]
:preConditions nil)))))
(testing "changeSets prior to v51 are exempt"
(is (= :ok
(validate (mock-change-set
:id "v50.2024-01-01T10:30:00"
:changes [(mock-create-table-changes)]))))))
(deftest disallow-deletecascade-in-addcolumn-test
(testing "addColumn with deleteCascade fails"
(is (thrown-with-msg?

View File

@@ -1,4 +1,4 @@
(ns src.dev.add-load
(ns dev.add-load
(:require [clojure.walk :as walk]
[dev.with-perm :as perm]
[metabase.util.malli :as mu]))
@@ -28,9 +28,9 @@
(def ^:private NormalizedTuple [:tuple :keyword BindingForm :map])
(def ^:private Tuple [:or
[:tuple :keyword]
[:tuple :keyword BindingForm]
NormalizedTuple])
[:tuple :keyword]
[:tuple :keyword BindingForm]
NormalizedTuple])
(mu/defn- normalize-tuple :- NormalizedTuple
[next-kw-thunk :- fn? t :- Tuple]
@@ -61,7 +61,6 @@
;; PUBLIC API ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(mu/defn from-script :- :map
"Takes a script and inserts the entities into the database. Returns a map of the ids of the entities inserted."
[script :- [:sequential Tuple]]
@@ -105,5 +104,4 @@
[:model/DashboardCard :? {:card_id :?/card-id :dashboard_id :?/dash-id}]
[:model/Card {:?/card-id :id} {:name "My Card (w/ dashboard)"}]
[:model/Dashboard {:?/dash-id :id} {:name "My Dashboard"}]
[:model/DashboardCard :? {:card_id :?/card-id :dashboard_id :?/dash-id}]])
)
[:model/DashboardCard :? {:card_id :?/card-id :dashboard_id :?/dash-id}]]))

View File

@@ -49,6 +49,7 @@ Metabase's reference documentation.
- [Backing up Metabase](./installation-and-operation/backing-up-metabase-application-data.md)
- [Migrating to a production application database](./installation-and-operation/migrating-from-h2.md)
- [Monitoring your Metabase](./installation-and-operation/monitoring-metabase.md)
- [Development instances](./installation-and-operation/development-instance.md)
- [Serialization](./installation-and-operation/serialization.md)
- [Commands](./installation-and-operation/commands.md)
- [Supported browsers](./installation-and-operation/supported-browsers.md)
@@ -138,11 +139,12 @@ Metabase's reference documentation.
- [Basic actions](./actions/basic.md)
- [Custom actions](./actions/custom.md)
### Organization
### Exploration and organization
- [Organization overview](./exploration-and-organization/start.md)
- [Basic exploration](./exploration-and-organization/exploration.md)
- [Collections](./exploration-and-organization/collections.md)
- [Keyboard shortcuts](./exploration-and-organization/keyboard-shortcuts.md)
- [History](./exploration-and-organization/history.md)
- [Trash](./exploration-and-organization/delete-and-restore.md)
- [Data reference](./exploration-and-organization/data-model-reference.md)
@@ -293,3 +295,5 @@ Data jargon explained.
### [Metabase Experts](https://www.metabase.com/partners/)
If you’d like more technical resources to set up your data stack with Metabase, connect with a [Metabase Expert](https://www.metabase.com/partners/).
<!-- docs bump 1 -->

View File

@@ -10,6 +10,8 @@ title: Introduction to actions
## What are actions?
> Want to edit data directly in your database through Metabase and build data apps? Join our [Early Access Program](https://form.fillout.com/t/j9cymCcLGVus) to explore this new feature, try it with your team, and help shape what we build next.
**Actions** are entities in Metabase that let you build custom forms and business logic.
Actions let you write parameterized SQL that writes back to your database. Actions can be attached to [buttons on dashboards](../dashboards/actions.md) to create custom workflows. You can even publicly share the parameterized forms that actions generate to collect data.

File diff suppressed because it is too large Load Diff

View File

@@ -12,6 +12,7 @@ clojure -M:doc:ee config-template
The template lists example `database`, `user`, and `settings` sections for the [config file](./config-file.md).
```yaml
# A config file template for Metabase.
# You'll need to update (or remove) the `users` and `databases` sections.
@@ -26,48 +27,49 @@ The template lists example `database`, `user`, and `settings` sections for the [
version: 1
config:
users:
- first_name: First
last_name: Person
password: metabot1
email: first@example.com
- first_name: Normal
last_name: Person
password: metabot1
email: normal@example.com
- first_name: Admin
last_name: Person
password: metabot1
is_superuser: true
email: admin@example.com
- first_name: First
last_name: Person
password: metabot1
email: first@example.com
- first_name: Normal
last_name: Person
password: metabot1
email: normal@example.com
- first_name: Admin
last_name: Person
password: metabot1
is_superuser: true
email: admin@example.com
databases:
- name: Sample PostgreSQL
engine: postgres
details:
host: postgres-data
port: 5432
user: metabase
password: metasample123
dbname: sample
- name: Sample MySQL
engine: mysql
details:
host: mysql-data
port: 3306
user: metabase
password: metasample123
dbname: sample
- name: Sample PostgreSQL
engine: postgres
details:
host: postgres-data
port: 5432
user: metabase
password: metasample123
dbname: sample
- name: Sample MySQL
engine: mysql
details:
host: mysql-data
port: 3306
user: metabase
password: metasample123
dbname: sample
api-keys:
- name: Admin API key
group: admin
creator: first@example.com
key: mb_firsttestapikey123
- name: All Users API key
group: all-users
creator: first@example.com
key: mb_secondtestapikey456
- name: Admin API key
group: admin
creator: first@example.com
key: mb_firsttestapikey123
- name: All Users API key
group: all-users
creator: first@example.com
key: mb_secondtestapikey456
settings:
admin-email: null
aggregated-query-row-limit: null
ai-proxy-base-url: http://localhost:8000
allowed-iframe-hosts: |-
youtube.com,
youtu.be,
@@ -101,7 +103,6 @@ config:
application-name: Metabase
attachment-row-limit: null
attachment-table-row-limit: 20
backfill-entity-ids-repeat-ms: 3000
bcc-enabled: true
breakout-bin-width: 10.0
breakout-bins-num: 8
@@ -147,7 +148,7 @@ config:
gsheets: null
health-check-logging-enabled: true
help-link: metabase
help-link-custom-destination: https://www.metabase.com/help-premium
help-link-custom-destination: https://www.metabase.com/help/premium
humanization-strategy: simple
jdbc-data-warehouse-max-connection-pool-size: 15
jwt-attribute-email: email
@@ -160,7 +161,7 @@ config:
jwt-identity-provider-uri: null
jwt-shared-secret: null
jwt-user-provisioning-enabled: true
landing-page: ""
landing-page: ''
landing-page-illustration: default
landing-page-illustration-custom: null
ldap-attribute-email: mail
@@ -191,8 +192,10 @@ config:
no-data-illustration-custom: null
no-object-illustration: default
no-object-illustration-custom: null
non-table-chart-generated: false
not-behind-proxy: false
notification-link-base-url: null
notification-system-event-thread-pool-size: 5
notification-thread-pool-size: 3
persisted-model-refresh-cron-schedule: 0 0 0/6 * * ? *
persisted-models-enabled: false
@@ -226,7 +229,9 @@ config:
saml-slo-enabled: false
saml-user-provisioning-enabled: true
scim-enabled: null
sdk-encryption-validation-key: null
search-engine: in-place
search-language: null
search-typeahead-enabled: true
send-new-sso-user-admin-email: null
session-cookie-samesite: lax
@@ -256,5 +261,6 @@ config:
unaggregated-query-row-limit: null
update-channel: latest
uploads-settings: null
use-tenants: false
user-visibility: all
```

View File

@@ -71,6 +71,13 @@ Maximum number of rows to return for aggregated queries via the API.
Must be less than 1048575. See also MB_UNAGGREGATED_QUERY_ROW_LIMIT.
### `MB_AI_PROXY_BASE_URL`
- Type: string
- Default: `http://localhost:8000`
URL for the a AI Proxy service.
### `MB_ALLOWED_IFRAME_HOSTS`
- Type: string
@@ -120,7 +127,7 @@ Middleware that enforces validation of the client via the request header X-Metab
If the header is available, then it's validated against MB_API_KEY.
When it matches, the request continues; otherwise it's blocked with a 403 Forbidden response.
MB_API_KEY is used only for /notify endpoints and isn't the same as Metabase API keys
used for authenticating other API requests. MP_API_KEY can be an arbitrary string.
used for authenticating other API requests. MB_API_KEY can be an arbitrary string.
### `MB_APPLICATION_COLORS`
@@ -290,8 +297,8 @@ Identify when new versions of Metabase are available.
- Type: boolean
- Default: `true`
Whether to (asynchronously) sync newly created Databases during config-from-file initialization. By default, true, but you can disable
this behavior if you want to sync it manually or use SerDes to populate its data model.
Whether to (asynchronously) sync newly created Databases during config-from-file initialization. By default, true,
but you can disable this behavior if you want to sync it manually or use SerDes to populate its data model.
### `MB_CUSTOM_FORMATTING`
@@ -345,8 +352,8 @@ Consider metabase.driver/can-connect? / can-connect-with-details? to have failed
successfully connect after this many milliseconds. By default, this is 10 seconds.
Timeout in milliseconds for connecting to databases, both Metabase application database and data connections.
In case you're connecting via an SSH tunnel and run into a timeout, you might consider increasing this value
as the connections via tunnels have more overhead than connections without.
In case you're connecting via an SSH tunnel and run into a timeout, you might consider increasing this value as the
connections via tunnels have more overhead than connections without.
### `MB_DB_QUERY_TIMEOUT_MINUTES`
@@ -671,7 +678,7 @@ Keyword setting to control whitelabeling of the help link. Valid values are `:me
> Only available on Metabase [Pro](https://www.metabase.com/product/pro) and [Enterprise](https://www.metabase.com/product/enterprise) plans.
- Type: string
- Default: `https://www.metabase.com/help-premium`
- Default: `https://www.metabase.com/help/premium`
- [Configuration file name](./config-file.md): `help-link-custom-destination`
Custom URL for the help link.
@@ -694,9 +701,11 @@ Maximum size of the c3p0 connection pool.
Change this to a higher value if you notice that regular usage consumes all or close to all connections.
When all connections are in use then Metabase will be slower to return results for queries, since it would have to wait for an available connection before processing the next query in the queue.
When all connections are in use then Metabase will be slower to return results for queries, since it would have to
wait for an available connection before processing the next query in the queue.
For setting the maximum, see [MB_APPLICATION_DB_MAX_CONNECTION_POOL_SIZE](#mb_application_db_max_connection_pool_size).
For setting the maximum,
see [MB_APPLICATION_DB_MAX_CONNECTION_POOL_SIZE](#mb_application_db_max_connection_pool_size).
### `MB_JWT_ATTRIBUTE_EMAIL`
@@ -1082,6 +1091,15 @@ Options for displaying the illustration when there are no results after searchin
The custom illustration for when there are no results after searching.
### `MB_NON_TABLE_CHART_GENERATED`
- Type: boolean
- Default: `false`
- [Exported as](../installation-and-operation/serialization.md): `non-table-chart-generated`.
- [Configuration file name](./config-file.md): `non-table-chart-generated`
Whether a non-table chart has already been generated. Required for analytics to track instance activation journey.
### `MB_NOT_BEHIND_PROXY`
- Type: boolean
@@ -1101,6 +1119,13 @@ By default "Site Url" is used in notification links, but can be overridden.
The base URL where dashboard notitification links will point to instead of the Metabase base URL.
Only applicable for users who utilize interactive embedding and subscriptions.
### `MB_NOTIFICATION_SYSTEM_EVENT_THREAD_POOL_SIZE`
- Type: integer
- Default: `5`
The size of the thread pool used to send system event notifications.
### `MB_NOTIFICATION_THREAD_POOL_SIZE`
- Type: integer
@@ -1408,6 +1433,13 @@ don't have one.
Is SCIM currently enabled?
### `MB_SDK_ENCRYPTION_VALIDATION_KEY`
- Type: string
- Default: `null`
Used for encrypting and checking whether SDK requests are signed.
### `MB_SEARCH_ENGINE`
- Type: keyword
@@ -1415,6 +1447,14 @@ Is SCIM currently enabled?
Which engine to use when performing search. Supported values are :in-place and :appdb.
### `MB_SEARCH_LANGUAGE`
- Type: string
- Default: `null`
When using the appdb engine against postgresql, override the language used for stemming in to_tsvector.
Value must be a valid configured langauge option in your database such as 'english' or 'simple'.
### `MB_SEARCH_TYPEAHEAD_ENABLED`
- Type: boolean
@@ -1728,6 +1768,16 @@ Upload settings.
Prefix for upload table names.
### `MB_USE_TENANTS`
> Only available on Metabase [Pro](https://www.metabase.com/product/pro) and [Enterprise](https://www.metabase.com/product/enterprise) plans.
- Type: boolean
- Default: `false`
- [Configuration file name](./config-file.md): `use-tenants`
Turn on the Tenants feature, allowing users to be assigned to a particular Tenant.
### `MB_USER_VISIBILITY`
> Only available on Metabase [Pro](https://www.metabase.com/product/pro) and [Enterprise](https://www.metabase.com/product/enterprise) plans.

View File

@@ -2,23 +2,50 @@
title: Metabase logs
redirect_from:
- /docs/latest/operations-guide/log-configuration
summary: Configure how much information Metabase displays in its logs.
---
# Metabase logs
Metabase logs quite a bit of information by default. It uses [Log4j 2][log4j] under the hood, so you can configure how much information Metabase logs.
Metabase logs quite a bit of information by default. Metabase uses [Log4j 2][https://logging.apache.org/log4j/2.x/] under the hood, so you can configure how much information Metabase logs.
## Configuring Logging Level
## View and download Metabase logs
Here is Metabase's [default logging configuration][default-log-config]. You can override this XML file and tell Metabase to use your own logging configuration file by passing a `-Dlog4j.configurationFile` argument when running Metabase. For example, if your custom XML file is found in `/path/to/custom/log4j2.xml`, you can use it like so:
You can find Metabase logs in **Admin settings** > **Troubleshooting** > **Logs**. You can filter the logs by keywords (for example, "sync") and download them as a text file.
```
java -Dlog4j.configurationFile=file:/path/to/custom/log4j2.xml -jar metabase.jar
If you're running self-hosted Metabase, you'll also be able see the logs in the terminal.
## How to read Metabase logs
See [How to read logs][../troubleshooting-guide/server-logs.md].
## Configuring logging Level
Metabase uses [log4j](https://logging.apache.org/log4j/2.x/)for logging configuration. Here is Metabase's [default logging configuration](https://github.com/metabase/metabase/blob/master/resources/log4j2.xml). Some troubleshooting tasks might require you to override this logging configuration (for example, to see more details about errors). See Log4j's docs for info on [log levels](https://logging.apache.org/log4j/2.x/manual/customloglevels.html).
### Temporary override logging configuration
To temporarily adjust the logging configuration, go to **Admin settings** > **Troubleshooting** > **Logs** and click on **Customize log levels**.
You can select from log level presets for common troubleshooting tasks (for example, troubleshooting sync issues), or provide your own configuration as a JSON. For example, here's an override configuration that increases logging for troubleshooting linked filters:
```json
{
"metabase.parameters.chain-filter": "debug",
"metabase.parameters.chain-filter.dedupe-joins": "debug"
}
```
To get started customizing the logs, make a [copy of the default `log4j2.xml` file][default-log-config] and adjust it to meet your needs. You'll need to restart Metabase for changes to the file to take effect. See Log4j's docs for info on [log levels][levels].
The override from Admin settings will be temporary. You can select for how long the override should be in place (e.g., 60 minutes). When the override times out, the logging configuration will revert to the default logging configuration (or a custom configuration if you're using a [custom log file](#use-a-custom-log-configuration-file)).
You can set different log levels for different areas of the application, e.g.,:
### Use a custom log configuration file
You can point Metabase to a custom log configuration file.
1. Make a [copy of the default `log4j2.xml` file](https://github.com/metabase/metabase/blob/master/resources/log4j2.xml)
2. Adjust it to meet your needs.
You can set different log levels for different areas of the application, e.g.,:
```
<Loggers>
@@ -37,9 +64,21 @@ You can set different log levels for different areas of the application, e.g.,:
</Loggers>
```
Check out [How to read the logs][read-logs].
3. Stop your Metabase and start it again using the custom log configuration file:
## Jetty logs
- If you're running Metabase in Docker, you can point Metabase to your custom log file using an environment variable, `JAVA_OPTS=-Dlog4j.configurationFile=file:/path/to/custom/log4j2.xml`:
```
docker run -p 3000:3000 -v $PWD/my_log4j2.xml:/tmp/my_log4j2.xml -e JAVA_OPTS=-Dlog4j.configurationFile=file:/tmp/my_log4j2.xml metabase/metabase`
```
- If you're running Metabase as a JAR file, you can pass a `-Dlog4j.configurationFile` argument. For example, if your custom XML file is found in `/path/to/custom/log4j2.xml`, you can use it like so:
```
java -Dlog4j.configurationFile=file:/path/to/custom/log4j2.xml -jar metabase.jar
```
## Configure Jetty logs
You can configure Metabase's web server to provide more detail in the logs by setting the log level to `DEBUG`. Just keep in mind that Jetty's debug logs can be really chatty, which can make it difficult to find the data you're looking for.
@@ -49,26 +88,25 @@ To get Jetty logs, add the following lines to the Log4J2 XML file in the <Logger
<Logger name="org.eclipse.jetty" level="DEBUG"/>
```
## Using Log4j 2 with Docker
## Configure how logs are displayed
Before running the Metabase Docker image, you'll need to pass the custom `log4j.configurationFile` argument. Add a `JAVA_OPTS=-Dlog4j.configurationFile=file:/path/to/custom/log4j2.xml` to the environment variables of the container, like this:
### Turn off emojis in logs
By default Metabase will include emoji characters in logs, like this:
```
docker run -p 3000:3000 -v $PWD/my_log4j2.xml:/tmp/my_log4j2.xml -e JAVA_OPTS=-Dlog4j.configurationFile=file:/tmp/my_log4j2.xml metabase/metabase`
2025-06-10 21:43:00,243 INFO sync.analyze :: classify-tables Analyzed [*****************************************·········] 😊 84% Table 6 ''PUBLIC.ACCOUNTS'' {mb-quartz-job-type=SyncAndAnalyzeDatabase}
2025-06-10 21:43:00,244 INFO sync.analyze :: classify-tables Analyzed [***********************************************···] 😎 96% Table 2 ''PUBLIC.ORDERS'' {mb-quartz-job-type=SyncAndAnalyzeDatabase}
```
## Disable emoji or colorized logging
By default Metabase will include emoji characters in logs. You can disable emoji by using the `MB_EMOJI_IN_LOGS` environment variable:
### Configuring Emoji Logging
You can disable emoji using the [`MB_EMOJI_IN_LOGS` environment variable](../configuring-metabase/environment-variables.md#mb_emoji_in_logs):
```
export MB_EMOJI_IN_LOGS="false"
java --add-opens java.base/java.nio=ALL-UNNAMED -jar metabase.jar
```
[default-log-config]: https://github.com/metabase/metabase/blob/master/resources/log4j2.xml
[levels]: https://logging.apache.org/log4j/2.x/manual/customloglevels.html
[log4j]: https://logging.apache.org/log4j/2.x/
[read-logs]: ../troubleshooting-guide/server-logs.md
### Turn off colorized logs
By default, Metabase will use color when displaying logs (both in the Admin **Logs** and in the terminal). You can disable colorized logs using the [`MB_COLORIZE_LOGS` environment variable](../configuring-metabase/environment-variables.md#mb_colorize_logs).

View File

@@ -1,5 +1,6 @@
---
title: Dashboard filters
summary: Make your dashboards do more with filters and parameters. Instead of creating a bunch of similar dashboards, just add widgets to change variables.
redirect_from:
- /docs/latest/users-guide/08-dashboard-filters
---
@@ -27,18 +28,23 @@ Metabase will display the filter only if the filter is connected to a card on th
## Filter and parameter types
The type of filter or parameter widget you choose will determine how the widget works, as well as which fields you’ll be able to filter your cards by.
The type of filter or parameter widget you choose determines how the widget works, including which fields you'll be able to filter your cards by.
### Filter widgets
**Filters** determine what data to show. For example, a date filter might show only data from the last 30 days, or a category filter might show only specific product categories.
- [Date picker](#date-picker-filters)
- [Location](#location-filters)
- [ID](#id-filter)
- [Number](#number-filter)
- [Text or category](#text-or-category-filter)
- [Boolean](#boolean-filter)
### Parameter widgets
**Parameters** determine how to show the data. The time grouping parameter, for example, changes the granularity of time-based visualizations (like showing data by month instead of by day) without removing any data points.
- [Time grouping](#time-grouping-parameter)
## Date picker filters
@@ -108,6 +114,10 @@ A flexible filter type that will let you create either a dropdown menu or an inp
- **Starts with**. Match values that begin with the entered text.
- **Ends with**. Match values that end with the entered text.
## Boolean filter
A boolean filter allows people to filter data based on true/false values.
## Connecting a filter or parameter widget to dashboard cards
Dashboard widgets apply across all [dashboard tabs](./introduction.md#dashboard-tabs), though they'll only be displayed when a tab has cards connected to the widget.
@@ -248,13 +258,19 @@ By default, each time you change the value in a filter on a dashboard, the dashb
If a dashboard is particularly large or slow, or you have multiple filters that you want to adjust before the dashboard refreshes its results, you may want to tell Metabase when to apply those filters and refresh the dashboard.
To turn off the automatic application of filters, click on the info **i** icon, and toggle the **Auto-apply filters** option. With auto-apply turned off, each time you change a value in a filter, you'll need to click the **Apply** button to refresh the dashboard with the new filter value.
To turn off the automatic application of filters.
1. Click on the three-dot menu **...**.
2. Select **Edit settings**.
3. In the **General** section, toggle off **Auto-apply filters**.
With auto-apply turned off, each time you change a value in a filter, you'll need to click the **Apply** button to refresh the dashboard with the new filter value.
![Click Apply to apply the filters and refresh the dashboard](./images/apply-button.png)
## Using filter widgets
Once you’ve added a filter to your dashboard, just click on the filter widget to select a value and activate the filter. To stop filtering, just click the blue X.
Once you've added a filter to your dashboard, just click on the filter widget to select a value and activate the filter. To stop filtering, just click the blue X.
Your active filter will only apply to your view of the dashboard. If someone else is viewing the same dashboard link at the same time, they won't see your filter.

Binary file not shown.

After

Width:  |  Height:  |  Size: 258 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 194 KiB

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 360 KiB

After

Width:  |  Height:  |  Size: 472 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 167 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 194 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 208 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 481 KiB

After

Width:  |  Height:  |  Size: 234 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 232 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 301 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 142 KiB

After

Width:  |  Height:  |  Size: 220 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

View File

@@ -231,18 +231,24 @@ You can change the width of a dashboard by going into the three dots menu in the
You can change a card's visualization settings (to add a goal line, for example). Changing a card's visualization settings will only affect how the question appears on that dashboard card; these changes won't affect the original question's visualization settings.
Click on the **pencil** icon to enter dashboard edit mode, hover over the question you want to edit, and click on the **palette** icon to edit a card's visualization's settings.
Click on the **pencil** icon to enter dashboard edit mode, hover over the question you want to edit, and click on the **pencil** icon or **palette** icon (depending on the chart type) to edit a card's visualization's settings.
![Visualization settings](images/visualization-settings.png)
If you clicked the pencil icon, look for **Settings** button in the bottom right.
![Settings sidebar](./images/settings-sidebar.png)
You can also [add more data to the chart](./multiple-series.md).
### Hiding a card when it doesn't return results
One neat thing to call out: if you have a question card that rarely returns results, but you still want to include that card in your dashboard because you want to know when the question _does_ return results, you can tell Metabase to hide the card unless it returns at least one row of data.
When in dashboard edit mode, click on the **Visualization settings** for the card.
- If the card displays a table, the option is in the **Columns** tab.
- If the card displays a chart, the option is in the **Display** tab.
- For tables, the option is in the **Columns** tab.
- For other charts, the option is in the **Display** tab.
Toggle the option **Hide this card if there are no results**. When you turn on this option, the query will still run in the background, but the dashboard won't display the card. If the query returns results, the dashboard will display the card, moving the other cards around to make room for it according to how you've arranged the cards in dashboard edit mode.
@@ -252,11 +258,18 @@ If you want to revert a dashboard card to its original visualization settings (i
1. Go to your dashboard and click the **pencil icon** to go into edit mode.
2. Hover over the card (question) that you want to edit.
3. Click the **palette icon** to bring up the visualization settings for that card.
4. Click **Reset to defaults**.
3. Click the **palette icon** to bring up the visualization settings for that card.
4. Click **Reset to defaults** (bottom right).
5. Click **Done** to save the card's visualization settings.
6. Click **Save** to save the dashboard.
If you don't see the palette icon, you'll need to:
1. Click the **pencil icon** to edit the card's visualization settings.
2. Remove the data in the **Manage data** section.
3. Re-add the question to the card.
4. **Save** your changes.
## Fullscreen dashboards
After you've made your ideal dashboard, you may want to put the dashboard on a TV to help keep your team up to date throughout the day.

View File

@@ -6,96 +6,90 @@ redirect_from:
# Charts with multiple series
Data in isolation is rarely all that useful. One of the best ways to add context and clarity when communicating with data is to show data side-by-side with other data. Here are just a few examples of data that is better together than apart.
One of the best ways to add context and clarity when communicating with data is to show data side-by-side with other data. For example:
- Your company’s revenue vs. its costs over time.
- Average order price this month and user signups for that month.
- New users per day vs. returning users per day.
- Orders per day from a few different product lines.
- Your company's revenue vs. its costs over time
- Average order price this month and user signups for that month
- Orders per day from a few different product lines
## Displaying data side by side
There are two main ways to visualize data side by side:
There are two main ways to visualize multiple series in Metabase:
1. [**Ask a question that involves multiple dimensions**](#ask-a-question-that-involves-multiple-dimensions) with the query builder (or in SQL, if you’re fancy). Example: the count of users by region over time.
2. [**Combine two saved questions**](#combining-two-saved-questions) that share a common dimension (like time) on a dashboard. For example, you could look at revenue over time and costs over time together.
- [**Ask a question that involves multiple dimensions**](#ask-a-question-that-involves-multiple-dimensions) with the query builder (or in SQL, if you're using SQL). For example, the count of users by region over time.
- [**Combine multiple questions on one dashboard card**](#combining-multiple-questions-on-one-dashboard-card) that share a common dimension (like time) on a dashboard. For example, you could look at revenue over time and costs over time together.
## Ask a question that involves multiple dimensions
If you’re creating a new question, you can view the results as a multi-series visualization by summarizing your data and grouping it into two groups.
If you're creating a new question, you can view the results as a multi-series visualization by summarizing your data and grouping it by two or more dimensions.
As an example, we might want to see which website or service is referring the most people to our website. In the **Sample Database** that ships with Metabase, you would group by the `Source` and `Created At` columns of the **People** table.
For example, we might want to see sales by month and product category. In the **Sample Database** that ships with Metabase, you would count the number of rows, then group by the `Product -> Category` and `Created At`:
To create the multi-series chart, select the **People** table, click on the **Summarize** button in the upper right, then add `Source` and `Created At` as groupings (the `count of rows` metric that we want is selected by default). Be sure to click the plus button to the right of your selection, so Metabase knows to add the grouping; otherwise, Metabase will switch to that grouping. [Learn more about asking questions](../questions/start.md).
![Orders by product category](./images/editor-orders-by-product-category.png)
Metabase will automatically display a multi-series line chart visualization of how each referrer has performed for us.
Metabase will automatically display a multi-series line chart, with each series representing a different category.
![multi-series in the query builder](./images/multi-series_query_builder.png)
![Multi-series in the query builder](./images/multi-series_query_builder.png)
You can also create a multi-series chart by composing a custom question in the notebook editor. All you need to do is summarize your data (e.g., count the rows) and group that data into multiple groups (e.g. `Created At` by month and Product Category).
Metabase can visualize up to 100 distinct values of a dimension at once, so if you're selecting a field that contains many values, you might need to filter the values.
![Composing a multi-series question in the notebook editor](./images/notebook_editor_multi-series.png)
## Combining multiple questions on one dashboard card
Note: you won’t be able to add another saved question to multi-series visualizations made in this fashion. Metabase can visualize up to 100 distinct values of a dimension at once, so if you're selecting a field that contains a lot of values, you might need to filter the values.
You can layer multiple questions on a single dashboard card. You can even layer questions that query different databases, as long as they share the same datetime dimension.
## Combining two saved questions
1. **Create a dashboard and enter dashboard edit mode**. On a dashboard, click the **Pencil** icon to enter editing mode.
If you already have two or more saved questions you’d like to compare, and they have the same first dimension, they can be combined onto a single dashboard card. You can even compare questions that pull data from different databases. Here’s how:
2. **Add a question** with a dimension like time or category to a dashboard. In practice, questions you'll typically want to overlay will be line or bar charts.
1. Add a question with a dimension like time or category to a dashboard. In practice, these will usually be line charts or bar charts.
3. **Edit the card's visualization**. Still in dashboard edit mode, hover over the question's card and click the **Pencil** icon to edit the card's visualization.
2. While in edit mode on the dashboard, hovering over a card will display some editing options in the upper right of the question, including an option to **add a line**, as well as a **gear** icon. Click on the add a line option (the **+** with a line and the word "Add" next to it).
![Edit visualization](./images/edit-visualization.png)
![add multi-series](./images/add_series.png)
4. **Add more data**. In the Manage data sidebar on the left, click on **Add more data**.
3. In the Edit Data modal, you’ll see the original question on the left, with a list of compatible questions you can choose from on the right. Search question(s) to add, and check the box next to each question you’d like to see alongside with the original. Metabase will add the question(s) to the same chart.
![Manage data sidebar](./images/add-data.png)
![multi-series edit modal](./images/edit_modal.png)
Metabase will list questions in the left sidebar. Valid questions that you can plot on the card will have a plus sign **+**. You can also swap out the card's current question for a different question, which may update the list of compatible questions.
If necessary, the X and Y axes will automatically update. Metabase will create a legend using the existing card titles to help you understand which question maps to which series on the chart. Repeat this process as many times as you need.
![Edit modal with multi-series](images/edit_modal_multi-series.png)
You can also swap out the chart's original question entirely, for example if you want to start over, or to reset the question's visualization to its original settings.
To remove a series, simply uncheck its box.
5. (Optional) **Rename your chart** to reflect the combined data.
Once you have your chart looking how you’d like, hit done. Metabase will show your changes on the card in the dashboard. Depending on how dense your data is, at this point you might want to consider enlarging your chart to make sure the data is legible.
6. **Save** your changes.
> **SQL questions may not work**. Metabase has less information about SQL-based questions, so we cannot guarantee they can be added reliably. You'll see a little warning sign next to SQL questions to indicate this uncertainty, so be aware that adding these kinds of questions may not work.
## Combining number charts
## Combining Number charts
If you need to compare single numbers to get a sense of how they differ, Metabase can turn multiple number charts into a funnel or bar chart.
If you need to compare single numbers to get a sense of how they differ, Metabase can turn multiple number charts into a bar chart.
1. **Add a number chart to a dashboard.**
As above, while editing a dashboard, hover over a number chart of your choice, and click on the icon with the **+** and bar chart icon to add a saved question.
2. **Visualize as a funnel chart**. (Yes, we know you're going for a bar chart, bear with us, you're going to switch the funnel's type to a bar chart.) In dashboard edit mode, hover over the card and click on **Visualize another way**. Metabase will change the visualization to a funnel chart.
Use the search bar to find other saved question(s) that you’d like to see represented on the bar chart, and click the checkbox to add them to your chart. In this case, we added **Widget orders** to compare them to **Gadget orders**.
![Visualize another way](./images/visualize-another-way.png)
![From numbers to bar chart](./images/numbers_to_bar_chart.png)
3. **Add more data**. Add another question that returns a single number to the chart.
4. **Set the Funnel type to a bar chart**. Click **Settings** and change **Funnel type** to "Bar chart".
![Set Funnel chart to Bar chart](./images/set-to-bar-chart.png)
## Multi-series charts, values, and legibility
When displaying multiple series, it’s important to keep legibility in mind. Combining many series can sometimes decrease the communication value of the data.
When displaying multiple series, it's important to keep legibility in mind. Combining many series can sometimes decrease the communication value of the data.
Metabase allows you to add values to multi-series charts, but go easy on this feature, especially on charts with lots of data points. Adding values to multiple series, each with many data points, can make charts more difficult to read.
Metabase allows you to add values to multi-series charts, but use this feature sparingly, especially on charts with many data points. Adding values to multiple series, each with many data points, can make charts _more_ difficult to read.
From the **Visualization > Display** options, you can toggle the option: **Show values on data points**. Metabase will do its best to fit as many values as can fit nicely. You can also force Metabase to (begrudgingly) show values for all data points, by setting the **Values to show** to **All**.
From the **Visualization > Display** options, you can toggle the option: **Show values on data points**. Metabase will do its best to fit as many values as can fit nicely. You can also force Metabase to show values for all data points by setting the **Values to show** to **All**.
![add values to multi-series chart](./images/add_values.png)
![Add values to multi-series chart](./images/add_values.png)
You can also toggle values for each individual series. If you have three series, for example, you can show values on one, two, or all three series.
Additionally, you can configure the formatting of the values:
- For a question with multiple dimensions, go to **Visualization > Data** tab, click on the three dots menu **...** to the right of a series, and toggle **Show values for this series** to show or hide its values.
- For a dashboard card that combines multiple saved questions, go to the **Visualization > Display** tab, click on the down arrow to the right of a series to expand its details, and toggle **Show values for this series** to show or hide its values.
You can also toggle values for the whole chart, then selectively hide values for individual series until you have your chart looking just right.
Additionally, there is an option to configure the formatting of the values:
- **Auto**. Metabase selects the appropriate style for you
- **Compact**. Metabase abbreviates values, e.g., 1,000 becomes 1K.
- **Full**. Values are displayed in their natural beauty.
- **Auto**: Metabase selects the appropriate style for you
- **Compact**: Metabase abbreviates values, e.g., 1,000 becomes 1K
- **Full**: Values are displayed in their natural form
Now go forth and start letting your data get to know each other!

View File

@@ -116,7 +116,7 @@ If you want Metabase to treat a text or number column as a datetime column:
4. Scroll to **Cast to a specific data type**
5. Select a casting option.
> Metabase currently supports only casting to a datetime type in **Cast to a specific data type**. If you need to cast to a different type (like float), you can [create a SQL question](../questions/native-editor/writing-sql.md#starting-a-new-sql-query) that casts the data and [save it as a model](./models.md#create-a-model-from-a-saved-question), or create a view directly in your database.
> Metabase currently supports limited casting options in **Cast to a specific data type**. If you need to cast to a type that's not available in Metabase, you can [create a SQL question](../questions/native-editor/writing-sql.md#starting-a-new-sql-query) that casts the data and [save it as a model](./models.md#create-a-model-from-a-saved-question), or create a view directly in your database.
**Text to datetime casting options**:
@@ -131,6 +131,16 @@ If you want Metabase to treat a text or number column as a datetime column:
- UNIXNanoSeconds->DateTime
- UNIXSeconds->DateTime
**Text to numeric casting options**:
- String->Integer
- String->Float
**Other options**:
- Float->Integer
- Datetime->Date
Casting is different from setting the [field type](./field-types.md). For example, say you have a "Created At" column with a string [data type](https://www.metabase.com/learn/grow-your-data-skills/data-fundamentals/data-types-overview) in your database. You'll need to cast "Created At" to one of the datetime types above if you want to do things like:
- Create relative date filters, such as "Created At = Last week".

View File

@@ -39,11 +39,7 @@ You can use custom expressions to combine multiple metrics, or perform calculati
To create a metric, bring up the command palette with cmd/ctrl + k. That’s cmd + k for Macs, or ctrl + k for Windows PCs. Search for New metric.
You can also create a metric by first creating a question, then converting it to a metric:
1. Click on **+ New** and select **Question**
2. Build your query using the query builder
3. Once you've created your question, you can convert it to a metric by clicking the three dot menu (**...**) and selecting **Turn into a metric**
You can also create a new metric by going to **Browse > Metrics** in the navigation side bar and clicking on **+**.
Select your starting data. You can start from a model, metric, table, or saved question.

View File

@@ -39,20 +39,25 @@ See [Personal Access Token (PAT)](https://docs.databricks.com/en/dev-tools/auth/
See [Authenticate access with a service principal using OAuth](https://docs.databricks.com/en/dev-tools/auth/oauth-m2m.html).
### Catalog
For now, you can only select one catalog. Metabase doesn't support multi-catalog connections. If you want to use more than one catalog in Metabase, you can set up multiple connections, each selecting a different catalog.
### Enable multiple catalogs
Toggle on to sync multiple catalogs. If you enable this, you'll be able to [specify which catalogs to sync](#catalogs-and-schemas).
### Default catalog
Required. You must specify a default catalog (so you don't have to deal with catalog qualification in native queries).
You can't sync Databricks's legacy catalogs, however, including the `samples` or `hive_metastore` catalogs.
### Schemas
### Catalogs and schemas
You can specify which schemas you want to sync and scan. Options are:
You can specify which catalogs and schemas you want to sync and scan. Options are:
- All
- Only these...
- All except...
For the **Only these** and **All except** options, you can input a comma-separated list of values to tell Metabase which schemas you want to include (or exclude). For example:
For the **Only these** and **All except** options, you can input a comma-separated list of values to tell Metabase which catalogs and schemas you want to include (or exclude). For example:
```
foo,bar,baz

View File

@@ -61,95 +61,6 @@ Admins can optionally specify a string of text to add in front of the table that
In order to upload CSVs, a person must be in a group with **View data** access of "Can view" and **Create queries** of Query builder access or higher to the schema you've selected to store your uploaded data. See [groups](../people-and-groups/managing.md) and [data permissions](../permissions/data.md).
## Primary key auto-generation
When you upload a CSV, Metabase will create an a unique primary key column, called `_mb_row_id`, as the first (left-most) column of the uploaded CSV table. This `_mb_row_id` column will contain automatically generated integers. Metabase will also ignore any columns in the upload that have a name that will be in the database with the same name as the auto-generated primary key column (e.g., `_MB row-ID` in the CSV will be `_mb_row_id` or `_MB_ROW_ID` in the database).
If you don't want this autogenerated ID column, you can always remove the column from the model Metabase created. Visit the model, click on the info **i** icon, then **Model details**. From the model details page, click the **Edit definition** button. In the Data section of the query builder, click on the down arrow next to the table, deselect the added ID column, and save your changes.
## Data type errors
Metabase will try to guess what the data type is for each column, but if some entries are not like the others, Metabase may not guess the type correctly. For example, if you have a column that starts with integers like 100, 130, 140, then later on a float 105.5, Metabase may reject the upload. To fix this, you'll need to use spreadsheet software to adjust the formatting so that all the integers are formatted as floats (e.g., 100.00, 130.00, 140.00 and so on) before uploading.
## File size limit
CSV files cannot exceed 50 MB in size.
> While Metabase limits uploads to 50 MB, the server you use to run your Metabase may impose a lower limit. For example, the default client upload limit for [NGINX is 1 MB](https://nginx.org/en/docs/http/ngx_http_core_module.html#client_max_body_size). So you may need to change your server settings to allow uploads up to 50 MB. People on Metabase Cloud don't have to worry about this.
If you have a file larger than 50 MB, the workaround here is to split the data into multiple files and [append those files to an existing model](../exploration-and-organization/uploads.md#appending-to-a-model-created-by-an-upload). Each file that you upload to Metabase must have a header row (the names of the columns), so if you're splitting one file into multiple files, you'll need to add header rows to each file.
## Date formats
For now, Metabase only recognizes dates and datetimes from strings in uploaded CSVs with the following formats:
### Dates
Represents the year, month, and day without time information.
**Format**: `yyyy-MM-dd`
**Example**: `2023-01-01`
### Datetimes
Represents the year, month, day, hour. Minutes, seconds, and fractional seconds are optional.
**Format**: `yyyy-MM-ddTHH:mm:ss.SSS`. The "T" separator could also be a space (" ").
**Examples**:
- `2023-01-01 00`
- `2023-01-01 00:00:00.000`
- `2023-01-01T00:00:00.000`
- `2023-01-01 00:00:00.0000000`
### Datetimes with offsets
Represents the datetime with an offset from Coordinated Universal Time (UTC). Minutes and seconds in the offset are optional.
**Formats**:
Datetime formats:
- `yyyy-MM-ddTHH:mm`.
- `yyyy-MM-ddTHH:mm:ss`.
- `yyyy-MM-ddTHH:mm:ss.SSS` (and any number of S's).
The "T" separator could also be a space (" ").
Offsets:
- `Z` (for UTC)
- `+HH` or `-HH`
- `+HH:mm` or `-HH:mm`
- `+HH:mm:ss` or `-HH:mm:ss`
**Examples**:
- `2023-01-01 00:00:00+00:00:00`
- `2023-01-01T00:00:00+00:00:00`
## Deleting models and tables created by uploads
### Deleting models created by uploads
{% include plans-blockquote.html feature="Deleting uploaded tables" %}
You can move a model to Trash by clicking on the three dots in the upper right and selecting **Move to Trash**.
For deleting models completely, see [Deleting items permanently](../exploration-and-organization/delete-and-restore.md).
### Deleting tables created by uploads
{% include plans-blockquote.html feature="Deleting uploaded tables" %}
To delete tables created by uploads, go to **Admin settings** > **Settings** > **Uploads**.
Under **Manage uploads**, Metabase will list the tables underlying the models.
When you delete the table, Metabase will give you the option to **Also send all models and questions based on this table to the trash**.
## Note on uploading data to a MySQL database
For speeding up uploads to a MySQL database, we recommend that you set a `local_infile` to `ON`. You'll need to set this `local_infile` in MySQL, not Metabase. The command-line format is `--local-infile=ON`.

View File

@@ -76,7 +76,7 @@ Once you've installed all the build tools, you'll need to clone the [Metabase re
cd ~/workspace
```
{:start="3"} 3. Run the following command to “clone” Metabase into this folder, using the URL of the Metabase repository on GitHub:
3. Run the following command to “clone” Metabase into this folder, using the URL of the Metabase repository on GitHub:
```
git clone https://github.com/metabase/metabase
@@ -88,7 +88,7 @@ This is the part that you’ll use over and over.
The “official” branch of Metabase is called `master`, and other feature development branches get merged into it when they’re approved. So if you want to try out a feature before then, you’ll need to know the name of that branch so you can switch over to it. Here’s what to do:
{:start="4"} 4. Open up your terminal app
4. Open up your terminal app
5. Navigate to where you're storing the Metabase code. If you followed this guide exactly, you'd get there by entering this command:
@@ -127,7 +127,7 @@ The “official” branch of Metabase is called `master`, and other feature deve
## Run Metabase
{:start="9"} 9. Now we’ll start up the backend server of Metabase with:
9. Now we’ll start up the backend server of Metabase with:
```
clojure -M:run
@@ -143,7 +143,7 @@ yarn build-hot
If you're having trouble with this step, make sure you are using the LTS version of [Node.js (http://nodejs.org/)](http://nodejs.org/).
{:start="11"} 11. In your web browser of choice, navigate to `http://localhost:3000`, where you should see Metabase!
11. In your web browser of choice, navigate to `http://localhost:3000`, where you should see Metabase!
This is the local “server” on your computer, and 3000 is the “port” that Metabase is running on. You can have multiple different apps running on different ports on your own computer. Note that if you share any URLs with others that begin with `localhost`, they won’t be able to access them because your computer by default isn’t open up to the whole world, for security.

View File

@@ -63,6 +63,16 @@ title: Driver interface changelog
settings formerly in a `metabase.query-processor.*` namespace have been moved to
`metabase.query-processor.settings`.
## Metabase 0.54.12
- The function `metabase.driver.sql-jdbc.sync/describe-table-fields-xf` now takes a table instead of a database
## Metabase 0.54.11
- The multimethods `metabase.driver.sql-jdbc.sync.interface/active-tables` and `metabase.driver.sql-jdbc.sync.interface/filtered-syncable-schemas`, aswell as the functions
`metabase.driver.sql-jdbc.sync.describe_database/fast-active-tables`, `metabase.driver.sql-jdbc.sync.describe_database/have-select-privilege-fn` and `metabase.driver.sql-jdbc.sync.describe_database/db-tables` now take a database spec instead of a `java.sql.Connection` object.
## Metabase 0.54.10
- Add `metabase.driver/table-known-to-not-exist?` for drivers to test if an exception is due to a query on a table that no longer exists

Binary file not shown.

Before

Width:  |  Height:  |  Size: 276 KiB

After

Width:  |  Height:  |  Size: 198 KiB

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