Skip to content
Stand with Ukraine flag

TBMQ configuration

SERVER_SHUTDOWN · Default graceful

Shutdown type. Accepted values: graceful, immediate.

HTTP_BIND_ADDRESS · Default 0.0.0.0

HTTP Server bind address. Has no effect if web-environment is disabled.

HTTP_BIND_PORT · Default 8083

HTTP Server bind port. Has no effect if web-environment is disabled.

HTTP_FORWARD_HEADERS_STRATEGY · Default framework

Server headers forwarding strategy. Required for Swagger UI when a reverse proxy is used.

HTTP2_ENABLED · Default true

Enables or disables HTTP/2 support.

HTTP_LOG_CONTROLLER_ERROR_STACK_TRACE · Default false

Logs errors with stacktrace when REST API throws exception.

SSL_ENABLED · Default false

Enables or disables SSL support.

SSL_CREDENTIALS_TYPE · Default PEM

Server credentials type. Accepted values: PEM (PEM certificate file), KEYSTORE (Java keystore).

SSL_PEM_CERT · Default server.pem

Path to the server certificate file (holds server certificate or certificate chain, may include server private key).

SSL_PEM_KEY · Default server_key.pem

Path to the server certificate private key file. Optional by default. Required if the private key is not present in the server certificate file.

SSL_PEM_KEY_PASSWORD · Default server_key_password

Optional. Server certificate private key password.

SSL_KEY_STORE_TYPE · Default PKCS12

Type of the key store. Accepted values: JKS, PKCS12.

SSL_KEY_STORE · Default classpath:keystore/keystore.p12

Path to the key store that holds the SSL certificate.

SSL_KEY_STORE_PASSWORD · Default thingsboard_mqtt_broker

Password used to access the key store.

SSL_KEY_ALIAS · Default tomcat

Key alias.

SSL_KEY_PASSWORD · Default thingsboard_mqtt_broker

Password used to access the key.

MQTT_PROXY_PROTOCOL_ENABLED · Default false

Enables proxy protocol support as a global setting for all listeners. If enabled, supports both v1 and v2. Useful to get the real IP address of the client in the logs, for session details info and unauthorized clients feature.

NETTY_LEAK_DETECTOR_LVL · Default DISABLED

Netty leak detector level. Accepted values: DISABLED, SIMPLE, ADVANCED, PARANOID. Applied globally for all listeners.

NETTY_WRITE_BUFFER_HIGH_WATER_MARK · Default 1280

Threshold (in KB) at which Netty considers the channel non-writable. When reached, TBMQ stops delivering data to the subscriber until the channel becomes writable again. Non-persistent clients lose data in this case.

NETTY_WRITE_BUFFER_LOW_WATER_MARK · Default 640

Threshold (in KB) at which Netty considers the channel writable again. When reached, TBMQ resumes delivering data to the subscriber.

NETTY_SO_RECEIVE_BUFFER · Default 0

Netty socket receive buffer size (in KB). When the buffer limit is reached, TCP triggers backpressure and notifies the sender to slow down. Defaults to 0, which uses the system’s default buffer size.

LISTENER_TCP_ENABLED · Default true

Enables or disables MQTT TCP port listener.

LISTENER_TCP_BIND_ADDRESS · Default 0.0.0.0

MQTT TCP listener bind address.

LISTENER_TCP_BIND_PORT · Default 1883

MQTT TCP listener bind port.

MQTT_TCP_PROXY_PROTOCOL_ENABLED

Enables proxy protocol support for the MQTT TCP listener. Unset by default — inherits the global MQTT_PROXY_PROTOCOL_ENABLED value. If explicitly set, supports both v1 and v2 and takes precedence over the global setting. Useful to get the real IP address of the client in the logs, for session details info and unauthorized clients feature.

TCP_NETTY_BOSS_GROUP_THREADS · Default 1

Number of Netty boss group threads.

TCP_NETTY_WORKER_GROUP_THREADS · Default 12

Number of Netty worker group threads.

TCP_NETTY_MAX_PAYLOAD_SIZE · Default 65536

Maximum payload size (in bytes).

TCP_NETTY_SO_KEEPALIVE · Default true

Enables or disables the TCP keep-alive mechanism to periodically probe the other end of a connection.

TCP_NETTY_SHUTDOWN_QUIET_PERIOD · Default 0

Quiet period during graceful shutdown, in which no new tasks are submitted (in s).

TCP_NETTY_SHUTDOWN_TIMEOUT · Default 5

Maximum time to wait until the executor is stopped (in s).

LISTENER_SSL_ENABLED · Default false

Enables or disables MQTT SSL port listener.

LISTENER_SSL_BIND_ADDRESS · Default 0.0.0.0

MQTT SSL listener bind address.

LISTENER_SSL_BIND_PORT · Default 8883

MQTT SSL listener bind port.

MQTT_SSL_PROXY_PROTOCOL_ENABLED

Enables proxy protocol support for the MQTT TLS listener. Unset by default — inherits the global MQTT_PROXY_PROTOCOL_ENABLED value. If explicitly set, supports both v1 and v2 and takes precedence over the global setting. Useful to get the real IP address of the client in the logs, for session details info and unauthorized clients feature.

LISTENER_SSL_PROTOCOL · Default TLSv1.2

SSL protocol. See <a href=“https://docs.oracle.com/en/java/javase/17/docs/specs/security/standard-names.html#sslcontext-algorithms”&gt;this link</a> for accepted values.

LISTENER_SSL_ENABLED_CIPHER_SUITES

Comma-separated list of cipher suites enabled for the mqtts listener (e.g. TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256). Defaults to empty, meaning all cipher suites supported by the provider are used.

LISTENER_SSL_CREDENTIALS_TYPE · Default PEM

Server credentials type. Accepted values: PEM (PEM certificate file), KEYSTORE (Java keystore).

LISTENER_SSL_PEM_CERT · Default mqttserver.pem

Path to the server certificate file (holds server certificate or certificate chain, may include server private key).

LISTENER_SSL_PEM_KEY · Default mqttserver_key.pem

Path to the server certificate private key file. Optional by default. Required if the private key is not present in the server certificate file.

LISTENER_SSL_PEM_KEY_PASSWORD · Default server_key_password

Optional. Server certificate private key password.

LISTENER_SSL_KEY_STORE_TYPE · Default JKS

Type of the key store. Accepted values: JKS, PKCS12.

LISTENER_SSL_KEY_STORE · Default mqttserver.jks

Path to the key store that holds the SSL certificate.

LISTENER_SSL_KEY_STORE_PASSWORD · Default server_ks_password

Password used to access the key store.

LISTENER_SSL_KEY_ALIAS

Optional. Alias of the private key. If not set, the platform will load the first private key from the keystore.

LISTENER_SSL_KEY_PASSWORD · Default server_key_password

Optional. Password to access the private key. If not set, the platform will attempt to load private keys that are not password-protected.

SSL_NETTY_BOSS_GROUP_THREADS · Default 1

Number of Netty boss group threads.

SSL_NETTY_WORKER_GROUP_THREADS · Default 12

Number of Netty worker group threads.

SSL_NETTY_MAX_PAYLOAD_SIZE · Default 65536

Maximum payload size (in bytes).

SSL_NETTY_SO_KEEPALIVE · Default true

Enables or disables the TCP keep-alive mechanism to periodically probe the other end of a connection.

SSL_NETTY_SHUTDOWN_QUIET_PERIOD · Default 0

Quiet period during graceful shutdown, in which no new tasks are submitted (in s).

SSL_NETTY_SHUTDOWN_TIMEOUT · Default 5

Maximum time to wait until the executor is stopped (in s).

LISTENER_WS_ENABLED · Default true

Enables or disables MQTT WS port listener.

LISTENER_WS_BIND_ADDRESS · Default 0.0.0.0

MQTT WS listener bind address.

LISTENER_WS_BIND_PORT · Default 8084

MQTT WS listener bind port.

MQTT_WS_PROXY_PROTOCOL_ENABLED

Enables proxy protocol support for the MQTT WS listener. Unset by default — inherits the global MQTT_PROXY_PROTOCOL_ENABLED value. If explicitly set, supports both v1 and v2 and takes precedence over the global setting. Useful to get the real IP address of the client in the logs, for session details info and unauthorized clients feature.

WS_NETTY_SUB_PROTOCOLS · Default mqttv3.1,mqtt

Comma-separated list of subprotocols that the WebSocket can negotiate. The subprotocol setting mqtt represents MQTT 3.1.1 and MQTT 5.

WS_NETTY_BOSS_GROUP_THREADS · Default 1

Number of Netty boss group threads.

WS_NETTY_WORKER_GROUP_THREADS · Default 12

Number of Netty worker group threads.

WS_NETTY_MAX_PAYLOAD_SIZE · Default 65536

Maximum payload size (in bytes).

WS_NETTY_SO_KEEPALIVE · Default true

Enables or disables the TCP keep-alive mechanism to periodically probe the other end of a connection.

WS_NETTY_SHUTDOWN_QUIET_PERIOD · Default 0

Quiet period during graceful shutdown, in which no new tasks are submitted (in s).

WS_NETTY_SHUTDOWN_TIMEOUT · Default 5

Maximum time to wait until the executor is stopped (in s).

LISTENER_WSS_ENABLED · Default false

Enables or disables MQTT WSS port listener.

LISTENER_WSS_BIND_ADDRESS · Default 0.0.0.0

MQTT WSS listener bind address.

LISTENER_WSS_BIND_PORT · Default 8085

MQTT WSS listener bind port.

MQTT_WSS_PROXY_PROTOCOL_ENABLED

Enables proxy protocol support for the MQTT WSS listener. Unset by default — inherits the global MQTT_PROXY_PROTOCOL_ENABLED value. If explicitly set, supports both v1 and v2 and takes precedence over the global setting. Useful to get the real IP address of the client in the logs, for session details info and unauthorized clients feature.

LISTENER_WSS_PROTOCOL · Default TLSv1.2

