From a4716c86324766d3014b86eaf25efb31195cca2b Mon Sep 17 00:00:00 2001 From: xcs Date: Tue, 25 Aug 2026 18:51:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=87=E6=A1=A3:=E5=89=8D=E7=AB=AF=E5=AF=B9?= =?UTF-8?q?=E6=8E=A5=E8=AF=B4=E6=98=8E=E4=B8=8E=20API=20=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E6=8C=89=E7=9C=9F=E5=AE=9E=E5=A5=91=E7=BA=A6=E6=A0=B8=E5=AF=B9?= =?UTF-8?q?(=E8=B7=AF=E7=94=B1=E5=BD=92=E5=B1=9E=E6=80=BB=E8=A1=A8?= =?UTF-8?q?=E4=B8=8E=20schema=20=E5=9D=87=E5=B7=B2=E6=A0=B8=E5=AF=B9?= =?UTF-8?q?=E4=B8=80=E8=87=B4,=E8=A1=A5=E8=AE=B0=E7=A4=BA=E4=BE=8B?= =?UTF-8?q?=E6=9D=A5=E6=BA=90)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 用契约(packages/contracts/src/api/*.ts + org.ts)重新生成路由归属总表,与 API 文档 §6 逐行比对 (方法/路径/access 三者):零差异,95 条契约路由与文档现状完全一致,不改路由表。 §7 的六个 schema(Staff/Position/Principal/RoleAccess/RosterSyncOutcome/InFlightWork/WorkGroup/ ApiError)逐个核对字段名与可选性,与 org.ts 一致,不改。前端对接说明 §2 的十个文件指针全部存在。 Keycloak 侧前置(serviceAccountsEnabled 的 client、audience mapper)本轮未就位,示例响应仍按契约 构造 —— 两份文档末尾补记这一状态,留给前置就位后换真实响应。 --- docs/API文档-鉴权与人员.md | 3 ++- docs/前端对接说明-统一鉴权中心.md | 7 +++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/docs/API文档-鉴权与人员.md b/docs/API文档-鉴权与人员.md index 7547d04..3a155f5 100644 --- a/docs/API文档-鉴权与人员.md +++ b/docs/API文档-鉴权与人员.md @@ -362,4 +362,5 @@ curl -s -X POST http://localhost:8787/api/login | jq . # { "code": "gone", "message": "已随统一鉴权中心退役:登录由 Keycloak 完成,请求带 Authorization: Bearer " } ``` -示例里的 UUID / 岗位 id / 时间戳是按契约构造的;实施完成后 Task 12 会用真实响应替换。 +Task 12 已用契约(`packages/contracts/src/api/*.ts` + `org.ts`)核过本文:§6 总表逐行比对生成表、§7 字段名逐个核对 schema —— 全部一致,零改动。 +示例里的 UUID / 岗位 id / 时间戳仍按契约构造 —— 真实响应需要 Keycloak 侧前置 1(建 `bpos-e2e` 一类 `serviceAccountsEnabled` 的 client、授 realm 角色、挂 audience mapper)先就位,这是管理员的活,本轮未就位;前置就位后用 §8 给的 curl 序列换成真实响应。 diff --git a/docs/前端对接说明-统一鉴权中心.md b/docs/前端对接说明-统一鉴权中心.md index b00d8eb..c5b51b0 100644 --- a/docs/前端对接说明-统一鉴权中心.md +++ b/docs/前端对接说明-统一鉴权中心.md @@ -196,3 +196,10 @@ async function openStream(onTouch: (t: Touch) => void, onOpen: () => void): Prom - [ ] 运营中心 · 员工:同步名册 / 指派岗位 / 角色 → 端三样能用;409 与 `configured:false` 的话原样可见 - [ ] 登出后再访问 → 401 → 登录页;旧 token 不再被任何地方发出 - [ ] `apps/web` 里不再 import `loginRoute` / `logoutRoute` / `sessionRoute` / `Session` / `grantSchema` / `SURFACE_FNS` + +## 10. 本文与真实契约的核对状态 + +Task 12 已用契约把本文核过一遍:§2 的十个文件指针全部存在(`apps/web` 本轮未动,指针原样有效); +§7 的退役路由与替代逐条对过 `docs/API文档-鉴权与人员.md` §6 的总表,一致。 +本文里出现的响应示例(`GET /api/me`、票据、403 detail)与 API 文档同源,同样按契约构造 —— +换真实响应要 Keycloak 侧前置 1 与 4(服务账号 client、audience mapper)先就位,本轮未就位,留给前置就位后去 API 文档 §8 换。