mirror of
https://github.com/fawney19/Aether.git
synced 2026-09-02 09:20:22 +08:00
feat(fingerprint): 引入 per-key 请求指纹系统,替代全局 TLS 指纹开关
为每个 ProviderAPIKey 生成并持久化独立的请求指纹配置,涵盖 TLS impersonate profile、浏览器 UA、Stainless SDK 头部、Node/Chrome/Electron 版本等维度。 指纹基于 key ID 确定性生成,支持手动编辑和批量重新生成。 - 新增 fingerprint 模块:生成、加载、校验、懒持久化 - 数据库迁移:provider_api_keys 新增 fingerprint JSON 列 - 请求链路注入:handler 基类设置上下文指纹,request_builder 和 envelope 消费 - HTTP Client 支持动态 impersonate profile 选择 - Antigravity 适配器使用指纹覆盖 UA/session/Node 版本 - 前端移除手动 TLS 指纹开关,新增批量 regenerate_fingerprint 操作 - 号池管理 UI 优化:token 缩写格式、blocked 行样式、时间显示改为日期格式
This commit is contained in:
@@ -1660,6 +1660,9 @@ class ProviderAPIKey(ExportMixin, Base):
|
||||
# null 表示使用 Provider 级别代理(默认行为)
|
||||
proxy = Column(JSON, nullable=True, default=None)
|
||||
|
||||
# 每个账号持久化的请求指纹配置(TLS impersonate + HTTP header 维度)
|
||||
fingerprint = Column(JSON, nullable=True, default=None)
|
||||
|
||||
# 时间戳
|
||||
created_at = Column(
|
||||
DateTime(timezone=True), default=lambda: datetime.now(timezone.utc), nullable=False
|
||||
|
||||
@@ -654,6 +654,10 @@ class EndpointAPIKeyUpdate(BaseModel):
|
||||
default=None,
|
||||
description="Key 级别代理配置(覆盖 Provider 级别代理),null=使用 Provider 级别代理",
|
||||
)
|
||||
fingerprint: dict[str, Any] | None = Field(
|
||||
default=None,
|
||||
description="请求指纹配置(TLS + HTTP 头部)",
|
||||
)
|
||||
|
||||
@field_validator("api_formats")
|
||||
@classmethod
|
||||
@@ -823,6 +827,10 @@ class EndpointAPIKeyResponse(BaseModel):
|
||||
proxy: dict[str, Any] | None = Field(
|
||||
None, description="Key 级别代理配置(覆盖 Provider 级别代理)"
|
||||
)
|
||||
fingerprint: dict[str, Any] | None = Field(
|
||||
None,
|
||||
description="请求指纹配置(TLS + HTTP 头部)",
|
||||
)
|
||||
|
||||
# 时间戳
|
||||
last_used_at: datetime | None = None
|
||||
|
||||
Reference in New Issue
Block a user