zenml-nightly 0.75.0.dev20250318__py3-none-any.whl → 0.80.0.dev20250321__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 (254) hide show
  1. zenml/VERSION +1 -1
  2. zenml/__init__.py +3 -1
  3. zenml/artifacts/artifact_config.py +2 -2
  4. zenml/artifacts/utils.py +4 -8
  5. zenml/cli/__init__.py +6 -6
  6. zenml/cli/base.py +2 -2
  7. zenml/cli/login.py +2 -2
  8. zenml/cli/server.py +6 -4
  9. zenml/cli/utils.py +3 -3
  10. zenml/client.py +9 -9
  11. zenml/config/compiler.py +1 -1
  12. zenml/config/server_config.py +1 -1
  13. zenml/constants.py +2 -1
  14. zenml/enums.py +12 -0
  15. zenml/integrations/airflow/__init__.py +0 -2
  16. zenml/integrations/argilla/__init__.py +0 -1
  17. zenml/integrations/aws/__init__.py +0 -3
  18. zenml/integrations/azure/__init__.py +0 -2
  19. zenml/integrations/azure/service_connectors/azure_service_connector.py +1 -1
  20. zenml/integrations/bentoml/__init__.py +0 -2
  21. zenml/integrations/bentoml/services/bentoml_container_deployment.py +2 -2
  22. zenml/integrations/bentoml/services/bentoml_local_deployment.py +1 -1
  23. zenml/integrations/bentoml/steps/bentoml_deployer.py +1 -1
  24. zenml/integrations/bitbucket/__init__.py +0 -2
  25. zenml/integrations/comet/__init__.py +0 -2
  26. zenml/integrations/databricks/__init__.py +0 -2
  27. zenml/integrations/databricks/services/databricks_deployment.py +3 -1
  28. zenml/integrations/deepchecks/__init__.py +0 -2
  29. zenml/integrations/discord/__init__.py +0 -2
  30. zenml/integrations/evidently/__init__.py +0 -2
  31. zenml/integrations/facets/__init__.py +0 -2
  32. zenml/integrations/feast/__init__.py +0 -2
  33. zenml/integrations/gcp/__init__.py +0 -3
  34. zenml/integrations/github/__init__.py +0 -2
  35. zenml/integrations/github/code_repositories/github_code_repository.py +7 -2
  36. zenml/integrations/gitlab/__init__.py +0 -1
  37. zenml/integrations/gitlab/code_repositories/gitlab_code_repository.py +5 -2
  38. zenml/integrations/great_expectations/__init__.py +0 -3
  39. zenml/integrations/huggingface/__init__.py +0 -1
  40. zenml/integrations/huggingface/services/huggingface_deployment.py +3 -1
  41. zenml/integrations/hyperai/__init__.py +0 -2
  42. zenml/integrations/kaniko/__init__.py +0 -2
  43. zenml/integrations/kubeflow/__init__.py +0 -1
  44. zenml/integrations/kubernetes/__init__.py +0 -2
  45. zenml/integrations/kubernetes/flavors/kubernetes_orchestrator_flavor.py +4 -0
  46. zenml/integrations/kubernetes/orchestrators/kube_utils.py +89 -1
  47. zenml/integrations/kubernetes/orchestrators/kubernetes_orchestrator.py +82 -48
  48. zenml/integrations/kubernetes/orchestrators/kubernetes_orchestrator_entrypoint.py +44 -10
  49. zenml/integrations/kubernetes/orchestrators/manifest_utils.py +33 -1
  50. zenml/integrations/label_studio/__init__.py +0 -2
  51. zenml/integrations/langchain/__init__.py +0 -2
  52. zenml/integrations/lightgbm/__init__.py +0 -1
  53. zenml/integrations/lightning/__init__.py +0 -2
  54. zenml/integrations/mlflow/__init__.py +1 -3
  55. zenml/integrations/mlflow/services/mlflow_deployment.py +1 -1
  56. zenml/integrations/modal/__init__.py +0 -1
  57. zenml/integrations/neptune/__init__.py +0 -2
  58. zenml/integrations/neural_prophet/__init__.py +0 -2
  59. zenml/integrations/numpy/__init__.py +0 -2
  60. zenml/integrations/openai/__init__.py +0 -1
  61. zenml/integrations/pandas/__init__.py +0 -2
  62. zenml/integrations/pigeon/__init__.py +0 -1
  63. zenml/integrations/pillow/__init__.py +0 -3
  64. zenml/integrations/polars/__init__.py +0 -2
  65. zenml/integrations/prodigy/__init__.py +0 -1
  66. zenml/integrations/pycaret/__init__.py +0 -2
  67. zenml/integrations/pytorch/__init__.py +0 -1
  68. zenml/integrations/pytorch_lightning/__init__.py +0 -2
  69. zenml/integrations/s3/__init__.py +0 -2
  70. zenml/integrations/scipy/__init__.py +0 -2
  71. zenml/integrations/seldon/__init__.py +0 -2
  72. zenml/integrations/seldon/services/seldon_deployment.py +3 -2
  73. zenml/integrations/sklearn/__init__.py +1 -1
  74. zenml/integrations/skypilot/orchestrators/skypilot_base_vm_orchestrator.py +43 -18
  75. zenml/integrations/skypilot_aws/__init__.py +1 -3
  76. zenml/integrations/skypilot_azure/__init__.py +1 -2
  77. zenml/integrations/skypilot_gcp/__init__.py +1 -3
  78. zenml/integrations/skypilot_kubernetes/__init__.py +1 -3
  79. zenml/integrations/skypilot_lambda/__init__.py +1 -3
  80. zenml/integrations/slack/__init__.py +0 -1
  81. zenml/integrations/spark/__init__.py +0 -1
  82. zenml/integrations/tekton/__init__.py +0 -1
  83. zenml/integrations/tensorboard/__init__.py +0 -2
  84. zenml/integrations/tensorboard/services/tensorboard_service.py +1 -1
  85. zenml/integrations/tensorflow/__init__.py +0 -2
  86. zenml/integrations/vllm/__init__.py +0 -1
  87. zenml/integrations/vllm/services/vllm_deployment.py +1 -1
  88. zenml/integrations/wandb/__init__.py +0 -1
  89. zenml/integrations/whylogs/__init__.py +0 -1
  90. zenml/integrations/xgboost/__init__.py +0 -2
  91. zenml/login/credentials.py +1 -1
  92. zenml/materializers/__init__.py +1 -0
  93. zenml/model_deployers/base_model_deployer.py +1 -1
  94. zenml/models/__init__.py +4 -0
  95. zenml/models/v2/base/filter.py +162 -54
  96. zenml/models/v2/base/scoped.py +132 -0
  97. zenml/models/v2/core/artifact_version.py +12 -33
  98. zenml/models/v2/core/model_version.py +12 -50
  99. zenml/models/v2/core/pipeline_run.py +12 -32
  100. zenml/models/v2/core/service.py +2 -2
  101. zenml/models/v2/core/step_run.py +15 -32
  102. zenml/{services/service_type.py → models/v2/misc/service.py} +1 -1
  103. zenml/orchestrators/step_run_utils.py +1 -1
  104. zenml/orchestrators/utils.py +1 -1
  105. zenml/services/__init__.py +3 -5
  106. zenml/services/container/container_service.py +2 -1
  107. zenml/services/local/local_service.py +2 -1
  108. zenml/services/service.py +3 -2
  109. zenml/services/service_endpoint.py +2 -1
  110. zenml/services/service_monitor.py +1 -1
  111. zenml/services/service_status.py +1 -12
  112. zenml/steps/entrypoint_function_utils.py +1 -1
  113. zenml/utils/dashboard_utils.py +73 -8
  114. zenml/utils/server_utils.py +52 -0
  115. zenml/zen_server/dashboard/assets/{404-BbAvjc7Z.js → 404-2I8egBQu.js} +1 -1
  116. zenml/zen_server/dashboard/assets/@reactflow-BHoFKFSZ.js +17 -0
  117. zenml/zen_server/dashboard/assets/{AlertDialogDropdownItem-XL2NfFgP.js → AlertDialogDropdownItem-D7KZcPFw.js} +1 -1
  118. zenml/zen_server/dashboard/assets/CodeSnippet-DUkCnBpQ.js +9 -0
  119. zenml/zen_server/dashboard/assets/{CollapsibleCard-Djtd_ocf.js → CollapsibleCard-B5-5Plnd.js} +1 -1
  120. zenml/zen_server/dashboard/assets/{Commands-V-hH_IKQ.js → Commands-CbOMmarC.js} +1 -1
  121. zenml/zen_server/dashboard/assets/{ComponentBadge-CVN2FsiW.js → ComponentBadge-FrujKBC6.js} +1 -1
  122. zenml/zen_server/dashboard/assets/ComponentIcon-Dx5fBrDX.js +1 -0
  123. zenml/zen_server/dashboard/assets/{CsvVizualization-CWaQcWIN.js → CsvVizualization-B8E3p9we.js} +1 -1
  124. zenml/zen_server/dashboard/assets/{DeleteAlertDialog-CTLRrcFM.js → DeleteAlertDialog-BgTZbbAt.js} +1 -1
  125. zenml/zen_server/dashboard/assets/{DialogItem-ST291Hsl.js → DialogItem-CNWLiJcc.js} +1 -1
  126. zenml/zen_server/dashboard/assets/{Error-CIBjAdSc.js → Error-BkUP4Luv.js} +1 -1
  127. zenml/zen_server/dashboard/assets/ExecutionStatus-CD8Vj7sp.js +1 -0
  128. zenml/zen_server/dashboard/assets/{Helpbox-cwQNH06F.js → Helpbox-DIx6mDOH.js} +1 -1
  129. zenml/zen_server/dashboard/assets/{Infobox-DYKoAVhW.js → Infobox-BHEdNmME.js} +1 -1
  130. zenml/zen_server/dashboard/assets/{InlineAvatar-Bk4QLPTU.js → InlineAvatar-Bin9UPKJ.js} +1 -1
  131. zenml/zen_server/dashboard/assets/{NestedCollapsible-CE4OF670.js → NestedCollapsible-Da-k0Mff.js} +1 -1
  132. zenml/zen_server/dashboard/assets/{Partials-cL1-u_sT.js → Partials-TNaYjHsV.js} +1 -1
  133. zenml/zen_server/dashboard/assets/ProBadge-BfPp-B97.js +1 -0
  134. zenml/zen_server/dashboard/assets/{ProCta-DtUutIul.js → ProCta-7_FtpX3I.js} +1 -1
  135. zenml/zen_server/dashboard/assets/ProviderIcon-CxeziA5a.js +1 -0
  136. zenml/zen_server/dashboard/assets/{ProviderRadio-C4bltH6-.js → ProviderRadio-DPmZHff_.js} +1 -1
  137. zenml/zen_server/dashboard/assets/RunSelector-BVKB4Z8F.js +1 -0
  138. zenml/zen_server/dashboard/assets/{RunsBody-D2VoO-cR.js → RunsBody-Cj4sIqQB.js} +1 -1
  139. zenml/zen_server/dashboard/assets/{SearchField-DfNxVtjV.js → SearchField-DjAOZic5.js} +1 -1
  140. zenml/zen_server/dashboard/assets/SecretTooltip-mMAAP4dM.js +1 -0
  141. zenml/zen_server/dashboard/assets/{SetPassword-CWl2mwz8.js → SetPassword-B0o5kSJU.js} +1 -1
  142. zenml/zen_server/dashboard/assets/{StackList-C8KNd00o.js → StackList-5UB8LoEq.js} +1 -1
  143. zenml/zen_server/dashboard/assets/{Tabs-BEWDPvPV.js → Tabs-AuhCyzle.js} +1 -1
  144. zenml/zen_server/dashboard/assets/Tick-CHW0jc8Y.js +1 -0
  145. zenml/zen_server/dashboard/assets/{UpdatePasswordSchemas-DCuCj7NK.js → UpdatePasswordSchemas-Bauivjf-.js} +1 -1
  146. zenml/zen_server/dashboard/assets/{UsageReason-CwUrEwEz.js → UsageReason-Dr5ca5M4.js} +1 -1
  147. zenml/zen_server/dashboard/assets/{Wizard-CynnoHg4.js → Wizard-XEp9rGmf.js} +1 -1
  148. zenml/zen_server/dashboard/assets/{WizardFooter-B2bYs89C.js → WizardFooter-BtL1Gi1k.js} +1 -1
  149. zenml/zen_server/dashboard/assets/{all-pipeline-runs-query-B509kMlL.js → all-pipeline-runs-query-COvsm3bC.js} +1 -1
  150. zenml/zen_server/dashboard/assets/configuration-form-BJUCr0wl.js +1 -0
  151. zenml/zen_server/dashboard/assets/{create-stack-BjWXz5nx.js → create-stack-B2c98UlP.js} +1 -1
  152. zenml/zen_server/dashboard/assets/{delete-run-CzPWbsBy.js → delete-run-Do3XyF4W.js} +1 -1
  153. zenml/zen_server/dashboard/assets/flavor-select-D8CranSY.js +1 -0
  154. zenml/zen_server/dashboard/assets/{form-schemas-B6u3P_a4.js → form-schemas-Bm-dTV3L.js} +1 -1
  155. zenml/zen_server/dashboard/assets/{index-BCKg1Y5r.css → index-6mLFgFwe.css} +1 -1
  156. zenml/zen_server/dashboard/assets/{index-Bjeu4_0O.js → index-CzhJC6pc.js} +1 -1
  157. zenml/zen_server/dashboard/assets/{index-CaRx22lH.js → index-D-n6tspq.js} +1 -1
  158. zenml/zen_server/dashboard/assets/{index-DWoLoYDY.js → index-DPjvk73v.js} +8 -8
  159. zenml/zen_server/dashboard/assets/{index-Dba8yULY.js → index-eIIP-0dQ.js} +1 -1
  160. zenml/zen_server/dashboard/assets/login-mutation-D6uiKsKk.js +1 -0
  161. zenml/zen_server/dashboard/assets/{not-found-DGQ8rm7B.js → not-found-DFrksY0r.js} +1 -1
  162. zenml/zen_server/dashboard/assets/page-B-uHUFcm.js +1 -0
  163. zenml/zen_server/dashboard/assets/page-B0Llmzo_.js +1 -0
  164. zenml/zen_server/dashboard/assets/page-B150LbzG.js +1 -0
  165. zenml/zen_server/dashboard/assets/{page-CfeQbejg.js → page-B1Un9vAU.js} +1 -1
  166. zenml/zen_server/dashboard/assets/{page-CxrLV30P.js → page-B80TE04v.js} +1 -1
  167. zenml/zen_server/dashboard/assets/page-BIseZTJt.js +2 -0
  168. zenml/zen_server/dashboard/assets/{page-C5xq6rqE.js → page-BJ15SGwt.js} +1 -1
  169. zenml/zen_server/dashboard/assets/{page-B6msmF1h.js → page-BJrZsPSh.js} +1 -1
  170. zenml/zen_server/dashboard/assets/page-BMZaECzB.js +1 -0
  171. zenml/zen_server/dashboard/assets/{page-D1upvSPi.js → page-BTvnIFGR.js} +1 -1
  172. zenml/zen_server/dashboard/assets/{page-DLw1Apss.js → page-BXh1mF-D.js} +1 -1
  173. zenml/zen_server/dashboard/assets/page-BZUxCBoD.js +1 -0
  174. zenml/zen_server/dashboard/assets/page-BeFiRx31.js +1 -0
  175. zenml/zen_server/dashboard/assets/{page-C89bN6VV.js → page-BnUwQBeg.js} +1 -1
  176. zenml/zen_server/dashboard/assets/{page-k-UXKVnV.js → page-BqQ6y8Hb.js} +1 -1
  177. zenml/zen_server/dashboard/assets/page-BwAFqFCf.js +1 -0
  178. zenml/zen_server/dashboard/assets/page-BzlVs5tC.js +1 -0
  179. zenml/zen_server/dashboard/assets/{page-C3BbJ-5n.js → page-C11vPVkH.js} +1 -1
  180. zenml/zen_server/dashboard/assets/{page-AnG2ilmi.js → page-CAKBSE9f.js} +1 -1
  181. zenml/zen_server/dashboard/assets/page-CPe9nQSo.js +1 -0
  182. zenml/zen_server/dashboard/assets/page-D0Zt2-7X.js +1 -0
  183. zenml/zen_server/dashboard/assets/page-D2F0Rvak.js +1 -0
  184. zenml/zen_server/dashboard/assets/{page-2EzZ5aWS.js → page-D5GZlpKq.js} +1 -1
  185. zenml/zen_server/dashboard/assets/{page-CxoG4zme.js → page-DBNBYSwq.js} +1 -1
  186. zenml/zen_server/dashboard/assets/page-DDvwWgKP.js +6 -0
  187. zenml/zen_server/dashboard/assets/page-DF9q7ySu.js +1 -0
  188. zenml/zen_server/dashboard/assets/page-DOzFoJuo.js +1 -0
  189. zenml/zen_server/dashboard/assets/page-DaHH2ZEF.js +1 -0
  190. zenml/zen_server/dashboard/assets/{page-B9ELcPAy.js → page-Dd-0y3SU.js} +1 -1
  191. zenml/zen_server/dashboard/assets/{page-Dy6HYsJr.js → page-DhNnHHmX.js} +1 -1
  192. zenml/zen_server/dashboard/assets/{page-CZ_3LB0U.js → page-DkJfgcDi.js} +1 -1
  193. zenml/zen_server/dashboard/assets/page-EhqRFAZc.js +1 -0
  194. zenml/zen_server/dashboard/assets/{page-nHAZvd76.js → page-NIWnUdVg.js} +1 -1
  195. zenml/zen_server/dashboard/assets/{page-DazwBcbq.js → page-kYlFrH53.js} +1 -1
  196. zenml/zen_server/dashboard/assets/page-ygCPGHAV.js +1 -0
  197. zenml/zen_server/dashboard/assets/{persist-BglceT_t.js → persist-C5RlwSq6.js} +1 -1
  198. zenml/zen_server/dashboard/assets/{persist-CMkLV2Cs.js → persist-DHGuHP2H.js} +1 -1
  199. zenml/zen_server/dashboard/assets/{service-DNKY_ZYd.js → service-Do7yitqe.js} +1 -1
  200. zenml/zen_server/dashboard/assets/{sharedSchema-BOmQa793.js → sharedSchema-i_9Y4WcA.js} +1 -1
  201. zenml/zen_server/dashboard/assets/stack-detail-query-omCumL7U.js +1 -0
  202. zenml/zen_server/dashboard/assets/update-server-settings-mutation-B4eE33z-.js +1 -0
  203. zenml/zen_server/dashboard/index.html +4 -4
  204. zenml/zen_server/deploy/daemon/daemon_zen_server.py +1 -1
  205. zenml/zen_server/deploy/deployment.py +1 -2
  206. zenml/zen_server/deploy/docker/docker_zen_server.py +1 -1
  207. zenml/zen_server/rbac/endpoint_utils.py +1 -2
  208. zenml/zen_server/routers/projects_endpoints.py +14 -3
  209. zenml/zen_server/utils.py +2 -86
  210. zenml/zen_stores/migrations/versions/0.80.0_release.py +23 -0
  211. zenml/zen_stores/schemas/artifact_visualization_schemas.py +1 -1
  212. zenml/zen_stores/schemas/model_schemas.py +1 -1
  213. zenml/zen_stores/schemas/service_schemas.py +1 -1
  214. zenml/zen_stores/schemas/step_run_schemas.py +1 -1
  215. zenml/zen_stores/schemas/trigger_schemas.py +1 -1
  216. zenml/zen_stores/sql_zen_store.py +5 -0
  217. {zenml_nightly-0.75.0.dev20250318.dist-info → zenml_nightly-0.80.0.dev20250321.dist-info}/METADATA +2 -2
  218. {zenml_nightly-0.75.0.dev20250318.dist-info → zenml_nightly-0.80.0.dev20250321.dist-info}/RECORD +221 -220
  219. zenml/zen_server/dashboard/assets/@reactflow-DMaYqp8l.js +0 -17
  220. zenml/zen_server/dashboard/assets/CodeSnippet-D8ptwPjg.js +0 -9
  221. zenml/zen_server/dashboard/assets/ComponentIcon-gpMJ2Y2e.js +0 -1
  222. zenml/zen_server/dashboard/assets/ExecutionStatus-DHiK3Am-.js +0 -1
  223. zenml/zen_server/dashboard/assets/ProBadge-ypma7R8i.js +0 -1
  224. zenml/zen_server/dashboard/assets/ProviderIcon-DKN3Gdcg.js +0 -1
  225. zenml/zen_server/dashboard/assets/RunSelector-CYmRHGdm.js +0 -1
  226. zenml/zen_server/dashboard/assets/SecretTooltip-CHPWF0bu.js +0 -1
  227. zenml/zen_server/dashboard/assets/Tick-DgU4udUn.js +0 -1
  228. zenml/zen_server/dashboard/assets/configuration-form-BEwWCxqY.js +0 -1
  229. zenml/zen_server/dashboard/assets/flavor-select-C1pyy8gq.js +0 -1
  230. zenml/zen_server/dashboard/assets/login-mutation-7WFxPe10.js +0 -1
  231. zenml/zen_server/dashboard/assets/page-BKN4SYXY.js +0 -1
  232. zenml/zen_server/dashboard/assets/page-BNrOW_3T.js +0 -2
  233. zenml/zen_server/dashboard/assets/page-BX6ZrAVH.js +0 -1
  234. zenml/zen_server/dashboard/assets/page-BnOdORy3.js +0 -1
  235. zenml/zen_server/dashboard/assets/page-BtkfcEI7.js +0 -1
  236. zenml/zen_server/dashboard/assets/page-Bz_grLBY.js +0 -1
  237. zenml/zen_server/dashboard/assets/page-CCEwuGU4.js +0 -1
  238. zenml/zen_server/dashboard/assets/page-COAGXWJu.js +0 -1
  239. zenml/zen_server/dashboard/assets/page-CaibMa0l.js +0 -1
  240. zenml/zen_server/dashboard/assets/page-CskoTYOC.js +0 -1
  241. zenml/zen_server/dashboard/assets/page-Cyoe7AtN.js +0 -1
  242. zenml/zen_server/dashboard/assets/page-D03wm5f1.js +0 -1
  243. zenml/zen_server/dashboard/assets/page-D8UimvyP.js +0 -1
  244. zenml/zen_server/dashboard/assets/page-DEnmFyzi.js +0 -1
  245. zenml/zen_server/dashboard/assets/page-TiOZeeo0.js +0 -1
  246. zenml/zen_server/dashboard/assets/page-cveasWUr.js +0 -6
  247. zenml/zen_server/dashboard/assets/page-iTvxfhgZ.js +0 -1
  248. zenml/zen_server/dashboard/assets/page-niRD8Hqz.js +0 -1
  249. zenml/zen_server/dashboard/assets/stack-detail-query-CI_YMUx6.js +0 -1
  250. zenml/zen_server/dashboard/assets/transform-DKsRLKTv.js +0 -1
  251. zenml/zen_server/dashboard/assets/update-server-settings-mutation-CNYCc-FU.js +0 -1
  252. {zenml_nightly-0.75.0.dev20250318.dist-info → zenml_nightly-0.80.0.dev20250321.dist-info}/LICENSE +0 -0
  253. {zenml_nightly-0.75.0.dev20250318.dist-info → zenml_nightly-0.80.0.dev20250321.dist-info}/WHEEL +0 -0
  254. {zenml_nightly-0.75.0.dev20250318.dist-info → zenml_nightly-0.80.0.dev20250321.dist-info}/entry_points.txt +0 -0
