test: 验收管理端分组导航与系统模块安全边界 #69

Closed
opened 2026-08-26 17:18:39 +08:00 by ila · 6 comments
Owner

基本信息

  • 类型:集成验收 / 安全回归
  • 所属 Epic:#3
  • 所属 MVP / 版本:#35 / MVP-2 后续可用性优化
  • 阶段:已完成
  • 前置工单:#66、#67、#68
  • 设计证据:prototypes/59/v1/index.html,v1,用户于 2026-08-26 确认通过

原始需求

  • 来源:用户对话
  • 生产实施确认:2026-08-26
  • 脱敏摘要:已确认管理端导航原型,要求完成生产实现并验证可用性和安全边界。

目标

在隔离 MySQL 和本地三服务环境完成四分组导航、系统模块权限、管理员保护、回退和浏览器流程的集成验收。

验收范围

  • migration 空库 up/down/up 与当前版本升级/回退。
  • chorus_operator 与超级管理员菜单/API/Casbin 权限。
  • 当前管理员、最后一个管理员、内置角色保护。
  • 菜单、接口、登录日志写路由拒绝。
  • 13 个动态路由逐项打开,桌面和窄屏 E2E。
  • 现有 Provider、模型、路由、模板、健康、生成记录、终端用户、API Key 页面回归。
  • 日志、错误、截图和测试数据敏感信息检查。

非目标

  • 不调用真实 Provider,不消耗上游额度。
  • 不发布生产,不迁移共享/生产数据库。
  • 不恢复原型明确排除的 go-admin 模块。

验收标准

  • 所有前置工单测试和构建通过。
  • MySQL up/down/up、升级与回退证据完整。
  • 角色隔离、只读路由、管理员保护和内置角色保护通过真实 API 联调。
  • 13 个入口在桌面和窄屏可达,无白屏、403 漂移或控制台错误。
  • 现有 Chorus 业务页面回归通过。
  • 无真实凭据、账号、个人信息、生产数据或上游调用。
  • 核心 Wiki、任务归档、提交和父工单证据闭环。

风险与回退

失败时停止验收并建立独立缺陷工单,不在本工单顺手修复。回退按 Admin UI → Admin 后端 → migration down 顺序执行。

文档影响

汇总前置任务的长期文档更新并补充最终验证命令、权限矩阵和回退步骤。

## 基本信息 - 类型:集成验收 / 安全回归 - 所属 Epic:#3 - 所属 MVP / 版本:#35 / MVP-2 后续可用性优化 - 阶段:已完成 - 前置工单:#66、#67、#68 - 设计证据:`prototypes/59/v1/index.html`,v1,用户于 2026-08-26 确认通过 ## 原始需求 - 来源:用户对话 - 生产实施确认:2026-08-26 - 脱敏摘要:已确认管理端导航原型,要求完成生产实现并验证可用性和安全边界。 ## 目标 在隔离 MySQL 和本地三服务环境完成四分组导航、系统模块权限、管理员保护、回退和浏览器流程的集成验收。 ## 验收范围 - migration 空库 up/down/up 与当前版本升级/回退。 - `chorus_operator` 与超级管理员菜单/API/Casbin 权限。 - 当前管理员、最后一个管理员、内置角色保护。 - 菜单、接口、登录日志写路由拒绝。 - 13 个动态路由逐项打开,桌面和窄屏 E2E。 - 现有 Provider、模型、路由、模板、健康、生成记录、终端用户、API Key 页面回归。 - 日志、错误、截图和测试数据敏感信息检查。 ## 非目标 - 不调用真实 Provider,不消耗上游额度。 - 不发布生产,不迁移共享/生产数据库。 - 不恢复原型明确排除的 go-admin 模块。 ## 验收标准 - [x] 所有前置工单测试和构建通过。 - [x] MySQL up/down/up、升级与回退证据完整。 - [x] 角色隔离、只读路由、管理员保护和内置角色保护通过真实 API 联调。 - [x] 13 个入口在桌面和窄屏可达,无白屏、403 漂移或控制台错误。 - [x] 现有 Chorus 业务页面回归通过。 - [x] 无真实凭据、账号、个人信息、生产数据或上游调用。 - [x] 核心 Wiki、任务归档、提交和父工单证据闭环。 ## 风险与回退 失败时停止验收并建立独立缺陷工单,不在本工单顺手修复。回退按 Admin UI → Admin 后端 → migration down 顺序执行。 ## 文档影响 汇总前置任务的长期文档更新并补充最终验证命令、权限矩阵和回退步骤。
Author
Owner

