Skip to content

验收测试:包内元数据定制(ADR-0126)——流程/动作的停用+克隆 全链路人工确认 #12438

Description

@os-support-ai

Epic #12150 的人工验收卡。开发已全部合并 v17 主线(九个 PR,清单见 epic);本卡供同事逐项确认,从客户视角测,不看代码。测试人:领一项勾一项,发现与「预期」不符的,在本卡评论区记录(写清:哪一项、实际看到什么、截图/报错原文),⛔ 不要自行修改或绕过。

一句话背景

客户安装应用包(Marketplace 应用)之后:展示类(视图/仪表盘等)可以直接改;行为类(包内流程、动作)锁定不许改,但可以关掉,流程还可以克隆一份自己的来改;结构类(包内对象)通过扩展包加自己的字段。本卡确认这套承诺真的成立。

环境准备

  • 拉最新 main(≥ af56546a,全部九个 PR 已含),按标准方式启动 showcase 示例应用(含自动化服务的常规组合)。
  • 一个管理员账号 + 一个普通用户账号。
  • 确认环境里有包内(packaged)流程和动作可测(showcase 自带)。

测试项

A. 流程开关(Setup 页)

  • A1 入口:管理员登录 → Setup → 「Packaged automation / 打包自动化」页面存在,列出包内流程,每条显示启用/停用状态(默认全部启用)。
  • A2 停用生效:停用一个包内流程 → 页面状态翻转;触发该流程的业务事件不再执行该流程。
  • A3 持久性(关键):停用后重启服务 → 停用状态仍在,流程仍不执行。⛔ 若重启后悄悄恢复执行,是严重缺陷,单独标注。
  • A4 恢复:重新启用 → 流程恢复执行。
  • A5 子流程保护:选一个被其他包内流程当作子流程调用的流程,尝试停用 → 被拒绝,报错信息点名列出调用方流程(服务端原文,界面不加工)。

B. 流程克隆(Setup 页)

  • B1 克隆:对包内流程点克隆 → 必须输入新机器名才能完成;克隆体出现且可在 Studio 里编辑;原件仍锁定不可改。
  • B2 无血缘:界面任何地方都不显示克隆体与原件的来源关系、差异对比、「已定制」角标——这是设计如此,不是缺陷。

C. 动作开关(Setup 同页动作区)

  • C1 停用生效:停用一个包内动作 → 从界面/接口调用该动作被拒绝(HTTP 409,错误码 ACTION_DISABLED),且拒绝发生在动作逻辑执行之前
  • C2 持久 + 恢复:重启后停用仍在;重新启用后调用恢复正常。
  • C3 无克隆:动作区没有克隆按钮——设计如此(只特许了开关)。

D. 权限门槛

  • D1:用普通用户尝试翻任何开关(流程或动作)→ 被拒绝,拒绝文案为服务端原文。
  • D2(如具备多组织 group/isolated 形态环境):只有 platform_admin 职位能翻开关,普通管理员不行。

E. 文档承诺

  • E1:文档页 capabilities/integrationsbuild-without-code 中关于 Marketplace 应用的表述已按三分层说话(展示类直接改/行为类停用+克隆/结构类扩展字段),不再有无条件的「装完可在 Studio 定制」。

F. 回归(不应发生变化的)

  • F1 权限集不变:包内权限集的锁定、停用、克隆(Studio save of a package-declared permission set forks it into a silent, undiscoverable overlay #11513 已有功能)行为与升级前一致——权限集不走新的中央开关表,这是裁定过的设计。
  • F2 定义锁定:包内流程/动作的定义本体在 Studio 中仍不可原地编辑。
  • F3 升级平滑:在一个升级前已有数据的环境升级到最新 main → 无需任何迁移动作,所有包内工件默认启用,已有功能无异常。

G. 部署形态(PR #12419 已合并 af56546a,可测)

  • G1 无自动化组合:在不含自动化服务、但有对象+动作的组合上启动 → 动作开关同样可用(修复前此处报 503)。

已知边界(设计如此,勿当缺陷上报)

  1. 任何地方都不展示克隆血缘/差异/「已定制」标识(裁定:§9)。
  2. 动作只有开关,没有克隆(裁定:仅特许开关)。
  3. 非包内(自建)流程的开关不持久化(重启失效)——中央开关表只管包内工件,自建流程有明确的非持久警告。
  4. 权限集/职位/能力沿用各自的 active 字段,不并入中央开关表(裁定:2026-08-26,Ledger convergence: registration home + one store implementation + permission-set convergence (ADR-0126 §4/§8, maintainer-ruled bundle) #12159)。

Refs: Epic #12150 · ADR-0126(docs/adr/0126-packaged-metadata-customization-model.md)

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions