From aeedcd1e95a85b80df8705d9b179ab0e2a206878 Mon Sep 17 00:00:00 2001 From: Stefan Nica Date: Mon, 6 Jan 2025 18:46:01 +0100 Subject: [PATCH] Fix the onboarding state to account for zenml login (#3270) * Fix the onboarding state to account for zenml login * Fix the client user-agent headers * Removed left-over log * Auto-update of LLM Finetuning template * Auto-update of Starter template * Auto-update of E2E template --------- Co-authored-by: GitHub Actions --- examples/e2e/LICENSE | 2 +- examples/e2e/configs/deployer_config.yaml | 2 +- examples/e2e/configs/inference_config.yaml | 2 +- examples/e2e/configs/train_config.yaml | 2 +- examples/e2e/pipelines/__init__.py | 2 +- examples/e2e/pipelines/batch_inference.py | 2 +- examples/e2e/pipelines/deployment.py | 2 +- examples/e2e/pipelines/training.py | 2 +- examples/e2e/run.py | 2 +- examples/e2e/steps/__init__.py | 2 +- examples/e2e/steps/alerts/__init__.py | 2 +- examples/e2e/steps/alerts/notify_on.py | 2 +- examples/e2e/steps/data_quality/__init__.py | 2 +- .../steps/data_quality/drift_quality_gate.py | 2 +- examples/e2e/steps/deployment/__init__.py | 2 +- .../e2e/steps/deployment/deployment_deploy.py | 2 +- examples/e2e/steps/etl/__init__.py | 2 +- examples/e2e/steps/etl/data_loader.py | 2 +- .../steps/etl/inference_data_preprocessor.py | 2 +- .../e2e/steps/etl/train_data_preprocessor.py | 2 +- examples/e2e/steps/etl/train_data_splitter.py | 2 +- examples/e2e/steps/hp_tuning/__init__.py | 2 +- .../hp_tuning/hp_tuning_select_best_model.py | 2 +- .../hp_tuning/hp_tuning_single_search.py | 2 +- examples/e2e/steps/inference/__init__.py | 2 +- .../e2e/steps/inference/inference_predict.py | 2 +- examples/e2e/steps/promotion/__init__.py | 2 +- ...ute_performance_metrics_on_current_data.py | 2 +- .../promotion/promote_with_metric_compare.py | 2 +- examples/e2e/steps/training/__init__.py | 2 +- .../e2e/steps/training/model_evaluator.py | 2 +- examples/e2e/steps/training/model_trainer.py | 2 +- examples/e2e/utils/__init__.py | 2 +- examples/e2e/utils/get_model_from_config.py | 2 +- examples/e2e/utils/preprocess.py | 2 +- .../e2e/utils/promote_in_model_registry.py | 2 +- examples/llm_finetuning/LICENSE | 2 +- .../configs/orchestrator_finetune.yaml | 2 +- .../configs/remote_finetune.yaml | 2 +- .../llm_finetuning/materializers/__init__.py | 2 +- .../materializers/directory_materializer.py | 2 +- examples/llm_finetuning/pipelines/train.py | 2 +- .../pipelines/train_accelerated.py | 2 +- examples/llm_finetuning/run.py | 2 +- examples/llm_finetuning/steps/__init__.py | 2 +- .../llm_finetuning/steps/evaluate_model.py | 2 +- examples/llm_finetuning/steps/finetune.py | 2 +- examples/llm_finetuning/steps/log_metadata.py | 2 +- .../llm_finetuning/steps/prepare_datasets.py | 2 +- examples/llm_finetuning/steps/promote.py | 2 +- examples/llm_finetuning/utils/__init__.py | 2 +- examples/llm_finetuning/utils/callbacks.py | 2 +- examples/llm_finetuning/utils/loaders.py | 2 +- examples/llm_finetuning/utils/logging.py | 2 +- examples/llm_finetuning/utils/tokenizer.py | 2 +- examples/mlops_starter/LICENSE | 2 +- examples/mlops_starter/pipelines/__init__.py | 2 +- .../pipelines/feature_engineering.py | 2 +- examples/mlops_starter/pipelines/inference.py | 2 +- examples/mlops_starter/pipelines/training.py | 2 +- examples/mlops_starter/run.py | 2 +- examples/mlops_starter/steps/__init__.py | 2 +- examples/mlops_starter/steps/data_loader.py | 2 +- .../mlops_starter/steps/data_preprocessor.py | 2 +- examples/mlops_starter/steps/data_splitter.py | 2 +- .../mlops_starter/steps/model_evaluator.py | 2 +- .../mlops_starter/steps/model_promoter.py | 2 +- examples/mlops_starter/steps/model_trainer.py | 2 +- examples/mlops_starter/utils/__init__.py | 2 +- examples/mlops_starter/utils/preprocess.py | 2 +- src/zenml/zen_server/auth.py | 23 +++++++++++++++++-- .../zen_server/routers/auth_endpoints.py | 3 ++- src/zenml/zen_stores/rest_zen_store.py | 12 +++++++++- 73 files changed, 104 insertions(+), 74 deletions(-) diff --git a/examples/e2e/LICENSE b/examples/e2e/LICENSE index 75d01fb4544..909e24e117c 100644 --- a/examples/e2e/LICENSE +++ b/examples/e2e/LICENSE @@ -1,6 +1,6 @@ Apache Software License 2.0 -Copyright (c) ZenML GmbH 2024. All rights reserved. +Copyright (c) ZenML GmbH 2025. All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/examples/e2e/configs/deployer_config.yaml b/examples/e2e/configs/deployer_config.yaml index 69111971d86..c1a394c45e9 100644 --- a/examples/e2e/configs/deployer_config.yaml +++ b/examples/e2e/configs/deployer_config.yaml @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/e2e/configs/inference_config.yaml b/examples/e2e/configs/inference_config.yaml index 69111971d86..c1a394c45e9 100644 --- a/examples/e2e/configs/inference_config.yaml +++ b/examples/e2e/configs/inference_config.yaml @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/e2e/configs/train_config.yaml b/examples/e2e/configs/train_config.yaml index f486cd11c69..d55160d0f8f 100644 --- a/examples/e2e/configs/train_config.yaml +++ b/examples/e2e/configs/train_config.yaml @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/e2e/pipelines/__init__.py b/examples/e2e/pipelines/__init__.py index 634503d1978..2d699029b63 100644 --- a/examples/e2e/pipelines/__init__.py +++ b/examples/e2e/pipelines/__init__.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/e2e/pipelines/batch_inference.py b/examples/e2e/pipelines/batch_inference.py index fbc772273c5..09d2db75cba 100644 --- a/examples/e2e/pipelines/batch_inference.py +++ b/examples/e2e/pipelines/batch_inference.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/e2e/pipelines/deployment.py b/examples/e2e/pipelines/deployment.py index 7976cd39da7..bf40d56f601 100644 --- a/examples/e2e/pipelines/deployment.py +++ b/examples/e2e/pipelines/deployment.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/e2e/pipelines/training.py b/examples/e2e/pipelines/training.py index ba9a2f75489..60eaf72eef6 100644 --- a/examples/e2e/pipelines/training.py +++ b/examples/e2e/pipelines/training.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/e2e/run.py b/examples/e2e/run.py index 5850bc3ed84..0ad5551ba57 100644 --- a/examples/e2e/run.py +++ b/examples/e2e/run.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/e2e/steps/__init__.py b/examples/e2e/steps/__init__.py index f58ac6f764d..95392373b01 100644 --- a/examples/e2e/steps/__init__.py +++ b/examples/e2e/steps/__init__.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/e2e/steps/alerts/__init__.py b/examples/e2e/steps/alerts/__init__.py index 4b202bfbce9..1f272215a7d 100644 --- a/examples/e2e/steps/alerts/__init__.py +++ b/examples/e2e/steps/alerts/__init__.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/e2e/steps/alerts/notify_on.py b/examples/e2e/steps/alerts/notify_on.py index 381591a3ad9..25294b4d2c9 100644 --- a/examples/e2e/steps/alerts/notify_on.py +++ b/examples/e2e/steps/alerts/notify_on.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/e2e/steps/data_quality/__init__.py b/examples/e2e/steps/data_quality/__init__.py index dffcfadaac0..654d55f7205 100644 --- a/examples/e2e/steps/data_quality/__init__.py +++ b/examples/e2e/steps/data_quality/__init__.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/e2e/steps/data_quality/drift_quality_gate.py b/examples/e2e/steps/data_quality/drift_quality_gate.py index fe8af0555d9..2d552b80689 100644 --- a/examples/e2e/steps/data_quality/drift_quality_gate.py +++ b/examples/e2e/steps/data_quality/drift_quality_gate.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/e2e/steps/deployment/__init__.py b/examples/e2e/steps/deployment/__init__.py index e60bc9e5bd4..9cdc112ccd8 100644 --- a/examples/e2e/steps/deployment/__init__.py +++ b/examples/e2e/steps/deployment/__init__.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/e2e/steps/deployment/deployment_deploy.py b/examples/e2e/steps/deployment/deployment_deploy.py index dad351e45be..2895d35fcb8 100644 --- a/examples/e2e/steps/deployment/deployment_deploy.py +++ b/examples/e2e/steps/deployment/deployment_deploy.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/e2e/steps/etl/__init__.py b/examples/e2e/steps/etl/__init__.py index 55943c5cf21..80e527cf029 100644 --- a/examples/e2e/steps/etl/__init__.py +++ b/examples/e2e/steps/etl/__init__.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/e2e/steps/etl/data_loader.py b/examples/e2e/steps/etl/data_loader.py index a509900246d..d263a3ff207 100644 --- a/examples/e2e/steps/etl/data_loader.py +++ b/examples/e2e/steps/etl/data_loader.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/e2e/steps/etl/inference_data_preprocessor.py b/examples/e2e/steps/etl/inference_data_preprocessor.py index 5cd50f4d1f0..18f3729fa84 100644 --- a/examples/e2e/steps/etl/inference_data_preprocessor.py +++ b/examples/e2e/steps/etl/inference_data_preprocessor.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/e2e/steps/etl/train_data_preprocessor.py b/examples/e2e/steps/etl/train_data_preprocessor.py index f967c09e137..4a3cf341aaa 100644 --- a/examples/e2e/steps/etl/train_data_preprocessor.py +++ b/examples/e2e/steps/etl/train_data_preprocessor.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/e2e/steps/etl/train_data_splitter.py b/examples/e2e/steps/etl/train_data_splitter.py index e3d1a1dbb08..4155e30e198 100644 --- a/examples/e2e/steps/etl/train_data_splitter.py +++ b/examples/e2e/steps/etl/train_data_splitter.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/e2e/steps/hp_tuning/__init__.py b/examples/e2e/steps/hp_tuning/__init__.py index b135f8f91f6..7ba28dfa905 100644 --- a/examples/e2e/steps/hp_tuning/__init__.py +++ b/examples/e2e/steps/hp_tuning/__init__.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/e2e/steps/hp_tuning/hp_tuning_select_best_model.py b/examples/e2e/steps/hp_tuning/hp_tuning_select_best_model.py index 1fc9a7cdc79..d196ddbb9ca 100644 --- a/examples/e2e/steps/hp_tuning/hp_tuning_select_best_model.py +++ b/examples/e2e/steps/hp_tuning/hp_tuning_select_best_model.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/e2e/steps/hp_tuning/hp_tuning_single_search.py b/examples/e2e/steps/hp_tuning/hp_tuning_single_search.py index 7b55eebae7a..f64bdc1bda5 100644 --- a/examples/e2e/steps/hp_tuning/hp_tuning_single_search.py +++ b/examples/e2e/steps/hp_tuning/hp_tuning_single_search.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/e2e/steps/inference/__init__.py b/examples/e2e/steps/inference/__init__.py index 76ef96332c4..30a07473f7f 100644 --- a/examples/e2e/steps/inference/__init__.py +++ b/examples/e2e/steps/inference/__init__.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/e2e/steps/inference/inference_predict.py b/examples/e2e/steps/inference/inference_predict.py index 280e689c0fc..840323d781d 100644 --- a/examples/e2e/steps/inference/inference_predict.py +++ b/examples/e2e/steps/inference/inference_predict.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/e2e/steps/promotion/__init__.py b/examples/e2e/steps/promotion/__init__.py index c00281499db..ee62cfee4fd 100644 --- a/examples/e2e/steps/promotion/__init__.py +++ b/examples/e2e/steps/promotion/__init__.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/e2e/steps/promotion/compute_performance_metrics_on_current_data.py b/examples/e2e/steps/promotion/compute_performance_metrics_on_current_data.py index 4df16ecd111..98fd9d52d8a 100644 --- a/examples/e2e/steps/promotion/compute_performance_metrics_on_current_data.py +++ b/examples/e2e/steps/promotion/compute_performance_metrics_on_current_data.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/e2e/steps/promotion/promote_with_metric_compare.py b/examples/e2e/steps/promotion/promote_with_metric_compare.py index 6bc580f47ba..5a4058226ce 100644 --- a/examples/e2e/steps/promotion/promote_with_metric_compare.py +++ b/examples/e2e/steps/promotion/promote_with_metric_compare.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/e2e/steps/training/__init__.py b/examples/e2e/steps/training/__init__.py index fda26b7cf41..eb11f8ef83e 100644 --- a/examples/e2e/steps/training/__init__.py +++ b/examples/e2e/steps/training/__init__.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/e2e/steps/training/model_evaluator.py b/examples/e2e/steps/training/model_evaluator.py index 974103d1061..64fac772956 100644 --- a/examples/e2e/steps/training/model_evaluator.py +++ b/examples/e2e/steps/training/model_evaluator.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/e2e/steps/training/model_trainer.py b/examples/e2e/steps/training/model_trainer.py index 87a695f5695..e98263584ce 100644 --- a/examples/e2e/steps/training/model_trainer.py +++ b/examples/e2e/steps/training/model_trainer.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/e2e/utils/__init__.py b/examples/e2e/utils/__init__.py index e3b50be89fd..59f461864b7 100644 --- a/examples/e2e/utils/__init__.py +++ b/examples/e2e/utils/__init__.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/e2e/utils/get_model_from_config.py b/examples/e2e/utils/get_model_from_config.py index 1d12d34e5a6..3b0ee3e0752 100644 --- a/examples/e2e/utils/get_model_from_config.py +++ b/examples/e2e/utils/get_model_from_config.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/e2e/utils/preprocess.py b/examples/e2e/utils/preprocess.py index 56cfc47f884..ee67f28d800 100644 --- a/examples/e2e/utils/preprocess.py +++ b/examples/e2e/utils/preprocess.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/e2e/utils/promote_in_model_registry.py b/examples/e2e/utils/promote_in_model_registry.py index 6e8342984ec..0f0cb2bd460 100644 --- a/examples/e2e/utils/promote_in_model_registry.py +++ b/examples/e2e/utils/promote_in_model_registry.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/llm_finetuning/LICENSE b/examples/llm_finetuning/LICENSE index 75d01fb4544..909e24e117c 100644 --- a/examples/llm_finetuning/LICENSE +++ b/examples/llm_finetuning/LICENSE @@ -1,6 +1,6 @@ Apache Software License 2.0 -Copyright (c) ZenML GmbH 2024. All rights reserved. +Copyright (c) ZenML GmbH 2025. All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/examples/llm_finetuning/configs/orchestrator_finetune.yaml b/examples/llm_finetuning/configs/orchestrator_finetune.yaml index 0d76d8ea320..404f9bb918a 100644 --- a/examples/llm_finetuning/configs/orchestrator_finetune.yaml +++ b/examples/llm_finetuning/configs/orchestrator_finetune.yaml @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/llm_finetuning/configs/remote_finetune.yaml b/examples/llm_finetuning/configs/remote_finetune.yaml index d978fe18561..74d23732053 100644 --- a/examples/llm_finetuning/configs/remote_finetune.yaml +++ b/examples/llm_finetuning/configs/remote_finetune.yaml @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/llm_finetuning/materializers/__init__.py b/examples/llm_finetuning/materializers/__init__.py index 757bd8418a5..06cf292f376 100644 --- a/examples/llm_finetuning/materializers/__init__.py +++ b/examples/llm_finetuning/materializers/__init__.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/llm_finetuning/materializers/directory_materializer.py b/examples/llm_finetuning/materializers/directory_materializer.py index 05e90e43e18..6db666a475c 100644 --- a/examples/llm_finetuning/materializers/directory_materializer.py +++ b/examples/llm_finetuning/materializers/directory_materializer.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/llm_finetuning/pipelines/train.py b/examples/llm_finetuning/pipelines/train.py index dab1b39962f..cc3a0676a6f 100644 --- a/examples/llm_finetuning/pipelines/train.py +++ b/examples/llm_finetuning/pipelines/train.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/llm_finetuning/pipelines/train_accelerated.py b/examples/llm_finetuning/pipelines/train_accelerated.py index bae22541293..be5eddfda4a 100644 --- a/examples/llm_finetuning/pipelines/train_accelerated.py +++ b/examples/llm_finetuning/pipelines/train_accelerated.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/llm_finetuning/run.py b/examples/llm_finetuning/run.py index db5f637b1de..daf7a0df99d 100644 --- a/examples/llm_finetuning/run.py +++ b/examples/llm_finetuning/run.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/llm_finetuning/steps/__init__.py b/examples/llm_finetuning/steps/__init__.py index 317b6b4c409..d3132fac823 100644 --- a/examples/llm_finetuning/steps/__init__.py +++ b/examples/llm_finetuning/steps/__init__.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/llm_finetuning/steps/evaluate_model.py b/examples/llm_finetuning/steps/evaluate_model.py index 72f053a0e60..63ba198501f 100644 --- a/examples/llm_finetuning/steps/evaluate_model.py +++ b/examples/llm_finetuning/steps/evaluate_model.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/llm_finetuning/steps/finetune.py b/examples/llm_finetuning/steps/finetune.py index eddf19a3292..b2b9d04ba40 100644 --- a/examples/llm_finetuning/steps/finetune.py +++ b/examples/llm_finetuning/steps/finetune.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/llm_finetuning/steps/log_metadata.py b/examples/llm_finetuning/steps/log_metadata.py index 90109fdf3c4..4a11d549fe1 100644 --- a/examples/llm_finetuning/steps/log_metadata.py +++ b/examples/llm_finetuning/steps/log_metadata.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/llm_finetuning/steps/prepare_datasets.py b/examples/llm_finetuning/steps/prepare_datasets.py index b9cc13c2261..2638c60f0bf 100644 --- a/examples/llm_finetuning/steps/prepare_datasets.py +++ b/examples/llm_finetuning/steps/prepare_datasets.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/llm_finetuning/steps/promote.py b/examples/llm_finetuning/steps/promote.py index 12b305d0d84..9d5b2e40db5 100644 --- a/examples/llm_finetuning/steps/promote.py +++ b/examples/llm_finetuning/steps/promote.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/llm_finetuning/utils/__init__.py b/examples/llm_finetuning/utils/__init__.py index 8d4e9614e3d..29e36c52861 100644 --- a/examples/llm_finetuning/utils/__init__.py +++ b/examples/llm_finetuning/utils/__init__.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/llm_finetuning/utils/callbacks.py b/examples/llm_finetuning/utils/callbacks.py index 245c498da03..f1b129a0340 100644 --- a/examples/llm_finetuning/utils/callbacks.py +++ b/examples/llm_finetuning/utils/callbacks.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/llm_finetuning/utils/loaders.py b/examples/llm_finetuning/utils/loaders.py index 837b182410e..253ffa5de8d 100644 --- a/examples/llm_finetuning/utils/loaders.py +++ b/examples/llm_finetuning/utils/loaders.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/llm_finetuning/utils/logging.py b/examples/llm_finetuning/utils/logging.py index 0fd2df7801b..844d3d22efb 100644 --- a/examples/llm_finetuning/utils/logging.py +++ b/examples/llm_finetuning/utils/logging.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/llm_finetuning/utils/tokenizer.py b/examples/llm_finetuning/utils/tokenizer.py index 39d9de11367..0e1cd0af14c 100644 --- a/examples/llm_finetuning/utils/tokenizer.py +++ b/examples/llm_finetuning/utils/tokenizer.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/mlops_starter/LICENSE b/examples/mlops_starter/LICENSE index 75d01fb4544..909e24e117c 100644 --- a/examples/mlops_starter/LICENSE +++ b/examples/mlops_starter/LICENSE @@ -1,6 +1,6 @@ Apache Software License 2.0 -Copyright (c) ZenML GmbH 2024. All rights reserved. +Copyright (c) ZenML GmbH 2025. All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/examples/mlops_starter/pipelines/__init__.py b/examples/mlops_starter/pipelines/__init__.py index 6d8015e257f..e06f785b2b3 100644 --- a/examples/mlops_starter/pipelines/__init__.py +++ b/examples/mlops_starter/pipelines/__init__.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/mlops_starter/pipelines/feature_engineering.py b/examples/mlops_starter/pipelines/feature_engineering.py index edd87b6d82b..488dedf7897 100644 --- a/examples/mlops_starter/pipelines/feature_engineering.py +++ b/examples/mlops_starter/pipelines/feature_engineering.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/mlops_starter/pipelines/inference.py b/examples/mlops_starter/pipelines/inference.py index 4b05c9eef8c..d47726638c5 100644 --- a/examples/mlops_starter/pipelines/inference.py +++ b/examples/mlops_starter/pipelines/inference.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/mlops_starter/pipelines/training.py b/examples/mlops_starter/pipelines/training.py index 1e8410c608b..27964a5567c 100644 --- a/examples/mlops_starter/pipelines/training.py +++ b/examples/mlops_starter/pipelines/training.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/mlops_starter/run.py b/examples/mlops_starter/run.py index 16a352588d6..14fd779d88f 100644 --- a/examples/mlops_starter/run.py +++ b/examples/mlops_starter/run.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/mlops_starter/steps/__init__.py b/examples/mlops_starter/steps/__init__.py index ce6f59f965f..db551d463aa 100644 --- a/examples/mlops_starter/steps/__init__.py +++ b/examples/mlops_starter/steps/__init__.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/mlops_starter/steps/data_loader.py b/examples/mlops_starter/steps/data_loader.py index a0345026de3..c6b05d4fe77 100644 --- a/examples/mlops_starter/steps/data_loader.py +++ b/examples/mlops_starter/steps/data_loader.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/mlops_starter/steps/data_preprocessor.py b/examples/mlops_starter/steps/data_preprocessor.py index f94d1e85f6d..40b4ecd9b05 100644 --- a/examples/mlops_starter/steps/data_preprocessor.py +++ b/examples/mlops_starter/steps/data_preprocessor.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/mlops_starter/steps/data_splitter.py b/examples/mlops_starter/steps/data_splitter.py index d777e023aed..4623a293e13 100644 --- a/examples/mlops_starter/steps/data_splitter.py +++ b/examples/mlops_starter/steps/data_splitter.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/mlops_starter/steps/model_evaluator.py b/examples/mlops_starter/steps/model_evaluator.py index c63c53109f4..e91383aa1f9 100644 --- a/examples/mlops_starter/steps/model_evaluator.py +++ b/examples/mlops_starter/steps/model_evaluator.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/mlops_starter/steps/model_promoter.py b/examples/mlops_starter/steps/model_promoter.py index 43d43ceac1f..ca73c472f4a 100644 --- a/examples/mlops_starter/steps/model_promoter.py +++ b/examples/mlops_starter/steps/model_promoter.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/mlops_starter/steps/model_trainer.py b/examples/mlops_starter/steps/model_trainer.py index eeb24f32e2e..7483a302935 100644 --- a/examples/mlops_starter/steps/model_trainer.py +++ b/examples/mlops_starter/steps/model_trainer.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/mlops_starter/utils/__init__.py b/examples/mlops_starter/utils/__init__.py index 8d4e9614e3d..29e36c52861 100644 --- a/examples/mlops_starter/utils/__init__.py +++ b/examples/mlops_starter/utils/__init__.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/mlops_starter/utils/preprocess.py b/examples/mlops_starter/utils/preprocess.py index df60bce30d1..9546d163a8f 100644 --- a/examples/mlops_starter/utils/preprocess.py +++ b/examples/mlops_starter/utils/preprocess.py @@ -1,6 +1,6 @@ # Apache Software License 2.0 # -# Copyright (c) ZenML GmbH 2024. All rights reserved. +# Copyright (c) ZenML GmbH 2025. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/src/zenml/zen_server/auth.py b/src/zenml/zen_server/auth.py index 80290f091cc..18a5b6774ec 100644 --- a/src/zenml/zen_server/auth.py +++ b/src/zenml/zen_server/auth.py @@ -37,7 +37,12 @@ LOGIN, VERSION_1, ) -from zenml.enums import AuthScheme, ExecutionStatus, OAuthDeviceStatus +from zenml.enums import ( + AuthScheme, + ExecutionStatus, + OAuthDeviceStatus, + OnboardingStep, +) from zenml.exceptions import ( AuthorizationException, CredentialsNotValid, @@ -630,12 +635,15 @@ def authenticate_device(client_id: UUID, device_code: str) -> AuthContext: return AuthContext(user=device_model.user, device=device_model) -def authenticate_external_user(external_access_token: str) -> AuthContext: +def authenticate_external_user( + external_access_token: str, request: Request +) -> AuthContext: """Implement external authentication. Args: external_access_token: The access token used to authenticate the user to the external authenticator. + request: The request object. Returns: The authentication context reflecting the authenticated user. @@ -761,6 +769,17 @@ def authenticate_external_user(external_access_token: str) -> AuthContext: ) context.alias(user_id=external_user.id, previous_id=user.id) + # This is the best spot to update the onboarding state to mark the + # "zenml login" step as completed for ZenML Pro servers, because the + # user has just successfully logged in. However, we need to differentiate + # between web clients (i.e. the dashboard) and CLI clients (i.e. the + # zenml CLI). + user_agent = request.headers.get("User-Agent", "").lower() + if "zenml/" in user_agent: + store.update_onboarding_state( + completed_steps={OnboardingStep.DEVICE_VERIFIED} + ) + return AuthContext(user=user) diff --git a/src/zenml/zen_server/routers/auth_endpoints.py b/src/zenml/zen_server/routers/auth_endpoints.py index a1339c10bf3..fb0eee4391b 100644 --- a/src/zenml/zen_server/routers/auth_endpoints.py +++ b/src/zenml/zen_server/routers/auth_endpoints.py @@ -287,7 +287,8 @@ def token( return OAuthRedirectResponse(authorization_url=authorization_url) auth_context = authenticate_external_user( - external_access_token=external_access_token + external_access_token=external_access_token, + request=request, ) else: diff --git a/src/zenml/zen_stores/rest_zen_store.py b/src/zenml/zen_stores/rest_zen_store.py index e3e29759b21..f0cab2de00e 100644 --- a/src/zenml/zen_stores/rest_zen_store.py +++ b/src/zenml/zen_stores/rest_zen_store.py @@ -4053,7 +4053,12 @@ def get_or_generate_api_token(self) -> str: ) data: Optional[Dict[str, str]] = None - headers: Dict[str, str] = {} + + # Use a custom user agent to identify the ZenML client in the server + # logs. + headers: Dict[str, str] = { + "User-Agent": "zenml/" + zenml.__version__, + } # Check if an API key is configured api_key = credentials_store.get_api_key(self.url) @@ -4218,6 +4223,11 @@ def session(self) -> requests.Session: self._session.mount("https://", HTTPAdapter(max_retries=retries)) self._session.mount("http://", HTTPAdapter(max_retries=retries)) self._session.verify = self.config.verify_ssl + # Use a custom user agent to identify the ZenML client in the server + # logs. + self._session.headers.update( + {"User-Agent": "zenml/" + zenml.__version__} + ) # Note that we return an unauthenticated session here. An API token # is only fetched and set in the authorization header when and if it is