feat(dataflow): govern reusable definition updates
Module Package Release / publish-packages (push) Successful in 12s
Module Package Release / publish-packages (push) Successful in 12s
This commit is contained in:
@@ -122,6 +122,11 @@ class PipelineGovernanceResponse(BaseModel):
|
||||
derived_from_pipeline_id: str | None
|
||||
derived_from_revision: int | None
|
||||
derived_from_hash: str | None
|
||||
source_available: bool = False
|
||||
source_name: str | None = None
|
||||
source_current_revision: int | None = None
|
||||
source_current_hash: str | None = None
|
||||
update_available: bool = False
|
||||
derivation_provenance: dict[str, Any] = Field(default_factory=dict)
|
||||
actions: dict[str, DefinitionActionDecisionResponse]
|
||||
|
||||
@@ -246,7 +251,23 @@ class PipelineDeriveRequest(BaseModel):
|
||||
allow_automation: bool = False
|
||||
|
||||
|
||||
class PipelineRebaseRequest(BaseModel):
|
||||
expected_revision: int = Field(ge=1)
|
||||
source_revision: int = Field(ge=1)
|
||||
source_hash: str = Field(pattern=r"^[0-9a-f]{64}$")
|
||||
reason: str = Field(min_length=3, max_length=4_000)
|
||||
|
||||
@field_validator("reason")
|
||||
@classmethod
|
||||
def validate_reason(cls, value: str) -> str:
|
||||
cleaned = value.strip()
|
||||
if len(cleaned) < 3:
|
||||
raise ValueError("A meaningful rebase review reason is required.")
|
||||
return cleaned
|
||||
|
||||
|
||||
class PipelineDraftRequest(BaseModel):
|
||||
pipeline_id: str | None = Field(default=None, max_length=36)
|
||||
graph: PipelineGraph | None = None
|
||||
sql_text: str | None = Field(default=None, max_length=100_000)
|
||||
source_nodes: list[GraphNode] = Field(default_factory=list, max_length=20)
|
||||
|
||||
Reference in New Issue
Block a user