mirror of
https://github.com/fawney19/Aether.git
synced 2026-09-02 17:30:23 +08:00
feat: OAuth 账户管理、维护调度、端点健康检查增强及前端优化
- 新增 OAuth 账户管理对话框和提供商详情抽屉中的 OAuth 信息展示 - 新增维护调度器(maintenance_scheduler)支持定时清理和健康检查 - 增强端点健康检查器,支持更多检测策略 - 重构 codex 服务为 metadata_collectors 模块 - 优化 OpenAI CLI normalizer 代码结构 - 前端: 改进使用量表格、统计图表、指南页面和异步任务管理 - 扩展多个数据库字符串列为 TEXT 类型 - 新增倒计时 composable 和 provider OAuth API 端点
This commit is contained in:
@@ -1391,6 +1391,13 @@ class ProviderAPIKey(Base):
|
||||
model_include_patterns = Column(JSON, nullable=True) # 包含规则列表,空表示不过滤(包含所有)
|
||||
model_exclude_patterns = Column(JSON, nullable=True) # 排除规则列表,空表示不排除
|
||||
|
||||
# 上游元数据(由响应头解析器采集,如 Codex 额度信息)
|
||||
upstream_metadata = Column(JSON, nullable=True, default=dict)
|
||||
|
||||
# OAuth 失效状态(账号被封、授权撤销、刷新失败等)
|
||||
oauth_invalid_at = Column(DateTime(timezone=True), nullable=True) # 失效时间
|
||||
oauth_invalid_reason = Column(String(255), nullable=True) # 失效原因
|
||||
|
||||
# 时间戳
|
||||
created_at = Column(
|
||||
DateTime(timezone=True), default=lambda: datetime.now(timezone.utc), nullable=False
|
||||
|
||||
@@ -154,9 +154,7 @@ class ProviderEndpointResponse(BaseModel):
|
||||
header_rules: list[HeaderRule] | None = Field(default=None, description="请求头规则列表")
|
||||
|
||||
# 请求体配置
|
||||
body_rules: list[BodyRule] | None = Field(
|
||||
default=None, description="请求体规则列表"
|
||||
)
|
||||
body_rules: list[BodyRule] | None = Field(default=None, description="请求体规则列表")
|
||||
|
||||
max_retries: int
|
||||
|
||||
@@ -514,7 +512,18 @@ class EndpointAPIKeyResponse(BaseModel):
|
||||
capabilities: dict[str, bool] | None = Field(default=None, description="Key 能力标签")
|
||||
|
||||
# OAuth 相关
|
||||
oauth_expires_at: int | None = Field(default=None, description="OAuth Token 过期时间(Unix 时间戳)")
|
||||
oauth_expires_at: int | None = Field(
|
||||
default=None, description="OAuth Token 过期时间(Unix 时间戳)"
|
||||
)
|
||||
oauth_email: str | None = Field(default=None, description="OAuth 账号邮箱")
|
||||
oauth_plan_type: str | None = Field(
|
||||
default=None, description="OAuth 账号套餐类型(如 free/plus/team/enterprise)"
|
||||
)
|
||||
oauth_account_id: str | None = Field(default=None, description="OAuth 账号 ID")
|
||||
oauth_invalid_at: int | None = Field(
|
||||
default=None, description="OAuth Token 失效时间(Unix 时间戳),如账号被封、授权撤销等"
|
||||
)
|
||||
oauth_invalid_reason: str | None = Field(default=None, description="OAuth Token 失效原因")
|
||||
|
||||
# 缓存与熔断配置
|
||||
cache_ttl_minutes: int = Field(default=5, description="缓存 TTL(分钟),0=禁用")
|
||||
@@ -576,6 +585,11 @@ class EndpointAPIKeyResponse(BaseModel):
|
||||
model_include_patterns: list[str] | None = Field(None, description="模型包含规则")
|
||||
model_exclude_patterns: list[str] | None = Field(None, description="模型排除规则")
|
||||
|
||||
# 上游元数据(由响应头采集,如 Codex 额度信息)
|
||||
upstream_metadata: dict[str, Any] | None = Field(
|
||||
None, description="上游元数据(如 Codex 额度信息)"
|
||||
)
|
||||
|
||||
# 时间戳
|
||||
last_used_at: datetime | None = None
|
||||
created_at: datetime
|
||||
@@ -701,7 +715,9 @@ class ProviderWithEndpointsSummary(BaseModel):
|
||||
# Provider 基本信息
|
||||
id: str
|
||||
name: str
|
||||
provider_type: str | None = Field(default=None, description="Provider 类型(custom/claude_code/codex/gemini_cli/antigravity)")
|
||||
provider_type: str | None = Field(
|
||||
default=None, description="Provider 类型(custom/claude_code/codex/gemini_cli/antigravity)"
|
||||
)
|
||||
description: str | None = None
|
||||
website: str | None = None
|
||||
provider_priority: int = Field(default=100, description="提供商优先级(数字越小越优先)")
|
||||
|
||||
Reference in New Issue
Block a user