Maps Messaging Rest Server (00.00.00-SNAPSHOT)
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.
Get the auth configuration
Retrieves the configuration used to setup the authentication and authorisation. Requires authentication if enabled in the configuration.
Authorizations:
Responses
Response samples
- 200
{- "authenticationEnabled": true,
- "authorisationEnabled": true,
- "authConfig": { }
}
Update the auth configuration
Updates the configuration used to setup the authentication and authorisation. Requires authentication if enabled in the configuration.
Authorizations:
Request Body schema: application/json
authenticationEnabled | boolean Indicates if authentication is enabled |
authorisationEnabled | boolean Indicates if authorization is enabled |
authConfig | object Configuration properties for authentication |
Responses
Request samples
- Payload
{- "authenticationEnabled": true,
- "authorisationEnabled": true,
- "authConfig": { }
}
Response samples
- 200
{- "status": "string"
}
Get all groups
Retrieves all currently known groups. Requires authentication if enabled in the configuration.
Authorizations:
query Parameters
filter | string Example: filter=name = 'admin' Optional filter string |
Responses
Response samples
- 200
{- "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"
]
}
]
}
Add user to group
Adds a user to a group using the UUID of the user and UUID of the group . Requires authentication if enabled in the configuration.
Authorizations:
path Parameters
groupUuid required | string |
userUuid required | string |
Responses
Response samples
- 200
{- "status": "string"
}
Removes a user from group
Removes a user from a group using the users UUID and the groups UUID . Requires authentication if enabled in the configuration.
Authorizations:
path Parameters
groupUuid required | string |
userUuid required | string |
Responses
Response samples
- 200
{- "status": "string"
}
Get group by UUID
Retrieve the group using the UUID of the specific group. Requires authentication if enabled in the configuration.
Authorizations:
path Parameters
groupUuid required | string |
Responses
Response samples
- 200
{- "name": "admin",
- "uniqueId": "e808afcb-1ff9-46cd-a322-3119dbf1d071",
- "usersList": [
- "83db8741-57ca-4147-a973-49789d9150bb",
- "32708878-2eba-4dec-b5f5-94e63fb45c0d",
- "e59b1a11-73d7-4962-b3be-65715d99b172"
]
}
Get all users
Retrieves all currently known users filtered by the optional filter string, SQL like syntax. Requires authentication if enabled in the configuration.
Authorizations:
query Parameters
filter | string Example: filter=username = 'bill' Optional filter string |
Responses
Response samples
- 200
{- "data": [
- {
- "username": "myUserName",
- "uniqueId": "83db8741-57ca-4147-a973-49789d9150bb",
- "groupList": [
- "admin",
- "everyone"
], - "attributes": {
- "homeDir": "/home/user1",
- "shell": "/bin/bash"
}
}
]
}
Add a new user
Adds a new user to the system. Requires authentication if enabled in the configuration.
Authorizations:
Request Body schema: */*
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. |
Responses
Response samples
- 200
{- "status": "string"
}
Get user by username
Retrieve the user by username. Requires authentication if enabled in the configuration.
Authorizations:
path Parameters
username required | string |
Responses
Response samples
- 200
{- "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.
Retrieve a list of all destinations with optional filtering and sorting
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.
Authorizations:
query Parameters
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. |
Responses
Response samples
- 200
{- "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
}
]
}
Retrieve detailed information about a destination
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.
Authorizations:
query Parameters
destinationName required | string Example: destinationName=destination-01 The name of the destination for which details are requested |
Responses
Response samples
- 200
{- "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,
- "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
Abort the message specifed by the id and the destination name
Authorizations:
Request Body schema: application/json
destinationName | string |
eventIds | Array of integers <int64> [ items <int64 > ] |
Responses
Request samples
- Payload
{- "destinationName": "string",
- "eventIds": [
- 0
]
}
Response samples
- 200
{- "status": "string"
}
Commit the message
Commit the message specifed by the id and the destination name
Authorizations:
Request Body schema: application/json
destinationName | string |
eventIds | Array of integers <int64> [ items <int64 > ] |
Responses
Request samples
- Payload
{- "destinationName": "string",
- "eventIds": [
- 0
]
}
Response samples
- 200
{- "status": "string"
}
Get messages
Retrieves messages for a specified subscription
Authorizations:
Request Body schema: application/json
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 |
Responses
Request samples
- Payload
{- "destination": "topicName",
- "depth": 60
}
Response samples
- 200
{- "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 message depth
Get the depth of the queue for a specified subscription
Authorizations:
Request Body schema: application/json
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 |
Responses
Request samples
- Payload
{- "destination": "topicName",
- "depth": 60
}
Response samples
- 200
{- "subscriptionDepths": [
- {
- "depth": 0,
- "destination": "string"
}
]
}
Publish a message
Publishes a message to a specified topic
Authorizations:
Request Body schema: application/json
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. |
Responses
Request samples
- Payload
{- "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
}
Response samples
- 200
{- "status": "string"
}
Expose AsyncMessageDTO in OpenAPI
Delivers messages via Server Side Events, supports MQTT wild card plus JMS style filtering
Authorizations:
query Parameters
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. |
Responses
Response samples
- 200
{- "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"
}
Subscribe to a topic
Subscribes to a specified topic
Authorizations:
Request Body schema: application/json
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. |
Responses
Request samples
- Payload
{- "destinationName": "sensor/data or /sensor/# ",
- "namedSubscription": "temperatureAlerts",
- "filter": "temperature > 25",
- "maxDepth": 10,
- "transactional": true,
- "retainMessage": false
}
Response samples
- 200
{- "status": "string"
}
Unsubscribe from a topic
Unsubscribes from a specified topic
Authorizations:
Request Body schema: application/json
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. |
Responses
Request samples
- Payload
{- "destinationName": "sensor/data or /sensor/# ",
- "namedSubscription": "temperatureAlerts",
- "filter": "temperature > 25",
- "maxDepth": 10,
- "transactional": true,
- "retainMessage": false
}
Response samples
- 200
{- "status": "string"
}
Includes endpoints for monitoring the server's health and operational status, providing simple and detailed responses for status checks and diagnostics.
User login
Allows a user to log in and obtain an authentication token. This endpoint does not require authentication and overrides global security settings.
Authorizations:
query Parameters
sessionId | string |
persistent | boolean |
Responses
Response samples
- 200
{- "status": "string",
- "username": "string",
- "accessMap": {
- "property1": "string",
- "property2": "string"
}, - "uniqueId": "a1e12d74-d756-40d1-9bb3-519def353f44"
}
Manages the server's network interfaces, including configuration, monitoring, and troubleshooting of connections to ensure optimal performance and reliability.
Get end point configurations
Get the end point configuration specifed by the name. Requires authentication if enabled in the configuration.
Authorizations:
path Parameters
endpoint required | string |
Responses
Response samples
- 200
{- "name": "myInterface",
- "port": 8080,
- "state": "Started",
- "config": {
- "name": "MainServer",
- "url": "tcp://localhost:1883",
- "endPointConfig": {
- "type": "tcp, ssl, udp, dtls, lora, serial",
- "discoverable": false,
- "selectorThreadCount": 2,
- "serverReadBufferSize": 10240,
- "serverWriteBufferSize": 10240
}, - "saslConfig": {
- "realmName": "example-realm",
- "mechanism": "PLAIN",
- "identityProvider": "authProvider123",
- "saslEntries": {
- "entry1": "value1"
}
}, - "protocolConfigs": [
- {
- "type": "amqp",
- "remoteAuthConfig": {
- "username": "user123",
- "password": "pass123",
- "clientId": "client123",
- "tokenGenerator": "JWT"
}
}
], - "authenticationRealm": "defaultRealm",
- "backlog": 100,
- "selectorTaskWait": 10,
- "protocols": "string"
}
}
Update end point configuration
Update the configuration supplied for the named endpoint.
Authorizations:
path Parameters
endpoint required | string |
Request Body schema: */*
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 |
Responses
Response samples
- 200
{- "status": "string"
}
Get end point connections
Get current connections on this endpoint. Requires authentication if enabled in the configuration.
Authorizations:
path Parameters
endpoint required | string |
Responses
Response samples
- 200
{- "data": [
- {
- "id": 0,
- "adapter": "string",
- "name": "string",
- "user": "string",
- "protocolName": "string",
- "protocolVersion": "string",
- "connectedTimeMs": 0,
- "lastRead": 0,
- "lastWrite": 0,
- "totalBytesRead": 0,
- "totalBytesWritten": 0,
- "totalOverflow": 0,
- "totalUnderflow": 0,
- "bytesRead": 0,
- "bytesWritten": 0,
- "overFlow": 0,
- "underFlow": 0
}
]
}
Get end point status
Get the current status and metrics for the specified end point.
Authorizations:
path Parameters
endpoint required | string |
Responses
Response samples
- 200
{- "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 status
Get all end point statuses and metrics, fitlered with the optional filter.
Authorizations:
query Parameters
filter | string Example: filter=state = 'started' Optional filter string |
Responses
Response samples
- 200
{- "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 details
get all end point configuration details, filtered with the optional filter.
Authorizations:
query Parameters
filter | string Example: filter=state = 'started' Optional filter string |
Responses
Response samples
- 200
{- "data": [
- {
- "name": "myInterface",
- "port": 8080,
- "state": "Started",
- "config": {
- "name": "MainServer",
- "url": "tcp://localhost:1883",
- "endPointConfig": {
- "type": "tcp, ssl, udp, dtls, lora, serial",
- "discoverable": false,
- "selectorThreadCount": 2,
- "serverReadBufferSize": 10240,
- "serverWriteBufferSize": 10240
}, - "saslConfig": {
- "realmName": "example-realm",
- "mechanism": "PLAIN",
- "identityProvider": "authProvider123",
- "saslEntries": {
- "entry1": "value1"
}
}, - "protocolConfigs": [
- {
- "type": "amqp",
- "remoteAuthConfig": {
- "username": "user123",
- "password": "pass123",
- "clientId": "client123",
- "tokenGenerator": "JWT"
}
}
], - "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.
Get all schemas
Retrieves all schema configurations, optionally filtered by a query string.
Authorizations:
query Parameters
filter | string |
Responses
Response samples
- 200
{- "data": [
- {
- "format": "string",
- "uniqueId": "string",
- "creation": "2019-08-24T14:15:22Z",
- "expiresAfter": "2019-08-24T14:15:22Z",
- "notBefore": "2019-08-24T14:15:22Z",
- "comments": "string",
- "version": "string",
- "source": "string",
- "mimeType": "string",
- "resourceType": "string",
- "interfaceDescription": "string",
- "type": "string"
}
]
}
Add new schema
Adds a new schema configuration to the system.
Authorizations:
Request Body schema: application/json
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. |
Responses
Request samples
- Payload
{- "schema": "{\"type\":\"record\",\"name\":\"User\",\"fields\":[{\"name\":\"id\",\"type\":\"string\"}]}",
- "context": "UserProfile"
}
Response samples
- 200
{- "status": "string"
}
Includes operations for monitoring and managing the server's status, configurations, and performance metrics to ensure smooth and efficient operation.
Get server build information
Retrieves detailed information about the server build, such as version and configuration details. Uses caching for improved performance.
Authorizations:
Responses
Response samples
- 200
{- "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
}
}
Get server subsystem status
Retrieves the current status of all server subsystems, including their operational state (e.g., OK, Warning, or Error). Uses caching for improved performance.
Authorizations:
Responses
Response samples
- 200
{- "list": [
- {
- "name": "Messaging Service",
- "comment": "System is operating normally.",
- "status": "OK"
}
]
}
Get server statistics
Retrieves server usage statistics, including metrics such as CPU usage, memory usage, and active connections. Uses caching for improved performance.
Authorizations:
Responses
Response samples
- 200
{- "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.
Get all inter-server connections
Retrieves a list of all inter-server configurations. Requires authentication if enabled in the configuration.
Authorizations:
query Parameters
filter | string Example: filter=state = PAUSED Optional filter string |
Responses
Response samples
- 200
{- "data": [
- {
- "config": {
- "name": "MainServer",
- "url": "tcp://localhost:1883",
- "endPointConfig": {
- "type": "tcp, ssl, udp, dtls, lora, serial",
- "discoverable": false,
- "selectorThreadCount": 2,
- "serverReadBufferSize": 10240,
- "serverWriteBufferSize": 10240
}, - "saslConfig": {
- "realmName": "example-realm",
- "mechanism": "PLAIN",
- "identityProvider": "authProvider123",
- "saslEntries": {
- "entry1": "value1"
}
}, - "protocolConfigs": [
- {
- "type": "amqp",
- "remoteAuthConfig": {
- "username": "user123",
- "password": "pass123",
- "clientId": "client123",
- "tokenGenerator": "JWT"
}
}
], - "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": { }
}
}
], - "pluginConnection": true,
- "protocols": "string"
}, - "state": "string"
}
], - "globalConfig": {
- "property1": { },
- "property2": { }
}
}
Get integration by name
Retrieves the configuration on the inter-server integration connection. Requires authentication if enabled in the configuration.
Authorizations:
path Parameters
name required | string |
Responses
Response samples
- 200
{- "config": {
- "name": "MainServer",
- "url": "tcp://localhost:1883",
- "endPointConfig": {
- "type": "tcp, ssl, udp, dtls, lora, serial",
- "discoverable": false,
- "selectorThreadCount": 2,
- "serverReadBufferSize": 10240,
- "serverWriteBufferSize": 10240
}, - "saslConfig": {
- "realmName": "example-realm",
- "mechanism": "PLAIN",
- "identityProvider": "authProvider123",
- "saslEntries": {
- "entry1": "value1"
}
}, - "protocolConfigs": [
- {
- "type": "amqp",
- "remoteAuthConfig": {
- "username": "user123",
- "password": "pass123",
- "clientId": "client123",
- "tokenGenerator": "JWT"
}
}
], - "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": { }
}
}
], - "pluginConnection": true,
- "protocols": "string"
}, - "state": "string"
}
Get integration status by name
Retrieves the current status on the inter-server integration connection. Requires authentication if enabled in the configuration.
Authorizations:
path Parameters
name required | string |
Responses
Response samples
- 200
{- "id": 0,
- "adapter": "string",
- "name": "string",
- "user": "string",
- "protocolName": "string",
- "protocolVersion": "string",
- "connectedTimeMs": 0,
- "lastRead": 0,
- "lastWrite": 0,
- "totalBytesRead": 0,
- "totalBytesWritten": 0,
- "totalOverflow": 0,
- "totalUnderflow": 0,
- "bytesRead": 0,
- "bytesWritten": 0,
- "overFlow": 0,
- "underFlow": 0
}
Pause integration by name
Pauses the inter-server connection specified by the name, if started else nothing changes. Requires authentication if enabled in the configuration.
Authorizations:
path Parameters
name required | string |
Responses
Response samples
- 200
{- "status": "string"
}
Resume integration by name
Resumes the inter-server connection specified by the name, if paused else nothing changes. Requires authentication if enabled in the configuration.
Authorizations:
path Parameters
name required | string |
Responses
Response samples
- 200
{- "status": "string"
}
Start integration by name
Starts the inter-server connection specified by the name, if stopped else nothing changes. Requires authentication if enabled in the configuration.
Authorizations:
path Parameters
name required | string |
Responses
Response samples
- 200
{- "status": "string"
}
Stop integration by name
Stops the inter-server connection specified by the name, if started else nothing changes. Requires authentication if enabled in the configuration.
Authorizations:
path Parameters
name required | string |
Responses
Response samples
- 200
{- "status": "string"
}
Get all inter-server status
Retrieve all current statuses for the inter-server. Requires authentication if enabled in the configuration.
Authorizations:
query Parameters
filter | string Example: filter=state = PAUSED Optional filter string |
Responses
Response samples
- 200
{- "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, ...}}"
}
]
}
Get inter-server status
Retrieve the current status for the inter-server specified by name. Requires authentication if enabled in the configuration.
Authorizations:
path Parameters
endpoint required | string |
Responses
Response samples
- 200
{- "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.
Get all connections
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.
Authorizations:
query Parameters
filter | string Example: filter=totalOverflow > 10 OR totalUnderflow > 5 Optional filter string |
Responses
Response samples
- 200
{- "data": [
- {
- "id": 0,
- "adapter": "string",
- "name": "string",
- "user": "string",
- "protocolName": "string",
- "protocolVersion": "string",
- "connectedTimeMs": 0,
- "lastRead": 0,
- "lastWrite": 0,
- "totalBytesRead": 0,
- "totalBytesWritten": 0,
- "totalOverflow": 0,
- "totalUnderflow": 0,
- "bytesRead": 0,
- "bytesWritten": 0,
- "overFlow": 0,
- "underFlow": 0
}
]
}
Get connection details for the specified id
Retrieve the details of the specified connection id. Requires authentication if enabled in the configuration.
Authorizations:
query Parameters
connectionId | string |
Responses
Response samples
- 200
{- "endPointSummary": {
- "id": 0,
- "adapter": "string",
- "name": "string",
- "user": "string",
- "protocolName": "string",
- "protocolVersion": "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": "string",
- "timeout": 0,
- "keepAlive": 0,
- "messageTransformationName": "string",
- "selectorMapping": {
- "property1": "string",
- "property2": "string"
}, - "destinationTransformationMapping": {
- "property1": "string",
- "property2": "string"
}
}
}
Provides mechanisms for managing the server's discovery agents, allowing automated detection and configuration of network services and resources.
Get the discovery agents configuration
Retrieves the configuration used to the discovery agent. Requires authentication if enabled in the configuration.
Authorizations:
Responses
Response samples
- 200
{- "enabled": false,
- "hostnames": "::",
- "addTxtRecords": true,
- "domainName": ".local"
}
Update the discovery agents configuration
Updates the configuration used to control the discovery agent. Requires authentication if enabled in the configuration.
Authorizations:
Request Body schema: application/json
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 |
Responses
Request samples
- Payload
{- "enabled": false,
- "hostnames": "::",
- "addTxtRecords": true,
- "domainName": ".local"
}
Response samples
- 200
{- "status": "string"
}
Get discovered servers
Retrieve a list of all currently discovered servers, can be filtered with the optional filter. Requires authentication if enabled in the configuration.
Authorizations:
query Parameters
filter | string Example: filter=schemaSupport = TRUE OR systemTopicPrefix IS NOT NULL Optional filter string |
Responses
Response samples
- 200
{- "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.
Get hardware configuration
Retrieve the configuration for the hardware sub-system. Requires authentication if enabled in the configuration.
Authorizations:
Responses
Response samples
- 200
{- "enabled": 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 hardware configuration
Update the configuration for the hardware sub-system. Requires authentication if enabled in the configuration.
Authorizations:
Request Body schema: */*
enabled | boolean Indicates if the device manager is enabled |
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 |
Responses
Response samples
- 200
{- "status": "string"
}
Get known devices
Retreive a list of all detected devices currently online. Requires authentication if enabled in the configuration.
Authorizations:
Responses
Response samples
- 200
{- "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.
Retrieve all LoRa devices
Fetches a list of all LoRa devices along with their configurations and statistics.
Authorizations:
Responses
Response samples
- 200
{- "data": [
- {
- "name": "LoRaDevice_01",
- "radio": "SX1276",
- "bytesSent": 1048576,
- "bytesReceived": 2048000,
- "packetsSent": 500,
- "packetsReceived": 480,
- "endPointInfoList": [
- {
- "nodeId": 1,
- "lastRSSI": -70,
- "incomingQueueSize": 10,
- "connectionSize": 5
}
]
}
]
}
Retrieve a specific LoRa device
Fetches the details of a specific LoRa device identified by its name.
Authorizations:
path Parameters
deviceName required | string |
Responses
Response samples
- 200
{- "name": "LoRaDevice_01",
- "radio": "SX1276",
- "bytesSent": 1048576,
- "bytesReceived": 2048000,
- "packetsSent": 500,
- "packetsReceived": 480,
- "endPointInfoList": [
- {
- "nodeId": 1,
- "lastRSSI": -70,
- "incomingQueueSize": 10,
- "connectionSize": 5
}
]
}
Retrieve endpoint connections for a LoRa device
Fetches the connection information for a specific endpoint of a LoRa device, identified by the device name and node ID.
Authorizations:
path Parameters
deviceName required | string |
nodeId required | string |
Responses
Response samples
- 200
{- "list": [
- {
- "rssi": -70,
- "missedPackets": 3,
- "receivedPackets": 500,
- "remoteNodeId": 2,
- "lastPacketId": 1000,
- "lastReadTime": 1625812345678,
- "lastWriteTime": 1625812345678
}
]
}
Retrieve all LoRa device configurations
Fetches a list of all configured LoRa devices and their settings.
Authorizations:
Responses
Response samples
- 200
{- "data": [
- {
- "name": "LoRa_Radio_01",
- "radio": "rfm95",
- "cs": 10,
- "irq": 2,
- "rst": 4,
- "power": 14,
- "cadTimeout": 100,
- "frequency": 915
}
]
}
Add a new LoRa device configuration
Creates a new LoRa device configuration and adds it to the system.
Authorizations:
Request Body schema: application/json
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. |
Responses
Request samples
- Payload
{- "name": "LoRa_Radio_01",
- "radio": "rfm95",
- "cs": 10,
- "irq": 2,
- "rst": 4,
- "power": 14,
- "cadTimeout": 100,
- "frequency": 915
}
Response samples
- 200
{ }
Retrieve a specific LoRa device configuration
Fetches the configuration for a specific LoRa device identified by its name.
Authorizations:
path Parameters
deviceName required | string |
Responses
Response samples
- 200
{- "name": "LoRa_Radio_01",
- "radio": "rfm95",
- "cs": 10,
- "irq": 2,
- "rst": 4,
- "power": 14,
- "cadTimeout": 100,
- "frequency": 915
}
Retrieve cache information
Fetches detailed information about the server's central cache, including size, usage statistics, and entries.
Authorizations:
Responses
Response samples
- 200
{- "enabled": true,
- "lifeTime": 0,
- "scanTime": 0,
- "cacheSize": 0,
- "cacheHits": 0,
- "cacheMisses": 0
}
Retrieve server configuration
Fetches the current server configuration settings as a JSON object. Uses caching for improved performance.
Authorizations:
Responses
Response samples
- 200
{- "delayedPublishInterval": 1000,
- "sessionPipeLines": 48,
- "transactionExpiry": 3600000,
- "transactionScan": 5000,
- "compressionName": "None",
- "compressMessageMinSize": 1024,
- "enableResourceStatistics": false,
- "enableSystemTopics": true,
- "enableSystemStatusTopics": true,
- "enableSystemTopicAverages": false,
- "enableJMX": false,
- "enableJMXStatistics": false,
- "tagMetaData": false,
- "latitude": 0,
- "longitude": 0
}
Update server configuration
Updates the server configuration with the provided settings. Saves changes to disk and clears relevant cache entries to ensure consistency.
Authorizations:
Request Body schema: */*
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 |
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 |
Responses
Response samples
- 200
{- "status": "string"
}