SSL protocol. See <a href=“https://docs.oracle.com/en/java/javase/17/docs/specs/security/standard-names.html#sslcontext-algorithms”&gt;this link</a> for accepted values.

LISTENER_WSS_ENABLED_CIPHER_SUITES

Comma-separated list of cipher suites enabled for the wss listener (e.g. TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256). Defaults to empty, meaning all cipher suites supported by the provider are used.

LISTENER_WSS_CREDENTIALS_TYPE · Default PEM

Server credentials type. Accepted values: PEM (PEM certificate file), KEYSTORE (Java keystore).

LISTENER_WSS_PEM_CERT · Default ws_mqtt_server.pem

Path to the server certificate file (holds server certificate or certificate chain, may include server private key).

LISTENER_WSS_PEM_KEY · Default ws_mqtt_server_key.pem

Path to the server certificate private key file. Optional by default. Required if the private key is not present in the server certificate file.

LISTENER_WSS_PEM_KEY_PASSWORD · Default ws_server_key_password

Optional. Server certificate private key password.

LISTENER_WSS_KEY_STORE_TYPE · Default JKS

Type of the key store. Accepted values: JKS, PKCS12.

LISTENER_WSS_KEY_STORE · Default ws_mqtt_server.jks

Path to the key store that holds the SSL certificate.

LISTENER_WSS_KEY_STORE_PASSWORD · Default ws_server_ks_password

Password used to access the key store.

LISTENER_WSS_KEY_ALIAS

Optional. Alias of the private key. If not set, the platform will load the first private key from the keystore.

LISTENER_WSS_KEY_PASSWORD · Default ws_server_key_password

Optional. Password to access the private key. If not set, the platform will attempt to load private keys that are not password-protected.

WSS_NETTY_SUB_PROTOCOLS · Default mqttv3.1,mqtt

Comma-separated list of subprotocols that the WebSocket can negotiate. The subprotocol setting mqtt represents MQTT 3.1.1 and MQTT 5.

WSS_NETTY_BOSS_GROUP_THREADS · Default 1

Number of Netty boss group threads.

WSS_NETTY_WORKER_GROUP_THREADS · Default 12

Number of Netty worker group threads.

WSS_NETTY_MAX_PAYLOAD_SIZE · Default 65536

Maximum payload size (in bytes).

WSS_NETTY_SO_KEEPALIVE · Default true

Enables or disables the TCP keep-alive mechanism to periodically probe the other end of a connection.

WSS_NETTY_SHUTDOWN_QUIET_PERIOD · Default 0

Quiet period during graceful shutdown, in which no new tasks are submitted (in s).

WSS_NETTY_SHUTDOWN_TIMEOUT · Default 5

Maximum time to wait until the executor is stopped (in s).

TB_MSG_ALL_CONSUMERS_COUNT · Default 4

Number of parallel consumers for ‘tbmq.msg.all’ topic. Should not be more than the number of partitions in topic.

TB_MSG_ALL_THREADS_COUNT · Default 4

Number of threads in the pool to process consumers tasks. Should not be less than number of consumers.

TB_MSG_ALL_POLL_INTERVAL · Default 100

Poll interval for messages from ‘tbmq.msg.all’ topic (in ms).

TB_MSG_ALL_PACK_PROCESSING_TIMEOUT · Default 20000

Timeout for processing a pack of messages from ‘tbmq.msg.all’ topic (in ms).

TB_MSG_ALL_ACK_STRATEGY_TYPE · Default SKIP_ALL

Processing strategy for ‘tbmq.msg.all’ topic. Accepted values: SKIP_ALL, RETRY_ALL.

TB_MSG_ALL_ACK_STRATEGY_RETRIES · Default 1

Number of retries. Use 0 for unlimited. Applies to the RETRY_ALL strategy.

TB_MSG_ALL_PARALLEL_PROCESSING · Default false

Enables or disables parallel processing of consumed messages (grouped by publishing client ID to preserve order). Helpful when the same client publishes lots of messages in a short amount of time. It is recommended to measure the impact of this parameter before enabling it in production.

TB_APP_PERSISTED_MSG_POLL_INTERVAL · Default 100

Poll interval for messages from Application topics (in ms).

TB_APP_PERSISTED_MSG_PACK_PROCESSING_TIMEOUT · Default 20000

Timeout for processing a pack of messages (in ms).

TB_APP_PERSISTED_MSG_ACK_STRATEGY_TYPE · Default RETRY_ALL

Processing strategy for Application topics. Accepted values: SKIP_ALL, RETRY_ALL.

TB_APP_PERSISTED_MSG_ACK_STRATEGY_RETRIES · Default 3

Number of retries. Use 0 for unlimited. Applies to the RETRY_ALL strategy.

TB_APP_PERSISTED_MSG_CLIENT_ID_VALIDATION · Default true

Enables or disables validation that the application client ID contains only alphanumeric characters (required for Kafka topic creation).

TB_APP_PERSISTED_MSG_SHARED_TOPIC_VALIDATION · Default true

Enables or disables validation that the application shared subscription topic filter contains only alphanumeric characters, ’+’, or ’#’ (required for Kafka topic creation).

TB_DEVICE_PERSISTED_MSG_CONSUMERS_COUNT · Default 3

Number of parallel consumers for ‘tbmq.msg.persisted’ topic. Should not be more than the number of partitions in topic.

TB_DEVICE_PERSISTED_MSG_THREADS_COUNT · Default 3

Number of threads in the pool to process consumers tasks.

TB_DEVICE_PERSISTED_MSG_POLL_INTERVAL · Default 100

Poll interval for messages from ‘tbmq.msg.persisted’ topic (in ms).

TB_DEVICE_PERSISTED_MSG_PACK_PROCESSING_TIMEOUT · Default 20000

Timeout for processing a pack of messages from ‘tbmq.msg.persisted’ topic (in ms).

TB_DEVICE_PERSISTED_MSG_ACK_STRATEGY_TYPE · Default RETRY_ALL

Queue processing strategy. Accepted values: SKIP_ALL, RETRY_ALL.

TB_DEVICE_PERSISTED_MSG_ACK_STRATEGY_RETRIES · Default 3

Number of retries. Use 0 for unlimited. Applies to the RETRY_ALL strategy.

TB_DEVICE_PERSISTED_MSG_ACK_STRATEGY_PAUSE_BETWEEN_RETRIES · Default 1

Time to wait in the consumer thread before retrying (in s).

TB_RETAINED_MSG_POLL_INTERVAL · Default 100

Poll interval for messages from ‘tbmq.msg.retained’ topic (in ms).

TB_RETAINED_MSG_ACK_WAIT_TIMEOUT_MS · Default 500

Wait timeout for system messages to be delivered to ‘tbmq.msg.retained’ topic (in ms).

TB_CLIENT_SESSION_POLL_INTERVAL · Default 100

Poll interval for messages from ‘tbmq.client.session’ topic (in ms).

TB_CLIENT_SESSION_ACK_WAIT_TIMEOUT_MS · Default 500

Wait timeout for system messages to be delivered to ‘tbmq.client.session’ topic (in ms).

TB_CLIENT_SUBSCRIPTIONS_POLL_INTERVAL · Default 100

Poll interval for messages from ‘tbmq.client.subscriptions’ topic (in ms).

TB_CLIENT_SUBSCRIPTIONS_ACK_WAIT_TIMEOUT_MS · Default 500

Wait timeout for system messages to be delivered to ‘tbmq.client.subscriptions’ topic (in ms).

TB_CLIENT_SESSION_EVENT_CONSUMERS_COUNT · Default 2

Number of parallel consumers for tbmq.client.session.event.request topic.

TB_CLIENT_SESSION_EVENT_MAX_PENDING_REQUESTS · Default 10000

Maximum number of pending client session events.

TB_CLIENT_SESSION_EVENT_POLL_INTERVAL · Default 100

Poll interval for messages from ‘tbmq.client.session.event.request’ topic (in ms).

TB_CLIENT_SESSION_EVENT_BATCH_WAIT_MS · Default 15000

Maximum time to process ‘tbmq.client.session.event.request’ messages after consuming them (in ms).

TB_CLIENT_SESSION_EVENT_RESPONSE_SENDER_THREADS · Default 8

Number of threads for sending event responses to session event requests.

TB_CLIENT_SESSION_EVENT_RESPONSE_POLL_INTERVAL · Default 100

Poll interval for messages from ‘tbmq.client.session.event.response’ topics (in ms).

TB_CLIENT_SESSION_EVENT_RESPONSE_MAX_REQUEST_TIMEOUT · Default 100000

Maximum time before client session events expire (in ms).

TB_CLIENT_SESSION_EVENT_RESPONSE_CLEANUP_INTERVAL · Default 100

Cleanup period for stale client session events (in ms).

TB_DISCONNECT_CLIENT_COMMAND_POLL_INTERVAL · Default 100

Poll interval for messages from ‘tbmq.client.disconnect’ topics (in ms).

TB_PERSISTED_DOWNLINK_MSG_CONSUMERS_COUNT · Default 2

Number of parallel consumers for tbmq.msg.downlink.persisted topics.

TB_PERSISTED_DOWNLINK_MSG_THREADS_COUNT · Default 2

Number of threads in the pool to process consumers tasks.

TB_PERSISTED_DOWNLINK_MSG_POLL_INTERVAL · Default 100

Poll interval for messages from ‘tbmq.msg.downlink.persisted’ topics (in ms).

TB_BASIC_DOWNLINK_MSG_CONSUMERS_COUNT · Default 2

Number of parallel consumers for tbmq.msg.downlink.basic topics.

TB_BASIC_DOWNLINK_MSG_THREADS_COUNT · Default 2

Number of threads in the pool to process consumers tasks.

TB_BASIC_DOWNLINK_MSG_POLL_INTERVAL · Default 100

Poll interval for messages from ‘tbmq.msg.downlink.basic’ topics (in ms).

TB_APPLICATION_REMOVED_EVENT_POLL_INTERVAL · Default 100

Poll interval for messages from ‘tbmq.sys.app.removed’ topic (in ms).

TB_APPLICATION_REMOVED_EVENT_PROCESSING_CRON · Default 0 0 3 * * *

