MaxScale/Documentation/REST-API/Resources-User.md
Markus Mäkelä e0076ca8a5 MXS-1220: Fix request methods for user creation
The creation of network users and enabling of UNIX accounts documented PUT
as the method for enabling them when the commands actually used POST.
2017-07-10 22:23:45 +03:00

4.3 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",
        "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",
            "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"
    },
    "data": [
        {
            "id": "maxscale",
            "type": "unix",
            "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",
            "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
            "relationships": {
                "self": "http://localhost:8989/v1/users/inet/my-user"
            }
        },
        {
            "id": "maxscale",
            "type": "unix", // A local UNIX account
            "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 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 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.

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

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 and /data/type fields must be defined.
  • The /data/id field defines the name of the account
  • The value of the /data/type field must always be unix.

Here is an example request body enabling the UNIX account jdoe.

{
    "data": {
        "id": "jdoe",
        "type": "unix"
    }
}

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