跳到主要内容

Rabetbase CLI Changelog

这里记录 Rabetbase CLI 面向用户可感知的版本更新。重点关注:你现在能做什么、体验变好了哪里、哪些问题被修掉了。


v2.2.2(2026-06-13)

本次重点

  • 数据集列表更贴近平台现状rabetbase dataset list 默认返回 DO V2 数据集,包括 DB_TABLEMETADATA。如果只想看数据库表数据集,用 --source DB_TABLE;如果只想看元数据数据集,用 --source METADATA
  • AppCode 环境变量不再静默接管命令RABETBASE_APPCODE / LOVRABET_APPCODE 不会自动覆盖项目配置。脚本中要使用环境变量时,请显式写成 --appcode "$RABETBASE_APPCODE"
  • 项目配置优先级更清楚:项目里已经配置了默认应用和环境时,CLI 会优先使用项目配置,不会被 shell 里残留的 AppCode 或环境变量带偏。
  • 升级提醒减少打扰:版本提示会尽量避免重复出现。需要升级时,继续使用 rabetbase update;需要 beta 版本时使用 rabetbase update --beta

需要注意的兼容变化

  • Breaking:旧脚本如果还在使用 rabetbase dataset list --include-metadata,需要改为 rabetbase dataset list --source METADATA
  • Breaking:旧脚本如果依赖 RABETBASE_APPCODE / LOVRABET_APPCODE 自动作为业务 AppCode,需要改为显式传 --appcode "$RABETBASE_APPCODE",或者把应用写入 .rabetbase.json
  • 脚本提醒:如果脚本默认认为 dataset list 只返回 DB_TABLE,请补上 --source DB_TABLE,避免把 METADATA 数据集带入后续 SQL 或表结构处理。

v2.1.14-beta.1(2026-06-02)

本次重点

  • 数据集写操作选择器更严格dataset deletedataset field-updatedataset renamedataset extend-update 等写命令必须明确指定目标数据集,通常使用 --code <datasetCode>;删除命令也支持 --id--dbid,但三者只能选一个。
  • 安全的数据集改名能力:新增 rabetbase dataset rename --code <code> --name <newName> --expect-name <currentName>,先校验当前名称再提交修改;默认支持 --dry-run 预览。
  • 字段与 extend 补丁能力收敛dataset field-update 只允许修改字段展示、描述、选项、必填、日期格式、聚合和图表角色等白名单属性;dataset extend-update 当前只开放 businessGroup,两者都支持 --expect-json 防漂移。
  • 数据集删除高危保护dataset deletehigh-risk-write,真实删除必须传 --confirm;按 --dbid 批量删除时建议同时传 --expected-count,避免实际匹配范围和预期不一致。

需要注意的兼容变化

  • Breaking:依赖数据集写命令从上下文或别名隐式推断目标的脚本需要改为显式传 --code / --id / --dbid。写操作不再接受模糊目标。

v2.1.14-beta.0(2026-05-22)

本次重点

  • 数据集维护命令进入 beta 验证:补齐 dataset renamedataset field-updatedataset extend-updatedataset delete,让交付和 Agent 能在终端内完成常见数据集元数据维护。
  • METADATA 数据集本地开发约束更明确:当时曾通过额外参数查看平台元数据;从 v2.2.2 起,请统一使用 --source DB_TABLE--source METADATA 控制数据集来源。
  • 菜单资源更新继续收紧menu update 明确区分 --mode replace--mode patch,并保留页面原有 extend 配置,避免更新 CDN 资源时覆盖业务扩展配置。

修复与优化

  • 字段补丁提前校验dataset field-update 会在提交前拒绝不支持或禁止修改的字段 key,减少后端返回模糊错误。
  • link dry-run 输出更完整:数据集关联关系的 dry-run 会带出已解析的应用和数据库信息,便于检查目标是否正确。

v2.1.13(2026-05-21)

本次重点

  • 配置写入边界更清楚:项目内写配置时,CLI 会避免把全局 apps / defaultApp 等合并结果带进项目配置文件,降低跨项目串配置的风险。
  • 菜单资源更新更稳rabetbase menu update 更新 CDN 资源时会保留页面原有 extend 配置,避免资源替换顺手覆盖业务配置。
  • CLI 与 Skill 版本更一致:发布流程会同步检查 CLI 包版本与 skills/rabetbase/SKILL.md 版本,减少“CLI 已升级但 Agent Skill 仍停在旧版本”的情况。

