This project is mirrored from https://github.com/metabase/metabase.
Pull mirroring updated .
- May 25, 2022
-
-
Anton Kulyk authored
-
Nemanja Glumac authored
-
Alexander Lesnenko authored
-
Benoit Vinay authored
* Dashboard converted to TypeScript * Remove Dashboard as it seems to be unused
-
- May 24, 2022
-
-
Dalton authored
-
Ryan Laurie authored
* support for segment filters in modal
-
Case Nelson authored
Since we have linters that force the refers to be both sorted and max lined, adding new models in the middled forced people to realign the whole refer vector. Having run into this twice, if we keep refers each on their own line the initial add, as well as merges will both be much less painful.
-
Case Nelson authored
* Add anchor time to persistence schedule Introduces a new public-setting persisted-model-refresh-anchor-time, representing the time to begin the refresh job. Defaults to midnight "00:00". Also peg the cron jobs to run in the first of: reporting timezone, system timezone, or UTC. This means that if a user needs the refresh to be anchored consistently to a certain time in a certain place, they need to update reporting timezone to match. * Add tests for anchor time * Force anchor-time to midnight if refresh hours is less than 6 * Need to check that hours was passed in * Fix ns lint * Add tests to ensure timezone is being set on trigger
-
Cam Saul authored
-
Dalton authored
use new util and remove unused code Split out WidgetStatusIcon fix waiting on request that no longer happens
-
Nemanja Glumac authored
-
Noah Moss authored
-
Alexander Lesnenko authored
-
Alexander Lesnenko authored
-
Ariya Hidayat authored
* add some basic unit tests
-
Alexander Polyankin authored
-
Nemanja Glumac authored
-
Alexander Lesnenko authored
-
Benoit Vinay authored
* DimensionOptions to TypeScript * New package for DimensionOptions * Constructor properties updated * Fix for name property * Misc * Removed IDimensionOptions * Renamed interfaces
-
Nemanja Glumac authored
-
- May 23, 2022
-
-
Nemanja Glumac authored
-
dpsutton authored
we assert that the schedule gets randomized and it is no longer one of the default schedules. We need to make sure that it cannot return one of the default schedules in that case :). Low probability (1 in 58) but with 28 test suites run for each commit it starts to add up and becomes Flaky™
-
Nemanja Glumac authored
-
Ariya Hidayat authored
-
Ariya Hidayat authored
-
dpsutton authored
Settings require db access so cannot be called at read/require time. Not until we have initialized the db are setting values possible to be read.
-
dpsutton authored
* Handle `nil` cache during initial cache population this bug only happens soon after startup. The general idea of the cache is that we repopulate if needed, and other threads can use the stale version while repopulating. This is valid except at startup before the cache has finished populating. The `(setting.cache/cache)` value will still be nil to other threads while the first thread populates it. this is a race but sounds like an unlikely one to hit in practice. But we have a special case: `site-url`. We have middleware that checks the site-url on every api request and sets it if it is nil. So if an instance gets two requests before the cache has been populated, it will set it to whatever value is in the headers, overriding whatever has been set in the UI. The following snippet was how i diagnosed this. But to simulate startup you can just `(require 'metabase.models.setting.cache :reload)` to get back to an "empty" cache and let the threads race each other. I also put high contention on reloading by dropping the millisecond cache update interval to 7 milliseconds. But this refresh interval does not matter: we just fall back to the old version of the cache. It is only the initial cache population that is using `nil` as a current cache. ```clojure public-settings=> (let [mismatch1 (atom []) mismatch2 (atom []) iterations 100000 latch (java.util.concurrent.CountDownLatch. 2) nil-value (atom [])] (future (dotimes [_ iterations] (let [value (site-url) cache (metabase.models.setting.cache/cache)] (when (not= value "http://localhost:3000") (swap! mismatch1 conj value)) (when (not= (get cache "site-url") "http://localhost:3000") (swap! nil-value conj cache)))) (.countDown latch)) (future (dotimes [_ iterations] (let [value (site-url) cache (metabase.models.setting.cache/cache)] (when (not= value "http://localhost:3000") (swap! mismatch2 conj value)) (when (not= (get cache "site-url") "http://localhost:3000") (swap! nil-value conj cache)))) (.countDown latch)) (.await latch) (def nil-value nil-value) [(count @mismatch1) (take 10 @mismatch1) (count @mismatch2) (take 10 @mismatch2)]) [0 () 1616 (nil nil nil nil nil nil nil nil nil nil)] ``` * Don't attempt to get setting values from db/cache before db ready * We check `db-is-setup?` above this level db check has to happen higher up at `db-or-cache-value` as neither the db will work, nor the cache based on selecting from the db, if the db is not set up. * Remove some of the nested whens (thanks howon) Lots of nesting due to requiring and checking for nil of the required var. This can never really be nil but just to overly cautiously guard, put in an or with the `(constantly false)`. Combine the two predicates into a single `and` and then swap our homegrown `(when (seq x) x)` for the equivalent `(not-empty x)`.
-
- May 20, 2022
-
-
Dalton authored
-
Dalton authored
* Add useMostRecentCall hook * Infer types
-
Alexander Lesnenko authored
-
Ryan Laurie authored
-
Alexander Lesnenko authored
* fix usage of invalid value for scatter bubbles * wait until chart renders
-
Mahatthana (Kelvin) Nomsawadi authored
* Delete unused action `SET_DATABASE_CREATION_STEP` * Delete unused reducer and its dependencies * Simplify database form
-
- May 19, 2022
-
-
Dalton authored
* Convert TokenField to TypeScript * Move TokenField code to own folder * Dedup --> _.unique
-
Case Nelson authored
Since this information is used in the model cache logging screen accessible by monitoring users, :monitoring rather than :setting permission is the correct one.
-
Ariya Hidayat authored
-
Ariya Hidayat authored
-
Cam Saul authored
* `defsetting` setter functions should end in `!` * Fix typo * Update .clj-kondo/hooks/metabase/models/setting.clj * Fix clj-kondo for Toucan defmodel not emitting a docstring * Remove `^:private` metadata on a couple of Settings since it makes Eastwood fussy
-
Dalton authored
-
Diogo Mendes authored
-