zenml-nightly 0.55.0.dev20240124__py3-none-any.whl → 0.72.0.dev20250115__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 (1238) hide show
  1. zenml/VERSION +1 -1
  2. zenml/__init__.py +9 -12
  3. zenml/actions/__init__.py +14 -0
  4. zenml/actions/base_action.py +682 -0
  5. zenml/actions/pipeline_run/__init__.py +0 -0
  6. zenml/actions/pipeline_run/pipeline_run_action.py +223 -0
  7. zenml/analytics/context.py +70 -15
  8. zenml/analytics/enums.py +21 -17
  9. zenml/analytics/models.py +1 -0
  10. zenml/analytics/utils.py +19 -7
  11. zenml/annotators/base_annotator.py +4 -3
  12. zenml/artifact_stores/base_artifact_store.py +155 -72
  13. zenml/artifact_stores/local_artifact_store.py +3 -2
  14. zenml/artifacts/artifact_config.py +67 -58
  15. zenml/artifacts/external_artifact.py +24 -39
  16. zenml/artifacts/external_artifact_config.py +27 -37
  17. zenml/artifacts/preexisting_data_materializer.py +90 -0
  18. zenml/artifacts/unmaterialized_artifact.py +2 -12
  19. zenml/artifacts/utils.py +521 -220
  20. zenml/cli/__init__.py +1511 -456
  21. zenml/cli/annotator.py +48 -14
  22. zenml/cli/artifact.py +22 -4
  23. zenml/cli/authorized_device.py +1 -0
  24. zenml/cli/base.py +185 -22
  25. zenml/cli/code_repository.py +1 -0
  26. zenml/cli/formatter.py +1 -1
  27. zenml/cli/integration.py +119 -24
  28. zenml/cli/login.py +977 -0
  29. zenml/cli/model.py +42 -15
  30. zenml/cli/model_registry.py +1 -2
  31. zenml/cli/pipeline.py +168 -82
  32. zenml/cli/secret.py +1 -2
  33. zenml/cli/served_model.py +56 -26
  34. zenml/cli/server.py +467 -619
  35. zenml/cli/service_accounts.py +55 -14
  36. zenml/cli/service_connectors.py +97 -6
  37. zenml/cli/stack.py +821 -531
  38. zenml/cli/stack_components.py +15 -598
  39. zenml/cli/tag.py +1 -0
  40. zenml/cli/text_utils.py +36 -2
  41. zenml/cli/user_management.py +204 -6
  42. zenml/cli/utils.py +411 -290
  43. zenml/client.py +1742 -298
  44. zenml/client_lazy_loader.py +224 -0
  45. zenml/code_repositories/base_code_repository.py +5 -4
  46. zenml/code_repositories/git/local_git_repository_context.py +1 -0
  47. zenml/code_repositories/local_repository_context.py +1 -0
  48. zenml/config/__init__.py +2 -0
  49. zenml/config/base_settings.py +6 -6
  50. zenml/config/build_configuration.py +43 -17
  51. zenml/config/compiler.py +82 -49
  52. zenml/config/docker_settings.py +139 -83
  53. zenml/config/global_config.py +260 -234
  54. zenml/config/pipeline_configurations.py +32 -11
  55. zenml/config/pipeline_run_configuration.py +15 -3
  56. zenml/config/pipeline_spec.py +6 -6
  57. zenml/config/resource_settings.py +8 -9
  58. zenml/config/retry_config.py +27 -0
  59. zenml/config/schedule.py +27 -18
  60. zenml/config/secret_reference_mixin.py +8 -4
  61. zenml/config/secrets_store_config.py +16 -24
  62. zenml/config/server_config.py +297 -39
  63. zenml/config/settings_resolver.py +2 -1
  64. zenml/config/source.py +97 -31
  65. zenml/config/step_configurations.py +83 -39
  66. zenml/config/step_run_info.py +3 -0
  67. zenml/config/store_config.py +20 -54
  68. zenml/config/strict_base_model.py +2 -6
  69. zenml/console.py +0 -1
  70. zenml/constants.py +241 -74
  71. zenml/container_registries/azure_container_registry.py +1 -0
  72. zenml/container_registries/base_container_registry.py +7 -3
  73. zenml/container_registries/default_container_registry.py +4 -3
  74. zenml/container_registries/dockerhub_container_registry.py +1 -0
  75. zenml/container_registries/gcp_container_registry.py +1 -0
  76. zenml/container_registries/github_container_registry.py +2 -10
  77. zenml/data_validators/base_data_validator.py +2 -2
  78. zenml/entrypoints/base_entrypoint_configuration.py +76 -17
  79. zenml/entrypoints/pipeline_entrypoint_configuration.py +1 -0
  80. zenml/entrypoints/step_entrypoint_configuration.py +21 -2
  81. zenml/enums.py +91 -9
  82. zenml/environment.py +52 -319
  83. zenml/{steps/base_parameters.py → event_hub/__init__.py} +5 -7
  84. zenml/event_hub/base_event_hub.py +196 -0
  85. zenml/event_hub/event_hub.py +181 -0
  86. zenml/event_sources/__init__.py +14 -0
  87. zenml/{lineage_graph/edge.py → event_sources/base_event.py} +5 -7
  88. zenml/event_sources/base_event_source.py +695 -0
  89. zenml/event_sources/webhooks/__init__.py +14 -0
  90. zenml/event_sources/webhooks/base_webhook_event_source.py +231 -0
  91. zenml/exceptions.py +40 -41
  92. zenml/feature_stores/base_feature_store.py +4 -6
  93. zenml/hooks/hook_validators.py +3 -11
  94. zenml/image_builders/base_image_builder.py +5 -2
  95. zenml/image_builders/build_context.py +24 -80
  96. zenml/image_builders/local_image_builder.py +14 -6
  97. zenml/integrations/__init__.py +16 -4
  98. zenml/integrations/airflow/__init__.py +3 -5
  99. zenml/integrations/airflow/flavors/airflow_orchestrator_flavor.py +15 -7
  100. zenml/integrations/airflow/orchestrators/airflow_orchestrator.py +15 -252
  101. zenml/integrations/airflow/orchestrators/dag_generator.py +5 -3
  102. zenml/integrations/argilla/__init__.py +46 -0
  103. zenml/integrations/argilla/annotators/__init__.py +20 -0
  104. zenml/integrations/argilla/annotators/argilla_annotator.py +443 -0
  105. zenml/{post_execution → integrations/argilla/flavors}/__init__.py +9 -13
  106. zenml/integrations/argilla/flavors/argilla_annotator_flavor.py +150 -0
  107. zenml/integrations/aws/__init__.py +7 -3
  108. zenml/integrations/aws/container_registries/aws_container_registry.py +44 -8
  109. zenml/integrations/aws/flavors/__init__.py +6 -0
  110. zenml/integrations/aws/flavors/aws_container_registry_flavor.py +3 -2
  111. zenml/integrations/aws/flavors/aws_image_builder_flavor.py +146 -0
  112. zenml/integrations/aws/flavors/sagemaker_orchestrator_flavor.py +104 -16
  113. zenml/integrations/aws/flavors/sagemaker_step_operator_flavor.py +6 -2
  114. zenml/integrations/aws/image_builders/__init__.py +20 -0
  115. zenml/integrations/aws/image_builders/aws_image_builder.py +307 -0
  116. zenml/integrations/aws/orchestrators/sagemaker_orchestrator.py +421 -133
  117. zenml/integrations/aws/service_connectors/aws_service_connector.py +175 -48
  118. zenml/integrations/aws/step_operators/sagemaker_step_operator.py +1 -1
  119. zenml/integrations/azure/__init__.py +14 -5
  120. zenml/integrations/azure/azureml_utils.py +201 -0
  121. zenml/integrations/azure/flavors/__init__.py +11 -0
  122. zenml/integrations/azure/flavors/azureml.py +139 -0
  123. zenml/integrations/azure/flavors/azureml_orchestrator_flavor.py +166 -0
  124. zenml/integrations/azure/flavors/azureml_step_operator_flavor.py +71 -18
  125. zenml/integrations/azure/orchestrators/__init__.py +19 -0
  126. zenml/integrations/azure/orchestrators/azureml_orchestrator.py +583 -0
  127. zenml/integrations/azure/orchestrators/azureml_orchestrator_entrypoint_config.py +82 -0
  128. zenml/integrations/azure/service_connectors/azure_service_connector.py +15 -6
  129. zenml/integrations/azure/step_operators/azureml_step_operator.py +78 -173
  130. zenml/integrations/bentoml/__init__.py +1 -1
  131. zenml/integrations/bentoml/constants.py +1 -1
  132. zenml/integrations/bentoml/materializers/bentoml_bento_materializer.py +19 -31
  133. zenml/integrations/bentoml/model_deployers/bentoml_model_deployer.py +128 -239
  134. zenml/integrations/bentoml/services/__init__.py +15 -4
  135. zenml/integrations/bentoml/services/bentoml_container_deployment.py +399 -0
  136. zenml/integrations/bentoml/services/{bentoml_deployment.py → bentoml_local_deployment.py} +85 -43
  137. zenml/integrations/bentoml/services/deployment_type.py +23 -0
  138. zenml/integrations/bentoml/steps/bento_builder.py +2 -0
  139. zenml/integrations/bentoml/steps/bentoml_deployer.py +97 -47
  140. zenml/integrations/bitbucket/__init__.py +42 -0
  141. zenml/integrations/bitbucket/plugins/__init__.py +20 -0
  142. zenml/integrations/bitbucket/plugins/bitbucket_webhook_event_source_flavor.py +43 -0
  143. zenml/integrations/bitbucket/plugins/event_sources/__init__.py +0 -0
  144. zenml/integrations/bitbucket/plugins/event_sources/bitbucket_webhook_event_source.py +486 -0
  145. zenml/integrations/comet/__init__.py +49 -0
  146. zenml/integrations/{kserve/services → comet/experiment_trackers}/__init__.py +5 -6
  147. zenml/integrations/comet/experiment_trackers/comet_experiment_tracker.py +175 -0
  148. zenml/integrations/comet/flavors/__init__.py +24 -0
  149. zenml/integrations/comet/flavors/comet_experiment_tracker_flavor.py +129 -0
  150. zenml/integrations/constants.py +14 -2
  151. zenml/integrations/databricks/__init__.py +70 -0
  152. zenml/{lineage_graph → integrations/databricks/flavors}/__init__.py +14 -18
  153. zenml/integrations/databricks/flavors/databricks_model_deployer_flavor.py +118 -0
  154. zenml/integrations/databricks/flavors/databricks_orchestrator_flavor.py +174 -0
  155. zenml/integrations/{kserve → databricks}/model_deployers/__init__.py +5 -5
  156. zenml/integrations/databricks/model_deployers/databricks_model_deployer.py +249 -0
  157. zenml/integrations/databricks/orchestrators/__init__.py +20 -0
  158. zenml/integrations/databricks/orchestrators/databricks_orchestrator.py +501 -0
  159. zenml/integrations/databricks/orchestrators/databricks_orchestrator_entrypoint_config.py +97 -0
  160. zenml/integrations/databricks/services/__init__.py +19 -0
  161. zenml/integrations/databricks/services/databricks_deployment.py +407 -0
  162. zenml/integrations/{gcp/orchestrators/vertex_scheduler → databricks/utils}/__init__.py +2 -2
  163. zenml/integrations/databricks/utils/databricks_utils.py +87 -0
  164. zenml/integrations/deepchecks/__init__.py +30 -10
  165. zenml/integrations/deepchecks/data_validators/deepchecks_data_validator.py +59 -18
  166. zenml/integrations/deepchecks/materializers/deepchecks_dataset_materializer.py +3 -1
  167. zenml/integrations/deepchecks/materializers/deepchecks_results_materializer.py +3 -3
  168. zenml/integrations/deepchecks/validation_checks.py +62 -35
  169. zenml/integrations/discord/__init__.py +1 -0
  170. zenml/integrations/discord/steps/discord_alerter_ask_step.py +1 -0
  171. zenml/integrations/discord/steps/discord_alerter_post_step.py +1 -0
  172. zenml/integrations/evidently/__init__.py +22 -4
  173. zenml/integrations/evidently/column_mapping.py +11 -3
  174. zenml/integrations/evidently/data_validators/evidently_data_validator.py +24 -6
  175. zenml/integrations/evidently/metrics.py +7 -8
  176. zenml/integrations/evidently/tests.py +7 -8
  177. zenml/integrations/facets/__init__.py +22 -5
  178. zenml/integrations/facets/models.py +2 -7
  179. zenml/integrations/feast/__init__.py +19 -3
  180. zenml/integrations/feast/feature_stores/feast_feature_store.py +13 -32
  181. zenml/integrations/gcp/__init__.py +6 -6
  182. zenml/integrations/gcp/artifact_stores/gcp_artifact_store.py +6 -0
  183. zenml/integrations/gcp/flavors/gcp_artifact_store_flavor.py +1 -0
  184. zenml/integrations/gcp/flavors/vertex_orchestrator_flavor.py +24 -2
  185. zenml/integrations/gcp/flavors/vertex_step_operator_flavor.py +14 -1
  186. zenml/integrations/gcp/google_credentials_mixin.py +1 -1
  187. zenml/integrations/gcp/orchestrators/vertex_orchestrator.py +519 -296
  188. zenml/integrations/gcp/service_connectors/gcp_service_connector.py +788 -113
  189. zenml/integrations/gcp/step_operators/vertex_step_operator.py +9 -1
  190. zenml/integrations/github/__init__.py +15 -0
  191. zenml/integrations/github/code_repositories/github_code_repository.py +3 -2
  192. zenml/integrations/github/plugins/__init__.py +19 -0
  193. zenml/integrations/github/plugins/event_sources/__init__.py +0 -0
  194. zenml/integrations/github/plugins/event_sources/github_webhook_event_source.py +510 -0
  195. zenml/integrations/github/plugins/github_webhook_event_source_flavor.py +43 -0
  196. zenml/integrations/gitlab/code_repositories/gitlab_code_repository.py +7 -1
  197. zenml/integrations/great_expectations/__init__.py +22 -10
  198. zenml/integrations/great_expectations/data_validators/ge_data_validator.py +61 -57
  199. zenml/integrations/great_expectations/flavors/great_expectations_data_validator_flavor.py +35 -2
  200. zenml/integrations/great_expectations/ge_store_backend.py +24 -11
  201. zenml/integrations/great_expectations/materializers/ge_materializer.py +9 -9
  202. zenml/integrations/great_expectations/utils.py +5 -5
  203. zenml/integrations/huggingface/__init__.py +52 -1
  204. zenml/integrations/huggingface/flavors/__init__.py +26 -0
  205. zenml/integrations/huggingface/flavors/huggingface_model_deployer_flavor.py +130 -0
  206. zenml/integrations/huggingface/materializers/__init__.py +3 -0
  207. zenml/integrations/huggingface/materializers/huggingface_datasets_materializer.py +102 -19
  208. zenml/integrations/huggingface/materializers/huggingface_pt_model_materializer.py +18 -19
  209. zenml/integrations/huggingface/materializers/huggingface_t5_materializer.py +104 -0
  210. zenml/integrations/huggingface/materializers/huggingface_tf_model_materializer.py +18 -19
  211. zenml/integrations/huggingface/materializers/huggingface_tokenizer_materializer.py +13 -15
  212. zenml/integrations/huggingface/model_deployers/__init__.py +20 -0
  213. zenml/integrations/huggingface/model_deployers/huggingface_model_deployer.py +247 -0
  214. zenml/integrations/huggingface/services/__init__.py +19 -0
  215. zenml/integrations/huggingface/services/huggingface_deployment.py +292 -0
  216. zenml/integrations/huggingface/steps/__init__.py +21 -0
  217. zenml/integrations/huggingface/steps/accelerate_runner.py +166 -0
  218. zenml/integrations/huggingface/steps/huggingface_deployer.py +110 -0
  219. zenml/integrations/hyperai/__init__.py +53 -0
  220. zenml/integrations/hyperai/flavors/__init__.py +20 -0
  221. zenml/integrations/hyperai/flavors/hyperai_orchestrator_flavor.py +170 -0
  222. zenml/integrations/hyperai/orchestrators/__init__.py +21 -0
  223. zenml/integrations/hyperai/orchestrators/hyperai_orchestrator.py +510 -0
  224. zenml/integrations/hyperai/service_connectors/__init__.py +20 -0
  225. zenml/integrations/hyperai/service_connectors/hyperai_service_connector.py +375 -0
  226. zenml/integrations/integration.py +101 -47
  227. zenml/integrations/kaniko/flavors/kaniko_image_builder_flavor.py +6 -44
  228. zenml/integrations/kaniko/image_builders/kaniko_image_builder.py +9 -6
  229. zenml/integrations/kubeflow/__init__.py +4 -1
  230. zenml/integrations/kubeflow/flavors/kubeflow_orchestrator_flavor.py +67 -82
  231. zenml/integrations/kubeflow/orchestrators/kubeflow_orchestrator.py +306 -248
  232. zenml/integrations/kubernetes/__init__.py +6 -3
  233. zenml/integrations/kubernetes/flavors/__init__.py +8 -0
  234. zenml/integrations/kubernetes/flavors/kubernetes_orchestrator_flavor.py +43 -2
  235. zenml/integrations/kubernetes/flavors/kubernetes_step_operator_flavor.py +166 -0
  236. zenml/integrations/kubernetes/orchestrators/kube_utils.py +67 -12
  237. zenml/integrations/kubernetes/orchestrators/kubernetes_orchestrator.py +89 -21
  238. zenml/integrations/kubernetes/orchestrators/kubernetes_orchestrator_entrypoint.py +39 -7
  239. zenml/integrations/kubernetes/orchestrators/manifest_utils.py +42 -19
  240. zenml/integrations/kubernetes/pod_settings.py +21 -31
  241. zenml/integrations/kubernetes/serialization_utils.py +3 -3
  242. zenml/integrations/kubernetes/service_connectors/kubernetes_service_connector.py +14 -11
  243. zenml/integrations/kubernetes/step_operators/__init__.py +22 -0
  244. zenml/integrations/kubernetes/step_operators/kubernetes_step_operator.py +236 -0
  245. zenml/integrations/label_studio/__init__.py +1 -3
  246. zenml/integrations/label_studio/annotators/label_studio_annotator.py +46 -14
  247. zenml/integrations/label_studio/flavors/__init__.py +2 -0
  248. zenml/integrations/label_studio/flavors/label_studio_annotator_flavor.py +20 -5
  249. zenml/integrations/langchain/__init__.py +7 -1
  250. zenml/integrations/langchain/materializers/document_materializer.py +44 -8
  251. zenml/integrations/langchain/materializers/openai_embedding_materializer.py +28 -2
  252. zenml/integrations/lightgbm/__init__.py +1 -0
  253. zenml/integrations/lightgbm/materializers/lightgbm_booster_materializer.py +8 -15
  254. zenml/integrations/lightgbm/materializers/lightgbm_dataset_materializer.py +11 -16
  255. zenml/integrations/lightning/__init__.py +48 -0
  256. zenml/integrations/lightning/flavors/__init__.py +23 -0
  257. zenml/integrations/lightning/flavors/lightning_orchestrator_flavor.py +168 -0
  258. zenml/integrations/lightning/orchestrators/__init__.py +23 -0
  259. zenml/integrations/lightning/orchestrators/lightning_orchestrator.py +617 -0
  260. zenml/integrations/lightning/orchestrators/lightning_orchestrator_entrypoint.py +303 -0
  261. zenml/integrations/lightning/orchestrators/lightning_orchestrator_entrypoint_configuration.py +77 -0
  262. zenml/integrations/lightning/orchestrators/utils.py +67 -0
  263. zenml/integrations/mlflow/__init__.py +55 -8
  264. zenml/integrations/mlflow/experiment_trackers/mlflow_experiment_tracker.py +31 -13
  265. zenml/integrations/mlflow/flavors/mlflow_experiment_tracker_flavor.py +32 -37
  266. zenml/integrations/mlflow/model_deployers/mlflow_model_deployer.py +42 -233
  267. zenml/integrations/mlflow/model_registries/mlflow_model_registry.py +42 -49
  268. zenml/integrations/mlflow/services/mlflow_deployment.py +30 -5
  269. zenml/integrations/mlflow/steps/mlflow_deployer.py +25 -27
  270. zenml/integrations/mlflow/steps/mlflow_registry.py +3 -1
  271. zenml/integrations/modal/__init__.py +46 -0
  272. zenml/integrations/modal/flavors/__init__.py +26 -0
  273. zenml/integrations/modal/flavors/modal_step_operator_flavor.py +125 -0
  274. zenml/integrations/modal/step_operators/__init__.py +22 -0
  275. zenml/integrations/modal/step_operators/modal_step_operator.py +242 -0
  276. zenml/integrations/neptune/experiment_trackers/neptune_experiment_tracker.py +7 -5
  277. zenml/integrations/neptune/experiment_trackers/run_state.py +71 -55
  278. zenml/integrations/neptune/flavors/neptune_experiment_tracker_flavor.py +1 -1
  279. zenml/integrations/neural_prophet/__init__.py +6 -1
  280. zenml/integrations/numpy/__init__.py +32 -0
  281. zenml/integrations/{kserve/constants.py → numpy/materializers/__init__.py} +5 -4
  282. zenml/integrations/numpy/materializers/numpy_materializer.py +246 -0
  283. zenml/integrations/openai/__init__.py +1 -1
  284. zenml/integrations/openai/hooks/open_ai_failure_hook.py +39 -14
  285. zenml/{steps/external_artifact.py → integrations/pandas/__init__.py} +17 -11
  286. zenml/integrations/{kserve/custom_deployer → pandas/materializers}/__init__.py +5 -5
  287. zenml/integrations/pandas/materializers/pandas_materializer.py +192 -0
  288. zenml/integrations/pigeon/__init__.py +44 -0
  289. zenml/integrations/pigeon/annotators/__init__.py +20 -0
  290. zenml/integrations/pigeon/annotators/pigeon_annotator.py +330 -0
  291. zenml/integrations/{kserve → pigeon}/flavors/__init__.py +7 -7
  292. zenml/integrations/pigeon/flavors/pigeon_annotator_flavor.py +104 -0
  293. zenml/integrations/pillow/materializers/pillow_image_materializer.py +17 -20
  294. zenml/integrations/polars/__init__.py +1 -0
  295. zenml/integrations/polars/materializers/dataframe_materializer.py +26 -39
  296. zenml/integrations/prodigy/__init__.py +48 -0
  297. zenml/integrations/prodigy/annotators/__init__.py +20 -0
  298. zenml/integrations/prodigy/annotators/prodigy_annotator.py +275 -0
  299. zenml/integrations/prodigy/flavors/__init__.py +24 -0
  300. zenml/integrations/prodigy/flavors/prodigy_annotator_flavor.py +101 -0
  301. zenml/integrations/pycaret/__init__.py +6 -0
  302. zenml/integrations/pycaret/materializers/model_materializer.py +7 -22
  303. zenml/integrations/pytorch/materializers/base_pytorch_materializer.py +8 -2
  304. zenml/integrations/pytorch/materializers/pytorch_module_materializer.py +4 -1
  305. zenml/integrations/registry.py +38 -1
  306. zenml/integrations/s3/__init__.py +2 -3
  307. zenml/integrations/s3/artifact_stores/s3_artifact_store.py +191 -9
  308. zenml/integrations/s3/flavors/s3_artifact_store_flavor.py +22 -45
  309. zenml/integrations/s3/utils.py +39 -0
  310. zenml/integrations/seldon/__init__.py +18 -2
  311. zenml/integrations/seldon/model_deployers/seldon_model_deployer.py +19 -141
  312. zenml/integrations/seldon/secret_schemas/secret_schemas.py +2 -2
  313. zenml/integrations/seldon/seldon_client.py +55 -70
  314. zenml/integrations/seldon/services/seldon_deployment.py +4 -5
  315. zenml/integrations/seldon/steps/seldon_deployer.py +21 -20
  316. zenml/integrations/sklearn/__init__.py +1 -1
  317. zenml/integrations/skypilot/flavors/skypilot_orchestrator_base_vm_config.py +29 -7
  318. zenml/integrations/skypilot/orchestrators/skypilot_base_vm_orchestrator.py +47 -28
  319. zenml/integrations/skypilot/orchestrators/skypilot_orchestrator_entrypoint.py +2 -2
  320. zenml/integrations/skypilot_aws/__init__.py +3 -2
  321. zenml/integrations/skypilot_aws/flavors/skypilot_orchestrator_aws_vm_flavor.py +1 -1
  322. zenml/integrations/skypilot_azure/__init__.py +2 -4
  323. zenml/integrations/skypilot_azure/flavors/skypilot_orchestrator_azure_vm_flavor.py +1 -1
  324. zenml/integrations/skypilot_gcp/__init__.py +3 -2
  325. zenml/integrations/skypilot_gcp/flavors/skypilot_orchestrator_gcp_vm_flavor.py +1 -1
  326. zenml/integrations/skypilot_kubernetes/__init__.py +52 -0
  327. zenml/integrations/skypilot_kubernetes/flavors/__init__.py +26 -0
  328. zenml/integrations/skypilot_kubernetes/flavors/skypilot_orchestrator_kubernetes_vm_flavor.py +125 -0
  329. zenml/integrations/skypilot_kubernetes/orchestrators/__init__.py +25 -0
  330. zenml/integrations/skypilot_kubernetes/orchestrators/skypilot_kubernetes_vm_orchestrator.py +74 -0
  331. zenml/integrations/skypilot_lambda/__init__.py +50 -0
  332. zenml/integrations/{kserve/secret_schemas → skypilot_lambda/flavors}/__init__.py +9 -12
  333. zenml/integrations/skypilot_lambda/flavors/skypilot_orchestrator_lambda_vm_flavor.py +130 -0
  334. zenml/{lineage_graph/node → integrations/skypilot_lambda/orchestrators}/__init__.py +8 -15
  335. zenml/integrations/skypilot_lambda/orchestrators/skypilot_lambda_vm_orchestrator.py +92 -0
  336. zenml/integrations/slack/__init__.py +1 -0
  337. zenml/integrations/slack/alerters/slack_alerter.py +22 -2
  338. zenml/integrations/slack/flavors/__init__.py +2 -0
  339. zenml/integrations/slack/flavors/slack_alerter_flavor.py +13 -4
  340. zenml/integrations/slack/steps/slack_alerter_ask_step.py +1 -0
  341. zenml/integrations/slack/steps/slack_alerter_post_step.py +1 -0
  342. zenml/integrations/spark/flavors/spark_step_operator_flavor.py +2 -39
  343. zenml/integrations/spark/step_operators/kubernetes_step_operator.py +1 -0
  344. zenml/integrations/spark/step_operators/spark_entrypoint_configuration.py +1 -0
  345. zenml/integrations/spark/step_operators/spark_step_operator.py +2 -0
  346. zenml/integrations/tekton/__init__.py +2 -1
  347. zenml/integrations/tekton/flavors/tekton_orchestrator_flavor.py +66 -23
  348. zenml/integrations/tekton/orchestrators/tekton_orchestrator.py +549 -235
  349. zenml/integrations/tensorboard/__init__.py +1 -13
  350. zenml/integrations/tensorboard/services/tensorboard_service.py +3 -4
  351. zenml/integrations/tensorboard/visualizers/tensorboard_visualizer.py +66 -59
  352. zenml/integrations/tensorflow/__init__.py +10 -15
  353. zenml/integrations/tensorflow/materializers/keras_materializer.py +24 -27
  354. zenml/integrations/tensorflow/materializers/tf_dataset_materializer.py +9 -16
  355. zenml/integrations/vllm/__init__.py +50 -0
  356. zenml/integrations/vllm/flavors/__init__.py +21 -0
  357. zenml/integrations/vllm/flavors/vllm_model_deployer_flavor.py +91 -0
  358. zenml/integrations/vllm/model_deployers/__init__.py +19 -0
  359. zenml/integrations/vllm/model_deployers/vllm_model_deployer.py +263 -0
  360. zenml/integrations/vllm/services/__init__.py +19 -0
  361. zenml/integrations/vllm/services/vllm_deployment.py +206 -0
  362. zenml/integrations/wandb/__init__.py +1 -0
  363. zenml/integrations/wandb/flavors/wandb_experiment_tracker_flavor.py +21 -18
  364. zenml/integrations/whylogs/__init__.py +18 -2
  365. zenml/integrations/whylogs/data_validators/whylogs_data_validator.py +3 -3
  366. zenml/integrations/whylogs/flavors/whylogs_data_validator_flavor.py +1 -1
  367. zenml/integrations/whylogs/materializers/whylogs_materializer.py +14 -21
  368. zenml/integrations/xgboost/materializers/xgboost_booster_materializer.py +11 -22
  369. zenml/integrations/xgboost/materializers/xgboost_dmatrix_materializer.py +10 -19
  370. zenml/io/fileio.py +1 -0
  371. zenml/io/filesystem.py +2 -2
  372. zenml/io/local_filesystem.py +3 -3
  373. zenml/logger.py +41 -17
  374. zenml/logging/__init__.py +5 -0
  375. zenml/logging/step_logging.py +280 -32
  376. zenml/{new/steps → login}/__init__.py +4 -1
  377. zenml/login/credentials.py +346 -0
  378. zenml/login/credentials_store.py +603 -0
  379. zenml/{new/pipelines → login/pro}/__init__.py +4 -1
  380. zenml/login/pro/client.py +496 -0
  381. zenml/login/pro/constants.py +34 -0
  382. zenml/{zen_stores/schemas/identity_schemas.py → login/pro/models.py} +9 -11
  383. zenml/login/pro/organization/__init__.py +14 -0
  384. zenml/login/pro/organization/client.py +79 -0
  385. zenml/{lineage_graph/node/base_node.py → login/pro/organization/models.py} +13 -12
  386. zenml/{_hub → login/pro/tenant}/__init__.py +2 -2
  387. zenml/login/pro/tenant/client.py +92 -0
  388. zenml/login/pro/tenant/models.py +174 -0
  389. zenml/login/pro/utils.py +121 -0
  390. zenml/{cli → login}/web_login.py +66 -21
  391. zenml/materializers/__init__.py +2 -4
  392. zenml/materializers/base_materializer.py +180 -51
  393. zenml/materializers/built_in_materializer.py +50 -23
  394. zenml/materializers/cloudpickle_materializer.py +4 -5
  395. zenml/materializers/numpy_materializer.py +23 -233
  396. zenml/materializers/pandas_materializer.py +22 -174
  397. zenml/materializers/pydantic_materializer.py +2 -2
  398. zenml/materializers/service_materializer.py +12 -10
  399. zenml/materializers/structured_string_materializer.py +12 -6
  400. zenml/materializers/uuid_materializer.py +79 -0
  401. zenml/metadata/lazy_load.py +33 -17
  402. zenml/metadata/metadata_types.py +112 -3
  403. zenml/model/lazy_load.py +85 -4
  404. zenml/model/model.py +236 -226
  405. zenml/model/utils.py +99 -141
  406. zenml/model_deployers/base_model_deployer.py +319 -47
  407. zenml/model_registries/base_model_registry.py +17 -15
  408. zenml/models/__init__.py +254 -175
  409. zenml/models/v2/base/base.py +254 -112
  410. zenml/models/v2/base/base_plugin_flavor.py +76 -0
  411. zenml/models/v2/base/filter.py +530 -199
  412. zenml/models/v2/base/page.py +2 -12
  413. zenml/models/v2/base/scoped.py +292 -22
  414. zenml/models/v2/core/action.py +276 -0
  415. zenml/models/v2/core/action_flavor.py +57 -0
  416. zenml/models/v2/core/api_key.py +35 -12
  417. zenml/models/v2/core/artifact.py +126 -6
  418. zenml/models/v2/core/artifact_version.py +289 -65
  419. zenml/models/v2/core/artifact_visualization.py +10 -4
  420. zenml/models/v2/core/code_reference.py +13 -4
  421. zenml/models/v2/core/code_repository.py +39 -16
  422. zenml/models/v2/core/component.py +113 -61
  423. zenml/models/v2/core/device.py +25 -5
  424. zenml/models/v2/core/event_source.py +244 -0
  425. zenml/models/v2/core/event_source_flavor.py +67 -0
  426. zenml/models/v2/core/flavor.py +90 -27
  427. zenml/models/v2/core/logs.py +81 -12
  428. zenml/models/v2/core/model.py +91 -42
  429. zenml/models/v2/core/model_version.py +100 -55
  430. zenml/models/v2/core/model_version_artifact.py +96 -89
  431. zenml/models/v2/core/model_version_pipeline_run.py +86 -53
  432. zenml/models/v2/core/pipeline.py +205 -80
  433. zenml/models/v2/core/pipeline_build.py +110 -21
  434. zenml/models/v2/core/pipeline_deployment.py +101 -36
  435. zenml/models/v2/core/pipeline_run.py +545 -33
  436. zenml/models/v2/core/run_metadata.py +23 -181
  437. zenml/models/v2/core/run_template.py +439 -0
  438. zenml/models/v2/core/schedule.py +66 -29
  439. zenml/models/v2/core/secret.py +33 -21
  440. zenml/models/v2/core/server_settings.py +224 -0
  441. zenml/models/v2/core/service.py +500 -0
  442. zenml/models/v2/core/service_account.py +40 -15
  443. zenml/models/v2/core/service_connector.py +247 -49
  444. zenml/models/v2/core/stack.py +163 -70
  445. zenml/models/v2/core/step_run.py +210 -48
  446. zenml/models/v2/core/tag.py +21 -8
  447. zenml/models/v2/core/tag_resource.py +13 -4
  448. zenml/models/v2/core/trigger.py +422 -0
  449. zenml/models/v2/core/trigger_execution.py +119 -0
  450. zenml/models/v2/core/user.py +136 -69
  451. zenml/models/v2/core/workspace.py +26 -7
  452. zenml/models/v2/misc/auth_models.py +11 -2
  453. zenml/models/v2/misc/build_item.py +3 -3
  454. zenml/models/v2/misc/external_user.py +3 -6
  455. zenml/models/v2/misc/info_models.py +78 -0
  456. zenml/models/v2/misc/loaded_visualization.py +2 -2
  457. zenml/models/v2/misc/run_metadata.py +38 -0
  458. zenml/models/v2/misc/server_models.py +56 -0
  459. zenml/models/v2/misc/service_connector_type.py +9 -17
  460. zenml/models/v2/misc/stack_deployment.py +96 -0
  461. zenml/models/v2/misc/user_auth.py +7 -9
  462. zenml/orchestrators/__init__.py +4 -0
  463. zenml/orchestrators/base_orchestrator.py +136 -25
  464. zenml/orchestrators/containerized_orchestrator.py +1 -0
  465. zenml/orchestrators/dag_runner.py +18 -3
  466. zenml/orchestrators/input_utils.py +109 -48
  467. zenml/orchestrators/local/local_orchestrator.py +10 -0
  468. zenml/orchestrators/local_docker/local_docker_orchestrator.py +14 -42
  469. zenml/orchestrators/output_utils.py +16 -6
  470. zenml/orchestrators/publish_utils.py +12 -5
  471. zenml/orchestrators/step_launcher.py +142 -194
  472. zenml/orchestrators/step_run_utils.py +386 -0
  473. zenml/orchestrators/step_runner.py +181 -270
  474. zenml/orchestrators/utils.py +219 -84
  475. zenml/orchestrators/wheeled_orchestrator.py +147 -0
  476. zenml/pipelines/__init__.py +3 -16
  477. zenml/{new/pipelines → pipelines}/build_utils.py +287 -47
  478. zenml/{new/pipelines → pipelines}/pipeline_context.py +6 -2
  479. zenml/pipelines/pipeline_decorator.py +40 -64
  480. zenml/{new/pipelines/pipeline.py → pipelines/pipeline_definition.py} +376 -440
  481. zenml/pipelines/run_utils.py +358 -0
  482. zenml/plugins/__init__.py +0 -0
  483. zenml/plugins/base_plugin_flavor.py +88 -0
  484. zenml/plugins/plugin_flavor_registry.py +342 -0
  485. zenml/secret/base_secret.py +7 -8
  486. zenml/secret/schemas/basic_auth_secret_schema.py +0 -1
  487. zenml/service_connectors/docker_service_connector.py +19 -4
  488. zenml/service_connectors/service_connector.py +12 -14
  489. zenml/service_connectors/service_connector_registry.py +71 -55
  490. zenml/service_connectors/service_connector_utils.py +418 -0
  491. zenml/services/__init__.py +0 -2
  492. zenml/services/container/container_service.py +9 -6
  493. zenml/services/container/container_service_endpoint.py +1 -1
  494. zenml/services/container/entrypoint.py +3 -2
  495. zenml/services/local/local_daemon_entrypoint.py +9 -6
  496. zenml/services/local/local_service.py +1 -1
  497. zenml/services/local/local_service_endpoint.py +1 -1
  498. zenml/services/service.py +222 -130
  499. zenml/services/service_status.py +2 -1
  500. zenml/services/service_type.py +6 -5
  501. zenml/stack/flavor.py +25 -18
  502. zenml/stack/flavor_registry.py +4 -4
  503. zenml/stack/stack.py +20 -131
  504. zenml/stack/stack_component.py +136 -110
  505. zenml/stack/utils.py +36 -15
  506. zenml/stack_deployments/__init__.py +14 -0
  507. zenml/stack_deployments/aws_stack_deployment.py +320 -0
  508. zenml/stack_deployments/azure_stack_deployment.py +315 -0
  509. zenml/stack_deployments/gcp_stack_deployment.py +315 -0
  510. zenml/stack_deployments/stack_deployment.py +232 -0
  511. zenml/stack_deployments/utils.py +48 -0
  512. zenml/step_operators/step_operator_entrypoint_configuration.py +2 -1
  513. zenml/steps/__init__.py +3 -9
  514. zenml/steps/base_step.py +172 -315
  515. zenml/{new/steps → steps}/decorated_step.py +1 -0
  516. zenml/steps/entrypoint_function_utils.py +33 -93
  517. zenml/{new/steps → steps}/step_context.py +70 -50
  518. zenml/steps/step_decorator.py +47 -93
  519. zenml/steps/step_invocation.py +22 -60
  520. zenml/steps/utils.py +161 -48
  521. zenml/types.py +14 -1
  522. zenml/utils/archivable.py +178 -0
  523. zenml/utils/callback_registry.py +71 -0
  524. zenml/utils/code_repository_utils.py +1 -0
  525. zenml/utils/code_utils.py +346 -0
  526. zenml/utils/cuda_utils.py +50 -0
  527. zenml/utils/dashboard_utils.py +67 -21
  528. zenml/utils/deprecation_utils.py +22 -24
  529. zenml/utils/dict_utils.py +22 -0
  530. zenml/utils/docker_utils.py +34 -5
  531. zenml/utils/downloaded_repository_context.py +1 -0
  532. zenml/utils/env_utils.py +55 -1
  533. zenml/utils/filesync_model.py +65 -28
  534. zenml/utils/function_utils.py +260 -0
  535. zenml/utils/integration_utils.py +1 -0
  536. zenml/utils/json_utils.py +131 -0
  537. zenml/utils/materializer_utils.py +1 -1
  538. zenml/utils/metadata_utils.py +368 -0
  539. zenml/utils/notebook_utils.py +136 -0
  540. zenml/utils/package_utils.py +89 -0
  541. zenml/utils/pagination_utils.py +9 -7
  542. zenml/utils/pipeline_docker_image_builder.py +152 -149
  543. zenml/utils/pydantic_utils.py +276 -66
  544. zenml/utils/requirements_utils.py +71 -0
  545. zenml/utils/secret_utils.py +66 -12
  546. zenml/utils/settings_utils.py +2 -1
  547. zenml/utils/singleton.py +15 -3
  548. zenml/utils/source_code_utils.py +1 -0
  549. zenml/utils/source_utils.py +236 -14
  550. zenml/utils/string_utils.py +140 -0
  551. zenml/utils/typed_model.py +5 -3
  552. zenml/utils/typing_utils.py +223 -0
  553. zenml/utils/visualization_utils.py +5 -3
  554. zenml/utils/yaml_utils.py +1 -1
  555. zenml/zen_server/auth.py +295 -52
  556. zenml/zen_server/cache.py +208 -0
  557. zenml/zen_server/cloud_utils.py +261 -0
  558. zenml/zen_server/dashboard/assets/404-Dfq64Boz.js +1 -0
  559. zenml/zen_server/dashboard/assets/@radix-DeK6qiuw.js +85 -0
  560. zenml/zen_server/dashboard/assets/@react-router-B3Z5rLr2.js +29 -0
  561. zenml/zen_server/dashboard/assets/@reactflow-BUNIMFeC.js +17 -0
  562. zenml/zen_server/dashboard/assets/@reactflow-C26Olbza.css +1 -0
  563. zenml/zen_server/dashboard/assets/@tanstack-DT5WLu9C.js +22 -0
  564. zenml/zen_server/dashboard/assets/AlertDialogDropdownItem-B73Vs10T.js +1 -0
  565. zenml/zen_server/dashboard/assets/CodeSnippet-Bbx6fIb6.css +1 -0
  566. zenml/zen_server/dashboard/assets/CodeSnippet-DIJRT2NT.js +9 -0
  567. zenml/zen_server/dashboard/assets/CollapsibleCard-BzUHGZOU.js +1 -0
  568. zenml/zen_server/dashboard/assets/Commands-BEGyld4c.js +1 -0
  569. zenml/zen_server/dashboard/assets/ComponentBadge-xyKiek1s.js +1 -0
  570. zenml/zen_server/dashboard/assets/CopyButton-DhW-mapu.js +2 -0
  571. zenml/zen_server/dashboard/assets/CsvVizualization-D8oazBiE.js +15 -0
  572. zenml/zen_server/dashboard/assets/DeleteAlertDialog-WkSIIgfy.js +1 -0
  573. zenml/zen_server/dashboard/assets/DialogItem-Bgroeg29.js +1 -0
  574. zenml/zen_server/dashboard/assets/DisplayDate-CDMUcQHS.js +1 -0
  575. zenml/zen_server/dashboard/assets/EmptyState-BzdlCwp3.js +1 -0
  576. zenml/zen_server/dashboard/assets/Error-CY5tlu17.js +1 -0
  577. zenml/zen_server/dashboard/assets/ExecutionStatus-G8mjIaeA.js +1 -0
  578. zenml/zen_server/dashboard/assets/Helpbox-Bb1ed--O.js +1 -0
  579. zenml/zen_server/dashboard/assets/Infobox-Da6-76M2.js +1 -0
  580. zenml/zen_server/dashboard/assets/InlineAvatar-DqnZaBNq.js +1 -0
  581. zenml/zen_server/dashboard/assets/Lock-CYYy18Mm.js +1 -0
  582. zenml/zen_server/dashboard/assets/MarkdownVisualization-ylXaAxev.js +14 -0
  583. zenml/zen_server/dashboard/assets/NestedCollapsible-aK5ojKoF.js +1 -0
  584. zenml/zen_server/dashboard/assets/NumberBox-Dtp3J6g5.js +1 -0
  585. zenml/zen_server/dashboard/assets/Partials-CqZp5NMX.js +1 -0
  586. zenml/zen_server/dashboard/assets/PasswordChecker-B0nadgh6.js +1 -0
  587. zenml/zen_server/dashboard/assets/ProBadge-B4tRUYve.js +1 -0
  588. zenml/zen_server/dashboard/assets/ProCta-CZuP29Qz.js +1 -0
  589. zenml/zen_server/dashboard/assets/ProviderIcon-Bd7GUQ1_.js +1 -0
  590. zenml/zen_server/dashboard/assets/ProviderRadio-mstdqzsS.js +1 -0
  591. zenml/zen_server/dashboard/assets/RunSelector-CsruSB4i.js +1 -0
  592. zenml/zen_server/dashboard/assets/RunsBody-DxxtWVYz.js +1 -0
  593. zenml/zen_server/dashboard/assets/SearchField-D6tPxyqw.js +1 -0
  594. zenml/zen_server/dashboard/assets/SecretTooltip-CLzJIYW_.js +1 -0
  595. zenml/zen_server/dashboard/assets/SetPassword-Yn50ooBC.js +1 -0
  596. zenml/zen_server/dashboard/assets/StackList-U537qoYd.js +1 -0
  597. zenml/zen_server/dashboard/assets/Tabs-CNv-eTYM.js +1 -0
  598. zenml/zen_server/dashboard/assets/Tick-jEIevzVf.js +1 -0
  599. zenml/zen_server/dashboard/assets/UpdatePasswordSchemas-C16GW-kX.js +1 -0
  600. zenml/zen_server/dashboard/assets/UsageReason-Bf2tzhv1.js +1 -0
  601. zenml/zen_server/dashboard/assets/WizardFooter-D6i-AP1K.js +1 -0
  602. zenml/zen_server/dashboard/assets/acp-DOsXjFc7.webp +0 -0
  603. zenml/zen_server/dashboard/assets/adam-e-y0WnB_.webp +0 -0
  604. zenml/zen_server/dashboard/assets/alex-DcCuDHPg.webp +0 -0
  605. zenml/zen_server/dashboard/assets/all-pipeline-runs-query-DUti43aF.js +1 -0
  606. zenml/zen_server/dashboard/assets/baris-C0ZrZ10g.webp +0 -0
  607. zenml/zen_server/dashboard/assets/check-DloQpStc.js +1 -0
  608. zenml/zen_server/dashboard/assets/check-circle-jNbX5-sR.js +1 -0
  609. zenml/zen_server/dashboard/assets/chevron-down-6JyMkfjR.js +1 -0
  610. zenml/zen_server/dashboard/assets/chevron-right-double-D7ojK9Co.js +1 -0
  611. zenml/zen_server/dashboard/assets/cloud-squares-DeRLMopf.svg +43 -0
  612. zenml/zen_server/dashboard/assets/code-browser-CUFUIHfp.js +1 -0
  613. zenml/zen_server/dashboard/assets/code-snippets-CqONne41.js +13 -0
  614. zenml/zen_server/dashboard/assets/components-Br2ezRib.js +1 -0
  615. zenml/zen_server/dashboard/assets/connectors-video-C9qY4syJ.svg +21 -0
  616. zenml/zen_server/dashboard/assets/copy-C8XQA2Ug.js +1 -0
  617. zenml/zen_server/dashboard/assets/create-stack-Ch2WPs9U.js +1 -0
  618. zenml/zen_server/dashboard/assets/dates-3pMLCNrD.js +1 -0
  619. zenml/zen_server/dashboard/assets/delete-run-Byf9hTjA.js +1 -0
  620. zenml/zen_server/dashboard/assets/docker-BdA9vrnW.js +1 -0
  621. zenml/zen_server/dashboard/assets/dots-horizontal-otGBOSDJ.js +1 -0
  622. zenml/zen_server/dashboard/assets/flyte-Cj-xy_8I.svg +10 -0
  623. zenml/zen_server/dashboard/assets/form-schemas-BZqKBPBF.js +1 -0
  624. zenml/zen_server/dashboard/assets/gcp-CFtm4BA7.js +1 -0
  625. zenml/zen_server/dashboard/assets/hamza-NKKOZz1I.webp +0 -0
  626. zenml/zen_server/dashboard/assets/help-Cc9bBIJH.js +1 -0
  627. zenml/zen_server/dashboard/assets/index-CE0aQlv8.js +55 -0
  628. zenml/zen_server/dashboard/assets/index-CtdYkjUi.js +1 -0
  629. zenml/zen_server/dashboard/assets/index-CyBKZcpO.js +1 -0
  630. zenml/zen_server/dashboard/assets/index-DXvT1_Um.css +1 -0
  631. zenml/zen_server/dashboard/assets/index-Uu49AX48.js +1 -0
  632. zenml/zen_server/dashboard/assets/index-v6gQjDEo.js +1 -0
  633. zenml/zen_server/dashboard/assets/index.esm-Dy6Z9Ung.js +1 -0
  634. zenml/zen_server/dashboard/assets/inter-cyrillic-400-normal-BLGc9T1a.woff2 +0 -0
  635. zenml/zen_server/dashboard/assets/inter-cyrillic-400-normal-ZzOtrSSW.woff +0 -0
  636. zenml/zen_server/dashboard/assets/inter-cyrillic-500-normal-D4Vwzodn.woff2 +0 -0
  637. zenml/zen_server/dashboard/assets/inter-cyrillic-500-normal-DH2hs3aW.woff +0 -0
  638. zenml/zen_server/dashboard/assets/inter-cyrillic-600-normal-BGBWG807.woff2 +0 -0
  639. zenml/zen_server/dashboard/assets/inter-cyrillic-600-normal-BuzJQFbW.woff +0 -0
  640. zenml/zen_server/dashboard/assets/inter-cyrillic-ext-400-normal-BPnxn4xp.woff +0 -0
  641. zenml/zen_server/dashboard/assets/inter-cyrillic-ext-400-normal-Dc4VJyIJ.woff2 +0 -0
  642. zenml/zen_server/dashboard/assets/inter-cyrillic-ext-500-normal-BShVwWPj.woff2 +0 -0
  643. zenml/zen_server/dashboard/assets/inter-cyrillic-ext-500-normal-CUiC4oBV.woff +0 -0
  644. zenml/zen_server/dashboard/assets/inter-cyrillic-ext-600-normal-Bt9VVOA-.woff +0 -0
  645. zenml/zen_server/dashboard/assets/inter-cyrillic-ext-600-normal-CaqZN2hq.woff2 +0 -0
  646. zenml/zen_server/dashboard/assets/inter-greek-400-normal-BZzXV7-1.woff +0 -0
  647. zenml/zen_server/dashboard/assets/inter-greek-400-normal-DxZsaF_h.woff2 +0 -0
  648. zenml/zen_server/dashboard/assets/inter-greek-500-normal-CeQXL5ds.woff2 +0 -0
  649. zenml/zen_server/dashboard/assets/inter-greek-500-normal-d_eO-yCQ.woff +0 -0
  650. zenml/zen_server/dashboard/assets/inter-greek-600-normal-CwicyhtI.woff +0 -0
  651. zenml/zen_server/dashboard/assets/inter-greek-600-normal-Dhlb-90d.woff2 +0 -0
  652. zenml/zen_server/dashboard/assets/inter-greek-ext-400-normal-Bput3-QP.woff2 +0 -0
  653. zenml/zen_server/dashboard/assets/inter-greek-ext-400-normal-DCpCPQOf.woff +0 -0
  654. zenml/zen_server/dashboard/assets/inter-greek-ext-500-normal-B6guLgqG.woff2 +0 -0
  655. zenml/zen_server/dashboard/assets/inter-greek-ext-500-normal-M2hEX8vc.woff +0 -0
  656. zenml/zen_server/dashboard/assets/inter-greek-ext-600-normal-C9WLioJ8.woff +0 -0
  657. zenml/zen_server/dashboard/assets/inter-greek-ext-600-normal-Cnui8OiR.woff2 +0 -0
  658. zenml/zen_server/dashboard/assets/inter-latin-400-normal-BOOGhInR.woff2 +0 -0
  659. zenml/zen_server/dashboard/assets/inter-latin-400-normal-gitzw0hO.woff +0 -0
  660. zenml/zen_server/dashboard/assets/inter-latin-500-normal-D2bGa7uu.woff2 +0 -0
  661. zenml/zen_server/dashboard/assets/inter-latin-500-normal-deR1Tlfd.woff +0 -0
  662. zenml/zen_server/dashboard/assets/inter-latin-600-normal-B5cFAncS.woff +0 -0
  663. zenml/zen_server/dashboard/assets/inter-latin-600-normal-D273HNI0.woff2 +0 -0
  664. zenml/zen_server/dashboard/assets/inter-latin-ext-400-normal-C1t-h-pH.woff +0 -0
  665. zenml/zen_server/dashboard/assets/inter-latin-ext-400-normal-hnt3BR84.woff2 +0 -0
  666. zenml/zen_server/dashboard/assets/inter-latin-ext-500-normal-CIS2RHJS.woff2 +0 -0
  667. zenml/zen_server/dashboard/assets/inter-latin-ext-500-normal-UMdmhHu2.woff +0 -0
  668. zenml/zen_server/dashboard/assets/inter-latin-ext-600-normal-BnYJhD27.woff2 +0 -0
  669. zenml/zen_server/dashboard/assets/inter-latin-ext-600-normal-CAF0vJDd.woff +0 -0
  670. zenml/zen_server/dashboard/assets/inter-vietnamese-400-normal-BUNmGMP1.woff +0 -0
  671. zenml/zen_server/dashboard/assets/inter-vietnamese-400-normal-DMkecbls.woff2 +0 -0
  672. zenml/zen_server/dashboard/assets/inter-vietnamese-500-normal-DOriooB6.woff2 +0 -0
  673. zenml/zen_server/dashboard/assets/inter-vietnamese-500-normal-DQPw2Hwd.woff +0 -0
  674. zenml/zen_server/dashboard/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2 +0 -0
  675. zenml/zen_server/dashboard/assets/inter-vietnamese-600-normal-Cm6aH8_k.woff +0 -0
  676. zenml/zen_server/dashboard/assets/key-icon-aH-QIa5R.js +1 -0
  677. zenml/zen_server/dashboard/assets/kubernetes-B2wmAJ1d.js +1 -0
  678. zenml/zen_server/dashboard/assets/layout-BtHBmE4w.js +1 -0
  679. zenml/zen_server/dashboard/assets/link-external-b9AXw_sW.js +1 -0
  680. zenml/zen_server/dashboard/assets/login-command-CkqxPtV3.js +1 -0
  681. zenml/zen_server/dashboard/assets/login-mutation-DNDVp_2H.js +1 -0
  682. zenml/zen_server/dashboard/assets/logs-WMSM52RF.js +1 -0
  683. zenml/zen_server/dashboard/assets/mcp-Cb1aMeoq.webp +0 -0
  684. zenml/zen_server/dashboard/assets/metaflow-weOkWNyT.svg +10 -0
  685. zenml/zen_server/dashboard/assets/not-found-Bmup4ctE.js +1 -0
  686. zenml/zen_server/dashboard/assets/package-C6uypY4h.js +1 -0
  687. zenml/zen_server/dashboard/assets/page--XLMzHrn.js +1 -0
  688. zenml/zen_server/dashboard/assets/page-ANYGfEUL.js +1 -0
  689. zenml/zen_server/dashboard/assets/page-B5Sr8pib.js +1 -0
  690. zenml/zen_server/dashboard/assets/page-BC27C_OI.js +2 -0
  691. zenml/zen_server/dashboard/assets/page-BNxYrN0q.js +1 -0
  692. zenml/zen_server/dashboard/assets/page-BYJfqgLN.js +1 -0
  693. zenml/zen_server/dashboard/assets/page-B_0XkV48.js +1 -0
  694. zenml/zen_server/dashboard/assets/page-BrmJp1Wt.js +1 -0
  695. zenml/zen_server/dashboard/assets/page-C2nU3Gxn.js +1 -0
  696. zenml/zen_server/dashboard/assets/page-C70wZtV2.js +1 -0
  697. zenml/zen_server/dashboard/assets/page-CHRn1fQm.js +1 -0
  698. zenml/zen_server/dashboard/assets/page-CWr96ZKN.js +1 -0
  699. zenml/zen_server/dashboard/assets/page-CXAbSyp9.js +1 -0
  700. zenml/zen_server/dashboard/assets/page-CaeI9ptC.js +1 -0
  701. zenml/zen_server/dashboard/assets/page-Cc8ZEuj4.js +1 -0
  702. zenml/zen_server/dashboard/assets/page-CltCNL0T.js +1 -0
  703. zenml/zen_server/dashboard/assets/page-CmlYj7Nl.js +1 -0
  704. zenml/zen_server/dashboard/assets/page-D6Ev5P8V.js +1 -0
  705. zenml/zen_server/dashboard/assets/page-D9Oh05fl.js +1 -0
  706. zenml/zen_server/dashboard/assets/page-DGlm1RVc.js +1 -0
  707. zenml/zen_server/dashboard/assets/page-DN4BVIOL.js +1 -0
  708. zenml/zen_server/dashboard/assets/page-Dif8CWyZ.js +1 -0
  709. zenml/zen_server/dashboard/assets/page-DlIi5ThM.js +1 -0
  710. zenml/zen_server/dashboard/assets/page-DoW7YxTu.js +1 -0
  711. zenml/zen_server/dashboard/assets/page-Dth9X1Ih.js +1 -0
  712. zenml/zen_server/dashboard/assets/page-DweqqCkF.js +1 -0
  713. zenml/zen_server/dashboard/assets/page-DyOJ_pq3.js +1 -0
  714. zenml/zen_server/dashboard/assets/page-Hn8q9iJZ.js +1 -0
  715. zenml/zen_server/dashboard/assets/page-IhckKFnD.js +6 -0
  716. zenml/zen_server/dashboard/assets/page-LyZ_l8vR.js +1 -0
  717. zenml/zen_server/dashboard/assets/page-PamGpk0j.js +1 -0
  718. zenml/zen_server/dashboard/assets/page-PxOWfKgF.js +2 -0
  719. zenml/zen_server/dashboard/assets/persist-DeXRG61d.js +1 -0
  720. zenml/zen_server/dashboard/assets/persist-vP0-Xl4f.js +1 -0
  721. zenml/zen_server/dashboard/assets/plus-tf1V2hTJ.js +1 -0
  722. zenml/zen_server/dashboard/assets/refresh-BjOeWlEq.js +1 -0
  723. zenml/zen_server/dashboard/assets/repos-video-D8kpu60k.svg +9 -0
  724. zenml/zen_server/dashboard/assets/rocket-DjT2cDvG.js +1 -0
  725. zenml/zen_server/dashboard/assets/service-DH_oUqQj.js +2 -0
  726. zenml/zen_server/dashboard/assets/settings_preview-0JLrRgHP.webp +0 -0
  727. zenml/zen_server/dashboard/assets/sharedSchema-Bw1_Wa7l.js +14 -0
  728. zenml/zen_server/dashboard/assets/stack-detail-query-B_0R_fd6.js +1 -0
  729. zenml/zen_server/dashboard/assets/stefan-B08Ftbba.webp +0 -0
  730. zenml/zen_server/dashboard/assets/templates-1S_8WeSK.webp +0 -0
  731. zenml/zen_server/dashboard/assets/tick-circle-BEX_Tp4v.js +1 -0
  732. zenml/zen_server/dashboard/assets/tour-cover-BYfeen6M.webp +0 -0
  733. zenml/zen_server/dashboard/assets/trash-arLUMWMS.js +1 -0
  734. zenml/zen_server/dashboard/assets/update-server-settings-mutation-D9qYhfaN.js +1 -0
  735. zenml/zen_server/dashboard/assets/upgrade-form-CwRHBuXB.webp +0 -0
  736. zenml/zen_server/dashboard/assets/url-Dh93fvh0.js +1 -0
  737. zenml/zen_server/dashboard/assets/zod-BwEbpOxH.js +1 -0
  738. zenml/zen_server/dashboard/index.html +19 -1
  739. zenml/zen_server/deploy/__init__.py +7 -16
  740. zenml/zen_server/deploy/base_provider.py +49 -78
  741. zenml/zen_server/deploy/{local → daemon}/__init__.py +3 -3
  742. zenml/zen_server/deploy/{local/local_provider.py → daemon/daemon_provider.py} +48 -66
  743. zenml/zen_server/deploy/{local/local_zen_server.py → daemon/daemon_zen_server.py} +78 -62
  744. zenml/zen_server/deploy/deployer.py +94 -175
  745. zenml/zen_server/deploy/deployment.py +23 -17
  746. zenml/zen_server/deploy/docker/docker_provider.py +15 -31
  747. zenml/zen_server/deploy/docker/docker_zen_server.py +30 -35
  748. zenml/zen_server/deploy/helm/Chart.yaml +1 -1
  749. zenml/zen_server/deploy/helm/README.md +3 -13
  750. zenml/zen_server/deploy/helm/templates/NOTES.txt +2 -8
  751. zenml/zen_server/deploy/helm/templates/_environment.tpl +129 -3
  752. zenml/zen_server/deploy/helm/templates/server-db-job.yaml +45 -18
  753. zenml/zen_server/deploy/helm/templates/server-db-pvc.yaml +25 -0
  754. zenml/zen_server/deploy/helm/templates/server-deployment.yaml +22 -6
  755. zenml/zen_server/deploy/helm/templates/server-secret.yaml +2 -12
  756. zenml/zen_server/deploy/helm/values.yaml +134 -21
  757. zenml/zen_server/exceptions.py +20 -1
  758. zenml/zen_server/feature_gate/__init__.py +13 -0
  759. zenml/zen_server/feature_gate/endpoint_utils.py +61 -0
  760. zenml/zen_server/feature_gate/feature_gate_interface.py +49 -0
  761. zenml/zen_server/feature_gate/zenml_cloud_feature_gate.py +125 -0
  762. zenml/zen_server/jwt.py +48 -31
  763. zenml/zen_server/rate_limit.py +200 -0
  764. zenml/zen_server/rbac/endpoint_utils.py +92 -9
  765. zenml/zen_server/rbac/models.py +21 -17
  766. zenml/zen_server/rbac/rbac_sql_zen_store.py +175 -0
  767. zenml/zen_server/rbac/utils.py +71 -30
  768. zenml/zen_server/rbac/zenml_cloud_rbac.py +13 -188
  769. zenml/zen_server/routers/actions_endpoints.py +324 -0
  770. zenml/zen_server/routers/artifact_version_endpoints.py +28 -2
  771. zenml/zen_server/routers/auth_endpoints.py +205 -110
  772. zenml/zen_server/routers/code_repositories_endpoints.py +1 -0
  773. zenml/zen_server/routers/devices_endpoints.py +56 -49
  774. zenml/zen_server/routers/event_source_endpoints.py +327 -0
  775. zenml/zen_server/routers/logs_endpoints.py +66 -0
  776. zenml/zen_server/routers/model_versions_endpoints.py +59 -0
  777. zenml/zen_server/routers/models_endpoints.py +8 -1
  778. zenml/zen_server/routers/pipeline_builds_endpoints.py +6 -1
  779. zenml/zen_server/routers/pipeline_deployments_endpoints.py +35 -0
  780. zenml/zen_server/routers/pipelines_endpoints.py +19 -32
  781. zenml/zen_server/routers/plugin_endpoints.py +107 -0
  782. zenml/zen_server/routers/run_templates_endpoints.py +212 -0
  783. zenml/zen_server/routers/runs_endpoints.py +91 -32
  784. zenml/zen_server/routers/schedule_endpoints.py +1 -0
  785. zenml/zen_server/routers/secrets_endpoints.py +4 -2
  786. zenml/zen_server/routers/server_endpoints.py +186 -4
  787. zenml/zen_server/routers/service_connectors_endpoints.py +56 -0
  788. zenml/zen_server/routers/service_endpoints.py +180 -0
  789. zenml/zen_server/routers/stack_components_endpoints.py +2 -1
  790. zenml/zen_server/routers/stack_deployment_endpoints.py +164 -0
  791. zenml/zen_server/routers/steps_endpoints.py +21 -12
  792. zenml/zen_server/routers/triggers_endpoints.py +336 -0
  793. zenml/zen_server/routers/users_endpoints.py +280 -45
  794. zenml/zen_server/routers/webhook_endpoints.py +127 -0
  795. zenml/zen_server/routers/workspaces_endpoints.py +220 -185
  796. zenml/zen_server/secure_headers.py +120 -0
  797. zenml/{new → zen_server/template_execution}/__init__.py +1 -1
  798. zenml/zen_server/template_execution/runner_entrypoint_configuration.py +42 -0
  799. zenml/zen_server/template_execution/utils.py +474 -0
  800. zenml/zen_server/template_execution/workload_manager_interface.py +92 -0
  801. zenml/zen_server/utils.py +310 -74
  802. zenml/zen_server/zen_server_api.py +294 -52
  803. zenml/zen_stores/base_zen_store.py +71 -57
  804. zenml/zen_stores/migrations/alembic.py +22 -9
  805. zenml/zen_stores/migrations/env.py +2 -2
  806. zenml/zen_stores/migrations/utils.py +731 -0
  807. zenml/zen_stores/migrations/versions/0.21.0_release.py +0 -1
  808. zenml/zen_stores/migrations/versions/0.21.1_release.py +0 -1
  809. zenml/zen_stores/migrations/versions/0.22.0_release.py +0 -1
  810. zenml/zen_stores/migrations/versions/0.23.0_release.py +0 -1
  811. zenml/zen_stores/migrations/versions/0.30.0_release.py +0 -1
  812. zenml/zen_stores/migrations/versions/0.31.0_release.py +0 -1
  813. zenml/zen_stores/migrations/versions/0.31.1_release.py +0 -1
  814. zenml/zen_stores/migrations/versions/0.32.0_release.py +0 -1
  815. zenml/zen_stores/migrations/versions/0.32.1_release.py +0 -1
  816. zenml/zen_stores/migrations/versions/0.33.0_release.py +0 -1
  817. zenml/zen_stores/migrations/versions/0.34.0_release.py +0 -1
  818. zenml/zen_stores/migrations/versions/0.35.0_release.py +0 -1
  819. zenml/zen_stores/migrations/versions/0.35.1_release.py +0 -1
  820. zenml/zen_stores/migrations/versions/0.36.0_release.py +0 -1
  821. zenml/zen_stores/migrations/versions/0.36.1_release.py +0 -1
  822. zenml/zen_stores/migrations/versions/0.37.0_release.py +0 -1
  823. zenml/zen_stores/migrations/versions/0.38.0_release.py +0 -1
  824. zenml/zen_stores/migrations/versions/0.39.0_release.py +0 -1
  825. zenml/zen_stores/migrations/versions/0.39.1_release.py +0 -1
  826. zenml/zen_stores/migrations/versions/0.40.0_release.py +0 -1
  827. zenml/zen_stores/migrations/versions/0.40.1_release.py +0 -1
  828. zenml/zen_stores/migrations/versions/0.40.2_release.py +0 -1
  829. zenml/zen_stores/migrations/versions/0.40.3_release.py +0 -1
  830. zenml/zen_stores/migrations/versions/0.41.0_release.py +0 -1
  831. zenml/zen_stores/migrations/versions/0.42.0_release.py +0 -1
  832. zenml/zen_stores/migrations/versions/0.42.1_release.py +0 -1
  833. zenml/zen_stores/migrations/versions/0.43.0_release.py +0 -1
  834. zenml/zen_stores/migrations/versions/0.44.0_release.py +0 -1
  835. zenml/zen_stores/migrations/versions/0.44.1_release.py +0 -1
  836. zenml/zen_stores/migrations/versions/0.44.2_release.py +0 -1
  837. zenml/zen_stores/migrations/versions/0.44.3_release.py +0 -1
  838. zenml/zen_stores/migrations/versions/0.45.0_release.py +0 -1
  839. zenml/zen_stores/migrations/versions/0.45.1_release_0_45_1.py +0 -1
  840. zenml/zen_stores/migrations/versions/0.45.2_release.py +0 -1
  841. zenml/zen_stores/migrations/versions/0.45.3_release.py +0 -1
  842. zenml/zen_stores/migrations/versions/0.45.4_release.py +0 -1
  843. zenml/zen_stores/migrations/versions/0.45.5_release.py +0 -1
  844. zenml/zen_stores/migrations/versions/0.45.6_release.py +0 -1
  845. zenml/zen_stores/migrations/versions/0.46.0_release.py +0 -1
  846. zenml/zen_stores/migrations/versions/0.46.1_release.py +0 -1
  847. zenml/zen_stores/migrations/versions/0.47.0_release.py +0 -1
  848. zenml/zen_stores/migrations/versions/0.50.0_release.py +0 -1
  849. zenml/zen_stores/migrations/versions/0.51.0_release.py +0 -1
  850. zenml/zen_stores/migrations/versions/0.52.0_release.py +0 -1
  851. zenml/zen_stores/migrations/versions/0.53.0_release.py +0 -1
  852. zenml/zen_stores/migrations/versions/0.53.1_release.py +0 -1
  853. zenml/zen_stores/migrations/versions/0.54.0_release.py +0 -1
  854. zenml/zen_stores/migrations/versions/0.54.1_release.py +0 -1
  855. zenml/zen_stores/migrations/versions/0.55.0_release.py +0 -1
  856. zenml/zen_stores/migrations/versions/0.55.1_release.py +23 -0
  857. zenml/zen_stores/migrations/versions/0.55.2_release.py +23 -0
  858. zenml/zen_stores/migrations/versions/0.55.3_release.py +23 -0
  859. zenml/zen_stores/migrations/versions/0.55.4_release.py +23 -0
  860. zenml/zen_stores/migrations/versions/0.55.5_release.py +23 -0
  861. zenml/zen_stores/migrations/versions/0.56.0_release.py +23 -0
  862. zenml/zen_stores/migrations/versions/0.56.1_release.py +23 -0
  863. zenml/zen_stores/migrations/versions/0.56.2_release.py +23 -0
  864. zenml/zen_stores/migrations/versions/0.56.3_release.py +23 -0
  865. zenml/zen_stores/migrations/versions/0.56.4_release.py +23 -0
  866. zenml/zen_stores/migrations/versions/0.57.0.rc1_release.py +23 -0
  867. zenml/zen_stores/migrations/versions/0.57.0.rc2_release.py +23 -0
  868. zenml/zen_stores/migrations/versions/0.57.0_release.py +23 -0
  869. zenml/zen_stores/migrations/versions/0.57.1_release.py +23 -0
  870. zenml/zen_stores/migrations/versions/0.58.0_release.py +23 -0
  871. zenml/zen_stores/migrations/versions/0.58.1_release.py +23 -0
  872. zenml/zen_stores/migrations/versions/0.58.2_release.py +23 -0
  873. zenml/zen_stores/migrations/versions/0.60.0_release.py +23 -0
  874. zenml/zen_stores/migrations/versions/0.61.0_release.py +23 -0
  875. zenml/zen_stores/migrations/versions/0.62.0_release.py +23 -0
  876. zenml/zen_stores/migrations/versions/0.63.0_release.py +23 -0
  877. zenml/zen_stores/migrations/versions/0.64.0_release.py +23 -0
  878. zenml/zen_stores/migrations/versions/0.65.0_release.py +23 -0
  879. zenml/zen_stores/migrations/versions/0.66.0_release.py +23 -0
  880. zenml/zen_stores/migrations/versions/0.67.0_release.py +23 -0
  881. zenml/zen_stores/migrations/versions/0.68.0_release.py +23 -0
  882. zenml/zen_stores/migrations/versions/0.68.1_release.py +23 -0
  883. zenml/zen_stores/migrations/versions/0.70.0_release.py +23 -0
  884. zenml/zen_stores/migrations/versions/0.71.0_release.py +23 -0
  885. zenml/zen_stores/migrations/versions/0.72.0_release.py +23 -0
  886. zenml/zen_stores/migrations/versions/026d4577b6a0_add_code_path.py +39 -0
  887. zenml/zen_stores/migrations/versions/03742aa7fdd7_add_secrets.py +1 -0
  888. zenml/zen_stores/migrations/versions/0701da9951a0_added_service_table.py +94 -0
  889. zenml/zen_stores/migrations/versions/0b06faa59c93_add_service_connectors.py +1 -0
  890. zenml/zen_stores/migrations/versions/0d707865f404_adding_labels_to_stacks.py +30 -0
  891. zenml/zen_stores/migrations/versions/0e4735b23577_increase_pipeline_spec_field_length.py +1 -0
  892. zenml/zen_stores/migrations/versions/1041bc644e0d_remove_secrets_manager.py +6 -3
  893. zenml/zen_stores/migrations/versions/10a907dad202_delete_mlmd_tables.py +2 -1
  894. zenml/zen_stores/migrations/versions/14d687c8fa1c_rename_model_config_to_model_version.py +1 -0
  895. zenml/zen_stores/migrations/versions/19f27d5b234e_add_build_and_deployment_tables.py +1 -0
  896. zenml/zen_stores/migrations/versions/1a9a9d2a836d_admin_users.py +56 -0
  897. zenml/zen_stores/migrations/versions/1ac1b9c04da1_make_secrets_values_optional.py +1 -0
  898. zenml/zen_stores/migrations/versions/1cb6477f72d6_move_artifact_save_type.py +99 -0
  899. zenml/zen_stores/migrations/versions/1d74e596abb8_add_run_once_start_time_to_schedule.py +36 -0
  900. zenml/zen_stores/migrations/versions/1d8f30c54477_migrate_to_new_.py +124 -0
  901. zenml/zen_stores/migrations/versions/248dfd320b68_update_size_of_flavor_config_schema.py +1 -0
  902. zenml/zen_stores/migrations/versions/25155145c545_separate_actions_and_triggers.py +228 -0
  903. zenml/zen_stores/migrations/versions/26351d482b9e_add_step_run_unique_constraint.py +37 -0
  904. zenml/zen_stores/migrations/versions/26b776ad583e_redesign_artifacts.py +9 -10
  905. zenml/zen_stores/migrations/versions/2d201872e23c_remove_db_dependency_loop.py +29 -0
  906. zenml/zen_stores/migrations/versions/37835ce041d2_optimizing_database.py +4 -3
  907. zenml/zen_stores/migrations/versions/389046140cad_data_versioning.py +1 -0
  908. zenml/zen_stores/migrations/versions/3944116bbd56_rename_project_to_workspace.py +1 -0
  909. zenml/zen_stores/migrations/versions/3b68abe58f44_add_model_watchtower_entities.py +1 -0
  910. zenml/zen_stores/migrations/versions/3c5a367730c2_add_environment_info_to_runs.py +1 -0
  911. zenml/zen_stores/migrations/versions/3dcc5d20e82f_add_last_user_activity.py +51 -0
  912. zenml/zen_stores/migrations/versions/43a86093b60e_add_labels_for_stack_components.py +1 -0
  913. zenml/zen_stores/migrations/versions/46506f72f0ed_add_server_settings.py +123 -0
  914. zenml/zen_stores/migrations/versions/479103df60b6_add_triggers.py +162 -0
  915. zenml/zen_stores/migrations/versions/4a3087070f4e_add_step_source_code.py +1 -0
  916. zenml/zen_stores/migrations/versions/4c41c0ca42db_add_code_repository_table.py +1 -0
  917. zenml/zen_stores/migrations/versions/4d688d8f7aff_rename_model_version_to_model.py +1 -0
  918. zenml/zen_stores/migrations/versions/4e1972485075_endpoint_artifact_deployment_artifact.py +1 -0
  919. zenml/zen_stores/migrations/versions/4f66af55fbb9_rename_model_config_model_to_model_.py +1 -0
  920. zenml/zen_stores/migrations/versions/5330ba58bf20_rename_tables_and_foreign_keys.py +8 -9
  921. zenml/zen_stores/migrations/versions/5994f9ad0489_introduce_role_permissions.py +4 -2
  922. zenml/zen_stores/migrations/versions/5cc3f41cf048_add_save_models_to_registry.py +1 -0
  923. zenml/zen_stores/migrations/versions/6119cd9b93c2_tags_table.py +1 -0
  924. zenml/zen_stores/migrations/versions/623a234c11f5_add_sdk_docs_url_to_flavors.py +1 -0
  925. zenml/zen_stores/migrations/versions/6917bce75069_add_pipeline_run_unique_constraint.py +5 -4
  926. zenml/zen_stores/migrations/versions/6a28c4fd0ef2_add_caching_info.py +1 -0
  927. zenml/zen_stores/migrations/versions/6f707b385dc1_fix_model_artifacts.py +1 -0
  928. zenml/zen_stores/migrations/versions/722392c91006_make_is_service_account_mandatory.py +1 -0
  929. zenml/zen_stores/migrations/versions/72675226b2de_unique_users.py +31 -0
  930. zenml/zen_stores/migrations/versions/72722dee4686_track_server_version.py +1 -0
  931. zenml/zen_stores/migrations/versions/7280c14811d6_use_text_type.py +1 -0
  932. zenml/zen_stores/migrations/versions/728c6369cfaa_add_name_column_to_input_artifact_pk.py +4 -2
  933. zenml/zen_stores/migrations/versions/729263e47b55_fix_external_input_artifacts.py +1 -0
  934. zenml/zen_stores/migrations/versions/743ec82b1b3c_update_size_of_build_images.py +3 -2
  935. zenml/zen_stores/migrations/versions/7500f434b71c_remove_shared_columns.py +4 -2
  936. zenml/zen_stores/migrations/versions/76a7b9451ccd_add_build_template_deployment_id.py +52 -0
  937. zenml/zen_stores/migrations/versions/7834208cc3f6_artifact_project_scoping.py +9 -7
  938. zenml/zen_stores/migrations/versions/7b651bf6822e_track_secrets_in_db.py +7 -7
  939. zenml/zen_stores/migrations/versions/7d1919bb1ef0_add_run_templates.py +100 -0
  940. zenml/zen_stores/migrations/versions/7e4a481d17f7_add_identity_table.py +3 -2
  941. zenml/zen_stores/migrations/versions/7f603e583dd7_fixed_migration.py +2 -1
  942. zenml/zen_stores/migrations/versions/86fa52918b54_remove_teams_and_roles.py +1 -0
  943. zenml/zen_stores/migrations/versions/8a64fbfecda0_add_num_outputs_to_run_step.py +1 -0
  944. zenml/zen_stores/migrations/versions/8ed03137cacc_polymorthic_run_metadata.py +1 -0
  945. zenml/zen_stores/migrations/versions/904464ea4041_add_pipeline_model_run_unique_constraints.py +192 -0
  946. zenml/zen_stores/migrations/versions/909550c7c4da_remove_user_hub_token.py +36 -0
  947. zenml/zen_stores/migrations/versions/93cbda80a732_add_service_accounts.py +1 -0
  948. zenml/zen_stores/migrations/versions/979eff8fc4b1_add_code_repo_description_and_logo_url.py +1 -0
  949. zenml/zen_stores/migrations/versions/9971237fa937_artifact_visualizations.py +1 -0
  950. zenml/zen_stores/migrations/versions/9d8020441014_increase_step_configuration_length.py +1 -0
  951. zenml/zen_stores/migrations/versions/a1237ba94fd8_add_model_version_producer_run_unique_.py +68 -0
  952. zenml/zen_stores/migrations/versions/a39c4184c8ce_remove_secrets_manager_flavors.py +3 -2
  953. zenml/zen_stores/migrations/versions/a91762e6be36_artifact_version_table.py +5 -4
  954. zenml/zen_stores/migrations/versions/ade72effebaf_added_logs_table.py +1 -0
  955. zenml/zen_stores/migrations/versions/alembic_start.py +2 -1
  956. zenml/zen_stores/migrations/versions/b4eccf34dfa3_add_hub_token_to_user_model.py +1 -0
  957. zenml/zen_stores/migrations/versions/b4fca5241eea_migrate_onboarding_state.py +167 -0
  958. zenml/zen_stores/migrations/versions/b557b2871693_update_step_run_input_types.py +33 -0
  959. zenml/zen_stores/migrations/versions/b59aa68fdb1f_simplify_pipelines.py +139 -0
  960. zenml/zen_stores/migrations/versions/b73bc71f1106_remove_component_spec_path.py +36 -0
  961. zenml/zen_stores/migrations/versions/bf2120261b5a_add_configured_model_version_id.py +74 -0
  962. zenml/zen_stores/migrations/versions/c1b18cec3a48_increase_length_on_flavor_config_schema.py +1 -0
  963. zenml/zen_stores/migrations/versions/c22561cbb3a9_add_artifact_unique_constraints.py +86 -0
  964. zenml/zen_stores/migrations/versions/cc269488e5a9_separate_run_metadata.py +135 -0
  965. zenml/zen_stores/migrations/versions/cc9894cb58aa_add_user_metadata.py +41 -0
  966. zenml/zen_stores/migrations/versions/ccd68b7825ae_add_status_to_pipeline_and_step_run.py +1 -0
  967. zenml/zen_stores/migrations/versions/d02b3d3464cf_add_orchestrator_run_id_column.py +1 -0
  968. zenml/zen_stores/migrations/versions/d26471b6fe8f_update_build_filtering.py +1 -0
  969. zenml/zen_stores/migrations/versions/d7b3acf9aa46_create_schedule_table.py +1 -0
  970. zenml/zen_stores/migrations/versions/e1d66d91a099_add_stack_and_component_spec_paths_to_.py +1 -0
  971. zenml/zen_stores/migrations/versions/e5225281b4d3_add_connector_skew_tolerance.py +1 -0
  972. zenml/zen_stores/migrations/versions/e65aa6708ff7_pipeline_versioning.py +1 -0
  973. zenml/zen_stores/migrations/versions/ec0d785ca296_create_run_metadata_table.py +1 -0
  974. zenml/zen_stores/migrations/versions/ec6307720f92_simplify_model_version_links.py +119 -0
  975. zenml/zen_stores/migrations/versions/f3b3964e3a0f_add_oauth_devices.py +1 -0
  976. zenml/zen_stores/migrations/versions/f49904a80aa7_increase_length_of_artifact_table_sources.py +1 -0
  977. zenml/zen_stores/migrations/versions/fbd7f18ced1e_increase_step_run_field_lengths.py +5 -4
  978. zenml/zen_stores/rest_zen_store.py +1315 -304
  979. zenml/zen_stores/schemas/__init__.py +22 -3
  980. zenml/zen_stores/schemas/action_schemas.py +192 -0
  981. zenml/zen_stores/schemas/api_key_schemas.py +23 -10
  982. zenml/zen_stores/schemas/artifact_schemas.py +112 -49
  983. zenml/zen_stores/schemas/artifact_visualization_schemas.py +17 -8
  984. zenml/zen_stores/schemas/base_schemas.py +27 -0
  985. zenml/zen_stores/schemas/code_repository_schemas.py +25 -10
  986. zenml/zen_stores/schemas/component_schemas.py +74 -11
  987. zenml/zen_stores/schemas/constants.py +16 -0
  988. zenml/zen_stores/schemas/device_schemas.py +29 -15
  989. zenml/zen_stores/schemas/event_source_schemas.py +188 -0
  990. zenml/zen_stores/schemas/flavor_schemas.py +19 -9
  991. zenml/zen_stores/schemas/logs_schemas.py +12 -6
  992. zenml/zen_stores/schemas/model_schemas.py +192 -139
  993. zenml/zen_stores/schemas/pipeline_build_schemas.py +16 -16
  994. zenml/zen_stores/schemas/pipeline_deployment_schemas.py +58 -17
  995. zenml/zen_stores/schemas/pipeline_run_schemas.py +170 -35
  996. zenml/zen_stores/schemas/pipeline_schemas.py +51 -33
  997. zenml/zen_stores/schemas/run_metadata_schemas.py +28 -78
  998. zenml/zen_stores/schemas/run_template_schemas.py +267 -0
  999. zenml/zen_stores/schemas/schedule_schema.py +15 -5
  1000. zenml/zen_stores/schemas/secret_schemas.py +18 -10
  1001. zenml/zen_stores/schemas/server_settings_schemas.py +129 -0
  1002. zenml/zen_stores/schemas/service_connector_schemas.py +13 -6
  1003. zenml/zen_stores/schemas/service_schemas.py +258 -0
  1004. zenml/zen_stores/schemas/stack_schemas.py +23 -6
  1005. zenml/zen_stores/schemas/step_run_schemas.py +132 -41
  1006. zenml/zen_stores/schemas/tag_schemas.py +31 -50
  1007. zenml/zen_stores/schemas/trigger_schemas.py +316 -0
  1008. zenml/zen_stores/schemas/user_schemas.py +66 -23
  1009. zenml/zen_stores/schemas/utils.py +112 -0
  1010. zenml/zen_stores/schemas/workspace_schemas.py +36 -19
  1011. zenml/zen_stores/secrets_stores/aws_secrets_store.py +41 -32
  1012. zenml/zen_stores/secrets_stores/azure_secrets_store.py +20 -23
  1013. zenml/zen_stores/secrets_stores/base_secrets_store.py +80 -12
  1014. zenml/zen_stores/secrets_stores/gcp_secrets_store.py +42 -33
  1015. zenml/zen_stores/secrets_stores/hashicorp_secrets_store.py +7 -11
  1016. zenml/zen_stores/secrets_stores/secrets_store_interface.py +1 -0
  1017. zenml/zen_stores/secrets_stores/service_connector_secrets_store.py +15 -8
  1018. zenml/zen_stores/secrets_stores/sql_secrets_store.py +8 -9
  1019. zenml/zen_stores/sql_zen_store.py +4062 -799
  1020. zenml/zen_stores/template_utils.py +263 -0
  1021. zenml/zen_stores/zen_store_interface.py +614 -44
  1022. zenml_nightly-0.72.0.dev20250115.dist-info/METADATA +484 -0
  1023. zenml_nightly-0.72.0.dev20250115.dist-info/RECORD +1292 -0
  1024. {zenml_nightly-0.55.0.dev20240124.dist-info → zenml_nightly-0.72.0.dev20250115.dist-info}/WHEEL +1 -1
  1025. CLA.md +0 -110
  1026. CODE-OF-CONDUCT.md +0 -132
  1027. CONTRIBUTING.md +0 -260
  1028. README.md +0 -304
  1029. RELEASE_NOTES.md +0 -3919
  1030. ROADMAP.md +0 -5
  1031. SECURITY.md +0 -15
  1032. zenml/_hub/client.py +0 -285
  1033. zenml/_hub/constants.py +0 -21
  1034. zenml/_hub/utils.py +0 -80
  1035. zenml/api.py +0 -61
  1036. zenml/cli/hub.py +0 -1115
  1037. zenml/cli/stack_recipes.py +0 -469
  1038. zenml/integrations/gcp/google_cloud_function.py +0 -187
  1039. zenml/integrations/gcp/google_cloud_scheduler.py +0 -83
  1040. zenml/integrations/gcp/orchestrators/vertex_scheduler/main.py +0 -91
  1041. zenml/integrations/gcp/orchestrators/vertex_scheduler/requirements.txt +0 -2
  1042. zenml/integrations/kserve/__init__.py +0 -57
  1043. zenml/integrations/kserve/custom_deployer/zenml_custom_model.py +0 -175
  1044. zenml/integrations/kserve/flavors/kserve_model_deployer_flavor.py +0 -137
  1045. zenml/integrations/kserve/model_deployers/kserve_model_deployer.py +0 -1003
  1046. zenml/integrations/kserve/secret_schemas/secret_schemas.py +0 -65
  1047. zenml/integrations/kserve/services/kserve_deployment.py +0 -596
  1048. zenml/integrations/kserve/steps/__init__.py +0 -22
  1049. zenml/integrations/kserve/steps/kserve_deployer.py +0 -472
  1050. zenml/integrations/kserve/steps/kserve_step_utils.py +0 -293
  1051. zenml/integrations/kubeflow/utils.py +0 -96
  1052. zenml/lineage_graph/lineage_graph.py +0 -244
  1053. zenml/lineage_graph/node/artifact_node.py +0 -52
  1054. zenml/lineage_graph/node/step_node.py +0 -41
  1055. zenml/models/v2/base/internal.py +0 -37
  1056. zenml/models/v2/base/update.py +0 -40
  1057. zenml/models/v2/misc/hub_plugin_models.py +0 -79
  1058. zenml/new/pipelines/deserialization_utils.py +0 -291
  1059. zenml/new/pipelines/model_utils.py +0 -72
  1060. zenml/new/pipelines/pipeline_decorator.py +0 -109
  1061. zenml/new/steps/step_decorator.py +0 -160
  1062. zenml/pipelines/base_pipeline.py +0 -274
  1063. zenml/post_execution/pipeline.py +0 -58
  1064. zenml/post_execution/pipeline_run.py +0 -55
  1065. zenml/services/service_registry.py +0 -214
  1066. zenml/services/terraform/__init__.py +0 -14
  1067. zenml/services/terraform/terraform_service.py +0 -441
  1068. zenml/steps/step_environment.py +0 -108
  1069. zenml/steps/step_output.py +0 -36
  1070. zenml/utils/mlstacks_utils.py +0 -635
  1071. zenml/utils/terraform_utils.py +0 -42
  1072. zenml/zen_server/dashboard/_redirects +0 -1
  1073. zenml/zen_server/dashboard/asset-manifest.json +0 -131
  1074. zenml/zen_server/dashboard/manifest.json +0 -25
  1075. zenml/zen_server/dashboard/precache-manifest.c139638dcc4d9d3425353266447a2fad.js +0 -462
  1076. zenml/zen_server/dashboard/robots.txt +0 -2
  1077. zenml/zen_server/dashboard/service-worker.js +0 -39
  1078. zenml/zen_server/dashboard/static/css/2.5b37d44a.chunk.css +0 -16
  1079. zenml/zen_server/dashboard/static/css/2.5b37d44a.chunk.css.map +0 -1
  1080. zenml/zen_server/dashboard/static/css/main.77e46c35.chunk.css +0 -2
  1081. zenml/zen_server/dashboard/static/css/main.77e46c35.chunk.css.map +0 -1
  1082. zenml/zen_server/dashboard/static/js/2.bb4cef22.chunk.js +0 -3
  1083. zenml/zen_server/dashboard/static/js/2.bb4cef22.chunk.js.LICENSE.txt +0 -95
  1084. zenml/zen_server/dashboard/static/js/2.bb4cef22.chunk.js.map +0 -1
  1085. zenml/zen_server/dashboard/static/js/main.270838b4.chunk.js +0 -2
  1086. zenml/zen_server/dashboard/static/js/main.270838b4.chunk.js.map +0 -1
  1087. zenml/zen_server/dashboard/static/js/runtime-main.bfca2edd.js +0 -2
  1088. zenml/zen_server/dashboard/static/js/runtime-main.bfca2edd.js.map +0 -1
  1089. zenml/zen_server/dashboard/static/media/AlertTriangle.28aee535.svg +0 -5
  1090. zenml/zen_server/dashboard/static/media/ArrowSquareOut.abfb9bc7.svg +0 -5
  1091. zenml/zen_server/dashboard/static/media/Back.86c23a22.svg +0 -4
  1092. zenml/zen_server/dashboard/static/media/BookOpen.5cb101ff.svg +0 -4
  1093. zenml/zen_server/dashboard/static/media/BoundingBox.1eb98717.svg +0 -10
  1094. zenml/zen_server/dashboard/static/media/Burger.9b1c67d7.svg +0 -3
  1095. zenml/zen_server/dashboard/static/media/Cached.2381fb8d.svg +0 -1
  1096. zenml/zen_server/dashboard/static/media/Calendar.356e11c7.svg +0 -3
  1097. zenml/zen_server/dashboard/static/media/ChartBarHorizontal.0247447b.svg +0 -6
  1098. zenml/zen_server/dashboard/static/media/ChartLine.0d79e18d.svg +0 -4
  1099. zenml/zen_server/dashboard/static/media/ChatDots.2e1c9211.svg +0 -6
  1100. zenml/zen_server/dashboard/static/media/Check.dad6beb2.svg +0 -3
  1101. zenml/zen_server/dashboard/static/media/CheckCircleFilled.c19566d0.svg +0 -3
  1102. zenml/zen_server/dashboard/static/media/Checkbox.af50e31e.svg +0 -3
  1103. zenml/zen_server/dashboard/static/media/ChevronDown.f860ce32.svg +0 -3
  1104. zenml/zen_server/dashboard/static/media/ChevronDownLight.6642d756.svg +0 -3
  1105. zenml/zen_server/dashboard/static/media/ChevronLeft.f6edfcdb.svg +0 -3
  1106. zenml/zen_server/dashboard/static/media/CircleCheck.f98fd6ca.svg +0 -1
  1107. zenml/zen_server/dashboard/static/media/Clock.ffc9de95.svg +0 -3
  1108. zenml/zen_server/dashboard/static/media/Close.74e9efbc.svg +0 -5
  1109. zenml/zen_server/dashboard/static/media/CloseWithBorder.6960930a.svg +0 -3
  1110. zenml/zen_server/dashboard/static/media/CloseWithoutBorder.cd6f71df.svg +0 -3
  1111. zenml/zen_server/dashboard/static/media/CloudArrowUp.0aecb235.svg +0 -6
  1112. zenml/zen_server/dashboard/static/media/Code.ef0f33b5.svg +0 -3
  1113. zenml/zen_server/dashboard/static/media/Config.0be63f8a.svg +0 -1
  1114. zenml/zen_server/dashboard/static/media/Connector.9fd46ef1.svg +0 -10
  1115. zenml/zen_server/dashboard/static/media/Copy.36e2112a.svg +0 -1
  1116. zenml/zen_server/dashboard/static/media/Dashboard.d05787e0.svg +0 -3
  1117. zenml/zen_server/dashboard/static/media/Data.b1c3b5f8.svg +0 -3
  1118. zenml/zen_server/dashboard/static/media/Delete.3c361b28.svg +0 -8
  1119. zenml/zen_server/dashboard/static/media/Docs.7541d478.svg +0 -7
  1120. zenml/zen_server/dashboard/static/media/Download.fba04d87.svg +0 -5
  1121. zenml/zen_server/dashboard/static/media/Edit.490eb294.svg +0 -6
  1122. zenml/zen_server/dashboard/static/media/EmptyRightArrow.23749d01.svg +0 -3
  1123. zenml/zen_server/dashboard/static/media/Example.6396cd37.svg +0 -5
  1124. zenml/zen_server/dashboard/static/media/Extension.1394cd4a.svg +0 -3
  1125. zenml/zen_server/dashboard/static/media/Eye.d9e4ee62.svg +0 -4
  1126. zenml/zen_server/dashboard/static/media/Failed.0213c1a0.svg +0 -1
  1127. zenml/zen_server/dashboard/static/media/FileText.1f15bacd.svg +0 -7
  1128. zenml/zen_server/dashboard/static/media/Filter.ab6b9c0d.svg +0 -3
  1129. zenml/zen_server/dashboard/static/media/Folders.12b29887.svg +0 -5
  1130. zenml/zen_server/dashboard/static/media/FunnelFill.6df4c143.svg +0 -3
  1131. zenml/zen_server/dashboard/static/media/GitCommit.7dd9c2aa.svg +0 -5
  1132. zenml/zen_server/dashboard/static/media/GitHub_Logo.cefc2023.png +0 -0
  1133. zenml/zen_server/dashboard/static/media/Graph.2c63a892.svg +0 -11
  1134. zenml/zen_server/dashboard/static/media/History.08329240.svg +0 -3
  1135. zenml/zen_server/dashboard/static/media/Home.0843b0d5.svg +0 -3
  1136. zenml/zen_server/dashboard/static/media/ImageBuilder.ea762d9c.svg +0 -6
  1137. zenml/zen_server/dashboard/static/media/InProgress.304a0edc.svg +0 -1
  1138. zenml/zen_server/dashboard/static/media/Info.9fe10c5c.svg +0 -3
  1139. zenml/zen_server/dashboard/static/media/KeyboardReturn.491afbe3.svg +0 -3
  1140. zenml/zen_server/dashboard/static/media/Link.72bbb55d.svg +0 -4
  1141. zenml/zen_server/dashboard/static/media/Lock.30f5e1fe.svg +0 -5
  1142. zenml/zen_server/dashboard/static/media/Lock2.a769ea52.svg +0 -3
  1143. zenml/zen_server/dashboard/static/media/LockKey.92f21621.svg +0 -6
  1144. zenml/zen_server/dashboard/static/media/Logs.8bf4d005.svg +0 -5
  1145. zenml/zen_server/dashboard/static/media/MinusCircle.4188f418.svg +0 -4
  1146. zenml/zen_server/dashboard/static/media/ModelRegistry.f0de050a.svg +0 -6
  1147. zenml/zen_server/dashboard/static/media/MultiUser.a2ba7c67.svg +0 -10
  1148. zenml/zen_server/dashboard/static/media/PaginationFirst.92628634.svg +0 -4
  1149. zenml/zen_server/dashboard/static/media/PaginationLast.00d3c732.svg +0 -4
  1150. zenml/zen_server/dashboard/static/media/PaginationNext.86158845.svg +0 -3
  1151. zenml/zen_server/dashboard/static/media/PaginationPrev.60c18a88.svg +0 -3
  1152. zenml/zen_server/dashboard/static/media/Pen.f2d831d4.svg +0 -6
  1153. zenml/zen_server/dashboard/static/media/PhotoCamera.179d6d4c.svg +0 -3
  1154. zenml/zen_server/dashboard/static/media/Pipeline.30d298b0.svg +0 -7
  1155. zenml/zen_server/dashboard/static/media/Plus.5aa1c16b.svg +0 -3
  1156. zenml/zen_server/dashboard/static/media/PlusCircle.92d860dd.svg +0 -5
  1157. zenml/zen_server/dashboard/static/media/Repositories.71a36b8c.svg +0 -3
  1158. zenml/zen_server/dashboard/static/media/RightArrow.f30d3871.svg +0 -29
  1159. zenml/zen_server/dashboard/static/media/Rocket.63bf7b9d.svg +0 -3
  1160. zenml/zen_server/dashboard/static/media/RocketLaunch.1bff2b59.svg +0 -6
  1161. zenml/zen_server/dashboard/static/media/Rubik-Medium.c87313aa.ttf +0 -0
  1162. zenml/zen_server/dashboard/static/media/Rubik-Regular.b3d0902b.ttf +0 -0
  1163. zenml/zen_server/dashboard/static/media/Run.daec4fb2.svg +0 -6
  1164. zenml/zen_server/dashboard/static/media/Search.d1afcce5.svg +0 -4
  1165. zenml/zen_server/dashboard/static/media/Settings.59ca73ae.svg +0 -4
  1166. zenml/zen_server/dashboard/static/media/Share2.46c3ff66.svg +0 -3
  1167. zenml/zen_server/dashboard/static/media/SignOut.6aa718c5.svg +0 -3
  1168. zenml/zen_server/dashboard/static/media/SimplePlus.5cf7ec20.svg +0 -3
  1169. zenml/zen_server/dashboard/static/media/SingleUser.bef3a095.svg +0 -4
  1170. zenml/zen_server/dashboard/static/media/SourceCodePro-Regular.b484b32f.ttf +0 -0
  1171. zenml/zen_server/dashboard/static/media/Stack.19b604ac.svg +0 -5
  1172. zenml/zen_server/dashboard/static/media/StackComponent.b1ba90b5.svg +0 -4
  1173. zenml/zen_server/dashboard/static/media/Star.f0c25022.svg +0 -9
  1174. zenml/zen_server/dashboard/static/media/StarOutline.94ca8cd9.svg +0 -3
  1175. zenml/zen_server/dashboard/static/media/Storefront.4b4796fe.svg +0 -3
  1176. zenml/zen_server/dashboard/static/media/Stream.543e3039.svg +0 -3
  1177. zenml/zen_server/dashboard/static/media/SupportAgent.510ddf1f.svg +0 -8
  1178. zenml/zen_server/dashboard/static/media/Table.77033750.svg +0 -6
  1179. zenml/zen_server/dashboard/static/media/Tool.d5785486.svg +0 -3
  1180. zenml/zen_server/dashboard/static/media/UserPlus.741a99d7.svg +0 -6
  1181. zenml/zen_server/dashboard/static/media/Verified.0625b2a0.svg +0 -3
  1182. zenml/zen_server/dashboard/static/media/addNew.4fb6c939.svg +0 -8
  1183. zenml/zen_server/dashboard/static/media/arrowClose.cbd53f3f.svg +0 -3
  1184. zenml/zen_server/dashboard/static/media/arrowOpen.6ceef0af.svg +0 -3
  1185. zenml/zen_server/dashboard/static/media/check_small.30bc0138.svg +0 -3
  1186. zenml/zen_server/dashboard/static/media/circleArrowSideClose.98d6013e.svg +0 -18
  1187. zenml/zen_server/dashboard/static/media/circleArrowSideOpen.63653df6.svg +0 -18
  1188. zenml/zen_server/dashboard/static/media/image.104fd14b.png +0 -0
  1189. zenml/zen_server/dashboard/static/media/imageAddIcon.e83004a9.svg +0 -7
  1190. zenml/zen_server/dashboard/static/media/logo.93333e5c.svg +0 -1
  1191. zenml/zen_server/dashboard/static/media/logo_small.4204397d.svg +0 -3
  1192. zenml/zen_server/dashboard/static/media/logo_white.d4b4414e.svg +0 -20
  1193. zenml/zen_server/dashboard/static/media/notConnected.5e2c8ea7.svg +0 -8
  1194. zenml/zen_server/dashboard/static/media/plugin-fallback.72c294e6.svg +0 -6
  1195. zenml/zen_server/dashboard/static/media/share.bcd998b0.svg +0 -5
  1196. zenml/zen_server/dashboard/static/media/stars.08a9b19a.svg +0 -8
  1197. zenml/zen_server/deploy/terraform/__init__.py +0 -41
  1198. zenml/zen_server/deploy/terraform/providers/__init__.py +0 -14
  1199. zenml/zen_server/deploy/terraform/providers/aws_provider.py +0 -61
  1200. zenml/zen_server/deploy/terraform/providers/azure_provider.py +0 -59
  1201. zenml/zen_server/deploy/terraform/providers/gcp_provider.py +0 -59
  1202. zenml/zen_server/deploy/terraform/providers/terraform_provider.py +0 -332
  1203. zenml/zen_server/deploy/terraform/recipes/aws/.gitignore +0 -8
  1204. zenml/zen_server/deploy/terraform/recipes/aws/helm.tf +0 -20
  1205. zenml/zen_server/deploy/terraform/recipes/aws/ingress.tf +0 -30
  1206. zenml/zen_server/deploy/terraform/recipes/aws/outputs.tf +0 -14
  1207. zenml/zen_server/deploy/terraform/recipes/aws/printf.cmd +0 -2
  1208. zenml/zen_server/deploy/terraform/recipes/aws/sql.tf +0 -62
  1209. zenml/zen_server/deploy/terraform/recipes/aws/terraform.tf +0 -44
  1210. zenml/zen_server/deploy/terraform/recipes/aws/variables.tf +0 -179
  1211. zenml/zen_server/deploy/terraform/recipes/aws/vpc.tf +0 -47
  1212. zenml/zen_server/deploy/terraform/recipes/aws/zen_server.tf +0 -111
  1213. zenml/zen_server/deploy/terraform/recipes/azure/.gitignore +0 -8
  1214. zenml/zen_server/deploy/terraform/recipes/azure/helm.tf +0 -20
  1215. zenml/zen_server/deploy/terraform/recipes/azure/ingress.tf +0 -30
  1216. zenml/zen_server/deploy/terraform/recipes/azure/key_vault.tf +0 -73
  1217. zenml/zen_server/deploy/terraform/recipes/azure/outputs.tf +0 -14
  1218. zenml/zen_server/deploy/terraform/recipes/azure/printf.cmd +0 -2
  1219. zenml/zen_server/deploy/terraform/recipes/azure/rg.tf +0 -36
  1220. zenml/zen_server/deploy/terraform/recipes/azure/sql.tf +0 -65
  1221. zenml/zen_server/deploy/terraform/recipes/azure/terraform.tf +0 -52
  1222. zenml/zen_server/deploy/terraform/recipes/azure/variables.tf +0 -188
  1223. zenml/zen_server/deploy/terraform/recipes/azure/zen_server.tf +0 -111
  1224. zenml/zen_server/deploy/terraform/recipes/gcp/.gitignore +0 -8
  1225. zenml/zen_server/deploy/terraform/recipes/gcp/helm.tf +0 -20
  1226. zenml/zen_server/deploy/terraform/recipes/gcp/ingress.tf +0 -30
  1227. zenml/zen_server/deploy/terraform/recipes/gcp/outputs.tf +0 -14
  1228. zenml/zen_server/deploy/terraform/recipes/gcp/printf.cmd +0 -2
  1229. zenml/zen_server/deploy/terraform/recipes/gcp/sql.tf +0 -64
  1230. zenml/zen_server/deploy/terraform/recipes/gcp/terraform.tf +0 -44
  1231. zenml/zen_server/deploy/terraform/recipes/gcp/variables.tf +0 -183
  1232. zenml/zen_server/deploy/terraform/recipes/gcp/zen_server.tf +0 -122
  1233. zenml/zen_server/deploy/terraform/terraform_zen_server.py +0 -255
  1234. zenml/zen_server/routers/run_metadata_endpoints.py +0 -97
  1235. zenml_nightly-0.55.0.dev20240124.dist-info/METADATA +0 -438
  1236. zenml_nightly-0.55.0.dev20240124.dist-info/RECORD +0 -1072
  1237. {zenml_nightly-0.55.0.dev20240124.dist-info → zenml_nightly-0.72.0.dev20250115.dist-info}/LICENSE +0 -0
  1238. {zenml_nightly-0.55.0.dev20240124.dist-info → zenml_nightly-0.72.0.dev20250115.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,496 @@
1
+ # Copyright (c) ZenML GmbH 2024. All Rights Reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at:
6
+ #
7
+ # https://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
12
+ # or implied. See the License for the specific language governing
13
+ # permissions and limitations under the License.
14
+ """ZenML Pro client."""
15
+
16
+ from typing import (
17
+ TYPE_CHECKING,
18
+ Any,
19
+ Dict,
20
+ List,
21
+ Optional,
22
+ Type,
23
+ TypeVar,
24
+ Union,
25
+ )
26
+ from uuid import UUID
27
+
28
+ import requests
29
+ from requests.adapters import HTTPAdapter, Retry
30
+
31
+ from zenml.analytics import source_context
32
+ from zenml.exceptions import AuthorizationException
33
+ from zenml.logger import get_logger
34
+ from zenml.login.credentials import APIToken
35
+ from zenml.login.credentials_store import get_credentials_store
36
+ from zenml.login.pro.constants import ZENML_PRO_API_URL
37
+ from zenml.login.pro.models import BaseRestAPIModel
38
+ from zenml.utils.singleton import SingletonMetaClass
39
+ from zenml.zen_server.exceptions import exception_from_response
40
+
41
+ logger = get_logger(__name__)
42
+
43
+ if TYPE_CHECKING:
44
+ from zenml.login.pro.organization.client import OrganizationClient
45
+ from zenml.login.pro.tenant.client import TenantClient
46
+
47
+ # type alias for possible json payloads (the Anys are recursive Json instances)
48
+ Json = Union[Dict[str, Any], List[Any], str, int, float, bool, None]
49
+
50
+
51
+ AnyResponse = TypeVar("AnyResponse", bound=BaseRestAPIModel)
52
+
53
+
54
+ class ZenMLProClient(metaclass=SingletonMetaClass):
55
+ """ZenML Pro client."""
56
+
57
+ _url: str
58
+ _api_token: APIToken
59
+ _session: Optional[requests.Session] = None
60
+ _tenant: Optional["TenantClient"] = None
61
+ _organization: Optional["OrganizationClient"] = None
62
+
63
+ def __init__(
64
+ self, url: Optional[str] = None, api_token: Optional[APIToken] = None
65
+ ) -> None:
66
+ """Initialize the ZenML Pro client.
67
+
68
+ Args:
69
+ url: The URL of the ZenML Pro API server. If not provided, the
70
+ default ZenML Pro API server URL is used.
71
+ api_token: The API token to use for authentication. If not provided,
72
+ the token is fetched from the credentials store.
73
+
74
+ Raises:
75
+ AuthorizationException: If no API token is provided and no token
76
+ is found in the credentials store.
77
+ """
78
+ self._url = url or ZENML_PRO_API_URL
79
+ if api_token is None:
80
+ logger.debug(
81
+ "No ZenML Pro API token provided. Fetching from credentials "
82
+ "store."
83
+ )
84
+ api_token = get_credentials_store().get_token(
85
+ server_url=self._url, allow_expired=True
86
+ )
87
+ if api_token is None:
88
+ raise AuthorizationException(
89
+ "No ZenML Pro API token found. Please run 'zenml login' to "
90
+ "login to ZenML Pro."
91
+ )
92
+
93
+ self._api_token = api_token
94
+
95
+ @property
96
+ def tenant(self) -> "TenantClient":
97
+ """Get the tenant client.
98
+
99
+ Returns:
100
+ The tenant client.
101
+ """
102
+ if self._tenant is None:
103
+ from zenml.login.pro.tenant.client import TenantClient
104
+
105
+ self._tenant = TenantClient(client=self)
106
+ return self._tenant
107
+
108
+ @property
109
+ def organization(self) -> "OrganizationClient":
110
+ """Get the organization client.
111
+
112
+ Returns:
113
+ The organization client.
114
+ """
115
+ if self._organization is None:
116
+ from zenml.login.pro.organization.client import OrganizationClient
117
+
118
+ self._organization = OrganizationClient(client=self)
119
+ return self._organization
120
+
121
+ @property
122
+ def api_token(self) -> str:
123
+ """Get the API token.
124
+
125
+ Returns:
126
+ The API token.
127
+ """
128
+ return self._api_token.access_token
129
+
130
+ def raise_on_expired_api_token(self) -> None:
131
+ """Raise an exception if the API token has expired.
132
+
133
+ Raises:
134
+ AuthorizationException: If the API token has expired.
135
+ """
136
+ if self._api_token and self._api_token.expired:
137
+ raise AuthorizationException(
138
+ "Your ZenML Pro authentication has expired. Please run "
139
+ "'zenml login' to login again."
140
+ )
141
+
142
+ @property
143
+ def session(self) -> requests.Session:
144
+ """Authenticate to the ZenML Pro API server.
145
+
146
+ Returns:
147
+ A requests session with the authentication token.
148
+ """
149
+ # Check if the API token has expired before every call to the server.
150
+ # This prevents unwanted authorization errors from being raised during
151
+ # the call itself.
152
+ self.raise_on_expired_api_token()
153
+ if self._session is None:
154
+ self._session = requests.Session()
155
+ retries = Retry(backoff_factor=0.1, connect=5)
156
+ self._session.mount("https://", HTTPAdapter(max_retries=retries))
157
+ self._session.mount("http://", HTTPAdapter(max_retries=retries))
158
+ self._session.headers.update(
159
+ {"Authorization": "Bearer " + self.api_token}
160
+ )
161
+ logger.debug("Authenticated to ZenML Pro server.")
162
+ return self._session
163
+
164
+ @staticmethod
165
+ def _handle_response(response: requests.Response) -> Json:
166
+ """Handle API response, translating http status codes to Exception.
167
+
168
+ Args:
169
+ response: The response to handle.
170
+
171
+ Returns:
172
+ The parsed response.
173
+
174
+ Raises:
175
+ ValueError: if the response is not in the right format.
176
+ RuntimeError: if an error response is received from the server
177
+ and a more specific exception cannot be determined.
178
+ exc: the exception converted from an error response, if one
179
+ is returned from the server.
180
+ """
181
+ if 200 <= response.status_code < 300:
182
+ try:
183
+ payload: Json = response.json()
184
+ return payload
185
+ except requests.exceptions.JSONDecodeError:
186
+ raise ValueError(
187
+ "Bad response from API. Expected json, got\n"
188
+ f"{response.text}"
189
+ )
190
+ elif response.status_code >= 400:
191
+ exc = exception_from_response(response)
192
+ if exc is not None:
193
+ raise exc
194
+ else:
195
+ raise RuntimeError(
196
+ f"{response.status_code} HTTP Error received from server: "
197
+ f"{response.text}"
198
+ )
199
+ else:
200
+ raise RuntimeError(
201
+ "Error retrieving from API. Got response "
202
+ f"{response.status_code} with body:\n{response.text}"
203
+ )
204
+
205
+ def _request(
206
+ self,
207
+ method: str,
208
+ url: str,
209
+ params: Optional[Dict[str, Any]] = None,
210
+ **kwargs: Any,
211
+ ) -> Json:
212
+ """Make a request to the REST API.
213
+
214
+ Args:
215
+ method: The HTTP method to use.
216
+ url: The URL to request.
217
+ params: The query parameters to pass to the endpoint.
218
+ kwargs: Additional keyword arguments to pass to the request.
219
+
220
+ Returns:
221
+ The parsed response.
222
+
223
+ Raises:
224
+ AuthorizationException: if the request fails due to an expired
225
+ authentication token.
226
+ """
227
+ params = {k: str(v) for k, v in params.items()} if params else {}
228
+
229
+ self.session.headers.update(
230
+ {source_context.name: source_context.get().value}
231
+ )
232
+
233
+ try:
234
+ return self._handle_response(
235
+ self.session.request(
236
+ method,
237
+ url,
238
+ params=params,
239
+ **kwargs,
240
+ )
241
+ )
242
+ except AuthorizationException:
243
+ # Check if this is caused by an expired API token.
244
+ self.raise_on_expired_api_token()
245
+
246
+ # If not, raise the exception.
247
+ raise
248
+
249
+ def get(
250
+ self,
251
+ path: str,
252
+ params: Optional[Dict[str, Any]] = None,
253
+ **kwargs: Any,
254
+ ) -> Json:
255
+ """Make a GET request to the given endpoint path.
256
+
257
+ Args:
258
+ path: The path to the endpoint.
259
+ params: The query parameters to pass to the endpoint.
260
+ kwargs: Additional keyword arguments to pass to the request.
261
+
262
+ Returns:
263
+ The response body.
264
+ """
265
+ logger.debug(f"Sending GET request to {path}...")
266
+ return self._request(
267
+ "GET",
268
+ self._url + path,
269
+ params=params,
270
+ **kwargs,
271
+ )
272
+
273
+ def delete(
274
+ self,
275
+ path: str,
276
+ params: Optional[Dict[str, Any]] = None,
277
+ **kwargs: Any,
278
+ ) -> Json:
279
+ """Make a DELETE request to the given endpoint path.
280
+
281
+ Args:
282
+ path: The path to the endpoint.
283
+ params: The query parameters to pass to the endpoint.
284
+ kwargs: Additional keyword arguments to pass to the request.
285
+
286
+ Returns:
287
+ The response body.
288
+ """
289
+ logger.debug(f"Sending DELETE request to {path}...")
290
+ return self._request(
291
+ "DELETE",
292
+ self._url + path,
293
+ params=params,
294
+ **kwargs,
295
+ )
296
+
297
+ def post(
298
+ self,
299
+ path: str,
300
+ body: BaseRestAPIModel,
301
+ params: Optional[Dict[str, Any]] = None,
302
+ **kwargs: Any,
303
+ ) -> Json:
304
+ """Make a POST request to the given endpoint path.
305
+
306
+ Args:
307
+ path: The path to the endpoint.
308
+ body: The body to send.
309
+ params: The query parameters to pass to the endpoint.
310
+ kwargs: Additional keyword arguments to pass to the request.
311
+
312
+ Returns:
313
+ The response body.
314
+ """
315
+ logger.debug(f"Sending POST request to {path}...")
316
+ return self._request(
317
+ "POST",
318
+ self._url + path,
319
+ json=body.model_dump(mode="json"),
320
+ params=params,
321
+ **kwargs,
322
+ )
323
+
324
+ def put(
325
+ self,
326
+ path: str,
327
+ body: Optional[BaseRestAPIModel] = None,
328
+ params: Optional[Dict[str, Any]] = None,
329
+ **kwargs: Any,
330
+ ) -> Json:
331
+ """Make a PUT request to the given endpoint path.
332
+
333
+ Args:
334
+ path: The path to the endpoint.
335
+ body: The body to send.
336
+ params: The query parameters to pass to the endpoint.
337
+ kwargs: Additional keyword arguments to pass to the request.
338
+
339
+ Returns:
340
+ The response body.
341
+ """
342
+ logger.debug(f"Sending PUT request to {path}...")
343
+ json = (
344
+ body.model_dump(mode="json", exclude_unset=True) if body else None
345
+ )
346
+ return self._request(
347
+ "PUT",
348
+ self._url + path,
349
+ json=json,
350
+ params=params,
351
+ **kwargs,
352
+ )
353
+
354
+ def patch(
355
+ self,
356
+ path: str,
357
+ body: Optional[BaseRestAPIModel] = None,
358
+ params: Optional[Dict[str, Any]] = None,
359
+ **kwargs: Any,
360
+ ) -> Json:
361
+ """Make a PATCH request to the given endpoint path.
362
+
363
+ Args:
364
+ path: The path to the endpoint.
365
+ body: The body to send.
366
+ params: The query parameters to pass to the endpoint.
367
+ kwargs: Additional keyword arguments to pass to the request.
368
+
369
+ Returns:
370
+ The response body.
371
+ """
372
+ logger.debug(f"Sending PATCH request to {path}...")
373
+ json = (
374
+ body.model_dump(mode="json", exclude_unset=True) if body else None
375
+ )
376
+ return self._request(
377
+ "PATCH",
378
+ self._url + path,
379
+ json=json,
380
+ params=params,
381
+ **kwargs,
382
+ )
383
+
384
+ def _create_resource(
385
+ self,
386
+ resource: BaseRestAPIModel,
387
+ response_model: Type[AnyResponse],
388
+ route: str,
389
+ params: Optional[Dict[str, Any]] = None,
390
+ ) -> AnyResponse:
391
+ """Create a new resource.
392
+
393
+ Args:
394
+ resource: The resource to create.
395
+ route: The resource REST API route to use.
396
+ response_model: Optional model to use to deserialize the response
397
+ body. If not provided, the resource class itself will be used.
398
+ params: Optional query parameters to pass to the endpoint.
399
+
400
+ Returns:
401
+ The created resource.
402
+ """
403
+ response_body = self.post(f"{route}", body=resource, params=params)
404
+
405
+ return response_model.model_validate(response_body)
406
+
407
+ def _get_resource(
408
+ self,
409
+ resource_id: Union[str, int, UUID],
410
+ route: str,
411
+ response_model: Type[AnyResponse],
412
+ **params: Any,
413
+ ) -> AnyResponse:
414
+ """Retrieve a single resource.
415
+
416
+ Args:
417
+ resource_id: The ID of the resource to retrieve.
418
+ route: The resource REST API route to use.
419
+ response_model: Model to use to serialize the response body.
420
+ params: Optional query parameters to pass to the endpoint.
421
+
422
+ Returns:
423
+ The retrieved resource.
424
+ """
425
+ # leave out filter params that are not supplied
426
+ params = dict(filter(lambda x: x[1] is not None, params.items()))
427
+ body = self.get(f"{route}/{str(resource_id)}", params=params)
428
+ return response_model.model_validate(body)
429
+
430
+ def _list_resources(
431
+ self,
432
+ route: str,
433
+ response_model: Type[AnyResponse],
434
+ **params: Any,
435
+ ) -> List[AnyResponse]:
436
+ """Retrieve a list of resources filtered by some criteria.
437
+
438
+ Args:
439
+ route: The resource REST API route to use.
440
+ response_model: Model to use to serialize the response body.
441
+ params: Filter parameters to use in the query.
442
+
443
+ Returns:
444
+ List of retrieved resources matching the filter criteria.
445
+
446
+ Raises:
447
+ ValueError: If the value returned by the server is not a list.
448
+ """
449
+ # leave out filter params that are not supplied
450
+ params = dict(filter(lambda x: x[1] is not None, params.items()))
451
+ body = self.get(f"{route}", params=params)
452
+ if not isinstance(body, list):
453
+ raise ValueError(
454
+ f"Bad API Response. Expected list, got {type(body)}"
455
+ )
456
+ return [response_model.model_validate(entry) for entry in body]
457
+
458
+ def _update_resource(
459
+ self,
460
+ resource_id: Union[str, int, UUID],
461
+ resource_update: BaseRestAPIModel,
462
+ response_model: Type[AnyResponse],
463
+ route: str,
464
+ **params: Any,
465
+ ) -> AnyResponse:
466
+ """Update an existing resource.
467
+
468
+ Args:
469
+ resource_id: The id of the resource to update.
470
+ resource_update: The resource update.
471
+ response_model: Optional model to use to deserialize the response
472
+ body. If not provided, the resource class itself will be used.
473
+ route: The resource REST API route to use.
474
+ params: Optional query parameters to pass to the endpoint.
475
+
476
+ Returns:
477
+ The updated resource.
478
+ """
479
+ # leave out filter params that are not supplied
480
+ params = dict(filter(lambda x: x[1] is not None, params.items()))
481
+ response_body = self.put(
482
+ f"{route}/{str(resource_id)}", body=resource_update, params=params
483
+ )
484
+
485
+ return response_model.model_validate(response_body)
486
+
487
+ def _delete_resource(
488
+ self, resource_id: Union[str, UUID], route: str
489
+ ) -> None:
490
+ """Delete a resource.
491
+
492
+ Args:
493
+ resource_id: The ID of the resource to delete.
494
+ route: The resource REST API route to use.
495
+ """
496
+ self.delete(f"{route}/{str(resource_id)}")
@@ -0,0 +1,34 @@
1
+ # Copyright (c) ZenML GmbH 2024. All Rights Reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at:
6
+ #
7
+ # https://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
12
+ # or implied. See the License for the specific language governing
13
+ # permissions and limitations under the License.
14
+ """ZenML Pro login constants."""
15
+
16
+ import os
17
+
18
+ ENV_ZENML_PRO_API_URL = "ZENML_PRO_API_URL"
19
+ DEFAULT_ZENML_PRO_API_URL = "https://cloudapi.zenml.io"
20
+
21
+ ZENML_PRO_API_URL = os.getenv(
22
+ ENV_ZENML_PRO_API_URL, default=DEFAULT_ZENML_PRO_API_URL
23
+ )
24
+
25
+ ENV_ZENML_PRO_URL = "ZENML_PRO_URL"
26
+ DEFAULT_ZENML_PRO_URL = "https://cloud.zenml.io"
27
+
28
+ ZENML_PRO_URL = os.getenv(ENV_ZENML_PRO_URL, default=DEFAULT_ZENML_PRO_URL)
29
+
30
+ ENV_ZENML_PRO_SERVER_SUBDOMAIN = "ZENML_PRO_SERVER_SUBDOMAIN"
31
+ DEFAULT_ZENML_PRO_SERVER_SUBDOMAIN = "cloudinfra.zenml.io"
32
+ ZENML_PRO_SERVER_SUBDOMAIN = os.getenv(
33
+ ENV_ZENML_PRO_SERVER_SUBDOMAIN, default=DEFAULT_ZENML_PRO_SERVER_SUBDOMAIN
34
+ )
@@ -1,4 +1,4 @@
1
- # Copyright (c) ZenML GmbH 2022. All Rights Reserved.
1
+ # Copyright (c) ZenML GmbH 2024. All Rights Reserved.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -11,17 +11,15 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
12
12
  # or implied. See the License for the specific language governing
13
13
  # permissions and limitations under the License.
14
- """SQLModel implementation for the server information table."""
14
+ """ZenML Pro base models."""
15
15
 
16
+ from pydantic import BaseModel, ConfigDict
16
17
 
17
- from uuid import UUID
18
18
 
19
- from sqlmodel import Field, SQLModel
19
+ class BaseRestAPIModel(BaseModel):
20
+ """Base class for all REST API models."""
20
21
 
21
-
22
- class IdentitySchema(SQLModel, table=True):
23
- """SQL Model for the client/server identity."""
24
-
25
- __tablename__ = "identity"
26
-
27
- id: UUID = Field(primary_key=True)
22
+ model_config = ConfigDict(
23
+ # Allow extra attributes to allow compatibility with future versions
24
+ extra="allow",
25
+ )
@@ -0,0 +1,14 @@
1
+ # Copyright (c) ZenML GmbH 2024. All Rights Reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at:
6
+ #
7
+ # https://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
12
+ # or implied. See the License for the specific language governing
13
+ # permissions and limitations under the License.
14
+ """ZenML Pro organization client."""
@@ -0,0 +1,79 @@
1
+ # Copyright (c) ZenML GmbH 2024. All Rights Reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at:
6
+ #
7
+ # https://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
12
+ # or implied. See the License for the specific language governing
13
+ # permissions and limitations under the License.
14
+ """ZenML Pro organization client."""
15
+
16
+ from typing import List, Union
17
+ from uuid import UUID
18
+
19
+ from zenml.logger import get_logger
20
+ from zenml.login.pro.client import ZenMLProClient
21
+ from zenml.login.pro.organization.models import OrganizationRead
22
+
23
+ logger = get_logger(__name__)
24
+
25
+ ORGANIZATIONS_ROUTE = "/organizations"
26
+
27
+
28
+ class OrganizationClient:
29
+ """Organization management client."""
30
+
31
+ def __init__(
32
+ self,
33
+ client: ZenMLProClient,
34
+ ):
35
+ """Initialize the organization client.
36
+
37
+ Args:
38
+ client: ZenML Pro client.
39
+ """
40
+ self.client = client
41
+
42
+ def get(
43
+ self,
44
+ id_or_name: Union[UUID, str],
45
+ ) -> OrganizationRead:
46
+ """Get an organization by id or name.
47
+
48
+ Args:
49
+ id_or_name: Id or name of the organization to retrieve.
50
+
51
+ Returns:
52
+ An organization.
53
+ """
54
+ return self.client._get_resource(
55
+ resource_id=id_or_name,
56
+ route=ORGANIZATIONS_ROUTE,
57
+ response_model=OrganizationRead,
58
+ )
59
+
60
+ async def list(
61
+ self,
62
+ offset: int = 0,
63
+ limit: int = 20,
64
+ ) -> List[OrganizationRead]:
65
+ """List organizations.
66
+
67
+ Args:
68
+ offset: Query offset.
69
+ limit: Query limit.
70
+
71
+ Returns:
72
+ List of organizations.
73
+ """
74
+ return self.client._list_resources(
75
+ route=ORGANIZATIONS_ROUTE,
76
+ response_model=OrganizationRead,
77
+ offset=offset,
78
+ limit=limit,
79
+ )
@@ -1,4 +1,4 @@
1
- # Copyright (c) ZenML GmbH 2022. All Rights Reserved.
1
+ # Copyright (c) ZenML GmbH 2024. All Rights Reserved.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -11,21 +11,22 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
12
12
  # or implied. See the License for the specific language governing
13
13
  # permissions and limitations under the License.
14
- """Base class for all lineage nodes."""
14
+ """ZenML Pro organization models."""
15
15
 
16
- from pydantic import BaseModel
16
+ from datetime import datetime
17
+ from typing import Optional
18
+ from uuid import UUID
17
19
 
20
+ from zenml.login.pro.models import BaseRestAPIModel
18
21
 
19
- class BaseNodeDetails(BaseModel):
20
- """Captures all details for the node."""
21
22
 
22
- execution_id: str
23
- name: str
23
+ class OrganizationRead(BaseRestAPIModel):
24
+ """Model for viewing organizations."""
24
25
 
26
+ id: UUID
25
27
 
26
- class BaseNode(BaseModel):
27
- """A class that represents a node in a lineage graph."""
28
+ name: str
29
+ description: Optional[str] = None
28
30
 
29
- id: str
30
- type: str
31
- data: BaseNodeDetails
31
+ created: datetime
32
+ updated: datetime