This web application provides a Web GUI to the MLflow Authentication API.
GUI provides:
- self-registration of users in MLflow
- self-registration service requires Authentication via a pre-configured OIDC Provider (e.g. EGI Check-In)
- one can limit users eligible for self-registration using
REQUIRED_ENTITLEMENT
- created in the MLflow user name is the email address retrieved from the OIDC token (registered email)
- optionally, the MLflow user credentials are stored in the HashiCorp Vault Secret storage via AI4OS Platform API (ai4-papi)
- after the user is registered in MLflow, he/she can:
- update his/her MLflow password
- update permissions to his/her experiments
- update permissions to his/her registered models
- delete account
The deployment is containerised and includes provision of the fully running MLflow service:
- GUI for the MLflow Authentication REST API (aka
signup
service) - MLflow instance (
mlflow
service) - Postgresql database as the backend store (
database
service) - databases backup (
backup_db
service) - traefik reverse proxy (
reverse-proxy
service)
docker compose configuration is based on awesome-compose.
Copy .env.sample
to .env
and customize the values for your deployment.
Ensure MLFLOW_USERNAME
& MLFLOW_PASSWORD
in .env and admin_username
& admin_password
in backend/srv/auth_config.ini match.
OR
Once deployed, use e.g. mlflow_auth scripts to update MLflow admin user to match MLFLOW_USERNAME
& MLFLOW_PASSWORD
.
If setting up on windows, launch the compose once to create volumes & files, then uncomment user: postgres
in compose.yml.
- Use
docker compose up -d
, docker compose overrides automatically usingcompose.override.yml
file. - In
signup
:- Install dependencies:
yarn install
- Verify the env in .env, override it in .env.local if necessary
- Run
yarn dev
to start the development server
- Install dependencies:
Use:
docker compose -f compose.yml -f compose.prod.yml up -d
For the example usage, please, see https://docs.ai4os.eu/en/latest/user/howto/mlops/mlflow.html
Please, see our CONTRIBUTING description and the CODE OF CONDUCT.
This code is distributed under the Apache 2.0 License. Please, see the LICENSE file.
Copyright (c) 2023 - 2024 Karlsruhe Institute of Technology - Scientific Computing Center.