chore(repo): 导入 M-Z 业务底座 V1.9 基线并建立仓库规范
按周工交付的 SEC-Z-01 清理后源码建立 M-Z 主干,并按 Git 仓库惯例重排目录。 - aomin-gateway/ 后端工程 87 文件,原样保留,路径与构建命令未变 - demo/ 演示前端与设备模拟器 9 文件(原 02_前端与设备端),非正式三端 - docs/handover/ 交付与安全清理材料 6 份,内容未改 - docs/contract/ J-00 规格、OpenAPI、内部五接口、状态机、Mock 样例 - docs/reference/ 指纹与校验清单,含 84 个源码文件的 sha256 清单 目录重排只动位置不动内容:源码树 84 文件哈希与交付一致,逐文件自校验通过; 12 条 Flyway 迁移与交付包内镜像逐字节一致。 未纳入:迁移镜像目录(与工程内一套重复,改留指纹)、target/、证据 raw、 应急恢复脚本、评审用虚构台账数据。 安全:SEC-Z-01 15 处明文已清零,导入前重新扫描无新增命中,本仓库无历史污染。 行尾按交付字节原样保存(.gitattributes 设 * -text),不做归一化以免整树摘要失效。
This commit is contained in:
commit
a7605ef8b8
121 files changed
+23629
No files matched your search
@@ -0,0 +1,109 @@
|
||||
# 155 条作者证据的适用边界(Z-02 附件)
|
||||
|
||||
| 项 | 内容 |
|
||||
|---|---|
|
||||
| 依据 | AM-S1-GOV-020 §4.4「Z-02:……现有 155 条作者证据的适用边界;若作为清理后当前结果,必须真实重跑」 |
|
||||
| 处理结论 | **已真实重跑**,不是沿用清理前结果 |
|
||||
| 批次号 | `R20261113-112443` |
|
||||
| 结果 | **155 条 / 通过 155 / 未过 0**,11 组脚本 **失败 0 组** |
|
||||
|
||||
---
|
||||
|
||||
## 一、这 155 条是什么
|
||||
|
||||
| 证据文件 | 条数 | 覆盖内容 | 耗时 |
|
||||
|---|---|---|---|
|
||||
| `05_SOS链路.json` | —(非用例) | 单次闭环的原始请求/响应记录,不作计数 | 8.9s(与下一项同组) |
|
||||
| `06_命令链.json` | 23 | 命令七态、回执、幂等、状态机边界 | 58.6s |
|
||||
| `06_异常与权限.json` | 28 | 异常分支与对象级权限 | 同上组 |
|
||||
| `07_告警失败不吞事件.json` | 5 | 故障注入:规则异常 / 库异常 / 重试 / 死信 | 84.6s |
|
||||
| `08_闭环后半段.json` | 13 | 通知、家属确认、处置关闭 | 22.0s |
|
||||
| `09_数据范围.json` | 16 | 数据权限与可见范围 | 19.9s |
|
||||
| `10_摘要与状态防护.json` | 15 | rawRef 摘要、状态不可回退 | 34.0s |
|
||||
| `11_超窗与死信.json` | 15 | 时间源分流、退避、死信、审计回滚 | 286.2s |
|
||||
| `12_合并与替代.json` | 6 | 连续触发的合并与 superseded | 77.7s |
|
||||
| `13_GOV008整改.json` | 16 | GOV-008 定点整改项 | 105.8s |
|
||||
| `13_分区与一致性.json` | 8 | 分区维护、计数一致性 | 18.4s |
|
||||
| `14_命令节点闭环.json` | 10 | 领取节点、代次、租约、错节点拒收 | 42.7s |
|
||||
| **合计** | **155** | — | 约 13 分钟 |
|
||||
|
||||
---
|
||||
|
||||
## 二、为什么必须重跑(不是"为了好看")
|
||||
|
||||
清理动了三处会影响执行的东西:
|
||||
|
||||
1. **`application.yml` 的 `password`** 由「带默认值」改成「无默认值 + 缺参中止」——启动条件变了;
|
||||
2. **12 个证据脚本** 的口令来源由「环境变量或内置默认」改成「只认环境变量」——脚本启动条件变了;
|
||||
3. **`GatewayApplication`** 增加启动守卫——可执行产物变了。
|
||||
|
||||
换句话说,**清理前的 155 条是在"另一套启动条件"下跑出来的**,直接拿来当"清理后的当前结果"属于沿用旧结果。所以按 §4.4 那句"必须真实重跑"执行。
|
||||
|
||||
重跑后源码树摘要、jar 摘要、批次号全部更新,见 `03`。
|
||||
|
||||
---
|
||||
|
||||
## 三、这批证据能证明什么
|
||||
|
||||
| 能证明 | 依据 |
|
||||
|---|---|
|
||||
| 155 条在**这一棵源码树**(`5E9F894B…`)、**这一个 jar**(`1F38F527…`)、契约 `1.8.1`、迁移 `1.0.28` 上真实执行过 | 每份结果 JSON 的 `_meta` + `raw/_execution_manifest.json` |
|
||||
| 每组是哪个脚本、什么参数、几点开始几点结束、耗时多少、退出码几 | `raw/_run_logs/*.log`(11 份完整 stdout+stderr) |
|
||||
| 失败项不会被藏起来 | 清单外的结果自动标「历史结果补充索引」,**不计入通过数**;本次该数为 **0** |
|
||||
| 清理没有破坏原有功能 | 与清理前同为 155/155,无新增失败 |
|
||||
|
||||
---
|
||||
|
||||
## 四、这批证据**不能**证明什么(必须写明,否则就是夸大)
|
||||
|
||||
| 不能证明 | 说明 |
|
||||
|---|---|
|
||||
| **不是接收方复验** | 这是**作者自测**。按 §9.2 第 4 条,收到文件 ≠ 接收通过;A 类关闭要谢工、陈工签认,本件不构成关闭 |
|
||||
| **不含并发** | `v20_node_test.py` 是串行 10 条,**没有 Thread / 线程池 / 并发 PULL**。并发领取、节点与租约不匹配、重复/乱序/迟到回执,由谢工按完整矩阵补测 |
|
||||
| **不含真机** | 全部是接口级与故障注入。真实设备的上报、断连、无恢复帧场景,要等黄工真机窗口 |
|
||||
| **不代表生产性能** | 单机、本地 MySQL、单实例;没有压测、没有长稳 |
|
||||
| **不覆盖前端与小程序** | 只覆盖 M-Z 业务层与内部契约 |
|
||||
| **不是重复性统计** | 每项跑一次。偶发失败只能靠重跑发现,本批失败 0 不代表永不失败 |
|
||||
| **不覆盖 A-Z-02「停机超窗」的完整场景** | 有故障注入与死信验证,但"停服 60 分钟以上再起、事件被处理"需在共同环境由谢工/陈工复验 |
|
||||
|
||||
---
|
||||
|
||||
## 五、怎么复跑(陈工/谢工可按原样执行)
|
||||
|
||||
```bash
|
||||
# 1) 先起服务(必须带口令)
|
||||
set DB_PASS=<口令>
|
||||
java -jar aomin-gateway-0.0.1-SNAPSHOT.jar --server.port=8080 --server.address=0.0.0.0
|
||||
|
||||
# 2) 跑全部 11 组(约 13 分钟)
|
||||
cd 06_统一闭环题自测证据
|
||||
python run_all_evidence.py # 产出 raw/_execution_manifest.json + raw/_run_logs/*.log
|
||||
python stamp_evidence.py # 给每份结果写 _meta.execution
|
||||
python count_evidence.py # 对账,exit 0 = 155 条一致
|
||||
```
|
||||
|
||||
前置环境变量(缺一个都会失败或跳项):
|
||||
|
||||
| 变量 | 用途 | 缺失后果 |
|
||||
|---|---|---|
|
||||
| `DB_PASS` | 应用启动 | **启动中止**(退出码 1) |
|
||||
| `AOMIN_DB_PASS` | 12 个证据脚本 | **脚本退出**,提示设置方法 |
|
||||
| `AOMIN_MYSQL` | mysql 客户端路径 | 找不到命令,相关断言失败 |
|
||||
| `AOMIN_LOG` | 应用日志路径(`v17` 读横幅合并日志) | 误报"跳过 0 次" |
|
||||
| `NO_PROXY` | 本机回环不走代理 | 报 `10061`,与用例无关 |
|
||||
|
||||
---
|
||||
|
||||
## 六、复验入口(对应 GOV-011 / GOV-016 的 A 类)
|
||||
|
||||
| 关注点 | 脚本 | 建议核对 |
|
||||
|---|---|---|
|
||||
| A-Z-01 命令节点与代次 | `v20_node_test.py`(10 条)+ `cmd_chain_test.py`(23 条) | 领取后 `claimed_node_id` 落库、错节点 `NODE_MISMATCH`、历史空节点 `NODE_UNKNOWN`、旧节点+新代次仍被拒 |
|
||||
| A-Z-02 超窗补偿 | `v16_fix_test.py`(15 条)+ `alarm_retry_test.py`(5 条) | 无时间窗过滤、`receive_time` 库端打戳、退避与死信、人工回放 |
|
||||
| A-Z-03 审计可靠性 | `v16_fix_test.py` 的审计回滚段 | 审计写失败 → 业务整条回滚;`audit_fail_log` 可查可补录;重启后不清零 |
|
||||
|
||||
复验请填:**结论(通过/失败/未执行/不适用)+ 证据位置 + 日期**。作者不单方面宣布关闭。
|
||||
|
||||
---
|
||||
|
||||
*关联:`01` 差异清单、`02` 扫描报告、`03` 哈希与构建说明。*
|
||||
Reference in new issue
Block a user