Статическое встраивание¶
Также известно как: автономное встраивание или подписанное встраивание.
В общем случае встраивание работает так: вы отображаете URL Glarus BI внутри iframe на вашем сайте. Статическое встраивание (или подписанное) — это iframe, который загружает URL Glarus BI, защищённый подписанным JSON Web Token (JWT). Glarus BI загрузит URL только если запрос содержит подписанный JWT, общий для вашего приложения и Glarus BI. JWT также содержит ссылку на ресурс, который нужно загрузить (например, ID дашборда), и значения для заблокированных параметров.
Вы не сможете использовать статические встройки вместе с RLS, drill-through (документация Metabase, англ.), и данные о конкретных пользователях не будут попадать в аналитику использования, потому что подписанные JWT не создают пользовательские сессии.
Чтобы ограничить данные в подписанных встраиваниях для определённых людей или групп, настройте заблокированные параметры.
Как работает статическое встраивание¶
Если вы хотите настроить интерактивные фильтры Glarus BI в своём iframe, ваш веб-сервер должен будет запрашивать обновлённые данные каждый раз, когда посетитель веб-сайта обновляет виджет фильтра.
Чтобы запросить обновлённые данные из Glarus BI, ваш веб-сервер создаст новый URL для встраивания. Например, если посетитель веб-сайта вводит значение «true» во встроенный виджет фильтра, ваш сервер сгенерирует новый URL для встраивания с дополнительным параметром:
Чтобы люди не могли редактировать URL для встраивания для получения несанкционированного доступа к другим частям вашей Glarus BI (например, изменив параметр на filter=company_secrets), ваш веб-сервер добавит подписанный JWT к новому URL для встраивания:
Подписанный JWT создаётся с использованием вашего секретного ключа Glarus BI. Этот ключ сообщает Glarus BI, что запросу отфильтрованных данных можно доверять, поэтому отображать результаты по новому URL безопасно. Обратите внимание: этот секретный ключ общий для всех статических встраиваний, поэтому любой, у кого есть доступ к ключу, сможет получить доступ ко всем встроенным артефактам.
Включение статического встраивания в Glarus BI¶
- Перейдите в Управление > Настройки > Встраивание.
- Нажмите Включить.
Подготовка запроса или дашборда к встраиванию¶

Чтобы создать статическое встраивание:
- Перейдите к запросу или дашборду, которые вы хотите встроить на свой веб-сайт.
- Нажмите на значок общего доступа (квадрат со стрелкой, "Поделиться").
- Выберите Встраивание.
- Выберите Статическое встраивание.
- Опционально: настройте внешний вид встраивания.
- Опционально: добавьте параметры во встраивание.
- Нажмите Опубликовать.

Добавление URL для встраивания на ваш сайт¶
URL для встраивания запроса или дашборда — это URL Glarus BI, который будет отображаться в iframe вашего веб-сайта. Он генерируется вашим веб-сервером с использованием URL сайта Glarus BI, подписанного JWT и параметров:
После того как вы сделали запрос или дашборд встраиваемым, вам необходимо разместить URL для встраивания этого запроса или дашборда на свой веб-сайт:
- Перейдите к запросу или дашборду > значок общего доступа ("Поделиться") > Встраивание.
- Нажмите Получить код для встраивания.
- Необязательно: Предварительный просмотр кода сервера.
- Добавьте код сервера в файл, который создаёт ваш веб-сайт.
- Добавьте код внешнего интерфейса в HTML-файл, где вы хотите, чтобы ваша подписанная вставка отображалась.
Дополнительные примеры см. в open source-репозитории Metabase.
Предварительный просмотр кода сервера для встраивания¶
- Перейдите к запросу или дашборду > значок общего доступа ("Поделиться")> Встроить этот элемент в приложение.
- Нажмите Код.
- В верхнем блоке кода вы найдёте пример кода для вашего веб‑сервера, а также iframe‑фрагмент для HTML‑шаблона или одностраничного приложения.
Когда вы вносите изменения в настройки стиля, внешнего вида или предварительного просмотра параметров, образец кода сервера также обновляется. Обязательно скопируйте эти изменения в ваш фактический код сервера.

