Release v0.1.7
This commit is contained in:
@@ -182,6 +182,7 @@ class ModuleInstallPlanItem(BaseModel):
|
||||
python_ref: str | None = Field(default=None, max_length=1000)
|
||||
webui_package: str | None = Field(default=None, max_length=200)
|
||||
webui_ref: str | None = Field(default=None, max_length=1000)
|
||||
data_safety_acknowledged: bool = False
|
||||
destroy_data: bool = False
|
||||
status: Literal["planned", "applied", "blocked"] = "planned"
|
||||
notes: str | None = Field(default=None, max_length=1000)
|
||||
@@ -201,6 +202,63 @@ class ModuleInstallChecklistItem(BaseModel):
|
||||
detail: str | None = None
|
||||
|
||||
|
||||
class ModuleInstallTargetItem(BaseModel):
|
||||
module_id: str
|
||||
action: Literal["install", "update", "uninstall"]
|
||||
source: Literal["manual", "catalog"]
|
||||
current_version: str | None = None
|
||||
target_version: str | None = None
|
||||
python_package: str | None = None
|
||||
python_ref: str | None = None
|
||||
webui_package: str | None = None
|
||||
webui_ref: str | None = None
|
||||
migration_safety: Literal["automatic", "requires_review", "forward_only", "destructive"] = "automatic"
|
||||
migration_notes: str | None = None
|
||||
current_version_min: str | None = None
|
||||
current_version_max_exclusive: str | None = None
|
||||
bridge_release: bool = False
|
||||
bridge_notes: str | None = None
|
||||
allow_downgrade: bool = False
|
||||
allow_same_version: bool = False
|
||||
recovery_tested: bool = False
|
||||
recovery_notes: str | None = None
|
||||
data_safety_acknowledged: bool = False
|
||||
|
||||
|
||||
class ModuleMigrationPlanStep(BaseModel):
|
||||
module_id: str
|
||||
action: Literal["install", "update", "uninstall"]
|
||||
phase: Literal["upgrade", "retirement"]
|
||||
source: Literal["manifest", "catalog", "pending"]
|
||||
has_migration_metadata: bool = False
|
||||
metadata_pending: bool = False
|
||||
migration_safety: Literal["automatic", "requires_review", "forward_only", "destructive"] = "automatic"
|
||||
current_version: str | None = None
|
||||
target_version: str | None = None
|
||||
reason: str | None = None
|
||||
|
||||
|
||||
class ModuleMigrationTaskPlanItem(BaseModel):
|
||||
module_id: str
|
||||
task_id: str
|
||||
phase: Literal["pre_migration_check", "pre_migration_prepare", "post_migration_backfill", "post_migration_verify"]
|
||||
summary: str
|
||||
task_version: str = "1"
|
||||
safety: Literal["automatic", "requires_review", "forward_only", "destructive"] = "automatic"
|
||||
idempotent: bool = True
|
||||
timeout_seconds: int | None = None
|
||||
source: Literal["manifest", "catalog", "pending"] = "manifest"
|
||||
has_executor: bool = False
|
||||
metadata_pending: bool = False
|
||||
|
||||
|
||||
class ModuleMigrationExecutionPlan(BaseModel):
|
||||
enabled_modules: list[str] = Field(default_factory=list)
|
||||
requires_database_migration: bool = False
|
||||
steps: list[ModuleMigrationPlanStep] = Field(default_factory=list)
|
||||
tasks: list[ModuleMigrationTaskPlanItem] = Field(default_factory=list)
|
||||
|
||||
|
||||
class ModuleInstallPreflightResponse(BaseModel):
|
||||
allowed: bool
|
||||
maintenance_mode: bool
|
||||
@@ -210,6 +268,8 @@ class ModuleInstallPreflightResponse(BaseModel):
|
||||
rollback_commands: list[str] = Field(default_factory=list)
|
||||
issues: list[ModuleInstallPreflightIssue] = Field(default_factory=list)
|
||||
checklist: list[ModuleInstallChecklistItem] = Field(default_factory=list)
|
||||
target_plan: list[ModuleInstallTargetItem] = Field(default_factory=list)
|
||||
migration_plan: ModuleMigrationExecutionPlan = Field(default_factory=ModuleMigrationExecutionPlan)
|
||||
|
||||
|
||||
class ModuleInstallPlanResponse(BaseModel):
|
||||
@@ -328,6 +388,20 @@ class ModulePackageCatalogItem(BaseModel):
|
||||
description: str | None = None
|
||||
version: str | None = None
|
||||
action: Literal["install", "update", "uninstall"] = "install"
|
||||
dependencies: list[str] = Field(default_factory=list)
|
||||
optional_dependencies: list[str] = Field(default_factory=list)
|
||||
migration_safety: Literal["automatic", "requires_review", "forward_only", "destructive"] = "automatic"
|
||||
migration_notes: str | None = None
|
||||
migration_after: list[str] = Field(default_factory=list)
|
||||
migration_before: list[str] = Field(default_factory=list)
|
||||
current_version_min: str | None = None
|
||||
current_version_max_exclusive: str | None = None
|
||||
bridge_release: bool = False
|
||||
bridge_notes: str | None = None
|
||||
allow_downgrade: bool = False
|
||||
allow_same_version: bool = False
|
||||
recovery_tested: bool = False
|
||||
recovery_notes: str | None = None
|
||||
python_package: str | None = None
|
||||
python_ref: str | None = None
|
||||
webui_package: str | None = None
|
||||
|
||||
Reference in New Issue
Block a user