需要注意的兼容变化

  • Breaking:如果你的脚本依赖项目目录下写配置时自动继承全局应用目录,需要改为显式使用 --global 或重新初始化项目配置。
  • Breaking:如果从 v2.1.11 或更早版本升级,原来依赖 rabetbase page generate-start --datasetcode <code> 直接提交生成任务的脚本,需要改为 rabetbase page generate-start --datasetcode <code> --apply

v2.1.12(2026-05-21)

本次重点

  • 智能列表页生成默认更安全了rabetbase page generate-start 默认只返回 dry-run 预览,不再直接提交生成任务。真正发起生成必须显式加 --apply,适合 Agent 和自动化脚本先确认再执行。
  • 问题上报不会轻易泄露敏感信息rabetbase issue report 会自动截断超长描述,并脱敏 Cookie、Authorization、AccessKey、密码、私钥和 JWT 等敏感片段。
  • 非预期错误更容易反馈:平台 API 错误或 CLI 非预期异常会提示一条可复制的 rabetbase issue report 命令;脚本化场景可用 RABETBASE_DISABLE_ISSUE_NUDGE=1 关闭。
  • 平台请求可追踪来源:CLI 平台请求会带 X-Invoke-Source: cli:rabetbase,便于后端排查调用来源。

需要注意的兼容变化

  • Breaking:原来依赖 rabetbase page generate-start --datasetcode <code> 直接提交生成任务的脚本,需要改为 rabetbase page generate-start --datasetcode <code> --apply

v2.1.12-beta.2(2026-05-19)

本次重点

  • 智能列表页生成默认更安全了rabetbase page generate-start 默认只返回 dry-run 预览,不再直接提交生成任务。真正发起生成必须显式加 --apply,适合 Agent 和自动化脚本先确认再执行。
  • 问题上报不会轻易泄露敏感信息rabetbase issue report 会自动截断超长描述,并脱敏 Cookie、Authorization、AccessKey、密码、私钥和 JWT 等敏感片段。
  • 非预期错误更容易反馈:平台 API 错误或 CLI 非预期异常会提示一条可复制的 rabetbase issue report 命令;脚本化场景可用 RABETBASE_DISABLE_ISSUE_NUDGE=1 关闭。
  • 平台请求可追踪来源:CLI 平台请求会带 X-Invoke-Source: cli:rabetbase,便于后端排查调用来源。

需要注意的兼容变化

  • Breaking:原来依赖 rabetbase page generate-start --datasetcode <code> 直接提交生成任务的脚本,需要改为 rabetbase page generate-start --datasetcode <code> --apply

v2.1.6(2026-04-21)

本次重点

  • --jq 安装链路彻底稳定了:CLI 现在内置 jq sidecar,安装时不再依赖 node-jq 去 GitHub 下载二进制。默认查找顺序为 JQ_PATH → CLI 内置 jq → PATH 上的 jq,更适合中国网络环境、离线镜像和 CI 场景。
  • 研发态 CLI 也能直接查真实数据了:新增 rabetbase data filterrabetbase data getOne,开发者可以在不切到运行态 CLI 的情况下直接确认数据集里的真实记录与返回结构。
  • 机器可读契约同步更新rabetbase schema / --help 现在会一起暴露新的 data service 与 jq 行为描述,AI Agent、脚本和文档都更容易对齐到同一套命令面。

修复与优化

  • JQ 覆盖逻辑更可预期:如果显式设置了 JQ_PATH 但路径无效,CLI 会直接报错,不会静默回退到别的 jq。
  • 安装失败面更小:不再因为外部二进制下载被拦截,导致整个 CLI 安装失败。

v2.1.5(2026-04-17)

本次重点

  • 安装体验更统一了:文档、脚手架、升级流程和 CLI 输出里的 Skill 安装命令现在保持一致,不再出现“这里一个写法、那里一个写法”的情况。
  • 照着文档执行更不容易出错:如果你是第一次安装,或者在给同事写接入说明,这个版本会减少命令示例不一致带来的困惑。

v2.1.4(2026-04-17)

本次重点

  • SQL 拉取更安静了:执行 sql pull 时,不会再因为“同步时间变了”这种无关差异,让你看到一堆并不重要的文件改动。
  • 真正有变化才提示你:现在更接近用户预期,只有 SQL 内容本身变了,才会触发后续处理。

v2.1.3(2026-04-17)

本次重点

  • v2.1.3-beta.0 的能力正式转正:如果你之前已经在试用页面生成、SQL 生命周期管理、菜单同步和版本策略,这个版本意味着这些能力进入更稳定的可用阶段。

v2.1.3-beta.0(2026-04-16)

