Download OpenAPI specification:Download
Maps Messaging Server Rest API, provides simple Rest API to manage and interact with the server
Provides endpoints for managing user authentication and authorisation, including login, logout, token management, and role-based access control to ensure secure interactions with the server.
Retrieves the configuration used to setup the authentication and authorisation. Requires authentication if enabled in the configuration.
{- "authenticationEnabled": true,
- "authorisationEnabled": true,
- "authConfig": { }
}
Updates the configuration used to setup the authentication and authorisation. Requires authentication if enabled in the configuration.
authenticationEnabled | boolean Indicates if authentication is enabled |
authorisationEnabled | boolean Indicates if authorization is enabled |
authConfig | object Configuration properties for authentication |
{- "authenticationEnabled": true,
- "authorisationEnabled": true,
- "authConfig": { }
}
{- "status": "string"
}
Retrieves all currently known groups. Requires authentication if enabled in the configuration.
filter | string Example: filter=name = 'admin' Optional filter string |
{- "data": [
- {
- "name": "admin",
- "uniqueId": "e808afcb-1ff9-46cd-a322-3119dbf1d071",
- "usersList": [
- "83db8741-57ca-4147-a973-49789d9150bb",
- "32708878-2eba-4dec-b5f5-94e63fb45c0d",
- "e59b1a11-73d7-4962-b3be-65715d99b172"
]
}
]
}
Adds a user to a group using the UUID of the user and UUID of the group . Requires authentication if enabled in the configuration.
groupUuid required | string |
userUuid required | string |
{- "status": "string"
}
Removes a user from a group using the users UUID and the groups UUID . Requires authentication if enabled in the configuration.
groupUuid required | string |
userUuid required | string |
{- "status": "string"
}
Retrieve the group using the UUID of the specific group. Requires authentication if enabled in the configuration.
groupUuid required | string |
{- "name": "admin",
- "uniqueId": "e808afcb-1ff9-46cd-a322-3119dbf1d071",
- "usersList": [
- "83db8741-57ca-4147-a973-49789d9150bb",
- "32708878-2eba-4dec-b5f5-94e63fb45c0d",
- "e59b1a11-73d7-4962-b3be-65715d99b172"
]
}
Retrieves all currently known users filtered by the optional filter string, SQL like syntax. Requires authentication if enabled in the configuration.
filter | string Example: filter=username = 'bill' Optional filter string |
{- "data": [
- {
- "username": "myUserName",
- "uniqueId": "83db8741-57ca-4147-a973-49789d9150bb",
- "groupList": [
- "admin",
- "everyone"
], - "attributes": {
- "homeDir": "/home/user1",
- "shell": "/bin/bash"
}
}
]
}
Adds a new user to the system. Requires authentication if enabled in the configuration.
username | string (Username) The unique username for the new user account. |
password | string (Password) The password or passphrase for the new user, intended to provide secure access. |
{- "status": "string"
}
Retrieve the user by username. Requires authentication if enabled in the configuration.
username required | string |
{- "username": "myUserName",
- "uniqueId": "83db8741-57ca-4147-a973-49789d9150bb",
- "groupList": [
- "admin",
- "everyone"
], - "attributes": {
- "homeDir": "/home/user1",
- "shell": "/bin/bash"
}
}
Facilitates the management of destinations such as topics and queues. Includes operations for creating, updating, deleting, and querying destinations, as well as managing subscriptions.
Fetch a paginated list of all known destinations. You can filter the list using a selector string, limit the number of returned entries using the 'size' parameter, and sort the results by attributes such as Name, Published Messages, or Stored Messages. Cached results are returned if available to enhance performance. Authentication is required if the server configuration mandates it.
filter | string Example: filter=type = 'topic' AND storedMessages > 50 An optional filter string for selecting specific destinations. The filter should be a valid expression that complies with the selector syntax. |
size | integer <int32> Default: 40 Example: size=100 The maximum number of destinations to return in the response. A default value is used if this parameter is not provided. |
sortBy | string Default: "Published" Enum: "Name" "Published" "Delivered" "Stored" "Pending" "Delayed" "Expired" Example: sortBy=Published The attribute by which the list of destinations should be sorted before returning. Possible values include Name, Published, Delivered, Stored, Pending, Delayed, and Expired. |
{- "data": [
- {
- "name": "myDestination",
- "type": "queue",
- "storedMessages": 123,
- "delayedMessages": 123,
- "pendingMessages": 123,
- "schemaId": "schema-123",
- "noInterestMessages": 5,
- "publishedMessages": 1000,
- "retrievedMessages": 980,
- "expiredMessages": 10,
- "deliveredMessages": 970,
- "readTimeAveNs": 1500,
- "writeTimeAveNs": 2000,
- "deleteTimeAveNs": 1200
}
]
}
Fetch detailed information for a specific destination identified by its name. Authentication is required if the server configuration mandates it. Cached results are returned if available to enhance performance.
destinationName required | string Example: destinationName=destination-01 The name of the destination for which details are requested |
{- "destination": {
- "name": "myDestination",
- "type": "queue",
- "storedMessages": 123,
- "delayedMessages": 123,
- "pendingMessages": 123,
- "schemaId": "schema-123",
- "noInterestMessages": 5,
- "publishedMessages": 1000,
- "retrievedMessages": 980,
- "expiredMessages": 10,
- "deliveredMessages": 970,
- "readTimeAveNs": 1500,
- "writeTimeAveNs": 2000,
- "deleteTimeAveNs": 1200
}, - "subscriptionList": [
- {
- "destinationName": "string",
- "sessionId": "string",
- "hibernating": true,
- "size": 0,
- "pending": 0,
- "sync": true,
- "hasMessagesInFlight": true,
- "hasAtRestMessages": true,
- "messagesIgnored": 0,
- "messagesRegistered": 0,
- "messagesSent": 0,
- "messagesAcked": 0,
- "messagesRolledBack": 0,
- "messagesExpired": 0,
- "paused": true
}
]
}
Offers APIs for sending and receiving messages, enabling communication between clients and the server. Supports various messaging protocols and real-time event handling.
Abort the message specifed by the id and the destination name
destinationName | string |
eventIds | Array of integers <int64> [ items <int64 > ] |
{- "destinationName": "string",
- "eventIds": [
- 0
]
}
{- "status": "string"
}
Commit the message specifed by the id and the destination name
destinationName | string |
eventIds | Array of integers <int64> [ items <int64 > ] |
{- "destinationName": "string",
- "eventIds": [
- 0
]
}
{- "status": "string"
}
Retrieves messages for a specified subscription
destination | string (Destination name) Optional, if supplied gets any messages outstanding for this destination, else all messages pending delivery |
depth | integer <int32> (Depth) Default: 10 The max number of events that should be returned |
{- "destination": "topicName",
- "depth": 60
}
{- "consumedMessages": [
- {
- "destination": "string",
- "messages": {
- "property1": [
- {
- "identifier": 0,
- "payload": "VGhpcyBpcyBhIGV4YW1wbGUgZGF0YS4=",
- "contentType": "application/json",
- "correlationData": "WzEsMiwzLDRd",
- "expiry": 60000,
- "priority": 4,
- "qualityOfService": 1,
- "creation": "2019-08-24T14:15:22Z",
- "dataMap": {
- "key1": "value1",
- "key2": 42
}, - "metaData": {
- "key1": "value1",
- "key2": 42
}
}
], - "property2": [
- {
- "identifier": 0,
- "payload": "VGhpcyBpcyBhIGV4YW1wbGUgZGF0YS4=",
- "contentType": "application/json",
- "correlationData": "WzEsMiwzLDRd",
- "expiry": 60000,
- "priority": 4,
- "qualityOfService": 1,
- "creation": "2019-08-24T14:15:22Z",
- "dataMap": {
- "key1": "value1",
- "key2": 42
}, - "metaData": {
- "key1": "value1",
- "key2": 42
}
}
]
}
}
]
}
Get the depth of the queue for a specified subscription
destination | string (Destination name) Optional, if supplied gets any messages outstanding for this destination, else all messages pending delivery |
depth | integer <int32> (Depth) Default: 10 The max number of events that should be returned |
{- "destination": "topicName",
- "depth": 60
}
{- "subscriptionDepths": [
- {
- "depth": 0,
- "destination": "string"
}
]
}
Publishes a message to a specified topic
destinationName required | string (Destination Topic) The topic to which the message will be published. This should be a valid topic name recognized by the messaging system. |
required | object (Message) Represents a messaging entity with configurable quality, priority, and metadata attributes. |
retain | boolean (Retain Message) Default: false Indicates if the message should be retained on the destination. If true, the message will be stored and sent to new subscribers on the topic. |
{- "destinationName": "sensor/data",
- "message": {
- "identifier": 0,
- "payload": "VGhpcyBpcyBhIGV4YW1wbGUgZGF0YS4=",
- "contentType": "application/json",
- "correlationData": "WzEsMiwzLDRd",
- "expiry": 60000,
- "priority": 4,
- "qualityOfService": 1,
- "creation": "2019-08-24T14:15:22Z",
- "dataMap": {
- "key1": "value1",
- "key2": 42
}, - "metaData": {
- "key1": "value1",
- "key2": 42
}
}, - "retain": false
}
{- "status": "string"
}
Delivers messages via Server Side Events, supports MQTT wild card plus JMS style filtering
token required | string |
destinationName required | string (Destination Name) Example: destinationName=sensor/data or /sensor/# The name of the destination (e.g., topic or queue) to which the subscription is bound.Supports MQTT style wild card subscription |
namedSubscription | string or null (Named Subscription) Example: namedSubscription=temperatureAlerts An optional name for a named subscription, allowing clients to re-use existing subscriptions if provided. |
filter | string or null (Filter Expression) Example: filter=temperature > 25 An optional filter expression written in JMS selector syntax to filter messages received by the subscription. |
maxDepth | integer or null <int32> (Maximum Queue Depth) Default: 1 Example: maxDepth=10 The maximum number of messages that can be queued for the subscription before new messages are dropped. |
retainMessage | boolean or null (Retain Message) Default: false Example: retainMessage=false Indicates if messages should be retained on the destination for this subscription, meaning they will be stored and made available to future subscribers. |
{- "identifier": 0,
- "payload": "VGhpcyBpcyBhIGV4YW1wbGUgZGF0YS4=",
- "contentType": "application/json",
- "correlationData": "WzEsMiwzLDRd",
- "expiry": 60000,
- "priority": 4,
- "qualityOfService": 1,
- "creation": "2019-08-24T14:15:22Z",
- "dataMap": {
- "key1": "value1",
- "key2": 42
}, - "metaData": {
- "key1": "value1",
- "key2": 42
}, - "destinationName": "/folder/topic"
}
Subscribes to a specified topic
destinationName required | string (Destination Name) The name of the destination (e.g., topic or queue) to which the subscription is bound.Supports MQTT style wild card subscription |
namedSubscription | string or null (Named Subscription) An optional name for a named subscription, allowing clients to re-use existing subscriptions if provided. |
filter | string or null (Filter Expression) An optional filter expression written in JMS selector syntax to filter messages received by the subscription. |
maxDepth | integer or null <int32> (Maximum Queue Depth) Default: 1 The maximum number of messages that can be queued for the subscription before new messages are dropped. |
transactional | boolean (Transactional subscription) Default: false Flag to indicate the subscription is transactional |
retainMessage | boolean or null (Retain Message) Default: false Indicates if messages should be retained on the destination for this subscription, meaning they will be stored and made available to future subscribers. |
{- "destinationName": "sensor/data or /sensor/# ",
- "namedSubscription": "temperatureAlerts",
- "filter": "temperature > 25",
- "maxDepth": 10,
- "transactional": true,
- "retainMessage": false
}
{- "status": "string"
}
Unsubscribes from a specified topic
destinationName required | string (Destination Name) The name of the destination (e.g., topic or queue) to which the subscription is bound.Supports MQTT style wild card subscription |
namedSubscription | string or null (Named Subscription) An optional name for a named subscription, allowing clients to re-use existing subscriptions if provided. |
filter | string or null (Filter Expression) An optional filter expression written in JMS selector syntax to filter messages received by the subscription. |
maxDepth | integer or null <int32> (Maximum Queue Depth) Default: 1 The maximum number of messages that can be queued for the subscription before new messages are dropped. |
transactional | boolean (Transactional subscription) Default: false Flag to indicate the subscription is transactional |
retainMessage | boolean or null (Retain Message) Default: false Indicates if messages should be retained on the destination for this subscription, meaning they will be stored and made available to future subscribers. |
{- "destinationName": "sensor/data or /sensor/# ",
- "namedSubscription": "temperatureAlerts",
- "filter": "temperature > 25",
- "maxDepth": 10,
- "transactional": true,
- "retainMessage": false
}
{- "status": "string"
}
Includes endpoints for monitoring the server's health and operational status, providing simple and detailed responses for status checks and diagnostics.
Manages the server's network interfaces, including configuration, monitoring, and troubleshooting of connections to ensure optimal performance and reliability.
Get the end point configuration specifed by the name. Requires authentication if enabled in the configuration.
endpoint required | string |
{- "uniqueId": "string",
- "name": "myInterface",
- "port": 8080,
- "state": "Started",
- "config": {
- "name": "MainServer",
- "url": "tcp://localhost:1883",
- "endPointConfig": {
- "type": "tcp, ssl, udp, dtls, loraSerial, loraDevice, serial",
- "discoverable": false,
- "selectorThreadCount": 2,
- "serverReadBufferSize": 10240,
- "serverWriteBufferSize": 10240,
- "proxyProtocolMode": "REQUIRED",
- "allowedProxyHosts": "192.168.1.0/24,10.0.0.1,example.com,::1",
- "connectionTimeout": 5000
}, - "saslConfig": {
- "realmName": "example-realm",
- "mechanism": "PLAIN",
- "identityProvider": "authProvider123",
- "saslEntries": {
- "entry1": "value1"
}
}, - "protocolConfigs": [
- {
- "type": "amqp",
- "proxyProtocol": true,
- "remoteAuthConfig": {
- "username": "user123",
- "password": "pass123",
- "clientId": "client123",
- "tokenGenerator": "JWT"
}, - "messageDefaults": {
- "expiry": 60000,
- "priority": "NORMAL",
- "qualityOfService": "AT_LEAST_ONCE",
- "responseTopic": "/default/response",
- "contentType": "application/json",
- "schemaId": "default-schema-id",
- "retain": true,
- "meta": {
- "property1": "string",
- "property2": "string"
}, - "dataMap": {
- "property1": { },
- "property2": { }
}
}
}
], - "authenticationRealm": "defaultRealm",
- "backlog": 100,
- "selectorTaskWait": 10,
- "protocols": "string"
}
}
Update the configuration supplied for the named endpoint.
endpoint required | string |
name | string Name of the endpoint server |
url | string URL for the endpoint server |
object (EndPointConfigDTO) Abstract base class for all schema configurations | |
object (SASL Configuration DTO) Represents the configuration for SASL authentication used for REST communication. | |
Array of objects (ProtocolConfigDTO) List of protocol configurations for the endpoint | |
authenticationRealm | string Authentication realm |
backlog | integer <int32> Backlog for the endpoint server |
selectorTaskWait | integer <int32> Selector task wait time |
protocols | string |
{- "status": "string"
}
Get current connections on this endpoint. Requires authentication if enabled in the configuration.
endpoint required | string |
{- "data": [
- {
- "id": 0,
- "adapter": "string",
- "name": "string",
- "user": "string",
- "protocolName": "string",
- "protocolVersion": "string",
- "proxyAddress": "string",
- "connectedTimeMs": 0,
- "lastRead": 0,
- "lastWrite": 0,
- "totalBytesRead": 0,
- "totalBytesWritten": 0,
- "totalOverflow": 0,
- "totalUnderflow": 0,
- "bytesRead": 0,
- "bytesWritten": 0,
- "overFlow": 0,
- "underFlow": 0
}
]
}
Get the current status and metrics for the specified end point.
endpoint required | string |
{- "interfaceName": "myInterface",
- "totalBytesSent": 1024000,
- "totalBytesReceived": 2048000,
- "totalMessagesSent": 500,
- "totalMessagesReceived": 480,
- "bytesSent": 1000,
- "bytesReceived": 2000,
- "messagesSent": 5,
- "messagesReceived": 4,
- "connections": 10,
- "errors": 3,
- "statistics": {
- "property1": "{\"latency\": {\"name\": \"latency\", \"unitName\": \"ms\", \"current\": 10, ...}}",
- "property2": "{\"latency\": {\"name\": \"latency\", \"unitName\": \"ms\", \"current\": 10, ...}}"
}
}
Get all end point statuses and metrics, fitlered with the optional filter.
filter | string Example: filter=state = 'started' Optional filter string |
{- "data": [
- {
- "interfaceName": "myInterface",
- "totalBytesSent": 1024000,
- "totalBytesReceived": 2048000,
- "totalMessagesSent": 500,
- "totalMessagesReceived": 480,
- "bytesSent": 1000,
- "bytesReceived": 2000,
- "messagesSent": 5,
- "messagesReceived": 4,
- "connections": 10,
- "errors": 3,
- "statistics": {
- "property1": "{\"latency\": {\"name\": \"latency\", \"unitName\": \"ms\", \"current\": 10, ...}}",
- "property2": "{\"latency\": {\"name\": \"latency\", \"unitName\": \"ms\", \"current\": 10, ...}}"
}
}
]
}
get all end point configuration details, filtered with the optional filter.
filter | string Example: filter=state = 'started' Optional filter string |
{- "data": [
- {
- "uniqueId": "string",
- "name": "myInterface",
- "port": 8080,
- "state": "Started",
- "config": {
- "name": "MainServer",
- "url": "tcp://localhost:1883",
- "endPointConfig": {
- "type": "tcp, ssl, udp, dtls, loraSerial, loraDevice, serial",
- "discoverable": false,
- "selectorThreadCount": 2,
- "serverReadBufferSize": 10240,
- "serverWriteBufferSize": 10240,
- "proxyProtocolMode": "REQUIRED",
- "allowedProxyHosts": "192.168.1.0/24,10.0.0.1,example.com,::1",
- "connectionTimeout": 5000
}, - "saslConfig": {
- "realmName": "example-realm",
- "mechanism": "PLAIN",
- "identityProvider": "authProvider123",
- "saslEntries": {
- "entry1": "value1"
}
}, - "protocolConfigs": [
- {
- "type": "amqp",
- "proxyProtocol": true,
- "remoteAuthConfig": {
- "username": "user123",
- "password": "pass123",
- "clientId": "client123",
- "tokenGenerator": "JWT"
}, - "messageDefaults": {
- "expiry": 60000,
- "priority": "NORMAL",
- "qualityOfService": "AT_LEAST_ONCE",
- "responseTopic": "/default/response",
- "contentType": "application/json",
- "schemaId": "default-schema-id",
- "retain": true,
- "meta": {
- "property1": "string",
- "property2": "string"
}, - "dataMap": {
- "property1": { },
- "property2": { }
}
}
}
], - "authenticationRealm": "defaultRealm",
- "backlog": 100,
- "selectorTaskWait": 10,
- "protocols": "string"
}
}
]
}
Provides functionality to configure, manage, and query schemas used by the server, enabling seamless integration with structured data formats and validation mechanisms.
Retrieves all schema configurations, optionally filtered by a query string.
filter | string |
{- "data": [
- {
- "format": "string",
- "title": "string",
- "name": "string",
- "matchExpression": "string",
- "uniqueId": "string",
- "creation": "2019-08-24T14:15:22Z",
- "expiresAfter": "2019-08-24T14:15:22Z",
- "notBefore": "2019-08-24T14:15:22Z",
- "comments": "string",
- "version": 0,
- "source": "string",
- "mimeType": "string",
- "resourceType": "string",
- "interfaceDescription": "string",
- "type": "string"
}
]
}
Adds a new schema configuration to the system.
schema | string (Schema) A JSON-encoded string representing the schema object to be posted. |
context | string (Context) The name or context of the schema, identifying the scope or purpose for which it is used. |
{- "schema": "{\"type\":\"record\",\"name\":\"User\",\"fields\":[{\"name\":\"id\",\"type\":\"string\"}]}",
- "context": "UserProfile"
}
{- "status": "string"
}
Includes operations for monitoring and managing the server's status, configurations, and performance metrics to ensure smooth and efficient operation.
Retrieves detailed information about the server build, such as version and configuration details. Uses caching for improved performance.
{- "serverName": "maps-server",
- "version": "3.3.7",
- "buildDate": "2024-10-13",
- "totalMemory": 536870912,
- "maxMemory": 1073741824,
- "freeMemory": 268435456,
- "numberOfThreads": 120,
- "timeToCreateNano": 1000000,
- "uptime": 123456789,
- "connections": 150,
- "destinations": 30,
- "cpuTime": 1234567890,
- "cpuPercent": 12.5,
- "storageSize": 104857600,
- "threadState": {
- "RUNNABLE": 50,
- "WAITING": 10
}
}
Retrieves the current status of all server subsystems, including their operational state (e.g., OK, Warning, or Error). Uses caching for improved performance.
{- "list": [
- {
- "name": "Messaging Service",
- "comment": "System is operating normally.",
- "status": "OK"
}
]
}
Retrieves server usage statistics, including metrics such as CPU usage, memory usage, and active connections. Uses caching for improved performance.
{- "data": {
- "packetsSent": 1024,
- "packetsReceived": 2048,
- "totalReadBytes": 5242880,
- "totalWriteBytes": 4194304,
- "totalConnections": 150,
- "totalDisconnections": 145,
- "totalNoInterestMessages": 10,
- "totalSubscribedMessages": 5000,
- "totalPublishedMessages": 6000,
- "totalRetrievedMessages": 2500,
- "totalExpiredMessages": 20,
- "totalDeliveredMessages": 4000,
- "publishedPerSecond": 50,
- "subscribedPerSecond": 45,
- "noInterestPerSecond": 5,
- "deliveredPerSecond": 60,
- "retrievedPerSecond": 30,
- "stats": "{\"latency\": {\"name\": \"latency\", \"unitName\": \"ms\", \"current\": 10, ...}}"
}
}
Manages the server's integrations with other messaging brokers, enabling interoperability and seamless data exchange across distributed systems.
Retrieves a list of all inter-server configurations. Requires authentication if enabled in the configuration.
filter | string Example: filter=state = PAUSED Optional filter string |
{- "data": [
- {
- "config": {
- "name": "MainServer",
- "url": "tcp://localhost:1883",
- "endPointConfig": {
- "type": "tcp, ssl, udp, dtls, loraSerial, loraDevice, serial",
- "discoverable": false,
- "selectorThreadCount": 2,
- "serverReadBufferSize": 10240,
- "serverWriteBufferSize": 10240,
- "proxyProtocolMode": "REQUIRED",
- "allowedProxyHosts": "192.168.1.0/24,10.0.0.1,example.com,::1",
- "connectionTimeout": 5000
}, - "saslConfig": {
- "realmName": "example-realm",
- "mechanism": "PLAIN",
- "identityProvider": "authProvider123",
- "saslEntries": {
- "entry1": "value1"
}
}, - "protocolConfigs": [
- {
- "type": "amqp",
- "proxyProtocol": true,
- "remoteAuthConfig": {
- "username": "user123",
- "password": "pass123",
- "clientId": "client123",
- "tokenGenerator": "JWT"
}, - "messageDefaults": {
- "expiry": 60000,
- "priority": "NORMAL",
- "qualityOfService": "AT_LEAST_ONCE",
- "responseTopic": "/default/response",
- "contentType": "application/json",
- "schemaId": "default-schema-id",
- "retain": true,
- "meta": {
- "property1": "string",
- "property2": "string"
}, - "dataMap": {
- "property1": { },
- "property2": { }
}
}
}
], - "authenticationRealm": "defaultRealm",
- "backlog": 100,
- "selectorTaskWait": 10,
- "authConfig": {
- "username": "user123",
- "password": "password",
- "sessionId": "session-xyz",
- "tokenGenerator": "JWT",
- "tokenConfig": {
- "expiry": 3600
}
}, - "linkTransformation": "transformationType",
- "linkConfigs": [
- {
- "direction": "inbound",
- "remoteNamespace": "remote_ns",
- "localNamespace": "local_ns",
- "selector": "selector_criteria",
- "includeSchema": true,
- "transformer": {
- "property1": { },
- "property2": { }
}, - "namespaceFilters": {
- "allFilters": [
- {
- "namespace": "string",
- "depth": 0,
- "selector": "string",
- "forcePriority": true,
- "executor": { }
}
]
}
}
], - "pluginConnection": true,
- "cost": 0,
- "groupName": "Main data uplink",
- "protocols": "string"
}, - "state": "string"
}
], - "globalConfig": {
- "property1": { },
- "property2": { }
}
}
Retrieves the configuration on the inter-server integration connection. Requires authentication if enabled in the configuration.
name required | string |
{- "config": {
- "name": "MainServer",
- "url": "tcp://localhost:1883",
- "endPointConfig": {
- "type": "tcp, ssl, udp, dtls, loraSerial, loraDevice, serial",
- "discoverable": false,
- "selectorThreadCount": 2,
- "serverReadBufferSize": 10240,
- "serverWriteBufferSize": 10240,
- "proxyProtocolMode": "REQUIRED",
- "allowedProxyHosts": "192.168.1.0/24,10.0.0.1,example.com,::1",
- "connectionTimeout": 5000
}, - "saslConfig": {
- "realmName": "example-realm",
- "mechanism": "PLAIN",
- "identityProvider": "authProvider123",
- "saslEntries": {
- "entry1": "value1"
}
}, - "protocolConfigs": [
- {
- "type": "amqp",
- "proxyProtocol": true,
- "remoteAuthConfig": {
- "username": "user123",
- "password": "pass123",
- "clientId": "client123",
- "tokenGenerator": "JWT"
}, - "messageDefaults": {
- "expiry": 60000,
- "priority": "NORMAL",
- "qualityOfService": "AT_LEAST_ONCE",
- "responseTopic": "/default/response",
- "contentType": "application/json",
- "schemaId": "default-schema-id",
- "retain": true,
- "meta": {
- "property1": "string",
- "property2": "string"
}, - "dataMap": {
- "property1": { },
- "property2": { }
}
}
}
], - "authenticationRealm": "defaultRealm",
- "backlog": 100,
- "selectorTaskWait": 10,
- "authConfig": {
- "username": "user123",
- "password": "password",
- "sessionId": "session-xyz",
- "tokenGenerator": "JWT",
- "tokenConfig": {
- "expiry": 3600
}
}, - "linkTransformation": "transformationType",
- "linkConfigs": [
- {
- "direction": "inbound",
- "remoteNamespace": "remote_ns",
- "localNamespace": "local_ns",
- "selector": "selector_criteria",
- "includeSchema": true,
- "transformer": {
- "property1": { },
- "property2": { }
}, - "namespaceFilters": {
- "allFilters": [
- {
- "namespace": "string",
- "depth": 0,
- "selector": "string",
- "forcePriority": true,
- "executor": { }
}
]
}
}
], - "pluginConnection": true,
- "cost": 0,
- "groupName": "Main data uplink",
- "protocols": "string"
}, - "state": "string"
}
Retrieves the current status on the inter-server integration connection. Requires authentication if enabled in the configuration.
name required | string |
{- "id": 0,
- "adapter": "string",
- "name": "string",
- "user": "string",
- "protocolName": "string",
- "protocolVersion": "string",
- "proxyAddress": "string",
- "connectedTimeMs": 0,
- "lastRead": 0,
- "lastWrite": 0,
- "totalBytesRead": 0,
- "totalBytesWritten": 0,
- "totalOverflow": 0,
- "totalUnderflow": 0,
- "bytesRead": 0,
- "bytesWritten": 0,
- "overFlow": 0,
- "underFlow": 0
}
Pauses the inter-server connection specified by the name, if started else nothing changes. Requires authentication if enabled in the configuration.
name required | string |
{- "status": "string"
}
Resumes the inter-server connection specified by the name, if paused else nothing changes. Requires authentication if enabled in the configuration.
name required | string |
{- "status": "string"
}
Starts the inter-server connection specified by the name, if stopped else nothing changes. Requires authentication if enabled in the configuration.
name required | string |
{- "status": "string"
}
Stops the inter-server connection specified by the name, if started else nothing changes. Requires authentication if enabled in the configuration.
name required | string |
{- "status": "string"
}
Retrieve all current statuses for the inter-server. Requires authentication if enabled in the configuration.
filter | string Example: filter=state = PAUSED Optional filter string |
{- "list": [
- {
- "interfaceName": "myInterface",
- "bytesSent": 123456,
- "bytesReceived": 654321,
- "messagesSent": 100,
- "messagesReceived": 95,
- "errors": 2,
- "lastReadTime": 1625812345678,
- "lastWriteTime": 1625812345678,
- "state": "active",
- "statistics": "{\"averageRead\": {\"name\": \"averageRead\", \"unitName\": \"bytes\", \"current\": 50, ...}}"
}
]
}
Retrieve the current status for the inter-server specified by name. Requires authentication if enabled in the configuration.
endpoint required | string |
{- "interfaceName": "myInterface",
- "bytesSent": 123456,
- "bytesReceived": 654321,
- "messagesSent": 100,
- "messagesReceived": 95,
- "errors": 2,
- "lastReadTime": 1625812345678,
- "lastWriteTime": 1625812345678,
- "state": "active",
- "statistics": "{\"averageRead\": {\"name\": \"averageRead\", \"unitName\": \"bytes\", \"current\": 50, ...}}"
}
Handles client connections to the server, offering endpoints for monitoring, managing, and troubleshooting active connections and session details.
Retrieve a list of all current connections to the server, can be filtered with the optional filter string. Requires authentication if enabled in the configuration.
filter | string Example: filter=totalOverflow > 10 OR totalUnderflow > 5 Optional filter string |
{- "data": [
- {
- "id": 0,
- "adapter": "string",
- "name": "string",
- "user": "string",
- "protocolName": "string",
- "protocolVersion": "string",
- "proxyAddress": "string",
- "connectedTimeMs": 0,
- "lastRead": 0,
- "lastWrite": 0,
- "totalBytesRead": 0,
- "totalBytesWritten": 0,
- "totalOverflow": 0,
- "totalUnderflow": 0,
- "bytesRead": 0,
- "bytesWritten": 0,
- "overFlow": 0,
- "underFlow": 0
}
]
}
Retrieve the details of the specified connection id. Requires authentication if enabled in the configuration.
connectionId | integer <int64> |
{- "endPointSummary": {
- "id": 0,
- "adapter": "string",
- "name": "string",
- "user": "string",
- "protocolName": "string",
- "protocolVersion": "string",
- "proxyAddress": "string",
- "connectedTimeMs": 0,
- "lastRead": 0,
- "lastWrite": 0,
- "totalBytesRead": 0,
- "totalBytesWritten": 0,
- "totalOverflow": 0,
- "totalUnderflow": 0,
- "bytesRead": 0,
- "bytesWritten": 0,
- "overFlow": 0,
- "underFlow": 0
}, - "protocolInformation": {
- "type": "amqp",
- "sessionId": "session-12345",
- "timeout": 30000,
- "keepAlive": 15000,
- "messageTransformationName": "default-transformation",
- "selectorMapping": {
- "temperature": "> 20",
- "status": "active"
}, - "destinationTransformationMapping": {
- "alerts": "alert-transform",
- "telemetry": "telemetry-transform"
}
}
}
Provides mechanisms for managing the server's discovery agents, allowing automated detection and configuration of network services and resources.
Retrieves the configuration used to the discovery agent. Requires authentication if enabled in the configuration.
{- "enabled": false,
- "hostnames": "::",
- "addTxtRecords": true,
- "domainName": ".local"
}
Updates the configuration used to control the discovery agent. Requires authentication if enabled in the configuration.
enabled | boolean Indicates if the discovery manager is enabled |
hostnames | string Hostnames for discovery |
addTxtRecords | boolean Whether to add TXT records |
domainName | string Domain name for discovery |
{- "enabled": false,
- "hostnames": "::",
- "addTxtRecords": true,
- "domainName": ".local"
}
{- "status": "string"
}
Retrieve a list of all currently discovered servers, can be filtered with the optional filter. Requires authentication if enabled in the configuration.
filter | string Example: filter=schemaSupport = TRUE OR systemTopicPrefix IS NOT NULL Optional filter string |
{- "list": [
- {
- "serverName": "myServer",
- "systemTopicPrefix": "$SYS",
- "schemaSupport": true,
- "schemaPrefix": "$SCHEMA",
- "version": "1.2.3",
- "buildDate": "2024-01-15",
- "services": {
- "mqtt": { },
- "amqp": { }
}
}
]
}
Enables the management of hardware devices integrated with the server, including configuration, monitoring, and diagnostics for seamless hardware-software interaction.
Retrieve the configuration for the hardware sub-system. Requires authentication if enabled in the configuration.
{- "enabled": true,
- "demoEnabled": false,
- "triggers": [
- {
- "type": "cron",
- "name": "dailyTrigger"
}
], - "i2cBuses": [
- {
- "enabled": true,
- "topicNameTemplate": "string",
- "autoScan": true,
- "scanTime": 0,
- "filter": "string",
- "selector": "string",
- "bus": 0,
- "trigger": "string",
- "devices": [
- {
- "address": 0,
- "name": "string",
- "selector": "string"
}
]
}
], - "spiBus": {
- "name": "spiBus1",
- "autoScan": true,
- "devices": [
- {
- "address": 1,
- "name": "TemperatureSensor",
- "selector": "tempSelector",
- "spiBus": 0,
- "spiMode": 1,
- "spiChipSelect": 0
}
], - "enabled": true,
- "topicNameTemplate": "string",
- "scanTime": 0,
- "filter": "string",
- "selector": "string"
}, - "oneWireBus": {
- "enabled": true,
- "topicNameTemplate": "string",
- "autoScan": true,
- "scanTime": 0,
- "filter": "string",
- "selector": "string",
- "name": "oneWireBus1",
- "trigger": "temperatureTrigger"
}
}
Update the configuration for the hardware sub-system. Requires authentication if enabled in the configuration.
enabled | boolean Indicates if the device manager is enabled |
demoEnabled | boolean Indicates if the device manager will load the demo devices |
Array of objects (BaseTriggerConfigDTO) List of trigger configurations | |
Array of objects (I2CBusConfigDTO) List of I2C bus configurations | |
object (SpiDeviceBusConfigDTO) SPI Device Bus Configuration DTO | |
object (OneWireBusConfigDTO) OneWire Bus Configuration DTO |
{- "status": "string"
}
Retreive a list of all detected devices currently online. Requires authentication if enabled in the configuration.
{- "list": [
- {
- "name": "temperatureSensor01",
- "description": "Temperature sensor for monitoring room temperature",
- "type": "sensor",
- "state": "25.0C"
}
]
}
Offers APIs for managing LoRa devices, including adding, updating, retrieving configurations, monitoring device statistics, and managing endpoint connections.
Fetches a list of all LoRa devices along with their configurations and statistics.
{- "data": [
- {
- "name": "LoRaDevice_01",
- "radio": "SX1276",
- "bytesSent": 1048576,
- "bytesReceived": 2048000,
- "packetsSent": 500,
- "packetsReceived": 480,
- "endPointInfoList": [
- {
- "nodeId": 1,
- "lastRSSI": -70,
- "incomingQueueSize": 10,
- "connectionSize": 5,
- "lastRead": 0,
- "lastWrite": 0
}
]
}
]
}
Fetches the details of a specific LoRa device identified by its name.
deviceName required | string |
{- "name": "LoRaDevice_01",
- "radio": "SX1276",
- "bytesSent": 1048576,
- "bytesReceived": 2048000,
- "packetsSent": 500,
- "packetsReceived": 480,
- "endPointInfoList": [
- {
- "nodeId": 1,
- "lastRSSI": -70,
- "incomingQueueSize": 10,
- "connectionSize": 5,
- "lastRead": 0,
- "lastWrite": 0
}
]
}
Fetches the connection information for a specific endpoint of a LoRa device, identified by the device name and node ID.
deviceName required | string |
nodeId required | string |
{- "list": [
- {
- "rssi": -70,
- "missedPackets": 3,
- "receivedPackets": 500,
- "remoteNodeId": 2,
- "lastPacketId": 1000,
- "lastReadTime": 1625812345678,
- "lastWriteTime": 1625812345678
}
]
}
Fetches a list of all configured LoRa devices and their settings.
{- "data": [
- {
- "name": "LoRa_Radio_01",
- "radio": "rfm95",
- "cs": 10,
- "irq": 2,
- "rst": 4,
- "power": 14,
- "cadTimeout": 100,
- "frequency": 915
}
]
}
Creates a new LoRa device configuration and adds it to the system.
name | string (Device Name) The name of the LoRa device. |
radio | string (Radio Type) Type of radio module used by the LoRa device. |
cs | integer <int32> (Chip Select Pin) >= 0 The chip select pin number for the LoRa device. |
irq | integer <int32> (Interrupt Request Pin) >= 0 The interrupt request (IRQ) pin number for the LoRa device. |
rst | integer <int32> (Reset Pin) >= 0 The reset pin number for the LoRa device. |
power | integer <int32> (Power Level) [ 0 .. 20 ] The transmission power level setting for the LoRa device. |
cadTimeout | integer <int32> (CAD Timeout) >= 0 The Channel Activity Detection (CAD) timeout in milliseconds. |
frequency | number <float> (Frequency) >= 0 The operating frequency for the LoRa device in MHz. |
{- "name": "LoRa_Radio_01",
- "radio": "rfm95",
- "cs": 10,
- "irq": 2,
- "rst": 4,
- "power": 14,
- "cadTimeout": 100,
- "frequency": 915
}
{ }
Fetches the configuration for a specific LoRa device identified by its name.
deviceName required | string |
{- "name": "LoRa_Radio_01",
- "radio": "rfm95",
- "cs": 10,
- "irq": 2,
- "rst": 4,
- "power": 14,
- "cadTimeout": 100,
- "frequency": 915
}
Returns information about the current user authentication session, can be used to see if the user is logged in
{- "schemaUpdate": 0,
- "destinationUpdate": 0,
- "interfaceUpdate": 0
}
Allows a user to log in and obtain an authentication token. This endpoint does not require authentication and overrides global security settings.
username | string The username for login |
password | string The password for login |
persistent | boolean Whether the session should be persistent |
sessionId | string Optional client-provided session ID |
longLived | boolean Request a long-lived session (e.g. 7 days) |
{- "username": "admin",
- "password": "P@ssw0rd!",
- "persistent": true,
- "sessionId": "session-12345",
- "longLived": true
}
{- "status": "string",
- "username": "string",
- "accessMap": {
- "property1": "string",
- "property2": "string"
}, - "uniqueId": "a1e12d74-d756-40d1-9bb3-519def353f44"
}
Refreshes the current JWT cookie used for auth.
{- "status": "string",
- "username": "string",
- "accessMap": {
- "property1": "string",
- "property2": "string"
}, - "uniqueId": "a1e12d74-d756-40d1-9bb3-519def353f44"
}
Fetches detailed information about the server's central cache, including size, usage statistics, and entries.
{- "enabled": true,
- "lifeTime": 0,
- "scanTime": 0,
- "cacheSize": 0,
- "cacheHits": 0,
- "cacheMisses": 0
}
Fetches the current server configuration settings as a JSON object. Uses caching for improved performance.
{- "delayedPublishInterval": 1000,
- "sessionPipeLines": 48,
- "transactionExpiry": 3600000,
- "transactionScan": 5000,
- "compressionName": "None",
- "compressMessageMinSize": 1024,
- "incrementPriorityMethod": "maintain",
- "enableResourceStatistics": false,
- "enableSystemTopics": true,
- "enableSystemStatusTopics": true,
- "enableSystemTopicAverages": false,
- "enableJMX": false,
- "enableJMXStatistics": false,
- "tagMetaData": false,
- "latitude": 0,
- "longitude": 0,
- "sendAnonymousStatusUpdates": false
}
Updates the server configuration with the provided settings. Saves changes to disk and clears relevant cache entries to ensure consistency.
delayedPublishInterval | integer <int32> Interval for delayed publish in milliseconds |
sessionPipeLines | integer <int32> Number of session pipelines |
transactionExpiry | integer <int64> Transaction expiry in milliseconds |
transactionScan | integer <int64> Transaction scan interval in milliseconds |
compressionName | string Enum: "inflator" "none" Compression algorithm name |
compressMessageMinSize | integer <int32> Minimum size for message compression |
incrementPriorityMethod | string Enum: "maintain" "increment" On rollback of events if we maintain the priority or bump the priority of the event |
enableResourceStatistics | boolean Enable resource statistics |
enableSystemTopics | boolean Enable system topics |
enableSystemStatusTopics | boolean Enable system status topics |
enableSystemTopicAverages | boolean Enable system topic averages |
enableJMX | boolean Enable JMX monitoring |
enableJMXStatistics | boolean Enable JMX statistics |
tagMetaData | boolean Tag metadata for messages |
latitude | number <double> Latitude for the daemon location |
longitude | number <double> Longitude for the daemon location |
sendAnonymousStatusUpdates | boolean Send anonymous server usage statistics to Maps Messaging |
{- "status": "string"
}