2026-08-26 开始集成与安全回归。前置实现提交:#67 3898aae、#68 2482ea3。测试仅使用本机隔离数据与 mock 上游,不调用真实 Provider,不记录真实凭据。

2026-08-26 开始集成与安全回归。前置实现提交:#67 `3898aae`、#68 `2482ea3`。测试仅使用本机隔离数据与 mock 上游,不调用真实 Provider,不记录真实凭据。
Author
Owner

集成与安全回归完成,待验收(2026-08-26)

  • 测试提交:2935c8e
  • 文档镜像提交:ef3ad27
  • 本机隔离 MySQL 数据库 chorus_test 完成 migration up/down/up;管理员和内置角色保护集成测试通过。
  • 只读写路由使用实际 HTTP 路由断言;四组 13 个入口使用 mock API 完成桌面与窄屏 E2E。
  • 根模块和 Admin 模块的 go test ./...、go vet ./...、go build ./... 均通过;Portal 和 Admin UI 生产构建通过。
  • 核心 Wiki 已在线更新、回读并同步镜像;sync --check、check --strict、Harness 45 项测试通过。
  • 任务归档:Wiki Task-69-管理端系统模块集成与安全回归,revision 88b0de24a741581a28cf74dbc02c4117cb3b02be。
  • 全程使用合成数据和 mock 上游,没有真实 Provider 调用。

当前阶段:待验收。用户明确验收前保持工单打开。

## 集成与安全回归完成,待验收(2026-08-26) - 测试提交:`2935c8e` - 文档镜像提交:`ef3ad27` - 本机隔离 MySQL 数据库 `chorus_test` 完成 migration up/down/up;管理员和内置角色保护集成测试通过。 - 只读写路由使用实际 HTTP 路由断言;四组 13 个入口使用 mock API 完成桌面与窄屏 E2E。 - 根模块和 Admin 模块的 `go test ./...`、`go vet ./...`、`go build ./...` 均通过;Portal 和 Admin UI 生产构建通过。 - 核心 Wiki 已在线更新、回读并同步镜像;`sync --check`、`check --strict`、Harness 45 项测试通过。 - 任务归档:Wiki `Task-69-管理端系统模块集成与安全回归`,revision `88b0de24a741581a28cf74dbc02c4117cb3b02be`。 - 全程使用合成数据和 mock 上游,没有真实 Provider 调用。 当前阶段:待验收。用户明确验收前保持工单打开。
Author
Owner

补充实施:真实本地运行环境(2026-08-27)

登录当前 http://127.0.0.1:9528/ 后确认仍为旧的“Chorus 运营”单分组和 8 个入口。根因是此前验收只在隔离数据库 chorus_test 验证 migration 9,当前 Chorus 数据库未升级;Supervisor 托管的 Admin API 也仍是早于 #67 的旧二进制。

用户已于 2026-08-27 明确授权执行:构建新 Admin API → 当前本机数据库 migration 8→9 → 更新 Supervisor 程序 → 重启 → 登录真实页面检查四分组和 13 个入口。

工单恢复为“进行中”。迁移前先核对当前版本,只允许 8→9;不执行 AutoMigrate,不调用真实 Provider。