Cron expression defining when to consume and process messages.

TB_APPLICATION_REMOVED_EVENT_PROCESSING_ZONE · Default UTC

Timezone for the processing cron-job.

TB_HISTORICAL_DATA_TOTAL_POLL_INTERVAL · Default 100

Poll interval for messages from ‘tbmq.sys.historical.data’ topic (in ms).

TB_IE_UPLINK_POLL_INTERVAL · Default 100

Poll interval for messages from ‘tbmq.ie.uplink’ topic (in ms).

TB_IE_UPLINK_NOTIFICATIONS_POLL_INTERVAL · Default 100

Poll interval for messages from ‘tbmq.ie.uplink.notifications’ topics (in ms).

TB_NODE_NOTIFICATION_POLL_INTERVAL · Default 100

Poll interval for messages from ‘tbmq.sys.internode.notifications’ topics (in ms).

TB_BLOCKED_CLIENT_POLL_INTERVAL · Default 100

Poll interval for messages from ‘tbmq.client.blocked’ topic (in ms).

TB_BLOCKED_CLIENT_ACK_WAIT_TIMEOUT_MS · Default 500

Wait timeout for system messages to be delivered to ‘tbmq.client.blocked’ topic (in ms).

TB_KAFKA_SERVERS · Default localhost:9092

List of Kafka bootstrap servers used to establish connection.

TB_KAFKA_ENABLE_TOPIC_DELETION · Default true

Enables or disables deletion of Kafka topics created for Application MQTT Clients or Application Shared subscriptions. When true, TBMQ may automatically remove topics during cleanup (e.g., when an Application client or shared subscription is deleted). When false, TBMQ skips topic deletion and simply stops using them, preventing accidental data loss in production environments.

TB_KAFKA_DEFAULT_PRODUCER_CONSUMER_CONFIG

Base Kafka properties applied to admins, all producers and consumers, making it the ideal place for shared connection and security settings. Format is key:value;key:value. If a property value contains a semicolon (common in sasl.jaas.config), escape it with a backslash (e.g., …username=“user”;password=“pass”;).

TB_KAFKA_DEFAULT_CONSUMER_CONFIG

Additional Kafka properties specific only to consumers, merged with the global defaults — TB_KAFKA_DEFAULT_PRODUCER_CONSUMER_CONFIG (overriding them if keys conflict). Follows the standard key:value;key:value format. Ensure any internal semicolons in values are escaped as ;.

TB_KAFKA_DEFAULT_CONSUMER_PARTITION_ASSIGNMENT_STRATEGY · Default org.apache.kafka.clients.consumer.StickyAssignor

List of partition assignment strategy class names or types, ordered by preference, used to distribute partition ownership amongst consumer instances when group management is used.

TB_KAFKA_DEFAULT_CONSUMER_SESSION_TIMEOUT_MS · Default 10000

Timeout for detecting client failures when using Kafka’s group management facility (in ms).

TB_KAFKA_DEFAULT_CONSUMER_MAX_POLL_INTERVAL_MS · Default 300000

Maximum delay between invocations of poll() when using consumer group management (in ms).

TB_KAFKA_DEFAULT_CONSUMER_MAX_POLL_RECORDS · Default 2000

Maximum number of records returned in a single call to poll().

TB_KAFKA_DEFAULT_CONSUMER_MAX_PARTITION_FETCH_BYTES · Default 16777216

Maximum amount of data per partition the server will return (in bytes).

TB_KAFKA_DEFAULT_CONSUMER_FETCH_MAX_BYTES · Default 134217728

Maximum amount of data the server should return for a fetch request (in bytes).

TB_KAFKA_DEFAULT_CONSUMER_HEARTBEAT_INTERVAL_MS · Default 3000

Expected time between heartbeats to the consumer coordinator when using Kafka’s group management facilities. Heartbeats ensure the consumer’s session stays active and facilitate rebalancing when consumers join or leave. Must be set lower than TB_KAFKA_DEFAULT_CONSUMER_SESSION_TIMEOUT_MS, but typically no higher than 1/3 of that value. Can be adjusted lower to control the expected time for normal rebalances (in ms). Defaults to 3 s.

TB_KAFKA_DEFAULT_PRODUCER_CONFIG

Additional Kafka properties specific only to producers, merged with the global defaults — TB_KAFKA_DEFAULT_PRODUCER_CONSUMER_CONFIG (overriding them if keys conflict). Follows the standard key:value;key:value format. Ensure any internal semicolons in values are escaped as ;.

TB_KAFKA_DEFAULT_PRODUCER_ACKS · Default 1

Number of acknowledgments the producer requires the leader to have received before considering a request complete.

TB_KAFKA_DEFAULT_PRODUCER_RETRIES · Default 1

Number of retries for records whose send fails with a potentially transient error.

TB_KAFKA_DEFAULT_PRODUCER_BATCH_SIZE · Default 16384

Batch size for grouping records sent to the same partition (in bytes).

TB_KAFKA_DEFAULT_PRODUCER_LINGER_MS · Default 5

Delay for grouping records arriving between request transmissions into a batched request (in ms).

TB_KAFKA_DEFAULT_PRODUCER_BUFFER_MEMORY · Default 33554432

Total memory the producer can use to buffer records waiting to be sent to the server (in bytes).

TB_KAFKA_DEFAULT_COMPRESSION_TYPE · Default none

Compression type for all data generated by the producer. Accepted values: none, gzip, snappy, lz4, zstd.

TB_KAFKA_ADMIN_CONFIG · Default retries:1

Additional configs separated by semicolon for the admin Kafka client, merged with the global defaults — TB_KAFKA_DEFAULT_PRODUCER_CONSUMER_CONFIG (overriding them if keys conflict).

TB_KAFKA_ADMIN_COMMAND_TIMEOUT_SEC · Default 30

Kafka Admin client command timeout (in s). Applies to operations like describeCluster, listTopics, etc.

TB_KAFKA_ADMIN_TOPICS_CACHE_TTL_MS · Default 300000

Kafka topics cache TTL (in ms). Defines how long the list of topics is kept in memory before reloading from Kafka. Defaults to 5 minutes.

TB_KAFKA_CONSUMER_STATS_ENABLED · Default true

Enables or disables printing of consumer group lag between consumer offsets and the latest Kafka topic offsets.

TB_KAFKA_CONSUMER_STATS_PRINT_INTERVAL_MS · Default 60000

Print interval for Kafka consumer group statistics (in ms).

TB_KAFKA_CONSUMER_STATS_RESPONSE_TIMEOUT_MS · Default 1000

Time to wait for stats-loading requests to Kafka to finish (in ms).

TB_KAFKA_CONSUMER_STATS_CONSUMER_CONFIG

Additional configs separated by semicolon for the Kafka stats consumer, merged with the consumer defaults — TB_KAFKA_DEFAULT_CONSUMER_CONFIG (overriding them if keys conflict).

TB_KAFKA_HOME_PAGE_CONSUMER_CONFIG

Additional configs separated by semicolon for the Kafka admin client used on the home page, merged with the consumer defaults — TB_KAFKA_DEFAULT_CONSUMER_CONFIG (overriding them if keys conflict).

TB_KAFKA_HOME_PAGE_RESPONSE_TIMEOUT_MS · Default 30000

Time to wait for home page requests to Kafka to finish (in ms).

TB_KAFKA_MSG_ALL_TOPIC · Default tbmq.msg.all

Topic for persisting incoming PUBLISH messages.

TB_KAFKA_MSG_ALL_TOPIC_PROPERTIES · Default retention.ms:604800000;segment.bytes:26214400;retention.bytes:2147483648;partitions:16;replication.factor:1

Kafka topic properties separated by semicolon for the tbmq.msg.all topic.

TB_KAFKA_MSG_ALL_ADDITIONAL_CONSUMER_CONFIG

Additional Kafka consumer configs separated by semicolon for the tbmq.msg.all topic.

TB_KAFKA_MSG_ALL_ADDITIONAL_PRODUCER_CONFIG

Additional Kafka producer configs separated by semicolon for the tbmq.msg.all topic.

TB_KAFKA_APP_PERSISTED_MSG_TOPIC_PROPERTIES · Default retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;replication.factor:1

Kafka topic properties separated by semicolon for the tbmq.msg.app topics.

TB_KAFKA_APP_PERSISTED_MSG_ADDITIONAL_CONSUMER_CONFIG · Default max.poll.records:200

Additional Kafka consumer configs separated by semicolon for the tbmq.msg.app topics.

TB_KAFKA_APP_PERSISTED_MSG_ADDITIONAL_PRODUCER_CONFIG

Additional Kafka producer configs separated by semicolon for the tbmq.msg.app topics.

TB_KAFKA_APP_PERSISTED_MSG_SHARED_TOPIC_PROPERTIES · Default retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;replication.factor:1

Kafka topic properties separated by semicolon for application shared subscription topics.

TB_KAFKA_APP_PERSISTED_MSG_SHARED_ADDITIONAL_CONSUMER_CONFIG · Default max.poll.records:500

Additional Kafka consumer configs separated by semicolon for application shared subscription topics.

TB_KAFKA_APP_PERSISTED_MSG_SHARED_ADDITIONAL_PRODUCER_CONFIG

Additional Kafka producer configs separated by semicolon for application shared subscription topics.

TB_KAFKA_DEVICE_PERSISTED_MSG_TOPIC · Default tbmq.msg.persisted

Topic for persisting messages related to Device clients before saving them in the database.

TB_KAFKA_DEVICE_PERSISTED_MSG_TOPIC_PROPERTIES · Default retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:12;replication.factor:1

Kafka topic properties separated by semicolon for the tbmq.msg.persisted topic.

TB_KAFKA_DEVICE_PERSISTED_MSG_ADDITIONAL_CONSUMER_CONFIG

Additional Kafka consumer configs separated by semicolon for the tbmq.msg.persisted topic.

TB_KAFKA_DEVICE_PERSISTED_MSG_ADDITIONAL_PRODUCER_CONFIG

