Skip to main content

MLflow MLTF Gateway

PLEASE NOTE This is a very early alpha. If you hit an error or see missing functionality, please make an issue so we can track and improve.

This project is a remote MLFlow Project job submission service. Using the included CLI or via REST, users can submit their training code to ACCRE (Vanderbilt's reearch computing facility).

Install

Until releases are pushed to PyPi, one can install the client by executing the following

# If not already in a virtual environment
python3 -m venv venv
source venv/bin/activate

# Once within the virtual environment, install the client
# This only needs to be done once
pip install mltf-gateway

After installing, configure the client with

export MLTF_GATEWAY_URI=https://gw.mltf.vu
mltf login

This will prompt you to visit a webpage, login using either CERN or Vanderbilt credentials, and copy a code from your terminal into the resulting page. You can verify things worked correctly with mltf auth-status

Note: Auth endpoints are now resolved automatically from the gateway via OIDC discovery. The only required setting is MLTF_GATEWAY_URI. Optional environment variable overrides remain available: MLTF_CLIENT_ID, MLTF_AUTH_URL, MLTF_TOKEN_URL, MLTF_SCOPES.

$ mltf auth-status
Credentials found, expired? False
Token Subject: e0574079-d98b-4cc3-9246-1aef09bc0107
Token Issuer: https://keycloak.k8s.accre.vanderbilt.edu/realms/mltf-dual-login
Access Token:
    Issued: 2025-10-06 22:23:05+00:00
   Expires: 2025-10-11 22:23:05+00:00
 Remaining: 1 day, 2:43:28.941754
Refresh Token:
    Issued: 2025-10-01 21:15:11+00:00
   Expires: 2025-10-26 20:56:06+00:00
 Remaining: 16 days, 1:16:29.941754

Note: Auth endpoints are now resolved automatically from the gateway. MLTF_GATEWAY_URI is the only required setting; MLTF_CLIENT_ID, MLTF_AUTH_URL, MLTF_TOKEN_URL, and MLTF_SCOPES are optional overrides.

Quickstart

To demonstrate the gateway, we set up an example "Hello World" project in the demo/with-gpu subdirectory of this repository. To submit a job, enter the demo/with-gpu subdirectory and execute mltf submit which should output something similar to

$ mltf submit --name "hello-world"
Find your MLFlow run at https://mlflow-test.mltf.k8s.accre.vanderbilt.edu/#/experiments/0/runs/1d0c653826144357aa90a7de2c6f6bf8
Submitted project to MLTF: 962e168e-a61c-11f0-b4b0-bc2411853964

You can list your tasks with mltf list. Tasks given a name with --name display it alongside their ID.

$ mltf list
Tasks:
  2025-10-10@16:03:35 - 962e168e-a61c-11f0-b4b0-bc2411853964 (hello-world)

And check their status with mltf show <task_id>. If wanted, logs can be viewed with --show-logs.

$ mltf show 962e168e-a61c-11f0-b4b0-bc2411853964
Status: RUNNING

Finally, any output artifacts, parameters or logs will be uploaded to the tracking server which can be accessed from the URL provided above (future improvements will add CLI access to artifacts). The tracking API is described here and will let you upload arbitrary metrics (e.g. loss) and artifacts (e.g. output files)

Metadata

Release files for mltf-gateway 0.6.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mltf-gateway 0.6.1
File Size Uploaded
mltf_gateway-0.6.1.tar.gz 59.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mltf-gateway 0.6.1
File Interpreter ABI Platform
mltf_gateway-0.6.1-py3-none-any.whl Python 3 none any Details

Total release size: 134.9 kB

Release files / mltf_gateway-0.6.1.tar.gz

Download URL mltf_gateway-0.6.1.tar.gz
Size 59.7 kB
Tags Source
SHA-256 checksum
How to use checksums
a6e0bc08f92c2888e6127935651107cfc8a34f90aefa4ccbfd6bc67e50ce0956
BLAKE2b-256 checksum
How to use checksums
63dd6c59deffc4c66e46391b995610fed8323dc0b97e65f157b7402ac0670df6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / mltf_gateway-0.6.1-py3-none-any.whl

Download URL mltf_gateway-0.6.1-py3-none-any.whl
Size 75.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a41d7d641b66851ebb14eae5eaedb5d5ef9ebc864e6365b54cd215841a6c1c4a
BLAKE2b-256 checksum
How to use checksums
a24806cdefc73e48b55b53251c804393a63ef09b2ad7a0279a7ec5ae3a1a42c3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release history Release notifications | RSS feed

0.6.3

2 release files

0.6.2

2 release files

This release

0.6.1 This release

2 release files

0.6.0

2 release files

0.2.0

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page