版本创建、市场与交付
创建不可变 Bundle 版本内容,完成审核、市场发布、安装、升级和资源台账验证。
创建项目与定义
先确认本机 CLI:
baijimu --version
baijimu bundle --help
baijimu project create --help
baijimu bundle create --help
baijimu bundle project bind --help先创建 BUNDLE 项目,检出项目并提交根目录 baijimu.bundle.json,然后创建 Bundle 并建立唯一绑定:
baijimu project create --workspace-id <workspace> \
--project-type-key BUNDLE --name <projectName>
baijimu project checkout <projectId> --workspace-id <workspace> \
--directory <directory>
baijimu bundle create --workspace-id <workspace> \
--bundle-id <bundleId> \
--name <name> \
--project-id <projectId>既有 Bundle 迁移时不重建身份;创建同工作区 BUNDLE 项目、提交源码文件后执行一次:
baijimu bundle project bind <bundle> --workspace-id <workspace> \
--project-id <projectId>绑定不可改写,同一个项目也不能绑定到其他 Bundle。bundle update 只修改名称、图标、描述和
Bundle 状态,不接收 Manifest 或权限内容。
修改项目文件并发布时,先遵循 Bundle 修改与发布工作流,固定本机 CLI 对应的 版本文档,并验证当前用户认证与权限。
创建 Bundle 版本
创建版本前确保所有资源版本已经生成,并把精确版本、Bundle 依赖和权限写入
baijimu.bundle.json。提交并推送后使用完整提交 ID:
git rev-parse HEAD
baijimu bundle version create <bundle> --workspace-id <workspace> \
--version <semanticVersion> \
--git-commit-id <40-character-commit>服务端只从绑定项目的指定提交读取 baijimu.bundle.json。创建版本时校验项目类型和归属、资源归属、
精确版本、依赖需求和安装适配,并生成唯一的不可变版本内容
schemaVersion + resources + dependencies。版本内容严格使用这一层规范结构。成功后
同时记录来源项目和提交,且不会自动安装或升级任何工作区。模块没有与这条链路平行的审核、
市场发布或安装入口。
Bundle Version 不包含 environmentKey。公共市场把来源环境作为市场条目的独立不可变元数据保存;安装时
Runtime Plan 再为根 Bundle 和每个依赖解析来源环境,并把实际解析结果写入 Runtime 安装台账。
创建成功后版本内容即不可变,不需要再次发布或冻结。协议中的历史状态名 PUBLISHED 表示版本可用,不表示已上架市场或已经安装。
审核和市场
创建版本和安装不会自动提交审核,也没有独立的工作区审核前置步骤。需要公开分发时,
把状态为 PUBLISHED 的精确 Bundle 版本直接提交公共市场审核:
baijimu bundle market publish <bundle> --workspace-id <workspace> \
--version-id <bundleVersionId> --request-id <uuid>requestId 必须是非空 UUID。同一次提交重试复用原 UUID;新的审核申请使用新 UUID。
市场接纳申请后先记录 PREPARE;完成资源快照和定价准备后,再记录 SUBMIT 并进入
PENDING_REVIEW。
随后查询该工作区的公共市场待审记录和指定版本的审核历史:
baijimu bundle review list --workspace-id <workspace>
baijimu bundle review history <bundleVersionId> --workspace-id <workspace>这两个命令查询市场审核记录,不代表另有一层工作区审批。尚未提交或请求在创建申请前失败时,
审核历史为空;只有 PREPARE 表示提交准备尚未完成。空记录不表示安装失败,也不表示已经审核通过。
“Bundle 版本已创建”“已提交市场审核”和“公共市场已发布”是不同状态。
市场审核由独立审核者完成,发布者不能自行批准或绕过审核。
参数缺失、字段类型错误、非法 UUID、JSON 格式错误等请求错误必须返回 CModel 失败响应,
包含非零 errorCode 和说明错误字段或原因的 data.message,不能返回裸 HTTP 422。
失败时保留 CLI 版本、脱敏后的命令、原 requestId 和错误信息,再核对参数或反馈平台。
直接分发与公共市场是两条独立路径,状态都属于精确 Bundle Version,而不是 Bundle 聚合:
OWNER_ONLY:默认值,仅所属工作区可直接安装。TARGETED:只有源工作区明确授权的目标工作区可直接安装。PUBLIC_DIRECT:任意工作区可直接安装,但不会自动上市场,也不代表经过市场审核。
管理精确版本的分发策略:
baijimu bundle distribution get <sourceWorkspace> <bundle> \
--version-id <bundleVersionId>
baijimu bundle distribution set <sourceWorkspace> <bundle> \
--version-id <bundleVersionId> --mode targeted
baijimu bundle distribution grant <sourceWorkspace> <bundle> \
--version-id <bundleVersionId> --target-workspace-id <targetWorkspaceId>
baijimu bundle distribution revoke <sourceWorkspace> <bundle> \
--version-id <bundleVersionId> --target-workspace-id <targetWorkspaceId>市场上架不要求版本先设为 PUBLIC_DIRECT;任何符合市场条件的 PUBLISHED 版本都可以单独提交审核。
新版本不会继承旧版本的公开模式或定向授权,必须逐版本明确配置。
安装和升级
市场安装仍由 CLI 解析已审核的公共版本:
baijimu bundle install <targetWorkspace> <bundle>安装发布方授权的精确版本时,传入发布方提供的稳定 bundleId 和版本记录 ID:
baijimu bundle install <targetWorkspace> <bundleId> \
--version-id <bundleVersionId>CLI 会先解析与实际安装一致的完整依赖计划,显示每个新增精确版本的发布工作区、分发路径、市场验证状态,
以及整套资源和请求权限。若根版本或任一新增依赖通过 TARGETED 或 PUBLIC_DIRECT 直接分发且未经过
市场验证,核对完整预览后必须明确确认:
baijimu bundle install <targetWorkspace> <bundleId> \
--version-id <bundleVersionId> --confirm-unverified
baijimu bundle upgrade <workspace> <bundle> \
--version-id <bundleVersionId> --confirm-unverified目标工作区确认不能代替源工作区授权。撤销授权后禁止新的安装和升级;已安装版本继续运行,且卸载、 恢复和资源账本读取不依赖授权仍然有效。
安装或升级后查询资源台账:
baijimu bundle resources <workspace> <bundle>验证至少包括:
- 安装记录引用目标 Bundle 版本。
- 版本内容中的模块和平台应用语义版本准确。
- 每个物化资源都有明确成功或失败状态。
- Bundle 已在目标 Runtime 物化模块,方法可调用。
- 平台应用入口可见,平台网页授权可完成。
- 如果使用 Bundle 生命周期插件,外部资源已经创建且输出配置正确写入目标资源。
- 升级不会改变安装标识、重复创建外部租户或错误复用其他 Runtime 的外部资源。
- 已安装依赖的精确版本满足 Bundle 内容中的全部 Cargo 版本需求。
- 直接分发时,Operation 记录了目标工作区管理员对未验证版本的明确确认。
- 源工作区撤销授权后,新安装和升级失败,但已安装版本仍能读取、运行和卸载。
卸载属于破坏性操作。执行前确认资源台账、共享 Bundle 依赖,以及生命周期插件声明的 外部资源停用、保留和补偿语义。