SuperAPI AI 工具集

cube-embed

数据与分析

查看项目

更新于 10-27 16:20

技能介绍

用途

cube-embed 用于在自有产品中嵌入 Cube 分析,并围绕嵌入会话、嵌入令牌、可嵌入仪表板和嵌入租户进行设置与调试。资料指出,嵌入是分析能力离开团队、触达客户的环节,因此隔离模型比操作机制更重要;大部分工作在于把安全上下文设置正确,CLI 部分很短。

主要能力

该技能覆盖四类概念与对应操作:

  • 嵌入租户(embed tenant):你的一个客户,是隔离边界。
  • 嵌入用户(embed user):某个客户内部的终端用户。
  • 嵌入会话/令牌(embed session / token):携带该用户安全上下文的短期凭证,正是它让行级安全生效。
  • 可嵌入仪表板(embeddable dashboard):显式启用嵌入的仪表板;仪表板默认不可嵌入。

资料强调,令牌中的安全上下文是模型行级安全读取的内容。隔离是所生成令牌的属性,而不是所嵌入仪表板的属性。一个正确的仪表板配上错误的令牌,会把一个客户的数据展示给另一个客户,这是最值得警惕的失败模式。

使用方式

该技能仅支持 CLI。Cube MCP 工具不会生成嵌入会话,也不配置嵌入。没有终端和 Cube CLI 时,应解释模型并说明用户需要运行哪些命令。

预检命令:

command -v cube >/dev/null || echo "Cube CLI not installed: curl -fsSL https://raw.githubusercontent.com/cube-js/cube/master/install-cli.sh | sh"
cube whoami || echo "Not authenticated. Interactive: cube login. Headless: set CUBE_API_URL + CUBE_API_KEY."
cube context list

核心命令:

cube embed generate-session --data '<session>'
cube embed token --session-id <session>

cube embed enable-dashboard <public-id>
cube embed dashboard <public-id>
cube embed disable-dashboard <public-id>

cube embed tenant groups <tenant>
cube embed tenant delete <tenant>
cube embed tenant delete-group <tenant> <group>

会话和令牌在服务端生成,绝不能在浏览器代码中生成或提交到仓库;任何持有令牌的人在该令牌过期前都拥有对应用户的访问权限。

设置新的嵌入式仪表板流程:

  1. 构建并发布仪表板(cube-build-content)。
  2. 获取仪表板的 public id,然后运行 cube embed enable-dashboard;在此之前嵌入会失败。
  3. 确认模型具有以安全上下文所携带属性为键的行级安全。用 cube-explore-model 检查;如果没有,先停下来修复模型。
  4. 为某个租户的测试嵌入用户生成会话。
  5. 验证该用户只能看到该租户的行。cube deployments token 携带的是你自己的上下文,因此无法测试这一点。为两个租户的安全上下文分别生成令牌,通过 cube-run-query 端点用各自令牌查询同一度量,确认数字不同:
cube environments create-token <deployment> <environment> --security-context '{"tenant_id":"<a>"}'

令牌是凭证,应使用它,但绝不打印它。第 5 步是能捕获隔离失效的步骤,也是人们因为第 4 步看似成功而跳过的一步。

调试嵌入式视图

资料给出症状与排查位置对照:

  • iframe 空白且无错误:仪表板未启用嵌入,运行 cube embed dashboard 检查。
  • iframe 中出现 401 / 403:令牌过期或为错误租户生成。
  • 能渲染但没有行:安全上下文没有匹配值,令牌有效但作用域为空。
  • 显示过多数据:行级安全未应用。应停止并将其视为事件,而不是可迭代的缺陷。
  • 对你可用但对客户不可用:你在用绕过租户作用域的内部账号测试。

适用场景

适用于将 Cube 分析嵌入自有产品、为不同客户建立隔离、生成嵌入会话与令牌、启用可嵌入仪表板,以及排查嵌入视图的空白、鉴权失败、无数据或数据越权等问题。

限制与约定

  • 仅支持 CLI;Cube MCP 工具不生成嵌入会话或配置嵌入。
  • 仪表板默认不可嵌入,必须显式启用。
  • 会话与令牌必须在服务端生成,不得在浏览器代码中生成或提交到仓库。
  • 绝不在输出中打印完整令牌;只说明已为哪个用户生成。
  • 始终使用真实嵌入用户测试,绝不用管理员账号;管理员账号能看到一切,会让隔离失效不可见。
  • 当隔离出现问题时,应直接说明并停止。

资料未提供收费、价格、平台支持范围或效果数据,暂未提供。