Chariot MQTT Server (2.1.0)

Download OpenAPI specification:

License: Apache 2.0

Chariot MQTT Server is a MQTT 3.1.1 compliant, Sparkplug aware MQTT server. The Chariot REST interface is described below.

eula

Chariot server EULA

Get EULA acceptance state

EULA state can be queried at any time

Responses

Response samples

Content type
application/json;api-version=1.0
{
  • "acceptedOn": 1588703796554,
  • "isAccepted": true,
  • "name": "ChariotEula"
}

Accept the EULA

The must be done before any other REST calls are allowed

Request Body schema: application/json;api-version=1.0
required

EULA accept object

isAccepted
required
boolean

Responses

Request samples

Content type
application/json;api-version=1.0
{
  • "isAccepted": true
}

Response samples

Content type
application/json;api-version=1.0
{
  • "acceptedOn": 1588703796554,
  • "isAccepted": true,
  • "name": "ChariotEula"
}

authentication

Chariot server authentication

Log in

Logs user into the system

Authorizations:
basicAuth

Responses

Response samples

Content type
application/json;api-version=1.0
{
  • "access_token": "qoJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsImlzcyI6ImNpcnJ1c2xpbmsiLCJzZXNzaW9uaWQiOiJhNTFjNWQ4Ni1jZWUxLTRjODItOTNjYi0yOTk5MjVjZWViY2MrfQ.cLPD7Uddz_JF3s7Rk3Yyc232Arnz6Qcg2Id0tstouh0wbcv50mck2vzH8iFkkAwKcMaWi8gLN-NIsLCRuW7Qzz",
  • "token_type": "bearer",
  • "expires_in": 5400000
}

Log out

Logs out currently logged in user

Authorizations:
bearerAuth

Responses

user

Chariot server users

Get all users

Get all Chariot server users

Authorizations:
bearerAuth
query Parameters
limit
integer

Maximum number of records to retrieve

offset
integer

The user record offset when specifying a limit

Responses

Response samples

Content type
application/json;api-version=1.0
{
  • "info": {
    },
  • "results": [
    ]
}

Create users

Create Chariot server users

Authorizations:
bearerAuth
Request Body schema: application/json
required

List of users

Array
username
required
string
password
required
string
roles
Array of strings
firstName
string
lastName
string
phoneNumber
string
email
string
object (Address)
company
string

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json;api-version=1.0
[
  • {
    }
]

Get user

Get Chariot server user by name

Authorizations:
bearerAuth
path Parameters
username
required
string

The name of the user to be retrieved

Responses

Response samples

Content type
{
  • "username": "chariot-user1",
  • "password": "mqtt4ever",
  • "roles": [
    ],
  • "firstName": "John",
  • "lastName": "Smith",
  • "phoneNumber": "13605555555",
  • "email": "john.smith@test-email.com",
  • "address": {
    },
  • "company": "Cirrus Link"
}

Update user

Update Chariot server user

Authorizations:
bearerAuth
path Parameters
username
required
string

The name of the user to be updated

Request Body schema: application/json
required

Updated user object

username
required
string
password
required
string
roles
Array of strings
firstName
string
lastName
string
phoneNumber
string
email
string
object (Address)
company
string

Responses

Request samples

Content type
application/json
{
  • "username": "chariot-user1",
  • "password": "mqtt4ever",
  • "roles": [
    ],
  • "firstName": "John",
  • "lastName": "Smith",
  • "phoneNumber": "13605555555",
  • "email": "john.smith@test-email.com",
  • "address": {
    },
  • "company": "Cirrus Link"
}

Response samples

Content type
application/json;api-version=1.0
{
  • "username": "chariot-user1",
  • "password": "mqtt4ever",
  • "roles": [
    ],
  • "firstName": "John",
  • "lastName": "Smith",
  • "phoneNumber": "13605555555",
  • "email": "john.smith@test-email.com",
  • "address": {
    },
  • "company": "Cirrus Link"
}

Create user

Create Chariot server user

Authorizations:
bearerAuth
path Parameters
username
required
string

Username for the user to be created

Request Body schema: application/json
required

Created user object

username
required
string
password
required
string
roles
Array of strings
firstName
string
lastName
string
phoneNumber
string
email
string
object (Address)
company
string

Responses

Request samples

