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) | ![GitHub stars](https://img.shields.io/github/stars/Markenson/csv-metabase-driver) | ![GitHub (Pre-)Release Date](https://img.shields.io/github/release-date-pre/Markenson/csv-metabase-driver) | | [Databend](https://github.com/databendcloud/metabase-databend-driver) | ![GitHub stars](https://img.shields.io/github/stars/databendcloud/metabase-databend-driver) | ![GitHub (Pre-)Release Date](https://img.shields.io/github/release-date-pre/databendcloud/metabase-databend-driver) | -| [DB2](https://github.com/damienchambe/metabase-db2-driver) | ![GitHub stars](https://img.shields.io/github/stars/damienchambe/metabase-db2-driver) | ![GitHub (Pre-)Release Date](https://img.shields.io/github/release-date-pre/damienchambe/metabase-db2-driver) | +| [DB2](https://github.com/damienchambe/metabase-db2-driver) | ![GitHub stars](https://img.shields.io/github/stars/damienchambe/metabase-db2-driver) | ![Github (Pre-)Release Date](https://img.shields.io/github/release-date-pre/damienchambe/metabase-db2-driver) | | [Dremio](https://github.com/Baoqi/metabase-dremio-driver) | ![GitHub stars](https://img.shields.io/github/stars/Baoqi/metabase-dremio-driver) | ![GitHub (Pre-)Release Date](https://img.shields.io/github/release-date-pre/Baoqi/metabase-dremio-driver) | | [DuckDB](https://github.com/MotherDuck-Open-Source/metabase_duckdb_driver) | ![GitHub stars](https://img.shields.io/github/stars/MotherDuck-Open-Source/metabase_duckdb_driver) | ![GitHub (Pre-)Release Date](https://img.shields.io/github/release-date-pre/MotherDuck-Open-Source/metabase_duckdb_driver) | | [Firebolt](https://github.com/firebolt-db/metabase-firebolt-driver) | ![GitHub stars](https://img.shields.io/github/stars/firebolt-db/metabase-firebolt-driver) | ![GitHub (Pre-)Release Date](https://img.shields.io/github/release-date-pre/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 --- -BaseInteractiveQuestionProps | Embedded analytics SDK API{% include docs/embedded-analytics-sdk-metadata.html %}
Embedded analytics SDK API
    Preparing search index...

    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? +BaseInteractiveQuestionProps | Embedded analytics SDK API{% include docs/embedded-analytics-sdk-metadata.html %}

    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

    isSaveEnabled?: boolean

    Whether to show the save button.

    onBeforeSave?: (
        question: undefined | MetabaseQuestion,
        context: { isNewQuestion: boolean },
    ) => Promise<void>

    A callback function that triggers before saving. Only relevant when isSaveEnabled = true

    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

    -
    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

    +
    onSave?: (
        question: undefined | MetabaseQuestion,
        context: { isNewQuestion: boolean },
    ) => void

    A callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true

    questionId: null | SdkQuestionId

    The 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 @@

  • OptionalisSaveEnabled?: boolean

    Whether to show the save button.

  • OptionalonBeforeSave?: (
        question: undefined | MetabaseQuestion,
        context: { isNewQuestion: boolean },
    ) => Promise<void>

    A callback function that triggers before saving. Only relevant when isSaveEnabled = true

  • OptionalonRun?: (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

    -
  • OptionalonSave?: (
        question: MetabaseQuestion,
        context: { dashboardTabId?: number; isNewQuestion: boolean },
    ) => void

    A callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true

    +
  • OptionalonSave?: (
        question: undefined | MetabaseQuestion,
        context: { isNewQuestion: boolean },
    ) => void

    A callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true

  • Optionalplugins?: MetabasePluginsConfig
  • OptionaltargetCollection?: SdkCollectionId

    The collection to save the question to. This will hide the collection picker from the save modal. Only applicable to interactive questions.

  • OptionalwithDownloads?: boolean

    Enables the ability to download results in the interactive question.

  • Returns Element

    Use <InteractiveQuestion questionId="new" /> instead.

    diff --git a/_docs/master/embedding/sdk/api/CreateQuestionProps.html b/_docs/master/embedding/sdk/api/CreateQuestionProps.html index 162264812e..634c78328d 100644 --- a/_docs/master/embedding/sdk/api/CreateQuestionProps.html +++ b/_docs/master/embedding/sdk/api/CreateQuestionProps.html @@ -9,7 +9,7 @@ layout: docs-api --- -CreateQuestionProps | Embedded analytics SDK API{% include docs/embedded-analytics-sdk-metadata.html %}

    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? +CreateQuestionProps | Embedded analytics SDK API{% include docs/embedded-analytics-sdk-metadata.html %}

    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

    isSaveEnabled?: boolean

    Whether to show the save button.

    onBeforeSave?: (
        question: undefined | MetabaseQuestion,
        context: { isNewQuestion: boolean },
    ) => Promise<void>

    A callback function that triggers before saving. Only relevant when isSaveEnabled = true

    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

    -
    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

    +
    onSave?: (
        question: undefined | MetabaseQuestion,
        context: { isNewQuestion: boolean },
    ) => void

    A callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true

    targetCollection?: SdkCollectionId

    The collection to save the question to. This will hide the collection picker from the save modal. Only applicable to interactive questions.

    withDownloads?: boolean

    Enables the ability to download results in the interactive question.

    diff --git a/_docs/master/embedding/sdk/api/DrillThroughQuestionProps.html b/_docs/master/embedding/sdk/api/DrillThroughQuestionProps.html index 4ef29e1abf..1fe84cf504 100644 --- a/_docs/master/embedding/sdk/api/DrillThroughQuestionProps.html +++ b/_docs/master/embedding/sdk/api/DrillThroughQuestionProps.html @@ -10,7 +10,7 @@ --- DrillThroughQuestionProps | Embedded analytics SDK API{% include docs/embedded-analytics-sdk-metadata.html %}

    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

    isSaveEnabled?: boolean

    Whether to show the save button.

    onBeforeSave?: (
        question: undefined | MetabaseQuestion,
        context: { isNewQuestion: boolean },
    ) => Promise<void>

    A callback function that triggers before saving. Only relevant when isSaveEnabled = true

    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

    -
    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

    +
    onSave?: (
        question: undefined | MetabaseQuestion,
        context: { isNewQuestion: boolean },
    ) => void

    A callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true

    A custom style object to be added to the root element.

    targetCollection?: SdkCollectionId

    The collection to save the question to. This will hide the collection picker from the save modal. Only applicable to interactive questions.

    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/_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 --- -EditableDashboard | Embedded analytics SDK API{% include docs/embedded-analytics-sdk-metadata.html %}

    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
        • OptionalclassName?: string

          A custom class name to be added to the root element.

          -
        • dashboardId: SdkDashboardId

          The ID of the dashboard. +EditableDashboard | Embedded analytics SDK API{% include docs/embedded-analytics-sdk-metadata.html %}

          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: {
                  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;
              } & {}
              • OptionaldrillThroughQuestionHeight?: Height<string | number>

                Height of a question component when drilled from the dashboard to a question level.

                +
              • OptionaldrillThroughQuestionProps?: DrillThroughQuestionProps

                Props of a question component when drilled from the dashboard to a question level.

                +
              • Optionalplugins?: MetabasePluginsConfig

                Additional mapper function to override or add drill-down menu. See the implementing custom actions section for more details.

                +
              • OptionalrenderDrillThroughQuestion?: () => 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:

                @@ -20,30 +24,25 @@
              • 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
              -
          • OptionaldataPickerProps?: Pick<InteractiveQuestionProps, "entityTypes">

            Additional props to pass to the query builder rendered by InteractiveQuestion when creating a new dashboard question.

            -
          • OptionaldrillThroughQuestionHeight?: Height<string | number>

            Height of a question component when drilled from the dashboard to a question level.

            -
          • OptionaldrillThroughQuestionProps?: DrillThroughQuestionProps

            Props of a question component when drilled from the dashboard to a question level.

            -
          • OptionalhiddenParameters?: string[]

            A list of parameters to hide. +

          • OptionalhiddenParameters?: string[]

            A list of parameters to hide.

            -
          • OptionalinitialParameters?: ParameterValues

            Query parameters for the dashboard. For a single option, use a string value, and use a list of strings for multiple options. +

          • OptionalinitialParameters?: ParameterValues

            Query parameters for the dashboard. For a single option, use a string value, and use a list of strings for multiple options.

            -
          • OptionalonLoad?: (dashboard: null | MetabaseDashboard) => void

            Callback that is called when the dashboard is loaded.

            -
          • OptionalonLoadWithoutCards?: (dashboard: null | MetabaseDashboard) => void

            Callback that is called when the dashboard is loaded without cards.

            -
          • Optionalplugins?: MetabasePluginsConfig

            Additional mapper function to override or add drill-down menu. See the implementing custom actions section for more details.

            -
          • OptionalrenderDrillThroughQuestion?: () => ReactNode

            A custom React component to render the question layout. -Use namespaced InteractiveQuestion components to build the layout.

            -
          • Optionalstyle?: CSSProperties

            A custom style object to be added to the root element.

            -
          • OptionalwithCardTitle?: boolean

            Whether the dashboard cards should display a title.

            -
          • OptionalwithDownloads?: boolean

            Whether to hide the download button.

            -
          • OptionalwithTitle?: boolean

            Whether the dashboard should display a title.

            -

      Returns Element

    +
  • OptionalwithCardTitle?: boolean

    Whether the dashboard cards should display a title.

    +
  • OptionalwithDownloads?: boolean

    Whether to hide the download button.

    +
  • OptionalwithTitle?: boolean

    Whether the dashboard should display a title.

    +
    • OptionalclassName?: string

      A custom class name to be added to the root element.

      +
    • Optionalstyle?: CSSProperties

      A custom style object to be added to the root element.

      +
    • OptionalonLoad?: (dashboard: null | MetabaseDashboard) => void

      Callback that is called when the dashboard is loaded.

      +
    • OptionalonLoadWithoutCards?: (dashboard: null | MetabaseDashboard) => void

      Callback that is called when the dashboard is loaded without cards.

      +

      Returns Element

      diff --git a/_docs/master/embedding/sdk/api/EditableDashboardProps.html b/_docs/master/embedding/sdk/api/EditableDashboardProps.html index 624a16cef9..80386abbe9 100644 --- a/_docs/master/embedding/sdk/api/EditableDashboardProps.html +++ b/_docs/master/embedding/sdk/api/EditableDashboardProps.html @@ -9,9 +9,8 @@ layout: docs-api --- -EditableDashboardProps | Embedded analytics SDK API{% include docs/embedded-analytics-sdk-metadata.html %}

      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? +EditableDashboardProps | Embedded analytics SDK API{% include docs/embedded-analytics-sdk-metadata.html %}

      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? @@ -34,7 +33,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
    • -
      dataPickerProps?: Pick<InteractiveQuestionProps, "entityTypes">

      Additional props to pass to the query builder rendered by InteractiveQuestion when creating a new dashboard question.

      drillThroughQuestionHeight?: Height<string | number>

      Height of a question component when drilled from the dashboard to a question level.

      drillThroughQuestionProps?: DrillThroughQuestionProps

      Props of a question component when drilled from the dashboard to a question level.

      Type declaration

      Props for the drill-through question

      @@ -46,7 +44,7 @@
    • OptionalisSaveEnabled?: boolean

      Whether to show the save button.

    • OptionalonBeforeSave?: (
          question: undefined | MetabaseQuestion,
          context: { isNewQuestion: boolean },
      ) => Promise<void>

      A callback function that triggers before saving. Only relevant when isSaveEnabled = true

    • OptionalonRun?: (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

      -
    • OptionalonSave?: (
          question: MetabaseQuestion,
          context: { dashboardTabId?: number; isNewQuestion: boolean },
      ) => void

      A callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true

      +
    • OptionalonSave?: (
          question: undefined | MetabaseQuestion,
          context: { isNewQuestion: boolean },
      ) => void

      A callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true

    • Optionalplugins?: MetabasePluginsConfig
    • Optionalstyle?: CSSProperties

      A custom style object to be added to the root element.

    • OptionaltargetCollection?: SdkCollectionId

      The collection to save the question to. This will hide the collection picker from the save modal. Only applicable to interactive questions.

    • Optionaltitle?: 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.

      @@ -77,4 +75,4 @@
    • withCardTitle?: boolean

      Whether the dashboard cards should display a title.

      withDownloads?: boolean

      Whether to hide the download button.

      withTitle?: boolean

      Whether the dashboard should display a title.

      -

      +
      diff --git a/_docs/master/embedding/sdk/api/InteractiveDashboard.html b/_docs/master/embedding/sdk/api/InteractiveDashboard.html index 41e5061096..92561bc263 100644 --- a/_docs/master/embedding/sdk/api/InteractiveDashboard.html +++ b/_docs/master/embedding/sdk/api/InteractiveDashboard.html @@ -9,8 +9,8 @@ layout: docs-api --- -InteractiveDashboard | Embedded analytics SDK API{% include docs/embedded-analytics-sdk-metadata.html %}
      Embedded analytics SDK API
        Preparing search index...

        Function InteractiveDashboard

        dataPickerProps?: Pick<InteractiveQuestionProps, "entityTypes">

        Additional props to pass to the query builder rendered by InteractiveQuestion when creating a new dashboard question.

        drillThroughQuestionHeight?: Height<string | number>

        Height of a question component when drilled from the dashboard to a question level.

        drillThroughQuestionProps?: DrillThroughQuestionProps

        Props of a question component when drilled from the dashboard to a question level.

        Type declaration

        Props for the drill-through question

        @@ -46,7 +44,7 @@
      • OptionalisSaveEnabled?: boolean

        Whether to show the save button.

      • OptionalonBeforeSave?: (
            question: undefined | MetabaseQuestion,
            context: { isNewQuestion: boolean },
        ) => Promise<void>

        A callback function that triggers before saving. Only relevant when isSaveEnabled = true

      • OptionalonRun?: (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

        -
      • OptionalonSave?: (
            question: MetabaseQuestion,
            context: { dashboardTabId?: number; isNewQuestion: boolean },
        ) => void

        A callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true

        +
      • OptionalonSave?: (
            question: undefined | MetabaseQuestion,
            context: { isNewQuestion: boolean },
        ) => void

        A callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true

      • Optionalplugins?: MetabasePluginsConfig
      • Optionalstyle?: CSSProperties

        A custom style object to be added to the root element.

      • OptionaltargetCollection?: SdkCollectionId

        The collection to save the question to. This will hide the collection picker from the save modal. Only applicable to interactive questions.

      • Optionaltitle?: 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.

        @@ -77,4 +75,4 @@
      • withCardTitle?: boolean

        Whether the dashboard cards should display a title.

        withDownloads?: boolean

        Whether to hide the download button.

        withTitle?: boolean

        Whether the dashboard should display a title.

        -
        +
        diff --git a/_docs/master/embedding/sdk/api/InteractiveQuestion.html b/_docs/master/embedding/sdk/api/InteractiveQuestion.html index dc7989bff8..fc4385cf45 100644 --- a/_docs/master/embedding/sdk/api/InteractiveQuestion.html +++ b/_docs/master/embedding/sdk/api/InteractiveQuestion.html @@ -18,7 +18,7 @@
      • OptionalisSaveEnabled?: boolean

        Whether to show the save button.

      • OptionalonBeforeSave?: (
            question: undefined | MetabaseQuestion,
            context: { isNewQuestion: boolean },
        ) => Promise<void>

        A callback function that triggers before saving. Only relevant when isSaveEnabled = true

      • OptionalonRun?: (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

        -
      • OptionalonSave?: (
            question: MetabaseQuestion,
            context: { dashboardTabId?: number; isNewQuestion: boolean },
        ) => void

        A callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true

        +
      • OptionalonSave?: (
            question: undefined | MetabaseQuestion,
            context: { isNewQuestion: boolean },
        ) => void

        A callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true

      • Optionalplugins?: MetabasePluginsConfig
      • questionId: null | SdkQuestionId

        The 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 --- -InteractiveQuestionProps | Embedded analytics SDK API{% include docs/embedded-analytics-sdk-metadata.html %}

        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? +InteractiveQuestionProps | Embedded analytics SDK API{% include docs/embedded-analytics-sdk-metadata.html %}

        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

        isSaveEnabled?: boolean

        Whether to show the save button.

        onBeforeSave?: (
            question: undefined | MetabaseQuestion,
            context: { isNewQuestion: boolean },
        ) => Promise<void>

        A callback function that triggers before saving. Only relevant when isSaveEnabled = true

        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

        -
        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

        +
        onSave?: (
            question: undefined | MetabaseQuestion,
            context: { isNewQuestion: boolean },
        ) => void

        A callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true

        questionId: null | SdkQuestionId

        The 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 --- -StaticDashboard | Embedded analytics SDK API{% include docs/embedded-analytics-sdk-metadata.html %}

        Function StaticDashboard

        dataPickerProps?: Pick<InteractiveQuestionProps, "entityTypes">

        Additional props to pass to the query builder rendered by InteractiveQuestion when creating a new dashboard question.

        drillThroughQuestionHeight?: Height<string | number>

        Height of a question component when drilled from the dashboard to a question level.

        drillThroughQuestionProps?: DrillThroughQuestionProps

        Props of a question component when drilled from the dashboard to a question level.

        Type declaration

        Props for the drill-through question

        @@ -46,7 +44,7 @@
      • OptionalisSaveEnabled?: boolean

        Whether to show the save button.

      • OptionalonBeforeSave?: (
            question: undefined | MetabaseQuestion,
            context: { isNewQuestion: boolean },
        ) => Promise<void>

        A callback function that triggers before saving. Only relevant when isSaveEnabled = true

      • OptionalonRun?: (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

        -
      • OptionalonSave?: (
            question: MetabaseQuestion,
            context: { dashboardTabId?: number; isNewQuestion: boolean },
        ) => void

        A callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true

        +
      • OptionalonSave?: (
            question: undefined | MetabaseQuestion,
            context: { isNewQuestion: boolean },
        ) => void

        A callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true

      • Optionalplugins?: MetabasePluginsConfig
      • Optionalstyle?: CSSProperties

        A custom style object to be added to the root element.

      • OptionaltargetCollection?: SdkCollectionId

        The collection to save the question to. This will hide the collection picker from the save modal. Only applicable to interactive questions.

      • Optionaltitle?: 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.

        @@ -77,4 +75,4 @@
        withCardTitle?: boolean

        Whether the dashboard cards should display a title.

        withDownloads?: boolean

        Whether to hide the download button.

        withTitle?: boolean

        Whether the dashboard should display a title.

        -
        +
        diff --git a/_docs/master/embedding/sdk/api/StaticQuestion.html b/_docs/master/embedding/sdk/api/StaticQuestion.html index 51f2d9ff73..e535dad836 100644 --- a/_docs/master/embedding/sdk/api/StaticQuestion.html +++ b/_docs/master/embedding/sdk/api/StaticQuestion.html @@ -26,5 +26,4 @@
      • Optionalstyle?: CSSProperties

        A custom style object to be added to the root element.

      • Optionalwidth?: Width<string | number>

        A number or string specifying a CSS size value that specifies the width of the component

        -
      • OptionalwithChartTypeSelector?: boolean
      • OptionalwithDownloads?: boolean

        Enables the ability to download results in the interactive question.

        -
      • Returns ReactNode

        +
      • OptionalwithChartTypeSelector?: boolean
      • Returns ReactNode

        diff --git a/_docs/master/embedding/sdk/api/StaticQuestionProps.html b/_docs/master/embedding/sdk/api/StaticQuestionProps.html index 0ddc7ab72b..0cf406ab49 100644 --- a/_docs/master/embedding/sdk/api/StaticQuestionProps.html +++ b/_docs/master/embedding/sdk/api/StaticQuestionProps.html @@ -9,14 +9,13 @@ layout: docs-api --- -StaticQuestionProps | Embedded analytics SDK API{% include docs/embedded-analytics-sdk-metadata.html %}
        Embedded analytics SDK API
          Preparing search index...

          Interface StaticQuestionProps

          interface StaticQuestionProps {
              className?: string;
              height?: Height<string | number>;
              initialSqlParameters?: SqlParameterValues;
              questionId: null | SdkQuestionId;
              style?: CSSProperties;
              width?: Width<string | number>;
              withChartTypeSelector?: boolean;
              withDownloads?: boolean;
          }
          Index

          Properties

          className? +StaticQuestionProps | Embedded analytics SDK API{% include docs/embedded-analytics-sdk-metadata.html %}

          Interface StaticQuestionProps

          interface StaticQuestionProps {
              className?: string;
              height?: Height<string | number>;
              initialSqlParameters?: SqlParameterValues;
              questionId: null | SdkQuestionId;
              style?: CSSProperties;
              width?: Width<string | number>;
              withChartTypeSelector?: boolean;
          }
          Index

          Properties

          className?: string

          A custom class name to be added to the root element.

          height?: Height<string | number>

          A number or string specifying a CSS size value that specifies the height of the component

          initialSqlParameters?: SqlParameterValues

          Initial values for the SQL parameters.

          @@ -33,5 +32,4 @@

          A custom style object to be added to the root element.

          width?: Width<string | number>

          A number or string specifying a CSS size value that specifies the width of the component

          -
          withChartTypeSelector?: boolean
          withDownloads?: boolean

          Enables the ability to download results in the interactive question.

          -

          +
          withChartTypeSelector?: boolean
          diff --git a/_docs/master/embedding/sdk/api/assets/search.js b/_docs/master/embedding/sdk/api/assets/search.js index a91212dd5e..5649aeca11 100644 --- a/_docs/master/embedding/sdk/api/assets/search.js +++ b/_docs/master/embedding/sdk/api/assets/search.js @@ -1 +1 @@ -window.searchData = "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"; \ No newline at end of file +window.searchData = "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"; \ No newline at end of file diff --git a/_docs/master/embedding/sdk/api/snippets/BaseInteractiveQuestionProps.md b/_docs/master/embedding/sdk/api/snippets/BaseInteractiveQuestionProps.md index c3205ce9c4..d03dbf391e 100644 --- a/_docs/master/embedding/sdk/api/snippets/BaseInteractiveQuestionProps.md +++ b/_docs/master/embedding/sdk/api/snippets/BaseInteractiveQuestionProps.md @@ -23,7 +23,7 @@ layout: new-docs | `isSaveEnabled?` | `boolean` | Whether to show the save button. | | `onBeforeSave?` | (`question`: `undefined` \| [`MetabaseQuestion`](./api/MetabaseQuestion), `context`: \{ `isNewQuestion`: `boolean`; \}) => [`Promise`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\<`void`\> | A callback function that triggers before saving. Only relevant when `isSaveEnabled = true` | | `onRun?` | (`question`: `undefined` \| [`MetabaseQuestion`](./api/MetabaseQuestion)) => `void` | A callback function that triggers when a question is updated, including when a user clicks the `Visualize` button in the question editor | -| `onSave?` | (`question`: [`MetabaseQuestion`](./api/MetabaseQuestion), `context`: \{ `dashboardTabId?`: `number`; `isNewQuestion`: `boolean`; \}) => `void` | A callback function that triggers when a user saves the question. Only relevant when `isSaveEnabled = true` | +| `onSave?` | (`question`: `undefined` \| [`MetabaseQuestion`](./api/MetabaseQuestion), `context`: \{ `isNewQuestion`: `boolean`; \}) => `void` | A callback function that triggers when a user saves the question. Only relevant when `isSaveEnabled = true` | | `plugins?` | [`MetabasePluginsConfig`](./api/MetabasePluginsConfig) | - | | `questionId` | `null` \| [`SdkQuestionId`](./api/SdkQuestionId) | The ID of the question.
          This is either:
          - The numerical ID when accessing a question link, e.g., `http://localhost:3000/question/1-my-question` where the ID is `1`
          - The `entity_id` key of the question object. You can find a question's Entity ID in the info panel when viewing a question
          - `new` to show the notebook editor for creating new questions. `isSaveEnabled` must be `true` to allow saving the question | | `targetCollection?` | [`SdkCollectionId`](./api/SdkCollectionId) | The collection to save the question to. This will hide the collection picker from the save modal. Only applicable to interactive questions. | diff --git a/_docs/master/embedding/sdk/api/snippets/CreateQuestionProps.md b/_docs/master/embedding/sdk/api/snippets/CreateQuestionProps.md index a5ea63f17b..8f7635b747 100644 --- a/_docs/master/embedding/sdk/api/snippets/CreateQuestionProps.md +++ b/_docs/master/embedding/sdk/api/snippets/CreateQuestionProps.md @@ -22,7 +22,7 @@ layout: new-docs | `isSaveEnabled?` | `boolean` | Whether to show the save button. | | `onBeforeSave?` | (`question`: `undefined` \| [`MetabaseQuestion`](./api/MetabaseQuestion), `context`: \{ `isNewQuestion`: `boolean`; \}) => [`Promise`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\<`void`\> | A callback function that triggers before saving. Only relevant when `isSaveEnabled = true` | | `onRun?` | (`question`: `undefined` \| [`MetabaseQuestion`](./api/MetabaseQuestion)) => `void` | A callback function that triggers when a question is updated, including when a user clicks the `Visualize` button in the question editor | -| `onSave?` | (`question`: [`MetabaseQuestion`](./api/MetabaseQuestion), `context`: \{ `dashboardTabId?`: `number`; `isNewQuestion`: `boolean`; \}) => `void` | A callback function that triggers when a user saves the question. Only relevant when `isSaveEnabled = true` | +| `onSave?` | (`question`: `undefined` \| [`MetabaseQuestion`](./api/MetabaseQuestion), `context`: \{ `isNewQuestion`: `boolean`; \}) => `void` | A callback function that triggers when a user saves the question. Only relevant when `isSaveEnabled = true` | | `plugins?` | [`MetabasePluginsConfig`](./api/MetabasePluginsConfig) | - | | `targetCollection?` | [`SdkCollectionId`](./api/SdkCollectionId) | The collection to save the question to. This will hide the collection picker from the save modal. Only applicable to interactive questions. | | `withDownloads?` | `boolean` | Enables the ability to download results in the interactive question. | diff --git a/_docs/master/embedding/sdk/api/snippets/DrillThroughQuestionProps.md b/_docs/master/embedding/sdk/api/snippets/DrillThroughQuestionProps.md index 722e953a73..477f88f90c 100644 --- a/_docs/master/embedding/sdk/api/snippets/DrillThroughQuestionProps.md +++ b/_docs/master/embedding/sdk/api/snippets/DrillThroughQuestionProps.md @@ -27,7 +27,7 @@ Props for the drill-through question | `isSaveEnabled?` | `boolean` | Whether to show the save button. | | `onBeforeSave?` | (`question`: `undefined` \| [`MetabaseQuestion`](./api/MetabaseQuestion), `context`: \{ `isNewQuestion`: `boolean`; \}) => [`Promise`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\<`void`\> | A callback function that triggers before saving. Only relevant when `isSaveEnabled = true` | | `onRun?` | (`question`: `undefined` \| [`MetabaseQuestion`](./api/MetabaseQuestion)) => `void` | A callback function that triggers when a question is updated, including when a user clicks the `Visualize` button in the question editor | -| `onSave?` | (`question`: [`MetabaseQuestion`](./api/MetabaseQuestion), `context`: \{ `dashboardTabId?`: `number`; `isNewQuestion`: `boolean`; \}) => `void` | A callback function that triggers when a user saves the question. Only relevant when `isSaveEnabled = true` | +| `onSave?` | (`question`: `undefined` \| [`MetabaseQuestion`](./api/MetabaseQuestion), `context`: \{ `isNewQuestion`: `boolean`; \}) => `void` | A callback function that triggers when a user saves the question. Only relevant when `isSaveEnabled = true` | | `plugins?` | [`MetabasePluginsConfig`](./api/MetabasePluginsConfig) | - | | `style?` | [`CSSProperties`](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/0b728411cd1dfb4bd26992bb35a73cf8edaa22e7/types/react/index.d.ts#L2579) | A custom style object to be added to the root element. | | `targetCollection?` | [`SdkCollectionId`](./api/SdkCollectionId) | The collection to save the question to. This will hide the collection picker from the save modal. Only applicable to interactive questions. | diff --git a/_docs/master/embedding/sdk/api/snippets/EditableDashboard.md b/_docs/master/embedding/sdk/api/snippets/EditableDashboard.md index ac04f5dd59..fc427dcb2a 100644 --- a/_docs/master/embedding/sdk/api/snippets/EditableDashboard.md +++ b/_docs/master/embedding/sdk/api/snippets/EditableDashboard.md @@ -10,7 +10,27 @@ layout: new-docs --- ```ts -function EditableDashboard(props: EditableDashboardProps): Element; +function EditableDashboard( + props: { + drillThroughQuestionHeight?: Height; + 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; + } & {}, +): Element; ``` 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. @@ -19,9 +39,9 @@ A dashboard component with the features available in the `InteractiveDashboard` -| Parameter | Type | Description | -| :-------- | :---------------------------------------------------------- | :---------- | -| `props` | [`EditableDashboardProps`](./api/EditableDashboardProps) | | +| Parameter | Type | Description | +| :-------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------- | +| `props` | \{ `drillThroughQuestionHeight?`: `Height`\<`string` \| `number`\>; `drillThroughQuestionProps?`: [`DrillThroughQuestionProps`](./api/DrillThroughQuestionProps); `plugins?`: [`MetabasePluginsConfig`](./api/MetabasePluginsConfig); `renderDrillThroughQuestion?`: () => [`ReactNode`](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/0b728411cd1dfb4bd26992bb35a73cf8edaa22e7/types/react/index.d.ts#L478); \} & \{ `dashboardId`: [`SdkDashboardId`](./api/SdkDashboardId); `hiddenParameters?`: `string`[]; `initialParameters?`: [`ParameterValues`](./api/ParameterValues); `withCardTitle?`: `boolean`; `withDownloads?`: `boolean`; `withTitle?`: `boolean`; \} & \{ `className?`: `string`; `style?`: [`CSSProperties`](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/0b728411cd1dfb4bd26992bb35a73cf8edaa22e7/types/react/index.d.ts#L2579); \} & \{ `onLoad?`: (`dashboard`: `null` \| [`MetabaseDashboard`](./api/MetabaseDashboard)) => `void`; `onLoadWithoutCards?`: (`dashboard`: `null` \| [`MetabaseDashboard`](./api/MetabaseDashboard)) => `void`; \} & \{ \} | | diff --git a/_docs/master/embedding/sdk/api/snippets/EditableDashboardProps.md b/_docs/master/embedding/sdk/api/snippets/EditableDashboardProps.md index 69186d18d2..70fad729f1 100644 --- a/_docs/master/embedding/sdk/api/snippets/EditableDashboardProps.md +++ b/_docs/master/embedding/sdk/api/snippets/EditableDashboardProps.md @@ -15,22 +15,21 @@ layout: new-docs -| Property | Type | Description | -| :-------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `className?` | `string` | A custom class name to be added to the root element. | -| `dashboardId` | [`SdkDashboardId`](./api/SdkDashboardId) | The ID of the dashboard.
          This is either:
          - the numerical ID when accessing a dashboard link, i.e. `http://localhost:3000/dashboard/1-my-dashboard` where the ID is `1`
          - 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 | -| `dataPickerProps?` | [`Pick`](https://www.typescriptlang.org/docs/handbook/utility-types.html#picktype-keys)\<[`InteractiveQuestionProps`](./api/InteractiveQuestionProps), `"entityTypes"`\> | Additional props to pass to the query builder rendered by `InteractiveQuestion` when creating a new dashboard question. | -| `drillThroughQuestionHeight?` | `Height`\<`string` \| `number`\> | Height of a question component when drilled from the dashboard to a question level. | -| `drillThroughQuestionProps?` | [`DrillThroughQuestionProps`](./api/DrillThroughQuestionProps) | Props of a question component when drilled from the dashboard to a question level. | -| `hiddenParameters?` | `string`[] | A list of [parameters to hide](/docs/master/embedding/public-links#appearance-parameters).
          - Combining [initialParameters](./api/StaticDashboardProps#initialparameters) and [hiddenParameters](./api/StaticDashboardProps#hiddenparameters) to filter data on the frontend is a [security risk](/docs/master/embedding/sdk/authentication#security-warning-each-end-user-must-have-their-own-metabase-account).
          - Combining [initialParameters](./api/StaticDashboardProps#initialparameters) and [hiddenParameters](./api/StaticDashboardProps#hiddenparameters) to declutter the user interface is fine. | -| `initialParameters?` | [`ParameterValues`](./api/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](./api/StaticDashboardProps#initialparameters) and [hiddenParameters](./api/StaticDashboardProps#hiddenparameters) to filter data on the frontend is a [security risk](/docs/master/embedding/sdk/authentication#security-warning-each-end-user-must-have-their-own-metabase-account).
          - Combining [initialParameters](./api/StaticDashboardProps#initialparameters) and [hiddenParameters](./api/StaticDashboardProps#hiddenparameters) to declutter the user interface is fine. | -| `onLoad?` | (`dashboard`: `null` \| [`MetabaseDashboard`](./api/MetabaseDashboard)) => `void` | Callback that is called when the dashboard is loaded. | -| `onLoadWithoutCards?` | (`dashboard`: `null` \| [`MetabaseDashboard`](./api/MetabaseDashboard)) => `void` | Callback that is called when the dashboard is loaded without cards. | -| `plugins?` | [`MetabasePluginsConfig`](./api/MetabasePluginsConfig) | Additional mapper function to override or add drill-down menu. See the implementing custom actions section for more details. | -| `renderDrillThroughQuestion?` | () => [`ReactNode`](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/0b728411cd1dfb4bd26992bb35a73cf8edaa22e7/types/react/index.d.ts#L478) | A custom React component to render the question layout. Use namespaced InteractiveQuestion components to build the layout. | -| `style?` | [`CSSProperties`](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/0b728411cd1dfb4bd26992bb35a73cf8edaa22e7/types/react/index.d.ts#L2579) | A custom style object to be added to the root element. | -| `withCardTitle?` | `boolean` | Whether the dashboard cards should display a title. | -| `withDownloads?` | `boolean` | Whether to hide the download button. | -| `withTitle?` | `boolean` | Whether the dashboard should display a title. | +| Property | Type | Description | +| :-------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `className?` | `string` | A custom class name to be added to the root element. | +| `dashboardId` | [`SdkDashboardId`](./api/SdkDashboardId) | The ID of the dashboard.
          This is either:
          - the numerical ID when accessing a dashboard link, i.e. `http://localhost:3000/dashboard/1-my-dashboard` where the ID is `1`
          - 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 | +| `drillThroughQuestionHeight?` | `Height`\<`string` \| `number`\> | Height of a question component when drilled from the dashboard to a question level. | +| `drillThroughQuestionProps?` | [`DrillThroughQuestionProps`](./api/DrillThroughQuestionProps) | Props of a question component when drilled from the dashboard to a question level. | +| `hiddenParameters?` | `string`[] | A list of [parameters to hide](/docs/master/embedding/public-links#appearance-parameters).
          - Combining [initialParameters](./api/StaticDashboardProps#initialparameters) and [hiddenParameters](./api/StaticDashboardProps#hiddenparameters) to filter data on the frontend is a [security risk](/docs/master/embedding/sdk/authentication#security-warning-each-end-user-must-have-their-own-metabase-account).
          - Combining [initialParameters](./api/StaticDashboardProps#initialparameters) and [hiddenParameters](./api/StaticDashboardProps#hiddenparameters) to declutter the user interface is fine. | +| `initialParameters?` | [`ParameterValues`](./api/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](./api/StaticDashboardProps#initialparameters) and [hiddenParameters](./api/StaticDashboardProps#hiddenparameters) to filter data on the frontend is a [security risk](/docs/master/embedding/sdk/authentication#security-warning-each-end-user-must-have-their-own-metabase-account).
          - Combining [initialParameters](./api/StaticDashboardProps#initialparameters) and [hiddenParameters](./api/StaticDashboardProps#hiddenparameters) to declutter the user interface is fine. | +| `onLoad?` | (`dashboard`: `null` \| [`MetabaseDashboard`](./api/MetabaseDashboard)) => `void` | Callback that is called when the dashboard is loaded. | +| `onLoadWithoutCards?` | (`dashboard`: `null` \| [`MetabaseDashboard`](./api/MetabaseDashboard)) => `void` | Callback that is called when the dashboard is loaded without cards. | +| `plugins?` | [`MetabasePluginsConfig`](./api/MetabasePluginsConfig) | Additional mapper function to override or add drill-down menu. See the implementing custom actions section for more details. | +| `renderDrillThroughQuestion?` | () => [`ReactNode`](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/0b728411cd1dfb4bd26992bb35a73cf8edaa22e7/types/react/index.d.ts#L478) | A custom React component to render the question layout. Use namespaced InteractiveQuestion components to build the layout. | +| `style?` | [`CSSProperties`](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/0b728411cd1dfb4bd26992bb35a73cf8edaa22e7/types/react/index.d.ts#L2579) | A custom style object to be added to the root element. | +| `withCardTitle?` | `boolean` | Whether the dashboard cards should display a title. | +| `withDownloads?` | `boolean` | Whether to hide the download button. | +| `withTitle?` | `boolean` | Whether the dashboard should display a title. | diff --git a/_docs/master/embedding/sdk/api/snippets/InteractiveDashboard.md b/_docs/master/embedding/sdk/api/snippets/InteractiveDashboard.md index 3f026cc008..80ee8b4c82 100644 --- a/_docs/master/embedding/sdk/api/snippets/InteractiveDashboard.md +++ b/_docs/master/embedding/sdk/api/snippets/InteractiveDashboard.md @@ -29,8 +29,6 @@ function InteractiveDashboard( } & { onLoad?: (dashboard: null | MetabaseDashboard) => void; onLoadWithoutCards?: (dashboard: null | MetabaseDashboard) => void; - } & { - dataPickerProps?: Pick; } & {}, ): Element; ``` @@ -41,9 +39,9 @@ A dashboard component with drill downs, click behaviors, and the ability to view -| Parameter | Type | Description | -| :-------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------- | -| `props` | \{ `drillThroughQuestionHeight?`: `Height`\<`string` \| `number`\>; `drillThroughQuestionProps?`: [`DrillThroughQuestionProps`](./api/DrillThroughQuestionProps); `plugins?`: [`MetabasePluginsConfig`](./api/MetabasePluginsConfig); `renderDrillThroughQuestion?`: () => [`ReactNode`](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/0b728411cd1dfb4bd26992bb35a73cf8edaa22e7/types/react/index.d.ts#L478); \} & \{ `dashboardId`: [`SdkDashboardId`](./api/SdkDashboardId); `hiddenParameters?`: `string`[]; `initialParameters?`: [`ParameterValues`](./api/ParameterValues); `withCardTitle?`: `boolean`; `withDownloads?`: `boolean`; `withTitle?`: `boolean`; \} & \{ `className?`: `string`; `style?`: [`CSSProperties`](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/0b728411cd1dfb4bd26992bb35a73cf8edaa22e7/types/react/index.d.ts#L2579); \} & \{ `onLoad?`: (`dashboard`: `null` \| [`MetabaseDashboard`](./api/MetabaseDashboard)) => `void`; `onLoadWithoutCards?`: (`dashboard`: `null` \| [`MetabaseDashboard`](./api/MetabaseDashboard)) => `void`; \} & \{ `dataPickerProps?`: [`Pick`](https://www.typescriptlang.org/docs/handbook/utility-types.html#picktype-keys)\<[`InteractiveQuestionProps`](./api/InteractiveQuestionProps), `"entityTypes"`\>; \} & \{ \} | | +| Parameter | Type | Description | +| :-------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------- | +| `props` | \{ `drillThroughQuestionHeight?`: `Height`\<`string` \| `number`\>; `drillThroughQuestionProps?`: [`DrillThroughQuestionProps`](./api/DrillThroughQuestionProps); `plugins?`: [`MetabasePluginsConfig`](./api/MetabasePluginsConfig); `renderDrillThroughQuestion?`: () => [`ReactNode`](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/0b728411cd1dfb4bd26992bb35a73cf8edaa22e7/types/react/index.d.ts#L478); \} & \{ `dashboardId`: [`SdkDashboardId`](./api/SdkDashboardId); `hiddenParameters?`: `string`[]; `initialParameters?`: [`ParameterValues`](./api/ParameterValues); `withCardTitle?`: `boolean`; `withDownloads?`: `boolean`; `withTitle?`: `boolean`; \} & \{ `className?`: `string`; `style?`: [`CSSProperties`](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/0b728411cd1dfb4bd26992bb35a73cf8edaa22e7/types/react/index.d.ts#L2579); \} & \{ `onLoad?`: (`dashboard`: `null` \| [`MetabaseDashboard`](./api/MetabaseDashboard)) => `void`; `onLoadWithoutCards?`: (`dashboard`: `null` \| [`MetabaseDashboard`](./api/MetabaseDashboard)) => `void`; \} & \{ \} | | diff --git a/_docs/master/embedding/sdk/api/snippets/InteractiveDashboardProps.md b/_docs/master/embedding/sdk/api/snippets/InteractiveDashboardProps.md index f479613fcb..5b34cbca34 100644 --- a/_docs/master/embedding/sdk/api/snippets/InteractiveDashboardProps.md +++ b/_docs/master/embedding/sdk/api/snippets/InteractiveDashboardProps.md @@ -15,22 +15,21 @@ layout: new-docs -| Property | Type | Description | -| :-------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `className?` | `string` | A custom class name to be added to the root element. | -| `dashboardId` | [`SdkDashboardId`](./api/SdkDashboardId) | The ID of the dashboard.
          This is either:
          - the numerical ID when accessing a dashboard link, i.e. `http://localhost:3000/dashboard/1-my-dashboard` where the ID is `1`
          - 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 | -| `dataPickerProps?` | [`Pick`](https://www.typescriptlang.org/docs/handbook/utility-types.html#picktype-keys)\<[`InteractiveQuestionProps`](./api/InteractiveQuestionProps), `"entityTypes"`\> | Additional props to pass to the query builder rendered by `InteractiveQuestion` when creating a new dashboard question. | -| `drillThroughQuestionHeight?` | `Height`\<`string` \| `number`\> | Height of a question component when drilled from the dashboard to a question level. | -| `drillThroughQuestionProps?` | [`DrillThroughQuestionProps`](./api/DrillThroughQuestionProps) | Props of a question component when drilled from the dashboard to a question level. | -| `hiddenParameters?` | `string`[] | A list of [parameters to hide](/docs/master/embedding/public-links#appearance-parameters).
          - Combining [initialParameters](./api/StaticDashboardProps#initialparameters) and [hiddenParameters](./api/StaticDashboardProps#hiddenparameters) to filter data on the frontend is a [security risk](/docs/master/embedding/sdk/authentication#security-warning-each-end-user-must-have-their-own-metabase-account).
          - Combining [initialParameters](./api/StaticDashboardProps#initialparameters) and [hiddenParameters](./api/StaticDashboardProps#hiddenparameters) to declutter the user interface is fine. | -| `initialParameters?` | [`ParameterValues`](./api/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](./api/StaticDashboardProps#initialparameters) and [hiddenParameters](./api/StaticDashboardProps#hiddenparameters) to filter data on the frontend is a [security risk](/docs/master/embedding/sdk/authentication#security-warning-each-end-user-must-have-their-own-metabase-account).
          - Combining [initialParameters](./api/StaticDashboardProps#initialparameters) and [hiddenParameters](./api/StaticDashboardProps#hiddenparameters) to declutter the user interface is fine. | -| `onLoad?` | (`dashboard`: `null` \| [`MetabaseDashboard`](./api/MetabaseDashboard)) => `void` | Callback that is called when the dashboard is loaded. | -| `onLoadWithoutCards?` | (`dashboard`: `null` \| [`MetabaseDashboard`](./api/MetabaseDashboard)) => `void` | Callback that is called when the dashboard is loaded without cards. | -| `plugins?` | [`MetabasePluginsConfig`](./api/MetabasePluginsConfig) | Additional mapper function to override or add drill-down menu. See the implementing custom actions section for more details. | -| `renderDrillThroughQuestion?` | () => [`ReactNode`](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/0b728411cd1dfb4bd26992bb35a73cf8edaa22e7/types/react/index.d.ts#L478) | A custom React component to render the question layout. Use namespaced InteractiveQuestion components to build the layout. | -| `style?` | [`CSSProperties`](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/0b728411cd1dfb4bd26992bb35a73cf8edaa22e7/types/react/index.d.ts#L2579) | A custom style object to be added to the root element. | -| `withCardTitle?` | `boolean` | Whether the dashboard cards should display a title. | -| `withDownloads?` | `boolean` | Whether to hide the download button. | -| `withTitle?` | `boolean` | Whether the dashboard should display a title. | +| Property | Type | Description | +| :-------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `className?` | `string` | A custom class name to be added to the root element. | +| `dashboardId` | [`SdkDashboardId`](./api/SdkDashboardId) | The ID of the dashboard.
          This is either:
          - the numerical ID when accessing a dashboard link, i.e. `http://localhost:3000/dashboard/1-my-dashboard` where the ID is `1`
          - 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 | +| `drillThroughQuestionHeight?` | `Height`\<`string` \| `number`\> | Height of a question component when drilled from the dashboard to a question level. | +| `drillThroughQuestionProps?` | [`DrillThroughQuestionProps`](./api/DrillThroughQuestionProps) | Props of a question component when drilled from the dashboard to a question level. | +| `hiddenParameters?` | `string`[] | A list of [parameters to hide](/docs/master/embedding/public-links#appearance-parameters).
          - Combining [initialParameters](./api/StaticDashboardProps#initialparameters) and [hiddenParameters](./api/StaticDashboardProps#hiddenparameters) to filter data on the frontend is a [security risk](/docs/master/embedding/sdk/authentication#security-warning-each-end-user-must-have-their-own-metabase-account).
          - Combining [initialParameters](./api/StaticDashboardProps#initialparameters) and [hiddenParameters](./api/StaticDashboardProps#hiddenparameters) to declutter the user interface is fine. | +| `initialParameters?` | [`ParameterValues`](./api/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](./api/StaticDashboardProps#initialparameters) and [hiddenParameters](./api/StaticDashboardProps#hiddenparameters) to filter data on the frontend is a [security risk](/docs/master/embedding/sdk/authentication#security-warning-each-end-user-must-have-their-own-metabase-account).
          - Combining [initialParameters](./api/StaticDashboardProps#initialparameters) and [hiddenParameters](./api/StaticDashboardProps#hiddenparameters) to declutter the user interface is fine. | +| `onLoad?` | (`dashboard`: `null` \| [`MetabaseDashboard`](./api/MetabaseDashboard)) => `void` | Callback that is called when the dashboard is loaded. | +| `onLoadWithoutCards?` | (`dashboard`: `null` \| [`MetabaseDashboard`](./api/MetabaseDashboard)) => `void` | Callback that is called when the dashboard is loaded without cards. | +| `plugins?` | [`MetabasePluginsConfig`](./api/MetabasePluginsConfig) | Additional mapper function to override or add drill-down menu. See the implementing custom actions section for more details. | +| `renderDrillThroughQuestion?` | () => [`ReactNode`](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/0b728411cd1dfb4bd26992bb35a73cf8edaa22e7/types/react/index.d.ts#L478) | A custom React component to render the question layout. Use namespaced InteractiveQuestion components to build the layout. | +| `style?` | [`CSSProperties`](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/0b728411cd1dfb4bd26992bb35a73cf8edaa22e7/types/react/index.d.ts#L2579) | A custom style object to be added to the root element. | +| `withCardTitle?` | `boolean` | Whether the dashboard cards should display a title. | +| `withDownloads?` | `boolean` | Whether to hide the download button. | +| `withTitle?` | `boolean` | Whether the dashboard should display a title. | diff --git a/_docs/master/embedding/sdk/api/snippets/InteractiveQuestionProps.md b/_docs/master/embedding/sdk/api/snippets/InteractiveQuestionProps.md index 58e17b122f..3c2c95efc9 100644 --- a/_docs/master/embedding/sdk/api/snippets/InteractiveQuestionProps.md +++ b/_docs/master/embedding/sdk/api/snippets/InteractiveQuestionProps.md @@ -25,7 +25,7 @@ layout: new-docs | `isSaveEnabled?` | `boolean` | Whether to show the save button. | | `onBeforeSave?` | (`question`: `undefined` \| [`MetabaseQuestion`](./api/MetabaseQuestion), `context`: \{ `isNewQuestion`: `boolean`; \}) => [`Promise`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\<`void`\> | A callback function that triggers before saving. Only relevant when `isSaveEnabled = true` | | `onRun?` | (`question`: `undefined` \| [`MetabaseQuestion`](./api/MetabaseQuestion)) => `void` | A callback function that triggers when a question is updated, including when a user clicks the `Visualize` button in the question editor | -| `onSave?` | (`question`: [`MetabaseQuestion`](./api/MetabaseQuestion), `context`: \{ `dashboardTabId?`: `number`; `isNewQuestion`: `boolean`; \}) => `void` | A callback function that triggers when a user saves the question. Only relevant when `isSaveEnabled = true` | +| `onSave?` | (`question`: `undefined` \| [`MetabaseQuestion`](./api/MetabaseQuestion), `context`: \{ `isNewQuestion`: `boolean`; \}) => `void` | A callback function that triggers when a user saves the question. Only relevant when `isSaveEnabled = true` | | `plugins?` | [`MetabasePluginsConfig`](./api/MetabasePluginsConfig) | - | | `questionId` | `null` \| [`SdkQuestionId`](./api/SdkQuestionId) | The ID of the question.
          This is either:
          - The numerical ID when accessing a question link, e.g., `http://localhost:3000/question/1-my-question` where the ID is `1`
          - The `entity_id` key of the question object. You can find a question's Entity ID in the info panel when viewing a question
          - `new` to show the notebook editor for creating new questions. `isSaveEnabled` must be `true` to allow saving the question | | `style?` | [`CSSProperties`](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/0b728411cd1dfb4bd26992bb35a73cf8edaa22e7/types/react/index.d.ts#L2579) | A custom style object to be added to the root element. | diff --git a/_docs/master/embedding/sdk/api/snippets/StaticDashboard.md b/_docs/master/embedding/sdk/api/snippets/StaticDashboard.md index 3136fb39f0..69822c2f65 100644 --- a/_docs/master/embedding/sdk/api/snippets/StaticDashboard.md +++ b/_docs/master/embedding/sdk/api/snippets/StaticDashboard.md @@ -29,8 +29,6 @@ function StaticDashboard( } & { onLoad?: (dashboard: null | MetabaseDashboard) => void; onLoadWithoutCards?: (dashboard: null | MetabaseDashboard) => void; - } & { - dataPickerProps?: Pick; } & {}, ): Element; ``` @@ -41,9 +39,9 @@ A lightweight dashboard component. -| Parameter | Type | Description | -| :-------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------- | -| `props` | \{ `drillThroughQuestionHeight?`: `Height`\<`string` \| `number`\>; `drillThroughQuestionProps?`: [`DrillThroughQuestionProps`](./api/DrillThroughQuestionProps); `plugins?`: [`MetabasePluginsConfig`](./api/MetabasePluginsConfig); `renderDrillThroughQuestion?`: () => [`ReactNode`](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/0b728411cd1dfb4bd26992bb35a73cf8edaa22e7/types/react/index.d.ts#L478); \} & \{ `dashboardId`: [`SdkDashboardId`](./api/SdkDashboardId); `hiddenParameters?`: `string`[]; `initialParameters?`: [`ParameterValues`](./api/ParameterValues); `withCardTitle?`: `boolean`; `withDownloads?`: `boolean`; `withTitle?`: `boolean`; \} & \{ `className?`: `string`; `style?`: [`CSSProperties`](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/0b728411cd1dfb4bd26992bb35a73cf8edaa22e7/types/react/index.d.ts#L2579); \} & \{ `onLoad?`: (`dashboard`: `null` \| [`MetabaseDashboard`](./api/MetabaseDashboard)) => `void`; `onLoadWithoutCards?`: (`dashboard`: `null` \| [`MetabaseDashboard`](./api/MetabaseDashboard)) => `void`; \} & \{ `dataPickerProps?`: [`Pick`](https://www.typescriptlang.org/docs/handbook/utility-types.html#picktype-keys)\<[`InteractiveQuestionProps`](./api/InteractiveQuestionProps), `"entityTypes"`\>; \} & \{ \} | | +| Parameter | Type | Description | +| :-------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------- | +| `props` | \{ `drillThroughQuestionHeight?`: `Height`\<`string` \| `number`\>; `drillThroughQuestionProps?`: [`DrillThroughQuestionProps`](./api/DrillThroughQuestionProps); `plugins?`: [`MetabasePluginsConfig`](./api/MetabasePluginsConfig); `renderDrillThroughQuestion?`: () => [`ReactNode`](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/0b728411cd1dfb4bd26992bb35a73cf8edaa22e7/types/react/index.d.ts#L478); \} & \{ `dashboardId`: [`SdkDashboardId`](./api/SdkDashboardId); `hiddenParameters?`: `string`[]; `initialParameters?`: [`ParameterValues`](./api/ParameterValues); `withCardTitle?`: `boolean`; `withDownloads?`: `boolean`; `withTitle?`: `boolean`; \} & \{ `className?`: `string`; `style?`: [`CSSProperties`](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/0b728411cd1dfb4bd26992bb35a73cf8edaa22e7/types/react/index.d.ts#L2579); \} & \{ `onLoad?`: (`dashboard`: `null` \| [`MetabaseDashboard`](./api/MetabaseDashboard)) => `void`; `onLoadWithoutCards?`: (`dashboard`: `null` \| [`MetabaseDashboard`](./api/MetabaseDashboard)) => `void`; \} & \{ \} | | diff --git a/_docs/master/embedding/sdk/api/snippets/StaticDashboardProps.md b/_docs/master/embedding/sdk/api/snippets/StaticDashboardProps.md index 048fcb36ab..973d587f57 100644 --- a/_docs/master/embedding/sdk/api/snippets/StaticDashboardProps.md +++ b/_docs/master/embedding/sdk/api/snippets/StaticDashboardProps.md @@ -15,22 +15,21 @@ layout: new-docs -| Property | Type | Description | -| :-------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `className?` | `string` | A custom class name to be added to the root element. | -| `dashboardId` | [`SdkDashboardId`](./api/SdkDashboardId) | The ID of the dashboard.
          This is either:
          - the numerical ID when accessing a dashboard link, i.e. `http://localhost:3000/dashboard/1-my-dashboard` where the ID is `1`
          - 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 | -| `dataPickerProps?` | [`Pick`](https://www.typescriptlang.org/docs/handbook/utility-types.html#picktype-keys)\<[`InteractiveQuestionProps`](./api/InteractiveQuestionProps), `"entityTypes"`\> | Additional props to pass to the query builder rendered by `InteractiveQuestion` when creating a new dashboard question. | -| `drillThroughQuestionHeight?` | `Height`\<`string` \| `number`\> | Height of a question component when drilled from the dashboard to a question level. | -| `drillThroughQuestionProps?` | [`DrillThroughQuestionProps`](./api/DrillThroughQuestionProps) | Props of a question component when drilled from the dashboard to a question level. | -| `hiddenParameters?` | `string`[] | A list of [parameters to hide](/docs/master/embedding/public-links#appearance-parameters).
          - Combining [initialParameters](./api/StaticDashboardProps#initialparameters) and [hiddenParameters](./api/StaticDashboardProps#hiddenparameters) to filter data on the frontend is a [security risk](/docs/master/embedding/sdk/authentication#security-warning-each-end-user-must-have-their-own-metabase-account).
          - Combining [initialParameters](./api/StaticDashboardProps#initialparameters) and [hiddenParameters](./api/StaticDashboardProps#hiddenparameters) to declutter the user interface is fine. | -| `initialParameters?` | [`ParameterValues`](./api/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](./api/StaticDashboardProps#initialparameters) and [hiddenParameters](./api/StaticDashboardProps#hiddenparameters) to filter data on the frontend is a [security risk](/docs/master/embedding/sdk/authentication#security-warning-each-end-user-must-have-their-own-metabase-account).
          - Combining [initialParameters](./api/StaticDashboardProps#initialparameters) and [hiddenParameters](./api/StaticDashboardProps#hiddenparameters) to declutter the user interface is fine. | -| `onLoad?` | (`dashboard`: `null` \| [`MetabaseDashboard`](./api/MetabaseDashboard)) => `void` | Callback that is called when the dashboard is loaded. | -| `onLoadWithoutCards?` | (`dashboard`: `null` \| [`MetabaseDashboard`](./api/MetabaseDashboard)) => `void` | Callback that is called when the dashboard is loaded without cards. | -| `plugins?` | [`MetabasePluginsConfig`](./api/MetabasePluginsConfig) | Additional mapper function to override or add drill-down menu. See the implementing custom actions section for more details. | -| `renderDrillThroughQuestion?` | () => [`ReactNode`](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/0b728411cd1dfb4bd26992bb35a73cf8edaa22e7/types/react/index.d.ts#L478) | A custom React component to render the question layout. Use namespaced InteractiveQuestion components to build the layout. | -| `style?` | [`CSSProperties`](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/0b728411cd1dfb4bd26992bb35a73cf8edaa22e7/types/react/index.d.ts#L2579) | A custom style object to be added to the root element. | -| `withCardTitle?` | `boolean` | Whether the dashboard cards should display a title. | -| `withDownloads?` | `boolean` | Whether to hide the download button. | -| `withTitle?` | `boolean` | Whether the dashboard should display a title. | +| Property | Type | Description | +| :-------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `className?` | `string` | A custom class name to be added to the root element. | +| `dashboardId` | [`SdkDashboardId`](./api/SdkDashboardId) | The ID of the dashboard.
          This is either:
          - the numerical ID when accessing a dashboard link, i.e. `http://localhost:3000/dashboard/1-my-dashboard` where the ID is `1`
          - 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 | +| `drillThroughQuestionHeight?` | `Height`\<`string` \| `number`\> | Height of a question component when drilled from the dashboard to a question level. | +| `drillThroughQuestionProps?` | [`DrillThroughQuestionProps`](./api/DrillThroughQuestionProps) | Props of a question component when drilled from the dashboard to a question level. | +| `hiddenParameters?` | `string`[] | A list of [parameters to hide](/docs/master/embedding/public-links#appearance-parameters).
          - Combining [initialParameters](./api/StaticDashboardProps#initialparameters) and [hiddenParameters](./api/StaticDashboardProps#hiddenparameters) to filter data on the frontend is a [security risk](/docs/master/embedding/sdk/authentication#security-warning-each-end-user-must-have-their-own-metabase-account).
          - Combining [initialParameters](./api/StaticDashboardProps#initialparameters) and [hiddenParameters](./api/StaticDashboardProps#hiddenparameters) to declutter the user interface is fine. | +| `initialParameters?` | [`ParameterValues`](./api/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](./api/StaticDashboardProps#initialparameters) and [hiddenParameters](./api/StaticDashboardProps#hiddenparameters) to filter data on the frontend is a [security risk](/docs/master/embedding/sdk/authentication#security-warning-each-end-user-must-have-their-own-metabase-account).
          - Combining [initialParameters](./api/StaticDashboardProps#initialparameters) and [hiddenParameters](./api/StaticDashboardProps#hiddenparameters) to declutter the user interface is fine. | +| `onLoad?` | (`dashboard`: `null` \| [`MetabaseDashboard`](./api/MetabaseDashboard)) => `void` | Callback that is called when the dashboard is loaded. | +| `onLoadWithoutCards?` | (`dashboard`: `null` \| [`MetabaseDashboard`](./api/MetabaseDashboard)) => `void` | Callback that is called when the dashboard is loaded without cards. | +| `plugins?` | [`MetabasePluginsConfig`](./api/MetabasePluginsConfig) | Additional mapper function to override or add drill-down menu. See the implementing custom actions section for more details. | +| `renderDrillThroughQuestion?` | () => [`ReactNode`](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/0b728411cd1dfb4bd26992bb35a73cf8edaa22e7/types/react/index.d.ts#L478) | A custom React component to render the question layout. Use namespaced InteractiveQuestion components to build the layout. | +| `style?` | [`CSSProperties`](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/0b728411cd1dfb4bd26992bb35a73cf8edaa22e7/types/react/index.d.ts#L2579) | A custom style object to be added to the root element. | +| `withCardTitle?` | `boolean` | Whether the dashboard cards should display a title. | +| `withDownloads?` | `boolean` | Whether to hide the download button. | +| `withTitle?` | `boolean` | Whether the dashboard should display a title. | diff --git a/_docs/master/embedding/sdk/api/snippets/StaticQuestionProps.md b/_docs/master/embedding/sdk/api/snippets/StaticQuestionProps.md index b652cbc226..6ddcd0fcd0 100644 --- a/_docs/master/embedding/sdk/api/snippets/StaticQuestionProps.md +++ b/_docs/master/embedding/sdk/api/snippets/StaticQuestionProps.md @@ -24,6 +24,5 @@ layout: new-docs | `style?` | [`CSSProperties`](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/0b728411cd1dfb4bd26992bb35a73cf8edaa22e7/types/react/index.d.ts#L2579) | A custom style object to be added to the root element. | | `width?` | `Width`\<`string` \| `number`\> | A number or string specifying a CSS size value that specifies the width of the component | | `withChartTypeSelector?` | `boolean` | - | -| `withDownloads?` | `boolean` | Enables the ability to download results in the interactive question. | diff --git a/_docs/master/embedding/sdk/introduction.md b/_docs/master/embedding/sdk/introduction.md index ea4912cfde..ebc1382933 100644 --- a/_docs/master/embedding/sdk/introduction.md +++ b/_docs/master/embedding/sdk/introduction.md @@ -114,7 +114,7 @@ View the SDK's changelog: ## Embedded analytics SDK on NPM -Check out the Metabase Embedded analytics SDK on NPM: [metaba.se/sdk-npm](https://metaba.se/sdk-npm). +Check out the Metabase Embedded analytics SDK on NPM: [metaba.se/sdk](https://metaba.se/sdk). ## SDK limitations @@ -125,11 +125,7 @@ The SDK doesn't support: - Subscriptions - Alerts - Server-side rendering (SSR) - -Other limitations: - - Multiple _interactive_ dashboards on the same application page. If you need to embed multiple dashboards on the same application page, you can embed static dashboards. -- If you have Leaflet 1.x as a dependency in your app, you may run into compatibility issues. You can try using Leaflet 2.x instead. ## Issues, feature requests and support diff --git a/_docs/master/embedding/sdk/upgrade.md b/_docs/master/embedding/sdk/upgrade.md new file mode 100644 index 0000000000..d906724b61 --- /dev/null +++ b/_docs/master/embedding/sdk/upgrade.md @@ -0,0 +1,83 @@ +--- +version: master +has_magic_breadcrumbs: true +show_category_breadcrumb: true +show_title_breadcrumb: true +category: Embedding +title: 'Upgrading Metabase and the Embedded analytics SDK' +source_url: 'https://github.com/metabase/metabase/blob/master/docs/embedding/sdk/upgrade.md' +layout: new-docs +summary: 'How to upgrade your Metabase and Embedded analytics SDK versions, test the changes, and check for breaking changes that might affect your app.' +--- + +# Upgrading Metabase and the Embedded analytics SDK + +Here's a basic overview of the steps you'll want to take when upgrading your SDK. + +## 1. Read the release post and changelog for both Metabase and the Embedded analytics SDK + +- [Release posts](/releases) give a good overview of what's in each release, and call out breaking changes (which are rare). +- [Metabase changelogs](/changelog) list Metabase changes. +- [Embedded analytics SDK changelogs](/changelog/55) list changes specific to the SDK package. + +Check for any relevant changes, especially breaking changes that require you to update your application's code. If there are breaking changes, we'll have docs that'll walk you through what changes you'll need to make and why. + +## 2. Test the upgrade + +When upgrading to a new major version, you'll want to upgrade both Metabase and the SDK version in parallel, as having Metabase and the SDK major versions out of sync can cause errors. + +### Spin up the new version of Metabase for testing + +You can do this locally or in a dev instance. If your testing setup involves a lot of test user accounts, getting a [development instance](../../installation-and-operation/development-instance) could be more cost-effective. + +See [upgrading Metabase](../../installation-and-operation/upgrading-metabase). + +### Upgrade the SDK with npm or yarn + +You'll want to test the changes locally first, as there may be breaking changes that require you to upgrade your application code. + +Check out a new branch in your application and install the next stable version, either with npm or yarn: + +Via npm: + +```bash +npm install @metabase/embedding-sdk-react@{next-major-version-number}-stable +``` + +For example, if you were upgrading to version 55 of the SDK: + +```bash +npm install @metabase/embedding-sdk-react@55-stable +``` + +If you're using yarn: + +```bash +yarn add @metabase/embedding-sdk-react@{next-major-version-number}-stable +``` + +See more on [SDK versions](./version). + +### If there are breaking changes, make the necessary changes to your application code + +Breaking changes are rare, but if you do need to make changes, we'll mention it in the release notes for the new major version and have docs that walk you through the changes. + +Update or add tests for any application code changes that you make. + +### Deploy to your staging environment + +Before deploying your app to your staging environment, make sure you've tested your app locally (manually, as well as running any automated tests). + +If all goes well with your local tests, deploy to your staging environment. Check that the Metabase embeds in your staging app are still working as expected, and perform any other testing you normally do with your application with respect to your embedded analytics. + +## 3. Deploy to production + +If everything is working in staging, you're ready to deploy to production. + +Be sure to deploy your application changes and upgrade your Metabase in parallel so that the SDK version and the Metabase version stay in sync. + +### If your instance is on Metabase Cloud, you'll need to request an upgrade + +If you're on Metabase Cloud, your instance version is pinned, so you'll need to request an upgrade by [contacting support](/help-premium). + +We'll coordinate with you so that your instance is upgraded when you deploy the changes to your application. diff --git a/_docs/master/embedding/sdk/version.md b/_docs/master/embedding/sdk/version.md index 9ab574b799..86f9533b65 100644 --- a/_docs/master/embedding/sdk/version.md +++ b/_docs/master/embedding/sdk/version.md @@ -15,35 +15,32 @@ layout: new-docs The SDK stable version tracks with the Metabase version. -So, for example, if you're on Metabase 53 (`0.53.x`, `1.53.x`), _any_ version 0.53.x of the @metabase/embedding-sdk-react npm package will be compatible. +So, for example, if you're on Metabase 55 (`0.55.x`, `1.55.x`), _any_ version 0.55.x of the @metabase/embedding-sdk-react npm package will be compatible. -To simplify things, we publish dist-tags for each stable Metabase version. For example, to install the latest version of the SDK compatible with Metabase 53, run: +To simplify things, we publish dist-tags for each stable Metabase version. For example, to install the latest version of the SDK compatible with Metabase 55, run: ```sh -npm install @metabase/embedding-sdk-react@53-stable +npm install @metabase/embedding-sdk-react@55-stable ``` To grab the latest version of the SDK that works with Metabase nightly builds, use the `canary` dist-tag. ## Minimum SDK version -52 is the minimum version supported for the Embedded analytics SDK. +Version 52 is the minimum version supported for the Embedded analytics SDK. -## Version pinning when using the SDK with Metabase Cloud +## Instances on Metabase Cloud will be pinned to a specific version -To pin your version of Metabase, go to **Admin settings > Settings > Embedding**. Go to the Embedded analytics SDK card and scroll to **Version pinning** and click **Request version pinning**. +By default, if you're running on Metabase Cloud and using the Embedded analytics SDK, we'll pin your version to avoid breaking changes. -## Version pinning requirements +Normally, Metabase Cloud upgrades your Metabase as new versions roll out so you don't have to deal with upgrades. But if you're using the SDK with Metabase Cloud, you'll want to upgrade manually to make sure your embeds don't break when you upgrade both your Metabase and your SDK version. -To pin a version of Metabase, you must: +### Manually pinning your instance version on Metabase Cloud -- Be on Metabase Cloud (obviously) -- Be on the Pro or Enterprise plans +To manually pin your version of Metabase: -## Why you'd want to pin your Metabase Cloud version +1. Go to **Admin settings > Settings > Embedding**. +2. Go to the Embedded analytics SDK card. +3. Scroll to **Version pinning** and click **Request version pinning**. -Normally, Metabase Cloud upgrades your Metabase as new versions roll out so that you don't have to deal with upgrades. - -But if you're using the SDK with Metabase Cloud, you'll want to upgrade manually to make sure your embeds don't break when you upgrade both your Metabase and your SDK version. - -To upgrade manually, you can pin your Metabase version so that it stays in sync with the SDK version you're using. That way you can choose when to upgrade your Metabase. +This will open a mailto link to our support team. diff --git a/_docs/master/exploration-and-organization/images/DataReference.png b/_docs/master/exploration-and-organization/images/DataReference.png index 5b8967a7b2..1b91e84ebc 100644 Binary files a/_docs/master/exploration-and-organization/images/DataReference.png and b/_docs/master/exploration-and-organization/images/DataReference.png differ diff --git a/_docs/master/exploration-and-organization/images/browse-data.png b/_docs/master/exploration-and-organization/images/browse-data.png index f857430ff8..9429442b26 100644 Binary files a/_docs/master/exploration-and-organization/images/browse-data.png and b/_docs/master/exploration-and-organization/images/browse-data.png differ diff --git a/_docs/master/exploration-and-organization/images/event-on-a-time-series.png b/_docs/master/exploration-and-organization/images/event-on-a-time-series.png index acc04a435b..66168ce82a 100644 Binary files a/_docs/master/exploration-and-organization/images/event-on-a-time-series.png and b/_docs/master/exploration-and-organization/images/event-on-a-time-series.png differ diff --git a/_docs/master/exploration-and-organization/images/pinned-show-viz.png b/_docs/master/exploration-and-organization/images/pinned-show-viz.png index 41ac861ee0..6c58b5e734 100644 Binary files a/_docs/master/exploration-and-organization/images/pinned-show-viz.png and b/_docs/master/exploration-and-organization/images/pinned-show-viz.png differ diff --git a/_docs/master/exploration-and-organization/images/question-checkbox.png b/_docs/master/exploration-and-organization/images/question-checkbox.png index d9ba8c5014..4887db0e22 100644 Binary files a/_docs/master/exploration-and-organization/images/question-checkbox.png and b/_docs/master/exploration-and-organization/images/question-checkbox.png differ diff --git a/_docs/master/exploration-and-organization/images/search-results.png b/_docs/master/exploration-and-organization/images/search-results.png index 1b91e84ebc..177b5b507a 100644 Binary files a/_docs/master/exploration-and-organization/images/search-results.png and b/_docs/master/exploration-and-organization/images/search-results.png differ diff --git a/_docs/master/installation-and-operation/images/AZPrivateLink.png b/_docs/master/installation-and-operation/images/AZPrivateLink.png index 1834491eb7..c520b55bdd 100644 Binary files a/_docs/master/installation-and-operation/images/AZPrivateLink.png and b/_docs/master/installation-and-operation/images/AZPrivateLink.png differ diff --git a/_docs/master/installation-and-operation/images/AZVNETintegration.png b/_docs/master/installation-and-operation/images/AZVNETintegration.png index 7bb1d7a4f0..f69b404401 100644 Binary files a/_docs/master/installation-and-operation/images/AZVNETintegration.png and b/_docs/master/installation-and-operation/images/AZVNETintegration.png differ diff --git a/_docs/master/installation-and-operation/images/AddRemoteHost.png b/_docs/master/installation-and-operation/images/AddRemoteHost.png index ab8def0988..a3bdb2b9c8 100644 Binary files a/_docs/master/installation-and-operation/images/AddRemoteHost.png and b/_docs/master/installation-and-operation/images/AddRemoteHost.png differ diff --git a/_docs/master/installation-and-operation/images/LocalProcessVisualVM.png b/_docs/master/installation-and-operation/images/LocalProcessVisualVM.png index f07a2758c5..d71e3e03d6 100644 Binary files a/_docs/master/installation-and-operation/images/LocalProcessVisualVM.png and b/_docs/master/installation-and-operation/images/LocalProcessVisualVM.png differ diff --git a/_docs/master/installation-and-operation/images/Metabase-AWS-SI.png b/_docs/master/installation-and-operation/images/Metabase-AWS-SI.png index d60c5504d6..6a49e9a6dc 100644 Binary files a/_docs/master/installation-and-operation/images/Metabase-AWS-SI.png and b/_docs/master/installation-and-operation/images/Metabase-AWS-SI.png differ diff --git a/_docs/master/installation-and-operation/images/OpenRemoteInstance.png b/_docs/master/installation-and-operation/images/OpenRemoteInstance.png index 454be8a831..fa97c0e30a 100644 Binary files a/_docs/master/installation-and-operation/images/OpenRemoteInstance.png and b/_docs/master/installation-and-operation/images/OpenRemoteInstance.png differ diff --git a/_docs/master/installation-and-operation/running-metabase-on-azure.md b/_docs/master/installation-and-operation/running-metabase-on-azure.md index f400b9791d..12d8db0a81 100644 --- a/_docs/master/installation-and-operation/running-metabase-on-azure.md +++ b/_docs/master/installation-and-operation/running-metabase-on-azure.md @@ -111,7 +111,7 @@ Now go to the next step where you will select: - **Options**: Single container. - **Image source**: DockerHub. - **Access Type**: Public. -- **Image and tag**: metabase/metabase:latest (or choose any other docker image tag of your preference, like our Enterprise Edition). To find the latest version, check our [Community Edition Docker Hub repository](https://hub.docker.com/r/metabase/metabase/tags?page=1&ordering=last_updated) and also our [Enterprise Edition Docker Hub Repository](https://hub.docker.com/r/metabase/metabase-enterprise/tags?page=1&ordering=last_updated). +- **Image and tag**: metabase/metabase:latest (or choose any other docker image tag of your preference, like our Enterprise Edition). To find the latest version, check our [Community Edition Dockerhub repository](https://hub.docker.com/r/metabase/metabase/tags?page=1&ordering=last_updated) and also our [Enterprise Edition Dockerhub Repository](https://hub.docker.com/r/metabase/metabase-enterprise/tags?page=1&ordering=last_updated). - **Startup command**: Leave this field empty. Click **Next** until you get to the last section, then click **Create**, and wait while your application initializes. diff --git a/_docs/master/installation-and-operation/running-metabase-on-docker.md b/_docs/master/installation-and-operation/running-metabase-on-docker.md index b96b5f1a90..282a5d9daa 100644 --- a/_docs/master/installation-and-operation/running-metabase-on-docker.md +++ b/_docs/master/installation-and-operation/running-metabase-on-docker.md @@ -15,7 +15,7 @@ redirect_from: > To get fast, reliable, and secure deployment with none of the work or hidden costs that come with self-hosting, check out [Metabase Cloud](/cloud/). -Metabase provides an official Docker image via Docker Hub that can be used for deployments on any system that is running Docker. +Metabase provides an official Docker image via Dockerhub that can be used for deployments on any system that is running Docker. If you're trying to upgrade your Metabase version on Docker, check out these [upgrading instructions](upgrading-metabase). diff --git a/_docs/master/installation-and-operation/upgrading-metabase.md b/_docs/master/installation-and-operation/upgrading-metabase.md index cdfe3f1e6a..805935487d 100644 --- a/_docs/master/installation-and-operation/upgrading-metabase.md +++ b/_docs/master/installation-and-operation/upgrading-metabase.md @@ -13,11 +13,15 @@ redirect_from: # Upgrading Metabase -This page covers how to upgrade to a new [Metabase release](https://github.com/metabase/metabase/releases). +This page covers how to upgrade to a new Metabase release. + +- [Announcement posts for major releases](https://www.) +- [Changelogs](/changelog). +- [Release notes on GitHub](https://github.com/metabase/metabase/releases). ## Upgrading Metabase Cloud -If you're on a [Metabase Cloud](/pricing/) plan, we'll upgrade your Metabase automatically with each new release; no action needed on your end. +If you're on a [Metabase Cloud](/pricing/) plan, we'll upgrade your Metabase automatically with each new release; no action needed on your end ([unless you're using the Embedded analytics SDK](#instances-using-the-embedded-analtyics-sdk-on-metabase-cloud-must-request-an-upgrade)). How soon we upgrade you depends on the type of release: @@ -26,6 +30,14 @@ How soon we upgrade you depends on the type of release: Cloud customers can request an early upgrade by emailing support at help@metabase.com. Include the URL of the Metabase you want us to upgrade. +### Instances using the Embedded analtyics SDK on Metabase Cloud must request an upgrade + +If you're using the [Embedded analytics SDK](../embedding/sdk/introduction) on Metabase Cloud, we pin your version so that it doesn't upgrade automatically, as you should test the changes before upgrading. + +To upgrade your Metabase, you'll need to request an upgrade by [contacting support](/help-premium). + +See our [upgrade guide for the Embedded analytics SDK](../embedding/sdk/upgrade). + ## Upgrading a self-hosted Metabase Here are the steps for upgrading to a new Metabase version (major or minor): diff --git a/_docs/master/people-and-groups/images/JWT-auth-form.png b/_docs/master/people-and-groups/images/JWT-auth-form.png index ed91fea29b..ce5b0e7415 100644 Binary files a/_docs/master/people-and-groups/images/JWT-auth-form.png and b/_docs/master/people-and-groups/images/JWT-auth-form.png differ diff --git a/_docs/master/people-and-groups/images/auth0callbackurl.png b/_docs/master/people-and-groups/images/auth0callbackurl.png index 8371279d7d..dda21e391d 100644 Binary files a/_docs/master/people-and-groups/images/auth0callbackurl.png and b/_docs/master/people-and-groups/images/auth0callbackurl.png differ diff --git a/_docs/master/people-and-groups/images/auth0createapp.png b/_docs/master/people-and-groups/images/auth0createapp.png index 2fb7bd3907..6fbdab7fcf 100644 Binary files a/_docs/master/people-and-groups/images/auth0createapp.png and b/_docs/master/people-and-groups/images/auth0createapp.png differ diff --git a/_docs/master/people-and-groups/images/auth0regularapp.png b/_docs/master/people-and-groups/images/auth0regularapp.png index 7d23c598f1..6fbdab7fcf 100644 Binary files a/_docs/master/people-and-groups/images/auth0regularapp.png and b/_docs/master/people-and-groups/images/auth0regularapp.png differ diff --git a/_docs/master/people-and-groups/images/auth0saml2addon.png b/_docs/master/people-and-groups/images/auth0saml2addon.png index 6fbdab7fcf..8926f599ba 100644 Binary files a/_docs/master/people-and-groups/images/auth0saml2addon.png and b/_docs/master/people-and-groups/images/auth0saml2addon.png differ diff --git a/_docs/master/people-and-groups/images/auth0samlmappings.png b/_docs/master/people-and-groups/images/auth0samlmappings.png index a673bc98ba..6fbdab7fcf 100644 Binary files a/_docs/master/people-and-groups/images/auth0samlmappings.png and b/_docs/master/people-and-groups/images/auth0samlmappings.png differ diff --git a/_docs/master/people-and-groups/images/auth0samlusage.png b/_docs/master/people-and-groups/images/auth0samlusage.png index 7dbf8c7523..6fbdab7fcf 100644 Binary files a/_docs/master/people-and-groups/images/auth0samlusage.png and b/_docs/master/people-and-groups/images/auth0samlusage.png differ diff --git a/_docs/master/people-and-groups/images/groups.png b/_docs/master/people-and-groups/images/groups.png index 759a222b61..8926f599ba 100644 Binary files a/_docs/master/people-and-groups/images/groups.png and b/_docs/master/people-and-groups/images/groups.png differ diff --git a/_docs/master/people-and-groups/images/okta-group-attribute.png b/_docs/master/people-and-groups/images/okta-group-attribute.png index baf8cdc518..a48ae1a137 100644 Binary files a/_docs/master/people-and-groups/images/okta-group-attribute.png and b/_docs/master/people-and-groups/images/okta-group-attribute.png differ diff --git a/_docs/master/people-and-groups/images/saml-azure-step-1.png b/_docs/master/people-and-groups/images/saml-azure-step-1.png index 4becab567e..e8ae330628 100644 Binary files a/_docs/master/people-and-groups/images/saml-azure-step-1.png and b/_docs/master/people-and-groups/images/saml-azure-step-1.png differ diff --git a/_docs/master/people-and-groups/images/saml-okta-groups.png b/_docs/master/people-and-groups/images/saml-okta-groups.png index 9df2d9fb1d..98a4a6fc63 100644 Binary files a/_docs/master/people-and-groups/images/saml-okta-groups.png and b/_docs/master/people-and-groups/images/saml-okta-groups.png differ diff --git a/_docs/master/people-and-groups/saml-google.md b/_docs/master/people-and-groups/saml-google.md index 872da68569..4fdf6641da 100644 --- a/_docs/master/people-and-groups/saml-google.md +++ b/_docs/master/people-and-groups/saml-google.md @@ -68,9 +68,7 @@ For example, to add the attribute "First name": ## Setting up synchronize group membership -1. In Google Admin, you can EITHER: - - Set up a multi-value [custom user attribute](https://support.google.com/a/answer/6208725?hl=en#zippy=%2Cadd-a-new-custom-attribute) for your users. Recommended if you manage multiple SAML app permissions in Google or if you lack existing Google Groups that align with your desired Metabase groups. - - [Map to existing Google Groups](https://support.google.com/a/answer/11143403?hl=en). +1. In Google Admin, setup a multi-value [custom user attribute](https://support.google.com/a/answer/6208725?hl=en#zippy=%2Cadd-a-new-custom-attribute) for your users (recommended if you manage multiple SAML app permissions in Google or do not have existing Google Groups that align with your desired Metabase groups) OR [map to existing Google Groups](https://support.google.com/a/answer/11143403?hl=en). 2. Follow the instructions for [Configuring the group schema](./authenticating-with-saml#configuring-the-group-schema-in-metabase) using the `App attribute` that you used in Google as the Group attribute name in Metabase. ## Troubleshooting SAML issues diff --git a/_docs/master/permissions/database-routing.md b/_docs/master/permissions/database-routing.md index 35f902f2b7..38fc239ea4 100644 --- a/_docs/master/permissions/database-routing.md +++ b/_docs/master/permissions/database-routing.md @@ -25,7 +25,6 @@ Database routing is useful for: ## Databases that support database routing -- [BigQuery](../databases/connections/bigquery) - [Druid](../databases/connections/druid) - [MongoDB](../databases/connections/mongodb) - [MariaDB](../databases/connections/mariadb) diff --git a/_docs/master/permissions/images/admin-panel-collections.png b/_docs/master/permissions/images/admin-panel-collections.png index 155d34f84e..cc2c707278 100644 Binary files a/_docs/master/permissions/images/admin-panel-collections.png and b/_docs/master/permissions/images/admin-panel-collections.png differ diff --git a/_docs/master/permissions/images/advanced-example-1-sandbox-modal.png b/_docs/master/permissions/images/advanced-example-1-sandbox-modal.png index e84c8f1aef..f0997404d5 100644 Binary files a/_docs/master/permissions/images/advanced-example-1-sandbox-modal.png and b/_docs/master/permissions/images/advanced-example-1-sandbox-modal.png differ diff --git a/_docs/master/permissions/images/dashboard-no-permissions.png b/_docs/master/permissions/images/dashboard-no-permissions.png index 3c02e69fc9..c9c10c5129 100644 Binary files a/_docs/master/permissions/images/dashboard-no-permissions.png and b/_docs/master/permissions/images/dashboard-no-permissions.png differ diff --git a/_docs/master/permissions/images/pinned-items.png b/_docs/master/permissions/images/pinned-items.png index 960bcb87f1..76c2b7c0aa 100644 Binary files a/_docs/master/permissions/images/pinned-items.png and b/_docs/master/permissions/images/pinned-items.png differ diff --git a/_docs/master/permissions/images/select-impersonated.png b/_docs/master/permissions/images/select-impersonated.png deleted file mode 100644 index db48b29a27..0000000000 Binary files a/_docs/master/permissions/images/select-impersonated.png and /dev/null differ diff --git a/_docs/master/permissions/images/select-user-attribute.png b/_docs/master/permissions/images/select-user-attribute.png index 6fe341045c..5fb459752f 100644 Binary files a/_docs/master/permissions/images/select-user-attribute.png and b/_docs/master/permissions/images/select-user-attribute.png differ diff --git a/_docs/master/permissions/images/user-attribute-impersonation.png b/_docs/master/permissions/images/user-attribute-impersonation.png deleted file mode 100644 index 24031d7e6c..0000000000 Binary files a/_docs/master/permissions/images/user-attribute-impersonation.png and /dev/null differ diff --git a/_docs/master/permissions/impersonation.md b/_docs/master/permissions/impersonation.md index 034aef9963..911ad9532c 100644 --- a/_docs/master/permissions/impersonation.md +++ b/_docs/master/permissions/impersonation.md @@ -21,126 +21,34 @@ This page covers the [View data](./data#view-data-permissions) permission level **Impersonation access** allows admins to "outsource" View data permissions to roles in your database. Admins can associate user attributes with database-defined roles and their privileges. If someone is in a group with their View data permission set to Impersonation, the person will be able to view and query data based on the privileges granted to the role specified by their user attribute. -## Impersonation vs sandboxing +## Setting up connection impersonation -### Impersonation sets permissions for questions written in both the SQL editor and the query builder - -Impersonation operates at the database level. In a database engine, setting the role before the query runs can alter the results of the query, as the role defines the permissions that your database should use when it executes the statements. - -### Sandboxing only sets permissions for query builder questions - -Sandboxing operates at the Metabase level. Since Metabase can't parse SQL queries to find out what data people are allowed to view, sandboxing only applies to questions composed in the query builder (where Metabase can interpret the queries). - -## Example use case for impersonation - -Let's say we have a People table that includes rows of accounts from all 50 states of the United States. Let's say you want your Vermont sales team to: - -- Be able to ask questions using both the query builder and the native SQL editor. -- Only be able to view customer accounts in the People table who live in Vermont. - -First, you'll set up permissions in your database by creating a role with a policy. Then in Metabase, you'll set data access to that database to Impersonation, so when people run queries on that database, Metabase will use that role to limit what data they can see. - -## Set up connection impersonation +> \*\*For impersonation to work for Redshift databases, the user account Metabase uses to [connect to your Redshift database](../databases/connections/redshift) must be a superuser, as Metabase will need to be able to run the [SET SESSION AUTHORIZATION](https://docs.aws.amazon.com/redshift/latest/dg/r_SET_SESSION_AUTHORIZATION) command, which can only be run by a database superuser. For impersonation access to work, you'll first need to set up roles in your database for Metabase to impersonate, then configure Metabase to impersonate those roles when people view or query data. -### Set up Metabase database connection for impersonation - -Impersonation uses database roles to run queries on your database, but there still needs to be a default role that that will be used to run operations like [sync, scans, and fingerprinting](../databases/sync-scan). So the user account that Metabase uses to [connect to your database](../databases/connecting) should have access to everything in that database that any Metabase group may need access to, as that database user account is what Metabase uses to sync table information. - -You can then create roles in the database that have more restrictive access to the database (like row-level or table-level security). When the role is passed to the database using impersonation, the engine will return a subset of the data, or restrict the query altogether. - -> For **Redshift** databases, the user account Metabase uses to [connect to your Redshift database](../databases/connections/redshift) must be a superuser, as Metabase will need to be able to run the [SET SESSION AUTHORIZATION](https://docs.aws.amazon.com/redshift/latest/dg/r_SET_SESSION_AUTHORIZATION) command, which can only be run by a database superuser. - ### In your database, set up roles -In your database (not in Metabase): - -1. Create a new database role (in Redshift, this would be a new user). -2. Grant that role privileges that you'd like impersonated users to have.. +1. Create a new role (in Redshift, this would be a new user). +2. Grant that role privileges. For exactly how to create a new role in your database and grant that role privileges, you'll need to consult your database's documentation. We also have some docs on [users, roles, and privileges](../databases/users-roles-privileges) that can help you get started. -For example, if you're using PostgreSQL, the SQL below will create a role called `vermont_sales_team` and only allow that role to select rows in the `people` table where the value in the `state` column is `VT` (the abbreviation for Vermont): - -```sql -CREATE ROLE vermont_sales_team; - -GRANT -SELECT ON ALL TABLES IN SCHEMA PUBLIC TO vermont_sales_team; - - -CREATE POLICY vermont ON people -FOR -SELECT TO vermont_sales_team USING (state = 'VT'); - - -ALTER TABLE people ENABLE ROW LEVEL SECURITY; -``` - -### Set up a Metabase group - -Permissions in Metabase, including impersonation, are managed by groups, so you'll need to: - -1. [Create a new group](../people-and-groups/managing#groups) (or select an existing one). -2. [Add people to the group](../people-and-groups/managing#adding-people-to-groups). - -You might want to create a test user and add them to the group to verify later that impersonation is working correctly. +### In your Metabase, set up impersonation and specify a user attribute -### Assign a user attribute to people in the group +1. **Create a [new group](../people-and-groups/managing#groups)**, or select an existing group. -To associate people in the group with a role that you created in your database, you'll use a user attribute. +2. **Assign a [user attribute](../people-and-groups/managing#adding-a-user-attribute) to people in that group.** You'll use this user attribute to associate people in that group with a role that you created in your database. For example, if you created a role named `sales` in your database with access to a subset of tables relevant to the sales team, you would add a user attribute called `db_role` (or whatever you want to call the attribute) and assign the value `sales` to the person's `db_role`. The value of the attribute (`sales` in this case) should match the name of the role in your database. Only some databases enforce case sensitivity, so you might want to make sure the attribute's value and the database's role match exactly. -Assign a [user attribute](../people-and-groups/managing#adding-a-user-attribute) to people in your group: +3. **Apply the impersonation access to that group.**. Hit Cmd/Ctrl + K to bring up the command palette. Search for **Permissions**. Or go to **Admin settings** > **Permissions** > **Data**. -- The **key** of the attribute can be anything. -- The **value** of the attribute must match the desired database role for every person. +4. Select the database you want to set permissions on. -![Setting a user attribute for impersonation](./images/user-attribute-impersonation.png) +5. Find the group that you want to associate with the database role you created. Under **View data** setting for that group, select **Impersonation**. -For example, if you created a role named `vermont_sales_team` in your database with access to a subset of data relevant to the Vermont sales team (like [in the example above](#in-your-database-set-up-roles)), you could add a user attribute called `db_role` (or whatever you want to call the attribute) and assign the value `vermont_sales_team` to the person's `db_role` attribute. +6. From the dropdown, select the user attribute that you added that maps to the role you want the group to use when querying the database. -Some databases enforce case sensitivity, so you might want to make sure the attribute's value and the database's role match exactly. - -People in one group can have different attribute values, but must have the same attribute key. See [People in a group with impersonation access to data do not necessarily share the same privileges](#people-in-a-group-with-impersonation-access-to-data-do-not-necessarily-share-the-same-privileges). - -### Set up impersonation - -1. In Metabase, hit Cmd/Ctrl + K to bring up the command palette and search for **Permissions**, or go directly to **Admin settings** > **Permissions** > **Data**. - -2. Select the group that you want to to associate with the database role you created. - -3. Select the database to configure access to. - -4. Under **View data** setting for that database, select **Impersonation**. This option will only be visible if you already [created a user attribute](#assign-a-user-attribute-to-people-in-the-group). - - ![Select impersonated permissions](./images/select-impersonated.png) - - If your All Users group has more permissive access to this database (for example, "Can view"), you will see a warning, because [Metabase gives people the most permissive access to data across all of their groups](#metabase-gives-people-the-most-permissive-access-to-data-across-all-of-their-groups). You'll need to [block database access for the All Users group](./data#revoke-access-even-though-all-users-has-greater-access) before setting up impersonation. - -5. From the user attribute dropdown, select the user attribute that you added that maps to the role you want the group to use when querying the database. - -6. Save your changes. - -Remember to also set up ["Create queries"](./data#create-queries-permissions) permissions for your group and database. For example, if you'd like people to be able to write SQL while using impersonated database roles, you'll need to set "Create queries" permissions to "Query builder and native". - -### Verify that impersonated permissions are working - -Admins will not be able to verify that impersonation is are working from their own account, so you should create a test user, add them to the group and set up their user attributes. - -To verify that the impersonated permissions are working: - -- If the test user has "Create queries" permissions set to "Create queries and native", create a SQL question and verify that the test user can only see the right data. - -For example, for the `vermont_sales_team` role from the [example above](#in-your-database-set-up-roles), you can run: - -``` -SELECT * FROM people; -``` - -to verify that the test user only sees data from Vermont. - -- If the test user has "Create queries" permissions set to "Query builder only", go to **Browse data** in the left sidebar and verify that the user can only see the tables they have access to, and only the data in those tables that +7. Save your changes. ## People in a group with impersonation access to data do not necessarily share the same privileges @@ -148,11 +56,13 @@ Metabase will use whatever role you specify in the user attribute for each perso ## Use impersonation to set up row-level SQL access -You can use impersonation to give people access to the SQL editor, while restricting their access to data based on a specific database role. And not just table-level access, but row-level access---or however you define access for that role in your database. Effectively, you can use impersonation to set up data sandbox-like access to your data, while letting people use the SQL editor to query that data. The difference is that, _instead of setting up a data sandbox in Metabase, you need to set up that row-level security via the privileges granted to a role in your database._ +You can use impersonation to give people access to the native/SQL editor, while restricting their access to data based on a specific database role. And not just table-level access, but row-level access---or however you define access for that role in your database. Effectively, you can use impersonation to set up data sandbox-like access to your data, while letting people use the SQL editor to query that data. The difference is that, _instead of setting up a data sandbox in Metabase, you need to set up that row-level security via the privileges granted to a role in your database._ If instead you want to give a group SQL access to some, but not all, of the schemas or tables in that database, you can create an additional role in your database that only includes a subset of those tables---or even specific row-level access---and then use Metabase's impersonation feature to associate a user attribute with that role. Essentially what Metabase will do is take the user attribute and pass that attribute as a string into a `SET ROLE` or `USE ROLE` command for the database _before_ Metabase executes the query. -Connection impersonation doesn't apply to people in the Metabase Admins group, as their more permissive privileges take precedence. +Connection impersonation doesn't apply to people in the Metabase admins group, as their more permissive privileges take precedence. + +For more about how to set this up, check out [Use Impersonation to get row-level permissions with both GUI and SQL queries](/learn/metabase-basics/administration/permissions/impersonation). ## Metabase gives people the most permissive access to data across all of their groups @@ -163,10 +73,6 @@ So if a person is in two groups with different permissions for the same database Blue group's more permissive access would override the impersonated access. -## Admins won't see the effects of impersonation - -Admins won't ever see the effects of impersonation effects, because their privileges will override those of any other group they're a member of. - -Metabase's default Administrators group has "Can view" access to all databases, and Metabase uses the most permissive access for any person in multple groups, so any admin will have "Can view" - not "Impersonated" - access to the database. +## Further reading -To test impersonation, create a test user, assign them a user attribute with the database role, and add them to the impersonated group. Then, log in as the test user and verify the data access. +- [Use Impersonation to get row-level permissions with both GUI and SQL queries](/learn/metabase-basics/administration/permissions/impersonation) diff --git a/_docs/master/questions/images/SQL-filter-widget.png b/_docs/master/questions/images/SQL-filter-widget.png index 318c459779..22f38f2e92 100644 Binary files a/_docs/master/questions/images/SQL-filter-widget.png and b/_docs/master/questions/images/SQL-filter-widget.png differ diff --git a/_docs/master/questions/images/add-comparison.png b/_docs/master/questions/images/add-comparison.png index d193fa0481..416c5e974f 100644 Binary files a/_docs/master/questions/images/add-comparison.png and b/_docs/master/questions/images/add-comparison.png differ diff --git a/_docs/master/questions/images/area.png b/_docs/master/questions/images/area.png index 8008354d87..676d7840a3 100644 Binary files a/_docs/master/questions/images/area.png and b/_docs/master/questions/images/area.png differ diff --git a/_docs/master/questions/images/bin-by-latlong.png b/_docs/master/questions/images/bin-by-latlong.png index ac8e7481e4..60cbdafba4 100644 Binary files a/_docs/master/questions/images/bin-by-latlong.png and b/_docs/master/questions/images/bin-by-latlong.png differ diff --git a/_docs/master/questions/images/chart-formatting-options.png b/_docs/master/questions/images/chart-formatting-options.png index 5e1fe30691..14d64cca39 100644 Binary files a/_docs/master/questions/images/chart-formatting-options.png and b/_docs/master/questions/images/chart-formatting-options.png differ diff --git a/_docs/master/questions/images/diff-and-percentage.png b/_docs/master/questions/images/diff-and-percentage.png index eaeaf64500..181ab4e47c 100644 Binary files a/_docs/master/questions/images/diff-and-percentage.png and b/_docs/master/questions/images/diff-and-percentage.png differ diff --git a/_docs/master/questions/images/function-browser.png b/_docs/master/questions/images/function-browser.png index 71c4f4a9fa..eaeaf64500 100644 Binary files a/_docs/master/questions/images/function-browser.png and b/_docs/master/questions/images/function-browser.png differ diff --git a/_docs/master/questions/images/histogram.png b/_docs/master/questions/images/histogram.png index 77a47cdb2d..efbaebb582 100644 Binary files a/_docs/master/questions/images/histogram.png and b/_docs/master/questions/images/histogram.png differ diff --git a/_docs/master/questions/images/legend.png b/_docs/master/questions/images/legend.png index 159ee2b139..1cfd092a11 100644 Binary files a/_docs/master/questions/images/legend.png and b/_docs/master/questions/images/legend.png differ diff --git a/_docs/master/questions/images/number.png b/_docs/master/questions/images/number.png index b650a3cb61..6a503dc977 100644 Binary files a/_docs/master/questions/images/number.png and b/_docs/master/questions/images/number.png differ diff --git a/_docs/master/questions/images/pie-other-slice.png b/_docs/master/questions/images/pie-other-slice.png index 6e08d9e9a0..dcbd6a8bdf 100644 Binary files a/_docs/master/questions/images/pie-other-slice.png and b/_docs/master/questions/images/pie-other-slice.png differ diff --git a/_docs/master/questions/images/pin-data-shape.png b/_docs/master/questions/images/pin-data-shape.png index b9079a1c01..fab199632b 100644 Binary files a/_docs/master/questions/images/pin-data-shape.png and b/_docs/master/questions/images/pin-data-shape.png differ diff --git a/_docs/master/questions/images/pivot-table-options.png b/_docs/master/questions/images/pivot-table-options.png index e3d9ba981c..a912dce7f6 100644 Binary files a/_docs/master/questions/images/pivot-table-options.png and b/_docs/master/questions/images/pivot-table-options.png differ diff --git a/_docs/master/questions/images/raw-table.png b/_docs/master/questions/images/raw-table.png index 5c753beebe..2bd6a50036 100644 Binary files a/_docs/master/questions/images/raw-table.png and b/_docs/master/questions/images/raw-table.png differ diff --git a/_docs/master/questions/images/region-maps.png b/_docs/master/questions/images/region-maps.png index 8dec0e9d90..91ae89db11 100644 Binary files a/_docs/master/questions/images/region-maps.png and b/_docs/master/questions/images/region-maps.png differ diff --git a/_docs/master/questions/images/rolling-average.png b/_docs/master/questions/images/rolling-average.png index 233e8508dd..17463efde4 100644 Binary files a/_docs/master/questions/images/rolling-average.png and b/_docs/master/questions/images/rolling-average.png differ diff --git a/_docs/master/questions/images/sum-of-totals-for-previous-period.png b/_docs/master/questions/images/sum-of-totals-for-previous-period.png index 3e95ecd43d..c2c2978f4f 100644 Binary files a/_docs/master/questions/images/sum-of-totals-for-previous-period.png and b/_docs/master/questions/images/sum-of-totals-for-previous-period.png differ diff --git a/_docs/master/questions/images/switch-to-editor.png b/_docs/master/questions/images/switch-to-editor.png index 0945f38fa4..3c8a32cc82 100644 Binary files a/_docs/master/questions/images/switch-to-editor.png and b/_docs/master/questions/images/switch-to-editor.png differ diff --git a/_docs/master/questions/images/table.png b/_docs/master/questions/images/table.png index 63af470596..4ce9fda455 100644 Binary files a/_docs/master/questions/images/table.png and b/_docs/master/questions/images/table.png differ diff --git a/_docs/master/questions/images/unpivoted-results.png b/_docs/master/questions/images/unpivoted-results.png index 14d64cca39..e3d9ba981c 100644 Binary files a/_docs/master/questions/images/unpivoted-results.png and b/_docs/master/questions/images/unpivoted-results.png differ diff --git a/_docs/master/questions/images/viz-options.png b/_docs/master/questions/images/viz-options.png index 08e8dc6af0..49a0bf0703 100644 Binary files a/_docs/master/questions/images/viz-options.png and b/_docs/master/questions/images/viz-options.png differ diff --git a/_docs/master/questions/images/week-iso.png b/_docs/master/questions/images/week-iso.png index d75254a7bf..5ebb209705 100644 Binary files a/_docs/master/questions/images/week-iso.png and b/_docs/master/questions/images/week-iso.png differ diff --git a/_docs/master/questions/native-editor/sql-parameters.md b/_docs/master/questions/native-editor/sql-parameters.md index e3413f60f7..a6d6a59cc0 100644 --- a/_docs/master/questions/native-editor/sql-parameters.md +++ b/_docs/master/questions/native-editor/sql-parameters.md @@ -155,7 +155,7 @@ Make sure your SQL dialect matches the database you've selected. Common issues i | Database | Dialect quirk | Example | | -------- | --------------------------------------------------- | -------------------------- | | BigQuery | Schemas and tables must be quoted with backticks. | `` FROM `dataset.table` `` | -| Oracle | Schemas and tables must be quoted in double quotes. | `FROM "schema.table"` | +| Oracle | Schemas and tables must be quoted in double quotes. | `FROM schema.table` | For more help, see [Troubleshooting SQL error messages](../../troubleshooting-guide/error-message#sql-editor). diff --git a/_docs/master/questions/visualizations/country-codes.md b/_docs/master/questions/visualizations/country-codes.md deleted file mode 100644 index ae4a15f291..0000000000 --- a/_docs/master/questions/visualizations/country-codes.md +++ /dev/null @@ -1,269 +0,0 @@ ---- -version: master -has_magic_breadcrumbs: true -show_category_breadcrumb: true -show_title_breadcrumb: true -category: Questions -title: 'Country codes' -source_url: 'https://github.com/metabase/metabase/blob/master/docs/questions/visualizations/country-codes.md' -layout: new-docs ---- - -# Country codes - -This reference lists all country codes and their corresponding country names used in Metabase's default world map visualizations. The data comes from the GeoJSON world map file and includes 250 countries, territories, and administrative regions. - -Use these ISO 3166-1 alpha-2 country codes and country names when working with geographic data in Metabase. - -| Country code | Country name | -| ------------ | ------------------------------------ | -| AD | Andorra | -| AE | United Arab Emirates | -| AF | Afghanistan | -| AG | Antigua and Barbuda | -| AI | Anguilla | -| AL | Albania | -| AM | Armenia | -| AO | Angola | -| AQ | Antarctica | -| AR | Argentina | -| AS | American Samoa | -| AT | Austria | -| AU | Australia | -| AW | Aruba | -| AX | Åland | -| AZ | Azerbaijan | -| BA | Bosnia and Herzegovina | -| BB | Barbados | -| BD | Bangladesh | -| BE | Belgium | -| BF | Burkina Faso | -| BG | Bulgaria | -| BH | Bahrain | -| BI | Burundi | -| BJ | Benin | -| BL | St-Barthélemy | -| BM | Bermuda | -| BN | Brunei | -| BO | Bolivia | -| BQ | Caribbean Netherlands | -| BR | Brazil | -| BS | Bahamas | -| BT | Bhutan | -| BV | Bouvet I. | -| BW | Botswana | -| BY | Belarus | -| BZ | Belize | -| CA | Canada | -| CC | Cocos Is. | -| CD | Dem. Rep. Congo | -| CF | Central African Rep. | -| CG | Congo | -| CH | Switzerland | -| CI | Côte d'Ivoire | -| CK | Cook Is. | -| CL | Chile | -| CM | Cameroon | -| CN | China | -| CO | Colombia | -| CR | Costa Rica | -| CU | Cuba | -| CV | Cabo Verde | -| CW | Curaçao | -| CX | Christmas I. | -| CY | Cyprus | -| CZ | Czechia | -| DE | Germany | -| DJ | Djibouti | -| DK | Denmark | -| DM | Dominica | -| DO | Dominican Rep. | -| DZ | Algeria | -| EC | Ecuador | -| EE | Estonia | -| EG | Egypt | -| EH | W. Sahara | -| ER | Eritrea | -| ES | Spain | -| ET | Ethiopia | -| FI | Finland | -| FJ | Fiji | -| FK | Falkland Is. | -| FM | Micronesia | -| FO | Faeroe Is. | -| FR | France | -| GA | Gabon | -| GB | United Kingdom | -| GD | Grenada | -| GE | Georgia | -| GF | French Guiana | -| GG | Guernsey | -| GH | Ghana | -| GI | Gibraltar | -| GL | Greenland | -| GM | Gambia | -| GN | Guinea | -| GP | Guadeloupe | -| GQ | Eq. Guinea | -| GR | Greece | -| GS | S. Geo. and the Is. | -| GT | Guatemala | -| GU | Guam | -| GW | Guinea-Bissau | -| GY | Guyana | -| HK | Hong Kong | -| HM | Heard I. and McDonald Is. | -| HN | Honduras | -| HR | Croatia | -| HT | Haiti | -| HU | Hungary | -| ID | Indonesia | -| IE | Ireland | -| IL | Israel | -| IM | Isle of Man | -| IN | India | -| IO | Br. Indian Ocean Ter. | -| IQ | Iraq | -| IR | Iran | -| IS | Iceland | -| IT | Italy | -| JE | Jersey | -| JM | Jamaica | -| JO | Jordan | -| JP | Japan | -| KE | Kenya | -| KG | Kyrgyzstan | -| KH | Cambodia | -| KI | Kiribati | -| KM | Comoros | -| KN | St. Kitts and Nevis | -| KP | North Korea | -| KR | South Korea | -| KW | Kuwait | -| KY | Cayman Is. | -| KZ | Kazakhstan | -| LA | Laos | -| LB | Lebanon | -| LC | Saint Lucia | -| LI | Liechtenstein | -| LK | Sri Lanka | -| LR | Liberia | -| LS | Lesotho | -| LT | Lithuania | -| LU | Luxembourg | -| LV | Latvia | -| LY | Libya | -| MA | Morocco | -| MC | Monaco | -| MD | Moldova | -| ME | Montenegro | -| MF | St-Martin | -| MG | Madagascar | -| MH | Marshall Is. | -| MK | Macedonia | -| ML | Mali | -| MM | Myanmar | -| MN | Mongolia | -| MO | Macao | -| MP | N. Mariana Is. | -| MQ | Martinique | -| MR | Mauritania | -| MS | Montserrat | -| MT | Malta | -| MU | Mauritius | -| MV | Maldives | -| MW | Malawi | -| MX | Mexico | -| MY | Malaysia | -| MZ | Mozambique | -| NA | Namibia | -| NC | New Caledonia | -| NE | Niger | -| NF | Norfolk Island | -| NG | Nigeria | -| NI | Nicaragua | -| NL | Netherlands | -| NO | Norway | -| NP | Nepal | -| NR | Nauru | -| NU | Niue | -| NZ | New Zealand | -| OM | Oman | -| PA | Panama | -| PE | Peru | -| PF | Fr. Polynesia | -| PG | Papua New Guinea | -| PH | Philippines | -| PK | Pakistan | -| PL | Poland | -| PM | St. Pierre and Miquelon | -| PN | Pitcairn Is. | -| PR | Puerto Rico | -| PS | Palestine | -| PT | Portugal | -| PW | Palau | -| PY | Paraguay | -| QA | Qatar | -| RE | Réunion | -| RO | Romania | -| RS | Serbia | -| RU | Russia | -| RW | Rwanda | -| SA | Saudi Arabia | -| SB | Solomon Is. | -| SC | Seychelles | -| SD | Sudan | -| SE | Sweden | -| SG | Singapore | -| SH | Saint Helena | -| SI | Slovenia | -| SJ | Svalbard and Jan Mayen | -| SK | Slovakia | -| SL | Sierra Leone | -| SM | San Marino | -| SN | Senegal | -| SO | Somalia | -| SR | Suriname | -| SS | S. Sudan | -| ST | São Tomé and Principe | -| SV | El Salvador | -| SX | Sint Maarten | -| SY | Syria | -| SZ | eSwatini | -| TC | Turks and Caicos Is. | -| TD | Chad | -| TF | Fr. S. Antarctic Lands | -| TG | Togo | -| TH | Thailand | -| TJ | Tajikistan | -| TK | Tokelau | -| TL | Timor-Leste | -| TM | Turkmenistan | -| TN | Tunisia | -| TO | Tonga | -| TR | Turkey | -| TT | Trinidad and Tobago | -| TV | Tuvalu | -| TW | Taiwan | -| TZ | Tanzania | -| UA | Ukraine | -| UG | Uganda | -| UM | United States Minor Outlying Islands | -| US | United States of America | -| UY | Uruguay | -| UZ | Uzbekistan | -| VA | Vatican | -| VC | St. Vin. and Gren. | -| VE | Venezuela | -| VG | British Virgin Is. | -| VI | U.S. Virgin Is. | -| VN | Vietnam | -| VU | Vanuatu | -| WF | Wallis and Futuna Is. | -| WS | Samoa | -| XK | Kosovo | -| YE | Yemen | -| YT | Mayotte | -| ZA | South Africa | -| ZM | Zambia | -| ZW | Zimbabwe | diff --git a/_docs/master/questions/visualizations/map.md b/_docs/master/questions/visualizations/map.md index 1f80030c8f..85a4a6d535 100644 --- a/_docs/master/questions/visualizations/map.md +++ b/_docs/master/questions/visualizations/map.md @@ -118,7 +118,7 @@ You can change the base color used for the region map, but you can't currently u ### World Map -To visualize your results in the format of a map of the world broken out by country, your result must contain a column with [two-letter ISO country codes](./country-codes), like "US" or "BR", or country names like "United States of America" or "Brazil". For example: +To visualize your results in the format of a map of the world broken out by country, your result must contain a column with [two-letter ISO country codes](/glossary/country-code), like "US" or "BR", for example: | Country code | Metric | | ------------ | ------ | diff --git a/_docs/master/troubleshooting-guide/bugs.md b/_docs/master/troubleshooting-guide/bugs.md index 7ec6b908d5..6dc76f07ae 100644 --- a/_docs/master/troubleshooting-guide/bugs.md +++ b/_docs/master/troubleshooting-guide/bugs.md @@ -11,7 +11,7 @@ layout: new-docs # Reporting a bug -If you come across something that looks like a bug, please start by searching our [GitHub issues][metabase-issues] to see if it has already been reported. If it has, please let us know you're experiencing the same issue by reacting with a thumbs up emoji or adding a comment to provide additional information. +If you come across something that looks like a bug, please start by searching our [Github issues][metabase-issues] to see if it has already been reported. If it has, please let us know you're experiencing the same issue by reacting with a thumbs up emoji or adding a comment to provide additional information. If the bug has not yet been reported, go ahead and [open a bug report][metabase-file-bug]. The following information will help us reproduce your issue: diff --git a/_docs/master/troubleshooting-guide/known-issues.md b/_docs/master/troubleshooting-guide/known-issues.md index 29a783865a..5ae4b67ed7 100644 --- a/_docs/master/troubleshooting-guide/known-issues.md +++ b/_docs/master/troubleshooting-guide/known-issues.md @@ -17,7 +17,7 @@ If you can't find or solve your problem using the [troubleshooting guides](./ind If your work in Metabase is crashing, missing, or not being saved, you might have found a bug. -1. Go to the [Metabase GitHub issues page](https://github.com/metabase/metabase/issues). +1. Go to the [Metabase Github issues page](https://github.com/metabase/metabase/issues). 2. Click on the **Label** dropdown and select `Type: Bug`. @@ -37,7 +37,7 @@ If your work in Metabase is crashing, missing, or not being saved, you might hav If the functionality you're looking for simply doesn't exist (i.e., it hasn't suddenly gone missing), you might be running into a product limitation. -1. Go to the [Metabase GitHub issues page](https://github.com/metabase/metabase/issues). +1. Go to the [Metabase Github issues page](https://github.com/metabase/metabase/issues). 2. Click on the **Label** dropdown and select `Type: New Feature`. diff --git a/_docs/master/usage-and-performance-tools/images/audit-dashboards.png b/_docs/master/usage-and-performance-tools/images/audit-dashboards.png index fb1801bc32..aa3faabac3 100644 Binary files a/_docs/master/usage-and-performance-tools/images/audit-dashboards.png and b/_docs/master/usage-and-performance-tools/images/audit-dashboards.png differ diff --git a/_docs/master/usage-and-performance-tools/images/audit-teammember.png b/_docs/master/usage-and-performance-tools/images/audit-teammember.png index 73fa55a29d..8c9b5bcbb9 100644 Binary files a/_docs/master/usage-and-performance-tools/images/audit-teammember.png and b/_docs/master/usage-and-performance-tools/images/audit-teammember.png differ diff --git a/_site/docs/master/configuring-metabase/images/AccountSetup.png b/_site/docs/master/configuring-metabase/images/AccountSetup.png index d3bf7c1ba2..e19016a0b9 100644 Binary files a/_site/docs/master/configuring-metabase/images/AccountSetup.png and b/_site/docs/master/configuring-metabase/images/AccountSetup.png differ diff --git a/_site/docs/master/configuring-metabase/images/table-view.png b/_site/docs/master/configuring-metabase/images/table-view.png index 7b253a5ff6..b561a8dc44 100644 Binary files a/_site/docs/master/configuring-metabase/images/table-view.png and b/_site/docs/master/configuring-metabase/images/table-view.png differ diff --git a/_site/docs/master/dashboards/images/add-filter.png b/_site/docs/master/dashboards/images/add-filter.png index 23fae3c80c..7206824958 100644 Binary files a/_site/docs/master/dashboards/images/add-filter.png and b/_site/docs/master/dashboards/images/add-filter.png differ diff --git a/_site/docs/master/dashboards/images/add_series.png b/_site/docs/master/dashboards/images/add_series.png index fe91f2db8b..23fae3c80c 100644 Binary files a/_site/docs/master/dashboards/images/add_series.png and b/_site/docs/master/dashboards/images/add_series.png differ diff --git a/_site/docs/master/dashboards/images/autorefresh.png b/_site/docs/master/dashboards/images/autorefresh.png index 94609cbf0d..a1c1f9a61a 100644 Binary files a/_site/docs/master/dashboards/images/autorefresh.png and b/_site/docs/master/dashboards/images/autorefresh.png differ diff --git a/_site/docs/master/dashboards/images/button-form.png b/_site/docs/master/dashboards/images/button-form.png index 3d205c8796..ee763c576e 100644 Binary files a/_site/docs/master/dashboards/images/button-form.png and b/_site/docs/master/dashboards/images/button-form.png differ diff --git a/_site/docs/master/dashboards/images/click-behavior-icon.png b/_site/docs/master/dashboards/images/click-behavior-icon.png index 8f34234f01..2a41076032 100644 Binary files a/_site/docs/master/dashboards/images/click-behavior-icon.png and b/_site/docs/master/dashboards/images/click-behavior-icon.png differ diff --git a/_site/docs/master/dashboards/images/dashboard-filter-action.png b/_site/docs/master/dashboards/images/dashboard-filter-action.png index 3147da6c90..3c1075bed2 100644 Binary files a/_site/docs/master/dashboards/images/dashboard-filter-action.png and b/_site/docs/master/dashboards/images/dashboard-filter-action.png differ diff --git a/_site/docs/master/dashboards/images/dashboard.png b/_site/docs/master/dashboards/images/dashboard.png index 1805c738fe..155d34f84e 100644 Binary files a/_site/docs/master/dashboards/images/dashboard.png and b/_site/docs/master/dashboards/images/dashboard.png differ diff --git a/_site/docs/master/dashboards/images/drill-through-menu.png b/_site/docs/master/dashboards/images/drill-through-menu.png index 9d2e0c76a7..cc2c707278 100644 Binary files a/_site/docs/master/dashboards/images/drill-through-menu.png and b/_site/docs/master/dashboards/images/drill-through-menu.png differ diff --git a/_site/docs/master/dashboards/images/filters.png b/_site/docs/master/dashboards/images/filters.png index 2a41076032..c95f02b4aa 100644 Binary files a/_site/docs/master/dashboards/images/filters.png and b/_site/docs/master/dashboards/images/filters.png differ diff --git a/_site/docs/master/dashboards/images/foreign-key-linked-filters.png b/_site/docs/master/dashboards/images/foreign-key-linked-filters.png index 4a4a249b2b..b060334122 100644 Binary files a/_site/docs/master/dashboards/images/foreign-key-linked-filters.png and b/_site/docs/master/dashboards/images/foreign-key-linked-filters.png differ diff --git a/_site/docs/master/dashboards/images/linked-filter.png b/_site/docs/master/dashboards/images/linked-filter.png index c359f99030..4fcbddf7a4 100644 Binary files a/_site/docs/master/dashboards/images/linked-filter.png and b/_site/docs/master/dashboards/images/linked-filter.png differ diff --git a/_site/docs/master/dashboards/images/markdown.png b/_site/docs/master/dashboards/images/markdown.png index ba5b16adda..c9c10c5129 100644 Binary files a/_site/docs/master/dashboards/images/markdown.png and b/_site/docs/master/dashboards/images/markdown.png differ diff --git a/_site/docs/master/dashboards/images/wiring-up-filter.png b/_site/docs/master/dashboards/images/wiring-up-filter.png index e9e9e50b5d..a5066926cc 100644 Binary files a/_site/docs/master/dashboards/images/wiring-up-filter.png and b/_site/docs/master/dashboards/images/wiring-up-filter.png differ diff --git a/_site/docs/master/data-modeling/images/formula.png b/_site/docs/master/data-modeling/images/formula.png index 0f02f4868c..8e020111ca 100644 Binary files a/_site/docs/master/data-modeling/images/formula.png and b/_site/docs/master/data-modeling/images/formula.png differ diff --git a/_site/docs/master/data-modeling/images/table-metadata.png b/_site/docs/master/data-modeling/images/table-metadata.png index 73d3c7c159..d16aabea01 100644 Binary files a/_site/docs/master/data-modeling/images/table-metadata.png and b/_site/docs/master/data-modeling/images/table-metadata.png differ diff --git a/_site/docs/master/databases/connections/bigquery.html b/_site/docs/master/databases/connections/bigquery.html index 9a83bcc0e5..aae541552d 100644 --- a/_site/docs/master/databases/connections/bigquery.html +++ b/_site/docs/master/databases/connections/bigquery.html @@ -4875,12 +4875,6 @@

          Model features

          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.

          -

          Danger zone

          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 @@

          Configuring SSL via the command li

          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.

          +

          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.

          General connectivity concerns

          diff --git a/_site/docs/master/databases/images/atlas-connect.png b/_site/docs/master/databases/images/atlas-connect.png index 4377047e1f..cda55015c1 100644 Binary files a/_site/docs/master/databases/images/atlas-connect.png and b/_site/docs/master/databases/images/atlas-connect.png differ diff --git a/_site/docs/master/databases/images/connection-string.png b/_site/docs/master/databases/images/connection-string.png index ab5411a6fb..edba66aced 100644 Binary files a/_site/docs/master/databases/images/connection-string.png and b/_site/docs/master/databases/images/connection-string.png differ diff --git a/_site/docs/master/databases/images/snowflake-copy-account-url.png b/_site/docs/master/databases/images/snowflake-copy-account-url.png index 82457d4e06..cf9a18f67a 100644 Binary files a/_site/docs/master/databases/images/snowflake-copy-account-url.png and b/_site/docs/master/databases/images/snowflake-copy-account-url.png differ diff --git a/_site/docs/master/developers-guide/community-drivers.html b/_site/docs/master/developers-guide/community-drivers.html index d3fa2def58..d25e57d856 100644 --- a/_site/docs/master/developers-guide/community-drivers.html +++ b/_site/docs/master/developers-guide/community-drivers.html @@ -4745,7 +4745,7 @@

          Community drivers

          DB2 GitHub stars - GitHub (Pre-)Release Date + Github (Pre-)Release Date Dremio diff --git a/_site/docs/master/developers-guide/devenv.html b/_site/docs/master/developers-guide/devenv.html index ee47a6354e..af5a1501a1 100644 --- a/_site/docs/master/developers-guide/devenv.html +++ b/_site/docs/master/developers-guide/devenv.html @@ -4716,8 +4716,6 @@

          Quick start

          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.

          -

          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/_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 @@

          Metabase 0.56.0

          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.

          @@ -4768,6 +4764,7 @@

          Metabase 0.55.0

          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.

          @@ -4804,11 +4801,9 @@

          Metabase 0.55.0

        • 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 +

        • All settings formerly in a 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.

          Metabase 0.54.12

          diff --git a/_site/docs/master/developers-guide/frontend.html b/_site/docs/master/developers-guide/frontend.html index 0bc0af6114..01a0017488 100644 --- a/_site/docs/master/developers-guide/frontend.html +++ b/_site/docs/master/developers-guide/frontend.html @@ -4963,7 +4963,7 @@

          JavaScript Conventions

            -
          • 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”.
          
          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

          isSaveEnabled?: boolean

          Whether to show the save button.

          onBeforeSave?: (
              question: undefined | MetabaseQuestion,
              context: { isNewQuestion: boolean },
          ) => Promise<void>

          A callback function that triggers before saving. Only relevant when isSaveEnabled = true

          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

          -
          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

          +
          onSave?: (
              question: undefined | MetabaseQuestion,
              context: { isNewQuestion: boolean },
          ) => void

          A callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true

          questionId: null | SdkQuestionId

          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 @@

        • OptionalisSaveEnabled?: boolean

          Whether to show the save button.

        • OptionalonBeforeSave?: (
              question: undefined | MetabaseQuestion,
              context: { isNewQuestion: boolean },
          ) => Promise<void>

          A callback function that triggers before saving. Only relevant when isSaveEnabled = true

        • OptionalonRun?: (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

          -
        • OptionalonSave?: (
              question: MetabaseQuestion,
              context: { dashboardTabId?: number; isNewQuestion: boolean },
          ) => void

          A callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true

          +
        • OptionalonSave?: (
              question: undefined | MetabaseQuestion,
              context: { isNewQuestion: boolean },
          ) => void

          A callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true

        • Optionalplugins?: MetabasePluginsConfig
        • OptionaltargetCollection?: SdkCollectionId

          The collection to save the question to. This will hide the collection picker from the save modal. Only applicable to interactive questions.

        • OptionalwithDownloads?: boolean

          Enables the ability to download results in the interactive question.

        • Returns Element

          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

          isSaveEnabled?: boolean

          Whether to show the save button.

          onBeforeSave?: (
              question: undefined | MetabaseQuestion,
              context: { isNewQuestion: boolean },
          ) => Promise<void>

          A callback function that triggers before saving. Only relevant when isSaveEnabled = true

          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

          -
          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

          +
          onSave?: (
              question: undefined | MetabaseQuestion,
              context: { isNewQuestion: boolean },
          ) => void

          A callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true

          targetCollection?: SdkCollectionId

          The collection to save the question to. This will hide the collection picker from the save modal. Only applicable to interactive questions.

          withDownloads?: boolean

          Enables 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

          isSaveEnabled?: boolean

          Whether to show the save button.

          onBeforeSave?: (
              question: undefined | MetabaseQuestion,
              context: { isNewQuestion: boolean },
          ) => Promise<void>

          A callback function that triggers before saving. Only relevant when isSaveEnabled = true

          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

          -
          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

          +
          onSave?: (
              question: undefined | MetabaseQuestion,
              context: { isNewQuestion: boolean },
          ) => void

          A callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true

          A custom style object to be added to the root element.

          targetCollection?: SdkCollectionId

          The collection to save the question to. This will hide the collection picker from the save modal. Only applicable to interactive questions.

          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
              • OptionalclassName?: string

                A custom class name to be added to the root element.

                -
              • dashboardId: SdkDashboardId

                The ID of the dashboard. +

                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: {
                        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;
                    } & {}
                    • OptionaldrillThroughQuestionHeight?: Height<string | number>

                      Height of a question component when drilled from the dashboard to a question level.

                      +
                    • OptionaldrillThroughQuestionProps?: DrillThroughQuestionProps

                      Props of a question component when drilled from the dashboard to a question level.

                      +
                    • Optionalplugins?: MetabasePluginsConfig

                      Additional mapper function to override or add drill-down menu. See the implementing custom actions section for more details.

                      +
                    • OptionalrenderDrillThroughQuestion?: () => 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
                    -
                • OptionaldataPickerProps?: Pick<InteractiveQuestionProps, "entityTypes">

                  Additional props to pass to the query builder rendered by InteractiveQuestion when creating a new dashboard question.

                  -
                • OptionaldrillThroughQuestionHeight?: Height<string | number>

                  Height of a question component when drilled from the dashboard to a question level.

                  -
                • OptionaldrillThroughQuestionProps?: DrillThroughQuestionProps

                  Props of a question component when drilled from the dashboard to a question level.

                  -
                • OptionalhiddenParameters?: string[]

                  A list of parameters to hide. +

                • OptionalhiddenParameters?: string[]

                  A list of parameters to hide.

                  -
                • OptionalinitialParameters?: ParameterValues

                  Query parameters for the dashboard. For a single option, use a string value, and use a list of strings for multiple options. +

                • OptionalinitialParameters?: ParameterValues

                  Query parameters for the dashboard. For a single option, use a string value, and use a list of strings for multiple options.

                  -
                • OptionalonLoad?: (dashboard: null | MetabaseDashboard) => void

                  Callback that is called when the dashboard is loaded.

                  -
                • OptionalonLoadWithoutCards?: (dashboard: null | MetabaseDashboard) => void

                  Callback that is called when the dashboard is loaded without cards.

                  -
                • Optionalplugins?: MetabasePluginsConfig

                  Additional mapper function to override or add drill-down menu. See the implementing custom actions section for more details.

                  -
                • OptionalrenderDrillThroughQuestion?: () => ReactNode

                  A custom React component to render the question layout. -Use namespaced InteractiveQuestion components to build the layout.

                  -
                • Optionalstyle?: CSSProperties

                  A custom style object to be added to the root element.

                  -
                • OptionalwithCardTitle?: boolean

                  Whether the dashboard cards should display a title.

                  -
                • OptionalwithDownloads?: boolean

                  Whether to hide the download button.

                  -
                • OptionalwithTitle?: boolean

                  Whether the dashboard should display a title.

                  -

            Returns Element

          +
        • OptionalwithCardTitle?: boolean

          Whether the dashboard cards should display a title.

          +
        • OptionalwithDownloads?: boolean

          Whether to hide the download button.

          +
        • OptionalwithTitle?: boolean

          Whether the dashboard should display a title.

          +
          • OptionalclassName?: string

            A custom class name to be added to the root element.

            +
          • Optionalstyle?: CSSProperties

            A custom style object to be added to the root element.

            +
          • OptionalonLoad?: (dashboard: null | MetabaseDashboard) => void

            Callback that is called when the dashboard is loaded.

            +
          • OptionalonLoadWithoutCards?: (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
          • -
            dataPickerProps?: Pick<InteractiveQuestionProps, "entityTypes">

            Additional props to pass to the query builder rendered by InteractiveQuestion when creating a new dashboard question.

            drillThroughQuestionHeight?: Height<string | number>

            Height of a question component when drilled from the dashboard to a question level.

            drillThroughQuestionProps?: 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 @@
          • OptionalisSaveEnabled?: boolean

            Whether to show the save button.

          • OptionalonBeforeSave?: (
                question: undefined | MetabaseQuestion,
                context: { isNewQuestion: boolean },
            ) => Promise<void>

            A callback function that triggers before saving. Only relevant when isSaveEnabled = true

          • OptionalonRun?: (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

            -
          • OptionalonSave?: (
                question: MetabaseQuestion,
                context: { dashboardTabId?: number; isNewQuestion: boolean },
            ) => void

            A callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true

            +
          • OptionalonSave?: (
                question: undefined | MetabaseQuestion,
                context: { isNewQuestion: boolean },
            ) => void

            A callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true

          • Optionalplugins?: MetabasePluginsConfig
          • Optionalstyle?: CSSProperties

            A custom style object to be added to the root element.

          • OptionaltargetCollection?: SdkCollectionId

            The collection to save the question to. This will hide the collection picker from the save modal. Only applicable to interactive questions.

          • Optionaltitle?: 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 @@
          • withCardTitle?: boolean

            Whether the dashboard cards should display a title.

            withDownloads?: boolean

            Whether to hide the download button.

            withTitle?: boolean

            Whether 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

            dataPickerProps?: Pick<InteractiveQuestionProps, "entityTypes">

            Additional props to pass to the query builder rendered by InteractiveQuestion when creating a new dashboard question.

            drillThroughQuestionHeight?: Height<string | number>

            Height of a question component when drilled from the dashboard to a question level.

            drillThroughQuestionProps?: 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 @@
          • OptionalisSaveEnabled?: boolean

            Whether to show the save button.

          • OptionalonBeforeSave?: (
                question: undefined | MetabaseQuestion,
                context: { isNewQuestion: boolean },
            ) => Promise<void>

            A callback function that triggers before saving. Only relevant when isSaveEnabled = true

          • OptionalonRun?: (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

            -
          • OptionalonSave?: (
                question: MetabaseQuestion,
                context: { dashboardTabId?: number; isNewQuestion: boolean },
            ) => void

            A callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true

            +
          • OptionalonSave?: (
                question: undefined | MetabaseQuestion,
                context: { isNewQuestion: boolean },
            ) => void

            A callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true

          • Optionalplugins?: MetabasePluginsConfig
          • Optionalstyle?: CSSProperties

            A custom style object to be added to the root element.

          • OptionaltargetCollection?: SdkCollectionId

            The collection to save the question to. This will hide the collection picker from the save modal. Only applicable to interactive questions.

          • Optionaltitle?: 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 @@
          • withCardTitle?: boolean

            Whether the dashboard cards should display a title.

            withDownloads?: boolean

            Whether to hide the download button.

            withTitle?: boolean

            Whether 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 @@
          • OptionalisSaveEnabled?: boolean

            Whether to show the save button.

          • OptionalonBeforeSave?: (
                question: undefined | MetabaseQuestion,
                context: { isNewQuestion: boolean },
            ) => Promise<void>

            A callback function that triggers before saving. Only relevant when isSaveEnabled = true

          • OptionalonRun?: (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

            -
          • OptionalonSave?: (
                question: MetabaseQuestion,
                context: { dashboardTabId?: number; isNewQuestion: boolean },
            ) => void

            A callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true

            +
          • OptionalonSave?: (
                question: undefined | MetabaseQuestion,
                context: { isNewQuestion: boolean },
            ) => void

            A callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true

          • Optionalplugins?: 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

            isSaveEnabled?: boolean

            Whether to show the save button.

            onBeforeSave?: (
                question: undefined | MetabaseQuestion,
                context: { isNewQuestion: boolean },
            ) => Promise<void>

            A callback function that triggers before saving. Only relevant when isSaveEnabled = true

            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

            -
            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

            +
            onSave?: (
                question: undefined | MetabaseQuestion,
                context: { isNewQuestion: boolean },
            ) => void

            A callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true

            questionId: null | SdkQuestionId

            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

            dataPickerProps?: Pick<InteractiveQuestionProps, "entityTypes">

            Additional props to pass to the query builder rendered by InteractiveQuestion when creating a new dashboard question.

            drillThroughQuestionHeight?: Height<string | number>

            Height of a question component when drilled from the dashboard to a question level.

            drillThroughQuestionProps?: 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 @@
          • OptionalisSaveEnabled?: boolean

            Whether to show the save button.

          • OptionalonBeforeSave?: (
                question: undefined | MetabaseQuestion,
                context: { isNewQuestion: boolean },
            ) => Promise<void>

            A callback function that triggers before saving. Only relevant when isSaveEnabled = true

          • OptionalonRun?: (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

            -
          • OptionalonSave?: (
                question: MetabaseQuestion,
                context: { dashboardTabId?: number; isNewQuestion: boolean },
            ) => void

            A callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true

            +
          • OptionalonSave?: (
                question: undefined | MetabaseQuestion,
                context: { isNewQuestion: boolean },
            ) => void

            A callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true

          • Optionalplugins?: MetabasePluginsConfig
          • Optionalstyle?: CSSProperties

            A custom style object to be added to the root element.

          • OptionaltargetCollection?: SdkCollectionId

            The collection to save the question to. This will hide the collection picker from the save modal. Only applicable to interactive questions.

          • Optionaltitle?: 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 @@
            withCardTitle?: boolean

            Whether the dashboard cards should display a title.

            withDownloads?: boolean

            Whether to hide the download button.

            withTitle?: boolean

            Whether 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 @@
          • Optionalstyle?: CSSProperties

            A custom style object to be added to the root element.

          • Optionalwidth?: Width<string | number>

            A number or string specifying a CSS size value that specifies the width of the component

            -
          • OptionalwithChartTypeSelector?: boolean
          • OptionalwithDownloads?: boolean

            Enables the ability to download results in the interactive question.

            -
          • Returns ReactNode

            +
          • OptionalwithChartTypeSelector?: boolean
          • Returns ReactNode

            \ No newline at end of file diff --git a/_site/docs/master/embedding/sdk/api/StaticQuestionProps.html b/_site/docs/master/embedding/sdk/api/StaticQuestionProps.html index 5355f8d73b..949ad0899b 100644 --- a/_site/docs/master/embedding/sdk/api/StaticQuestionProps.html +++ b/_site/docs/master/embedding/sdk/api/StaticQuestionProps.html @@ -23,14 +23,13 @@ -

            Interface StaticQuestionProps

            interface StaticQuestionProps {
                className?: string;
                height?: Height<string | number>;
                initialSqlParameters?: SqlParameterValues;
                questionId: null | SdkQuestionId;
                style?: CSSProperties;
                width?: Width<string | number>;
                withChartTypeSelector?: boolean;
                withDownloads?: boolean;
            }
            Index

            Properties

            className? +

            Interface StaticQuestionProps

            interface StaticQuestionProps {
                className?: string;
                height?: Height<string | number>;
                initialSqlParameters?: SqlParameterValues;
                questionId: null | SdkQuestionId;
                style?: CSSProperties;
                width?: Width<string | number>;
                withChartTypeSelector?: boolean;
            }
            Index

            Properties

            className?: string

            A custom class name to be added to the root element.

            height?: Height<string | number>

            A number or string specifying a CSS size value that specifies the height of the component

            initialSqlParameters?: SqlParameterValues

            Initial values for the SQL parameters.

            @@ -47,7 +46,6 @@

            A custom style object to be added to the root element.

            width?: Width<string | number>

            A number or string specifying a CSS size value that specifies the width of the component

            -
            withChartTypeSelector?: boolean
            withDownloads?: boolean

            Enables the ability to download results in the interactive question.

            -

            +
            withChartTypeSelector?: boolean

            \ No newline at end of file diff --git a/_site/docs/master/embedding/sdk/api/assets/search.js b/_site/docs/master/embedding/sdk/api/assets/search.js index a91212dd5e..5649aeca11 100644 --- a/_site/docs/master/embedding/sdk/api/assets/search.js +++ b/_site/docs/master/embedding/sdk/api/assets/search.js @@ -1 +1 @@ -window.searchData = "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"; \ No newline at end of file +window.searchData = "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"; \ No newline at end of file diff --git a/_site/docs/master/embedding/sdk/dashboards.html b/_site/docs/master/embedding/sdk/dashboards.html index 272a77400a..45edb423cb 100644 --- a/_site/docs/master/embedding/sdk/dashboards.html +++ b/_site/docs/master/embedding/sdk/dashboards.html @@ -4755,11 +4755,6 @@

            Props

            SdkDashboardId The ID of the dashboard.
            This is either:
            - the numerical ID when accessing a dashboard link, i.e. http://localhost:3000/dashboard/1-my-dashboard where the ID is 1
            - 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 - - dataPickerProps? - Pick<InteractiveQuestionProps, "entityTypes"> - Additional props to pass to the query builder rendered by InteractiveQuestion when creating a new dashboard question. - drillThroughQuestionHeight? Height<string | number> @@ -4854,11 +4849,6 @@

            Props

            SdkDashboardId The ID of the dashboard.
            This is either:
            - the numerical ID when accessing a dashboard link, i.e. http://localhost:3000/dashboard/1-my-dashboard where the ID is 1
            - 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 - - dataPickerProps? - Pick<InteractiveQuestionProps, "entityTypes"> - Additional props to pass to the query builder rendered by InteractiveQuestion when creating a new dashboard question. - drillThroughQuestionHeight? Height<string | number> @@ -4953,11 +4943,6 @@

            Props

            SdkDashboardId The ID of the dashboard.
            This is either:
            - the numerical ID when accessing a dashboard link, i.e. http://localhost:3000/dashboard/1-my-dashboard where the ID is 1
            - 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 - - dataPickerProps? - Pick<InteractiveQuestionProps, "entityTypes"> - Additional props to pass to the query builder rendered by InteractiveQuestion when creating a new dashboard question. - drillThroughQuestionHeight? Height<string | number> diff --git a/_site/docs/master/embedding/sdk/introduction.html b/_site/docs/master/embedding/sdk/introduction.html index 8fa69182a2..16f48627c1 100644 --- a/_site/docs/master/embedding/sdk/introduction.html +++ b/_site/docs/master/embedding/sdk/introduction.html @@ -4819,7 +4819,7 @@

            Changelog

            Embedded analytics SDK on NPM

            -

            Check out the Metabase Embedded analytics SDK on NPM: metaba.se/sdk-npm.

            +

            Check out the Metabase Embedded analytics SDK on NPM: metaba.se/sdk.

            SDK limitations

            @@ -4831,13 +4831,7 @@

            SDK limitations

          • Subscriptions
          • Alerts
          • Server-side rendering (SSR)
          • - - -

            Other limitations:

            - -
            • Multiple interactive dashboards on the same application page. If you need to embed multiple dashboards on the same application page, you can embed static dashboards.
            • -
            • If you have Leaflet 1.x as a dependency in your app, you may run into compatibility issues. You can try using Leaflet 2.x instead.

            Issues, feature requests and support

            diff --git a/_site/docs/master/embedding/sdk/questions.html b/_site/docs/master/embedding/sdk/questions.html index 7af85895ef..705d97edc1 100644 --- a/_site/docs/master/embedding/sdk/questions.html +++ b/_site/docs/master/embedding/sdk/questions.html @@ -4812,11 +4812,6 @@

            Props

            boolean - - - withDownloads? - boolean - Enables the ability to download results in the interactive question. - @@ -4909,7 +4904,7 @@

            Props

            onSave? - (question: MetabaseQuestion, context: { dashboardTabId?: number; isNewQuestion: boolean; }) => void + (question: undefined | MetabaseQuestion, context: { isNewQuestion: boolean; }) => void A callback function that triggers when a user saves the question. Only relevant when isSaveEnabled = true diff --git a/_site/docs/master/developers-guide/security-token-scanner.html b/_site/docs/master/embedding/sdk/upgrade.html similarity index 96% rename from _site/docs/master/developers-guide/security-token-scanner.html rename to _site/docs/master/embedding/sdk/upgrade.html index cdf2232090..a379474af6 100644 --- a/_site/docs/master/developers-guide/security-token-scanner.html +++ b/_site/docs/master/embedding/sdk/upgrade.html @@ -6,7 +6,7 @@ - + + + \ No newline at end of file diff --git a/_site/docs/master/embedding/sdk/version.html b/_site/docs/master/embedding/sdk/version.html index 5d088cfbea..9bc9766c3a 100644 --- a/_site/docs/master/embedding/sdk/version.html +++ b/_site/docs/master/embedding/sdk/version.html @@ -4718,39 +4718,36 @@

            Embedded analytics SDK - versions

            The SDK stable version tracks with the Metabase version.

            -

            So, for example, if you’re on Metabase 53 (0.53.x, 1.53.x), any version 0.53.x of the @metabase/embedding-sdk-react npm package will be compatible.

            +

            So, for example, if you’re on Metabase 55 (0.55.x, 1.55.x), any version 0.55.x of the @metabase/embedding-sdk-react npm package will be compatible.

            -

            To simplify things, we publish dist-tags for each stable Metabase version. For example, to install the latest version of the SDK compatible with Metabase 53, run:

            +

            To simplify things, we publish dist-tags for each stable Metabase version. For example, to install the latest version of the SDK compatible with Metabase 55, run:

            -
            npm install @metabase/embedding-sdk-react@53-stable
            +
            npm install @metabase/embedding-sdk-react@55-stable
             

            To grab the latest version of the SDK that works with Metabase nightly builds, use the canary dist-tag.

            Minimum SDK version

            -

            52 is the minimum version supported for the Embedded analytics SDK.

            +

            Version 52 is the minimum version supported for the Embedded analytics SDK.

            -

            Version pinning when using the SDK with Metabase Cloud

            +

            Instances on Metabase Cloud will be pinned to a specific version

            -

            To pin your version of Metabase, go to Admin settings > Settings > Embedding. Go to the Embedded analytics SDK card and scroll to Version pinning and click Request version pinning.

            +

            By default, if you’re running on Metabase Cloud and using the Embedded analytics SDK, we’ll pin your version to avoid breaking changes.

            -

            Version pinning requirements

            +

            Normally, Metabase Cloud upgrades your Metabase as new versions roll out so you don’t have to deal with upgrades. But if you’re using the SDK with Metabase Cloud, you’ll want to upgrade manually to make sure your embeds don’t break when you upgrade both your Metabase and your SDK version.

            -

            To pin a version of Metabase, you must:

            +

            Manually pinning your instance version on Metabase Cloud

            -
              -
            • Be on Metabase Cloud (obviously)
            • -
            • Be on the Pro or Enterprise plans
            • -
            +

            To manually pin your version of Metabase:

            -

            Why you’d want to pin your Metabase Cloud version

            +
              +
            1. Go to Admin settings > Settings > Embedding.
            2. +
            3. Go to the Embedded analytics SDK card.
            4. +
            5. Scroll to Version pinning and click Request version pinning.
            6. +
            -

            Normally, Metabase Cloud upgrades your Metabase as new versions roll out so that you don’t have to deal with upgrades.

            - -

            But if you’re using the SDK with Metabase Cloud, you’ll want to upgrade manually to make sure your embeds don’t break when you upgrade both your Metabase and your SDK version.

            - -

            To upgrade manually, you can pin your Metabase version so that it stays in sync with the SDK version you’re using. That way you can choose when to upgrade your Metabase.

            +

            This will open a mailto link to our support team.

            diff --git a/_site/docs/master/exploration-and-organization/images/DataReference.png b/_site/docs/master/exploration-and-organization/images/DataReference.png index 5b8967a7b2..1b91e84ebc 100644 Binary files a/_site/docs/master/exploration-and-organization/images/DataReference.png and b/_site/docs/master/exploration-and-organization/images/DataReference.png differ diff --git a/_site/docs/master/exploration-and-organization/images/browse-data.png b/_site/docs/master/exploration-and-organization/images/browse-data.png index f857430ff8..9429442b26 100644 Binary files a/_site/docs/master/exploration-and-organization/images/browse-data.png and b/_site/docs/master/exploration-and-organization/images/browse-data.png differ diff --git a/_site/docs/master/exploration-and-organization/images/event-on-a-time-series.png b/_site/docs/master/exploration-and-organization/images/event-on-a-time-series.png index acc04a435b..66168ce82a 100644 Binary files a/_site/docs/master/exploration-and-organization/images/event-on-a-time-series.png and b/_site/docs/master/exploration-and-organization/images/event-on-a-time-series.png differ diff --git a/_site/docs/master/exploration-and-organization/images/pinned-show-viz.png b/_site/docs/master/exploration-and-organization/images/pinned-show-viz.png index 41ac861ee0..6c58b5e734 100644 Binary files a/_site/docs/master/exploration-and-organization/images/pinned-show-viz.png and b/_site/docs/master/exploration-and-organization/images/pinned-show-viz.png differ diff --git a/_site/docs/master/exploration-and-organization/images/question-checkbox.png b/_site/docs/master/exploration-and-organization/images/question-checkbox.png index d9ba8c5014..4887db0e22 100644 Binary files a/_site/docs/master/exploration-and-organization/images/question-checkbox.png and b/_site/docs/master/exploration-and-organization/images/question-checkbox.png differ diff --git a/_site/docs/master/exploration-and-organization/images/search-results.png b/_site/docs/master/exploration-and-organization/images/search-results.png index 1b91e84ebc..177b5b507a 100644 Binary files a/_site/docs/master/exploration-and-organization/images/search-results.png and b/_site/docs/master/exploration-and-organization/images/search-results.png differ diff --git a/_site/docs/master/installation-and-operation/images/AZPrivateLink.png b/_site/docs/master/installation-and-operation/images/AZPrivateLink.png index 1834491eb7..c520b55bdd 100644 Binary files a/_site/docs/master/installation-and-operation/images/AZPrivateLink.png and b/_site/docs/master/installation-and-operation/images/AZPrivateLink.png differ diff --git a/_site/docs/master/installation-and-operation/images/AZVNETintegration.png b/_site/docs/master/installation-and-operation/images/AZVNETintegration.png index 7bb1d7a4f0..f69b404401 100644 Binary files a/_site/docs/master/installation-and-operation/images/AZVNETintegration.png and b/_site/docs/master/installation-and-operation/images/AZVNETintegration.png differ diff --git a/_site/docs/master/installation-and-operation/images/AddRemoteHost.png b/_site/docs/master/installation-and-operation/images/AddRemoteHost.png index ab8def0988..a3bdb2b9c8 100644 Binary files a/_site/docs/master/installation-and-operation/images/AddRemoteHost.png and b/_site/docs/master/installation-and-operation/images/AddRemoteHost.png differ diff --git a/_site/docs/master/installation-and-operation/images/LocalProcessVisualVM.png b/_site/docs/master/installation-and-operation/images/LocalProcessVisualVM.png index f07a2758c5..d71e3e03d6 100644 Binary files a/_site/docs/master/installation-and-operation/images/LocalProcessVisualVM.png and b/_site/docs/master/installation-and-operation/images/LocalProcessVisualVM.png differ diff --git a/_site/docs/master/installation-and-operation/images/Metabase-AWS-SI.png b/_site/docs/master/installation-and-operation/images/Metabase-AWS-SI.png index d60c5504d6..6a49e9a6dc 100644 Binary files a/_site/docs/master/installation-and-operation/images/Metabase-AWS-SI.png and b/_site/docs/master/installation-and-operation/images/Metabase-AWS-SI.png differ diff --git a/_site/docs/master/installation-and-operation/images/OpenRemoteInstance.png b/_site/docs/master/installation-and-operation/images/OpenRemoteInstance.png index 454be8a831..fa97c0e30a 100644 Binary files a/_site/docs/master/installation-and-operation/images/OpenRemoteInstance.png and b/_site/docs/master/installation-and-operation/images/OpenRemoteInstance.png differ diff --git a/_site/docs/master/installation-and-operation/running-metabase-on-azure.html b/_site/docs/master/installation-and-operation/running-metabase-on-azure.html index f5fad7802a..1b42e54a2d 100644 --- a/_site/docs/master/installation-and-operation/running-metabase-on-azure.html +++ b/_site/docs/master/installation-and-operation/running-metabase-on-azure.html @@ -4807,7 +4807,7 @@

            Step 5: Create web applic
          • Options: Single container.
          • Image source: DockerHub.
          • Access Type: Public.
          • -
          • Image and tag: metabase/metabase:latest (or choose any other docker image tag of your preference, like our Enterprise Edition). To find the latest version, check our Community Edition Docker Hub repository and also our Enterprise Edition Docker Hub Repository.
          • +
          • Image and tag: metabase/metabase:latest (or choose any other docker image tag of your preference, like our Enterprise Edition). To find the latest version, check our Community Edition Dockerhub repository and also our Enterprise Edition Dockerhub Repository.
          • Startup command: Leave this field empty.
          • diff --git a/_site/docs/master/installation-and-operation/running-metabase-on-docker.html b/_site/docs/master/installation-and-operation/running-metabase-on-docker.html index d1357a9563..d299aeb7bc 100644 --- a/_site/docs/master/installation-and-operation/running-metabase-on-docker.html +++ b/_site/docs/master/installation-and-operation/running-metabase-on-docker.html @@ -49,7 +49,7 @@ - + @@ -59,7 +59,7 @@ - + @@ -4702,7 +4702,7 @@

            Running Metabase on Docker

            To get fast, reliable, and secure deployment with none of the work or hidden costs that come with self-hosting, check out Metabase Cloud.

            -

            Metabase provides an official Docker image via Docker Hub that can be used for deployments on any system that is running Docker.

            +

            Metabase provides an official Docker image via Dockerhub that can be used for deployments on any system that is running Docker.

            If you’re trying to upgrade your Metabase version on Docker, check out these upgrading instructions.

            diff --git a/_site/docs/master/installation-and-operation/upgrading-metabase.html b/_site/docs/master/installation-and-operation/upgrading-metabase.html index 604447021d..09656c5c5c 100644 --- a/_site/docs/master/installation-and-operation/upgrading-metabase.html +++ b/_site/docs/master/installation-and-operation/upgrading-metabase.html @@ -49,7 +49,7 @@ - + @@ -59,7 +59,7 @@ - + @@ -4698,11 +4698,17 @@
            Other resources

            Upgrading Metabase

            -

            This page covers how to upgrade to a new Metabase release.

            +

            This page covers how to upgrade to a new Metabase release.

            + +

            Upgrading Metabase Cloud

            -

            If you’re on a Metabase Cloud plan, we’ll upgrade your Metabase automatically with each new release; no action needed on your end.

            +

            If you’re on a Metabase Cloud plan, we’ll upgrade your Metabase automatically with each new release; no action needed on your end (unless you’re using the Embedded analytics SDK).

            How soon we upgrade you depends on the type of release:

            @@ -4713,6 +4719,14 @@

            Upgrading Metabase Cloud

            Cloud customers can request an early upgrade by emailing support at help@metabase.com. Include the URL of the Metabase you want us to upgrade.

            +

            Instances using the Embedded analtyics SDK on Metabase Cloud must request an upgrade

            + +

            If you’re using the Embedded analytics SDK on Metabase Cloud, we pin your version so that it doesn’t upgrade automatically, as you should test the changes before upgrading.

            + +

            To upgrade your Metabase, you’ll need to request an upgrade by contacting support.

            + +

            See our upgrade guide for the Embedded analytics SDK.

            +

            Upgrading a self-hosted Metabase

            Here are the steps for upgrading to a new Metabase version (major or minor):

            diff --git a/_site/docs/master/people-and-groups/images/JWT-auth-form.png b/_site/docs/master/people-and-groups/images/JWT-auth-form.png index ed91fea29b..ce5b0e7415 100644 Binary files a/_site/docs/master/people-and-groups/images/JWT-auth-form.png and b/_site/docs/master/people-and-groups/images/JWT-auth-form.png differ diff --git a/_site/docs/master/people-and-groups/images/auth0callbackurl.png b/_site/docs/master/people-and-groups/images/auth0callbackurl.png index 8371279d7d..dda21e391d 100644 Binary files a/_site/docs/master/people-and-groups/images/auth0callbackurl.png and b/_site/docs/master/people-and-groups/images/auth0callbackurl.png differ diff --git a/_site/docs/master/people-and-groups/images/auth0createapp.png b/_site/docs/master/people-and-groups/images/auth0createapp.png index 2fb7bd3907..6fbdab7fcf 100644 Binary files a/_site/docs/master/people-and-groups/images/auth0createapp.png and b/_site/docs/master/people-and-groups/images/auth0createapp.png differ diff --git a/_site/docs/master/people-and-groups/images/auth0regularapp.png b/_site/docs/master/people-and-groups/images/auth0regularapp.png index 7d23c598f1..6fbdab7fcf 100644 Binary files a/_site/docs/master/people-and-groups/images/auth0regularapp.png and b/_site/docs/master/people-and-groups/images/auth0regularapp.png differ diff --git a/_site/docs/master/people-and-groups/images/auth0saml2addon.png b/_site/docs/master/people-and-groups/images/auth0saml2addon.png index 6fbdab7fcf..8926f599ba 100644 Binary files a/_site/docs/master/people-and-groups/images/auth0saml2addon.png and b/_site/docs/master/people-and-groups/images/auth0saml2addon.png differ diff --git a/_site/docs/master/people-and-groups/images/auth0samlmappings.png b/_site/docs/master/people-and-groups/images/auth0samlmappings.png index a673bc98ba..6fbdab7fcf 100644 Binary files a/_site/docs/master/people-and-groups/images/auth0samlmappings.png and b/_site/docs/master/people-and-groups/images/auth0samlmappings.png differ diff --git a/_site/docs/master/people-and-groups/images/auth0samlusage.png b/_site/docs/master/people-and-groups/images/auth0samlusage.png index 7dbf8c7523..6fbdab7fcf 100644 Binary files a/_site/docs/master/people-and-groups/images/auth0samlusage.png and b/_site/docs/master/people-and-groups/images/auth0samlusage.png differ diff --git a/_site/docs/master/people-and-groups/images/groups.png b/_site/docs/master/people-and-groups/images/groups.png index 759a222b61..8926f599ba 100644 Binary files a/_site/docs/master/people-and-groups/images/groups.png and b/_site/docs/master/people-and-groups/images/groups.png differ diff --git a/_site/docs/master/people-and-groups/images/okta-group-attribute.png b/_site/docs/master/people-and-groups/images/okta-group-attribute.png index baf8cdc518..a48ae1a137 100644 Binary files a/_site/docs/master/people-and-groups/images/okta-group-attribute.png and b/_site/docs/master/people-and-groups/images/okta-group-attribute.png differ diff --git a/_site/docs/master/people-and-groups/images/saml-azure-step-1.png b/_site/docs/master/people-and-groups/images/saml-azure-step-1.png index 4becab567e..e8ae330628 100644 Binary files a/_site/docs/master/people-and-groups/images/saml-azure-step-1.png and b/_site/docs/master/people-and-groups/images/saml-azure-step-1.png differ diff --git a/_site/docs/master/people-and-groups/images/saml-okta-groups.png b/_site/docs/master/people-and-groups/images/saml-okta-groups.png index 9df2d9fb1d..98a4a6fc63 100644 Binary files a/_site/docs/master/people-and-groups/images/saml-okta-groups.png and b/_site/docs/master/people-and-groups/images/saml-okta-groups.png differ diff --git a/_site/docs/master/people-and-groups/saml-google.html b/_site/docs/master/people-and-groups/saml-google.html index 65f2ac9b2c..98d2504f4a 100644 --- a/_site/docs/master/people-and-groups/saml-google.html +++ b/_site/docs/master/people-and-groups/saml-google.html @@ -4793,12 +4793,7 @@

            Setting up attribute mappings

            Setting up synchronize group membership

              -
            1. In Google Admin, you can EITHER: - -
            2. +
            3. In Google Admin, setup a multi-value custom user attribute for your users (recommended if you manage multiple SAML app permissions in Google or do not have existing Google Groups that align with your desired Metabase groups) OR map to existing Google Groups.
            4. Follow the instructions for Configuring the group schema using the App attribute that you used in Google as the Group attribute name in Metabase.
            diff --git a/_site/docs/master/permissions/database-routing.html b/_site/docs/master/permissions/database-routing.html index 79378f04dc..4efb966df4 100644 --- a/_site/docs/master/permissions/database-routing.html +++ b/_site/docs/master/permissions/database-routing.html @@ -4730,7 +4730,6 @@

            Database routing

            Databases that support database routing