Skip to content
Snippets Groups Projects
user avatar
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>
90919d31
History

Metabase

Metabase is the easy, open-source way for everyone in your company to ask questions and learn from data.

Metabase Product Screenshot

Latest Release Circle CI codecov Docker Pulls

Features

Take a tour of Metabase.

Supported databases

Installation

Metabase can be run just about anywhere. Check out our Installation Guides.

Contributing

To get started with a development installation of the Metabase, check out our Developers Guide.

Internationalization

We want Metabase to be available in as many languages as possible. See which translations are available and help contribute to internationalization using our project over at POEditor. You can also check out our policies on translations.

Extending Metabase

Hit our Query API from Javascript to integrate analytics. Metabase enables your application to:

  • Build moderation interfaces.
  • Export subsets of your users to third party marketing automation software.
  • Provide a custom customer lookup application for the people in your company.

Check out our guide, Working with the Metabase API.

Security Disclosure

See SECURITY.md for details.

License

This repository contains the source code for both the Open Source edition of Metabase, released under the AGPL, as well as the commercial editions of Metabase, which are released under the Metabase Commercial Software License.

See LICENSE.txt for details.

Unless otherwise noted, all files © 2023 Metabase, Inc.

Metabase Experts

If you’d like more technical resources to set up your data stack with Metabase, connect with a Metabase Expert.