Sense → Brain 媒体源与区域规则配置契约 v1
yovision.source-config/v1 是 Sense 发布、Brain 消费的完整配置快照。它只携带稳定逻辑标识、无凭据媒体引用、Profile 规格、归一化规则及完整性摘要,不暴露 Sense 数据库模型或 Brain 内部配置模型。
本版本选择 JSON Schema,而不是 OpenAPI:快照可经文件、消息或后续 connector 传输,工单 #148 不定义 HTTP 端点。后续 connector 若提供 HTTP API,应引用本 Schema,不复制字段定义。
文件
source-config.schema.json:Draft 2020-12 JSON Schema。examples/valid/:可接受的 active 与待重校准快照。examples/invalid/:必须安全拒绝的版本、秘密、路径、坐标和绑定错误。compatibility.md:版本、兼容周期、迁移和回退规则。mapper-fields.md:Sense 生产者与 Brain 消费者字段映射和测试责任。
消费规则
- 先按 JSON Schema 校验,再执行跨字段语义校验。
schema_version必须精确等于yovision.source-config/v1;未知主版本不得降级猜测。rule_set.profile_binding必须与profile.id/width/height完全一致。rule_set.state != active时不得运行任何规则;recalibration_required表示 Profile 规格变化后需重新标定。areas与directional_lines的id在同一快照内必须全局唯一;多边形必须非退化,线段起终点不得相同。effective_at不得早于published_at。integrity.value是移除顶层integrity后,对 RFC 8785 JCS 规范化 JSON 字节计算的 SHA-256 小写十六进制摘要。生产消费者应使用合规 JCS 实现;仓库样例只使用 JCS 简单类型子集。
media.ref 是 connector 解析的无凭据不透明引用,固定以 media: 开头。它不能包含 URI authority、用户名、密码、查询参数、fragment、Windows 盘符或文件系统路径。RTSP 凭据交换与机器身份不属于本契约。
可复制验证
从仓库根目录运行:
& contracts\tests\source-config-v1\run.ps1
脚本在系统临时目录创建隔离虚拟环境、安装固定版本的 Schema 校验器并运行测试,不修改产品目录。测试结束后会清理临时环境。