Additional Kafka producer configs separated by semicolon for the tbmq.msg.persisted topic.

TB_KAFKA_RETAINED_MSG_TOPIC · Default tbmq.msg.retained

Topic for retained messages.

TB_KAFKA_RETAINED_MSG_TOPIC_PROPERTIES · Default segment.bytes:26214400;partitions:1;replication.factor:1

Kafka topic properties separated by semicolon for the tbmq.msg.retained topic.

TB_KAFKA_RETAINED_MSG_ADDITIONAL_CONSUMER_CONFIG

Additional Kafka consumer configs separated by semicolon for the tbmq.msg.retained topic.

TB_KAFKA_RETAINED_MSG_ADDITIONAL_PRODUCER_CONFIG · Default retries:3

Additional Kafka producer configs separated by semicolon for the tbmq.msg.retained topic.

TB_KAFKA_CLIENT_SESSION_TOPIC · Default tbmq.client.session

Topic for persisting client sessions.

TB_KAFKA_CLIENT_SESSION_TOPIC_PROPERTIES · Default segment.bytes:26214400;partitions:1;replication.factor:1

Kafka topic properties separated by semicolon for the tbmq.client.session topic.

TB_KAFKA_CLIENT_SESSION_ADDITIONAL_CONSUMER_CONFIG

Additional Kafka consumer configs separated by semicolon for the tbmq.client.session topic.

TB_KAFKA_CLIENT_SESSION_ADDITIONAL_PRODUCER_CONFIG · Default retries:3

Additional Kafka producer configs separated by semicolon for the tbmq.client.session topic.

TB_KAFKA_CLIENT_SUBSCRIPTIONS_TOPIC · Default tbmq.client.subscriptions

Topic for persisting client subscriptions.

TB_KAFKA_CLIENT_SUBSCRIPTIONS_TOPIC_PROPERTIES · Default segment.bytes:26214400;partitions:1;replication.factor:1

Kafka topic properties separated by semicolon for the tbmq.client.subscriptions topic.

TB_KAFKA_CLIENT_SUBSCRIPTIONS_ADDITIONAL_CONSUMER_CONFIG

Additional Kafka consumer configs separated by semicolon for the tbmq.client.subscriptions topic.

TB_KAFKA_CLIENT_SUBSCRIPTIONS_ADDITIONAL_PRODUCER_CONFIG · Default retries:3

Additional Kafka producer configs separated by semicolon for the tbmq.client.subscriptions topic.

TB_KAFKA_CLIENT_SESSION_EVENT_TOPIC · Default tbmq.client.session.event.request

Topic for sending client session event requests.

TB_KAFKA_CLIENT_SESSION_EVENT_TOPIC_PROPERTIES · Default retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:24;replication.factor:1

Kafka topic properties separated by semicolon for the tbmq.client.session.event.request topic.

TB_KAFKA_CLIENT_SESSION_EVENT_ADDITIONAL_CONSUMER_CONFIG · Default max.poll.records:1000

Additional Kafka consumer configs separated by semicolon for the tbmq.client.session.event.request topic.

TB_KAFKA_CLIENT_SESSION_EVENT_ADDITIONAL_PRODUCER_CONFIG

Additional Kafka producer configs separated by semicolon for the tbmq.client.session.event.request topic.

TB_KAFKA_CLIENT_SESSION_EVENT_RESPONSE_TOPIC_PREFIX · Default tbmq.client.session.event.response

Prefix for topics used to send client session event responses to Broker nodes.

TB_KAFKA_CLIENT_SESSION_EVENT_RESPONSE_TOPIC_PROPERTIES · Default retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;replication.factor:1

Kafka topic properties separated by semicolon for the tbmq.client.session.event.response topics.

TB_KAFKA_CLIENT_SESSION_EVENT_RESPONSE_ADDITIONAL_CONSUMER_CONFIG

Additional Kafka consumer configs separated by semicolon for the tbmq.client.session.event.response topics.

TB_KAFKA_CLIENT_SESSION_EVENT_RESPONSE_ADDITIONAL_PRODUCER_CONFIG

Additional Kafka producer configs separated by semicolon for the tbmq.client.session.event.response topics.

TB_KAFKA_DISCONNECT_CLIENT_COMMAND_TOPIC_PREFIX · Default tbmq.client.disconnect

Prefix for topics used to send disconnect client commands to Broker nodes.

TB_KAFKA_DISCONNECT_CLIENT_COMMAND_RESPONSE_TOPIC_PROPERTIES · Default retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;replication.factor:1

Kafka topic properties separated by semicolon for the tbmq.client.disconnect topics.

TB_KAFKA_DISCONNECT_CLIENT_COMMAND_ADDITIONAL_CONSUMER_CONFIG

Additional Kafka consumer configs separated by semicolon for the tbmq.client.disconnect topics.

TB_KAFKA_DISCONNECT_CLIENT_COMMAND_ADDITIONAL_PRODUCER_CONFIG

Additional Kafka producer configs separated by semicolon for the tbmq.client.disconnect topics.

TB_KAFKA_BASIC_DOWNLINK_MSG_TOPIC_PREFIX · Default tbmq.msg.downlink.basic

Prefix for topics for non-persistent Device messages that should be transferred to other Broker nodes.

TB_KAFKA_BASIC_DOWNLINK_MSG_TOPIC_PROPERTIES · Default retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:12;replication.factor:1

Kafka topic properties separated by semicolon for the tbmq.msg.downlink.basic topics.

TB_KAFKA_BASIC_DOWNLINK_MSG_ADDITIONAL_CONSUMER_CONFIG

Additional Kafka consumer configs separated by semicolon for the tbmq.msg.downlink.basic topics.

TB_KAFKA_BASIC_DOWNLINK_MSG_ADDITIONAL_PRODUCER_CONFIG · Default batch.size:32768

Additional Kafka producer configs separated by semicolon for the tbmq.msg.downlink.basic topics.

TB_KAFKA_PERSISTED_DOWNLINK_MSG_TOPIC_PREFIX · Default tbmq.msg.downlink.persisted

Prefix for topics for persistent Device messages that should be transferred to other Broker nodes.

TB_KAFKA_PERSISTED_DOWNLINK_MSG_TOPIC_PROPERTIES · Default retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:12;replication.factor:1

Kafka topic properties separated by semicolon for the tbmq.msg.downlink.persisted topics.

TB_KAFKA_PERSISTED_DOWNLINK_MSG_ADDITIONAL_CONSUMER_CONFIG

Additional Kafka consumer configs separated by semicolon for the tbmq.msg.downlink.persisted topics.

TB_KAFKA_PERSISTED_DOWNLINK_MSG_ADDITIONAL_PRODUCER_CONFIG

Additional Kafka producer configs separated by semicolon for the tbmq.msg.downlink.persisted topics.

TB_KAFKA_APPLICATION_REMOVED_EVENT_TOPIC · Default tbmq.sys.app.removed

Topic for sending events to remove application topics when application clients are changed to device clients.

TB_KAFKA_APPLICATION_REMOVED_EVENT_TOPIC_PROPERTIES · Default retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;replication.factor:1

Kafka topic properties separated by semicolon for the tbmq.sys.app.removed topic.

TB_KAFKA_APPLICATION_REMOVED_EVENT_ADDITIONAL_CONSUMER_CONFIG

Additional Kafka consumer configs separated by semicolon for the tbmq.sys.app.removed topic.

TB_KAFKA_APPLICATION_REMOVED_EVENT_ADDITIONAL_PRODUCER_CONFIG

Additional Kafka producer configs separated by semicolon for the tbmq.sys.app.removed topic.

TB_KAFKA_HISTORICAL_DATA_TOTAL_TOPIC · Default tbmq.sys.historical.data

Topic for sending historical data stats to be summed from each broker.

TB_KAFKA_HISTORICAL_DATA_TOTAL_TOPIC_PROPERTIES · Default retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;replication.factor:1

Kafka topic properties separated by semicolon for the tbmq.sys.historical.data topic.

TB_KAFKA_HISTORICAL_DATA_TOTAL_ADDITIONAL_CONSUMER_CONFIG

Additional Kafka consumer configs separated by semicolon for the tbmq.sys.historical.data topic.

TB_KAFKA_HISTORICAL_DATA_TOTAL_ADDITIONAL_PRODUCER_CONFIG

Additional Kafka producer configs separated by semicolon for the tbmq.sys.historical.data topic.

TB_KAFKA_IE_DOWNLINK_TOPIC_PREFIX · Default tbmq.ie.downlink

Prefix for topics used to send integration configurations and validation requests from TBMQ to integration executors.

TB_KAFKA_IE_DOWNLINK_HTTP_TOPIC_PROPERTIES · Default retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:6;replication.factor:1

Kafka topic properties separated by semicolon for the tbmq.ie.downlink.http topic.

TB_KAFKA_IE_DOWNLINK_HTTP_ADDITIONAL_CONSUMER_CONFIG

Additional Kafka consumer configs separated by semicolon for the tbmq.ie.downlink.http topic.

TB_KAFKA_IE_DOWNLINK_HTTP_ADDITIONAL_PRODUCER_CONFIG

Additional Kafka producer configs separated by semicolon for the tbmq.ie.downlink.http topic.

TB_KAFKA_IE_DOWNLINK_KAFKA_TOPIC_PROPERTIES · Default retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:6;replication.factor:1

Kafka topic properties separated by semicolon for the tbmq.ie.downlink.kafka topic.

TB_KAFKA_IE_DOWNLINK_KAFKA_ADDITIONAL_CONSUMER_CONFIG

Additional Kafka consumer configs separated by semicolon for the tbmq.ie.downlink.kafka topic.

TB_KAFKA_IE_DOWNLINK_KAFKA_ADDITIONAL_PRODUCER_CONFIG

Additional Kafka producer configs separated by semicolon for the tbmq.ie.downlink.kafka topic.

TB_KAFKA_IE_DOWNLINK_MQTT_TOPIC_PROPERTIES · Default retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:6;replication.factor:1

