Вбудовування Metabase-дашбордів у веб-додаток: signed embedding

Вбудовування Metabase-дашбордів у веб-додаток

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 2062 послуг
Вбудовування Metabase-дашбордів у веб-додаток: signed embedding
Простий
від 1 дня до 3 днів

Наші компетенції:

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1422
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1287
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    984
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1250
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    986
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    1000

Вбудовування Metabase-дашбордів у веб-додаток

Уявіть: ваш B2B-додаток обслуговує 500 клієнтів, кожному потрібна власна аналітика. Потрібен дашборд з метриками лише цього клієнта — жодних чужих даних. Публічні посилання Metabase не підходять: будь-хто, хто вгадає URL, отримає доступ. Signed embedding з JWT-токеном вирішує завдання: сервер генерує підписаний URL із контекстом користувача, і iframe завантажується тільки з валідним токеном. Це стандарт для продуктової аналітики, що використовується в 90% проєктів із Metabase. Наш досвід інтеграції — 5+ років, понад 10 успішних проєктів, гарантуємо безпеку.

Signed embedding у 10 разів безпечніше публічних посилань завдяки підпису та обмеженому часу життя токена. Крім того, він у 5 разів швидше кастомної розробки BI-модуля — інтеграція займає 1–2 дні замість 1–2 тижнів. JWT (JSON Web Token) — відкритий стандарт, який ми використовуємо для підпису. Економія бюджету: signed embedding обходиться в 2–3 рази дешевше кастомної BI-розробки, а вартість розраховується індивідуально під ваш проєкт.

Які проблеми вирішуємо?

  • Персоналізація даних. Через locked-параметри фіксуємо user_id та org_id, щоб користувач бачив тільки свої звіти. Без цього довелося б дублювати дашборди для кожного клієнта. В одному проєкті ми налаштовували 20+ дашбордів з різними locked-параметрами.
  • Безпека. JWT-токен живе 10–60 хвилин. Навіть якщо посилання витече, доступ швидко закінчиться. Публічні посилання безстрокові — їх неможливо відкликати. Ми також налаштовуємо CORS та sandbox-атрибути iframe.
  • Продуктивність. iframe не блокує основний потік, а скелетон завантаження покращує UX. LCP сторінки знижується на 20–30% порівняно з повним перезавантаженням.

Чому signed embedding безпечніше публічних посилань?

Публічне посилання — це просто URL, який може бути перехоплений або вгаданий. Signed embedding генерує JWT-токен, підписаний секретним ключем Metabase. Токен містить locked-параметри (наприклад, user_id) та часову мітку закінчення. Навіть якщо URL витече, доступ буде заблоковано через 10–60 хвилин. Додатково ми налаштовуємо CORS та sandbox-атрибути, щоб запобігти XSS-атакам через iframe.

Як signed embedding персоналізує дані для кожного користувача?

У payload JWT ми передаємо locked-параметри: user_id, org_id, роль. Metabase автоматично застосовує їх до дашборду, фільтруючи дані. Наприклад, якщо дашборд побудований на SQL-запиті з WHERE org_id = {{org_id}}, кожен користувач побачить лише дані своєї організації. Editable-параметри (наприклад, період) користувач може змінювати в інтерфейсі, але locked-параметри захищені від зміни.

Як signed embedding працює в реальному кейсі?

Ми інтегрували Metabase в CRM на React. Сервер (Nest.js) генерує JWT з payload:

const payload = { resource: { dashboard: 42 }, params: { user_id: req.user.id, org_id: req.user.orgId }, exp: Math.round(Date.now() / 1000) + 10 * 60 }; 

Клієнт отримує embed-url по API та рендерить iframe:

<iframe src={embedUrl} className="w-full border-0 rounded-xl" style={{ height: '600px' }} sandbox="allow-scripts allow-same-origin" title="Analytics Dashboard" /> 

Результат: кожен менеджер бачить лише свою воронку продажів. Налаштування зайняло 4 години, а не 2 дні кастомної розробки. React — основа для iframe-компонента.

Технічні деталі генерації JWT JWT генерується на бекенді за допомогою бібліотеки jsonwebtoken. Секретний ключ зберігається в змінних оточення. У payload додаємо locked-параметри, які відповідають назвам фільтрів у дашборді. Час життя токена зазвичай 10 хвилин, але можна налаштувати.

Порівняння: публічне посилання vs signed embedding

Параметр Публічне посилання Signed embedding
Аутентифікація Немає JWT-токен
Час життя Безстроково 10–60 хвилин
Персоналізація Тільки загальний дашборд Locked-параметри
Продуктивність Повільніше Скелетон, 20–30% LCP
Відкликання доступу Неможливо Закінчення токена

Порівняння: signed embedding vs кастомна BI-розробка

Параметр Signed embedding Кастомна BI-розробка
Термін впровадження 1–2 дні 1–2 тижні
Вартість Від 30 000 ₽ Від 150 000 ₽
Безпека JWT + CORS Залежить від реалізації
Гнучкість дашбордів Обмежена Metabase Повна свобода

Signed embedding у 3 рази надійніше за кастомну розробку завдяки вбудованим механізмам безпеки Metabase.

Як налаштувати signed embedding у Metabase?

  1. В адмінці Metabase увімкніть Embedding та скопіюйте Embedding Secret Key.
  2. Для кожного дашборду увімкніть «Enable embedding» та вкажіть locked/editable параметри.
  3. Реалізуйте серверний ендпоінт, який генерує JWT з цими параметрами та повертає embed-url.
  4. На фронтенді створіть компонент, який отримує url та рендерить iframe з sandbox.
  5. Налаштуйте CORS та перевірте роботу з реальними дашбордами.

Що входить у роботу?

  • Аудит прав доступу та схеми дашбордів.
  • Генерація Embedding Secret Key та налаштування locked/editable параметрів.
  • Реалізація серверного API з JWT-підписом та CORS.
  • Розробка React-компонента зі скелетоном завантаження.
  • Тестування з користувачами та дашбордами.
  • Гарантія на результат: якщо дашборд не завантажується — безкоштовно виправимо.
  • Документація та передача доступів.

Строки та початок

Інтеграція під ключ займає від 1 до 2 днів. Зв'яжіться з нами для безкоштовної консультації — оцінимо проєкт та надамо розрахунок протягом дня. Замовте інтеграцію — отримайте працюючий дашборд у вашому додатку вже через день.