chore: sync GovOPlaN module split state

This commit is contained in:
2026-07-10 12:51:16 +02:00
parent 0f2a9beca7
commit 970625edff
43 changed files with 2959 additions and 518 deletions

View File

@@ -5,6 +5,8 @@ from typing import Any, Literal
from pydantic import BaseModel, ConfigDict, Field, field_validator
from govoplan_core.api.v1.schemas import DeltaDeletedItem
RETENTION_DAY_KEYS = (
"raw_campaign_json_retention_days",
@@ -65,6 +67,14 @@ class MaintenanceModeItem(BaseModel):
message: str | None = Field(default=None, max_length=500)
class LanguagePackageItem(BaseModel):
model_config = ConfigDict(extra="forbid")
code: str = Field(min_length=1, max_length=20)
label: str = Field(min_length=1, max_length=100)
native_label: str | None = Field(default=None, max_length=100)
class AdminOverviewResponse(BaseModel):
active_tenant_id: str
active_tenant_name: str
@@ -87,9 +97,21 @@ class SystemSettingsItem(BaseModel):
allow_tenant_api_keys: bool = True
privacy_retention_policy: PrivacyRetentionPolicyItem = Field(default_factory=PrivacyRetentionPolicyItem)
maintenance_mode: MaintenanceModeItem = Field(default_factory=MaintenanceModeItem)
available_languages: list[LanguagePackageItem] = Field(default_factory=list)
enabled_language_codes: list[str] = Field(default_factory=list)
settings: dict[str, Any] = Field(default_factory=dict)
class SystemSettingsDeltaResponse(BaseModel):
item: SystemSettingsItem | None = None
sections: dict[str, Any] = Field(default_factory=dict)
changed_sections: list[str] = Field(default_factory=list)
deleted: list[DeltaDeletedItem] = Field(default_factory=list)
watermark: str | None = None
has_more: bool = False
full: bool = False
class SystemSettingsUpdateRequest(BaseModel):
model_config = ConfigDict(extra="forbid")
@@ -99,6 +121,9 @@ class SystemSettingsUpdateRequest(BaseModel):
allow_tenant_api_keys: bool
privacy_retention_policy: PrivacyRetentionPolicyItem | None = None
maintenance_mode: MaintenanceModeItem | None = None
available_languages: list[LanguagePackageItem] | None = None
enabled_language_codes: list[str] | None = None
change_request_id: str | None = None
class ModuleCatalogItem(BaseModel):
@@ -143,6 +168,7 @@ class ModuleStateUpdateRequest(BaseModel):
model_config = ConfigDict(extra="forbid")
enabled_modules: list[str] = Field(default_factory=list)
change_request_id: str | None = None
class ModuleInstallPlanItem(BaseModel):
@@ -213,6 +239,9 @@ class ModuleInstallerRunSummary(BaseModel):
status: str
started_at: str | None = None
finished_at: str | None = None
request_id: str | None = None
requested_by: str | None = None
trace: dict[str, Any] | None = None
rollback_status: str | None = None
supervisor_status: str | None = None
error: str | None = None
@@ -224,6 +253,9 @@ class ModuleInstallerRunSummary(BaseModel):
class ModuleInstallerRunListResponse(BaseModel):
runs: list[ModuleInstallerRunSummary] = Field(default_factory=list)
lock: ModuleInstallerLockStatus
cursor: str | None = None
next_cursor: str | None = None
full: bool = False
class ModuleInstallerRequestOptions(BaseModel):
@@ -256,6 +288,7 @@ class ModuleInstallerRequestItem(BaseModel):
cancelled_at: str | None = None
cancelled_by: str | None = None
retry_of: str | None = None
trace: dict[str, Any] | None = None
error: str | None = None
record_path: str | None = None
options: dict[str, Any] = Field(default_factory=dict)
@@ -264,6 +297,9 @@ class ModuleInstallerRequestItem(BaseModel):
class ModuleInstallerRequestListResponse(BaseModel):
requests: list[ModuleInstallerRequestItem] = Field(default_factory=list)
daemon: ModuleInstallerDaemonStatus
cursor: str | None = None
next_cursor: str | None = None
full: bool = False
class ModuleInstallerRequestCreateRequest(BaseModel):
@@ -291,6 +327,27 @@ class ModulePackageCatalogItem(BaseModel):
tags: list[str] = Field(default_factory=list)
class ModuleLicenseDiagnostics(BaseModel):
configured: bool = False
valid: bool = True
path: str | None = None
license_id: str | None = None
subject: str | None = None
features: list[str] = Field(default_factory=list)
valid_from: str | None = None
valid_until: str | None = None
signed: bool = False
trusted: bool = False
key_id: str | None = None
enforced: bool = False
allowed: bool = True
required_features: list[str] = Field(default_factory=list)
missing_features: list[str] = Field(default_factory=list)
expires_in_days: int | None = None
reason: str | None = None
guidance: list[str] = Field(default_factory=list)
class ModulePackageCatalogResponse(BaseModel):
modules: list[ModulePackageCatalogItem] = Field(default_factory=list)
configured: bool = False
@@ -298,13 +355,17 @@ class ModulePackageCatalogResponse(BaseModel):
path: str | None = None
source: str | None = None
source_type: str | None = None
cache_used: bool = False
cache_path: str | None = None
channel: str | None = None
sequence: int | None = None
generated_at: str | None = None
not_before: str | None = None
expires_at: str | None = None
signed: bool = False
trusted: bool = False
key_id: str | None = None
license: ModuleLicenseDiagnostics = Field(default_factory=ModuleLicenseDiagnostics)
warnings: list[str] = Field(default_factory=list)
error: str | None = None
@@ -313,6 +374,7 @@ class ModuleInstallPlanUpdateRequest(BaseModel):
model_config = ConfigDict(extra="forbid")
items: list[ModuleInstallPlanItem] = Field(default_factory=list)
change_request_id: str | None = None
class GovernanceAssignment(BaseModel):
@@ -338,6 +400,14 @@ class GovernanceTemplateListResponse(BaseModel):
templates: list[GovernanceTemplateItem]
class GovernanceTemplateListDeltaResponse(BaseModel):
templates: list[GovernanceTemplateItem] = Field(default_factory=list)
deleted: list[DeltaDeletedItem] = Field(default_factory=list)
watermark: str | None = None
has_more: bool = False
full: bool = False
class GovernanceTemplateCreateRequest(BaseModel):
model_config = ConfigDict(extra="forbid")
@@ -348,6 +418,7 @@ class GovernanceTemplateCreateRequest(BaseModel):
permissions: list[str] = Field(default_factory=list)
is_active: bool = True
assignments: list[GovernanceAssignment] = Field(default_factory=list)
change_request_id: str | None = None
class GovernanceTemplateUpdateRequest(BaseModel):
@@ -358,3 +429,4 @@ class GovernanceTemplateUpdateRequest(BaseModel):
permissions: list[str] = Field(default_factory=list)
is_active: bool = True
assignments: list[GovernanceAssignment] = Field(default_factory=list)
change_request_id: str | None = None