Content type
application/json
{
  • "username": "chariot-user1",
  • "password": "mqtt4ever",
  • "roles": [
    ],
  • "firstName": "John",
  • "lastName": "Smith",
  • "phoneNumber": "13605555555",
  • "email": "john.smith@test-email.com",
  • "address": {
    },
  • "company": "Cirrus Link"
}

Response samples

Content type
application/json;api-version=1.0
{
  • "username": "chariot-user1",
  • "password": "mqtt4ever",
  • "roles": [
    ],
  • "firstName": "John",
  • "lastName": "Smith",
  • "phoneNumber": "13605555555",
  • "email": "john.smith@test-email.com",
  • "address": {
    },
  • "company": "Cirrus Link"
}

Delete user

Delete Chariot server user

Authorizations:
bearerAuth
path Parameters
username
required
string

The name of the user to be deleted

Responses

Response samples

Content type
application/json;api-version=1.0
{
  • "username": "chariot-user1",
  • "password": "mqtt4ever",
  • "roles": [
    ],
  • "firstName": "John",
  • "lastName": "Smith",
  • "phoneNumber": "13605555555",
  • "email": "john.smith@test-email.com",
  • "address": {
    },
  • "company": "Cirrus Link"
}

Get the logged in user details

Get the logged in user details

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json;api-version=1.0
{
  • "username": "chariot-user1",
  • "roles": [
    ],
  • "firstName": "John",
  • "lastName": "Smith",
  • "email": "john.smith@test-email.com",
  • "address": {
    },
  • "company": "Cirrus Link"
}

mqttuser

Chariot server MQTT users

Get all MQTT users

Get all Chariot server MQTT users

Authorizations:
bearerAuth
query Parameters
limit
integer

Maximum number of records to retrieve

offset
integer

The record offset when specifying a limit

Responses

Response samples

Content type
application/json;api-version=1.0
{
  • "info": {
    },
  • "results": [
    ]
}

Create MQTT users

Chariot Chariot server MQTT users

Authorizations:
bearerAuth
Request Body schema: application/json
required

List of MQTT user objects

Array
username
required
string
password
required
string
object

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json;api-version=1.0
[
  • {
    }
]

Get MQTT user

Get Chariot server MQTT user by name

Authorizations:
bearerAuth
path Parameters
username
required
string

The name of the user to be retrieved

Responses

Response samples

Content type
application/json;api-version=1.0
{
  • "username": "admin",
  • "acl": {
    }
}

Update MQTT user

Update Chariot server MQTT user by name

Authorizations:
bearerAuth
path Parameters
username
required
string

The name of the user to be updated

Request Body schema: application/json
required

Updated user object

username
required
string
password
required
string
object

Responses

Request samples

Content type
application/json
{
  • "username": "admin",
  • "password": "mqtt4ever",
  • "acl": {
    }
}

Response samples

Content type
application/json;api-version=1.0
{
  • "username": "admin",
  • "acl": {
    }
}

Create MQTT user

Create Chariot server MQTT user

Authorizations:
bearerAuth
path Parameters
username
required
string

The name of the user to be created

Request Body schema: application/json
required

Created MQTT user object

username
required
string
password
required
string
object

Responses

Request samples

Content type
application/json
{
  • "username": "admin",
  • "password": "mqtt4ever",
  • "acl": {
    }
}

Response samples

Content type
application/json;api-version=1.0
{
  • "username": "admin",
  • "acl": {
    }
}

Delete MQTT user

Delete Chariot server MQTT user by name

Authorizations:
bearerAuth
path Parameters
username
required
string

The name of the user to be deleted

Responses

Response samples

Content type
application/json;api-version=1.0
{
  • "username": "admin",
  • "acl": {
    }
}

role

Chariot server user roles

Get all roles

Get all Chariot server roles

Authorizations:
bearerAuth
query Parameters
limit
integer

Maximum number of records to retrieve

offset
integer

The record offset when specifying a limit

Responses

Response samples

Content type
application/json;api-version=1.0
{
  • "info": {
    },
  • "results": [
    ]
}

Create roles

Create Chariot server roles

Authorizations:
bearerAuth
Request Body schema: application/json
required

List of role objects

Array
name
required
string
permissions
required
Array of strings

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json;api-version=1.0
[
  • {
    }
]

Get role

Get Chariot server role by name

Authorizations:
bearerAuth
path Parameters
rolename
required
string

The name of the role to be retrieved

Responses

Response samples

