docs: record legacy signature migration deployment
This commit is contained in:
@@ -1984,7 +1984,7 @@
|
||||
|
||||
## 通道运营商多选与运营商级签名报备(2026-08-10,本地实现完成、待验收与分阶段发布)
|
||||
|
||||
- 2026-08-09暂缓需求已重新纳入“签名清退预警”的前置设计,并已在本地完成兼容实现:`SmsChannel.carriers`保存运营商能力集合,通道管理、通道组校验、发送选路和签名报备均兼容运营商维度。当前修改仍未提交、未推送、未部署,生产数据和生产行为未改变;完整实施步骤和发布门禁见`docs/signature-retirement-alert-design.md`。
|
||||
- 2026-08-09暂缓需求已重新纳入“签名清退预警”的前置设计并发布到预生产:`SmsChannel.carriers`保存运营商能力集合,通道管理、通道组校验、发送选路和签名报备均兼容运营商维度;最终删除历史人工确认入口并由第85条migration自动转换存量任务。严格运营商级发送门禁仍保持默认关闭,完整实施状态和后续门禁见`docs/signature-retirement-alert-design.md`。
|
||||
- 目标交互为取消“移动、联通、电信、三网”四选一,将通道能力改为“移动、联通、电信”三个复选项,至少选择一个;同时勾选三个运营商等价于现行“三网”,允许只勾选其中两个运营商。
|
||||
- 该变化只作用于通道本体的运营商能力集合。`SmsChannelGroup.carrier`、`SmsChannelGroupItem.carrier`、`ChannelRouteRule.carrier`及短信号码实际运营商仍保持移动/联通/电信单值;一个通道只有在能力集合包含对应运营商时,才允许加入该运营商通道组并参与选路。
|
||||
- 同一通道勾选多个运营商时继续共用一个通道单价,不增加分运营商单价;如未来出现分运营商计价需求,必须另立需求并升级为通道运营商明细模型,不能在本需求中隐式扩展。
|
||||
@@ -1994,7 +1994,7 @@
|
||||
- 取消某个已勾选运营商时,如果该通道仍被对应运营商的活动通道组引用,后端必须返回真实影响并阻止保存,不得自动删除通道组成员、路由、报备任务或历史发送记录;新增运营商能力也不得自动加入通道组或自动视为报备通过。
|
||||
- 发布迁移必须采用向前兼容的分阶段顺序:先增加新能力集合、回填并让后端兼容读取,再开放多选写入。出现两个运营商组合后,旧单值代码无法无损解释该数据,回滚下限必须是已经支持新集合的兼容版本,不能直接回滚到仅识别`mobile/unicom/telecom/all`的旧版本。
|
||||
|
||||
## 签名清退预警(2026-08-10,本地实现完成、待验收与分阶段发布)
|
||||
## 签名清退预警(2026-08-10,已发布到预生产)
|
||||
|
||||
- 企业预警按“企业签名 × 运营商”每天检测,通道预警按“签名 × 通道 × 运营商”每天检测。运营商只要存在当前报备通过任务就进入对应监控名单,不等待三网全部成功;历史通道级任务由一次性migration按最终口径自动转换,不再存在人工确认待办。
|
||||
- 企业预警支持移动、联通、电信通用X天/Y条规则和企业应用特殊规则,特殊规则优先;通道预警支持通用规则和通道特殊规则,特殊规则优先。规则修改从下一检测日生效,预警快照保存命中的规则版本和阈值。
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
# 签名清退预警与运营商级报备改造设计(本地实现稿)
|
||||
|
||||
> 状态:2026-08-10已按最终确认口径完成本地修改和迁移演练,修改仍未提交、未推送、未部署。严格运营商级发送门禁保持默认关闭;预生产migration、门禁切换和预警启用仍必须分阶段执行。
|
||||
> 状态:2026-08-10已按最终确认口径由提交`2ecb24cf8d09dd428dfab0c682b33581959618ea`发布到预生产,第85条自动转换migration已完成。严格运营商级发送门禁保持默认关闭;兼容命中清零核验、门禁切换和预警运营启用仍必须分阶段执行。
|
||||
|
||||
## 0. 实施状态(2026-08-10)
|
||||
|
||||
- 原签名清退预警功能已经过本地PostgreSQL迁移、专项与全量测试、真实聚合SQL、TypeScript、生产构建及授权后的真实验证码登录浏览器验收;本次最终口径删除历史人工确认功能,并新增自动转换migration。
|
||||
- 原签名清退预警功能已经过本地PostgreSQL迁移、专项与全量测试、真实聚合SQL、TypeScript、生产构建及授权后的真实验证码登录浏览器验收;本次最终口径已删除历史人工确认功能,并将自动转换migration发布到预生产。
|
||||
- 旧报备任务通过后续一次性迁移自动转为运营商级任务:按通道能力集合分别建任务,旧状态为`approved`时对应运营商全部记为已通过且`approvedAt`取迁移执行时间;其他状态原样复制且不写通过时间。已有运营商级任务优先保留、不覆盖;旧任务退出兼容范围并保留历史记录。
|
||||
- 本地实现未发送真实短信,未修改生产通道、账号、密码、启停状态、企业余额或客户连接;也未提交、推送或部署。
|
||||
|
||||
|
||||
@@ -3449,7 +3449,7 @@ git diff --check
|
||||
- 9条活动通道恢复为6条`connected 1/1`;“会员营销-富泷”“移动物业-富泷”“联电物业-富泷”继续返回既有供应商`authentication / connect response status: auth failed`,本轮未修改账号、密码、启停状态或连接参数。依赖审计仍报告根项目3项high、API项目3项moderate和4项high,专用安全缓解门禁通过,未执行破坏性自动升级。
|
||||
- 最终发布没有发送、补发或重投真实短信,没有配置或投递Webhook,没有修改企业余额或客户连接。功能提交、慢启动修复和本发布记录均只包含有效源码、migration、测试和文档;`api/tsconfig.build.tsbuildinfo`、`tsconfig.tsbuildinfo`、`outputs/`和空文件`=`继续不提交、不删除。
|
||||
|
||||
## 2026-08-10 删除历史待确认并自动转换历史签名任务(未提交、未发布)
|
||||
## 2026-08-10 删除历史待确认并自动转换历史签名任务(已发布)
|
||||
|
||||
- 按最终业务口径删除签名清退预警页的“历史待确认”页签、数量、表格、人工确认弹窗、前端请求与类型,以及后端历史任务列表/确认DTO、Controller路由和Service逻辑;企业签名报备详情和状态弹窗同步移除“历史待确认”残留提示。
|
||||
- 新增第85条幂等migration `20260810214500_auto_split_legacy_signature_reports`:旧`legacy_channel`签名任务按通道实际运营商集合补齐缺失的`carrier_specific`任务;旧状态为`approved`时三网通道的移动、联通、电信均记为已通过,`approvedAt`取migration执行时刻,其他状态原样转换且通过时间为空。已有运营商级事实不覆盖;全部适用运营商齐全后旧任务改为`legacy_split`并保留记录。
|
||||
@@ -3457,4 +3457,9 @@ git diff --check
|
||||
- migration前已备份本地真实PostgreSQL到`C:\cmpp-platform-local\backups\cmpp-platform-before-legacy-auto-split-20260810-2145.dump`,514656字节,SHA-256=`f776feb92243afb117b648256f630ad826039985030c4fae21ea631f111a20ea`。本地执行后`legacy_channel=0`、`legacy_split=1`、`carrier_specific=10`;新建3条运营商任务和1条旧任务完成记录,已通过运营商任务`approvedAt`空值为0。原SQL再次执行新增任务0、记录0,数量不变,证明幂等。
|
||||
- 清退与通道专项2个suite/52项通过;API全量分组35/35个suite、448/448项通过。API TypeScript构建、前端TypeScript与Vite 8.1.5生产构建、Prisma validate及85条migration状态、4份Gateway队列结构契约和`git diff --check`均通过;前端仅有既有大chunk提示。整体Jest命令受既有未关闭句柄影响未自行退出,按完整suite清单分两组在全部断言通过后`--forceExit`取得明确退出码0。
|
||||
- 本地浏览器使用真实API和PostgreSQL验收:页面只显示“预警消息、检测规则、Webhook、抑制管理”4个页签,“历史待确认”不可见;切换检测规则成功,页面无框架错误覆盖,控制台error/warn为0。仅重置本地专用`codex_local_admin`临时密码以解锁既有本地会话,未新建账号。
|
||||
- 本轮没有修改预生产数据,没有发送、补发或重投短信,没有修改通道账号、密码、启停状态、企业余额或客户连接;代码、migration、测试和文档均未提交、未推送、未部署。受保护的`api/tsconfig.build.tsbuildinfo`、`tsconfig.tsbuildinfo`、`outputs/`和空文件`=`继续不删除、不提交、不归因于本需求。
|
||||
- 功能提交`2ecb24cf8d09dd428dfab0c682b33581959618ea`已推送并成功发布。精确Git归档`outputs/cmpp-2ecb24cf-20260810-225340.tar.gz`为2218419字节,服务器共826个归档条目,本地和服务器SHA-256均为`ddcae8619f987522b1a9d487b13cdcfd9a82ea2a2cc7993caa01a7a1253bcedc`。
|
||||
- 发布前恢复资产位于`/opt/cmpp-platform-backups/releases/20260810-225550-before-2ecb24cf`,目录0700、文件0600。PostgreSQL备份17570927字节、SHA-256=`25e2ea99936f39210684f88325589458e2dd4666f32598a3730f6e0a0d689166`;运行源码备份2245714字节、SHA-256=`834b658dd6050ab1f894ea3c267b95fab299fcd7834f9625757091f476f10548`;环境文件895字节、SHA-256=`7a26d83b062f9d7e9503e2a987f39a899510f8981be63be997bccfc988fbbc60`。gzip、tar和`sha256sum -c`全部通过,上一运行目录保留为`/opt/cmpp-platform.previous-20260810-225550`;发布包装流程配置了失败时数据库和运行目录恢复,本次未触发回滚。
|
||||
- 标准`tools/deploy/production-deploy.sh`成功完成依赖安全缓解门禁、Prisma generate/migrate、前端/API/Gateway构建、Nginx校验以及Gateway先于API重启。第85条`20260810214500_auto_split_legacy_signature_reports`仅应用一次,最终`.deployed-commit=2ecb24cf8d09dd428dfab0c682b33581959618ea`。
|
||||
- 发布前有61条`legacy_channel`任务和64个缺失运营商目标;发布后`legacy_channel=0`,新增`legacy_carrier_auto_split=64`和`legacy_scope_auto_split=61`条migration轨迹。16条由历史已通过任务新建的运营商任务`approvedAt`统一为北京时间`2026-08-10 22:56:14.239`且空值为0;原有运营商级任务未覆盖,历史任务全部保留为`legacy_split`。
|
||||
- API、Gateway、Nginx、PostgreSQL和MinIO均active,API/Gateway/MinIO健康、Redis PONG、Stream消费者1、`pending=0`、`lag=0`,运营端、客户端和公网API health均HTTP 200;部署后API/Gateway error和warning级日志为0,运行源码和前端产物均不存在`legacy-report-tasks`或“历史待确认”标记。
|
||||
- 9条活动通道重启恢复后6条`connected 1/1`;“会员营销-富泷”“移动物业-富泷”“联电物业-富泷”继续为发布前已知的供应商`authentication`失败。本轮未修改通道账号、密码、启停状态、企业余额或客户连接,没有手工发送、补发或重投短信,也没有修改Webhook。受保护的`api/tsconfig.build.tsbuildinfo`、`tsconfig.tsbuildinfo`、`outputs/`和空文件`=`继续不删除、不提交、不归因于业务源码提交。
|
||||
|
||||
Reference in New Issue
Block a user