Rabetbase配置项参考
本文档介绍 rabetbase-cli 的配置体系,包括配置文件字段、单应用/多应用模式,以及通过命令行管理配置。
一、配置文件概览
rabetbase-cli 使用 JSON 配置文件,按作用域分为两级:
| 作用域 | 文件位置 | 说明 |
|---|---|---|
| 项目级 | 项目根目录 **./. **``rabetbase.json | 仅对当前项目生效,优先级更高 |
| 全局级 | 用户 HOME **~ **``/.``rabetbase.json | 所有项目共享,作为 fallback |
二、初始化配置
# 交互式创建项目配置
cd your-project/
rabetbase project init
按提示输入 AppCode 和环境,自动生成 .rabetbase.json。
三、配置项列表
3.1 顶层字段
| 字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
appcode | string | — | **必填 **(单应用模式)。应用代码,从 Lovrabet 平台获取。兼容旧名 app |
env | string | "production" | 环境。可选值:production、daily。online 自动映射为 production |
locale | string | "en-US" | 语言设置 |
cookie | string | — | 内联 session cookie。设置后优先于 ~/.lovrabet/cookie 文件 |
accessKey | string | — | Access Key 认证(预留) |
format | string | — | 默认输出格式。可选值:json、pretty、table |
pageSize | number | — | 默认分页大小,用于 sql list 等分页命令 |
riskLevel | string | "high-risk-write" | 允许的最高风险等级。可选值:read、write、high-risk-write。兼容旧名 maxRisk |
apiDir | string | "./src/api" | api pull 生成代码的输出目录 |
template_base_url | string | 平台默认 CDN | 模板 CDN 基础 URL |
defaultApp | string | — | 多应用模式下的默认应用名称 |
apps | object | — | 多应用配置。key 为应用名,value 为 AppProfile |
apiDomain | string | 平台默认 | 自定义 API 域名(独立部署场景) |
userDomain | string | 平台默认 | 自定义用户域名 |
runtimeDomain | string | 平台默认 | 自定义运行时域名 |
3.2 AppProfile 字段(多应用模式下 apps.* 内的每个应用)
| 字段 | 类型 | 说明 |
|---|---|---|
appcode | string | **必填 **。该应用的 appcode |
env | string | 覆盖顶层 env |
apiDir | string | 覆盖顶层 apiDir |
cookie | string | 覆盖顶层 cookie |
accessKey | string | 覆盖顶层 accessKey |
format | string | 覆盖顶层 format |
pageSize | number | 覆盖顶层 pageSize |
riskLevel | string | 覆盖顶层 riskLevel |
locale | string | 覆盖顶层 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_APPCODE | appcode | 应用代码 |
RABETBASE_ENV | env | 环境 |
RABETBASE_COOKIE | cookie | Session cookie |
RABETBASE_ACCESS_KEY | accessKey | Access Key |
RABETBASE_FORMAT | format | 输出格式 |
RABETBASE_PAGE_SIZE | pageSize | 分页大小 |
RABETBASE_RISK_LEVEL | riskLevel | 最高风险等级 |
RABETBASE_VERBOSE | — | 全局 verbose 开关(1 或 true) |
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