用途
aio-ffcpe-cli 是 Adobe I/O CLI(aio)的一个 oclif 插件,包名为 @adobe/aio-cli-plugin-ffcpe,主题为 ffcpe,即 Firefly Creative Production for Enterprise(FFCPE)。该插件聚焦于 run-workflow Catalog API,用于管理自定义动作(custom actions)的目录条目。内部和较早文档有时称其为 Workflow Builder 或使用旧的主题命名,但指的是同一能力,当前品牌与 aio 主题均为 ffcpe。
主要能力
插件提供 aio ffcpe catalog 系列命令:
- aio ffcpe catalog validate:对目录条目 JSON(通常为 <action-name>.entry.json)进行本地校验,使用 --file / -f 指定文件。
- aio ffcpe catalog register:从 JSON 文件 POST 注册新的目录条目,会先校验;可选 --strict 在出现校验警告时失败。
- aio ffcpe catalog inspect ACTIONTYPE:GET 单个动作,可选 --version 指定具体 semver。
- aio ffcpe catalog list:GET 目录动作列表,支持按命令帮助中的过滤器筛选。
- aio ffcpe catalog update ACTIONTYPE:PUT 完整替换定义。
- aio ffcpe catalog disable ACTIONTYPE:禁用动作(通常也会从 FFCPE 工作流 UI 中隐藏)。
- aio ffcpe catalog enable ACTIONTYPE:重新启用已禁用的动作。
- aio ffcpe catalog delete ACTIONTYPE:DELETE 删除,使用 --version 可仅删除某个 semver。
运行 aio ffcpe catalog --help 或 aio ffcpe catalog <command> --help 可查看确切的标志与示例。
使用方式
安装
- 安装 Adobe I/O CLI(aio),需要 Node.js 18+:
npm install -g @adobe/aio-cli aio --version
- 安装本插件:
aio plugins:install @adobe/aio-cli-plugin-ffcpe
或从 Git(fork 或内部仓库)安装:
aio plugins:install https://github.com/adobe/aio-cli-plugin-ffcpe
- 验证并认证:
aio ffcpe catalog --help aio login aio console org select
如果 aio ffcpe 缺失,运行 aio plugins 确认该包已安装。
Base URL
默认:https://run-workflow.adobe.io 可通过环境变量 AIO_FFCPE_CATALOG_BASE_URL 或 catalog 命令上的 --base-url(-u)标志覆盖。
常用标志
- --org-id:覆盖 x-gw-ims-org-id(默认来自 aio console org select)。
- --api-key:需要时覆盖 x-api-key。
- --json:在支持处打印原始 API JSON。
编写目录条目
CLI 不会交互式生成条目。请使用 ffcpe-catalog-entry-json 技能(或插件安装后的 /aio-ffcpe-skills:ffcpe-catalog-entry-json)。在 App Builder 仓库中推荐布局:将每个动作的目录 JSON 存为 <action-name>.entry.json,与 <action-name>.web.* 和 <action-name>.worker.* 放在一起(例如 actions/resize-image/resize-image.entry.json),从而将单个自定义动作的实现与注册归组。参见 ffcpe-custom-node-sdk 中的 ffcpe-app-builder-actions。
然后校验并注册:
aio ffcpe catalog validate -f ./actions/resize-image/resize-image.entry.json aio ffcpe catalog register -f ./actions/resize-image/resize-image.entry.json
注册前:接入 App Builder 项目
注册前,App Builder 应用必须已部署,且本地项目已接入 Console 工作区。
Console 项目命名规则:
- 仅限字母数字:连字符会被拒绝,例如 demo-qr-app 会因 Project name … is invalid 失败。
- 最多 20 个字符:更长的名称在创建时失败。
- 名称 ≠ 包名:Console 项目(如 demoQrFfcpe)可以不同于 OpenWhisk runtimeManifest 包(如 demo-qr-custom-ffcpe-nodes)。
- 新项目会自动创建 Stage 和 Production 工作区。
Console CLI 标志注意事项:aio console workspace 命令的标志形状不一致,使用错误标志会抛出 NonExistentFlagsError:
- aio console workspace create:--projectName <name>(必填)、--name <name>(必填)。
- aio console workspace select:位置参数 [NAME_OR_ID] + 可选 --projectId <id>。
- aio console workspace list:--projectId <id>,没有 --projectName 标志。
- aio console workspace download:可选位置参数目标路径。
接入、构建、部署:
aio console project create -n myproject -t "My FFCPE App" --json aio console project select myproject aio console workspace select Stage --projectId <PROJECT_ID> aio console workspace download myproject-Stage.json echo 'myproject-Stage.json' >> .gitignore aio app use myproject-Stage.json --overwrite --no-input aio app build aio app deploy
当 .env 已由 aio app init 存在时,对 aio app use 使用 --overwrite --no-input,否则 CLI 会交互式提示,可能在代理/CI 会话中挂起。
下载的 JSON 文件包含客户端凭据和 API 密钥。生成的 .gitignore 不会自动覆盖该文件(只覆盖 console.json 和 .env*)。请在下载后立即添加确切文件名,或模式 [0-9]--*.json。
部署后:端点 → 目录 → 注册
- 从部署输出复制每个 web 动作的基础 URL。
- 在 <action-name>.entry.json 中设置 submitEndpoint = {base}/submit、statusEndpoint = {base}/status。
- 使用默认 SDK 路由认证时,将 authentication 设为 ims_service_token(参见 ffcpe-catalog-entry-json)。
- 注册:
aio console org select aio ffcpe catalog validate -f ./actions/my-action/my-action.entry.json aio ffcpe catalog register -f ./actions/my-action/my-action.entry.json
或,如果 actionType 已存在:
aio ffcpe catalog update my-action -f ./actions/my-action/my-action.entry.json
完整的 init-bare → deploy → register 流程参见 ffcpe-app-builder-actions 技能。
适用场景
- 安装或排查该插件问题。
- 选择合适的 aio ffcpe catalog … 命令。
- 解释各标志(--base-url、--org-id、--api-key、--json 等)。
- 了解认证与组织上下文如何解析。
- 在 App Builder 项目中注册、更新、启用、禁用或删除自定义动作的目录条目。
限制
- 插件不提供交互式条目生成,需借助 ffcpe-catalog-entry-json 技能编写条目 JSON。
- 注册前需完成 App Builder 应用部署与 Console 工作区接入。
- Console 项目名称仅限字母数字且最多 20 字符。
- aio console workspace 命令标志形状不一致,需按上表使用正确标志。
- 下载的凭据 JSON 不会被 .gitignore 自动覆盖,需手动添加。
深入文档
- skills/README.md:代理技能(Claude / commands、Cursor 路径、npx skills install)。
- .cursor/ffcpe-catalog/SKILL.md:通过 aio ffcpe catalog 进行目录操作(底层为同一 HTTP API;不要手工编写 curl)。