test: 执行 MVP-2 跨模块集成验收 #47

Closed
opened 2026-08-24 12:01:55 +08:00 by ila · 5 comments
Owner

基本信息

  • 类型:需求
  • 所属 Epic:#3
  • 所属 MVP / 版本:#35 / MVP-2
  • 阶段:已完成

原始需求

  • 来源:用户对话与已验收 #36/#37
  • 提出时间:2026-08-24
  • 脱敏摘要:面向现有受控用户交付安全的 API Key、OpenAPI 生成接口、限流、审计和必要管理页面;不开放注册、不自动删除数据、不增加计费或每日配额。

设计与原型门禁

  • 修改类型:生产实现
  • 已确认技术设计:Wiki Architecture-and-Code-Map,revision 1e8fea6c058d6d23f4a40183dd51708c8a4dae84
  • 已确认原型:prototypes/37/v1/index.html,#37 revision b65c47e5f701f67a8a06972e4f3e02c1f7bbd554
  • 状态:已确认(用户,2026-08-24)

依赖与并行

  • 前置工单:#42、#43、#44、#45、#46
  • 是否允许并行:否;全部生产实现完成后执行。

要解决什么

执行 MVP-2 跨模块集成验收,验证迁移、用户/管理员页面、OpenAPI、限流、审计、队列与文档形成可交付闭环。

做什么 / 不做什么

  • 做:隔离 MySQL up/down/up、mock 上游全链路、权限/越权/幂等/限流/脱敏、Go/admin/admin-ui 构建测试、浏览器 E2E、Wiki 与使用文档检查。
  • 不做:真实 Provider 反复试错、生产发布、自动删除、计费或每日配额。

子项目影响

  • 跨全部交付单元;不新增业务功能,只修复阻塞已确认验收的缺陷并单独记录。

验收标准

  • #35 全部 MVP 验收标准有可复现证据。
  • 空库和含 MVP-1 数据的迁移回归通过。
  • mock 上游验证提交不调用上游、worker 唯一调用和限流/延后语义。
  • 用户端、管理端和 OpenAPI 关键流程及负向权限 E2E 通过。
  • 核心 Wiki、OpenAPI 使用文档、任务归档和提交证据闭环。

文档影响

  • 更新 MVP-2 最终交付状态、运行验证和用户/管理员/API 使用文档。

风险和回退

只使用构造数据和 mock 上游;发现范围内缺陷建立或更新单元工单,不用真实数据或 Provider 额度试错。

集成验收发现的阻塞缺陷

  • #52 规范化管理端 API Key 幂等撤销时间响应

  • #53 修复 MVP-2 Portal E2E 审计数据清理顺序

集成验收结果(2026-08-25)

迁移与 MySQL

  • 可丢弃 MySQL 8 chorus_test 完成全量 migration up/down/up、MVP-1 合成数据演进、MVP-2 非空 down 拒绝。
  • 迁移测试遗留合成 pending fixture 首次干扰队列认领;明确执行 down -all → up 清库后,从失败点重跑,队列 CAS/延后与 mock worker 全部通过。
  • API Key 仓储、Portal/OpenAPI、管理端治理和权限/脱敏定向集成测试通过;未调用真实 Provider。

构建、静态检查与并发

  • 根模块:go test ./...、go vet ./...、go build ./... 通过。
  • Admin:go test ./...、go vet ./...、go build . 通过。
  • 相关 core/Portal/Admin race 测试通过。
  • Portal Web 生产构建通过。
  • Admin UI lint:0 error、98 个既有 warning;14 suites / 49 tests 通过。
  • Admin UI vue-cli-service build --no-module 生产构建通过。默认双 bundle 构建的 legacy 阶段成功,module 阶段在本机仅约 2.7 GB 可用内存时 OOM,未记为完整通过。

