用途:将 Omni Analytics 仪表盘嵌入外部应用,使用签名 iframe URL 与 @omni-co/embed SDK 完成 URL 签名和主题定制,并通过 postMessage 实现父应用与 iframe 的双向通信。
主要能力:支持 embedSsoDashboard() 生成签名 URL,可配置 contentId、secret、host、externalId、name、userAttributes(行级安全)、mode、prefersDark、customTheme、entity 等参数;支持通过 customTheme 定制仪表盘背景、瓦片、控件、按钮等样式;支持 dashboard:loaded、dashboard:filters、error、dashboard:tile-drill、page:changed 及自定义可视化事件;支持向 iframe 推送 dashboard:filter-change-by-url-parameter;支持实体工作区(entity、entityFolderContentRole、uiSettings、connectionRoles);支持通过 REST API 查询嵌入用户、按权限列出文档与文件夹。
使用方式:npm install @omni-co/embed;配置 OMNI_BASE_URL(.embed-omniapp.co)、OMNI_EMBED_SECRET、OMNI_API_KEY;服务端调用 embedSsoDashboard() 生成 URL,客户端放入 iframe;需要时用 curl -L "$OMNI_BASE_URL/openapi.json" -H "Authorization: Bearer $OMNI_API_KEY" 核对端点;嵌入用户与文档 API 使用 .omniapp.co 域。
限制与注意:host 参数必须为纯主机名,不能含协议或端口,否则返回 400;SDK 传参时建议使用纯色十六进制,linear-gradient() 与 rgba() 可能失败;API 调用与嵌入域不同,需替换 .embed-omniapp.co 为 .omniapp.co;文档查询响应字段为 records;未找到用户表示该用户尚未访问过嵌入仪表盘。