ForcePilot/web/src/apis/external-systems/token_api.js

47 lines
2.6 KiB
JavaScript
Raw Normal View History

/**
* 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 端点当前返回空列表占位list[dict]未实现使用记录采集
*/
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 过滤) */
export const getTokenListApi = (params = {}) => apiGet(`${URL}${buildQueryString(params)}`)
/** 获取 Token 详情access_token/refresh_token 脱敏) */
export const getTokenDetailApi = (id) => apiGet(`${URL}/${id}`)
// ===== 失效管理 =====
/** 失效单条 Tokenadmin 权限,无 Body */
export const invalidateTokenApi = (id) => apiAdminPost(`${URL}/${id}/invalidate`)
/** 按环境失效 Tokenadmin 权限Body: {system_id, env_key} */
export const invalidateEnvironmentTokensApi = (data) => apiAdminPost(`${URL}/invalidate-environment`, data)
// ===== 使用与轮换预览 =====
/** 查询 Token 使用记录(当前返回空列表占位) */
export const getTokenUsageApi = (id, params = {}) =>
apiGet(`${URL}/${id}/usage${buildQueryString(params)}`)
/** 轮换影响范围预览(只读,返回受影响的系统/环境/工具) */
export const getTokenRotationPreviewApi = (id) => apiGet(`${URL}/${id}/rotation-preview`)
// ===== 统计与历史 =====
/** 查询 Token 统计4 状态分组计数active/expiring_soon/invalidated/total */
export const getTokenStatsApi = (params = {}) => apiGet(`${URL}/stats${buildQueryString(params)}`)
/** 查询 Token 变更历史system_id 必填,基于审计日志) */
export const getTokenHistoryApi = (params = {}) => apiGet(`${URL}/history${buildQueryString(params)}`)
// ===== 过期预警 =====
/** 查询即将过期的 Tokendays 默认 7范围 1-90 */
export const getExpiringTokensApi = (params = {}) => apiGet(`${URL}/expiring${buildQueryString(params)}`)