mlflow-auth-gui

A web application that provides a Web GUI to the MLflow Authentication API

https://github.com/m-team-kit/mlflow-auth-gui

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

experiment-tracking mlflow web-service
Last synced: 6 months ago · JSON representation ·

Repository

A web application that provides a Web GUI to the MLflow Authentication API

Basic Info
  • Host: GitHub
  • Owner: m-team-kit
  • License: apache-2.0
  • Language: TypeScript
  • Default Branch: main
  • Homepage:
  • Size: 1.19 MB
Statistics
  • Stars: 6
  • Watchers: 3
  • Forks: 0
  • Open Issues: 0
  • Releases: 7
Topics
experiment-tracking mlflow web-service
Created about 2 years ago · Last pushed 6 months ago
Metadata Files
Readme Contributing License Code of conduct Citation Codemeta

README.md

SQAaaS badge

Contributor Covenant

DOI

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

  1. Use docker compose up -d, docker compose overrides automatically using compose.override.yml file.
  2. In signup:
    1. Install dependencies: yarn install
    2. Verify the env in .env, override it in .env.local if necessary
    3. Run yarn dev to start the development server

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

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

backend/Dockerfile docker
  • ghcr.io/mlflow/mlflow latest build
backup_db/Dockerfile docker
  • postgres ${POSTGRES_VERSION} build
frontend/Dockerfile docker
  • base latest build
  • node 20-alpine build
frontend/package.json npm
  • @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
frontend/yarn.lock npm
  • 423 dependencies