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
257 changes: 3 additions & 254 deletions _docs/latest/api.json
Original file line number Diff line number Diff line change
Expand Up @@ -11720,7 +11720,7 @@
"additionalProperties" : false
},
"metabase.notification.api.notification.CreateNotificationParams" : {
"description" : "[[::NotificationApiInput]] for a create request: no `:id` at any level, so a caller cannot pick a primary key.",
"description" : "Notification schema for a create request, or for sending one that was never saved. Like\n FullyHydratedNotification but restricts templates to user-provided types only (no handlebars-resource),\n and carries no ids since the body has no row of its own.",
"oneOf" : [ {
"type" : "object",
"properties" : {
Expand Down Expand Up @@ -11811,13 +11811,6 @@
"payload" : {
"$ref" : "#/components/schemas/metabase.notification.models.CreateNotificationCardParams"
},
"payload_id" : {
"oneOf" : [ {
"type" : "integer"
}, {
"type" : "null"
} ]
},
"payload_type" : {
"type" : "string",
"enum" : [ "notification/dashboard", "notification/system-event", "notification/testing", "notification/card" ]
Expand Down Expand Up @@ -11917,13 +11910,6 @@
"required" : [ "channel_type" ]
}
},
"payload_id" : {
"oneOf" : [ {
"type" : "integer"
}, {
"type" : "null"
} ]
},
"payload_type" : {
"type" : "string",
"enum" : [ "notification/dashboard", "notification/system-event", "notification/testing", "notification/card" ]
Expand All @@ -11938,245 +11924,8 @@
"required" : [ "payload_type" ]
} ]
},
"metabase.notification.api.notification.NotificationApiInput" : {
"description" : "Notification schema for API input. Like FullyHydratedNotification but restricts templates\n to user-provided types only (no handlebars-resource).",
"oneOf" : [ {
"type" : "object",
"properties" : {
"payload_type" : {
"type" : "string",
"enum" : [ "notification/dashboard", "notification/system-event", "notification/testing", "notification/card" ]
},
"payload_id" : {
"oneOf" : [ {
"type" : "integer"
}, {
"type" : "null"
} ]
},
"handlers" : {
"type" : "array",
"items" : {
"type" : "object",
"properties" : {
"template_id" : {
"oneOf" : [ {
"description" : "value must be an integer greater than zero.",
"type" : "integer",
"minimum" : 1
}, {
"type" : "null"
} ]
},
"channel_id" : {
"oneOf" : [ {
"description" : "value must be an integer greater than zero.",
"type" : "integer",
"minimum" : 1
}, {
"type" : "null"
} ]
},
"id" : {
"description" : "value must be an integer greater than zero.",
"type" : "integer",
"minimum" : 1
},
"recipients" : {
"type" : "array",
"items" : {
"$ref" : "#/components/schemas/metabase.notification.models.NotificationRecipient"
}
},
"template" : {
"oneOf" : [ {
"$ref" : "#/components/schemas/metabase.channel.models.channel.ChannelTemplateUserProvided"
}, {
"type" : "null"
} ]
},
"channel_type" : { },
"channel" : {
"oneOf" : [ {
"$ref" : "#/components/schemas/metabase.channel.models.channel.Channel"
}, {
"type" : "null"
} ]
},
"notification_id" : {
"description" : "value must be an integer greater than zero.",
"type" : "integer",
"minimum" : 1
},
"active" : {
"oneOf" : [ {
"type" : "boolean"
}, {
"type" : "null"
} ]
}
},
"required" : [ "channel_type" ]
}
},
"id" : {
"description" : "value must be an integer greater than zero.",
"type" : "integer",
"minimum" : 1
},
"creator" : {
"oneOf" : [ {
"description" : "Value must be a map.",
"type" : "object",
"properties" : { }
}, {
"type" : "null"
} ]
},
"active" : {
"oneOf" : [ {
"type" : "boolean"
}, {
"type" : "null"
} ]
},
"payload" : {
"$ref" : "#/components/schemas/metabase.notification.models.NotificationCard"
},
"creator_id" : {
"oneOf" : [ {
"type" : "integer"
}, {
"type" : "null"
} ]
},
"subscriptions" : {
"type" : "array",
"items" : {
"$ref" : "#/components/schemas/metabase.notification.models.NotificationSubscription"
}
}
},
"required" : [ "payload_type", "payload" ]
}, {
"type" : "object",
"properties" : {
"active" : {
"oneOf" : [ {
"type" : "boolean"
}, {
"type" : "null"
} ]
},
"creator" : {
"oneOf" : [ {
"description" : "Value must be a map.",
"type" : "object",
"properties" : { }
}, {
"type" : "null"
} ]
},
"creator_id" : {
"oneOf" : [ {
"type" : "integer"
}, {
"type" : "null"
} ]
},
"handlers" : {
"type" : "array",
"items" : {
"type" : "object",
"properties" : {
"template_id" : {
"oneOf" : [ {
"description" : "value must be an integer greater than zero.",
"type" : "integer",
"minimum" : 1
}, {
"type" : "null"
} ]
},
"channel_id" : {
"oneOf" : [ {
"description" : "value must be an integer greater than zero.",
"type" : "integer",
"minimum" : 1
}, {
"type" : "null"
} ]
},
"id" : {
"description" : "value must be an integer greater than zero.",
"type" : "integer",
"minimum" : 1
},
"recipients" : {
"type" : "array",
"items" : {
"$ref" : "#/components/schemas/metabase.notification.models.NotificationRecipient"
}
},
"template" : {
"oneOf" : [ {
"$ref" : "#/components/schemas/metabase.channel.models.channel.ChannelTemplateUserProvided"
}, {
"type" : "null"
} ]
},
"channel_type" : { },
"channel" : {
"oneOf" : [ {
"$ref" : "#/components/schemas/metabase.channel.models.channel.Channel"
}, {
"type" : "null"
} ]
},
"notification_id" : {
"description" : "value must be an integer greater than zero.",
"type" : "integer",
"minimum" : 1
},
"active" : {
"oneOf" : [ {
"type" : "boolean"
}, {
"type" : "null"
} ]
}
},
"required" : [ "channel_type" ]
}
},
"id" : {
"description" : "value must be an integer greater than zero.",
"type" : "integer",
"minimum" : 1
},
"payload_id" : {
"oneOf" : [ {
"type" : "integer"
}, {
"type" : "null"
} ]
},
"payload_type" : {
"type" : "string",
"enum" : [ "notification/dashboard", "notification/system-event", "notification/testing", "notification/card" ]
},
"subscriptions" : {
"type" : "array",
"items" : {
"$ref" : "#/components/schemas/metabase.notification.models.NotificationSubscription"
}
}
},
"required" : [ "payload_type" ]
} ]
},
"metabase.notification.api.notification.NotificationApiUpdateInput" : {
"description" : "::NotificationApiInput restricted to what `notification-update-spec` writes. On PUT the URL,\n not the body, identifies the target (RFC 9110 §9.3.4), so a client-sent id is stripped.",
"description" : "Notification schema for an update request, restricted to what `notification-update-spec` writes. On PUT\n the URL, not the body, identifies the target (RFC 9110 §9.3.4), so a client-sent id is stripped.",
"oneOf" : [ {
"type" : "object",
"properties" : {
Expand Down Expand Up @@ -39687,7 +39436,7 @@
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/metabase.notification.api.notification.NotificationApiInput"
"$ref" : "#/components/schemas/metabase.notification.api.notification.CreateNotificationParams"
}
}
}
Expand Down
Binary file removed _docs/latest/cloud/images/migrate-button.png
Binary file not shown.
19 changes: 7 additions & 12 deletions _docs/latest/cloud/migrate/guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,21 +34,16 @@ You'll kick off the migration process in your self-hosted Metabase, and finish u

### Initiate your migration

In your Metabase, go to **Admin** > **Settings** > **Cloud**.
1. In your Metabase, go to **Admin** > **Settings**.
2. In the left sidebar, click **Cloud** and then **Try for free**.
3. Metabase will prompt you with a modal to let you know that your Metabase will be read-only while it automates the migration. Click **Migrate now**.
4. Metabase will take a snapshot of your application database (all your questions, models, dashboards, etc.). While it's snapshotting, it'll display a banner to let people know that they won't be able to create anything new. People will still be able to view questions and dashboards during this time.

In the **Migrate to Metabase Cloud** section, click on the **Get started** button.
![Read-only banner](../images/read-only-banner.png)

![Migrate to Metabase Cloud button](../images/migrate-button.png)
Once the snapshot upload completes:

Metabase will prompt you with a modal to let you know that your Metabase will be read-only while it automates the migration. Click **Migrate now**.

Metabase will take a snapshot of your application database (all your questions, models, dashboards, etc.). While it's snapshotting, it'll display a banner to let people know that they won't be able to create anything new. People will still be able to view questions and dashboards during this time.

![Read-only banner](../images/read-only-banner.png)

Once the snapshot upload completes:

![Snapshot uploaded](../images/snapshot-uploaded.png)
![Snapshot uploaded](../images/snapshot-uploaded.png)

### Set up your account and choose your plan and deployment

Expand Down
2 changes: 2 additions & 0 deletions _docs/latest/configuring-metabase/config-template.md
Original file line number Diff line number Diff line change
Expand Up @@ -209,8 +209,10 @@ config:
ldap-port: 389
ldap-security: none
ldap-sync-user-attributes: true
ldap-sync-user-attributes-allowlist: ''
ldap-sync-user-attributes-blacklist: userPassword,dn,distinguishedName
ldap-timeout-seconds: 15.0
ldap-trust-store: null
ldap-user-base: null
ldap-user-filter: (&(objectClass=inetOrgPerson)(|(uid={login})(mail={login})))
ldap-user-provisioning-enabled: true
Expand Down
27 changes: 27 additions & 0 deletions _docs/latest/configuring-metabase/environment-variables.md
Original file line number Diff line number Diff line change
Expand Up @@ -1241,6 +1241,14 @@ Use SSL, TLS or plain text.

Should we sync user attributes when someone logs in via LDAP?

### `MB_LDAP_SYNC_USER_ATTRIBUTES_ALLOWLIST`

- Type: csv
- Default: ``
- [Configuration file name](./config-file): `ldap-sync-user-attributes-allowlist`

Comma-separated list of user attributes to sync for LDAP users. Only these attributes are synced; leave blank to sync none.

### `MB_LDAP_SYNC_USER_ATTRIBUTES_BLACKLIST`

- Type: csv
Expand All @@ -1257,6 +1265,14 @@ Comma-separated list of user attributes to skip syncing for LDAP users.

Maximum time, in seconds, to wait for LDAP server before falling back to local authentication.

### `MB_LDAP_TRUST_STORE`

- Type: string
- Default: `null`
- [Configuration file name](./config-file): `ldap-trust-store`

Path to a JKS trust store of CA certificates used to validate the LDAP server's TLS certificate. Leave blank to use the JVM default trust store.

### `MB_LDAP_USER_BASE`

- Type: string
Expand Down Expand Up @@ -2435,6 +2451,10 @@ This URL is used for things like creating links in emails, auth redirects, and i
This URL is critical for things like SSO authentication, email links, embedding and more.
Even difference with `http://` vs `https://` can cause problems.
Make sure that the address defined is how Metabase is being accessed.
If left unset, Metabase learns this value from the request headers of the first authenticated
admin, so an operator who completes setup in a browser doesn't have to configure it. Deployments
that provision headlessly, run multi-tenant, or otherwise never sign in as an admin should set
`MB_SITE_URL` explicitly.

### `MB_SLACK_APP_TOKEN`

Expand Down Expand Up @@ -2985,6 +3005,13 @@ Default: `null`

Used during development of third-party drivers. Set the value to have that plugin manifest get loaded during startup. Specify multiple plugin manifests by comma-separating them.

### `MB_DISABLE_LEGACY_STARTUP_ENCRYPTION`

Type: boolean<br>
Default: `false`

By default, when [MB_ENCRYPTION_SECRET_KEY](#mb_encryption_secret_key) is set, Metabase encrypts on startup any values that an older version of Metabase stored unencrypted, and logs a warning for each column it had to encrypt. When `true`, Metabase will refuse to start instead of encrypting such values, including settings saved by an older version.

### `MB_DISABLE_SCHEDULER`

Type: boolean<br>
Expand Down
2 changes: 1 addition & 1 deletion _docs/latest/embedding/chart.md
Original file line number Diff line number Diff line change
Expand Up @@ -233,7 +233,7 @@ In the embedding wizard, this corresponds to the **Allow people to save new ques

Customizing click behavior is only available in the [Modular embedding SDK](./sdk/introduction) for now.

When people click a data point in an interactive chart, Metabase shows a menu of actions. The [`mapQuestionClickActions`](./sdk/plugins) plugin lets you customize this: open the default menu, add custom actions, or perform an immediate action without a menu.
When people click a data point in an interactive chart, Metabase shows a menu of actions. The [`mapQuestionClickActions`](./sdk/api/MetabasePluginsConfig#mapquestionclickactions) SDK [plugin](./sdk/plugins) lets you customize this: add custom actions alongside the default ones, perform an immediate action without a menu, or prevent default actions from happening.

Use it globally on `MetabaseProvider`, or on individual `InteractiveQuestion` components:

Expand Down
Loading