mirror of
https://github.com/fawney19/Aether.git
synced 2026-09-02 09:20:22 +08:00
feat: OAuth 账户管理、维护调度、端点健康检查增强及前端优化
- 新增 OAuth 账户管理对话框和提供商详情抽屉中的 OAuth 信息展示 - 新增维护调度器(maintenance_scheduler)支持定时清理和健康检查 - 增强端点健康检查器,支持更多检测策略 - 重构 codex 服务为 metadata_collectors 模块 - 优化 OpenAI CLI normalizer 代码结构 - 前端: 改进使用量表格、统计图表、指南页面和异步任务管理 - 扩展多个数据库字符串列为 TEXT 类型 - 新增倒计时 composable 和 provider OAuth API 端点
This commit is contained in:
@@ -25,6 +25,7 @@ export interface ProviderOAuthCompleteResponse {
|
||||
provider_type: string
|
||||
expires_at?: number | null
|
||||
has_refresh_token: boolean
|
||||
email?: string | null
|
||||
}
|
||||
|
||||
export async function getProviderOAuthSupportedTypes(): Promise<ProviderOAuthSupportedType[]> {
|
||||
@@ -49,3 +50,31 @@ export async function refreshProviderOAuth(keyId: string): Promise<ProviderOAuth
|
||||
const resp = await client.post(`/api/admin/provider-oauth/keys/${keyId}/refresh`)
|
||||
return resp.data
|
||||
}
|
||||
|
||||
// Provider-level OAuth (不需要预先创建 key)
|
||||
|
||||
export interface ProviderOAuthCompleteRequest {
|
||||
callback_url: string
|
||||
name?: string
|
||||
}
|
||||
|
||||
export interface ProviderOAuthCompleteResponseWithKey {
|
||||
key_id: string
|
||||
provider_type: string
|
||||
expires_at?: number | null
|
||||
has_refresh_token: boolean
|
||||
email?: string | null
|
||||
}
|
||||
|
||||
export async function startProviderLevelOAuth(providerId: string): Promise<ProviderOAuthStartResponse> {
|
||||
const resp = await client.post(`/api/admin/provider-oauth/providers/${providerId}/start`)
|
||||
return resp.data
|
||||
}
|
||||
|
||||
export async function completeProviderLevelOAuth(
|
||||
providerId: string,
|
||||
data: ProviderOAuthCompleteRequest
|
||||
): Promise<ProviderOAuthCompleteResponseWithKey> {
|
||||
const resp = await client.post(`/api/admin/provider-oauth/providers/${providerId}/complete`, data)
|
||||
return resp.data
|
||||
}
|
||||
|
||||
@@ -249,6 +249,28 @@ export interface EndpointAPIKey {
|
||||
model_exclude_patterns?: string[] // 模型排除规则(支持 * 和 ? 通配符)
|
||||
// OAuth 相关
|
||||
oauth_expires_at?: number | null // OAuth Token 过期时间(Unix 时间戳)
|
||||
oauth_email?: string | null // OAuth 授权的邮箱
|
||||
oauth_plan_type?: string | null // Codex 订阅类型: plus/free/team/enterprise
|
||||
oauth_account_id?: string | null // Codex ChatGPT 账号 ID
|
||||
oauth_invalid_at?: number | null // OAuth Token 失效时间(Unix 时间戳)
|
||||
oauth_invalid_reason?: string | null // OAuth Token 失效原因
|
||||
// 上游元数据(由响应头采集,如 Codex 额度信息)
|
||||
upstream_metadata?: CodexUpstreamMetadata | null
|
||||
}
|
||||
|
||||
// Codex 上游元数据类型
|
||||
export interface CodexUpstreamMetadata {
|
||||
plan_type?: string // 套餐类型
|
||||
primary_used_percent?: number // 主限额窗口使用百分比
|
||||
primary_reset_seconds?: number // 主限额重置剩余秒数
|
||||
primary_reset_at?: number // 主限额重置时间(Unix 时间戳)
|
||||
primary_window_minutes?: number // 主限额窗口大小(分钟)
|
||||
secondary_used_percent?: number // 次级限额窗口使用百分比
|
||||
secondary_reset_seconds?: number // 次级限额重置剩余秒数
|
||||
secondary_reset_at?: number // 次级限额重置时间(Unix 时间戳)
|
||||
secondary_window_minutes?: number // 次级限额窗口大小(分钟)
|
||||
has_credits?: boolean // 是否有积分
|
||||
credits_balance?: number // 积分余额
|
||||
}
|
||||
|
||||
// 按格式的健康度数据
|
||||
|
||||
Reference in New Issue
Block a user