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/integrations 与 build-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)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions