Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
151 changes: 148 additions & 3 deletions _docs/master/api.html
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,52 @@
"$ref" : "#/components/schemas/metabase-enterprise.action-v2.api.api-action-expression"
} ]
},
"metabase-enterprise.dependencies.api.card-body" : {
"type" : "object",
"properties" : {
"dataset_query" : {
"description" : "Value must be a map.",
"type" : "object",
"properties" : { }
},
"id" : {
"description" : "value must be an integer greater than zero.",
"type" : "integer",
"minimum" : 1
},
"result_metadata" : {
"$ref" : "#/components/schemas/metabase.analyze.query-results.ResultsMetadata"
},
"type" : {
"$ref" : "#/components/schemas/metabase.queries.schema.card-type"
}
},
"required" : [ "id" ]
},
"metabase-enterprise.dependencies.api.transform-body" : {
"type" : "object",
"properties" : {
"id" : {
"description" : "value must be an integer greater than zero.",
"type" : "integer",
"minimum" : 1
},
"name" : {
"type" : "string"
},
"source" : {
"description" : "Value must be a map.",
"type" : "object",
"properties" : { }
},
"target" : {
"description" : "Value must be a map.",
"type" : "object",
"properties" : { }
}
},
"required" : [ "id" ]
},
"metabase-enterprise.metabot-v3.client.schema.message" : {
"type" : "object",
"properties" : {
Expand Down Expand Up @@ -4434,8 +4480,8 @@
"optional" : true
},
"metabase.lib.schema.metadata.desired-column-alias" : {
"type" : "string",
"minLength" : 1
"description" : "Name we should use as a column alias for a column in this stage of a query. The desired column alias in stage N\n becomes the source column alias in stage N+1. The right-hand side (RHS) in\n\n SELECT lhs AS rhs",
"type" : "string"
},
"metabase.lib.schema.metadata.fingerprint..fingerprint.global" : {
"description" : "Fingerprint values that Fields of all types should have.",
Expand Down Expand Up @@ -4714,7 +4760,8 @@
"optional" : true
},
"metabase.lib.schema.metadata.source-column-alias" : {
"$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string"
"description" : "Name for a column as returned/projected by the previous stage of the query or source Table/source Card. The\n left-hand side (LHS) of\n\n SELECT lhs AS rhs",
"type" : "string"
},
"metabase.lib.schema.middleware-options.middleware-options" : {
"description" : "Additional options that can be used to toggle middleware on or off.",
Expand Down Expand Up @@ -13330,6 +13377,104 @@
"tags" : [ "/api/ee/database-routing" ]
}
},
"/api/ee/dependencies/check_card" : {
"post" : {
"summary" : "POST /api/ee/dependencies/check_card",
"description" : "Check a proposed edit to a card, and return the card IDs for those cards this edit will break.",
"parameters" : [ ],
"responses" : {
"2XX" : {
"description" : "Successful response"
},
"4XX" : {
"description" : "Client error response"
},
"5XX" : {
"description" : "Server error response"
}
},
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/metabase-enterprise.dependencies.api.card-body"
}
}
}
},
"tags" : [ "/api/ee/dependencies" ]
}
},
"/api/ee/dependencies/check_snippet" : {
"post" : {
"summary" : "POST /api/ee/dependencies/check_snippet",
"description" : "Check a proposed edit to a native snippet, and return the cards, etc. which will be broken.",
"parameters" : [ ],
"responses" : {
"2XX" : {
"description" : "Successful response"
},
"4XX" : {
"description" : "Client error response"
},
"5XX" : {
"description" : "Server error response"
}
},
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
"type" : "object",
"properties" : {
"content" : {
"type" : "string"
},
"id" : {
"description" : "value must be an integer greater than zero.",
"type" : "integer",
"minimum" : 1
},
"name" : {
"description" : "snippet names cannot include '}' or start with spaces"
}
},
"required" : [ "id" ]
}
}
}
},
"tags" : [ "/api/ee/dependencies" ]
}
},
"/api/ee/dependencies/check_transform" : {
"post" : {
"summary" : "POST /api/ee/dependencies/check_transform",
"description" : "Check a proposed edit to a transform, and return the card, transform, etc. IDs for things that will break.",
"parameters" : [ ],
"responses" : {
"2XX" : {
"description" : "Successful response"
},
"4XX" : {
"description" : "Client error response"
},
"5XX" : {
"description" : "Server error response"
}
},
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/metabase-enterprise.dependencies.api.transform-body"
}
}
}
},
"tags" : [ "/api/ee/dependencies" ]
}
},
"/api/ee/document/" : {
"get" : {
"summary" : "GET /api/ee/document/",
Expand Down
11 changes: 6 additions & 5 deletions _docs/master/configuring-metabase/caching.md
Original file line number Diff line number Diff line change
Expand Up @@ -129,11 +129,12 @@ If you have databases connected to Metabase that are set to **Use default** poli
To set a caching policy for a dashboard, you must have [curate access](../permissions/collections#curate-access) to the dashboard's collection.

1. Go to your dashboard.
2. Click on the **info** icon.
3. Click **Caching policy**.
4. Select the [caching invalidation policy](#cache-invalidation-policies).
5. Optional: turn on [refresh cache automatically](#refresh-cache-automatically).
6. Save your changes.
2. Click on the **three dots** icon in the top-right corner of the dashboard and choose **Edit settings**.
3. By default, each question will use the database default caching settings. Click the current caching policy to change it.
4. Select the new [caching policy](#cache-invalidation-policies).
5. Optional: turn on [refresh cache automatically](#refresh-cache-automatically)
6. Optional: to clear the cache for all questions on a dashboard, click **Clear cache for this dashboard** at the bottom of the setting sidebar.
7. Save your changes.

### Question caching policy

Expand Down
2 changes: 1 addition & 1 deletion _docs/master/databases/uploads.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ To manage upload settings, admins can hit cmd/ctrl + K and search for "Settings
- [PostgreSQL](../databases/connections/postgresql)
- [MySQL](../databases/connections/mysql)
- [Redshift](../databases/connections/redshift)
- [ClickHouse](../databases/connections/clickhouse)
- [ClickHouse](../databases/connections/clickhouse) (only supported on ClickHouse Cloud)

## Setting up uploads

Expand Down
2 changes: 2 additions & 0 deletions _docs/master/developers-guide/driver-changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@ layout: new-docs
- Added `metabase.driver/type->database-type` multimethod that returns the database type for a given Metabase
type (from the type hierarchy) as a HoneySQL spec. This method handles general Metabase base types.

- Added driver multimethods driver/native-result-metadata, driver/validate-native-query-fields, driver.sql/resolve-field, driver.sql.normalize-unquoted-name, driver.sql.normalize/reserved-literal, driver.sql.references/find-used-fields, driver.sql.references/find-returned-fields, and driver.sql.references/field-references-impl for use with the :dependencies/native feature.

- Added `metabase.driver/insert-from-source!` multimethod that abstracts data insertion from various sources
into existing tables. This multimethod dispatches on both the driver and the data source type
(`:rows` or `:jsonl-file`). It allows drivers to optimize based on the data source type and returns the number
Expand Down
2 changes: 2 additions & 0 deletions _docs/master/embedding/embedded-analytics-js.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ summary: 'Getting started with Embedded Analytics JS for embedding Metabase enti

Embedded analytics JS lets you embed Metabase entities like questions, dashboards, or even the query builder into your own application using customizable components.

{% include shared/in-page-promo-embedding-workshop.html %}

Embedded Analytics JS is a JavaScript library built on top of Metabase's [Embedded Analytics React SDK](./sdk/introduction). But it does not require using React or setting up full SDK embedding.
Unlike with [interactive embedding](./interactive-embedding), where you embed the entire Metabase app in an iframe, Embedded Analytics JS lets you choose from a set of predefined components like a single chart, a dashboard with optional drill-through, or query builder, and customize those components.

Expand Down
4 changes: 1 addition & 3 deletions _docs/master/embedding/interactive-embedding.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,10 @@ redirect_from:

{% include shared/in-page-promo-embedding-workshop.html %}

**Interactive embedding** is what you want if you want to offer [multi-tenant, self-service analytics](/learn/metabase-basics/embedding/multi-tenant-self-service-analytics).
**Interactive embedding** lets you embed the entire Metabase app in an iframe. Interactive embedding integrates your [permissions](../permissions/introduction) and [SSO](../people-and-groups/start#authentication) to give people the right level of access to [query](../questions/query-builder/editor) and [drill-down](/learn/metabase-basics/querying-and-dashboards/questions/drill-through) into your data.

> If you are just starting out with Metabase embedding, consider using [Embedded Analytics JS](./embedded-analytics-js) instead of interactive embedding - it's an improved, more customizable option for embedding interactive Metabase elements. Interactive embedding remains fully supported.

Interactive embedding is the only type of embedding that integrates with your [permissions](../permissions/introduction) and [SSO](../people-and-groups/start#authentication) to give people the right level of access to [query](/glossary/query-builder) and [drill-down](/learn/metabase-basics/querying-and-dashboards/questions/drill-through) into your data.

## Interactive embedding demo

To get a feel for what you can do with interactive embedding, check out our [interactive embedding demo](/embedding-demo).
Expand Down
10 changes: 10 additions & 0 deletions _docs/master/embedding/sdk/ai-chat.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,11 @@ You can check out a [demo of the AI chat component](https://embedded-analytics-s
```typescript
{% include_file "{{ dirname }}/snippets/questions/ai-question.tsx" %}
```

## API reference

- [Component](./api/MetabotQuestion)
- [Props](./api/MetabotQuestionProps)

## Setting up AI chat

Expand All @@ -47,3 +49,11 @@ To configure your embedded AI chat in your Metabase:
When embedding the Metabot component in your app, you should specify a collection that embedded Metabot is allowed to use for creating queries. Embedded Metabot will only have access to that collection.

For tips and more, see [Metabot settings](../../ai/settings).

## Layout

Use the `layout` prop to specify which layout to use for the Metabot component:

- `auto` (default): Metabot uses the `stacked` layout on mobile screens, and a `sidebar` layout on larger screens.
- `stacked`: the question visualization stacks on top of the chat interface.
- `sidebar`: the question visualization appears to the left of the chat interface, which is on a sidebar on the right.
1 change: 1 addition & 0 deletions _docs/master/embedding/sdk/api/CreateQuestion.html
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
</div></li><li class="tsd-parameter"><h5 id="componentplugins"><code class="tsd-tag">Optional</code><span class="tsd-kind-property">componentPlugins</span><span class="tsd-signature-symbol">?: </span><a href="MetabasePluginsConfig.html" class="tsd-signature-type tsd-kind-type-alias">MetabasePluginsConfig</a></h5><div class="tsd-comment tsd-typography"><p>Additional mapper function to override or add drill-down menu</p>
</div></li><li class="tsd-parameter"><h5 id="entitytypes"><code class="tsd-tag">Optional</code><span class="tsd-kind-property">entityTypes</span><span class="tsd-signature-symbol">?: </span><a href="EmbeddingEntityType.html" class="tsd-signature-type tsd-kind-type-alias">EmbeddingEntityType</a><span class="tsd-signature-symbol">[]</span></h5><div class="tsd-comment tsd-typography"><p>An array that specifies which entity types are available in the data picker</p>
</div></li><li class="tsd-parameter"><h5 id="height"><code class="tsd-tag">Optional</code><span class="tsd-kind-property">height</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">Height</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">&gt;</span></h5><div class="tsd-comment tsd-typography"><p>A number or string specifying a CSS size value that specifies the height of the component</p>
</div></li><li class="tsd-parameter"><h5 id="hiddenparameters"><code class="tsd-tag">Optional</code><span class="tsd-kind-property">hiddenParameters</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5><div class="tsd-comment tsd-typography"><p>A list of parameters to hide.</p>
</div></li><li class="tsd-parameter"><h5 id="initialsqlparameters"><code class="tsd-tag">Optional</code><span class="tsd-kind-property">initialSqlParameters</span><span class="tsd-signature-symbol">?: </span><a href="SqlParameterValues.html" class="tsd-signature-type tsd-kind-type-alias">SqlParameterValues</a></h5><div class="tsd-comment tsd-typography"><p>Initial values for the SQL parameters.</p>
</div></li><li class="tsd-parameter"><h5 id="issaveenabled"><code class="tsd-tag">Optional</code><span class="tsd-kind-property">isSaveEnabled</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">boolean</span></h5><div class="tsd-comment tsd-typography"><p>Whether to show the save button.</p>
</div></li><li class="tsd-parameter"><h5 id="onbeforesave"><code class="tsd-tag">Optional</code><span class="tsd-kind-property">onBeforeSave</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-symbol">(</span><br/>    <span class="tsd-kind-parameter">question</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">undefined</span> <span class="tsd-signature-symbol">|</span> <a href="MetabaseQuestion.html" class="tsd-signature-type tsd-kind-interface">MetabaseQuestion</a><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-kind-parameter">context</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">isNewQuestion</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span> <span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">)</span> <span class="tsd-signature-symbol">=&gt;</span> <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise" class="tsd-signature-type external" target="_blank">Promise</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h5><div class="tsd-comment tsd-typography"><p>A callback function that triggers before saving. Only relevant when <code>isSaveEnabled = true</code></p>
Expand Down
Loading