补充安全权限日志与草稿状态约定
This commit is contained in:
@@ -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` 为准。
|
||||
|
||||
Reference in New Issue
Block a user