Content type
application/json;api-version=1.0
{
  • "name": "admin",
  • "permissions": [
    ]
}

Update role

Update Chariot role by name

Authorizations:
bearerAuth
path Parameters
rolename
required
string

name of role that needs to be updated

Request Body schema: application/json
required

Role object to be updated

name
required
string
permissions
required
Array of strings

Responses

Request samples

Content type
application/json
{
  • "name": "admin",
  • "permissions": [
    ]
}

Response samples

Content type
application/json;api-version=1.0
{
  • "name": "admin",
  • "permissions": [
    ]
}

Create role

Create Chariot server role

Authorizations:
bearerAuth
path Parameters
rolename
required
string

Name of role to be created

Request Body schema: application/json
required

Role object to be created

name
required
string
permissions
required
Array of strings

Responses

Request samples

Content type
application/json
{
  • "name": "admin",
  • "permissions": [
    ]
}

Response samples

Content type
application/json;api-version=1.0
{
  • "name": "admin",
  • "permissions": [
    ]
}

Delete role

Delete Chariot server role by name

Authorizations:
bearerAuth
path Parameters
rolename
required
string

The name of the role to be deleted

Responses

Response samples

Content type
application/json;api-version=1.0
{
  • "name": "admin",
  • "permissions": [
    ]
}

permission

Chariot server permissions

Get all permissions

Gets all permissions allowed by the caller

Authorizations:
bearerAuth

Responses

Response samples

Content type
[
  • "permission:read"
]

Get server state

Get the state of the Chariot MQTT server

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json;api-version=1.0
{
  • "running": true,
  • "lastStartedOn": 1586824096739,
  • "lastStoppedOn": 1586824096739,
  • "bridgeClients": [
    ]
}

Run server action

Run Chariot MQTT server action

Authorizations:
bearerAuth
query Parameters
action
string
Enum: "start" "stop" "disconnect"

The action to be performed, if any

clientId
string

The MQTT client id when action=disconnect

Responses

Response samples

Content type
application/json;api-version=1.0
{
  • "running": true,
  • "lastStartedOn": 1586824096739,
  • "lastStoppedOn": 1586824096739,
  • "bridgeClients": [
    ]
}

Get server status

Get the status of the Chariot MQTT server

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json;api-version=1.0
{
  • "running": true,
  • "lastStartedOn": 1586824096739,
  • "lastStoppedOn": 1586824096739,
  • "bridgeClients": [
    ]
}

Get server clients

Get Chariot MQTT server active clients

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json;api-version=1.0
{
  • "activeClients": 10,
  • "clients": [
    ]
}

bridging

Chariot server - Bridging

Get all bridge clients

Get all bridge clients

Authorizations:
bearerAuth
query Parameters
limit
integer

The number of bridge clients requested

offset
integer

The bridge client offset when specifying a limit

Responses

Response samples

Content type
application/json;api-version=1.0
{
  • "info": {
    },
  • "results": {
    }
}

Add new bridge clients

Authorizations:
bearerAuth
Request Body schema: application/json

Bridge client details

Array
name
required
string
username
string
password
string
address
required
string
port
required
integer
clientId
string
keepAlive
required
integer
cleanSession
required
boolean
allowRetained
required
boolean
tryPrivate
required
boolean
subTopics
string
pubTopics
string
useTls
required
boolean
enabled
required
boolean

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json;api-version=1.0
[
  • {
    }
]

Get a bridge client by name

Retrieves a bridge client details by name

Authorizations:
bearerAuth
path Parameters
clientName
required
string

The bridge client name

Responses

Response samples

Content type
application/json;api-version=1.0
{
  • "name": "client1",
  • "username": "client1Username",
  • "password": "password",
  • "address": "localhost",
  • "port": 1883,
  • "clientId": "BRIDGE_01",
  • "keepAlive": 30,
  • "cleanSession": true,
  • "allowRetained": true,
  • "tryPrivate": true,
  • "subTopics": "subTopic1, subTopic2, subTopic3",
  • "pubTopics": "pubTopic1, pubTopic2, pubTopic3",
  • "useTls": false,
  • "enabled": true
}

Update a bridge client

This updates the specified bridge client

Authorizations:
bearerAuth
path Parameters
clientName
required
string

The bridge client name

Request Body schema: application/json

Updated bridge client details. Name should not be changed.

