6.6 KiB
领域文档待补充问题
这份文件是待查证目录,不是每项任务都要逐条询问的问卷。只处理影响当前任务的边界,先检查源码、测试和已有文档;仍无法确定且影响业务决策时再询问使用者。问题确认后,把稳定术语移入根目录 CONTEXT.md,行为规则放入对应按需文档,再从本文删除对应问题。
2026-09-24 全量查证过一轮(主仓库 + sqlbot-xpack 可读源码):各节"已确认"为代码事实,对应词条已入 CONTEXT.md;标注【待答】的问题需要产品/设计判断,均附代码现状,回答后按开头流程归档("设计 vs 待修"类问题需二选一:按现状入档+风险注记,或转待修项)。
工作空间与用户
已确认:成员权重 0=普通成员、1=工作空间管理员(-1 为"无关联记录"哨兵);系统管理员为内置 id=1 的 admin 账号,与成员权重正交;用户可同时属于多个工作空间,当前工作空间是用户表上的单值;数据源可见性=工作空间归属。
【待答】
- "数据源管理员"这一角色叫法是否存在于产品文案?代码中不存在该角色:数据源管理接口全部要求工作空间管理员,行/列权限面向普通用户配置。
- 用户-工作空间关联表(sys_user_ws)无 (uid, oid) 唯一约束,理论上可出现重复关联行。接受现状还是待修?
数据源与元数据
已确认:创建时不校验连接(校验是独立步骤,重新勾选表前强制执行);元数据同步无定时任务,仅创建、重新勾选表、单表字段同步三个触发点;数据源级无启用/禁用(仅表/字段级);Excel 为物化进内置库的导入型数据源;表关系人工维护、无自动推断;备注为"同步值 + 用户值"双轨且用户值优先;表级/数据源级两级 embedding;动态数据源每次会话实时拉取宿主 API、不落库。
【待答】
- 删除数据源时不清理推荐问题(ds_recommended_problem)和行/列权限(ds_permission、ds_rules),成为孤儿数据。接受现状还是待修?
- CoreDatasource.status 全代码只见赋值 "Success";是否存在其他历史取值或预期取值(如连接失败标记)?
权限
已确认:数据源可见性=工作空间归属(硬边界,校验失败拒绝);行权限多条命中 AND、列权限多条命中求交;无 deny 语义;admin(id=1)绕过行/列权限;高级应用不走本地行/列权限、改用宿主表级 rule;行权限经 LLM 改写 SQL 执行;列权限只作用于提供给模型的表结构和数据预览。
【待答】
- 行权限的强制执行方式是"LLM 改写 SQL",无确定性的 WHERE 注入或结果集二次过滤兜底。按现状入档+风险注记,还是列待加固项?
- 行/列权限未命中任何规则即不限制(fail-open);white_list_user 字段在权限两个模型中已定义但全代码无读取。同上二选一。
助手与集成
已确认:type 实际值域 0/1/2/3/4,2≡0、3≡1(遗留兼容值、无创建入口,已记入 backend.md);普通小助手/高级应用/页面嵌入三形态的认证、数据源获取、页面能力差异已查明;domain 是 origin 精确白名单、仅握手类接口校验、运行期 API 不校验;app_id 仅反查、app_secret 作 HMAC 验签。
【待答】
- /system/assistant/info/{id}、/system/assistant/app/{appId} 在认证白名单内且响应未剔除 app_secret:通过 origin 校验的页面即可获取应用的 app_id 与 app_secret。按现状入档+风险注记,还是列待加固项?
- type=3 除与 type=1 共用动态数据源分支外是否曾有专属语义?(代码无单独分支,历史命名无法追溯。)
模型配置
已确认:模型名称是显示名、基础模型是真实模型标识;默认模型为系统全局唯一标志(首个模型自动成为默认、禁删),无"工作空间默认模型"概念;工作空间映射决定可选范围;选型链为助手自定义模型 → MCP 指定模型 → 系统默认,指定模型校验失败静默回退;embedding 使用固定本地模型,不走供应商/默认模型体系。
【待答】
- 助手/MCP 指定模型会校验其属于当前工作空间的映射,但回退到系统默认模型时不校验默认模型是否映射到该工作空间。设计如此还是缺陷?
- model_type 字段存而不用(前端仅 0=大语言模型有效,运行时引擎实际由 protocol 决定)。遗留预留还是待实现?
仪表板
已确认:可独立创建(含文件夹、文本、Tab 组件),非只能来自会话图表;图表组件是会话图表的整份配置快照(无外键引用),查看时按快照内数据源+SQL 实时重执行,数据源被删则该组件标记失败;仅创建者本人可见可改;无分享无导出。
【待答】
- 仪表板纯私有(无分享/协作)是否为产品定位?
- 删除会话不级联删除其记录(无外键、无清理);删除文件夹不级联删除子节点(孤儿在资源树上不显示)。接受现状还是待修?
MCP 与嵌入
已确认:MCP 为独立服务进程(8001 端口),暴露 7 个工具;调用者以真实用户身份接入,数据源授权=其工作空间全部数据源(无显式授权列表);行/列权限按该用户生效;另有 Open API 形态(API Key 验签映射到真实用户);页面嵌入、小助手嵌入、MCP 的认证边界已查明。
【待答】
- mcp_model_list(仅凭 oid 即返回该工作空间模型列表)与 mcp_assistant(构造内置用户、无调用方鉴权)两个无鉴权入口:产品上有外层防护预期(网关/内网部署)还是待修?
- mcp_question 不校验会话归属:持有有效 token 加 chat_id 即可向他人会话提问(主应用 /chat/question 有权限装饰器而 MCP 路径没有)。设计如此还是待修?
- Open API(API Key)是否作为第四种对外暴露形态在 CONTEXT.md 立词条?
xpack 商业概念
已确认:许可证仅整体有效/失效门控(无功能级能力项,硬校验为 product 与有效期);有效时才挂载外观、自定义提示词、认证源、平台集成、审计五组路由(到期动态摘除);行/列权限路由不受许可证门控;认证源=SSO 身份源、平台集成=企业 IM 对接、审计=查询侧在 xpack、写入侧在主仓库。词条已入 CONTEXT.md"商业扩展(xpack)"小节。
【待答】
- 许可证数据的 edition、count 字段已定义但代码不消费(可能在 validator 二进制内部检查)。按现状记录,还是属于待实现?