浏览器与运行

  • Portal Playwright 375/768/1024/1440:9 passed、3 条按既有视口条件 skipped;覆盖登录、生成、API Key 一次显示/刷新不可恢复/改名/撤销和响应式边界。
  • #53 修复后完整 E2E 重跑通过,fixture cleanup 连续两次成功。
  • Supervisor 三实例使用新制品;chorus-user、chorus-admin-api、chorus-admin-ui 均 Running,Portal /login 200,Admin 登录接口可达。
  • 管理端 #46 登录态浏览器 E2E/四视口仍沿用已记录的未执行限制,本次未伪造通过。

验收中发现并修复

  • #52:首次管理撤销改为回读数据库规范化时间,MySQL 幂等撤销连续 10 次通过。提交 048f3b11d0bc4828f154065601262c405b574e5c。
  • #53:E2E 先删除合成用户审计再删除 Key,恢复重复清理。提交 d198cc425ac54537d3d76e8baf6a5fbf093919eb。
  • 文档提交:ed4807b99398f6b80a26a90ece3f8dfe86a03229。

文档

  • Product-Requirements-Overview revision:12ef195a93e52f12c7781e705d14bc47b5b94de7。
  • Local-Development-and-Verification revision:0701f49524f9209a07c694e253ea82d7e8ab53fd。
  • 核心镜像已同步;不自动导出 docs/task/。

待人工验收

  • 已完成除上述两个明确限制外的 #47 集成矩阵。
  • #52、#53 和 #47 均保持待验收;用户明确验收前不关闭。
  • Wiki 任务归档 revision:7fc31809c7ae3e0af23f66df38c46856d80502d9。

本地验收环境恢复

  • 破坏性迁移测试完成后,使用项目自带 seed/bootstrap 恢复既有本地受控测试用户与管理员;凭据只通过当前进程环境传递,未写入工单、Wiki、代码或日志。
  • 数据库确认两个目标账号各 1 个且启用;Portal 与 Admin 实际账号密码登录均返回成功。
  • 最新 Wiki 任务归档 revision:c2d416620d866e97eecca5c3cdbe849a850d1d94。

人工验收

  • 结果:通过

  • 确认人:用户

  • 确认时间:2026-08-25

  • 验收完成后的 Wiki 任务归档 revision:05d525eea4b8317209cec408fc9082ff30d5187f。