name
required
string
username
string
password
string
address
required
string
port
required
integer
clientId
string
keepAlive
required
integer
cleanSession
required
boolean
allowRetained
required
boolean
tryPrivate
required
boolean
subTopics
string
pubTopics
string
useTls
required
boolean
enabled
required
boolean

Responses

Request samples

Content type
application/json
{
  • "name": "client1",
  • "username": "client1Username",
  • "password": "password",
  • "address": "localhost",
  • "port": 1883,
  • "clientId": "BRIDGE_01",
  • "keepAlive": 30,
  • "cleanSession": true,
  • "allowRetained": true,
  • "tryPrivate": true,
  • "subTopics": "subTopic1, subTopic2, subTopic3",
  • "pubTopics": "pubTopic1, pubTopic2, pubTopic3",
  • "useTls": false,
  • "enabled": true
}

Response samples

Content type
application/json;api-version=1.0
{
  • "name": "client1",
  • "username": "client1Username",
  • "password": "password",
  • "address": "localhost",
  • "port": 1883,
  • "clientId": "BRIDGE_01",
  • "keepAlive": 30,
  • "cleanSession": true,
  • "allowRetained": true,
  • "tryPrivate": true,
  • "subTopics": "subTopic1, subTopic2, subTopic3",
  • "pubTopics": "pubTopic1, pubTopic2, pubTopic3",
  • "useTls": false,
  • "enabled": true
}

Create a bridge client

This creates a bridge client

Authorizations:
bearerAuth
path Parameters
clientName
required
string

The bridge client name

Request Body schema: application/json

Bridge client details

name
required
string
username
string
password
string
address
required
string
port
required
integer
clientId
string
keepAlive
required
integer
cleanSession
required
boolean
allowRetained
required
boolean
tryPrivate
required
boolean
subTopics
string
pubTopics
string
useTls
required
boolean
enabled
required
boolean

Responses

Request samples

Content type
application/json
{
  • "name": "client1",
  • "username": "client1Username",
  • "password": "password",
  • "address": "localhost",
  • "port": 1883,
  • "clientId": "BRIDGE_01",
  • "keepAlive": 30,
  • "cleanSession": true,
  • "allowRetained": true,
  • "tryPrivate": true,
  • "subTopics": "subTopic1, subTopic2, subTopic3",
  • "pubTopics": "pubTopic1, pubTopic2, pubTopic3",
  • "useTls": false,
  • "enabled": true
}

Response samples

Content type
application/json;api-version=1.0
{
  • "name": "client1",
  • "username": "client1Username",
  • "password": "password",
  • "address": "localhost",
  • "port": 1883,
  • "clientId": "BRIDGE_01",
  • "keepAlive": 30,
  • "cleanSession": true,
  • "allowRetained": true,
  • "tryPrivate": true,
  • "subTopics": "subTopic1, subTopic2, subTopic3",
  • "pubTopics": "pubTopic1, pubTopic2, pubTopic3",
  • "useTls": false,
  • "enabled": true
}

Delete a bridge client

This deletes a bridge client

Authorizations:
bearerAuth
path Parameters
clientName
required
string

The bridge client name

Responses

Response samples

Content type
application/json;api-version=1.0
{
  • "name": "client1",
  • "username": "client1Username",
  • "password": "password",
  • "address": "localhost",
  • "port": 1883,
  • "clientId": "BRIDGE_01",
  • "keepAlive": 30,
  • "cleanSession": true,
  • "allowRetained": true,
  • "tryPrivate": true,
  • "subTopics": "subTopic1, subTopic2, subTopic3",
  • "pubTopics": "pubTopic1, pubTopic2, pubTopic3",
  • "useTls": false,
  • "enabled": true
}

config

Chariot server configuration

Get the server configuration

Get the Chariot MQTT server configuration

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json;api-version=1.0
{
  • "maxConnectSize": 268435455,
  • "webSocketEnable": false,
  • "secureProtocol": "TLSv1.2",
  • "clientAuthPolicy": "none",
  • "maxActiveClients": 2147483647,
  • "webSocketSecurePort": 8091,
  • "enableSecure": false,
  • "securePort": 8883,
  • "sslHandshakeTimeout": 10000,
  • "redeliveryInterval": 1000,
  • "maxClientIdLength": 65535,
  • "connectTimeout": 10000,
  • "keepAliveCheckInterval": 1000,
  • "maxMessageSize": 268435455,
  • "webSocketEnableSecure": false,
  • "anonymousAuthUsername": "anonymous",
  • "enableNonSecure": true,
  • "bindAddress": "0.0.0.0",
  • "allowAnonymous": false,
  • "maxTopicLevels": 25,
  • "messageThreads": 1,
  • "maxTopicLength": 65535,
  • "port": 1883,
  • "allowEmptyClientId": false,
  • "webSocketPort": 8090
}

