feat: 支持 ONLYOFFICE 持久化配置管理
- 添加 SettingsRenderForm schema 和 renderForm 字段 - 实现数据库 schema 自动迁移(onlyoffice_enabled, onlyoffice_public_url, onlyoffice_jwt_secret_encrypted) - 新增 resolve_onlyoffice_settings() 函数支持运行时配置解析 - 知识库服务改用数据库配置替代运行时配置 - 前端添加文件渲染配置页面,支持 JWT 密钥管理 - 完善相关测试覆盖
This commit is contained in:
@@ -110,6 +110,20 @@ class SettingsLogForm(BaseModel):
|
||||
return value.strip()
|
||||
|
||||
|
||||
class SettingsRenderForm(BaseModel):
|
||||
enabled: bool = False
|
||||
publicUrl: str = Field(default="", max_length=512)
|
||||
jwtSecret: str = Field(default="", max_length=1024)
|
||||
jwtSecretConfigured: bool = False
|
||||
|
||||
@field_validator("publicUrl", "jwtSecret", mode="before")
|
||||
@classmethod
|
||||
def strip_string(cls, value: str | None) -> str | None:
|
||||
if value is None:
|
||||
return None
|
||||
return value.strip()
|
||||
|
||||
|
||||
class SettingsMailForm(BaseModel):
|
||||
smtpHost: str = Field(min_length=1, max_length=255)
|
||||
port: int = Field(default=465, ge=1, le=65535)
|
||||
@@ -146,6 +160,7 @@ class SettingsRead(BaseModel):
|
||||
companyForm: SettingsCompanyForm
|
||||
adminForm: SettingsAdminForm
|
||||
llmForm: SettingsLlmForm
|
||||
renderForm: SettingsRenderForm
|
||||
logForm: SettingsLogForm
|
||||
mailForm: SettingsMailForm
|
||||
|
||||
@@ -154,6 +169,7 @@ class SettingsWrite(BaseModel):
|
||||
companyForm: SettingsCompanyForm
|
||||
adminForm: SettingsAdminForm
|
||||
llmForm: SettingsLlmForm
|
||||
renderForm: SettingsRenderForm
|
||||
logForm: SettingsLogForm
|
||||
mailForm: SettingsMailForm
|
||||
|
||||
|
||||
Reference in New Issue
Block a user