mirror of
https://github.com/larksuite/cli.git
synced 2026-09-14 18:42:53 +08:00
d7873bda96
Aily × PaaS 独立数据库的 CLI 落地:9 条新命令 + 5 条存量命令支持独立库。 命令面全部对齐设计文档 https://bytedance.larkoffice.com/docx/UwqJd0yt6oCB2Ox8pglcQe2BnEe 新增 9 条 - 生命周期:+db-create / +db-list / +db-delete - 权限: +db-permission-list / -set / -revoke(只认 --database-id) - MCP: +db-mcp-enable / -disable / -get(--app-id 或 --database-id 二选一) 存量 5 条支持独立库(+db-execute / +db-table-list / +db-table-get / +db-data-import / +db-data-export) - 新增 --database-id,与 --app-id 二选一,统一走 requireDBResource;--app-id 的 Required 随之去掉,否则 cobra 会在二选一判定之前拒掉只传 --database-id 的调用 - 路由按标识分流:两套 path 函数并列,不在存量函数里加 if - App 支路行为逐字不变(BOE e2e 291 用例验证,见下) 几个刻意的设计点 - 独立库无环境概念:这些命令不带 env 键,显式传 --environment 在 Validate 阶段拒; 判据用 Changed() 而非取值,否则「吃到默认值」会被误判成显式传参 - 表名不进路径段:独立库走 /table?table=xxx。url.PathEscape 挡不住 "..",让它进 路径段会被规范化到上一级、打到别的接口上(App 支路的 /tables/{table} 属存量债) - DryRun 与 Execute 共用同一个分派函数:dry-run 是 agent 唯一的自检手段 - +db-execute 独立库支路不发 transactional:该接口固定 DBA 模式,给个恒为 false 的 参数只会让人以为传 true 能拿到事务 - +db-mcp-* 两支路径域段不对称:/databases/{id}/mcp vs /apps/{id}/db/mcp(多一段 db/) - 输出不伪造服务端状态:+db-delete 的 deleted、+db-mcp-* 的 enabled 都取服务端结果 errclass 登记 3 个业务码(400002900 / 400002901 / 500002901)。这批是设计文档里的 占位码,服务端发号后需回来对齐真值;未命中时框架兜底成 api/unknown。 测试:新增 10 个测试文件(一命令一测),apps 域命令数断言 96 → 105。 BOE e2e(存量套件、只走 App 支路)291 用例 287 通过,2 个失败是 BOE 审计链路的 服务端故障(dataloom 调火山 ModifyTransmissionTask 返 400 及其级联),与本次改动无关。 服务端接口尚未实现(IDL 见 idl-larkgw 的 feat/standalone_db),故 --database-id 支路目前只能验到 dry-run 与参数校验层。