Kafka topic properties separated by semicolon for the tbmq.ie.downlink.mqtt topic.

TB_KAFKA_IE_DOWNLINK_MQTT_ADDITIONAL_CONSUMER_CONFIG

Additional Kafka consumer configs separated by semicolon for the tbmq.ie.downlink.mqtt topic.

TB_KAFKA_IE_DOWNLINK_MQTT_ADDITIONAL_PRODUCER_CONFIG

Additional Kafka producer configs separated by semicolon for the tbmq.ie.downlink.mqtt topic.

TB_KAFKA_IE_UPLINK_TOPIC · Default tbmq.ie.uplink

Topic for sending messages and events from integration executors to TBMQ.

TB_KAFKA_IE_UPLINK_TOPIC_PROPERTIES · Default retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:6;replication.factor:1

Kafka topic properties separated by semicolon for the tbmq.ie.uplink topic.

TB_KAFKA_IE_UPLINK_ADDITIONAL_CONSUMER_CONFIG

Additional Kafka consumer configs separated by semicolon for the tbmq.ie.uplink topic.

TB_KAFKA_IE_UPLINK_ADDITIONAL_PRODUCER_CONFIG

Additional Kafka producer configs separated by semicolon for the tbmq.ie.uplink topic.

TB_KAFKA_IE_UPLINK_NOTIF_TOPIC_PREFIX · Default tbmq.ie.uplink.notifications

Prefix for topics used to send notifications or replies from integration executors to specific TBMQ nodes.

TB_KAFKA_IE_UPLINK_NOTIF_TOPIC_PROPERTIES · Default retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;replication.factor:1

Kafka topic properties separated by semicolon for the tbmq.ie.uplink.notifications topics.

TB_KAFKA_IE_UPLINK_NOTIF_ADDITIONAL_CONSUMER_CONFIG

Additional Kafka consumer configs separated by semicolon for the tbmq.ie.uplink.notifications topic.

TB_KAFKA_IE_UPLINK_NOTIF_ADDITIONAL_PRODUCER_CONFIG

Additional Kafka producer configs separated by semicolon for the tbmq.ie.uplink.notifications topic.

TB_KAFKA_IE_MSG_TOPIC_PROPERTIES · Default retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;replication.factor:1

Kafka topic properties separated by semicolon for the tbmq.msg.ie topics.

TB_KAFKA_IE_MSG_ADDITIONAL_CONSUMER_CONFIG · Default max.poll.records:50

Additional Kafka consumer configs separated by semicolon for the tbmq.msg.ie topics.

TB_KAFKA_IE_MSG_ADDITIONAL_PRODUCER_CONFIG

Additional Kafka producer configs separated by semicolon for the tbmq.msg.ie topics.

TB_KAFKA_INTERNODE_NOTIFICATIONS_TOPIC_PREFIX · Default tbmq.sys.internode.notifications

Prefix for topics used to send system notifications to Broker nodes.

TB_KAFKA_INTERNODE_NOTIFICATIONS_TOPIC_PROPERTIES · Default retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;replication.factor:1

Kafka topic properties separated by semicolon for the tbmq.sys.internode.notifications topics.

TB_KAFKA_INTERNODE_NOTIFICATIONS_ADDITIONAL_CONSUMER_CONFIG

Additional Kafka consumer configs separated by semicolon for the tbmq.sys.internode.notifications topics.

TB_KAFKA_INTERNODE_NOTIFICATIONS_ADDITIONAL_PRODUCER_CONFIG

Additional Kafka producer configs separated by semicolon for the tbmq.sys.internode.notifications topics.

TB_KAFKA_BLOCKED_CLIENT_TOPIC · Default tbmq.client.blocked

Topic for blocked clients.

TB_KAFKA_BLOCKED_CLIENT_TOPIC_PROPERTIES · Default segment.bytes:26214400;partitions:1;replication.factor:1

Kafka topic properties separated by semicolon for the tbmq.client.blocked topic.

TB_KAFKA_BLOCKED_CLIENT_ADDITIONAL_CONSUMER_CONFIG

Additional Kafka consumer configs separated by semicolon for the tbmq.client.blocked topic.

TB_KAFKA_BLOCKED_CLIENT_ADDITIONAL_PRODUCER_CONFIG

Additional Kafka producer configs separated by semicolon for the tbmq.client.blocked topic.

TB_KAFKA_PREFIX

Common prefix for all Kafka topics, producers, consumer groups, and consumers. Defaults to empty string, meaning no prefix is applied.

TB_SERVICE_TYPE · Default tbmq

Microservice type. Accepted values: tbmq.

TB_SERVICE_ID

Unique ID for this service. Autogenerated if empty.

ACTORS_SYSTEM_THROUGHPUT · Default 5

Number of messages the actor system will process per actor before switching to processing messages for the next actor.

ACTORS_SYSTEM_SCHEDULER_POOL_SIZE · Default 1

Thread pool size for the actor system scheduler.

ACTORS_SYSTEM_MAX_ACTOR_INIT_ATTEMPTS · Default 10

Maximum number of attempts to initialize the actor before disabling it.

ACTORS_SYSTEM_PROCESSING_METRICS_ENABLED · Default false

Enables or disables actor processing metrics.

ACTORS_SYSTEM_DISCONNECT_WAIT_TIMEOUT_MS · Default 15000

Time the actor system waits during TBMQ node shutdown to process client disconnections (in ms).

ACTORS_SYSTEM_PERSISTED_DEVICE_DISPATCHER_POOL_SIZE · Default 8

Number of threads processing the Device actor’s messages.

ACTORS_SYSTEM_PERSISTED_DEVICE_WAIT_BEFORE_ACTOR_STOP_MINUTES · Default 5

Time to wait before deleting the Device actor after disconnect (in minutes).

ACTORS_SYSTEM_CLIENT_DISPATCHER_POOL_SIZE · Default 8

Number of threads processing the MQTT client actor messages.

ACTORS_SYSTEM_CLIENT_WAIT_BEFORE_GENERATED_ACTOR_STOP_SECONDS · Default 10

Time to wait before stopping the actor for clients that did not specify a client ID (in s).

ACTORS_SYSTEM_CLIENT_WAIT_BEFORE_NAMED_ACTOR_STOP_SECONDS · Default 60

Time to wait before stopping the actor for clients that specified a client ID (in s).

ACTORS_RULE_MAIL_THREAD_POOL_SIZE · Default 4

Thread pool size for the mail sender executor service.

ACTORS_RULE_MAIL_PASSWORD_RESET_THREAD_POOL_SIZE · Default 4

Thread pool size for the password reset emails executor service.

INTEGRATIONS_INIT_CONNECTION_CHECK_API_REQUEST_TIMEOUT_SEC · Default 20

Timeout for API connection check requests (in s).

INTEGRATIONS_CLEANUP_PERIOD_SEC · Default 10800

Execution period of the cleanup task for disconnected integrations (in s). Defaults to three hours.

INTEGRATIONS_CLEANUP_TTL_SEC · Default 604800

Administration TTL for cleaning up disconnected integrations (in s). The cleanup removes topics that persist messages. Defaults to one week. A value of 0 or negative disables this TTL.

DATABASE_TS_MAX_INTERVALS · Default 700

Maximum number of DB queries generated by a single API call to fetch time series records.

SQL_BATCH_SORT · Default true

Enables or disables sorting of entities before batch update. Should be enabled in cluster mode to avoid deadlocks.

SQL_TS_KV_PARTITIONING · Default DAYS

Partitioning size for timestamp key-value storage. Accepted values: DAYS, MONTHS, YEARS, INDEFINITE.

SQL_REMOVE_NULL_CHARS · Default true

Enables or disables removal of null characters from strValue before insert.

SQL_TS_BATCH_SIZE · Default 1000

Batch size for persisting time series inserts.

SQL_TS_BATCH_MAX_DELAY_MS · Default 100

Maximum timeout for time series entries queue polling (in ms).

SQL_TS_BATCH_THREADS · Default 3

Number of threads that execute batch insert/update statements for time series data. Must be a prime number (e.g., 3 or 5) for optimal hash distribution.

SQL_TS_LATEST_BATCH_SIZE · Default 1000

Batch size for persisting latest time series inserts.

SQL_TS_LATEST_BATCH_MAX_DELAY_MS · Default 50

Maximum timeout for latest time series entries queue polling (in ms).

SQL_TS_LATEST_BATCH_THREADS · Default 3

Number of threads that execute batch insert/update statements for latest time series data. Must be a prime number (e.g., 3 or 5) for optimal hash distribution.

SQL_UNAUTHORIZED_CLIENT_INSERT_BATCH_SIZE · Default 1000

Batch size for persisting unauthorized client inserts.

SQL_UNAUTHORIZED_CLIENT_INSERT_BATCH_MAX_DELAY_MS · Default 50

Maximum timeout for unauthorized client insert entries queue polling (in ms).

SQL_UNAUTHORIZED_CLIENT_INSERT_BATCH_THREADS · Default 3

Number of threads that execute batch insert/update statements for unauthorized client data. Must be a prime number (e.g., 3 or 5) for optimal hash distribution.

SQL_UNAUTHORIZED_CLIENT_DELETE_BATCH_SIZE · Default 1000

Batch size for processing unauthorized client deletes.

SQL_UNAUTHORIZED_CLIENT_DELETE_BATCH_MAX_DELAY_MS · Default 50

Maximum timeout for unauthorized client delete entries queue polling (in ms).

SQL_UNAUTHORIZED_CLIENT_DELETE_BATCH_THREADS · Default 3

Number of threads that execute batch delete statements for unauthorized client data. Must be a prime number (e.g., 3 or 5) for optimal hash distribution.

SQL_EVENTS_BATCH_SIZE · Default 10000

Batch size for persisting events updates.

SQL_EVENTS_BATCH_MAX_DELAY_MS · Default 100

Maximum timeout for events entries queue polling (in ms).

SQL_EVENTS_BATCH_THREADS · Default 3

Number of threads that execute batch insert/update statements for events. Must be a prime number (e.g., 3 or 5) for optimal hash distribution.

