diff --git a/Task-18-Bell%E5%BC%80%E5%8F%91%E6%B5%8B%E8%AF%95%E5%90%88%E6%88%90%E4%BA%8B%E4%BB%B6%E5%85%A5%E5%8F%A3.-.md b/Task-18-Bell%E5%BC%80%E5%8F%91%E6%B5%8B%E8%AF%95%E5%90%88%E6%88%90%E4%BA%8B%E4%BB%B6%E5%85%A5%E5%8F%A3.-.md new file mode 100644 index 0000000..da6ac25 --- /dev/null +++ b/Task-18-Bell%E5%BC%80%E5%8F%91%E6%B5%8B%E8%AF%95%E5%90%88%E6%88%90%E4%BA%8B%E4%BB%B6%E5%85%A5%E5%8F%A3.-.md @@ -0,0 +1,44 @@ +# 18 Bell开发测试合成事件入口 + +- 类型:需求 +- 所属 Epic:#7 +- 所属 MVP / 版本:#8 +- 状态:待验收 +- 日期:2026-08-12 +- Gitea 工单:https://git.ilapage.cn/ila/yovision/issues/18 +- Wiki 页面:Task-18-Bell开发测试合成事件入口 +- Wiki revision:见本地镜像头 + +## 背景与目标 + +在 Sense、Brain 离线时提供安全、可重复的 Bell 纵切验收入口,同时保证生产环境不可访问。 + +## 最终方案 + +把虚构匿名 fixture 嵌入 `server/testdata/events/`;仅在 development/test 注册 synthetic 路由并要求管理员权限,所有成功注入都调用正式 Event/Receipt 服务。production 不注册路由,直接返回 404。 + +## 修改文件 + +- `Bell/server/app/synthetic/`、`server/testdata/events/`:fixture、校验和 HTTP 入口。 +- `Bell/server/migrations/2026081203_synthetic_permission.sql`:测试权限。 +- `Bell/web/src/views/synthetic-event/`:仅环境与权限允许时显示的测试页。 + +## 验收结果 + +| 验收标准 | 结果 | +|---|---| +| 无 Sense/Brain 可注入匿名事件 | 通过 | +| 重放相同 fixture 验证幂等 | 通过 | +| 同键不同正文验证冲突 | 通过 | +| 非法 fixture 返回 400 | 通过 | +| production 路由返回 404 | 通过 | + +## 测试 + +- 执行:Go 单元/HTTP 测试与 dev/test/prod 手工 API 验收。 +- 结果:首次 201、重复 200、冲突 409、非法 400、production 404。 +- **未验证部分**:正式生产者契约与客户环境验收。 + +## 相关提交 + +- `55d54d0` 仅开发测试可用的合成事件(PR #35)。