@@ -38,11 +38,11 @@ from zenml.constants import (
38
38
  from zenml.enums import AuthScheme, StoreType
39
39
  from zenml.logger import get_logger
40
40
  from zenml.models import ServerDeploymentType
41
+ from zenml.models.v2.misc.service import ServiceType
41
42
  from zenml.services import (
42
43
  LocalDaemonService,
43
44
  LocalDaemonServiceConfig,
44
45
  LocalDaemonServiceEndpoint,
45
- ServiceType,
46
46
  )
47
47
  from zenml.utils.io_utils import get_global_config_directory
48
48
  from zenml.zen_server.deploy.deployment import LocalServerDeploymentConfig
@@ -17,8 +17,7 @@ from typing import Optional
17
17
 
18
18
  from pydantic import BaseModel, ConfigDict
19
19
 
20
- from zenml.enums import ServerProviderType
21
- from zenml.services.service_status import ServiceState
20
+ from zenml.enums import ServerProviderType, ServiceState
22
21
 
23
22
 
24
23
  class LocalServerDeploymentConfig(BaseModel):
@@ -38,11 +38,11 @@ from zenml.constants import (
38
38
  from zenml.enums import AuthScheme, StoreType
39
39
  from zenml.logger import get_logger
40
40
  from zenml.models import ServerDeploymentType
41
+ from zenml.models.v2.misc.service import ServiceType
41
42
  from zenml.services import (
42
43
  ContainerService,
43
44
  ContainerServiceConfig,
44
45
  ContainerServiceEndpoint,
45
- ServiceType,
46
46
  )
47
47
  from zenml.services.container.container_service import (
48
48
  SERVICE_CONTAINER_GLOBAL_CONFIG_DIR,
@@ -306,8 +306,7 @@ def verify_permissions_and_delete_entity(
306
306
  Returns:
307
307
  The deleted entity.
308
308
  """
309
- # We don't need the hydrated version here
310
- model = get_method(id, False)
309
+ model = get_method(id, True)
311
310
  verify_permission_for_model(model, action=Action.DELETE)
312
311
  delete_method(model.id, **delete_method_kwargs)
313
312
  delete_model_resource(model)
@@ -37,6 +37,9 @@ from zenml.models import (
37
37
  )
38
38
  from zenml.zen_server.auth import AuthContext, authorize
39
39
  from zenml.zen_server.exceptions import error_response
40
+ from zenml.zen_server.feature_gate.endpoint_utils import (
41
+ report_decrement,
42
+ )
40
43
  from zenml.zen_server.rbac.endpoint_utils import (
41
44
  verify_permissions_and_create_entity,
42
45
  verify_permissions_and_delete_entity,
@@ -51,6 +54,7 @@ from zenml.zen_server.rbac.utils import (
51
54
  from zenml.zen_server.utils import (
52
55
  handle_exceptions,
53
56
  make_dependable,
57
+ server_config,
54
58
  zen_store,
55
59
  )
56
60
 
@@ -225,11 +229,14 @@ def delete_project(
225
229
  Args:
226
230
  project_name_or_id: Name or ID of the project.
227
231
  """
228
- verify_permissions_and_delete_entity(
232
+ project = verify_permissions_and_delete_entity(
229
233
  id=project_name_or_id,
230
234
  get_method=zen_store().get_project,
231
235
  delete_method=zen_store().delete_project,
232
236
  )
237
+ if server_config().feature_gate_enabled:
238
+ if ResourceType.PROJECT in server_config().reportable_resources:
239
+ report_decrement(ResourceType.PROJECT, resource_id=project.id)
233
240
 
234
241
 
235
242
  # TODO: kept for backwards compatibility only; to be removed after the migration
@@ -268,13 +275,17 @@ def get_project_statistics(
268
275
  run_filter = PipelineRunFilter(project=project.id)
269
276
  run_filter.configure_rbac(
270
277
  authenticated_user_id=user_id,
271
- id=get_allowed_resource_ids(resource_type=ResourceType.PIPELINE_RUN),
278
+ id=get_allowed_resource_ids(
279
+ resource_type=ResourceType.PIPELINE_RUN, project_id=project.id
280
+ ),
272
281
  )
273
282
 
274
283
  pipeline_filter = PipelineFilter(project=project.id)
275
284
  pipeline_filter.configure_rbac(
276
285
  authenticated_user_id=user_id,
277
- id=get_allowed_resource_ids(resource_type=ResourceType.PIPELINE),
286
+ id=get_allowed_resource_ids(
287
+ resource_type=ResourceType.PIPELINE, project_id=project.id
288
+ ),
278
289
  )
279
290
 
280
291
  return ProjectStatistics(
zenml/zen_server/utils.py CHANGED
@@ -29,7 +29,6 @@ from typing import (
29
29
  Union,
30
30
  cast,
31
31
  )
32
- from urllib.parse import urlparse
33
32
  from uuid import UUID
34
33
 
35
34
  from pydantic import BaseModel, ValidationError
@@ -43,16 +42,11 @@ from zenml.constants import (
43
42
  INFO,
44
43
  VERSION_1,
45
44
  )
46
- from zenml.enums import StoreType
47
45
  from zenml.exceptions import IllegalOperationError, OAuthError
48
46
  from zenml.logger import get_logger
49
47
  from zenml.models.v2.base.scoped import ProjectScopedFilter
50
48
  from zenml.plugins.plugin_flavor_registry import PluginFlavorRegistry
51
49
  from zenml.zen_server.cache import MemoryCache
52
- from zenml.zen_server.deploy.deployment import (
53
- LocalServerDeployment,
54
- )
55
- from zenml.zen_server.deploy.exceptions import ServerDeploymentNotFoundError
56
50
  from zenml.zen_server.exceptions import http_exception_from_error
57
51
  from zenml.zen_server.feature_gate.feature_gate_interface import (
58
52
  FeatureGateInterface,
@@ -66,6 +60,7 @@ from zenml.zen_stores.sql_zen_store import SqlZenStore
66
60
  if TYPE_CHECKING:
67
61
  from fastapi import Request
68
62
 
63
+
69
64
  logger = get_logger(__name__)
70
65
 
71
66
  _zen_store: Optional["SqlZenStore"] = None
@@ -98,6 +93,7 @@ def plugin_flavor_registry() -> PluginFlavorRegistry:
98
93
  The plugin flavor registry.
99
94
  """
100
95
  global _plugin_flavor_registry
96
+
101
97
  if _plugin_flavor_registry is None:
102
98
  _plugin_flavor_registry = PluginFlavorRegistry()
103
99
  _plugin_flavor_registry.initialize_plugins()
@@ -269,86 +265,6 @@ def server_config() -> ServerConfiguration:
269
265
  return _server_config
270
266
 
271
267
 
272
- def get_local_server() -> Optional["LocalServerDeployment"]:
273
- """Get the active local server.
274
-
275
- Call this function to retrieve the local server deployed on this machine.
276
-
277
- Returns:
278
- The local server deployment or None, if no local server deployment was
279
- found.
280
- """
281
- from zenml.zen_server.deploy.deployer import LocalServerDeployer
282
-
283
- deployer = LocalServerDeployer()
284
- try:
285
- return deployer.get_server()
286
- except ServerDeploymentNotFoundError:
287
- return None
288
-
289
-
290
- def connected_to_local_server() -> bool:
291
- """Check if the client is connected to a local server.
292
-
293
- Returns:
294
- True if the client is connected to a local server, False otherwise.
295
- """
296
- from zenml.zen_server.deploy.deployer import LocalServerDeployer
297
-
298
- deployer = LocalServerDeployer()
299
- return deployer.is_connected_to_server()
300
-
301
-
302
- def show_dashboard(
303
- local: bool = False,
304
- ngrok_token: Optional[str] = None,
305
- ) -> None:
306
- """Show the ZenML dashboard.
307
-
308
- Args:
309
- local: Whether to show the dashboard for the local server or the
310
- one for the active server.
311
- ngrok_token: An ngrok auth token to use for exposing the ZenML
312
- dashboard on a public domain. Primarily used for accessing the
313
- dashboard in Colab.
314
-
315
- Raises:
316
- RuntimeError: If no server is connected.
317
- """
318
- from zenml.utils.dashboard_utils import show_dashboard
319
- from zenml.utils.networking_utils import get_or_create_ngrok_tunnel
320
-
321
- url: Optional[str] = None
322
- if not local:
323
- gc = GlobalConfiguration()
324
- if gc.store_configuration.type == StoreType.REST:
325
- url = gc.store_configuration.url
326
-
327
- if not url:
328
- # Else, check for local servers
329
- server = get_local_server()
330
- if server and server.status and server.status.url:
331
- url = server.status.url
332
-
333
- if not url:
334
- raise RuntimeError(
335
- "ZenML is not connected to any server right now. Please use "
336
- "`zenml login` to connect to a server or spin up a new local server "
337
- "via `zenml login --local`."
338
- )
339
-
340
- if ngrok_token:
341
- parsed_url = urlparse(url)
342
-
343
- ngrok_url = get_or_create_ngrok_tunnel(
344
- ngrok_token=ngrok_token, port=parsed_url.port or 80
345
- )
346
- logger.debug(f"Tunneling dashboard from {url} to {ngrok_url}.")
347
- url = ngrok_url
348
-
349
- show_dashboard(url)
350
-
351
-
352
268
  F = TypeVar("F", bound=Callable[..., Any])
353
269
 
354
270
 
@@ -0,0 +1,23 @@
1
+ """Release [0.80.0].
2
+
3
+ Revision ID: 0.80.0
4
+ Revises: 12eff0206201
5
+ Create Date: 2025-03-19 10:07:36.959628
6
+
7
+ """
8
+
9
+ # revision identifiers, used by Alembic.
10
+ revision = "0.80.0"
11
+ down_revision = "12eff0206201"
12
+ branch_labels = None
13
+ depends_on = None
14
+
15
+
16
+ def upgrade() -> None:
17
+ """Upgrade database schema and/or data, creating a new revision."""
18
+ pass
19
+
20
+
21
+ def downgrade() -> None:
22
+ """Downgrade database schema and/or data back to the previous revision."""
23
+ pass
@@ -43,7 +43,7 @@ class ArtifactVisualizationSchema(BaseSchema, table=True):
43
43
  # Foreign Keys
44
44
  artifact_version_id: UUID = build_foreign_key_field(
45
45
  source=__tablename__,
46
- target=ArtifactVersionSchema.__tablename__, # type: ignore[has-type]
46
+ target=ArtifactVersionSchema.__tablename__,
47
47
  source_column="artifact_version_id",
48
48
  target_column="id",
49
49
  ondelete="CASCADE",
@@ -552,7 +552,7 @@ class ModelVersionArtifactSchema(BaseSchema, table=True):
552
552
  )
553
553
  artifact_version_id: UUID = build_foreign_key_field(
554
554
  source=__tablename__,
555
- target=ArtifactVersionSchema.__tablename__, # type: ignore[has-type]
555
+ target=ArtifactVersionSchema.__tablename__,
556
556
  source_column="artifact_version_id",
557
557
  target_column="id",
558
558
  ondelete="CASCADE",
@@ -88,7 +88,7 @@ class ServiceSchema(NamedSchema, table=True):
88
88
  )
89
89
  model_version_id: Optional[UUID] = build_foreign_key_field(
90
90
  source=__tablename__,
91
- target=ModelVersionSchema.__tablename__, # type: ignore[has-type]
91
+ target=ModelVersionSchema.__tablename__,
92
92
  source_column="model_version_id",
93
93
  target_column="id",
94
94
  ondelete="SET NULL",
@@ -112,7 +112,7 @@ class StepRunSchema(NamedSchema, RunMetadataInterface, table=True):
112
112
  )
113
113
  pipeline_run_id: UUID = build_foreign_key_field(
114
114
  source=__tablename__,
115
- target=PipelineRunSchema.__tablename__, # type: ignore[has-type]
115
+ target=PipelineRunSchema.__tablename__,
116
116
  source_column="pipeline_run_id",
117
117
  target_column="id",
118
118
  ondelete="CASCADE",
@@ -84,7 +84,7 @@ class TriggerSchema(NamedSchema, table=True):
84
84
 
85
85
  event_source_id: Optional[UUID] = build_foreign_key_field(
86
86
  source=__tablename__,
87
- target=EventSourceSchema.__tablename__, # type: ignore[has-type]
87
+ target=EventSourceSchema.__tablename__,
88
88
  source_column="event_source_id",
89
89
  target_column="id",
90
90
  # This won't happen because the SQL zen store prevents an event source
@@ -9330,6 +9330,11 @@ class SqlZenStore(BaseZenStore):
9330
9330
  include_metadata=True, include_resources=True
9331
9331
  )
9332
9332
 
9333
+ self._update_onboarding_state(
9334
+ completed_steps={OnboardingStep.PROJECT_CREATED},
9335
+ session=session,
9336
+ )
9337
+
9333
9338
  return project_model
9334
9339
 
9335
9340
  def get_project(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: zenml-nightly
3
- Version: 0.75.0.dev20250318
3
+ Version: 0.80.0.dev20250321
4
4
  Summary: ZenML: Write production-ready ML code.
5
5
  License: Apache-2.0
6
6
  Keywords: machine learning,production,pipeline,mlops,devops
@@ -531,7 +531,7 @@ the Apache License Version 2.0.
531
531
  <a href="https://github.com/zenml-io/zenml-projects">Projects Showcase</a>
532
532
  <br />
533
533
  <br />
534
- 🎉 Version 0.75.0 is out. Check out the release notes
534
+ 🎉 Version 0.80.0 is out. Check out the release notes
535
535
  <a href="https://github.com/zenml-io/zenml/releases">here</a>.
536
536
  <br />
537
537
  🖥️ Download our VS Code Extension <a href="https://marketplace.visualstudio.com/items?itemName=ZenML.zenml-vscode">here</a>.