Skip to content
Snippets Groups Projects
This project is mirrored from https://github.com/metabase/metabase. Pull mirroring updated .
  1. Feb 06, 2024
  2. Jan 31, 2024
  3. Jan 18, 2024
  4. Jan 17, 2024
  5. Jan 09, 2024
  6. Jan 04, 2024
  7. Jan 03, 2024
  8. Dec 20, 2023
  9. Dec 08, 2023
  10. Nov 15, 2023
  11. Nov 14, 2023
    • Mark Bastian's avatar
      Adding linter and formatter pre-commit hooks for staged BE files · d4957af1
      Mark Bastian authored
      * Adding linter and formatter to staged BE files.
      
      Note that `.cljfmt/indents.clj` tries to capture our indent rules
      and, so far, seems to get things right. There are still some inconsistencies
      in some of our nses in how we indent assoc(-in) and some t2 functions
      when it comes to key-value pairs on following lines. Should the keys
      align with the function call or be indented. Aesthetically, people
      seem to like indents, but these are functions, so should align with the
      first argument. IDK that it really matters as long as we have agreement.
      
      We may, as we adopt this, have some files be reformatted in unexpected ways
      for items that have been missed. If so, the developer can simply update
      the .cljfmt/indents.clj file, rerun the hook, and commit that along with
      their other changes.
      
      * Added whitespace linter.
      
      * Updating husky commit hook
      
      * Updated hook scripts to be exclusively for staged files.
      
      Updated cljfmt to use the latest and greatest along with the new format of config file.
      
      * Commenting out the actual formatting hook in .husky/pre-commit until we come up with a globally happy solution to forms that don't have good formatting rules, like defprotocol+ in a reader conditional.
      
      * Reverting formatting
      
      * Moving pre-commit hooks from .husky/pre-commit to the package.json's lint-staged section.
      
      Note that we're still not calling the cljfmt file (.bin/cljfmt_staged.sh)
      until we get agreement on formatting.
      
      One thing we might do since we're using lint-staged is we can probably
      exclude the "bad" files that go sideways with linting and format everything
      else automatically. This might be a good follow-on PR.
      d4957af1
    • Luis Paolini's avatar
      Add fonts in Dockerfile to fix pulses (#31764) · 44de976d
      Luis Paolini authored
      Add Noto fonts in Alpine Dockerfile
      44de976d
  12. Nov 08, 2023
  13. Nov 07, 2023
  14. Oct 17, 2023
  15. Oct 04, 2023
    • Nemanja Glumac's avatar
      Remove `delete-file!` function (#34306) · 80ee48bf
      Nemanja Glumac authored
      It was deprecated and left in a codebase for backwards compatibility.
      But it seems we've migrated all references to the new method `delete-file-if-exists`.
      
      The last time this was touched was three years ago.
      Should be safe to remove.
      80ee48bf
  16. Sep 28, 2023
  17. Sep 20, 2023
    • Mark Bastian's avatar
      X-ray improvements for clarity and literacy (#33815) · 764fcd06
      Mark Bastian authored
      
      * Fix clj-kondo
      
      was getting an error:
      
      ```clojure
      user=> (require ’[clj-kondo.hooks-api :as hooks])
      Syntax error compiling at (clj_kondo/impl/analysis/java.clj:61:6).
      Unable to find static field: ASM9 in interface org.objectweb.asm.Opcodes
      ```
      
      checking where the bad version comes from:
      
      ```clojure
      user=> (io/resource "org/objectweb/asm/Opcodes.class")
              "0x37e9d2e2"
              "jar:file:/Users/dan/.m2/repository/org/ow2/asm/asm-all/5.2/asm-all-5.2.jar!/org/objectweb/asm/Opcodes.class"]
      ```
      
      and running
      
      ```
      > clj -X:deps tree :aliases '[:dev :ee :ee-dev :drivers :drivers-dev :alpha :socket :morse :reveal]' > deps
      
      ❯ grep asm deps
        X org.ow2.asm/asm 9.4 :superseded
        . org.ow2.asm/asm-all 5.2
            . org.ow2.asm/asm 9.5 :newer-version
            . org.ow2.asm/asm-commons 9.5
              . org.ow2.asm/asm 9.5
              . org.ow2.asm/asm-tree 9.5
                . org.ow2.asm/asm 9.5
          X org.ow2.asm/asm 9.2 :older-version
      ```
      
      The 9.4 and 9.5s are all close to each other. But the asm-all 5.2 is far
      too old. That's brought in by eastwood. So i'll exclude it and see if it
      works
      
      * Can't throw error in api endpoint for linked entities x-ray
      
      `create-linked-dashboard` creates a dashboard if there are no linked
      entities, so this is unreachable code
      
      * unify card and query code pathways.
      
      now it's quite clear how card and query diverge:
      
      ```clojure
      (defmethod automagic-analysis Card
        [card {:keys [cell-query] :as opts}]
        (let [root     (->root card)
              cell-url (format "%squestion/%s/cell/%s" public-endpoint
                               (u/the-id card)
                               (encode-base64-json cell-query))]
          (query-based-analysis root opts
                                (when cell-query
                                  {:cell-query cell-query
                                   :cell-url   cell-url}))))
      
      (defmethod automagic-analysis Query
        [query {:keys [cell-query] :as opts}]
        (let [root       (->root query)
              cell-query (when cell-query (mbql.normalize/normalize-fragment [:query :filter] cell-query))
              opts       (cond-> opts
                           cell-query (assoc :cell-query cell-query))
              cell-url   (format "%sadhoc/%s/cell/%s" public-endpoint
                                 (encode-base64-json (:dataset_query query))
                                 (encode-base64-json cell-query))]
          (query-based-analysis root opts
                                (when cell-query
                                  {:cell-query cell-query
                                   :cell-url   cell-url}))))
      ```
      
      * Adding frequencies to a test to prevent non-deterministic behavior
      
      * Fixing linter check and ordering issue in test.
      
      * Adding TODO future task to replace /rule/ with /dashboard-template/ in paths.
      
      * Added large ns block to metabase.automagic-dashboards.core
      
      * Fixing spelling mistakes
      
      * Some docstrings and renaming for clarity.
      
      * Added ->field and ->root (covering source) tests
      
      * TODO - Fix minumum spelling error on standalone PR.
      
      * Breaking up tests to understand what is on with bulk failures
      
      * Broke make-cards into several logical steps so that the code is more readable. Added tests for each stage.
      
      * Updating references to rules.clj for i18n generation.
      
      * Inlined make-context into apply-dashboard-template. This makes the steps of creating dimensions, metrics, and filters more explicit. ATM we still need to resolve the logic around inject-root as this has dependence on the context and not the individual dimensions.
      
      * put build stuff on classpath for lsp
      
      * calculate base-context once before template loop
      
      * Removed the inject-root multimethod in favor of simple functions. Introducing the idea of removing metric and filter candidates that claim dimensions that don't exist.
      
      * Adding logic to pre-emptively remove unsatisfied metrics, filters, and dimensions.
      
      In `card-candidates` the check:
      
      ```
      (and
        (every? context-dimensions (map ffirst card-dimensions))
        (every? context-metrics card-metrics)
        (every? context-filters card-filters))
      ```
      
      is now performed to ensure that the card is satisfied before moving forward.
      
      * Renamed common-dimensions, common-metrics, and common-filters to satisfied-* for clarity. In card-candidates also changed context-* and card-* bindings to available-* and required-* for clarity.
      
      * Teasing out the generated dimensions, metrics, and filters from the big-ball-of-mud context. `make-cards` now takes the base context as well as the available computed dimensions, metrics, and filters as a separate argument. Additionally, tests were added for the `(comp #(filter-tables % tables) dashboard-templates/->entity)` branch of `some-fn` in `potential-card-dimension-bindings`. However, I am not confident that this is ever called outside of the tests. In order to be called, the entity type for the table has to be a named dimension in a card, which I can't find any examples of in the templates.
      
      * Pushing mega-context down to return value of apply-dashboard-template. Just need to take it apart where it is used downstream.
      
      * apply-dashboard-template now just returns generated values and does not build up the base context.
      
      * Adding tests for cases in which dimensions are defined in a native query on the dashcard template.
      
      The only case where this happens is in the resources/automagic_dashboards/table/example.yaml and,
      prior to this PR, had no test coverage.
      
      It does add some weird complexities to the system (including bringing in dimensions from a different
      approach vector) so perhaps we want to re-evaluate if we want this as a feature or not.
      
      ---------
      
      Co-authored-by: default avatardan sutton <dan@dpsutton.com>
      764fcd06
  18. Sep 05, 2023
  19. Sep 02, 2023
    • Cam Saul's avatar
      Migrate QP/drivers code to use MLv2 metadata directly; make another 100+ tests... · 7bacd2fa
      Cam Saul authored
      Migrate QP/drivers code to use MLv2 metadata directly; make another 100+ tests parallel and shave 12 seconds off test suite (#33429)
      
      * QP MLv2 Metadata Provider follow-ons
      
      * Update lots of stuff to use MLv2 metadata instead of legacy metadata
      
      * Fix lint warnings
      
      * B I G  cleanup
      
      * Everything is neat
      
      * Mention new test pattern in driver dev changelog
      
      * Appease Cljs by renaming a bunch of namespaces
      
      * Move more stuff over
      
      * Fix kondo errors
      
      * Fix even more things
      
      * Test fixes
      
      * Fix JS export
      
      * Test fixes :wrench:
      
      * Fix final MongoDB test
      7bacd2fa
    • metamben's avatar
      48 cycle simple bumps (#33630) · 2bd21bf8
      metamben authored
      * Bump simple changes
      * Account for changed exception message
      * Add buddy-sign license
      * Use maven coordinates to select tools.build version
      2bd21bf8
  20. Aug 22, 2023
    • Cam Saul's avatar
      Parallelize QP tests (August 2023 attempt) (#33068) · d54caf88
      Cam Saul authored
      * Parallel QP tests; linter improvements; move QP test fns
      
      * Cleanup
      
      * Move query->expected-cols
      
      * Fix QP test namespace
      
      * Test fix :wrench:
      
      * Fix merge issues
      
      * Revert unrelated changes
      
      * Test fix :wrench:
      
      * Fix some things that are actually ^:parallel safe
      
      * Remove Oracle logic for destroying DBs from different sessions since we don't test on AWS anymore
      
      * Use ReentrantReadWriteLock for getting + creating test datasets to avoid race conditions
      
      * Add non-`metabase.test` versions of things to the disallowed list for `^:parallel` tests
      d54caf88
  21. Aug 18, 2023
    • Nemanja Glumac's avatar
    • Nemanja Glumac's avatar
      Rename build.version-info to `version-properties` (#33345) · cd6aa464
      Nemanja Glumac authored
      We have to sets of functions that deal with the information about Metabase version.
      1. During build process we create `version.properties` file
      2. During release we create new `version-info.json` or `version-info-ee.json` files that we store in AWS
      
      The first contains the information about the current Metabase version.
      It's used to generate info in "About Metabase" window, among others.
      
      Calling both namespaces `version-info` leads to unnecessary confusion.
      This commit should make the disctinction between the two more obvious and clear.
      cd6aa464
  22. Aug 07, 2023
  23. Jul 21, 2023
  24. Jul 04, 2023
  25. Jun 26, 2023
  26. Jun 21, 2023
  27. Jun 20, 2023
  28. Jun 10, 2023
  29. Jun 09, 2023
  30. Jun 07, 2023
  31. Jun 04, 2023
    • Nemanja Glumac's avatar
      Update fallback for `interactive?` check (#31311) · ca8bdae5
      Nemanja Glumac authored
      We migrated from CircleCI a long time ago and are now using GitHub Actions.
      But even without that CircleCI, like many other CI providers, sets the
      `CI` environment variable to `true` or to `1` by default.
      
      This PR updates the `interactive?` check to use that env var as fallback.
      ca8bdae5
  32. Apr 28, 2023
  33. Apr 26, 2023
    • Tim Macdonald's avatar
      Upload CSVs (#30256) · a06e640e
      Tim Macdonald authored
      
      * allow formData uploads
      
      * basic CSV uploads from collections
      
      * add dropzone support for collections
      
      * Add CSV uploads feature and have postgres and H2 support it (#29636)
      
      * Add csv uploads feature and have postgres support it
      
      * Add h2 support
      
      * CSV: schema detection (#29650)
      
      * CSV / Admin Upload Settings (#29709)
      
      * allow formData uploads
      
      * basic CSV uploads from collections
      
      * add dropzone support for collections
      
      * allow formData uploads
      
      * basic CSV uploads from collections
      
      * add dropzone support for collections
      
      * Add CSV uploads feature and have postgres and H2 support it (#29636)
      
      * Add csv uploads feature and have postgres support it
      
      * Add h2 support
      
      * Add defsettings
      
      * Add table prefix setting
      
      * add data upload settings
      
      * Add newline
      
      * update settings mock
      
      * Whether or not uploads are enabled
      
      ---------
      
      Co-authored-by: default avatarCal Herries <39073188+calherries@users.noreply.github.com>
      Co-authored-by: default avatarCallum Herries <hi@callumherries.com>
      
      * Create table and insert rows from CSV uploads for postgres (#29677)
      
      * WIP create table and insert rows
      
      * Add newline
      
      * Use multimethods
      
      * WIP
      
      * Fix postgres
      
      * Fix postgres impl
      
      * Use detect-schema and add test
      
      * Fix load-from-csv arglists
      
      * Undo whitespace change
      
      * Use empty db instead
      
      * Add table and field tests
      
      * Remove prn
      
      * Uniquify names
      
      * newline
      
      * Add test for float
      
      * Add a test for the table contents
      
      * Tidy load-from-csv
      
      * Drop the table if loading the csv fails
      
      * Drop the table only if loading the csv fails
      
      * whitespace
      
      * Address SQL injection vulnerability
      
      * Use the slugified file-name as the table-name
      
      * Fix kondo
      
      * Using absolute path instead of relative
      
      * Fix kondo
      
      * Detect types for empty CSV files appropriately (#29754)
      
      * Create models from CSV uploads (#29966)
      
      * Wire up CSV uploads, sync the new table
      
      Still need to create a model
      
      * Check database support for CSV uploads better
      
      * Another test
      
      * Create model after sync
      
      * Fix request with formData
      
      * Fix tests
      
      * Fix tests
      
      * Revert "Fix request with formData"
      
      This reverts commit 66f146a41cf42feb34dbb03ed8566fa4220d0642.
      
      * Add whitespace
      
      ---------
      
      Co-authored-by: default avatarTim Macdonald <tim@tsmacdonald.com>
      
      * Fix postgres support for uploads (#29922)
      
      * Check write perms for collection (#29976)
      
      * Rename metabase.csv -> metabase.upload (#29975)
      
      * Rename metabase.csv -> metabase.upload
      
      * Add docstring
      
      * Rename alias for release.common.upload
      
      ---------
      
      Co-authored-by: default avatarCallum Herries <hi@callumherries.com>
      
      * WIP - 29598 csv status toast (#29757)
      
      * temp
      
      * generalize StatusListing types
      
      * Putting a pin in this for now
      
      * poorly done typing
      
      * generalizing upload function names
      
      * point to real API
      
      * Fixing Storybook
      
      * Permissions for Status Listing
      
      * use formdata and fix types
      
      ---------
      
      Co-authored-by: default avatarRyan Laurie <iethree@gmail.com>
      
      * Don't support redshift (#29981)
      
      * Handle uploads to the root collection (#29985)
      
      * Allow the uploads schema to be nil (for MySQL, etc.) (#29987)
      
      * CSV upload: fix stack overflow in detect-schema (#29983)
      
      * Fix stack overflow error on detect schema
      
      * map + vec -> mapv
      
      ---------
      
      Co-authored-by: default avatarTim Macdonald <tim@metabase.com>
      
      * reload collection data after upload (#30009)
      
      * MySQL support for uploads (#29829)
      
      * Add MySQL support for uploads
      
      * Rename arg to upload-type
      
      * Use new ns name
      
      * Allow no table-name prefix to be specified and fix tests
      
      ---------
      
      Co-authored-by: default avatarTim Macdonald <tim@tsmacdonald.com>
      
      * Fix setting descriptions (#30023)
      
      * Batch CSV insertion for better performance (#30028)
      
      * CSV upload e2e tests (#30005)
      
      * add CSV upload e2e tests
      
      * update tests
      
      * H2 support for uploads (#29828)
      
      * Add uploads support for H2
      
      * Rename arg
      
      * whitespace
      
      * Use new metabase.upload ns name
      
      * Fix tests for H2
      
      * Make table and field matching case insensitive
      
      * Fix kondo error
      
      ---------
      
      Co-authored-by: default avatarTim Macdonald <tim@tsmacdonald.com>
      
      * Clear CSV upload state after a while (#30014)
      
      * clear upload status after 5s
      
      * make async behavior clearer
      
      * CSV Upload Dates and Datetimes Types (#30076)
      
      * Simple dates
      
      * Simple datetimes
      
      * Fix coalesce for date and datetime
      
      * Add mysql and h2 types
      
      * Fix test
      
      * Misc cleanup
      
      * Fix test
      
      ---------
      
      Co-authored-by: default avatarTim Macdonald <tim@tsmacdonald.com>
      
      * Fix Kondo (rebase gone wrong)
      
      * MySQL test fix
      
      * Fix order of Metabot setting
      
      * adding unit tests to upload actions and reducers (#30161)
      
      * adding unit tests to upload actions and reducers
      
      * use fetch-mock
      
      * Adding component unit test
      
      * Check CSV Upload permissions on the frontend (#30094)
      
      * CSV / Admin Upload Settings (#29709)
      
      * allow formData uploads
      
      * basic CSV uploads from collections
      
      * add dropzone support for collections
      
      * allow formData uploads
      
      * basic CSV uploads from collections
      
      * add dropzone support for collections
      
      * Add CSV uploads feature and have postgres and H2 support it (#29636)
      
      * Add csv uploads feature and have postgres support it
      
      * Add h2 support
      
      * Add defsettings
      
      * Add table prefix setting
      
      * add data upload settings
      
      * Add newline
      
      * update settings mock
      
      * Whether or not uploads are enabled
      
      ---------
      
      Co-authored-by: default avatarCal Herries <39073188+calherries@users.noreply.github.com>
      Co-authored-by: default avatarCallum Herries <hi@callumherries.com>
      
      * properly check if user can upload to a collection
      
      * do some db checking
      
      * don't check admin status for upload notification
      
      * misc cleanup
      
      * fix rebase
      
      * add loggedin check to statusListing
      
      also combines container + view component into a single file
      
      * update unit tests
      
      * update tests
      
      ---------
      
      Co-authored-by: default avatarCal Herries <39073188+calherries@users.noreply.github.com>
      Co-authored-by: default avatarCallum Herries <hi@callumherries.com>
      
      * Csv/misc bugfixes (#30219)
      
      * Support empty header names
      
      * Handle long CSV names more appropriately
      
      Handle duplicate column names in CSVs
      
      * Test fix
      
      * Partition CSV inserts a little more intelligently
      
      * Test fix
      
      * Remove 'duplicate' from duplicated column names
      
      * More intelligent sampling
      
      * Add comment re. Postgres table-name-length-limit
      
      * Quote column names, clean up tests
      
      When unquoted, we couldn't use reserved words (true, false, group, etc.)
      as column names
      
      * Fix test
      
      Now that we quote things, H2 is case-sensitive
      
      * Use dialect-appropriate quoting
      
      Also clean up some card-filtering tests so they work with a dirty DB
      
      * Fix deduplication
      
      * Remove use of setting/get
      
      * Remove unneeded migration
      
      ---------
      
      Co-authored-by: default avatarCallum Herries <hi@callumherries.com>
      
      * Fix test (#30383)
      
      ---------
      
      Co-authored-by: default avatarRyan Laurie <iethree@gmail.com>
      Co-authored-by: default avatarCal Herries <39073188+calherries@users.noreply.github.com>
      Co-authored-by: default avatarRyan Laurie <30528226+iethree@users.noreply.github.com>
      Co-authored-by: default avatarCallum Herries <hi@callumherries.com>
      Co-authored-by: default avatarNick Fitzpatrick <nick@metabase.com>
      a06e640e
  34. Apr 18, 2023
Loading