PUBLISHING / MARKETPLACE
将扩展提交到 Marketplace
发布流程会校验发布者身份、扩展包、签名和审核状态。提交后查看审核结果,再确认兼容版本是否可供客户端解析。
提交前准备
- 使用已登录的 TradingAI Cloud 账户。
- 准备根目录含 manifest.json 的规范 .tar.gz 包:resource 包只含根清单;Wasm 包还包含 main.wasm。
- 核对每个发布包自己的 runtime、apiVersion、权限和 minHostVersion。
按顺序完成发布
- 构建并校验包。下载资源预设示例并进入解压后的 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.gzWasm 示例也包含 package.py;先按开发指南构建,在暂存目录放入 manifest.json 和 main.wasm,再用同样命令打包。提交之前,把清单中的发布者、扩展 ID、版本和名称改成自己的值,并重新校验。
- 选择并校验归档。在 Marketplace → Developer(开发者)→ My Extensions(我的扩展) 选择 Choose and validate package,打开刚生成的 .tar.gz。客户端从这个包读取发布者信息;后续登记和提交都使用同一个已选择的包。
- 登记发布者公钥。选择 Register publisher key,登记当前所选包的发布者。客户端将本机安全存储中的 Ed25519 公钥登记到当前登录账户。
- 等待发布者验证。公钥登记不会自动成为受信发布者。发布者验证由 Marketplace 管理端完成;上传提交要求已验证发布者。
- 在客户端签名并上传。保持同一个归档已选择,点击 Submit for review。如果重新选择归档,请重新登记该包的发布者,再提交。客户端计算归档摘要、按规范化清单签名,申请限时上传凭证,上传归档并完成提交。包工具只校验和打包,不会给归档签名。
- 查看审核结果。刷新 My Extensions(我的扩展) 查看提交状态。提交成功只代表进入审核流程;只有审核通过并发布版本后,客户端才可能解析到该版本。
- 核对发布版本。审核通过后,在 Cloud REST API 参考 中查询已发布版本、channel 和最低宿主版本。目标客户端还必须信任对应发布者密钥并满足包声明的兼容要求。
API 顺序与权限
使用 Cloud REST API 时,按“登记公钥 → 发布者验证 → 申请上传凭证 → 上传归档 → 完成提交 → 查看状态 → 查询已发布版本”推进。上传凭证响应包含本次上传需要的目标和字段;后续步骤要使用服务端返回值。
| 步骤 | 接口 | 访问范围与用途 |
|---|---|---|
| 登记 | 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 契约版本混作一个版本号。