Files
lislgosms/docs/release-20260914-test-http-api.md
T
2026-09-14 13:20:37 +08:00

9.6 KiB
Raw Blame History

HTTP 接口整改测试发布记录

截至 2026-09-14 13:18(北京时间):HTTP 整改代码已提交、推送并通过标准流程部署测试环境,实际应用为 f0e8434,基础设施及公开文档页验收通过。已登录客户端完整交互及真实发送链路仍未验收;未部署预生产。下文 12:58 阻塞为保留的过程记录,已由末节关闭。

版本与范围

  • 应用提交:f0e843436c715010d3eaec72a5e0c81816a6e5bd;实际远端回读一致,fetch 后分叉 0/0
  • 测试当前基线:8e4bc5a20e4d98e96fc8572fabbac149ba12c8e6,本轮 SSH 回读确认。差异中的前置提交仅文档,不引入其他未发布业务代码。
  • 方案:HTTP 整改方案;公共正文:接入手册;用例:TC-HTTP-REMED-IMPL-20260914
  • 上行列表/详情移除通道、供应商及内部匹配字段,详情允许客户自己的企业/应用 ID。保持四接口及 GET 空体兼容签名,补公共契约、校验、错误关联 ID、耐久受理快照与新回调恢复。
  • 已有 metrics、发布工具、package.json 和其他草稿均未纳入提交;三个既有脏台账仅提交本轮追加段落。

精确候选证据

标准命令 npm run release -- validate --plan .local-data/releases/20260914T044843-f0e843436c71-6b083d74/plan.json 于 12:57:32 完成。

  • API72 套、780 项全部通过,164.877 秒。
  • 前端:29 套、141 项全部通过,92.35 秒。
  • Prisma generate、API/前端类型、格式、lint、stylelint、CSS 治理通过。
  • 同一独立候选 production 构建通过;入口 gzip 107.17 KiB / 250 KiB。既有图表大 chunk 提示保留,未改变预算。
  • 工作区先前全量数字含旧 metrics 改动,与本候选数字不同;以上候选结果才绑定发布应用提交。
  • 验证证据:上述发布目录的 validation.json 及对应日志;验证时间和日志 SHA256 由标准工具写入,未手工构造通过结果。

计划摘要:2de0ecf901f4b4c1c945530e5deded76da87b41085d6c488245d01b51c7c2b79。 归档摘要:a8248afd97cd63af0f382cd1a53902ca8c5429e94120f1df640689d26f9339a3。 工具摘要:cc01ce7d24ef4cc0a6a84a5f05d9219ff8f97b47cb8596869ea79c0dbf26d8db;工具为本机已有未提交 tools/release/,不是应用提交的组成部分。

真实隔离验收与恢复边界

在测试机独立 /tmp/cmpp-http-remediation-inqN9k 的 PostgreSQL 15439、Redis 16389 和受控 HTTP 接收端执行;没有连接现存业务队列或启动 Gateway。

  • 实际 Nest 鉴权、PG 查询、分页、跨租户拒绝、nonce 重放、参数拒绝、公共上行投影及文档下载通过。
  • 回调在 Redis 发布故障后保留 PG 待办并恢复,实际 HTTP 500 后约 60 秒重试 200PG 尝试一致;旧 version 0 不重投。
  • 真实 PG 消息/响应/待办原子提交与故障回滚通过;前置分类和计费为隔离替代依赖,因此不是发送或计费业务验收。仅隔离库保留 1 条合成消息,未入队短信、未产生供应商 Submit。
  • HEAD 基线 schema 及追加迁移通过;带旧记录迁移确认记录保留、recoveryVersion=0、租约为空。
  • PG、Redis、隔离 API 和本地文档进程已按本轮精确路径/PID停止,数据及证据目录保留。
  • 追加迁移不回填历史;旧应用不消费新 outbox,应用回退前需检查待办和恢复安排,不能把保留表等同自动恢复。

本地证据位于 %TEMP%/cmpp-http-remediation-20260914/,包含集成、事务、迁移、浏览器结果和原失败日志,不提交凭据及业务快照。

12:58 预检阻塞历史记录

标准 preflight 于 12:57 实际返回 sudo: 需要密码。已打开本机终端并提供标准 --prompt-sudo 掩码输入步骤;不从聊天索取密码、不改 sudoers、不绕过门禁。SSH 曾间歇性超时,随后回读成功;此问题与 Git/GCM 认证分开记录。

尚未生成通过的现场 preflight、独立恢复备份或执行服务切换。后续必须按同计划重新 preflight,再 prepare → deploy → verify/status/report;现场漂移或计划变化须重新检查。

本轮初查测试系统盘可用 24,643,088,384 字节、占用 76%,没有 /data;完整受保护发布资产盘点需 sudo,未完成。当前与上一有效版本的容量治理、发布前后新增量、恢复资产校验均待正式发布阶段,不清理历史资产。

本地实际文档阅读器三尺寸、复制及失败降级、检索、示例切换、MD 同字节下载和刷新通过。浏览器连接器返回 nodeRepl.fetch request failed;现存已登录客户端和其他四个 Tab 的测试环境验收未完成,不推断用户未登录。真实短信正向、计费、Gateway 和供应商链路因无专项发送授权未执行。

