From c1743a33692dc20ba09ea3c6831dc965755a8ade Mon Sep 17 00:00:00 2001 From: pmc <740076875@qq.com> Date: Fri, 8 May 2026 11:09:06 +0800 Subject: [PATCH] =?UTF-8?q?docs(01-02):=20=E4=BF=AE=E6=94=B9=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E9=A1=B6=E9=83=A8=E8=BF=BD=E5=8A=A0=20Phase=201=20?= =?UTF-8?q?=E5=87=AD=E6=8D=AE=E6=A7=BD=E4=BD=8D=20API=20=E5=AE=A2=E6=88=B7?= =?UTF-8?q?=E7=AB=AF=E6=9D=A1=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - docs/修改记录.md 顶部插入 [2026-05-08] Phase 1(前端)凭据槽位 API 客户端 - 含『配套服务端 Phase』『覆盖前端需求 CRED-FE-01』前置元数据 - 跨项目联动字段:无 — 后端 commit 46d72b8 已建立互引;Phase 1 不引入新跨项目代码契约 - 现有 [2026-05-07] Phase 2 条目内容不变、位置后移 - 关键字命中:CRED-FE-01 / 46d72b8 / accessTokenMasked / accessToken / lib/api/credential-slot.ts / lib/api/index.ts / /v1/admin/credential-slot/ / 无需再次互引 --- qy-lty-admin/docs/修改记录.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/qy-lty-admin/docs/修改记录.md b/qy-lty-admin/docs/修改记录.md index e628705..1471059 100644 --- a/qy-lty-admin/docs/修改记录.md +++ b/qy-lty-admin/docs/修改记录.md @@ -25,6 +25,28 @@ +### [2026-05-08] Phase 1(前端)凭据槽位 API 客户端 + +配套服务端 Phase:[../qy_lty/.planning/phases/02-admin-rest/](../../qy_lty/.planning/phases/02-admin-rest/)(已落地,commit 46d72b8) +覆盖前端需求:CRED-FE-01 + +- **文件路径**: + - `lib/api/credential-slot.ts`(新增) + - `lib/api/index.ts`(修改) +- **修改类型**: 新增(API 客户端层;纯逻辑,无 UI 改动) +- **修改内容**: + - 新建 `lib/api/credential-slot.ts`,封装: + - 类型 `CredentialSlot { appId, accessTokenMasked, updatedAt }`(脱敏掩码语义命名) + - 类型 `CredentialSlotUpdatePayload { appId, accessToken }`(明文语义命名) + - 适配器 `mapBackendCredentialSlot()`(snake_case → camelCase) + - API 函数 `getCredentialSlot()` / `updateCredentialSlot(payload)`,分别走 `apiClient.get` / `apiClient.put` 命中 `/v1/admin/credential-slot/`,沿用仓库统一的 `response.data?.data || response.data` 双保险解包;PUT body 仅传 `{ app_id, access_token }`,不携 `updated_at`(与 `updateAiModel` / `updateOutfit` 风格一致) + - `lib/api/index.ts` 末尾追加具名 re-export,让组件层可 `import { getCredentialSlot, type CredentialSlot } from '@/lib/api'` +- **修改原因**: + - 启动 Milestone v1.0「通用凭据槽位前端集成」,本 phase 为后续 Phase 2(RBAC + 入口控件)、Phase 3(编辑对话框 + Sonner 反馈)提供调用层基础 + - `accessTokenMasked` vs `accessToken` 故意命名不同,让 TS 编译期捕捉「把脱敏字符串当真值回写 PUT」的 bug +- **跨项目联动**: 无 — 后端 commit 46d72b8 已建立互引;Phase 1 是纯 API client 层落地(无 UI 改动),调用的后端接口由 qy_lty 后端 Milestone v1.0 Phase 2 提供(commit `46d72b8` 已建立前后端互引修改记录);本 phase 不引入新跨项目代码契约,无需再次互引。前端 UI 集成(Phase 2 + 3)引入实质用户能力时再评估是否需要新一轮互引 +- **服务端联动**: 同上「跨项目联动」字段;后端 commit `46d72b8` 已建立互引闭环,本 phase 无需再次互引 + ### [2026-05-07] Phase 2 — 锁定后端通用凭据槽位 REST 接口契约(消费方文档化) 配套服务端 Phase:[../qy_lty/.planning/phases/02-admin-rest/](../../qy_lty/.planning/phases/02-admin-rest/)