跳转正文

yoyoboot admin inspect ​

需要了解资源操作、字段映射、标准 CRUD 资格或权限关系时使用。所有事实来自正式生成 catalog,不能把资源查询成功当作标准模块创建资格通过。

基本用法 ​

text
yoyoboot admin inspect <permission|permissions|resource|resources> [arguments] [--json]

在 YoyoBoot 源码仓库中运行 ​

查询当前真实计量单位资源的正式合同。

text
pnpm --dir tools/yoyoboot-cli run cli -- admin inspect resource measuringUnit --json

参数 ​

参数必填说明
subject是查询对象,当前支持:permission、permissions、resource、resources。
--json否以 JSON 输出完整结果信封,供机器读取。
--help否展示帮助;yoyoboot --help / yoyoboot <command> --help。
--repo <path>否显式指定仓库查找起点;缺省从当前工作目录向上查找。

permission ​

精确查询单条权限,并投影 catalog 关系:ancestors / directChildren。

text
yoyoboot admin inspect permission <permissionName> [--json]
参数必填说明
permissionName是完整权限名,例如 Pages.Administration.Tenants.Query。

permissions ​

列出 capability catalog 中的权限(含 displayName / parent / multiTenancySides / source);可只取某前缀。

text
yoyoboot admin inspect permissions [--prefix <prefix>] [--json]
参数必填说明
--prefix <value>否只返回该前缀本身及其后代;无匹配时 exit 2(避免拼错前缀拿到空列表)。

resource ​

投影单个资源的完整契约:operations + operationId、requestSchemas、list 查询参数、getForEdit idParameter、create/update 字段映射,以及 standard-crud compatibility。

text
yoyoboot admin inspect resource <resourceKey> [--json]
参数必填说明
resourceKey是camelCase 资源 key,例如 measuringUnit。

resources ​

列出生成的 CRUD resource catalog 中的全部真实资源(resourceKey / serviceName / operations)。

text
yoyoboot admin inspect resources [--json]
参数必填说明

示例 ​

固定示例仓库中的返回结果 ​

text
yoyoboot admin inspect resources --json

此命令针对固定示例仓库。下面只展示公开字段投影,不是当前 checkout 的完整输出。

json
{
  "command": "inspect resources",
  "status": "ok",
  "data": {
    "kind": "resources",
    "resources": [
      {
        "resourceKey": "exampleItem",
        "serviceName": "ExampleItem",
        "operations": [
          "list"
        ]
      }
    ]
  }
}

固定示例仓库中的返回结果 ​

text
yoyoboot admin inspect resource exampleItem --json

此命令针对固定示例仓库。下面只展示公开字段投影,不是当前 checkout 的完整输出。

json
{
  "command": "inspect resource exampleItem",
  "status": "ok",
  "data": {
    "kind": "resource",
    "resource": {
      "resourceKey": "exampleItem",
      "serviceName": "ExampleItem",
      "operations": [
        {
          "operation": "list",
          "operationId": "ExampleItem_GetAll"
        }
      ],
      "standardCrud": {
        "eligible": false,
        "code": "resource-binding-incomplete"
      }
    }
  }
}

固定示例仓库中的返回结果 ​

text
yoyoboot admin inspect permissions --prefix Pages.Example --json

此命令针对固定示例仓库。下面只展示公开字段投影,不是当前 checkout 的完整输出。

json
{
  "command": "inspect permissions",
  "status": "ok",
  "data": {
    "kind": "permissions",
    "prefix": "Pages.Example",
    "permissions": [
      {
        "name": "Pages.Example",
        "displayName": "示例",
        "parent": null,
        "multiTenancySides": null,
        "source": null
      },
      {
        "name": "Pages.Example.Query",
        "displayName": "查询",
        "parent": "Pages.Example",
        "multiTenancySides": null,
        "source": null
      }
    ]
  }
}

固定示例仓库中的返回结果 ​

text
yoyoboot admin inspect permission Pages.Example.Query --json

此命令针对固定示例仓库。下面只展示公开字段投影,不是当前 checkout 的完整输出。

json
{
  "command": "inspect permission Pages.Example.Query",
  "status": "ok",
  "data": {
    "kind": "permission",
    "permission": {
      "name": "Pages.Example.Query",
      "displayName": "查询",
      "parent": "Pages.Example",
      "multiTenancySides": null,
      "source": null
    },
    "ancestors": [
      "Pages.Example"
    ],
    "directChildren": []
  }
}

返回结果 ​

