chore: snapshot workflow migration progress
This commit is contained in:
@@ -1,22 +1,27 @@
|
||||
import uuid
|
||||
from datetime import datetime
|
||||
from pydantic import BaseModel
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
|
||||
class OutputTypeCreate(BaseModel):
|
||||
name: str
|
||||
description: str | None = None
|
||||
renderer: str = "threejs"
|
||||
renderer: str = "blender"
|
||||
render_settings: dict = {}
|
||||
output_format: str = "png"
|
||||
sort_order: int = 0
|
||||
is_active: bool = True
|
||||
compatible_categories: list[str] = []
|
||||
render_backend: str = "auto"
|
||||
render_backend: str = "celery"
|
||||
is_animation: bool = False
|
||||
transparent_bg: bool = False
|
||||
pricing_tier_id: int | None = None
|
||||
cycles_device: str | None = None
|
||||
workflow_family: str = "order_line"
|
||||
artifact_kind: str | None = None
|
||||
invocation_overrides: dict = {}
|
||||
workflow_definition_id: uuid.UUID | None = None
|
||||
workflow_rollout_mode: str = "legacy_only"
|
||||
material_override: str | None = None
|
||||
|
||||
|
||||
@@ -32,12 +37,43 @@ class OutputTypePatch(BaseModel):
|
||||
render_backend: str | None = None
|
||||
is_animation: bool | None = None
|
||||
transparent_bg: bool | None = None
|
||||
workflow_family: str | None = None
|
||||
artifact_kind: str | None = None
|
||||
invocation_overrides: dict | None = None
|
||||
pricing_tier_id: int | None = None
|
||||
cycles_device: str | None = None
|
||||
workflow_definition_id: uuid.UUID | None = None
|
||||
workflow_rollout_mode: str | None = None
|
||||
material_override: str | None = None
|
||||
|
||||
|
||||
class OutputTypeInvocationProfileOut(BaseModel):
|
||||
renderer: str
|
||||
render_backend: str
|
||||
workflow_family: str
|
||||
artifact_kind: str
|
||||
output_format: str
|
||||
is_animation: bool
|
||||
workflow_definition_id: uuid.UUID | None = None
|
||||
workflow_rollout_mode: str = "legacy_only"
|
||||
transparent_bg: bool
|
||||
cycles_device: str | None = None
|
||||
material_override: str | None = None
|
||||
allowed_override_keys: list[str] = Field(default_factory=list)
|
||||
invocation_overrides: dict = Field(default_factory=dict)
|
||||
|
||||
|
||||
class OutputTypeContractCatalogOut(BaseModel):
|
||||
workflow_families: list[str] = Field(default_factory=list)
|
||||
workflow_rollout_modes: list[str] = Field(default_factory=list)
|
||||
artifact_kinds: list[str] = Field(default_factory=list)
|
||||
allowed_artifact_kinds_by_family: dict[str, list[str]] = Field(default_factory=dict)
|
||||
allowed_output_formats_by_family: dict[str, list[str]] = Field(default_factory=dict)
|
||||
allowed_invocation_override_keys_by_artifact_kind: dict[str, list[str]] = Field(default_factory=dict)
|
||||
default_output_format_by_artifact_kind: dict[str, str] = Field(default_factory=dict)
|
||||
parameter_ownership: dict[str, dict | list[str]] = Field(default_factory=dict)
|
||||
|
||||
|
||||
class OutputTypeOut(BaseModel):
|
||||
id: uuid.UUID
|
||||
name: str
|
||||
@@ -50,13 +86,18 @@ class OutputTypeOut(BaseModel):
|
||||
render_backend: str
|
||||
is_animation: bool
|
||||
transparent_bg: bool
|
||||
workflow_family: str
|
||||
artifact_kind: str
|
||||
invocation_overrides: dict
|
||||
cycles_device: str | None = None
|
||||
pricing_tier_id: int | None = None
|
||||
pricing_tier_name: str | None = None
|
||||
price_per_item: float | None = None
|
||||
workflow_definition_id: uuid.UUID | None = None
|
||||
workflow_rollout_mode: str
|
||||
workflow_name: str | None = None
|
||||
material_override: str | None = None
|
||||
invocation_profile: OutputTypeInvocationProfileOut | None = None
|
||||
is_active: bool
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
@@ -159,11 +200,28 @@ class WorkflowDefinitionOut(BaseModel):
|
||||
name: str
|
||||
output_type_id: uuid.UUID | None
|
||||
config: dict
|
||||
family: str | None = None
|
||||
supported_artifact_kinds: list[str] = Field(default_factory=list)
|
||||
rollout_summary: "WorkflowRolloutSummaryOut" = Field(
|
||||
default_factory=lambda: WorkflowRolloutSummaryOut()
|
||||
)
|
||||
is_active: bool
|
||||
created_at: datetime
|
||||
model_config = {"from_attributes": True}
|
||||
|
||||
|
||||
class WorkflowDraftPreflightRequest(BaseModel):
|
||||
context_id: str
|
||||
config: dict
|
||||
workflow_id: uuid.UUID | None = None
|
||||
|
||||
|
||||
class WorkflowDraftDispatchRequest(BaseModel):
|
||||
context_id: str
|
||||
config: dict
|
||||
workflow_id: uuid.UUID | None = None
|
||||
|
||||
|
||||
class WorkflowNodeResultOut(BaseModel):
|
||||
id: uuid.UUID
|
||||
node_name: str
|
||||
@@ -190,6 +248,38 @@ class WorkflowRunOut(BaseModel):
|
||||
model_config = {"from_attributes": True}
|
||||
|
||||
|
||||
class WorkflowRolloutLatestRunOut(BaseModel):
|
||||
workflow_run_id: uuid.UUID
|
||||
execution_mode: str
|
||||
status: str
|
||||
created_at: datetime
|
||||
completed_at: datetime | None = None
|
||||
|
||||
|
||||
class WorkflowRolloutLinkedOutputTypeOut(BaseModel):
|
||||
id: uuid.UUID
|
||||
name: str
|
||||
is_active: bool
|
||||
artifact_kind: str
|
||||
workflow_rollout_mode: str
|
||||
|
||||
|
||||
class WorkflowRolloutSummaryOut(BaseModel):
|
||||
linked_output_type_count: int = 0
|
||||
active_output_type_count: int = 0
|
||||
linked_output_type_names: list[str] = Field(default_factory=list)
|
||||
linked_output_types: list[WorkflowRolloutLinkedOutputTypeOut] = Field(default_factory=list)
|
||||
rollout_modes: list[str] = Field(default_factory=list)
|
||||
has_blocking_contracts: bool = False
|
||||
blocking_reasons: list[str] = Field(default_factory=list)
|
||||
latest_run: WorkflowRolloutLatestRunOut | None = None
|
||||
latest_shadow_run: WorkflowRolloutLatestRunOut | None = None
|
||||
latest_rollout_gate_verdict: str | None = None
|
||||
latest_rollout_ready: bool | None = None
|
||||
latest_rollout_status: str | None = None
|
||||
latest_rollout_reasons: list[str] = Field(default_factory=list)
|
||||
|
||||
|
||||
class WorkflowComparisonArtifactOut(BaseModel):
|
||||
path: str | None
|
||||
storage_key: str | None
|
||||
@@ -208,8 +298,58 @@ class WorkflowRunComparisonOut(BaseModel):
|
||||
execution_mode: str
|
||||
status: str
|
||||
summary: str
|
||||
rollout_gate_verdict: str
|
||||
workflow_rollout_ready: bool
|
||||
workflow_rollout_status: str
|
||||
rollout_reasons: list[str] = []
|
||||
rollout_thresholds: dict[str, float] = Field(default_factory=dict)
|
||||
authoritative_output: WorkflowComparisonArtifactOut
|
||||
observer_output: WorkflowComparisonArtifactOut
|
||||
exact_match: bool | None
|
||||
dimensions_match: bool | None
|
||||
mean_pixel_delta: float | None
|
||||
|
||||
|
||||
class WorkflowPreflightIssueOut(BaseModel):
|
||||
severity: str
|
||||
code: str
|
||||
message: str
|
||||
node_id: str | None = None
|
||||
step: str | None = None
|
||||
|
||||
|
||||
class WorkflowPreflightNodeOut(BaseModel):
|
||||
node_id: str
|
||||
step: str
|
||||
label: str | None = None
|
||||
execution_kind: str
|
||||
supported: bool
|
||||
status: str
|
||||
issues: list[WorkflowPreflightIssueOut] = []
|
||||
|
||||
|
||||
class WorkflowPreflightOut(BaseModel):
|
||||
workflow_id: uuid.UUID | None = None
|
||||
context_id: str
|
||||
context_kind: str | None = None
|
||||
expected_context_kind: str
|
||||
execution_mode: str
|
||||
graph_dispatch_allowed: bool
|
||||
summary: str
|
||||
resolved_order_line_id: uuid.UUID | None = None
|
||||
resolved_cad_file_id: uuid.UUID | None = None
|
||||
unsupported_node_ids: list[str] = []
|
||||
issues: list[WorkflowPreflightIssueOut] = []
|
||||
nodes: list[WorkflowPreflightNodeOut] = []
|
||||
|
||||
|
||||
class WorkflowOrderLineContextOptionOut(BaseModel):
|
||||
value: uuid.UUID
|
||||
label: str
|
||||
meta: str
|
||||
|
||||
|
||||
class WorkflowOrderLineContextGroupOut(BaseModel):
|
||||
order_id: uuid.UUID
|
||||
order_label: str
|
||||
options: list[WorkflowOrderLineContextOptionOut] = []
|
||||
|
||||
Reference in New Issue
Block a user