# metabase-static-embedding-to-guest-embedding-upgrade

Переводит проект с подписанных iframe Metabase на guest embeds через веб-компоненты и embed.js. Пригодится, когда надо заменить /embed/ на <metabase-dashboard> и <metabase-question>.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 355 установок · ★ 53
- Автор: metabase
- Лицензия: MIT · policy=mirror · лицензия открытая, файл — в исходнике
- Исходник: https://github.com/metabase/agent-skills/tree/HEAD/skills/metabase-static-embedding-to-guest-embedding-upgrade/SKILL.md
- Обновлён: 2026-10-24
- HTML: https://affpapa.org/nevibecode/skills/metabase-static-embedding-to-guest-embedding-upgrade

## Что делает

Скилл ведёт миграцию по шагам и требует отмечать каждый шаг как выполненный с доказательством. Сначала он определяет версию Metabase, потом сканирует проект, находит все места со статичным встраиванием и код подписи JWT, забирает документацию. Дальше разбирает каждый iframe: URL, тип контента, переменную токена, хеш-параметры — и сопоставляет их с атрибутами веб-компонента.

Модель аутентификации не меняется: и там, и там токены подписываются `METABASE_SECRET_KEY` с полезной нагрузкой `{resource, params, exp}`. Меняется способ доставки — вместо JWT в пути iframe токен уходит в атрибут `token`. Скилл требует сохранить тот же механизм отрисовки и тот же способ передачи токена, что были раньше: если шаблон рендерился на сервере, веб-компонент рендерится там же. Ещё он добавляет `embed.js` и `window.metabaseConfig` с `isGuest: true` ровно один раз на уровне layout.

Скилл трогает код, который работает с секретным ключом. Литеральные значения секретов он не выводит — ссылается на переменные, а найденные захардкоженные ключи помечает и советует перенести в переменные окружения. Миграцию на SSO с аккаунтами пользователей он не делает: это только guest embedding. Язык бэкенда и шаблонизатор могут быть любыми, инструкции остаются языконезависимыми, пока в проекте не определится конкретный язык.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add metabase/agent-skills --skill metabase-static-embedding-to-guest-embedding-upgrade -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/metabase-static-embedding-to-guest-embedding-upgrade/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/metabase-static-embedding-to-guest-embedding-upgrade/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add metabase/agent-skills --skill metabase-static-embedding-to-guest-embedding-upgrade -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/metabase-static-embedding-to-guest-embedding-upgrade/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add metabase/agent-skills --skill metabase-static-embedding-to-guest-embedding-upgrade -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/metabase-static-embedding-to-guest-embedding-upgrade/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install metabase/agent-skills metabase-static-embedding-to-guest-embedding-upgrade
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/metabase-static-embedding-to-guest-embedding-upgrade/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add metabase/agent-skills --skill metabase-static-embedding-to-guest-embedding-upgrade -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/metabase/agent-skills --path skills/metabase-static-embedding-to-guest-embedding-upgrade
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/metabase-static-embedding-to-guest-embedding-upgrade/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add metabase/agent-skills --skill metabase-static-embedding-to-guest-embedding-upgrade -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/metabase/agent-skills/tree/HEAD/skills/metabase-static-embedding-to-guest-embedding-upgrade/SKILL.md

## Когда брать
- заменить подписанные iframe `/embed/dashboard/{JWT}` на веб-компоненты
- перенести токен из пути iframe в атрибут `token`
- перевести хеш-параметры вроде `#titled=true` в атрибуты компонента
- подключить `embed.js` и `window.metabaseConfig` один раз на уровне layout
- убрать ссылки на `iframeResizer.js` из проекта

## Примеры запросов агенту
- Переведи проект с Metabase static embedding на guest embeds, начни с определения версии Metabase
- Замени все iframe `/embed/question/{JWT}` на компонент `<metabase-question token="...">`
- Проверь, что `embed.js` и `window.metabaseConfig` с `isGuest: true` подключены ровно один раз

## Похожие
- [prisma-upgrade-v7](https://affpapa.org/nevibecode/skills/prisma-upgrade-v7.md) — скилл · 376700 установок
- [prisma-mongodb-upgrade](https://affpapa.org/nevibecode/skills/prisma-mongodb-upgrade.md) — скилл · 370400 установок
- [rspack-v2-upgrade](https://affpapa.org/nevibecode/skills/rspack-v2-upgrade.md) — скилл · 515 установок
- [rsbuild-v2-upgrade](https://affpapa.org/nevibecode/skills/rsbuild-v2-upgrade.md) — скилл · 476 установок
- [upgrade-browser-sdk-v7](https://affpapa.org/nevibecode/skills/upgrade-browser-sdk-v7.md) — скилл · 459 установок

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
