Skip to content
Snippets Groups Projects
This project is mirrored from https://github.com/metabase/metabase. Pull mirroring updated .
  1. May 16, 2022
  2. May 15, 2022
  3. May 14, 2022
  4. May 13, 2022
    • Nemanja Glumac's avatar
    • Case Nelson's avatar
      Update persist model api permissions for EE (#22601) · f302d582
      Case Nelson authored
      * Update persist model api permissions for EE
      
      On OSS, only Admins can enable model cache in `Settings/Cache`,
      enable database model cache in `Settings/Databases` and cache individual models.
      
      On EE/Pro, users with `Settings access` application permissions can enable model
      cache in `Settings/Cache` and users with `Manage database` can enable model
      cache for a database.
      
      * Add tests for application permissions
      Unverified
      f302d582
    • Case Nelson's avatar
      Upgrade build-drivers to Clojure 1.11.1 (#22709) · 5ae6f212
      Case Nelson authored
      Addressing
      Running clj -X:deps tree in bin/build-drivers the cli version is getting picked up
      as I switched clojure-cli versions between 1.11 and 1.10.
      
      I think this is because including metabase/metabase-core as a local/root no longer
      places the clojure dep within it at the top level.
      
      Now, the docs say
      > It is a top dep (top dep versions always win) or it is a new lib or a newer version of a known lib (Maven keeps only the first found version regardless of new/old)
      
      And so I would expect to see org.clojure/clojure in the deps tree under
      metabase/metabase-core but it's missing, which to me means clojure maybe treated
      specially if the root deps don't specify it.
      Unverified
      5ae6f212
    • metamben's avatar
      Replace "" with nil for Postgres UUIDs (#22667) · 2f208ff1
      metamben authored
      UUIDs are treated as strings and when checking is-empty/not-empty, we compare
      them against the empty string.
      But an empty string is not a valid UUID, so this comparison is useless for
      Postgres where a UUID field cannot have such a value. Assuming that a UUID
      field is only ever compared to the empty string in the context of
      is-empty/non-empty checks, replacing it with nil is OK.
      Unverified
      2f208ff1
    • dpsutton's avatar
      Record startup times (#22707) · ae032bb0
      dpsutton authored
      * Record startup times
      
      updated `dev/start!`. `mb.core/init!` itself sets up the db, loads
      plugins, and sets the init status so those were superfluous.
      
      * clean up dev namespace
      
      * testing doesn't call init so set a value
      Unverified
      ae032bb0
    • Cam Saul's avatar
      SQL JDBC Delete Row Action (#22608) · d6864f38
      Cam Saul authored
      
      * SQL JDBC Delete Action [ci skip]
      
      * Add note about parsing values [ci skip]
      
      * transition to using mbql for actions/row/:action
      
      - TODO: how to setup a qp store?
      - TODO: better way to keywordize filters?
      
      * some cleanup [ci skip]
      
      * better message on delet statement conflicts
      
      - and a test
      
      * mt/with-everything-store -> seed store manually [ci skip]
      
      * fix some test input
      
      * get more tests passing
      
      * add more validation tests
      
      * privatize catch-throw
      
      * plug in and alter tests to use with-actions-test-data
      
      Co-authored-by: default avatarBryan Maass <bryan.maass@gmail.com>
      Unverified
      d6864f38
    • dpsutton's avatar
      Don't reschedule syncs on startup (#22680) · a6c1b33c
      dpsutton authored
      * Don't reschedule syncs on startup
      
      Previously when we started up, for each database we compare its current
      schedule to its schedule in Quartz, and update the triggers if they were
      different. But we handle this change on db inserts and db updates so
      this is completely unnecessary. We did this back when quartz was in
      memory only and it remained when we persisted.
      
      We can remove this complexity. On an app-db with 400 postgres databases,
      this takes 46 seconds in the old world and appears as just another log
      statement now.
      
      Reports from the wild are even more distressing: the quartz tables got
      full of dead tuples causing queries to the triggers to take a long
      time. They also had 500+ databases. We query all triggers and linear
      search for each database and this process exploded up to as much as 8
      hours. Now we are not doing all of this extra work and startup should be
      quick again.
      
      * clj-kondo ignore unused private var
      
      * appease ns linter
      
      * remove clojure.core/binding and unused bindings
      
      * Rename `default-schedules` -> `default-randomized-schedule`
      
      makes it a bit more clear what's going on
      
      * Put randomizer in transducer over reducible query; tests
      
      basically a `run!` over a reducible query that also does a count for
      logging. Tests now check the three options:
      - default schedules, updated
      - non-default schedules, not updated timestamp verified that it is
      identical.
      - default schedules but user controls schedule: not updated, timestamp
      verified that it is identical.
      
      * Prevent randomized schedules from returning a default value
      
      it actually doesn't matter in the application but the tests are
      asserting that the newly randomized schedule is not one of the defaults
      it was changed from and that can fail sometimes. Doesn't matter
      logically but no biggie to simplify the tests.
      
      Otherwise they fail in (1/60)+(1/24) test runs which is actually
      decently frequently with 26 test suites per commit
      Unverified
      a6c1b33c
    • Jeff Bruemmer's avatar
    • Diogo Mendes's avatar
    • Anton Kulyk's avatar
      Add basic insert/update row form UI (#22642) · db4ed5cf
      Anton Kulyk authored
      * Add stub `WritebackForm`
      
      * Connect QB to writeback flag state
      
      * Add `WritebackForm` to `QueryModals`
      
      * Add "New row" button
      
      * Add missing `Table` and `Field` type properties
      
      * Generate simple form out of field metadata
      
      * Fix form layout in a modal
      
      * Add field fingerprint types
      
      * Show "New row" button on raw tables too
      
      * Allow overwriting `FieldValuesWidget` renderers
      
      * FieldValuesWidget: prop to always use `TokenField`
      
      * Add class names to `TokenField`
      
      * Highlight input border on hover
      
      * Add category field picker for writeback form
      
      * Support initial values for `WritebackForm`
      
      * Add editing mode to `ObjectDetail`
      
      * Fix type errors
      
      * Fix `CategoryFieldInput` `onChange` return value
      
      * Ooops
      Unverified
      db4ed5cf
    • Alexander Polyankin's avatar
    • Howon Lee's avatar
      No open redirects for enterprise SSO's (#22622) · f3f9c627
      Howon Lee authored
      Open redirects means doing some sso with a built-in redirect, and redirecting into an unhappy place (aka, a non-MB place) afterwards so that someone gets phished or other bad things happen. This is already prevented for OSS sso's but not EE - prevents this for EE sso's by forcing redirects to be in MB `site-url` set domain.
      Unverified
      f3f9c627
  5. May 12, 2022
Loading