SQL_EVENTS_REGULAR_PARTITION_SIZE_HOURS · Default 168

Number of hours per events partition. Defaults to one week (168 h).

SQL_EVENTS_MAX_SYMBOLS · Default 4096

Maximum number of symbols per event. Event content will be truncated if it exceeds this limit.

SQL_TTL_TS_ENABLED · Default true

Enables or disables TTL (Time To Live) for time series records.

SQL_TTL_TS_EXECUTION_INTERVAL_MS · Default 86400000

Execution period of the TTL task for time series records (in ms). Defaults to one day.

SQL_TTL_TS_KEY_VALUE_TTL · Default 604800

System TTL value for time series records (in s). Defaults to seven days. Use 0 to disable expiration.

SQL_TTL_UNAUTHORIZED_CLIENT_ENABLED · Default true

Enables or disables TTL (Time To Live) for unauthorized clients.

SQL_TTL_UNAUTHORIZED_CLIENT_EXECUTION_INTERVAL_MS · Default 86400000

Execution period of the TTL task for unauthorized clients (in ms). Defaults to one day.

SQL_TTL_UNAUTHORIZED_CLIENT_TTL · Default 259200

System TTL value for unauthorized clients (in s). Defaults to three days. Use 0 to disable expiration.

SQL_TTL_EVENTS_ENABLED · Default true

Enables or disables TTL (Time To Live) for event records.

SQL_TTL_EVENTS_EXECUTION_INTERVAL_MS · Default 3600000

Execution interval for the TTL cleanup task for events (in ms). Defaults to 1 hour.

SQL_TTL_EVENTS_TTL_SEC · Default 1209600

TTL for events (in s). Defaults to 14 days. Cleanup accuracy depends on the sql.events.partition_size parameter.

REDIS_LETTUCE_CMDS_AUTO_FLUSH_ENABLED · Default true

Enables or disables auto-flush. If disabled, commands are buffered and flushed based on cmd count or time interval.

REDIS_LETTUCE_BUFFERED_CMDS_COUNT · Default 5

Number of buffered commands before flush is triggered. Used when auto-flush is disabled.

REDIS_LETTUCE_FLUSH_INTERVAL_MS · Default 5

Maximum time to buffer commands before flushing, regardless of cmd count (in ms).

REDIS_LETTUCE_COMMAND_TIMEOUT_SEC · Default 30

Maximum time to wait for a Lettuce command to complete (in s). Affects health checks and any command execution (e.g. GET, SET, PING). Reduce this value to fail fast if Redis is unresponsive.

REDIS_LETTUCE_SHUTDOWN_QUIET_PERIOD_SEC · Default 1

Quiet period for the Lettuce client shutdown (in s).

REDIS_LETTUCE_SHUTDOWN_TIMEOUT_SEC · Default 10

Shutdown timeout for the Lettuce client (in s).

REDIS_LETTUCE_CLUSTER_TOPOLOGY_REFRESH_ENABLED · Default false

Enables or disables periodic cluster topology updates. Useful for Redis Cluster setup to handle topology changes, such as node failover, restarts, or IP address changes.

REDIS_LETTUCE_CLUSTER_TOPOLOGY_REFRESH_PERIOD_SEC · Default 60

Interval for periodic cluster topology updates (in s).

REDIS_JEDIS_CLUSTER_TOPOLOGY_REFRESH_ENABLED · Default false

Enables or disables periodic cluster topology updates. Useful for Redis cluster setup to handle topology changes, such as node failover, restarts, or IP address changes.

REDIS_JEDIS_CLUSTER_TOPOLOGY_REFRESH_PERIOD_SEC · Default 60

Interval for periodic cluster topology updates (in s).

SPRING_DATA_JPA_REPOSITORIES_ENABLED · Default true

Enables or disables the Spring Data JPA repositories support.

SPRING_JPA_OPEN_IN_VIEW · Default false

Enables or disables OSIV.

SPRING_JPA_HIBERNATE_DDL_AUTO · Default none

Hibernate DDL behavior. Accepted values: none, validate, update, create-drop. Spring Boot chooses a default based on whether it thinks your database is embedded (default create-drop) or not (default none).

SPRING_DRIVER_CLASS_NAME · Default org.postgresql.Driver

Database driver for Spring JPA.

SPRING_DATASOURCE_URL · Default jdbc:postgresql://localhost:5432/thingsboard_mqtt_broker

Database connection URL.

SPRING_DATASOURCE_USERNAME · Default postgres

Database username.

SPRING_DATASOURCE_PASSWORD · Default postgres

Database user password.

SPRING_DATASOURCE_MAXIMUM_POOL_SIZE · Default 16

Maximum number of connections in the pool. Grows with demand to prevent resource exhaustion affecting performance and availability.

SPRING_DATASOURCE_MAX_LIFETIME · Default 600000

Maximum lifetime of a connection (in ms). The connection is removed only when closed. Defaults to 10 minutes.

SPRING_DATASOURCE_CONNECTION_TIMEOUT_MS · Default 30000

Maximum time HikariCP will wait to acquire a connection from the pool (in ms). If exceeded, an exception is thrown. Defaults to 30 s.

SPRING_LIFECYCLE_TIMEOUT_PER_SHUTDOWN_PHASE · Default 1m

The server waits for active requests to finish up to the specified time before graceful shutdown.

SPRING_JPA_HIBERNATE_JDBC_LOB_NON_CONTEXTUAL_CREATION · Default true

Setting this property to true disables contextual LOB creation and forces Hibernate’s own LOB implementation. Fixes Postgres JPA error.

SPRING_JPA_HIBERNATE_ORDER_BY_DEFAULT_NULL_ORDERING · Default last

Default ordering for null values.

SPRING_DATA_REDIS_REPOSITORIES_ENABLED · Default false

Disables Redis repositories scanning.

SPRING_FREEMARKER_CHECK_TEMPLATE_LOCATION · Default false

Spring Freemarker configuration to check that the templates location exists.

SPRING_MVC_ASYNC_REQUEST_TIMEOUT · Default 30000

Default timeout for asynchronous requests (in ms).

SPRING_MVC_PATH_MATCH_MATCHING_STRATEGY · Default ANT_PATH_MATCHER

Path matching strategy used for Swagger endpoints.

JWT_TOKEN_EXPIRATION_TIME · Default 9000

User JWT Token expiration time (in s). Defaults to 2.5 hours.

JWT_REFRESH_TOKEN_EXPIRATION_TIME · Default 604800

User JWT Refresh Token expiration time (in s). Defaults to 1 week.

JWT_TOKEN_ISSUER · Default thingsboard.io

User JWT Token issuer.

JWT_TOKEN_SIGNING_KEY · Default Qk1xUnloZ0VQTlF1VlNJQXZ4cWhiNWt1cVd1ZzQ5cWpENUhMSHlaYmZIM0JrZ2pPTVlhQ3N1Z0ZMUnd0SDBieg==

User JWT Token sign key.

SECURITY_USER_TOKEN_ACCESS_ENABLED · Default true

Enables or disables access to other Administrators’ JWT tokens by the System Administrator.

SECURITY_USER_LOGIN_CASE_SENSITIVE · Default true

Enables or disables case-sensitive username login.

SECURITY_UNAUTH_CLIENTS_ENABLED · Default true

Enables or disables persistence of unauthorized client connection attempts. When disabled, unauthorized clients are logged only and are not stored. When enabled, unauthorized client entries are persisted to the database.

MQTT_CONNECT_THREADS · Default 4

Number of threads for the client connection thread pool.

MQTT_MSG_SUBSCRIPTIONS_PARALLEL_PROCESSING · Default false

Enables or disables parallel processing of subscriptions for published messages. Helpful when the PUBLISH message should be delivered to lots of subscribers. It is recommended to measure the impact of this parameter before enabling it in production.

MQTT_PRE_CONNECT_QUEUE_MAX_SIZE · Default 1000

Maximum number of messages stored in the queue before the client connects and starts processing them.

MQTT_MAX_IN_FLIGHT_MSGS · Default 1000

Maximum number of PUBLISH messages not yet acknowledged.

MQTT_FLOW_CONTROL_ENABLED · Default true

Enables or disables the MQTT 5 flow control feature for the server. If disabled, the server will not control the number of messages sent to subscribers via “Receive Maximum”. Also applies to MQTT 3.x clients when enabled. “Receive Maximum” for MQTT 3.x clients can be configured using MQTT_FLOW_CONTROL_MQTT_3X_RECEIVE_MAX.

MQTT_FLOW_CONTROL_TIMEOUT · Default 1000

Timeout to wait when there is nothing to process for flow control. A separate thread handles sending delayed messages to subscribers (in ms). If no clients are affected by flow control restrictions, there is no need to continuously try to find and send such messages.

MQTT_FLOW_CONTROL_TTL · Default 600

Time to store delayed messages for subscribers (in s). Delayed messages are those that cannot be sent immediately due to flow control restrictions. Defaults to 10 minutes.

MQTT_FLOW_CONTROL_DELAYED_QUEUE_MAX_SIZE · Default 1000

Maximum allowed queue length for delayed messages — published to the client when the in-flight window is full.

MQTT_FLOW_CONTROL_MQTT_3X_RECEIVE_MAX · Default 65535

Receive maximum value for MQTT 3.x clients.

MQTT_KEEP_ALIVE_MONITORING_DELAY_MS · Default 1000

Interval between subsequent checks for inactive clients (in ms).

MQTT_KEEP_ALIVE_MAX_KEEP_ALIVE_SEC · Default 600

Maximum keep-alive value allowed by the server (in s). Applies to MQTT v5 clients. Defaults to 10 minutes.

MQTT_TOPIC_MAX_SEGMENTS_COUNT · Default 0

Maximum number of segments in topics. Excessively large values may cause processing errors. Defaults to 0, which disables the limit.

MQTT_TOPIC_ALIAS_MAX · Default 10

Maximum number of topic aliases per connection. Defaults to 0, which disables the Topic Alias feature.

MQTT_TOPIC_MIN_LENGTH_FOR_ALIAS_REPLACEMENT · Default 50

