285 lines
4.8 KiB
Markdown
285 lines
4.8 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 /v1/users/inet/:name
|
|
```
|
|
|
|
Get a single network user. The The _:name_ in the URI must be a valid network
|
|
user 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 /v1/users/inet
|
|
```
|
|
|
|
Get all network users.
|
|
|
|
#### 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 /v1/users/unix/:name
|
|
```
|
|
|
|
Get a single enabled UNIX account. The The _:name_ in the URI must be a valid
|
|
UNIX account name that has been enabled.
|
|
|
|
#### 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 /v1/users/unix
|
|
```
|
|
|
|
Get all enabled UNIX accounts.
|
|
|
|
#### 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 /v1/users
|
|
```
|
|
|
|
Get all administrative users. This fetches both network users and local UNIX
|
|
accounts.
|
|
|
|
#### 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
|
|
|
|
```
|
|
POST /v1/users/inet
|
|
```
|
|
|
|
Create a new network user. The request body must define at least the
|
|
following fields.
|
|
|
|
* `data.id`
|
|
* The username
|
|
|
|
* `data.type`
|
|
* Type of the object, must be `inet`
|
|
|
|
* `data.attributes.password`
|
|
* The password for this user
|
|
|
|
* `data.attributes.account`
|
|
* Set to `admin` for administrative users and `basic` to read-only users
|
|
|
|
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
|
|
|
|
```
|
|
POST /v1/users/unix
|
|
```
|
|
|
|
This enables an existing UNIX account on the system for administrative
|
|
operations. The request body must define at least the following fields.
|
|
|
|
* `data.id`
|
|
* The username
|
|
|
|
* `data.type`
|
|
* Type of the object, must be `unix`
|
|
|
|
* `data.attributes.account`
|
|
* Set to `admin` for administrative users and `basic` to read-only users
|
|
|
|
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
|
|
|
|
```
|
|
DELETE /v1/users/inet/:name
|
|
```
|
|
|
|
The _:name_ part of the URI must be a valid user name.
|
|
|
|
#### Response
|
|
|
|
```
|
|
Status: 204 No Content
|
|
```
|
|
|
|
### Disable a UNIX account
|
|
|
|
```
|
|
DELETE /v1/users/unix/:name
|
|
```
|
|
|
|
The _:name_ part of the URI must be a valid user name.
|
|
|
|
#### Response
|
|
|
|
```
|
|
Status: 204 No Content
|
|
```
|