Skip to content
Snippets Groups Projects
user avatar
metamben authored
* Implicit action pre-fetch values (#25940)

* [Apps] Implicit action pre-fetch values

WIP To return a parameter-id: value map in order to prefill ui.

* Use jsonstring encoded parameters

* Change parameters exposed by implicit actions

Previously, we would look at a model's source-table to determine which
parameters were valid for implicit actions. So if an implicit action is
on a User model that hides the user.password column, you could still
update or insert the password.

With this commit, if the model doesn't expose a source table column, it
is not a valid parameter. In the example user.password could not be
inserted/updated or fetched for prefilling.

* Fixing tests

* Show data app page ID params in editing mode (#25943)

* Data apps layout updates (#25930)

* play with grid sizes to make apps feel appier [ci skip]

* move app nav to bar inside app

* only hide other header buttons outside of edit mode

* tweak overflow issue

* fix header width on data apps

* add control to see app contents

* set data apps layout constants contextually [ci skip]

* remove hardcoded value [ci skip]

* extract conextual header styles [ci skip]

* set max-width on paramaters for data apps [ci skip]

* move data apps nav deeper, only show if not editing [ci skip]

* add spacing to contents trigger, rm old code [ci skip]

* rm table thing for now [ci skip]

* Fixes for data app layout updates (#25962)

* Reorder import

* Fix type

* Fix missing translation, move out URL

* Remove not used import

* Rework `getSelectedItems` utility for data apps

* Fix selected data app page highlighting

* Don't reload app navbar on page change

* Change nav item links look

* Remove `DataAppPageSidebarLink`

* Turn nav into HTML list

* Use styled components

* Fix edit button covered by visualizations

* Fix opening homepage

* Remove redundant prop

Co-authored-by: default avatarAnton Kulyk <kuliks.anton@gmail.com>

* First take at parameterized data app page titles (#25938)

* Bring `DataAppContext` back

* Pass `onFocus` and `onBlur` to `EditableText`

* Export `EditableTextProps`

* Add basic `DataAppPageTitle` component

* Use `DataAppPageTitle`

* Fix component name

* Add primitive autocompletion to page title input

* Add `title_template` to `DataAppNavItem` type

* Tweak value management in `DataAppPageTitle`

* Handle `null` values in titles more gracefully

* Don't show suggestions without detail cards

* Don't add whitespace when pasting a token

* Don't update app's collection all the time

* Add data app related selectors to dashboard selectors

* Add redux state to keep title template changes

* Update page title template on page save

* Wire up `DataAppPageTitle` with dashboard code

* Fix unit tests

* Reset state on exiting editing mode

* Add back button to template data picker

* Fix test that didn't include pk on insert

* Use the actual pk value

Co-authored-by: default avatarAnton Kulyk <kuliks.anton@gmail.com>
Co-authored-by: default avatarKyle Doherty <5248953+kdoh@users.noreply.github.com>

* Revert "Remove data app permission code (#26016)"

This reverts commit b8c92cf1.

* Remove unused imports

* Don't require the table_id on result_metadata elements (#26073)

In some cases (which ones still has to be clarified) the result metadata doesn't
contain the table_id and so no parameters are provided. In fact the table ID is
probably not needed anyway because fields are already table specific.

* Support filtering cards by used model (#26088)

This change adds a new filter option for the GET /card endpoint.

* Support filtering apps using a given model (#26124)

* Handle type errors more cleanly (#26120)

* [Apps] Handle type errors more cleanly

Adds a number of tests for different db datatypes, these can be expanded
on as we solve.

Catches most exceptions during execution and logs then throws a generic
message that leaks less of the details.

* Make sure we order-by expected results

* Fix tests, allow purposeful exception through

* Accept model-ids for scaffolding apps (#26139)

* [Apps] Accept model-ids for scaffolding apps

WIP - accept model-ids but there's still some issues, might be able to
start building UI from this point though.

* Maybe working model

* Work with card__n table-ids passed in. Fix problems with detail page

* Dynamically add actions that exist on models

* Update tests for existing custom actions

* Can't def tru

* Address review comments

* Add required to action parameters (#26296)

Looks at `database_required` field values for implicit actions, and
`required` template-tags for custom query actions. Bubble those values
up onto `action.parameters`. Finally, look at `requires_pk` to see if pk
fields should be marked as required regardless.

* Cleanup scaffolded back button (#26317)

* Forward action execution error messages to the frontend (#26469)

This is a crude temporary solution necessary to be able to debug problems related to executing actions.
Although error parsing has been implemented for Postgres (only) with the goal to provide information for
the FE like `{"errors":{"id":"violates foreign key constraint note_subject_id_fkey"}}`. This code doesn't
care about the error message itself, it just forwards the error message from the DB to the FE.

* Actions for public pages (#26554)

* [Apps] Testing out public dashboards

* Add WIP endpoints for public execution

* Add throttle check to public execution route

* Bump attempts-threshold to 1000

* Bump threshold to 5000

* Add test

* Fix linter

* Review changes

* Fix lint

* Run publicly shared actions with full permissions (#26610)

* Support actions with MySQL and MariaDB (#26573)

Support actions with MySQL/MariaDB

* Check permissions for implicit actions (#26652)

* Check permissions when executing implicit actions

* Fix some action tests and reduce permissions boilerplate

* Revert "[Apps] Disable data-apps prior to release (#25982)"

This reverts commit 51147027.

* WIP: Unify action representation (#26717) (#27349)

* [Apps] WIP initial db migrations for giving implicit actions an action_id and removing card from query_action

* Make crud work for http actions

* Make implicit crud work

* Rename implicit_action.namespace to kind. Rewrite merged-model-actions to actions-with-implicit-parameters

* Fix query action creation

* Make actions.test-util/with-action create a holding model

* Fix unified-action-create-test

* Fix get-action-test

* Add tests for creating implicit and http dashcard actions

* Enable query action in dashcard-action-create-update-test

* Fix metabase.api.dashboard-test/dashcard-query-action-execution-test

* Fix metabase.api.dashboard-test/dashcard-http-action-execution-test

* Fix metabase.api.dashboard-test/dashcard-action-execution-auth-test

* Fix metabase.api.dashboard-test/dashcard-action-execution-granular-auth-test

* Make implicit action execution work

* Scaffolding implicit actions from table

* Fix metabase.api.action-test

* Make scaffolding work with existing models. Update with-action macro to allow multiple actions

* Fix metabase.api.public-test

* Remove unused names from metabase.models.action

* Remove some unused imports

* Remove an unused import

* Remove model_action and fix a bunch of tests

* Fix dashcard-implicit-action-only-expose-and-allow-model-fields

* Fix action type inheritance

* Fill in remarks and add description to action

* Add forward migration for existing actions and rollbacks that remove existing actions

* Prevent overwriting parameters of custom actions

* Support setting description on actions

* Update migration to work with mysql - rollback is still not quite working in mysql due to database_id fk

* Rename with-action macro to with-actions and document it

* Remove report_card.is_write

* Fix some more tests

* Fix rollback across all appdb drivers, add not null constraints, use action.name to hold implicit slugs

* Pull name and description from is_write card

* Add name to scaffolded implicit actions

* Remove ModelAction

* Remove is_write from comments too

* Different databases reference capture groups in regexp_replace differently. Also drop model_action table

* Update migrations to pass linter.

Introduce ${capturegroup.ref} to handle the different ways to reference
capture groups within a regexp_replace. This allows collapsing large
data migrations into a single `sql` element that the linter requires.

* Add kind to action-mapper so we can sort as we wish

* Add name to with-temp Action

* Adjust FE to query actions migration (#26764)

* Remove `is_write` card notion

* Remove action `slug` from action types

* Fix typo in `estimateCardSize` name

* Remove hanging card's `is_write` prop

* Remove not used writeback actions

* Update endpoints

* Remove not used prop

* Remove action `slug` usage

* Update actions entity

* Tweak action creator to handle new actions shape

* Fix saving action dashcards

* Fix actions API usage

How did that work before? :thinking:



* Pass `database_id` when creating query actions

* Remove custom list API implementation for actions

* Clean up types

Co-authored-by: default avatarTamás Benkő <tamas@metabase.com>

* Change regexp_replace to substring to support mysql - this is ok because we have consistent json serialization.

* Check permissions on the model in the action API

* Remove unused required namespace

* Throw an exception when demoting a model with actions to question

* Allow saved parameters on implicit actions to add to implicit parameters

Co-authored-by: default avatarCase Nelson <case@metabase.com>
Co-authored-by: default avatarAnton Kulyk <kuliks.anton@gmail.com>

Co-authored-by: default avatarmetamben <103100869+metamben@users.noreply.github.com>
Co-authored-by: default avatarCase Nelson <case@metabase.com>

* empty commit to kick CI

* bump CI

* Fix down migrations

 change v45.00-002 sets up a fk fk_query_action_ref_action_id. h2 v2 for
 some strange reason requires us to remove the constraint before we can
 remove the primary key. But then we have to restore the state that
 v45.00-002 creates manualy

* Allow for version for `(migrate! :down 45)`

* Remove data apps parts not planned for 0.46

Removed app container, app scaffolding and pages (dashboards with is_app_page)

* Address linter issues

* Make some cosmetic changes to reduce the diff

* Make new permission API endpoints use defendpoint-schema

* Fix bad automerge

* Skip Mongo 4.2 instead of 4.0

Co-authored-by: default avatarCase Nelson <case@metabase.com>
Co-authored-by: default avatarAnton Kulyk <kuliks.anton@gmail.com>
Co-authored-by: default avatarKyle Doherty <5248953+kdoh@users.noreply.github.com>
Co-authored-by: default avatardan sutton <dan@dpsutton.com>
3b8f0d88
History
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
Name Last commit Last update
..