From 8d4315632db733ab3d770700e640be2fb09d3059 Mon Sep 17 00:00:00 2001 From: Safoine El khabich Date: Sun, 26 Oct 2025 20:52:58 +0100 Subject: [PATCH 1/3] add stack to deployment response resource --- src/zenml/models/v2/core/deployment.py | 15 +++++++++++++++ .../zen_stores/schemas/deployment_schemas.py | 6 ++++++ 2 files changed, 21 insertions(+) diff --git a/src/zenml/models/v2/core/deployment.py b/src/zenml/models/v2/core/deployment.py index d08cd30ed58..a4e1b037adf 100644 --- a/src/zenml/models/v2/core/deployment.py +++ b/src/zenml/models/v2/core/deployment.py @@ -53,6 +53,7 @@ from zenml.models.v2.core.pipeline_snapshot import ( PipelineSnapshotResponse, ) + from zenml.models.v2.core.stack import StackResponse from zenml.models.v2.core.tag import TagResponse from zenml.zen_stores.schemas.base_schemas import BaseSchema @@ -212,6 +213,11 @@ class DeploymentResponseResources(ProjectScopedResponseResources): default_factory=list, title="Curated deployment visualizations.", ) + stack: Optional["StackResponse"] = Field( + default=None, + title="The stack that was deployed.", + description="The stack that was deployed.", + ) class DeploymentResponse( @@ -321,6 +327,15 @@ def visualizations(self) -> List["CuratedVisualizationResponse"]: """ return self.get_resources().visualizations + @property + def stack(self) -> Optional["StackResponse"]: + """The stack. + + Returns: + The stack. + """ + return self.get_resources().stack + @property def snapshot_id(self) -> Optional[UUID]: """The pipeline snapshot ID. diff --git a/src/zenml/zen_stores/schemas/deployment_schemas.py b/src/zenml/zen_stores/schemas/deployment_schemas.py index 98d7327e575..2ed8f0d0699 100644 --- a/src/zenml/zen_stores/schemas/deployment_schemas.py +++ b/src/zenml/zen_stores/schemas/deployment_schemas.py @@ -182,6 +182,9 @@ def get_query_options( selectinload(jl_arg(DeploymentSchema.snapshot)).joinedload( jl_arg(PipelineSnapshotSchema.pipeline) ), + selectinload(jl_arg(DeploymentSchema.snapshot)).joinedload( + jl_arg(PipelineSnapshotSchema.stack) + ), selectinload(jl_arg(DeploymentSchema.visualizations)), ] ) @@ -241,6 +244,9 @@ def to_model( pipeline=self.snapshot.pipeline.to_model() if self.snapshot and self.snapshot.pipeline else None, + stack=self.snapshot.stack.to_model() + if self.snapshot and self.snapshot.stack + else None, visualizations=[ visualization.to_model( include_metadata=False, From 9f8ab33b77416c4f491d77f210c862eb1a852af4 Mon Sep 17 00:00:00 2001 From: Safoine El khabich Date: Mon, 27 Oct 2025 11:44:34 +0100 Subject: [PATCH 2/3] include matadata fopr stack --- src/zenml/zen_stores/schemas/deployment_schemas.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/zenml/zen_stores/schemas/deployment_schemas.py b/src/zenml/zen_stores/schemas/deployment_schemas.py index 2ed8f0d0699..8c32061a3a2 100644 --- a/src/zenml/zen_stores/schemas/deployment_schemas.py +++ b/src/zenml/zen_stores/schemas/deployment_schemas.py @@ -244,7 +244,9 @@ def to_model( pipeline=self.snapshot.pipeline.to_model() if self.snapshot and self.snapshot.pipeline else None, - stack=self.snapshot.stack.to_model() + stack=self.snapshot.stack.to_model( + include_metadata=True, + ) if self.snapshot and self.snapshot.stack else None, visualizations=[ From 2dc582c23f7b5890775c288f1ffa7a2924a699e9 Mon Sep 17 00:00:00 2001 From: Safoine El khabich Date: Mon, 27 Oct 2025 14:20:48 +0100 Subject: [PATCH 3/3] undo metadata --- src/zenml/zen_stores/schemas/deployment_schemas.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/zenml/zen_stores/schemas/deployment_schemas.py b/src/zenml/zen_stores/schemas/deployment_schemas.py index 8c32061a3a2..2ed8f0d0699 100644 --- a/src/zenml/zen_stores/schemas/deployment_schemas.py +++ b/src/zenml/zen_stores/schemas/deployment_schemas.py @@ -244,9 +244,7 @@ def to_model( pipeline=self.snapshot.pipeline.to_model() if self.snapshot and self.snapshot.pipeline else None, - stack=self.snapshot.stack.to_model( - include_metadata=True, - ) + stack=self.snapshot.stack.to_model() if self.snapshot and self.snapshot.stack else None, visualizations=[