Skip to content

feat: dark mode expanders, sidebar services, MLflow auth, example scripts#211

Merged
alanconqrepo merged 1 commit into
mainfrom
feat/dark-mode-sidebar-scripts-mlflow-auth
May 14, 2026
Merged

feat: dark mode expanders, sidebar services, MLflow auth, example scripts#211
alanconqrepo merged 1 commit into
mainfrom
feat/dark-mode-sidebar-scripts-mlflow-auth

Conversation

@alanconqrepo
Copy link
Copy Markdown
Owner

Summary

  • Dark mode — expanders : les expanders restaient blanc sur blanc en mode sombre. Le fix cible l'élément HTML details directement (contourne les classes générées st-emotion-cache-xxx de Streamlit)
  • Sidebar — section Services : liens Swagger / Grafana / MinIO / MLflow visibles pour tous les utilisateurs connectés sauf readonly ; le rôle est désormais récupéré via /users/me au login et persisté dans la session /tmp
  • MLflow basic auth : nouveau docker/mlflow-entrypoint.sh qui génère auth.ini depuis les variables d'env (MLFLOW_ADMIN_USER / MLFLOW_ADMIN_PASSWORD) et démarre MLflow avec --app-name basic-auth (default_permission = NO_PERMISSIONS) ; MLFLOW_ADMIN_PASSWORD ajouté dans .env.example et généré par scripts/init_env.sh
  • Page Models — scripts d'exemple : expander "📋 Scripts d'exemple — Iris" (placé au-dessus de l'uploader) avec boutons "👁 Visualiser" (popup @st.dialog) et "⬇️ Télécharger" pour train_iris.py et upload_iris_model.py
  • Page Predictions — scripts d'exemple : même pattern pour send_predictions_iris.py et send_ground_truth.py
  • documentation/Scripts/ : 4 nouveaux scripts de référence Iris

Nouveaux fichiers

Fichier Rôle
docker/mlflow-entrypoint.sh Entrypoint MLflow avec basic auth
documentation/Scripts/train_iris.py Script train.py compatible sandbox PredictML
documentation/Scripts/upload_iris_model.py Exécute train_iris.py puis uploade via API
documentation/Scripts/send_predictions_iris.py Envoie des prédictions unitaires et batch
documentation/Scripts/send_ground_truth.py Envoie les résultats observés (ground truth)

Test plan

  • Activer le mode sombre — vérifier que les expanders ont un fond sombre sur toutes les pages
  • Vérifier la section "Services" dans la sidebar (visible admin/user, masquée readonly)
  • docker compose up -d mlflow — vérifier que http://127.0.0.1:5000 demande un login
  • Ouvrir Models → expander "Scripts d'exemple" → Visualiser / Télécharger chaque script
  • Ouvrir Predictions → expander "Scripts d'exemple" → idem
  • Exécuter scripts/init_env.sh sur un .env vierge — vérifier que MLFLOW_ADMIN_PASSWORD apparaît dans le résumé

🤖 Generated with Claude Code

@alanconqrepo alanconqrepo merged commit ff74fef into main May 14, 2026
2 of 4 checks passed
…ipts

- Fix dark mode: expanders now have correct dark background (targets `details`
  HTML element directly to bypass Streamlit's generated class names)
- Sidebar: add Services section (Swagger, Grafana, MinIO, MLflow) — hidden for
  readonly users; role stored in session and persisted in /tmp session files
- MLflow basic auth: new docker/mlflow-entrypoint.sh generates auth.ini from
  env vars and starts MLflow with --app-name basic-auth (NO_PERMISSIONS default);
  MLFLOW_ADMIN_PASSWORD added to .env.example and scripts/init_env.sh
- Models page: add "Scripts d'exemple — Iris" expander (above uploader) with
  view popup (@st.dialog) and download for train_iris.py and upload_iris_model.py
- Predictions page: add "Scripts d'exemple — Iris" expander with view/download
  for send_predictions_iris.py and send_ground_truth.py
- documentation/Scripts/: add train_iris.py, upload_iris_model.py,
  send_predictions_iris.py, send_ground_truth.py

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant