docs/api_reference/source/auth/rest-api.rst
.. _auth-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:
+-----------------------------+-------------+
| Endpoint | HTTP Method |
+=============================+=============+
| 2.0/mlflow/users/create | POST |
+-----------------------------+-------------+
.. _mlflowCreateUser:
+------------+------------+-------------+
| Field Name | Type | Description |
+============+============+=============+
| username | STRING | Username. |
+------------+------------+-------------+
| password | STRING | Password. |
+------------+------------+-------------+
.. _mlflowCreateUserResponse:
+------------+-------------------+----------------+
| Field Name | Type | Description |
+============+===================+================+
| user | :ref:mlflowUser | A user object. |
+------------+-------------------+----------------+
===========================
.. _mlflowAuthServiceGetUser:
+--------------------------+-------------+
| Endpoint | HTTP Method |
+==========================+=============+
| 2.0/mlflow/users/get | GET |
+--------------------------+-------------+
.. _mlflowGetUser:
+------------+------------+-------------+
| Field Name | Type | Description |
+============+============+=============+
| username | STRING | Username. |
+------------+------------+-------------+
.. _mlflowGetUserResponse:
+------------+-------------------+----------------+
| Field Name | Type | Description |
+============+===================+================+
| user | :ref:mlflowUser | A user object. |
+------------+-------------------+----------------+
===========================
.. _mlflowAuthServiceUpdateUserPassword:
+--------------------------------------+-------------+
| Endpoint | HTTP Method |
+======================================+=============+
| 2.0/mlflow/users/update-password | PATCH |
+--------------------------------------+-------------+
.. _mlflowUpdateUserPassword:
+------------+------------+---------------+
| Field Name | Type | Description |
+============+============+===============+
| username | STRING | Username. |
+------------+------------+---------------+
| password | STRING | New password. |
+------------+------------+---------------+
===========================
.. _mlflowAuthServiceUpdateUserAdmin:
+-----------------------------------+-------------+
| Endpoint | HTTP Method |
+===================================+=============+
| 2.0/mlflow/users/update-admin | PATCH |
+-----------------------------------+-------------+
.. _mlflowUpdateUserAdmin:
+------------+-------------+-------------------+
| Field Name | Type | Description |
+============+=============+===================+
| username | STRING | Username. |
+------------+-------------+-------------------+
| is_admin | BOOLEAN | New admin status. |
+------------+-------------+-------------------+
===========================
.. _mlflowAuthServiceDeleteUser:
+-----------------------------+-------------+
| Endpoint | HTTP Method |
+=============================+=============+
| 2.0/mlflow/users/delete | DELETE |
+-----------------------------+-------------+
.. _mlflowDeleteUser:
+------------+------------+-------------+
| Field Name | Type | Description |
+============+============+=============+
| username | STRING | Username. |
+------------+------------+-------------+
===========================
.. _mlflowAuthServiceCreateExperimentPermission:
+-----------------------------------------------+-------------+
| Endpoint | HTTP Method |
+===============================================+=============+
| 2.0/mlflow/experiments/permissions/create | POST |
+-----------------------------------------------+-------------+
.. _mlflowCreateExperimentPermission:
+---------------+-------------------------+----------------------+
| Field Name | Type | Description |
+===============+=========================+======================+
| experiment_id | STRING | Experiment id. |
+---------------+-------------------------+----------------------+
| username | STRING | Username. |
+---------------+-------------------------+----------------------+
| permission | :ref:mlflowPermission | Permission to grant. |
+---------------+-------------------------+----------------------+
.. _mlflowCreateExperimentPermissionResponse:
+-----------------------+-----------------------------------+----------------------------------+
| Field Name | Type | Description |
+=======================+===================================+==================================+
| experiment_permission | :ref:mlflowExperimentPermission | An experiment permission object. |
+-----------------------+-----------------------------------+----------------------------------+
===========================
.. _mlflowAuthServiceGetExperimentPermission:
+--------------------------------------------+-------------+
| Endpoint | HTTP Method |
+============================================+=============+
| 2.0/mlflow/experiments/permissions/get | GET |
+--------------------------------------------+-------------+
.. _mlflowGetExperimentPermission:
+---------------+------------+----------------+
| Field Name | Type | Description |
+===============+============+================+
| experiment_id | STRING | Experiment id. |
+---------------+------------+----------------+
| username | STRING | Username. |
+---------------+------------+----------------+
.. _mlflowGetExperimentPermissionResponse:
+-----------------------+-----------------------------------+----------------------------------+
| Field Name | Type | Description |
+=======================+===================================+==================================+
| experiment_permission | :ref:mlflowExperimentPermission | An experiment permission object. |
+-----------------------+-----------------------------------+----------------------------------+
===========================
.. _mlflowAuthServiceUpdateExperimentPermission:
+-----------------------------------------------+-------------+
| Endpoint | HTTP Method |
+===============================================+=============+
| 2.0/mlflow/experiments/permissions/update | PATCH |
+-----------------------------------------------+-------------+
.. _mlflowUpdateExperimentPermission:
+---------------+-------------------------+--------------------------+
| Field Name | Type | Description |
+===============+=========================+==========================+
| experiment_id | STRING | Experiment id. |
+---------------+-------------------------+--------------------------+
| username | STRING | Username. |
+---------------+-------------------------+--------------------------+
| permission | :ref:mlflowPermission | New permission to grant. |
+---------------+-------------------------+--------------------------+
===========================
.. _mlflowAuthServiceDeleteExperimentPermission:
+-----------------------------------------------+-------------+
| Endpoint | HTTP Method |
+===============================================+=============+
| 2.0/mlflow/experiments/permissions/delete | DELETE |
+-----------------------------------------------+-------------+
.. _mlflowDeleteExperimentPermission:
+---------------+------------+----------------+
| Field Name | Type | Description |
+===============+============+================+
| experiment_id | STRING | Experiment id. |
+---------------+------------+----------------+
| username | STRING | Username. |
+---------------+------------+----------------+
===========================
.. _mlflowAuthServiceCreateRegisteredModelPermission:
+-----------------------------------------------------+-------------+
| Endpoint | HTTP Method |
+=====================================================+=============+
| 2.0/mlflow/registered-models/permissions/create | CREATE |
+-----------------------------------------------------+-------------+
.. _mlflowCreateRegisteredModelPermission:
+------------+-------------------------+------------------------+
| Field Name | Type | Description |
+============+=========================+========================+
| name | STRING | Registered model name. |
+------------+-------------------------+------------------------+
| username | STRING | Username. |
+------------+-------------------------+------------------------+
| permission | :ref:mlflowPermission | Permission to grant. |
+------------+-------------------------+------------------------+
.. _mlflowCreateRegisteredModelPermissionResponse:
+-----------------------------+----------------------------------------+---------------------------------------+
| Field Name | Type | Description |
+=============================+========================================+=======================================+
| registered_model_permission | :ref:mlflowRegisteredModelPermission | A registered model permission object. |
+-----------------------------+----------------------------------------+---------------------------------------+
===========================
.. _mlflowAuthServiceGetRegisteredModelPermission:
+--------------------------------------------------+-------------+
| Endpoint | HTTP Method |
+==================================================+=============+
| 2.0/mlflow/registered-models/permissions/get | GET |
+--------------------------------------------------+-------------+
.. _mlflowGetRegisteredModelPermission:
+------------+------------+------------------------+
| Field Name | Type | Description |
+============+============+========================+
| name | STRING | Registered model name. |
+------------+------------+------------------------+
| username | STRING | Username. |
+------------+------------+------------------------+
.. _mlflowGetRegisteredModelPermissionResponse:
+-----------------------------+----------------------------------------+---------------------------------------+
| Field Name | Type | Description |
+=============================+========================================+=======================================+
| registered_model_permission | :ref:mlflowRegisteredModelPermission | A registered model permission object. |
+-----------------------------+----------------------------------------+---------------------------------------+
===========================
.. _mlflowAuthServiceUpdateRegisteredModelPermission:
+-----------------------------------------------------+-------------+
| Endpoint | HTTP Method |
+=====================================================+=============+
| 2.0/mlflow/registered-models/permissions/update | PATCH |
+-----------------------------------------------------+-------------+
.. _mlflowUpdateRegisteredModelPermission:
+------------+-------------------------+--------------------------+
| Field Name | Type | Description |
+============+=========================+==========================+
| name | STRING | Registered model name. |
+------------+-------------------------+--------------------------+
| username | STRING | Username. |
+------------+-------------------------+--------------------------+
| permission | :ref:mlflowPermission | New permission to grant. |
+------------+-------------------------+--------------------------+
===========================
.. _mlflowAuthServiceDeleteRegisteredModelPermission:
+-----------------------------------------------------+-------------+
| Endpoint | HTTP Method |
+=====================================================+=============+
| 2.0/mlflow/registered-models/permissions/delete | DELETE |
+-----------------------------------------------------+-------------+
.. _mlflowDeleteRegisteredModelPermission:
+------------+------------+------------------------+
| Field Name | Type | Description |
+============+============+========================+
| name | STRING | Registered model name. |
+------------+------------+------------------------+
| username | STRING | Username. |
+------------+------------+------------------------+
.. _auth-rest-struct:
.. _mlflowUser:
+------------------------------+----------------------------------------------------+------------------------------------------------------------------+
| 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 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:
+---------------+-------------------------+---------------------+
| Field Name | Type | Description |
+===============+=========================+=====================+
| experiment_id | STRING | Experiment id. |
+---------------+-------------------------+---------------------+
| user_id | STRING | User id. |
+---------------+-------------------------+---------------------+
| permission | :ref:mlflowPermission | Permission granted. |
+---------------+-------------------------+---------------------+
.. _mlflowRegisteredModelPermission:
+------------+-------------------------+------------------------+
| Field Name | Type | Description |
+============+=========================+========================+
| name | STRING | Registered model name. |
+------------+-------------------------+------------------------+
| user_id | STRING | User id. |
+------------+-------------------------+------------------------+
| permission | :ref:mlflowPermission | Permission granted. |
+------------+-------------------------+------------------------+