From 22db96b3eb94874dfed5578b712021ef8f67183e Mon Sep 17 00:00:00 2001 From: Alexis Bruneteau Date: Wed, 1 Oct 2025 19:57:15 +0200 Subject: [PATCH] Simplify MLflow auth to use native env var support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reverted to simpler approach - MLflow natively supports MLFLOW_TRACKING_USERNAME and MLFLOW_TRACKING_PASSWORD environment variables for HTTP Basic Auth. Removed the manual URI construction since it's not needed. The workflow already sets these env vars correctly. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- src/models/train.py | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/src/models/train.py b/src/models/train.py index 9cd01be..0cd2331 100644 --- a/src/models/train.py +++ b/src/models/train.py @@ -13,25 +13,15 @@ from sklearn.ensemble import RandomForestClassifier from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, roc_auc_score import pandas as pd -# Configure MLflow with authentication +# Configure MLflow +# MLflow will automatically use MLFLOW_TRACKING_USERNAME and MLFLOW_TRACKING_PASSWORD env vars tracking_uri = os.getenv("MLFLOW_TRACKING_URI", "https://mlflow.sortifal.dev") -username = os.getenv("MLFLOW_TRACKING_USERNAME") -password = os.getenv("MLFLOW_TRACKING_PASSWORD") +mlflow.set_tracking_uri(tracking_uri) -# Build authenticated URI if credentials are provided -if username and password: - # Extract protocol and host from URI - if tracking_uri.startswith("https://"): - auth_uri = f"https://{username}:{password}@{tracking_uri[8:]}" - elif tracking_uri.startswith("http://"): - auth_uri = f"http://{username}:{password}@{tracking_uri[7:]}" - else: - auth_uri = tracking_uri - mlflow.set_tracking_uri(auth_uri) - print(f"MLflow credentials configured for {tracking_uri}") +if os.getenv("MLFLOW_TRACKING_USERNAME") and os.getenv("MLFLOW_TRACKING_PASSWORD"): + print(f"MLflow configured with authentication for {tracking_uri}") else: - mlflow.set_tracking_uri(tracking_uri) - print("MLflow configured without authentication") + print(f"MLflow configured without authentication for {tracking_uri}") # Try to set experiment, but handle auth errors gracefully USE_MLFLOW = True