本次重点

  • 标准页面生成更适合大任务了:页面生成进入异步工作流,长时间生成不再需要死等,更适合 AI Agent、自动化流水线和多人协作场景。
  • 本地 SQL 管理更完整了:你可以更自然地在本地管理 SQL 的创建、同步和状态,而不是把它当成一次性脚本。
  • BFF / SQL 命令更统一:创建命令开始统一到 create 语义,学习成本更低,也更符合直觉。
  • 菜单同步结果更好接后续流程:同步完成后,返回结果更适合继续做自动化处理。
  • 升级策略更清晰:CLI 开始支持更明确的版本提示和升级策略,减少“明明升级了却不是预期版本”的情况。

修复与优化

  • 减少接口返回不一致导致的失败:在 BFF、菜单、SQL、数据库连接这类能力上,CLI 对后端返回格式更稳了。
  • 升级结果更可预期cli update 不再容易装到一个“不是你想要的版本”。

v2.1.2(2026-04-14)

本次重点

  • v2.1.2-beta 这一轮能力正式稳定:如果你之前已经在试用新的配置体系、多应用规则和数据库连接兼容修复,这个版本可以作为更稳的落地版本使用。

v2.1.2-beta.3(2026-04-14)

本次重点

  • 这是一次发布前收口版本:对用户可见功能变化不大,主要是为了让后续稳定版更干净、更稳定。

v2.1.2-beta.2(2026-04-14)

本次重点

  • 数据库连接创建更稳了:如果你在创建 DB 连接时遇到过“明明创建成功了,CLI 却拿不到结果”的问题,这个版本重点修了这类兼容问题。
  • 后续动作更不容易断:数据库连接创建完成后,自动分析等后续步骤衔接更稳定。

v2.1.2-beta.1(2026-04-12)

本次重点

  • Beta 验证版:主要用于收口和验证 v2.1.2-beta.0 这一轮大改动,本身没有新增用户功能。

v2.1.2-beta.0(2026-04-12)

本次重点

  • 多应用体验明显变清晰了:默认应用、项目配置、全局配置之间的关系更容易理解,也更不容易“连错应用”。
  • 旧项目迁移更自然:很多 legacy 配置会在读取阶段自动收敛成新结构,用户不需要先手动整理一遍才能继续用。
  • doctor 更有用了:现在看到的是“最终实际生效的配置”,排查配置问题更直观。
  • 命令命名更统一:像 app remoteapi generate 这类命名更贴近用户心智,减少“命令名看不懂职责”的问题。

修复与优化

  • 修复默认应用容易选错的问题:尤其是项目已有配置时,不会再莫名其妙被全局默认应用覆盖。
  • 修复多应用场景下切换应用的歧义app use 的结果更符合用户预期。

v2.1.1(2026-04-09)

本次重点

  • BFF 模板示例更准确了:ENDPOINT 类型接口路径的示例和平台当前约定保持一致,新建脚本后更容易直接上手。

v2.1.1-beta.0(2026-04-09)

v2.1.1-beta.02.1.x 这一轮的重要起点:数据库连接能力开始成型,配置与多应用体验也开始明显收敛。

本次重点

  • 数据库连接开始真正可用:你可以在 CLI 里更完整地管理数据库连接、测试连接、发起结构分析、查看表和差异。
  • 默认输出更友好了:像 api list 这类命令在未显式指定格式时,展示更适合人直接阅读。
  • 多应用和配置边界更清晰:项目配置、全局配置、默认应用之间的关系开始收敛,减少误操作。
  • Skill 配套更完整:如果你把 CLI 接进 AI 助手或 Agent,这一版开始明显更顺手。

修复与优化

  • 减少误写配置的风险:在不合适的目录里,CLI 不会再默默写出一份你并不想要的配置。
  • 修复默认应用解析异常:单应用老配置场景下,不会再错误套用全局默认应用。

v2.0.13(2026-04-06)

新功能

  • sql pull 命令:新增 rabetbase sql pull,从远端批量拉取自定义 SQL 到 .rabetbase/sql/ 目录。支持 --sqlcode / --name 过滤、--force 强制覆盖、--dry-run 预览;交互模式下覆盖前二次确认;文件含 @lovrabet 头注释,同名冲突自动追加 sqlCode 后缀。
  • sql/shared.ts 公共模块:抽取 resolveSqlLocalDirsafeSqlFileBaseNameassignSqlFileNamesbuildPulledSqlFileContent,供 pull 及后续命令复用。

Bug 修复

  • 子目录执行命令时路径锚定失败:在项目子目录下运行命令时,CLI 无法找到 .rabetbase.json,导致配置读取失败。新增 findProjectRootDirectory(),从 cwd 向上查找含配置文件的目录。
  • sql list 权限不足时阻断列表展示:当用户对 listDatasets API 无权限时,rabetbase sql list 直接报错退出。修复后失败时静默回退为展示原始 dbId

