36 lines
2.2 KiB
Markdown
36 lines
2.2 KiB
Markdown
# 首次部署与控制台任务闭环
|
||
|
||
这份回归验证 Orbit 从空数据库开始的第一条可运行链路:迁移、初始化管理员、启动服务、控制台登录、任务提交、Worker WebSocket 执行、结果回传、控制台查询、明确失败重试和定时计划。
|
||
|
||
最近一次验证:2026-09-22,本机 Docker Desktop、MySQL 8.4、Go 1.27.1;结果为 `console-e2e=passed`。Worker 成功确认 3 个任务,重试场景完成 2 次尝试,定时计划完成 2 次触发,控制台读取到 6 个成功任务,登出后业务 API 返回 401。
|
||
|
||
## 一键执行
|
||
|
||
在仓库根目录运行:
|
||
|
||
```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 仍然由业务方独立部署。
|