Перейти к содержанию

Функциональные разделы

Эта страница описывает основные функциональные блоки сервиса app-metabase-embedding на уровне продукта, а не отдельных контроллеров.

1. Выдача embedded-виджетов

Основной runtime-сценарий сервиса:

  • получение дерева доступных папок и виджетов;
  • получение одного виджета по id;
  • получение набора виджетов по списку ids;
  • генерация guest embed JWT для Metabase dashboard/card;
  • применение locked filters для bms_id, bms_ids, instance_ids.

Связанные endpoints:

  • GET /api/metabase/widgets
  • GET /api/metabase/widgets/{id}
  • GET /api/metabase/widgets/by-ids

Подробности: Виджеты

2. Управление доступом для token auth

Role-based access для внешних пользователей хранится отдельно от LDAP-модели и работает по связке:

  • source_key
  • bms_id
  • role_id
  • widget_id

Связанные endpoints:

  • GET /api/metabase/settings/widgets/access
  • PATCH /api/metabase/settings/widgets/access

Подробности: Settings

3. LDAP admin и теговая модель доступа

Для внутренних пользователей сервис поддерживает отдельный административный контур:

  • список LDAP-сотрудников;
  • назначение тегов пользователям;
  • управление tag-based доступом к виджетам;
  • deny-list подпапок внутри root-коллекций;
  • on-prem routing boxes;
  • SQL preview/export/publish/deploy для аналитики Metabase.

Связанные endpoints:

  • /api/metabase/settings/admin/users
  • /api/metabase/settings/admin/tags
  • /api/metabase/settings/admin/widgets/access
  • /api/metabase/settings/admin/on-prem-boxes
  • /api/metabase/settings/admin/sql/*

Подробности: Admin

4. Пользовательское избранное

Избранное хранится в сервисной БД и работает как отдельное приватное дерево:

  • системная root-вкладка favorites;
  • группы пользователя;
  • элементы dashboard/widget;
  • reorder как элементов, так и mixed-узлов.

Связанные endpoints:

  • GET /api/metabase/favorites
  • POST /api/metabase/favorites/items
  • PATCH /api/metabase/favorites/items/{itemId}/reorder
  • PATCH /api/metabase/favorites/nodes/{nodeType}/{nodeId}/reorder
  • POST /api/metabase/favorites/groups
  • PATCH /api/metabase/favorites/groups/{groupId}
  • DELETE /api/metabase/favorites/groups/{groupId}

Подробности: Favorites

5. Jira action buttons

Сервис умеет инициировать Jira-задачи из пользовательских сценариев Metabase:

  • analytics request из action button;
  • архитектурное ревью merge request в publish flow.

Связанные endpoints и сценарии:

  • POST /api/metabase/action-buttons/analytics-request
  • POST /api/metabase/settings/admin/sql/publish с опцией createArchitectReviewTask

Подробности: Analytics Request

6. Git-based export / publish / deploy

Сервис поддерживает workflow для аналитики как кода:

  • preview SQL и структуры ресурса;
  • export в git-ready файловую структуру;
  • publish изменений в GitLab с MR;
  • deploy snapshot обратно в Metabase.

Связанные endpoints:

  • GET /api/metabase/settings/admin/sql/preview
  • POST /api/metabase/settings/admin/sql/export
  • POST /api/metabase/settings/admin/sql/publish
  • POST /api/metabase/settings/admin/sql/deploy
  • POST /api/internal/metabase/deploy

По авторизации:

  • POST /api/metabase/settings/admin/sql/deploy принимает либо LDAP admin BasicAuth, либо shared secret header из metabase.deploy.*;
  • POST /api/internal/metabase/deploy использует только shared secret header из metabase.deploy.*.

Подробности:

Практический пример переноса коллекции между стендами через publish -> MR -> merge -> deploy описан в разделе Git-flow пример.