Skip to content
Snippets Groups Projects
This project is mirrored from https://github.com/metabase/metabase. Pull mirroring updated .
  1. Feb 06, 2023
    • Cal Herries's avatar
      [Feature] Allow actions to be shared via public link: Milestone 1 (#27777) · 90919d31
      Cal Herries authored
      * Add public_uuid and made_public_by_id to actions table & endpoints to enable/disable the public sharing on individual actions (#27721)
      
      * Add migration for public_uuid (indexed) and made_public_by_id
      
      * Add UUIDString schema
      
      * Add endpoints for enabling/disabling sharing of actions
      
      * Test that the new fields are returned with `GET /api/action/:id`
      
      * Remove validCheckSum on migration
      
      * Remove trailing whitespace
      
      * Fix DELETE test
      
      * Fix tests
      
      * Please migration linter
      
      * Update the default public_uuid every test run
      
      * Please migration linter
      
      * Add FK onDelete cascade
      
      * Replace ü
      
      * Add GET endpoint and post-select for action
      
      * Revert "Add GET endpoint and post-select for action"
      
      This reverts commit 8cc8b57d6034146dd726b54bc4199830ec1fda21.
      
      * Fix merge
      
      * Reorder migrations
      
      * Update test for GET `api/action?model-id=<id>` endpoint to include public sharing keys (#27802)
      
      * Add GET: /api/public/action/:uuid endpoint (#27781)
      
      * Add test
      
      * Remove non-public columns and check for 404
      
      * Fix docstring
      
      * Rename for clarity
      
      * Fix missing ns
      
      * Remove unneccessary keys from action
      
      * Update test
      
      * Remove unused refer
      
      * Reorder migrations
      
      * Use mt
      
      * Add require and refactor
      
      * Use mt
      
      * Add endpoint for executing a public action (#27793)
      
      * Add endpoint and test
      
      * Add more tests and TODOs
      
      * Use mt
      
      * Reorder migrations
      
      * Remove unused require
      
      * Rate limit actions at 1 per second
      
      * Fix the tests for the throttle
      
      * Refactor tests
      
      * Fix test
      
      * Fix docstring
      
      * Add test for failed execution if actions are disabled
      
      * Use crowberto in tests
      
      * Fix using crowberto in tests
      
      * Fix cyclic load dependency
      
      * Refactor ActionCreator (#27832)
      
      * Refactor make ActionCreator more sane
      
      * Render sidebar conditionally with JS rather than hiding it in CSS
      
      * Make action public (#27809)
      
      * Move action creator action buttons to the header following design
      
      * Remove double border which make it looks thicker
      
      * Draft toggle action public
      
      * Add confirmation when disabling public link similiar to questions and dashboards
      
      * Add an action public UUID input and copy button
      
      * Show action settings based on user permission
      
      * Add public action toggle tests
      
      * Remove unused import :face_palm:‍
      
      * Attempt to fix flaky CI unit tests
      
      The problem seems to be because of how long it takes for the response
      to be received even on unit tests, it took longer than 1 second which is
      the default timeout for `waitFor`.
      
      * See if not using `userEvent` could make the involving nock faster
      
      * Improve test speed to reduce flakiness
      
      * Add public action page (#27747)
      
      * Add basic public action page
      
      * Add form submit logic placeholder
      
      * Use "Submit" as default action form's button label
      
      * Add "big" variant to `EmbedFrame's` footer
      
      * Use new footer variant for action page
      
      * Break down the page, add document title
      
      * Handle long forms better
      
      * Add `PublicWritebackAction` type
      
      * Use public action GET endpoint
      
      * Add endpoint to execute public actions
      
      * Use action execution endpoint
      
      * Add tests
      
      * Handle actions without parameters
      
      * Rename variant prop
      
      * Replace `waitFor` with `findBy`
      
      * Define `FooterVariant` type
      
      * Fix router setup in `renderWithProviders`
      
      * Show which action is publicly accessible on model detail page (#28039)
      
      * Bring e2e tests back
      
      Manually bringing back tests added in: https://github.com/metabase/metabase/pull/28056
      
      
      
      * Update typo
      
      Co-authored-by: default avatarTim Macdonald <tim@metabase.com>
      
      * Remove TODO and use malli for defendpoint
      
      * Add malli schema for endpoints
      
      * Update permissions checks for POST and DELETE
      
      ---------
      
      Co-authored-by: default avatarMahatthana (Kelvin) Nomsawadi <me@bboykelvin.dev>
      Co-authored-by: default avatarMahatthana Nomsawadi <mahatthana.n@gmail.com>
      Co-authored-by: default avatarAnton Kulyk <kuliks.anton@gmail.com>
      Co-authored-by: default avatarTim Macdonald <tim@metabase.com>
      Unverified
      90919d31
    • Alexander Polyankin's avatar
    • Kyle Doherty's avatar
      add storybook a11y addon (#28071) · 9e38f4a8
      Kyle Doherty authored
      Unverified
      9e38f4a8
    • Aleksandr Lesnenko's avatar
      Update PR template (#28001) · 3618d1a3
      Aleksandr Lesnenko authored
      * Update PR template
      
      * review
      Unverified
      3618d1a3
    • Alexander Polyankin's avatar
    • Ngoc Khuat's avatar
      makes sure snowplow tracking for taskhistory does not exceeds the chars limit (#28019) · 3bfa4e16
      Ngoc Khuat authored
      * makes sure snowplow tracking for taskhistory does not exceeds the 2048 limit
      
      * explains why 2048 limit is needed and return nil instead of empty string
      Unverified
      3bfa4e16
    • Anton Kulyk's avatar
    • Cal Herries's avatar
      Enable and fix broken "edit history metadata" E2E tests (#27889) · 9adc1120
      Cal Herries authored
      
      * Fix test filename
      
      * Fix tests
      
      ---------
      
      Co-authored-by: default avatarAnton Kulyk <kuliks.anton@gmail.com>
      Unverified
      9adc1120
    • Alexander Polyankin's avatar
  2. Feb 03, 2023
  3. Feb 02, 2023
    • Ngoc Khuat's avatar
      Deduplicate params values when call with multiple fields (#27990) · 7ef8c11e
      Ngoc Khuat authored
      deduplicates values returned from multiple fields and use malli for API schema
      Unverified
      7ef8c11e
    • Nemanja Glumac's avatar
    • Mark Bastian's avatar
      Added logic to correctly return collections for only the current user (#27962) · dca5f441
      Mark Bastian authored
      Added logic to select only collections for a user that are public or their own. Note that original CTE logic was rewritten as inline queries as MySQL5.7 doesn't support CTEs.
      Unverified
      dca5f441
    • Bryan Maass's avatar
      insert next-gen permission paths alongside currently active permission paths +... · c46337ad
      Bryan Maass authored
      insert next-gen permission paths alongside currently active permission paths + classification (#27911)
      
      * implement move, which returns v2 paths
      
      - TODO: insert these into the db
      
      (move v1-path) => [v2 paths]
      
      * cleanup + add some schemas
      
      * generative tests 4 permission path classification
      
      * whitespace lint
      
      * detect data, query, and paths for v2
      
      * calling move on v2 paths is a no-op
      
      * differentiate between v1 and v2 permissions
      
      quickchecking for move, classify-path, and classify-data-path
      
      * fix tests + add idempotency test
      
      * add tests for classification of permission paths
      
      - rename move to ->v2-path
      - move some fxns around
      - ascii art in test
      
      * making the legos line up
      
      - need to insert both v1 and v2 versions of paths (of course)
      - valid-path? has to allow v2 paths to be inserted
      
      * replace mu/with-api-error-message
      
      * linter + code quality fixes
      
      * privatize rx->kind
      
      * remove some changes that should be 4 anotherbranch
      
      * revert ns
      
      * delete v2 permissions in
      
      - they aren't handled by the perm graph parser, so they don't get propagated into "old graph", so the diff between old and new indicates that they need to be rewritten.
      
      * only delete v2 paths for the current group_id
      
      - reorder declarations in models.permissions
      
      * remove extra line break
      
      * Update src/metabase/models/permissions.clj
      
      fix typo
      
      Co-authored-by: default avatarmetamben <103100869+metamben@users.noreply.github.com>
      
      ---------
      
      Co-authored-by: default avatarmetamben <103100869+metamben@users.noreply.github.com>
      Unverified
      c46337ad
    • Alexander Polyankin's avatar
    • Mark Bastian's avatar
      Ban println/printf via clj-kondo config (#27997) · 021c6708
      Mark Bastian authored
      Added bans for print and friends. Fixed issues in kondo config where a macroexpansion put in a print by replacing with (constantly nil) as a no-op.
      Unverified
      021c6708
    • Mahatthana (Kelvin) Nomsawadi's avatar
      Bump `node` to version 16 (#27970) · 10a56f06
      Mahatthana (Kelvin) Nomsawadi authored
      * `nock` behave differently between v14 and v16+
      
      * Remove xmlhttprequest
      
      * [ci skip] Add a comment warning people to not upgrade CI node version
      
      As it might break the unit tests.
      Unverified
      10a56f06
    • Aleksandr Lesnenko's avatar
      Polish tooltips (#27965) · 5f3da072
      Aleksandr Lesnenko authored
      * polish-tooltips
      
      * review
      Unverified
      5f3da072
    • dpsutton's avatar
      Run all tests on mysql/h2/postgres app-db tests (#28000) · 0dd33509
      dpsutton authored
      Originally made all "drivers" tests skip the :mb/once test selected test
      namespaces. But we use the drivers matrix to test the different app-db
      types (mysql, postgres). So this moves the `:exclude-tags [:mb/once]`
      selector off of the drivers job and into particular driver jobs.
      
      ```clojure
      user=> (letfn [(uses-exclude? [[job-name job]]
                       (let [steps (:steps job)]
                         (reduce (fn [uses? step]
                                   (if-let [with (:with step)]
                                     (if (= ":exclude-tags '[:mb/once]'" (:test-args with))
                                       (reduced true)
                                       uses?)
                                     uses?))
                                 false
                                 steps)))]
               (-> (group-by uses-exclude? (:jobs (yaml/from-file ".github/workflows/drivers.yml")))
                   (update-vals (fn [jobs] (map key jobs)))))
      {true (:be-tests-athena-ee
             :be-tests-bigquery-cloud-sdk-ee
             :be-tests-druid-ee
             :be-tests-googleanalytics-ee
             :be-tests-mongo-4-2-ee
             :be-tests-mongo-4-2-ssl-ee
             :be-tests-mongo-5-0-ee
             :be-tests-mongo-5-0-ssl-ee
             :be-tests-mongo-latest-ee
             :be-tests-oracle-18-4-ee
             :be-tests-oracle-21-3-ee
             :be-tests-presto-186-ee
             :be-tests-presto-jdbc-ee
             :be-tests-redshift-ee
             :be-tests-snowflake-ee
             :be-tests-sparksql-ee
             :be-tests-sqlite-ee
             :be-tests-sqlserver-ee
             :be-tests-vertica-ee),
       false (:be-tests-google-related-classpath-ee ;; includes an :only selector
              :be-tests-mariadb-10-2-ee
              :be-tests-mariadb-latest-ee
              :be-tests-mysql-5-7-ee
              :be-tests-mysql-latest-ee
              :be-tests-postgres-ee
              :be-tests-postgres-latest-ee)}
      ```
      
      These maria/mysql/postgres tests all specify `MB_DB_TYPE` so we omit the
      `exclude-tags` selector to run all tests. The only strange one here is
      the `:be-tests-google-related-classpath-ee` job which includes an :only
      selector:
      
      ```yaml
          steps:
          - uses: actions/checkout@v3
          - name: Test Google Related Classpath drivers
            uses: ./.github/actions/test-driver
            with:
              junit-name: 'be-tests-${{ matrix.driver }}-classpath-ee'
              test-args: ':only "[metabase.query-processor-test.expressions-test metabase.driver.google-test metabase.driver.googleanalytics-test]"'
      ```
      Unverified
      0dd33509
    • dpsutton's avatar
      Include numThreadsAwaitingCheckoutDefaultUser in conn pool stats (#28015) · 3508dad0
      dpsutton authored
      This includes the stats in
      
      ```clojure
      prometheus=> (troubleshooting/connection-pool-info)
      {:connection-pools {"metabase-postgres-app-db" {:numConnections 4,
                                                      :numIdleConnections 4,
                                                      :numBusyConnections 0,
                                                      :minPoolSize 1,
                                                      :maxPoolSize 15,
                                                      :numThreadsAwaitingCheckoutDefaultUser 0},
                          "db-52-postgres-clean" {:numConnections 1,
                                                  :numIdleConnections 1,
                                                  :numBusyConnections 0,
                                                  :minPoolSize 1,
                                                  :maxPoolSize 15,
                                                  :numThreadsAwaitingCheckoutDefaultUser 0}}}
      ```
      
      And thus ultimately in c3p0 stats:
      
      ```
      _# HELP c3p0_num_threads_awaiting_checkout_default_user C3P0 Number of threads awaiting checkout
      _# TYPE c3p0_num_threads_awaiting_checkout_default_user gauge
      c3p0_num_threads_awaiting_checkout_default_user{database="metabase-postgres-app-db",} 0.0
      c3p0_num_threads_awaiting_checkout_default_user{database="db-52-postgres-clean",} 0.0
      ```
      Unverified
      3508dad0
    • Ngoc Khuat's avatar
      Unverified
      13a47418
    • Anton Kulyk's avatar
      Replace 'all' icon with 'folder' (#27996) · 718e7235
      Anton Kulyk authored
      Unverified
      718e7235
  4. Feb 01, 2023
Loading