zenml-nightly 0.66.0.dev20240928__py3-none-any.whl → 0.68.1.dev20241102__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (596) hide show
  1. README.md +18 -12
  2. RELEASE_NOTES.md +236 -0
  3. zenml/VERSION +1 -1
  4. zenml/__init__.py +5 -10
  5. zenml/analytics/context.py +16 -1
  6. zenml/analytics/enums.py +0 -13
  7. zenml/analytics/utils.py +18 -7
  8. zenml/artifact_stores/base_artifact_store.py +11 -0
  9. zenml/artifacts/artifact_config.py +19 -65
  10. zenml/artifacts/external_artifact.py +7 -53
  11. zenml/artifacts/external_artifact_config.py +21 -40
  12. zenml/artifacts/load_directory_materializer.py +91 -0
  13. zenml/artifacts/utils.py +204 -145
  14. zenml/cli/__init__.py +62 -127
  15. zenml/cli/base.py +8 -8
  16. zenml/cli/integration.py +0 -9
  17. zenml/cli/login.py +951 -0
  18. zenml/cli/pipeline.py +1 -1
  19. zenml/cli/served_model.py +8 -1
  20. zenml/cli/server.py +462 -577
  21. zenml/cli/service_accounts.py +4 -4
  22. zenml/cli/stack.py +78 -569
  23. zenml/cli/stack_components.py +5 -594
  24. zenml/cli/user_management.py +0 -12
  25. zenml/cli/utils.py +24 -142
  26. zenml/client.py +57 -40
  27. zenml/client_lazy_loader.py +29 -12
  28. zenml/config/compiler.py +7 -11
  29. zenml/config/global_config.py +9 -0
  30. zenml/config/pipeline_configurations.py +2 -1
  31. zenml/config/pipeline_run_configuration.py +2 -1
  32. zenml/config/server_config.py +7 -5
  33. zenml/config/step_configurations.py +2 -0
  34. zenml/constants.py +6 -42
  35. zenml/enums.py +1 -4
  36. zenml/environment.py +1 -315
  37. zenml/exceptions.py +12 -41
  38. zenml/hooks/hook_validators.py +1 -8
  39. zenml/integrations/airflow/orchestrators/airflow_orchestrator.py +2 -3
  40. zenml/integrations/argilla/__init__.py +1 -1
  41. zenml/integrations/argilla/annotators/argilla_annotator.py +234 -89
  42. zenml/integrations/argilla/flavors/argilla_annotator_flavor.py +10 -5
  43. zenml/integrations/aws/flavors/sagemaker_orchestrator_flavor.py +9 -5
  44. zenml/integrations/aws/orchestrators/sagemaker_orchestrator.py +15 -2
  45. zenml/integrations/aws/service_connectors/aws_service_connector.py +6 -0
  46. zenml/integrations/azure/flavors/azureml_orchestrator_flavor.py +5 -4
  47. zenml/integrations/azure/orchestrators/azureml_orchestrator.py +1 -1
  48. zenml/integrations/bentoml/model_deployers/bentoml_model_deployer.py +85 -19
  49. zenml/integrations/bentoml/services/__init__.py +15 -4
  50. zenml/integrations/bentoml/services/bentoml_container_deployment.py +399 -0
  51. zenml/integrations/bentoml/services/{bentoml_deployment.py → bentoml_local_deployment.py} +81 -40
  52. zenml/{steps/base_parameters.py → integrations/bentoml/services/deployment_type.py} +8 -5
  53. zenml/integrations/bentoml/steps/bento_builder.py +1 -0
  54. zenml/integrations/bentoml/steps/bentoml_deployer.py +93 -41
  55. zenml/integrations/github/code_repositories/github_code_repository.py +1 -1
  56. zenml/integrations/gitlab/code_repositories/gitlab_code_repository.py +6 -1
  57. zenml/integrations/huggingface/__init__.py +1 -6
  58. zenml/integrations/kaniko/image_builders/kaniko_image_builder.py +3 -3
  59. zenml/integrations/lightning/orchestrators/lightning_orchestrator.py +3 -3
  60. zenml/integrations/lightning/orchestrators/lightning_orchestrator_entrypoint.py +2 -2
  61. zenml/integrations/mlflow/experiment_trackers/mlflow_experiment_tracker.py +6 -3
  62. zenml/integrations/mlflow/model_registries/mlflow_model_registry.py +6 -0
  63. zenml/integrations/mlflow/services/mlflow_deployment.py +2 -2
  64. zenml/integrations/mlflow/steps/mlflow_deployer.py +1 -1
  65. zenml/integrations/mlflow/steps/mlflow_registry.py +1 -1
  66. zenml/integrations/neptune/experiment_trackers/run_state.py +2 -2
  67. zenml/integrations/pytorch/materializers/base_pytorch_materializer.py +8 -2
  68. zenml/integrations/pytorch/materializers/pytorch_module_materializer.py +4 -1
  69. zenml/integrations/s3/artifact_stores/s3_artifact_store.py +98 -0
  70. zenml/integrations/s3/flavors/s3_artifact_store_flavor.py +14 -0
  71. zenml/integrations/s3/utils.py +40 -0
  72. zenml/integrations/tensorflow/__init__.py +0 -9
  73. zenml/logging/step_logging.py +13 -15
  74. zenml/{new/pipelines → login}/__init__.py +4 -1
  75. zenml/login/credentials.py +346 -0
  76. zenml/login/credentials_store.py +603 -0
  77. zenml/{new → login/pro}/__init__.py +4 -1
  78. zenml/login/pro/client.py +496 -0
  79. zenml/login/pro/constants.py +34 -0
  80. zenml/{lineage_graph/edge.py → login/pro/models.py} +9 -8
  81. zenml/{zen_server/deploy/terraform/providers → login/pro/organization}/__init__.py +2 -2
  82. zenml/login/pro/organization/client.py +79 -0
  83. zenml/{lineage_graph/node/base_node.py → login/pro/organization/models.py} +13 -12
  84. zenml/{new/steps → login/pro/tenant}/__init__.py +2 -1
  85. zenml/login/pro/tenant/client.py +92 -0
  86. zenml/login/pro/tenant/models.py +174 -0
  87. zenml/login/pro/utils.py +121 -0
  88. zenml/{cli → login}/web_login.py +64 -28
  89. zenml/materializers/__init__.py +2 -0
  90. zenml/materializers/base_materializer.py +43 -9
  91. zenml/materializers/built_in_materializer.py +1 -1
  92. zenml/materializers/uuid_materializer.py +79 -0
  93. zenml/metadata/lazy_load.py +10 -7
  94. zenml/metadata/metadata_types.py +49 -0
  95. zenml/model/lazy_load.py +85 -4
  96. zenml/model/model.py +61 -83
  97. zenml/model/utils.py +47 -118
  98. zenml/models/__init__.py +6 -0
  99. zenml/models/v2/base/base.py +12 -8
  100. zenml/models/v2/base/filter.py +9 -0
  101. zenml/models/v2/core/artifact_version.py +53 -25
  102. zenml/models/v2/core/component.py +54 -19
  103. zenml/models/v2/core/flavor.py +13 -13
  104. zenml/models/v2/core/model.py +4 -1
  105. zenml/models/v2/core/model_version.py +4 -6
  106. zenml/models/v2/core/model_version_artifact.py +3 -1
  107. zenml/models/v2/core/model_version_pipeline_run.py +3 -1
  108. zenml/models/v2/core/pipeline.py +3 -1
  109. zenml/models/v2/core/pipeline_run.py +24 -3
  110. zenml/models/v2/core/run_metadata.py +2 -2
  111. zenml/models/v2/core/run_template.py +3 -1
  112. zenml/models/v2/core/stack.py +7 -3
  113. zenml/models/v2/core/step_run.py +58 -14
  114. zenml/models/v2/misc/auth_models.py +11 -2
  115. zenml/models/v2/misc/server_models.py +2 -4
  116. zenml/orchestrators/base_orchestrator.py +41 -4
  117. zenml/orchestrators/input_utils.py +52 -36
  118. zenml/orchestrators/step_launcher.py +50 -171
  119. zenml/orchestrators/step_run_utils.py +574 -0
  120. zenml/orchestrators/step_runner.py +83 -120
  121. zenml/orchestrators/utils.py +46 -180
  122. zenml/pipelines/__init__.py +3 -16
  123. zenml/{new/pipelines → pipelines}/pipeline_context.py +3 -18
  124. zenml/pipelines/pipeline_decorator.py +34 -60
  125. zenml/{new/pipelines/pipeline.py → pipelines/pipeline_definition.py} +210 -207
  126. zenml/{new/pipelines → pipelines}/run_utils.py +11 -10
  127. zenml/services/local/local_daemon_entrypoint.py +4 -4
  128. zenml/services/service.py +2 -2
  129. zenml/stack/stack.py +3 -108
  130. zenml/stack/stack_component.py +2 -78
  131. zenml/stack/utils.py +26 -14
  132. zenml/stack_deployments/aws_stack_deployment.py +3 -0
  133. zenml/step_operators/step_operator_entrypoint_configuration.py +1 -1
  134. zenml/steps/__init__.py +3 -9
  135. zenml/steps/base_step.py +25 -267
  136. zenml/steps/entrypoint_function_utils.py +2 -80
  137. zenml/{new/steps → steps}/step_context.py +12 -66
  138. zenml/steps/step_decorator.py +42 -89
  139. zenml/steps/step_invocation.py +16 -60
  140. zenml/steps/utils.py +4 -23
  141. zenml/utils/dashboard_utils.py +16 -51
  142. zenml/utils/materializer_utils.py +1 -1
  143. zenml/utils/requirements_utils.py +71 -0
  144. zenml/utils/singleton.py +15 -3
  145. zenml/utils/source_utils.py +39 -2
  146. zenml/utils/typing_utils.py +8 -28
  147. zenml/utils/visualization_utils.py +1 -1
  148. zenml/zen_server/auth.py +44 -39
  149. zenml/zen_server/dashboard/assets/{404-Y50hSt65.js → 404-DT4QRUqN.js} +1 -1
  150. zenml/zen_server/dashboard/assets/@radix-DP6vWzyx.js +85 -0
  151. zenml/zen_server/dashboard/assets/@react-router-BMhZulnd.js +29 -0
  152. zenml/zen_server/dashboard/assets/@reactflow-8U9qNlMR.js +17 -0
  153. zenml/zen_server/dashboard/assets/@tanstack-BUCbhJyH.js +22 -0
  154. zenml/zen_server/dashboard/assets/{AlertDialogDropdownItem-xLR9a1iw.js → AlertDialogDropdownItem-C6N2rGrB.js} +1 -1
  155. zenml/zen_server/dashboard/assets/{CodeSnippet-IxXNxUDa.js → CodeSnippet-CqybNv0k.js} +1 -1
  156. zenml/zen_server/dashboard/assets/{CollapsibleCard-BhutZbBL.js → CollapsibleCard-0r_8G2Lj.js} +1 -1
  157. zenml/zen_server/dashboard/assets/{Commands-Bf-rd1z8.js → Commands-BDjgBQKi.js} +1 -1
  158. zenml/zen_server/dashboard/assets/ComponentBadge-DUiEYJHu.js +1 -0
  159. zenml/zen_server/dashboard/assets/ComponentFallbackDialog-BFoH5K4V.js +1 -0
  160. zenml/zen_server/dashboard/assets/ComponentIcon-CAIoUis2.js +1 -0
  161. zenml/zen_server/dashboard/assets/{CopyButton-DcFHidFJ.js → CopyButton-C745BrKi.js} +1 -1
  162. zenml/zen_server/dashboard/assets/{CsvVizualization-QSbjrfxw.js → CsvVizualization-PpAq0CeZ.js} +5 -5
  163. zenml/zen_server/dashboard/assets/{DialogItem-Cd3HqST4.js → DialogItem-DcVCZEew.js} +1 -1
  164. zenml/zen_server/dashboard/assets/{DisplayDate-DkCy54Bp.js → DisplayDate-BeXgUG_C.js} +1 -1
  165. zenml/zen_server/dashboard/assets/{EmptyState-Cs3DEmso.js → EmptyState-DeK7H4pr.js} +1 -1
  166. zenml/zen_server/dashboard/assets/{Error-BhwdmqK7.js → Error-BMlzibXj.js} +1 -1
  167. zenml/zen_server/dashboard/assets/{Helpbox-0pBpTwTm.js → Helpbox-BLf40fLV.js} +1 -1
  168. zenml/zen_server/dashboard/assets/{Infobox-BTK_EUKT.js → Infobox-BwisKifi.js} +1 -1
  169. zenml/zen_server/dashboard/assets/{InlineAvatar-CA3DFMcM.js → InlineAvatar-jEgodSgX.js} +1 -1
  170. zenml/zen_server/dashboard/assets/{Lock-CmIn0szs.js → Lock-3lLt1ih0.js} +1 -1
  171. zenml/zen_server/dashboard/assets/MarkdownVisualization-8O9kTr-2.js +14 -0
  172. zenml/zen_server/dashboard/assets/{NumberBox-CrN0_kqI.js → NumberBox-T9eELfLZ.js} +1 -1
  173. zenml/zen_server/dashboard/assets/{Partials-QLOZw624.js → Partials-YPBB3V4q.js} +1 -1
  174. zenml/zen_server/dashboard/assets/{PasswordChecker-DE71J_3F.js → PasswordChecker-CW0kqY0W.js} +1 -1
  175. zenml/zen_server/dashboard/assets/{ProviderIcon-C16CCIN4.js → ProviderIcon-Bb3Xha5A.js} +1 -1
  176. zenml/zen_server/dashboard/assets/{ProviderRadio-D3FuCHf3.js → ProviderRadio-BROY1700.js} +1 -1
  177. zenml/zen_server/dashboard/assets/RunSelector-DCiL3M1c.js +1 -0
  178. zenml/zen_server/dashboard/assets/SearchField-DfUiGFVd.js +1 -0
  179. zenml/zen_server/dashboard/assets/{SecretTooltip-BaMwHF-Q.js → SecretTooltip-C_qByGWB.js} +1 -1
  180. zenml/zen_server/dashboard/assets/{SetPassword-DuIC65H9.js → SetPassword-7pRB00El.js} +1 -1
  181. zenml/zen_server/dashboard/assets/{Tick-DJTCF0Re.js → Tick-CykQFPj2.js} +1 -1
  182. zenml/zen_server/dashboard/assets/{UpdatePasswordSchemas-CUm-DMpw.js → UpdatePasswordSchemas-DckMEkFf.js} +1 -1
  183. zenml/zen_server/dashboard/assets/{UsageReason-CKw0juLF.js → UsageReason-DVceN14P.js} +1 -1
  184. zenml/zen_server/dashboard/assets/{WizardFooter-Cv9ApYWU.js → WizardFooter-CW0Cvd70.js} +1 -1
  185. zenml/zen_server/dashboard/assets/{check-circle-DOoS4yhF.js → check-circle-Dwxliy1Z.js} +1 -1
  186. zenml/zen_server/dashboard/assets/{chevron-down-Cwb-W_B_.js → chevron-down-8wLBS5pQ.js} +1 -1
  187. zenml/zen_server/dashboard/assets/{chevron-right-double-c9H46Kl8.js → chevron-right-double-DoD8iXWM.js} +1 -1
  188. zenml/zen_server/dashboard/assets/{cloud-only-BB4BVa6E.js → cloud-only-B-s_HMDm.js} +1 -1
  189. zenml/zen_server/dashboard/assets/{code-browser-BJYErIjr.js → code-browser-CZUQs3Wa.js} +1 -1
  190. zenml/zen_server/dashboard/assets/{copy-CaGlDsUy.js → copy-CaSMXwiU.js} +1 -1
  191. zenml/zen_server/dashboard/assets/{create-stack-F29xAUEx.js → create-stack-CEmaPZ4c.js} +1 -1
  192. zenml/zen_server/dashboard/assets/delete-run-D-LKbGyz.js +1 -0
  193. zenml/zen_server/dashboard/assets/{docker-BFAFXr2_.js → docker-BFNgg-z3.js} +1 -1
  194. zenml/zen_server/dashboard/assets/{dots-horizontal-C6K59vUm.js → dots-horizontal-DK5Duzx4.js} +1 -1
  195. zenml/zen_server/dashboard/assets/{form-schemas-BKXwSDK2.js → form-schemas-1AyOCx90.js} +1 -1
  196. zenml/zen_server/dashboard/assets/{gcp-Dj6ntk0L.js → gcp-7M2Yf3ZK.js} +1 -1
  197. zenml/zen_server/dashboard/assets/{help-CwN931fX.js → help-Dam461dC.js} +1 -1
  198. zenml/zen_server/dashboard/assets/{index-5GJ5ysEZ.js → index-BVJ8n2-j.js} +1 -1
  199. zenml/zen_server/dashboard/assets/index-Bpmj40BI.js +1 -0
  200. zenml/zen_server/dashboard/assets/index-CbU4Ln_E.css +1 -0
  201. zenml/zen_server/dashboard/assets/{index-D-mtoBj3.js → index-DKPhqP2B.js} +1 -1
  202. zenml/zen_server/dashboard/assets/index-QQb7wQEC.js +55 -0
  203. zenml/zen_server/dashboard/assets/index.esm-cuVep_NJ.js +1 -0
  204. zenml/zen_server/dashboard/assets/inter-cyrillic-400-normal-BLGc9T1a.woff2 +0 -0
  205. zenml/zen_server/dashboard/assets/inter-cyrillic-400-normal-ZzOtrSSW.woff +0 -0
  206. zenml/zen_server/dashboard/assets/inter-cyrillic-500-normal-D4Vwzodn.woff2 +0 -0
  207. zenml/zen_server/dashboard/assets/inter-cyrillic-500-normal-DH2hs3aW.woff +0 -0
  208. zenml/zen_server/dashboard/assets/inter-cyrillic-600-normal-BGBWG807.woff2 +0 -0
  209. zenml/zen_server/dashboard/assets/inter-cyrillic-600-normal-BuzJQFbW.woff +0 -0
  210. zenml/zen_server/dashboard/assets/inter-cyrillic-ext-400-normal-BPnxn4xp.woff +0 -0
  211. zenml/zen_server/dashboard/assets/inter-cyrillic-ext-400-normal-Dc4VJyIJ.woff2 +0 -0
  212. zenml/zen_server/dashboard/assets/inter-cyrillic-ext-500-normal-BShVwWPj.woff2 +0 -0
  213. zenml/zen_server/dashboard/assets/inter-cyrillic-ext-500-normal-CUiC4oBV.woff +0 -0
  214. zenml/zen_server/dashboard/assets/inter-cyrillic-ext-600-normal-Bt9VVOA-.woff +0 -0
  215. zenml/zen_server/dashboard/assets/inter-cyrillic-ext-600-normal-CaqZN2hq.woff2 +0 -0
  216. zenml/zen_server/dashboard/assets/inter-greek-400-normal-BZzXV7-1.woff +0 -0
  217. zenml/zen_server/dashboard/assets/inter-greek-400-normal-DxZsaF_h.woff2 +0 -0
  218. zenml/zen_server/dashboard/assets/inter-greek-500-normal-CeQXL5ds.woff2 +0 -0
  219. zenml/zen_server/dashboard/assets/inter-greek-500-normal-d_eO-yCQ.woff +0 -0
  220. zenml/zen_server/dashboard/assets/inter-greek-600-normal-CwicyhtI.woff +0 -0
  221. zenml/zen_server/dashboard/assets/inter-greek-600-normal-Dhlb-90d.woff2 +0 -0
  222. zenml/zen_server/dashboard/assets/inter-greek-ext-400-normal-Bput3-QP.woff2 +0 -0
  223. zenml/zen_server/dashboard/assets/inter-greek-ext-400-normal-DCpCPQOf.woff +0 -0
  224. zenml/zen_server/dashboard/assets/inter-greek-ext-500-normal-B6guLgqG.woff2 +0 -0
  225. zenml/zen_server/dashboard/assets/inter-greek-ext-500-normal-M2hEX8vc.woff +0 -0
  226. zenml/zen_server/dashboard/assets/inter-greek-ext-600-normal-C9WLioJ8.woff +0 -0
  227. zenml/zen_server/dashboard/assets/inter-greek-ext-600-normal-Cnui8OiR.woff2 +0 -0
  228. zenml/zen_server/dashboard/assets/inter-latin-400-normal-BOOGhInR.woff2 +0 -0
  229. zenml/zen_server/dashboard/assets/inter-latin-400-normal-gitzw0hO.woff +0 -0
  230. zenml/zen_server/dashboard/assets/inter-latin-500-normal-D2bGa7uu.woff2 +0 -0
  231. zenml/zen_server/dashboard/assets/inter-latin-500-normal-deR1Tlfd.woff +0 -0
  232. zenml/zen_server/dashboard/assets/inter-latin-600-normal-B5cFAncS.woff +0 -0
  233. zenml/zen_server/dashboard/assets/inter-latin-600-normal-D273HNI0.woff2 +0 -0
  234. zenml/zen_server/dashboard/assets/inter-latin-ext-400-normal-C1t-h-pH.woff +0 -0
  235. zenml/zen_server/dashboard/assets/inter-latin-ext-400-normal-hnt3BR84.woff2 +0 -0
  236. zenml/zen_server/dashboard/assets/inter-latin-ext-500-normal-CIS2RHJS.woff2 +0 -0
  237. zenml/zen_server/dashboard/assets/inter-latin-ext-500-normal-UMdmhHu2.woff +0 -0
  238. zenml/zen_server/dashboard/assets/inter-latin-ext-600-normal-BnYJhD27.woff2 +0 -0
  239. zenml/zen_server/dashboard/assets/inter-latin-ext-600-normal-CAF0vJDd.woff +0 -0
  240. zenml/zen_server/dashboard/assets/inter-vietnamese-400-normal-BUNmGMP1.woff +0 -0
  241. zenml/zen_server/dashboard/assets/inter-vietnamese-400-normal-DMkecbls.woff2 +0 -0
  242. zenml/zen_server/dashboard/assets/inter-vietnamese-500-normal-DOriooB6.woff2 +0 -0
  243. zenml/zen_server/dashboard/assets/inter-vietnamese-500-normal-DQPw2Hwd.woff +0 -0
  244. zenml/zen_server/dashboard/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2 +0 -0
  245. zenml/zen_server/dashboard/assets/inter-vietnamese-600-normal-Cm6aH8_k.woff +0 -0
  246. zenml/zen_server/dashboard/assets/{kubernetes-BjbR6D-1.js → kubernetes--g7r02Zu.js} +1 -1
  247. zenml/zen_server/dashboard/assets/{layout-Dru15_XR.js → layout-DCSYN7-C.js} +1 -1
  248. zenml/zen_server/dashboard/assets/{link-external-BT2L8hAQ.js → link-external-CBEk6kEG.js} +1 -1
  249. zenml/zen_server/dashboard/assets/{login-mutation-ax6iL2Mb.js → login-mutation-DTcAFP1l.js} +1 -1
  250. zenml/zen_server/dashboard/assets/{logs-GiDJXbLS.js → logs-D5bdJGur.js} +1 -1
  251. zenml/zen_server/dashboard/assets/not-found-Cc-JkRH2.js +1 -0
  252. zenml/zen_server/dashboard/assets/{package-DYKZ5jKW.js → package-Cs35Szwh.js} +1 -1
  253. zenml/zen_server/dashboard/assets/{page-HkVBdZl6.js → page-9yplj5JT.js} +1 -1
  254. zenml/zen_server/dashboard/assets/{page-uORspyRu.js → page-B-y2XKIc.js} +1 -1
  255. zenml/zen_server/dashboard/assets/page-BBpOxVcY.js +1 -0
  256. zenml/zen_server/dashboard/assets/{page-BDg1F-Ug.js → page-BQQKaabe.js} +2 -2
  257. zenml/zen_server/dashboard/assets/page-BRInM1Lg.js +1 -0
  258. zenml/zen_server/dashboard/assets/{page-CvKnNK1S.js → page-BjjlMk7s.js} +1 -1
  259. zenml/zen_server/dashboard/assets/{page-BukXK1Aa.js → page-Bvd7YH2A.js} +1 -1
  260. zenml/zen_server/dashboard/assets/{page-DcTjHmYZ.js → page-C0N5q3l7.js} +1 -1
  261. zenml/zen_server/dashboard/assets/page-CT3Nep8W.js +1 -0
  262. zenml/zen_server/dashboard/assets/{page-DuqYMYmH.js → page-C_f47pBf.js} +1 -1
  263. zenml/zen_server/dashboard/assets/{page-DRfcRK1w.js → page-ClUVkl-O.js} +1 -1
  264. zenml/zen_server/dashboard/assets/page-Cmv8C_yM.js +3 -0
  265. zenml/zen_server/dashboard/assets/{page-p0BhSAWx.js → page-CyN2bdWG.js} +1 -1
  266. zenml/zen_server/dashboard/assets/page-CzzXH4fs.js +1 -0
  267. zenml/zen_server/dashboard/assets/{page-6mfzecin.js → page-DH_Z7iW1.js} +1 -1
  268. zenml/zen_server/dashboard/assets/{page-8kYmrh0B.js → page-DIOXwhiD.js} +1 -1
  269. zenml/zen_server/dashboard/assets/{page-BXarY9K2.js → page-DLixvR-7.js} +1 -1
  270. zenml/zen_server/dashboard/assets/page-DTlGjgnG.js +1 -0
  271. zenml/zen_server/dashboard/assets/page-Dbpl86h0.js +1 -0
  272. zenml/zen_server/dashboard/assets/{page-MAXyfXBq.js → page-Ddgy6kDS.js} +1 -1
  273. zenml/zen_server/dashboard/assets/page-DtCAfBLy.js +9 -0
  274. zenml/zen_server/dashboard/assets/{page-CKHNAq7z.js → page-Dx16z7nA.js} +1 -1
  275. zenml/zen_server/dashboard/assets/{page-DMSLXKGT.js → page-DzpVUZ8f.js} +1 -1
  276. zenml/zen_server/dashboard/assets/page-McUyYbo1.js +1 -0
  277. zenml/zen_server/dashboard/assets/{page-miU2rhYG.js → page-N4qoPHKb.js} +1 -1
  278. zenml/zen_server/dashboard/assets/page-T1P3RyAR.js +1 -0
  279. zenml/zen_server/dashboard/assets/{page-3qPX9WYH.js → page-bKaULTGG.js} +1 -1
  280. zenml/zen_server/dashboard/assets/page-sbXUJy9t.js +1 -0
  281. zenml/zen_server/dashboard/assets/{persist-CfJMar_k.js → persist-CP0JmYZ4.js} +1 -1
  282. zenml/zen_server/dashboard/assets/{persist-BxIR2XZs.js → persist-DNb5cdrU.js} +1 -1
  283. zenml/zen_server/dashboard/assets/{plus-Bc8eLSDM.js → plus-C9IxgN2M.js} +1 -1
  284. zenml/zen_server/dashboard/assets/{refresh-hfgWPeto.js → refresh-BVu22P_C.js} +1 -1
  285. zenml/zen_server/dashboard/assets/{rocket-SESCGQXm.js → rocket-CONEmRmB.js} +1 -1
  286. zenml/zen_server/dashboard/assets/{sharedSchema-vub0rii3.js → sharedSchema-TMLu-nYQ.js} +1 -1
  287. zenml/zen_server/dashboard/assets/stack-detail-query-xmYxSsUY.js +1 -0
  288. zenml/zen_server/dashboard/assets/{tick-circle-m-hJG8i9.js → tick-circle-CM1ZScbQ.js} +1 -1
  289. zenml/zen_server/dashboard/assets/{trash-DUWZWzse.js → trash-DkJHMOg7.js} +1 -1
  290. zenml/zen_server/dashboard/assets/{update-server-settings-mutation-FGVP7X2U.js → update-server-settings-mutation-DsU8cNVl.js} +1 -1
  291. zenml/zen_server/dashboard/assets/{url-CbAPzsmT.js → url-D5le3J4q.js} +1 -1
  292. zenml/zen_server/dashboard/assets/zod-D89GC_vc.js +1 -0
  293. zenml/zen_server/dashboard/index.html +7 -7
  294. zenml/zen_server/deploy/__init__.py +7 -16
  295. zenml/zen_server/deploy/base_provider.py +46 -73
  296. zenml/zen_server/deploy/{local → daemon}/__init__.py +3 -3
  297. zenml/zen_server/deploy/{local/local_provider.py → daemon/daemon_provider.py} +44 -63
  298. zenml/zen_server/deploy/{local/local_zen_server.py → daemon/daemon_zen_server.py} +50 -28
  299. zenml/zen_server/deploy/deployer.py +90 -171
  300. zenml/zen_server/deploy/deployment.py +20 -12
  301. zenml/zen_server/deploy/docker/docker_provider.py +9 -28
  302. zenml/zen_server/deploy/docker/docker_zen_server.py +19 -9
  303. zenml/zen_server/deploy/helm/Chart.yaml +1 -1
  304. zenml/zen_server/deploy/helm/README.md +2 -2
  305. zenml/zen_server/exceptions.py +11 -0
  306. zenml/zen_server/feature_gate/zenml_cloud_feature_gate.py +1 -1
  307. zenml/zen_server/jwt.py +9 -9
  308. zenml/zen_server/routers/artifact_version_endpoints.py +1 -1
  309. zenml/zen_server/routers/auth_endpoints.py +30 -8
  310. zenml/zen_server/routers/runs_endpoints.py +0 -28
  311. zenml/zen_server/routers/stack_components_endpoints.py +1 -1
  312. zenml/zen_server/routers/workspaces_endpoints.py +1 -1
  313. zenml/zen_server/template_execution/runner_entrypoint_configuration.py +7 -4
  314. zenml/zen_server/template_execution/utils.py +8 -63
  315. zenml/zen_server/utils.py +67 -69
  316. zenml/zen_server/zen_server_api.py +107 -17
  317. zenml/zen_stores/base_zen_store.py +4 -51
  318. zenml/zen_stores/migrations/versions/0.67.0_release.py +23 -0
  319. zenml/zen_stores/migrations/versions/0.68.0_release.py +23 -0
  320. zenml/zen_stores/migrations/versions/0.68.1_release.py +23 -0
  321. zenml/zen_stores/migrations/versions/1d8f30c54477_migrate_to_new_.py +124 -0
  322. zenml/zen_stores/migrations/versions/c22561cbb3a9_add_artifact_unique_constraints.py +86 -0
  323. zenml/zen_stores/rest_zen_store.py +325 -147
  324. zenml/zen_stores/schemas/api_key_schemas.py +9 -4
  325. zenml/zen_stores/schemas/artifact_schemas.py +21 -2
  326. zenml/zen_stores/schemas/artifact_visualization_schemas.py +1 -1
  327. zenml/zen_stores/schemas/component_schemas.py +49 -6
  328. zenml/zen_stores/schemas/device_schemas.py +9 -4
  329. zenml/zen_stores/schemas/flavor_schemas.py +1 -1
  330. zenml/zen_stores/schemas/model_schemas.py +1 -1
  331. zenml/zen_stores/schemas/pipeline_run_schemas.py +12 -4
  332. zenml/zen_stores/schemas/service_schemas.py +1 -1
  333. zenml/zen_stores/schemas/step_run_schemas.py +3 -3
  334. zenml/zen_stores/schemas/trigger_schemas.py +1 -1
  335. zenml/zen_stores/sql_zen_store.py +422 -145
  336. zenml/zen_stores/template_utils.py +3 -1
  337. {zenml_nightly-0.66.0.dev20240928.dist-info → zenml_nightly-0.68.1.dev20241102.dist-info}/METADATA +20 -18
  338. {zenml_nightly-0.66.0.dev20240928.dist-info → zenml_nightly-0.68.1.dev20241102.dist-info}/RECORD +343 -505
  339. {zenml_nightly-0.66.0.dev20240928.dist-info → zenml_nightly-0.68.1.dev20241102.dist-info}/WHEEL +1 -1
  340. zenml/api.py +0 -60
  341. zenml/cli/stack_recipes.py +0 -469
  342. zenml/lineage_graph/__init__.py +0 -34
  343. zenml/lineage_graph/lineage_graph.py +0 -244
  344. zenml/lineage_graph/node/__init__.py +0 -32
  345. zenml/lineage_graph/node/artifact_node.py +0 -51
  346. zenml/lineage_graph/node/step_node.py +0 -41
  347. zenml/model/model_version.py +0 -38
  348. zenml/new/pipelines/code_archive.py +0 -157
  349. zenml/new/pipelines/pipeline_decorator.py +0 -118
  350. zenml/new/steps/step_decorator.py +0 -176
  351. zenml/pipelines/base_pipeline.py +0 -273
  352. zenml/post_execution/__init__.py +0 -30
  353. zenml/post_execution/pipeline.py +0 -55
  354. zenml/post_execution/pipeline_run.py +0 -55
  355. zenml/services/terraform/__init__.py +0 -14
  356. zenml/services/terraform/terraform_service.py +0 -441
  357. zenml/steps/external_artifact.py +0 -26
  358. zenml/steps/step_environment.py +0 -108
  359. zenml/steps/step_output.py +0 -36
  360. zenml/utils/mlstacks_utils.py +0 -635
  361. zenml/utils/terraform_utils.py +0 -43
  362. zenml/zen_server/dashboard/assets/@radix-DnFH_oo1.js +0 -85
  363. zenml/zen_server/dashboard/assets/@react-router-APVeuk-U.js +0 -29
  364. zenml/zen_server/dashboard/assets/@reactflow-ytavUpwh.js +0 -17
  365. zenml/zen_server/dashboard/assets/@tanstack-QbMbTrh5.js +0 -22
  366. zenml/zen_server/dashboard/assets/ComponentBadge-gKR1OIwG.js +0 -1
  367. zenml/zen_server/dashboard/assets/ExecutionStatus-D6r6aK8J.js +0 -1
  368. zenml/zen_server/dashboard/assets/MarkdownVisualization-DS05sfBm.js +0 -14
  369. zenml/zen_server/dashboard/assets/SearchField-BzmfxS0L.js +0 -1
  370. zenml/zen_server/dashboard/assets/all-pipeline-runs-query-BA3R2Sey.js +0 -1
  371. zenml/zen_server/dashboard/assets/delete-run-CP0pcJ3U.js +0 -1
  372. zenml/zen_server/dashboard/assets/index-BhJ6ZJxv.css +0 -1
  373. zenml/zen_server/dashboard/assets/index-Ci0nJ8EZ.js +0 -55
  374. zenml/zen_server/dashboard/assets/index.esm-BE1uqCX5.js +0 -1
  375. zenml/zen_server/dashboard/assets/inter-cyrillic-400-normal-Df6ckaLK.woff2 +0 -0
  376. zenml/zen_server/dashboard/assets/inter-cyrillic-400-normal-JrS_4yms.woff +0 -0
  377. zenml/zen_server/dashboard/assets/inter-cyrillic-500-normal-BRrLR67x.woff2 +0 -0
  378. zenml/zen_server/dashboard/assets/inter-cyrillic-500-normal-DskEQOpE.woff +0 -0
  379. zenml/zen_server/dashboard/assets/inter-cyrillic-600-normal-DDpWG8g5.woff2 +0 -0
  380. zenml/zen_server/dashboard/assets/inter-cyrillic-600-normal-iz1--dBq.woff +0 -0
  381. zenml/zen_server/dashboard/assets/inter-cyrillic-ext-400-normal-CzG7Kr3z.woff +0 -0
  382. zenml/zen_server/dashboard/assets/inter-cyrillic-ext-400-normal-tyfMZHQw.woff2 +0 -0
  383. zenml/zen_server/dashboard/assets/inter-cyrillic-ext-500-normal-DOnSzjnx.woff2 +0 -0
  384. zenml/zen_server/dashboard/assets/inter-cyrillic-ext-500-normal-Xebo2OyJ.woff +0 -0
  385. zenml/zen_server/dashboard/assets/inter-cyrillic-ext-600-normal-DpA2xaRd.woff2 +0 -0
  386. zenml/zen_server/dashboard/assets/inter-cyrillic-ext-600-normal-KAwcVx6H.woff +0 -0
  387. zenml/zen_server/dashboard/assets/inter-greek-400-normal-DQXyrmoy.woff2 +0 -0
  388. zenml/zen_server/dashboard/assets/inter-greek-400-normal-DvIPHDQ7.woff +0 -0
  389. zenml/zen_server/dashboard/assets/inter-greek-500-normal-BjpBGs91.woff +0 -0
  390. zenml/zen_server/dashboard/assets/inter-greek-500-normal-CmOavsDc.woff2 +0 -0
  391. zenml/zen_server/dashboard/assets/inter-greek-600-normal-B-l8Lzzd.woff2 +0 -0
  392. zenml/zen_server/dashboard/assets/inter-greek-600-normal-BLZsI-P3.woff +0 -0
  393. zenml/zen_server/dashboard/assets/inter-greek-ext-400-normal-CIdlr5YK.woff2 +0 -0
  394. zenml/zen_server/dashboard/assets/inter-greek-ext-400-normal-_Rr29XE2.woff +0 -0
  395. zenml/zen_server/dashboard/assets/inter-greek-ext-500-normal-2pdUafRD.woff2 +0 -0
  396. zenml/zen_server/dashboard/assets/inter-greek-ext-500-normal-Dtavx3qw.woff +0 -0
  397. zenml/zen_server/dashboard/assets/inter-greek-ext-600-normal-BmtRFZgT.woff +0 -0
  398. zenml/zen_server/dashboard/assets/inter-greek-ext-600-normal-CkBLDEl_.woff2 +0 -0
  399. zenml/zen_server/dashboard/assets/inter-latin-400-normal-BT1H-PT_.woff2 +0 -0
  400. zenml/zen_server/dashboard/assets/inter-latin-400-normal-Cdi8t5Mu.woff +0 -0
  401. zenml/zen_server/dashboard/assets/inter-latin-500-normal-D4I8BKCx.woff +0 -0
  402. zenml/zen_server/dashboard/assets/inter-latin-500-normal-kWhwEdDH.woff2 +0 -0
  403. zenml/zen_server/dashboard/assets/inter-latin-600-normal-B2Ssfs8e.woff2 +0 -0
  404. zenml/zen_server/dashboard/assets/inter-latin-600-normal-Dbvh0wvx.woff +0 -0
  405. zenml/zen_server/dashboard/assets/inter-latin-ext-400-normal-8tIzm-yw.woff +0 -0
  406. zenml/zen_server/dashboard/assets/inter-latin-ext-400-normal-D3W-OpO-.woff2 +0 -0
  407. zenml/zen_server/dashboard/assets/inter-latin-ext-500-normal-B9u8Q_zH.woff2 +0 -0
  408. zenml/zen_server/dashboard/assets/inter-latin-ext-500-normal-SuUkSNTU.woff +0 -0
  409. zenml/zen_server/dashboard/assets/inter-latin-ext-600-normal-Dg0Bk0Yr.woff +0 -0
  410. zenml/zen_server/dashboard/assets/inter-latin-ext-600-normal-ao35dkSb.woff2 +0 -0
  411. zenml/zen_server/dashboard/assets/inter-vietnamese-400-normal-Cnt0N5Vm.woff2 +0 -0
  412. zenml/zen_server/dashboard/assets/inter-vietnamese-400-normal-DIOGfGLL.woff +0 -0
  413. zenml/zen_server/dashboard/assets/inter-vietnamese-500-normal-0i6yoQMg.woff +0 -0
  414. zenml/zen_server/dashboard/assets/inter-vietnamese-500-normal-5IkPJ6Nk.woff2 +0 -0
  415. zenml/zen_server/dashboard/assets/inter-vietnamese-600-normal-BQ_dbMbg.woff +0 -0
  416. zenml/zen_server/dashboard/assets/inter-vietnamese-600-normal-DjnxGF-L.woff2 +0 -0
  417. zenml/zen_server/dashboard/assets/not-found-DbjllLY_.js +0 -1
  418. zenml/zen_server/dashboard/assets/page-B1n7_W7z.js +0 -1
  419. zenml/zen_server/dashboard/assets/page-BZZhLo2u.js +0 -1
  420. zenml/zen_server/dashboard/assets/page-Bbf_oBjn.js +0 -1
  421. zenml/zen_server/dashboard/assets/page-BjjuBvZG.js +0 -9
  422. zenml/zen_server/dashboard/assets/page-CHaQkFK5.js +0 -1
  423. zenml/zen_server/dashboard/assets/page-CS0SYFK8.js +0 -1
  424. zenml/zen_server/dashboard/assets/page-DGM1CbYT.js +0 -2
  425. zenml/zen_server/dashboard/assets/page-DOmIZ2ra.js +0 -1
  426. zenml/zen_server/dashboard/assets/page-DYVmJ9_w.js +0 -3
  427. zenml/zen_server/dashboard/assets/page-Dwow2doB.js +0 -1
  428. zenml/zen_server/dashboard/assets/stack-detail-query-DQcyzG-2.js +0 -1
  429. zenml/zen_server/dashboard/assets/zod-uFd1wBcd.js +0 -1
  430. zenml/zen_server/dashboard_legacy/_redirects +0 -1
  431. zenml/zen_server/dashboard_legacy/asset-manifest.json +0 -131
  432. zenml/zen_server/dashboard_legacy/favicon.ico +0 -0
  433. zenml/zen_server/dashboard_legacy/index.html +0 -1
  434. zenml/zen_server/dashboard_legacy/manifest.json +0 -25
  435. zenml/zen_server/dashboard_legacy/precache-manifest.6d320abb70db612019dda6c4948e7a90.js +0 -462
  436. zenml/zen_server/dashboard_legacy/robots.txt +0 -2
  437. zenml/zen_server/dashboard_legacy/service-worker.js +0 -39
  438. zenml/zen_server/dashboard_legacy/static/css/2.5b37d44a.chunk.css +0 -16
  439. zenml/zen_server/dashboard_legacy/static/css/2.5b37d44a.chunk.css.map +0 -1
  440. zenml/zen_server/dashboard_legacy/static/css/main.e79dff04.chunk.css +0 -2
  441. zenml/zen_server/dashboard_legacy/static/css/main.e79dff04.chunk.css.map +0 -1
  442. zenml/zen_server/dashboard_legacy/static/js/2.7934458d.chunk.js +0 -3
  443. zenml/zen_server/dashboard_legacy/static/js/2.7934458d.chunk.js.LICENSE.txt +0 -95
  444. zenml/zen_server/dashboard_legacy/static/js/2.7934458d.chunk.js.map +0 -1
  445. zenml/zen_server/dashboard_legacy/static/js/main.fa9299d5.chunk.js +0 -2
  446. zenml/zen_server/dashboard_legacy/static/js/main.fa9299d5.chunk.js.map +0 -1
  447. zenml/zen_server/dashboard_legacy/static/js/runtime-main.bfca2edd.js +0 -2
  448. zenml/zen_server/dashboard_legacy/static/js/runtime-main.bfca2edd.js.map +0 -1
  449. zenml/zen_server/dashboard_legacy/static/media/AlertTriangle.28aee535.svg +0 -5
  450. zenml/zen_server/dashboard_legacy/static/media/ArrowSquareOut.abfb9bc7.svg +0 -5
  451. zenml/zen_server/dashboard_legacy/static/media/Back.86c23a22.svg +0 -4
  452. zenml/zen_server/dashboard_legacy/static/media/BookOpen.5cb101ff.svg +0 -4
  453. zenml/zen_server/dashboard_legacy/static/media/BoundingBox.1eb98717.svg +0 -10
  454. zenml/zen_server/dashboard_legacy/static/media/Burger.9b1c67d7.svg +0 -3
  455. zenml/zen_server/dashboard_legacy/static/media/Cached.2381fb8d.svg +0 -1
  456. zenml/zen_server/dashboard_legacy/static/media/Calendar.356e11c7.svg +0 -3
  457. zenml/zen_server/dashboard_legacy/static/media/ChartBarHorizontal.0247447b.svg +0 -6
  458. zenml/zen_server/dashboard_legacy/static/media/ChartLine.0d79e18d.svg +0 -4
  459. zenml/zen_server/dashboard_legacy/static/media/ChatDots.2e1c9211.svg +0 -6
  460. zenml/zen_server/dashboard_legacy/static/media/Check.dad6beb2.svg +0 -3
  461. zenml/zen_server/dashboard_legacy/static/media/CheckCircleFilled.c19566d0.svg +0 -3
  462. zenml/zen_server/dashboard_legacy/static/media/Checkbox.af50e31e.svg +0 -3
  463. zenml/zen_server/dashboard_legacy/static/media/ChevronDown.f860ce32.svg +0 -3
  464. zenml/zen_server/dashboard_legacy/static/media/ChevronDownLight.6642d756.svg +0 -3
  465. zenml/zen_server/dashboard_legacy/static/media/ChevronLeft.f6edfcdb.svg +0 -3
  466. zenml/zen_server/dashboard_legacy/static/media/CircleCheck.f98fd6ca.svg +0 -1
  467. zenml/zen_server/dashboard_legacy/static/media/Clock.ffc9de95.svg +0 -3
  468. zenml/zen_server/dashboard_legacy/static/media/Close.74e9efbc.svg +0 -5
  469. zenml/zen_server/dashboard_legacy/static/media/CloseWithBorder.6960930a.svg +0 -3
  470. zenml/zen_server/dashboard_legacy/static/media/CloseWithoutBorder.cd6f71df.svg +0 -3
  471. zenml/zen_server/dashboard_legacy/static/media/CloudArrowUp.0aecb235.svg +0 -6
  472. zenml/zen_server/dashboard_legacy/static/media/Code.ef0f33b5.svg +0 -3
  473. zenml/zen_server/dashboard_legacy/static/media/Config.0be63f8a.svg +0 -1
  474. zenml/zen_server/dashboard_legacy/static/media/Connector.9fd46ef1.svg +0 -10
  475. zenml/zen_server/dashboard_legacy/static/media/Copy.36e2112a.svg +0 -1
  476. zenml/zen_server/dashboard_legacy/static/media/Dashboard.d05787e0.svg +0 -3
  477. zenml/zen_server/dashboard_legacy/static/media/Data.b1c3b5f8.svg +0 -3
  478. zenml/zen_server/dashboard_legacy/static/media/Delete.3c361b28.svg +0 -8
  479. zenml/zen_server/dashboard_legacy/static/media/Docs.7541d478.svg +0 -7
  480. zenml/zen_server/dashboard_legacy/static/media/Download.fba04d87.svg +0 -5
  481. zenml/zen_server/dashboard_legacy/static/media/Edit.490eb294.svg +0 -6
  482. zenml/zen_server/dashboard_legacy/static/media/EmptyRightArrow.23749d01.svg +0 -3
  483. zenml/zen_server/dashboard_legacy/static/media/Example.6396cd37.svg +0 -5
  484. zenml/zen_server/dashboard_legacy/static/media/Extension.1394cd4a.svg +0 -3
  485. zenml/zen_server/dashboard_legacy/static/media/Eye.d9e4ee62.svg +0 -4
  486. zenml/zen_server/dashboard_legacy/static/media/Failed.0213c1a0.svg +0 -1
  487. zenml/zen_server/dashboard_legacy/static/media/FileText.1f15bacd.svg +0 -7
  488. zenml/zen_server/dashboard_legacy/static/media/Filter.ab6b9c0d.svg +0 -3
  489. zenml/zen_server/dashboard_legacy/static/media/Folders.12b29887.svg +0 -5
  490. zenml/zen_server/dashboard_legacy/static/media/FunnelFill.6df4c143.svg +0 -3
  491. zenml/zen_server/dashboard_legacy/static/media/GitCommit.7dd9c2aa.svg +0 -5
  492. zenml/zen_server/dashboard_legacy/static/media/GitHub_Logo.cefc2023.png +0 -0
  493. zenml/zen_server/dashboard_legacy/static/media/Graph.2c63a892.svg +0 -11
  494. zenml/zen_server/dashboard_legacy/static/media/History.08329240.svg +0 -3
  495. zenml/zen_server/dashboard_legacy/static/media/Home.0843b0d5.svg +0 -3
  496. zenml/zen_server/dashboard_legacy/static/media/ImageBuilder.ea762d9c.svg +0 -6
  497. zenml/zen_server/dashboard_legacy/static/media/InProgress.304a0edc.svg +0 -1
  498. zenml/zen_server/dashboard_legacy/static/media/Info.9fe10c5c.svg +0 -3
  499. zenml/zen_server/dashboard_legacy/static/media/KeyboardReturn.491afbe3.svg +0 -3
  500. zenml/zen_server/dashboard_legacy/static/media/Link.72bbb55d.svg +0 -4
  501. zenml/zen_server/dashboard_legacy/static/media/Lock.30f5e1fe.svg +0 -5
  502. zenml/zen_server/dashboard_legacy/static/media/Lock2.a769ea52.svg +0 -3
  503. zenml/zen_server/dashboard_legacy/static/media/LockKey.92f21621.svg +0 -6
  504. zenml/zen_server/dashboard_legacy/static/media/Logs.8bf4d005.svg +0 -5
  505. zenml/zen_server/dashboard_legacy/static/media/MinusCircle.4188f418.svg +0 -4
  506. zenml/zen_server/dashboard_legacy/static/media/ModelRegistry.f0de050a.svg +0 -6
  507. zenml/zen_server/dashboard_legacy/static/media/MultiUser.a2ba7c67.svg +0 -10
  508. zenml/zen_server/dashboard_legacy/static/media/PaginationFirst.92628634.svg +0 -4
  509. zenml/zen_server/dashboard_legacy/static/media/PaginationLast.00d3c732.svg +0 -4
  510. zenml/zen_server/dashboard_legacy/static/media/PaginationNext.86158845.svg +0 -3
  511. zenml/zen_server/dashboard_legacy/static/media/PaginationPrev.60c18a88.svg +0 -3
  512. zenml/zen_server/dashboard_legacy/static/media/Pen.f2d831d4.svg +0 -6
  513. zenml/zen_server/dashboard_legacy/static/media/PhotoCamera.179d6d4c.svg +0 -3
  514. zenml/zen_server/dashboard_legacy/static/media/Pipeline.30d298b0.svg +0 -7
  515. zenml/zen_server/dashboard_legacy/static/media/Plus.5aa1c16b.svg +0 -3
  516. zenml/zen_server/dashboard_legacy/static/media/PlusCircle.92d860dd.svg +0 -5
  517. zenml/zen_server/dashboard_legacy/static/media/Repositories.71a36b8c.svg +0 -3
  518. zenml/zen_server/dashboard_legacy/static/media/RightArrow.f30d3871.svg +0 -29
  519. zenml/zen_server/dashboard_legacy/static/media/Rocket.63bf7b9d.svg +0 -3
  520. zenml/zen_server/dashboard_legacy/static/media/RocketLaunch.1bff2b59.svg +0 -6
  521. zenml/zen_server/dashboard_legacy/static/media/Rubik-Medium.c87313aa.ttf +0 -0
  522. zenml/zen_server/dashboard_legacy/static/media/Rubik-Regular.b3d0902b.ttf +0 -0
  523. zenml/zen_server/dashboard_legacy/static/media/Run.daec4fb2.svg +0 -6
  524. zenml/zen_server/dashboard_legacy/static/media/Search.d1afcce5.svg +0 -4
  525. zenml/zen_server/dashboard_legacy/static/media/Settings.59ca73ae.svg +0 -4
  526. zenml/zen_server/dashboard_legacy/static/media/Share2.46c3ff66.svg +0 -3
  527. zenml/zen_server/dashboard_legacy/static/media/SignOut.6aa718c5.svg +0 -3
  528. zenml/zen_server/dashboard_legacy/static/media/SimplePlus.5cf7ec20.svg +0 -3
  529. zenml/zen_server/dashboard_legacy/static/media/SingleUser.bef3a095.svg +0 -4
  530. zenml/zen_server/dashboard_legacy/static/media/SourceCodePro-Regular.b484b32f.ttf +0 -0
  531. zenml/zen_server/dashboard_legacy/static/media/Stack.19b604ac.svg +0 -5
  532. zenml/zen_server/dashboard_legacy/static/media/StackComponent.b1ba90b5.svg +0 -4
  533. zenml/zen_server/dashboard_legacy/static/media/Star.f0c25022.svg +0 -9
  534. zenml/zen_server/dashboard_legacy/static/media/StarOutline.94ca8cd9.svg +0 -3
  535. zenml/zen_server/dashboard_legacy/static/media/Storefront.4b4796fe.svg +0 -3
  536. zenml/zen_server/dashboard_legacy/static/media/Stream.543e3039.svg +0 -3
  537. zenml/zen_server/dashboard_legacy/static/media/SupportAgent.510ddf1f.svg +0 -8
  538. zenml/zen_server/dashboard_legacy/static/media/Table.77033750.svg +0 -6
  539. zenml/zen_server/dashboard_legacy/static/media/Tool.d5785486.svg +0 -3
  540. zenml/zen_server/dashboard_legacy/static/media/UserPlus.741a99d7.svg +0 -6
  541. zenml/zen_server/dashboard_legacy/static/media/Verified.0625b2a0.svg +0 -3
  542. zenml/zen_server/dashboard_legacy/static/media/addNew.4fb6c939.svg +0 -8
  543. zenml/zen_server/dashboard_legacy/static/media/arrowClose.cbd53f3f.svg +0 -3
  544. zenml/zen_server/dashboard_legacy/static/media/arrowOpen.6ceef0af.svg +0 -3
  545. zenml/zen_server/dashboard_legacy/static/media/check_small.30bc0138.svg +0 -3
  546. zenml/zen_server/dashboard_legacy/static/media/circleArrowSideClose.98d6013e.svg +0 -18
  547. zenml/zen_server/dashboard_legacy/static/media/circleArrowSideOpen.63653df6.svg +0 -18
  548. zenml/zen_server/dashboard_legacy/static/media/image.104fd14b.png +0 -0
  549. zenml/zen_server/dashboard_legacy/static/media/imageAddIcon.e83004a9.svg +0 -7
  550. zenml/zen_server/dashboard_legacy/static/media/logo.93333e5c.svg +0 -1
  551. zenml/zen_server/dashboard_legacy/static/media/logo_small.4204397d.svg +0 -3
  552. zenml/zen_server/dashboard_legacy/static/media/logo_white.d4b4414e.svg +0 -20
  553. zenml/zen_server/dashboard_legacy/static/media/notConnected.5e2c8ea7.svg +0 -8
  554. zenml/zen_server/dashboard_legacy/static/media/plugin-fallback.72c294e6.svg +0 -6
  555. zenml/zen_server/dashboard_legacy/static/media/share.bcd998b0.svg +0 -5
  556. zenml/zen_server/dashboard_legacy/static/media/stars.08a9b19a.svg +0 -8
  557. zenml/zen_server/deploy/terraform/__init__.py +0 -41
  558. zenml/zen_server/deploy/terraform/providers/aws_provider.py +0 -61
  559. zenml/zen_server/deploy/terraform/providers/azure_provider.py +0 -59
  560. zenml/zen_server/deploy/terraform/providers/gcp_provider.py +0 -59
  561. zenml/zen_server/deploy/terraform/providers/terraform_provider.py +0 -331
  562. zenml/zen_server/deploy/terraform/recipes/aws/.gitignore +0 -8
  563. zenml/zen_server/deploy/terraform/recipes/aws/helm.tf +0 -20
  564. zenml/zen_server/deploy/terraform/recipes/aws/ingress.tf +0 -30
  565. zenml/zen_server/deploy/terraform/recipes/aws/outputs.tf +0 -7
  566. zenml/zen_server/deploy/terraform/recipes/aws/printf.cmd +0 -2
  567. zenml/zen_server/deploy/terraform/recipes/aws/sql.tf +0 -62
  568. zenml/zen_server/deploy/terraform/recipes/aws/terraform.tf +0 -44
  569. zenml/zen_server/deploy/terraform/recipes/aws/variables.tf +0 -167
  570. zenml/zen_server/deploy/terraform/recipes/aws/vpc.tf +0 -47
  571. zenml/zen_server/deploy/terraform/recipes/aws/zen_server.tf +0 -103
  572. zenml/zen_server/deploy/terraform/recipes/azure/.gitignore +0 -8
  573. zenml/zen_server/deploy/terraform/recipes/azure/helm.tf +0 -20
  574. zenml/zen_server/deploy/terraform/recipes/azure/ingress.tf +0 -30
  575. zenml/zen_server/deploy/terraform/recipes/azure/key_vault.tf +0 -73
  576. zenml/zen_server/deploy/terraform/recipes/azure/outputs.tf +0 -7
  577. zenml/zen_server/deploy/terraform/recipes/azure/printf.cmd +0 -2
  578. zenml/zen_server/deploy/terraform/recipes/azure/rg.tf +0 -36
  579. zenml/zen_server/deploy/terraform/recipes/azure/sql.tf +0 -65
  580. zenml/zen_server/deploy/terraform/recipes/azure/terraform.tf +0 -52
  581. zenml/zen_server/deploy/terraform/recipes/azure/variables.tf +0 -176
  582. zenml/zen_server/deploy/terraform/recipes/azure/zen_server.tf +0 -103
  583. zenml/zen_server/deploy/terraform/recipes/gcp/.gitignore +0 -8
  584. zenml/zen_server/deploy/terraform/recipes/gcp/helm.tf +0 -20
  585. zenml/zen_server/deploy/terraform/recipes/gcp/ingress.tf +0 -30
  586. zenml/zen_server/deploy/terraform/recipes/gcp/outputs.tf +0 -7
  587. zenml/zen_server/deploy/terraform/recipes/gcp/printf.cmd +0 -2
  588. zenml/zen_server/deploy/terraform/recipes/gcp/sql.tf +0 -64
  589. zenml/zen_server/deploy/terraform/recipes/gcp/terraform.tf +0 -44
  590. zenml/zen_server/deploy/terraform/recipes/gcp/variables.tf +0 -171
  591. zenml/zen_server/deploy/terraform/recipes/gcp/zen_server.tf +0 -114
  592. zenml/zen_server/deploy/terraform/terraform_zen_server.py +0 -246
  593. /zenml/{new/pipelines → pipelines}/build_utils.py +0 -0
  594. /zenml/{new/steps → steps}/decorated_step.py +0 -0
  595. {zenml_nightly-0.66.0.dev20240928.dist-info → zenml_nightly-0.68.1.dev20241102.dist-info}/LICENSE +0 -0
  596. {zenml_nightly-0.66.0.dev20240928.dist-info → zenml_nightly-0.68.1.dev20241102.dist-info}/entry_points.txt +0 -0
