Интерактивное встраивание

Доступно только на платных планах Metabase и не входит в возможности Glarus BI.

Glarus BI предлагает несколько типов встраивания с разными уровнями настройки и безопасности.

Если вы хотите настроить только фиксированное количество фильтров и представлений детализации ваших данных (т.е. запретить людям создавать свои собственные запросы), вы можете предпочесть подписанное встраивание.

Демо интерактивного встраивания приложения

Для того, чтобы понять, что вы можете сделать с интерактивным встраиванием приложения, посмотрите демо интерактивного встраивания приложения (Metabase).

Чтобы увидеть конструктор запросов в действии, нажмите Отчёты > + Новый > Запрос.

Quick start

Check out the Interactive embedding quick start.

Предварительные условия для интерактивного встраивания

  1. Убедитесь, что у вас есть токен лицензии для платного плана.

  2. Организуйте людей в Glarus BI группы.

  3. Настройте разрешения для каждой группы.

  4. Настройте SSO, чтобы автоматически применять разрешения и показывать людям правильные данные при входе в систему. In general, we recommend using SSO with JWT.

Включение интерактивного встраивания приложения в Glarus BI

  1. Перейдите в Настройки > Настройки администратора > Встраивание.

  2. Нажмите Включить.

  3. Нажмите Интерактивное встраивание приложения.

  4. В разделе Авторизованные источники добавьте URL веб-сайта или веб-приложения, в которое вы хотите встроить Glarus BI (например, https://*.example.com).

Настройка встраивания на ваш сайт

  1. Создайте iframe с атрибутом src, установленным на:

  2. Необязательно: в зависимости от того, как настроено ваше веб-приложение, задайте для переменные среды:

  3. Необязательно: включите связь со встроенной Glarus BI и из неё с помощью поддерживаемых сообщений postMessage:

  4. Необязательно: установите для параметров значение показать или скрыть компоненты пользовательского интерфейса Glarus BI.

Когда вы будете готовы развернуть свое интерактивное встраивание приложения, убедитесь, что люди разрешают файлы cookie браузера из Glarus BI, иначе они не смогут войти в систему.

Указание iframe на URL Glarus BI

Перейдите в свой экземпляр Glarus BI и найдите страницу, которую хотите встроить.

Например, чтобы встроить домашнюю страницу вашей Glarus BI, установите для атрибута src ваш URL сайта, например:

http://metabase.yourcompany.com/

Чтобы встроить определённый дашборд Glarus BI, используйте URL панели управления, например:

http://metabase.yourcompany.com/dashboard/1

Указание iframe на конечную точку аутентификации

Используйте эту опцию, если вы хотите направлять людей прямо на экран входа в систему SSO (т. е. пропускать экран входа в Glarus BI с помощью кнопки SSO) и автоматически перенаправлять в Glarus BI после аутентификации.

Вам нужно будет установить атрибут src на вашу конечную точку аутентификации с return_to параметром, содержащим закодированный URL Glarus BI. Например, чтобы отправить людей на вашу страницу входа SSO и автоматически перенаправить их на http://metabase.yourcompany.com/dashboard/1:

https://metabase.example.com/auth/sso?return_to=http%3A%2F%2Fmetabase.yourcompany.com%2Fdashboard%2F1

Если вы используете JWT, вы можете использовать относительный путь для перенаправления (т. е. URL вашей Glarus BI без URL сайта). Например, чтобы отправить людей на страницу Glarus BI в /dashboard/1:

https://metabase.example.com/auth/sso?jwt=<token>&return_to=%2Fdashboard%2F1

Вы должны кодировать URL (или дважды кодировать, в зависимости от настроек вашего веб-сайта) все параметры в вашей ссылке перенаправления, включая параметры для фильтров (например, filter=value) и настройки пользовательского интерфейса (например, top_nav=true). Например, если вы добавили два параметра фильтра в пример JWT, показанный выше, ваша ссылка src станет такой:

https://metabase.example.com/auth/sso?jwt=<token>&redirect=%2Fdashboard%2F1%3Ffilter1%3Dvalue%26filter2%3Dvalue

Кросс-браузерная совместимость

Чтобы убедиться, что ваша встроенная Glarus BI работает во всех браузерах, поместите Glarus BI и приложение для внедрения в один и тот же домен верхнего уровня (TLD). TLD обозначается последней частью веб-адреса, например .com или .org.

Обратите внимание, что ваше интерактивно встраиваемое приложение должно быть совместимо с Safari, чтобы работать в любом браузере iOS (например, Chrome в iOS).

Встраивание Glarus BI в другой домен

Если Glarus BI и домен, куда вы её встраиваете, уже находятся в одном и том же домене высшего уровня (TLD) - можете пропустить этот раздел.

Если вы хотите встроить Glarus BI в другой домен (скажем, если Glarus BI размещена в metabase.yourcompany.com, но вы хотите встроить Glarus BI в yourcompany.github.io), you can tell Metabase to set the session cookie’s SameSite value to «none».

You can set session cookie’s SameSite value in Admin settings > Embedding > Interactive embedding > SameSite cookie setting.

SameSite values include:

  • Lax (default): Allows cookies to be sent when someone navigates to the origin site from an external site (like when following a link).

  • None: Allows all cross-site requests. Incompatible with most Safari and iOS browsers, such as Chrome on iOS. If you set this environment variable to «None», you must use HTTPS in Metabase to prevent browsers from rejecting the request.

  • Strict (not recommended): Never allows cookies to be sent on a cross-site request. Warning: this will prevent users from following external links to Metabase.

You can also set the the MB_SESSION_COOKIE_SAMESITE environment variable.

If you’re using Safari, you’ll need to allow cross-site tracking. Depending on the browser, you may also run into issues when viewing emdedded items in private/incognito tabs.

Learn more about SameSite cookies.

Защита приложений, использующих интерактивное встраивание

Glarus BI использует файлы cookie HTTP для аутентификации людей и сохранения их входа в вашу встроенную Glarus BI, даже когда кто-то закрывает сеанс браузера. Если вы хотите использовать диаграммы потоков аутентификации, см. Интерактивное встраивание приложений с SSO.

Чтобы ограничить время, в течение которого человек остается в системе, установите MAX_SESSION_AGE число в минутах. Значение по умолчанию — 20160 (две недели).

Например, чтобы люди оставались в системе не более 24 часов:

MAX_SESSION_AGE=1440

Чтобы автоматически очистить файлы cookie для входа пользователя после завершения сеанса браузера:

MB_SESSION_COOKIES=true

Чтобы вручную выйти из Glarus BI, загрузите следующий URL (например, в скрытом iframe на странице выхода вашего приложения):

https://metabase.yourcompany.com/auth/logout

Если вы используете JWT для единого входа, мы рекомендуем установить для свойства exp (срок действия) короткую продолжительность (например, 1 минуту).

Поддерживаемые сообщения postMessage from встроенной Glarus BI

Чтобы не отставать от изменений URL встроенной Glarus BI (например, при применении фильтра), настройте свое приложение для прослушивания сообщений «местоположение» из встроенной Glarus BI. Если вы хотите использовать это сообщение для создания ссылок, обратите внимание, что «location» отражает «window.location».

{
  "metabase": {
    "type": "location",
    "location": LOCATION_OBJECT_OR_URL
  }
}

Чтобы встроенная страница Glarus BI (например, вопрос) заполнила весь iframe в вашем приложении, настройте свое приложение для прослушивания сообщения «frame» в «нормальном» режиме из Glarus BI:

{
  "metabase": {
    "type": "frame",
    "frame": {
      "mode": "normal"
    }
  }
}

Чтобы указать размер iframe в вашем приложении, чтобы он соответствовал встроенной странице Glarus BI (например, панели инструментов), настройте свое приложение для прослушивания сообщения «frame» с режимом «fit» из Glarus BI:

{
  "metabase": {
    "type": "frame",
    "frame": {
      "mode": "fit",
      "height": HEIGHT_IN_PIXELS
    }
  }
}

Поддерживаемые сообщения postMessage to встроенной Glarus BI

Чтобы изменить URL встраивания, отправьте сообщение «местоположение» из своего приложения в Glarus BI:

{
  "metabase": {
    "type": "location",
    "location": LOCATION_OBJECT_OR_URL
  }
}

Group strategies with sandboxing

If you want multiple people from a single customer account to collaborate on questions and dashboards, you’ll need to set up one group per customer account.

You can handle data sandboxing with a single, separate group that just sandboxes your data. For example, each person could be part of a customer group that sets up data permissions with sandboxing via a certain attribute that applies to everyone across all your customer accounts.

Additionally, each person within a single customer account could also be a member of a group specific to that customer account. That way they can collaborate on collections with other people in their organization, without seeing stuff created by people from other customers“ accounts.

Отображение или скрытие компонентов пользовательского интерфейса Glarus BI

Чтобы изменить интерфейс вашего интерактивно встраиваемого приложения, вы можете добавить параметры в конец URL встраивания. Если вы хотите изменить цвета или шрифты во встраивании, см. раздел Настройка внешнего вида.

Например, вы можете отключить в Glarus BI верхнюю панель навигации и боковое меню навигации следующим образом:

your_embedding_url?top_nav=false&side_nav=false

Верхняя и боковая навигация отключены

Options include:

action_buttons

Visible by default on question pages when the header is enabled.

To hide the action buttons such as Filter, Summarize, the query builder button, and so on:

header=false&action_buttons=false

Action buttons

additional_info

Visible by default on question and dashboard pages, when the header is enabled.

To hide the gray text «Edited X days ago by FirstName LastName», as well as the breadcrumbs with collection, database, and table names:

header=false&additional_info=false

Additional info

locale

You can localize the user interface via a parameter. For example, to set the locale to Spanish:

locale=es-ES

Check out the locales Metabase supports. And read more about localization.

new_button

Hidden by default. To show the + New button used to create queries or dashboards:

top_nav=true&new_button=true

side_nav

The navigation sidebar is shown on /collection and home page routes, and hidden everywhere else by default.

To allow people to minimize the sidebar:

top_nav=true&side_nav=true

Side nav

top_nav

Shown by default. To hide the top navigation bar:

top_nav=false

Top nav bar

search, new_button, and breadcrumbs all depend on top_nav being set to true. If these three children (search, new_button, and breadcrumbs) are all false, Metabase will hide the top nav bar.

Справочные приложения

To build a sample interactive embed using SSO with JWT, see our reference apps:

Дополнительная информация