diff --git a/_docs/master/configuring-metabase/images/AccountSetup.png b/_docs/master/configuring-metabase/images/AccountSetup.png index d3bf7c1ba2..e19016a0b9 100644 Binary files a/_docs/master/configuring-metabase/images/AccountSetup.png and b/_docs/master/configuring-metabase/images/AccountSetup.png differ diff --git a/_docs/master/configuring-metabase/images/table-view.png b/_docs/master/configuring-metabase/images/table-view.png index 7b253a5ff6..b561a8dc44 100644 Binary files a/_docs/master/configuring-metabase/images/table-view.png and b/_docs/master/configuring-metabase/images/table-view.png differ diff --git a/_docs/master/dashboards/images/add-filter.png b/_docs/master/dashboards/images/add-filter.png index 23fae3c80c..7206824958 100644 Binary files a/_docs/master/dashboards/images/add-filter.png and b/_docs/master/dashboards/images/add-filter.png differ diff --git a/_docs/master/dashboards/images/add_series.png b/_docs/master/dashboards/images/add_series.png index fe91f2db8b..23fae3c80c 100644 Binary files a/_docs/master/dashboards/images/add_series.png and b/_docs/master/dashboards/images/add_series.png differ diff --git a/_docs/master/dashboards/images/autorefresh.png b/_docs/master/dashboards/images/autorefresh.png index 94609cbf0d..a1c1f9a61a 100644 Binary files a/_docs/master/dashboards/images/autorefresh.png and b/_docs/master/dashboards/images/autorefresh.png differ diff --git a/_docs/master/dashboards/images/button-form.png b/_docs/master/dashboards/images/button-form.png index 3d205c8796..ee763c576e 100644 Binary files a/_docs/master/dashboards/images/button-form.png and b/_docs/master/dashboards/images/button-form.png differ diff --git a/_docs/master/dashboards/images/click-behavior-icon.png b/_docs/master/dashboards/images/click-behavior-icon.png index 8f34234f01..2a41076032 100644 Binary files a/_docs/master/dashboards/images/click-behavior-icon.png and b/_docs/master/dashboards/images/click-behavior-icon.png differ diff --git a/_docs/master/dashboards/images/dashboard-filter-action.png b/_docs/master/dashboards/images/dashboard-filter-action.png index 3147da6c90..3c1075bed2 100644 Binary files a/_docs/master/dashboards/images/dashboard-filter-action.png and b/_docs/master/dashboards/images/dashboard-filter-action.png differ diff --git a/_docs/master/dashboards/images/dashboard.png b/_docs/master/dashboards/images/dashboard.png index 1805c738fe..155d34f84e 100644 Binary files a/_docs/master/dashboards/images/dashboard.png and b/_docs/master/dashboards/images/dashboard.png differ diff --git a/_docs/master/dashboards/images/drill-through-menu.png b/_docs/master/dashboards/images/drill-through-menu.png index 9d2e0c76a7..cc2c707278 100644 Binary files a/_docs/master/dashboards/images/drill-through-menu.png and b/_docs/master/dashboards/images/drill-through-menu.png differ diff --git a/_docs/master/dashboards/images/filters.png b/_docs/master/dashboards/images/filters.png index 2a41076032..c95f02b4aa 100644 Binary files a/_docs/master/dashboards/images/filters.png and b/_docs/master/dashboards/images/filters.png differ diff --git a/_docs/master/dashboards/images/foreign-key-linked-filters.png b/_docs/master/dashboards/images/foreign-key-linked-filters.png index 4a4a249b2b..b060334122 100644 Binary files a/_docs/master/dashboards/images/foreign-key-linked-filters.png and b/_docs/master/dashboards/images/foreign-key-linked-filters.png differ diff --git a/_docs/master/dashboards/images/linked-filter.png b/_docs/master/dashboards/images/linked-filter.png index c359f99030..4fcbddf7a4 100644 Binary files a/_docs/master/dashboards/images/linked-filter.png and b/_docs/master/dashboards/images/linked-filter.png differ diff --git a/_docs/master/dashboards/images/markdown.png b/_docs/master/dashboards/images/markdown.png index ba5b16adda..c9c10c5129 100644 Binary files a/_docs/master/dashboards/images/markdown.png and b/_docs/master/dashboards/images/markdown.png differ diff --git a/_docs/master/dashboards/images/wiring-up-filter.png b/_docs/master/dashboards/images/wiring-up-filter.png index e9e9e50b5d..a5066926cc 100644 Binary files a/_docs/master/dashboards/images/wiring-up-filter.png and b/_docs/master/dashboards/images/wiring-up-filter.png differ diff --git a/_docs/master/data-modeling/images/formula.png b/_docs/master/data-modeling/images/formula.png index 0f02f4868c..8e020111ca 100644 Binary files a/_docs/master/data-modeling/images/formula.png and b/_docs/master/data-modeling/images/formula.png differ diff --git a/_docs/master/data-modeling/images/table-metadata.png b/_docs/master/data-modeling/images/table-metadata.png index 73d3c7c159..d16aabea01 100644 Binary files a/_docs/master/data-modeling/images/table-metadata.png and b/_docs/master/data-modeling/images/table-metadata.png differ diff --git a/_docs/master/databases/connections/bigquery.md b/_docs/master/databases/connections/bigquery.md index c99a544a50..6752184795 100644 --- a/_docs/master/databases/connections/bigquery.md +++ b/_docs/master/databases/connections/bigquery.md @@ -168,12 +168,6 @@ If you're having trouble with your BigQuery connection, you can check out this [ There aren't (yet) any model features available for BigQuery. -## Database routing - -Database routing for BigQuery works between BigQuery **projects** with identical schemas. - -See [Database routing](../../permissions/database-routing). - ## Danger zone See [Danger zone](../danger-zone). diff --git a/_docs/master/databases/connections/mongodb.md b/_docs/master/databases/connections/mongodb.md index 1948f77c8e..17ca9a8664 100644 --- a/_docs/master/databases/connections/mongodb.md +++ b/_docs/master/databases/connections/mongodb.md @@ -121,7 +121,7 @@ Learn more about [configuring SSL with MongoDB](http://mongodb.github.io/mongo-j ## How Metabase syncs data in MongoDB -Because MongoDB contains unstructured data, Metabase takes a different approach to syncing your database's metadata. To get a sense of the schema, Metabase will query the first and last 500 documents (most of the calculation is done in MongoDB). This sampling helps Metabase do things like differentiate datetime fields from string fields, and provide people with pre-populated filters. Metabase also syncs 1,000 leaf fields (fields at the deepest nesting level) per MongoDB collection. The reason Metabase only scans a sample of the documents is because scanning every document in every collection on every sync would put too much strain on your database. And while the sampling does a pretty good job keeping Metabase up to date, it can also mean that new fields can sometimes fall through the cracks, leading to visualization issues, or even fields failing to appear in your results. For more info, check out our [troubleshooting guide](../../troubleshooting-guide/db-connection). +Because MongoDB contains unstructured data, Metabase takes a different approach to syncing your database's metadata. To get a sense of the schema, Metabase will query the first and last 500 documents (most of the calculation is done in MongoDB). This sampling helps Metabase do things like differentiate datetime fields from string fields, and provide people with pre-populated filters. The reason Metabase only scans a sample of the documents is because scanning every document in every collection on every sync would put too much strain on your database. And while the sampling does a pretty good job keeping Metabase up to date, it can also mean that new fields can sometimes fall through the cracks, leading to visualization issues, or even fields failing to appear in your results. For more info, check out our [troubleshooting guide](../../troubleshooting-guide/db-connection). ## General connectivity concerns diff --git a/_docs/master/databases/images/atlas-connect.png b/_docs/master/databases/images/atlas-connect.png index 4377047e1f..cda55015c1 100644 Binary files a/_docs/master/databases/images/atlas-connect.png and b/_docs/master/databases/images/atlas-connect.png differ diff --git a/_docs/master/databases/images/connection-string.png b/_docs/master/databases/images/connection-string.png index ab5411a6fb..edba66aced 100644 Binary files a/_docs/master/databases/images/connection-string.png and b/_docs/master/databases/images/connection-string.png differ diff --git a/_docs/master/databases/images/snowflake-copy-account-url.png b/_docs/master/databases/images/snowflake-copy-account-url.png index 82457d4e06..cf9a18f67a 100644 Binary files a/_docs/master/databases/images/snowflake-copy-account-url.png and b/_docs/master/databases/images/snowflake-copy-account-url.png differ diff --git a/_docs/master/developers-guide/community-drivers.md b/_docs/master/developers-guide/community-drivers.md index 2b13b29798..813138954b 100644 --- a/_docs/master/developers-guide/community-drivers.md +++ b/_docs/master/developers-guide/community-drivers.md @@ -37,7 +37,7 @@ Anyone can build a community driver. These are the currently known third-party d | ------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | | [CSV](https://github.com/Markenson/csv-metabase-driver) |  |  | | [Databend](https://github.com/databendcloud/metabase-databend-driver) |  |  | -| [DB2](https://github.com/damienchambe/metabase-db2-driver) |  |  | +| [DB2](https://github.com/damienchambe/metabase-db2-driver) |  |  | | [Dremio](https://github.com/Baoqi/metabase-dremio-driver) |  |  | | [DuckDB](https://github.com/MotherDuck-Open-Source/metabase_duckdb_driver) |  |  | | [Firebolt](https://github.com/firebolt-db/metabase-firebolt-driver) |  |  | diff --git a/_docs/master/developers-guide/devenv.md b/_docs/master/developers-guide/devenv.md index 14d6002437..b5798dc53c 100644 --- a/_docs/master/developers-guide/devenv.md +++ b/_docs/master/developers-guide/devenv.md @@ -28,8 +28,6 @@ yarn dev This runs both the [frontend](#frontend) and [backend](#backend). Alternatively, you can run them separately in two terminal sessions below. -To use any other database beside the default ones please take a look at [Building Drivers](#building-drivers) further down in this document. - ### Frontend Metabase depends on third-party libraries to run, so you'll need to keep those up to date. The Clojure CLI will automatically fetch the dependencies when needed. With JavaScript dependencies, however, you'll need to kick off the installation process manually. diff --git a/_docs/master/developers-guide/driver-changelog.md b/_docs/master/developers-guide/driver-changelog.md index 6d2e7f459a..c33e2b3045 100644 --- a/_docs/master/developers-guide/driver-changelog.md +++ b/_docs/master/developers-guide/driver-changelog.md @@ -27,9 +27,6 @@ layout: new-docs replace existing keys like `:alias`, `:join-alias`, or `:name`; make sure you use `driver-api/qp.add.alias`, `driver-api/qp.add.source-table`, and `driver-api/qp.add.source-alias` respectively. -- Added the driver multi-method `driver/extra-info` for drivers to provide info such as db routing configuration details - from their `metabase-plugin.yaml` file. - - Extend `datetime()` to accept UTF-8 encoded binary and numbers (unix timestamps) in addition to strings. - Added a feature `:expressions/today` for drivers that support generating a date for the current day. @@ -61,6 +58,7 @@ layout: new-docs `metabase.driver/upload-type->database-type` or `metabase.driver/allowed-promotions` -- make sure you use `:metabase.upload/varchar-255` rather than something like `::upload/varchar-255`. +- Added the multi-method `metabase.driver.sql.parameters.substitution/time-grouping->replacement-snippet-info`. This is effectively `->replacement-snippet-info` for the new native query time grouping feature, but is its own separate multimethod because it needs an extra parameter. - The `metabase.models.secret` namespace has been replaced with `metabase.secrets.core`; if you were using it please update your usages. diff --git a/_docs/master/developers-guide/frontend.md b/_docs/master/developers-guide/frontend.md index 1e0630eef2..1031ea7210 100644 --- a/_docs/master/developers-guide/frontend.md +++ b/_docs/master/developers-guide/frontend.md @@ -266,7 +266,7 @@ function getFoo(a, b, c) { } ``` -- Be conservative with what comments you add to the codebase. Comments shouldn't be used as reminders or as todos--record those by creating a new issue in GitHub. Ideally, code should be written in such a way that it explains itself clearly. When it does not, you should first try rewriting the code. If for whatever reason you are unable to write something clearly, add a comment to explain the "why". +- Be conservative with what comments you add to the codebase. Comments shouldn't be used as reminders or as todos--record those by creating a new issue in Github. Ideally, code should be written in such a way that it explains itself clearly. When it does not, you should first try rewriting the code. If for whatever reason you are unable to write something clearly, add a comment to explain the "why". ```javascript diff --git a/_docs/master/developers-guide/security-token-scanner.md b/_docs/master/developers-guide/security-token-scanner.md deleted file mode 100644 index 806440e5f1..0000000000 --- a/_docs/master/developers-guide/security-token-scanner.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -version: master -has_magic_breadcrumbs: true -show_category_breadcrumb: true -show_title_breadcrumb: true -category: 'Developers Guide' -title: 'Security Token Scanner' -source_url: 'https://github.com/metabase/metabase/blob/master/docs/developers-guide/security-token-scanner.md' -layout: new-docs ---- - -# Security Token Scanner - -Security token scanner detects potentially leaked API keys and secrets in the Metabase codebase. Runs automatically as a git precommit hook on staged files. - -## Usage - -```bash -# Scan specific files -./bin/mage -token-scan deps.edn bb.edn - -# Scan all files -./bin/mage -token-scan -a - -# Verbose output -./bin/mage -token-scan -v deps.edn -``` - -## Token Types Detected - -- Airgap tokens (`airgap_`) -- Dev tokens (`mb_dev_`, 64-char hex) -- OpenAI API keys (`sk-`) -- JWT/JWE tokens -- GitHub tokens (`gh[pousr]_`) -- Slack bot tokens (`xoxb-`) -- AWS access keys (`AKIA`) - -The scanner uses `.gitignore` to filter files and will block commits containing detected tokens. - - -## False positives - -If the scanner flags a non-token string, you should **exclude the literal token string** by adding it to: `mage/resources/token_scanner/token_whitelist.txt`. - -``` -echo 'my-token-string' >> mage/resources/token_scanner/token_whitelist.txt && git add mage/resources/token_scanner/token_whitelist.txt -``` - - -## Bypassing (not recommended) - -```bash -git commit --no-verify -m "commit message" -``` diff --git a/_docs/master/developers-guide/versioning.md b/_docs/master/developers-guide/versioning.md index 82e02cc6d8..655d42cd76 100644 --- a/_docs/master/developers-guide/versioning.md +++ b/_docs/master/developers-guide/versioning.md @@ -68,5 +68,5 @@ E.g., ## Further reading -- [Metabase releases on GitHub](https://github.com/metabase/metabase/releases) +- [Metabase releases on Github](https://github.com/metabase/metabase/releases) - [Metabase release blog posts](/releases) diff --git a/_docs/master/embedding/images/create-a-public-link.png b/_docs/master/embedding/images/create-a-public-link.png index a37656aa28..da4c9844b4 100644 Binary files a/_docs/master/embedding/images/create-a-public-link.png and b/_docs/master/embedding/images/create-a-public-link.png differ diff --git a/_docs/master/embedding/images/dashboard-sharing.png b/_docs/master/embedding/images/dashboard-sharing.png index 58e904072b..d4033342d1 100644 Binary files a/_docs/master/embedding/images/dashboard-sharing.png and b/_docs/master/embedding/images/dashboard-sharing.png differ diff --git a/_docs/master/embedding/images/full-data-picker.png b/_docs/master/embedding/images/full-data-picker.png index 012e37c3e9..31aa99c04c 100644 Binary files a/_docs/master/embedding/images/full-data-picker.png and b/_docs/master/embedding/images/full-data-picker.png differ diff --git a/_docs/master/embedding/images/interactive-question-sample-app.png b/_docs/master/embedding/images/interactive-question-sample-app.png index 306f2d33ca..82b59fed3a 100644 Binary files a/_docs/master/embedding/images/interactive-question-sample-app.png and b/_docs/master/embedding/images/interactive-question-sample-app.png differ diff --git a/_docs/master/embedding/images/interactive-question.png b/_docs/master/embedding/images/interactive-question.png index da4c9844b4..2789fb4304 100644 Binary files a/_docs/master/embedding/images/interactive-question.png and b/_docs/master/embedding/images/interactive-question.png differ diff --git a/_docs/master/embedding/images/jwt-setup.png b/_docs/master/embedding/images/jwt-setup.png index 005a76fc45..0c639d1032 100644 Binary files a/_docs/master/embedding/images/jwt-setup.png and b/_docs/master/embedding/images/jwt-setup.png differ diff --git a/_docs/master/embedding/images/powered-by-metabase.png b/_docs/master/embedding/images/powered-by-metabase.png index 2daa70728b..32282cca33 100644 Binary files a/_docs/master/embedding/images/powered-by-metabase.png and b/_docs/master/embedding/images/powered-by-metabase.png differ diff --git a/_docs/master/embedding/images/public-embed.png b/_docs/master/embedding/images/public-embed.png index 1bad0d4e3c..31aa99c04c 100644 Binary files a/_docs/master/embedding/images/public-embed.png and b/_docs/master/embedding/images/public-embed.png differ diff --git a/_docs/master/embedding/images/public-link-custom-destination.png b/_docs/master/embedding/images/public-link-custom-destination.png index 73f3cb9799..7e4d253fc1 100644 Binary files a/_docs/master/embedding/images/public-link-custom-destination.png and b/_docs/master/embedding/images/public-link-custom-destination.png differ diff --git a/_docs/master/embedding/images/see-shared-content.png b/_docs/master/embedding/images/see-shared-content.png index 1b7630c428..4039f66dd8 100644 Binary files a/_docs/master/embedding/images/see-shared-content.png and b/_docs/master/embedding/images/see-shared-content.png differ diff --git a/_docs/master/embedding/sdk/api/BaseInteractiveQuestionProps.html b/_docs/master/embedding/sdk/api/BaseInteractiveQuestionProps.html index 70e4b609e9..7effd3582a 100644 --- a/_docs/master/embedding/sdk/api/BaseInteractiveQuestionProps.html +++ b/_docs/master/embedding/sdk/api/BaseInteractiveQuestionProps.html @@ -9,7 +9,7 @@ layout: docs-api --- -
Optional
isOptional
onA callback function that triggers before saving. Only relevant when isSaveEnabled = true
Optional
onA callback function that triggers when a question is updated, including when a user clicks the Visualize
button in the question editor
Optional
onA callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true
Optional
onA callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true
Optional
pluginsThe ID of the question.
This is either:
diff --git a/_docs/master/embedding/sdk/api/CreateQuestion.html b/_docs/master/embedding/sdk/api/CreateQuestion.html
index dd1d9a4f9b..74327bd7e7 100644
--- a/_docs/master/embedding/sdk/api/CreateQuestion.html
+++ b/_docs/master/embedding/sdk/api/CreateQuestion.html
@@ -14,7 +14,7 @@
Optional
isSaveEnabled?: booleanWhether to show the save button.
Optional
onBeforeSave?: (A callback function that triggers before saving. Only relevant when isSaveEnabled = true
Optional
onRun?: (question: undefined | MetabaseQuestion) => voidA callback function that triggers when a question is updated, including when a user clicks the Visualize
button in the question editor
Optional
onSave?: (A callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true
Optional
onSave?: (A callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true
Optional
plugins?: MetabasePluginsConfigOptional
targetCollection?: SdkCollectionIdThe collection to save the question to. This will hide the collection picker from the save modal. Only applicable to interactive questions.
Optional
withDownloads?: booleanEnables the ability to download results in the interactive question.
Use <InteractiveQuestion questionId="new" />
instead.
Optional
isWhether to show the save button.
Optional
onA callback function that triggers before saving. Only relevant when isSaveEnabled = true
Optional
onA callback function that triggers when a question is updated, including when a user clicks the Visualize
button in the question editor
Optional
onA callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true
Optional
onA callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true
Optional
pluginsOptional
targetThe collection to save the question to. This will hide the collection picker from the save modal. Only applicable to interactive questions.
Optional
withEnables the ability to download results in the interactive question.
Props for the drill-through question
-Optional
isWhether to show the save button.
Optional
onA callback function that triggers before saving. Only relevant when isSaveEnabled = true
Optional
onA callback function that triggers when a question is updated, including when a user clicks the Visualize
button in the question editor
Optional
onA callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true
Optional
onA callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true
Optional
pluginsOptional
styleA custom style object to be added to the root element.
Optional
targetThe collection to save the question to. This will hide the collection picker from the save modal. Only applicable to interactive questions.
Optional
titleDetermines whether the question title is displayed, and allows a custom title to be displayed instead of the default question title. Shown by default. Only applicable to interactive questions when using the default layout.
diff --git a/_docs/master/embedding/sdk/api/EditableDashboard.html b/_docs/master/embedding/sdk/api/EditableDashboard.html index 43f5381000..340dbcd435 100644 --- a/_docs/master/embedding/sdk/api/EditableDashboard.html +++ b/_docs/master/embedding/sdk/api/EditableDashboard.html @@ -9,9 +9,13 @@ layout: docs-api --- -A dashboard component with the features available in the InteractiveDashboard
component, as well as the ability to add and update questions, layout, and content within your dashboard.
Optional
className?: stringA custom class name to be added to the root element.
-The ID of the dashboard. +
A dashboard component with the features available in the InteractiveDashboard
component, as well as the ability to add and update questions, layout, and content within your dashboard.
Optional
drillThroughQuestionHeight?: Height<string | number>Height of a question component when drilled from the dashboard to a question level.
+Optional
drillThroughQuestionProps?: DrillThroughQuestionPropsProps of a question component when drilled from the dashboard to a question level.
+Optional
plugins?: MetabasePluginsConfigAdditional mapper function to override or add drill-down menu. See the implementing custom actions section for more details.
+Optional
renderDrillThroughQuestion?: () => ReactNodeA custom React component to render the question layout. +Use namespaced InteractiveQuestion components to build the layout.
+The ID of the dashboard.
This is either:
entity_id
key of the dashboard object when using the API directly or using the SDK Collection Browser to return dataOptional
dataPickerProps?: Pick<InteractiveQuestionProps, "entityTypes">Additional props to pass to the query builder rendered by InteractiveQuestion
when creating a new dashboard question.
Optional
drillThroughQuestionHeight?: Height<string | number>Height of a question component when drilled from the dashboard to a question level.
-Optional
drillThroughQuestionProps?: DrillThroughQuestionPropsProps of a question component when drilled from the dashboard to a question level.
-Optional
hiddenParameters?: string[]A list of parameters to hide. +
Optional
hiddenParameters?: string[]A list of parameters to hide.
Optional
initialParameters?: ParameterValuesQuery parameters for the dashboard. For a single option, use a string
value, and use a list of strings for multiple options.
+
Optional
initialParameters?: ParameterValuesQuery parameters for the dashboard. For a single option, use a string
value, and use a list of strings for multiple options.
Optional
onLoad?: (dashboard: null | MetabaseDashboard) => voidCallback that is called when the dashboard is loaded.
-Optional
onLoadWithoutCards?: (dashboard: null | MetabaseDashboard) => voidCallback that is called when the dashboard is loaded without cards.
-Optional
plugins?: MetabasePluginsConfigAdditional mapper function to override or add drill-down menu. See the implementing custom actions section for more details.
-Optional
renderDrillThroughQuestion?: () => ReactNodeA custom React component to render the question layout. -Use namespaced InteractiveQuestion components to build the layout.
-Optional
style?: CSSPropertiesA custom style object to be added to the root element.
-Optional
withCardTitle?: booleanWhether the dashboard cards should display a title.
-Optional
withDownloads?: booleanWhether to hide the download button.
-Optional
withTitle?: booleanWhether the dashboard should display a title.
-Optional
withCardTitle?: booleanWhether the dashboard cards should display a title.
+Optional
withDownloads?: booleanWhether to hide the download button.
+Optional
withTitle?: booleanWhether the dashboard should display a title.
+Optional
className?: stringA custom class name to be added to the root element.
+Optional
style?: CSSPropertiesA custom style object to be added to the root element.
+Optional
onLoad?: (dashboard: null | MetabaseDashboard) => voidCallback that is called when the dashboard is loaded.
+Optional
onLoadWithoutCards?: (dashboard: null | MetabaseDashboard) => voidCallback that is called when the dashboard is loaded without cards.
+entity_id
key of the dashboard object when using the API directly or using the SDK Collection Browser to return dataOptional
dataAdditional props to pass to the query builder rendered by InteractiveQuestion
when creating a new dashboard question.
Optional
drillHeight of a question component when drilled from the dashboard to a question level.
Optional
drillProps of a question component when drilled from the dashboard to a question level.
Props for the drill-through question
@@ -46,7 +44,7 @@Optional
isSaveEnabled?: booleanWhether to show the save button.
Optional
onBeforeSave?: (A callback function that triggers before saving. Only relevant when isSaveEnabled = true
Optional
onRun?: (question: undefined | MetabaseQuestion) => voidA callback function that triggers when a question is updated, including when a user clicks the Visualize
button in the question editor
Optional
onSave?: (A callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true
Optional
onSave?: (A callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true
Optional
plugins?: MetabasePluginsConfigOptional
style?: CSSPropertiesA custom style object to be added to the root element.
Optional
targetCollection?: SdkCollectionIdThe collection to save the question to. This will hide the collection picker from the save modal. Only applicable to interactive questions.
Optional
title?: SdkQuestionTitlePropsDetermines whether the question title is displayed, and allows a custom title to be displayed instead of the default question title. Shown by default. Only applicable to interactive questions when using the default layout.
@@ -77,4 +75,4 @@Optional
withWhether the dashboard cards should display a title.
Optional
withWhether to hide the download button.
Optional
withWhether the dashboard should display a title.
-A dashboard component with drill downs, click behaviors, and the ability to view and click into questions.
-Optional
drillThroughQuestionHeight?: Height<string | number>Height of a question component when drilled from the dashboard to a question level.
+A dashboard component with drill downs, click behaviors, and the ability to view and click into questions.
+Optional
drillThroughQuestionHeight?: Height<string | number>Height of a question component when drilled from the dashboard to a question level.
Optional
drillThroughQuestionProps?: DrillThroughQuestionPropsProps of a question component when drilled from the dashboard to a question level.
Optional
plugins?: MetabasePluginsConfigAdditional mapper function to override or add drill-down menu. See the implementing custom actions section for more details.
Optional
renderDrillThroughQuestion?: () => ReactNodeA custom React component to render the question layout. @@ -45,5 +45,4 @@
Optional
style?: CSSPropertiesA custom style object to be added to the root element.
Optional
onLoad?: (dashboard: null | MetabaseDashboard) => voidCallback that is called when the dashboard is loaded.
Optional
onLoadWithoutCards?: (dashboard: null | MetabaseDashboard) => voidCallback that is called when the dashboard is loaded without cards.
-Optional
dataPickerProps?: Pick<InteractiveQuestionProps, "entityTypes">Additional props to pass to the query builder rendered by InteractiveQuestion
when creating a new dashboard question.
entity_id
key of the dashboard object when using the API directly or using the SDK Collection Browser to return dataOptional
dataAdditional props to pass to the query builder rendered by InteractiveQuestion
when creating a new dashboard question.
Optional
drillHeight of a question component when drilled from the dashboard to a question level.
Optional
drillProps of a question component when drilled from the dashboard to a question level.
Props for the drill-through question
@@ -46,7 +44,7 @@Optional
isSaveEnabled?: booleanWhether to show the save button.
Optional
onBeforeSave?: (A callback function that triggers before saving. Only relevant when isSaveEnabled = true
Optional
onRun?: (question: undefined | MetabaseQuestion) => voidA callback function that triggers when a question is updated, including when a user clicks the Visualize
button in the question editor
Optional
onSave?: (A callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true
Optional
onSave?: (A callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true
Optional
plugins?: MetabasePluginsConfigOptional
style?: CSSPropertiesA custom style object to be added to the root element.
Optional
targetCollection?: SdkCollectionIdThe collection to save the question to. This will hide the collection picker from the save modal. Only applicable to interactive questions.
Optional
title?: SdkQuestionTitlePropsDetermines whether the question title is displayed, and allows a custom title to be displayed instead of the default question title. Shown by default. Only applicable to interactive questions when using the default layout.
@@ -77,4 +75,4 @@Optional
withWhether the dashboard cards should display a title.
Optional
withWhether to hide the download button.
Optional
withWhether the dashboard should display a title.
-Optional
isSaveEnabled?: booleanWhether to show the save button.
Optional
onBeforeSave?: (A callback function that triggers before saving. Only relevant when isSaveEnabled = true
Optional
onRun?: (question: undefined | MetabaseQuestion) => voidA callback function that triggers when a question is updated, including when a user clicks the Visualize
button in the question editor
Optional
onSave?: (A callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true
Optional
onSave?: (A callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true
Optional
plugins?: MetabasePluginsConfigThe ID of the question.
This is either:
diff --git a/_docs/master/embedding/sdk/api/InteractiveQuestionProps.html b/_docs/master/embedding/sdk/api/InteractiveQuestionProps.html
index ab3d118292..f95a95d61b 100644
--- a/_docs/master/embedding/sdk/api/InteractiveQuestionProps.html
+++ b/_docs/master/embedding/sdk/api/InteractiveQuestionProps.html
@@ -9,7 +9,7 @@
layout: docs-api
---
-
Optional
isWhether to show the save button.
Optional
onA callback function that triggers before saving. Only relevant when isSaveEnabled = true
Optional
onA callback function that triggers when a question is updated, including when a user clicks the Visualize
button in the question editor
Optional
onA callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true
Optional
onA callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true
Optional
pluginsThe ID of the question.
This is either:
diff --git a/_docs/master/embedding/sdk/api/StaticDashboard.html b/_docs/master/embedding/sdk/api/StaticDashboard.html
index 137b9f13ef..b2934e2415 100644
--- a/_docs/master/embedding/sdk/api/StaticDashboard.html
+++ b/_docs/master/embedding/sdk/api/StaticDashboard.html
@@ -9,8 +9,8 @@
layout: docs-api
---
-
A lightweight dashboard component.
-Optional
drillThroughQuestionHeight?: Height<string | number>Height of a question component when drilled from the dashboard to a question level.
+A lightweight dashboard component.
+Optional
drillThroughQuestionHeight?: Height<string | number>Height of a question component when drilled from the dashboard to a question level.
Optional
drillThroughQuestionProps?: DrillThroughQuestionPropsProps of a question component when drilled from the dashboard to a question level.
Optional
plugins?: MetabasePluginsConfigAdditional mapper function to override or add drill-down menu. See the implementing custom actions section for more details.
Optional
renderDrillThroughQuestion?: () => ReactNodeA custom React component to render the question layout. @@ -45,5 +45,4 @@
Optional
style?: CSSPropertiesA custom style object to be added to the root element.
Optional
onLoad?: (dashboard: null | MetabaseDashboard) => voidCallback that is called when the dashboard is loaded.
Optional
onLoadWithoutCards?: (dashboard: null | MetabaseDashboard) => voidCallback that is called when the dashboard is loaded without cards.
-Optional
dataPickerProps?: Pick<InteractiveQuestionProps, "entityTypes">Additional props to pass to the query builder rendered by InteractiveQuestion
when creating a new dashboard question.
entity_id
key of the dashboard object when using the API directly or using the SDK Collection Browser to return dataOptional
dataAdditional props to pass to the query builder rendered by InteractiveQuestion
when creating a new dashboard question.
Optional
drillHeight of a question component when drilled from the dashboard to a question level.
Optional
drillProps of a question component when drilled from the dashboard to a question level.
Props for the drill-through question
@@ -46,7 +44,7 @@Optional
isSaveEnabled?: booleanWhether to show the save button.
Optional
onBeforeSave?: (A callback function that triggers before saving. Only relevant when isSaveEnabled = true
Optional
onRun?: (question: undefined | MetabaseQuestion) => voidA callback function that triggers when a question is updated, including when a user clicks the Visualize
button in the question editor
Optional
onSave?: (A callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true
Optional
onSave?: (A callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true
Optional
plugins?: MetabasePluginsConfigOptional
style?: CSSPropertiesA custom style object to be added to the root element.
Optional
targetCollection?: SdkCollectionIdThe collection to save the question to. This will hide the collection picker from the save modal. Only applicable to interactive questions.
Optional
title?: SdkQuestionTitlePropsDetermines whether the question title is displayed, and allows a custom title to be displayed instead of the default question title. Shown by default. Only applicable to interactive questions when using the default layout.
@@ -77,4 +75,4 @@Optional
withWhether the dashboard cards should display a title.
Optional
withWhether to hide the download button.
Optional
withWhether the dashboard should display a title.
-Optional
style?: CSSPropertiesA custom style object to be added to the root element.
Optional
width?: Width<string | number>A number or string specifying a CSS size value that specifies the width of the component
-Optional
withChartTypeSelector?: booleanOptional
withDownloads?: booleanEnables the ability to download results in the interactive question.
-Optional
withChartTypeSelector?: booleanOptional
classA custom class name to be added to the root element.
Optional
heightA number or string specifying a CSS size value that specifies the height of the component
Optional
initialInitial values for the SQL parameters.
@@ -33,5 +32,4 @@Optional
styleA custom style object to be added to the root element.
Optional
widthA number or string specifying a CSS size value that specifies the width of the component
-Optional
withOptional
withEnables the ability to download results in the interactive question.
-Optional
withThere aren’t (yet) any model features available for BigQuery.
-Database routing for BigQuery works between BigQuery projects with identical schemas.
- -See Database routing.
-See Danger zone.
diff --git a/_site/docs/master/databases/connections/mongodb.html b/_site/docs/master/databases/connections/mongodb.html index 5692acea51..4da4febd3c 100644 --- a/_site/docs/master/databases/connections/mongodb.html +++ b/_site/docs/master/databases/connections/mongodb.html @@ -4825,7 +4825,7 @@Because MongoDB contains unstructured data, Metabase takes a different approach to syncing your database’s metadata. To get a sense of the schema, Metabase will query the first and last 500 documents (most of the calculation is done in MongoDB). This sampling helps Metabase do things like differentiate datetime fields from string fields, and provide people with pre-populated filters. Metabase also syncs 1,000 leaf fields (fields at the deepest nesting level) per MongoDB collection. The reason Metabase only scans a sample of the documents is because scanning every document in every collection on every sync would put too much strain on your database. And while the sampling does a pretty good job keeping Metabase up to date, it can also mean that new fields can sometimes fall through the cracks, leading to visualization issues, or even fields failing to appear in your results. For more info, check out our troubleshooting guide.
+Because MongoDB contains unstructured data, Metabase takes a different approach to syncing your database’s metadata. To get a sense of the schema, Metabase will query the first and last 500 documents (most of the calculation is done in MongoDB). This sampling helps Metabase do things like differentiate datetime fields from string fields, and provide people with pre-populated filters. The reason Metabase only scans a sample of the documents is because scanning every document in every collection on every sync would put too much strain on your database. And while the sampling does a pretty good job keeping Metabase up to date, it can also mean that new fields can sometimes fall through the cracks, leading to visualization issues, or even fields failing to appear in your results. For more info, check out our troubleshooting guide.
This runs both the frontend and backend. Alternatively, you can run them separately in two terminal sessions below.
-To use any other database beside the default ones please take a look at Building Drivers further down in this document.
-Metabase depends on third-party libraries to run, so you’ll need to keep those up to date. The Clojure CLI will automatically fetch the dependencies when needed. With JavaScript dependencies, however, you’ll need to kick off the installation process manually.
diff --git a/_site/docs/master/developers-guide/driver-changelog.html b/_site/docs/master/developers-guide/driver-changelog.html index 53de25bc28..19c46d4635 100644 --- a/_site/docs/master/developers-guide/driver-changelog.html +++ b/_site/docs/master/developers-guide/driver-changelog.html @@ -4716,10 +4716,6 @@Also note that driver-api/add-alias-info
only adds additional keys to field refs and join maps, and does not
replace existing keys like :alias
, :join-alias
, or :name
; make sure you use driver-api/qp.add.alias
,
driver-api/qp.add.source-table
, and driver-api/qp.add.source-alias
respectively.
Added the driver multi-method driver/extra-info
for drivers to provide info such as db routing configuration details
-from their metabase-plugin.yaml
file.
Extend datetime()
to accept UTF-8 encoded binary and numbers (unix timestamps) in addition to strings.
metabase.driver/upload-type->database-type
or metabase.driver/allowed-promotions
– make sure you use
:metabase.upload/varchar-255
rather than something like ::upload/varchar-255
.
metabase.driver.sql.parameters.substitution/time-grouping->replacement-snippet-info
. This is effectively ->replacement-snippet-info
for the new native query time grouping feature, but is its own separate multimethod because it needs an extra parameter.The metabase.models.secret
namespace has been replaced with metabase.secrets.core
; if you were using it please
update your usages.
The namespace metabase.query-processor.context
, deprecated in 0.50.0, has been removed.
All settings formerly in a metabase.driver.*
namespace have been moved to metabase.driver.settings
, and all
+
metabase.driver.*
namespace have been moved to metabase.driver.settings
, and all
settings formerly in a metabase.query-processor.*
namespace have been moved to
-metabase.query-processor.settings
.
- metabase.query-processor.settings
.
diff --git a/_site/docs/master/developers-guide/versioning.html b/_site/docs/master/developers-guide/versioning.html
index 41acd0e6e5..3a83426249 100644
--- a/_site/docs/master/developers-guide/versioning.html
+++ b/_site/docs/master/developers-guide/versioning.html
@@ -4760,7 +4760,7 @@ Release Candidates
Further reading
diff --git a/_site/docs/master/embedding/images/create-a-public-link.png b/_site/docs/master/embedding/images/create-a-public-link.png
index a37656aa28..da4c9844b4 100644
Binary files a/_site/docs/master/embedding/images/create-a-public-link.png and b/_site/docs/master/embedding/images/create-a-public-link.png differ
diff --git a/_site/docs/master/embedding/images/dashboard-sharing.png b/_site/docs/master/embedding/images/dashboard-sharing.png
index 58e904072b..d4033342d1 100644
Binary files a/_site/docs/master/embedding/images/dashboard-sharing.png and b/_site/docs/master/embedding/images/dashboard-sharing.png differ
diff --git a/_site/docs/master/embedding/images/full-data-picker.png b/_site/docs/master/embedding/images/full-data-picker.png
index 012e37c3e9..31aa99c04c 100644
Binary files a/_site/docs/master/embedding/images/full-data-picker.png and b/_site/docs/master/embedding/images/full-data-picker.png differ
diff --git a/_site/docs/master/embedding/images/interactive-question-sample-app.png b/_site/docs/master/embedding/images/interactive-question-sample-app.png
index 306f2d33ca..82b59fed3a 100644
Binary files a/_site/docs/master/embedding/images/interactive-question-sample-app.png and b/_site/docs/master/embedding/images/interactive-question-sample-app.png differ
diff --git a/_site/docs/master/embedding/images/interactive-question.png b/_site/docs/master/embedding/images/interactive-question.png
index da4c9844b4..2789fb4304 100644
Binary files a/_site/docs/master/embedding/images/interactive-question.png and b/_site/docs/master/embedding/images/interactive-question.png differ
diff --git a/_site/docs/master/embedding/images/jwt-setup.png b/_site/docs/master/embedding/images/jwt-setup.png
index 005a76fc45..0c639d1032 100644
Binary files a/_site/docs/master/embedding/images/jwt-setup.png and b/_site/docs/master/embedding/images/jwt-setup.png differ
diff --git a/_site/docs/master/embedding/images/powered-by-metabase.png b/_site/docs/master/embedding/images/powered-by-metabase.png
index 2daa70728b..32282cca33 100644
Binary files a/_site/docs/master/embedding/images/powered-by-metabase.png and b/_site/docs/master/embedding/images/powered-by-metabase.png differ
diff --git a/_site/docs/master/embedding/images/public-embed.png b/_site/docs/master/embedding/images/public-embed.png
index 1bad0d4e3c..31aa99c04c 100644
Binary files a/_site/docs/master/embedding/images/public-embed.png and b/_site/docs/master/embedding/images/public-embed.png differ
diff --git a/_site/docs/master/embedding/images/public-link-custom-destination.png b/_site/docs/master/embedding/images/public-link-custom-destination.png
index 73f3cb9799..7e4d253fc1 100644
Binary files a/_site/docs/master/embedding/images/public-link-custom-destination.png and b/_site/docs/master/embedding/images/public-link-custom-destination.png differ
diff --git a/_site/docs/master/embedding/images/see-shared-content.png b/_site/docs/master/embedding/images/see-shared-content.png
index 1b7630c428..4039f66dd8 100644
Binary files a/_site/docs/master/embedding/images/see-shared-content.png and b/_site/docs/master/embedding/images/see-shared-content.png differ
diff --git a/_site/docs/master/embedding/sdk/api/BaseInteractiveQuestionProps.html b/_site/docs/master/embedding/sdk/api/BaseInteractiveQuestionProps.html
index 015313c7bb..230ac7fd42 100644
--- a/_site/docs/master/embedding/sdk/api/BaseInteractiveQuestionProps.html
+++ b/_site/docs/master/embedding/sdk/api/BaseInteractiveQuestionProps.html
@@ -23,7 +23,7 @@
-Interface BaseInteractiveQuestionProps
interface BaseInteractiveQuestionProps {
children?: ReactNode;
entityTypes?: EmbeddingEntityType[];
initialSqlParameters?: SqlParameterValues;
isSaveEnabled?: boolean;
onBeforeSave?: (
question: undefined | MetabaseQuestion,
context: { isNewQuestion: boolean },
) => Promise<void>;
onRun?: (question: undefined | MetabaseQuestion) => void;
onSave?: (
question: MetabaseQuestion,
context: { dashboardTabId?: number; isNewQuestion: boolean },
) => void;
plugins?: MetabasePluginsConfig;
questionId: null | SdkQuestionId;
targetCollection?: SdkCollectionId;
withDownloads?: boolean;
}Index
Properties
children?
+Interface BaseInteractiveQuestionProps
interface BaseInteractiveQuestionProps {
children?: ReactNode;
entityTypes?: EmbeddingEntityType[];
initialSqlParameters?: SqlParameterValues;
isSaveEnabled?: boolean;
onBeforeSave?: (
question: undefined | MetabaseQuestion,
context: { isNewQuestion: boolean },
) => Promise<void>;
onRun?: (question: undefined | MetabaseQuestion) => void;
onSave?: (
question: undefined | MetabaseQuestion,
context: { isNewQuestion: boolean },
) => void;
plugins?: MetabasePluginsConfig;
questionId: null | SdkQuestionId;
targetCollection?: SdkCollectionId;
withDownloads?: boolean;
}Index
Properties
Optional
isSaveEnabled
isSaveEnabled?: booleanWhether to show the save button.
Optional
onBeforeSave
onBeforeSave?: (
question: undefined | MetabaseQuestion,
context: { isNewQuestion: boolean },
) => Promise<void>A callback function that triggers before saving. Only relevant when isSaveEnabled = true
Optional
onRun
A callback function that triggers when a question is updated, including when a user clicks the Visualize
button in the question editor
-Optional
onSave
onSave?: (
question: MetabaseQuestion,
context: { dashboardTabId?: number; isNewQuestion: boolean },
) => voidA callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true
+Optional
onSave
A callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true
Optional
plugins
questionId
The ID of the question.
This is either:
diff --git a/_site/docs/master/embedding/sdk/api/CreateQuestion.html b/_site/docs/master/embedding/sdk/api/CreateQuestion.html
index 6fb7f49748..a35f55a8d1 100644
--- a/_site/docs/master/embedding/sdk/api/CreateQuestion.html
+++ b/_site/docs/master/embedding/sdk/api/CreateQuestion.html
@@ -28,7 +28,7 @@
Optional
isSaveEnabled?: boolean
Whether to show the save button.
Optional
onBeforeSave?: (
question: undefined | MetabaseQuestion,
context: { isNewQuestion: boolean },
) => Promise<void>
A callback function that triggers before saving. Only relevant when isSaveEnabled = true
Optional
onRun?: (question: undefined | MetabaseQuestion) => void
A callback function that triggers when a question is updated, including when a user clicks the Visualize
button in the question editor
-Optional
onSave?: (
question: MetabaseQuestion,
context: { dashboardTabId?: number; isNewQuestion: boolean },
) => void
A callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true
+Optional
onSave?: (
question: undefined | MetabaseQuestion,
context: { isNewQuestion: boolean },
) => void
A callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true
Optional
plugins?: MetabasePluginsConfig
Optional
targetCollection?: SdkCollectionId
The collection to save the question to. This will hide the collection picker from the save modal. Only applicable to interactive questions.
Optional
withDownloads?: boolean
Enables the ability to download results in the interactive question.
Returns Element
Deprecated
Use <InteractiveQuestion questionId="new" />
instead.
diff --git a/_site/docs/master/embedding/sdk/api/CreateQuestionProps.html b/_site/docs/master/embedding/sdk/api/CreateQuestionProps.html
index 2f680f9343..5a0b4e825a 100644
--- a/_site/docs/master/embedding/sdk/api/CreateQuestionProps.html
+++ b/_site/docs/master/embedding/sdk/api/CreateQuestionProps.html
@@ -23,7 +23,7 @@
-Interface CreateQuestionProps
interface CreateQuestionProps {
entityTypes?: EmbeddingEntityType[];
initialSqlParameters?: SqlParameterValues;
isSaveEnabled?: boolean;
onBeforeSave?: (
question: undefined | MetabaseQuestion,
context: { isNewQuestion: boolean },
) => Promise<void>;
onRun?: (question: undefined | MetabaseQuestion) => void;
onSave?: (
question: MetabaseQuestion,
context: { dashboardTabId?: number; isNewQuestion: boolean },
) => void;
plugins?: MetabasePluginsConfig;
targetCollection?: SdkCollectionId;
withDownloads?: boolean;
}Index
Properties
entityTypes?
+Interface CreateQuestionProps
interface CreateQuestionProps {
entityTypes?: EmbeddingEntityType[];
initialSqlParameters?: SqlParameterValues;
isSaveEnabled?: boolean;
onBeforeSave?: (
question: undefined | MetabaseQuestion,
context: { isNewQuestion: boolean },
) => Promise<void>;
onRun?: (question: undefined | MetabaseQuestion) => void;
onSave?: (
question: undefined | MetabaseQuestion,
context: { isNewQuestion: boolean },
) => void;
plugins?: MetabasePluginsConfig;
targetCollection?: SdkCollectionId;
withDownloads?: boolean;
}Index
Properties
Optional
isSaveEnabled
isSaveEnabled?: booleanWhether to show the save button.
Optional
onBeforeSave
onBeforeSave?: (
question: undefined | MetabaseQuestion,
context: { isNewQuestion: boolean },
) => Promise<void>A callback function that triggers before saving. Only relevant when isSaveEnabled = true
Optional
onRun
A callback function that triggers when a question is updated, including when a user clicks the Visualize
button in the question editor
-Optional
onSave
onSave?: (
question: MetabaseQuestion,
context: { dashboardTabId?: number; isNewQuestion: boolean },
) => voidA callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true
+Optional
onSave
A callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true
Optional
plugins
Optional
targetCollection
The collection to save the question to. This will hide the collection picker from the save modal. Only applicable to interactive questions.
Optional
withDownloads
withDownloads?: booleanEnables the ability to download results in the interactive question.
diff --git a/_site/docs/master/embedding/sdk/api/DrillThroughQuestionProps.html b/_site/docs/master/embedding/sdk/api/DrillThroughQuestionProps.html
index 4edc29450e..f1d754ca45 100644
--- a/_site/docs/master/embedding/sdk/api/DrillThroughQuestionProps.html
+++ b/_site/docs/master/embedding/sdk/api/DrillThroughQuestionProps.html
@@ -24,7 +24,7 @@
Interface DrillThroughQuestionProps
Props for the drill-through question
- interface DrillThroughQuestionProps {
children?: ReactNode;
className?: string;
entityTypes?: EmbeddingEntityType[];
height?: Height<string | number>;
initialSqlParameters?: SqlParameterValues;
isSaveEnabled?: boolean;
onBeforeSave?: (
question: undefined | MetabaseQuestion,
context: { isNewQuestion: boolean },
) => Promise<void>;
onRun?: (question: undefined | MetabaseQuestion) => void;
onSave?: (
question: MetabaseQuestion,
context: { dashboardTabId?: number; isNewQuestion: boolean },
) => void;
plugins?: MetabasePluginsConfig;
style?: CSSProperties;
targetCollection?: SdkCollectionId;
title?: SdkQuestionTitleProps;
width?: Width<string | number>;
withChartTypeSelector?: boolean;
withDownloads?: boolean;
withResetButton?: boolean;
}Index
Properties
interface DrillThroughQuestionProps {
children?: ReactNode;
className?: string;
entityTypes?: EmbeddingEntityType[];
height?: Height<string | number>;
initialSqlParameters?: SqlParameterValues;
isSaveEnabled?: boolean;
onBeforeSave?: (
question: undefined | MetabaseQuestion,
context: { isNewQuestion: boolean },
) => Promise<void>;
onRun?: (question: undefined | MetabaseQuestion) => void;
onSave?: (
question: undefined | MetabaseQuestion,
context: { isNewQuestion: boolean },
) => void;
plugins?: MetabasePluginsConfig;
style?: CSSProperties;
targetCollection?: SdkCollectionId;
title?: SdkQuestionTitleProps;
width?: Width<string | number>;
withChartTypeSelector?: boolean;
withDownloads?: boolean;
withResetButton?: boolean;
}Index
Properties
Optional
isSaveEnabled
isSaveEnabled?: booleanWhether to show the save button.
Optional
onBeforeSave
onBeforeSave?: (
question: undefined | MetabaseQuestion,
context: { isNewQuestion: boolean },
) => Promise<void>A callback function that triggers before saving. Only relevant when isSaveEnabled = true
Optional
onRun
A callback function that triggers when a question is updated, including when a user clicks the Visualize
button in the question editor
-Optional
onSave
onSave?: (
question: MetabaseQuestion,
context: { dashboardTabId?: number; isNewQuestion: boolean },
) => voidA callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true
+Optional
onSave
A callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true
Optional
plugins
Optional
style
A custom style object to be added to the root element.
Optional
targetCollection
The collection to save the question to. This will hide the collection picker from the save modal. Only applicable to interactive questions.
Optional
title
Determines whether the question title is displayed, and allows a custom title to be displayed instead of the default question title. Shown by default. Only applicable to interactive questions when using the default layout.
diff --git a/_site/docs/master/embedding/sdk/api/EditableDashboard.html b/_site/docs/master/embedding/sdk/api/EditableDashboard.html
index cf22fd37d6..b30608757e 100644
--- a/_site/docs/master/embedding/sdk/api/EditableDashboard.html
+++ b/_site/docs/master/embedding/sdk/api/EditableDashboard.html
@@ -23,9 +23,13 @@
-Function EditableDashboard
A dashboard component with the features available in the InteractiveDashboard
component, as well as the ability to add and update questions, layout, and content within your dashboard.
-Parameters
- props: EditableDashboardProps
Optional
className?: string
A custom class name to be added to the root element.
-dashboardId: SdkDashboardId
The ID of the dashboard.
+
Function EditableDashboard
- EditableDashboard(
props: {
drillThroughQuestionHeight?: Height<string | number>;
drillThroughQuestionProps?: DrillThroughQuestionProps;
plugins?: MetabasePluginsConfig;
renderDrillThroughQuestion?: () => ReactNode;
} & {
dashboardId: SdkDashboardId;
hiddenParameters?: string[];
initialParameters?: ParameterValues;
withCardTitle?: boolean;
withDownloads?: boolean;
withTitle?: boolean;
} & { className?: string; style?: CSSProperties } & {
onLoad?: (dashboard: null | MetabaseDashboard) => void;
onLoadWithoutCards?: (dashboard: null | MetabaseDashboard) => void;
} & {},
): ElementA dashboard component with the features available in the InteractiveDashboard
component, as well as the ability to add and update questions, layout, and content within your dashboard.
+Parameters
- props: {
drillThroughQuestionHeight?: Height<string | number>;
drillThroughQuestionProps?: DrillThroughQuestionProps;
plugins?: MetabasePluginsConfig;
renderDrillThroughQuestion?: () => ReactNode;
} & {
dashboardId: SdkDashboardId;
hiddenParameters?: string[];
initialParameters?: ParameterValues;
withCardTitle?: boolean;
withDownloads?: boolean;
withTitle?: boolean;
} & { className?: string; style?: CSSProperties } & {
onLoad?: (dashboard: null | MetabaseDashboard) => void;
onLoadWithoutCards?: (dashboard: null | MetabaseDashboard) => void;
} & {}Optional
drillThroughQuestionHeight?: Height<string | number>
Height of a question component when drilled from the dashboard to a question level.
+Optional
drillThroughQuestionProps?: DrillThroughQuestionProps
Props of a question component when drilled from the dashboard to a question level.
+Optional
plugins?: MetabasePluginsConfig
Additional mapper function to override or add drill-down menu. See the implementing custom actions section for more details.
+Optional
renderDrillThroughQuestion?: () => ReactNode
A custom React component to render the question layout.
+Use namespaced InteractiveQuestion components to build the layout.
+
dashboardId: SdkDashboardId
The ID of the dashboard.
This is either:
@@ -34,32 +38,27 @@
- the string ID found in the
entity_id
key of the dashboard object when using the API directly or using the SDK Collection Browser to return data
-Optional
dataPickerProps?: Pick<InteractiveQuestionProps, "entityTypes">
Additional props to pass to the query builder rendered by InteractiveQuestion
when creating a new dashboard question.
-Optional
drillThroughQuestionHeight?: Height<string | number>
Height of a question component when drilled from the dashboard to a question level.
-Optional
drillThroughQuestionProps?: DrillThroughQuestionProps
Props of a question component when drilled from the dashboard to a question level.
-Optional
hiddenParameters?: string[]
A list of parameters to hide.
+
Optional
hiddenParameters?: string[]
A list of parameters to hide.
- Combining initialParameters and hiddenParameters to filter data on the frontend is a security risk.
- Combining initialParameters and hiddenParameters to declutter the user interface is fine.
-Optional
initialParameters?: ParameterValues
Query parameters for the dashboard. For a single option, use a string
value, and use a list of strings for multiple options.
+
Optional
initialParameters?: ParameterValues
Query parameters for the dashboard. For a single option, use a string
value, and use a list of strings for multiple options.
- Combining initialParameters and hiddenParameters to filter data on the frontend is a security risk.
- Combining initialParameters and hiddenParameters to declutter the user interface is fine.
-Optional
onLoad?: (dashboard: null | MetabaseDashboard) => void
Callback that is called when the dashboard is loaded.
-Optional
onLoadWithoutCards?: (dashboard: null | MetabaseDashboard) => void
Callback that is called when the dashboard is loaded without cards.
-Optional
plugins?: MetabasePluginsConfig
Additional mapper function to override or add drill-down menu. See the implementing custom actions section for more details.
-Optional
renderDrillThroughQuestion?: () => ReactNode
A custom React component to render the question layout.
-Use namespaced InteractiveQuestion components to build the layout.
-Optional
style?: CSSProperties
A custom style object to be added to the root element.
-Optional
withCardTitle?: boolean
Whether the dashboard cards should display a title.
-Optional
withDownloads?: boolean
Whether to hide the download button.
-Optional
withTitle?: boolean
Whether the dashboard should display a title.
-
Returns Element
+Optional
withCardTitle?: boolean
Whether the dashboard cards should display a title.
+Optional
withDownloads?: boolean
Whether to hide the download button.
+Optional
withTitle?: boolean
Whether the dashboard should display a title.
+
Optional
className?: string
A custom class name to be added to the root element.
+Optional
style?: CSSProperties
A custom style object to be added to the root element.
+
Optional
onLoad?: (dashboard: null | MetabaseDashboard) => void
Callback that is called when the dashboard is loaded.
+Optional
onLoadWithoutCards?: (dashboard: null | MetabaseDashboard) => void
Callback that is called when the dashboard is loaded without cards.
+
Returns Element
\ No newline at end of file
diff --git a/_site/docs/master/embedding/sdk/api/EditableDashboardProps.html b/_site/docs/master/embedding/sdk/api/EditableDashboardProps.html
index 277bc8a0f7..84f46b6ace 100644
--- a/_site/docs/master/embedding/sdk/api/EditableDashboardProps.html
+++ b/_site/docs/master/embedding/sdk/api/EditableDashboardProps.html
@@ -23,9 +23,8 @@
-Interface EditableDashboardProps
interface EditableDashboardProps {
className?: string;
dashboardId: SdkDashboardId;
dataPickerProps?: Pick<InteractiveQuestionProps, "entityTypes">;
drillThroughQuestionHeight?: Height<string | number>;
drillThroughQuestionProps?: DrillThroughQuestionProps;
hiddenParameters?: string[];
initialParameters?: ParameterValues;
onLoad?: (dashboard: null | MetabaseDashboard) => void;
onLoadWithoutCards?: (dashboard: null | MetabaseDashboard) => void;
plugins?: MetabasePluginsConfig;
renderDrillThroughQuestion?: () => ReactNode;
style?: CSSProperties;
withCardTitle?: boolean;
withDownloads?: boolean;
withTitle?: boolean;
}Index
Properties
className?
+Interface EditableDashboardProps
interface EditableDashboardProps {
className?: string;
dashboardId: SdkDashboardId;
drillThroughQuestionHeight?: Height<string | number>;
drillThroughQuestionProps?: DrillThroughQuestionProps;
hiddenParameters?: string[];
initialParameters?: ParameterValues;
onLoad?: (dashboard: null | MetabaseDashboard) => void;
onLoadWithoutCards?: (dashboard: null | MetabaseDashboard) => void;
plugins?: MetabasePluginsConfig;
renderDrillThroughQuestion?: () => ReactNode;
style?: CSSProperties;
withCardTitle?: boolean;
withDownloads?: boolean;
withTitle?: boolean;
}Index
Properties
className?
dashboardId
-dataPickerProps?
drillThroughQuestionHeight?
drillThroughQuestionProps?
hiddenParameters?
@@ -48,7 +47,6 @@
- the string ID found in the
entity_id
key of the dashboard object when using the API directly or using the SDK Collection Browser to return data
-Optional
dataPickerProps
Additional props to pass to the query builder rendered by InteractiveQuestion
when creating a new dashboard question.
Optional
drillThroughQuestionHeight
drillThroughQuestionHeight?: Height<string | number>Height of a question component when drilled from the dashboard to a question level.
Optional
drillThroughQuestionProps
Props of a question component when drilled from the dashboard to a question level.
Type declaration
Props for the drill-through question
@@ -60,7 +58,7 @@
Optional
isSaveEnabled?: boolean
Whether to show the save button.
Optional
onBeforeSave?: (
question: undefined | MetabaseQuestion,
context: { isNewQuestion: boolean },
) => Promise<void>
A callback function that triggers before saving. Only relevant when isSaveEnabled = true
Optional
onRun?: (question: undefined | MetabaseQuestion) => void
A callback function that triggers when a question is updated, including when a user clicks the Visualize
button in the question editor
-Optional
onSave?: (
question: MetabaseQuestion,
context: { dashboardTabId?: number; isNewQuestion: boolean },
) => void
A callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true
+Optional
onSave?: (
question: undefined | MetabaseQuestion,
context: { isNewQuestion: boolean },
) => void
A callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true
Optional
plugins?: MetabasePluginsConfig
Optional
style?: CSSProperties
A custom style object to be added to the root element.
Optional
targetCollection?: SdkCollectionId
The collection to save the question to. This will hide the collection picker from the save modal. Only applicable to interactive questions.
Optional
title?: SdkQuestionTitleProps
Determines whether the question title is displayed, and allows a custom title to be displayed instead of the default question title. Shown by default. Only applicable to interactive questions when using the default layout.
@@ -91,6 +89,6 @@
Optional
withCardTitle
withCardTitle?: booleanWhether the dashboard cards should display a title.
Optional
withDownloads
withDownloads?: booleanWhether to hide the download button.
Optional
withTitle
withTitle?: booleanWhether the dashboard should display a title.
-
+
\ No newline at end of file
diff --git a/_site/docs/master/embedding/sdk/api/InteractiveDashboard.html b/_site/docs/master/embedding/sdk/api/InteractiveDashboard.html
index f902519d01..e8fb2103ed 100644
--- a/_site/docs/master/embedding/sdk/api/InteractiveDashboard.html
+++ b/_site/docs/master/embedding/sdk/api/InteractiveDashboard.html
@@ -23,8 +23,8 @@
-Function InteractiveDashboard
- InteractiveDashboard(
props: {
drillThroughQuestionHeight?: Height<string | number>;
drillThroughQuestionProps?: DrillThroughQuestionProps;
plugins?: MetabasePluginsConfig;
renderDrillThroughQuestion?: () => ReactNode;
} & {
dashboardId: SdkDashboardId;
hiddenParameters?: string[];
initialParameters?: ParameterValues;
withCardTitle?: boolean;
withDownloads?: boolean;
withTitle?: boolean;
} & { className?: string; style?: CSSProperties } & {
onLoad?: (dashboard: null | MetabaseDashboard) => void;
onLoadWithoutCards?: (dashboard: null | MetabaseDashboard) => void;
} & { dataPickerProps?: Pick<InteractiveQuestionProps, "entityTypes"> } & {},
): ElementA dashboard component with drill downs, click behaviors, and the ability to view and click into questions.
-Parameters
- props: {
drillThroughQuestionHeight?: Height<string | number>;
drillThroughQuestionProps?: DrillThroughQuestionProps;
plugins?: MetabasePluginsConfig;
renderDrillThroughQuestion?: () => ReactNode;
} & {
dashboardId: SdkDashboardId;
hiddenParameters?: string[];
initialParameters?: ParameterValues;
withCardTitle?: boolean;
withDownloads?: boolean;
withTitle?: boolean;
} & { className?: string; style?: CSSProperties } & {
onLoad?: (dashboard: null | MetabaseDashboard) => void;
onLoadWithoutCards?: (dashboard: null | MetabaseDashboard) => void;
} & { dataPickerProps?: Pick<InteractiveQuestionProps, "entityTypes"> } & {}Optional
drillThroughQuestionHeight?: Height<string | number>
Height of a question component when drilled from the dashboard to a question level.
+Function InteractiveDashboard
- InteractiveDashboard(
props: {
drillThroughQuestionHeight?: Height<string | number>;
drillThroughQuestionProps?: DrillThroughQuestionProps;
plugins?: MetabasePluginsConfig;
renderDrillThroughQuestion?: () => ReactNode;
} & {
dashboardId: SdkDashboardId;
hiddenParameters?: string[];
initialParameters?: ParameterValues;
withCardTitle?: boolean;
withDownloads?: boolean;
withTitle?: boolean;
} & { className?: string; style?: CSSProperties } & {
onLoad?: (dashboard: null | MetabaseDashboard) => void;
onLoadWithoutCards?: (dashboard: null | MetabaseDashboard) => void;
} & {},
): ElementA dashboard component with drill downs, click behaviors, and the ability to view and click into questions.
+Parameters
- props: {
drillThroughQuestionHeight?: Height<string | number>;
drillThroughQuestionProps?: DrillThroughQuestionProps;
plugins?: MetabasePluginsConfig;
renderDrillThroughQuestion?: () => ReactNode;
} & {
dashboardId: SdkDashboardId;
hiddenParameters?: string[];
initialParameters?: ParameterValues;
withCardTitle?: boolean;
withDownloads?: boolean;
withTitle?: boolean;
} & { className?: string; style?: CSSProperties } & {
onLoad?: (dashboard: null | MetabaseDashboard) => void;
onLoadWithoutCards?: (dashboard: null | MetabaseDashboard) => void;
} & {}Optional
drillThroughQuestionHeight?: Height<string | number>
Height of a question component when drilled from the dashboard to a question level.
Optional
drillThroughQuestionProps?: DrillThroughQuestionProps
Props of a question component when drilled from the dashboard to a question level.
Optional
plugins?: MetabasePluginsConfig
Additional mapper function to override or add drill-down menu. See the implementing custom actions section for more details.
Optional
renderDrillThroughQuestion?: () => ReactNode
A custom React component to render the question layout.
@@ -59,7 +59,6 @@
Optional
style?: CSSProperties
A custom style object to be added to the root element.
Optional
onLoad?: (dashboard: null | MetabaseDashboard) => void
Callback that is called when the dashboard is loaded.
Optional
onLoadWithoutCards?: (dashboard: null | MetabaseDashboard) => void
Callback that is called when the dashboard is loaded without cards.
-
Optional
dataPickerProps?: Pick<InteractiveQuestionProps, "entityTypes">
Additional props to pass to the query builder rendered by InteractiveQuestion
when creating a new dashboard question.
Returns Element
\ No newline at end of file
diff --git a/_site/docs/master/embedding/sdk/api/InteractiveDashboardProps.html b/_site/docs/master/embedding/sdk/api/InteractiveDashboardProps.html
index bfda664be1..01f4a19492 100644
--- a/_site/docs/master/embedding/sdk/api/InteractiveDashboardProps.html
+++ b/_site/docs/master/embedding/sdk/api/InteractiveDashboardProps.html
@@ -23,9 +23,8 @@
-Interface InteractiveDashboardProps
interface InteractiveDashboardProps {
className?: string;
dashboardId: SdkDashboardId;
dataPickerProps?: Pick<InteractiveQuestionProps, "entityTypes">;
drillThroughQuestionHeight?: Height<string | number>;
drillThroughQuestionProps?: DrillThroughQuestionProps;
hiddenParameters?: string[];
initialParameters?: ParameterValues;
onLoad?: (dashboard: null | MetabaseDashboard) => void;
onLoadWithoutCards?: (dashboard: null | MetabaseDashboard) => void;
plugins?: MetabasePluginsConfig;
renderDrillThroughQuestion?: () => ReactNode;
style?: CSSProperties;
withCardTitle?: boolean;
withDownloads?: boolean;
withTitle?: boolean;
}Index
Properties
className?
+Interface InteractiveDashboardProps
interface InteractiveDashboardProps {
className?: string;
dashboardId: SdkDashboardId;
drillThroughQuestionHeight?: Height<string | number>;
drillThroughQuestionProps?: DrillThroughQuestionProps;
hiddenParameters?: string[];
initialParameters?: ParameterValues;
onLoad?: (dashboard: null | MetabaseDashboard) => void;
onLoadWithoutCards?: (dashboard: null | MetabaseDashboard) => void;
plugins?: MetabasePluginsConfig;
renderDrillThroughQuestion?: () => ReactNode;
style?: CSSProperties;
withCardTitle?: boolean;
withDownloads?: boolean;
withTitle?: boolean;
}Index
Properties
className?
dashboardId
-dataPickerProps?
drillThroughQuestionHeight?
drillThroughQuestionProps?
hiddenParameters?
@@ -48,7 +47,6 @@
- the string ID found in the
entity_id
key of the dashboard object when using the API directly or using the SDK Collection Browser to return data
-Optional
dataPickerProps
Additional props to pass to the query builder rendered by InteractiveQuestion
when creating a new dashboard question.
Optional
drillThroughQuestionHeight
drillThroughQuestionHeight?: Height<string | number>Height of a question component when drilled from the dashboard to a question level.
Optional
drillThroughQuestionProps
Props of a question component when drilled from the dashboard to a question level.
Type declaration
Props for the drill-through question
@@ -60,7 +58,7 @@
Optional
isSaveEnabled?: boolean
Whether to show the save button.
Optional
onBeforeSave?: (
question: undefined | MetabaseQuestion,
context: { isNewQuestion: boolean },
) => Promise<void>
A callback function that triggers before saving. Only relevant when isSaveEnabled = true
Optional
onRun?: (question: undefined | MetabaseQuestion) => void
A callback function that triggers when a question is updated, including when a user clicks the Visualize
button in the question editor
-Optional
onSave?: (
question: MetabaseQuestion,
context: { dashboardTabId?: number; isNewQuestion: boolean },
) => void
A callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true
+Optional
onSave?: (
question: undefined | MetabaseQuestion,
context: { isNewQuestion: boolean },
) => void
A callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true
Optional
plugins?: MetabasePluginsConfig
Optional
style?: CSSProperties
A custom style object to be added to the root element.
Optional
targetCollection?: SdkCollectionId
The collection to save the question to. This will hide the collection picker from the save modal. Only applicable to interactive questions.
Optional
title?: SdkQuestionTitleProps
Determines whether the question title is displayed, and allows a custom title to be displayed instead of the default question title. Shown by default. Only applicable to interactive questions when using the default layout.
@@ -91,6 +89,6 @@
Optional
withCardTitle
withCardTitle?: booleanWhether the dashboard cards should display a title.
Optional
withDownloads
withDownloads?: booleanWhether to hide the download button.
Optional
withTitle
withTitle?: booleanWhether the dashboard should display a title.
-
+
\ No newline at end of file
diff --git a/_site/docs/master/embedding/sdk/api/InteractiveQuestion.html b/_site/docs/master/embedding/sdk/api/InteractiveQuestion.html
index 4ba3fbfa50..8f1e02d18d 100644
--- a/_site/docs/master/embedding/sdk/api/InteractiveQuestion.html
+++ b/_site/docs/master/embedding/sdk/api/InteractiveQuestion.html
@@ -32,7 +32,7 @@
Optional
isSaveEnabled?: boolean
Whether to show the save button.
Optional
onBeforeSave?: (
question: undefined | MetabaseQuestion,
context: { isNewQuestion: boolean },
) => Promise<void>
A callback function that triggers before saving. Only relevant when isSaveEnabled = true
Optional
onRun?: (question: undefined | MetabaseQuestion) => void
A callback function that triggers when a question is updated, including when a user clicks the Visualize
button in the question editor
-Optional
onSave?: (
question: MetabaseQuestion,
context: { dashboardTabId?: number; isNewQuestion: boolean },
) => void
A callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true
+Optional
onSave?: (
question: undefined | MetabaseQuestion,
context: { isNewQuestion: boolean },
) => void
A callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true
Optional
plugins?: MetabasePluginsConfig
questionId: null | SdkQuestionId
The ID of the question.
This is either:
diff --git a/_site/docs/master/embedding/sdk/api/InteractiveQuestionProps.html b/_site/docs/master/embedding/sdk/api/InteractiveQuestionProps.html
index 57cf9c4172..d5bf1a82c7 100644
--- a/_site/docs/master/embedding/sdk/api/InteractiveQuestionProps.html
+++ b/_site/docs/master/embedding/sdk/api/InteractiveQuestionProps.html
@@ -23,7 +23,7 @@
-
Interface InteractiveQuestionProps
interface InteractiveQuestionProps {
children?: ReactNode;
className?: string;
entityTypes?: EmbeddingEntityType[];
height?: Height<string | number>;
initialSqlParameters?: SqlParameterValues;
isSaveEnabled?: boolean;
onBeforeSave?: (
question: undefined | MetabaseQuestion,
context: { isNewQuestion: boolean },
) => Promise<void>;
onRun?: (question: undefined | MetabaseQuestion) => void;
onSave?: (
question: MetabaseQuestion,
context: { dashboardTabId?: number; isNewQuestion: boolean },
) => void;
plugins?: MetabasePluginsConfig;
questionId: null | SdkQuestionId;
style?: CSSProperties;
targetCollection?: SdkCollectionId;
title?: SdkQuestionTitleProps;
width?: Width<string | number>;
withChartTypeSelector?: boolean;
withDownloads?: boolean;
withResetButton?: boolean;
}Index
Properties
children?
+Interface InteractiveQuestionProps
interface InteractiveQuestionProps {
children?: ReactNode;
className?: string;
entityTypes?: EmbeddingEntityType[];
height?: Height<string | number>;
initialSqlParameters?: SqlParameterValues;
isSaveEnabled?: boolean;
onBeforeSave?: (
question: undefined | MetabaseQuestion,
context: { isNewQuestion: boolean },
) => Promise<void>;
onRun?: (question: undefined | MetabaseQuestion) => void;
onSave?: (
question: undefined | MetabaseQuestion,
context: { isNewQuestion: boolean },
) => void;
plugins?: MetabasePluginsConfig;
questionId: null | SdkQuestionId;
style?: CSSProperties;
targetCollection?: SdkCollectionId;
title?: SdkQuestionTitleProps;
width?: Width<string | number>;
withChartTypeSelector?: boolean;
withDownloads?: boolean;
withResetButton?: boolean;
}Index
Properties
Optional
isSaveEnabled
isSaveEnabled?: booleanWhether to show the save button.
Optional
onBeforeSave
onBeforeSave?: (
question: undefined | MetabaseQuestion,
context: { isNewQuestion: boolean },
) => Promise<void>A callback function that triggers before saving. Only relevant when isSaveEnabled = true
Optional
onRun
A callback function that triggers when a question is updated, including when a user clicks the Visualize
button in the question editor
-Optional
onSave
onSave?: (
question: MetabaseQuestion,
context: { dashboardTabId?: number; isNewQuestion: boolean },
) => voidA callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true
+Optional
onSave
A callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true
Optional
plugins
questionId
The ID of the question.
This is either:
diff --git a/_site/docs/master/embedding/sdk/api/StaticDashboard.html b/_site/docs/master/embedding/sdk/api/StaticDashboard.html
index 76929144aa..eb0989de67 100644
--- a/_site/docs/master/embedding/sdk/api/StaticDashboard.html
+++ b/_site/docs/master/embedding/sdk/api/StaticDashboard.html
@@ -23,8 +23,8 @@
-
Function StaticDashboard
- StaticDashboard(
props: {
drillThroughQuestionHeight?: Height<string | number>;
drillThroughQuestionProps?: DrillThroughQuestionProps;
plugins?: MetabasePluginsConfig;
renderDrillThroughQuestion?: () => ReactNode;
} & {
dashboardId: SdkDashboardId;
hiddenParameters?: string[];
initialParameters?: ParameterValues;
withCardTitle?: boolean;
withDownloads?: boolean;
withTitle?: boolean;
} & { className?: string; style?: CSSProperties } & {
onLoad?: (dashboard: null | MetabaseDashboard) => void;
onLoadWithoutCards?: (dashboard: null | MetabaseDashboard) => void;
} & { dataPickerProps?: Pick<InteractiveQuestionProps, "entityTypes"> } & {},
): ElementA lightweight dashboard component.
-Parameters
- props: {
drillThroughQuestionHeight?: Height<string | number>;
drillThroughQuestionProps?: DrillThroughQuestionProps;
plugins?: MetabasePluginsConfig;
renderDrillThroughQuestion?: () => ReactNode;
} & {
dashboardId: SdkDashboardId;
hiddenParameters?: string[];
initialParameters?: ParameterValues;
withCardTitle?: boolean;
withDownloads?: boolean;
withTitle?: boolean;
} & { className?: string; style?: CSSProperties } & {
onLoad?: (dashboard: null | MetabaseDashboard) => void;
onLoadWithoutCards?: (dashboard: null | MetabaseDashboard) => void;
} & { dataPickerProps?: Pick<InteractiveQuestionProps, "entityTypes"> } & {}Optional
drillThroughQuestionHeight?: Height<string | number>
Height of a question component when drilled from the dashboard to a question level.
+Function StaticDashboard
- StaticDashboard(
props: {
drillThroughQuestionHeight?: Height<string | number>;
drillThroughQuestionProps?: DrillThroughQuestionProps;
plugins?: MetabasePluginsConfig;
renderDrillThroughQuestion?: () => ReactNode;
} & {
dashboardId: SdkDashboardId;
hiddenParameters?: string[];
initialParameters?: ParameterValues;
withCardTitle?: boolean;
withDownloads?: boolean;
withTitle?: boolean;
} & { className?: string; style?: CSSProperties } & {
onLoad?: (dashboard: null | MetabaseDashboard) => void;
onLoadWithoutCards?: (dashboard: null | MetabaseDashboard) => void;
} & {},
): ElementA lightweight dashboard component.
+Parameters
- props: {
drillThroughQuestionHeight?: Height<string | number>;
drillThroughQuestionProps?: DrillThroughQuestionProps;
plugins?: MetabasePluginsConfig;
renderDrillThroughQuestion?: () => ReactNode;
} & {
dashboardId: SdkDashboardId;
hiddenParameters?: string[];
initialParameters?: ParameterValues;
withCardTitle?: boolean;
withDownloads?: boolean;
withTitle?: boolean;
} & { className?: string; style?: CSSProperties } & {
onLoad?: (dashboard: null | MetabaseDashboard) => void;
onLoadWithoutCards?: (dashboard: null | MetabaseDashboard) => void;
} & {}Optional
drillThroughQuestionHeight?: Height<string | number>
Height of a question component when drilled from the dashboard to a question level.
Optional
drillThroughQuestionProps?: DrillThroughQuestionProps
Props of a question component when drilled from the dashboard to a question level.
Optional
plugins?: MetabasePluginsConfig
Additional mapper function to override or add drill-down menu. See the implementing custom actions section for more details.
Optional
renderDrillThroughQuestion?: () => ReactNode
A custom React component to render the question layout.
@@ -59,7 +59,6 @@
Optional
style?: CSSProperties
A custom style object to be added to the root element.
Optional
onLoad?: (dashboard: null | MetabaseDashboard) => void
Callback that is called when the dashboard is loaded.
Optional
onLoadWithoutCards?: (dashboard: null | MetabaseDashboard) => void
Callback that is called when the dashboard is loaded without cards.
-
Optional
dataPickerProps?: Pick<InteractiveQuestionProps, "entityTypes">
Additional props to pass to the query builder rendered by InteractiveQuestion
when creating a new dashboard question.
Returns Element
\ No newline at end of file
diff --git a/_site/docs/master/embedding/sdk/api/StaticDashboardProps.html b/_site/docs/master/embedding/sdk/api/StaticDashboardProps.html
index 915743d8ab..dbd37a2632 100644
--- a/_site/docs/master/embedding/sdk/api/StaticDashboardProps.html
+++ b/_site/docs/master/embedding/sdk/api/StaticDashboardProps.html
@@ -23,9 +23,8 @@
-Interface StaticDashboardProps
interface StaticDashboardProps {
className?: string;
dashboardId: SdkDashboardId;
dataPickerProps?: Pick<InteractiveQuestionProps, "entityTypes">;
drillThroughQuestionHeight?: Height<string | number>;
drillThroughQuestionProps?: DrillThroughQuestionProps;
hiddenParameters?: string[];
initialParameters?: ParameterValues;
onLoad?: (dashboard: null | MetabaseDashboard) => void;
onLoadWithoutCards?: (dashboard: null | MetabaseDashboard) => void;
plugins?: MetabasePluginsConfig;
renderDrillThroughQuestion?: () => ReactNode;
style?: CSSProperties;
withCardTitle?: boolean;
withDownloads?: boolean;
withTitle?: boolean;
}Index
Properties
className?
+Interface StaticDashboardProps
interface StaticDashboardProps {
className?: string;
dashboardId: SdkDashboardId;
drillThroughQuestionHeight?: Height<string | number>;
drillThroughQuestionProps?: DrillThroughQuestionProps;
hiddenParameters?: string[];
initialParameters?: ParameterValues;
onLoad?: (dashboard: null | MetabaseDashboard) => void;
onLoadWithoutCards?: (dashboard: null | MetabaseDashboard) => void;
plugins?: MetabasePluginsConfig;
renderDrillThroughQuestion?: () => ReactNode;
style?: CSSProperties;
withCardTitle?: boolean;
withDownloads?: boolean;
withTitle?: boolean;
}Index
Properties
className?
dashboardId
-dataPickerProps?
drillThroughQuestionHeight?
drillThroughQuestionProps?
hiddenParameters?
@@ -48,7 +47,6 @@
- the string ID found in the
entity_id
key of the dashboard object when using the API directly or using the SDK Collection Browser to return data
-Optional
dataPickerProps
Additional props to pass to the query builder rendered by InteractiveQuestion
when creating a new dashboard question.
Optional
drillThroughQuestionHeight
drillThroughQuestionHeight?: Height<string | number>Height of a question component when drilled from the dashboard to a question level.
Optional
drillThroughQuestionProps
Props of a question component when drilled from the dashboard to a question level.
Type declaration
Props for the drill-through question
@@ -60,7 +58,7 @@
Optional
isSaveEnabled?: boolean
Whether to show the save button.
Optional
onBeforeSave?: (
question: undefined | MetabaseQuestion,
context: { isNewQuestion: boolean },
) => Promise<void>
A callback function that triggers before saving. Only relevant when isSaveEnabled = true
Optional
onRun?: (question: undefined | MetabaseQuestion) => void
A callback function that triggers when a question is updated, including when a user clicks the Visualize
button in the question editor
-Optional
onSave?: (
question: MetabaseQuestion,
context: { dashboardTabId?: number; isNewQuestion: boolean },
) => void
A callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true
+Optional
onSave?: (
question: undefined | MetabaseQuestion,
context: { isNewQuestion: boolean },
) => void
A callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true
Optional
plugins?: MetabasePluginsConfig
Optional
style?: CSSProperties
A custom style object to be added to the root element.
Optional
targetCollection?: SdkCollectionId
The collection to save the question to. This will hide the collection picker from the save modal. Only applicable to interactive questions.
Optional
title?: SdkQuestionTitleProps
Determines whether the question title is displayed, and allows a custom title to be displayed instead of the default question title. Shown by default. Only applicable to interactive questions when using the default layout.
@@ -91,6 +89,6 @@
Optional
withCardTitle
withCardTitle?: booleanWhether the dashboard cards should display a title.
Optional
withDownloads
withDownloads?: booleanWhether to hide the download button.
Optional
withTitle
withTitle?: booleanWhether the dashboard should display a title.
-
+
\ No newline at end of file
diff --git a/_site/docs/master/embedding/sdk/api/StaticQuestion.html b/_site/docs/master/embedding/sdk/api/StaticQuestion.html
index 9fe7eebc5e..3deb840da1 100644
--- a/_site/docs/master/embedding/sdk/api/StaticQuestion.html
+++ b/_site/docs/master/embedding/sdk/api/StaticQuestion.html
@@ -40,7 +40,6 @@
Optional
style?: CSSProperties
A custom style object to be added to the root element.
Optional
width?: Width<string | number>
A number or string specifying a CSS size value that specifies the width of the component
-Optional
withChartTypeSelector?: boolean
Optional
withDownloads?: boolean
Enables the ability to download results in the interactive question.
-Returns ReactNode
+ Optional
withChartTypeSelector?: boolean
Returns ReactNode
Whether to show the save button.