feat: 综合平台services多服务支持+SW网络优先缓存修复+适配层/定时任务完善

This commit is contained in:
gouki
2026-08-05 11:57:17 +00:00
parent 7f1268f508
commit 1b7d4823c3
47 changed files with 2895 additions and 1189 deletions
+3 -1
View File
@@ -2,6 +2,7 @@
from typing import List, Optional
from pydantic import Field
from sqlmodel import SQLModel
@@ -40,4 +41,5 @@ class AgentReport(SQLModel):
asset_id: int
metrics: Optional[MetricsIn] = None
server_info: Optional[ServerInfoIn] = None
security: Optional[List[SecurityCheckIn]] = None
# 限制单次上报的检查项数量,防止恶意/异常 Agent 发送超大数组撑爆内存
security: Optional[List[SecurityCheckIn]] = Field(default=None, max_length=100)
+2
View File
@@ -13,6 +13,7 @@ class ProviderBase(SQLModel):
name: str
name_en: Optional[str] = None
category: ProviderCategory
services: Optional[str] = None
website: Optional[str] = None
console_url: Optional[str] = None
sdk_type: Optional[str] = None
@@ -31,6 +32,7 @@ class ProviderUpdate(SQLModel):
name: Optional[str] = None
name_en: Optional[str] = None
category: Optional[ProviderCategory] = None
services: Optional[str] = None
website: Optional[str] = None
console_url: Optional[str] = None
sdk_type: Optional[str] = None
+28
View File
@@ -0,0 +1,28 @@
"""SSL 相关请求模型"""
from typing import Optional
from pydantic import BaseModel, Field
class SubdomainCreate(BaseModel):
asset_id: int = Field(description="所属域名资产 ID")
host: str = Field(min_length=1, max_length=63, description="子域名主机名,如 www/api(@ 表示根域名)")
record_type: Optional[str] = Field(default=None, description="DNS 记录类型")
record_value: Optional[str] = Field(default=None, description="DNS 记录值")
is_active: bool = Field(default=True, description="是否启用")
note: Optional[str] = Field(default=None, description="备注")
class SubdomainUpdate(BaseModel):
host: Optional[str] = Field(default=None, min_length=1, max_length=63)
record_type: Optional[str] = Field(default=None)
record_value: Optional[str] = Field(default=None)
is_active: Optional[bool] = Field(default=None)
note: Optional[str] = Field(default=None)
class SiteCertCreate(BaseModel):
hostname: str = Field(min_length=1, max_length=253, description="探测目标主机名")
port: int = Field(default=443, ge=1, le=65535, description="探测端口")
asset_id: Optional[int] = Field(default=None, description="关联资产 ID(可选)")