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,92 @@
1
+ """Workload manager interface definition."""
2
+
3
+ from abc import ABC, abstractmethod
4
+ from typing import Dict, List, Optional
5
+ from uuid import UUID
6
+
7
+
8
+ class WorkloadManagerInterface(ABC):
9
+ """Workload manager interface."""
10
+
11
+ @abstractmethod
12
+ def run(
13
+ self,
14
+ workload_id: UUID,
15
+ image: str,
16
+ command: List[str],
17
+ arguments: List[str],
18
+ environment: Optional[Dict[str, str]] = None,
19
+ sync: bool = True,
20
+ timeout_in_seconds: int = 0,
21
+ ) -> None:
22
+ """Run a Docker container.
23
+
24
+ Args:
25
+ workload_id: Workload ID.
26
+ image: The Docker image to run.
27
+ command: The command to run in the container.
28
+ arguments: The arguments for the command.
29
+ environment: The environment to set in the container.
30
+ sync: If True, will wait until the container finished running before
31
+ returning.
32
+ timeout_in_seconds: Timeout in seconds to wait before cancelling
33
+ the container. If set to 0 the container will run until it
34
+ fails or finishes.
35
+ """
36
+ pass
37
+
38
+ @abstractmethod
39
+ def build_and_push_image(
40
+ self,
41
+ workload_id: UUID,
42
+ dockerfile: str,
43
+ image_name: str,
44
+ sync: bool = True,
45
+ timeout_in_seconds: int = 0,
46
+ ) -> str:
47
+ """Build and push a Docker image.
48
+
49
+ Args:
50
+ workload_id: Workload ID.
51
+ dockerfile: The dockerfile content to build the image.
52
+ image_name: The image repository and tag.
53
+ sync: If True, will wait until the build finished before returning.
54
+ timeout_in_seconds: Timeout in seconds to wait before cancelling
55
+ the container. If set to 0 the container will run until it
56
+ fails or finishes.
57
+
58
+ Returns:
59
+ The full image name including container registry.
60
+ """
61
+ pass
62
+
63
+ @abstractmethod
64
+ def delete_workload(self, workload_id: UUID) -> None:
65
+ """Delete a workload.
66
+
67
+ Args:
68
+ workload_id: Workload ID.
69
+ """
70
+ pass
71
+
72
+ @abstractmethod
73
+ def get_logs(self, workload_id: UUID) -> str:
74
+ """Get logs for a workload.
75
+
76
+ Args:
77
+ workload_id: Workload ID.
78
+
79
+ Returns:
80
+ The stored logs.
81
+ """
82
+ pass
83
+
84
+ @abstractmethod
85
+ def log(self, workload_id: UUID, message: str) -> None:
86
+ """Log a message.
87
+
88
+ Args:
89
+ workload_id: Workload ID.
90
+ message: The message to log.
91
+ """
92
+ pass
zenml/zen_server/utils.py CHANGED
@@ -16,7 +16,17 @@
16
16
  import inspect
17
17
  import os
18
18
  from functools import wraps
19
- from typing import Any, Callable, Optional, Tuple, Type, TypeVar, cast
19
+ from typing import (
20
+ TYPE_CHECKING,
21
+ Any,
22
+ Callable,
23
+ List,
24
+ Optional,
25
+ Tuple,
26
+ Type,
27
+ TypeVar,
28
+ cast,
29
+ )
20
30
  from urllib.parse import urlparse
21
31
 
22
32
  from pydantic import BaseModel, ValidationError
@@ -24,23 +34,41 @@ from pydantic import BaseModel, ValidationError
24
34
  from zenml.config.global_config import GlobalConfiguration
25
35
  from zenml.config.server_config import ServerConfiguration
26
36
  from zenml.constants import (
37
+ API,
27
38
  ENV_ZENML_SERVER,
39
+ INFO,
40
+ VERSION_1,
28
41
  )
29
- from zenml.enums import ServerProviderType
30
- from zenml.exceptions import OAuthError
42
+ from zenml.enums import StoreType
43
+ from zenml.exceptions import IllegalOperationError, OAuthError
31
44
  from zenml.logger import get_logger
