chore: 同步本地 v9 整改与运营能力

This commit is contained in:
weijuesen
2026-08-17 21:43:26 +08:00
parent 9a426039b7
commit d205d4845b
58 changed files with 4042 additions and 115 deletions
+10
View File
@@ -61,6 +61,16 @@
2. 核对巡检、检测、会诊、溯源、图片/光谱/录像引用。
3. 记录 RPO/RTO 和失败项。
## E2E-11 跨组织对象访问返回 403
1. 创建组织 A/B,并将不同蚕房分别归属到 A/B。
2. 创建仅属于组织 A 的用户和仅属于组织 B 的用户。
3. 使用 B 用户访问 A 的蚕房、设备、遥测、控制、巡检、检测、会诊、溯源、录像等对象。
4. 期望详情/写操作返回 403,列表不返回 A 组织数据,WebSocket 订阅被拒绝。
5. 记录接口清单和证据。
当前状态:本地 Go/WS 单测已覆盖对象授权,待 v9 部署后执行真实账号联调。
## 2026-08-14 开发服务器执行结果
环境:`100.83.103.1`Go schema v8Web :5174AI :8000mock)。
+3
View File
@@ -6,6 +6,7 @@
- [ ] 执行 `powershell -ExecutionPolicy Bypass -File scripts/verify.ps1`exit 0。
- [ ] 执行 `git diff --check`exit 0。
- [ ] 涉及 schema 时完成 `pg_dump` 备份并记录恢复命令。
- [ ] v9 发布前确认 `000009_object_authority_and_business_capabilities.up.sql``.down.sql` 路径和回滚顺序。
- [ ] 检查磁盘、端口、服务进程和依赖健康。
- [ ] 核对需求追踪矩阵:本次涉及的需求 ID 有实现、测试和限制说明。
@@ -16,12 +17,14 @@
- [ ] 执行数据库迁移。
- [ ] 重启服务。
- [ ] 健康检查和核心接口冒烟。
- [ ] 登录管理员并冒烟 `/organizations``/organizations/:id/members`、Web `/organizations` 页面。
## 发布后
- [ ] 记录部署 commit、迁移版本、备份路径、冒烟结果。
- [ ] 更新 `变更记录.md``开发交接记录.md`
- [ ] 执行核心端到端用例中受影响的 E2E。
- [ ] 对象授权改动时执行 E2E-11 跨组织越权用例。
- [ ] 如失败,按回滚预案恢复并记录原因。
## 回滚
+9 -9
View File
@@ -14,8 +14,8 @@
| 需求 ID | 实现 | 自动测试 | 手工用例 | 环境 | 证据 | 状态 | 限制 | 负责人 |
|---|---|---|---|---|---|---|---|---|
| IAM-001 | `handler/auth.go``middleware/token_blacklist.go` | `middleware/state_test.go` | 登录/刷新/登出/跨实例吊销 | 开发/生产 | `go test ./...` | 部分可用 | Redis 不可用时保守失败 | 后端 |
| IAM-002 | `middleware/permission.go``permission_seed.go` | 无专项测试 | 角色访问矩阵 | 开发 | 路由权限检查 | 部分可用 | 缺少对象级 ACL | 后端 |
| IAM-003 | 未完成 | 无 | 无 | | 无 | 未完成 | 需组织/区域/房间 ACL | 后端 |
| IAM-002 | `middleware/permission.go``permission_seed.go` | 无专项测试 | 角色访问矩阵 | 开发 | 路由权限检查 | 部分可用 | 对象级 ACL 已由 IAM-003 补齐 | 后端 |
| IAM-003 | `access.go``organization.go``ws/authorizer.go``web/src/pages/Organizations.tsx``organizations`/`organization_members` | `access_test.go``ws/authorizer_test.go` | 跨组织访问 403 | 本地 | `go test ./...``npm run build` | 部分可用 | 房间/设备/传感器/阈值/告警/遥测/控制/录像/WS/通知/案例草稿已接对象授权,Web 组织管理已补;待开发服务器越权联调 | 后端 + Web |
| IAM-004 | 延后 Task 3 | 无 | 无 | 无 | 决策记录 | 延后 | 默认凭据和强制改密待最后阶段 | 后端+运维 |
| AI-INS-002 | `service/risk.go``ai-service` | `risk_test.go`、AI pytest | healthy/sick 图片 | 本地 | verify.ps1 | 部分可用 | 真实模型未验收 | AI+后端 |
| AI-INS-003 | `inspection.go``is_mock` | `inspection_test.go` | Mock 标识与统计排除 | 本地 | verify.ps1 | 部分可用 | 历史 mock 需人工审阅 | 后端 |
@@ -51,16 +51,16 @@
|---|---|---|---|---|---|---|---|---|
| FARM-001 | `tray_batch.go` | `knowledge_seed_test.go` 等 | 蚕房/批次 CRUD | 本地 | go test | 已实现 | 无 | 后端 |
| FARM-002 | `identity_links.go` | `biosecurity_test.go` | 二维码签发/解析 | 本地 | go test | 部分可用 | 未打印扫码 | 后端+小程序 |
| FARM-003 | `rearing_records` | 无专项测试 | 饲养记录 | 本地 | go test | 部分可用 | 死亡/淘汰字段 | 后端 |
| FARM-003 | `rearing_records` | 无专项测试 | 饲养记录 | 本地 | go test | 部分可用 | 死亡/淘汰字段已补,缺少现场联调 | 后端 |
| FARM-004 | `disinfection_records` | `biosecurity_test.go` | 消毒计划/执行 | 本地 | verify.ps1 | 部分可用 | 未现场联调 | 后端+小程序 |
| FARM-005 | `seed_sources` | `biosecurity_test.go` | 种源链 | 本地 | go test | 部分可用 | 供应商凭证待接入 | 后端 |
| FARM-006 | 未完成 | 无 | 无 | | 无 | 未完成 | 产量/损失/成本 | 后端 |
| FARM-006 | `production_loss_records``farm.go``web/src/pages/BusinessExtensions.tsx` | `farm_stats_test.go` | 产量损失 CRUD/统计 | 本地 | `go test ./...``npm run build` | 部分可用 | 记录、统计与 Web 编辑/删除已实现;待现场联调 | 后端 + Web |
| ENV-001 | `telemetry.go``mqtt.go` | 无专项测试 | 遥测查询 | 开发 | 构建 | 已实现 | 数据质量标识不足 | 后端 |
| ENV-002 | `threshold.go``alarm.go` | 无专项测试 | 阈值告警 | 开发 | 构建 | 已实现 | 无对象级授权 | 后端 |
| ENV-002 | `threshold.go``alarm.go` | 无专项测试 | 阈值告警 | 开发 | 构建 | 已实现 | 阈值/告警已按组织房间过滤 | 后端 |
| ENV-003 | `rule_engine.go` | `rule_engine_test.go` | 过期数据 | 本地 | go test | 部分可用 | 未接入生产遥测 | 后端 |
| ENV-004 | `rule_engine.go``weather_risk.go` | `rule_engine_test.go` | 连续时窗 | 本地 | go test | 部分可用 | 密度/通风等输入待接入 | 后端 |
| ENV-005 | `rule_engine.go` | `rule_engine_test.go` | 规则解释 | 本地 | go test | 部分可用 | 结果持久化未全链路 | 后端 |
| ENV-006 | 未完成 | 无 | 无 | | 无 | 未完成 | 设备校准/维护 | 后端 |
| ENV-006 | `device_maintenance_records``device_maintenance.go` | `business_capabilities_test.go` | 校准/故障/维护/固件 CRUD | 本地 | `go test ./...` | 部分可用 | 未接设备自动回传与现场联调 | 后端 |
| ENV-007 | 未完成 | 无 | 无 | 无 | 无 | 未完成 | 安全控制建议 | 后端 |
| EXP-001 | `consultation.go` | `consultation_test.go` | 病例快照 | 本地 | go test | 已实现 | 环境/天气摘要待增强 | 后端 |
| EXP-002 | `consultation.go` | `consultation_test.go` | 会诊状态机 | 本地 | go test | 已实现 | 无 | 后端 |
@@ -69,15 +69,15 @@
| EXP-005 | `health_profile.go` effect | `health_profile_test.go` | 效果报告 | 本地 | go test | 部分可用 | 损失/成本缺失 | 后端 |
| KB-001 | `knowledge.go` | `knowledge_governance_test.go` | 审核发布 | 本地 | go test | 部分可用 | 审核权限基于角色 | 后端+Web |
| KB-002 | `knowledge.go` source 字段 | 无专项测试 | 来源展示 | 本地 | 构建 | 部分可用 | 专家签名待接入 | 后端 |
| KB-003 | 未完成 | 无 | 无 | | 无 | 未完成 | 案例沉淀 | 后端 |
| KB-003 | `case_studies``case_study.go``web/src/pages/BusinessExtensions.tsx` | `business_capabilities_test.go` | 脱敏案例创建/审核/发布 | 本地 | `go test ./...``npm run build` | 部分可用 | 已接入 Web 案例库;待目标环境验收 | 后端+Web |
| TRACE-001 | `disease_events` | `disease_event_test.go` | 发病事件 | 本地 | go test | 部分可用 | 未端到端 | 后端 |
| TRACE-002 | `trace.go` auto | 无专项测试 | 自动溯源 | 本地 | go test | 部分可用 | 空间/样本链不足 | 后端 |
| TRACE-003 | `trace.go` checklist | 无专项测试 | 二级排查 | 本地 | go test | 部分可用 | 无版本化清单 | 后端 |
| TRACE-004 | `trace.go` lab note | 无专项测试 | 三级溯源 | 本地 | go test | 部分可用 | 结构化实验室数据未做 | 后端 |
| TRACE-004 | `laboratory_results``laboratory.go``web/src/pages/BusinessExtensions.tsx` | `business_capabilities_test.go` | 实验室结果/分型结构化关联 | 本地 | `go test ./...``npm run build` | 部分可用 | Web 录入已接;设备导入待做 | 后端 + Web |
| TRACE-005 | `trace.go` | `trace_test.go` | 来源结论 | 本地 | go test | 部分可用 | 专家确认流程未做 | 后端 |
| TRACE-006 | `region_stat.go` | `region_stat_test.go` | 区域统计 | 本地 | go test | 部分可用 | 小样本脱敏未做 | 后端 |
| TRACE-007 | `seed_sources` + 复发字段 | `biosecurity_test.go` | 复发关联 | 本地 | go test | 部分可用 | 人工确认未做 | 后端 |
| VIDEO-001 | `video_auth.go` | `video_auth_test.go` | 播放授权 | 本地 | go test | 部分可用 | 对象级授权待后续 | 后端 |
| VIDEO-001 | `video_auth.go``access.go` | `video_auth_test.go``access_test.go` | 播放授权 | 本地 | go test | 部分可用 | 摄像头/录像已按组织房间过滤 | 后端 |
| VIDEO-002 | DTO 脱敏 | `video_dto.go` | 密钥不返回 | 本地 | go test | 部分可用 | 历史配置审计 | 后端 |
| VIDEO-003 | 未完成 | 无 | 无 | 无 | 无 | 未完成 | 录制状态持久化 | 后端 |
| VIDEO-004 | `stream_tasks.py` | AI pytest | 受限拉流 | 本地 | pytest | 部分可用 | 摄像头真实视角待接入 | AI |