test: add first deployment console e2e
This commit is contained in:
@@ -36,7 +36,7 @@
|
||||
|
||||
### 控制台第一版
|
||||
|
||||
已将 [Orbit Console](console.md) 编译进服务端,入口为 `/console/`。第一版读取健康、版本、任务、计划、流程和结果订阅接口,支持本地凭据 JSON、响应式总览和有界自动刷新;不直接访问数据库,也不绕过现有 Bearer Token 与动作范围。独立管理员身份和跨命名空间聚合仍不在控制台内提供。
|
||||
已将 [Orbit Console](console.md) 编译进服务端,入口为 `/console/`。第一版读取健康、版本、任务、计划、流程和结果订阅接口,使用数据库控制台账号和 HttpOnly 会话,响应式总览和有界自动刷新;不直接访问数据库,也不绕过现有凭据与动作范围。首个管理员可以随 `orbit-admin bootstrap` 同事务创建,独立管理员身份和跨命名空间聚合仍不在控制台内提供。
|
||||
|
||||
控制台任务详情已接入 Pulse 的任务快照、执行尝试、操作审计、取消和安全重试接口。页面操作沿用 `expected_revision`、`Idempotency-Key`、原因、证据和服务端权限校验;`NEEDS_REVIEW` 仍要求通过核查 API/SDK 提交最终结论。流程实例详情已接入当前视图、步骤状态和有界事件时间线,并支持带 `control_revision` 的暂停、恢复和取消;对 `NEEDS_REVIEW` 实例进一步提供六类带证据的恢复入口(任务核查、步骤结论、继续、步骤重试、PENDING 接续、等待重建),页面只组装协议请求,当前修订、激活身份、权限、审计和状态门控由服务端负责。结果订阅详情已接入配置、积压窗口和交付历史,并支持启停及 EXPIRED 交付追加预算重试。权限不足时保留明确提示,不把页面操作视为绕过服务端事务边界的快捷入口。
|
||||
|
||||
@@ -46,6 +46,8 @@
|
||||
|
||||
已完成一次真实链路回归:标准 `scripts/test-mysql.sh` 在一次性 MySQL 和真实 Orbit 进程中跑通任务、Worker、结果订阅、Weave 流程、进程恢复及独立业务示例;控制台五个入口、健康检查和详情所依赖的读取 API 已用真实结果核对,证据见 [Console 真实链路回归](reports/phase-7-console-e2e.md)。这关闭了本地闭环验证项,生产拓扑和发布门槛仍保持未验收。
|
||||
|
||||
新增 `make console-e2e` 作为首次部署闭环门禁:在一次性 MySQL 和 Docker Orbit 中从空库迁移、初始化控制台管理员,完成登录、受保护页面、WS Worker 成功执行、明确失败重试、定时任务、控制台任务读取和登出后的 401 校验,证据见[首次部署与控制台任务闭环](reports/phase-8-console-e2e.md)。该门禁证明功能链路可重复,不替代目标生产拓扑、容量和 RPO/RTO 验收。
|
||||
|
||||
## 2. 持续推进方式
|
||||
|
||||
每个阶段按以下顺序推进:
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
| [19 容量模型](19-capacity-model.md) | 企业规模到任务、流程、数据库与连接负载的推导及生产验收方法 |
|
||||
| [P7 协议兼容矩阵](reports/phase-7-compatibility.md) | 当前协议门禁、历史提交双向任务 API 演练与正式标签矩阵边界 |
|
||||
| [P7 Console 真实链路回归](reports/phase-7-console-e2e.md) | 真实 MySQL、Worker、流程、结果订阅与控制台读取闭环 |
|
||||
| [首次部署与控制台任务闭环](reports/phase-8-console-e2e.md) | 从空库初始化管理员、Docker 启动、控制台登录、WS Worker、重试和定时任务 |
|
||||
| [20 运行与发布手册](20-operations-runbook.md) | 启动、发布、滚动停止、数据库恢复、备份和事故处理 |
|
||||
| [21 容器发布说明](21-container-deployment.md) | 最小镜像、迁移/核验/启动顺序、探针和发布边界 |
|
||||
| [09 可靠结果订阅](09-result-subscription-core.md) | 提交水位、冻结结果与可靠交付 |
|
||||
|
||||
33
docs/reports/phase-8-console-e2e.md
Normal file
33
docs/reports/phase-8-console-e2e.md
Normal file
@@ -0,0 +1,33 @@
|
||||
# 首次部署与控制台任务闭环
|
||||
|
||||
这份回归验证 Orbit 从空数据库开始的第一条可运行链路:迁移、初始化管理员、启动服务、控制台登录、任务提交、Worker WebSocket 执行、结果回传、控制台查询、明确失败重试和定时计划。
|
||||
|
||||
## 一键执行
|
||||
|
||||
在仓库根目录运行:
|
||||
|
||||
```sh
|
||||
make console-e2e
|
||||
```
|
||||
|
||||
脚本会创建一次性 Docker 网络、MySQL 容器和 Orbit 容器。所有应用、队列、凭据和管理员账号只写入临时数据库;脚本退出后删除容器、网络和临时文件,不连接已有本地数据库。
|
||||
|
||||
## 验收内容
|
||||
|
||||
| 阶段 | 验证内容 |
|
||||
| --- | --- |
|
||||
| 空库初始化 | 使用 `orbit-migrate up` 创建当前迁移链,数据库从零开始 |
|
||||
| 管理员初始化 | `orbit-admin bootstrap` 同事务创建业务资源、Worker/计划权限和首个控制台管理员 |
|
||||
| 服务启动 | Docker 启动 Orbit,`/health/ready` 返回就绪 |
|
||||
| 控制台登录 | HttpOnly 会话登录,受保护页面和默认队列配置可读取 |
|
||||
| WS 执行 | Go SDK 自动 Worker 通过 `pulse.worker.v1` 接收 3 个任务并确认结果 |
|
||||
| 可靠重试 | 第一次明确失败且可重试,第二次执行成功,历史包含 2 次尝试 |
|
||||
| 定时任务 | 计划生成固定版本任务,Worker 执行成功且来源为 `SCHEDULE` |
|
||||
| 页面数据 | 控制台权限范围内能读取成功任务 |
|
||||
| 退出保护 | 登出后业务 API 返回 401,会话不能继续调用任务接口 |
|
||||
|
||||
通过时输出 `console-e2e=passed`。脚本中的密码只保存在临时文件并通过标准输入交给初始化命令,不打印到日志。
|
||||
|
||||
## 生产边界
|
||||
|
||||
这是一条功能和发布前置回归,不是生产容量结论。生产环境还必须按[交付核对清单](../release-checklist.md)验证 TLS 终止、备份恢复、复制切换、容量、RPO/RTO 和告警通知;Worker 仍然由业务方独立部署。
|
||||
Reference in New Issue
Block a user