Glarus BI генерирует пример серверного кода для:
- Clojure
- Node.js
- Python
- Ruby
И для iframe‑фрагментов:
- ERB
- JSX
- Mustache
- Pug/Jade
Если вы используете сериализацию, применяйте Entity IDs в статических встройках¶
Использование Entity IDs в статических встройках помогает гарантировать, что идентификаторы останутся стабильными при экспорте из одного окружения Glarus BI и импорте в другое.
Чтобы использовать Entity ID в статическом встраивании, достаточно отредактировать map resource в payload, который вы подписываете. Замените автоподставленный ID элемента на его Entity ID.
То есть в примере ниже вы замените { question: <ID> } на:
const payload = {
resource: { question: <Entity ID goes here> },
params: {},
exp: Math.round(Date.now() / 1000) + (10 * 60) // 10 minute expiration
};
Если вы не используете сериализацию, оба ID будут работать.
Редактирование встроенного запроса или дашборда¶
Если вы измените параметры встроенного элемента:
- После изменений скопируйте код, который сгенерировал Glarus BI.
- Нажмите Опубликовать ещё раз.
- Обновите код на вашем сервере так, чтобы он соответствовал коду, сгенерированному Glarus BI.
Отключение встраивания для запроса или дашборда¶
Вы можете найти список всех встроенных запросов и дашбордов в Управление > Настройки > Встраивание.
- Перейдите к встраиваемому запросу или дашборду.
- Нажмите на значок общего доступа (квадрат со стрелкой, "Поделиться").
- Выберите Встраивание > Статическое встраивание.
- Нажмите Отменить публикацию.
Настройка внешнего вида статических встраиваний¶
См. настройку внешнего вида статических встраиваний.
Автообновление результатов встроенного дашборда¶
Чтобы обновлять результаты дашборда с заданной частотой, добавьте параметр refresh в URL встраивания. Например, чтобы обновлять встроенный дашборд каждые 60 секунд, добавьте refresh=60 к URL.
Автообновление доступно только для дашбордов, не для запросов.
Например, следующий код генерации iframe URL для дашборда будет показывать заголовок дашборда и обновлять результаты каждые 60 секунд.
Полный список опций, которые можно задавать через параметры, см. в разделе настройки внешнего вида статического встраивания.
Повторная генерация секретного ключа статического встраивания¶
Ваш секретный ключ используется для подписи JWT для всех ваших URL встраивания.
- Перейдите в Управление > Встраивание > Статическое встраивание.
- В блоке Секретный ключ для встраивания нажмите Перегенерировать ключ.
Этот ключ общий для всех статических встраиваний. Любой, у кого есть доступ к ключу, сможет получить доступ ко всем встроенным артефактам, поэтому храните ключ в секрете. Если вы повторно генерируете ключ, вам нужно обновить серверный код, чтобы он использовал новый ключ.
Изменение размера дашборда в соответствии с содержимым¶
Дашборды имеют фиксированное соотношение сторон, поэтому если вы хотите, чтобы они автоматически изменялись по вертикали в соответствии с их содержимым, вы можете использовать скрипт iFrame Resizer (ссылка на github.com):
<script src="{your-glarus-bi-url}/app/iframeResizer.js"></script>
<iframe
src="https://glarus-bi.example.com/embed/dashboard/TOKEN"
onload="iFrameResize({}, this)"
></iframe>
Из‑за изменений лицензии iframe-resizer рекомендуем использовать iframe-resizer версии 4.3.2 или ниже.
Пользовательские destinations на дашбордах в статических встройках¶
Для пользовательских destinations на дашбордах со статическим встраиванием можно использовать только опцию URL. Внешние URL будут открываться в новой вкладке или окне.
Вы можете пробрасывать значения фильтров в внешний URL, если фильтр не заблокирован.