跳到主要内容

Rabetbase配置项参考

本文档介绍 rabetbase-cli 的配置体系,包括配置文件字段、单应用/多应用模式,以及通过命令行管理配置。


一、配置文件概览

rabetbase-cli 使用 JSON 配置文件,按作用域分为两级:

作用域文件位置说明
项目级项目根目录 **./. **``rabetbase.json仅对当前项目生效,优先级更高
全局级用户 HOME **~ **``/.``rabetbase.json所有项目共享,作为 fallback

二、初始化配置

# 交互式创建项目配置
cd your-project/
rabetbase project init

按提示输入 AppCode 和环境,自动生成 .rabetbase.json


三、配置项列表

3.1 顶层字段

字段类型默认值说明
appcodestring**必填 **(单应用模式)。应用代码,从 Lovrabet 平台获取。兼容旧名 app
envstring"production"环境。可选值:productiondailyonline 自动映射为 production
localestring"en-US"语言设置
cookiestring内联 session cookie。设置后优先于 ~/.lovrabet/cookie 文件
accessKeystringAccess Key 认证(预留)
formatstring默认输出格式。可选值:jsonprettytable
pageSizenumber默认分页大小,用于 sql list 等分页命令
riskLevelstring"high-risk-write"允许的最高风险等级。可选值:readwritehigh-risk-write。兼容旧名 maxRisk
apiDirstring"./src/api"api pull 生成代码的输出目录
template_base_urlstring平台默认 CDN模板 CDN 基础 URL
defaultAppstring多应用模式下的默认应用名称
appsobject多应用配置。key 为应用名,value 为 AppProfile
apiDomainstring平台默认自定义 API 域名(独立部署场景)
userDomainstring平台默认自定义用户域名
runtimeDomainstring平台默认自定义运行时域名

3.2 AppProfile 字段(多应用模式下 apps.* 内的每个应用)

字段类型说明
appcodestring**必填 **。该应用的 appcode
envstring覆盖顶层 env
apiDirstring覆盖顶层 apiDir
cookiestring覆盖顶层 cookie
accessKeystring覆盖顶层 accessKey
formatstring覆盖顶层 format
pageSizenumber覆盖顶层 pageSize
riskLevelstring覆盖顶层 riskLevel
localestring覆盖顶层 locale

四、单应用模式

一个项目只对接一个 Lovrabet 应用。

最简配置

{
"appcode": "app-7786baaf",
"env": "daily"
}

完整配置示例

{
"appcode": "app-7786baaf",
"env": "daily",
"riskLevel": "high-risk-write",
"format": "json",
"apiDir": "./src/api"
}

通过命令配置

# 设置环境
rabetbase config set env daily

# 设置输出目录
rabetbase config set apiDir ./src/api

# 设置风险等级
rabetbase config set riskLevel high-risk-write

# 写入全局配置(加 --global)
rabetbase config set apiDomain https://your-api.example.com --global


五、多应用模式

一个项目对接多个 Lovrabet 应用,使用 apps + defaultApp

配置示例

{
"defaultApp": "order",
"apps": {
"order": {
"appcode": "app-8b7d35a1",
"env": "daily",
"riskLevel": "write"
},
"product": {
"appcode": "app-8b7d35a2",
"env": "production",
"apiDir": "./src/api/product"
}
}
}

通过命令管理多应用

# 添加应用
rabetbase app add order --appcode app-order-001 --env daily
rabetbase app add product --appcode app-product-002

# 切换默认应用
rabetbase app use order

# 查看已配置的应用
rabetbase app list

# 删除应用
rabetbase app remove product

使用 --app 指定应用

运行命令时通过 --app 切换目标应用:

# 查询 order 应用的数据集
rabetbase dataset list --app order

# 查询 product 应用的 SQL
rabetbase sql list --app product

# 拉取 order 应用的 API
rabetbase api pull --app order

使用 --appcode 直接指定

如果知道 appcode 但不想配置 app profile,可以直接用 --appcode

rabetbase dataset list --appcode app-8b7d35a1

CLI 会自动在 apps 中反查匹配的 profile(cookie、env 等)。


六、独立部署域名配置

如果 Lovrabet 部署在自定义域名下,通过三个字段覆盖默认域名:

# 写入全局配置(所有项目生效)
rabetbase config set apiDomain https://your-api.example.com --global
rabetbase config set userDomain https://your-user.example.com --global
rabetbase config set runtimeDomain https://your-runtime.example.com --global

也可以直接写在项目配置中:

{
"appcode": "app-xxx",
"apiDomain": "https://your-api.example.com",
"userDomain": "https://your-user.example.com",
"runtimeDomain": "https://your-runtime.example.com"
}


七、环境变量

所有环境变量以 RABETBASE_ 为前缀,兼容旧前缀 LOVRABET_。环境变量优先级高于配置文件。

环境变量对应配置项说明
RABETBASE_APPCODEappcode应用代码
RABETBASE_ENVenv环境
RABETBASE_COOKIEcookieSession cookie
RABETBASE_ACCESS_KEYaccessKeyAccess Key
RABETBASE_FORMATformat输出格式
RABETBASE_PAGE_SIZEpageSize分页大小
RABETBASE_RISK_LEVELriskLevel最高风险等级
RABETBASE_VERBOSE全局 verbose 开关(1true
RABETBASE_APP运行时指定应用名(等效 --app

CI 环境示例:

export RABETBASE_APPCODE=app-xxx
export RABETBASE_ENV=daily
rabetbase dataset list


八、优先级总览

每个配置项的解析优先级从高到低:

CLI flag (--appcode, --env, --format, --app ...)

环境变量 (RABETBASE_APPCODE, RABETBASE_ENV, ...)

当前激活的 app profile (apps..*)

项目级 .rabetbase.json 顶层字段

全局级 ~/.rabetbase.json 顶层字段

内置默认值


九、命令速查

# 查看合并后的完整配置
rabetbase config list

# 读取单个配置项
rabetbase config get apiDomain

# 写入项目级配置
rabetbase config set env daily

# 写入全局配置
rabetbase config set apiDomain https://custom-api.example.com --global

# 诊断配置问题
rabetbase doctor

# 多应用管理
rabetbase app add --appcode
rabetbase app use
rabetbase app list
rabetbase app remove