## 基本信息 - 类型:需求 - 所属 Epic:#3 - 所属 MVP / 版本:#35 / MVP-2 - 阶段:已完成 ## 原始需求 - 来源:用户对话与已验收 #36/#37 - 提出时间:2026-08-24 - 脱敏摘要:面向现有受控用户交付安全的 API Key、OpenAPI 生成接口、限流、审计和必要管理页面;不开放注册、不自动删除数据、不增加计费或每日配额。 ## 设计与原型门禁 - 修改类型:生产实现 - 已确认技术设计:Wiki Architecture-and-Code-Map,revision `1e8fea6c058d6d23f4a40183dd51708c8a4dae84` - 已确认原型:`prototypes/37/v1/index.html`,#37 revision `b65c47e5f701f67a8a06972e4f3e02c1f7bbd554` - 状态:已确认(用户,2026-08-24) ## 依赖与并行 - 前置工单:#42、#43、#44、#45、#46 - 是否允许并行:否;全部生产实现完成后执行。 ## 要解决什么 执行 MVP-2 跨模块集成验收,验证迁移、用户/管理员页面、OpenAPI、限流、审计、队列与文档形成可交付闭环。 ## 做什么 / 不做什么 - 做:隔离 MySQL up/down/up、mock 上游全链路、权限/越权/幂等/限流/脱敏、Go/admin/admin-ui 构建测试、浏览器 E2E、Wiki 与使用文档检查。 - 不做:真实 Provider 反复试错、生产发布、自动删除、计费或每日配额。 ## 子项目影响 - 跨全部交付单元;不新增业务功能,只修复阻塞已确认验收的缺陷并单独记录。 ## 验收标准 - [ ] #35 全部 MVP 验收标准有可复现证据。 - [x] 空库和含 MVP-1 数据的迁移回归通过。 - [x] mock 上游验证提交不调用上游、worker 唯一调用和限流/延后语义。 - [ ] 用户端、管理端和 OpenAPI 关键流程及负向权限 E2E 通过。 - [x] 核心 Wiki、OpenAPI 使用文档、任务归档和提交证据闭环。 ## 文档影响 - [ ] 更新 MVP-2 最终交付状态、运行验证和用户/管理员/API 使用文档。 ## 风险和回退 只使用构造数据和 mock 上游;发现范围内缺陷建立或更新单元工单,不用真实数据或 Provider 额度试错。 ## 集成验收发现的阻塞缺陷 - [ ] #52 规范化管理端 API Key 幂等撤销时间响应 - [ ] #53 修复 MVP-2 Portal E2E 审计数据清理顺序 ## 集成验收结果(2026-08-25) ### 迁移与 MySQL - 可丢弃 MySQL 8 `chorus_test` 完成全量 migration up/down/up、MVP-1 合成数据演进、MVP-2 非空 down 拒绝。 - 迁移测试遗留合成 pending fixture 首次干扰队列认领;明确执行 `down -all → up` 清库后,从失败点重跑,队列 CAS/延后与 mock worker 全部通过。 - API Key 仓储、Portal/OpenAPI、管理端治理和权限/脱敏定向集成测试通过;未调用真实 Provider。 ### 构建、静态检查与并发 - 根模块:`go test ./...`、`go vet ./...`、`go build ./...` 通过。 - Admin:`go test ./...`、`go vet ./...`、`go build .` 通过。 - 相关 core/Portal/Admin race 测试通过。 - Portal Web 生产构建通过。 - Admin UI lint:0 error、98 个既有 warning;14 suites / 49 tests 通过。 - Admin UI `vue-cli-service build --no-module` 生产构建通过。默认双 bundle 构建的 legacy 阶段成功,module 阶段在本机仅约 2.7 GB 可用内存时 OOM,未记为完整通过。 ### 浏览器与运行 - Portal Playwright 375/768/1024/1440:9 passed、3 条按既有视口条件 skipped;覆盖登录、生成、API Key 一次显示/刷新不可恢复/改名/撤销和响应式边界。 - #53 修复后完整 E2E 重跑通过,fixture cleanup 连续两次成功。 - Supervisor 三实例使用新制品;`chorus-user`、`chorus-admin-api`、`chorus-admin-ui` 均 Running,Portal `/login` 200,Admin 登录接口可达。 - 管理端 #46 登录态浏览器 E2E/四视口仍沿用已记录的未执行限制,本次未伪造通过。 ### 验收中发现并修复 - #52:首次管理撤销改为回读数据库规范化时间,MySQL 幂等撤销连续 10 次通过。提交 `048f3b11d0bc4828f154065601262c405b574e5c`。 - #53:E2E 先删除合成用户审计再删除 Key,恢复重复清理。提交 `d198cc425ac54537d3d76e8baf6a5fbf093919eb`。 - 文档提交:`ed4807b99398f6b80a26a90ece3f8dfe86a03229`。 ### 文档 - Product-Requirements-Overview revision:`12ef195a93e52f12c7781e705d14bc47b5b94de7`。 - Local-Development-and-Verification revision:`0701f49524f9209a07c694e253ea82d7e8ab53fd`。 - 核心镜像已同步;不自动导出 `docs/task/`。 ## 待人工验收 - 已完成除上述两个明确限制外的 #47 集成矩阵。 - #52、#53 和 #47 均保持待验收;用户明确验收前不关闭。 - Wiki 任务归档 revision:`7fc31809c7ae3e0af23f66df38c46856d80502d9`。 ## 本地验收环境恢复 - 破坏性迁移测试完成后,使用项目自带 seed/bootstrap 恢复既有本地受控测试用户与管理员;凭据只通过当前进程环境传递,未写入工单、Wiki、代码或日志。 - 数据库确认两个目标账号各 1 个且启用;Portal 与 Admin 实际账号密码登录均返回成功。 - 最新 Wiki 任务归档 revision:`c2d416620d866e97eecca5c3cdbe849a850d1d94`。 ## 人工验收 - 结果:通过 - 确认人:用户 - 确认时间:2026-08-25 - 验收完成后的 Wiki 任务归档 revision:`05d525eea4b8317209cec408fc9082ff30d5187f`。
Author
Owner

