跳到主要内容

配置:应用与多应用

很多「我明明改对了怎么还是连错库」的问题,本质都是 App Code 或当前应用没有指到你以为的那一个。这一节把应用选择规则说清楚,方便你自查。

三个概念

App Code:平台里每个应用有一个唯一标识。CLI 里几乎所有读写数据的命令,都默认针对「当前 App」。

配置文件:项目根目录的 .rabetbase.json 里优先使用 apps + defaultApp 组织应用;旧的顶层 appcode 仍兼容读取。用户目录下也可以有一份全局配置。

当前应用:当前命令最终落到哪个 App,由命令行参数、当前工作目录配置和全局配置共同决定。

优先级:谁说了算

简化记:命令行里写的 > 当前选中的应用配置 > 文件里顶层默认值

常用手段:

  • 临时指定 App Code:rabetbase ... --appcode <code>
  • 多应用时临时切换应用:rabetbase ... --app <配置里的应用名>
  • 当前目录固定默认应用:rabetbase workspace use --app <name>

这样你可以在脚本里写死参数,也可以在本地配置文件里只维护一份默认值。

单应用模式(最常见)

兼容读取的最简形态是顶层 appcode

{
"appcode": "app-xxxx"
}

但新写入默认会收成 canonical 的 apps + defaultApp。之后不加 --appcode 时,就用当前选中的默认应用。

多应用模式(一个仓库里多个 Lovrabet 应用)

当项目里要同时维护「订单应用」「商品应用」等,可以用 apps + defaultApp

{
"defaultApp": "order",
"apps": {
"order": {
"appcode": "app-order-xxx",
"apiDir": "./apps/order/src/api"
},
"product": {
"appcode": "app-product-yyy"
}
},
"cookie": "<可共享的登录态>",
"format": "pretty"
}

外层字段是共享默认;每个 apps.<name> 里可以覆盖自己的 appcodeapiDircookie 等。

切换默认应用(会写回配置文件):

rabetbase workspace use --app product

查看当前有哪些应用、谁是 default:

rabetbase app list

从平台发现当前账号可访问的应用:

rabetbase app list --remote

直接敲 rabetbase app 只显示 app 服务帮助;查看本地应用请显式执行 rabetbase app list

新增应用:

rabetbase app add <name> --appcode <必填的AppCode>

还可加 --apiDir--cookie 等。

删除应用:

rabetbase app remove <name>

用命令改配置项(不用手编辑 JSON)

在项目目录下执行时,会改项目配置;不在项目内时,写入命令会拒绝执行并提示加 --global 或先初始化项目:

rabetbase config set appcode app-xxxx
rabetbase config get appcode
rabetbase config list

其中:

  • config set appcode app-xxxx 在单应用场景会自动写成 apps + defaultApp
  • 若项目已经是多应用配置,改用 rabetbase app add / rabetbase workspace use --app <name>

适合快速改一两项,复杂结构仍建议直接编辑文件或交给版本管理。

风险等级(riskLevel)

配置里可以设 riskLevelread | write | high-risk-write,用来限制「能执行到什么危险程度的命令」。例如只允许读,则写入类命令会被拒绝。

小结

  • 先确认 App Code 是否对应当前任务。
  • 多应用时养成习惯:rabetbase app list 看默认是谁,或用 --app / --appcode 显式指定。
  • 不知道平台上有哪些应用时,用 rabetbase app list --remote 发现;不要再使用旧入口 rabetbase app remote
  • 当前目录默认应用切换用 rabetbase workspace use --app <name>;不要再使用旧入口 rabetbase app use <name>