32
- from zenml.zen_server.deploy.deployment import ServerDeployment
33
- from zenml.zen_server.deploy.local.local_zen_server import (
34
- LocalServerDeploymentConfig,
45
+ from zenml.plugins.plugin_flavor_registry import PluginFlavorRegistry
46
+ from zenml.zen_server.cache import MemoryCache
47
+ from zenml.zen_server.deploy.deployment import (
48
+ LocalServerDeployment,
35
49
  )
50
+ from zenml.zen_server.deploy.exceptions import ServerDeploymentNotFoundError
36
51
  from zenml.zen_server.exceptions import http_exception_from_error
52
+ from zenml.zen_server.feature_gate.feature_gate_interface import (
53
+ FeatureGateInterface,
54
+ )
37
55
  from zenml.zen_server.rbac.rbac_interface import RBACInterface
56
+ from zenml.zen_server.template_execution.workload_manager_interface import (
57
+ WorkloadManagerInterface,
58
+ )
38
59
  from zenml.zen_stores.sql_zen_store import SqlZenStore
39
60
 
61
+ if TYPE_CHECKING:
62
+ from fastapi import Request
63
+
40
64
  logger = get_logger(__name__)
41
65
 
42
66
  _zen_store: Optional["SqlZenStore"] = None
43
67
  _rbac: Optional[RBACInterface] = None
68
+ _feature_gate: Optional[FeatureGateInterface] = None
69
+ _workload_manager: Optional[WorkloadManagerInterface] = None
70
+ _plugin_flavor_registry: Optional[PluginFlavorRegistry] = None
71
+ _memcache: Optional[MemoryCache] = None
44
72
 
45
73
 
46
74
  def zen_store() -> "SqlZenStore":
@@ -58,6 +86,19 @@ def zen_store() -> "SqlZenStore":
58
86
  return _zen_store
59
87
 
60
88
 
89
+ def plugin_flavor_registry() -> PluginFlavorRegistry:
90
+ """Get the plugin flavor registry.
91
+
92
+ Returns:
93
+ The plugin flavor registry.
94
+ """
95
+ global _plugin_flavor_registry
96
+ if _plugin_flavor_registry is None:
97
+ _plugin_flavor_registry = PluginFlavorRegistry()
98
+ _plugin_flavor_registry.initialize_plugins()
99
+ return _plugin_flavor_registry
100
+
101
+
61
102
  def rbac() -> RBACInterface:
62
103
  """Return the initialized RBAC component.
63
104
 
@@ -86,6 +127,79 @@ def initialize_rbac() -> None:
86
127
  _rbac = implementation_class()
87
128
 
88
129
 
130
+ def feature_gate() -> FeatureGateInterface:
131
+ """Return the initialized Feature Gate component.
132
+
133
+ Raises:
134
+ RuntimeError: If the RBAC component is not initialized.
135
+
136
+ Returns:
137
+ The RBAC component.
138
+ """
139
+ global _feature_gate
140
+ if _feature_gate is None:
141
+ raise RuntimeError("Feature gate component not initialized.")
142
+ return _feature_gate
143
+
144
+
145
+ def initialize_feature_gate() -> None:
146
+ """Initialize the Feature Gate component."""
147
+ global _feature_gate
148
+
149
+ if (
150
+ feature_gate_source
151
+ := server_config().feature_gate_implementation_source
152
+ ):
153
+ from zenml.utils import source_utils
154
+
155
+ implementation_class = source_utils.load_and_validate_class(
156
+ feature_gate_source, expected_class=FeatureGateInterface
157
+ )
158
+ _feature_gate = implementation_class()
159
+
160
+
161
+ def workload_manager() -> WorkloadManagerInterface:
162
+ """Return the initialized workload manager component.
163
+
164
+ Raises:
165
+ RuntimeError: If the workload manager component is not initialized.
166
+
167
+ Returns:
168
+ The workload manager component.
169
+ """
170
+ global _workload_manager
171
+ if _workload_manager is None:
172
+ raise RuntimeError("Workload manager component not initialized")
173
+ return _workload_manager
174
+
175
+
176
+ def initialize_workload_manager() -> None:
177
+ """Initialize the workload manager component.
178
+
179
+ This does not fail if the source can't be loaded but only logs a warning.
180
+ """
181
+ global _workload_manager
182
+
183
+ if source := server_config().workload_manager_implementation_source:
184
+ from zenml.utils import source_utils
185
+
186
+ try:
187
+ workload_manager_class: Type[WorkloadManagerInterface] = (
188
+ source_utils.load_and_validate_class(
189
+ source=source, expected_class=WorkloadManagerInterface
190
+ )
191
+ )
192
+ except (ModuleNotFoundError, KeyError):
193
+ logger.warning("Unable to load workload manager source.")
194
+ else:
195
+ _workload_manager = workload_manager_class()
196
+
197
+
198
+ def initialize_plugins() -> None:
199
+ """Initialize the event plugins registry."""
200
+ plugin_flavor_registry().initialize_plugins()
201
+
202
+
89
203
  def initialize_zen_store() -> None:
90
204
  """Initialize the ZenML Store.
91
205
 
@@ -110,6 +224,31 @@ def initialize_zen_store() -> None:
110
224
  _zen_store = zen_store_
111
225
 
112
226
 
227
+ def initialize_memcache(max_capacity: int, default_expiry: int) -> None:
228
+ """Initialize the memory cache.
229
+
230
+ Args:
231
+ max_capacity: The maximum capacity of the cache.
232
+ default_expiry: The default expiry time in seconds.
233
+ """
234
+ global _memcache
235
+ _memcache = MemoryCache(max_capacity, default_expiry)
236
+
237
+
238
+ def memcache() -> MemoryCache:
239
+ """Return the memory cache.
240
+
241
+ Returns:
242
+ The memory cache.
243
+
244
+ Raises:
245
+ RuntimeError: If the memory cache is not initialized.
246
+ """
247
+ if _memcache is None:
248
+ raise RuntimeError("Memory cache not initialized")
249
+ return _memcache
250
+
251
+
113
252
  _server_config: Optional[ServerConfiguration] = None
114
253
 
115
254
 
@@ -125,86 +264,84 @@ def server_config() -> ServerConfiguration:
125
264
  return _server_config
126
265
 
127
266
 
128
- def get_active_deployment(local: bool = False) -> Optional["ServerDeployment"]:
129
- """Get the active local or remote server deployment.
130
-
131
- Call this function to retrieve the local or remote server deployment that
132
- was last provisioned on this machine.
267
+ def get_local_server() -> Optional["LocalServerDeployment"]:
268
+ """Get the active local server.
133
269
 
134
- Args:
135
- local: Whether to return the local active deployment or the remote one.
270
+ Call this function to retrieve the local server deployed on this machine.
136
271
 
137
272
  Returns:
138
- The local or remote active server deployment or None, if no deployment
139
- was found.
273
+ The local server deployment or None, if no local server deployment was
274
+ found.
140
275
  """
141
- from zenml.zen_server.deploy.deployer import ServerDeployer
142
-
143
- deployer = ServerDeployer()
144
- if local:
145
- servers = deployer.list_servers(provider_type=ServerProviderType.LOCAL)
146
- if not servers:
147
- servers = deployer.list_servers(
148
- provider_type=ServerProviderType.DOCKER
149
- )
150
- else:
151
- servers = deployer.list_servers()
276
+ from zenml.zen_server.deploy.deployer import LocalServerDeployer
152
277
 
153
- if not servers:
278
+ deployer = LocalServerDeployer()
279
+ try:
280
+ return deployer.get_server()
281
+ except ServerDeploymentNotFoundError:
154
282
  return None
155
283
 
156
- for server in servers:
157
- if server.config.provider in [
158
- ServerProviderType.LOCAL,
159
- ServerProviderType.DOCKER,
160
- ]:
161
- if local:
162
- return server
163
- elif not local:
164
- return server
165
284
 
166
- return None
285
+ def connected_to_local_server() -> bool:
286
+ """Check if the client is connected to a local server.
167
287
 
288
+ Returns:
289
+ True if the client is connected to a local server, False otherwise.
290
+ """
291
+ from zenml.zen_server.deploy.deployer import LocalServerDeployer
168
292
 
169
- def get_active_server_details() -> Tuple[str, Optional[int]]:
170
- """Get the URL of the current ZenML Server.
293
+ deployer = LocalServerDeployer()
294
+ return deployer.is_connected_to_server()
171
295
 
172
- When multiple servers are present, the following precedence is used to
173
- determine which server to use:
174
- - If the client is connected to a server, that server has precedence.
175
- - If no server is connected, a server that was deployed remotely has
176
- precedence over a server that was deployed locally.
177
296
 
178
- Returns:
179
- The URL and port of the currently active server.
297
+ def show_dashboard(
298
+ local: bool = False,
299
+ ngrok_token: Optional[str] = None,
300
+ ) -> None:
301
+ """Show the ZenML dashboard.
302
+
303
+ Args:
304
+ local: Whether to show the dashboard for the local server or the
305
+ one for the active server.
306
+ ngrok_token: An ngrok auth token to use for exposing the ZenML
307
+ dashboard on a public domain. Primarily used for accessing the
308
+ dashboard in Colab.
180
309
 
181
310
  Raises:
182
- RuntimeError: If no server is active.
311
+ RuntimeError: If no server is connected.
183
312
  """
184
- # Check for connected servers first
185
- gc = GlobalConfiguration()
186
- if not gc.uses_default_store() and gc.store is not None:
187
- logger.debug("Getting URL of connected server.")
188
- parsed_url = urlparse(gc.store.url)
189
- return f"{parsed_url.scheme}://{parsed_url.hostname}", parsed_url.port
190
- # Else, check for deployed servers
191
- server = get_active_deployment(local=False)
192
- if server:
193
- logger.debug("Getting URL of remote server.")
194
- else:
195
- server = get_active_deployment(local=True)
196
- logger.debug("Getting URL of local server.")
197
-
198
- if server and server.status and server.status.url:
199
- if isinstance(server.config, LocalServerDeploymentConfig):
200
- return server.status.url, server.config.port
201
- return server.status.url, None
202
-
203
- raise RuntimeError(
204
- "ZenML is not connected to any server right now. Please use "
205
- "`zenml connect` to connect to a server or spin up a new local server "
206
- "via `zenml up`."
207
- )
313
+ from zenml.utils.dashboard_utils import show_dashboard
314
+ from zenml.utils.networking_utils import get_or_create_ngrok_tunnel
315
+
316
+ url: Optional[str] = None
317
+ if not local:
318
+ gc = GlobalConfiguration()
319
+ if gc.store_configuration.type == StoreType.REST:
320
+ url = gc.store_configuration.url
321
+
322
+ if not url:
323
+ # Else, check for local servers
324
+ server = get_local_server()
325
+ if server and server.status and server.status.url:
326
+ url = server.status.url
327
+
328
+ if not url:
329
+ raise RuntimeError(
330
+ "ZenML is not connected to any server right now. Please use "
331
+ "`zenml login` to connect to a server or spin up a new local server "
332
+ "via `zenml login --local`."
333
+ )
334
+
335
+ if ngrok_token:
336
+ parsed_url = urlparse(url)
337
+
338
+ ngrok_url = get_or_create_ngrok_tunnel(
339
+ ngrok_token=ngrok_token, port=parsed_url.port or 80
340
+ )
341
+ logger.debug(f"Tunneling dashboard from {url} to {ngrok_url}.")
342
+ url = ngrok_url
343
+
344
+ show_dashboard(url)
208
345
 
209
346
 
210
347
  F = TypeVar("F", bound=Callable[..., Any])
@@ -284,6 +421,8 @@ def make_dependable(cls: Type[BaseModel]) -> Callable[..., Any]:
284
421
  """
285
422
  from fastapi import Query
286
423
 
424
+ from zenml.zen_server.exceptions import error_detail
425
+
287
426
  def init_cls_and_handle_errors(*args: Any, **kwargs: Any) -> BaseModel:
288
427
  from fastapi import HTTPException
289
428
 
@@ -291,9 +430,8 @@ def make_dependable(cls: Type[BaseModel]) -> Callable[..., Any]:
291
430
  inspect.signature(init_cls_and_handle_errors).bind(*args, **kwargs)
292
431
  return cls(*args, **kwargs)
293
432
  except ValidationError as e:
294
- for error in e.errors():
295
- error["loc"] = tuple(["query"] + list(error["loc"]))
296
- raise HTTPException(422, detail=e.errors())
433
+ detail = error_detail(e, exception_type=ValueError)
434
+ raise HTTPException(422, detail=detail)
297
435
 
298
436
  params = {v.name: v for v in inspect.signature(cls).parameters.values()}
299
437
  query_params = getattr(cls, "API_MULTI_INPUT_PARAMS", [])
@@ -335,3 +473,101 @@ def get_ip_location(ip_address: str) -> Tuple[str, str, str]:
335
473
  except Exception:
336
474
  logger.exception(f"Could not get IP location for {ip_address}.")
337
475
  return "", "", ""
476
+
477
+
478
+ def verify_admin_status_if_no_rbac(
479
+ admin_status: Optional[bool],
480
+ action: Optional[str] = None,
481
+ ) -> None:
482
+ """Validate the admin status for sensitive requests.
483
+
484
+ Only add this check in endpoints meant for admin use only.
485
+
486
+ Args:
487
+ admin_status: Whether the user is an admin or not. This is only used
488
+ if explicitly specified in the call and even if passed will be
489
+ ignored, if RBAC is enabled.
490
+ action: The action that is being performed, used for output only.
491
+
492
+ Raises:
493
+ IllegalOperationError: If the admin status is not valid.
494
+ """
495
+ if not server_config().rbac_enabled:
496
+ if not action:
497
+ action = "this action"
498
+ else:
499
+ action = f"`{action.strip('`')}`"
500
+
501
+ if admin_status is False:
502
+ raise IllegalOperationError(
503
+ message=f"Only admin users can perform {action} "
504
+ "without RBAC enabled.",
505
+ )
506
+ return
507
+
508
+
509
+ def is_user_request(request: "Request") -> bool:
510
+ """Determine if the incoming request is a user request.
511
+
512
+ This function checks various aspects of the request to determine
513
+ if it's a user-initiated request or a system request.
514
+
515
+ Args:
516
+ request: The incoming FastAPI request object.
517
+
518
+ Returns:
519
+ True if it's a user request, False otherwise.
520
+ """
521
+ # Define system paths that should be excluded
522
+ system_paths: List[str] = [
523
+ "/health",
524
+ "/metrics",
525
+ "/system",
526
+ "/docs",
527
+ "/redoc",
528
+ "/openapi.json",
529
+ ]
530
+
531
+ user_prefix = f"{API}{VERSION_1}"
532
+ excluded_user_apis = [INFO]
533
+ # Check if this is not an excluded endpoint
534
+ if request.url.path in [
535
+ user_prefix + suffix for suffix in excluded_user_apis
536
+ ]:
537
+ return False
538
+
539
+ # Check if this is other user request
540
+ if request.url.path.startswith(user_prefix):
541
+ return True
542
+
543
+ # Exclude system paths
544
+ if any(request.url.path.startswith(path) for path in system_paths):
545
+ return False
546
+
547
+ # Exclude requests with specific headers
548
+ if request.headers.get("X-System-Request") == "true":
549
+ return False
550
+
551
+ # Exclude requests from certain user agents (e.g., monitoring tools)
552
+ user_agent = request.headers.get("User-Agent", "").lower()
553
+ system_agents = ["prometheus", "datadog", "newrelic", "pingdom"]
554
+ if any(agent in user_agent for agent in system_agents):
555
+ return False
556
+
557
+ # Check for internal IP addresses
558
+ client_host = request.client.host if request.client else None
559
+ if client_host and (
560
+ client_host.startswith("10.") or client_host.startswith("192.168.")
561
+ ):
562
+ return False
563
+
564
+ # Exclude OPTIONS requests (often used for CORS preflight)
565
+ if request.method == "OPTIONS":
566
+ return False
567
+
568
+ # Exclude specific query parameters that might indicate system requests
569
+ if request.query_params.get("system_check"):
570
+ return False
571
+
572
+ # If none of the above conditions are met, consider it a user request
573
+ return True