Minimum topic name length that the broker may replace with a topic alias (e.g., topics with more than 50 characters).

MQTT_SUBSCRIPTION_ROOT_MULTI_LVL_WILDCARD · Default true

Controls whether clients are permitted to subscribe to the root multi-level wildcard ”#”. If set to ‘true’ (default): Clients can subscribe to ”#”, receiving a copy of EVERY message published to the broker. This is useful for debugging or firehose-style monitoring services. If set to ‘false’: Clients are explicitly denied permission to subscribe to the exact topic ”#”. They can still subscribe to specific paths (e.g., “sensors/#”) or individual topics. Recommended for production to prevent accidental or malicious data leakage.

MQTT_SHARED_SUBSCRIPTIONS_PROCESSING_TYPE · Default ROUND_ROBIN

Processing strategy for distributing messages among clients in a shared subscription. Accepted values: ROUND_ROBIN.

MQTT_SUB_TRIE_WAIT_FOR_CLEAR_LOCK_MS · Default 100

Maximum pause for clearing subscription storage from empty nodes (in ms). If a wait is unsuccessful, subscribing clients will be resumed, but the clear will fail.

MQTT_SUB_TRIE_CLEAR_NODES_CRON · Default 0 0 0 * * *

Cron job to schedule clearing of empty subscription nodes. Defaults to ‘every day at midnight’.

MQTT_SUB_TRIE_CLEAR_NODES_ZONE · Default UTC

Timezone for the subscription clearing cron-job.

MQTT_RETAIN_MSG_TRIE_WAIT_FOR_CLEAR_LOCK_MS · Default 100

Maximum pause for clearing retain msg storage from empty nodes (in ms). If a wait is unsuccessful, retain messages processing will be resumed, but the clear will fail.

MQTT_RETAIN_MSG_TRIE_CLEAR_NODES_CRON · Default 0 0 0 * * *

Cron job to schedule clearing of empty retain msg nodes. Defaults to ‘every day at midnight’.

MQTT_RETAIN_MSG_TRIE_CLEAR_NODES_ZONE · Default UTC

Timezone for the retain msg clearing cron-job.

MQTT_RETAIN_MSG_EXPIRY_PROCESSING_PERIOD_MS · Default 60000

Processing period for clearing retained messages by the MQTT expiry feature (in ms).

MQTT_CLIENT_SESSION_EXPIRY_CRON · Default 0 0 * ? * *

Cron job to schedule clearing of expired and inactive client sessions. Defaults to ‘every hour’, e.g. at 20:00:00 UTC.

MQTT_CLIENT_SESSION_EXPIRY_ZONE · Default UTC

Timezone for the client sessions clearing cron-job.

MQTT_CLIENT_SESSION_EXPIRY_MAX_EXPIRY_INTERVAL · Default 604800

Maximum allowed expiry interval for inactive sessions (in s). Defaults to one week.

MQTT_CLIENT_SESSION_EXPIRY_TTL · Default 604800

Administration TTL for clearing sessions that do not expire by session expiry interval (in s). (e.g. MQTTv3 cleanSession=false or MQTTv5 cleanStart=false && sessionExpiryInterval == 0). Defaults to one week. A value of 0 or negative disables this TTL.

MQTT_3_1_MAX_CLIENT_ID_LENGTH · Default 1024

Maximum client ID length for MQTT 3.1.

MQTT_MSG_WRITE_AND_FLUSH · Default true

If enabled, each message published to non-persistent subscribers is flushed immediately. If disabled, messages are buffered and flushed periodically.

MQTT_BUFFERED_MSG_COUNT · Default 5

Number of messages buffered in the channel before the flush is made. Used when MQTT&#95;MSG&#95;WRITE&#95;AND&#95;FLUSH = false.

MQTT_BUFFERED_CACHE_MAX_SIZE · Default 10000

When either MQTT&#95;MSG&#95;WRITE&#95;AND&#95;FLUSH or MQTT&#95;PERSISTENT&#95;MSG&#95;WRITE&#95;AND&#95;FLUSH is set to false, the broker buffers outgoing messages in the outbound channel to improve throughput. The respective buffer sizes are controlled by MQTT&#95;BUFFERED&#95;MSG&#95;COUNT (for non-persistent clients) and MQTT&#95;PERSISTENT&#95;BUFFERED&#95;MSG&#95;COUNT (for persistent clients). Maximum number of session entries stored in the flush state cache. When the cache exceeds this size, the least recently used sessions are evicted and their pending message buffers are flushed automatically.

MQTT_BUFFERED_CACHE_EXPIRY_MS · Default 300000

Expiry time for an inactive session entry in the flush cache (in ms). A session is considered inactive if it receives no new messages during this period. Upon expiration, the session is evicted from the cache and its buffer is flushed. Defaults to 5 minutes.

MQTT_BUFFERED_SCHEDULER_INTERVAL_MS · Default 100

Interval at which the scheduler checks all sessions in the cache for potential flushing (in ms). A smaller value results in more frequent flush checks.

MQTT_BUFFERED_IDLE_FLUSH_MS · Default 200

Maximum time a session can remain idle before its message buffer is automatically flushed to the client (in ms). A flush occurs either when the buffer limit is reached or when this timeout elapses.

MQTT_PERSISTENT_SESSION_DEVICE_PERSISTED_MESSAGES_LIMIT · Default 10000

Maximum number of PUBLISH messages stored for each persisted DEVICE client.

MQTT_PERSISTENT_SESSION_DEVICE_PERSISTED_MESSAGES_TTL · Default 604800

TTL of persisted DEVICE messages (in s). Defaults to one week.

MQTT_PERSISTENT_MSG_WRITE_AND_FLUSH · Default true

If enabled, each message published to persistent DEVICE client subscribers is flushed immediately. If disabled, messages are buffered and flushed periodically.

MQTT_PERSISTENT_BUFFERED_MSG_COUNT · Default 5

Number of messages buffered in the channel before the flush is made. Used when MQTT&#95;PERSISTENT&#95;MSG&#95;WRITE&#95;AND&#95;FLUSH = false.

MQTT_APP_MSG_WRITE_AND_FLUSH · Default false

If enabled, each message published to persistent APPLICATION client subscribers is flushed immediately. If disabled, messages are buffered and flushed periodically.

MQTT_APP_BUFFERED_MSG_COUNT · Default 10

Number of messages buffered in the channel before the flush is made. Used when MQTT&#95;APP&#95;MSG&#95;WRITE&#95;AND&#95;FLUSH = false.

MQTT_RATE_LIMITS_THREADS_COUNT · Default 1

Number of parallel threads dedicated to processing total rate limit checks for incoming messages.

MQTT_RATE_LIMITS_BATCH_SIZE · Default 50

Number of messages to process in each batch when checking total rate limits for incoming messages.

MQTT_RATE_LIMITS_PERIOD_MS · Default 50

Period to wait before processing a batch of messages for total rate limits (in ms).

MQTT_TOTAL_RATE_LIMITS_ENABLED · Default false

Enables or disables total incoming and outgoing messages rate limits for the broker (per whole cluster).

MQTT_TOTAL_RATE_LIMITS_CONFIG · Default 1000:1,50000:60

Limits the total count of incoming and outgoing messages per time interval (in s). Comma-separated list of limit:seconds pairs. Example: 1000 messages per second or 50000 messages per minute.

MQTT_INCOMING_RATE_LIMITS_ENABLED · Default false

Enables or disables publish rate limits per client for incoming messages to the broker.

MQTT_INCOMING_RATE_LIMITS_CLIENT_CONFIG · Default 10:1,300:60

Limits the count of publish messages per publisher per time interval (in s). Comma-separated list of limit:seconds pairs. Example: 10 messages per second or 300 messages per minute.

MQTT_OUTGOING_RATE_LIMITS_ENABLED · Default false

Enables or disables publish rate limits per client for outgoing messages to subscribers. Applies only to non-persistent subscribers with QoS = 0 (“AT_MOST_ONCE”).

MQTT_OUTGOING_RATE_LIMITS_CLIENT_CONFIG · Default 10:1,300:60

Limits the count of publish messages per subscriber per time interval (in s). Comma-separated list of limit:seconds pairs. Example: 10 messages per second or 300 messages per minute.

MQTT_DEVICE_PERSISTED_MSGS_RATE_LIMITS_ENABLED · Default false

Enables or disables Device clients persisted messages rate limits for the broker (per whole cluster).

MQTT_DEVICE_PERSISTED_MSGS_RATE_LIMITS_CONFIG · Default 100:1,1000:60

Limits the count of Device clients persisted messages per time interval (in s). Comma-separated list of limit:seconds pairs. Example: 100 messages per second or 1000 messages per minute.

MQTT_SESSIONS_LIMIT · Default 0

Total limit of sessions (connected + disconnected) stored on the broker, applied collectively across the cluster, not per node. For example, when set to 1000, the entire cluster can store 1000 sessions in total. This is a soft limit, meaning slightly more sessions may be stored. Defaults to 0, which disables the limit.

MQTT_APPLICATION_CLIENTS_LIMIT · Default 0

Total limit for Application persistent clients and external system integrations. Defaults to 0, which disables the limit.

MQTT_HANDLER_ALL_MSG_CALLBACK_THREADS · Default 2

Number of threads in the pool for processing all publish messages callbacks after sending them to Kafka.

MQTT_HANDLER_DEVICE_MSG_CALLBACK_THREADS · Default 2

Number of threads in the pool for processing device persisted publish messages callbacks after sending them to Kafka.

MQTT_HANDLER_APP_MSG_CALLBACK_THREADS · Default 2

Number of threads in the pool for processing application persisted publish messages callbacks after sending them to Kafka.

MQTT_HANDLER_DOWNLINK_MSG_CALLBACK_THREADS · Default 2

Number of threads in the pool for processing downlink messages callbacks after sending them to Kafka.

MQTT_RESPONSE_INFO

Response info value for the MQTT 5 request-response feature, returned to clients that request it. If not set, the broker will not reply with response info to MQTT 5 clients that connect with “request response info” = 1. Set it to the topic to be used for the request-response feature, e.g. “example/”.

