
Updated the users resource documentation with the new changes that were added when user authorization was added.
281 lines
5.1 KiB
Markdown
281 lines
5.1 KiB
Markdown
# 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`
|
|
|
|
```javascript
|
|
{
|
|
"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`
|
|
|
|
```javascript
|
|
{
|
|
"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`
|
|
|
|
```javascript
|
|
{
|
|
"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`
|
|
|
|
```javascript
|
|
{
|
|
"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`
|
|
|
|
```javascript
|
|
{
|
|
"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.
|
|
|
|
```javascript
|
|
{
|
|
"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.
|
|
|
|
```javascript
|
|
{
|
|
"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
|
|
```
|