补充安全权限日志与草稿状态约定

This commit is contained in:
talesofzes
2026-06-22 17:30:59 +08:00
parent df0b3fa267
commit a41e2c28d4
19 changed files with 451 additions and 129 deletions
+9 -2
View File
@@ -11,6 +11,7 @@
5. 动作类接口使用 `POST /api/{resources}/{id}/{action}`
6. 飞书回调接口必须单独记录原始 payload。
7. 后端必须做权限校验,不能只靠前端隐藏入口。
8. 涉及权限、安全、日志脱敏、飞书验签和幂等时,以 `docs/contracts/安全权限日志约定.md` 为准。
## 2. 统一响应格式
@@ -66,6 +67,7 @@
| `not_found` | 404 | 对象不存在或不可见 |
| `state_conflict` | 409 | 当前状态不允许该操作 |
| `idempotency_conflict` | 409 | 幂等键冲突或重复请求 |
| `card_expired` | 409 | 飞书卡片、通知或一次性操作链接已失效 |
| `ai_parse_failed` | 422 | AI 输出无法解析或不符合结构 |
| `ai_model_failed` | 502 | 百炼或模型网关失败,重试后仍不可用 |
| `missing_person_mapping` | 422 | 缺少人员映射 |
@@ -146,6 +148,8 @@
- `unsupported`
- `error`
`note` / `unknown` / `qa` / `realtime_qa` / `need_more_info` / `unsupported` 不得创建事项、提醒或通知;如需留痕,只返回回复、追问、上下文摘要或失败信息。
兼容接口 `/api/ai-drafts/parse``/api/demo/boss-message` 可以保留,但内部必须转发到 `/api/secretary/handle-message`
## 7. 事项
@@ -200,9 +204,11 @@
1. 必须验签。
2. 必须记录原始 payload 到 `feishu_events`
3. 必须使用 `event_id` 幂等。
3. 必须使用 `event_id` 幂等;没有稳定 `event_id` 时必须使用 `idempotency_key`
4. 验签失败不得执行业务动作。
5. 回调处理失败必须写入 `failure_records`
5. 草稿确认类卡片必须校验 `ai_drafts.active_card_notification_id`
6. 旧卡片、失效卡片、已替代草稿和已过期通知的回调只记录 `feishu_events`,不写业务对象。
7. 回调处理失败必须写入 `failure_records`
## 11. 敏感信息返回边界
@@ -210,3 +216,4 @@
2. 手机号和邮箱默认脱敏返回,除非管理员维护页确有需要。
3. 飞书通知只发送摘要和链接,不发送敏感全文。
4. 模型调用日志对外接口默认不返回完整 prompt 和原始大段上下文。
5. 飞书原始 payload、模型原始请求/响应、OAuth code/state、一次性操作 token 和回调验签密钥的访问边界以 `安全权限日志约定.md` 为准。