ForcePilot/web/src/apis/external-systems/token_api.js
Kris 4206c3a60f refactor(api): 统一API函数格式并更新文档注释
本次提交对多个API文件进行了多项优化:
1.  合并单行多行的API函数调用,统一代码格式
2.  更新API端点计数注释,修正部分模块的端点数量
3.  补充函数参数注释与请求选项支持,新增部分API接口
4.  调整模块路径命名,移除废弃的API封装
5.  优化文档注释,补充参数说明与使用场景
2026-07-11 21:43:50 +08:00

58 lines
3.6 KiB
JavaScript
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.

/**
* 05-Token 管理 API9 端点)
* 路径前缀:/tokens
*
* 对齐后端 Routerbackend/server/routers/external_systems/token_router.py
* 关键对齐点:
* - GET 端点list/detail/stats/history/expiring/usage/rotation-preview后端用 get_required_user前端用 apiGet
* - 写操作invalidate-token/invalidate-environment后端用 get_admin_user前端用 apiAdminPost
* - 静态路径(/stats、/history、/invalidate-environment、/expiring必须在动态路径 /{token_id} 之前声明
* - access_token / refresh_token 后端默认脱敏为 "***",前端无需额外处理
* - history 端点按 system_id 查询审计日志,返回 list[TokenHistoryItem]Token 字段 + 审计元数据,非审计日志原始对象)
* - usage 端点基于 ExternalToolExecution 表按 (system_id, env_key) 关联查询,返回工具执行记录摘要
* - stats 端点支持 expiring_days 参数控制 expiring_soon 阈值;返回字段含 expired已过期未失效
* - detail 端点返回 system_name/system_slug 关联系统上下文
* - rotation-preview 端点返回 token_status + affected_policies密钥轮换策略
* - invalidate 端点幂等:已失效的 Token 返回 409 ConflictError
*/
import { apiGet, apiAdminPost } from '../base'
import { buildUrl, buildQueryString, MODULE_PATHS } from './base'
const URL = buildUrl(MODULE_PATHS.TOKEN)
// ===== 列表与详情 =====
/** 分页列出 Token支持 system_id/env_key/token_type/is_invalidated 过滤DB 层下推) */
export const getTokenListApi = (params = {}, options = {}) =>
apiGet(`${URL}${buildQueryString(params)}`, options)
/** 获取 Token 详情access_token/refresh_token 脱敏,含 system_name/system_slug 上下文) */
export const getTokenDetailApi = (id, options = {}) => apiGet(`${URL}/${id}`, options)
// ===== 失效管理 =====
/** 失效单条 Tokenadmin 权限,幂等,已失效返回 409 */
export const invalidateTokenApi = (id) => apiAdminPost(`${URL}/${id}/invalidate`)
/** 按环境失效 Tokenadmin 权限幂等Body: {system_id, env_key} */
export const invalidateEnvironmentTokensApi = (data) =>
apiAdminPost(`${URL}/invalidate-environment`, data)
// ===== 使用与轮换预览 =====
/** 查询 Token 使用记录(基于 ExternalToolExecution 关联查询) */
export const getTokenUsageApi = (id, params = {}, options = {}) =>
apiGet(`${URL}/${id}/usage${buildQueryString(params)}`, options)
/** 轮换影响范围预览(只读,返回 token_status + 受影响的系统/环境/工具/密钥轮换策略;
* expiring_days 控制 token_status 中 expiring_soon 阈值,与 /stats、/expiring 端点保持一致) */
export const getTokenRotationPreviewApi = (id, params = {}, options = {}) =>
apiGet(`${URL}/${id}/rotation-preview${buildQueryString(params)}`, options)
// ===== 统计与历史 =====
/** 查询 Token 统计5 状态分组total/active/invalidated/expired/expiring_soon支持 expiring_days 阈值) */
export const getTokenStatsApi = (params = {}, options = {}) =>
apiGet(`${URL}/stats${buildQueryString(params)}`, options)
/** 查询 Token 变更历史system_id 必填,基于审计日志,含刷新成功/失败事件) */
export const getTokenHistoryApi = (params = {}, options = {}) =>
apiGet(`${URL}/history${buildQueryString(params)}`, options)
// ===== 过期预警 =====
/** 查询即将过期的 Tokendays 默认 7范围 1-90system_id 透传 DB 层过滤) */
export const getExpiringTokensApi = (params = {}, options = {}) =>
apiGet(`${URL}/expiring${buildQueryString(params)}`, options)