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,12 @@
|
||||
# 包内文件 SHA-256 清单(路径相对包根)
|
||||
# 校验:在本包根目录执行 sha256sum -c SHA256SUMS_包内.txt
|
||||
|
||||
848de973be78a75f47f1e7d78242a9d2862ffa94699c5405b06a4e4408123572 README.md
|
||||
55dfa815e9c2801a37d2dcff0ab095c975402ab66ef7ffe33a13af54bebbf994 sim/sim_device.py
|
||||
72eaa3997aab635fea28b79480922c7e8162e650602665d32c1f13eff68e489f web/admin/index.html
|
||||
98cee85935be9a55af85cd194aaa105ae9d4d3b931ef6faea5b7423314aec439 web/common.js
|
||||
6166979b12559a690747f0190b2f8882ecd6086e0696527b700b0341891e062c web/family/index.html
|
||||
e0200f12ac905c295ec760439756b330639a4e922ab19918d76d65319a0809a1 web/family/map-baidu.html
|
||||
a68d78beb94fff53d91eb474081c4c907e3dcfb769609d6bf9212773bd7e06c0 web/family/map-offline.html
|
||||
2a13542045932ecd4e8b2a5e64cd6a14215d49e3da22975c6db147994bb5650a web/family/map-picker.html
|
||||
6328a6aa17f9a67bd55d96bf944bbd60a0fcb27c2b9dcd3a4a8366b7a01edbb9 web/index.html
|
||||
@@ -0,0 +1,116 @@
|
||||
# 包内文件 SHA-256 清单(路径相对包根)
|
||||
# 校验:在本包根目录执行 sha256sum -c SHA256SUMS_包内.txt
|
||||
# 说明:03_数据库与Flyway迁移 与 aomin-gateway/src/main/resources/db/migration 为同一套迁移的两次出现,不是两套。
|
||||
|
||||
71d8471d07c4c067f375de16bbc5920820ea30a1bf05a60898c5ee71043c0267 00_包内容与使用说明.md
|
||||
65dff0ffaba7ab185e7b4b7f3bd2c0a6782ad9faeab3669cbc6aeb1ede74dd05 01_SEC-Z-01_最小安全清理差异清单.md
|
||||
2f88825dbd03c828ce19ac7736138a46d1ba9badee018087dde60ab012096cdb 02_SEC-Z-01_敏感信息扫描报告.md
|
||||
f01f5a40a1423b0cdb69a0ff56227652da58bfc87aa9fd3860ca5ada5168978b 03_Z-02_清理后哈希与构建说明.md
|
||||
07e5263e3d755535a5fadaa18b8529d6244af975daa06faef9b3e908bcf0c7cc 03_数据库与Flyway迁移/V1.0.0__baseline_schema.sql
|
||||
8be5a9816f1f661d0a54c2a23c56079b76df88f47bd153609a94c659e42e7299 03_数据库与Flyway迁移/V1.0.18__raw_link_columns.sql
|
||||
45e64f88796d46267b8f4f67f76d9ea5ec3ad34fbbe62736c4768216cbaf23a2 03_数据库与Flyway迁移/V1.0.19__household_geo.sql
|
||||
cde7f6df804cdc1a827b0a109815c0af3a52d7efa4f35a170f262d8ce429418d 03_数据库与Flyway迁移/V1.0.20__notify_read_at.sql
|
||||
7751f42076e39874a85f147cf1ce5c45653161207cb06e6042d60f7888d90710 03_数据库与Flyway迁移/V1.0.21__alarm_chain_seq.sql
|
||||
3306548d3c02f6750cfb93c535e5c9e98062710ed6d4d099f69e0fc7a7b8edc1 03_数据库与Flyway迁移/V1.0.22__alarm_source_event.sql
|
||||
9c941b1675d5a82daef81d7f297d03b206a028deb9923b78cd92f473a9ca8272 03_数据库与Flyway迁移/V1.0.23__command_seven_states.sql
|
||||
ec0b7e0f23f74f52bd373fc0fb7d84bacdda9be62c19e9b6163bf669da442af2 03_数据库与Flyway迁移/V1.0.24__region_scope.sql
|
||||
e480a143b8a079971c285d63bf51252eecc2034054459f83e2104c877fa51d40 03_数据库与Flyway迁移/V1.0.25__raw_ref_64_and_gap.sql
|
||||
61e8c5f2167de4588e8aa337c9d45dfa12015680d6b12d1d456b3f159770c29e 03_数据库与Flyway迁移/V1.0.26__alarm_retry_deadletter.sql
|
||||
778141cf45e9b3f62afc9bdbb3f7079794daedfba9f0a20caf84fe90eb3503dd 03_数据库与Flyway迁移/V1.0.27__receive_time_local_and_audit_fail.sql
|
||||
2d6e90a3e6a2db9771b7820df4dfc7e58c211627ac02271612e2511764e83286 03_数据库与Flyway迁移/V1.0.28__command_claim_node.sql
|
||||
94fc66069dabce35327e4ab2af724f7269bae6ced4f9c4de2e6681ca3498b36c 03_数据库与Flyway迁移/数据库与迁移说明.md
|
||||
981c79f28b85d56a225c524e297af1cf16d63acdbf763f520a17fa65454feeb6 04_155条证据适用边界.md
|
||||
1cc027d867b7538becd0e566666d772c09f092db2b81d6363abc643a03ec4821 04_OpenAPI与内部IoT契约/6_J-00_OpenAPI使用说明_V1.8.md
|
||||
80b3ff9468fb71ed47b5378658e3354a0ac2f1338a253edf45f07343d0ffba1f 04_OpenAPI与内部IoT契约/6_J-00_接入接口规格_V1.8.md
|
||||
99a659435512909e0b48ede82114325ba562958f65ff0d49b3772b672645fab7 04_OpenAPI与内部IoT契约/6_J-00_接入接口规格_V1.8_OpenAPI.yaml
|
||||
6d16a685bb765b3aa1ad54039686c8f5936de22bb83eaba276cd5be022382877 04_OpenAPI与内部IoT契约/Mock样例.md
|
||||
89c492c591e4c591351b5f3ddabe24de5566c9e19f2dbb26312dedb3e81a8484 04_OpenAPI与内部IoT契约/内部五接口定义.md
|
||||
5272bb1d4d31bc7677cf12d44aafde4e2ec8e4eeb1bb09fe5a444da49cac6a5e 04_OpenAPI与内部IoT契约/状态机.md
|
||||
1ddf2498987f80336b568efff85d0964264a06435d5c84e76fce115bcf7c83dd aomin-gateway/README.md
|
||||
dbc64823853fef475d8735475a62f92e95df841e8a82fc8ab13de573b0438270 aomin-gateway/pom.xml
|
||||
2c315fcbabd70d5282ae33ca00dceafb352d14253c6b3d33d9c2a3fc717dc1b6 aomin-gateway/src/main/java/cn/aomin/gateway/GatewayApplication.java
|
||||
8fa464b5a4dc0c246b5585bbaabd7ad4fea5271d524eb6e9d4b7b91faf72c011 aomin-gateway/src/main/java/cn/aomin/gateway/biz/DemoDataInitializer.java
|
||||
116a3b56bbb3b2b051ed239a5a4b82111c9c010b0a620efdbfe59a2528fcdc35 aomin-gateway/src/main/java/cn/aomin/gateway/biz/controller/AdminController.java
|
||||
a7f7f7f3129a23d09d40f5589bb65c3cb7d933a8ceba8a929c20501b05b45432 aomin-gateway/src/main/java/cn/aomin/gateway/biz/controller/AlarmController.java
|
||||
58fadae221f2763f2f51e267ddefdf8478661a15eb1583686205119c6bb9e434 aomin-gateway/src/main/java/cn/aomin/gateway/biz/controller/AuthController.java
|
||||
d27df1ed1695ffcc75b9c2e00fa1111088694ab4ddfc04af9d29aad8b9d2b0cb aomin-gateway/src/main/java/cn/aomin/gateway/biz/controller/DeviceController.java
|
||||
95b432a2c7a84b0f834c21b721e4131a7c71edb30f42cbb49dc014182e0201f3 aomin-gateway/src/main/java/cn/aomin/gateway/biz/controller/FamilyController.java
|
||||
cb04548d6386555e7df9070e19ebe0b007c2e825646c685ecfa80e78b6204d7c aomin-gateway/src/main/java/cn/aomin/gateway/biz/controller/NotifyController.java
|
||||
2c40eaf77abd7a73d19022c85faf8dc319ccff7948fbd8553b595c4653e3c324 aomin-gateway/src/main/java/cn/aomin/gateway/biz/controller/NotifyStreamController.java
|
||||
84829224a845f88986683c4c87dd37b9b4dae4b27405e558b78b5e8fe34bbdbf aomin-gateway/src/main/java/cn/aomin/gateway/biz/dao/BizDao.java
|
||||
f44f3cc9af74c6639241633aa30039e1baa22fad40487c05c5b3a8f172ba93bf aomin-gateway/src/main/java/cn/aomin/gateway/biz/dto/Dtos.java
|
||||
e936b9acf37ef2f4d61840665329fc503df72d646480cc8b5a6fd438d1cd574b aomin-gateway/src/main/java/cn/aomin/gateway/biz/engine/AlarmEngine.java
|
||||
2de186fdede0cd58e2d2f54d08616436a760557b9e9f53a13518d69cf7359954 aomin-gateway/src/main/java/cn/aomin/gateway/biz/engine/AlarmTrigger.java
|
||||
26e417d5d41adf35d50d0917f2e0a17ac6f7d688bc18e159c4080ea3ba63f872 aomin-gateway/src/main/java/cn/aomin/gateway/biz/service/AdminService.java
|
||||
30b0f7d7ce7a753e24b78e252743e9524d7e11f5ec846655e72b7964f702bc33 aomin-gateway/src/main/java/cn/aomin/gateway/biz/service/AlarmService.java
|
||||
d296c463aa6416cc7a4df87c0e821f3989b4cc9bd5b9e3d06e06f5e3fc549894 aomin-gateway/src/main/java/cn/aomin/gateway/biz/service/AuthService.java
|
||||
4bcf644491cd6d0b924fd2f42e07b6583ad9499d06a8beed7d28bc9c89fc768e aomin-gateway/src/main/java/cn/aomin/gateway/biz/service/BizDeviceService.java
|
||||
84fb58da94f2a9395e372746b850ccf6f03b8f3c71bd1be1dc2400898a62989b aomin-gateway/src/main/java/cn/aomin/gateway/biz/service/FamilyService.java
|
||||
f7f6bd7e73741b2bbc774e8e05f91e344f00ba893727209fdfb22cf908201448 aomin-gateway/src/main/java/cn/aomin/gateway/biz/service/NotifyService.java
|
||||
18ba93498aad6ffab1680e6cb780eb934dbd85f29625b2dd688beb362894d970 aomin-gateway/src/main/java/cn/aomin/gateway/biz/service/PiiService.java
|
||||
18191289464412e7b1408662421b83291f1a95378a868c5f9892489964652a5b aomin-gateway/src/main/java/cn/aomin/gateway/biz/service/SmsGateway.java
|
||||
5d4d8c17959734e7c969c681369850be76fee08f0cc50910d5344f2832f9c65e aomin-gateway/src/main/java/cn/aomin/gateway/biz/support/AdminScope.java
|
||||
00378b6a55265fb2adce15480faa80a20e85bfc7268efd074467427f607df560 aomin-gateway/src/main/java/cn/aomin/gateway/biz/support/AuditGuard.java
|
||||
88b74c167b8e7b3f594d82a501072eb2dc736e07ee52e9e5ba87e05f3a5d03e2 aomin-gateway/src/main/java/cn/aomin/gateway/biz/support/AuthContext.java
|
||||
e77c7b1cad576b5ee23ee05acb27f62af6a5d1cb80fbc955ce6c25db62a668cb aomin-gateway/src/main/java/cn/aomin/gateway/biz/support/BizAuthInterceptor.java
|
||||
fc12b2e26e2e39012479df1f4a22a2a4605ffe67d1793edbe01baef0aa2ac7b5 aomin-gateway/src/main/java/cn/aomin/gateway/biz/support/Crypto.java
|
||||
65994b8ccfba75de35fe6a35f1632cf7d3a3a5e3d9412018facd6c2ecd66126e aomin-gateway/src/main/java/cn/aomin/gateway/biz/support/PageResult.java
|
||||
e255bc089e83bd35fdce6d5d5521bd0f05c78c84919775459fb0a2f4ba26f88a aomin-gateway/src/main/java/cn/aomin/gateway/biz/support/PartitionMaintainer.java
|
||||
ecc3e56a10b9e02a828a9c54314b9724f107f11506a354dd842c783b2ab69be8 aomin-gateway/src/main/java/cn/aomin/gateway/biz/support/SseHub.java
|
||||
46e4c0987cfa35f2067ccb1951dbd9f04321dfb01d22f9392242521d8d35e1d7 aomin-gateway/src/main/java/cn/aomin/gateway/biz/support/SuppressGate.java
|
||||
b068a6413895de569ec33d9b967c5aca13818258abc5747adf16d5b25adcf31f aomin-gateway/src/main/java/cn/aomin/gateway/biz/support/TokenService.java
|
||||
5d3b73cb52245ea2fcfe301fe6d794350d7f0bebd32851627eef5c3a8507ea42 aomin-gateway/src/main/java/cn/aomin/gateway/common/ApiResponse.java
|
||||
6ef484310f27e7b951a490d7ae32786fd27e9d1fe14e38487b0451c62fbaf4a3 aomin-gateway/src/main/java/cn/aomin/gateway/common/BizException.java
|
||||
3aa57442b289ed4f7a27120fbb69153dc670a94efbcccf361860e7e02a857613 aomin-gateway/src/main/java/cn/aomin/gateway/common/GlobalExceptionHandler.java
|
||||
3fdb0e845a3b7d1b5bc025b5ef784b0b5635a514df522761973afc7c4a6226ed aomin-gateway/src/main/java/cn/aomin/gateway/config/GatewayProperties.java
|
||||
615c60e33233c424764d4a1e4082375ca2244a836aa04619d7706033280efa76 aomin-gateway/src/main/java/cn/aomin/gateway/config/RedisConfig.java
|
||||
879e6341ee07c5b933c5f3cda0dcf04196eea89189feacbdb048af5f723b2cfd aomin-gateway/src/main/java/cn/aomin/gateway/config/WebConfig.java
|
||||
745e893fc2606ff4c4b694a9b9ca1a4f51e14076878adfb19e2a5863eca8923e aomin-gateway/src/main/java/cn/aomin/gateway/controller/CommandController.java
|
||||
bf40814adbc2e5b708ac8bd521f4f4e28b58f18230b234ba539d0c72cc7584a9 aomin-gateway/src/main/java/cn/aomin/gateway/controller/HealthController.java
|
||||
087b82f0f4b49bfbfadfab31b9354c5355e28acdca2d1354afd887432a01bf90 aomin-gateway/src/main/java/cn/aomin/gateway/controller/IngestController.java
|
||||
bc872eef7be69cbab1b3b014efaf3c519aae4a37d9e071932b91f52673c2c94f aomin-gateway/src/main/java/cn/aomin/gateway/dao/CommandDao.java
|
||||
9f495136f8a13420ce0746783873d437a875fd15d422e55816080c30f6d32dd0 aomin-gateway/src/main/java/cn/aomin/gateway/dao/DeviceDao.java
|
||||
d9410152ba5940bb2b8c75d45466d94effdc0e3417ecfdbc4e913007a9778438 aomin-gateway/src/main/java/cn/aomin/gateway/dao/IotEventDao.java
|
||||
e8140a24b1d0f037bdae70dc6e49b4481b9ce8ce60b24f9e46df13232bd9efcf aomin-gateway/src/main/java/cn/aomin/gateway/dao/RawFrameDao.java
|
||||
61fdbf0f9bca0e7d86e9f0cd37bece1c90412de0107faf21df8beee0a3c9be80 aomin-gateway/src/main/java/cn/aomin/gateway/dao/RawRefGapDao.java
|
||||
d81e3276b697cde3c024bcc64f5c8420f91cdeadc290247750cd0e2be883877e aomin-gateway/src/main/java/cn/aomin/gateway/dao/TechCacheDao.java
|
||||
17e6215e0b9868369bfe28d623c9a18f619114df79590cddfc8b57590281e1cf aomin-gateway/src/main/java/cn/aomin/gateway/dao/UnregisteredDao.java
|
||||
c1b4fd06e88dd1085396455396e3d68bfabfbacbfc59a71bed993270c3824a5e aomin-gateway/src/main/java/cn/aomin/gateway/domain/Channel.java
|
||||
dc142f281fab1a31ae0c6040baef02e10ef2359d97809b95ceae5bd189ea45c2 aomin-gateway/src/main/java/cn/aomin/gateway/domain/DeviceRow.java
|
||||
bccd9cfba21c63449734a1d1585ab02c0dd36257e5b238d409ddee6a1a4491f5 aomin-gateway/src/main/java/cn/aomin/gateway/domain/TimeResult.java
|
||||
c3a4d760ab8596e58eeb8ca9ad08e55066c99b4867a24a003d8f63fab814b465 aomin-gateway/src/main/java/cn/aomin/gateway/domain/dto/CommandResultRequest.java
|
||||
17b9924b78175c83ef20c2f390b04106ffeb6bbf1770fddcb061b7cf62f01a72 aomin-gateway/src/main/java/cn/aomin/gateway/domain/dto/EventBatchRequest.java
|
||||
fad99f362b82adb7a4f06eace7583711295ffae4aa6d12e4b20965b0acc77f6b aomin-gateway/src/main/java/cn/aomin/gateway/domain/dto/IngestResponse.java
|
||||
07ff87965099f00c9ba0f8adcf1a4649e7359d71d380e6b7350687cd35d1a3ab aomin-gateway/src/main/java/cn/aomin/gateway/domain/dto/PendingCommandResponse.java
|
||||
ec23b4048a1a505e712c68f4e8bc941c3cb9d83168db18487930f8fdd457c4fd aomin-gateway/src/main/java/cn/aomin/gateway/domain/dto/RawFrameBatchRequest.java
|
||||
954eb9c474eba1a75fa10df8310616a6892d80ff2f9ed5efbbc70890f7a9e391 aomin-gateway/src/main/java/cn/aomin/gateway/domain/dto/StatusBatchRequest.java
|
||||
ab1222707fdc4e8f5ed059fae8135cb676af0053987a29bf992eb915d1c7be99 aomin-gateway/src/main/java/cn/aomin/gateway/interceptor/AuthInterceptor.java
|
||||
b99a9bb97500b5b2e1096a3049375cd2348b8b478f1700878968410946c1fc2b aomin-gateway/src/main/java/cn/aomin/gateway/interceptor/InternalNetworkGuard.java
|
||||
368726ecbd86aec46a0c145ab47eb79eedddad3e7e3e16c35e2eade681aa67b7 aomin-gateway/src/main/java/cn/aomin/gateway/security/CachedBodyFilter.java
|
||||
6efcd0422225e4d2835225847ded8c4382efa638307d866b8252e11882f71f3f aomin-gateway/src/main/java/cn/aomin/gateway/security/IdempotencyStore.java
|
||||
474c3aea6bee182ed96fbac6eec478a1d3bc025e2923736a07bf45b59d0ce61b aomin-gateway/src/main/java/cn/aomin/gateway/security/IdempotentExecutor.java
|
||||
8452ee990a69d223ae4d16d5b1dea152823d10fb2b59169190965ef8e9c9a33f aomin-gateway/src/main/java/cn/aomin/gateway/security/NonceStore.java
|
||||
8cc16695275e6a69615b50c4a8d88a3e78302d528c8f4f795da1c276099c95de aomin-gateway/src/main/java/cn/aomin/gateway/security/RateLimiter.java
|
||||
96e0c685a04299f854b7586383eee28c31007def56f692f426bedb258ab4554b aomin-gateway/src/main/java/cn/aomin/gateway/security/SignatureVerifier.java
|
||||
c38d62b372c8aac7f4f9bb27d8c3d9652539bd441d68f35b4b2c718dec8b9a87 aomin-gateway/src/main/java/cn/aomin/gateway/service/CommandService.java
|
||||
bfbdec7c215746a09bebfb8b2594d025b1db4c931bbff11c90a2b6c2689d16b0 aomin-gateway/src/main/java/cn/aomin/gateway/service/IngestService.java
|
||||
66d22c25a1b2871c5802b686a2c47836264b15d3cde89d723b037865ca2ff380 aomin-gateway/src/main/java/cn/aomin/gateway/service/RawFrameService.java
|
||||
2f9abbae9b5c1c227b2b7816845e2145f9169ac2098f64e0017076c55e56beb0 aomin-gateway/src/main/java/cn/aomin/gateway/service/StatusService.java
|
||||
77387e73bb73e7c687da953a83851d9654c204171aa874254a72fe521f6178e7 aomin-gateway/src/main/java/cn/aomin/gateway/support/EventTimeResolver.java
|
||||
e77267248d3aa7ecc9eab37ca039902c82e9f3879936ad742035c2993b8d25fd aomin-gateway/src/main/java/cn/aomin/gateway/support/EventValidator.java
|
||||
f4172bca391f5b4ebb90bf74a11ae2c998ef763c2b2908cd9c8b13bc56f86150 aomin-gateway/src/main/java/cn/aomin/gateway/support/LinkTypeResolver.java
|
||||
3912006f4c6432965daf2f590d229509363a1feaff9d7fb60df6f93e5d6c16c9 aomin-gateway/src/main/resources/application.yml
|
||||
07e5263e3d755535a5fadaa18b8529d6244af975daa06faef9b3e908bcf0c7cc aomin-gateway/src/main/resources/db/migration/V1.0.0__baseline_schema.sql
|
||||
8be5a9816f1f661d0a54c2a23c56079b76df88f47bd153609a94c659e42e7299 aomin-gateway/src/main/resources/db/migration/V1.0.18__raw_link_columns.sql
|
||||
45e64f88796d46267b8f4f67f76d9ea5ec3ad34fbbe62736c4768216cbaf23a2 aomin-gateway/src/main/resources/db/migration/V1.0.19__household_geo.sql
|
||||
cde7f6df804cdc1a827b0a109815c0af3a52d7efa4f35a170f262d8ce429418d aomin-gateway/src/main/resources/db/migration/V1.0.20__notify_read_at.sql
|
||||
7751f42076e39874a85f147cf1ce5c45653161207cb06e6042d60f7888d90710 aomin-gateway/src/main/resources/db/migration/V1.0.21__alarm_chain_seq.sql
|
||||
3306548d3c02f6750cfb93c535e5c9e98062710ed6d4d099f69e0fc7a7b8edc1 aomin-gateway/src/main/resources/db/migration/V1.0.22__alarm_source_event.sql
|
||||
9c941b1675d5a82daef81d7f297d03b206a028deb9923b78cd92f473a9ca8272 aomin-gateway/src/main/resources/db/migration/V1.0.23__command_seven_states.sql
|
||||
ec0b7e0f23f74f52bd373fc0fb7d84bacdda9be62c19e9b6163bf669da442af2 aomin-gateway/src/main/resources/db/migration/V1.0.24__region_scope.sql
|
||||
e480a143b8a079971c285d63bf51252eecc2034054459f83e2104c877fa51d40 aomin-gateway/src/main/resources/db/migration/V1.0.25__raw_ref_64_and_gap.sql
|
||||
61e8c5f2167de4588e8aa337c9d45dfa12015680d6b12d1d456b3f159770c29e aomin-gateway/src/main/resources/db/migration/V1.0.26__alarm_retry_deadletter.sql
|
||||
778141cf45e9b3f62afc9bdbb3f7079794daedfba9f0a20caf84fe90eb3503dd aomin-gateway/src/main/resources/db/migration/V1.0.27__receive_time_local_and_audit_fail.sql
|
||||
2d6e90a3e6a2db9771b7820df4dfc7e58c211627ac02271612e2511764e83286 aomin-gateway/src/main/resources/db/migration/V1.0.28__command_claim_node.sql
|
||||
8f2bf8c6287bdf169546c664c2af98b8153412247c5c2e65b68570bfec412f54 aomin-gateway/start-gateway.bat
|
||||
84ce77a2d36ce08f0807d9c5476af5aa9490daee70c5f9f233f7bf115a52ac89 gitignore_建议.txt
|
||||
@@ -0,0 +1,84 @@
|
||||
2c315fcbabd70d5282ae33ca00dceafb352d14253c6b3d33d9c2a3fc717dc1b6 aomin-gateway/src/main/java/cn/aomin/gateway/GatewayApplication.java
|
||||
8fa464b5a4dc0c246b5585bbaabd7ad4fea5271d524eb6e9d4b7b91faf72c011 aomin-gateway/src/main/java/cn/aomin/gateway/biz/DemoDataInitializer.java
|
||||
116a3b56bbb3b2b051ed239a5a4b82111c9c010b0a620efdbfe59a2528fcdc35 aomin-gateway/src/main/java/cn/aomin/gateway/biz/controller/AdminController.java
|
||||
a7f7f7f3129a23d09d40f5589bb65c3cb7d933a8ceba8a929c20501b05b45432 aomin-gateway/src/main/java/cn/aomin/gateway/biz/controller/AlarmController.java
|
||||
58fadae221f2763f2f51e267ddefdf8478661a15eb1583686205119c6bb9e434 aomin-gateway/src/main/java/cn/aomin/gateway/biz/controller/AuthController.java
|
||||
d27df1ed1695ffcc75b9c2e00fa1111088694ab4ddfc04af9d29aad8b9d2b0cb aomin-gateway/src/main/java/cn/aomin/gateway/biz/controller/DeviceController.java
|
||||
95b432a2c7a84b0f834c21b721e4131a7c71edb30f42cbb49dc014182e0201f3 aomin-gateway/src/main/java/cn/aomin/gateway/biz/controller/FamilyController.java
|
||||
cb04548d6386555e7df9070e19ebe0b007c2e825646c685ecfa80e78b6204d7c aomin-gateway/src/main/java/cn/aomin/gateway/biz/controller/NotifyController.java
|
||||
2c40eaf77abd7a73d19022c85faf8dc319ccff7948fbd8553b595c4653e3c324 aomin-gateway/src/main/java/cn/aomin/gateway/biz/controller/NotifyStreamController.java
|
||||
84829224a845f88986683c4c87dd37b9b4dae4b27405e558b78b5e8fe34bbdbf aomin-gateway/src/main/java/cn/aomin/gateway/biz/dao/BizDao.java
|
||||
f44f3cc9af74c6639241633aa30039e1baa22fad40487c05c5b3a8f172ba93bf aomin-gateway/src/main/java/cn/aomin/gateway/biz/dto/Dtos.java
|
||||
e936b9acf37ef2f4d61840665329fc503df72d646480cc8b5a6fd438d1cd574b aomin-gateway/src/main/java/cn/aomin/gateway/biz/engine/AlarmEngine.java
|
||||
2de186fdede0cd58e2d2f54d08616436a760557b9e9f53a13518d69cf7359954 aomin-gateway/src/main/java/cn/aomin/gateway/biz/engine/AlarmTrigger.java
|
||||
26e417d5d41adf35d50d0917f2e0a17ac6f7d688bc18e159c4080ea3ba63f872 aomin-gateway/src/main/java/cn/aomin/gateway/biz/service/AdminService.java
|
||||
30b0f7d7ce7a753e24b78e252743e9524d7e11f5ec846655e72b7964f702bc33 aomin-gateway/src/main/java/cn/aomin/gateway/biz/service/AlarmService.java
|
||||
d296c463aa6416cc7a4df87c0e821f3989b4cc9bd5b9e3d06e06f5e3fc549894 aomin-gateway/src/main/java/cn/aomin/gateway/biz/service/AuthService.java
|
||||
4bcf644491cd6d0b924fd2f42e07b6583ad9499d06a8beed7d28bc9c89fc768e aomin-gateway/src/main/java/cn/aomin/gateway/biz/service/BizDeviceService.java
|
||||
84fb58da94f2a9395e372746b850ccf6f03b8f3c71bd1be1dc2400898a62989b aomin-gateway/src/main/java/cn/aomin/gateway/biz/service/FamilyService.java
|
||||
f7f6bd7e73741b2bbc774e8e05f91e344f00ba893727209fdfb22cf908201448 aomin-gateway/src/main/java/cn/aomin/gateway/biz/service/NotifyService.java
|
||||
18ba93498aad6ffab1680e6cb780eb934dbd85f29625b2dd688beb362894d970 aomin-gateway/src/main/java/cn/aomin/gateway/biz/service/PiiService.java
|
||||
18191289464412e7b1408662421b83291f1a95378a868c5f9892489964652a5b aomin-gateway/src/main/java/cn/aomin/gateway/biz/service/SmsGateway.java
|
||||
5d4d8c17959734e7c969c681369850be76fee08f0cc50910d5344f2832f9c65e aomin-gateway/src/main/java/cn/aomin/gateway/biz/support/AdminScope.java
|
||||
00378b6a55265fb2adce15480faa80a20e85bfc7268efd074467427f607df560 aomin-gateway/src/main/java/cn/aomin/gateway/biz/support/AuditGuard.java
|
||||
88b74c167b8e7b3f594d82a501072eb2dc736e07ee52e9e5ba87e05f3a5d03e2 aomin-gateway/src/main/java/cn/aomin/gateway/biz/support/AuthContext.java
|
||||
e77c7b1cad576b5ee23ee05acb27f62af6a5d1cb80fbc955ce6c25db62a668cb aomin-gateway/src/main/java/cn/aomin/gateway/biz/support/BizAuthInterceptor.java
|
||||
fc12b2e26e2e39012479df1f4a22a2a4605ffe67d1793edbe01baef0aa2ac7b5 aomin-gateway/src/main/java/cn/aomin/gateway/biz/support/Crypto.java
|
||||
65994b8ccfba75de35fe6a35f1632cf7d3a3a5e3d9412018facd6c2ecd66126e aomin-gateway/src/main/java/cn/aomin/gateway/biz/support/PageResult.java
|
||||
e255bc089e83bd35fdce6d5d5521bd0f05c78c84919775459fb0a2f4ba26f88a aomin-gateway/src/main/java/cn/aomin/gateway/biz/support/PartitionMaintainer.java
|
||||
ecc3e56a10b9e02a828a9c54314b9724f107f11506a354dd842c783b2ab69be8 aomin-gateway/src/main/java/cn/aomin/gateway/biz/support/SseHub.java
|
||||
46e4c0987cfa35f2067ccb1951dbd9f04321dfb01d22f9392242521d8d35e1d7 aomin-gateway/src/main/java/cn/aomin/gateway/biz/support/SuppressGate.java
|
||||
b068a6413895de569ec33d9b967c5aca13818258abc5747adf16d5b25adcf31f aomin-gateway/src/main/java/cn/aomin/gateway/biz/support/TokenService.java
|
||||
5d3b73cb52245ea2fcfe301fe6d794350d7f0bebd32851627eef5c3a8507ea42 aomin-gateway/src/main/java/cn/aomin/gateway/common/ApiResponse.java
|
||||
6ef484310f27e7b951a490d7ae32786fd27e9d1fe14e38487b0451c62fbaf4a3 aomin-gateway/src/main/java/cn/aomin/gateway/common/BizException.java
|
||||
3aa57442b289ed4f7a27120fbb69153dc670a94efbcccf361860e7e02a857613 aomin-gateway/src/main/java/cn/aomin/gateway/common/GlobalExceptionHandler.java
|
||||
3fdb0e845a3b7d1b5bc025b5ef784b0b5635a514df522761973afc7c4a6226ed aomin-gateway/src/main/java/cn/aomin/gateway/config/GatewayProperties.java
|
||||
615c60e33233c424764d4a1e4082375ca2244a836aa04619d7706033280efa76 aomin-gateway/src/main/java/cn/aomin/gateway/config/RedisConfig.java
|
||||
879e6341ee07c5b933c5f3cda0dcf04196eea89189feacbdb048af5f723b2cfd aomin-gateway/src/main/java/cn/aomin/gateway/config/WebConfig.java
|
||||
745e893fc2606ff4c4b694a9b9ca1a4f51e14076878adfb19e2a5863eca8923e aomin-gateway/src/main/java/cn/aomin/gateway/controller/CommandController.java
|
||||
bf40814adbc2e5b708ac8bd521f4f4e28b58f18230b234ba539d0c72cc7584a9 aomin-gateway/src/main/java/cn/aomin/gateway/controller/HealthController.java
|
||||
087b82f0f4b49bfbfadfab31b9354c5355e28acdca2d1354afd887432a01bf90 aomin-gateway/src/main/java/cn/aomin/gateway/controller/IngestController.java
|
||||
bc872eef7be69cbab1b3b014efaf3c519aae4a37d9e071932b91f52673c2c94f aomin-gateway/src/main/java/cn/aomin/gateway/dao/CommandDao.java
|
||||
9f495136f8a13420ce0746783873d437a875fd15d422e55816080c30f6d32dd0 aomin-gateway/src/main/java/cn/aomin/gateway/dao/DeviceDao.java
|
||||
d9410152ba5940bb2b8c75d45466d94effdc0e3417ecfdbc4e913007a9778438 aomin-gateway/src/main/java/cn/aomin/gateway/dao/IotEventDao.java
|
||||
e8140a24b1d0f037bdae70dc6e49b4481b9ce8ce60b24f9e46df13232bd9efcf aomin-gateway/src/main/java/cn/aomin/gateway/dao/RawFrameDao.java
|
||||
61fdbf0f9bca0e7d86e9f0cd37bece1c90412de0107faf21df8beee0a3c9be80 aomin-gateway/src/main/java/cn/aomin/gateway/dao/RawRefGapDao.java
|
||||
d81e3276b697cde3c024bcc64f5c8420f91cdeadc290247750cd0e2be883877e aomin-gateway/src/main/java/cn/aomin/gateway/dao/TechCacheDao.java
|
||||
17e6215e0b9868369bfe28d623c9a18f619114df79590cddfc8b57590281e1cf aomin-gateway/src/main/java/cn/aomin/gateway/dao/UnregisteredDao.java
|
||||
c1b4fd06e88dd1085396455396e3d68bfabfbacbfc59a71bed993270c3824a5e aomin-gateway/src/main/java/cn/aomin/gateway/domain/Channel.java
|
||||
dc142f281fab1a31ae0c6040baef02e10ef2359d97809b95ceae5bd189ea45c2 aomin-gateway/src/main/java/cn/aomin/gateway/domain/DeviceRow.java
|
||||
bccd9cfba21c63449734a1d1585ab02c0dd36257e5b238d409ddee6a1a4491f5 aomin-gateway/src/main/java/cn/aomin/gateway/domain/TimeResult.java
|
||||
c3a4d760ab8596e58eeb8ca9ad08e55066c99b4867a24a003d8f63fab814b465 aomin-gateway/src/main/java/cn/aomin/gateway/domain/dto/CommandResultRequest.java
|
||||
17b9924b78175c83ef20c2f390b04106ffeb6bbf1770fddcb061b7cf62f01a72 aomin-gateway/src/main/java/cn/aomin/gateway/domain/dto/EventBatchRequest.java
|
||||
fad99f362b82adb7a4f06eace7583711295ffae4aa6d12e4b20965b0acc77f6b aomin-gateway/src/main/java/cn/aomin/gateway/domain/dto/IngestResponse.java
|
||||
07ff87965099f00c9ba0f8adcf1a4649e7359d71d380e6b7350687cd35d1a3ab aomin-gateway/src/main/java/cn/aomin/gateway/domain/dto/PendingCommandResponse.java
|
||||
ec23b4048a1a505e712c68f4e8bc941c3cb9d83168db18487930f8fdd457c4fd aomin-gateway/src/main/java/cn/aomin/gateway/domain/dto/RawFrameBatchRequest.java
|
||||
954eb9c474eba1a75fa10df8310616a6892d80ff2f9ed5efbbc70890f7a9e391 aomin-gateway/src/main/java/cn/aomin/gateway/domain/dto/StatusBatchRequest.java
|
||||
ab1222707fdc4e8f5ed059fae8135cb676af0053987a29bf992eb915d1c7be99 aomin-gateway/src/main/java/cn/aomin/gateway/interceptor/AuthInterceptor.java
|
||||
b99a9bb97500b5b2e1096a3049375cd2348b8b478f1700878968410946c1fc2b aomin-gateway/src/main/java/cn/aomin/gateway/interceptor/InternalNetworkGuard.java
|
||||
368726ecbd86aec46a0c145ab47eb79eedddad3e7e3e16c35e2eade681aa67b7 aomin-gateway/src/main/java/cn/aomin/gateway/security/CachedBodyFilter.java
|
||||
6efcd0422225e4d2835225847ded8c4382efa638307d866b8252e11882f71f3f aomin-gateway/src/main/java/cn/aomin/gateway/security/IdempotencyStore.java
|
||||
474c3aea6bee182ed96fbac6eec478a1d3bc025e2923736a07bf45b59d0ce61b aomin-gateway/src/main/java/cn/aomin/gateway/security/IdempotentExecutor.java
|
||||
8452ee990a69d223ae4d16d5b1dea152823d10fb2b59169190965ef8e9c9a33f aomin-gateway/src/main/java/cn/aomin/gateway/security/NonceStore.java
|
||||
8cc16695275e6a69615b50c4a8d88a3e78302d528c8f4f795da1c276099c95de aomin-gateway/src/main/java/cn/aomin/gateway/security/RateLimiter.java
|
||||
96e0c685a04299f854b7586383eee28c31007def56f692f426bedb258ab4554b aomin-gateway/src/main/java/cn/aomin/gateway/security/SignatureVerifier.java
|
||||
c38d62b372c8aac7f4f9bb27d8c3d9652539bd441d68f35b4b2c718dec8b9a87 aomin-gateway/src/main/java/cn/aomin/gateway/service/CommandService.java
|
||||
bfbdec7c215746a09bebfb8b2594d025b1db4c931bbff11c90a2b6c2689d16b0 aomin-gateway/src/main/java/cn/aomin/gateway/service/IngestService.java
|
||||
66d22c25a1b2871c5802b686a2c47836264b15d3cde89d723b037865ca2ff380 aomin-gateway/src/main/java/cn/aomin/gateway/service/RawFrameService.java
|
||||
2f9abbae9b5c1c227b2b7816845e2145f9169ac2098f64e0017076c55e56beb0 aomin-gateway/src/main/java/cn/aomin/gateway/service/StatusService.java
|
||||
77387e73bb73e7c687da953a83851d9654c204171aa874254a72fe521f6178e7 aomin-gateway/src/main/java/cn/aomin/gateway/support/EventTimeResolver.java
|
||||
e77267248d3aa7ecc9eab37ca039902c82e9f3879936ad742035c2993b8d25fd aomin-gateway/src/main/java/cn/aomin/gateway/support/EventValidator.java
|
||||
f4172bca391f5b4ebb90bf74a11ae2c998ef763c2b2908cd9c8b13bc56f86150 aomin-gateway/src/main/java/cn/aomin/gateway/support/LinkTypeResolver.java
|
||||
3912006f4c6432965daf2f590d229509363a1feaff9d7fb60df6f93e5d6c16c9 aomin-gateway/src/main/resources/application.yml
|
||||
07e5263e3d755535a5fadaa18b8529d6244af975daa06faef9b3e908bcf0c7cc aomin-gateway/src/main/resources/db/migration/V1.0.0__baseline_schema.sql
|
||||
8be5a9816f1f661d0a54c2a23c56079b76df88f47bd153609a94c659e42e7299 aomin-gateway/src/main/resources/db/migration/V1.0.18__raw_link_columns.sql
|
||||
45e64f88796d46267b8f4f67f76d9ea5ec3ad34fbbe62736c4768216cbaf23a2 aomin-gateway/src/main/resources/db/migration/V1.0.19__household_geo.sql
|
||||
cde7f6df804cdc1a827b0a109815c0af3a52d7efa4f35a170f262d8ce429418d aomin-gateway/src/main/resources/db/migration/V1.0.20__notify_read_at.sql
|
||||
7751f42076e39874a85f147cf1ce5c45653161207cb06e6042d60f7888d90710 aomin-gateway/src/main/resources/db/migration/V1.0.21__alarm_chain_seq.sql
|
||||
3306548d3c02f6750cfb93c535e5c9e98062710ed6d4d099f69e0fc7a7b8edc1 aomin-gateway/src/main/resources/db/migration/V1.0.22__alarm_source_event.sql
|
||||
9c941b1675d5a82daef81d7f297d03b206a028deb9923b78cd92f473a9ca8272 aomin-gateway/src/main/resources/db/migration/V1.0.23__command_seven_states.sql
|
||||
ec0b7e0f23f74f52bd373fc0fb7d84bacdda9be62c19e9b6163bf669da442af2 aomin-gateway/src/main/resources/db/migration/V1.0.24__region_scope.sql
|
||||
e480a143b8a079971c285d63bf51252eecc2034054459f83e2104c877fa51d40 aomin-gateway/src/main/resources/db/migration/V1.0.25__raw_ref_64_and_gap.sql
|
||||
61e8c5f2167de4588e8aa337c9d45dfa12015680d6b12d1d456b3f159770c29e aomin-gateway/src/main/resources/db/migration/V1.0.26__alarm_retry_deadletter.sql
|
||||
778141cf45e9b3f62afc9bdbb3f7079794daedfba9f0a20caf84fe90eb3503dd aomin-gateway/src/main/resources/db/migration/V1.0.27__receive_time_local_and_audit_fail.sql
|
||||
2d6e90a3e6a2db9771b7820df4dfc7e58c211627ac02271612e2511764e83286 aomin-gateway/src/main/resources/db/migration/V1.0.28__command_claim_node.sql
|
||||
@@ -0,0 +1,89 @@
|
||||
# 原始交付包指纹
|
||||
|
||||
本文件记录周工交付的 `SEC-Z-01 清理后` 源码包的指纹,用途只有一个:**证明仓库里这份代码与交付确认过的那份是同一份**。
|
||||
|
||||
## 一、两个 SHA256SUMS 的作用范围(重要)
|
||||
|
||||
`docs/reference/` 下的两个清单是交付当时生成的,路径以**原交付包根**为基准。
|
||||
|
||||
| 清单 | 覆盖 | 现在还能直接校验吗 |
|
||||
|---|---|---|
|
||||
| `SHA256SUMS_原始交付包.txt` | 原包全部 108 个条目 | **不能**。仓库目录已重排(`02_前端与设备端/` → `demo/` 等),路径对不上 |
|
||||
| `SHA256SUMS_前端与设备端.txt` | 原包内演示前端 8 个文件 | **不能**,同上 |
|
||||
|
||||
保留它们不是为了"跑一下 `sha256sum -c`",而是为了在需要追溯时能回答:**交付当天每个文件的哈希是多少**。路径变了,文件内容没变——逐文件比对哈希即可证明。
|
||||
|
||||
## 二、版本标识(与 `handover/03` 第五节一致)
|
||||
|
||||
| 标识 | 值 |
|
||||
|---|---|
|
||||
| 模型版本 | V1.9(已冻结;本次仅 SEC-Z-01 最小安全清理,未升 V1.10) |
|
||||
| 内部契约 | J-00 1.8.1 |
|
||||
| 迁移序列 | Flyway 1.0.28,12 条 |
|
||||
| 源码树摘要 | `5E9F894B0D1071969A968F2A9B1451279ADF39D423148186886BFD064398F286` |
|
||||
| 可执行 jar | `1F38F527605F09AA45E9E54528AFB11230469E1B197FA001C06E8725FD102192`(43,517,256 字节) |
|
||||
| 证据批次 | `R20261113-112443`,11 组 / 155 条 / 失败 0 |
|
||||
|
||||
**源码树摘要**的描述(`handover/03` 第一节)是:把 `src` 下每个文件的「相对路径 + 该文件 SHA-256」按路径排序后拼接,再整体算一次 SHA-256。它等效于"这一棵树"的指纹,**不是** Git commit 哈希。
|
||||
|
||||
但这段描述**不足以复现该值**——分隔符、哈希大小写、路径是否带前缀都没写。本仓库按 60 余种组合(分隔符 `""`/`\n`/`\r\n`/空格/`|`/`:`/`\t`,大小写两种,路径前缀 `""`/`src/`/`01_后端源码/src/`,拼接顺序两种,末尾换行两种)逐一复算,**均未得到 `5E9F894B…`**。
|
||||
|
||||
结论:这个值只能作为"交付方声称的标识"引用,不能作为可校验凭据。可校验的替代物是 `SHA256SUMS_源码树.txt`(84 行,`sha256sum -c` 直接可用),见第四节。
|
||||
|
||||
## 三、12 条迁移脚本指纹
|
||||
|
||||
原包的 `03_数据库与Flyway迁移/` 与工程内 `aomin-gateway/src/main/resources/db/migration/` 是同一套文件的两次出现。仓库只保留工程内一套,交付时已核为**逐字节一致**。下表可直接用于复核。
|
||||
|
||||
| # | 迁移脚本 | 字节 | SHA-256 |
|
||||
|---|---|---|---|
|
||||
| 1 | `V1.0.0__baseline_schema.sql` | 101,859 | `07E5263E3D755535A5FADAA18B8529D6244AF975DAA06FAEF9B3E908BCF0C7CC` |
|
||||
| 2 | `V1.0.18__raw_link_columns.sql` | 5,134 | `8BE5A9816F1F661D0A54C2A23C56079B76DF88F47BD153609A94C659E42E7299` |
|
||||
| 3 | `V1.0.19__household_geo.sql` | 1,211 | `45E64F88796D46267B8F4F67F76D9EA5EC3AD34FBBE62736C4768216CBAF23A2` |
|
||||
| 4 | `V1.0.20__notify_read_at.sql` | 1,140 | `CDE7F6DF804CDC1A827B0A109815C0AF3A52D7EFA4F35A170F262D8CE429418D` |
|
||||
| 5 | `V1.0.21__alarm_chain_seq.sql` | 1,803 | `7751F42076E39874A85F147CF1CE5C45653161207CB06E6042D60F7888D90710` |
|
||||
| 6 | `V1.0.22__alarm_source_event.sql` | 656 | `3306548D3C02F6750CFB93C535E5C9E98062710ED6D4D099F69E0FC7A7B8EDC1` |
|
||||
| 7 | `V1.0.23__command_seven_states.sql` | 2,678 | `9C941B1675D5A82DAEF81D7F297D03B206A028DEB9923B78CD92F473A9CA8272` |
|
||||
| 8 | `V1.0.24__region_scope.sql` | 2,099 | `EC0B7E0F23F74F52BD373FC0FB7D84BACDDA9BE62C19E9B6163BF669DA442AF2` |
|
||||
| 9 | `V1.0.25__raw_ref_64_and_gap.sql` | 3,951 | `E480A143B8A079971C285D63BF51252EECC2034054459F83E2104C877FA51D40` |
|
||||
| 10 | `V1.0.26__alarm_retry_deadletter.sql` | 3,793 | `61E8C5F2167DE4588E8AA337C9D45DFA12015680D6B12D1D456B3F159770C29E` |
|
||||
| 11 | `V1.0.27__receive_time_local_and_audit_fail.sql` | 2,452 | `778141CF45E9B3F62AFC9BDBB3F7079794DAEDFBA9F0A20CAF84FE90EB3503DD` |
|
||||
| 12 | `V1.0.28__command_claim_node.sql` | 1,989 | `2D6E90A3E6A2DB9771B7820DF4DFC7E58C211627AC02271612E2511764E83286` |
|
||||
|
||||
**这 12 条的哈希只用于确认"与交付时相同"。** 迁移脚本一旦被修改,即使只改注释,Flyway 也会报校验和不符;那时要做的是 `flyway repair` 加会签记录,不是回头改这张表。
|
||||
|
||||
## 四、怎么复核
|
||||
|
||||
### 单条脚本
|
||||
|
||||
```bash
|
||||
cd aomin-gateway/src/main/resources/db/migration
|
||||
sha256sum V1.0.28__command_claim_node.sql
|
||||
# 与上表第 12 行比对,应完全相同
|
||||
```
|
||||
|
||||
### 全部 12 条
|
||||
|
||||
```bash
|
||||
cd aomin-gateway/src/main/resources/db/migration
|
||||
sha256sum V1.0.*.sql | sort -k2
|
||||
```
|
||||
|
||||
### 源码树(84 个文件)
|
||||
|
||||
```bash
|
||||
# 在仓库根执行
|
||||
sha256sum -c docs/reference/SHA256SUMS_源码树.txt
|
||||
# 84 行全部 "OK" 即为一致
|
||||
```
|
||||
|
||||
`SHA256SUMS_源码树.txt` 覆盖 `aomin-gateway/src` 下全部 84 个文件,格式是标准 `sha256sum` 清单(哈希 + 相对仓库根的路径),生成于本次导入、自校验 84/84 通过。
|
||||
|
||||
这就是"逐字节一致"的可校验形式:交付包的 `01_后端源码/src` 与本仓库 `aomin-gateway/src` 只差一层目录名,逐个文件比对即可。行尾差异(CRLF/LF)会直接改变哈希,所以比对不上时先查行尾——`.gitattributes` 已设为 `* -text`,不会自动转换。
|
||||
|
||||
## 五、这张表什么时候需要更新
|
||||
|
||||
| 情况 | 处理 |
|
||||
|---|---|
|
||||
| 新增迁移脚本 `V1.0.29` | 追加一行;不修改已有 12 行 |
|
||||
| 契约版本升级(J-00 1.8.1 → 更高) | 更新第二节的契约版本与 `03` 的对应项 |
|
||||
| 代码发生实质变更 | 源码树摘要与 jar 哈希随之失效,**应记入 `CHANGELOG.md` 而不是改这张表**——这张表描述的是交付那一刻 |
|
||||
Reference in new issue
Block a user