docs: record S57 production verification
This commit is contained in:
@@ -0,0 +1,59 @@
|
|||||||
|
# S57 UI、查询与号码库发布报告(2026-08-27)
|
||||||
|
|
||||||
|
## 发布结论
|
||||||
|
|
||||||
|
- 代码提交:`c36709f366422b9dc5d37156d42d6e2f78bea051`
|
||||||
|
- B 发布目录:`/opt/lisglosips/releases/s57-ui-number-library-20260827T124730Z`
|
||||||
|
- 配置/回滚备份:`/var/backups/lisglosips-s57/20260827T124730Z`
|
||||||
|
- 数据备份:`/data/backups/mysql/20260827T124730Z`、`/data/backups/redis/20260827T124730Z`
|
||||||
|
- 发布前检查:MySQL、Redis、Nginx、API、CDR Worker、录音 Worker、HEP、Prometheus、Grafana 均为 active,API ready 与 Nginx 配置检查通过。
|
||||||
|
- 第一次切换因发布脚本误检查不存在的 `/health` 路径得到 404,自动回滚成功;修正为 `/health/ready` 后重新发布并通过,没有遗留半切换状态。
|
||||||
|
|
||||||
|
## 生产数据结果
|
||||||
|
|
||||||
|
| 数据表 | 生产数量 |
|
||||||
|
| --- | ---: |
|
||||||
|
| 行政城市 | 371 |
|
||||||
|
| 手机前 7 位号段 | 517,258 |
|
||||||
|
| 城市区号 | 321 |
|
||||||
|
| 运营商前三位规则 | 70 |
|
||||||
|
|
||||||
|
- 数据文件上传前后 SHA256 一致。
|
||||||
|
- 生产干跑:`phone.dat` 2502 版本,有效号段 517,258,行政区未匹配 0。
|
||||||
|
- 导入器拒绝向非空号码库重复写入,并在导入前由发布流程完成 MySQL/Redis 备份。
|
||||||
|
- Prisma 并行计数和首屏 25 条直查共 85 ms。
|
||||||
|
|
||||||
|
## 生产接口证据
|
||||||
|
|
||||||
|
以下耗时来自 B 的 API 完成日志:
|
||||||
|
|
||||||
|
| 接口 | 状态 | 服务端耗时 |
|
||||||
|
| --- | ---: | ---: |
|
||||||
|
| `/api/v2/active-calls` | 200 | 首次 46 ms,后续 4-6 ms |
|
||||||
|
| `/api/v2/number-library/cities?take=25&skip=0` | 200 | 9 ms |
|
||||||
|
| `/api/v2/number-library/phone-segments?take=25&skip=0` | 200 | 74 ms |
|
||||||
|
| `/api/v2/cdrs` 最近一周 | 200 | 7 ms |
|
||||||
|
| `/api/v2/recordings` 最近一周 | 200 | 5 ms |
|
||||||
|
| `/api/v2/audit-logs` 最近一周 | 200 | 5 ms |
|
||||||
|
|
||||||
|
当前通话页面已显示“控制面:就绪”,空闲时返回 0 路真实 dialog,不再出现 OpenSIPS control plane unavailable。
|
||||||
|
|
||||||
|
## 浏览器验收
|
||||||
|
|
||||||
|
- 登录态下 Dashboard 只保留两个趋势模块,“客户消费 TOP 10”和“失败响应码分布”已删除。
|
||||||
|
- 客户网关页标题和列表按内容高度从顶部连续排列,截图所示大面积空白消失。
|
||||||
|
- 号码库首屏 25 条,显示 1-25 / 371;手机号码库显示 1-25 / 517,258,上一页/下一页状态正确。
|
||||||
|
- 话单、质检、操作日志日期均默认 `2026-08-21` 至 `2026-08-27`;请求转换为上海时区自然日对应的 UTC 起止值。
|
||||||
|
- 页面 DOM 均有真实业务内容,没有框架错误覆盖层;关键请求均在 API 日志中返回 200。
|
||||||
|
|
||||||
|
## 本地质量门禁
|
||||||
|
|
||||||
|
- ESLint:通过。
|
||||||
|
- TypeScript project build/typecheck:通过。
|
||||||
|
- Web production build:通过。
|
||||||
|
- Vitest:27 个测试文件、98 个测试全部通过。
|
||||||
|
- 号码库导入器本地与生产干跑:均为未匹配 0。
|
||||||
|
|
||||||
|
## 回滚
|
||||||
|
|
||||||
|
如需回滚代码和 API 配置:恢复 `/var/backups/lisglosips-s57/20260827T124730Z/api.env`,将 `/opt/lisglosips/current` 指回该目录内 `previous-release` 记录的版本,并重启 `lisglosips@api`。号码库数据回滚应使用本次发布前 MySQL 备份,不应直接无条件清空四张表。
|
||||||
@@ -43,6 +43,6 @@
|
|||||||
|
|
||||||
- ESLint:通过。
|
- ESLint:通过。
|
||||||
- TypeScript project build/typecheck:通过。
|
- TypeScript project build/typecheck:通过。
|
||||||
- Vitest:26 个测试文件、95 个测试全部通过。
|
- Vitest:27 个测试文件、98 个测试全部通过。
|
||||||
- Web production build:通过,生成 `dist/index.html`、CSS 和 JS hash 产物。
|
- Web production build:通过,生成 `dist/index.html`、CSS 和 JS hash 产物。
|
||||||
- 浏览器验收:本地 Vite 页面 URL、标题、非空 DOM、登录页截图和浏览器 console 已检查,未发现 console warning/error 或框架错误覆盖层。本机未配置 API 所需的 MySQL/Redis/鉴权环境,因此登录页按预期显示本地 API 500;已登录 Dashboard、话单和 2 秒延迟交互仍需在接入可用后端后做最终浏览器回归。
|
- 浏览器验收:已在 B 的真实登录态逐页检查 Dashboard、客户网关、当前通话、号码库、话单、质检和操作日志;生产结果和接口耗时见 `20260827_S57_UI_NUMBER_LIBRARY_RELEASE_REPORT.md`。
|
||||||
|
|||||||
Reference in New Issue
Block a user