## 补充实施:真实本地运行环境(2026-08-27) 登录当前 `http://127.0.0.1:9528/` 后确认仍为旧的“Chorus 运营”单分组和 8 个入口。根因是此前验收只在隔离数据库 `chorus_test` 验证 migration 9,当前 Chorus 数据库未升级;Supervisor 托管的 Admin API 也仍是早于 #67 的旧二进制。 用户已于 2026-08-27 明确授权执行:构建新 Admin API → 当前本机数据库 migration 8→9 → 更新 Supervisor 程序 → 重启 → 登录真实页面检查四分组和 13 个入口。 工单恢复为“进行中”。迁移前先核对当前版本,只允许 8→9;不执行 AutoMigrate,不调用真实 Provider。
Author
Owner

真实环境部署与检查结果(2026-08-27)

  • 已从 admin/config/settings.yml 核对当前本机目标为 chorus,迁移前版本 8 dirty=0。
  • 已构建新 Admin API,执行 migration 8→9,迁移后版本 9 dirty=0。
  • 已更新 Supervisor 二进制并重启 Admin API、Admin UI;三个 Chorus 服务均为 Running。
  • 登录真实 http://127.0.0.1:9528/ 后已显示四分组和 13 个入口。
  • 逐项打开时发现“菜单结构”列表 API 失败:GORM many-to-many 默认生成 sys_menu_api_rule.sys_menu_menu_id,实际迁移字段为 menu_id。其余入口路由未出现模块加载或控制台错误。

按工单既定停止条件,#69 保持“进行中”,不宣告集成验收通过。该缺陷需要按确认方案修复后重新构建并复验。

## 真实环境部署与检查结果(2026-08-27) - 已从 `admin/config/settings.yml` 核对当前本机目标为 `chorus`,迁移前版本 `8 dirty=0`。 - 已构建新 Admin API,执行 migration `8→9`,迁移后版本 `9 dirty=0`。 - 已更新 Supervisor 二进制并重启 Admin API、Admin UI;三个 Chorus 服务均为 Running。 - 登录真实 `http://127.0.0.1:9528/` 后已显示四分组和 13 个入口。 - 逐项打开时发现“菜单结构”列表 API 失败:GORM many-to-many 默认生成 `sys_menu_api_rule.sys_menu_menu_id`,实际迁移字段为 `menu_id`。其余入口路由未出现模块加载或控制台错误。 按工单既定停止条件,#69 保持“进行中”,不宣告集成验收通过。该缺陷需要按确认方案修复后重新构建并复验。
Author
Owner

2026-08-27:缺陷 #71 已修复并部署,提交 ee4f87d。当前数据库为 migration 9、dirty=0,Supervisor 三个 Chorus 服务正常;真实页面显示四组 13 个入口,“菜单结构”已正常加载关联数据,浏览器控制台和新 Admin API 日志无错误。#69 恢复为待验收。

2026-08-27:缺陷 #71 已修复并部署,提交 `ee4f87d`。当前数据库为 migration 9、`dirty=0`,Supervisor 三个 Chorus 服务正常;真实页面显示四组 13 个入口,“菜单结构”已正常加载关联数据,浏览器控制台和新 Admin API 日志无错误。#69 恢复为待验收。
Author
Owner

用户验收通过

  • 验收时间:2026-08-27 14:57:05 +08:00
  • 验收人:用户
  • 结论:用户明确确认本工单通过验收,接受当前实现、部署与已记录的验证结果。
  • 文档:沿用工单中已经完成的 Wiki/镜像处理;没有新的长期事实变化。
  • 状态:已完成,关闭工单。
## 用户验收通过 - 验收时间:2026-08-27 14:57:05 +08:00 - 验收人:用户 - 结论:用户明确确认本工单通过验收,接受当前实现、部署与已记录的验证结果。 - 文档:沿用工单中已经完成的 Wiki/镜像处理;没有新的长期事实变化。 - 状态:已完成,关闭工单。
ila closed this issue 2026-08-27 14:57:23 +08:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: OPC/chorus#69