Schema 命令
这篇文档当前可通过 feishu_doc_id 直连读取,但尚未确认它在 Rabetbase CLI 2.0 🔥 根节点下的真实 wiki 节点位置。本地先按 docx 直连来源保留,避免继续错误复用其他页面的 feishu_node_token。
本文档说明 rabetbase schema(子命令 export)的用途与输出结构:导出与 --help 同源的机器可读元数据,便于 IDE、Skill、脚本消费当前 CLI 的命令契约。
概述
schema 用于输出结构化 JSON 载荷(在声明式管线信封的 data 字段中),包含全部 service + command 的说明、风险等级、认证与 appcode 要求、位置参数与完整 flags(含框架为 help 注入的 --format / --yes 等)。本命令未实现 dryRun,不应使用 --dry-run。
命令用法
rabetbase schema
# 或
rabetbase schema export
单命令服务:rabetbase schema 等价于 rabetbase schema export(默认子命令为 export)。
输出格式(--format)
- 未指定
--format,且配置文件未设置默认format时:默认json(标准输出信封 + 缩进 JSON)。 --format compress:与json相同的信封结构,单行紧凑 JSON(无缩进换行),仅机器可读,可明显减少 token。- 仍可通过
--format pretty或--format table切换;若用户在配置中设置了全局format,则 CLI 显式--format> 配置文件 > 本命令默认json>pretty。
输出说明
成功时走声明式管线的标准输出信封:
| 字段 | 说明 |
|---|---|
ok | 是否成功 |
command | 当前命令标签,如 rabetbase schema export |
risk | 本命令风险等级(schema export 为 read) |
data | 见下节「载荷结构」 |
载荷结构(data)
| 字段 | 说明 |
|---|---|
schemaVersion | 契约版本号,当前为 1 |
cli | bin、displayName、version、gitCommit |
globalFlags | 与全局 --help 中 GLOBAL OPTIONS 对应的标志列表 |
services | 按帮助分组的可调用命令(与 rabetbase --help 一致);不含 CLI 内部兼容用的旧命令别名 |
每个 service 条目包含:service、label、isSingleCommand、defaultCommand、hasWildcard(是否含 wildcard 路由,如 run)、以及 commands 数组。
每个 command 条目包含:
command、description、tag(若有)risk、requiresAuth、requiresAppCode、hasFormatsupportsDryRun(是否声明了dryRun预览)args:位置参数声明(若有)flags:与单命令--help中 FLAGS 一致的完整列表(含注入项);pattern以可序列化形式给出helpExtra:静态字符串,或{ "dynamic": true }表示帮助为运行时生成(如run下列出脚本)
Wildcard:run 等服务在帮助里展示为 <script>,schema 中对该条使用与 wildcard 定义相同的元数据;hasWildcard 标明该服务支持未穷举子命令名。
前置条件
- 无需登录(
requiresAuth: false) - 无需 appcode(
requiresAppCode: false)
示例
--format json(或无 --format 且未覆盖配置默认)时根层示意:
{
"ok": true,
"command": "rabetbase schema export",
"risk": "read",
"data": {
"schemaVersion": 1,
"cli": {
"bin": "rabetbase",
"displayName": "Rabetbase CLI",
"version": "…",
"gitCommit": "…"
}
}
}
完整 data 体积较大,建议由工具消费而非人工通读。