zenml/model/utils.py CHANGED
@@ -24,122 +24,16 @@ from zenml.logger import get_logger
24
24
  from zenml.metadata.metadata_types import MetadataType
25
25
  from zenml.model.model import Model
26
26
  from zenml.models import (
27
+ ArtifactVersionResponse,
27
28
  ModelVersionArtifactRequest,
29
+ ModelVersionResponse,
28
30
  ServiceUpdate,
29
31
  )
30
- from zenml.new.steps.step_context import get_step_context
32
+ from zenml.steps.step_context import get_step_context
31
33
 
32
34
  logger = get_logger(__name__)
33
35
 
34
36
 
35
- def link_step_artifacts_to_model(
36
- artifact_version_ids: Dict[str, UUID],
37
- ) -> None:
38
- """Links the output artifacts of a step to the model.
39
-
40
- Args:
41
- artifact_version_ids: The IDs of the published output artifacts.
42
-
43
- Raises:
44
- RuntimeError: If called outside of a step.
45
- """
46
- try:
47
- step_context = get_step_context()
48
- except StepContextError:
49
- raise RuntimeError(
50
- "`link_step_artifacts_to_model` can only be called from within a "
51
- "step."
52
- )
53
- try:
54
- model = step_context.model
55
- except StepContextError:
56
- model = None
57
- logger.debug("No model context found, unable to auto-link artifacts.")
58
-
59
- for artifact_name, artifact_version_id in artifact_version_ids.items():
60
- artifact_config = step_context._get_output(
61
- artifact_name
62
- ).artifact_config
63
-
64
- if artifact_config is None and model is not None:
65
- artifact_config = ArtifactConfig(name=artifact_name)
66
-
67
- if artifact_config:
68
- link_artifact_config_to_model(
69
- artifact_config=artifact_config,
70
- artifact_version_id=artifact_version_id,
71
- model=model,
72
- )
73
-
74
-
75
- def link_artifact_config_to_model(
76
- artifact_config: ArtifactConfig,
77
- artifact_version_id: UUID,
78
- model: Optional["Model"] = None,
79
- ) -> None:
80
- """Link an artifact config to its model version.
81
-
82
- Args:
83
- artifact_config: The artifact config to link.
84
- artifact_version_id: The ID of the artifact to link.
85
- model: The model version from the step or pipeline context.
86
- """
87
- client = Client()
88
-
89
- # If the artifact config specifies a model itself then always use that
90
- if artifact_config.model_name is not None:
91
- from zenml.model.model import Model
92
-
93
- model = Model(
94
- name=artifact_config.model_name,
95
- version=artifact_config.model_version,
96
- )
97
-
98
- if model:
99
- logger.debug(
100
- f"Linking artifact `{artifact_config.name}` to model "
101
- f"`{model.name}` version `{model.version}` using config "
102
- f"`{artifact_config}`."
103
- )
104
- request = ModelVersionArtifactRequest(
105
- user=client.active_user.id,
106
- workspace=client.active_workspace.id,
107
- artifact_version=artifact_version_id,
108
- model=model.model_id,
109
- model_version=model.id,
110
- is_model_artifact=artifact_config.is_model_artifact,
111
- is_deployment_artifact=artifact_config.is_deployment_artifact,
112
- )
113
- client.zen_store.create_model_version_artifact_link(request)
114
-
115
-
116
- def log_model_version_metadata(
117
- metadata: Dict[str, "MetadataType"],
118
- model_name: Optional[str] = None,
119
- model_version: Optional[Union[ModelStages, int, str]] = None,
120
- ) -> None:
121
- """Log model version metadata.
122
-
123
- This function can be used to log metadata for existing model versions.
124
-
125
- Args:
126
- metadata: The metadata to log.
127
- model_name: The name of the model to log metadata for. Can
128
- be omitted when being called inside a step with configured
129
- `model` in decorator.
130
- model_version: The version of the model to log metadata for. Can
131
- be omitted when being called inside a step with configured
132
- `model` in decorator.
133
- """
134
- logger.warning(
135
- "`log_model_version_metadata` is deprecated. Please use "
136
- "`log_model_metadata` instead."
137
- )
138
- log_model_metadata(
139
- metadata=metadata, model_name=model_name, model_version=model_version
140
- )
141
-
142
-
143
37
  def log_model_metadata(
144
38
  metadata: Dict[str, "MetadataType"],
145
39
  model_name: Optional[str] = None,
@@ -179,8 +73,41 @@ def log_model_metadata(
179
73
  mv.log_metadata(metadata)
180
74
 
181
75
 
76
+ def link_artifact_version_to_model_version(
77
+ artifact_version: ArtifactVersionResponse,
78
+ model_version: ModelVersionResponse,
79
+ artifact_config: Optional[ArtifactConfig] = None,
80
+ ) -> None:
81
+ """Link an artifact version to a model version.
82
+
83
+ Args:
84
+ artifact_version: The artifact version to link.
85
+ model_version: The model version to link.
86
+ artifact_config: Output artifact configuration.
87
+ """
88
+ if artifact_config:
89
+ is_model_artifact = artifact_config.is_model_artifact
90
+ is_deployment_artifact = artifact_config.is_deployment_artifact
91
+ else:
92
+ is_model_artifact = False
93
+ is_deployment_artifact = False
94
+
95
+ client = Client()
96
+ client.zen_store.create_model_version_artifact_link(
97
+ ModelVersionArtifactRequest(
98
+ user=client.active_user.id,
99
+ workspace=client.active_workspace.id,
100
+ artifact_version=artifact_version.id,
101
+ model=model_version.model.id,
102
+ model_version=model_version.id,
103
+ is_model_artifact=is_model_artifact,
104
+ is_deployment_artifact=is_deployment_artifact,
105
+ )
106
+ )
107
+
108
+
182
109
  def link_artifact_to_model(
183
- artifact_version_id: UUID,
110
+ artifact_version: ArtifactVersionResponse,
184
111
  model: Optional["Model"] = None,
185
112
  is_model_artifact: bool = False,
186
113
  is_deployment_artifact: bool = False,
@@ -188,7 +115,7 @@ def link_artifact_to_model(
188
115
  """Link the artifact to the model.
189
116
 
190
117
  Args:
191
- artifact_version_id: The ID of the artifact version.
118
+ artifact_version: The artifact version to link.
192
119
  model: The model to link to.
193
120
  is_model_artifact: Whether the artifact is a model artifact.
194
121
  is_deployment_artifact: Whether the artifact is a deployment artifact.
@@ -212,13 +139,15 @@ def link_artifact_to_model(
212
139
  "@step or @pipeline decorator."
213
140
  )
214
141
 
215
- link_artifact_config_to_model(
216
- artifact_config=ArtifactConfig(
217
- is_model_artifact=is_model_artifact,
218
- is_deployment_artifact=is_deployment_artifact,
219
- ),
220
- artifact_version_id=artifact_version_id,
221
- model=model,
142
+ model_version = model._get_or_create_model_version()
143
+ artifact_config = ArtifactConfig(
144
+ is_model_artifact=is_model_artifact,
145
+ is_deployment_artifact=is_deployment_artifact,
146
+ )
147
+ link_artifact_version_to_model_version(
148
+ artifact_version=artifact_version,
149
+ model_version=model_version,
150
+ artifact_config=artifact_config,
222
151
  )
223
152
 
224
153
 
zenml/models/__init__.py CHANGED
@@ -132,6 +132,7 @@ from zenml.models.v2.core.component import (
132
132
  ComponentResponse,
133
133
  ComponentResponseBody,
134
134
  ComponentResponseMetadata,
135
+ ComponentResponseResources
135
136
  )
136
137
  from zenml.models.v2.core.event_source_flavor import (
137
138
  EventSourceFlavorResponse,
@@ -292,6 +293,7 @@ from zenml.models.v2.core.step_run import (
292
293
  StepRunResponse,
293
294
  StepRunResponseBody,
294
295
  StepRunResponseMetadata,
296
+ StepRunResponseResources
295
297
  )
296
298
  from zenml.models.v2.core.tag import (
297
299
  TagFilter,
@@ -409,6 +411,7 @@ CodeRepositoryResponseBody.model_rebuild()
409
411
  CodeRepositoryResponseMetadata.model_rebuild()
410
412
  ComponentResponseBody.model_rebuild()
411
413
  ComponentResponseMetadata.model_rebuild()
414
+ ComponentResponseResources.model_rebuild()
412
415
  EventSourceResponseBody.model_rebuild()
413
416
  EventSourceResponseMetadata.model_rebuild()
414
417
  EventSourceResponseResources.model_rebuild()
@@ -459,6 +462,7 @@ StackResponse.model_rebuild()
459
462
  StepRunRequest.model_rebuild()
460
463
  StepRunResponseBody.model_rebuild()
461
464
  StepRunResponseMetadata.model_rebuild()
465
+ StepRunResponseResources.model_rebuild()
462
466
  TriggerExecutionResponseResources.model_rebuild()
463
467
  TriggerResponseBody.model_rebuild()
464
468
  TriggerResponseMetadata.model_rebuild()
@@ -555,6 +559,7 @@ __all__ = [
555
559
  "ComponentResponse",
556
560
  "ComponentResponseBody",
557
561
  "ComponentResponseMetadata",
562
+ "ComponentResponseResources",
558
563
  "EventSourceFlavorResponse",
559
564
  "EventSourceFlavorResponseBody",
560
565
  "EventSourceFlavorResponseMetadata",
@@ -685,6 +690,7 @@ __all__ = [
685
690
  "StepRunResponse",
686
691
  "StepRunResponseBody",
687
692
  "StepRunResponseMetadata",
693
+ "StepRunResponseResources",
688
694
  "TagFilter",
689
695
  "TagResourceResponse",
690
696
  "TagResourceResponseBody",
@@ -215,6 +215,14 @@ class BaseResponse(BaseZenModel, Generic[AnyBody, AnyMetadata, AnyResources]):
215
215
  f"`{hydrated_value}`"
216
216
  )
217
217
 
218
+ def hydrate(self) -> None:
219
+ """Hydrate the response."""
220
+ hydrated_version = self.get_hydrated_version()
221
+ self._validate_hydrated_version(hydrated_version)
222
+
223
+ self.resources = hydrated_version.resources
224
+ self.metadata = hydrated_version.metadata
225
+
218
226
  def get_hydrated_version(
219
227
  self,
220
228
  ) -> "BaseResponse[AnyBody, AnyMetadata, AnyResources]":
@@ -269,9 +277,7 @@ class BaseResponse(BaseZenModel, Generic[AnyBody, AnyMetadata, AnyResources]):
269
277
  if len(metadata_type.model_fields):
270
278
  # If the metadata class defines any fields, fetch the metadata
271
279
  # through the hydrated version.
272
- hydrated_version = self.get_hydrated_version()
273
- self._validate_hydrated_version(hydrated_version)
274
- self.metadata = hydrated_version.metadata
280
+ self.hydrate()
275
281
  else:
276
282
  # Otherwise, use the metadata class to create an empty metadata
277
283
  # object.
@@ -298,8 +304,8 @@ class BaseResponse(BaseZenModel, Generic[AnyBody, AnyMetadata, AnyResources]):
298
304
  "field should exist."
299
305
  )
300
306
 
301
- # metadata is defined as:
302
- # metadata: Optional[....ResponseMetadata] = Field(default=None)
307
+ # resources is defined as:
308
+ # resources: Optional[....ResponseResources] = Field(default=None)
303
309
  # We need to find the actual class inside the Optional annotation.
304
310
  from zenml.utils.typing_utils import get_args
305
311
 
@@ -309,9 +315,7 @@ class BaseResponse(BaseZenModel, Generic[AnyBody, AnyMetadata, AnyResources]):
309
315
  if len(resources_type.model_fields):
310
316
  # If the resources class defines any fields, fetch the resources
311
317
  # through the hydrated version.
312
- hydrated_version = self.get_hydrated_version()
313
- self._validate_hydrated_version(hydrated_version)
314
- self.resources = hydrated_version.resources
318
+ self.hydrate()
315
319
  else:
316
320
  # Otherwise, use the resources class to create an empty
317
321
  # resources object.
@@ -604,12 +604,15 @@ class BaseFilter(BaseModel):
604
604
  self,
605
605
  value: Union[UUID, str],
606
606
  table: Type["NamedSchema"],
607
+ additional_columns: Optional[List[str]] = None,
607
608
  ) -> "ColumnElement[bool]":
608
609
  """Generate filter conditions for name or id of a table.
609
610
 
610
611
  Args:
611
612
  value: The filter value.
612
613
  table: The table to filter.
614
+ additional_columns: Additional table columns that should also
615
+ filtered for the given value as part of the or condition.
613
616
 
614
617
  Returns:
615
618
  The query conditions.
@@ -637,6 +640,12 @@ class BaseFilter(BaseModel):
637
640
  )
638
641
  conditions.append(filter_.generate_query_conditions(table=table))
639
642
 
643
+ for column in additional_columns or []:
644
+ filter_ = FilterGenerator(table).define_filter(
645
+ column=column, value=value, operator=operator
646
+ )
647
+ conditions.append(filter_.generate_query_conditions(table=table))
648
+
640
649
  return or_(*conditions)
641
650
 
642
651
  def generate_custom_query_conditions_for_column(
@@ -24,13 +24,19 @@ from typing import (
24
24
  )
25
25
  from uuid import UUID
26
26
 
27
- from pydantic import BaseModel, ConfigDict, Field, field_validator
27
+ from pydantic import (
28
+ BaseModel,
29
+ ConfigDict,
30
+ Field,
31
+ field_validator,
32
+ model_validator,
33
+ )
28
34
 
29
35
  from zenml.config.source import Source, SourceWithValidator
30
36
  from zenml.constants import STR_FIELD_MAX_LENGTH, TEXT_FIELD_MAX_LENGTH
31
37
  from zenml.enums import ArtifactType, GenericFilterOps
32
38
  from zenml.logger import get_logger
33
- from zenml.model.model import Model
39
+ from zenml.metadata.metadata_types import MetadataType
34
40
  from zenml.models.v2.base.filter import StrFilter
35
41
  from zenml.models.v2.base.scoped import (
36
42
  WorkspaceScopedRequest,
@@ -64,11 +70,16 @@ logger = get_logger(__name__)
64
70
  class ArtifactVersionRequest(WorkspaceScopedRequest):
65
71
  """Request model for artifact versions."""
66
72
 
67
- artifact_id: UUID = Field(
73
+ artifact_id: Optional[UUID] = Field(
74
+ default=None,
68
75
  title="ID of the artifact to which this version belongs.",
69
76
  )
70
- version: Union[str, int] = Field(
71
- title="Version of the artifact.", union_mode="left_to_right"
77
+ artifact_name: Optional[str] = Field(
78
+ default=None,
79
+ title="Name of the artifact to which this version belongs.",
80
+ )
81
+ version: Optional[Union[int, str]] = Field(
82
+ default=None, title="Version of the artifact."
72
83
  )
73
84
  has_custom_name: bool = Field(
74
85
  title="Whether the name is custom (True) or auto-generated (False).",
@@ -96,6 +107,9 @@ class ArtifactVersionRequest(WorkspaceScopedRequest):
96
107
  visualizations: Optional[List["ArtifactVisualizationRequest"]] = Field(
97
108
  default=None, title="Visualizations of the artifact."
98
109
  )
110
+ metadata: Optional[Dict[str, MetadataType]] = Field(
111
+ default=None, title="Metadata of the artifact version."
112
+ )
99
113
 
100
114
  @field_validator("version")
101
115
  @classmethod
@@ -118,6 +132,28 @@ class ArtifactVersionRequest(WorkspaceScopedRequest):
118
132
  )
119
133
  return value
120
134
 
135
+ @model_validator(mode="after")
136
+ def _validate_request(self) -> "ArtifactVersionRequest":
137
+ """Validate the request values.
138
+
139
+ Raises:
140
+ ValueError: If the request is invalid.
141
+
142
+ Returns:
143
+ The validated request.
144
+ """
145
+ if self.artifact_id and self.artifact_name:
146
+ raise ValueError(
147
+ "Only one of artifact_name and artifact_id can be set."
148
+ )
149
+
150
+ if not (self.artifact_id or self.artifact_name):
151
+ raise ValueError(
152
+ "Either artifact_name or artifact_id must be set."
153
+ )
154
+
155
+ return self
156
+
121
157
 
122
158
  # ------------------ Update Model ------------------
123
159
 
@@ -157,6 +193,10 @@ class ArtifactVersionResponseBody(WorkspaceScopedResponseBody):
157
193
  title="The ID of the pipeline run that generated this artifact version.",
158
194
  default=None,
159
195
  )
196
+ artifact_store_id: Optional[UUID] = Field(
197
+ title="ID of the artifact store in which this artifact is stored.",
198
+ default=None,
199
+ )
160
200
 
161
201
  @field_validator("version")
162
202
  @classmethod
@@ -183,10 +223,6 @@ class ArtifactVersionResponseBody(WorkspaceScopedResponseBody):
183
223
  class ArtifactVersionResponseMetadata(WorkspaceScopedResponseMetadata):
184
224
  """Response metadata for artifact versions."""
185
225
 
186
- artifact_store_id: Optional[UUID] = Field(
187
- title="ID of the artifact store in which this artifact is stored.",
188
- default=None,
189
- )
190
226
  producer_step_run_id: Optional[UUID] = Field(
191
227
  title="ID of the step run that produced this artifact.",
192
228
  default=None,
@@ -284,7 +320,7 @@ class ArtifactVersionResponse(
284
320
  Returns:
285
321
  the value of the property.
286
322
  """
287
- return self.get_metadata().artifact_store_id
323
+ return self.get_body().artifact_store_id
288
324
 
289
325
  @property
290
326
  def producer_step_run_id(self) -> Optional[UUID]:
@@ -401,18 +437,6 @@ class ArtifactVersionResponse(
401
437
  overwrite=overwrite,
402
438
  )
403
439
 
404
- def read(self) -> Any:
405
- """(Deprecated) Materializes (loads) the data stored in this artifact.
406
-
407
- Returns:
408
- The materialized data.
409
- """
410
- logger.warning(
411
- "`artifact.read()` is deprecated and will be removed in a future "
412
- "release. Please use `artifact.load()` instead."
413
- )
414
- return self.load()
415
-
416
440
  def visualize(self, title: Optional[str] = None) -> None:
417
441
  """Visualize the artifact in notebook environments.
418
442
 
@@ -569,7 +593,9 @@ class ArtifactVersionFilter(WorkspaceScopedTaggableFilter):
569
593
  user_filter = and_(
570
594
  ArtifactVersionSchema.user_id == UserSchema.id,
571
595
  self.generate_name_or_id_query_conditions(
572
- value=self.user, table=UserSchema
596
+ value=self.user,
597
+ table=UserSchema,
598
+ additional_columns=["full_name"],
573
599
  ),
574
600
  )
575
601
  custom_filters.append(user_filter)
@@ -623,7 +649,8 @@ class LazyArtifactVersionResponse(ArtifactVersionResponse):
623
649
  id: Optional[UUID] = None # type: ignore[assignment]
624
650
  lazy_load_name: Optional[str] = None
625
651
  lazy_load_version: Optional[str] = None
626
- lazy_load_model: Model
652
+ lazy_load_model_name: str
653
+ lazy_load_model_version: Optional[str] = None
627
654
 
628
655
  def get_body(self) -> None: # type: ignore[override]
629
656
  """Protects from misuse of the lazy loader.
@@ -653,7 +680,8 @@ class LazyArtifactVersionResponse(ArtifactVersionResponse):
653
680
  from zenml.metadata.lazy_load import RunMetadataLazyGetter
654
681
 
655
682
  return RunMetadataLazyGetter( # type: ignore[return-value]
656
- self.lazy_load_model,
683
+ self.lazy_load_model_name,
684
+ self.lazy_load_model_version,
657
685
  self.lazy_load_name,
658
686
  self.lazy_load_version,
659
687
  )
@@ -44,9 +44,7 @@ if TYPE_CHECKING:
44
44
  from sqlalchemy.sql.elements import ColumnElement
45
45
  from sqlmodel import SQLModel
46
46
 
47
- from zenml.models.v2.core.service_connector import (
48
- ServiceConnectorResponse,
49
- )
47
+ from zenml.models import FlavorResponse, ServiceConnectorResponse
50
48
 
51
49
  # ------------------ Base Model ------------------
52
50
 
@@ -139,22 +137,11 @@ class InternalComponentRequest(ComponentRequest):
139
137
  class ComponentUpdate(BaseUpdate):
140
138
  """Update model for stack components."""
141
139
 
142
- ANALYTICS_FIELDS: ClassVar[List[str]] = ["type", "flavor"]
143
-
144
140
  name: Optional[str] = Field(
145
141
  title="The name of the stack component.",
146
142
  max_length=STR_FIELD_MAX_LENGTH,
147
143
  default=None,
148
144
  )
149
- type: Optional[StackComponentType] = Field(
150
- title="The type of the stack component.",
151
- default=None,
152
- )
153
- flavor: Optional[str] = Field(
154
- title="The flavor of the stack component.",
155
- max_length=STR_FIELD_MAX_LENGTH,
156
- default=None,
157
- )
158
145
  configuration: Optional[Dict[str, Any]] = Field(
159
146
  title="The stack component configuration.",
160
147
  default=None,
@@ -187,7 +174,7 @@ class ComponentResponseBody(WorkspaceScopedResponseBody):
187
174
  type: StackComponentType = Field(
188
175
  title="The type of the stack component.",
189
176
  )
190
- flavor: str = Field(
177
+ flavor_name: str = Field(
191
178
  title="The flavor of the stack component.",
192
179
  max_length=STR_FIELD_MAX_LENGTH,
193
180
  )
@@ -232,6 +219,10 @@ class ComponentResponseMetadata(WorkspaceScopedResponseMetadata):
232
219
  class ComponentResponseResources(WorkspaceScopedResponseResources):
233
220
  """Class for all resource models associated with the component entity."""
234
221
 
222
+ flavor: "FlavorResponse" = Field(
223
+ title="The flavor of this stack component.",
224
+ )
225
+
235
226
 
236
227
  class ComponentResponse(
237
228
  WorkspaceScopedResponse[
@@ -242,7 +233,7 @@ class ComponentResponse(
242
233
  ):
243
234
  """Response model for components."""
244
235
 
245
- ANALYTICS_FIELDS: ClassVar[List[str]] = ["type", "flavor"]
236
+ ANALYTICS_FIELDS: ClassVar[List[str]] = ["type"]
246
237
 
247
238
  name: str = Field(
248
239
  title="The name of the stack component.",
@@ -265,6 +256,8 @@ class ComponentResponse(
265
256
  if label.startswith("zenml:")
266
257
  }
267
258
  )
259
+ metadata["flavor"] = self.flavor_name
260
+
268
261
  return metadata
269
262
 
270
263
  def get_hydrated_version(self) -> "ComponentResponse":
@@ -288,13 +281,13 @@ class ComponentResponse(
288
281
  return self.get_body().type
289
282
 
290
283
  @property
291
- def flavor(self) -> str:
292
- """The `flavor` property.
284
+ def flavor_name(self) -> str:
285
+ """The `flavor_name` property.
293
286
 
294
287
  Returns:
295
288
  the value of the property.
296
289
  """
297
- return self.get_body().flavor
290
+ return self.get_body().flavor_name
298
291
 
299
292
  @property
300
293
  def integration(self) -> Optional[str]:
@@ -359,6 +352,15 @@ class ComponentResponse(
359
352
  """
360
353
  return self.get_metadata().connector
361
354
 
355
+ @property
356
+ def flavor(self) -> "FlavorResponse":
357
+ """The `flavor` property.
358
+
359
+ Returns:
360
+ the value of the property.
361
+ """
362
+ return self.get_resources().flavor
363
+
362
364
 
363
365
  # ------------------ Filter Model ------------------
364
366
 
@@ -376,6 +378,7 @@ class ComponentFilter(WorkspaceScopedFilter):
376
378
  *WorkspaceScopedFilter.FILTER_EXCLUDE_FIELDS,
377
379
  "scope_type",
378
380
  "stack_id",
381
+ "user",
379
382
  ]
380
383
  CLI_EXCLUDE_FIELDS: ClassVar[List[str]] = [
381
384
  *WorkspaceScopedFilter.CLI_EXCLUDE_FIELDS,
@@ -418,6 +421,10 @@ class ComponentFilter(WorkspaceScopedFilter):
418
421
  description="Stack of the stack component",
419
422
  union_mode="left_to_right",
420
423
  )
424
+ user: Optional[Union[UUID, str]] = Field(
425
+ default=None,
426
+ description="Name/ID of the user that created the component.",
427
+ )
421
428
 
422
429
  def set_scope_type(self, component_type: str) -> None:
423
430
  """Set the type of component on which to perform the filtering to scope the response.
@@ -464,3 +471,31 @@ class ComponentFilter(WorkspaceScopedFilter):
464
471
  base_filter = operator(base_filter, stack_filter)
465
472
 
466
473
  return base_filter
474
+
475
+ def get_custom_filters(self) -> List["ColumnElement[bool]"]:
476
+ """Get custom filters.
477
+
478
+ Returns:
479
+ A list of custom filters.
480
+ """
481
+ from sqlmodel import and_
482
+
483
+ from zenml.zen_stores.schemas import (
484
+ StackComponentSchema,
485
+ UserSchema,
486
+ )
487
+
488
+ custom_filters = super().get_custom_filters()
489
+
490
+ if self.user:
491
+ user_filter = and_(
492
+ StackComponentSchema.user_id == UserSchema.id,
493
+ self.generate_name_or_id_query_conditions(
494
+ value=self.user,
495
+ table=UserSchema,
496
+ additional_columns=["full_name"],
497
+ ),
498
+ )
499
+ custom_filters.append(user_filter)
500
+
501
+ return custom_filters
@@ -192,6 +192,10 @@ class FlavorResponseBody(UserScopedResponseBody):
192
192
  title="The name of the integration that the Flavor belongs to.",
193
193
  max_length=STR_FIELD_MAX_LENGTH,
194
194
  )
195
+ source: str = Field(
196
+ title="The path to the module which contains this Flavor.",
197
+ max_length=STR_FIELD_MAX_LENGTH,
198
+ )
195
199
  logo_url: Optional[str] = Field(
196
200
  default=None,
197
201
  title="Optionally, a url pointing to a png,"
@@ -225,10 +229,6 @@ class FlavorResponseMetadata(UserScopedResponseMetadata):
225
229
  "connector.",
226
230
  max_length=STR_FIELD_MAX_LENGTH,
227
231
  )
228
- source: str = Field(
229
- title="The path to the module which contains this Flavor.",
230
- max_length=STR_FIELD_MAX_LENGTH,
231
- )
232
232
  docs_url: Optional[str] = Field(
233
233
  default=None,
234
234
  title="Optionally, a url pointing to docs, within docs.zenml.io.",
@@ -319,6 +319,15 @@ class FlavorResponse(
319
319
  """
320
320
  return self.get_body().integration
321
321
 
322
+ @property
323
+ def source(self) -> str:
324
+ """The `source` property.
325
+
326
+ Returns:
327
+ the value of the property.
328
+ """
329
+ return self.get_body().source
330
+
322
331
  @property
323
332
  def logo_url(self) -> Optional[str]:
324
333
  """The `logo_url` property.
@@ -373,15 +382,6 @@ class FlavorResponse(
373
382
  """
374
383
  return self.get_metadata().connector_resource_id_attr
375
384
 
376
- @property
377
- def source(self) -> str:
378
- """The `source` property.
379
-
380
- Returns:
381
- the value of the property.
382
- """
383
- return self.get_metadata().source
384
-
385
385
  @property
386
386
  def docs_url(self) -> Optional[str]:
387
387
  """The `docs_url` property.