用途:把使用 Metabase 静态嵌入(签名 iframe,路径为 /embed/dashboard/{JWT} 或 /embed/question/{JWT})的项目迁移为访客嵌入,即通过 embed.js 使用 Web Component(<metabase-dashboard token="...">、<metabase-question token="...">)。两种方式认证模型相同,均用 METABASE_SECRET_KEY 签名 JWT,后端签名逻辑保留,仅改变签名内容的交付方式。
主要能力:替换签名 iframe 为 Web Component;在应用布局层添加一次 embed.js 脚本标签;添加一次 window.metabaseConfig 并设 isGuest: true;将 iframe 哈希参数(如 #titled=true、#bordered=true)映射为组件属性;保留原有 JWT 签名逻辑;把签名令牌从 iframe URL 路径改为通过 token 属性传递;将 JWT 中锁定参数映射到 initial-parameters 属性;移除 iframeResizer.js 引用。
使用方式:按顺序执行工作流,先建检查清单再逐步执行并标记完成。步骤包括:检测 Metabase 版本(低于 v53 中止);扫描项目并抓取对应版本文档(https://www.metabase.com/docs/v0.{VERSION}/llms-embedding-full.txt);分析静态嵌入并映射到 Web Component;制定迁移计划;应用代码改动;验证;最终总结。每步需提供证据,无法完成时标记 blocked 并停止。
适用场景:使用静态签名 iframe 嵌入 Metabase 仪表盘或问题的任意后端语言项目(Node.js、Python、Ruby、PHP、Java、Go、.NET 等)与任意模板引擎。
限制:不处理基于 SSO 的模块化嵌入(带用户账户);不解析仓库分支、提交、PR 或 issue;不访问 GitHub PR/issue 或 npm 页面;不得输出字面密钥值;无法确定实例 URL、后端语言、版本或布局文件时需询问用户并暂停。具体版本支持的属性以抓取文档为准。