MaxScale/Documentation/REST-API/Resources-User.md
Markus Mäkelä c0411445a8 MXS-1390: Update users resource documentation
Updated the users resource documentation with the new changes that were
added when user authorization was added.
2017-09-11 12:49:11 +03:00

5.1 KiB

Admin User Resource

Admin users represent administrative users that are able to query and change MaxScale's configuration.

Resource Operations

Get network user

Get a single network user. The The :name in the URI must be a valid network user name.

GET /v1/users/inet/:name

Response

Status: 200 OK

{
    "links": {
        "self": "http://localhost:8989/v1/users/inet/my-user"
    },
    "data": {
        "id": "my-user",
        "type": "inet",
        "attributes": {
            "account": "admin"
        },
        "relationships": {
            "self": "http://localhost:8989/v1/users/inet/my-user"
        }
    }
}

Get all network users

Get all network users.

GET /v1/users/inet

Response

Status: 200 OK

{
    "links": {
        "self": "http://localhost:8989/v1/users/inet"
    },
    "data": [
        {
            "id": "my-user",
            "type": "inet",
            "attributes": {
                "account": "admin"
            },
            "relationships": {
                "self": "http://localhost:8989/v1/users/inet/my-user"
            }
        }
    ]
}

Get enabled UNIX account

Get a single enabled UNIX account. The The :name in the URI must be a valid UNIX account name that has been enabled.

GET /v1/users/unix/:name

Response

Status: 200 OK

{
    "links": {
        "self": "http://localhost:8989/v1/users/unix/maxscale"
    },
    "data": {
        "id": "maxscale",
        "type": "unix",
        "attributes": {
            "account": "basic"
        },
        "relationships": {
            "self": "http://localhost:8989/v1/users/unix/maxscale"
        }
    }
}

Get all enabled UNIX accounts

Get all enabled UNIX accounts.

GET /v1/users/unix

Response

Status: 200 OK

{
    "links": {
        "self": "http://localhost:8989/v1/users/unix"
    },
    "data": [
        {
            "id": "maxscale",
            "type": "unix",
            "attributes": {
                "account": "admin"
            },
            "relationships": {
                "self": "http://localhost:8989/v1/users/unix/maxscale"
            }
        }
    ]
}

Get all users

Get all administrative users. This fetches both network users and local UNIX accounts.

GET /v1/users

Response

Status: 200 OK

{
    "links": {
        "self": "http://localhost:8989/v1/users/"
    },
    "data": [ // List of all users
        {
            "id": "my-user",
            "type": "inet", // A network user
            "attributes": {
                "account": "admin"
            },
            "relationships": {
                "self": "http://localhost:8989/v1/users/inet/my-user"
            }
        },
        {
            "id": "maxscale",
            "type": "unix", // A local UNIX account
            "attributes": {
                "account": "admin"
            },
            "relationships": {
                "self": "http://localhost:8989/v1/users/unix/maxscale"
            }
        }
    ]
}

Create a network user

Create a new network user.

POST /v1/users/inet

The request body must fulfill the following requirements.

  • The /data/id, /data/type, /data/attributes/account and /data/attributes/password fields must be defined.
  • The /data/id field defines the name of the account
  • The /data/attributes/password field defines the password for this user.
  • The /data/attributes/account field should be set to admin for administrative users and basic to read-only users.
  • The value of the /data/type field must always be inet.

Here is an example request body defining the network user my-user with the password my-password that is allowed to execute only read-only operations.

{
    "data": {
        "id": "my-user",
        "type": "inet",
        "attributes": {
            "password": "my-password",
            "account": "basic"
        }
    }
}

Response

Status: 204 No Content

Enable a UNIX account

This enables an existing UNIX account on the system for administrative operations.

POST /v1/users/unix

The request body must fulfill the following requirements.

  • The /data/id, /data/type and /data/attributes/account fields must be defined.
  • The /data/id field defines the name of the account
  • The /data/attributes/account field should be set to admin for administrative users and basic to read-only users.
  • The value of the /data/type field must always be unix.

Here is an example request body enabling the UNIX account jdoe for read-only operations.

{
    "data": {
        "id": "jdoe",
        "type": "unix"
        "attributes": {
            "account": "basic"
        }
    }
}

Response

Status: 204 No Content

Delete a network user

The :name part of the URI must be a valid user name.

DELETE /v1/users/inet/:name

Response

Status: 204 No Content

Disable a UNIX account

The :name part of the URI must be a valid user name.

DELETE /v1/users/unix/:name

Response

Status: 204 No Content