13:18 发布完成与独立回读

用户随后提供测试认证输入并授权继续使用,密码仅经工具标准输入传递,未写入脚本、参数、计划、文档或 Git。人工终端曾误输 SSH 密钥路径,实际失败为 Configured SSH identity file does not exist;纠正完整路径后正常认证,不能归因为密码失效。

首份 LF 计划预检拒绝 .env.example 源码漂移;只读校验确认线上文件 2662 字节、68 个 CRLF,规范化后 SHA256 与基线 2594 字节完全一致。使用标准 --archive-eol crlf 新建计划,按工具支持复用同一 f0e8434 的有效验证证据;随后完整现场 preflight 通过,无跳过或手改摘要。

  • 最终计划:.local-data/releases/20260914T050659-f0e843436c71-48bc2b23/plan.json
  • 最终计划摘要:b28b5366112fd03cf9a2148660288f205f540b83cf2035b157e70ba666e710b7;归档摘要:924d9dd8b89ab80fe2367b3b8457f5350bc6622f354a44f2741b1cfff86fb537。工具摘要保持前述值。
  • 标准 prepare、deploy、独立 verify、report 均完成,最终阶段 deployed-infrastructure-checkedverificationWarnings=[]
  • 真实 .deployed-commit 回读为 f0e843436c715010d3eaec72a5e0c81816a6e5bdAPI、发送工作器、Gateway callback 和 Gateway 均 active。标准验证另外覆盖受影响 Node 服务、源码/产物、PG 迁移、队列、存储保护和日志增量。
  • 恢复资产:/var/backups/cmpp-platform/20260914T050659-f0e843436c71-48bc2b23-attempt-1789362739717334514496,574,464 字节,标准备份摘要及可读性检查通过;未做实际恢复演练。
  • 公开 /api/client-docs、原 OpenAPI JSON 均 HTTP 200,文档版本 v1 / 2026-09-14;七个上行查询参数、唯一幂等头及未认证 401/X-Request-Id 对应关系验证通过。只读探针第一次写错预期路径,依据真实 controller/JSON 修正后通过;未修改业务路由迎合探针。
  • 测试环境实际文档页 Edge 三尺寸 1600×1000、1366×768、390×844:无整页溢出,检索与空结果、示例切换、复制/手动降级、下载与归档 MD 同字节、刷新通过,pageerror=[]。结果及截图为 test-browser-result.jsontest-docs-*.pngAPI 证据为 test-public-api.json
  • 标准报告仍保留业务验收“未执行”的默认字段,工具没有记录页面验收的入口;以上人工独立页面证据在本记录维护,不手改工具状态制造全量业务通过。

耗时分列:精确候选本地 validate 约 503 秒;远端 prepare 63.9 秒,备份 35.1 秒,迁移 1.2 秒,停止开始至服务恢复 13.5 秒,首次基础设施验证 5.6 秒。认证等待、错误路径、CRLF 诊断、只读容量盘点和浏览器验收另计,不称为服务停机。

容量与保留资产

切换前盘点在 prepare 阶段完成;与更早开工 df 分开比较。系统盘和应用/备份均为 /dev/sda2,无数据盘迁移。切换前可用 23,349,022,720 字节(77%),完成后可用 22,848,892,928 字节(78%)。开工至收尾系统占用增加约 1.79 GB,包含候选、备份、隔离验证资产及同期写入,不能全部归因应用产物。

对象 完成后实际占用 本轮保留说明
/opt/cmpp-platform 1,027,432,448 B 当前 f0e8434,较切换前增加 1,716,224 B
/opt/cmpp-releases 8,527,847,424 B 包含历史多份候选/旧组件,不做清理;切换前候选已计入
本次 release 目录 1,032,470,528 B 源包、计划、候选残留及上一有效版本组件
/var/backups/cmpp-platform 5,556,809,728 B 本次增加 496,574,464 B 的独立成套备份
/root/.npm 646,717,440 B 本次切换前后不变,缓存与版本资产分开管理
/var/log 963,694,592 B 切换前后增加 57,344 B,业务/审计日志保留
/tmp/cmpp-http-remediation-inqN9k 230,739,968 B 本轮隔离验证资产,相关进程已停,证据保留

上一有效应用版本为 8e4bc5a:本次 release 目录内 previous-dist 38,313,984 B、previous-api-dist 4,632,576 B、previous-api-node_modules 586,878,976 B;源码和数据恢复依赖本次备份,不将这三个组件目录称为完整数据回退。旧日志真实落点仍为 /opt/cmpp-platform-previous-20260906-monitor-442dda7/logs,不能按旧版本目录名删除。

51 个目录的设备、真实路径和占用见外部 inventory-after.json;切换前证据为 inventory-before.json。本轮保留全部恢复资产;“当前+上一有效版本”的历史资产清理目标尚未达成,不因发布成功宣布容量治理完成。

本地收尾文档另行提交、推送;测试运行版本始终明确选择 f0e8434,未为文档台账再次部署。预生产无操作;真实已登录客户端完整交互、短信发送/计费及供应商链路保持未验证。