# HTTP 接口整改测试发布记录 截至 2026-09-14 13:18(北京时间):HTTP 整改代码已提交、推送并通过标准流程部署测试环境,实际应用为 `f0e8434`,基础设施及公开文档页验收通过。已登录客户端完整交互及真实发送链路仍未验收;未部署预生产。下文 12:58 阻塞为保留的过程记录,已由末节关闭。 ## 版本与范围 - 应用提交:`f0e843436c715010d3eaec72a5e0c81816a6e5bd`;实际远端回读一致,fetch 后分叉 `0/0`。 - 测试当前基线:`8e4bc5a20e4d98e96fc8572fabbac149ba12c8e6`,本轮 SSH 回读确认。差异中的前置提交仅文档,不引入其他未发布业务代码。 - 方案:[HTTP 整改方案](http-api-assessment-20260910.md);公共正文:[接入手册](client-http-api-guide.md);用例:`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 完成。 - API:72 套、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 秒重试 200,PG 尝试一致;旧 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-checked`,`verificationWarnings=[]`。 - 真实 `.deployed-commit` 回读为 `f0e843436c715010d3eaec72a5e0c81816a6e5bd`;API、发送工作器、Gateway callback 和 Gateway 均 active。标准验证另外覆盖受影响 Node 服务、源码/产物、PG 迁移、队列、存储保护和日志增量。 - 恢复资产:`/var/backups/cmpp-platform/20260914T050659-f0e843436c71-48bc2b23-attempt-1789362739717334514`,496,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.json`、`test-docs-*.png`,API 证据为 `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,未为文档台账再次部署。预生产无操作;真实已登录客户端完整交互、短信发送/计费及供应商链路保持未验证。