docs(design): close Sense second-review gaps
This commit is contained in:
+9
-3
@@ -125,7 +125,7 @@ erDiagram
|
||||
| --- | --- | --- |
|
||||
| **Tenant 租户** | 计费与数据隔离的最小单位 | 所有查询必须带 tenant_id,无例外 |
|
||||
| **Site 站点** | 一个物理场所(一户 / 一所学校 / 一个小区) | 升级链、时段策略挂在这一层 |
|
||||
| **Area 区域** | 站点内的逻辑分区(教学楼 / 单元 / 客厅) | 用于权限范围、报表口径与设备准入;`capture_policy` 表达是否仅允许非成像设备 |
|
||||
| **Area 区域** | 站点内的逻辑分区(教学楼 / 单元 / 客厅),由 Bell 统一管理 | 用于权限范围、报表口径与设备准入;`capture_policy` 表达是否仅允许非成像设备,Sense 只消费带版本的策略投影 |
|
||||
| **Device 设备** | **不叫 Camera**;`modality` 表达 video/radar/contact/button/wearable/other,`capabilities` 表达成像、媒体、遥测等具体能力 | 模态负责稳定分类,能力负责决定字段与操作,避免接入新设备时重做台账和页面 |
|
||||
| **Zone 画面区域** | 画在某路画面上的多边形或警戒线 | 与 Area 是两回事:Area 是物理概念,Zone 是像素坐标 |
|
||||
| **Rule 规则** | 「主体 × 条件 × 时空 × 动作」的可配置组合 | 三级覆盖:租户默认 → 站点 → 设备 |
|
||||
@@ -608,14 +608,18 @@ GPU 型号和数量不在需求阶段写死。M1 用 5 路打通,M3 以 16 路
|
||||
在参考项目基础上扩展多租户与规则/事件。**字段级设计见《03》,此处只给结构与关键约束。**
|
||||
|
||||
```sql
|
||||
-- ── 组织(Bell 为真相源;Sense 只读配额投影)────────
|
||||
-- ── 组织(Bell 为真相源;Sense 不直接写这些表)────────
|
||||
tenants(id, code, name, status, plan, created_at)
|
||||
sites(id, tenant_id, code, name, scene_pack, subnet CIDR, timezone, status,
|
||||
max_video_channels INT NOT NULL DEFAULT 16 CHECK (max_video_channels BETWEEN 1 AND 128))
|
||||
areas(id, site_id, name, parent_id,
|
||||
capture_policy) -- video_allowed | non_imaging_only
|
||||
|
||||
-- ── 设备(不叫 cameras,为异构传感器预留)────
|
||||
-- ── Sense 只读投影(来源版本与同步时间必须可追溯)────
|
||||
site_quota_projections(site_id, max_video_channels, source_version, synced_at)
|
||||
area_policy_projections(area_id, site_id, capture_policy, source_version, synced_at)
|
||||
|
||||
-- ── Sense 设备(不叫 cameras,为异构传感器预留)────
|
||||
devices(
|
||||
id, tenant_id, site_id, area_id,
|
||||
modality, -- video | radar | contact | button | wearable | other
|
||||
@@ -703,6 +707,8 @@ CREATE INDEX ON alerts(state) WHERE state NOT IN ('closed','suppressed');
|
||||
7. 人脸相关表独立 schema、独立加密、独立审计;`persons.valid_until` 必填,无"永久有效"选项
|
||||
8. `sites.max_video_channels` 默认 16、最大 128;配额在写入设备时校验,分片容量由运行时配置与压测决定
|
||||
9. `sites.max_video_channels` 由 Bell 持有,Sense 通过版本化内部 API 或只读投影校验设备新增/启用;不得跨 schema 直接写入
|
||||
10. Tenant/Site/Area/RBAC、配额与全局审计属于 Bell;Sense 仅使用稳定逻辑 ID 关联并保存带 `source_version` / `synced_at` 的执行投影
|
||||
11. 高风险设备写操作与本地审计 outbox 在 Sense 同一事务提交,再由幂等 relay 异步汇入 Bell;审计接口字段、签名和重放规则另立契约任务冻结
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -1067,7 +1067,7 @@ capacity:
|
||||
|
||||
`stream_bindings` 同时记录 `mtx_instance` 与 `inference_shard`。默认按 `site_id + device_id` 稳定分配;扩容时允许迁移,但同一设备任一时刻只能归属一个有效媒体分片和一个推理分片。
|
||||
|
||||
`sites.max_video_channels` 的唯一真相源在 Bell;Sense 在设备新增/启用写路径通过版本化内部 API 或只读投影执行配额校验,不跨 schema 直接写入。配额依赖暂时不可用时只拒绝新的容量变更,已有视频链路继续运行。
|
||||
`sites.max_video_channels`、Site/Area 层级和 `areas.capture_policy` 的唯一真相源在 Bell;Sense 在设备新增/启用写路径通过版本化内部 API 或带 `source_version` / `synced_at` 的只读投影执行校验,不跨 schema 直接写入。配额或 Area 策略依赖暂时不可用时只拒绝相关新变更,已有视频链路继续运行并产生运维告警。
|
||||
|
||||
> **不要单实例硬扛 128 路**:扩容必须通过增加分片与 Worker 完成。单分片故障只允许影响该分片,不能拖垮整个站点。GPU 型号与数量不在架构文档写死,M1 用 5 路打通,M3 建立 16 路基线,M4/M5 再验证 64/128 路。
|
||||
|
||||
@@ -1115,7 +1115,8 @@ OpenTelemetry → Jaeger,排查单帧处理延迟与端到端事件链路。
|
||||
|
||||
| 端 | 核心功能 |
|
||||
| --- | --- |
|
||||
| **管理系统(Web)** | 租户/站点/设备管理、批量开通、规则配置(含试运行)、Zone 画图、升级链配置、事件看板与筛选、事件详情(视频+观测回放)、处置与工单、误报标记、统计报表、审计查询、RBAC |
|
||||
| **Sense 接入工作台(Web)** | 当前租户/站点上下文、设备台账与批量开通、能力探测、Zone 画图、对账/分片/边缘隧道/补传/运维告警;不管理 Tenant/Site/Area/RBAC 或全局审计 |
|
||||
| **Bell 统一管理端(Web)** | Tenant/Site/Area/配额/`capture_policy`、RBAC、规则配置(含试运行)、升级链、事件看板与筛选、事件详情(视频+观测回放)、处置与工单、误报标记、统计报表、全局审计;设备操作日志从 Sense 汇入并可深链返回 |
|
||||
| **App(家属/值班员)** | 预警接收与 ack、事件详情与视频回看、一键呼叫、误报反馈、限时静默、设备状态、(家属)多老人切换 |
|
||||
| **大屏/值班台** | 实时事件流、地图/平面图点位、声光联动、当班交接 |
|
||||
| **Webhook/开放 API** | 对接客户既有平台、门禁、消防、工单系统 |
|
||||
@@ -1144,7 +1145,9 @@ OpenTelemetry → Jaeger,排查单帧处理延迟与端到端事件链路。
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| **Sense** | 感知系统 | L1 接入 | Go | 有(设备台账) | M1 |
|
||||
| **Brain** | 推理系统 | L2 流水线 + L3 算法 | Python / CUDA | **无状态** | M3 |
|
||||
| **Bell** | 管理系统 | L4 业务 + L0 基座 | Go + 前端 | 有(事件、告警) | M3 → M4 |
|
||||
| **Bell** | 管理系统 | L4 业务 + L0 基座 | Go + 前端 | 有(事件、告警、组织与策略真相) | M3 → M4 |
|
||||
|
||||
Sense 的高风险设备操作不能采用“先执行、再尽力记录审计”。实现时应在本地事务内同时写期望态与持久化 outbox,再由幂等 relay 异步汇入 Bell 全局审计。该跨系统接口的字段、签名、重放和留存必须另立 API/契约任务,不在 UI 原型任务中顺带冻结。
|
||||
|
||||
三者之间只有一条契约——**事件实例 JSON**(§2.6,规范本体见 `contracts/event-v0.1.schema.json`)。Sense 向 Brain 供流与信号,Brain 产出事件,Bell 消费事件。这条边界让推理侧换模型、换框架(Savant → Pipeless、YOLO → YOLOX)时,另两个系统一行不改。
|
||||
|
||||
@@ -1228,7 +1231,7 @@ redis 消息总线
|
||||
- [ ] 终止服务时的底库彻底删除义务与证明方式已约定
|
||||
|
||||
## 架构
|
||||
- [ ] `devices` 表而非 `cameras`,含 `modality + capabilities`;Area 持有 `capture_policy`
|
||||
- [ ] `devices` 表而非 `cameras`,含 `modality + capabilities`;Bell 持有 Area 与 `capture_policy`,Sense 只存带版本的准入投影
|
||||
- [ ] 设备身份用序列号
|
||||
- [ ] 触发入口独立成 handler
|
||||
- [ ] `sync_state` 每系统一行
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
- WireGuard 控制面隧道
|
||||
- mediamtx 鉴权回调(401 + 踢流是四种停用粒度之一)
|
||||
- 容量配额执行:设备新增/启用时读取 Bell 的站点配额,只拒绝超额变更;配额服务暂时不可用时不影响已有流
|
||||
- Area 准入执行:消费 Bell 的版本化 `capture_policy` 投影;策略不可用时只拒绝相关新写入,不静默中断已有设备
|
||||
- 流绑定与媒体分片调度:维护 `mtx_instance`,默认 16 路交付;扩到 128 路时按 `media_shard.max_streams` 横向分片
|
||||
- 边缘节点 agent:推流、本地环形缓冲、断网续传
|
||||
- **设备型触发源**:雷达、门磁、按钮、ONVIF 事件订阅
|
||||
@@ -54,8 +55,8 @@
|
||||
- 告警状态机:升级链、ack、抑制、静默(**≤4h,无永久选项**)
|
||||
- 投递:push / 短信 / 语音,**双供应商**
|
||||
- 误报反馈闭环:`outcome` 回写 Brain
|
||||
- 多租户 RBAC、`tenant_features`(人脸授权开关:未授权时能力在 API 与 UI 中**不可见**,不是禁用)
|
||||
- 审计日志
|
||||
- Tenant/Site/Area、`capture_policy`、多租户 RBAC、`tenant_features`(人脸授权开关:未授权时能力在 API 与 UI 中**不可见**,不是禁用)
|
||||
- 全局审计日志;接收 Sense 设备操作审计并保留来源上下文
|
||||
- 站点容量配额的唯一真相源:`site.max_video_channels` 默认 16、上限 128;提供版本化内部读取接口/投影给 Sense 执行
|
||||
- 管理后台前端 + 大屏:按 128 路设计分页/虚拟列表、筛选与批量操作,不一次性加载全部视频
|
||||
|
||||
@@ -149,9 +150,10 @@ Bell/
|
||||
| 5 | 一个 PostgreSQL 还是三个 | **一个实例,schema 分离**(`sense` / `bell`),Brain 无 schema。"DB 是唯一真相源"是对账器成立的前提,拆库即失效 |
|
||||
| 6 | 16 路与 128 路分别指什么 | **16 路是默认交付规格,128 路是本阶段单逻辑站点上限**,都不是“单进程/单服务器保证值”。媒体与推理必须横向分片;单机承载量由分辨率、码率、帧率、模型和硬件基准测试决定 |
|
||||
| 7 | 站点配额谁拥有、谁执行 | **Bell 拥有 `sites.max_video_channels`,Sense 在设备新增/启用写路径执行**。通过版本化内部 API 或只读投影同步,不允许 Sense 直接写 Bell schema;依赖暂时不可用时拒绝新变更,但已有视频链路继续运行 |
|
||||
| 8 | 设备模态与隐私准入怎么建模 | 台账使用 `modality + capabilities`,不以摄像头作为唯一根实体;**Area 拥有 `capture_policy`,Sense 按设备 `captures_image` 能力在新增/启用写路径执行**。策略不可用时拒绝新变更并告警,已有链路不静默停用;M1 固化模型,M6 再增加非视频适配器 |
|
||||
| 8 | 设备模态与隐私准入怎么建模 | 台账使用 `modality + capabilities`,不以摄像头作为唯一根实体;**Bell 拥有 Area 与 `capture_policy`,Sense 消费带版本投影并按设备 `captures_image` 能力在新增/启用写路径执行**。策略不可用时拒绝相关新变更并告警,已有链路不静默停用;M1 固化模型,M6 再增加非视频适配器 |
|
||||
| 9 | 接入操作审计怎么进入 Bell | Sense 在同一事务写设备期望态和持久化 outbox,再由幂等 relay 异步汇入 Bell 全局审计;不得先执行高风险操作再尽力入队。字段、签名、重放和留存由独立 API/契约任务冻结 |
|
||||
|
||||
第 2、3、6、7、8 条是本文档新定的,若实施中发现更合适的切法,改这里并同步《02》《03》。
|
||||
第 2、3、6、7、8、9 条是本文档新定的,若实施中发现更合适的切法,改这里并同步《02》《03》。
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
> 初始输入:Claude 评审草稿,2026-08-04
|
||||
> 复核:Codex 从产品、全栈架构与 UI/UX 角度对照《02》《03》《08-三系统职责划分》、US/IX 和当前原型核验
|
||||
> 状态:项目负责人已确认按本修订稿继续;最终行为已同步到 `docs/08-interaction-checklist.md`
|
||||
> 后续:第二轮缺口复核与最终 IA 见 `11-Sense原型-第二轮缺口.md`、`12-Sense原型-待办清单.md`;若与本文原型范围冲突,以第二轮修订为准
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -0,0 +1,139 @@
|
||||
# Sense 原型第二轮评审复核版
|
||||
|
||||
> 原始输入:Claude《Sense 原型第二轮评审》,2026-08-04
|
||||
> 复核基准:`docs/design/sense/index.html`,提交 `e18a1ea`
|
||||
> 复核视角:产品边界、全栈架构、M2 用户流程与 UI/UX
|
||||
> 状态:项目负责人已确认按本复核结论继续修改
|
||||
|
||||
---
|
||||
|
||||
## 1. 总结
|
||||
|
||||
Claude 指出的对账运维、设备能力来源、非视频适配器阶段、待激活、凭据恢复、写入降级和边缘隧道等缺口方向成立;但原稿不能直接作为执行清单,主要有三类问题:
|
||||
|
||||
1. **基准落后**:设备分页和推理收敛成功态已经实现,分片数据也不再是原稿引用的 `8 / 32`。
|
||||
2. **范围扩大**:T-004 当前关联 US-001、US-002、US-008 和部分 US-005,并未承诺一次画完完整 M2/M4 管理端。新增 P0 页面必须先同步 US/IX 与任务范围。
|
||||
3. **系统归属混淆**:`routes.md` 的 `/sites`、`/operations`、`/audit` 是统一管理 Web 的候选页面职责,不等于都应成为 Sense 一级导航。Bell 拥有租户/RBAC、审计、配额真相源和管理端;Sense 负责设备接入与运行态运维。
|
||||
|
||||
因此,本轮采纳“补核心流程、收敛导航、冻结归属”的方案,不采用“Sense 导航机械扩为 8 项”。
|
||||
|
||||
---
|
||||
|
||||
## 2. 对原评审事实的纠正
|
||||
|
||||
| 原判断 | 当前事实 | 处理 |
|
||||
| --- | --- | --- |
|
||||
| 设备列表分页未实现 | 已有 5 条/页、上一页/下一页、页数和总数 | 标记完成;批量选择未来新增时再定义跨页语义 |
|
||||
| “推理绑定 16/16”仍是紫色满格 | 已改为“推理配置收敛 16/16”绿色成功态 | 标记完成 |
|
||||
| 分片仍显示 `8 / 32` | 当前为 `16 / 32`,并显示“当前 1 / 最多 4” | 只补“32 是可配置建议值、最终由压测确定” |
|
||||
| T-004 `write_paths` 只有三个文件 | 已扩展到需求、架构、US/IX、评审稿和两个原型 | 更新清单基准 |
|
||||
| modality 筛选包含 ONVIF/MQTT | modality 是 video/radar;ONVIF/RTSP/MQTT 属于 protocol | 文档严格区分模态、设备种类、协议和能力 |
|
||||
|
||||
---
|
||||
|
||||
## 3. 最终产品信息架构
|
||||
|
||||
### 3.1 Sense Edge Console
|
||||
|
||||
Sense 保持最多五个一级入口,移动端底部导航不超过五项:
|
||||
|
||||
```text
|
||||
运行总览
|
||||
实时监控
|
||||
设备
|
||||
接入任务
|
||||
运维
|
||||
├─ 对账与孤儿资源
|
||||
├─ 媒体分片
|
||||
├─ 边缘节点与隧道
|
||||
├─ 运维告警
|
||||
└─ 系统状态
|
||||
```
|
||||
|
||||
原“系统状态”并入“运维”。总览的待收敛项、设备告警和分片状态均可下钻到运维的对应子页。Sense 顶栏显示当前租户、站点、用户和角色,并消费 Bell 下发的授权上下文,但不自建租户/RBAC 真相源。
|
||||
|
||||
### 3.2 Bell / 统一管理端
|
||||
|
||||
以下能力归 Bell/统一管理端,而不是在 Sense 重复建设一级页面:
|
||||
|
||||
- Tenant、Site、Area 管理和 RBAC。
|
||||
- Area 的 `capture_policy` 编辑与已有成像设备的显式处置流程。
|
||||
- 全局审计查询;Sense 设备操作记录只提供带设备筛选的深链。
|
||||
- `site.max_video_channels` 的配置与真相源。
|
||||
|
||||
Area 与策略由 Bell 持有,Sense 使用带版本的只读投影执行新增/启用准入;投影未知或过期时 fail closed,只阻止新的成像变更,不中断已有链路。
|
||||
|
||||
---
|
||||
|
||||
## 4. 采纳的真实缺口
|
||||
|
||||
### 4.1 对账与运维中心(P0)
|
||||
|
||||
- 未收敛项展示期望态/实际态具体差异、重试次数、退避间隔和下次重试时间。
|
||||
- 手动动作语义为“提高优先级并重新触发收敛”,不能绕过对账器直接修改实际资源。
|
||||
- 展示孤儿资源、占比、10% 安全闸及人工处置提示;不提供绕过安全闸的一键删除。
|
||||
- 展示媒体分片、边缘节点、控制隧道、数据面、补传队列和独立运维告警。
|
||||
- 明确“控制隧道断开但已有视频数据面仍正常”的组合态。
|
||||
|
||||
### 4.2 设备能力来源(P0)
|
||||
|
||||
`capabilities` 必须来自探测/适配器结果并保存来源、探测时间与版本,不能由前端名称猜测。详情展示“已探测能力”和“当前生效能力”;重新探测显示新增/消失差异,能力降级时列出受影响的触发、Profile 或空间配置。
|
||||
|
||||
US-007 的采购白名单当前仍是版本化测试文档,无产品 UI;运行设备可只读显示“白名单型号/未验证型号”,不把白名单管理升级成 M2 P0 页面。
|
||||
|
||||
### 4.3 非视频适配器阶段态(P0)
|
||||
|
||||
M1~M5 可登记 radar 等模态以验证信息架构和隐私准入,但实际态必须是 `adapter_not_ready`(用户文案“适配器未就绪 · M6”),不得显示在线/离线或模拟 MQTT 遥测连接,也不计入视频配额。
|
||||
|
||||
### 4.4 设备生命周期(P0)
|
||||
|
||||
- 待激活作为可筛选状态,支持重新探测、校时、配额/策略复核、激活和逐项失败原因。
|
||||
- 认证失败与离线分开;更新凭据只写不读、不回显旧值,更新后显示重试结果。
|
||||
- 批量凭据仅允许安全导入逐设备凭据,不提供把同一密码覆盖到多台设备的一键操作。
|
||||
- Profile 切换展示对当前观看、推理、区域校准与短暂中断的影响。
|
||||
|
||||
### 4.5 写入降级与权限(P0)
|
||||
|
||||
- 配额不可读:列表与已有视频可用,新增/启用被阻止。
|
||||
- Area 策略投影不可读/过期:只阻止新的成像变更,已有链路保持现状并告警。
|
||||
- 只读角色隐藏写操作;越权或资源不存在的深链使用统一安全拒绝态。
|
||||
- 原型角色切换器只用于枚举状态,不代表 Sense 拥有账号或权限数据。
|
||||
|
||||
### 4.6 措辞与可观察结果(P0)
|
||||
|
||||
“暂停推理”统一为:
|
||||
|
||||
> 解除推理侧对该路的订阅;有其他观看者时上游继续拉流,无其他 reader 时上游按需停止。
|
||||
|
||||
执行结果同时显示推理订阅、reader 数和上游拉流状态,避免实现成推理插件内部直接 `return` 而持续浪费带宽。
|
||||
|
||||
---
|
||||
|
||||
## 5. 降级或后置的建议
|
||||
|
||||
| 原建议 | 最终处理 |
|
||||
| --- | --- |
|
||||
| Sense 新增“站点与区域”一级导航 | 不采纳;Bell/统一管理端持有管理页,Sense 顶栏只做站点上下文切换 |
|
||||
| Sense 新增“审计”一级导航 | 不采纳;保留设备操作记录并深链 Bell 全局审计 |
|
||||
| 直接批量覆盖同一设备密码 | 不采纳;仅做逐设备写入或安全文件导入 |
|
||||
| M2 提供跨媒体分片迁移 | 后置 M4;本轮只展示分片详情与影响范围 |
|
||||
| M2 提供节点升级/重启 | 后置独立高风险运维任务;本轮只展示状态 |
|
||||
| 提前为推理绑定、pre-roll、设备型触发创建空页面 | 不采纳;能力模型与运维子导航已保留扩展,不创建无操作价值的占位页 |
|
||||
|
||||
---
|
||||
|
||||
## 6. 审计接口的独立架构任务
|
||||
|
||||
Bell 是全局审计真相源,但 T-004 不修改 `docs/api.md`。后续任务需要冻结 Sense → Bell 审计投递或等价投影契约,至少包含:
|
||||
|
||||
- Sense 在执行高风险写操作前,把操作意图与审计 outbox 在本地持久化;不能“先执行后尝试记录”。
|
||||
- Bell 不可达时,只要本地 outbox 已持久化,业务操作可继续;恢复后幂等补投。
|
||||
- 明确租户/站点范围、事件 ID、操作者、目标、请求结果、重试与保留策略。
|
||||
|
||||
此项属于 API/一致性设计,不用原型中的 toast 代替契约。
|
||||
|
||||
---
|
||||
|
||||
## 7. 本轮实施边界
|
||||
|
||||
T-004 重新生成 Sense 原型并补 Bell 管理端入口,同时更新正式 US/IX 和本复核稿。`docs/api.md`、生产代码、事件 v0.1 与真实认证实现不在本任务修改;人工确认前 T-004 继续保持 `DOING`。
|
||||
@@ -0,0 +1,189 @@
|
||||
# Sense 原型待办清单(第二轮复核后执行版)
|
||||
|
||||
> 来源:《09-Sense原型评审-IX草稿》《10-Sense原型-功能模块缺口》《11-Sense原型-第二轮缺口》
|
||||
> 基准:Sense 提交 `e18a1ea`
|
||||
> 适用任务:T-004
|
||||
> 原则:按产品边界执行,不把 Sense 一级导航扩成 8 项
|
||||
|
||||
---
|
||||
|
||||
## 1. 状态说明
|
||||
|
||||
- `本轮`:T-004 第三轮原型必须完成。
|
||||
- `后置`:已确认方向,但不在本轮画完整动作。
|
||||
- `独立任务`:写路径或契约不同,不在 T-004 顺带修改。
|
||||
- `完成`:当前原型已有,不重复实现。
|
||||
|
||||
---
|
||||
|
||||
## 2. 最终导航与系统归属
|
||||
|
||||
### Sense(五个一级入口)
|
||||
|
||||
```text
|
||||
运行总览 · 实时监控 · 设备 · 接入任务 · 运维
|
||||
```
|
||||
|
||||
“运维”内部使用二级 Tab:对账、分片、边缘节点、运维告警、系统状态。移动端底部导航保持五项。
|
||||
|
||||
### Bell / 统一管理端
|
||||
|
||||
- Tenant / Site / Area 与 `capture_policy` 管理。
|
||||
- RBAC 与当前用户授权上下文。
|
||||
- 全局审计查询和设备筛选深链。
|
||||
- 站点视频配额真相源。
|
||||
|
||||
Sense 只消费上述上下文和带版本投影,不复制真相源。
|
||||
|
||||
---
|
||||
|
||||
## 3. 本轮执行项
|
||||
|
||||
### S-01 运维中心与对账队列 · P0 · 本轮
|
||||
|
||||
- 总览“待收敛项”可下钻。
|
||||
- 展示期望态/实际态差异、重试次数、退避间隔、下次重试时间。
|
||||
- “重新触发收敛”只提高任务优先级,不直接绕过对账器修改资源。
|
||||
- 展示孤儿资源与 10% 安全闸;安全闸触发时禁止删除并说明人工恢复路径。
|
||||
- 分片、边缘节点、运维告警和系统状态作为运维二级页。
|
||||
|
||||
验收:能打开某个未收敛项并查看差异;能看到安全闸和下一次重试时间。
|
||||
|
||||
### S-02 角色与安全拒绝态 · P0 · 本轮
|
||||
|
||||
- 顶栏显示当前用户和角色,提供“站点管理员/只读”原型切换。
|
||||
- 只读模式隐藏新增、激活、停用、更新凭据、保存区域等写操作。
|
||||
- 越权深链显示统一拒绝态,不泄露资源是否存在。
|
||||
- 角色切换只是原型演示,授权真相源仍在 Bell。
|
||||
|
||||
### S-03 租户/站点上下文与 Area 归属 · P0 · 本轮
|
||||
|
||||
- Sense 顶栏显示当前租户并支持站点切换;切换后示例列表与计数同步更新。
|
||||
- Bell 增加站点/Area 管理入口,展示配额来源与 `capture_policy`。
|
||||
- 把已有视频设备的 Area 改为 `non_imaging_only` 时,要求先迁移设备、取消修改或进入显式处置流程,不静默停用。
|
||||
|
||||
### S-04 全局审计深链 · P1 · 本轮
|
||||
|
||||
- Sense 不新增一级审计页。
|
||||
- 设备详情“操作记录”增加“在 Bell 查看全部审计”,携带 tenant/site/device 筛选上下文。
|
||||
- Bell 审计页消费这些参数并显示来源为 Sense。
|
||||
|
||||
### S-05 capabilities 探测与差异 · P0 · 本轮
|
||||
|
||||
- 详情显示厂商、型号、固件、认证方式、Profile、校时与 ONVIF 事件订阅能力。
|
||||
- 区分已探测能力与当前生效能力,记录上次探测时间。
|
||||
- “重新探测”显示新增/消失能力及受影响配置,不自动覆盖。
|
||||
- 只读显示采购白名单结果;白名单维护继续使用 M0 文档,不新增管理页。
|
||||
|
||||
### S-06 适配器未就绪 · P0 · 本轮
|
||||
|
||||
- radar 可登记并进入台账,但实际态为“适配器未就绪 · M6”。
|
||||
- 不显示在线/离线、MQTT 实时遥测或测试连接成功。
|
||||
- 不计入视频配额,仍参与 `non_imaging_only` 准入判断。
|
||||
|
||||
### S-07 待激活闭环 · P0 · 本轮
|
||||
|
||||
- 状态筛选包含待激活,列表至少有一条示例。
|
||||
- 详情提供重新探测、校时、配额/区域策略复核和激活。
|
||||
- 批量激活展示逐项成功/失败及可重试原因。
|
||||
|
||||
### S-08 认证失败与凭据更新 · P0 · 本轮
|
||||
|
||||
- 认证失败作为独立实际态。
|
||||
- 凭据更新只写不读,不回显旧值;更新后自动重试并显示结果。
|
||||
- 批量场景仅演示安全文件逐设备导入,不提供同一密码批量覆盖。
|
||||
|
||||
### S-09 写入降级态 · P0 · 本轮
|
||||
|
||||
- 状态演示新增“配额不可读”和“区域策略不可读”。
|
||||
- 两态下实时监控和设备读取保持可用;新增/启用等相关写操作禁用并就地解释。
|
||||
- 已有设备不被伪装为停用或已收敛。
|
||||
|
||||
### S-10 边缘节点与隧道 · P1 · 本轮
|
||||
|
||||
- 展示节点版本、在线时长、承载数、控制隧道、视频数据面和补传队列。
|
||||
- 至少演示“隧道断开 / 视频数据面正常”和“恢复后补传”组合态。
|
||||
- 节点升级/重启只显示为后置能力,不提供可执行按钮。
|
||||
|
||||
### S-11 Profile 切换 · P1 · 本轮
|
||||
|
||||
- 展示主/子 Profile 和当前用途。
|
||||
- 切换前说明短暂中断、reader、推理和区域待校准影响。
|
||||
- 原型不执行真实媒体操作。
|
||||
|
||||
### S-12 分片详情 · P1 · 本轮(迁移后置)
|
||||
|
||||
- 展示承载设备、实际码率、重连历史与单分片故障影响范围。
|
||||
- 标注 32 为可配置建议容量,最终由压测确定。
|
||||
- 跨分片迁移动作后置 M4,本轮不提供按钮。
|
||||
|
||||
### S-13 批量任务与逐项结果 · P0 · 本轮
|
||||
|
||||
- 任务列表、预校验结果、逐行失败原因、单行/失败项重试、错误清单导出。
|
||||
- 明确部分成功语义:成功项已经生效,失败项可重试,不做整体回滚。
|
||||
|
||||
### S-14 运维告警 · P1 · 本轮
|
||||
|
||||
- 展示离线、认证失败、时间漂移、收敛失败、分片异常和隧道断开。
|
||||
- 明确运维告警不会进入 Bell 业务预警队列或通知家属。
|
||||
- 运维静默/通知配置后置,原型只显示入口归属。
|
||||
|
||||
### S-16 时间显示口径 · P1 · 本轮
|
||||
|
||||
- 默认显示服务器时间与时区。
|
||||
- 相对时间同时提供完整时间戳;设备时间只在漂移语义中出现。
|
||||
- 审计和对账示例使用同一口径。
|
||||
|
||||
### S-17 当前租户 · P1 · 本轮
|
||||
|
||||
- 顶栏显示当前租户;首期私有部署不提供租户切换器。
|
||||
- 原型文案说明列表已经按认证上下文的 tenant/site 过滤。
|
||||
|
||||
### S-18 暂停推理措辞与结果 · P0 · 本轮
|
||||
|
||||
- 文案改为“解除推理侧订阅;无其他 reader 时上游按需停止”。
|
||||
- 结果展示推理订阅、reader 数和上游拉流状态。
|
||||
|
||||
### S-19 分片容量标注 · P2 · 本轮
|
||||
|
||||
- `32` 标注为“当前配置/建议容量”,不是产品硬上限。
|
||||
|
||||
---
|
||||
|
||||
## 4. 已完成,不重复执行
|
||||
|
||||
| 编号 | 状态 | 证据 |
|
||||
| --- | --- | --- |
|
||||
| S-15 设备分页 | 完成 | 5 条/页、上一页/下一页、页数和总数已实现 |
|
||||
| S-20 推理收敛视觉 | 完成 | 已改为绿色“推理配置收敛 16/16” |
|
||||
| 第一轮 IX-014~IX-018 | 完成 | 模态/能力、三种停用、隐私准入、几何方向、草稿和深链均已落地 |
|
||||
|
||||
---
|
||||
|
||||
## 5. 后置与独立任务
|
||||
|
||||
| 编号 | 处理 |
|
||||
| --- | --- |
|
||||
| S-21 Sense → Bell 审计契约 | 独立任务修改 `docs/api.md`;采用本地持久化 transactional outbox + 幂等补投 |
|
||||
| S-22 推理绑定运维 | M3 在“运维”内新增二级能力,不预建空页面 |
|
||||
| S-23 pre-roll 运维 | M3 需求稳定后新增,不预建空页面 |
|
||||
| S-24 设备型触发配置 | M6 随非视频适配器实现,不预建空页面 |
|
||||
| 跨媒体分片迁移 | M4 容量/分片任务 |
|
||||
| 节点升级/重启 | 独立高风险运维任务,需要权限、回滚和维护窗口 |
|
||||
|
||||
---
|
||||
|
||||
## 6. 总验收
|
||||
|
||||
- [x] Sense 一级导航保持 5 项,移动端不出现第 6 个底部入口。
|
||||
- [x] 运维中心可查看未收敛差异、退避、孤儿与安全闸。
|
||||
- [x] 只读角色下所有写操作消失,越权深链显示安全拒绝态。
|
||||
- [x] radar 显示“适配器未就绪 · M6”,不显示在线或模拟遥测成功。
|
||||
- [x] 能力重新探测显示差异,能力降级不自动覆盖依赖配置。
|
||||
- [x] 待激活、认证失败、凭据更新和逐项激活结果可演示。
|
||||
- [x] 配额/策略不可读时只阻止相关写操作,已有流与读取可用。
|
||||
- [x] “暂停推理”展示订阅、reader 和上游拉流结果。
|
||||
- [x] Bell 可管理 Site/Area 策略并显式处理已有成像设备。
|
||||
- [x] Sense 设备审计深链到 Bell,并保留 tenant/site/device 筛选。
|
||||
- [x] 1440×900、375×812、812×375 无页面级横向溢出;主要移动控件不小于 44px。
|
||||
- [x] 运行时无异常,`git diff --check` 与 `./init.ps1` 通过。
|
||||
Reference in New Issue
Block a user