跳到文档正文
TradingAI开发者中心返回官网 ↗

PUBLISHING / MARKETPLACE

将扩展提交到 Marketplace

发布流程会校验发布者身份、扩展包、签名和审核状态。提交后查看审核结果,再确认兼容版本是否可供客户端解析。

提交前准备

  • 使用已登录的 TradingAI Cloud 账户。
  • 准备根目录含 manifest.json 的规范 .tar.gz 包:resource 包只含根清单;Wasm 包还包含 main.wasm。
  • 核对每个发布包自己的 runtime、apiVersion、权限和 minHostVersion。

按顺序完成发布

  1. 构建并校验包。下载资源预设示例并进入解压后的 resource-preset 文件夹。随包的 package.py 会校验结构并生成归档;资源包的暂存目录只放清单。
    校验并生成规范归档
    mkdir -p .package-staging .packages
    cp manifest.json .package-staging/manifest.json
    python3 package.py validate .package-staging
    python3 package.py build .package-staging --output .packages/resource-preset.tar.gz
    python3 package.py validate .packages/resource-preset.tar.gz

    Wasm 示例也包含 package.py;先按开发指南构建,在暂存目录放入 manifest.json 和 main.wasm,再用同样命令打包。提交之前,把清单中的发布者、扩展 ID、版本和名称改成自己的值,并重新校验。

  2. 选择并校验归档。在 Marketplace → Developer(开发者)→ My Extensions(我的扩展) 选择 Choose and validate package,打开刚生成的 .tar.gz。客户端从这个包读取发布者信息;后续登记和提交都使用同一个已选择的包。
  3. 登记发布者公钥。选择 Register publisher key,登记当前所选包的发布者。客户端将本机安全存储中的 Ed25519 公钥登记到当前登录账户。
  4. 等待发布者验证。公钥登记不会自动成为受信发布者。发布者验证由 Marketplace 管理端完成;上传提交要求已验证发布者。
  5. 在客户端签名并上传。保持同一个归档已选择,点击 Submit for review。如果重新选择归档,请重新登记该包的发布者,再提交。客户端计算归档摘要、按规范化清单签名,申请限时上传凭证,上传归档并完成提交。包工具只校验和打包,不会给归档签名。
  6. 查看审核结果。刷新 My Extensions(我的扩展) 查看提交状态。提交成功只代表进入审核流程;只有审核通过并发布版本后,客户端才可能解析到该版本。
  7. 核对发布版本。审核通过后,在 Cloud REST API 参考 中查询已发布版本、channel 和最低宿主版本。目标客户端还必须信任对应发布者密钥并满足包声明的兼容要求。

API 顺序与权限

使用 Cloud REST API 时,按“登记公钥 → 发布者验证 → 申请上传凭证 → 上传归档 → 完成提交 → 查看状态 → 查询已发布版本”推进。上传凭证响应包含本次上传需要的目标和字段;后续步骤要使用服务端返回值。

发布流程 API(路径相对于 /api/marketplace)
步骤接口访问范围与用途
登记POST /publisher/register登录用户登记公钥和显示名;不会替代管理端发布者验证。
申请上传凭证POST /plugins/submissions/upload-ticket需登录且发布者已验证;申请临时上传对象与凭证。
上传归档使用上传凭证返回的目标向本次指定的对象地址上传归档,不要自行推导或复用凭证。
完成提交POST /plugins/submissions/complete需登录且发布者已验证;提交清单和对象键,服务端复核归档、摘要、签名及版本。
查看状态GET /publisher/me/submissions登录用户读取自己的审核记录。
查询发布版本GET /plugins/{id}/versions读取审核发布后的版本记录;目录版本查询可匿名访问。

逐字段参数、上传协议和响应说明见 Cloud REST API 发布者参考。令牌来自正常 Cloud 登录流程;没有独立的开发者 API key 申请入口。

每个版本都记录兼容目标

上传新版本前提升扩展版本号,检查贡献 ID 和权限变化,并按该包实际使用的宿主能力填写 minHostVersion。不要把 guest API、原生 ABI、扩展版本或 Cloud API 契约版本混作一个版本号。