开始实施(2026-08-25)

  • 前置 #42、#43、#44、#45、#46 均已关闭,依赖满足。
  • 当前 main 与 origin/main 一致,保留用户已有的 config/local-services.yml 修改和未跟踪 admin/config/settings.yml,不纳入 #47。
  • 按工单执行迁移、mock 上游链路、安全负向场景、Go/admin/portal/admin-ui、浏览器与文档闭环验证;只使用构造数据和 mock Provider。
## 开始实施(2026-08-25) - 前置 #42、#43、#44、#45、#46 均已关闭,依赖满足。 - 当前 `main` 与 `origin/main` 一致,保留用户已有的 `config/local-services.yml` 修改和未跟踪 `admin/config/settings.yml`,不纳入 #47。 - 按工单执行迁移、mock 上游链路、安全负向场景、Go/admin/portal/admin-ui、浏览器与文档闭环验证;只使用构造数据和 mock Provider。
Author
Owner

#47 集成矩阵、两项阻塞缺陷修复、核心 Wiki 和运行实例验证已完成。任务归档 revision:7fc31809c7ae3e0af23f66df38c46856d80502d9。保留默认 Admin UI 双 bundle OOM 与管理端登录态浏览器 E2E 未执行两项限制,工单保持待验收。

#47 集成矩阵、两项阻塞缺陷修复、核心 Wiki 和运行实例验证已完成。任务归档 revision:`7fc31809c7ae3e0af23f66df38c46856d80502d9`。保留默认 Admin UI 双 bundle OOM 与管理端登录态浏览器 E2E 未执行两项限制,工单保持待验收。
Author
Owner

本地可丢弃库在迁移验收后已恢复受控测试用户与管理员,两个实际登录流程均成功;凭据未进入工单或 Wiki。任务归档最新 revision:c2d416620d866e97eecca5c3cdbe849a850d1d94。

本地可丢弃库在迁移验收后已恢复受控测试用户与管理员,两个实际登录流程均成功;凭据未进入工单或 Wiki。任务归档最新 revision:`c2d416620d866e97eecca5c3cdbe849a850d1d94`。
ila closed this issue 2026-08-25 11:20:10 +08:00
Author
Owner

用户已于 2026-08-25 明确验收通过。工单已关闭,Wiki 任务归档已更新为已完成,revision:05d525eea4b8317209cec408fc9082ff30d5187f。

用户已于 2026-08-25 明确验收通过。工单已关闭,Wiki 任务归档已更新为已完成,revision:`05d525eea4b8317209cec408fc9082ff30d5187f`。
Author
Owner

验收后的核心 Wiki 已更新并同步:Product-Requirements-Overview 2222a92ff7b1bd7e5ece25ff26b9b39a7f04b310,Local-Development-and-Verification 635183e2476eaa41109fd2b28886a89462b9ed81;镜像提交 841d396 已推送。

验收后的核心 Wiki 已更新并同步:Product-Requirements-Overview `2222a92ff7b1bd7e5ece25ff26b9b39a7f04b310`,Local-Development-and-Verification `635183e2476eaa41109fd2b28886a89462b9ed81`;镜像提交 `841d396` 已推送。
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: OPC/chorus#47