This commit is contained in:
riglen
2026-04-21 16:56:06 +08:00
parent 05e0355e14
commit d5cfae22ea
14 changed files with 1404 additions and 15 deletions

View File

@@ -67,3 +67,81 @@ class ConfBaseConfig(BaseModel):
groups: list[ConfGroup] = Field(default_factory=list)
modules: list[ConfModule] = Field(default_factory=list)
builtins: list[ConfBuiltin] = Field(default_factory=list)
class ConfPolicyOverride(BaseModel):
module_key: str
policy: str
line_no: int
class ConfInlineRule(BaseModel):
value: str
line_no: int
class ConfProfileConfig(BaseModel):
name: str | None = None
enabled: bool = True
sources: list[str] = Field(default_factory=list)
include_modules: list[str] = Field(default_factory=list)
exclude_modules: list[str] = Field(default_factory=list)
include_builtins: list[str] = Field(default_factory=list)
override_policies: list[ConfPolicyOverride] = Field(default_factory=list)
prepend_rules: list[ConfInlineRule] = Field(default_factory=list)
append_rules: list[ConfInlineRule] = Field(default_factory=list)
class ConfResolvedSource(BaseModel):
key: str
display_name: str
source_type: str
value: str
enabled: bool = True
cache_ttl: int | None = None
options: dict[str, str] = Field(default_factory=dict)
class ConfResolvedModule(BaseModel):
key: str
path: str
policy: str
order: int
enabled: bool = True
class ConfResolvedBuiltin(BaseModel):
key: str
rule_line: str
policy: str
order: int
enabled: bool = True
class ConfResolvedGroup(BaseModel):
name: str
group_type: str
members: list[str] = Field(default_factory=list)
selector_key: str | None = None
url: str | None = None
interval: int | None = None
tolerance: int | None = None
raw: str
class ConfRuntimePlan(BaseModel):
profile_key: str
profile_name: str | None = None
selected_sources: list[ConfResolvedSource] = Field(default_factory=list)
selected_modules: list[ConfResolvedModule] = Field(default_factory=list)
selected_builtins: list[ConfResolvedBuiltin] = Field(default_factory=list)
selectors: dict[str, str] = Field(default_factory=dict)
groups: list[ConfResolvedGroup] = Field(default_factory=list)
prepend_rules: list[str] = Field(default_factory=list)
append_rules: list[str] = Field(default_factory=list)
mode: str | None = None
allow_lan: bool | None = None
log_level: str | None = None
ipv6: bool | None = None
append_userinfo_header: bool | None = None
userinfo_source_policy: str | None = None