diff --git a/docs/32-平台侧交接与联调准备.md b/docs/32-平台侧交接与联调准备.md index 77727c4..176694e 100644 --- a/docs/32-平台侧交接与联调准备.md +++ b/docs/32-平台侧交接与联调准备.md @@ -109,18 +109,26 @@ D:\conda\envs\jr_py313\python.exe -m pytest -q |---|---| | `tools/set_user_password.py` | 设置/查看登录密码(`--list` 只读) | | `tools/create_test_user.py` | 建可登录的测试账号(用户+角色+密码),并**验证权限能解析出来** | -| `tools/grant_advisor_role.py` | 建 `advisor` 角色与 16 个权限(只增不删,带 `--dry-run`) | +| `tools/grant_advisor_role.py` | 建 `advisor` 角色 + 补种子里缺的 3 个治理类权限并绑定(只增不删,带 `--dry-run`) | +| `tools/grant_customer_service_phase2_permissions.py` | 补客服二期的 3 个权限并授权(幂等;这 3 个已并进种子,脚本只作局部补齐) | | `tools/publish_profile_tool_whitelist.py` | 补发客服白名单(画像工具),继承全部受管表 | | `tools/login_console.py` | 浏览器登录测试台(`http://127.0.0.1:8099`) | +| **`tools/api_console.py`** | **平台功能测试台**(`http://127.0.0.1:8100`):自动覆盖 `docs/05` §19 全部 62 个端点、用平台 OpenAPI 补齐参数与请求体模板、四个演示账号一键切换身份,并提供**一键只读冒烟**(30 个 GET,**只有 5xx 算缺陷**)。还会列出「OpenAPI 有、§19 未登记」的接口 —— 首次运行查出 **67 个未登记** | | `tools/seed_advisor_demo.py` | 投顾演示数据(产品目录+测评+归属),并报告方案那步卡在哪 | | `tools/probe_release_state.py` | 只读:生效配置版本与 `agent_tools` 明细 | | `tools/probe_auth_state.py` | 只读:`sys_user` 的密码状态(只出前缀与长度,不出完整哈希) | | `tools/probe_knowledge_collections.py` | 只读:Milvus 集合 schema 与行数 | +| `tools/check_rbac_seed_consistency.py` | 只读:权限号段一致性(种子 vs 各 `grant_*.py`),**已纳入门禁** | +| `tools/check_docs_endpoint_ids.py` | 只读:`docs/05` §19 端点编号唯一性 + 号段覆盖自检,**已纳入门禁** | -> `tools/seed_test_rbac.py` 是 **DELETE 重建**语义,它的 -> `DELETE FROM sys_permission WHERE id BETWEEN 9001 AND 9099` 会**清掉 -> `grant_advisor_role.py` 建的投顾权限**。要在种子里固化投顾权限,请并进它的 -> `PERMISSIONS` 常量,而不是两个脚本各建一套。 +> ⚠️ **RBAC 权限码的定义源是 `tools/seed_test_rbac.py` 的 `PERMISSIONS`**(9001-9046 号段)。 +> 那个脚本对权限/角色/绑定是 **DELETE 重建**(`DELETE FROM sys_permission WHERE id BETWEEN +> 9001 AND 9099`,且只清 `role_id 9001-9003` 的角色绑定),**没并进它的权限码重建一次就没了**, +> 表现是"接口突然 403"而没有任何报错线索。投顾的 13 个业务权限、治理类 3 个、客服二期 3 个 +> **都已并进种子**;`grant_*.py` 只补种子里缺的,且 id 必须与种子逐条一致 —— 一致性由 +> `python tools/check_rbac_seed_consistency.py` 及其单测守着(2026-09-12 出过一次 +> "两套 id→code 映射并存、`advisor` 静默拿到语义错误权限"的事故)。 +> 另:种子对 `sys_user` 已是「存在则更新、不存在才插入」且**不覆盖密码**,所以重跑种子不会再弄丢演示口令。 ---