feat(bot-tier): M1 Bot侧高危建议创建通道+目标值直写收口 (P0-②分层授权)
- 新增 POST /api/cma/bot/ai/suggestions (bot_suggestions.py, X-BOT-KEY鉴权, L2) 高危建议(kpi_target/budget_adjust/action_plan) status恒unapplied 等人审批 source白名单(bot/rule)防冒充manual; entity多租户归属校验; 幂等防重 - risk_levels.py: API_RISK_MAP加新端点 + 文件头补写操作语义分级low/high说明 - 收口: bot/kpis/create-with-links 拒绝直写非零target_value(显式置0, 考核基准=人拍板) - test_risk_levels: L2计数5→6; 新增test_bot_suggestion_channel 12条(鉴权/语义/多租户/幂等/审批闭环/审计)
This commit is contained in:
@@ -9,6 +9,34 @@ CMA Bot API 风险分级(L1-L4)与路由标注装饰器
|
||||
L4 危险 — 不向Bot API开放(DROP/TRUNCATE/批量DELETE/生产结构修改)
|
||||
|
||||
安全底线: Bot API面不存在L4端点(0项开放 = 天然隔离)。
|
||||
|
||||
写操作语义分级(业务语义 low/high,2026-09-03 分层授权落地 P0-②)
|
||||
============================================================
|
||||
依据: CMA交互架构规范 v1 第5.1节 分层授权模型(任总拍板)——
|
||||
考核基准类(KPI目标值/预算调整)→ Bot只能"建议",人拍板生效;
|
||||
监测参数类(红黄绿阈值)→ Bot建议+人批量确认(P1待办,未开放Bot直写);
|
||||
预算 = 三阶段分权(编制人定框架/执行Bot自动/调整人审批)。
|
||||
|
||||
low/high 与 L1-L4 是两套正交分级,勿混:
|
||||
L1-L4 = 技术风险分级(操作面/写前校验/批量约束,本文件API_RISK_MAP)
|
||||
low/high = 业务写语义分级(值是不是"考核基准/资源承诺")
|
||||
关系: low 类 = 现有 L2/L3 直写端点行为不变(规则型数据写);
|
||||
high 类 = Bot API面不提供直写端点,只提供建议通道端点(L2)。
|
||||
|
||||
端点归类清单(low=Bot直写+留痕 / high=建议通道人审批):
|
||||
[low · 直写 KPI实际值/流水/验证记录](写库即生效,靠 audit_log/source_batch 留痕)
|
||||
POST /api/cma/bot/kpi-value-with-check — 写KPI实际值+联动预警 (L2)
|
||||
POST /api/cma/bot-bridge/kpi-result — 写KPI实际值 (source_batch) (L2)
|
||||
POST /api/cma/bot-kpis/{kpi_id}/value — 写KPI当前值 (L2)
|
||||
POST /api/cma/bot/import — Excel批量导入KPI实际值 (L3)
|
||||
POST /api/cma/bot-bridge/mpm-result — MPM分析结果→KPI实际值 (L3)
|
||||
POST /api/cma/bot-bridge/verify/{action_plan_id} — 验证ActionPlan执行 (L2, 轻量verify_log)
|
||||
POST /api/cma/bot/okr/create — 创建OKR Objective (L2, 管理类业务写,保留评审: 2026-09-03 P1待办)
|
||||
POST /api/cma/bot/kpis/create-with-links — 创建新KPI定义+因果链 (L3; 2026-09-03收口: 拒绝直写非零 target_value)
|
||||
[high · 建议通道(端点只建 ai_suggestions, status=unapplied, 人 apply 后生效+apply_detail留痕)]
|
||||
POST /api/cma/bot/ai/suggestions — Bot创建高危建议 (L2, 本任务新增)
|
||||
说明: KPI目标值修改/预算调整 无任何Bot直写端点(grep实证)——
|
||||
kpi_target/budget_adjust 的生效只经 /api/cma/ai/suggestions/{id}/apply(人token)。
|
||||
"""
|
||||
import functools
|
||||
|
||||
@@ -54,12 +82,13 @@ API_RISK_MAP = {
|
||||
"GET /api/cma/bot-kpis": "L1",
|
||||
# 本任务新增的只读端点
|
||||
"GET /api/cma/bot/risk-levels": "L1",
|
||||
# ── L2 业务写(4项方案清单 + okr/create单条业务写) ──
|
||||
# ── L2 业务写(4项方案清单 + okr/create单条业务写 + bot建议通道) ──
|
||||
"POST /api/cma/bot/kpi-value-with-check": "L2",
|
||||
"POST /api/cma/bot-bridge/kpi-result": "L2",
|
||||
"POST /api/cma/bot-kpis/{kpi_id}/value": "L2",
|
||||
"POST /api/cma/bot-bridge/verify/{action_plan_id}": "L2",
|
||||
"POST /api/cma/bot/okr/create": "L2", # 单条OKR创建(方案清单未列出,按单条业务写归类)
|
||||
"POST /api/cma/bot/ai/suggestions": "L2", # Bot高危建议创建通道(写操作语义 high,见文件头注释;本身只建建议不直写考核基准)
|
||||
# ── L3 批量写/创建(3项) ──
|
||||
"POST /api/cma/bot/import": "L3",
|
||||
"POST /api/cma/bot/kpis/create-with-links": "L3",
|
||||
|
||||
Reference in New Issue
Block a user