mlflow-auth-gui
A web application that provides a Web GUI to the MLflow Authentication API
Science Score: 67.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 3 DOI reference(s) in README -
✓Academic publication links
Links to: zenodo.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (10.4%) to scientific vocabulary
Keywords
Repository
A web application that provides a Web GUI to the MLflow Authentication API
Basic Info
Statistics
- Stars: 6
- Watchers: 3
- Forks: 0
- Open Issues: 0
- Releases: 7
Topics
Metadata Files
README.md
MLflow Auth GUI
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 either REQUIRED_ENTITLEMENT (eduperson_entitlement) OR REQUIRED_REALM_ROLES (realm.roles), depending on what Identity Provider (IdP) supports
* 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
Deployment
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.
Configuration
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.
Deploy for development
- Use
docker compose up -d, docker compose overrides automatically usingcompose.override.ymlfile. - In
signup:- Install dependencies:
yarn install - Verify the env in .env, override it in .env.local if necessary
- Run
yarn devto start the development server
- Install dependencies:
Deploy in Production
Use:
bash
docker compose -f compose.yml -f compose.prod.yml up -d
To re-build one of the services, e.g. "signup", use:
bash
docker compose -f compose.yml -f compose.prod.yml up -d --build signup
Usage
For the example usage, please, see https://docs.ai4os.eu/en/latest/user/howto/mlops/mlflow.html
Contributing
Please, see our CONTRIBUTING description and the CODE OF CONDUCT.
License
This code is distributed under the Apache 2.0 License. Please, see the LICENSE file.
Copyright (c) 2023 - 2025 Karlsruhe Institute of Technology - Scientific Computing Center.
Owner
- Name: m-team-kit
- Login: m-team-kit
- Kind: organization
- Repositories: 7
- Profile: https://github.com/m-team-kit
Citation (CITATION.cff)
# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!
cff-version: 1.2.0
title: MLflow Auth GUI
identifiers:
- type: doi
value: 10.5281/zenodo.10689853
version: 0.6.1
date-released: '2024-01-24'
message: >-
A web application that provides a Web GUI to the MLflow
Authentication API
type: software
authors:
- given-names: Christophe
family-names: Laures
affiliation: KIT
- given-names: Borja
family-names: Esteban Sanchis
affiliation: KIT
- given-names: Lisana
family-names: Berberi
affiliation: KIT
- given-names: Valentin
family-names: Kozlov
affiliation: KIT
repository-code: 'https://codebase.helmholtz.cloud/m-team/ai/mlflow-auth-gui'
abstract: >-
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)
* 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
keywords:
- mlflow
- experiment tracking
- web service
license: Apache-2.0
contact:
- affiliation: Karlsruhe Institute of Technology (KIT)
email: m-contact@lists.kit.edu
CodeMeta (codemeta.json)
{
"@context": "https://doi.org/10.5063/schema/codemeta-2.0",
"@type": "SoftwareSourceCode",
"license": "https://spdx.org/licenses/Apache-2.0",
"codeRepository": "https://codebase.helmholtz.cloud/m-team/ai/mlflow-auth-gui",
"issueTracker": "https://github.com/m-team-kit/mlflow-auth-gui/issues",
"name": "MLflow Auth GUI",
"description": "A Web application that provides a Web GUI to the MLflow Authentication API",
"applicationCategory": "Machine learning",
"identifier": "https://codebase.helmholtz.cloud/m-team/ai/mlflow-auth-gui",
"version": "0.6.1",
"releaseNotes": "Added:\n - Code metadata, \n - Contributing Changed: \n- README \n- Move OIDC_AUTHORITY and AUTH_USERINFO_ENDPOINT to .env from compose.yml",
"citation": {
"type": "CITATION.cff",
"path": "./CITATION.cff"
},
"keywords": [
"mlflow",
"experiment tracking",
"web service"
],
"programmingLanguage": [
"javascript",
"bash",
"dockerfile"
],
"relatedLink": [
"https://mlflow.cloud.ai4eosc.eu/"
],
"author": [
{
"@type": "Person",
"givenName": "Christophe",
"familyName": "Laures",
"affiliation": {
"@type": "Organization",
"name": "KIT"
}
},
{
"@type": "Person",
"givenName": "Borja",
"familyName": "Esteban Sanchis",
"affiliation": {
"@type": "Organization",
"name": "KIT"
}
},
{
"@type": "Person",
"givenName": "Lisana",
"familyName": "Berberi",
"affiliation": {
"@type": "Organization",
"name": "KIT"
}
},
{
"@type": "Person",
"givenName": "Valentin",
"familyName": "Kozlov",
"affiliation": {
"@type": "Organization",
"name": "KIT"
}
}
]
}
GitHub Events
Total
- Release event: 4
- Watch event: 3
- Delete event: 1
- Push event: 11
- Create event: 5
Last Year
- Release event: 4
- Watch event: 3
- Delete event: 1
- Push event: 11
- Create event: 5
Dependencies
- ghcr.io/mlflow/mlflow latest build
- postgres ${POSTGRES_VERSION} build
- base latest build
- node 20-alpine build
- @types/node ^20 development
- @types/react ^18 development
- @types/react-dom ^18 development
- autoprefixer ^10.0.1 development
- eslint ^8 development
- eslint-config-next 14.0.1 development
- eslint-plugin-tailwindcss ^3.13.0 development
- postcss ^8 development
- prettier ^3.0.3 development
- tailwindcss ^3.3.0 development
- typescript ^5 development
- @tailwindcss/forms ^0.5.6
- @tailwindcss/typography ^0.5.10
- clsx ^2.0.0
- next 14.0.1
- oidc-client-ts ^2.2.1
- react ^18
- react-dom ^18
- react-oidc-context ^2.3.1
- swr ^2.2.4
- zod ^3.22.4
- 423 dependencies
