3
Common-Changes
ila edited this page 2026-08-28 16:44:23 +08:00

常见修改

增加管理页字段

  1. 先核对 api/openapi.yaml 和 internal/conf/ 中的真实字段。
  2. 判断是否改变已确认的页面结构、主要流程、权限或异常处理;关键变化先更新原型并重新确认。
  3. 修改 internal/api/admin/ 中的原生表单、脱敏逻辑和请求体。
  4. 保持可见标签、就地校验、键盘焦点、44px 触控目标和窄屏卡片布局。
  5. 增加前端静态约束、Go 路由/响应测试和浏览器场景检查。
  6. 验证新增、读取、编辑留空保留既有值、删除及错误恢复。

调整管理页资源或路由

  • 静态资源使用 Go embed,集中在 internal/api/admin/。
  • /admin/ 必须继续位于 API 鉴权中间件之后并使用 action: api。
  • 保持 CSP、nosniff、referrer policy、缓存策略和未知资源 404 测试。
  • 不引入 CDN、外部字体、Node 运行时、前端框架或独立 Web 服务。
  • 动态内容使用 textContent / DOM API,不把路径名、URL 或错误直接注入 innerHTML。
  • 新增媒体预览能力时优先复用 MediaMTX 内置播放页,不让管理页代理媒体流。

调整管理页设备列表与分页

  • 配置路径和运行路径都必须按 Control API 分页完整读取;当前基线为每批 100 条、共享并发上限 4。
  • 完整快照成功后才能替换页面数据;任一批次失败不得提交部分统计或部分列表。
  • 先在全部静态 RTSP 配置上计算统计和筛选,再做客户端分页;分页只限制 DOM 渲染数量。
  • 默认每页 50 条,可选 25 / 50 / 100;搜索、状态或每页数量变化回到第一页,CRUD 与刷新后钳制到有效页。
  • 修改此流程时覆盖 0、边界数量、至少 235 条、多页失败、共享并发上限和窄屏无溢出场景。
  • 保持原生 HTML/CSS/JavaScript 和安全 DOM API,不引入前端运行时依赖。

调整 Control API

API 属于中风险变更。必须先建工单并确认兼容性,不得只改前端假定接口。实现后更新 OpenAPI、处理器测试和相关长期文档。

更新上游

  1. 记录目标上游完整提交。
  2. 获取 upstream。
  3. 检查 internal/api/admin/、API 路由和配置 JSON 字段变化。
  4. 合并时保留用户未提交改动。
  5. 运行管理页专项测试、全部包编译、受影响测试和 Harness 检查。
  6. 更新项目档案中的上游基线并回写工单证据。

修改文档

定制版长期事实先改 Gitea Wiki,回读 revision 后运行同步;不要直接编辑 docs/maintainer/。MediaMTX 官方功能文档继续按上游方式修改,不通过定制 Wiki 覆盖。