Update server configuration

Update Chariot MQTT server configuration

Authorizations:
bearerAuth
Request Body schema: application/json;api-version=1.0
required

The server configuration

maxConnectSize
required
integer
webSocketEnable
required
boolean
secureProtocol
required
string
clientAuthPolicy
required
string
maxActiveClients
required
integer
webSocketSecurePort
required
integer
enableSecure
required
boolean
securePort
required
integer
sslHandshakeTimeout
required
integer

(in milliseconds)

redeliveryInterval
required
integer
maxClientIdLength
required
integer
connectTimeout
required
integer

(in milliseconds)

keepAliveCheckInterval
required
integer

(in milliseconds)

maxMessageSize
required
integer
webSocketEnableSecure
required
boolean
anonymousAuthUsername
required
string
enableNonSecure
required
boolean
bindAddress
required
string
allowAnonymous
required
boolean
maxTopicLevels
required
integer
messageThreads
required
integer
maxTopicLength
required
integer
port
required
integer
allowEmptyClientId
required
boolean
webSocketPort
required
integer

Responses

Request samples

Content type
application/json;api-version=1.0
{
  • "maxConnectSize": 268435455,
  • "webSocketEnable": false,
  • "secureProtocol": "TLSv1.2",
  • "clientAuthPolicy": "none",
  • "maxActiveClients": 2147483647,
  • "webSocketSecurePort": 8091,
  • "enableSecure": false,
  • "securePort": 8883,
  • "sslHandshakeTimeout": 10000,
  • "redeliveryInterval": 1000,
  • "maxClientIdLength": 65535,
  • "connectTimeout": 10000,
  • "keepAliveCheckInterval": 1000,
  • "maxMessageSize": 268435455,
  • "webSocketEnableSecure": false,
  • "anonymousAuthUsername": "anonymous",
  • "enableNonSecure": true,
  • "bindAddress": "0.0.0.0",
  • "allowAnonymous": false,
  • "maxTopicLevels": 25,
  • "messageThreads": 1,
  • "maxTopicLength": 65535,
  • "port": 1883,
  • "allowEmptyClientId": false,
  • "webSocketPort": 8090
}

Response samples

Content type
application/json;api-version=1.0
{
  • "maxConnectSize": 268435455,
  • "webSocketEnable": false,
  • "secureProtocol": "TLSv1.2",
  • "clientAuthPolicy": "none",
  • "maxActiveClients": 2147483647,
  • "webSocketSecurePort": 8091,
  • "enableSecure": false,
  • "securePort": 8883,
  • "sslHandshakeTimeout": 10000,
  • "redeliveryInterval": 1000,
  • "maxClientIdLength": 65535,
  • "connectTimeout": 10000,
  • "keepAliveCheckInterval": 1000,
  • "maxMessageSize": 268435455,
  • "webSocketEnableSecure": false,
  • "anonymousAuthUsername": "anonymous",
  • "enableNonSecure": true,
  • "bindAddress": "0.0.0.0",
  • "allowAnonymous": false,
  • "maxTopicLevels": 25,
  • "messageThreads": 1,
  • "maxTopicLength": 65535,
  • "port": 1883,
  • "allowEmptyClientId": false,
  • "webSocketPort": 8090
}

Get the system configuration

Get the Chariot server system configuration

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json;api-version=1.0
{
  • "chariotServerName": "Cirrus Link Chariot MQTT Server",
  • "chariotVersionFile": "version.properties",
  • "httpEnabled": true,
  • "httpPort": 8080,
  • "httpsEnabled": false,
  • "httpsPort": 8443
}

Update system configuration

Update the Chariot server system configuration

Authorizations:
bearerAuth
Request Body schema: application/json
required

The system configuration

chariotServerName
required
string
chariotVersionFile
required
string
httpEnabled
required
boolean
httpPort
required
integer
httpsEnabled
required
boolean
httpsPort
required
integer

Responses

Request samples

