Kaynağa Gözat

docs(cockpit): 补视频监控领域词表与前端入口地址规则

- CONTEXT.md 增补视频监控设备、实时视频、历史录像、云台控制、监控面板与匿名视频会话的术语与边界。
- ADR 0001/0005 记录视频入口与资源释放的相关决策。
- AGENTS.md 前端验收入口统一为 http://localhost:8000(根路径自动跳转驾驶舱)。
ChenJZ 10 saat önce
ebeveyn
işleme
8b6d0691a6

+ 1 - 1
AGENTS.md

@@ -14,7 +14,7 @@
 
 ## 运行环境(所有会话共用)
 
-- **前端服务地址:`http://127.0.0.1:8000/#/cockpit`** —— 这是本驾驶舱前端唯一的开发/验收入口。所有会话在需要打开、引用或验收前端页面时,一律使用该地址,不要另起端口或另建服务。
+- **前端服务地址:`http://localhost:8000`** —— 根路径自动跳转到驾驶舱,这是唯一的开发/验收入口(原 `http://127.0.0.1:8000/#/cockpit` 仍兼容)。所有会话复用这一个服务;8000 被占用时先确认现有进程,不另起端口或另建服务。
 - **后端接口地址:`http://192.168.110.96:8301`** —— 只读接口基址 `http://192.168.110.96:8301/api/cockpit/v1/**`,免鉴权。需要真实联调或复验时用它。
 - 该地址只是**约定**,不构成启动授权:是否运行 dev server 仍按「验证命令」一节执行(未获用户明确要求不得启动)。
 - 若地址变更,改这一节即可,不要在其它文档里另写第二份。

+ 28 - 0
CONTEXT.md

@@ -20,6 +20,34 @@ _Avoid_: 监测设备、智能设备、把设备统称为设施
 部署在城市生命线场景中、用于采集设施运行或环境风险数据的带传感器智能设备;它与被监测的基础设施是不同业务对象。
 _Avoid_: 基础设施、设施、监测点(指设备本身时)
 
+**视频监控设备**:
+用于观察城市生命线现场的摄像机类业务设备,视频能力归属设备自身;它不是普通传感器的监测因子,也不因空间邻近就与其他设备建立视频关联。
+_Avoid_: 监控设备(未区分摄像机与传感器时)、把传感器关联摄像机当作摄像机自身
+
+**实时视频**:
+所选视频监控设备当前传送的现场画面;查看实时视频不表示系统正在保存录像,也不等同于数值采集记录。
+_Avoid_: 实时录像(仅指观看当前画面时)、最新数值指标
+
+**历史录像**:
+由摄像机或NVR已有录制形成、可按其真实录像时段查询和回放的现场视频;它不同于传感器采集记录和当前实时画面。
+_Avoid_: 采集记录、用当前画面冒充历史、把查询范围当作录像留存承诺
+
+**云台控制**:
+改变视频监控设备实际拍摄朝向或变倍的物理设备控制行为;它不同于一张图中虚拟相机的定位、归位和旋转,也不是只读查询。
+_Avoid_: 地图相机控制、只读指标查询
+
+**监控面板**:
+驾驶舱内用于查看所选视频监控设备的实时视频、历史录像并呈现云台操作的独立业务界面;同一设备从不同详情入口进入时仍使用同一套视频功能。
+_Avoid_: 管理端视频设备台账、把普通采集记录表当作监控面板
+
+**匿名视频会话**:
+无需业务账号登录建立、用于区分终端观看所选视频监控设备及释放其播放资源的会话;仍有归属与有效性约束,不表示公网开放或取消内部服务安全边界。
+_Avoid_: 业务账号登录态、把所有终端视作同一操作者、完全无访问约束的视频
+
+**匿名云台操作者**:
+通过有效匿名视频会话触发云台方向、变倍或停止操作的终端;会话标记用于区分操作来源,不是已核实的个人身份。
+_Avoid_: 独占控制者、实名操作员、把IP地址当作真实用户
+
 **监测点**:
 承载一个或多个监测设备的空间业务对象,拥有自己的编码、名称、类型、坐标和状态;一张图优先以监测点作为可点击地图对象。
 _Avoid_: 设备点位、监测设备(监测点是设备的空间承载对象)

+ 4 - 0
docs/adr/0001-parallel-web-cockpit-baseline.md

