What problem does it solve?
Metabase data apps need to trigger server-defined write operations (inserts, updates, deletes, custom SQL) when users submit forms or click buttons, but wiring the useAction hook correctly — typed parameters, error rendering, and post-action data refresh — is error-prone and leaves UIs showing stale data.
Core Features & Use Cases
- Typed action invocation: Calls actions via
useAction with ActionParametersFromDataAppSchema and ActionKindFromDataAppSchema generics so parameter slugs and value types are checked at compile time.
- Error surfacing: Renders
error.data.message and per-field error.data.errors verbatim so users see actionable backend validation messages.
- Post-action refresh discipline: Enforces refreshing every data view the action could have changed after
execute resolves, preventing stale UI.
- Use Case: Build an "Add Person" form in a Metabase data app that submits to a model's
row/create action, disables the button while executing, shows field-level validation errors, and refreshes the people table on success.
Quick Start
Use the metabase-data-app-actions skill to wire a form in my data app to the create action on the people model with typed parameters and a refresh after submit.