Files
mlflow--mlflow/docs/api_reference/source/auth/rest-api.rst
T
2026-07-13 13:22:34 +08:00

504 lines
19 KiB
ReStructuredText

.. _auth-rest-api:
==============================
MLflow Authentication REST API
==============================
The MLflow Authentication REST API allows you to create, get, update and delete users,
experiment permissions and registered model permissions.
The API is hosted under the ``/api`` route on the MLflow tracking server. For example, to list
experiments on a tracking server hosted at ``http://localhost:5000``, access
``http://localhost:5000/api/2.0/mlflow/users/create``.
.. important::
The MLflow REST API requires content type ``application/json`` for all POST requests.
.. contents:: Table of Contents
:local:
:depth: 1
===========================
.. _mlflowAuthServiceCreateUser:
Create User
===========
+-----------------------------+-------------+
| Endpoint | HTTP Method |
+=============================+=============+
| ``2.0/mlflow/users/create`` | ``POST`` |
+-----------------------------+-------------+
.. _mlflowCreateUser:
Request Structure
-----------------
+------------+------------+-------------+
| Field Name | Type | Description |
+============+============+=============+
| username | ``STRING`` | Username. |
+------------+------------+-------------+
| password | ``STRING`` | Password. |
+------------+------------+-------------+
.. _mlflowCreateUserResponse:
Response Structure
------------------
+------------+-------------------+----------------+
| Field Name | Type | Description |
+============+===================+================+
| user | :ref:`mlflowUser` | A user object. |
+------------+-------------------+----------------+
===========================
.. _mlflowAuthServiceGetUser:
Get User
========
+--------------------------+-------------+
| Endpoint | HTTP Method |
+==========================+=============+
| ``2.0/mlflow/users/get`` | ``GET`` |
+--------------------------+-------------+
.. _mlflowGetUser:
Request Structure
-----------------
+------------+------------+-------------+
| Field Name | Type | Description |
+============+============+=============+
| username | ``STRING`` | Username. |
+------------+------------+-------------+
.. _mlflowGetUserResponse:
Response Structure
------------------
+------------+-------------------+----------------+
| Field Name | Type | Description |
+============+===================+================+
| user | :ref:`mlflowUser` | A user object. |
+------------+-------------------+----------------+
===========================
.. _mlflowAuthServiceUpdateUserPassword:
Update User Password
====================
+--------------------------------------+-------------+
| Endpoint | HTTP Method |
+======================================+=============+
| ``2.0/mlflow/users/update-password`` | ``PATCH`` |
+--------------------------------------+-------------+
.. _mlflowUpdateUserPassword:
Request Structure
-----------------
+------------+------------+---------------+
| Field Name | Type | Description |
+============+============+===============+
| username | ``STRING`` | Username. |
+------------+------------+---------------+
| password | ``STRING`` | New password. |
+------------+------------+---------------+
===========================
.. _mlflowAuthServiceUpdateUserAdmin:
Update User Admin
=================
+-----------------------------------+-------------+
| Endpoint | HTTP Method |
+===================================+=============+
| ``2.0/mlflow/users/update-admin`` | ``PATCH`` |
+-----------------------------------+-------------+
.. _mlflowUpdateUserAdmin:
Request Structure
-----------------
+------------+-------------+-------------------+
| Field Name | Type | Description |
+============+=============+===================+
| username | ``STRING`` | Username. |
+------------+-------------+-------------------+
| is_admin | ``BOOLEAN`` | New admin status. |
+------------+-------------+-------------------+
===========================
.. _mlflowAuthServiceDeleteUser:
Delete User
===========
+-----------------------------+-------------+
| Endpoint | HTTP Method |
+=============================+=============+
| ``2.0/mlflow/users/delete`` | ``DELETE`` |
+-----------------------------+-------------+
.. _mlflowDeleteUser:
Request Structure
-----------------
+------------+------------+-------------+
| Field Name | Type | Description |
+============+============+=============+
| username | ``STRING`` | Username. |
+------------+------------+-------------+
===========================
.. _mlflowAuthServiceCreateExperimentPermission:
Create Experiment Permission
============================
+-----------------------------------------------+-------------+
| Endpoint | HTTP Method |
+===============================================+=============+
| ``2.0/mlflow/experiments/permissions/create`` | ``POST`` |
+-----------------------------------------------+-------------+
.. _mlflowCreateExperimentPermission:
Request Structure
-----------------
+---------------+-------------------------+----------------------+
| Field Name | Type | Description |
+===============+=========================+======================+
| experiment_id | ``STRING`` | Experiment id. |
+---------------+-------------------------+----------------------+
| username | ``STRING`` | Username. |
+---------------+-------------------------+----------------------+
| permission | :ref:`mlflowPermission` | Permission to grant. |
+---------------+-------------------------+----------------------+
.. _mlflowCreateExperimentPermissionResponse:
Response Structure
------------------
+-----------------------+-----------------------------------+----------------------------------+
| Field Name | Type | Description |
+=======================+===================================+==================================+
| experiment_permission | :ref:`mlflowExperimentPermission` | An experiment permission object. |
+-----------------------+-----------------------------------+----------------------------------+
===========================
.. _mlflowAuthServiceGetExperimentPermission:
Get Experiment Permission
=========================
+--------------------------------------------+-------------+
| Endpoint | HTTP Method |
+============================================+=============+
| ``2.0/mlflow/experiments/permissions/get`` | ``GET`` |
+--------------------------------------------+-------------+
.. _mlflowGetExperimentPermission:
Request Structure
-----------------
+---------------+------------+----------------+
| Field Name | Type | Description |
+===============+============+================+
| experiment_id | ``STRING`` | Experiment id. |
+---------------+------------+----------------+
| username | ``STRING`` | Username. |
+---------------+------------+----------------+
.. _mlflowGetExperimentPermissionResponse:
Response Structure
------------------
+-----------------------+-----------------------------------+----------------------------------+
| Field Name | Type | Description |
+=======================+===================================+==================================+
| experiment_permission | :ref:`mlflowExperimentPermission` | An experiment permission object. |
+-----------------------+-----------------------------------+----------------------------------+
===========================
.. _mlflowAuthServiceUpdateExperimentPermission:
Update Experiment Permission
============================
+-----------------------------------------------+-------------+
| Endpoint | HTTP Method |
+===============================================+=============+
| ``2.0/mlflow/experiments/permissions/update`` | ``PATCH`` |
+-----------------------------------------------+-------------+
.. _mlflowUpdateExperimentPermission:
Request Structure
-----------------
+---------------+-------------------------+--------------------------+
| Field Name | Type | Description |
+===============+=========================+==========================+
| experiment_id | ``STRING`` | Experiment id. |
+---------------+-------------------------+--------------------------+
| username | ``STRING`` | Username. |
+---------------+-------------------------+--------------------------+
| permission | :ref:`mlflowPermission` | New permission to grant. |
+---------------+-------------------------+--------------------------+
===========================
.. _mlflowAuthServiceDeleteExperimentPermission:
Delete Experiment Permission
============================
+-----------------------------------------------+-------------+
| Endpoint | HTTP Method |
+===============================================+=============+
| ``2.0/mlflow/experiments/permissions/delete`` | ``DELETE`` |
+-----------------------------------------------+-------------+
.. _mlflowDeleteExperimentPermission:
Request Structure
-----------------
+---------------+------------+----------------+
| Field Name | Type | Description |
+===============+============+================+
| experiment_id | ``STRING`` | Experiment id. |
+---------------+------------+----------------+
| username | ``STRING`` | Username. |
+---------------+------------+----------------+
===========================
.. _mlflowAuthServiceCreateRegisteredModelPermission:
Create Registered Model Permission
==================================
+-----------------------------------------------------+-------------+
| Endpoint | HTTP Method |
+=====================================================+=============+
| ``2.0/mlflow/registered-models/permissions/create`` | ``CREATE`` |
+-----------------------------------------------------+-------------+
.. _mlflowCreateRegisteredModelPermission:
Request Structure
-----------------
+------------+-------------------------+------------------------+
| Field Name | Type | Description |
+============+=========================+========================+
| name | ``STRING`` | Registered model name. |
+------------+-------------------------+------------------------+
| username | ``STRING`` | Username. |
+------------+-------------------------+------------------------+
| permission | :ref:`mlflowPermission` | Permission to grant. |
+------------+-------------------------+------------------------+
.. _mlflowCreateRegisteredModelPermissionResponse:
Response Structure
------------------
+-----------------------------+----------------------------------------+---------------------------------------+
| Field Name | Type | Description |
+=============================+========================================+=======================================+
| registered_model_permission | :ref:`mlflowRegisteredModelPermission` | A registered model permission object. |
+-----------------------------+----------------------------------------+---------------------------------------+
===========================
.. _mlflowAuthServiceGetRegisteredModelPermission:
Get Registered Model Permission
===============================
+--------------------------------------------------+-------------+
| Endpoint | HTTP Method |
+==================================================+=============+
| ``2.0/mlflow/registered-models/permissions/get`` | ``GET`` |
+--------------------------------------------------+-------------+
.. _mlflowGetRegisteredModelPermission:
Request Structure
-----------------
+------------+------------+------------------------+
| Field Name | Type | Description |
+============+============+========================+
| name | ``STRING`` | Registered model name. |
+------------+------------+------------------------+
| username | ``STRING`` | Username. |
+------------+------------+------------------------+
.. _mlflowGetRegisteredModelPermissionResponse:
Response Structure
------------------
+-----------------------------+----------------------------------------+---------------------------------------+
| Field Name | Type | Description |
+=============================+========================================+=======================================+
| registered_model_permission | :ref:`mlflowRegisteredModelPermission` | A registered model permission object. |
+-----------------------------+----------------------------------------+---------------------------------------+
===========================
.. _mlflowAuthServiceUpdateRegisteredModelPermission:
Update Registered Model Permission
==================================
+-----------------------------------------------------+-------------+
| Endpoint | HTTP Method |
+=====================================================+=============+
| ``2.0/mlflow/registered-models/permissions/update`` | ``PATCH`` |
+-----------------------------------------------------+-------------+
.. _mlflowUpdateRegisteredModelPermission:
Request Structure
-----------------
+------------+-------------------------+--------------------------+
| Field Name | Type | Description |
+============+=========================+==========================+
| name | ``STRING`` | Registered model name. |
+------------+-------------------------+--------------------------+
| username | ``STRING`` | Username. |
+------------+-------------------------+--------------------------+
| permission | :ref:`mlflowPermission` | New permission to grant. |
+------------+-------------------------+--------------------------+
===========================
.. _mlflowAuthServiceDeleteRegisteredModelPermission:
Delete Registered Model Permission
==================================
+-----------------------------------------------------+-------------+
| Endpoint | HTTP Method |
+=====================================================+=============+
| ``2.0/mlflow/registered-models/permissions/delete`` | ``DELETE`` |
+-----------------------------------------------------+-------------+
.. _mlflowDeleteRegisteredModelPermission:
Request Structure
-----------------
+------------+------------+------------------------+
| Field Name | Type | Description |
+============+============+========================+
| name | ``STRING`` | Registered model name. |
+------------+------------+------------------------+
| username | ``STRING`` | Username. |
+------------+------------+------------------------+
.. _auth-rest-struct:
Data Structures
===============
.. _mlflowUser:
User
----
+------------------------------+----------------------------------------------------+------------------------------------------------------------------+
| Field Name | Type | Description |
+==============================+====================================================+==================================================================+
| id | ``STRING`` | User ID. |
+------------------------------+----------------------------------------------------+------------------------------------------------------------------+
| username | ``STRING`` | Username. |
+------------------------------+----------------------------------------------------+------------------------------------------------------------------+
| is_admin | ``BOOLEAN`` | Whether the user is an admin. |
+------------------------------+----------------------------------------------------+------------------------------------------------------------------+
| experiment_permissions | An array of :ref:`mlflowExperimentPermission` | All experiment permissions explicitly granted to the user. |
+------------------------------+----------------------------------------------------+------------------------------------------------------------------+
| registered_model_permissions | An array of :ref:`mlflowRegisteredModelPermission` | All registered model permissions explicitly granted to the user. |
+------------------------------+----------------------------------------------------+------------------------------------------------------------------+
.. _mlflowPermission:
Permission
----------
Permission of a user to an experiment or a registered model.
+----------------+--------------------------------------+
| Name | Description |
+================+======================================+
| READ | Can read. |
+----------------+--------------------------------------+
| EDIT | Can read and update. |
+----------------+--------------------------------------+
| MANAGE | Can read, update, delete and manage. |
+----------------+--------------------------------------+
| NO_PERMISSIONS | No permissions. |
+----------------+--------------------------------------+
.. _mlflowExperimentPermission:
ExperimentPermission
--------------------
+---------------+-------------------------+---------------------+
| Field Name | Type | Description |
+===============+=========================+=====================+
| experiment_id | ``STRING`` | Experiment id. |
+---------------+-------------------------+---------------------+
| user_id | ``STRING`` | User id. |
+---------------+-------------------------+---------------------+
| permission | :ref:`mlflowPermission` | Permission granted. |
+---------------+-------------------------+---------------------+
.. _mlflowRegisteredModelPermission:
RegisteredModelPermission
-------------------------
+------------+-------------------------+------------------------+
| Field Name | Type | Description |
+============+=========================+========================+
| name | ``STRING`` | Registered model name. |
+------------+-------------------------+------------------------+
| user_id | ``STRING`` | User id. |
+------------+-------------------------+------------------------+
| permission | :ref:`mlflowPermission` | Permission granted. |
+------------+-------------------------+------------------------+