v2.0.12(2026-04-05)

新功能

  • 项目级 inherit: false 配置隔离:项目 .rabetbase.json 新增顶层字段 inherit(默认 true),设为 false 时不再读取 ~/.rabetbase.json 进行合并,保证项目配置完全隔离。

v2.0.11(2026-04-05)

新功能

  • upgrade --yes 全流程非交互升级:将 --yes 标志透传至 skills remove / skills add 子命令,支持无需人工确认的自动化升级流程。

v2.0.10(2026-04-05)

新功能

  • api --global 开关rabetbase api list / rabetbase api pull 新增 --global flag。默认仅从项目级 .rabetbase.json 解析 apps,传入 --global 时使用全局 + 项目合并配置。
  • DEFAULT_API_DIR 常量统一:提取 DEFAULT_API_DIR = "./src/api"constant/paths.ts,消除多处硬编码魔法字符串。
  • getMultiAppConfigs scope 参数:新增 scope 参数(project | merged),支持按配置层级读取 apps。

Bug 修复

  • 跨项目全局 apps 意外混入:在项目 A 目录下运行 rabetbase api list,会意外显示全局配置中属于项目 B 的 apps。修复后默认仅读项目级 apps,需 --global 显式选择合并视图。
  • api pull 多应用分支缺少 apiDir fallback:多应用模式下输出目录使用硬编码而非 profile 或 context 中的 apiDir,补齐完整 fallback 链。

v2.0.9(2026-04-05)

新功能

  • @/ 路径别名tsconfig 新增 baseUrl + paths 配置,全量替换大量文件中的相对路径导入为 @/* 别名。
  • 输出格式精简:移除 table 输出格式,OutputFormat 收窄为 json | pretty | compress;新增 normalizeLegacyOutputFormat() 兼容旧配置。

Bug 修复

  • jq 错误消息前缀重复:修复 jq: jq: error: ... 这类重复前缀显示。
  • --jq 搭配 pretty 格式时报无意义错误:检测到 --jq 时自动切换为 json 格式。
  • execFileSync stderr 捕获不完整:显式指定 stdio,确保完整捕获失败输出。

v2.0.8(2026-04-04)

新功能

  • schema 命令:新增 rabetbase schema,导出与 --help 同源的机器可读命令元数据 JSON,供 LLM Agent、IDE 插件及 CI 工具链自动发现所有命令、Flag 及风险等级。
  • --jq 全局 Flag:新增全局 --jq <expr>,搭配 --format json/compress 对输出执行 jq 过滤。
  • --format compress:新增 compress 输出格式,单行紧凑 JSON 信封,去掉空白缩进以最小化 token 开销。
  • app list 结构升级:返回结构升级为 { items, meta },每个 app 标注 definedInglobal / project / both),meta 包含配置文件路径与默认来源信息。
  • app 位置参数app add <name> / use <name> / remove <name> 统一使用位置参数替代 --name flag;app remove 风险等级提升为 high-risk-write
  • dataset detail 扩充:解析 requestBody / responseBody JSON、dbtable 摘要、relatedPagesformatRulesvalidateRulesextenddoVersioncolumnCodeListWithDeleted
  • 配置分层架构:context 配置加载重构为 loadRawConfigLayers() / readRawConfigWithLayers() / inspectCliConfigJsonFile(),JSON 解析失败时区分 missing / empty / error 并写 stderr 提示。
  • doctor Config JSON 诊断:新增配置文件 JSON 语法检测段,诊断全局/项目配置文件合法性。

Bug 修复

  • 配置文件 JSON 解析错误被静默吞掉.rabetbase.json 存在语法错误时 CLI 静默忽略该文件。重构后解析失败会输出 stderr 警告。
  • app use 在项目目录下找不到全局配置的 app:修复名称校验逻辑,改用全局 + 项目合并视图。
  • app add --format flag 与管线级 --format 冲突:应用默认格式 flag 更名为 --defaultFormat

文档更新时间:2026-06-13 涉及版本:v2.2.2v2.2.1v2.2.0v2.1.14-beta.1v2.1.14-beta.0v2.1.13v2.1.12v2.1.12-beta.2v2.1.6v2.1.5v2.1.4v2.1.3v2.1.3-beta.0v2.1.2v2.1.2-beta.0v2.1.2-beta.3v2.1.1v2.1.1-beta.0v2.1.0v2.0.8v2.0.13 仓库:rabetbase-cli