Content type
application/json
{
  • "chariotServerName": "Cirrus Link Chariot MQTT Server",
  • "chariotVersionFile": "version.properties",
  • "httpEnabled": true,
  • "httpPort": 8080,
  • "httpsEnabled": false,
  • "httpsPort": 8443
}

Response samples

Content type
application/json;api-version=1.0
{
  • "code": 0,
  • "message": "string"
}

Get the Sparkplug configuration

Get the Chariot server Sparkplug Tracking configuration

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json;api-version=1.0
{
  • "enabled": true
}

license

Chariot server licensing

Get the license

Get the Chariot server license

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json;api-version=1.0
{
  • "licenseId": "1581813888962",
  • "expiresOn": 10221727488962,
  • "activatedOn": 1591722778404,
  • "onlineActivation": true,
  • "activationPeriod": 90,
  • "state": "ACTIVE",
  • "trialTimer": 4678128,
  • "requestText": "string",
  • "mode": "NORMAL"
}

Install and configure the license

Install and configure (activate/deactivate) the Chariot server license

Authorizations:
bearerAuth
query Parameters
action
required
string
Enum: "activate" "deactivate" "manual-activate" "get-manual-activation-request" "get-manual-deactivation-request" "start-trial-timer" "stop-trial-timer"

The action to be performed, if any

Request Body schema: application/json
optional

The license text

