refactor(api): 统一API函数格式并更新文档注释
本次提交对多个API文件进行了多项优化: 1. 合并单行多行的API函数调用,统一代码格式 2. 更新API端点计数注释,修正部分模块的端点数量 3. 补充函数参数注释与请求选项支持,新增部分API接口 4. 调整模块路径命名,移除废弃的API封装 5. 优化文档注释,补充参数说明与使用场景
This commit is contained in:
parent
3ae9c0bd21
commit
4206c3a60f
@ -46,9 +46,10 @@ export const disableAccountApi = (channelType, accountId) =>
|
||||
/** 恢复降级账户(幂等:已 active 直接返回成功;DEGRADED → ACTIVE) */
|
||||
export const recoverAccountApi = (channelType, accountId) =>
|
||||
apiAdminPost(buildUrl(`/${channelType}/accounts/${accountId}/recover`))
|
||||
/** 查询账户运行时状态(状态机/熔断器/登录态/降级标记) */
|
||||
export const getAccountRuntimeStatusApi = (channelType, accountId) =>
|
||||
apiAdminGet(buildUrl(`/${channelType}/accounts/${accountId}/runtime-status`))
|
||||
/** 查询账户运行时状态(状态机/熔断器/登录态/降级标记)
|
||||
* @param {Object} [options] - 请求选项(如 { signal } 用于取消请求) */
|
||||
export const getAccountRuntimeStatusApi = (channelType, accountId, options = {}) =>
|
||||
apiAdminGet(buildUrl(`/${channelType}/accounts/${accountId}/runtime-status`), options)
|
||||
|
||||
// ===== 凭据与连通性 =====
|
||||
/** 轮换渠道账户凭据 */
|
||||
|
||||
@ -6,8 +6,6 @@
|
||||
* 关键对齐点:
|
||||
* - 普通端点后端用 get_admin_user,前端用 apiAdmin* 系列
|
||||
* - 保留策略更新需超级管理员权限,前端用 apiSuperAdminPut
|
||||
* - 静态路径(/audit/logs /audit/logs/stats /audit/operations /audit/export /audit/retention-policy)
|
||||
* 先于动态路径(/audit/logs/{log_id})声明
|
||||
* - GET /audit/export 返回 StreamingResponse 二进制文件流,admin 权限,responseType='blob',同步下载
|
||||
* - GET 查询类端点含 query 参数(operation_type / operator / target_* / start_time / end_time / limit / offset)
|
||||
* 用 buildQueryString 拼接
|
||||
@ -22,11 +20,11 @@ const URL = buildUrl('/audit')
|
||||
/** 查询审计日志列表(支持操作类型/操作人/目标/时间范围过滤与分页) */
|
||||
export const getAuditLogListApi = (params = {}) =>
|
||||
apiAdminGet(`${URL}/logs${buildQueryString(params)}`)
|
||||
/** 查询单条审计日志详情(AUD-07) */
|
||||
export const getAuditLogApi = (logId) => apiAdminGet(`${URL}/logs/${logId}`)
|
||||
/** 查询审计日志统计聚合(不含分页参数,对全量匹配数据聚合) */
|
||||
export const getAuditLogStatsApi = (params = {}) =>
|
||||
apiAdminGet(`${URL}/logs/stats${buildQueryString(params)}`)
|
||||
/** 查询单条审计日志详情 */
|
||||
export const getAuditLogApi = (logId) => apiAdminGet(`${URL}/logs/${logId}`)
|
||||
/** 查询审计操作类型枚举 */
|
||||
export const listAuditOperationsApi = () => apiAdminGet(`${URL}/operations`)
|
||||
|
||||
|
||||
@ -40,7 +40,7 @@ export const MODULE_PATHS = {
|
||||
OUTBOX: '/outbox',
|
||||
PAIRING: '/pairings',
|
||||
PLUGIN: '/plugins',
|
||||
REPORTS: '/reports',
|
||||
ROUTE_BINDING: '/route-bindings',
|
||||
SESSION: '/sessions'
|
||||
}
|
||||
|
||||
|
||||
@ -8,7 +8,7 @@
|
||||
* - 静态路径 /capabilities 与 /capabilities/matrix 先于动态 /capabilities/{channel_type} 声明
|
||||
*/
|
||||
import { apiAdminGet } from '../base'
|
||||
import { buildUrl } from './base'
|
||||
import { buildUrl, buildQueryString } from './base'
|
||||
|
||||
const URL = buildUrl('/capabilities')
|
||||
|
||||
@ -16,8 +16,9 @@ const URL = buildUrl('/capabilities')
|
||||
/**
|
||||
* 列出所有渠道能力声明。
|
||||
*
|
||||
* 响应结构(对齐 CAP-01):{ capabilities: [{ channel_type, capabilities }, ...] }
|
||||
* 前端需自行转换为 channel_type → capabilities 映射。
|
||||
* 响应结构(对齐 CAP-01):{ capabilities: [ChannelCapabilityProfile, ...] }
|
||||
* 每个 ChannelCapabilityProfile 包含 channel_type、display_name、capabilities
|
||||
* (ChannelCapabilities 布尔字段集)、runtime_availability、config_schema 等字段。
|
||||
*/
|
||||
export const listCapabilitiesApi = () => apiAdminGet(URL)
|
||||
/**
|
||||
@ -25,8 +26,12 @@ export const listCapabilitiesApi = () => apiAdminGet(URL)
|
||||
*
|
||||
* 响应结构:{ capabilities: [ChannelCapabilityProfile, ...] }
|
||||
* 包含静态能力声明、运行时可用性、插件元数据与配置 schema。
|
||||
*
|
||||
* @param {Object} [params] - query 参数:status(available/unavailable)、capability(能力名)
|
||||
* @param {Object} [options] - fetch 请求选项(如 signal 用于请求取消)
|
||||
*/
|
||||
export const listCapabilityMatrixApi = () => apiAdminGet(`${URL}/matrix`)
|
||||
export const listCapabilityMatrixApi = (params = {}, options = {}) =>
|
||||
apiAdminGet(`${URL}/matrix${buildQueryString(params)}`, options)
|
||||
|
||||
/** 查询单渠道能力详情(渠道未绑定插件抛 NotFoundError) */
|
||||
export const getCapabilityApi = (channelType) => apiAdminGet(`${URL}/${channelType}`)
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/**
|
||||
* 配置管理域 API(8 端点)
|
||||
* 配置管理域 API(9 端点)
|
||||
* 路径前缀:/config
|
||||
*
|
||||
* 对齐后端 Router:backend/server/routers/channels/config_router.py
|
||||
@ -29,6 +29,9 @@ export const importConfigApi = (data) => apiSuperAdminPost(`${URL}/import`, data
|
||||
// ===== 批量更新 =====
|
||||
/** 批量更新配置(CFG-BATCH-UPDATE) */
|
||||
export const batchUpdateConfigApi = (data) => apiAdminPut(`${URL}/batch`, data)
|
||||
/** 批量查询配置值(CFG-READ-MANY,keys 为 list[str],buildQueryString 以 repeated keys 拼接) */
|
||||
export const getConfigValuesApi = (params = {}) =>
|
||||
apiAdminGet(`${URL}/values${buildQueryString(params)}`)
|
||||
|
||||
// ===== 单 key 读写、回滚与历史 =====
|
||||
/** 查询配置值(CFG-READ-01) */
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/**
|
||||
* Dashboard 聚合视图域 API(6 端点)
|
||||
* Dashboard 聚合视图域 API
|
||||
* 路径前缀:/dashboard
|
||||
*
|
||||
* 对齐后端 Router:backend/server/routers/channels/dashboard_router.py
|
||||
@ -7,6 +7,9 @@
|
||||
* - 全部端点后端用 get_admin_user,前端用 apiAdminGet
|
||||
* - 路径不含 {channel_type} 段(聚合视图为跨渠道全局能力)
|
||||
* - GET 端点的 channel_type/start_time/end_time/window_seconds 为 query 参数,用 buildQueryString 拼接
|
||||
*
|
||||
* 说明:DSB-01 overview 已聚合返回 accounts/messages/sessions/outbox 四类子域计数,
|
||||
* 前端全部从 overview 派生,故不单独封装 DSB-02~04 子域端点。
|
||||
*/
|
||||
import { apiAdminGet } from '../base'
|
||||
import { buildUrl, buildQueryString } from './base'
|
||||
@ -17,15 +20,6 @@ const URL = buildUrl('/dashboard')
|
||||
/** 查询全局总览(DSB-01) */
|
||||
export const getDashboardOverviewApi = (params = {}) =>
|
||||
apiAdminGet(`${URL}/overview${buildQueryString(params)}`)
|
||||
/** 查询账户总览(DSB-02) */
|
||||
export const getDashboardAccountsApi = (params = {}) =>
|
||||
apiAdminGet(`${URL}/accounts${buildQueryString(params)}`)
|
||||
/** 查询消息总览(DSB-03) */
|
||||
export const getDashboardMessagesApi = (params = {}) =>
|
||||
apiAdminGet(`${URL}/messages${buildQueryString(params)}`)
|
||||
/** 查询会话总览(DSB-04) */
|
||||
export const getDashboardSessionsApi = (params = {}) =>
|
||||
apiAdminGet(`${URL}/sessions${buildQueryString(params)}`)
|
||||
|
||||
// ===== 投递、待办与实时 =====
|
||||
/** 查询投递总览(DSB-DELIVERY) */
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/**
|
||||
* 目录查询域 API(6 端点)
|
||||
* 目录查询域 API(9 端点)
|
||||
* 路径前缀:/{channel_type}/{account_id}/directory
|
||||
*
|
||||
* 对齐后端 Router:backend/server/routers/channels/directory_router.py
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/**
|
||||
* 渠道诊断域 API(6 端点)
|
||||
* 渠道诊断域 API(5 端点)
|
||||
* 路径前缀:/{channel_type}/{account_id}/doctor
|
||||
*
|
||||
* 对齐后端 Router:backend/server/routers/channels/doctor_router.py
|
||||
@ -7,6 +7,9 @@
|
||||
* - 全部端点后端用 get_admin_user,前端用 apiAdmin* 系列
|
||||
* - 路径含 {channel_type} 与 {account_id} 两段 path 参数
|
||||
* - 静态后缀(run-all)先于动态单段({check_id})声明,多段子资源({check_id}/run、{check_id}/repair、{check_id}/repair/preview)在后
|
||||
*
|
||||
* 注:后端 GET /checks/{check_id}(单项元信息查询)存在,但前端检查项列表
|
||||
* 接口已返回完整元信息,无需单独拉取单项,故未封装。
|
||||
*/
|
||||
import { apiAdminGet, apiAdminPost } from '../base'
|
||||
import { buildUrl } from './base'
|
||||
@ -23,9 +26,6 @@ export const runAllDoctorChecksApi = (channelType, accountId) =>
|
||||
apiAdminPost(doctorUrl(channelType, accountId, '/checks/run-all'))
|
||||
|
||||
// ===== 单项检查 =====
|
||||
/** 查询单项检查项元信息(DOC-CHECK-02) */
|
||||
export const getDoctorCheckApi = (channelType, accountId, checkId) =>
|
||||
apiAdminGet(doctorUrl(channelType, accountId, `/checks/${checkId}`))
|
||||
/** 运行单项诊断检查(DOC-CHECK-04) */
|
||||
export const runDoctorCheckApi = (channelType, accountId, checkId) =>
|
||||
apiAdminPost(doctorUrl(channelType, accountId, `/checks/${checkId}/run`))
|
||||
|
||||
@ -33,7 +33,8 @@ export const getOutboxMessageApi = (outboxId) => apiAdminGet(`${URL}/messages/${
|
||||
/** 查询死信队列(分页) */
|
||||
export const listDeadLetterOutboxApi = (params = {}) =>
|
||||
apiAdminGet(`${URL}/dead-letter${buildQueryString(params)}`)
|
||||
/** 导出死信条目(json 记录数组 / csv 字符串,含 CSV injection 防护) */
|
||||
/** 导出死信条目(json 记录数组 / csv 字符串,含 CSV injection 防护)
|
||||
* query 参数:format(json/csv,对应后端 export_format 的 alias)、export_limit(导出条目上限) */
|
||||
export const exportDeadLetterApi = (params = {}) =>
|
||||
apiAdminGet(`${URL}/dead-letter/export${buildQueryString(params)}`)
|
||||
/** 清除单条死信条目(逻辑删除,仅允许 dead 状态) */
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/**
|
||||
* 配对审批域 API(10 端点)
|
||||
* 配对审批域 API(11 端点)
|
||||
* 路径前缀:/channels/pairings
|
||||
*
|
||||
* 对齐后端 Router:backend/server/routers/channels/pairing_router.py
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/**
|
||||
* 插件管理 API(16 端点)
|
||||
* 插件管理 API(15 端点)
|
||||
* 路径前缀:/plugins
|
||||
*
|
||||
* 对齐后端 Router:backend/server/routers/channels/plugin_router.py
|
||||
@ -7,7 +7,6 @@
|
||||
* - install / 文件级卸载需 superadmin,前端用 apiSuperAdmin* 系列
|
||||
* - 其余端点(查询 / 生命周期 / 批量 / 配置)管理员鉴权,用 apiAdmin* 系列
|
||||
* - 静态路径(/install /batch/start /batch/stop)先于动态路径 /{plugin_id} 声明,前端按功能分组
|
||||
* - list 端点支持 state 查询参数过滤生命周期状态
|
||||
*/
|
||||
import { apiAdminGet, apiAdminPost, apiAdminPut } from '../base'
|
||||
import { apiSuperAdminPost, apiSuperAdminDelete } from '../base'
|
||||
@ -16,14 +15,14 @@ import { buildUrl, buildQueryString, MODULE_PATHS } from './base'
|
||||
const URL = buildUrl(MODULE_PATHS.PLUGIN)
|
||||
|
||||
// ===== 查询 =====
|
||||
/** 列出全部插件(支持按生命周期状态过滤) */
|
||||
export const getPluginListApi = (params = {}) => apiAdminGet(`${URL}${buildQueryString(params)}`)
|
||||
/** 列出插件目录(含 capabilities,供卡片视图展示) */
|
||||
export const getPluginCatalogApi = () => apiAdminGet(`${URL}/catalog`)
|
||||
/** 列出插件目录(含 capabilities,供卡片视图展示,支持按生命周期状态过滤) */
|
||||
export const getPluginCatalogApi = (params = {}) =>
|
||||
apiAdminGet(`${URL}/catalog${buildQueryString(params)}`)
|
||||
/** 查询插件详情(manifest / 生命周期状态 / 绑定渠道类型) */
|
||||
export const getPluginDetailApi = (pluginId) => apiAdminGet(`${URL}/${pluginId}`)
|
||||
/** 查询插件配置(config / schema / requires_restart / updated_at) */
|
||||
export const getPluginConfigApi = (pluginId) => apiAdminGet(`${URL}/${pluginId}/config`)
|
||||
/** 查询插件配置(config / schema / requires_restart / updated_at,account_id 用于读取 ACCOUNT 作用域配置值) */
|
||||
export const getPluginConfigApi = (pluginId, params = {}) =>
|
||||
apiAdminGet(`${URL}/${pluginId}/config${buildQueryString(params)}`)
|
||||
|
||||
// ===== 安装与卸载(需超级管理员,对齐 API 文档 §2.4)=====
|
||||
/** 安装插件(source_type: path / url / registry;url / registry 后端返回 501) */
|
||||
|
||||
@ -28,7 +28,6 @@ export const resolveRouteBindingApi = (data) => apiAdminPost(`${URL}/resolve`, d
|
||||
/** 创建路由绑定规则(match_value 与 match_source 的组合约束由后端校验) */
|
||||
export const createRouteBindingApi = (data) => apiAdminPost(URL, data)
|
||||
/** 更新路由绑定规则(binding_id 由路径提供,body 字段全部可选,仅传入字段被更新) */
|
||||
export const updateRouteBindingApi = (bindingId, data) =>
|
||||
apiAdminPut(`${URL}/${bindingId}`, data)
|
||||
export const updateRouteBindingApi = (bindingId, data) => apiAdminPut(`${URL}/${bindingId}`, data)
|
||||
/** 删除路由绑定规则 */
|
||||
export const deleteRouteBindingApi = (bindingId) => apiAdminDelete(`${URL}/${bindingId}`)
|
||||
|
||||
@ -20,6 +20,6 @@ export const verifyWebhookSignatureApi = (channelType, data, options = {}) =>
|
||||
apiPost(buildUrl(`/${channelType}/webhook/signature/verify`), data, options, false)
|
||||
|
||||
// ===== Webhook 测试(控制面,需管理员) =====
|
||||
/** 测试 Webhook 投递(经控制面管道,isinstance 检查 WebhookTestable 能力) */
|
||||
/** 测试 Webhook 投递(经控制面管道,isinstance 检查 WebhookTestAdapter 能力) */
|
||||
export const testWebhookApi = (channelType, data) =>
|
||||
apiAdminPost(buildUrl(`/${channelType}/webhook/test`), data)
|
||||
|
||||
@ -16,8 +16,7 @@ const URL = buildUrl(MODULE_PATHS.ACCESS_RULE)
|
||||
|
||||
// ===== 列表与详情 =====
|
||||
/** 分页列出工具访问控制规则 */
|
||||
export const getAccessRuleListApi = (params = {}) =>
|
||||
apiGet(`${URL}${buildQueryString(params)}`)
|
||||
export const getAccessRuleListApi = (params = {}) => apiGet(`${URL}${buildQueryString(params)}`)
|
||||
/** 获取访问规则详情 */
|
||||
export const getAccessRuleDetailApi = (id) => apiGet(`${URL}/${id}`)
|
||||
/** 查询访问规则的附加条件 */
|
||||
|
||||
@ -25,8 +25,7 @@ export const deleteAssetApi = (id) => apiAdminDelete(`${URL}/${id}`)
|
||||
|
||||
// ===== 统计与查询 =====
|
||||
export const getAssetStatsApi = () => apiGet(`${URL}/stats`)
|
||||
export const getAssetByChecksumApi = (checksum) =>
|
||||
apiGet(`${URL}/by-checksum/${checksum}`)
|
||||
export const getAssetByChecksumApi = (checksum) => apiGet(`${URL}/by-checksum/${checksum}`)
|
||||
|
||||
// ===== 批量操作 =====
|
||||
export const batchUploadAssetsApi = (data) => apiAdminPost(`${URL}/batch-upload`, data)
|
||||
|
||||
@ -13,7 +13,6 @@ export const getAdapterOverviewApi = () => apiGet(`${URL}/overview`)
|
||||
|
||||
// ===== 详情与子接口 =====
|
||||
export const getAdapterDetailApi = (type) => apiGet(`${URL}/${type}`)
|
||||
export const getAdapterCapabilitiesApi = (type) => apiGet(`${URL}/${type}/capabilities`)
|
||||
export const getAdapterConfigSchemaApi = (type) => apiGet(`${URL}/${type}/config-schema`)
|
||||
export const getAdapterAuthPluginsApi = (type) => apiGet(`${URL}/${type}/auth-plugins`)
|
||||
export const getAdapterSourceTypesApi = (type) => apiGet(`${URL}/${type}/source-types`)
|
||||
@ -27,3 +26,4 @@ export const validateAdapterConfigApi = (type, config) =>
|
||||
export const getAdapterStatsApi = (type, params = {}) =>
|
||||
apiGet(`${URL}/${type}/stats${buildQueryString(params)}`)
|
||||
export const getAdapterHealthApi = (type) => apiGet(`${URL}/${type}/health`)
|
||||
export const getAdapterHealthBatchApi = () => apiGet(`${URL}/health-batch`)
|
||||
|
||||
@ -39,7 +39,6 @@ export const resolveAlertApi = (id, data) => apiAdminPost(`${URL}/${id}/resolve`
|
||||
|
||||
// ===== 批量操作 =====
|
||||
/** 批量确认告警(acknowledged_by 由后端从当前管理员填充) */
|
||||
export const batchAcknowledgeAlertsApi = (data) =>
|
||||
apiAdminPost(`${URL}/batch-acknowledge`, data)
|
||||
export const batchAcknowledgeAlertsApi = (data) => apiAdminPost(`${URL}/batch-acknowledge`, data)
|
||||
/** 批量恢复告警(user 由后端从当前管理员填充) */
|
||||
export const batchResolveAlertsApi = (data) => apiAdminPost(`${URL}/batch-resolve`, data)
|
||||
|
||||
@ -1,6 +1,10 @@
|
||||
/**
|
||||
* 06-审计日志 API(8 端点)
|
||||
* 路径前缀:/audit-logs
|
||||
*
|
||||
* 所有函数支持 opts 转发(signal/silent),与 system_api/environment_api 对齐:
|
||||
* - signal:联动 AbortController,供 composable 在组件卸载或竞态切换时取消请求
|
||||
* - silent:调用方自管理错误提示时设 true,抑制 apiRequest 内的全局 message.error toast
|
||||
*/
|
||||
import { apiGet, apiAdminGet } from '../base'
|
||||
import { buildUrl, buildQueryString, MODULE_PATHS } from './base'
|
||||
@ -8,21 +12,33 @@ import { buildUrl, buildQueryString, MODULE_PATHS } from './base'
|
||||
const URL = buildUrl(MODULE_PATHS.AUDIT_LOG)
|
||||
|
||||
// ===== 列表与详情 =====
|
||||
export const getAuditLogListApi = (params = {}) => apiGet(`${URL}${buildQueryString(params)}`)
|
||||
export const getAuditLogDetailApi = (id) => apiGet(`${URL}/${id}`)
|
||||
export const getAuditLogListApi = (params = {}, opts = {}) =>
|
||||
apiGet(`${URL}${buildQueryString(params)}`, { signal: opts.signal, silent: opts.silent })
|
||||
export const getAuditLogDetailApi = (id, opts = {}) =>
|
||||
apiGet(`${URL}/${id}`, { signal: opts.signal, silent: opts.silent })
|
||||
|
||||
// ===== 统计 =====
|
||||
export const getAuditLogStatsApi = (params = {}) => apiGet(`${URL}/stats${buildQueryString(params)}`)
|
||||
export const getAuditLogStatsApi = (params = {}, opts = {}) =>
|
||||
apiGet(`${URL}/stats${buildQueryString(params)}`, { signal: opts.signal, silent: opts.silent })
|
||||
|
||||
// ===== 配置变更 =====
|
||||
export const getConfigChangesApi = (params = {}) =>
|
||||
apiGet(`${URL}/config-changes${buildQueryString(params)}`)
|
||||
export const getConfigChangesApi = (params = {}, opts = {}) =>
|
||||
apiGet(`${URL}/config-changes${buildQueryString(params)}`, {
|
||||
signal: opts.signal,
|
||||
silent: opts.silent
|
||||
})
|
||||
|
||||
// ===== 元数据查询 =====
|
||||
export const getAuditLogActionTypesApi = () => apiGet(`${URL}/action-types`)
|
||||
export const getAuditLogEventTypesApi = () => apiGet(`${URL}/event-types`)
|
||||
export const getAuditLogOperatorsApi = () => apiGet(`${URL}/operators`)
|
||||
export const getAuditLogActionTypesApi = (opts = {}) =>
|
||||
apiGet(`${URL}/action-types`, { signal: opts.signal, silent: opts.silent })
|
||||
export const getAuditLogEventTypesApi = (opts = {}) =>
|
||||
apiGet(`${URL}/event-types`, { signal: opts.signal, silent: opts.silent })
|
||||
export const getAuditLogOperatorsApi = (opts = {}) =>
|
||||
apiGet(`${URL}/operators`, { signal: opts.signal, silent: opts.silent })
|
||||
|
||||
// ===== 导出(StreamingResponse,admin 权限,blob 下载) =====
|
||||
export const exportAuditLogsApi = (params = {}) =>
|
||||
apiAdminGet(`${URL}/export${buildQueryString(params)}`, {}, 'blob')
|
||||
export const exportAuditLogsApi = (params = {}, opts = {}) =>
|
||||
apiAdminGet(`${URL}/export${buildQueryString(params)}`, {
|
||||
signal: opts.signal,
|
||||
silent: opts.silent
|
||||
}, 'blob')
|
||||
|
||||
@ -1,22 +1,20 @@
|
||||
/**
|
||||
* 21-认证插件 API(6 端点)
|
||||
* 21-认证插件 API(5 端点)
|
||||
* 路径前缀:/auth-plugins
|
||||
*
|
||||
* 端点清单:
|
||||
* 1. GET /auth-plugins 查询所有认证插件(扁平列表)
|
||||
* 2. GET /auth-plugins/overview 查询认证插件分组总览(框架级 + 按适配器分组)
|
||||
* 3. GET /auth-plugins/token-strategies 查询已注册的 Token 刷新策略清单
|
||||
* 4. GET /auth-plugins/{auth_type} 查询指定认证插件详情(Query: adapter_type?)
|
||||
* 5. GET /auth-plugins/{auth_type}/config-schema 获取认证配置的 JSON Schema(Query: adapter_type?)
|
||||
* 6. POST /auth-plugins/{auth_type}/validate 校验认证配置是否有效(Query: adapter_type?,Body: {auth_config})
|
||||
* 1. GET /auth-plugins/overview 查询认证插件分组总览(框架级 + 按适配器分组)
|
||||
* 2. GET /auth-plugins/token-strategies 查询已注册的 Token 刷新策略清单
|
||||
* 3. GET /auth-plugins/{auth_type} 查询指定认证插件详情(Query: adapter_type?)
|
||||
* 4. GET /auth-plugins/{auth_type}/config-schema 获取认证配置的 JSON Schema(Query: adapter_type?)
|
||||
* 5. POST /auth-plugins/{auth_type}/validate 校验认证配置是否有效(Query: adapter_type?,Body: {auth_config})
|
||||
*/
|
||||
import { apiGet, apiAdminPost } from '../base'
|
||||
import { buildUrl, buildQueryString, MODULE_PATHS } from './base'
|
||||
|
||||
const URL = buildUrl(MODULE_PATHS.AUTH_PLUGIN)
|
||||
|
||||
// ===== 列表与总览 =====
|
||||
export const getAuthPluginListApi = () => apiGet(URL)
|
||||
// ===== 总览 =====
|
||||
export const getAuthPluginOverviewApi = () => apiGet(`${URL}/overview`)
|
||||
|
||||
// ===== Token 刷新策略 =====
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/**
|
||||
* 20-监控仪表板 API(7 端点)
|
||||
* 20-监控仪表板 API(8 端点)
|
||||
* 路径前缀:/dashboard
|
||||
*
|
||||
* 对齐后端 Router:backend/server/routers/external_systems/dashboard_router.py
|
||||
@ -38,3 +38,7 @@ export const getDashboardHealthApi = (options = {}) => apiGet(`${URL}/health`, o
|
||||
// ===== 最近活动 =====
|
||||
export const getDashboardActivitiesApi = (params = {}, options = {}) =>
|
||||
apiGet(`${URL}/activities${buildQueryString(params)}`, options)
|
||||
|
||||
// ===== 待办统计 =====
|
||||
export const getDashboardTodosApi = (params = {}, options = {}) =>
|
||||
apiGet(`${URL}/todos${buildQueryString(params)}`, options)
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/**
|
||||
* 03-环境管理 API(19 端点)
|
||||
* 03-环境管理 API(20 端点)
|
||||
* 路径前缀:/environments
|
||||
*
|
||||
* 对齐 backend/server/routers/external_systems/environment_router.py:
|
||||
@ -9,14 +9,22 @@
|
||||
* - export 返回 StreamingResponse,需用 blob 接收;后端统一要求管理员权限(include_secrets 会泄露明文密钥)
|
||||
* - 查询类端点后端用 get_required_user(普通用户可访问),写操作及 export 用 get_admin_user
|
||||
*/
|
||||
import { apiGet, apiAdminGet, apiAdminPost, apiAdminPut, apiAdminDelete, apiAdminPatch } from '../base'
|
||||
import {
|
||||
apiGet,
|
||||
apiPost,
|
||||
apiAdminGet,
|
||||
apiAdminPost,
|
||||
apiAdminPut,
|
||||
apiAdminDelete,
|
||||
apiAdminPatch
|
||||
} from '../base'
|
||||
import { buildUrl, buildQueryString, MODULE_PATHS } from './base'
|
||||
|
||||
const URL = buildUrl(MODULE_PATHS.ENVIRONMENT)
|
||||
|
||||
// ===== 列表与详情 =====
|
||||
export const getEnvironmentListApi = (params = {}) =>
|
||||
apiGet(`${URL}${buildQueryString(params)}`)
|
||||
export const getEnvironmentListApi = (params = {}, opts = {}) =>
|
||||
apiGet(`${URL}${buildQueryString(params)}`, { signal: opts.signal, silent: opts.silent })
|
||||
export const createEnvironmentApi = (data) => apiAdminPost(URL, data)
|
||||
export const getEnvironmentDetailApi = (id, systemId) =>
|
||||
apiGet(`${URL}/${id}${buildQueryString({ system_id: systemId })}`)
|
||||
@ -26,8 +34,7 @@ export const deleteEnvironmentApi = (id, systemId) =>
|
||||
apiAdminDelete(`${URL}/${id}${buildQueryString({ system_id: systemId })}`)
|
||||
|
||||
// ===== 查询与统计 =====
|
||||
export const diffEnvironmentsApi = (params = {}) =>
|
||||
apiGet(`${URL}/diff${buildQueryString(params)}`)
|
||||
export const diffEnvironmentsApi = (params = {}) => apiGet(`${URL}/diff${buildQueryString(params)}`)
|
||||
export const getActiveEnvironmentsApi = (params = {}) =>
|
||||
apiGet(`${URL}/active${buildQueryString(params)}`)
|
||||
export const getEnvironmentByKeyApi = (params = {}) =>
|
||||
@ -42,6 +49,8 @@ export const batchTestConnectivityApi = (data) =>
|
||||
apiAdminPost(`${URL}/batch-test-connectivity`, data)
|
||||
export const batchCloneEnvironmentsApi = (data) => apiAdminPost(`${URL}/batch-clone`, data)
|
||||
export const batchEnabledEnvironmentsApi = (data) => apiAdminPost(`${URL}/batch-enabled`, data)
|
||||
// 批量查询健康状态(只读查询,后端用 get_required_user,普通用户可访问)
|
||||
export const batchEnvironmentHealthApi = (data) => apiPost(`${URL}/batch-health`, data)
|
||||
|
||||
// ===== 默认与启用状态 =====
|
||||
// 后端 set_default_environment 不接受请求体,仅靠 system_id query 定位
|
||||
|
||||
@ -25,7 +25,8 @@ export const getExecutionContextApi = (id) => apiGet(`${URL}/${id}/context`)
|
||||
export const retryExecutionApi = (id) => apiAdminPost(`${URL}/${id}/retry`)
|
||||
|
||||
// ===== 统计 =====
|
||||
export const getExecutionStatsApi = (params = {}) => apiGet(`${URL}/stats${buildQueryString(params)}`)
|
||||
export const getExecutionStatsApi = (params = {}) =>
|
||||
apiGet(`${URL}/stats${buildQueryString(params)}`)
|
||||
export const getExecutionGroupedStatsApi = (params = {}) =>
|
||||
apiGet(`${URL}/stats/grouped${buildQueryString(params)}`)
|
||||
export const getExecutionErrorAnalysisApi = (params = {}) =>
|
||||
@ -34,7 +35,8 @@ export const getExecutionTrendApi = (params = {}) =>
|
||||
apiGet(`${URL}/stats/trend${buildQueryString(params)}`)
|
||||
|
||||
// ===== 慢执行 & 按 Trace 查询 =====
|
||||
export const getSlowExecutionsApi = (params = {}) => apiGet(`${URL}/slow${buildQueryString(params)}`)
|
||||
export const getSlowExecutionsApi = (params = {}) =>
|
||||
apiGet(`${URL}/slow${buildQueryString(params)}`)
|
||||
export const getExecutionsByTraceApi = (traceId, params = {}) =>
|
||||
apiGet(`${URL}/by-trace/${traceId}${buildQueryString(params)}`)
|
||||
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
/**
|
||||
* 13-健康检查 API(7 端点)
|
||||
* 13-健康检查 API(8 端点)
|
||||
* 路径前缀:/health-checks
|
||||
*/
|
||||
import { apiGet, apiAdminDelete } from '../base'
|
||||
import { apiGet, apiAdminDelete, apiAdminPost } from '../base'
|
||||
import { buildUrl, buildQueryString, MODULE_PATHS } from './base'
|
||||
|
||||
const URL = buildUrl(MODULE_PATHS.HEALTH_CHECK)
|
||||
@ -34,3 +34,7 @@ export const getHealthCheckBySystemApi = (systemId, params = {}) =>
|
||||
// ===== 按系统查询最新检查记录 =====
|
||||
export const getLatestHealthCheckBySystemApi = (systemId, params = {}) =>
|
||||
apiGet(`${URL}/by-system/${systemId}/latest${buildQueryString(params)}`)
|
||||
|
||||
// ===== 触发系统级健康检查(管理员) =====
|
||||
export const triggerSystemHealthCheckApi = (systemId, body = {}) =>
|
||||
apiAdminPost(`${URL}/systems/${systemId}`, body)
|
||||
|
||||
@ -26,8 +26,7 @@ export const exportToolApi = (params = {}) =>
|
||||
export const bulkExportToolsApi = (data) => apiAdminPost(`${URL}/tools/bulk-export`, data)
|
||||
|
||||
// ===== 工具包导入导出 =====
|
||||
export const exportToolPackageApi = (data) =>
|
||||
apiAdminPost(`${URL}/tool-package/export`, data)
|
||||
export const exportToolPackageApi = (data) => apiAdminPost(`${URL}/tool-package/export`, data)
|
||||
export const previewToolPackageImportApi = (data) =>
|
||||
apiAdminPost(`${URL}/tool-package/preview`, data)
|
||||
export const confirmToolPackageImportApi = (data) =>
|
||||
|
||||
@ -18,7 +18,7 @@
|
||||
* - discover/preview/generate 共用 IntegrationToolFlowRequest Schema:
|
||||
* { system_id: int(必填), source_type?: str, env_key?: str, discovery_options?: dict }
|
||||
* - persist 使用 PersistIntegrationToolsRequest Schema:
|
||||
* { system_id: int(必填), tools: list[ExternalToolItemRequest](min 1) }
|
||||
* { system_id: int(必填), tools: list[ExternalToolItemRequest](min 1, max 100), source_type?: str }
|
||||
* - 后端响应均为 dict(JSON),无 StreamingResponse,无需 'blob'
|
||||
*/
|
||||
import { apiGet, apiAdminPost } from '../base'
|
||||
|
||||
@ -17,8 +17,7 @@ const URL = buildUrl(MODULE_PATHS.KEY_ROTATION)
|
||||
|
||||
// ===== 列表与查询 =====
|
||||
/** 分页列出密钥轮换策略 */
|
||||
export const getKeyRotationListApi = (params = {}) =>
|
||||
apiGet(`${URL}${buildQueryString(params)}`)
|
||||
export const getKeyRotationListApi = (params = {}) => apiGet(`${URL}${buildQueryString(params)}`)
|
||||
/** 查询策略统计聚合 */
|
||||
export const getKeyRotationStatsApi = (params = {}) =>
|
||||
apiGet(`${URL}/stats${buildQueryString(params)}`)
|
||||
@ -34,8 +33,7 @@ export const getExpiringKeyRotationsApi = (params = {}) =>
|
||||
/** 获取密钥轮换策略详情 */
|
||||
export const getKeyRotationDetailApi = (id) => apiGet(`${URL}/${id}`)
|
||||
/** 查询通知配置 */
|
||||
export const getKeyRotationNotifyConfigApi = (id) =>
|
||||
apiGet(`${URL}/${id}/notify-config`)
|
||||
export const getKeyRotationNotifyConfigApi = (id) => apiGet(`${URL}/${id}/notify-config`)
|
||||
|
||||
// ===== 增删改 =====
|
||||
/** 创建密钥轮换策略 */
|
||||
@ -55,6 +53,9 @@ export const precheckKeyRotationApi = (id) => apiPost(`${URL}/${id}/precheck`)
|
||||
export const executeKeyRotationApi = (id, data) => apiAdminPost(`${URL}/${id}/execute`, data)
|
||||
/** 重置策略状态 */
|
||||
export const resetKeyRotationApi = (id, data) => apiAdminPost(`${URL}/${id}/reset`, data)
|
||||
/** 切换策略状态(active <-> disabled) */
|
||||
export const toggleKeyRotationStatusApi = (id, data) =>
|
||||
apiAdminPost(`${URL}/${id}/toggle-status`, data)
|
||||
|
||||
// ===== 批量操作 =====
|
||||
/** 批量克隆密钥轮换策略 */
|
||||
|
||||
@ -1,6 +1,9 @@
|
||||
/**
|
||||
* 14-指标查询 API(8 端点)
|
||||
* 路径前缀:/metrics
|
||||
*
|
||||
* 对齐 system_api.js / dashboard_api.js:所有查询类 GET 端点透传 opts.signal,
|
||||
* 支持 composable 通过 AbortController 取消请求。
|
||||
*/
|
||||
import { apiGet, apiAdminDelete } from '../base'
|
||||
import { buildUrl, buildQueryString, MODULE_PATHS } from './base'
|
||||
@ -8,28 +11,28 @@ import { buildUrl, buildQueryString, MODULE_PATHS } from './base'
|
||||
const URL = buildUrl(MODULE_PATHS.METRICS)
|
||||
|
||||
// ===== 指标查询 =====
|
||||
export const getMetricsAggregateApi = (params = {}) =>
|
||||
apiGet(`${URL}/aggregate${buildQueryString(params)}`)
|
||||
export const getMetricsAggregateApi = (params = {}, opts = {}) =>
|
||||
apiGet(`${URL}/aggregate${buildQueryString(params)}`, { signal: opts.signal })
|
||||
|
||||
export const getMetricsTimeseriesApi = (params = {}) =>
|
||||
apiGet(`${URL}/timeseries${buildQueryString(params)}`)
|
||||
export const getMetricsTimeseriesApi = (params = {}, opts = {}) =>
|
||||
apiGet(`${URL}/timeseries${buildQueryString(params)}`, { signal: opts.signal })
|
||||
|
||||
export const getMetricsBySystemApi = (params = {}) =>
|
||||
apiGet(`${URL}/by-system${buildQueryString(params)}`)
|
||||
export const getMetricsBySystemApi = (params = {}, opts = {}) =>
|
||||
apiGet(`${URL}/by-system${buildQueryString(params)}`, { signal: opts.signal })
|
||||
|
||||
export const getMetricsByEnvApi = (params = {}) =>
|
||||
apiGet(`${URL}/by-env${buildQueryString(params)}`)
|
||||
export const getMetricsByEnvApi = (params = {}, opts = {}) =>
|
||||
apiGet(`${URL}/by-env${buildQueryString(params)}`, { signal: opts.signal })
|
||||
|
||||
export const getMetricsLatestApi = (params = {}) =>
|
||||
apiGet(`${URL}/latest${buildQueryString(params)}`)
|
||||
export const getMetricsLatestApi = (params = {}, opts = {}) =>
|
||||
apiGet(`${URL}/latest${buildQueryString(params)}`, { signal: opts.signal })
|
||||
|
||||
// ===== Prometheus 导出(返回文本,非 {success,data}) =====
|
||||
export const exportPrometheusMetricsApi = (params = {}) =>
|
||||
apiGet(`${URL}/prometheus${buildQueryString(params)}`, {}, true, 'text')
|
||||
export const exportPrometheusMetricsApi = (params = {}, opts = {}) =>
|
||||
apiGet(`${URL}/prometheus${buildQueryString(params)}`, { signal: opts.signal }, true, 'text')
|
||||
|
||||
// ===== 桶管理 =====
|
||||
export const cleanupMetricBucketsApi = (before) =>
|
||||
apiAdminDelete(`${URL}/buckets${buildQueryString({ before })}`)
|
||||
|
||||
export const getMetricBucketsApi = (params = {}) =>
|
||||
apiGet(`${URL}${buildQueryString(params)}`)
|
||||
export const getMetricBucketsApi = (params = {}, opts = {}) =>
|
||||
apiGet(`${URL}${buildQueryString(params)}`, { signal: opts.signal })
|
||||
|
||||
@ -14,7 +14,7 @@
|
||||
* created_by, updated_by, created_at, updated_at }
|
||||
* 注意:主键字段为 `id`(非 channel_id);config 中敏感字段已由后端脱敏为 `***`
|
||||
* - 列表响应:{ items: NotificationChannelOutput[], total, limit, offset }
|
||||
* - 统计响应:{ total, by_channel_type: {email, webhook, im},
|
||||
* - 统计响应:{ total, by_channel_type: {email, webhook, feishu, dingtalk},
|
||||
* by_enabled: {enabled: N, disabled: M} }
|
||||
* 注意:by_enabled 的 key 为字符串 'enabled' / 'disabled'(非布尔 true/false)
|
||||
*/
|
||||
@ -69,5 +69,4 @@ export const deleteNotificationChannelApi = (id) => apiAdminDelete(`${URL}/${id}
|
||||
* @param {number} id - 渠道主键
|
||||
* @param {Object} [data] - { message? } 自定义测试消息内容
|
||||
*/
|
||||
export const testNotificationChannelApi = (id, data = {}) =>
|
||||
apiAdminPost(`${URL}/${id}/test`, data)
|
||||
export const testNotificationChannelApi = (id, data = {}) => apiAdminPost(`${URL}/${id}/test`, data)
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/**
|
||||
* 15-配额管理 API(16 端点)
|
||||
* 15-配额管理 API(17 端点)
|
||||
* 路径前缀:/quotas
|
||||
*
|
||||
* 对齐后端 Router:backend/server/routers/external_systems/quota_router.py
|
||||
@ -50,9 +50,10 @@ export const resetQuotaApi = (id, data) => apiAdminPost(`${URL}/${id}/reset`, da
|
||||
/** 删除配额(user 由后端从当前管理员填充) */
|
||||
export const deleteQuotaApi = (id) => apiAdminDelete(`${URL}/${id}`)
|
||||
/** 按系统批量软删除配额 */
|
||||
export const deleteQuotasBySystemApi = (systemId) =>
|
||||
apiAdminDelete(`${URL}/by-system/${systemId}`)
|
||||
export const deleteQuotasBySystemApi = (systemId) => apiAdminDelete(`${URL}/by-system/${systemId}`)
|
||||
|
||||
// ===== 批量操作 =====
|
||||
/** 批量调整配额限额(updated_by 由后端从当前管理员填充) */
|
||||
export const batchAdjustQuotasApi = (data) => apiAdminPost(`${URL}/batch-adjust`, data)
|
||||
/** 批量删除配额(user 由后端从当前管理员填充) */
|
||||
export const batchDeleteQuotasApi = (data) => apiAdminDelete(`${URL}/batch`, { data })
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
*
|
||||
* 统一响应结构:{success: true, data: {...}}
|
||||
*/
|
||||
import { apiAdminGet, apiAdminPost, apiAdminDelete } from '../base'
|
||||
import { apiAdminGet, apiAdminPost, apiSuperAdminPost, apiSuperAdminDelete } from '../base'
|
||||
import { buildUrl, buildQueryString, MODULE_PATHS } from './base'
|
||||
|
||||
const URL = buildUrl(MODULE_PATHS.RECYCLE_BIN)
|
||||
@ -35,17 +35,16 @@ const URL = buildUrl(MODULE_PATHS.RECYCLE_BIN)
|
||||
* @param {string} [params.end_time] - 结束时间(ISO8601),按 deleted_at 过滤
|
||||
* @returns {Promise<{success: boolean, data: {items: Array, total: number, limit: number, offset: number, by_type: Object}}>}
|
||||
*/
|
||||
export const getTrashListApi = (params = {}) =>
|
||||
apiAdminGet(`${URL}${buildQueryString(params)}`)
|
||||
export const getTrashListApi = (params = {}) => apiAdminGet(`${URL}${buildQueryString(params)}`)
|
||||
|
||||
/**
|
||||
* 清理过期回收站(物理删除超过保留期的软删除资源)
|
||||
* 清理过期回收站(物理删除超过保留期的软删除资源,仅 superadmin)
|
||||
*
|
||||
* @param {Object} data - 请求体
|
||||
* @param {number} data.older_than_days - 保留期天数(≥1,默认 30)
|
||||
* @returns {Promise<{success: boolean, data: {purged_count: number, by_type: Object, cutoff_at: string}}>}
|
||||
*/
|
||||
export const purgeTrashApi = (data) => apiAdminPost(`${URL}/purge`, data)
|
||||
export const purgeTrashApi = (data) => apiSuperAdminPost(`${URL}/purge`, data)
|
||||
|
||||
/**
|
||||
* 恢复软删除资源
|
||||
@ -58,11 +57,28 @@ export const restoreTrashApi = (resourceType, resourceId) =>
|
||||
apiAdminPost(`${URL}/${resourceType}/${resourceId}/restore`)
|
||||
|
||||
/**
|
||||
* 物理删除资源(不可恢复)
|
||||
* 物理删除资源(不可恢复,仅 superadmin)
|
||||
*
|
||||
* @param {string} resourceType - 资源类型
|
||||
* @param {number} resourceId - 资源 ID
|
||||
* @returns {Promise<{success: boolean, data: {resource_type: string, resource_id: number, deleted: boolean}}>}
|
||||
*/
|
||||
export const hardDeleteTrashApi = (resourceType, resourceId) =>
|
||||
apiAdminDelete(`${URL}/${resourceType}/${resourceId}`)
|
||||
apiSuperAdminDelete(`${URL}/${resourceType}/${resourceId}`)
|
||||
|
||||
/**
|
||||
* 批量恢复软删除资源
|
||||
*
|
||||
* @param {Array<{resource_type: string, resource_id: number}>} items - 资源列表
|
||||
* @returns {Promise<{success: boolean, data: {total: number, success_count: number, failed: Array}}>}
|
||||
*/
|
||||
export const batchRestoreTrashApi = (items) => apiAdminPost(`${URL}/batch/restore`, { items })
|
||||
|
||||
/**
|
||||
* 批量物理删除资源(仅 superadmin)
|
||||
*
|
||||
* @param {Array<{resource_type: string, resource_id: number}>} items - 资源列表
|
||||
* @returns {Promise<{success: boolean, data: {total: number, success_count: number, failed: Array}}>}
|
||||
*/
|
||||
export const batchHardDeleteTrashApi = (items) =>
|
||||
apiSuperAdminPost(`${URL}/batch/hard-delete`, { items })
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/**
|
||||
* 01-系统管理 API(28 端点,后端另有 2 个已废弃端点 health/metrics 前端不暴露)
|
||||
* 01-系统管理 API(29 端点,后端另有 2 个已废弃端点 health/metrics 前端不暴露)
|
||||
* 路径前缀:/systems
|
||||
*
|
||||
* 对齐后端 Router:backend/server/routers/external_systems/system_router.py
|
||||
@ -16,7 +16,8 @@ import { buildUrl, buildQueryString, MODULE_PATHS } from './base'
|
||||
const URL = buildUrl(MODULE_PATHS.SYSTEM)
|
||||
|
||||
// ===== 列表与详情 =====
|
||||
export const getSystemListApi = (params = {}) => apiGet(`${URL}${buildQueryString(params)}`)
|
||||
export const getSystemListApi = (params = {}, opts = {}) =>
|
||||
apiGet(`${URL}${buildQueryString(params)}`, { signal: opts.signal, silent: opts.silent })
|
||||
export const createSystemApi = (data) => apiAdminPost(URL, data)
|
||||
export const getSystemDetailApi = (id) => apiGet(`${URL}/${id}`)
|
||||
export const updateSystemApi = (id, data) => apiAdminPut(`${URL}/${id}`, data)
|
||||
@ -27,14 +28,14 @@ export const deleteSystemApi = (id, cascade = false) =>
|
||||
export const exportSystemsApi = (params = {}) =>
|
||||
apiGet(`${URL}/export${buildQueryString(params)}`, {}, true, 'blob')
|
||||
export const getSystemStatsApi = () => apiGet(`${URL}/stats`)
|
||||
export const getSystemDashboardApi = () => apiGet(`${URL}/dashboard`)
|
||||
|
||||
// ===== 批量操作 =====
|
||||
export const batchEnabledSystemsApi = (data) => apiAdminPost(`${URL}/batch-enabled`, data)
|
||||
export const batchCloneSystemsApi = (data) => apiAdminPost(`${URL}/batch-clone`, data)
|
||||
|
||||
// ===== 熔断器状态 =====
|
||||
export const getSystemCircuitBreakersStatusApi = () =>
|
||||
apiGet(`${URL}/circuit-breakers/status`)
|
||||
export const getSystemCircuitBreakersStatusApi = () => apiGet(`${URL}/circuit-breakers/status`)
|
||||
|
||||
// ===== 启用/禁用 =====
|
||||
export const setSystemEnabledApi = (id, data) => apiAdminPatch(`${URL}/${id}/enabled`, data)
|
||||
@ -74,8 +75,7 @@ export const updateSystemSecretRefsApi = (id, data) => apiAdminPut(`${URL}/${id}
|
||||
|
||||
// ===== 配置校验 =====
|
||||
// 后端 validate_system_config 无 body 参数,仅靠路径 system_id 定位
|
||||
export const validateSystemConfigApi = (id) =>
|
||||
apiAdminPost(`${URL}/${id}/validate-config`)
|
||||
export const validateSystemConfigApi = (id) => apiAdminPost(`${URL}/${id}/validate-config`)
|
||||
|
||||
// ===== 资源汇总与影响分析 =====
|
||||
export const getSystemResourceSummaryApi = (id) => apiGet(`${URL}/${id}/resource-summary`)
|
||||
|
||||
@ -17,8 +17,7 @@ const URL = buildUrl(MODULE_PATHS.TEST_CASE)
|
||||
|
||||
// ===== 列表与详情 =====
|
||||
/** 分页列出测试用例 */
|
||||
export const getTestCaseListApi = (params = {}) =>
|
||||
apiGet(`${URL}${buildQueryString(params)}`)
|
||||
export const getTestCaseListApi = (params = {}) => apiGet(`${URL}${buildQueryString(params)}`)
|
||||
/** 获取测试用例详情 */
|
||||
export const getTestCaseDetailApi = (id) => apiGet(`${URL}/${id}`)
|
||||
/** 查询测试用例告警配置 */
|
||||
|
||||
@ -22,29 +22,36 @@ const URL = buildUrl(MODULE_PATHS.TOKEN)
|
||||
|
||||
// ===== 列表与详情 =====
|
||||
/** 分页列出 Token(支持 system_id/env_key/token_type/is_invalidated 过滤,DB 层下推) */
|
||||
export const getTokenListApi = (params = {}) => apiGet(`${URL}${buildQueryString(params)}`)
|
||||
export const getTokenListApi = (params = {}, options = {}) =>
|
||||
apiGet(`${URL}${buildQueryString(params)}`, options)
|
||||
/** 获取 Token 详情(access_token/refresh_token 脱敏,含 system_name/system_slug 上下文) */
|
||||
export const getTokenDetailApi = (id) => apiGet(`${URL}/${id}`)
|
||||
export const getTokenDetailApi = (id, options = {}) => apiGet(`${URL}/${id}`, options)
|
||||
|
||||
// ===== 失效管理 =====
|
||||
/** 失效单条 Token(admin 权限,幂等,已失效返回 409) */
|
||||
export const invalidateTokenApi = (id) => apiAdminPost(`${URL}/${id}/invalidate`)
|
||||
/** 按环境失效 Token(admin 权限,幂等,Body: {system_id, env_key}) */
|
||||
export const invalidateEnvironmentTokensApi = (data) => apiAdminPost(`${URL}/invalidate-environment`, data)
|
||||
export const invalidateEnvironmentTokensApi = (data) =>
|
||||
apiAdminPost(`${URL}/invalidate-environment`, data)
|
||||
|
||||
// ===== 使用与轮换预览 =====
|
||||
/** 查询 Token 使用记录(基于 ExternalToolExecution 关联查询) */
|
||||
export const getTokenUsageApi = (id, params = {}) =>
|
||||
apiGet(`${URL}/${id}/usage${buildQueryString(params)}`)
|
||||
/** 轮换影响范围预览(只读,返回 token_status + 受影响的系统/环境/工具/密钥轮换策略) */
|
||||
export const getTokenRotationPreviewApi = (id) => apiGet(`${URL}/${id}/rotation-preview`)
|
||||
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 = {}) => apiGet(`${URL}/stats${buildQueryString(params)}`)
|
||||
export const getTokenStatsApi = (params = {}, options = {}) =>
|
||||
apiGet(`${URL}/stats${buildQueryString(params)}`, options)
|
||||
/** 查询 Token 变更历史(system_id 必填,基于审计日志,含刷新成功/失败事件) */
|
||||
export const getTokenHistoryApi = (params = {}) => apiGet(`${URL}/history${buildQueryString(params)}`)
|
||||
export const getTokenHistoryApi = (params = {}, options = {}) =>
|
||||
apiGet(`${URL}/history${buildQueryString(params)}`, options)
|
||||
|
||||
// ===== 过期预警 =====
|
||||
/** 查询即将过期的 Token(days 默认 7,范围 1-90,system_id 透传 DB 层过滤) */
|
||||
export const getExpiringTokensApi = (params = {}) => apiGet(`${URL}/expiring${buildQueryString(params)}`)
|
||||
export const getExpiringTokensApi = (params = {}, options = {}) =>
|
||||
apiGet(`${URL}/expiring${buildQueryString(params)}`, options)
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/**
|
||||
* 02-工具管理 API(22 端点)
|
||||
* 02-工具管理 API
|
||||
* 路径前缀:/tools
|
||||
*
|
||||
* 对齐 backend/server/routers/external_systems/tool_router.py:
|
||||
@ -7,7 +7,6 @@
|
||||
* - execute / batch-execute 后端用 get_required_user(执行类操作,非写操作)
|
||||
* - get_tool / delete_tool 接受可选 system_id query
|
||||
* - export-wsdl 后端返回普通 JSON(非 StreamingResponse),system_id 必填
|
||||
* - export 后端返回 StreamingResponse,需用 blob 接收
|
||||
* - health-check 后端用 get_admin_user,请求体可选 env_key
|
||||
*/
|
||||
import { apiGet, apiPost, apiAdminPost, apiAdminPut, apiAdminDelete } from '../base'
|
||||
@ -24,18 +23,14 @@ export const updateToolApi = (id, data) => apiAdminPut(`${URL}/${id}`, data)
|
||||
export const deleteToolApi = (id, systemId) =>
|
||||
apiAdminDelete(`${URL}/${id}${buildQueryString({ system_id: systemId })}`)
|
||||
|
||||
// ===== 选项与启用列表 =====
|
||||
export const getEnabledToolsApi = (params = {}) =>
|
||||
apiGet(`${URL}/enabled${buildQueryString(params)}`)
|
||||
// ===== 选项 =====
|
||||
export const getToolOptionsApi = (params = {}) =>
|
||||
apiGet(`${URL}/options${buildQueryString(params)}`)
|
||||
|
||||
// ===== 导入导出 =====
|
||||
// 后端 export_tools 返回 StreamingResponse(application/octet-stream)
|
||||
export const exportToolsApi = (params = {}) =>
|
||||
apiGet(`${URL}/export${buildQueryString(params)}`, {}, true, 'blob')
|
||||
// 后端 export_wsdl 返回普通 JSON,system_id 必填
|
||||
export const exportToolWsdlApi = (params = {}) => apiGet(`${URL}/export-wsdl${buildQueryString(params)}`)
|
||||
export const exportToolWsdlApi = (params = {}) =>
|
||||
apiGet(`${URL}/export-wsdl${buildQueryString(params)}`)
|
||||
export const importToolsApi = (data) => apiAdminPost(`${URL}/import`, data)
|
||||
export const importToolsFromWsdlApi = (data) => apiAdminPost(`${URL}/import-from-wsdl`, data)
|
||||
|
||||
@ -46,8 +41,7 @@ export const batchExecuteToolsApi = (data) => apiPost(`${URL}/batch-execute`, da
|
||||
|
||||
// ===== 健康检查 =====
|
||||
// 后端 health_check_external_tool 用 get_admin_user,请求体可选 env_key
|
||||
export const healthCheckToolApi = (id, data = {}) =>
|
||||
apiAdminPost(`${URL}/${id}/health-check`, data)
|
||||
export const healthCheckToolApi = (id, data = {}) => apiAdminPost(`${URL}/${id}/health-check`, data)
|
||||
|
||||
// ===== 批量克隆 =====
|
||||
export const batchCloneToolsApi = (data) => apiAdminPost(`${URL}/batch-clone`, data)
|
||||
@ -60,12 +54,10 @@ export const getToolVersionsApi = (id, params = {}) =>
|
||||
apiGet(`${URL}/${id}/versions${buildQueryString(params)}`)
|
||||
export const compareToolVersionsApi = (id, v1, v2) =>
|
||||
apiGet(`${URL}/${id}/versions/${v1}/compare/${v2}`)
|
||||
export const rollbackToolVersionApi = (id, v) =>
|
||||
apiAdminPost(`${URL}/${id}/versions/${v}/rollback`)
|
||||
export const rollbackToolVersionApi = (id, v) => apiAdminPost(`${URL}/${id}/versions/${v}/rollback`)
|
||||
|
||||
// ===== 参数模板与执行趋势 =====
|
||||
export const getToolParameterTemplateApi = (id) =>
|
||||
apiGet(`${URL}/${id}/parameter-template`)
|
||||
export const getToolParameterTemplateApi = (id) => apiGet(`${URL}/${id}/parameter-template`)
|
||||
export const getToolExecutionTrendApi = (id, params = {}) =>
|
||||
apiGet(`${URL}/${id}/execution-trend${buildQueryString(params)}`)
|
||||
|
||||
|
||||
@ -16,8 +16,7 @@ import { buildUrl, buildQueryString, MODULE_PATHS } from './base'
|
||||
const URL = buildUrl(MODULE_PATHS.VENDOR_INTEGRATION)
|
||||
|
||||
// ===== 列表与元数据 =====
|
||||
export const getVendorListApi = (params = {}) =>
|
||||
apiGet(`${URL}${buildQueryString(params)}`)
|
||||
export const getVendorListApi = (params = {}) => apiGet(`${URL}${buildQueryString(params)}`)
|
||||
export const getVendorOverviewApi = () => apiGet(`${URL}/overview`)
|
||||
export const getVendorCategoriesApi = () => apiGet(`${URL}/categories`)
|
||||
export const getVendorAdapterTypesApi = () => apiGet(`${URL}/adapter-types`)
|
||||
@ -26,6 +25,5 @@ export const getVendorSourceTypesApi = () => apiGet(`${URL}/source-types`)
|
||||
// ===== 详情与子资源 =====
|
||||
export const getVendorDetailApi = (key) => apiGet(`${URL}/${key}`)
|
||||
export const getVendorOperationsApi = (key) => apiGet(`${URL}/${key}/operations`)
|
||||
export const getVendorConnectionSchemaApi = (key) =>
|
||||
apiGet(`${URL}/${key}/connection-schema`)
|
||||
export const getVendorConnectionSchemaApi = (key) => apiGet(`${URL}/${key}/connection-schema`)
|
||||
export const getVendorExampleConfigApi = (key) => apiGet(`${URL}/${key}/example-config`)
|
||||
|
||||
@ -23,22 +23,18 @@ const URL = buildUrl(MODULE_PATHS.WEBHOOK)
|
||||
export const getWebhookSubscriptionListApi = (params = {}) =>
|
||||
apiGet(`${URL}/subscriptions${buildQueryString(params)}`)
|
||||
/** 获取 Webhook 订阅详情 */
|
||||
export const getWebhookSubscriptionDetailApi = (id) =>
|
||||
apiGet(`${URL}/subscriptions/${id}`)
|
||||
export const getWebhookSubscriptionDetailApi = (id) => apiGet(`${URL}/subscriptions/${id}`)
|
||||
/** 创建 Webhook 订阅 */
|
||||
export const createWebhookSubscriptionApi = (data) =>
|
||||
apiAdminPost(`${URL}/subscriptions`, data)
|
||||
export const createWebhookSubscriptionApi = (data) => apiAdminPost(`${URL}/subscriptions`, data)
|
||||
/** 更新 Webhook 订阅(部分更新) */
|
||||
export const updateWebhookSubscriptionApi = (id, data) =>
|
||||
apiAdminPut(`${URL}/subscriptions/${id}`, data)
|
||||
/** 删除 Webhook 订阅 */
|
||||
export const deleteWebhookSubscriptionApi = (id) =>
|
||||
apiAdminDelete(`${URL}/subscriptions/${id}`)
|
||||
export const deleteWebhookSubscriptionApi = (id) => apiAdminDelete(`${URL}/subscriptions/${id}`)
|
||||
|
||||
// ===== 订阅续期与筛选快捷入口 =====
|
||||
/** 续期 Webhook 订阅 */
|
||||
export const renewWebhookSubscriptionApi = (id) =>
|
||||
apiAdminPost(`${URL}/subscriptions/${id}/renew`)
|
||||
export const renewWebhookSubscriptionApi = (id) => apiAdminPost(`${URL}/subscriptions/${id}/renew`)
|
||||
/** 列出即将过期的 Webhook 订阅 */
|
||||
export const getExpiringWebhookSubscriptionsApi = (params = {}) =>
|
||||
apiGet(`${URL}/subscriptions/expiring${buildQueryString(params)}`)
|
||||
@ -48,8 +44,7 @@ export const getWebhookRenewalFailuresApi = (params = {}) =>
|
||||
|
||||
// ===== 过滤规则 / 转换规则 =====
|
||||
/** 获取 Webhook 订阅过滤规则 */
|
||||
export const getWebhookFilterRulesApi = (id) =>
|
||||
apiGet(`${URL}/subscriptions/${id}/filter-rules`)
|
||||
export const getWebhookFilterRulesApi = (id) => apiGet(`${URL}/subscriptions/${id}/filter-rules`)
|
||||
/** 更新 Webhook 订阅过滤规则 */
|
||||
export const updateWebhookFilterRulesApi = (id, data) =>
|
||||
apiAdminPut(`${URL}/subscriptions/${id}/filter-rules`, data)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user