根据 subject 投影资源与权限的正式 catalog 合同。

主要字段 ​

字段说明
command实际结果命令名;Admin 保留子命令名,入口捕获异常时为 cli。
statusok / warn / error;同时检查退出码及诊断码。warn 可以退出 0。
findings[]诊断项包含 code、status、message,可选 detail;机器使用 code 分支,不解析消息。
sourceJSON 顶层命令实现来源,包含 kind / path / owner。
data命令结果;入口捕获失败时可能缺省,部分诊断失败仍保留结果。
data.kindresources / resource / permissions / permission,据此区分下面的结果。
data.source来源包含 path,以及可选 schemaVersion、generator、generatorVersion、sourceHash;来源版本不等于结果版本。
data.resources[]resources:resourceKey、serviceName、operations(操作名数组)。
data.resourceresource:resourceKey、serviceName、operations、requestSchemas、binding、standardCrud。
data.resource.operations[]operation 与 operationId。
data.resource.requestSchemas[]operation 与 schemaRef。
data.resource.binding.list可选;queryParameters(parameter/field)、itemsPath、totalCountPath。
data.resource.binding.getForEdit可选;idParameter、entityPath。
data.resource.binding.create / update / setEnabled可选;fieldMappings,每项 source 字段名与 target 路径片段数组。
data.resource.binding.remove可选;idParameter。
data.resource.standardCrudeligible=true:rowKey、formFields(key/editableOn)、operations 的 create/update/setEnabled/remove 布尔值;eligible=false:code/message。
data.prefixpermissions:过滤前缀;未指定时 null。
data.permissions[]完整权限 descriptor:name、displayName、parent、multiTenancySides、source;后三项可能 null。
data.permission完整权限 descriptor:name、displayName、parent、multiTenancySides、source;后三项可能 null。
data.ancestorspermission:从根到直接父级的权限名数组。
data.directChildrenpermission:直接子权限名数组。

使用说明 ​

  • 仓库根使用 pnpm --dir tools/yoyoboot-cli run cli -- <命令参数>;已完成构建时也可使用 node tools/yoyoboot-cli/dist/bin.js <命令参数>。
  • JSON 示例来自固定示例仓库的公开投影,省略实现来源、规则文件位置及大段内容;<...> 是明确的环境占位符。完整字段见返回结果表,实际内容以当前工作树为准。
  • 全局参数严格解析:未知、重复、缺值参数返回退出码 2;--help 输出文本,即使同时指定 --json。
  • 此结果没有独立的 data.schemaVersion;不要把来源 catalog 版本或 Reference metadata 版本当成结果版本。
  • standardCrud.eligible=false 是观察结果,资源存在时仍查询成功。prefix 匹配该权限本身及点分后代;不存在的前缀返回失败。
  • 所有事实读取正式 catalog,不解析业务 TypeScript、route 或 manifest 猜测领域。inspect module 尚未提供。

退出码 ​

Exit code含义
0成功或仅有警告;警告仍需阅读。
2预期失败:参数、仓库或领域条件不满足,或严格检查未通过。
1未预期程序错误。

常见错误 ​

permission-prefix-not-found ​

没有权限匹配该前缀。

处理方式:使用 admin inspect permissions 查询真实前缀。

crud-catalog-missing ​

正式 CRUD catalog 缺失。

处理方式:使用宿主正式 API 生成入口恢复 catalog。

crud-catalog-unreadable ​

CRUD catalog 不可解析或条目残缺。

处理方式:修复正式输入并重新生成,不能手写替代合同。

crud-catalog-empty ​

CRUD catalog 无资源。

处理方式:核对正式输入与生成器输出。

capability-catalog-missing ​

权限 catalog 缺失。

处理方式:使用 CapabilityExporter 恢复正式 catalog。

capability-catalog-unreadable ​

权限 catalog 不可解析或残缺。

处理方式:修复权限正式来源并重新生成。

capability-catalog-empty ​

权限 catalog 无权限。

处理方式:检查权限 Provider 和 exporter 输入。

unknown-resource-key ​

资源 key 不存在。

处理方式:先运行 admin inspect resources,选择真实 key。

unknown-permission-key ​

权限名或前缀不存在。

处理方式:先运行 admin inspect permissions;新权限先由正式 Provider 定义。

unknown-inspect-subject ​

查询对象不受支持。

处理方式:使用 capabilities 暴露的 subject。

相关命令 ​

YoyoBoot · 从真实项目走向可复用能力