BLOCKED_CLIENT_CLEANUP_PERIOD_MINUTES · Default 5

Execution period of the cleanup task for expired blocked clients (in minutes). Defaults to five minutes.

BLOCKED_CLIENT_CLEANUP_TTL_MINUTES · Default 10080

TTL for expired blocked clients (in minutes). After this time, the expired blocked client is removed completely. Defaults to one week.

MQTTS_CA_CERT · Default cafile.pem

Path to the MQTT root CA certificate file.

MQTTS_CA_CERT_NAME · Default tbmq-ca-cert.pem

Filename for the downloaded MQTT root CA certificate.

CACHE_STATS_ENABLED · Default true

Enables or disables cache stats logging.

CACHE_STATS_INTERVAL_SEC · Default 60

Cache stats logging interval (in s).

CACHE_PREFIX

Common prefix for all cache keys. Defaults to empty string, meaning no prefix is applied.

CACHE_SPECS_MQTT_CLIENT_CREDENTIALS_TTL · Default 1440

Cache TTL (in minutes). Defaults to 1 day.

CACHE_SPECS_BASIC_CREDENTIALS_PASSWORD_TTL · Default 1

Cache TTL (in minutes). Recommended to set a small value to limit credential storage duration (e.g., 1-5 minutes).

CACHE_SPECS_SSL_REGEX_BASED_CREDENTIALS_TTL · Default 1440

Cache TTL (in minutes). Defaults to 1 day.

CACHE_SPECS_CLIENT_SESSION_CREDENTIALS_TTL · Default 0

Cache TTL (in minutes). Defaults to 0, meaning the cache is eternal.

CACHE_SPECS_CLIENT_MQTT_VERSION_TTL · Default 0

Cache TTL (in minutes). Defaults to 0, meaning the cache is eternal.

REDIS_CONNECTION_TYPE · Default standalone

Connection type. Accepted values: standalone, cluster, sentinel.

REDIS_HOST · Default localhost

Redis connection host.

REDIS_PORT · Default 6379

Redis connection port.

REDIS_USE_DEFAULT_CLIENT_CONFIG · Default true

Enables the default Redis client configuration.

REDIS_CLIENT_NAME · Default standalone

Client name. Applies only when not using the default ClientConfig.

REDIS_CLIENT_CONNECT_TIMEOUT · Default 30000

Connection timeout (in ms). Applies only when not using the default ClientConfig.

REDIS_CLIENT_READ_TIMEOUT · Default 60000

Read timeout (in ms). Applies only when not using the default ClientConfig.

REDIS_CLIENT_USE_POOL_CONFIG · Default false

Enables pool config. Applies only when not using the default ClientConfig.

REDIS_NODES

Comma-separated list of “host:port” pairs to bootstrap from.

REDIS_MAX_REDIRECTS · Default 12

Maximum number of redirects to follow when executing commands across the cluster.

REDIS_CLUSTER_USE_DEFAULT_POOL_CONFIG · Default true

If set to false, pool config is built from the pool config section values.

REDIS_MASTER

Name of the master node.

REDIS_SENTINELS

Comma-separated list of “host:port” pairs of sentinels.

REDIS_SENTINEL_PASSWORD

Password to authenticate with the Sentinel.

REDIS_SENTINEL_USE_DEFAULT_POOL_CONFIG · Default true

If set to false, pool config is built from the pool config section values.

REDIS_DB · Default 0

DB index.

REDIS_USERNAME

Username for Redis ACL authentication (Redis 6+). Optional.

REDIS_PASSWORD

DB password.

REDIS_SSL_ENABLED · Default false

Enables or disables TLS for Redis connections. Applies to all connection types: standalone, sentinel, cluster.

REDIS_SSL_CERT_FILE

Path to the CA certificate PEM file used to verify the Redis server certificate. Required when SSL is enabled.

REDIS_SSL_USER_CERT_FILE

Path to the client certificate PEM file. Required only for mutual TLS (mTLS). Optional.

REDIS_SSL_USER_KEY_FILE

Path to the client private key PEM file. Required only for mutual TLS (mTLS). Optional.

REDIS_POOL_CONFIG_MAX_TOTAL · Default 128

Maximum number of connections that can be allocated by the connection pool.

REDIS_POOL_CONFIG_MAX_IDLE · Default 128

Maximum number of idle connections that can be maintained in the pool without being closed.

REDIS_POOL_CONFIG_MIN_IDLE · Default 16

Minimum number of idle connections that can be maintained in the pool without being closed.

REDIS_POOL_CONFIG_TEST_ON_BORROW · Default true

Enables or disables the PING command sent when a connection is borrowed.

REDIS_POOL_CONFIG_TEST_ON_RETURN · Default true

Enables or disables testing the connection before returning it to the pool.

REDIS_POOL_CONFIG_TEST_WHILE_IDLE · Default true

Enables or disables using the PING command to monitor connection validity during idle resource monitoring. Invalid connections are destroyed.

REDIS_POOL_CONFIG_MIN_EVICTABLE_MS · Default 60000

Minimum time a connection must be idle before it can be evicted from the pool (in ms).

REDIS_POOL_CONFIG_EVICTION_RUNS_MS · Default 30000

Time interval between two consecutive eviction runs (in ms).

REDIS_POOL_CONFIG_MAX_WAIT_MS · Default 60000

Maximum time a client is willing to wait for a connection from the pool when all connections are exhausted (in ms).

REDIS_POOL_CONFIG_NUMBER_TESTS_PER_EVICTION_RUN · Default 3

Number of connections to test for eviction during each eviction run.

REDIS_POOL_CONFIG_BLOCK_WHEN_EXHAUSTED · Default true

Determines whether to block when a thread requests a connection from an exhausted pool.

STATS_ENABLED · Default true

Enables or disables stats printing to the logs.

STATS_PRINT_INTERVAL_MS · Default 60000

Print interval for statistics (in ms). Defaults to 1 minute.

STATS_TIMER_PERCENTILES · Default 0.5

Metrics percentiles returned by actuator for timer metrics. List of comma-separated double values.

APPLICATION_PROCESSOR_STATS_ENABLED · Default true

Enables or disables specific Application clients stats.

STATS_SYSTEM_INFO_PERSIST_FREQUENCY_SEC · Default 60

Persistence frequency of system info such as CPU and memory usage (in s).

HISTORICAL_DATA_REPORT_ENABLED · Default true

Enables or disables historical data stats reporting and persistence to the time series.

HISTORICAL_DATA_REPORT_INTERVAL · Default 1

Collection period for per-broker statistics (in minutes, range 1-60). Used in the cron expression.

HISTORICAL_DATA_REPORT_ZONE · Default UTC

Timezone for the historical data stats processing.

HEALTH_DISKSPACE_ENABLED · Default false

Enables or disables disk space health check.

HEALTH_SHOW_DETAILS · Default never

Controls whether the health endpoint shows full component details (e.g., Redis, DB, TBMQ). Accepted values: never: always hide details (default if security is enabled). when-authorized: show details only to authenticated users. always: always include full health details in the response.

METRICS_ENDPOINTS_EXPOSE · Default health,info,prometheus

Actuator endpoints exposed via HTTP. Use ‘health,info’ to expose only basic health and information endpoints. To expose Prometheus metrics, include ‘prometheus’ in the list (e.g., ‘health,info,prometheus’).

MVC_CORS_API_ALLOWED_ORIGIN_PATTERNS · Default *

Comma-separated list of origins to allow. ’*’ allows all origins. When not set, CORS support is disabled.

MVC_CORS_API_ALLOWED_METHODS · Default *

Comma-separated list of methods to allow. ’*’ allows all methods.

MVC_CORS_API_ALLOWED_HEADERS · Default *

Comma-separated list of headers to allow in a request. ’*’ allows all headers.

MVC_CORS_API_MAX_AGE · Default 1800

How long the response from a pre-flight request can be cached by clients (in s).

MVC_CORS_API_ALLOW_CREDENTIALS · Default true

Enables or disables credentials support. Defaults to not supported when not set.

SWAGGER_ENABLED · Default true

If false, Swagger API docs will be unavailable.

SWAGGER_DEFAULT_PRODUCES_MEDIA_TYPE · Default application/json

Swagger default produces media-type.

SWAGGER_API_PATH · Default /api/**

General Swagger match pattern for Swagger UI links.

SWAGGER_SECURITY_PATH_REGEX · Default /api/.*

General Swagger security match pattern path for Swagger UI links.

SWAGGER_NON_SECURITY_PATH_REGEX · Default /api/noauth.*

Non-security API path match pattern for Swagger UI links.

SWAGGER_TITLE · Default TBMQ REST API

Title on the API doc UI page.

SWAGGER_DESCRIPTION · Default TBMQ open-source REST API documentation

Description on the API doc UI page.

SWAGGER_CONTACT_NAME · Default TBMQ team

Contact name on the API doc UI page.

SWAGGER_CONTACT_URL · Default https://thingsboard.io/products/mqtt-broker/

Contact URL on the API doc UI page.

SWAGGER_CONTACT_EMAIL · Default [email protected]

Contact email on the API doc UI page.

SWAGGER_LICENSE_TITLE · Default Apache License Version 2.0

License title on the API doc UI page.

SWAGGER_LICENSE_URL · Default https://github.com/thingsboard/tbmq/blob/main/LICENSE

Link to the license body on the API doc UI page.

SWAGGER_VERSION

Version of the API doc to display. Defaults to the package version.

SWAGGER_GROUP_NAME · Default TBMQ

Group name (definition) on the API doc UI page.

ANALYSIS_LOG_ENABLED · Default true

Enables or disables analysis logging.

ANALYSIS_LOG_ALL_CLIENTS · Default false

If true, log events for ALL clients (ignores analyzed-client-ids).

ANALYSIS_LOG_CLIENT_IDS

Comma-separated list of client IDs for which additional events will be logged. Example env var: ANALYSIS_LOG_CLIENT_IDS=client1,client2.