This project is mirrored from https://github.com/metabase/metabase.
Pull mirroring updated .
- Jun 16, 2022
-
-
Ryan Laurie authored
* allow chevron click
-
Alexander Polyankin authored
-
Benoit Vinay authored
-
Howon Lee authored
Pursuant to #22967. Previously the notion of the identifier in json-query in postgres assumed a singular identifier at the top-level of the Identifier record. This is not always the case in complicated binning scenarios - the identifier could also just comprise an entire tree of Identifier record maps with the actual Identifier we're looking to turn into the JSON query in some leaf somewhere. Therefore, the json-query's determination of what the identifier is now walks that identifier record tree and replaces the identifiers that have JSON field semantics with the reification of ToSql from json-query. Previous attempt at solution hacked together something at the json-query level, changing the reification, but that only worked for one level down, instead of just walking the Identifier tree and therefore getting stuff at arbitrary tree depth. And we do get nontrivial tree depth in the bucketing in #22967.
-
Benoit Vinay authored
* Convert Action to TypeScript * Delete possible unused ActionClick * Misc in Action * Misc * Delete Action files
-
- Jun 15, 2022
-
-
adam-james authored
* JWT shared key can now be any string. Message to suggest 64char key * Remove util require * We can now pass nice, readable multiline strings to tru/trs macros So let's do that here :)
-
Nemanja Glumac authored
-
Nemanja Glumac authored
* Fix the flake * Simplify the query * Use better assertion * Add an extra assertion
-
dpsutton authored
* Ensure :error is present for frontend The frontend checks for a string at "error" to determine if there's an error or not. Any error that lacks a message (`(.getMessage e) = nil`) will report as a successful query with no results. This was hard to reproduce at first because java 14+ added a nice error message to NPEs in [JEP-358](https://openjdk.org/jeps/358). ```java ;; java 11 jshell> HashSet x = null; x ==> null jshell> x.contains(3); | Exception java.lang.NullPointerException | at (#2:1) jshell> ;; java 17 jshell> HashSet x = null; x ==> null jshell> x.contains(3); | Exception java.lang.NullPointerException: Cannot invoke "java.util.HashSet.contains(Object)" because "REPL.$JShell$11.x" is null | at (#4:1) ``` ```clojure ;; java 17 catch-exceptions=> (let [x nil] (x 3)) Execution error (NullPointerException) at metabase.query-processor.middleware.catch-exceptions/eval130385 (REPL:41). Cannot invoke "clojure.lang.IFn.invoke(Object)" because "x" is null ;; java 11 catch-exceptions=> (let [x nil] (x 3)) Execution error (NullPointerException) at metabase.driver.sql.parameters.substitution/eval118508 (REPL:17). null ``` Here are the responses to the FE edited to the relevant bits: ```javascript // objects are edited for clarity/brevity: // from java-11 { "error_type": "qp", "status": "failed", "class": "class java.lang.NullPointerException", "stacktrace": [...], "error": null, // <---- the FE ignores all of the other data and only sees this } // vs java-17 { "error_type": "qp", "status": "failed", "class": "class java.lang.NullPointerException", "stacktrace": [...], "error": "Cannot invoke \"clojure.lang.IFn.invoke(Object)\" because \"to_period\" is null",, } ``` Also, note that we were still logging > ERROR middleware.catch-exceptions :: Error processing query: null because we were looking for `(:error format-exception)` instead of `(:error formatted-exception)`. `format-exception` is a multimethod and lookup on non-associative things will happily return nil. * Tests
-
Nemanja Glumac authored
-
Anton Kulyk authored
* Convert `initializeQB` to TypeScript * Extract parameter utils * Minor move * Simplify typings * Move cljs `normalize` to js file * Make optional parameter explicit
-
Aleksandr Lesnenko authored
-
Nemanja Glumac authored
* Run Percy (visual regression) sanity check on PRs using GHA * Run visual tests only once * Run Percy as an individual job * Fix whitespace error * Update name of the job
-
Anton Kulyk authored
-
Anton Kulyk authored
* Move initializeQB to its own file * Extensive test coverage for `initializeQB` action * Add tests for native questions with snippets * Extract `baseSetup` helper * Add coverage for blank questions * Fix missing coverage
-
Nemanja Glumac authored
-
Alexander Polyankin authored
-
Mahatthana (Kelvin) Nomsawadi authored
-
- Jun 14, 2022
-
-
Luis Paolini authored
-
metamben authored
* Use (str ...) forms to translate multi-line messages * Make H2 error messages refer to the correct field
-
Ryan Laurie authored
* only call commit once
-
Ariya Hidayat authored
-
Alexander Polyankin authored
-
Anton Kulyk authored
* Make `Card` types generic * Add basic question mock objects * Less typescript shenanigans
-
Jeff Bruemmer authored
-
Jeff Bruemmer authored
-
Nick Fitzpatrick authored
updating icons and spacing
-
Luis Paolini authored
-
- Jun 13, 2022
-
-
Ryan Laurie authored
* make slider change less
-
Ryan Laurie authored
-
Dalton authored
* Remove popover logic from ParameterFieldWidget * Support formatting array values * Fix isValid logic * Readd close popover logic * Fix various bugs/broken tests Fix formatting/remapping Fix text Fix unit test Fix text Fix placeholder Fix placeholder Fix ellipses Fix bug caused by the any type Fix date parameter value formatting Readd dashboard prop Fix e2e test selector
-
adam-james authored
* Migration to allow 'null' first and last names for users This is part of improving how we handle user names, related to SSO, but we also have an opportunity to make login via email simpler as well -> just loosen the requirement for names. * When only last name is given, :common_name should not have a space * WIP making optional first/last names safe in the backend. Trying to fix up some assumptions about first/last name keys in backend implementations. * Only add `:common_name` key when non-nil * Adjust setup tests to pass if use first/last name are nil * Fix up setup tests to work with null first/last names. * User API endpoints altered to handle nil names * Remove name validation test since they can be nil now * Alter JWT/SAML tests for nil user names * Remove "unknown" default in SAML * Add tests to make sure users are updating appropriately * use good naming convention in local function Co-authored-by:
Cam Saul <1455846+camsaul@users.noreply.github.com> * Simplify truthy check in test Co-authored-by:
Cam Saul <1455846+camsaul@users.noreply.github.com> * Simplify truthy check in test Co-authored-by:
Cam Saul <1455846+camsaul@users.noreply.github.com> * Indentation fix * Fix up syntax issue from github merge. * Fix missed function name changes in test * Clean up how sets are built up in the PUT user/:id endpoint * Better implementation for update-user-name * Avoid relying on 'vals' since order of keys is not guaranteed * Fixing little things, clarification in a comment * I'm tired... missed an obvious thing here. oops * indentation and clarify some testing * Change post-select implementation slightly * expected status is now an optional arg no dynamic var binding needed * 'f' is not optional, so we take it with first, then args are rest * simplify destructuring Co-authored-by:
Cam Saul <1455846+camsaul@users.noreply.github.com>
-
Aleksandr Lesnenko authored
* validate current password * return ignored for admins old_password field for future steps
-
Gustavo Saiani authored
-
Gustavo Saiani authored
-
Jeff Bruemmer authored
-
Nemanja Glumac authored
-
Nemanja Glumac authored
-
Nemanja Glumac authored
-
Braden Shepherdson authored
Define identity-hash for fairly robust de-duplication when deserializing This is a fallback for fully robust de-duplication based on `entity_id` fields. All serialized models should support identity-hash, and there is a test to enforce that.
-