Files
SecMPS/doc/设计文档/SecMPS统一问题清单20260603.md

3.6 KiB
Raw Blame History

SecMPS 统一问题清单 2026-06-03

版本: 1.0 日期: 2026-06-03 范围: gateway / VolPro (api_sqlsugar) / web.vite / warehouse / owl_zlmediakit 来源: 项目深度审计 + 规则引擎方案审查


P0 — 阻塞性(影响功能完整性,必须修复)

编号 类别 问题 影响 方案
P0-1 规则引擎 RealtimePollJob 空壳 — IoT 实时值从未持久化,规则引擎无历史数据源 规则无法追溯历史趋势 在此 Job 实现轮询→写入 iot_devicedata或合并到 RuleEngineJob
P0-2 网关 A1 自注册未调用 — GatewayClientFactory.RegisterAsync 已定义但 Program.cs 从未执行 网关启动后不向 Vol.Pro 注册 InitializeAllAsync() 后遍历适配器调 A1
P0-3 安全 B 组路由零认证 — 14+ 条路由无任何认证 内网未授权客户端可操控设备、查视频流 生产环境绑定 127.0.0.1,或加 X-Gateway-Key 中间件

P1 — 重要(影响性能、安全、可靠性)

编号 类别 问题 影响 方案
P1-1 性能 逐设备 B4 调用 — 规则引擎按设备逐个调 B4 规则引擎 90% 时间耗在网络往返 新增 POST /realtime/{adapter}/batch 批量接口
P1-2 性能 级联离线标记逐条 UPDATE — HeartbeatMonitorJob 对每台设备单独更新 设备多时慢且无事务 一条 SQL: UPDATE base_device SET IsOnline='离线' WHERE GatewayNodeId=@id
P1-3 安全 Token/密码明文存储 — appsettings.json 明文且被复制到 bin/ 源码泄露 = 凭据泄露 环境变量覆盖 + .gitignore bin
P1-4 可维护 前端硬编码网关地址 — const GW = 'http://localhost:5100' 部署时需逐文件修改 统一用 window.apiConfig.gatewayUrl
P1-5 规则引擎 DeviceId→(AdapterCode, SourceId) 解析缺失 规则引擎无法直接调网关 B4 批量查 base_device 建映射表
P1-6 规则引擎 ValueId 语义模糊 — 字典绑定但无对应实体表 "变量"选的是什么不明确 新建 warehouse_variable

P2 — 改善(影响排错效率、维护成本)

编号 类别 问题 影响 方案
P2-1 代码质量 静默异常吞噬 — 适配器 catch { return false; } 离线不知道原因 catch(Exception ex) + STDERR 输出
P2-2 规则引擎 阈值抖动 — 温度反复跳变时规则频繁触发→恢复 空调反复开关,告警洪水 hysteresis 滞后窗
P2-3 规则引擎 冷却期粒度 — Cooldown 在规则级OR 组合不该整体冷却 冷却期过宽 冷却期下沉到条件表或基于"上次触发值"去重
P2-4 可维护 warehouse 端 console.log 残留 — 30+ 处开发日志 生产环境噪声 vite.config.ts 移除非生产日志
P2-5 可维护 双端 gateway API 重复封装 维护两份 统一到 web.vite/src/api/gateway.js

P3 — 优化(影响开发体验、仓库整洁)

编号 类别 问题 影响 方案
P3-1 规则引擎 动作执行阻塞 — ExecuteActionsAsync 串行等待 B5 响应 一条规则卡住全部阻塞 Task.WhenAll + 5s 超时
P3-2 文档 bin 目录残留配置 仓库体积 + 凭据泄露 .gitignore**/bin/
P3-3 开发 网关无 Swagger 调试需手动 curl AddEndpointsApiExplorer + MapSwagger
P3-4 文档 设计文档与代码路由数不一致 架构文档过时 每次 Phase 同步更新

总计: 18 项 — P0: 3 / P1: 6 / P2: 5 / P3: 4