text
required
string <byte> ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[...

Responses

Request samples

Content type
application/json
{
  • "text": "PEM encoded license certificate file in OpenSSL/SSLeay format"
}

Response samples

Content type
application/json;api-version=1.0
{
  • "licenseId": "1581813888962",
  • "expiresOn": 10221727488962,
  • "activatedOn": 1591722778404,
  • "onlineActivation": true,
  • "activationPeriod": 90,
  • "state": "ACTIVE",
  • "trialTimer": 4678128,
  • "requestText": "string",
  • "mode": "NORMAL"
}

system

Chariot server system configuration

Get system status

Returns the system status

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json;api-version=1.0
{
  • "jvmName": "OpenJDK 64-Bit Server VM",
  • "jvmVersion": "11.0.6+10-LTS",
  • "jvmVendor": "Amazon.com Inc.",
  • "chariotVersion": "1.0.0",
  • "buildTimestamp": "20200630-191950",
  • "chariotServerName": "Cirrus Link Charifot MQTT Server",
  • "jvmMemory": {
    },
  • "cpu": {
    }
}

Get system SSL status

Returns the system SSL status

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json;api-version=1.0
{
  • "setupOn": 1628201523389,
  • "privateKeyFilename": "localhost.key.pem",
  • "caChainFilename": "ca-chain.cert.pem",
  • "certificateFilename": "localhost.cert.pem",
  • "certificate": {
    },
  • "sslSetup": true
}

Enable system SSL for secure communication

Configure the system to consume SSL certificates uploaded through the /upload endpoint.

Authorizations:
bearerAuth
query Parameters
action
string
Value: "setup"

Responses

Response samples

Content type
application/json;api-version=1.0
{
  • "setupOn": 1628201523389,
  • "privateKeyFilename": "localhost.key.pem",
  • "caChainFilename": "ca-chain.cert.pem",
  • "certificateFilename": "localhost.cert.pem",
  • "certificate": {
    },
  • "sslSetup": true
}

Disable system SSL

Disables system SSL

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json;api-version=1.0
{
  • "setupOn": 1628201523389,
  • "privateKeyFilename": "localhost.key.pem",
  • "caChainFilename": "ca-chain.cert.pem",
  • "certificateFilename": "localhost.cert.pem",
  • "certificate": {
    },
  • "sslSetup": true
}

logging

Chariot server log configuration and download

Get all logger levels

Get all Chariot loggers and their log levels

Authorizations:
bearerAuth
query Parameters
modified
boolean

whether the logger is modified or not

Responses

Response samples

Content type
application/json;api-version=1.0
[
  • {
    }
]

Run logger action

Execute an action against the Chariot loggers to changed log levels

Authorizations:
bearerAuth
query Parameters
action
string
Enum: "export" "setLevel"

The action to be performed, if any

level
string
Enum: "NONE" "ERROR" "WARN" "INFO" "DEBUG" "TRACE"

The logger level to set, if any

name
string

The logger name

Responses

Response samples

Content type
application/json;api-version=1.0
{
  • "level": "NONE",
  • "name": "com.cirruslink.chariot.logging.impl.LoggingService"
}

Get logger level

Get Chariot logger and its log level

Authorizations:
bearerAuth
path Parameters
logger
required
string

the logger requested

Responses

Response samples

Content type
application/json;api-version=1.0
[
  • {
    }
]

Get logs

Get all or some of the log entries

Authorizations:
bearerAuth
query Parameters
limit
integer

The number of log messages requested

maxLevel
string
Enum: "NONE" "ERROR" "WARN" "INFO" "DEBUG" "TRACE"

The max logger level

messageFilter
string

Log message filter (contains)

offset
integer

The log message offset when specifying a limit

Responses

Response samples

Content type
application/json;api-version=1.0
{
  • "info": {
    },
  • "results": [
    ]
}

Get alerts

Get Chariot alerts with the specified limits, filtering and offset

Authorizations:
bearerAuth
query Parameters
limit
integer

The number of alerts requested

descriptionFilter
string

Alert description filter (contains)

offset
integer

The alert offset when specifying a limit

Responses

Response samples

Content type
application/json;api-version=1.0
{
  • "info": {
    },
  • "results": [
    ]
}

Update alert

Update Chariot alert by ID

Authorizations:
bearerAuth
path Parameters
id
required
integer

Alert ID

Request Body schema: */*
required
id
required
integer
description
required
string
cleared
required
boolean
activeTime
required
integer
acknowledged
required
boolean
priority
required
integer
type
required
string

Responses

Response samples

Content type
application/json;api-version=1.0
{
  • "id": 1,
  • "description": "Client MT-RPC-8a14c739-4605-48 connected w/o registering LWT",
  • "cleared": false,
  • "activeTime": 10221727488962,
  • "acknowledged": false,
  • "priority": 3,
  • "type": "MQTT_LWT_NOT_REGISTERED"
}

Delete alert

Delete Chariot alert by ID

Authorizations:
bearerAuth
path Parameters
id
required
integer

Alert ID

Responses

Response samples

Content type
application/json;api-version=1.0
{
  • "id": 1,
  • "description": "Client MT-RPC-8a14c739-4605-48 connected w/o registering LWT",
  • "cleared": false,
  • "activeTime": 10221727488962,
  • "acknowledged": false,
  • "priority": 3,
  • "type": "MQTT_LWT_NOT_REGISTERED"
}

Get alert types

Get all Chariot alert types

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json;api-version=1.0
{
  • "info": {
    },
  • "results": [
    ]
}

Update alert type

Update Chariot alert type by name

Authorizations:
bearerAuth
path Parameters
typename
required
string

Alert type name

Request Body schema: */*
required
enabled
required
boolean
path
required
string
severity
required
integer
name
required
string
priority
required
integer

Responses

Response samples

Content type
application/json;api-version=1.0
{
  • "enabled": true,
  • "path": "SPARKPLUG/GROUP_EDGE_COLLISION",
  • "severity": 1,
  • "name": "SPARKPLUG/GROUP_EDGE_COLLISION",
  • "priority": 1
}

Alert types

List all of the alert types

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json;api-version=1.0
{
  • "types": [
    ]
}

backup

Chariot server configuration - import/export

Run a backup action

Execute an action on the Chariot backup endpoint

Authorizations:
bearerAuth
query Parameters
action
required
string
Enum: "export" "import"

The action to be performed

Request Body schema: multipart/form-data
File
string <binary>

Responses

Response samples

Content type
application/json;api-version=1.0
"string"

Peform an action on the Sparkplug tracker

Perform an action on the Sparkplug tracker

Authorizations:
bearerAuth
query Parameters
action
required
string
Enum: "sampleCompression" "generateEdgeCreds" "generateHostCreds"

The action to be performed

groupId
string

The Group ID of edge node

edgeNodeId
string

The EdgeNode ID of edge node

deviceId
string

The Device ID

duration
integer

The amount of time to sample compression in seconds

Request Body schema: */*
optional

Input for credential generation

username
required
string
password
required
string
primaryId
required
string
required
Array of objects (SparkplugIds)

Responses

Response samples

Content type
application/json;api-version=1.0
{
  • "code": 0,
  • "message": "string"
}

Get Sparkplug status

Get Chariot Sparkplug tracker status

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json;api-version=1.0
{
  • "hostCount": 1,
  • "groupCount": 5,
  • "edgeNodeCount": 100,
  • "deviceCount": 5000
}

Get edge nodes

Get Chariot Sparkplug edge nodes

Authorizations:
bearerAuth
query Parameters
limit
integer
Default: 10

Maximum number of records to retrieve

offset
integer
Default: 0

The record offset when specifying a limit

filterField
string
Enum: "edgeNodeId" "groupId" "clientId" "ipAddress"

The field to filter on

filterValue
string

The filter value

Responses

Response samples

Content type
application/json;api-version=1.0
{
  • "info": {
    },
  • "results": [
    ]
}

Delete edge node(s)

To delete a single Chariot Sparkplug edge node by ID, add the groupId and the edgeNodeId. To delete multiple edge nodes by filter, select filterField and add the filterValue

Authorizations:
bearerAuth
query Parameters
groupId
string

The group ID of single edge node to be deleted

edgeNodeId
string

The Edge Node ID of single edge node to be deleted

filterField
string
Enum: "edgeNodeId" "groupId" "clientId" "ipAddress"

The field to filter on for deleting multiple edge nodes

filterValue
string

The filter value for deleting multiple edge nodes

Responses

Response samples

Content type
application/json;api-version=1.0
[
  • {
    }
]

Delete edge nodes by ID

Delete multiple Chariot Sparkplug edge nodes by ID

Authorizations:
bearerAuth
query Parameters
action
required
string
Default: "delete"

Action = delete

Request Body schema: application/json;api-version=1.0
optional

Describe edge nodes to delete

edgeNodeDescriptors
Array of strings

Responses

Request samples

Content type
application/json;api-version=1.0
{
  • "edgeNodeDescriptors": [
    ]
}

Response samples

Content type
application/json;api-version=1.0
[
  • "Emulated Sparkplug/EdgeNode-13f8e75b-de9b-4f57-2"
]

Get hosts

Get Chariot Sparkplug hosts

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json;api-version=1.0
[
  • {
    }
]

Delete a host

Delete a Chariot Sparkplug host by Primary ID

Authorizations:
bearerAuth
query Parameters
primaryId
required
string

The primary ID of host to be deleted

stateTopic
required
string

The primary ID of host to be deleted

Responses

Response samples

Content type
application/json;api-version=1.0
[
  • {
    }
]

Get NBIRTH

Get Sparkplug edge node NBIRTH

Authorizations:
bearerAuth
query Parameters
groupId
required
string

The Group ID

edgeNodeId
required
string

The Edge Node ID

Responses

Response samples

Content type
application/json;api-version=1.0
{
  • "timestamp": 1628800335767,
  • "metrics": [
    ],
  • "seq": 0
}

Get DBIRTH

Get Sparkplug device DBIRTH

Authorizations:
bearerAuth
query Parameters
groupId
required
string

The Group ID of edge node

edgeNodeId
required
string

The Edge Node ID

deviceId
required
string

The Device ID

Responses

Response samples

Content type
application/json;api-version=1.0
{
  • "timestamp": 1628800335767,
  • "metrics": [
    ],
  • "seq": 6
}

upload

Get uploaded file info

Get info for all files uploaded to the Chariot server

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json;api-version=1.0
[
  • {
    }
]

Upload files to Chariot

The upload REST endpoint enables uploading specific files required for configuring the Chariot MQTT server. For example, SSL certificates and private keys. After uploading certificates, set up SSL with system/ssl?action=setup

Authorizations:
bearerAuth
Request Body schema: multipart/form-data
caChain
string <binary>

An X.509 public root CA (Certificate Authority) certificate and any/all public intermediate CA certificates between the root and the CA that issued the certificate in PEM format. If there are no intermediate CAs, then the chain is made up of only the public root CA certificate.

certificate
string <binary>

An X.509 server certificate in PEM format.

privateKey
string <binary>

An RSA private key in PEM format that was used to generate the server certificate.

Responses

Response samples

Content type
application/json;api-version=1.0
[
  • {
    }
]

Delete uploaded file

Delete file uploaded to Chariot by fileId

Authorizations:
bearerAuth
query Parameters
fileId
required
string

The fileId to be deleted

Responses

Response samples

Content type
application/json;api-version=1.0
{
  • "fileId": "privateKey",
  • "filename": "testKey.pem",
  • "timestamp": 10221727488962
}