Dynamic Security
Manage the dynamic security functionality of brokers
Available API Paths
Path: /api/dynamic-security/{brokerId}/command
Methods
POST
Executes a command on the specified broker. Must be editor to access
Parameters
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| brokerId | path | string | true | ID of the broker where the command will be executed |
Parameters
| Name | Required | Type | Request Properties or Schema |
| body | true | object | Command object. For more information on commands refer to the dynamic security section of the official Mosquitto Cedalo documentation. Properties: Optional properties: |
Responses
| Status | Description | Response Content or Scheme |
| 200 | Command execution result | |
Example
{
"command": "listRoles",
"data": {
"totalCount": 8,
"roles": [
"client",
"dynsec-admin",
"inspect-admin",
"license-admin",
"streams-admin",
"super-admin",
"sys-observe",
"topic-observe"
]
}
}
| Status | Description | Response Content or Scheme |
| 401 | Access to resource is denied. User not authenticated (logged in) or session expired | |
| 404 | Plugin is not enabled or not found | |
| 409 | Requested entity does not exists or was removed | |
| 500 | An internal server error has occured | |
Path: /api/dynamic-security/{brokerId}/export
Methods
GET
Retrieves the dynamic security data for the specified broker. Must be editor to access
Parameters
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| brokerId | path | string | true | ID of the broker you want to get the dynamic security data for |
Responses
| Status | Description | Response Content or Scheme |
| 200 | Dynamic security data (broker clients, groups, roles and their ACLs) | |
Example
{
"clients": {
"command": "listClients",
"data": {
"totalCount": 2,
"clients": [
{
"username": "admin",
"textname": "Admin user",
"roles": [
{
"rolename": "super-admin"
},
{
"rolename": "sys-observe"
},
{
"rolename": "topic-observe"
}
],
"groups": [],
"connections": [
{
"address": "111.111.111.111"
}
]
},
{
"username": "democlient",
"textname": "Demonstration client with full read/write access to the '#' topic hierarchy.",
"roles": [
{
"rolename": "client"
}
],
"groups": [],
"connections": []
}
]
}
},
"groups": {
"command": "listGroups",
"data": {
"totalCount": 2,
"groups": [
{
"groupname": "test",
"textname": "test",
"textdescription": "",
"clients": [],
"roles": []
},
{
"groupname": "unauthenticated",
"textname": "Unauthenticated group",
"textdescription": "If unauthenticated access is allowed, this group can be used to define roles for clients that connect without a password.",
"clients": [],
"roles": []
}
]
}
},
"roles": {
"command": "listRoles",
"data": {
"totalCount": 4,
"roles": [
{
"rolename": "client",
"textdescription": "Read/write access to the full application topic hierarchy.",
"allowwildcardsubs": true,
"acls": [
{
"acltype": "publishClientSend",
"topic": "#",
"priority": 0,
"allow": true
},
{
"acltype": "publishClientReceive",
"topic": "#",
"priority": 0,
"allow": true
},
{
"acltype": "subscribePattern",
"topic": "#",
"priority": 0,
"allow": true
},
{
"acltype": "unsubscribePattern",
"topic": "#",
"priority": 0,
"allow": true
}
]
},
{
"rolename": "super-admin",
"textdescription": "Grants access to administer all kind of broker controls",
"allowwildcardsubs": true,
"acls": [
{
"acltype": "publishClientSend",
"topic": "$CONTROL/#",
"priority": 0,
"allow": true
},
{
"acltype": "publishClientReceive",
"topic": "$CONTROL/#",
"priority": 0,
"allow": true
},
{
"acltype": "subscribePattern",
"topic": "$CONTROL/#",
"priority": 0,
"allow": true
},
{
"acltype": "unsubscribePattern",
"topic": "$CONTROL/#",
"priority": 0,
"allow": true
}
]
},
{
"rolename": "sys-observe",
"textdescription": "Observe the $SYS topic hierarchy.",
"allowwildcardsubs": true,
"acls": [
{
"acltype": "publishClientReceive",
"topic": "$SYS/#",
"priority": 0,
"allow": true
},
{
"acltype": "subscribePattern",
"topic": "$SYS/#",
"priority": 0,
"allow": true
}
]
},
{
"rolename": "topic-observe",
"textdescription": "Read only access to the full application topic hierarchy.",
"allowwildcardsubs": true,
"acls": [
{
"acltype": "publishClientReceive",
"topic": "#",
"priority": 0,
"allow": true
},
{
"acltype": "subscribePattern",
"topic": "#",
"priority": 0,
"allow": true
},
{
"acltype": "unsubscribePattern",
"topic": "#",
"priority": 0,
"allow": true
}
]
}
]
}
}
}
| Status | Description | Response Content or Scheme |
| 401 | Access to resource is denied. User not authenticated (logged in) or session expired | |
| 404 | Plugin is not enabled or not found | |
| 409 | Requested entity does not exists or was removed | |
| 500 | Broker is unavailable or some other error has occured | |