Files
ai-kefu-admin/admin/src/api/settings.ts
T
浅念 3973abea8b feat: API层与认证流(client拦截/守卫/登录改密实装/域API骨架/vitest)
- 自建轻量 axios client(src/api/client.ts):Bearer 注入、401 清会话跳登录
  (login 请求除外)、409 精确匹配"必须先修改初始密码"跳强制改密(区别于并发
  冲突 409)、429/网络错误统一 ElMessage、ApiError 标准化、showErrorMessage
  可opt-out——模板 utils/http 的 {code,msg,data} 信封与后端裸 HTTP 语义不符故弃用
- Pinia auth store(src/store/modules/auth.ts):token/role/tenant_slug/
  must_change 落地并持久化(all-kefu-auth key),login/logout/changePassword/
  会话过期/强制改密跳转(动态 import 断循环)
- 路由守卫:token 事实源判定、must_change 全站门(除改密页)、UserInfo 由登录
  快照派生(后端无用户信息端点);user store 残留自愈
- 登录页实装(去除角色调试开关)、强制改密页实装;用户菜单/锁屏对接真实 logout
- 域 API 骨架:tenants/config/conversations/stats/settings(类型+端点常量)
- mask 哨兵助手:__SET__ ↔ 已设置 表单语义
- vitest 25 例(client 11/store 8/mask 6);登录页拖拽验证 reset 空引用修复

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-13 16:28:11 +08:00

35 lines
1.1 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* 平台设置 API 骨架(Phase 3 Task 3)
*
* 端点事实源:app/platform/routes/config_routes.py 的 settings_router
* (/api/platform/settings,仅超管:集团 AI 凭据 / 默认 SMTP 等)。
* 本文件只建类型与端点常量——调用函数在 Task 9(平台设置)实装。
*
* 密钥掩码:key 名含 key/password/secret 的非空字符串值在列表响应中
* 掩码为 '__SET__'(嵌套 dict 递归两层);PUT 提交 '__SET__' = 保持库值。
* 表单语义转换见 src/api/mask.ts。
*/
/** 平台设置项(列表响应行;value 可能是掩码哨兵或任意 JSON) */
export interface PlatformSettingItem {
key: string
value: unknown
}
/** 平台设置列表响应 */
export interface PlatformSettingsResponse {
items: PlatformSettingItem[]
}
/** upsert 单个设置项请求(同 key 再写 = 整值替换) */
export interface PutPlatformSettingRequest {
key: string
value: unknown
}
/** 平台设置端点 */
export const SETTINGS_ENDPOINTS = {
list: '/api/platform/settings',
put: '/api/platform/settings'
} as const