@@ -12,6 +12,10 @@ status: accepted
 
 后端接入沿用 UE 驾驶舱策略:专用只读接口、部署层注入凭据、`/ws/deviceStatus` 推送、失败分区独立展示。四个只读模块按 UE 现有信息结构重新实现为 Vue/Cesium 页面,不复制 UE 视觉实现。
 
+## 视频操作例外(2026-11-10,需求已决、尚未实施)
+
+维护者在[视频监控讨论票117](<../../.scratch/cockpit-shell-panel-layout/issues/117-监控设备最新指标增加视频监控入口-需求讨论.md#L55-L107>)确认:摄像机自身的实时视频、设备/NVR已有录像回放和云台操作是驾驶舱的有限视频例外;不扩传感器视频关联,不开放其他管理写操作,不改管理端页面或旧接口权限,不重建台账、信令或媒体系统。独占互斥、申请按钮和控制权租约不纳入本期;动作上限、停止保护与真实验收仍保留。匿名接口及网络边界见[ADR0005的视频例外](<0005-web-integration-and-performance.md#L17>)。本记录修订需求边界,不表示接口已发布或设备/网络已验证。
+
 ## Considered Options
 
 - 不把首期开发放入当前 TvT.js 仓库或做成 TvT 插件;当前仓库只作为 Vue3、Three.js 组件和工程参考。

+ 11 - 0
docs/adr/0005-web-integration-and-performance.md

@@ -13,3 +13,14 @@ status: accepted
 切换页面、状态刷新或 WebSocket 更新时,保留当前选中对象、面板标签、滚动位置和返回路径;状态更新只修改可变字段,不重建当前视图。**一级模式切换的选择态例外**见[决策地图票 05](../../.scratch/cockpit-point-locate-and-device-link/issues/05-device-point-layer-trigger-and-lifecycle.md):三个分项之间互切清空选择;总体概览与任一分项互切保留选择身份,但目标模式不显示该对象时暂停详情与关联监测设备图层,切回且对象仍在当前范围时恢复。一级模式切换只调整可见图层及选择态,不重建一张图,也不因此换地图快照;这项决策的实现属于后续规格,不追认为当前代码行为。
 
 鉴权契约(修订):驾驶舱只读 REST `/api/cockpit/v1/**` 与驾驶舱 WebSocket `/ws/deviceStatus` 不做鉴权;该范围不扩展到后端其他业务路径,也不为未来写接口预留免鉴权规则。默认数据源仍为 mock,真实接口由部署配置显式开启,两者走同一适配层。适配层不在页面和 store 中暴露安全凭据;失败、空态、字段缺失和断线仍按领域分区语义呈现,不回退 mock。原始“REST 注入 Authorization、WS 先 authenticate”决策及其修订记录保留在[鉴权决策票](../../.scratch/web-cockpit-decision-map/issues/07-cockpit-api-auth-without-login.md)。
+
+## 驾驶舱视频操作例外(2026-11-10,需求已决、尚未实施)
+
+来源:[视频监控讨论票117的最终收口摘要](<../../.scratch/cockpit-shell-panel-layout/issues/117-监控设备最新指标增加视频监控入口-需求讨论.md#L55-L107>)。维护者选择视频功能不引入业务账号登录,新增驾驶舱专用视频接口;原管理端页面/接口权限和内部视频服务、ZLM安全边界不变,不为其他业务写操作增加匿名例外。
+
+- 实时视频、已有录像查询/回放、云台及观看会话维护接口免业务账号登录/Authorization;具体新增路径和方法须在视频规格明确,不以全局或旧管理路径的整体放行替代专用接口。
+- 匿名不等于取消会话归属、有效性、资源释放、能力与参数校验。API及媒体地址仅限指定可信内网/受限网络,不公网匿名开放;匿名会话不能证明个人实名。
+- 使用同一视频通道的其他终端仍可能影响物理云台动作,本期不实现独占互斥、申请控制或控制权租约;保留5秒动作上限、250ms键盘单步、停止兜底与真实验证,不能把发送STOP或媒体会话回收视作设备已安全停止。
+- 监控状态刷新/锚点暂隐不重开;关闭、离开设备/模式、选择失效、离页或浏览器页面隐藏释放媒体和停止云台。仅实时视频自动最多五次重连,取消操作终止重连,不自动恢复控制动作;历史/查询手动重试。
+
+上述是明确的视频需求例外,尚未实施,不追认为当前安全规则或现网能力;全部动作仍受本仓构建/debug及启动/下载/设备控制授权边界约束。