feat: 平台预设字典+凭证加密+分库备份+Agent采集+移动端优先前端重做
This commit is contained in:
+29
-1
@@ -30,6 +30,11 @@ class VPSDetailIn(SQLModel):
|
||||
bandwidth_gb: Optional[int] = None
|
||||
ssh_port: int = 22
|
||||
panel_url: Optional[str] = None
|
||||
ssh_user: Optional[str] = None
|
||||
login_method: Optional[str] = "key"
|
||||
ssh_key: Optional[str] = None # 明文输入,服务端加密存储
|
||||
password: Optional[str] = None # 明文输入,服务端加密存储
|
||||
purpose: Optional[str] = None
|
||||
|
||||
|
||||
class DomainDetailIn(SQLModel):
|
||||
@@ -41,6 +46,7 @@ class DomainDetailIn(SQLModel):
|
||||
cloudflare_account: Optional[str] = None
|
||||
is_using: bool = True
|
||||
redirect_target: Optional[str] = None
|
||||
bind_asset_id: Optional[int] = None
|
||||
|
||||
|
||||
class AIAccountIn(SQLModel):
|
||||
@@ -64,6 +70,8 @@ class AssetBase(SQLModel):
|
||||
name: str
|
||||
asset_type: AssetType
|
||||
provider: str
|
||||
provider_id: Optional[int] = None
|
||||
renewal_cycle: Optional[str] = None
|
||||
account: Optional[str] = None
|
||||
expiry_date: Optional[date] = None
|
||||
auto_renew: bool = False
|
||||
@@ -88,6 +96,8 @@ class AssetUpdate(SQLModel):
|
||||
name: Optional[str] = None
|
||||
asset_type: Optional[AssetType] = None
|
||||
provider: Optional[str] = None
|
||||
provider_id: Optional[int] = None
|
||||
renewal_cycle: Optional[str] = None
|
||||
account: Optional[str] = None
|
||||
expiry_date: Optional[date] = None
|
||||
auto_renew: Optional[bool] = None
|
||||
@@ -104,9 +114,26 @@ class AssetUpdate(SQLModel):
|
||||
# --------------------------------------------------------------------------- #
|
||||
# 输出模型
|
||||
# --------------------------------------------------------------------------- #
|
||||
class VPSDetailRead(VPSDetailIn):
|
||||
class VPSDetailRead(SQLModel):
|
||||
"""VPS 详情输出(不含敏感明文,仅返回凭证存在标记)"""
|
||||
|
||||
id: int
|
||||
asset_id: int
|
||||
ip_address: str
|
||||
tailscale_ip: Optional[str] = None
|
||||
region: Optional[str] = None
|
||||
os: Optional[str] = None
|
||||
cpu_cores: int = 1
|
||||
memory_gb: float = 1
|
||||
disk_gb: int = 20
|
||||
bandwidth_gb: Optional[int] = None
|
||||
ssh_port: int = 22
|
||||
panel_url: Optional[str] = None
|
||||
ssh_user: Optional[str] = None
|
||||
login_method: Optional[str] = "key"
|
||||
purpose: Optional[str] = None
|
||||
has_ssh_key: bool = False
|
||||
has_password: bool = False
|
||||
|
||||
|
||||
class DomainDetailRead(DomainDetailIn):
|
||||
@@ -127,6 +154,7 @@ class AssetRead(AssetBase):
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
days_to_expiry: Optional[int] = None
|
||||
provider_name: Optional[str] = None
|
||||
vps_detail: Optional[VPSDetailRead] = None
|
||||
domain_detail: Optional[DomainDetailRead] = None
|
||||
ai_detail: Optional[AIAccountRead] = None
|
||||
|
||||
Reference in New Issue
Block a user