Open
Conversation
…se#60819) Co-authored-by: Romeo Van Snick <romeo@romeovansnick.be>
Co-authored-by: Romeo Van Snick <romeo@romeovansnick.be>
* chore: fix circular deps in qb * fixup * fixup * fixup * last circular deps * fix export * add a lint rule Co-authored-by: Uladzimir Havenchyk <125459446+uladzimirdev@users.noreply.github.com>
…tabase#60489) (metabase#60818) * Closes VIZ-264 nested JSON no longer formatted as [object Object] * added type * fixed types * fixed tests Co-authored-by: Sébastien <sebastien@metabase.com>
Co-authored-by: Sébastien <sebastien@metabase.com>
…etabase#60839) * Use displayName for error * Fix error position for node * Move padding to cm-content to avoid whitespace above gutter * Add border radius to editor to avoid overflowing container * Fix displayname in unit test * Fix type for position * Add test for error position * Add unit test for position helper Co-authored-by: Romeo Van Snick <romeo@romeovansnick.be>
…60842) Co-authored-by: Fraser <fraser@metabase.com>
…se#60830) Co-authored-by: Oisin Coveney <oisin@metabase.com>
…etabase#60862) Co-authored-by: Sébastien <sebastien@metabase.com>
…etabase#60853) (metabase#60863) Co-authored-by: Brad Anderson <brad@metabase.com>
…#60868) Two changes required to allow this: - first, for the setting itself, allow setting it if the database is writable OR an attached DWH. - second, a similar change to make sure `syncable_schemas` is fetchable for the attached DWH. Co-authored-by: John Swanson <john.swanson@metabase.com>
…etabase#60876) Fixes getting source tables in multistage aggregations. The check for when we were in the scope of the parent card was in the wrong place in the match which resulted in us failing to make a source-query block immediately inside a stage with a source card. Co-authored-by: Edward Paget <edpaget@users.noreply.github.com>
Co-authored-by: bryan <bryan.maass@gmail.com>
Co-authored-by: Nathan Voxland <nathan@metabase.com>
…60891) Co-authored-by: Brad Anderson <brad@metabase.com>
…on SQL Questions" (metabase#60859) (metabase#60921) * Add repro for metabase#48772 * Add test description --------- Co-authored-by: Romeo Van Snick <romeo@romeovansnick.be> Co-authored-by: Kamil Mielnik <kamil@kamilmielnik.com>
…er row" (metabase#60831) Co-authored-by: Oisin Coveney <oisin@metabase.com>
…tableDashboard" (metabase#60833) Co-authored-by: Oisin Coveney <oisin@metabase.com>
…embed using singletons" (metabase#60535) Co-authored-by: Phoomparin Mano <poom@metabase.com> Co-authored-by: Phoomparin Mano <phoomparin@gmail.com> fix(sdk): make isEmbeddingSdk consistent on new iframe embed using singletons (metabase#60349)
* Entity picker simplification (metabase#60858) * moving pickers into same folder, consolidate getInitialContainer hooks * getCollectionIdPath consolidation * getStateFromIdPath * comitting sins to get tests passing * import adjustment --------- Co-authored-by: Nick Fitzpatrick <nick@metabase.com> Co-authored-by: Nick Fitzpatrick <nickfitz.582@gmail.com>
…etabase#60949) Co-authored-by: Tyler Plude <tsplude@gmail.com>
…metabase#60948) Co-authored-by: Tyler Plude <tsplude@gmail.com>
…#60950) Co-authored-by: Tyler Plude <tsplude@gmail.com>
…etabase#60892) (metabase#60952) * fix chart crashes when having multiple metric and dimension columns and invalid dimension viz setting * replace spec Co-authored-by: Aleksandr Lesnenko <alxnddr@users.noreply.github.com>
Co-authored-by: Thomas Schmidt <thomas@metabase.com>
* run embedding-sdk.yml from run-tests.yml * remove e2e-tests-skipped-stub * try to put back some structure * fix name of build * / -> › because github doesn't uses only the part after the last slash * use > instead of chevron to make linter happy * breaking changeS * remove code to trigger ci Co-authored-by: Nicolò Pretto <info@npretto.com>
…se#60861) Co-authored-by: Sébastien <sebastien@metabase.com>
…tation (metabase#60892) (metabase#60952)" (metabase#60994) This reverts commit 988909d.
Co-authored-by: Brad Anderson <brad@metabase.com>
) (metabase#60969) * "I'll do this later" doesn't exit the flow (metabase#59993) * parallelize requests and make them use rtk query (metabase#59563) * parallelize requests and make them use rtk query * fix multiple "Automatically Generated Dashboards" collections created + update types * add test * EMB-459: remove 3 tables limit (metabase#59997) * Tweak welcome step content display (metabase#60083) * tweak welcome step content display * update test after copy update --------- * remove useForceLocaleRefresh as the context is now enough (metabase#60145) * adds `embedding_setup_click` event (metabase#60315) * embedding setup: remove last fetch call and speed up e2e (metabase#60392) * close EMB-487, remove last remaining fetch call * closes EMB-534, speed up e2e * createdDashboard -> createdDashboards * embedding setup: use cloud token in e2e and hide appbar and database status (metabase#60335) * EMB-533: make the e2e test use the CLOUD pro token * EMB-532: hide the database sync and the app bars in setup/embedding * Update e2e/test/scenarios/onboarding/setup/setup-embedding.cy.spec.ts * fix typo --------- Co-authored-by: Nicolò Pretto <info@npretto.com> Co-authored-by: Kyle Doherty <5248953+kdoh@users.noreply.github.com>
Co-authored-by: Timofey Kachalov <timofei@metabase.com>
…se#64483) Co-authored-by: Jeff Bruemmer <jeff.bruemmer@gmail.com>
…e#64332) Prevents the user from getting an ugly assertion error on login if the ldap is misconfigured so we can't read a real email from the server response. Co-authored-by: Edward Paget <edpaget@users.noreply.github.com>
…ase#64525) (metabase#64552) Co-authored-by: Timofey Kachalov <timofei@metabase.com>
…abase#64550) (metabase#64600) Co-authored-by: Mahatthana (Kelvin) Nomsawadi <me@bboykelvin.dev>
…64882) NodeSource should handle its own keys Co-authored-by: Dan Stone <wotbrew@gmail.com>
…different units" (metabase#64840) * Fix some events not shown on charts when grouping with different units (metabase#64801) * Fix some events not shown on charts when grouping with different units * Take timezone into account * Add tests * Simplify return * Add missing plugin to dayjs --------- Co-authored-by: Mahatthana (Kelvin) Nomsawadi <me@bboykelvin.dev>
…4984) (metabase#64987) Co-authored-by: Mahatthana (Kelvin) Nomsawadi <me@bboykelvin.dev>
…etabase#63835) * Resolved conflicts * disable snowflake (metabase#64962) https://linear.app/metabase/issue/DEV-997/reenable-snowflake-in-ci due date one week --------- Co-authored-by: Nathan Voxland <nathan@metabase.com> Co-authored-by: dpsutton <dan@dpsutton.com>
* Remove `:feature` checks on some EE code (metabase#64848) * Assert premium features for some middleware * Fix an existing bug These tests started failing here, which revealed that they formerly never actually were testing what they thought they were. A few reasons: - they turned on `advanced-permissions` feature by itself, so sandboxing was always off here - they set up sandboxing in a nonstandard way - one had a typo so we weren't even wrapping the body with `with-download-perms!` (it was a separate block entirely) This hid the bug that some of the tests were intended to reproduce - if a card used for sandboxing had a native query, then we required that you have download permissions on the entire database, which is wrong. * fix test * make assertions with/without tokens for sandboxing * Add comments about why `:feature :none` * Update enterprise/backend/test/metabase_enterprise/sandbox/query_processor/middleware/sandboxing_test.clj Co-authored-by: Cam Saul <1455846+camsaul@users.noreply.github.com> * add a nicer docstring and change fn name replace `any-native-unsandboxed-stage?` with `any-native-stage-not-introduced-by-sandbox?` * Block without feature enabled * CR response --------- Co-authored-by: Cam Saul <1455846+camsaul@users.noreply.github.com> * Init DB before doing `mbql-query` * Fix a bunch of conflicts --------- Co-authored-by: John Swanson <john.swanson@metabase.com> Co-authored-by: Cam Saul <1455846+camsaul@users.noreply.github.com> Co-authored-by: John Swanson <john.d.swanson@gmail.com>
…e#65151) Co-authored-by: Nemanja Glumac <31325167+nemanjaglumac@users.noreply.github.com>
* Run e2e tests using staging tokens (metabase#65044) This pull request updates the configuration and environment handling for E2E and compatibility tests, mainly to support running tests against a staging license/token server and to improve test reliability. The changes affect GitHub Actions workflows, environment variables, and some test and backend logic. *Backend Logic for E2E Mode* Added `is-e2e?` flag in core.clj to distinguish E2E test runs from dev/prod/test modes, allowing for custom behavior in E2E scenarios. Modified token check logic in token_check.clj to allow E2E tests to use a staging server for license validation. Changed store API settings in settings.clj to use staging endpoints when in dev or E2E mode, ensuring tests interact with the correct backend. * add new run-mode to execution case ``` ❯ ag config/run-mode src src/metabase/query_analysis/core.clj 84: (case config/run-mode ❯ ag config/run-mode modules modules/drivers/bigquery-cloud-sdk/test/metabase/driver/bigquery_cloud_sdk_test.clj 1297: run-mode (name config/run-mode) modules/drivers/bigquery-cloud-sdk/src/metabase/driver/bigquery_cloud_sdk.clj 63: run-mode (name config/run-mode) ``` We had a case statement on it. During e2e tests with this new execution mode not accounted for, it would throw errors when running any query. that is resolved now. --------- Co-authored-by: Nemanja Glumac <31325167+nemanjaglumac@users.noreply.github.com> Co-authored-by: dan sutton <dan@dpsutton.com>
* manual backport of grace period metabase#64938 into 56 Squashed commit of the following: commit e3a47b4 Author: dan sutton <dan@dpsutton.com> Date: Wed Oct 29 12:08:05 2025 -0500 rename test commit dc8111e Author: dan sutton <dan@dpsutton.com> Date: Mon Oct 27 13:14:02 2025 -0500 function composes them instead of caller rather than a caller needing to know all of the layers, i thread them for you and let you provide all arugments in one function call. dynamic var for needing to customize layers in tests. largely for removing the circuit-breaker which is stateful and hard to restart if you want to simulate errors in tests commit 36157f9 Author: dan sutton <dan@dpsutton.com> Date: Mon Oct 27 10:14:46 2025 -0500 fix with-random-premium-token! macro commit c3f2d49 Author: dan sutton <dan@dpsutton.com> Date: Mon Oct 27 08:55:05 2025 -0500 bit of cleanup commit 93c68e0 Author: dan sutton <dan@dpsutton.com> Date: Thu Oct 23 17:28:42 2025 -0500 remove commented out grace period commit 45dc17d Author: dan sutton <dan@dpsutton.com> Date: Thu Oct 23 17:02:21 2025 -0500 remove comment block commit f680555 Author: dan sutton <dan@dpsutton.com> Date: Thu Oct 23 16:29:40 2025 -0500 clean up tests and rename a bit commit d1633a8 Author: dan sutton <dan@dpsutton.com> Date: Thu Oct 23 13:22:26 2025 -0500 fixup test commit 85e7846 Author: dan sutton <dan@dpsutton.com> Date: Thu Oct 23 12:59:28 2025 -0500 attempt to simplify the api a bit the thee important functions are now `token-information`, `harness` and `decode-token`. Everyone should use token-information. Harness hooks up the grace period and retry strategies, and `decode-token` only cares about decoding a token. It should return the token-status map {:valid true ...} or throw. commit 4decf1d Author: dan sutton <dan@dpsutton.com> Date: Wed Oct 22 17:30:43 2025 -0500 couple changes protect against storing nil value. guava cache doesn't like it so gone it is. added some tests: ```clojure (testing "Setting a new value populates the grace period cache" (let [new-token (tu/random-token)] (binding [http/request (fn [& _] {:status 200 :body "{\"valid\":true,\"status\":\"fake\",\"features\":[\"fake\",\"features\"]}"})] (mt/discard-setting-changes [premium-embedding-token] (premium-features.settings/premium-embedding-token! new-token) (is (= #{"fake" "features"} (token-check/*token-features*))) (is (= {:valid true :status "fake" :features ["fake" "features"]} (token-check/retrieve token-check/grace-period new-token))))))) ``` But this ended up leaving a setting table value for this value. i don't feel like looking into discard setting changes so i'm gonna just remove it commit 94b61d5 Author: dan sutton <dan@dpsutton.com> Date: Wed Oct 22 16:48:49 2025 -0500 tests that updating value populates grace period cache commit afd3dd7 Author: dan sutton <dan@dpsutton.com> Date: Wed Oct 22 16:15:30 2025 -0500 Add a grace period to token checks There's more work on this namespace to be done i think, but this is a first cut at it. There's a lot of control flow by exceptions which is how we jump around in here. Fundamentally this should be far simpler. Will take a crack at that shortly. I also don't love that this just hammers the `fetch-token-status` function and then memoizes inside of that. Would prefer simpler layout of `token-features` function and that can be aware of population issues. Adds a simple protocol: GracePeriod, which has two functions: save! and retrieve. On successful token check, we `save!` the response. On errors, we `retrieve` previous responses. This obviously can be nil in the case we have never had a successful response, and will become nil once the grace period's internal notion of time expires. This implementation is based on guava's cache which has a nifty expireafterwrite functionality. ``` (*token-features*) ;; call this function to simulate the check of features Checking with the MetaStore to see whether token 'f325...d01a' is valid... Reporting Metabase stats: {... user counts etc} -> #{"features come back"} ;; meanwhile clear cache to simulate elapsing of 12 hours (*token-features*) ;; call function again to simulate check of features 2025-10-22 21:30:26,620 INFO premium-features.token-check :: Checking with the MetaStore to see whether token 'f325...d01a' is valid... 2025-10-22 21:30:26,622 ERROR premium-features.token-check :: Error fetching token status from https://token-check.metabase.com: clojure.lang.ExceptionInfo: network issues ;; hit network issue 2025-10-22 21:30:26,632 INFO premium-features.token-check :: Using token from grace period ->> #{graceperiod network features} ... ;; here after 5 seconds (in real life will be 36 hours) 2025-10-22 21:31:00,064 WARN premium-features.token-check :: Removing token: f325...d01a from grace period cache {mb-quartz-job-type=Cache} ``` * this line failed the linter :(
we want to not hammer the network when things are down. But during startup we don't need to circuit break these errors that we throw before the app-db is read
* Start utilizing the Trunk Quarantine for E2E tests (metabase#64873) * Enable Trunk Quarantine for drivers (metabase#64995) * Enable Trunk Quarantine for FE unit tests (metabase#65022) * Enable Trunk Quarantine for general backend tests (metabase#65128) * Fix logs upload for drivers (metabase#65257) * Fix logs upload for drivers When we introduced `continue-on-error` to the "test" step, we had to update the conditionals for the test report steps as well. I've introduced a bug by checking for a failure, instead of saying - upload test reports whenever the job is not successful. Hint: test.outcome means "step status BEFORE continue-on-error overrides the exit code"
…ase#65347) * Correct interactive embed query execution count (metabase#65336) * Simplify the FE API code * Exclude static embed preview from being counted in analytics * Update frontend/src/metabase/lib/api.js Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Clarify comments * Add tests --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Fix flaky drills tests --------- Co-authored-by: Mahatthana (Kelvin) Nomsawadi <me@bboykelvin.dev> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Make Trunk analytics always run This prevents false positives because Trunk analytics actio will now always analyze test results, and compare them with their own test quarantine list. It uses this information to know if it should fail the job or let it pass. * Introduce dry-run When a PR is in a draft mode, we don't want to upload results but still have to quarantine tests.
…se#65556) * Add flag to skip search reindexing when loading entities * Test flag Co-authored-by: Chris Truter <crisptrutski@users.noreply.github.com>
…abase#65546) (metabase#65589) - catalog metadata is not transactional in redshift - calls like pg_catalog.has_schema_privilege when using a string argument will resolve the oid of the schema/table etc - if the oid cannot be resolved (e.g. table/schema does not exist) an error is thrown We occasionally see sync failed due to relation does not exist, one cause might be concurrent test runs / cleanup deleting tables/schemas while running. I have fixed the first half of the union to use the oid form of these calls which will result in NULL instead of an error while racing with DDL in other runs. Need to research on external tables before changing the external table sub-query: probably want to join to svv_external_schemas and use the oid there, but not 100% yet. Co-authored-by: Dan Stone <wotbrew@gmail.com>
When we introduced a new e2e run mode, we didn't realize this piece of code needs to be updated as well. For people who were running the backend from source (but using e2e mode) some drivers might not have worked. Example: ``` "message": "No method in multimethod 'connection-properties' for dispatch value: :sqlite" ``` This commit fixes that.
…tabase#66637) * Bump org.apache.tika/tika-core from 3.2.2 to 3.2.3 (metabase#63799) Inspect dependency changes here: Co-authored-by: Cam Saul <1455846+camsaul@users.noreply.github.com> * Bump org.apache.tika/tika-core from 3.2.2 to 3.2.3 * Test fix ??? --------- Co-authored-by: Cam Saul <1455846+camsaul@users.noreply.github.com> Co-authored-by: Luis Paolini <paoliniluis@gmail.com> Co-authored-by: Cam Saul <github@camsaul.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Important
If you are merging into master, please add either a
backportor ano-backportlabel to this PR. You will not be able to merge until you do this step. Refer to the section Do I need to backport this PR? in the Metabase Branching Strategy document for more details.Closes https://github.com/metabase/metabase/issues/[issue_number]
Description
Describe the overall approach and the problem being solved.
How to verify
Describe the steps to verify that the changes are working as expected.
Demo
Upload a demo video or before/after screenshots if sensible or remove the section
Checklist