立即试用 商务报价
社区版

本页目录

Configuration properties

This guide will help you to get familiar with ThingsBoard configuration files and parameters. We recommend to configure ThingsBoard using environment variables. This way you do not need to merge the configuration files when new platform release arrives. List of available configuration parameters and corresponding environment variables is located here.

How to change configuration parameters?

Monolithic deployment on Linux

If ThingsBoard is installed on Linux as a monolithic application, you may specify the environment variables in the thingsboard.conf file:

1
sudo nano /usr/share/thingsboard/conf/thingsboard.conf

Use simple example below to add new environment variable ‘HTTP_BIND_PORT’ with value ‘8081’.

1
2
...
export HTTP_BIND_PORT=8081

Monolithic deployment on Windows

If ThingsBoard is installed on Windows as a monolithic application, you may specify the environment variables in the thingsboard.yml file located in the following directory:

1
YOUR_INSTALL_DIR/conf

The configuration file is written in YAML.

All configuration parameters have corresponding environment variable name and default value. In order to change configuration parameter you can simply change it’s default value. For example:

1
2
server:
  address: "${HTTP_BIND_ADDRESS:0.0.0.0}"

In this case, ‘HTTP_BIND_ADDRESS’ is environment variable name and ‘0.0.0.0’ is a default value.

Docker based deployment

If ThingsBoard is installed in a docker compose environment, you may edit the scripts and add environment variables for the corresponding containers. See docker documentation for more details.

K8S based deployment

If ThingsBoard is installed in a K8S environment, you may edit the scripts and add environment variables for the corresponding deployments/stateful sets. See K8S documentation for more details.

Configuration parameters

The parameters are grouped by system components. The list contains the name (address in thingsboard.yml file), environment variable, default value and description.

ThingsBoard Core/Rule Engine Parameters

HTTP server parameters

ParameterEnvironment VariableDefault ValueDescription
server.address HTTP_BIND_ADDRESS 0.0.0.0 HTTP Server bind address
server.port HTTP_BIND_PORT 8080 HTTP Server bind port
server.ssl.enabled SSL_ENABLED false Enable/disable SSL support
server.ssl.credentials.type SSL_CREDENTIALS_TYPE PEM Server credentials type (PEM - pem certificate file; KEYSTORE - java keystore)
server.ssl.credentials.pem.cert_file SSL_PEM_CERT server.pem Path to the server certificate file (holds server certificate or certificate chain, may include server private key)
server.ssl.credentials.pem.key_file SSL_PEM_KEY server_key.pem Path to the server certificate private key file (optional)
server.ssl.credentials.pem.key_password SSL_PEM_KEY_PASSWORD server_key_password Server certificate private key password (optional)
server.ssl.credentials.keystore.type SSL_KEY_STORE_TYPE PKCS12 Type of the key store
server.ssl.credentials.keystore.store_file SSL_KEY_STORE classpath:keystore/keystore.p12 Path to the key store that holds the SSL certificate
server.ssl.credentials.keystore.store_password SSL_KEY_STORE_PASSWORD thingsboard Password used to access the key store
server.ssl.credentials.keystore.key_alias SSL_KEY_ALIAS tomcat Key alias
server.ssl.credentials.keystore.key_password SSL_KEY_PASSWORD thingsboard Password used to access the key
server.http2.enabled HTTP2_ENABLED true Enable/disable HTTP/2 support
server.ssl.credentials.keystore.key_password SSL_KEY_PASSWORD thingsboard Password used to access the key in the keystore
server.http2 HTTP2_ENABLED true Enable/disable HTTP/2 support (takes effect only if server SSL is enabled)
server.log_controller_error_stack_trace HTTP_LOG_CONTROLLER_ERROR_STACK_TRACE false Log errors with stacktrace when REST API throws exception
server.ws.send_timeout TB_SERVER_WS_SEND_TIMEOUT 5000 Timeout for sending data to client WebSocket session in milliseconds
server.ws.ping_timeout TB_SERVER_WS_PING_TIMEOUT 30000
server.ws.limits.max_sessions_per_tenant TB_SERVER_WS_TENANT_RATE_LIMITS_MAX_SESSIONS_PER_TENANT 0 Limit the amount of WebSocket sessions per each tenant available on each server. Zero value disables limitation
server.ws.limits.max_sessions_per_customer TB_SERVER_WS_TENANT_RATE_LIMITS_MAX_SESSIONS_PER_CUSTOMER 0 Limit the amount of WebSocket sessions per each customer available on each server. Zero value disables limitation
server.ws.limits.max_sessions_per_regular_user TB_SERVER_WS_TENANT_RATE_LIMITS_MAX_SESSIONS_PER_REGULAR_USER 0 Limit the amount of WebSocket sessions per each regular user available on each server. Zero value disables limitation
server.ws.limits.max_sessions_per_public_user TB_SERVER_WS_TENANT_RATE_LIMITS_MAX_SESSIONS_PER_PUBLIC_USER 0 Limit the amount of WebSocket sessions per each public user available on each server. Zero value disables limitation
server.ws.limits.max_queue_per_ws_session TB_SERVER_WS_TENANT_RATE_LIMITS_MAX_QUEUE_PER_WS_SESSION 500 Limit the size of pending message queue per each WebSocket session
server.ws.limits.max_subscriptions_per_tenant TB_SERVER_WS_TENANT_RATE_LIMITS_MAX_SUBSCRIPTIONS_PER_TENANT 0 Limit the amount of WebSocket subscriptions per each tenant available on each server. Zero value disables limitation
server.ws.limits.max_subscriptions_per_customer TB_SERVER_WS_TENANT_RATE_LIMITS_MAX_SUBSCRIPTIONS_PER_CUSTOMER 0 Limit the amount of WebSocket subscriptions per each customer available on each server. Zero value disables limitation
server.ws.limits.max_subscriptions_per_regular_user TB_SERVER_WS_TENANT_RATE_LIMITS_MAX_SUBSCRIPTIONS_PER_REGULAR_USER 0 Limit the amount of WebSocket subscriptions per each regular user available on each server. Zero value disables limitation
server.ws.limits.max_subscriptions_per_public_user TB_SERVER_WS_TENANT_RATE_LIMITS_MAX_SUBSCRIPTIONS_PER_PUBLIC_USER 0 Limit the amount of WebSocket subscriptions per each public user available on each server. Zero value disables limitation
server.ws.limits.max_updates_per_session TB_SERVER_WS_TENANT_RATE_LIMITS_MAX_UPDATES_PER_SESSION 300:1,3000:60 Limit the maximum data updates sent to WebSocket session for specified time intervals in seconds. Comma separated list of limit:seconds pairs
server.ws.dynamic_page_link.refresh_interval TB_SERVER_WS_DYNAMIC_PAGE_LINK_REFRESH_INTERVAL_SEC 60 Refresh rate of the dynamic alarm end entity data queries.
server.ws.dynamic_page_link.refresh_pool_size TB_SERVER_WS_DYNAMIC_PAGE_LINK_REFRESH_POOL_SIZE 1 Thread pool size to execute dynamic queries.
server.ws.dynamic_page_link.max_per_user TB_SERVER_WS_DYNAMIC_PAGE_LINK_MAX_PER_USER 10 Maximum number of dynamic queries per user. For example, no more then 10 alarm widgets opened by user simultaneously in all browsers.
server.ws.max_entities_per_data_subscription TB_SERVER_WS_MAX_ENTITIES_PER_DATA_SUBSCRIPTION 10000 Maximum number of entities returned for single entity subscription. For example, no more then 10 000 entities on the map widget.
server.ws.max_entities_per_alarm_subscription TB_SERVER_WS_MAX_ENTITIES_PER_ALARM_SUBSCRIPTION 10000 Maximum number of alarms returned for single alarm subscription. For example, no more then 10 000 alarms on the alarm widget.
server.rest.limits.tenant.enabled TB_SERVER_REST_LIMITS_TENANT_ENABLED false Enable/disable REST API rate limits per tenant
server.rest.limits.tenant.configuration TB_SERVER_REST_LIMITS_TENANT_CONFIGURATION 100:1,2000:60 Limit the maximum REST API calls per tenant on each server for specified time intervals in seconds. Comma separated list of limit:seconds pairs
server.rest.limits.customer.enabled TB_SERVER_REST_LIMITS_CUSTOMER_ENABLED false Enable/disable REST API rate limits per customer
server.rest.limits.customer.configuration TB_SERVER_REST_LIMITS_CUSTOMER_CONFIGURATION 50:1,1000:60 Limit the maximum REST API calls per customer on each server for specified time intervals in seconds. Comma separated list of limit:seconds pairs
server.rest.server_side_rpc.min_timeout MIN_SERVER_SIDE_RPC_TIMEOUT 5000 Minimum value of the server side RPC timeout
server.rest.server_side_rpc.default_timeout DEFAULT_SERVER_SIDE_RPC_TIMEOUT 10000 Default value of the server side RPC timeout

Zookeeper connection parameters

ParameterEnvironment VariableDefault ValueDescription
zk.enabled ZOOKEEPER_ENABLED false Enable/disable zookeeper discovery service. Used for ThingsBoard cluster
zk.url ZOOKEEPER_URL localhost:2181 Zookeeper connect string
zk.retry_interval_ms ZOOKEEPER_RETRY_INTERVAL_MS 3000 Zookeeper retry interval in milliseconds
zk.connection_timeout_ms ZOOKEEPER_CONNECTION_TIMEOUT_MS 3000 Zookeeper connection timeout in milliseconds
zk.session_timeout_ms ZOOKEEPER_SESSION_TIMEOUT_MS 3000 Zookeeper session timeout in milliseconds
zk.zk_dir ZOOKEEPER_NODES_DIR /thingsboard Name of the directory in zookeeper 'filesystem'

Cluster stats parameters

ParameterEnvironment VariableDefault ValueDescription
cluster.stats.enabled TB_CLUSTER_STATS_ENABLED false Enable/Disable the cluster statistics. Calculates number of messages sent between cluster nodes based on each type.
cluster.stats.print_interval_ms TB_CLUSTER_STATS_PRINT_INTERVAL_MS 10000 Interval of printing the cluster stats to the log file.

Plugins configuration parameters

ParameterEnvironment VariableDefault ValueDescription
plugins.scan_packages PLUGINS_SCAN_PACKAGES org.thingsboard.server.extensions,org.thingsboard.rule.engine Comma separated package list used during classpath scanning for plugins

Security parameters

ParameterEnvironment VariableDefault ValueDescription
security.jwt.tokenExpirationTime JWT_TOKEN_EXPIRATION_TIME 9000 User JWT Token expiration time in seconds
security.jwt.refreshTokenExpTime JWT_REFRESH_TOKEN_EXPIRATION_TIME 604800 User JWT Refresh Token expiration time in seconds
security.jwt.tokenIssuer JWT_TOKEN_ISSUER thingsboard.io User JWT Token issuer
security.jwt.tokenSigningKey JWT_TOKEN_SIGNING_KEY thingsboardDefaultSigningKey User JWT Token sign key
security.user_token_access_enabled SECURITY_USER_TOKEN_ACCESS_ENABLED true Enable/disable access to Tenant Administrators JWT token by System Administrator or Customer Users JWT token by Tenant Administrator
security.user_login_case_sensitive SECURITY_USER_LOGIN_CASE_SENSITIVE true Enable/disable case-sensitive username login
security.claim.allowClaimingByDefault SECURITY_CLAIM_ALLOW_CLAIMING_BY_DEFAULT true Enable/disable claiming devices, if false -> the device's [claimingAllowed] SERVER_SCOPE attribute must be set to [true] to allow claiming specific device
security.claim.duration SECURITY_CLAIM_DURATION 86400000 Time allowed to claim the device in milliseconds. 24 hours. Note this value must equal claimDevices.timeToLiveInMinutes value
security.basic.enabled SECURITY_BASIC_ENABLED false
security.oauth2.loginProcessingUrl SECURITY_OAUTH2_LOGIN_PROCESSING_URL /login/oauth2/code/ Redirect URL where access code from external user management system will be processed
security.oauth2.githubMapper.emailUrl SECURITY_OAUTH2_GITHUB_MAPPER_EMAIL_URL_KEY https://api.github.com/user/emails

Usage statistics parameters

ParameterEnvironment VariableDefault ValueDescription
usage.stats.report.enabled USAGE_STATS_REPORT_ENABLED true Enable/Disable collection of statistics about API usage. Collected on a system and tenant level by default.
usage.stats.report.enabled_per_customer USAGE_STATS_REPORT_PER_CUSTOMER_ENABLED false Enable/Disable collection of statistics about API usage on a customer level.
usage.stats.report.interval USAGE_STATS_REPORT_INTERVAL 10 Interval of reporting the statistics. By default, the summarized statistics is sent every 10 seconds.
usage.stats.check.cycle USAGE_STATS_CHECK_CYCLE 60000 Interval of checking the start of next cycle and re-enabling the blocked tenants/customers.

UI parameters

ParameterEnvironment VariableDefault ValueDescription
ui.dashboard.max_datapoints_limit DASHBOARD_MAX_DATAPOINTS_LIMIT 50000 Maximum allowed datapoints fetched by widgets
ui.help.base-url UI_HELP_BASE_URL https://raw.githubusercontent.com/thingsboard/thingsboard-ui-help/release-3.3.3 Base URL for UI Help Assets. This is a link to the raw files hosted in the dedicated GitHub project. You may fork the project, update the content of the files and put your own project link. The project should be public in order for any platfrom UI users to access help resources.

Common database parameters

ParameterEnvironment VariableDefault ValueDescription
database.ts_max_intervals DATABASE_TS_MAX_INTERVALS 700 Max number of DB queries generated by single API call to fetch telemetry records
database.ts.type DATABASE_TS_TYPE sql Cassandra, sql, or timescale (for hybrid mode, DATABASE_TS_TYPE value should be cassandra, or timescale)
database.ts_latest.type DATABASE_TS_LATEST_TYPE sql Cassandra, sql, or timescale (for hybrid mode, DATABASE_TS_TYPE value should be cassandra, or timescale)

Cassandra driver configuration parameters

ParameterEnvironment VariableDefault ValueDescription
cassandra.cluster_name CASSANDRA_CLUSTER_NAME Thingsboard Cluster Thingsboard cluster name
cassandra.keyspace_name CASSANDRA_KEYSPACE_NAME thingsboard Thingsboard keyspace name
cassandra.url CASSANDRA_URL 127.0.0.1:9042 Specify node list
cassandra.local_datacenter CASSANDRA_LOCAL_DATACENTER datacenter1 Specify local datacenter name
cassandra.ssl.enabled CASSANDRA_USE_SSL false Enable/disable secure connection
cassandra.ssl.hostname_validation CASSANDRA_SSL_HOSTNAME_VALIDATION true Enable/disable validation of Cassandra server hostname. If enabled, hostname of Cassandra server must match CN of server certificate
cassandra.ssl.trust_store CASSANDRA_SSL_TRUST_STORE Set trust store for client authentication of server (optional, uses trust store from default SSLContext if not set)
cassandra.ssl.trust_store_password CASSANDRA_SSL_TRUST_STORE_PASSWORD The password for Cassandra trust store
cassandra.ssl.key_store CASSANDRA_SSL_KEY_STORE Set key store for server authentication of client (optional, uses key store from default SSLContext if not set). A key store is only needed if the Cassandra server requires client authentication
cassandra.ssl.key_store_password CASSANDRA_SSL_KEY_STORE_PASSWORD The password for Cassandra key store
cassandra.ssl.cipher_suites CASSANDRA_SSL_CIPHER_SUITES Comma separated list of cipher suites (optional, uses Java default cipher suites if not set)
cassandra.jmx CASSANDRA_USE_JMX false Enable/disable JMX
cassandra.metrics CASSANDRA_USE_METRICS false Enable/disable metrics collection
cassandra.compression CASSANDRA_COMPRESSION none NONE SNAPPY LZ4
cassandra.init_timeout_ms CASSANDRA_CLUSTER_INIT_TIMEOUT_MS 300000 Specify cassandra cluster initialization timeout in milliseconds (if no hosts available during startup)
cassandra.init_retry_interval_ms CASSANDRA_CLUSTER_INIT_RETRY_INTERVAL_MS 3000 Specify cassandra claster initialization retry interval (if no hosts available during startup)
cassandra.max_requests_per_connection_local CASSANDRA_MAX_REQUESTS_PER_CONNECTION_LOCAL 32768 Cassandra max local requests per connection
cassandra.max_requests_per_connection_remote CASSANDRA_MAX_REQUESTS_PER_CONNECTION_REMOTE 32768 Cassandra max remote requests per connection
cassandra.credentials CASSANDRA_USE_CREDENTIALS false Credential parameters
cassandra.username CASSANDRA_USERNAME Specify your username
cassandra.password CASSANDRA_PASSWORD Specify your password
cassandra.socket.connect_timeout CASSANDRA_SOCKET_TIMEOUT 5000 General Cassandra driver parameter
cassandra.socket.read_timeout CASSANDRA_SOCKET_READ_TIMEOUT 20000 General Cassandra driver parameter
cassandra.socket.keep_alive CASSANDRA_SOCKET_KEEP_ALIVE true General Cassandra driver parameter
cassandra.socket.reuse_address CASSANDRA_SOCKET_REUSE_ADDRESS true General Cassandra driver parameter
cassandra.socket.so_linger CASSANDRA_SOCKET_SO_LINGER General Cassandra driver parameter
cassandra.socket.tcp_no_delay CASSANDRA_SOCKET_TCP_NO_DELAY false General Cassandra driver parameter
cassandra.socket.receive_buffer_size CASSANDRA_SOCKET_RECEIVE_BUFFER_SIZE General Cassandra driver parameter
cassandra.socket.send_buffer_size CASSANDRA_SOCKET_SEND_BUFFER_SIZE General Cassandra driver parameter
cassandra.query.read_consistency_level CASSANDRA_READ_CONSISTENCY_LEVEL ONE Cassandra read consistency level
cassandra.query.write_consistency_level CASSANDRA_WRITE_CONSISTENCY_LEVEL ONE Cassandra write consistency level
cassandra.query.default_fetch_size CASSANDRA_DEFAULT_FETCH_SIZE 2000 Cassandra query fetch size
cassandra.query.ts_key_value_partitioning TS_KV_PARTITIONING MONTHS Specify partitioning size for timestamp key-value storage. Allowed values MINUTES, HOURS, DAYS, MONTHS, INDEFINITE
cassandra.query.ts_key_value_partitions_max_cache_size TS_KV_PARTITIONS_MAX_CACHE_SIZE 100000 The number of partitions that are cached in memory of each service. Useful to decrease load of re-inserting same partitions again.
cassandra.query.ts_key_value_ttl TS_KV_TTL 0 Timeseries Time To Live (in seconds) for Cassandra Record. 0 - record is never expired.
cassandra.query.events_ttl TS_EVENTS_TTL 0 Events(LC_EVENT, STATS) Time To Live (in seconds) for Cassandra Record. 0 - record is never expired.
cassandra.query.debug_events_ttl DEBUG_EVENTS_TTL 604800 Specify TTL of debug log in seconds. The current value corresponds to one week.
cassandra.query.buffer_size CASSANDRA_QUERY_BUFFER_SIZE 200000 Max number of Cassandra queries that are waiting for execution
cassandra.query.concurrent_limit CASSANDRA_QUERY_CONCURRENT_LIMIT 1000 MAx number of concurrent Cassandra queries
cassandra.query.permit_max_wait_time PERMIT_MAX_WAIT_TIME 120000 Max time in milliseconds query waits for execution
cassandra.query.dispatcher_threads CASSANDRA_QUERY_DISPATCHER_THREADS 2 Amount of threads to dispatch cassandra queries
cassandra.query.callback_threads CASSANDRA_QUERY_CALLBACK_THREADS 4 Amount of threads used to invoke callbacks for queries results
cassandra.query.poll_ms CASSANDRA_QUERY_POLL_MS 50 Cassandra query queue polling interval in milliseconds
cassandra.query.rate_limit_print_interval_ms CASSANDRA_QUERY_RATE_LIMIT_PRINT_MS 10000 Interval in milliseconds for printing Cassandra query queue statistic
cassandra.query.set_null_values_enableds CASSANDRA_QUERY_SET_NULL_VALUES_ENABLED false Set all data types values except target to null for the same ts on save
cassandra.query.print_queries_freq CASSANDRA_QUERY_PRINT_FREQ 0 Log one of cassandra queries with specified frequency (0 - logging is disabled)
cassandra.query.tenant_rate_limits.enabled CASSANDRA_QUERY_TENANT_RATE_LIMITS_ENABLED false Enable/disable cassandra query rate limits per tenant
cassandra.query.tenant_rate_limits.configuration CASSANDRA_QUERY_TENANT_RATE_LIMITS_CONFIGURATION 1000:1,30000:60 Limit the maximum Cassandra queries per tenant on each server for specified time intervals in seconds. Comma separated list of limit:seconds pairs.
cassandra.query.tenant_rate_limits.print_tenant_names CASSANDRA_QUERY_TENANT_RATE_LIMITS_PRINT_TENANT_NAMES false Whether to print rate-limited tenant names when printing Cassandra query queue statistic

SQL configuration parameters

ParameterEnvironment VariableDefault ValueDescription
sql.attributes.batch_size SQL_ATTRIBUTES_BATCH_SIZE 10000 Batch size for persisting attribute updates
sql.attributes.batch_max_delay SQL_ATTRIBUTES_BATCH_MAX_DELAY_MS 100 Max timeout for attributes entries queue polling. Value set in milliseconds
sql.attributes.stats_print_interval_ms SQL_ATTRIBUTES_BATCH_STATS_PRINT_MS 10000 Interval in milliseconds for printing attributes updates statistic
sql.attributes.batch_threads SQL_ATTRIBUTES_BATCH_THREADS 4 Number of threads that execute batch insert/update statements for attributes
sql.ts.batch_size SQL_TS_BATCH_SIZE 10000 Batch size for persisting timeseries inserts
sql.ts.batch_max_delay SQL_TS_BATCH_MAX_DELAY_MS 100 Max timeout for time-series entries queue polling. Value set in milliseconds
sql.ts.stats_print_interval_ms SQL_TS_BATCH_STATS_PRINT_MS 10000 Interval in milliseconds for printing timeseries insert statistic
sql.ts.batch_threads SQL_TS_BATCH_THREADS 4 Number of threads that execute batch insert/update statements for time-series data
sql.ts_latest.batch_size SQL_TS_LATEST_BATCH_SIZE 10000 Batch size for persisting latest telemetry updates
sql.ts_latest.batch_max_delay SQL_TS_LATEST_BATCH_MAX_DELAY_MS 100 Max timeout for latest telemetry entries queue polling. The value set in milliseconds
sql.ts_latest.stats_print_interval_ms SQL_TS_LATEST_BATCH_STATS_PRINT_MS 10000 Interval in milliseconds for printing latest telemetry updates statistic
sql.ts_latest.batch_threads SQL_TS_LATEST_BATCH_THREADS 4 Number of threads that execute batch insert/update statements for latest data
sql.ts_latest.update_by_latest_ts SQL_TS_UPDATE_BY_LATEST_TIMESTAMP true Update latest values only if the timestamp of the new record is greater or equals than timestamp of the previously saved latest value. Latest values are stored separately from historical values for fast lookup from DB. Insert of historical value happens in any case.
sql.batch_sort SQL_BATCH_SORT false Specify whether to sort entities before batch update. Should be enabled for cluster mode to avoid deadlocks
sql.remove_null_chars SQL_REMOVE_NULL_CHARS true Specify whether to remove null characters from strValue of attributes and timeseries before insert
sql.log_queries SQL_LOG_QUERIES false Log slow SQL queries. Slow queries are determined using SQL_LOG_QUERIES_THRESHOLD threshold
sql.log_queries_threshold SQL_LOG_QUERIES_THRESHOLD 5000 Threshold of slow SQL queries to log.
sql.postgres.ts_key_value_partitioning SQL_POSTGRES_TS_KV_PARTITIONING MONTHS Specify partitioning size for timestamp key-value storage. Example: DAYS, MONTHS, YEARS, INDEFINITE
sql.timescale.chunk_time_interval SQL_TIMESCALE_CHUNK_TIME_INTERVAL 604800000 Specify Interval size for new data chunks storage
sql.timescale.batch_threads SQL_TIMESCALE_BATCH_THREADS 4 Number of threads that execute batch insert/update statements for timeseries data when using Timescale DB.
sql.ttl.ts.enabled SQL_TTL_TS_ENABLED true The parameter to specify whether to use TTL (Time To Live) for timeseries records
sql.ttl.ts.execution_interval_ms SQL_TTL_TS_EXECUTION_INTERVAL 86400000 The parameter to specify the period of execution TTL task for timeseries records. Value set in milliseconds. Default value corresponds to one day
sql.ttl.ts.ts_key_value_ttl SQL_TTL_TS_TS_KEY_VALUE_TTL 0 The parameter to specify system TTL(Time To Live) value for timeseries records. Value set in seconds. 0 - records are never expired. System TTL value can be overwritten for a particular Tenant, or parent Customer entity by setting the server-side attribute TTL to the corresponding Tenant or parent Customer entity. Please, note that the value should be set as long value, otherwise the TTL will be used from the higher level(Tenant or System)
sql.ttl.events.enabled SQL_TTL_EVENTS_ENABLED true The parameter to specify whether to use TTL (Time To Live) for events records.
sql.ttl.events.execution_interval_ms SQL_TTL_EVENTS_EXECUTION_INTERVAL 2220000 The parameter to specify the period of execution TTL task for events records. Value set in milliseconds. (max random initial delay and fixed period). 37 minutes to avoid common interval spikes
sql.ttl.events.events_ttl SQL_TTL_EVENTS_EVENTS_TTL 0 The parameter to specify TTL(Time To Live) value for Events(LC_EVENT, STATS) records. Value set in seconds. 0 - records are never expired.
sql.ttl.events.debug_events_ttl SQL_TTL_EVENTS_DEBUG_EVENTS_TTL 604800 The parameter to specify TTL(Time To Live) value for Debug Events(DEBUG_CONVERTER, DEBUG_INTEGRATION, DEBUG_RULE_NODE, DEBUG_RULE_CHAIN) records. Value set in seconds. 0 - records are never expired. Default value corresponds to one week.
sql.ttl.edge_events.enabled SQL_TTL_EDGE_EVENTS_ENABLED true Enable/disable TTL(Time To Live) for edge events
sql.ttl.edge_events.execution_interval_ms SQL_TTL_EDGE_EVENTS_EXECUTION_INTERVAL 86400000 Number of milliseconds. The current value corresponds to one day
sql.ttl.edge_events.edge_events_ttl SQL_TTL_EDGE_EVENTS_TTL 2628000 Number of seconds. The current value corresponds to one month
sql.ttl.alarms.checking_interval SQL_ALARMS_TTL_CHECKING_INTERVAL 7200000 Number of milliseconds. The current value corresponds to two hours
sql.ttl.alarms.removal_batch_size SQL_ALARMS_TTL_REMOVAL_BATCH_SIZE 3000 To delete outdated alarms not all at once but in batches
sql.ttl.rpc.enabled SQL_TTL_RPC_ENABLED true Parameter to enable or disable TTL(Time To Live) for Persistent RPC
sql.ttl.rpc.checking_interval SQL_RPC_TTL_CHECKING_INTERVAL 7200000 Parameter to specify how often TTL(Time To Live) will be checked.Number of milliseconds. The current value corresponds to two hours
sql.relations.max_level SQL_RELATIONS_MAX_LEVEL 50 This value has to be reasonable small to prevent infinite recursion as early as possible

Actor system parameters

ParameterEnvironment VariableDefault ValueDescription
actors.system.throughput ACTORS_SYSTEM_THROUGHPUT 5 Number of messages the actor system will process per actor before switching to processing of messages for next actor.
actors.system.scheduler_pool_size ACTORS_SYSTEM_SCHEDULER_POOL_SIZE 1 Thread pool size for actor system scheduler.
actors.system.max_actor_init_attempts ACTORS_SYSTEM_MAX_ACTOR_INIT_ATTEMPTS 10 Maximum number of attempts to init the actor before disabling the actor.
actors.system.app_dispatcher_pool_size ACTORS_SYSTEM_APP_DISPATCHER_POOL_SIZE 1 Thread pool size for main actor system dispatcher.
actors.system.tenant_dispatcher_pool_size ACTORS_SYSTEM_TENANT_DISPATCHER_POOL_SIZE 2 Thread pool size for actor system dispatcher that process messages for tenant actors.
actors.system.device_dispatcher_pool_size ACTORS_SYSTEM_DEVICE_DISPATCHER_POOL_SIZE 4 Thread pool size for actor system dispatcher that process messages for device actors.
actors.system.rule_dispatcher_pool_size ACTORS_SYSTEM_RULE_DISPATCHER_POOL_SIZE 4 Thread pool size for actor system dispatcher that process messages for rule engine (chain/node) actors.
actors.tenant.create_components_on_init ACTORS_TENANT_CREATE_COMPONENTS_ON_INIT true Create components in initialization
actors.session.max_concurrent_sessions_per_device ACTORS_MAX_CONCURRENT_SESSION_PER_DEVICE 1 Max number of concurrent sessions per device
actors.session.sync.timeout ACTORS_SESSION_SYNC_TIMEOUT 10000 Default timeout for processing request using synchronous session (HTTP, CoAP) in milliseconds
actors.rule.db_callback_thread_pool_size ACTORS_RULE_DB_CALLBACK_THREAD_POOL_SIZE 50 Specify thread pool size for database request callbacks executor service
actors.rule.js_thread_pool_size ACTORS_RULE_JS_THREAD_POOL_SIZE 50 Specify thread pool size for javascript executor service
actors.rule.mail_thread_pool_size ACTORS_RULE_MAIL_THREAD_POOL_SIZE 50 Specify thread pool size for mail sender executor service
actors.rule.sms_thread_pool_size ACTORS_RULE_SMS_THREAD_POOL_SIZE 50 Specify thread pool size for sms sender executor service
actors.rule.allow_system_mail_service ACTORS_RULE_ALLOW_SYSTEM_MAIL_SERVICE true Whether to allow usage of system mail service for rules
actors.rule.allow_system_sms_service ACTORS_RULE_ALLOW_SYSTEM_SMS_SERVICE true Whether to allow usage of system sms service for rules
actors.rule.external_call_thread_pool_size ACTORS_RULE_EXTERNAL_CALL_THREAD_POOL_SIZE 50 Specify thread pool size for external call service
actors.rule.chain.error_persist_frequency ACTORS_RULE_CHAIN_ERROR_FREQUENCY 3000 Errors for particular actor are persisted once per specified amount of milliseconds
actors.rule.chain.debug_mode_rate_limits_per_tenant.enabled ACTORS_RULE_CHAIN_DEBUG_MODE_RATE_LIMITS_PER_TENANT_ENABLED true Enable/Disable the rate limit of persisted debug events for all rule nodes per tenant.
actors.rule.chain.debug_mode_rate_limits_per_tenant.configuration ACTORS_RULE_CHAIN_DEBUG_MODE_RATE_LIMITS_PER_TENANT_CONFIGURATION 50000:3600 The value of rate limit. By default, no more then 50 thousand events per hour.
actors.rule.node.error_persist_frequency ACTORS_RULE_NODE_ERROR_FREQUENCY 3000 Errors for particular actor are persisted once per specified amount of milliseconds
actors.rule.transaction.queue_size ACTORS_RULE_TRANSACTION_QUEUE_SIZE 15000 Size of queues which store messages for transaction rule nodes
actors.rule.transaction.duration ACTORS_RULE_TRANSACTION_DURATION 60000 Time in milliseconds for transaction to complete
actors.rpc.max_retries ACTORS_RPC_MAX_RETRIES 5 Maximum number of persistent RPC call retries in case of failed requests delivery.
actors.rpc.sequential ACTORS_RPC_SEQUENTIAL false Enable/Disable sequential processing of RPC calls per device.
actors.statistics.enabled ACTORS_STATISTICS_ENABLED true Enable/disable actor statistics
actors.statistics.js_print_interval_ms ACTORS_JS_STATISTICS_PRINT_INTERVAL_MS 10000 Frequency of printing the JS executor statistics
actors.statistics.persist_frequency ACTORS_STATISTICS_PERSIST_FREQUENCY 3600000 Actors statistic persistence frequency in milliseconds

Cache parameters

ParameterEnvironment VariableDefault ValueDescription
cache.type CACHE_TYPE caffeine Cache provider. caffeine for stand alone installations and redis for clustered installations
cache.maximumPoolSize CACHE_MAXIMUM_POOL_SIZE 16 Maximum pool size to process futures that calls the external cache
cache.attributes.enabled CACHE_ATTRIBUTES_ENABLED true Cache attribute request in caffeine or redis

Caffeine parameters

ParameterEnvironment VariableDefault ValueDescription
caffeine.specs.relations.timeToLiveInMinutes 1440 Relations cache TTL
caffeine.specs.relations.maxSize 10000 Relations cache max size. maxSize: 0 means the cache is disabled
caffeine.specs.deviceCredentials.timeToLiveInMinutes 1440 deviceCredentials cache TTL
caffeine.specs.deviceCredentials.maxSize 10000 deviceCredentials cache max size
caffeine.specs.devices.timeToLiveInMinutes 1440 devices cache TTL
caffeine.specs.devices.maxSize 10000 devices cache max size
caffeine.specs.sessions.timeToLiveInMinutes 1440 sessions cache TTL
caffeine.specs.sessions.maxSize 10000 sessions cache max size
caffeine.specs.assets.timeToLiveInMinutes 1440 assets cache TTL
caffeine.specs.assets.maxSize 10000 assets cache max size
caffeine.specs.downlink.timeToLiveInMinutes 1440 downlink cache TTL
caffeine.specs.downlink.maxSize 100000 downlink cache max size
caffeine.specs.entityViews.timeToLiveInMinutes 1440 entityViews cache TTL
caffeine.specs.entityViews.maxSize 10000 entityViews cache max size
caffeine.specs.roles.timeToLiveInMinutes 1440 roles cache TTL
caffeine.specs.roles.maxSize 10000 roles cache max size
caffeine.specs.permissions.timeToLiveInMinutes 1440 permissions cache TTL
caffeine.specs.permissions.maxSize 10000 permissions cache max size
caffeine.specs.owners.timeToLiveInMinutes 1440 owners cache TTL
caffeine.specs.owners.maxSize 100000 owners cache max size
caffeine.specs.claimDevices.timeToLiveInMinutes 1440 claimDevices cache TTL
caffeine.specs.claimDevices.maxSize 10000 claimDevices cache max size
caffeine.specs.securitySettings.timeToLiveInMinutes 1440 securitySettings cache TTL
caffeine.specs.securitySettings.maxSize 10000 securitySettings cache max size
caffeine.specs.remoteIntegrations.timeToLiveInMinutes 1440 remoteIntegrations cache TTL
caffeine.specs.remoteIntegrations.maxSize 10000 remoteIntegrations cache max size
caffeine.specs.tenantProfiles.timeToLiveInMinutes 1440 tenantProfiles cache TTL
caffeine.specs.tenantProfiles.maxSize 10000 tenantProfiles cache max size
caffeine.specs.deviceProfiles.timeToLiveInMinutes 1440 deviceProfiles cache TTL
caffeine.specs.deviceProfiles.maxSize 10000 deviceProfiles cache max size
caffeine.specs.attributes.timeToLiveInMinutes 1440 attributes cache TTL
caffeine.specs.attributes.maxSize 100000 attributes cache max size
caffeine.specs.tokensOutdatageTime.timeToLiveInMinutes 20000 tokensOutdatageTime cache TTL
caffeine.specs.tokensOutdatageTime.maxSize 10000 tokensOutdatageTime cache max size
caffeine.specs.otaPackages.timeToLiveInMinutes 60 otaPackages cache TTL
caffeine.specs.otaPackages.maxSize 10 otaPackages cache max size
caffeine.specs.otaPackagesData.timeToLiveInMinutes 60 otaPackagesData cache TTL
caffeine.specs.otaPackagesData.maxSize 10 otaPackagesData cache max size
caffeine.specs.edges.timeToLiveInMinutes 1440 edges cache TTL
caffeine.specs.edges.maxSize 10000 edges cache max size

Redis connection parameters

ParameterEnvironment VariableDefault ValueDescription
redis.connection.type REDIS_CONNECTION_TYPE standalone Redis connection type - standalone or cluster
redis.standalone.host REDIS_HOST localhost Redis connection host
redis.standalone.port REDIS_PORT 6379 Redis connection port
redis.standalone.useDefaultClientConfig REDIS_USE_DEFAULT_CLIENT_CONFIG true Redis connection port
redis.standalone.clientName REDIS_CLIENT_NAME standalone This value may be used only if you used not default ClientConfig
redis.standalone.connectTimeout REDIS_CLIENT_CONNECT_TIMEOUT 30000 This value may be used only if you used not default ClientConfig
redis.standalone.readTimeout REDIS_CLIENT_READ_TIMEOUT 60000 This value may be used only if you used not default ClientConfig
redis.standalone.usePoolConfig REDIS_CLIENT_USE_POOL_CONFIG false This value may be used only if you used not default ClientConfig
redis.cluster.nodes REDIS_NODES Comma-separated list of "host:port" pairs to bootstrap from
redis.cluster.max-redirects REDIS_MAX_REDIRECTS 12 Maximum number of redirects to follow when executing commands across the cluster
redis.cluster.useDefaultPoolConfig REDIS_USE_DEFAULT_POOL_CONFIG true Use default redis pool configuration. If set to "true", the REDIS_POOL_CONFIG_* properties will be ignored.
redis.db REDIS_DB 0 Redis database index
redis.password REDIS_PASSWORD Redis database password
redis.pool_config.maxTotal REDIS_POOL_CONFIG_MAX_TOTAL 128 General redis pool settings
redis.pool_config.maxIdle REDIS_POOL_CONFIG_MAX_IDLE 128 General redis pool settings
redis.pool_config.minIdle REDIS_POOL_CONFIG_MIN_IDLE 16 General redis pool settings
redis.pool_config.testOnBorrow REDIS_POOL_CONFIG_TEST_ON_BORROW true General redis pool settings
redis.pool_config.testOnReturn REDIS_POOL_CONFIG_TEST_ON_RETURN true General redis pool settings
redis.pool_config.testWhileIdle REDIS_POOL_CONFIG_TEST_WHILE_IDLE true General redis pool settings
redis.pool_config.minEvictableMs REDIS_POOL_CONFIG_MIN_EVICTABLE_MS 60000 General redis pool settings
redis.pool_config.evictionRunsMs REDIS_POOL_CONFIG_EVICTION_RUNS_MS 30000 General redis pool settings
redis.pool_config.maxWaitMills REDIS_POOL_CONFIG_MAX_WAIT_MS 60000 General redis pool settings
redis.pool_config.numberTestsPerEvictionRun REDIS_POOL_CONFIG_NUMBER_TESTS_PER_EVICTION_RUN 3 General redis pool settings
redis.pool_config.blockWhenExhausted REDIS_POOL_CONFIG_BLOCK_WHEN_EXHAUSTED true General redis pool settings

Check new version updates parameters

ParameterEnvironment VariableDefault ValueDescription
updates.enabled UPDATES_ENABLED true Enable/disable ThingsBoard updates checking. If enabled, the platform will periodically request information about new releases from updates.thingsboard.io

Spring freemarker configuration

ParameterEnvironment VariableDefault ValueDescription
spring.freemarker.checkTemplateLocation false

Spring CORS configuration

ParameterEnvironment VariableDefault ValueDescription
spring.mvc.cors.mappings.[/api/**].allowed-origins * Comma-separated list of origins to allow. '*' allows all origins. When not set,CORS support is disabled
spring.mvc.cors.mappings.[/api/**].allowed-methods * Comma-separated list of methods to allow. '*' allows all methods
spring.mvc.cors.mappings.[/api/**].allowed-headers * Comma-separated list of headers to allow in a request. '*' allows all headers
spring.mvc.cors.mappings.[/api/**].max-age 1800 How long, in seconds, the response from a pre-flight request can be cached by clients
spring.mvc.cors.mappings.[/api/**].allow-credentials true Set whether credentials are supported. When not set, credentials are not supported

The default timeout for asynchronous requests in milliseconds

ParameterEnvironment VariableDefault ValueDescription
spring.mvc.async.request-timeout SPRING_MVC_ASYNC_REQUEST_TIMEOUT 30000 Timeout for HTTP requests.

Spring serve gzip compressed static resources

ParameterEnvironment VariableDefault ValueDescription
spring.resources.chain.compressed true Enable/disable compression of static resources
spring.resources.chain.strategy.content.enabled true
spring.servlet.multipart.max-file-size 50MB
spring.servlet.multipart.max-request-size 50MB
spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation true
spring.jpa.properties.hibernate.order_by.default_null_ordering last

SQL DAO Configuration

ParameterEnvironment VariableDefault ValueDescription
spring.data.jpa.repositories.enabled true
spring.jpa.properties.javax.persistence.query.timeout JAVAX_PERSISTENCE_QUERY_TIMEOUT 30000 General timeout for JDBC queries
spring.jpa.open-in-view false
spring.jpa.hibernate.ddl-auto none
spring.datasource.driverClassName SPRING_DRIVER_CLASS_NAME org.postgresql.Driver Database driver for Spring JPA - org.postgresql.Driver
spring.datasource.url SPRING_DATASOURCE_URL jdbc:postgresql://localhost:5432/thingsboard Database URL
spring.datasource.username SPRING_DATASOURCE_USERNAME postgres Database Username
spring.datasource.password SPRING_DATASOURCE_PASSWORD postgres Database password
spring.datasource.hikari.maximumPoolSize SPRING_DATASOURCE_MAXIMUM_POOL_SIZE 16 This property allows the number of connections in the pool to increase as demand increases. At the same time, the property ensures that the pool doesn't grow to the point of exhausting a system's resources, which ultimately affects an application's performance and availability.

Audit log parameters

ParameterEnvironment VariableDefault ValueDescription
audit-log.enabled AUDIT_LOG_ENABLED true Enable/disable audit log functionality.
audit-log.by_tenant_partitioning AUDIT_LOG_BY_TENANT_PARTITIONING MONTHS Specify partitioning size for audit log by tenant id storage. Example MINUTES, HOURS, DAYS, MONTHS
audit-log.default_query_period AUDIT_LOG_DEFAULT_QUERY_PERIOD 30 Number of days as history period if startTime and endTime are not specified
audit-log.logging-level.mask."device" AUDIT_LOG_MASK_DEVICE W Device logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations)
audit-log.logging-level.mask."asset" AUDIT_LOG_MASK_ASSET W Asset logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations)
audit-log.logging-level.mask."dashboard" AUDIT_LOG_MASK_DASHBOARD W Dashboard logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations)
audit-log.logging-level.mask."customer" AUDIT_LOG_MASK_CUSTOMER W Customer logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations)
audit-log.logging-level.mask."user" AUDIT_LOG_MASK_USER W User logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations)
audit-log.logging-level.mask."rule_chain" AUDIT_LOG_MASK_RULE_CHAIN W Rule Chain logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations)
audit-log.logging-level.mask."alarm" AUDIT_LOG_MASK_ALARM W Alarm logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations)
audit-log.logging-level.mask."integration" AUDIT_LOG_MASK_INTEGRATION W Integration logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations)
audit-log.logging-level.mask."converter" AUDIT_LOG_MASK_CONVERTER W Converter logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations)
audit-log.logging-level.mask."entity_group" AUDIT_LOG_MASK_ENTITY_GROUP W Entity Group logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations)
audit-log.logging-level.mask."scheduler_event" AUDIT_LOG_MASK_SCHEDULER_EVENT W Scheduler Event logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations)
audit-log.logging-level.mask."blob_entity" AUDIT_LOG_MASK_BLOB_ENTITY W Blob Entity logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations)
audit-log.logging-level.mask."entity_view" AUDIT_LOG_MASK_ENTITY_VIEW W Entity View logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations)
audit-log.logging-level.mask."device_profile" AUDIT_LOG_MASK_DEVICE_PROFILE W Device Profile logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations)
audit-log.logging-level.mask."edge" AUDIT_LOG_MASK_EDGE W Edge logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations)
audit-log.logging-level.mask."tb_resource" AUDIT_LOG_MASK_RESOURCE W ThingsBoard resource logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations)
audit-log.logging-level.mask."ota_package" AUDIT_LOG_MASK_OTA_PACKAGE W Ota package logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations)
audit-log.logging-level.mask."role" AUDIT_LOG_MASK_ROLE W Role logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations)
audit-log.logging-level.mask."group_permission" AUDIT_LOG_MASK_GROUP_PERMISSION W Group Permission logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations)
audit-log.sink.type AUDIT_LOG_SINK_TYPE none Type of external sink system to forward audit logs records. Possible options: none, elasticsearch
audit-log.sink.index_pattern AUDIT_LOG_SINK_INDEX_PATTERN @{TENANT}_AUDIT_LOG_@{DATE} Name of the index where audit logs stored. Index name could contain next placeholders (not mandatory): @{TENANT} - substituted by tenant ID @{DATE} - substituted by current date in format provided in audit_log.sink.date_format
audit-log.sink.date_format AUDIT_LOG_SINK_DATE_FORMAT YYYY.MM.DD Date format. Details of the pattern could be found in this link
audit-log.sink.scheme_name AUDIT_LOG_SINK_SCHEME_NAME http http or https
audit-log.sink.host AUDIT_LOG_SINK_HOST localhost Host of external sink system
audit-log.sink.port AUDIT_LOG_SINK_PORT 9200 Port of external sink system
audit-log.sink.user_name AUDIT_LOG_SINK_USER_NAME Username used to access external sink system
audit-log.sink.password AUDIT_LOG_SINK_PASSWORD Password used to access external sink system

Device connectivity state parameters

ParameterEnvironment VariableDefault ValueDescription
state.defaultInactivityTimeoutInSec DEFAULT_INACTIVITY_TIMEOUT 600 Device inactivity timeout in seconds
state.defaultStateCheckIntervalInSec DEFAULT_STATE_CHECK_INTERVAL 60 Device inactivity check period in seconds
state.persistToTelemetry PERSIST_STATE_TO_TELEMETRY false

JavaScript evaluator parameters

ParameterEnvironment VariableDefault ValueDescription
js.evaluator JS_EVALUATOR local Javascript evaluator type - local (Built-in JVM JavaScript environment properties) or remote (Remote JavaScript environment )
js.local.use_js_sandbox USE_LOCAL_JS_SANDBOX true Use Sandboxed (secured) JVM JavaScript environment
js.local.monitor_thread_pool_size LOCAL_JS_SANDBOX_MONITOR_THREAD_POOL_SIZE 4 Specify thread pool size for JavaScript sandbox resource monitor
js.local.max_cpu_time LOCAL_JS_SANDBOX_MAX_CPU_TIME 8000 Maximum CPU time in milliseconds allowed for script execution
js.local.max_errors LOCAL_JS_SANDBOX_MAX_ERRORS 3 Maximum allowed JavaScript execution errors before JavaScript will be blacklisted
js.local.max_requests_timeout LOCAL_JS_MAX_REQUEST_TIMEOUT 0 JS Eval max request timeout. 0 - no timeout
js.local.max_black_list_duration_sec LOCAL_JS_SANDBOX_MAX_BLACKLIST_DURATION_SEC 60 Maximum time in seconds for black listed function to stay in the list
js.local.stats.enabled TB_JS_LOCAL_STATS_ENABLED false Enable/Disable stats collection for local JS executor
js.local.stats.print_interval_ms TB_JS_LOCAL_STATS_PRINT_INTERVAL_MS 10000 Interval of logging for local JS executor stats
js.remote.max_errors REMOTE_JS_SANDBOX_MAX_ERRORS 3 Maximum allowed JavaScript execution errors before JavaScript will be blacklisted
js.remote.max_black_list_duration_sec REMOTE_JS_SANDBOX_MAX_BLACKLIST_DURATION_SEC 60 Maximum time in seconds for black listed function to stay in the list
js.remote.stats.enabled TB_JS_REMOTE_STATS_ENABLED false Enable/Disable stats collection for remote JS executor
js.remote.stats.print_interval_ms TB_JS_REMOTE_STATS_PRINT_INTERVAL_MS 10000 Interval of logging for remote JS executor stats

Transport parameters

ParameterEnvironment VariableDefault ValueDescription
transport.sessions.inactivity_timeout TB_TRANSPORT_SESSIONS_INACTIVITY_TIMEOUT 300000 Inactivity timeout for device session in transport service. The last activity time of the device session is updated if device sends any message, including keepalive messages.
transport.sessions.report_timeout TB_TRANSPORT_SESSIONS_REPORT_TIMEOUT 3000 Interval of periodic check for expired sessions and report of the changes to session last activity time.
transport.rate_limits.enabled TB_TRANSPORT_RATE_LIMITS_ENABLED false
transport.rate_limits.tenant TB_TRANSPORT_RATE_LIMITS_TENANT 1000:1,20000:60
transport.rate_limits.device TB_TRANSPORT_RATE_LIMITS_DEVICE 10:1,300:60
transport.json.type_cast_enabled JSON_TYPE_CAST_ENABLED true Cast String data types to Numeric if possible when processing Telemetry/Attributes JSON
transport.json.max_string_value_length JSON_MAX_STRING_VALUE_LENGTH 0 Maximum allowed string value length when processing Telemetry/Attributes JSON (0 value disables string value length check)
transport.client_side_rpc.timeout CLIENT_SIDE_RPC_TIMEOUT 60000
transport.api_enabled TB_TRANSPORT_API_ENABLED true Enable/disable http/mqtt/coap transport protocols (has higher priority than certain protocol's 'enabled' property)
transport.log.enabled TB_TRANSPORT_LOG_ENABLED true Enable/Disable log of transport messages to telemetry. For example, logging of LwM2M registration update.
transport.log.max_length TB_TRANSPORT_LOG_MAX_LENGTH 1024 Maximum length of the log message. The content will be truncated to the specified value if needed.
transport.stats.enabled TB_TRANSPORT_STATS_ENABLED true Enable/Disable collection of transport statistics
transport.stats.print-interval-ms TB_TRANSPORT_STATS_PRINT_INTERVAL_MS 60000 Interval of transport statistics logging.
Local HTTP transport parameters
ParameterEnvironment VariableDefault ValueDescription
transport.http.enabled HTTP_ENABLED true Enable/Disable local HTTP transport protocol
ParameterEnvironment VariableDefault ValueDescription
transport.http.request_timeout HTTP_REQUEST_TIMEOUT 60000 HTTP request processing timeout in milliseconds
transport.http.max_request_timeout HTTP_MAX_REQUEST_TIMEOUT 300000 HTTP maximum request processing timeout in milliseconds
Local MQTT transport parameters
ParameterEnvironment VariableDefault ValueDescription
transport.mqtt.enabled MQTT_ENABLED true Enable/Disable local MQTT transport protocol
ParameterEnvironment VariableDefault ValueDescription
transport.mqtt.bind_address MQTT_BIND_ADDRESS 0.0.0.0 MQTT bind address
transport.mqtt.bind_port MQTT_BIND_PORT 1883 MQTT bind port
transport.mqtt.timeout MQTT_TIMEOUT 10000 MQTT processing timeout in milliseconds
transport.mqtt.msg_queue_size_per_device_limit MQTT_MSG_QUEUE_SIZE_PER_DEVICE_LIMIT 100 Messages await in the queue before device connected state. This limit works on low level before TenantProfileLimits mechanism
transport.mqtt.netty.leak_detector_level NETTY_LEAK_DETECTOR_LVL DISABLED Netty leak detector level
transport.mqtt.netty.boss_group_thread_count NETTY_BOSS_GROUP_THREADS 1 Netty BOSS threads count
transport.mqtt.netty.worker_group_thread_count NETTY_WORKER_GROUP_THREADS 12 Netty worker threads count
transport.mqtt.netty.max_payload_size NETTY_MAX_PAYLOAD_SIZE 65536 Max payload size in bytes
transport.mqtt.netty.so_keep_alive NETTY_SO_KEEPALIVE false
transport.mqtt.ssl.enabled MQTT_SSL_ENABLED false Enable/disable MQTTS support
transport.mqtt.ssl.bind_address MQTT_SSL_BIND_ADDRESS 0.0.0.0 MMQTT SSL bind address
transport.mqtt.ssl.bind_port MQTT_SSL_BIND_PORT 8883 MQTT SSL bind port
transport.mqtt.ssl.protocol MQTT_SSL_PROTOCOL TLSv1.2 SSL protocol: See this link
transport.mqtt.ssl.credentials.type. MQTT_SSL_CREDENTIALS_TYPE PEM Server credentials type (PEM - pem certificate file; KEYSTORE - java keystore)
transport.mqtt.ssl.credentials.pem.cert_file MQTT_SSL_PEM_CERT mqttserver.pem Path to the server certificate file (holds server certificate or certificate chain, may include server private key)
transport.mqtt.ssl.credentials.pem.key_file MQTT_SSL_PEM_KEY mqttserver_key.pem Path to the server certificate private key file (optional)
transport.mqtt.ssl.credentials.pem.key_password MQTT_SSL_PEM_KEY_PASSWORD server_key_password Server certificate private key password (optional)
transport.mqtt.ssl.credentials.keystore.type MQTT_SSL_KEY_STORE_TYPE PKCS12 Type of the key store: PKCS12 or JKS
transport.mqtt.ssl.credentials.keystore.store_file MQTT_SSL_KEY_STORE mqttserver.jks Path to the key store that holds the SSL certificate
transport.mqtt.ssl.credentials.keystore.store_password MQTT_SSL_KEY_STORE_PASSWORD server_ks_password Password used to access the key store
transport.mqtt.ssl.credentials.keystore.key_password MQTT_SSL_KEY_PASSWORD server_key_password Password used to access the key
transport.mqtt.ssl.skip_validity_check_for_client_cert MQTT_SSL_SKIP_VALIDITY_CHECK_FOR_CLIENT_CERT false Skip certificate validity check for client certificates
Local CoAP transport parameters
ParameterEnvironment VariableDefault ValueDescription
transport.coap.enabled COAP_ENABLED true Enable/Disable local CoAP transport protocol
ParameterEnvironment VariableDefault ValueDescription
transport.coap.bind_address COAP_BIND_ADDRESS 0.0.0.0 CoAP bind address
transport.coap.bind_port COAP_BIND_PORT 5683 CoAP bind port
transport.coap.timeout COAP_TIMEOUT 10000 CoaP processing timeout in milliseconds
transport.coap.psm_activity_timer COAP_PSM_ACTIVITY_TIMER 10000 Default PSM Activity Timer if not specified in device profile.
transport.coap.paging_transmission_window COAP_PAGING_TRANSMISSION_WINDOW 10000 Default Paging Transmission Window for eDRX support if not specified in the device profile.
transport.coap.dtls.enabled COAP_DTLS_ENABLED false Enable/disable DTLS 1.2 support
transport.coap.dtls.bind_address COAP_DTLS_BIND_ADDRESS 0.0.0.0 CoAP DTLS bind address
transport.coap.dtls.bind_port COAP_DTLS_BIND_PORT 5684 CoAP DTLS bind port
transport.coap.dtls.credentials.type COAP_DTLS_CREDENTIALS_TYPE PEM Server credentials type (PEM - pem certificate file; KEYSTORE - java keystore)
transport.coap.dtls.credentials.pem.cert_file COAP_DTLS_PEM_CERT coapserver.pem Path to the server certificate file (holds server certificate or certificate chain, may include server private key)
transport.coap.dtls.credentials.pem.key_file COAP_DTLS_PEM_KEY coapserver_key.pem Path to the server certificate private key file (optional)
transport.coap.dtls.credentials.pem.key_password COAP_DTLS_PEM_KEY_PASSWORD server_key_password Server certificate private key password (optional)
transport.coap.dtls.credentials.keystore.type COAP_DTLS_KEY_STORE_TYPE JKS Type of the key store
transport.coap.dtls.credentials.keystore.store_file COAP_DTLS_KEY_STORE coapserver.jks Path to the key store that holds the SSL certificate
transport.coap.dtls.credentials.keystore.store_password COAP_DTLS_KEY_STORE_PASSWORD server_ks_password Password used to access the key store
transport.coap.dtls.credentials.keystore.key_alias COAP_DTLS_KEY_ALIAS serveralias Key alias
transport.coap.dtls.credentials.keystore.key_password COAP_DTLS_KEY_PASSWORD server_key_password Password used to access the key
transport.coap.dtls.x509.skip_validity_check_for_client_cert TB_COAP_X509_DTLS_SKIP_VALIDITY_CHECK_FOR_CLIENT_CERT false Skip check of client certificate validity.
transport.coap.dtls.x509.dtls_session_inactivity_timeout TB_COAP_X509_DTLS_SESSION_INACTIVITY_TIMEOUT 86400000 Inactivity timeout of DTLS session. Used to cleanup cache.
transport.coap.dtls.x509.dtls_session_report_timeout TB_COAP_X509_DTLS_SESSION_REPORT_TIMEOUT 1800000 Interval of periodic eviction of the timed-out DTLS sessions.
Local LwM2M transport parameters
ParameterEnvironment VariableDefault ValueDescription
transport.lwm2m.enabled LWM2M_ENABLED true Enable/disable lvm2m transport protocol
ParameterEnvironment VariableDefault ValueDescription
transport.lwm2m.server.id LWM2M_SERVER_ID 123 LwM2M Server ID
transport.lwm2m.server.bind_address LWM2M_BIND_ADDRESS 0.0.0.0 LwM2M server bind address. Bind to all interfaces by default.
transport.lwm2m.server.bind_port LWM2M_BIND_PORT 5685 LwM2M server bind port.
transport.lwm2m.server.security.bind_address LWM2M_SECURITY_BIND_ADDRESS 0.0.0.0 LwM2M server bind address for DTLS. Bind to all interfaces by default.
transport.lwm2m.server.security.bind_port LWM2M_SECURITY_BIND_PORT 5686 LwM2M server bind port for DTLS.
transport.lwm2m.server.security.credentials.enabled LWM2M_SERVER_CREDENTIALS_ENABLED true Whether to enable LWM2M server X509 Certificate/RPK support
transport.lwm2m.server.security.credentials.type LWM2M_SERVER_CREDENTIALS_TYPE PEM Server credentials type (PEM - pem certificate file; KEYSTORE - java keystore)
transport.lwm2m.server.security.credentials.pem.cert_file LWM2M_SERVER_PEM_CERT lwm2mserver.pem Path to the server certificate file (holds server certificate or certificate chain, may include server private key)
transport.lwm2m.server.security.credentials.pem.key_file LWM2M_SERVER_PEM_KEY lwm2mserver_key.pem Path to the server certificate private key file (optional)
transport.lwm2m.server.security.credentials.pem.key_password LWM2M_SERVER_PEM_KEY_PASSWORD server_key_password Server certificate private key password (optional)
transport.lwm2m.server.security.credentials.keystore.type LWM2M_SERVER_KEY_STORE_TYPE JKS Type of the key store
transport.lwm2m.server.security.credentials.keystore.store_file LWM2M_SERVER_KEY_STORE lwm2mserver.jks Path to the key store that holds the SSL certificate
transport.lwm2m.server.security.credentials.keystore.store_password LWM2M_SERVER_KEY_STORE_PASSWORD server_ks_password Password used to access the key store
transport.lwm2m.server.security.credentials.keystore.key_alias LWM2M_SERVER_KEY_ALIAS server Key alias
transport.lwm2m.server.security.credentials.keystore.key_password LWM2M_SERVER_KEY_PASSWORD server_ks_password Password used to access the key
transport.lwm2m.server.security.skip_validity_check_for_client_cert TB_LWM2M_SERVER_SECURITY_SKIP_VALIDITY_CHECK_FOR_CLIENT_CERT false Only Certificate_x509
transport.lwm2m.bootstrap.enable LWM2M_ENABLED_BS true Enable/disable Bootstrap Server
transport.lwm2m.bootstrap.id LWM2M_SERVER_ID_BS 111 This is:
* Default value in Lwm2mClient after start in mode Bootstrap for the object : name "LWM2M Security" field: "Short Server ID" (deviceProfile: Bootstrap.BOOTSTRAP SERVER.Short ID)
transport.lwm2m.bootstrap.bind_address LWM2M_BS_BIND_ADDRESS 0.0.0.0 LwM2M bootstrap server bind address. Bind to all interfaces by default.
transport.lwm2m.bootstrap.bind_port LWM2M_BS_BIND_PORT 5687 LwM2M bootstrap server bind port
transport.lwm2m.bootstrap.security.bind_address LWM2M_BS_SECURITY_BIND_ADDRESS 0.0.0.0 LwM2M bootstrap server bind address for DTLS. Bind to all interfaces by default.
transport.lwm2m.bootstrap.security.bind_port LWM2M_BS_SECURITY_BIND_PORT 5688 LwM2M bootstrap server bind port for DTLS.
transport.lwm2m.bootstrap.security.credentials.enabled LWM2M_BS_CREDENTIALS_ENABLED true Whether to enable LWM2M bootstrap server X509 Certificate/RPK support
transport.lwm2m.bootstrap.security.credentials.type LWM2M_BS_CREDENTIALS_TYPE PEM Server credentials type (PEM - pem certificate file; KEYSTORE - java keystore)
transport.lwm2m.bootstrap.security.credentials.pem.cert_file LWM2M_BS_PEM_CERT lwm2mserver.pem Path to the server certificate file (holds server certificate or certificate chain, may include server private key)
transport.lwm2m.bootstrap.security.credentials.pem.key_file LWM2M_BS_PEM_KEY lwm2mserver_key.pem Path to the server certificate private key file (optional)
transport.lwm2m.bootstrap.security.credentials.pem.key_password LWM2M_BS_PEM_KEY_PASSWORD server_key_password Server certificate private key password (optional)
transport.lwm2m.bootstrap.security.credentials.keystore.type LWM2M_BS_KEY_STORE_TYPE JKS Type of the key store
transport.lwm2m.bootstrap.security.credentials.keystore.store_file LWM2M_BS_KEY_STORE lwm2mserver.jks Path to the key store that holds the SSL certificate
transport.lwm2m.bootstrap.security.credentials.keystore.store_password LWM2M_BS_KEY_STORE_PASSWORD server_ks_password Password used to access the key store
transport.lwm2m.bootstrap.security.credentials.keystore.key_alias LWM2M_BS_KEY_ALIAS bootstrap Key alias
transport.lwm2m.bootstrap.security.credentials.keystore.key_password LWM2M_BS_KEY_PASSWORD server_ks_password Password used to access the key
transport.lwm2m.security.trust-credentials.enabled LWM2M_TRUST_CREDENTIALS_ENABLED true Whether to load X509 trust certificates
transport.lwm2m.security.trust-credentials.type LWM2M_TRUST_CREDENTIALS_TYPE PEM Trust certificates store type (PEM - pem certificates file; KEYSTORE - java keystore)
transport.lwm2m.security.trust-credentials.pem.cert_file LWM2M_TRUST_PEM_CERT lwm2mserver.pem Path to the certificates file (holds trust certificates)
transport.lwm2m.security.trust-credentials.keystore.type LWM2M_TRUST_KEY_STORE_TYPE JKS Type of the key store
transport.lwm2m.security.trust-credentials.keystore.store_file LWM2M_TRUST_KEY_STORE lwm2mserver.jks Path to the key store that holds the X509 certificates
transport.lwm2m.security.trust-credentials.keystore.store_password LWM2M_TRUST_KEY_STORE_PASSWORD server_ks_password Password used to access the key store
transport.lwm2m.security.recommended_ciphers LWM2M_RECOMMENDED_CIPHERS false Set usage of recommended cipher suites.
* Params DTLS Connector config:
-- recommendedCipherSuitesOnly = true allow only recommended cipher suites,
-- recommendedCipherSuitesOnly = false, also allow not recommended cipher suites.
transport.lwm2m.security.recommended_supported_groups LWM2M_RECOMMENDED_SUPPORTED_GROUPS true Set usage of recommended supported groups (curves).
* Params DTLS Connector config:
-- recommendedSupportedGroupsOnly = true allow only recommended supported groups,
-- recommendedSupportedGroupsOnly = false, also allow not recommended supported groups. Default value is true
transport.lwm2m.timeout LWM2M_TIMEOUT 120000 Timeout of LwM2M operation
transport.lwm2m.uplink_pool_size LWM2M_UPLINK_POOL_SIZE 10 Thread pool size for processing of the LwM2M uplinks
transport.lwm2m.downlink_pool_size LWM2M_DOWNLINK_POOL_SIZE 10 Thread pool size for processing of the LwM2M downlinks
transport.lwm2m.ota_pool_size LWM2M_OTA_POOL_SIZE 10 Thread pool size for processing of the OTA updates
transport.lwm2m.clean_period_in_sec LWM2M_CLEAN_PERIOD_IN_SEC 2 Period of cleanup for the registrations in store
transport.lwm2m.redis.enabled LWM2M_REDIS_ENABLED false Enable/disable Redis for lvm2m transport
Local SNMP transport parameters
ParameterEnvironment VariableDefault ValueDescription
transport.snmp.enabled SNMP_ENABLED true Enable/disable SNMP transport protocol
ParameterEnvironment VariableDefault ValueDescription
transport.snmp.response_processing.parallelism_level SNMP_RESPONSE_PROCESSING_PARALLELISM_LEVEL 20 Parallelism level for executor (workStealingPool) that is responsible for handling responses from SNMP devices
transport.snmp.underlying_protocol SNMP_UNDERLYING_PROTOCOL udp To configure SNMP to work over UDP or TCP

Edges parameters

ParameterEnvironment VariableDefault ValueDescription
edges.enabled EDGES_ENABLED true Enable/disable Edge instance
edges.rpc.port EDGES_RPC_PORT 7070 RPC port
edges.rpc.client_max_keep_alive_time_sec EDGES_RPC_CLIENT_MAX_KEEP_ALIVE_TIME_SEC 300
edges.rpc.ssl.enabled EDGES_RPC_SSL_ENABLED false Enable/disable SSL support
edges.rpc.ssl.cert EDGES_RPC_SSL_CERT certChainFile.pem
edges.rpc.ssl.private_key EDGES_RPC_SSL_PRIVATE_KEY privateKeyFile.pem
edges.rpc.max_inbound_message_size EDGES_RPC_MAX_INBOUND_MESSAGE_SIZE 4194304
edges.storage.max_read_records_count EDGES_STORAGE_MAX_READ_RECORDS_COUNT 50
edges.storage.no_read_records_sleep EDGES_NO_READ_RECORDS_SLEEP 1000
edges.storage.sleep_between_batches EDGES_SLEEP_BETWEEN_BATCHES 1000
edges.scheduler_pool_size EDGES_SCHEDULER_POOL_SIZE 1
edges.send_scheduler_pool_size EDGES_SEND_SCHEDULER_POOL_SIZE 1
edges.grpc_callback_thread_pool_size EDGES_GRPC_CALLBACK_POOL_SIZE 1
edges.edge_events_ttl EDGES_EDGE_EVENTS_TTL 0
edges.state.persistToTelemetry EDGES_PERSIST_STATE_TO_TELEMETRY false

Swagger parameters

ParameterEnvironment VariableDefault ValueDescription
swagger.api_path_regex SWAGGER_API_PATH_REGEX /api/.* General swagger parameters
swagger.security_path_regex SWAGGER_SECURITY_PATH_REGEX /api/.* General swagger parameters
swagger.non_security_path_regex SWAGGER_NON_SECURITY_PATH_REGEX /api/(?:noauth|v1)/.* General swagger parameters
swagger.title SWAGGER_TITLE ThingsBoard REST API The title on the API doc UI page
swagger.description SWAGGER_DESCRIPTION ThingsBoard open-source IoT platform REST API documentation. The description on the API doc UI page
swagger.contact.name SWAGGER_CONTACT_NAME ThingsBoard team The contact name on the API doc UI page
swagger.contact.url SWAGGER_CONTACT_URL https://thingsboard.io The contact URL on the API doc UI page
swagger.contact.email SWAGGER_CONTACT_EMAIL info@thingsboard.io The contact email on the API doc UI page
swagger.license.title SWAGGER_LICENSE_TITLE Apache License Version 2.0 The license title on the API doc UI page
swagger.license.url SWAGGER_LICENSE_URL https://github.com/thingsboard/thingsboard/blob/master/LICENSE Link to the license body on the API doc UI page
swagger.version SWAGGER_VERSION The version of the API doc to display. Default to the package version.

Queue parameters

ParameterEnvironment VariableDefault ValueDescription
queue.type TB_QUEUE_TYPE in-memory In-memory or kafka (Apache Kafka) or aws-sqs (AWS SQS) or pubsub (PubSub) or service-bus (Azure Service Bus) or rabbitmq (RabbitMQ)
queue.in_memory.stats.print-interval-ms TB_QUEUE_IN_MEMORY_STATS_PRINT_INTERVAL_MS 60000 For debug lvl
ParameterEnvironment VariableDefault ValueDescription
queue.kafka.bootstrap.servers TB_KAFKA_SERVERS localhost:9092 Kafka Bootstrap servers list as a connection string for kafka client
queue.kafka.acks TB_KAFKA_ACKS all General Kafka client setting
queue.kafka.retries TB_KAFKA_RETRIES 1 General Kafka client setting
queue.kafka.compression TB_KAFKA_COMPRESSION_TYPE none Compression of the Kafka messages: none or gzip
queue.kafka.batch.size TB_KAFKA_BATCH_SIZE 16384 General Kafka client setting
queue.kafka.linger.ms TB_KAFKA_LINGER_MS 1 General Kafka client setting
queue.kafka.max.request.size TB_KAFKA_MAX_REQUEST_SIZE 1048576 General Kafka client setting
queue.kafka.max.in.flight.requests.per.connection TB_KAFKA_MAX_IN_FLIGHT_REQUESTS_PER_CONNECTION 5 General Kafka client setting
queue.kafka.buffer.memory TB_BUFFER_MEMORY 33554432 General Kafka client setting
queue.kafka.replication_factor TB_QUEUE_KAFKA_REPLICATION_FACTOR 1 General Kafka client setting
queue.kafka.max_poll_interval_ms TB_QUEUE_KAFKA_MAX_POLL_INTERVAL_MS 300000 General Kafka client setting
queue.kafka.max_poll_records TB_QUEUE_KAFKA_MAX_POLL_RECORDS 8192 General Kafka client setting
queue.kafka.max_partition_fetch_bytes TB_QUEUE_KAFKA_MAX_PARTITION_FETCH_BYTES 16777216 General Kafka client setting
queue.kafka.fetch_max_bytes TB_QUEUE_KAFKA_FETCH_MAX_BYTES 134217728 General Kafka client setting
queue.kafka.use_confluent_cloud TB_QUEUE_KAFKA_USE_CONFLUENT_CLOUD false Enable to connect to Confluent Cloud.
queue.kafka.confluent.ssl.algorithm TB_QUEUE_KAFKA_CONFLUENT_SSL_ALGORITHM https Confluent Cloud connection settings
queue.kafka.confluent.sasl.mechanism TB_QUEUE_KAFKA_CONFLUENT_SASL_MECHANISM PLAIN Confluent Cloud connection settings
queue.kafka.confluent.sasl.config TB_QUEUE_KAFKA_CONFLUENT_SASL_JAAS_CONFIG Confluent Cloud connection settings
queue.kafka.confluent.security.protocol TB_QUEUE_KAFKA_CONFLUENT_SECURITY_PROTOCOL SASL_SSL Confluent Cloud connection settings
queue.kafka.consumer-properties-per-topic.tb_ota_package.key max.poll.records Example of specific consumer properties key per topic
queue.kafka.consumer-properties-per-topic.tb_ota_package.value TB_QUEUE_KAFKA_OTA_MAX_POLL_RECORDS 10 Example of specific consumer properties value per topic
queue.kafka.other.key request.timeout.ms refer to https://docs.confluent.io/platform/current/installation/configuration/producer-configs.html#producerconfigs_request.timeout.ms
queue.kafka.other.value TB_QUEUE_KAFKA_REQUEST_TIMEOUT_MS 30000 (30 seconds)
queue.kafka.other.key session.timeout.ms refer to https://docs.confluent.io/platform/current/installation/configuration/consumer-configs.html#consumerconfigs_session.timeout.ms
queue.kafka.other.value TB_QUEUE_KAFKA_SESSION_TIMEOUT_MS 10000 (10 seconds)
queue.kafka.topic-properties.rule-engine TB_QUEUE_KAFKA_RE_TOPIC_PROPERTIES retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 Kafka properties for Rule Engine topics
queue.kafka.topic-properties.core TB_QUEUE_KAFKA_CORE_TOPIC_PROPERTIES retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 Kafka properties for Core topics
queue.kafka.topic-properties.transport-api TB_QUEUE_KAFKA_TA_TOPIC_PROPERTIES retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 Kafka properties for Transport Api topics
queue.kafka.topic-properties.notifications TB_QUEUE_KAFKA_NOTIFICATIONS_TOPIC_PROPERTIES retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 Kafka properties for Notifications topics
queue.kafka.topic-properties.js-executor TB_QUEUE_KAFKA_JE_TOPIC_PROPERTIES retention.ms:604800000;segment.bytes:26214400;retention.bytes:104857600;partitions:100;min.insync.replicas:1 Kafka properties for JS Executor topics
queue.kafka.topic-properties.ota-updates TB_QUEUE_KAFKA_OTA_TOPIC_PROPERTIES retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:10;min.insync.replicas:1 Kafka properties for OTA updates topic
queue.kafka.consumer-stats.enabled TB_QUEUE_KAFKA_CONSUMER_STATS_ENABLED true Prints lag between consumer group offset and last messages offset in Kafka topics
queue.kafka.consumer-stats.print-interval-ms TB_QUEUE_KAFKA_CONSUMER_STATS_MIN_PRINT_INTERVAL_MS 60000 Statistics printing interval for Kafka's consumer-groups stats
queue.kafka.consumer-stats.kafka-response-timeout-ms TB_QUEUE_KAFKA_CONSUMER_STATS_RESPONSE_TIMEOUT_MS 1000 Time to wait for the stats-loading requests to Kafka to finish
queue.aws_sqs.use_default_credential_provider_chain TB_QUEUE_AWS_SQS_USE_DEFAULT_CREDENTIAL_PROVIDER_CHAIN false Use default credentials provider for AWS SQS
queue.aws_sqs.access_key_id TB_QUEUE_AWS_SQS_ACCESS_KEY_ID YOUR_KEY Access key ID from AWS IAM user
queue.aws_sqs.secret_access_key TB_QUEUE_AWS_SQS_SECRET_ACCESS_KEY YOUR_SECRET Secret access key from AWS IAM user
queue.aws_sqs.region TB_QUEUE_AWS_SQS_REGION YOUR_REGION Region from AWS account
queue.aws_sqs.threads_per_topic TB_QUEUE_AWS_SQS_THREADS_PER_TOPIC 1 Number of threads per each AWS SQS queue in consumer
queue.aws_sqs.queue-properties.rule-engine TB_QUEUE_AWS_SQS_RE_QUEUE_PROPERTIES VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
queue.aws_sqs.queue-properties.core TB_QUEUE_AWS_SQS_CORE_QUEUE_PROPERTIES VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
queue.aws_sqs.queue-properties.transport-api TB_QUEUE_AWS_SQS_TA_QUEUE_PROPERTIES VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
queue.aws_sqs.queue-properties.notifications TB_QUEUE_AWS_SQS_NOTIFICATIONS_QUEUE_PROPERTIES VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
queue.aws_sqs.queue-properties.js-executor TB_QUEUE_AWS_SQS_JE_QUEUE_PROPERTIES VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
queue.pubsub.project_id TB_QUEUE_PUBSUB_PROJECT_ID YOUR_PROJECT_ID Project Id from google cloud
queue.pubsub.service_account TB_QUEUE_PUBSUB_SERVICE_ACCOUNT YOUR_SERVICE_ACCOUNT API Credentials in json format
queue.pubsub.max_msg_size TB_QUEUE_PUBSUB_MAX_MSG_SIZE 1048576 in bytes
queue.pubsub.max_messages TB_QUEUE_PUBSUB_MAX_MESSAGES 1000 Number of messages per a consumer
queue.pubsub.queue-properties.rule-engine TB_QUEUE_PUBSUB_RE_QUEUE_PROPERTIES ackDeadlineInSec:30;messageRetentionInSec:604800 Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consume again
queue.pubsub.queue-properties.core TB_QUEUE_PUBSUB_CORE_QUEUE_PROPERTIES ackDeadlineInSec:30;messageRetentionInSec:604800 Pub/Sub properties for Core subscribers, messages which will commit after ackDeadlineInSec period can be consume again
queue.pubsub.queue-properties.transport-api TB_QUEUE_PUBSUB_TA_QUEUE_PROPERTIES ackDeadlineInSec:30;messageRetentionInSec:604800 Pub/Sub properties for Transport Api subscribers, messages which will commit after ackDeadlineInSec period can be consume again
queue.pubsub.queue-properties.notifications TB_QUEUE_PUBSUB_NOTIFICATIONS_QUEUE_PROPERTIES ackDeadlineInSec:30;messageRetentionInSec:604800 Pub/Sub properties for Notifications subscribers, messages which will commit after ackDeadlineInSec period can be consume again
queue.pubsub.queue-properties.js-executor TB_QUEUE_PUBSUB_JE_QUEUE_PROPERTIES ackDeadlineInSec:30;messageRetentionInSec:604800 Pub/Sub properties for Js Executor subscribers, messages which will commit after ackDeadlineInSec period can be consume again
queue.service_bus.namespace_name TB_QUEUE_SERVICE_BUS_NAMESPACE_NAME YOUR_NAMESPACE_NAME Azure namespace is a scoping container for all messaging components
queue.service_bus.sas_key_name TB_QUEUE_SERVICE_BUS_SAS_KEY_NAME YOUR_SAS_KEY_NAME Azure Service Bus Shared Access Signatures key name
queue.service_bus.sas_key TB_QUEUE_SERVICE_BUS_SAS_KEY YOUR_SAS_KEY Azure Service Bus Shared Access Signatures key
queue.service_bus.max_messages TB_QUEUE_SERVICE_BUS_MAX_MESSAGES 1000 Number of messages per a consumer
queue.service_bus.queue-properties.rule-engine TB_QUEUE_SERVICE_BUS_RE_QUEUE_PROPERTIES lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 Azure Service Bus properties for Rule Engine queues
queue.service_bus.queue-properties.core TB_QUEUE_SERVICE_BUS_CORE_QUEUE_PROPERTIES lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 Azure Service Bus properties for Core queues
queue.service_bus.queue-properties.transport-api TB_QUEUE_SERVICE_BUS_TA_QUEUE_PROPERTIES lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 Azure Service Bus properties for Transport Api queues
queue.service_bus.queue-properties.notifications TB_QUEUE_SERVICE_BUS_NOTIFICATIONS_QUEUE_PROPERTIES lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 Azure Service Bus properties for Notifications queues
queue.service_bus.queue-properties.js-executor TB_QUEUE_SERVICE_BUS_JE_QUEUE_PROPERTIES lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 Azure Service Bus properties for Js Executor queues
queue.rabbitmq.exchange_name TB_QUEUE_RABBIT_MQ_EXCHANGE_NAME Default empty
queue.rabbitmq.host TB_QUEUE_RABBIT_MQ_HOST localhost RabbitMQ host used to establish connection
queue.rabbitmq.port TB_QUEUE_RABBIT_MQ_PORT 5672 RabbitMQ host used to establish connection
queue.rabbitmq.virtual_host TB_QUEUE_RABBIT_MQ_VIRTUAL_HOST / Virtual hosts provide logical grouping and separation of resources
queue.rabbitmq.password TB_QUEUE_RABBIT_MQ_PASSWORD YOUR_PASSWORD User password for RabbitMQ user account
queue.rabbitmq.automatic_recovery_enabled TB_QUEUE_RABBIT_MQ_AUTOMATIC_RECOVERY_ENABLED false Network connection between clients and RabbitMQ nodes can fail. RabbitMQ Java client supports automatic recovery of connections and topology (queues, exchanges, bindings, and consumers)
queue.rabbitmq.connection_timeout TB_QUEUE_RABBIT_MQ_CONNECTION_TIMEOUT 60000 The connection timeout for the RabbitMQ connection factory
queue.rabbitmq.handshake_timeout TB_QUEUE_RABBIT_MQ_HANDSHAKE_TIMEOUT 10000 RabbitMQ has a timeout for connection handshake. When clients run in heavily constrained environments, it may be necessary to increase the timeout
queue.rabbitmq.queue-properties.rule-engine TB_QUEUE_RABBIT_MQ_RE_QUEUE_PROPERTIES x-max-length-bytes:1048576000;x-message-ttl:604800000 RabbitMQ properties for Rule Engine queues
queue.rabbitmq.queue-properties.core TB_QUEUE_RABBIT_MQ_CORE_QUEUE_PROPERTIES x-max-length-bytes:1048576000;x-message-ttl:604800000 RabbitMQ properties for Core queues
queue.rabbitmq.queue-properties.transport-api TB_QUEUE_RABBIT_MQ_TA_QUEUE_PROPERTIES x-max-length-bytes:1048576000;x-message-ttl:604800000 RabbitMQ properties for Transport Api queues
queue.rabbitmq.queue-properties.notifications TB_QUEUE_RABBIT_MQ_NOTIFICATIONS_QUEUE_PROPERTIES x-max-length-bytes:1048576000;x-message-ttl:604800000 RabbitMQ properties for Notifications queues
queue.rabbitmq.queue-properties.js-executor TB_QUEUE_RABBIT_MQ_JE_QUEUE_PROPERTIES x-max-length-bytes:1048576000;x-message-ttl:604800000 RabbitMQ properties for Js Executor queues
queue.partitions.hash_function_name TB_QUEUE_PARTITIONS_HASH_FUNCTION_NAME murmur3_128 Name of hash function used for consistent hash ring in Cluster Mode. See architecture docs for more details. murmur3_32, murmur3_128 or sha256
queue.transport_api.requests_topic TB_QUEUE_TRANSPORT_API_REQUEST_TOPIC tb_transport.api.requests Topic used to consume api requests from transport microservices
queue.transport_api.responses_topic TB_QUEUE_TRANSPORT_API_RESPONSE_TOPIC tb_transport.api.responses Topic used to produce api responses to transport microservices
queue.transport_api.max_pending_requests TB_QUEUE_TRANSPORT_MAX_PENDING_REQUESTS 10000 Maximum pending api requests from transport microservices to be handled by server
queue.transport_api.max_requests_timeout TB_QUEUE_TRANSPORT_MAX_REQUEST_TIMEOUT 10000 Maximum timeout in milliseconds to handle api request from transport microservice by server
queue.transport_api.max_callback_threads TB_QUEUE_TRANSPORT_MAX_CALLBACK_THREADS 100 Amount of threads used to invoke callbacks
queue.transport_api.request_poll_interval TB_QUEUE_TRANSPORT_REQUEST_POLL_INTERVAL_MS 25 Interval in milliseconds to poll api requests from transport microservices
queue.transport_api.response_poll_interval TB_QUEUE_TRANSPORT_RESPONSE_POLL_INTERVAL_MS 25 Interval in milliseconds to poll api response from transport microservices
queue.core.topic TB_QUEUE_CORE_TOPIC tb_core Topic name for Core microservices
queue.core.poll-interval TB_QUEUE_CORE_POLL_INTERVAL_MS 25 Interval in milliseconds to poll messages by Core microservices
queue.core.partitions TB_QUEUE_CORE_PARTITIONS 10 Amount of partitions used by Core microservices
queue.core.pack-processing-timeout TB_QUEUE_CORE_PACK_PROCESSING_TIMEOUT_MS 2000 Timeout for processing a message pack by Core microservices
queue.core.ota.topic TB_QUEUE_CORE_OTA_TOPIC tb_ota_package The topic for queue of OTA updates
queue.core.ota.pack-interval-ms TB_QUEUE_CORE_OTA_PACK_INTERVAL_MS 60000 The interval of processing the OTA updates for devices. Used to avoid any harm to network due to many parallel OTA updates
queue.core.ota.pack-size TB_QUEUE_CORE_OTA_PACK_SIZE 100 The size of OTA updates notifications fetched from the queue. The queue stores pairs of firmware and device ids.
queue.core.usage-stats-topic TB_QUEUE_US_TOPIC tb_usage_stats The parameter to store usage statistics
queue.core.stats.enabled TB_QUEUE_CORE_STATS_ENABLED true Enable/disable statistics for Core microservices
queue.core.stats.print-interval-ms TB_QUEUE_CORE_STATS_PRINT_INTERVAL_MS 60000 Statistics printing interval for Core microservices
queue.js.request_topic REMOTE_JS_EVAL_REQUEST_TOPIC js_eval.requests JS Eval request topic
queue.js.response_topic_prefix REMOTE_JS_EVAL_RESPONSE_TOPIC js_eval.responses JS Eval responses topic prefix that is combined with node id
queue.js.max_pending_requests REMOTE_JS_MAX_PENDING_REQUESTS 10000 JS Eval max pending requests
queue.js.max_eval_requests_timeout REMOTE_JS_MAX_EVAL_REQUEST_TIMEOUT 60000 JS Eval max request timeout
queue.js.max_requests_timeout REMOTE_JS_MAX_REQUEST_TIMEOUT 10000 JS max request timeout
queue.js.response_poll_interval REMOTE_JS_RESPONSE_POLL_INTERVAL_MS 25 JS response poll interval
queue.rule-engine.topic TB_QUEUE_RULE_ENGINE_TOPIC tb_rule_engine Topic name for Rule Engine microservices
queue.rule-engine.poll-interval TB_QUEUE_RULE_ENGINE_POLL_INTERVAL_MS 25 Interval in milliseconds to poll messages by Rule Engine microservices
queue.rule-engine.pack-processing-timeout TB_QUEUE_RULE_ENGINE_PACK_PROCESSING_TIMEOUT_MS 2000 Timeout for processing a message pack
queue.rule-engine.stats.enabled TB_QUEUE_RULE_ENGINE_STATS_ENABLED true Enable/disable statistics for Rule Engine microservices
queue.rule-engine.stats.print-interval-ms TB_QUEUE_RULE_ENGINE_STATS_PRINT_INTERVAL_MS 60000 Statistics printing interval for Rule Engine microservices
queue.transport.notifications_topic TB_QUEUE_TRANSPORT_NOTIFICATIONS_TOPIC tb_transport.notifications Transport notifications topic
queue.transport.poll_interval TB_QUEUE_TRANSPORT_NOTIFICATIONS_POLL_INTERVAL_MS 25 Interval in milliseconds to poll messages by Core microservices
queue.vc.topic TB_QUEUE_VC_TOPIC tb_version_control Topic for storing Version Control synchronization tasks
queue.vc.partitions TB_QUEUE_VC_PARTITIONS 10 Amount of partitions used by Version Control microservices
queue.vc.poll-interval TB_QUEUE_VC_INTERVAL_MS 10 Interval in milliseconds to poll messages by Version Control microservices
queue.vc.pack-processing-timeout TB_QUEUE_VC_PACK_PROCESSING_TIMEOUT_MS 10 Timeout for processing a message pack

ThingsBoard event parameters

ParameterEnvironment VariableDefault ValueDescription
event.debug.max-symbols TB_MAX_DEBUG_EVENT_SYMBOLS 4096 Maximum number of symbols per debug event. The event content will be truncated if needed.

ThingsBoard service parameters

ParameterEnvironment VariableDefault ValueDescription
service.type TB_SERVICE_TYPE monolith Allowed values: monolith or tb-core or tb-rule-engine
service.id TB_SERVICE_ID Unique id for this service (autogenerated if empty)
service.tenant_id TB_SERVICE_TENANT_ID Empty or specific tenant id

ThingsBoard metrics parameters

ParameterEnvironment VariableDefault ValueDescription
metrics.enabled METRICS_ENABLED false Enable/disable actuator metrics
metrics.timer.percentiles METRICS_TIMER_PERCENTILES 0.5 Metrics percentiles returned by actuator for timer metrics. List of double values (divided by ,)
management.endpoints.web.exposure.include METRICS_ENDPOINTS_EXPOSE info Expose metrics endpoint (use value 'prometheus' to enable prometheus metrics)

Local Version Control parameters

ParameterEnvironment VariableDefault ValueDescription
vc.thread_pool_size TB_VC_POOL_SIZE 2 Size of the thread pool for processing the synchronization tasks
vc.git.io_pool_size TB_VC_GIT_POOL_SIZE 3 Size of the thread pool for processing IO operations related to Git
vc.git.repositories-folder TB_VC_GIT_REPOSITORIES_FOLDER ${java.io.tmpdir}/repositories Folder for storing the GIT repositories

HTTP Transport Parameters

Server Parameters

ParameterEnvironment VariableDefault ValueDescription
server.address HTTP_BIND_ADDRESS 0.0.0.0 HTTP Server bind address
server.port HTTP_BIND_PORT 8081 HTTP Server bind port
server.ssl.enabled SSL_ENABLED false Enable/disable SSL support
server.ssl.credentials.type SSL_CREDENTIALS_TYPE PEM Server credentials type (PEM - pem certificate file; KEYSTORE - java keystore)
server.ssl.credentials.pem.cert_file SSL_PEM_CERT server.pem Path to the server certificate file (holds server certificate or certificate chain, may include server private key)
server.ssl.credentials.pem.key_file SSL_PEM_KEY server_key.pem Path to the server certificate private key file (optional)
server.ssl.credentials.pem.key_password SSL_PEM_KEY_PASSWORD server_key_password Server certificate private key password (optional)
server.ssl.credentials.keystore.type SSL_KEY_STORE_TYPE PKCS12 Type of the key store
server.ssl.credentials.keystore.store_file SSL_KEY_STORE classpath:keystore/keystore.p12 Path to the key store that holds the SSL certificate
server.ssl.credentials.keystore.store_password SSL_KEY_STORE_PASSWORD thingsboard Password used to access the key store
server.ssl.credentials.keystore.key_alias SSL_KEY_ALIAS tomcat Alias that identifies the key in the key store
server.ssl.credentials.keystore.key_password SSL_KEY_PASSWORD thingsboard Password used to access the key in the keystore
server.http2 HTTP2_ENABLED true Enable/disable HTTP/2 support (takes effect only if server SSL is enabled)

Zookeeper connection parameters

ParameterEnvironment VariableDefault ValueDescription
zk.enabled ZOOKEEPER_ENABLED false Enable/disable zookeeper discovery service. Used for ThingsBoard cluster
zk.url ZOOKEEPER_URL localhost:2181 Zookeeper connect string
zk.retry_interval_ms ZOOKEEPER_RETRY_INTERVAL_MS 3000 Zookeeper retry interval in milliseconds
zk.connection_timeout_ms ZOOKEEPER_CONNECTION_TIMEOUT_MS 3000 Zookeeper connection timeout in milliseconds
zk.session_timeout_ms ZOOKEEPER_SESSION_TIMEOUT_MS 3000 Zookeeper session timeout in milliseconds
zk.zk_dir ZOOKEEPER_NODES_DIR /thingsboard Name of the directory in zookeeper 'filesystem'

Cache Parameter

ParameterEnvironment VariableDefault ValueDescription
cache.type CACHE_TYPE redis

Redis connection parameters

ParameterEnvironment VariableDefault ValueDescription
redis.connection.type REDIS_CONNECTION_TYPE standalone Redis connection type - standalone or cluster
redis.standalone.host REDIS_HOST localhost Redis connection host
redis.standalone.port REDIS_PORT 6379 Redis connection port
redis.standalone.useDefaultClientConfig REDIS_USE_DEFAULT_CLIENT_CONFIG true Redis connection port
redis.standalone.clientName REDIS_CLIENT_NAME standalone This value may be used only if you used not default ClientConfig
redis.standalone.connectTimeout REDIS_CLIENT_CONNECT_TIMEOUT 30000 This value may be used only if you used not default ClientConfig
redis.standalone.readTimeout REDIS_CLIENT_READ_TIMEOUT 60000 This value may be used only if you used not default ClientConfig
redis.standalone.usePoolConfig REDIS_CLIENT_USE_POOL_CONFIG false This value may be used only if you used not default ClientConfig
redis.cluster.nodes REDIS_NODES Comma-separated list of "host:port" pairs to bootstrap from
redis.cluster.max-redirects REDIS_MAX_REDIRECTS 12 Maximum number of redirects to follow when executing commands across the cluster
redis.cluster.useDefaultPoolConfig REDIS_USE_DEFAULT_POOL_CONFIG true Use default redis pool configuration. If set to "true", the REDIS_POOL_CONFIG_* properties will be ignored.
redis.db REDIS_DB 0 Redis database index
redis.password REDIS_PASSWORD Redis database password
redis.pool_config.maxTotal REDIS_POOL_CONFIG_MAX_TOTAL 128 General redis pool settings
redis.pool_config.maxIdle REDIS_POOL_CONFIG_MAX_IDLE 128 General redis pool settings
redis.pool_config.minIdle REDIS_POOL_CONFIG_MIN_IDLE 16 General redis pool settings
redis.pool_config.testOnBorrow REDIS_POOL_CONFIG_TEST_ON_BORROW true General redis pool settings
redis.pool_config.testOnReturn REDIS_POOL_CONFIG_TEST_ON_RETURN true General redis pool settings
redis.pool_config.testWhileIdle REDIS_POOL_CONFIG_TEST_WHILE_IDLE true General redis pool settings
redis.pool_config.minEvictableMs REDIS_POOL_CONFIG_MIN_EVICTABLE_MS 60000 General redis pool settings
redis.pool_config.evictionRunsMs REDIS_POOL_CONFIG_EVICTION_RUNS_MS 30000 General redis pool settings
redis.pool_config.maxWaitMills REDIS_POOL_CONFIG_MAX_WAIT_MS 60000 General redis pool settings
redis.pool_config.numberTestsPerEvictionRun REDIS_POOL_CONFIG_NUMBER_TESTS_PER_EVICTION_RUN 3 General redis pool settings
redis.pool_config.blockWhenExhausted REDIS_POOL_CONFIG_BLOCK_WHEN_EXHAUSTED true General redis pool settings

HTTP server parameters

ParameterEnvironment VariableDefault ValueDescription
transport.http.request_timeout HTTP_REQUEST_TIMEOUT 60000 HTTP request processing timeout in milliseconds
transport.http.max_request_timeout HTTP_MAX_REQUEST_TIMEOUT 300000 HTTP maximum request processing timeout in milliseconds
ParameterEnvironment VariableDefault ValueDescription
transport.sessions.inactivity_timeout TB_TRANSPORT_SESSIONS_INACTIVITY_TIMEOUT 300000 Inactivity timeout for device session in transport service. The last activity time of the device session is updated if device sends any message, including keepalive messages.
transport.sessions.report_timeout TB_TRANSPORT_SESSIONS_REPORT_TIMEOUT 3000 Interval of periodic check for expired sessions and report of the changes to session last activity time.
transport.rate_limits.enabled TB_TRANSPORT_RATE_LIMITS_ENABLED false
transport.rate_limits.tenant TB_TRANSPORT_RATE_LIMITS_TENANT 1000:1,20000:60
transport.rate_limits.device TB_TRANSPORT_RATE_LIMITS_DEVICE 10:1,300:60
transport.json.type_cast_enabled JSON_TYPE_CAST_ENABLED true Cast String data types to Numeric if possible when processing Telemetry/Attributes JSON
transport.json.max_string_value_length JSON_MAX_STRING_VALUE_LENGTH 0 Maximum allowed string value length when processing Telemetry/Attributes JSON (0 value disables string value length check)
transport.client_side_rpc.timeout CLIENT_SIDE_RPC_TIMEOUT 60000
transport.api_enabled TB_TRANSPORT_API_ENABLED true Enable/disable http/mqtt/coap transport protocols (has higher priority than certain protocol's 'enabled' property)
transport.log.enabled TB_TRANSPORT_LOG_ENABLED true Enable/Disable log of transport messages to telemetry. For example, logging of LwM2M registration update.
transport.log.max_length TB_TRANSPORT_LOG_MAX_LENGTH 1024 Maximum length of the log message. The content will be truncated to the specified value if needed.
transport.stats.enabled TB_TRANSPORT_STATS_ENABLED true Enable/Disable collection of transport statistics
transport.stats.print-interval-ms TB_TRANSPORT_STATS_PRINT_INTERVAL_MS 60000 Interval of transport statistics logging.

Queue parameters

ParameterEnvironment VariableDefault ValueDescription
queue.type TB_QUEUE_TYPE kafka In-memory or kafka (Apache Kafka) or aws-sqs (AWS SQS) or pubsub (PubSub) or service-bus (Azure Service Bus) or rabbitmq (RabbitMQ)
ParameterEnvironment VariableDefault ValueDescription
queue.kafka.bootstrap.servers TB_KAFKA_SERVERS localhost:9092 Kafka Bootstrap servers list as a connection string for kafka client
queue.kafka.acks TB_KAFKA_ACKS all General Kafka client setting
queue.kafka.retries TB_KAFKA_RETRIES 1 General Kafka client setting
queue.kafka.compression TB_KAFKA_COMPRESSION_TYPE none Compression of the Kafka messages: none or gzip
queue.kafka.batch.size TB_KAFKA_BATCH_SIZE 16384 General Kafka client setting
queue.kafka.linger.ms TB_KAFKA_LINGER_MS 1 General Kafka client setting
queue.kafka.max.request.size TB_KAFKA_MAX_REQUEST_SIZE 1048576 General Kafka client setting
queue.kafka.max.in.flight.requests.per.connection TB_KAFKA_MAX_IN_FLIGHT_REQUESTS_PER_CONNECTION 5 General Kafka client setting
queue.kafka.buffer.memory TB_BUFFER_MEMORY 33554432 General Kafka client setting
queue.kafka.replication_factor TB_QUEUE_KAFKA_REPLICATION_FACTOR 1 General Kafka client setting
queue.kafka.max_poll_interval_ms TB_QUEUE_KAFKA_MAX_POLL_INTERVAL_MS 300000 General Kafka client setting
queue.kafka.max_poll_records TB_QUEUE_KAFKA_MAX_POLL_RECORDS 8192 General Kafka client setting
queue.kafka.max_partition_fetch_bytes TB_QUEUE_KAFKA_MAX_PARTITION_FETCH_BYTES 16777216 General Kafka client setting
queue.kafka.fetch_max_bytes TB_QUEUE_KAFKA_FETCH_MAX_BYTES 134217728 General Kafka client setting
queue.kafka.use_confluent_cloud TB_QUEUE_KAFKA_USE_CONFLUENT_CLOUD false Enable to connect to Confluent Cloud.
queue.kafka.confluent.ssl.algorithm TB_QUEUE_KAFKA_CONFLUENT_SSL_ALGORITHM https Confluent Cloud connection settings
queue.kafka.confluent.sasl.mechanism TB_QUEUE_KAFKA_CONFLUENT_SASL_MECHANISM PLAIN Confluent Cloud connection settings
queue.kafka.confluent.sasl.config TB_QUEUE_KAFKA_CONFLUENT_SASL_JAAS_CONFIG Confluent Cloud connection settings
queue.kafka.confluent.security.protocol TB_QUEUE_KAFKA_CONFLUENT_SECURITY_PROTOCOL SASL_SSL Confluent Cloud connection settings
queue.kafka.consumer-properties-per-topic.tb_ota_package.key max.poll.records Example of specific consumer properties key per topic
queue.kafka.consumer-properties-per-topic.tb_ota_package.value TB_QUEUE_KAFKA_OTA_MAX_POLL_RECORDS 10 Example of specific consumer properties value per topic
queue.kafka.other.key request.timeout.ms refer to https://docs.confluent.io/platform/current/installation/configuration/producer-configs.html#producerconfigs_request.timeout.ms
queue.kafka.other.value TB_QUEUE_KAFKA_REQUEST_TIMEOUT_MS 30000 (30 seconds)
queue.kafka.other.key session.timeout.ms refer to https://docs.confluent.io/platform/current/installation/configuration/consumer-configs.html#consumerconfigs_session.timeout.ms
queue.kafka.other.value TB_QUEUE_KAFKA_SESSION_TIMEOUT_MS 10000 (10 seconds)
queue.kafka.topic-properties.rule-engine TB_QUEUE_KAFKA_RE_TOPIC_PROPERTIES retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 Kafka properties for Rule Engine topics
queue.kafka.topic-properties.core TB_QUEUE_KAFKA_CORE_TOPIC_PROPERTIES retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 Kafka properties for Core topics
queue.kafka.topic-properties.transport-api TB_QUEUE_KAFKA_TA_TOPIC_PROPERTIES retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 Kafka properties for Transport Api topics
queue.kafka.topic-properties.notifications TB_QUEUE_KAFKA_NOTIFICATIONS_TOPIC_PROPERTIES retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 Kafka properties for Notifications topics
queue.kafka.topic-properties.js-executor TB_QUEUE_KAFKA_JE_TOPIC_PROPERTIES retention.ms:604800000;segment.bytes:26214400;retention.bytes:104857600;partitions:100;min.insync.replicas:1 Kafka properties for JS Executor topics
queue.kafka.topic-properties.ota-updates TB_QUEUE_KAFKA_OTA_TOPIC_PROPERTIES retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:10;min.insync.replicas:1 Kafka properties for OTA updates topic
queue.kafka.consumer-stats.enabled TB_QUEUE_KAFKA_CONSUMER_STATS_ENABLED true Prints lag between consumer group offset and last messages offset in Kafka topics
queue.kafka.consumer-stats.print-interval-ms TB_QUEUE_KAFKA_CONSUMER_STATS_MIN_PRINT_INTERVAL_MS 60000 Statistics printing interval for Kafka's consumer-groups stats
queue.kafka.consumer-stats.kafka-response-timeout-ms TB_QUEUE_KAFKA_CONSUMER_STATS_RESPONSE_TIMEOUT_MS 1000 Time to wait for the stats-loading requests to Kafka to finish
queue.aws_sqs.use_default_credential_provider_chain TB_QUEUE_AWS_SQS_USE_DEFAULT_CREDENTIAL_PROVIDER_CHAIN false Use default credentials provider for AWS SQS
queue.aws_sqs.access_key_id TB_QUEUE_AWS_SQS_ACCESS_KEY_ID YOUR_KEY Access key ID from AWS IAM user
queue.aws_sqs.secret_access_key TB_QUEUE_AWS_SQS_SECRET_ACCESS_KEY YOUR_SECRET Secret access key from AWS IAM user
queue.aws_sqs.region TB_QUEUE_AWS_SQS_REGION YOUR_REGION Region from AWS account
queue.aws_sqs.threads_per_topic TB_QUEUE_AWS_SQS_THREADS_PER_TOPIC 1 Number of threads per each AWS SQS queue in consumer
queue.aws_sqs.queue-properties.rule-engine TB_QUEUE_AWS_SQS_RE_QUEUE_PROPERTIES VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
queue.aws_sqs.queue-properties.core TB_QUEUE_AWS_SQS_CORE_QUEUE_PROPERTIES VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
queue.aws_sqs.queue-properties.transport-api TB_QUEUE_AWS_SQS_TA_QUEUE_PROPERTIES VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
queue.aws_sqs.queue-properties.notifications TB_QUEUE_AWS_SQS_NOTIFICATIONS_QUEUE_PROPERTIES VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
queue.aws_sqs.queue-properties.js-executor TB_QUEUE_AWS_SQS_JE_QUEUE_PROPERTIES VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
queue.pubsub.project_id TB_QUEUE_PUBSUB_PROJECT_ID YOUR_PROJECT_ID Project Id from google cloud
queue.pubsub.service_account TB_QUEUE_PUBSUB_SERVICE_ACCOUNT YOUR_SERVICE_ACCOUNT API Credentials in json format
queue.pubsub.max_msg_size TB_QUEUE_PUBSUB_MAX_MSG_SIZE 1048576 in bytes
queue.pubsub.max_messages TB_QUEUE_PUBSUB_MAX_MESSAGES 1000 Number of messages per a consumer
queue.pubsub.queue-properties.rule-engine TB_QUEUE_PUBSUB_RE_QUEUE_PROPERTIES ackDeadlineInSec:30;messageRetentionInSec:604800 Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consume again
queue.pubsub.queue-properties.core TB_QUEUE_PUBSUB_CORE_QUEUE_PROPERTIES ackDeadlineInSec:30;messageRetentionInSec:604800 Pub/Sub properties for Core subscribers, messages which will commit after ackDeadlineInSec period can be consume again
queue.pubsub.queue-properties.transport-api TB_QUEUE_PUBSUB_TA_QUEUE_PROPERTIES ackDeadlineInSec:30;messageRetentionInSec:604800 Pub/Sub properties for Transport Api subscribers, messages which will commit after ackDeadlineInSec period can be consume again
queue.pubsub.queue-properties.notifications TB_QUEUE_PUBSUB_NOTIFICATIONS_QUEUE_PROPERTIES ackDeadlineInSec:30;messageRetentionInSec:604800 Pub/Sub properties for Notifications subscribers, messages which will commit after ackDeadlineInSec period can be consume again
queue.pubsub.queue-properties.js-executor TB_QUEUE_PUBSUB_JE_QUEUE_PROPERTIES ackDeadlineInSec:30;messageRetentionInSec:604800 Pub/Sub properties for Js Executor subscribers, messages which will commit after ackDeadlineInSec period can be consume again
queue.service_bus.namespace_name TB_QUEUE_SERVICE_BUS_NAMESPACE_NAME YOUR_NAMESPACE_NAME Azure namespace is a scoping container for all messaging components
queue.service_bus.sas_key_name TB_QUEUE_SERVICE_BUS_SAS_KEY_NAME YOUR_SAS_KEY_NAME Azure Service Bus Shared Access Signatures key name
queue.service_bus.sas_key TB_QUEUE_SERVICE_BUS_SAS_KEY YOUR_SAS_KEY Azure Service Bus Shared Access Signatures key
queue.service_bus.max_messages TB_QUEUE_SERVICE_BUS_MAX_MESSAGES 1000 Number of messages per a consumer
queue.service_bus.queue-properties.rule-engine TB_QUEUE_SERVICE_BUS_RE_QUEUE_PROPERTIES lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 Azure Service Bus properties for Rule Engine queues
queue.service_bus.queue-properties.core TB_QUEUE_SERVICE_BUS_CORE_QUEUE_PROPERTIES lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 Azure Service Bus properties for Core queues
queue.service_bus.queue-properties.transport-api TB_QUEUE_SERVICE_BUS_TA_QUEUE_PROPERTIES lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 Azure Service Bus properties for Transport Api queues
queue.service_bus.queue-properties.notifications TB_QUEUE_SERVICE_BUS_NOTIFICATIONS_QUEUE_PROPERTIES lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 Azure Service Bus properties for Notifications queues
queue.service_bus.queue-properties.js-executor TB_QUEUE_SERVICE_BUS_JE_QUEUE_PROPERTIES lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 Azure Service Bus properties for Js Executor queues
queue.rabbitmq.exchange_name TB_QUEUE_RABBIT_MQ_EXCHANGE_NAME Default empty
queue.rabbitmq.host TB_QUEUE_RABBIT_MQ_HOST localhost RabbitMQ host used to establish connection
queue.rabbitmq.port TB_QUEUE_RABBIT_MQ_PORT 5672 RabbitMQ host used to establish connection
queue.rabbitmq.virtual_host TB_QUEUE_RABBIT_MQ_VIRTUAL_HOST / Virtual hosts provide logical grouping and separation of resources
queue.rabbitmq.password TB_QUEUE_RABBIT_MQ_PASSWORD YOUR_PASSWORD User password for RabbitMQ user account
queue.rabbitmq.automatic_recovery_enabled TB_QUEUE_RABBIT_MQ_AUTOMATIC_RECOVERY_ENABLED false Network connection between clients and RabbitMQ nodes can fail. RabbitMQ Java client supports automatic recovery of connections and topology (queues, exchanges, bindings, and consumers)
queue.rabbitmq.connection_timeout TB_QUEUE_RABBIT_MQ_CONNECTION_TIMEOUT 60000 The connection timeout for the RabbitMQ connection factory
queue.rabbitmq.handshake_timeout TB_QUEUE_RABBIT_MQ_HANDSHAKE_TIMEOUT 10000 RabbitMQ has a timeout for connection handshake. When clients run in heavily constrained environments, it may be necessary to increase the timeout
queue.rabbitmq.queue-properties.rule-engine TB_QUEUE_RABBIT_MQ_RE_QUEUE_PROPERTIES x-max-length-bytes:1048576000;x-message-ttl:604800000 RabbitMQ properties for Rule Engine queues
queue.rabbitmq.queue-properties.core TB_QUEUE_RABBIT_MQ_CORE_QUEUE_PROPERTIES x-max-length-bytes:1048576000;x-message-ttl:604800000 RabbitMQ properties for Core queues
queue.rabbitmq.queue-properties.transport-api TB_QUEUE_RABBIT_MQ_TA_QUEUE_PROPERTIES x-max-length-bytes:1048576000;x-message-ttl:604800000 RabbitMQ properties for Transport Api queues
queue.rabbitmq.queue-properties.notifications TB_QUEUE_RABBIT_MQ_NOTIFICATIONS_QUEUE_PROPERTIES x-max-length-bytes:1048576000;x-message-ttl:604800000 RabbitMQ properties for Notifications queues
queue.rabbitmq.queue-properties.js-executor TB_QUEUE_RABBIT_MQ_JE_QUEUE_PROPERTIES x-max-length-bytes:1048576000;x-message-ttl:604800000 RabbitMQ properties for Js Executor queues
queue.partitions.hash_function_name TB_QUEUE_PARTITIONS_HASH_FUNCTION_NAME murmur3_128 Name of hash function used for consistent hash ring in Cluster Mode. See architecture docs for more details. murmur3_32, murmur3_128 or sha256
queue.transport_api.requests_topic TB_QUEUE_TRANSPORT_API_REQUEST_TOPIC tb_transport.api.requests Topic used to consume api requests from transport microservices
queue.transport_api.responses_topic TB_QUEUE_TRANSPORT_API_RESPONSE_TOPIC tb_transport.api.responses Topic used to produce api responses to transport microservices
queue.transport_api.max_pending_requests TB_QUEUE_TRANSPORT_MAX_PENDING_REQUESTS 10000 Maximum pending api requests from transport microservices to be handled by server
queue.transport_api.max_requests_timeout TB_QUEUE_TRANSPORT_MAX_REQUEST_TIMEOUT 10000 Maximum timeout in milliseconds to handle api request from transport microservice by server
queue.transport_api.max_callback_threads TB_QUEUE_TRANSPORT_MAX_CALLBACK_THREADS 100 Amount of threads used to invoke callbacks
queue.transport_api.request_poll_interval TB_QUEUE_TRANSPORT_REQUEST_POLL_INTERVAL_MS 25 Interval in milliseconds to poll api requests from transport microservices
queue.transport_api.response_poll_interval TB_QUEUE_TRANSPORT_RESPONSE_POLL_INTERVAL_MS 25 Interval in milliseconds to poll api response from transport microservices
queue.core.topic TB_QUEUE_CORE_TOPIC tb_core Topic name for Core microservices
queue.core.poll-interval TB_QUEUE_CORE_POLL_INTERVAL_MS 25 Interval in milliseconds to poll messages by Core microservices
queue.core.partitions TB_QUEUE_CORE_PARTITIONS 10 Amount of partitions used by Core microservices
queue.core.pack-processing-timeout TB_QUEUE_CORE_PACK_PROCESSING_TIMEOUT_MS 2000 Timeout for processing a message pack by Core microservices
queue.core.ota.topic TB_QUEUE_CORE_OTA_TOPIC tb_ota_package The topic for queue of OTA updates
queue.core.ota.pack-interval-ms TB_QUEUE_CORE_OTA_PACK_INTERVAL_MS 60000 The interval of processing the OTA updates for devices. Used to avoid any harm to network due to many parallel OTA updates
queue.core.ota.pack-size TB_QUEUE_CORE_OTA_PACK_SIZE 100 The size of OTA updates notifications fetched from the queue. The queue stores pairs of firmware and device ids.
queue.core.usage-stats-topic TB_QUEUE_US_TOPIC tb_usage_stats The parameter to store usage statistics
queue.core.stats.enabled TB_QUEUE_CORE_STATS_ENABLED true Enable/disable statistics for Core microservices
queue.core.stats.print-interval-ms TB_QUEUE_CORE_STATS_PRINT_INTERVAL_MS 60000 Statistics printing interval for Core microservices
queue.js.request_topic REMOTE_JS_EVAL_REQUEST_TOPIC js_eval.requests JS Eval request topic
queue.js.response_topic_prefix REMOTE_JS_EVAL_RESPONSE_TOPIC js_eval.responses JS Eval responses topic prefix that is combined with node id
queue.js.max_pending_requests REMOTE_JS_MAX_PENDING_REQUESTS 10000 JS Eval max pending requests
queue.js.max_eval_requests_timeout REMOTE_JS_MAX_EVAL_REQUEST_TIMEOUT 60000 JS Eval max request timeout
queue.js.max_requests_timeout REMOTE_JS_MAX_REQUEST_TIMEOUT 10000 JS max request timeout
queue.js.response_poll_interval REMOTE_JS_RESPONSE_POLL_INTERVAL_MS 25 JS response poll interval
queue.rule-engine.topic TB_QUEUE_RULE_ENGINE_TOPIC tb_rule_engine Topic name for Rule Engine microservices
queue.rule-engine.poll-interval TB_QUEUE_RULE_ENGINE_POLL_INTERVAL_MS 25 Interval in milliseconds to poll messages by Rule Engine microservices
queue.rule-engine.pack-processing-timeout TB_QUEUE_RULE_ENGINE_PACK_PROCESSING_TIMEOUT_MS 2000 Timeout for processing a message pack
queue.rule-engine.stats.enabled TB_QUEUE_RULE_ENGINE_STATS_ENABLED true Enable/disable statistics for Rule Engine microservices
queue.rule-engine.stats.print-interval-ms TB_QUEUE_RULE_ENGINE_STATS_PRINT_INTERVAL_MS 60000 Statistics printing interval for Rule Engine microservices
queue.transport.notifications_topic TB_QUEUE_TRANSPORT_NOTIFICATIONS_TOPIC tb_transport.notifications Transport notifications topic
queue.transport.poll_interval TB_QUEUE_TRANSPORT_NOTIFICATIONS_POLL_INTERVAL_MS 25 Interval in milliseconds to poll messages by Core microservices
queue.vc.topic TB_QUEUE_VC_TOPIC tb_version_control Topic for storing Version Control synchronization tasks
queue.vc.partitions TB_QUEUE_VC_PARTITIONS 10 Amount of partitions used by Version Control microservices
queue.vc.poll-interval TB_QUEUE_VC_INTERVAL_MS 10 Interval in milliseconds to poll messages by Version Control microservices
queue.vc.pack-processing-timeout TB_QUEUE_VC_PACK_PROCESSING_TIMEOUT_MS 10 Timeout for processing a message pack

ThingsBoard service parameters

ParameterEnvironment VariableDefault ValueDescription
service.type TB_SERVICE_TYPE tb-transport
service.id TB_SERVICE_ID Unique id for this service (autogenerated if empty)
service.tenant_id TB_SERVICE_TENANT_ID Empty or specific tenant id

ThingsBoard metrics parameters

ParameterEnvironment VariableDefault ValueDescription
metrics.enabled METRICS_ENABLED false Enable/disable actuator metrics

ThingsBoard management parameters

ParameterEnvironment VariableDefault ValueDescription
management.endpoints.web.exposure.include METRICS_ENDPOINTS_EXPOSE info Expose metrics endpoint (use value 'prometheus' to enable prometheus metrics)

MQTT Transport Parameters

ParameterEnvironment VariableDefault ValueDescription
spring.main.web-environment WEB_APPLICATION_ENABLE false If you enabled process metrics you should also enable 'web-environment'
spring.main.web-application-type WEB_APPLICATION_TYPE none If you enabled process metrics you should set 'web-application-type' to 'servlet' value

Server Parameters

ParameterEnvironment VariableDefault ValueDescription
server.address HTTP_BIND_ADDRESS 0.0.0.0 Server bind address (has no effect if web-environment is disabled)
server.port HTTP_BIND_PORT 8083 Server bind port (has no effect if web-environment is disabled)

Zookeeper connection parameters

ParameterEnvironment VariableDefault ValueDescription
zk.enabled ZOOKEEPER_ENABLED false Enable/disable zookeeper discovery service. Used for ThingsBoard cluster
zk.url ZOOKEEPER_URL localhost:2181 Zookeeper connect string
zk.retry_interval_ms ZOOKEEPER_RETRY_INTERVAL_MS 3000 Zookeeper retry interval in milliseconds
zk.connection_timeout_ms ZOOKEEPER_CONNECTION_TIMEOUT_MS 3000 Zookeeper connection timeout in milliseconds
zk.session_timeout_ms ZOOKEEPER_SESSION_TIMEOUT_MS 3000 Zookeeper session timeout in milliseconds
zk.zk_dir ZOOKEEPER_NODES_DIR /thingsboard Name of the directory in zookeeper 'filesystem'

Cache Parameter

ParameterEnvironment VariableDefault ValueDescription
cache.type CACHE_TYPE redis

Redis connection parameters

ParameterEnvironment VariableDefault ValueDescription
redis.connection.type REDIS_CONNECTION_TYPE standalone Redis connection type - standalone or cluster
redis.standalone.host REDIS_HOST localhost Redis connection host
redis.standalone.port REDIS_PORT 6379 Redis connection port
redis.standalone.useDefaultClientConfig REDIS_USE_DEFAULT_CLIENT_CONFIG true Redis connection port
redis.standalone.clientName REDIS_CLIENT_NAME standalone This value may be used only if you used not default ClientConfig
redis.standalone.connectTimeout REDIS_CLIENT_CONNECT_TIMEOUT 30000 This value may be used only if you used not default ClientConfig
redis.standalone.readTimeout REDIS_CLIENT_READ_TIMEOUT 60000 This value may be used only if you used not default ClientConfig
redis.standalone.usePoolConfig REDIS_CLIENT_USE_POOL_CONFIG false This value may be used only if you used not default ClientConfig
redis.cluster.nodes REDIS_NODES Comma-separated list of "host:port" pairs to bootstrap from
redis.cluster.max-redirects REDIS_MAX_REDIRECTS 12 Maximum number of redirects to follow when executing commands across the cluster
redis.cluster.useDefaultPoolConfig REDIS_USE_DEFAULT_POOL_CONFIG true Use default redis pool configuration. If set to "true", the REDIS_POOL_CONFIG_* properties will be ignored.
redis.db REDIS_DB 0 Redis database index
redis.password REDIS_PASSWORD Redis database password
redis.pool_config.maxTotal REDIS_POOL_CONFIG_MAX_TOTAL 128 General redis pool settings
redis.pool_config.maxIdle REDIS_POOL_CONFIG_MAX_IDLE 128 General redis pool settings
redis.pool_config.minIdle REDIS_POOL_CONFIG_MIN_IDLE 16 General redis pool settings
redis.pool_config.testOnBorrow REDIS_POOL_CONFIG_TEST_ON_BORROW true General redis pool settings
redis.pool_config.testOnReturn REDIS_POOL_CONFIG_TEST_ON_RETURN true General redis pool settings
redis.pool_config.testWhileIdle REDIS_POOL_CONFIG_TEST_WHILE_IDLE true General redis pool settings
redis.pool_config.minEvictableMs REDIS_POOL_CONFIG_MIN_EVICTABLE_MS 60000 General redis pool settings
redis.pool_config.evictionRunsMs REDIS_POOL_CONFIG_EVICTION_RUNS_MS 30000 General redis pool settings
redis.pool_config.maxWaitMills REDIS_POOL_CONFIG_MAX_WAIT_MS 60000 General redis pool settings
redis.pool_config.numberTestsPerEvictionRun REDIS_POOL_CONFIG_NUMBER_TESTS_PER_EVICTION_RUN 3 General redis pool settings
redis.pool_config.blockWhenExhausted REDIS_POOL_CONFIG_BLOCK_WHEN_EXHAUSTED true General redis pool settings

MQTT server parameters

ParameterEnvironment VariableDefault ValueDescription
transport.mqtt.bind_address MQTT_BIND_ADDRESS 0.0.0.0 MQTT bind address
transport.mqtt.bind_port MQTT_BIND_PORT 1883 MQTT bind port
transport.mqtt.timeout MQTT_TIMEOUT 10000 MQTT processing timeout in milliseconds
transport.mqtt.msg_queue_size_per_device_limit MQTT_MSG_QUEUE_SIZE_PER_DEVICE_LIMIT 100 Messages await in the queue before device connected state. This limit works on low level before TenantProfileLimits mechanism
transport.mqtt.netty.leak_detector_level NETTY_LEAK_DETECTOR_LVL DISABLED Netty leak detector level
transport.mqtt.netty.boss_group_thread_count NETTY_BOSS_GROUP_THREADS 1 Netty BOSS threads count
transport.mqtt.netty.worker_group_thread_count NETTY_WORKER_GROUP_THREADS 12 Netty worker threads count
transport.mqtt.netty.max_payload_size NETTY_MAX_PAYLOAD_SIZE 65536 Max payload size in bytes
transport.mqtt.netty.so_keep_alive NETTY_SO_KEEPALIVE false
transport.mqtt.ssl.enabled MQTT_SSL_ENABLED false Enable/disable MQTTS support
transport.mqtt.ssl.bind_address MQTT_SSL_BIND_ADDRESS 0.0.0.0 MMQTT SSL bind address
transport.mqtt.ssl.bind_port MQTT_SSL_BIND_PORT 8883 MQTT SSL bind port
transport.mqtt.ssl.protocol MQTT_SSL_PROTOCOL TLSv1.2 SSL protocol: See this link
transport.mqtt.ssl.credentials.type. MQTT_SSL_CREDENTIALS_TYPE PEM Server credentials type (PEM - pem certificate file; KEYSTORE - java keystore)
transport.mqtt.ssl.credentials.pem.cert_file MQTT_SSL_PEM_CERT mqttserver.pem Path to the server certificate file (holds server certificate or certificate chain, may include server private key)
transport.mqtt.ssl.credentials.pem.key_file MQTT_SSL_PEM_KEY mqttserver_key.pem Path to the server certificate private key file (optional)
transport.mqtt.ssl.credentials.pem.key_password MQTT_SSL_PEM_KEY_PASSWORD server_key_password Server certificate private key password (optional)
transport.mqtt.ssl.credentials.keystore.type MQTT_SSL_KEY_STORE_TYPE PKCS12 Type of the key store: PKCS12 or JKS
transport.mqtt.ssl.credentials.keystore.store_file MQTT_SSL_KEY_STORE mqttserver.jks Path to the key store that holds the SSL certificate
transport.mqtt.ssl.credentials.keystore.store_password MQTT_SSL_KEY_STORE_PASSWORD server_ks_password Password used to access the key store
transport.mqtt.ssl.credentials.keystore.key_password MQTT_SSL_KEY_PASSWORD server_key_password Password used to access the key
transport.mqtt.ssl.skip_validity_check_for_client_cert MQTT_SSL_SKIP_VALIDITY_CHECK_FOR_CLIENT_CERT false Skip certificate validity check for client certificates
ParameterEnvironment VariableDefault ValueDescription
transport.sessions.inactivity_timeout TB_TRANSPORT_SESSIONS_INACTIVITY_TIMEOUT 300000 Inactivity timeout for device session in transport service. The last activity time of the device session is updated if device sends any message, including keepalive messages.
transport.sessions.report_timeout TB_TRANSPORT_SESSIONS_REPORT_TIMEOUT 3000 Interval of periodic check for expired sessions and report of the changes to session last activity time.
transport.rate_limits.enabled TB_TRANSPORT_RATE_LIMITS_ENABLED false
transport.rate_limits.tenant TB_TRANSPORT_RATE_LIMITS_TENANT 1000:1,20000:60
transport.rate_limits.device TB_TRANSPORT_RATE_LIMITS_DEVICE 10:1,300:60
transport.json.type_cast_enabled JSON_TYPE_CAST_ENABLED true Cast String data types to Numeric if possible when processing Telemetry/Attributes JSON
transport.json.max_string_value_length JSON_MAX_STRING_VALUE_LENGTH 0 Maximum allowed string value length when processing Telemetry/Attributes JSON (0 value disables string value length check)
transport.client_side_rpc.timeout CLIENT_SIDE_RPC_TIMEOUT 60000
transport.api_enabled TB_TRANSPORT_API_ENABLED true Enable/disable http/mqtt/coap transport protocols (has higher priority than certain protocol's 'enabled' property)
transport.log.enabled TB_TRANSPORT_LOG_ENABLED true Enable/Disable log of transport messages to telemetry. For example, logging of LwM2M registration update.
transport.log.max_length TB_TRANSPORT_LOG_MAX_LENGTH 1024 Maximum length of the log message. The content will be truncated to the specified value if needed.
transport.stats.enabled TB_TRANSPORT_STATS_ENABLED true Enable/Disable collection of transport statistics
transport.stats.print-interval-ms TB_TRANSPORT_STATS_PRINT_INTERVAL_MS 60000 Interval of transport statistics logging.

Queue parameters

ParameterEnvironment VariableDefault ValueDescription
queue.type TB_QUEUE_TYPE kafka In-memory or kafka (Apache Kafka) or aws-sqs (AWS SQS) or pubsub (PubSub) or service-bus (Azure Service Bus) or rabbitmq (RabbitMQ)
ParameterEnvironment VariableDefault ValueDescription
queue.kafka.bootstrap.servers TB_KAFKA_SERVERS localhost:9092 Kafka Bootstrap servers list as a connection string for kafka client
queue.kafka.acks TB_KAFKA_ACKS all General Kafka client setting
queue.kafka.retries TB_KAFKA_RETRIES 1 General Kafka client setting
queue.kafka.compression TB_KAFKA_COMPRESSION_TYPE none Compression of the Kafka messages: none or gzip
queue.kafka.batch.size TB_KAFKA_BATCH_SIZE 16384 General Kafka client setting
queue.kafka.linger.ms TB_KAFKA_LINGER_MS 1 General Kafka client setting
queue.kafka.max.request.size TB_KAFKA_MAX_REQUEST_SIZE 1048576 General Kafka client setting
queue.kafka.max.in.flight.requests.per.connection TB_KAFKA_MAX_IN_FLIGHT_REQUESTS_PER_CONNECTION 5 General Kafka client setting
queue.kafka.buffer.memory TB_BUFFER_MEMORY 33554432 General Kafka client setting
queue.kafka.replication_factor TB_QUEUE_KAFKA_REPLICATION_FACTOR 1 General Kafka client setting
queue.kafka.max_poll_interval_ms TB_QUEUE_KAFKA_MAX_POLL_INTERVAL_MS 300000 General Kafka client setting
queue.kafka.max_poll_records TB_QUEUE_KAFKA_MAX_POLL_RECORDS 8192 General Kafka client setting
queue.kafka.max_partition_fetch_bytes TB_QUEUE_KAFKA_MAX_PARTITION_FETCH_BYTES 16777216 General Kafka client setting
queue.kafka.fetch_max_bytes TB_QUEUE_KAFKA_FETCH_MAX_BYTES 134217728 General Kafka client setting
queue.kafka.use_confluent_cloud TB_QUEUE_KAFKA_USE_CONFLUENT_CLOUD false Enable to connect to Confluent Cloud.
queue.kafka.confluent.ssl.algorithm TB_QUEUE_KAFKA_CONFLUENT_SSL_ALGORITHM https Confluent Cloud connection settings
queue.kafka.confluent.sasl.mechanism TB_QUEUE_KAFKA_CONFLUENT_SASL_MECHANISM PLAIN Confluent Cloud connection settings
queue.kafka.confluent.sasl.config TB_QUEUE_KAFKA_CONFLUENT_SASL_JAAS_CONFIG Confluent Cloud connection settings
queue.kafka.confluent.security.protocol TB_QUEUE_KAFKA_CONFLUENT_SECURITY_PROTOCOL SASL_SSL Confluent Cloud connection settings
queue.kafka.consumer-properties-per-topic.tb_ota_package.key max.poll.records Example of specific consumer properties key per topic
queue.kafka.consumer-properties-per-topic.tb_ota_package.value TB_QUEUE_KAFKA_OTA_MAX_POLL_RECORDS 10 Example of specific consumer properties value per topic
queue.kafka.other.key request.timeout.ms refer to https://docs.confluent.io/platform/current/installation/configuration/producer-configs.html#producerconfigs_request.timeout.ms
queue.kafka.other.value TB_QUEUE_KAFKA_REQUEST_TIMEOUT_MS 30000 (30 seconds)
queue.kafka.other.key session.timeout.ms refer to https://docs.confluent.io/platform/current/installation/configuration/consumer-configs.html#consumerconfigs_session.timeout.ms
queue.kafka.other.value TB_QUEUE_KAFKA_SESSION_TIMEOUT_MS 10000 (10 seconds)
queue.kafka.topic-properties.rule-engine TB_QUEUE_KAFKA_RE_TOPIC_PROPERTIES retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 Kafka properties for Rule Engine topics
queue.kafka.topic-properties.core TB_QUEUE_KAFKA_CORE_TOPIC_PROPERTIES retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 Kafka properties for Core topics
queue.kafka.topic-properties.transport-api TB_QUEUE_KAFKA_TA_TOPIC_PROPERTIES retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 Kafka properties for Transport Api topics
queue.kafka.topic-properties.notifications TB_QUEUE_KAFKA_NOTIFICATIONS_TOPIC_PROPERTIES retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 Kafka properties for Notifications topics
queue.kafka.topic-properties.js-executor TB_QUEUE_KAFKA_JE_TOPIC_PROPERTIES retention.ms:604800000;segment.bytes:26214400;retention.bytes:104857600;partitions:100;min.insync.replicas:1 Kafka properties for JS Executor topics
queue.kafka.topic-properties.ota-updates TB_QUEUE_KAFKA_OTA_TOPIC_PROPERTIES retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:10;min.insync.replicas:1 Kafka properties for OTA updates topic
queue.kafka.consumer-stats.enabled TB_QUEUE_KAFKA_CONSUMER_STATS_ENABLED true Prints lag between consumer group offset and last messages offset in Kafka topics
queue.kafka.consumer-stats.print-interval-ms TB_QUEUE_KAFKA_CONSUMER_STATS_MIN_PRINT_INTERVAL_MS 60000 Statistics printing interval for Kafka's consumer-groups stats
queue.kafka.consumer-stats.kafka-response-timeout-ms TB_QUEUE_KAFKA_CONSUMER_STATS_RESPONSE_TIMEOUT_MS 1000 Time to wait for the stats-loading requests to Kafka to finish
queue.aws_sqs.use_default_credential_provider_chain TB_QUEUE_AWS_SQS_USE_DEFAULT_CREDENTIAL_PROVIDER_CHAIN false Use default credentials provider for AWS SQS
queue.aws_sqs.access_key_id TB_QUEUE_AWS_SQS_ACCESS_KEY_ID YOUR_KEY Access key ID from AWS IAM user
queue.aws_sqs.secret_access_key TB_QUEUE_AWS_SQS_SECRET_ACCESS_KEY YOUR_SECRET Secret access key from AWS IAM user
queue.aws_sqs.region TB_QUEUE_AWS_SQS_REGION YOUR_REGION Region from AWS account
queue.aws_sqs.threads_per_topic TB_QUEUE_AWS_SQS_THREADS_PER_TOPIC 1 Number of threads per each AWS SQS queue in consumer
queue.aws_sqs.queue-properties.rule-engine TB_QUEUE_AWS_SQS_RE_QUEUE_PROPERTIES VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
queue.aws_sqs.queue-properties.core TB_QUEUE_AWS_SQS_CORE_QUEUE_PROPERTIES VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
queue.aws_sqs.queue-properties.transport-api TB_QUEUE_AWS_SQS_TA_QUEUE_PROPERTIES VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
queue.aws_sqs.queue-properties.notifications TB_QUEUE_AWS_SQS_NOTIFICATIONS_QUEUE_PROPERTIES VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
queue.aws_sqs.queue-properties.js-executor TB_QUEUE_AWS_SQS_JE_QUEUE_PROPERTIES VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
queue.pubsub.project_id TB_QUEUE_PUBSUB_PROJECT_ID YOUR_PROJECT_ID Project Id from google cloud
queue.pubsub.service_account TB_QUEUE_PUBSUB_SERVICE_ACCOUNT YOUR_SERVICE_ACCOUNT API Credentials in json format
queue.pubsub.max_msg_size TB_QUEUE_PUBSUB_MAX_MSG_SIZE 1048576 in bytes
queue.pubsub.max_messages TB_QUEUE_PUBSUB_MAX_MESSAGES 1000 Number of messages per a consumer
queue.pubsub.queue-properties.rule-engine TB_QUEUE_PUBSUB_RE_QUEUE_PROPERTIES ackDeadlineInSec:30;messageRetentionInSec:604800 Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consume again
queue.pubsub.queue-properties.core TB_QUEUE_PUBSUB_CORE_QUEUE_PROPERTIES ackDeadlineInSec:30;messageRetentionInSec:604800 Pub/Sub properties for Core subscribers, messages which will commit after ackDeadlineInSec period can be consume again
queue.pubsub.queue-properties.transport-api TB_QUEUE_PUBSUB_TA_QUEUE_PROPERTIES ackDeadlineInSec:30;messageRetentionInSec:604800 Pub/Sub properties for Transport Api subscribers, messages which will commit after ackDeadlineInSec period can be consume again
queue.pubsub.queue-properties.notifications TB_QUEUE_PUBSUB_NOTIFICATIONS_QUEUE_PROPERTIES ackDeadlineInSec:30;messageRetentionInSec:604800 Pub/Sub properties for Notifications subscribers, messages which will commit after ackDeadlineInSec period can be consume again
queue.pubsub.queue-properties.js-executor TB_QUEUE_PUBSUB_JE_QUEUE_PROPERTIES ackDeadlineInSec:30;messageRetentionInSec:604800 Pub/Sub properties for Js Executor subscribers, messages which will commit after ackDeadlineInSec period can be consume again
queue.service_bus.namespace_name TB_QUEUE_SERVICE_BUS_NAMESPACE_NAME YOUR_NAMESPACE_NAME Azure namespace is a scoping container for all messaging components
queue.service_bus.sas_key_name TB_QUEUE_SERVICE_BUS_SAS_KEY_NAME YOUR_SAS_KEY_NAME Azure Service Bus Shared Access Signatures key name
queue.service_bus.sas_key TB_QUEUE_SERVICE_BUS_SAS_KEY YOUR_SAS_KEY Azure Service Bus Shared Access Signatures key
queue.service_bus.max_messages TB_QUEUE_SERVICE_BUS_MAX_MESSAGES 1000 Number of messages per a consumer
queue.service_bus.queue-properties.rule-engine TB_QUEUE_SERVICE_BUS_RE_QUEUE_PROPERTIES lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 Azure Service Bus properties for Rule Engine queues
queue.service_bus.queue-properties.core TB_QUEUE_SERVICE_BUS_CORE_QUEUE_PROPERTIES lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 Azure Service Bus properties for Core queues
queue.service_bus.queue-properties.transport-api TB_QUEUE_SERVICE_BUS_TA_QUEUE_PROPERTIES lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 Azure Service Bus properties for Transport Api queues
queue.service_bus.queue-properties.notifications TB_QUEUE_SERVICE_BUS_NOTIFICATIONS_QUEUE_PROPERTIES lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 Azure Service Bus properties for Notifications queues
queue.service_bus.queue-properties.js-executor TB_QUEUE_SERVICE_BUS_JE_QUEUE_PROPERTIES lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 Azure Service Bus properties for Js Executor queues
queue.rabbitmq.exchange_name TB_QUEUE_RABBIT_MQ_EXCHANGE_NAME Default empty
queue.rabbitmq.host TB_QUEUE_RABBIT_MQ_HOST localhost RabbitMQ host used to establish connection
queue.rabbitmq.port TB_QUEUE_RABBIT_MQ_PORT 5672 RabbitMQ host used to establish connection
queue.rabbitmq.virtual_host TB_QUEUE_RABBIT_MQ_VIRTUAL_HOST / Virtual hosts provide logical grouping and separation of resources
queue.rabbitmq.password TB_QUEUE_RABBIT_MQ_PASSWORD YOUR_PASSWORD User password for RabbitMQ user account
queue.rabbitmq.automatic_recovery_enabled TB_QUEUE_RABBIT_MQ_AUTOMATIC_RECOVERY_ENABLED false Network connection between clients and RabbitMQ nodes can fail. RabbitMQ Java client supports automatic recovery of connections and topology (queues, exchanges, bindings, and consumers)
queue.rabbitmq.connection_timeout TB_QUEUE_RABBIT_MQ_CONNECTION_TIMEOUT 60000 The connection timeout for the RabbitMQ connection factory
queue.rabbitmq.handshake_timeout TB_QUEUE_RABBIT_MQ_HANDSHAKE_TIMEOUT 10000 RabbitMQ has a timeout for connection handshake. When clients run in heavily constrained environments, it may be necessary to increase the timeout
queue.rabbitmq.queue-properties.rule-engine TB_QUEUE_RABBIT_MQ_RE_QUEUE_PROPERTIES x-max-length-bytes:1048576000;x-message-ttl:604800000 RabbitMQ properties for Rule Engine queues
queue.rabbitmq.queue-properties.core TB_QUEUE_RABBIT_MQ_CORE_QUEUE_PROPERTIES x-max-length-bytes:1048576000;x-message-ttl:604800000 RabbitMQ properties for Core queues
queue.rabbitmq.queue-properties.transport-api TB_QUEUE_RABBIT_MQ_TA_QUEUE_PROPERTIES x-max-length-bytes:1048576000;x-message-ttl:604800000 RabbitMQ properties for Transport Api queues
queue.rabbitmq.queue-properties.notifications TB_QUEUE_RABBIT_MQ_NOTIFICATIONS_QUEUE_PROPERTIES x-max-length-bytes:1048576000;x-message-ttl:604800000 RabbitMQ properties for Notifications queues
queue.rabbitmq.queue-properties.js-executor TB_QUEUE_RABBIT_MQ_JE_QUEUE_PROPERTIES x-max-length-bytes:1048576000;x-message-ttl:604800000 RabbitMQ properties for Js Executor queues
queue.partitions.hash_function_name TB_QUEUE_PARTITIONS_HASH_FUNCTION_NAME murmur3_128 Name of hash function used for consistent hash ring in Cluster Mode. See architecture docs for more details. murmur3_32, murmur3_128 or sha256
queue.transport_api.requests_topic TB_QUEUE_TRANSPORT_API_REQUEST_TOPIC tb_transport.api.requests Topic used to consume api requests from transport microservices
queue.transport_api.responses_topic TB_QUEUE_TRANSPORT_API_RESPONSE_TOPIC tb_transport.api.responses Topic used to produce api responses to transport microservices
queue.transport_api.max_pending_requests TB_QUEUE_TRANSPORT_MAX_PENDING_REQUESTS 10000 Maximum pending api requests from transport microservices to be handled by server
queue.transport_api.max_requests_timeout TB_QUEUE_TRANSPORT_MAX_REQUEST_TIMEOUT 10000 Maximum timeout in milliseconds to handle api request from transport microservice by server
queue.transport_api.max_callback_threads TB_QUEUE_TRANSPORT_MAX_CALLBACK_THREADS 100 Amount of threads used to invoke callbacks
queue.transport_api.request_poll_interval TB_QUEUE_TRANSPORT_REQUEST_POLL_INTERVAL_MS 25 Interval in milliseconds to poll api requests from transport microservices
queue.transport_api.response_poll_interval TB_QUEUE_TRANSPORT_RESPONSE_POLL_INTERVAL_MS 25 Interval in milliseconds to poll api response from transport microservices
queue.core.topic TB_QUEUE_CORE_TOPIC tb_core Topic name for Core microservices
queue.core.poll-interval TB_QUEUE_CORE_POLL_INTERVAL_MS 25 Interval in milliseconds to poll messages by Core microservices
queue.core.partitions TB_QUEUE_CORE_PARTITIONS 10 Amount of partitions used by Core microservices
queue.core.pack-processing-timeout TB_QUEUE_CORE_PACK_PROCESSING_TIMEOUT_MS 2000 Timeout for processing a message pack by Core microservices
queue.core.ota.topic TB_QUEUE_CORE_OTA_TOPIC tb_ota_package The topic for queue of OTA updates
queue.core.ota.pack-interval-ms TB_QUEUE_CORE_OTA_PACK_INTERVAL_MS 60000 The interval of processing the OTA updates for devices. Used to avoid any harm to network due to many parallel OTA updates
queue.core.ota.pack-size TB_QUEUE_CORE_OTA_PACK_SIZE 100 The size of OTA updates notifications fetched from the queue. The queue stores pairs of firmware and device ids.
queue.core.usage-stats-topic TB_QUEUE_US_TOPIC tb_usage_stats The parameter to store usage statistics
queue.core.stats.enabled TB_QUEUE_CORE_STATS_ENABLED true Enable/disable statistics for Core microservices
queue.core.stats.print-interval-ms TB_QUEUE_CORE_STATS_PRINT_INTERVAL_MS 60000 Statistics printing interval for Core microservices
queue.js.request_topic REMOTE_JS_EVAL_REQUEST_TOPIC js_eval.requests JS Eval request topic
queue.js.response_topic_prefix REMOTE_JS_EVAL_RESPONSE_TOPIC js_eval.responses JS Eval responses topic prefix that is combined with node id
queue.js.max_pending_requests REMOTE_JS_MAX_PENDING_REQUESTS 10000 JS Eval max pending requests
queue.js.max_eval_requests_timeout REMOTE_JS_MAX_EVAL_REQUEST_TIMEOUT 60000 JS Eval max request timeout
queue.js.max_requests_timeout REMOTE_JS_MAX_REQUEST_TIMEOUT 10000 JS max request timeout
queue.js.response_poll_interval REMOTE_JS_RESPONSE_POLL_INTERVAL_MS 25 JS response poll interval
queue.rule-engine.topic TB_QUEUE_RULE_ENGINE_TOPIC tb_rule_engine Topic name for Rule Engine microservices
queue.rule-engine.poll-interval TB_QUEUE_RULE_ENGINE_POLL_INTERVAL_MS 25 Interval in milliseconds to poll messages by Rule Engine microservices
queue.rule-engine.pack-processing-timeout TB_QUEUE_RULE_ENGINE_PACK_PROCESSING_TIMEOUT_MS 2000 Timeout for processing a message pack
queue.rule-engine.stats.enabled TB_QUEUE_RULE_ENGINE_STATS_ENABLED true Enable/disable statistics for Rule Engine microservices
queue.rule-engine.stats.print-interval-ms TB_QUEUE_RULE_ENGINE_STATS_PRINT_INTERVAL_MS 60000 Statistics printing interval for Rule Engine microservices
queue.transport.notifications_topic TB_QUEUE_TRANSPORT_NOTIFICATIONS_TOPIC tb_transport.notifications Transport notifications topic
queue.transport.poll_interval TB_QUEUE_TRANSPORT_NOTIFICATIONS_POLL_INTERVAL_MS 25 Interval in milliseconds to poll messages by Core microservices
queue.vc.topic TB_QUEUE_VC_TOPIC tb_version_control Topic for storing Version Control synchronization tasks
queue.vc.partitions TB_QUEUE_VC_PARTITIONS 10 Amount of partitions used by Version Control microservices
queue.vc.poll-interval TB_QUEUE_VC_INTERVAL_MS 10 Interval in milliseconds to poll messages by Version Control microservices
queue.vc.pack-processing-timeout TB_QUEUE_VC_PACK_PROCESSING_TIMEOUT_MS 10 Timeout for processing a message pack

ThingsBoard service parameters

ParameterEnvironment VariableDefault ValueDescription
service.type TB_SERVICE_TYPE tb-transport
service.id TB_SERVICE_ID Unique id for this service (autogenerated if empty)
service.tenant_id TB_SERVICE_TENANT_ID Empty or specific tenant id

ThingsBoard metrics parameters

ParameterEnvironment VariableDefault ValueDescription
metrics.enabled METRICS_ENABLED false Enable/disable actuator metrics

ThingsBoard management parameters

ParameterEnvironment VariableDefault ValueDescription
management.endpoints.web.exposure.include METRICS_ENDPOINTS_EXPOSE info Expose metrics endpoint (use value 'prometheus' to enable prometheus metrics)

CoAP Transport Settings

ParameterEnvironment VariableDefault ValueDescription
spring.main.web-environment WEB_APPLICATION_ENABLE false If you enabled process metrics you should also enable 'web-environment'
spring.main.web-application-type WEB_APPLICATION_TYPE none If you enabled process metrics you should set 'web-application-type' to 'servlet' value

Server Parameters

ParameterEnvironment VariableDefault ValueDescription
server.address HTTP_BIND_ADDRESS 0.0.0.0 Server bind address (has no effect if web-environment is disabled)
server.port HTTP_BIND_PORT 8083 Server bind port (has no effect if web-environment is disabled)

Zookeeper connection parameters

ParameterEnvironment VariableDefault ValueDescription
zk.enabled ZOOKEEPER_ENABLED false Enable/disable zookeeper discovery service. Used for ThingsBoard cluster
zk.url ZOOKEEPER_URL localhost:2181 Zookeeper connect string
zk.retry_interval_ms ZOOKEEPER_RETRY_INTERVAL_MS 3000 Zookeeper retry interval in milliseconds
zk.connection_timeout_ms ZOOKEEPER_CONNECTION_TIMEOUT_MS 3000 Zookeeper connection timeout in milliseconds
zk.session_timeout_ms ZOOKEEPER_SESSION_TIMEOUT_MS 3000 Zookeeper session timeout in milliseconds
zk.zk_dir ZOOKEEPER_NODES_DIR /thingsboard Name of the directory in zookeeper 'filesystem'

Cache Parameter

ParameterEnvironment VariableDefault ValueDescription
cache.type CACHE_TYPE redis

Redis connection parameters

ParameterEnvironment VariableDefault ValueDescription
redis.connection.type REDIS_CONNECTION_TYPE standalone Redis connection type - standalone or cluster
redis.standalone.host REDIS_HOST localhost Redis connection host
redis.standalone.port REDIS_PORT 6379 Redis connection port
redis.standalone.useDefaultClientConfig REDIS_USE_DEFAULT_CLIENT_CONFIG true Redis connection port
redis.standalone.clientName REDIS_CLIENT_NAME standalone This value may be used only if you used not default ClientConfig
redis.standalone.connectTimeout REDIS_CLIENT_CONNECT_TIMEOUT 30000 This value may be used only if you used not default ClientConfig
redis.standalone.readTimeout REDIS_CLIENT_READ_TIMEOUT 60000 This value may be used only if you used not default ClientConfig
redis.standalone.usePoolConfig REDIS_CLIENT_USE_POOL_CONFIG false This value may be used only if you used not default ClientConfig
redis.cluster.nodes REDIS_NODES Comma-separated list of "host:port" pairs to bootstrap from
redis.cluster.max-redirects REDIS_MAX_REDIRECTS 12 Maximum number of redirects to follow when executing commands across the cluster
redis.cluster.useDefaultPoolConfig REDIS_USE_DEFAULT_POOL_CONFIG true Use default redis pool configuration. If set to "true", the REDIS_POOL_CONFIG_* properties will be ignored.
redis.db REDIS_DB 0 Redis database index
redis.password REDIS_PASSWORD Redis database password
redis.pool_config.maxTotal REDIS_POOL_CONFIG_MAX_TOTAL 128 General redis pool settings
redis.pool_config.maxIdle REDIS_POOL_CONFIG_MAX_IDLE 128 General redis pool settings
redis.pool_config.minIdle REDIS_POOL_CONFIG_MIN_IDLE 16 General redis pool settings
redis.pool_config.testOnBorrow REDIS_POOL_CONFIG_TEST_ON_BORROW true General redis pool settings
redis.pool_config.testOnReturn REDIS_POOL_CONFIG_TEST_ON_RETURN true General redis pool settings
redis.pool_config.testWhileIdle REDIS_POOL_CONFIG_TEST_WHILE_IDLE true General redis pool settings
redis.pool_config.minEvictableMs REDIS_POOL_CONFIG_MIN_EVICTABLE_MS 60000 General redis pool settings
redis.pool_config.evictionRunsMs REDIS_POOL_CONFIG_EVICTION_RUNS_MS 30000 General redis pool settings
redis.pool_config.maxWaitMills REDIS_POOL_CONFIG_MAX_WAIT_MS 60000 General redis pool settings
redis.pool_config.numberTestsPerEvictionRun REDIS_POOL_CONFIG_NUMBER_TESTS_PER_EVICTION_RUN 3 General redis pool settings
redis.pool_config.blockWhenExhausted REDIS_POOL_CONFIG_BLOCK_WHEN_EXHAUSTED true General redis pool settings

COAP server parameters

ParameterEnvironment VariableDefault ValueDescription
transport.coap.bind_address COAP_BIND_ADDRESS 0.0.0.0 CoAP bind address
transport.coap.bind_port COAP_BIND_PORT 5683 CoAP bind port
transport.coap.timeout COAP_TIMEOUT 10000 CoaP processing timeout in milliseconds
transport.coap.psm_activity_timer COAP_PSM_ACTIVITY_TIMER 10000 Default PSM Activity Timer if not specified in device profile.
transport.coap.paging_transmission_window COAP_PAGING_TRANSMISSION_WINDOW 10000 Default Paging Transmission Window for eDRX support if not specified in the device profile.
transport.coap.dtls.enabled COAP_DTLS_ENABLED false Enable/disable DTLS 1.2 support
transport.coap.dtls.bind_address COAP_DTLS_BIND_ADDRESS 0.0.0.0 CoAP DTLS bind address
transport.coap.dtls.bind_port COAP_DTLS_BIND_PORT 5684 CoAP DTLS bind port
transport.coap.dtls.credentials.type COAP_DTLS_CREDENTIALS_TYPE PEM Server credentials type (PEM - pem certificate file; KEYSTORE - java keystore)
transport.coap.dtls.credentials.pem.cert_file COAP_DTLS_PEM_CERT coapserver.pem Path to the server certificate file (holds server certificate or certificate chain, may include server private key)
transport.coap.dtls.credentials.pem.key_file COAP_DTLS_PEM_KEY coapserver_key.pem Path to the server certificate private key file (optional)
transport.coap.dtls.credentials.pem.key_password COAP_DTLS_PEM_KEY_PASSWORD server_key_password Server certificate private key password (optional)
transport.coap.dtls.credentials.keystore.type COAP_DTLS_KEY_STORE_TYPE JKS Type of the key store
transport.coap.dtls.credentials.keystore.store_file COAP_DTLS_KEY_STORE coapserver.jks Path to the key store that holds the SSL certificate
transport.coap.dtls.credentials.keystore.store_password COAP_DTLS_KEY_STORE_PASSWORD server_ks_password Password used to access the key store
transport.coap.dtls.credentials.keystore.key_alias COAP_DTLS_KEY_ALIAS serveralias Key alias
transport.coap.dtls.credentials.keystore.key_password COAP_DTLS_KEY_PASSWORD server_key_password Password used to access the key
transport.coap.dtls.x509.skip_validity_check_for_client_cert TB_COAP_X509_DTLS_SKIP_VALIDITY_CHECK_FOR_CLIENT_CERT false Skip check of client certificate validity.
transport.coap.dtls.x509.dtls_session_inactivity_timeout TB_COAP_X509_DTLS_SESSION_INACTIVITY_TIMEOUT 86400000 Inactivity timeout of DTLS session. Used to cleanup cache.
transport.coap.dtls.x509.dtls_session_report_timeout TB_COAP_X509_DTLS_SESSION_REPORT_TIMEOUT 1800000 Interval of periodic eviction of the timed-out DTLS sessions.
ParameterEnvironment VariableDefault ValueDescription
transport.sessions.inactivity_timeout TB_TRANSPORT_SESSIONS_INACTIVITY_TIMEOUT 300000 Inactivity timeout for device session in transport service. The last activity time of the device session is updated if device sends any message, including keepalive messages.
transport.sessions.report_timeout TB_TRANSPORT_SESSIONS_REPORT_TIMEOUT 3000 Interval of periodic check for expired sessions and report of the changes to session last activity time.
transport.rate_limits.enabled TB_TRANSPORT_RATE_LIMITS_ENABLED false
transport.rate_limits.tenant TB_TRANSPORT_RATE_LIMITS_TENANT 1000:1,20000:60
transport.rate_limits.device TB_TRANSPORT_RATE_LIMITS_DEVICE 10:1,300:60
transport.json.type_cast_enabled JSON_TYPE_CAST_ENABLED true Cast String data types to Numeric if possible when processing Telemetry/Attributes JSON
transport.json.max_string_value_length JSON_MAX_STRING_VALUE_LENGTH 0 Maximum allowed string value length when processing Telemetry/Attributes JSON (0 value disables string value length check)
transport.client_side_rpc.timeout CLIENT_SIDE_RPC_TIMEOUT 60000
transport.api_enabled TB_TRANSPORT_API_ENABLED true Enable/disable http/mqtt/coap transport protocols (has higher priority than certain protocol's 'enabled' property)
transport.log.enabled TB_TRANSPORT_LOG_ENABLED true Enable/Disable log of transport messages to telemetry. For example, logging of LwM2M registration update.
transport.log.max_length TB_TRANSPORT_LOG_MAX_LENGTH 1024 Maximum length of the log message. The content will be truncated to the specified value if needed.
transport.stats.enabled TB_TRANSPORT_STATS_ENABLED true Enable/Disable collection of transport statistics
transport.stats.print-interval-ms TB_TRANSPORT_STATS_PRINT_INTERVAL_MS 60000 Interval of transport statistics logging.

Queue parameters

ParameterEnvironment VariableDefault ValueDescription
queue.type TB_QUEUE_TYPE kafka In-memory or kafka (Apache Kafka) or aws-sqs (AWS SQS) or pubsub (PubSub) or service-bus (Azure Service Bus) or rabbitmq (RabbitMQ)
ParameterEnvironment VariableDefault ValueDescription
queue.kafka.bootstrap.servers TB_KAFKA_SERVERS localhost:9092 Kafka Bootstrap servers list as a connection string for kafka client
queue.kafka.acks TB_KAFKA_ACKS all General Kafka client setting
queue.kafka.retries TB_KAFKA_RETRIES 1 General Kafka client setting
queue.kafka.compression TB_KAFKA_COMPRESSION_TYPE none Compression of the Kafka messages: none or gzip
queue.kafka.batch.size TB_KAFKA_BATCH_SIZE 16384 General Kafka client setting
queue.kafka.linger.ms TB_KAFKA_LINGER_MS 1 General Kafka client setting
queue.kafka.max.request.size TB_KAFKA_MAX_REQUEST_SIZE 1048576 General Kafka client setting
queue.kafka.max.in.flight.requests.per.connection TB_KAFKA_MAX_IN_FLIGHT_REQUESTS_PER_CONNECTION 5 General Kafka client setting
queue.kafka.buffer.memory TB_BUFFER_MEMORY 33554432 General Kafka client setting
queue.kafka.replication_factor TB_QUEUE_KAFKA_REPLICATION_FACTOR 1 General Kafka client setting
queue.kafka.max_poll_interval_ms TB_QUEUE_KAFKA_MAX_POLL_INTERVAL_MS 300000 General Kafka client setting
queue.kafka.max_poll_records TB_QUEUE_KAFKA_MAX_POLL_RECORDS 8192 General Kafka client setting
queue.kafka.max_partition_fetch_bytes TB_QUEUE_KAFKA_MAX_PARTITION_FETCH_BYTES 16777216 General Kafka client setting
queue.kafka.fetch_max_bytes TB_QUEUE_KAFKA_FETCH_MAX_BYTES 134217728 General Kafka client setting
queue.kafka.use_confluent_cloud TB_QUEUE_KAFKA_USE_CONFLUENT_CLOUD false Enable to connect to Confluent Cloud.
queue.kafka.confluent.ssl.algorithm TB_QUEUE_KAFKA_CONFLUENT_SSL_ALGORITHM https Confluent Cloud connection settings
queue.kafka.confluent.sasl.mechanism TB_QUEUE_KAFKA_CONFLUENT_SASL_MECHANISM PLAIN Confluent Cloud connection settings
queue.kafka.confluent.sasl.config TB_QUEUE_KAFKA_CONFLUENT_SASL_JAAS_CONFIG Confluent Cloud connection settings
queue.kafka.confluent.security.protocol TB_QUEUE_KAFKA_CONFLUENT_SECURITY_PROTOCOL SASL_SSL Confluent Cloud connection settings
queue.kafka.consumer-properties-per-topic.tb_ota_package.key max.poll.records Example of specific consumer properties key per topic
queue.kafka.consumer-properties-per-topic.tb_ota_package.value TB_QUEUE_KAFKA_OTA_MAX_POLL_RECORDS 10 Example of specific consumer properties value per topic
queue.kafka.other.key request.timeout.ms refer to https://docs.confluent.io/platform/current/installation/configuration/producer-configs.html#producerconfigs_request.timeout.ms
queue.kafka.other.value TB_QUEUE_KAFKA_REQUEST_TIMEOUT_MS 30000 (30 seconds)
queue.kafka.other.key session.timeout.ms refer to https://docs.confluent.io/platform/current/installation/configuration/consumer-configs.html#consumerconfigs_session.timeout.ms
queue.kafka.other.value TB_QUEUE_KAFKA_SESSION_TIMEOUT_MS 10000 (10 seconds)
queue.kafka.topic-properties.rule-engine TB_QUEUE_KAFKA_RE_TOPIC_PROPERTIES retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 Kafka properties for Rule Engine topics
queue.kafka.topic-properties.core TB_QUEUE_KAFKA_CORE_TOPIC_PROPERTIES retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 Kafka properties for Core topics
queue.kafka.topic-properties.transport-api TB_QUEUE_KAFKA_TA_TOPIC_PROPERTIES retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 Kafka properties for Transport Api topics
queue.kafka.topic-properties.notifications TB_QUEUE_KAFKA_NOTIFICATIONS_TOPIC_PROPERTIES retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 Kafka properties for Notifications topics
queue.kafka.topic-properties.js-executor TB_QUEUE_KAFKA_JE_TOPIC_PROPERTIES retention.ms:604800000;segment.bytes:26214400;retention.bytes:104857600;partitions:100;min.insync.replicas:1 Kafka properties for JS Executor topics
queue.kafka.topic-properties.ota-updates TB_QUEUE_KAFKA_OTA_TOPIC_PROPERTIES retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:10;min.insync.replicas:1 Kafka properties for OTA updates topic
queue.kafka.consumer-stats.enabled TB_QUEUE_KAFKA_CONSUMER_STATS_ENABLED true Prints lag between consumer group offset and last messages offset in Kafka topics
queue.kafka.consumer-stats.print-interval-ms TB_QUEUE_KAFKA_CONSUMER_STATS_MIN_PRINT_INTERVAL_MS 60000 Statistics printing interval for Kafka's consumer-groups stats
queue.kafka.consumer-stats.kafka-response-timeout-ms TB_QUEUE_KAFKA_CONSUMER_STATS_RESPONSE_TIMEOUT_MS 1000 Time to wait for the stats-loading requests to Kafka to finish
queue.aws_sqs.use_default_credential_provider_chain TB_QUEUE_AWS_SQS_USE_DEFAULT_CREDENTIAL_PROVIDER_CHAIN false Use default credentials provider for AWS SQS
queue.aws_sqs.access_key_id TB_QUEUE_AWS_SQS_ACCESS_KEY_ID YOUR_KEY Access key ID from AWS IAM user
queue.aws_sqs.secret_access_key TB_QUEUE_AWS_SQS_SECRET_ACCESS_KEY YOUR_SECRET Secret access key from AWS IAM user
queue.aws_sqs.region TB_QUEUE_AWS_SQS_REGION YOUR_REGION Region from AWS account
queue.aws_sqs.threads_per_topic TB_QUEUE_AWS_SQS_THREADS_PER_TOPIC 1 Number of threads per each AWS SQS queue in consumer
queue.aws_sqs.queue-properties.rule-engine TB_QUEUE_AWS_SQS_RE_QUEUE_PROPERTIES VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
queue.aws_sqs.queue-properties.core TB_QUEUE_AWS_SQS_CORE_QUEUE_PROPERTIES VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
queue.aws_sqs.queue-properties.transport-api TB_QUEUE_AWS_SQS_TA_QUEUE_PROPERTIES VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
queue.aws_sqs.queue-properties.notifications TB_QUEUE_AWS_SQS_NOTIFICATIONS_QUEUE_PROPERTIES VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
queue.aws_sqs.queue-properties.js-executor TB_QUEUE_AWS_SQS_JE_QUEUE_PROPERTIES VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
queue.pubsub.project_id TB_QUEUE_PUBSUB_PROJECT_ID YOUR_PROJECT_ID Project Id from google cloud
queue.pubsub.service_account TB_QUEUE_PUBSUB_SERVICE_ACCOUNT YOUR_SERVICE_ACCOUNT API Credentials in json format
queue.pubsub.max_msg_size TB_QUEUE_PUBSUB_MAX_MSG_SIZE 1048576 in bytes
queue.pubsub.max_messages TB_QUEUE_PUBSUB_MAX_MESSAGES 1000 Number of messages per a consumer
queue.pubsub.queue-properties.rule-engine TB_QUEUE_PUBSUB_RE_QUEUE_PROPERTIES ackDeadlineInSec:30;messageRetentionInSec:604800 Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consume again
queue.pubsub.queue-properties.core TB_QUEUE_PUBSUB_CORE_QUEUE_PROPERTIES ackDeadlineInSec:30;messageRetentionInSec:604800 Pub/Sub properties for Core subscribers, messages which will commit after ackDeadlineInSec period can be consume again
queue.pubsub.queue-properties.transport-api TB_QUEUE_PUBSUB_TA_QUEUE_PROPERTIES ackDeadlineInSec:30;messageRetentionInSec:604800 Pub/Sub properties for Transport Api subscribers, messages which will commit after ackDeadlineInSec period can be consume again
queue.pubsub.queue-properties.notifications TB_QUEUE_PUBSUB_NOTIFICATIONS_QUEUE_PROPERTIES ackDeadlineInSec:30;messageRetentionInSec:604800 Pub/Sub properties for Notifications subscribers, messages which will commit after ackDeadlineInSec period can be consume again
queue.pubsub.queue-properties.js-executor TB_QUEUE_PUBSUB_JE_QUEUE_PROPERTIES ackDeadlineInSec:30;messageRetentionInSec:604800 Pub/Sub properties for Js Executor subscribers, messages which will commit after ackDeadlineInSec period can be consume again
queue.service_bus.namespace_name TB_QUEUE_SERVICE_BUS_NAMESPACE_NAME YOUR_NAMESPACE_NAME Azure namespace is a scoping container for all messaging components
queue.service_bus.sas_key_name TB_QUEUE_SERVICE_BUS_SAS_KEY_NAME YOUR_SAS_KEY_NAME Azure Service Bus Shared Access Signatures key name
queue.service_bus.sas_key TB_QUEUE_SERVICE_BUS_SAS_KEY YOUR_SAS_KEY Azure Service Bus Shared Access Signatures key
queue.service_bus.max_messages TB_QUEUE_SERVICE_BUS_MAX_MESSAGES 1000 Number of messages per a consumer
queue.service_bus.queue-properties.rule-engine TB_QUEUE_SERVICE_BUS_RE_QUEUE_PROPERTIES lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 Azure Service Bus properties for Rule Engine queues
queue.service_bus.queue-properties.core TB_QUEUE_SERVICE_BUS_CORE_QUEUE_PROPERTIES lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 Azure Service Bus properties for Core queues
queue.service_bus.queue-properties.transport-api TB_QUEUE_SERVICE_BUS_TA_QUEUE_PROPERTIES lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 Azure Service Bus properties for Transport Api queues
queue.service_bus.queue-properties.notifications TB_QUEUE_SERVICE_BUS_NOTIFICATIONS_QUEUE_PROPERTIES lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 Azure Service Bus properties for Notifications queues
queue.service_bus.queue-properties.js-executor TB_QUEUE_SERVICE_BUS_JE_QUEUE_PROPERTIES lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 Azure Service Bus properties for Js Executor queues
queue.rabbitmq.exchange_name TB_QUEUE_RABBIT_MQ_EXCHANGE_NAME Default empty
queue.rabbitmq.host TB_QUEUE_RABBIT_MQ_HOST localhost RabbitMQ host used to establish connection
queue.rabbitmq.port TB_QUEUE_RABBIT_MQ_PORT 5672 RabbitMQ host used to establish connection
queue.rabbitmq.virtual_host TB_QUEUE_RABBIT_MQ_VIRTUAL_HOST / Virtual hosts provide logical grouping and separation of resources
queue.rabbitmq.password TB_QUEUE_RABBIT_MQ_PASSWORD YOUR_PASSWORD User password for RabbitMQ user account
queue.rabbitmq.automatic_recovery_enabled TB_QUEUE_RABBIT_MQ_AUTOMATIC_RECOVERY_ENABLED false Network connection between clients and RabbitMQ nodes can fail. RabbitMQ Java client supports automatic recovery of connections and topology (queues, exchanges, bindings, and consumers)
queue.rabbitmq.connection_timeout TB_QUEUE_RABBIT_MQ_CONNECTION_TIMEOUT 60000 The connection timeout for the RabbitMQ connection factory
queue.rabbitmq.handshake_timeout TB_QUEUE_RABBIT_MQ_HANDSHAKE_TIMEOUT 10000 RabbitMQ has a timeout for connection handshake. When clients run in heavily constrained environments, it may be necessary to increase the timeout
queue.rabbitmq.queue-properties.rule-engine TB_QUEUE_RABBIT_MQ_RE_QUEUE_PROPERTIES x-max-length-bytes:1048576000;x-message-ttl:604800000 RabbitMQ properties for Rule Engine queues
queue.rabbitmq.queue-properties.core TB_QUEUE_RABBIT_MQ_CORE_QUEUE_PROPERTIES x-max-length-bytes:1048576000;x-message-ttl:604800000 RabbitMQ properties for Core queues
queue.rabbitmq.queue-properties.transport-api TB_QUEUE_RABBIT_MQ_TA_QUEUE_PROPERTIES x-max-length-bytes:1048576000;x-message-ttl:604800000 RabbitMQ properties for Transport Api queues
queue.rabbitmq.queue-properties.notifications TB_QUEUE_RABBIT_MQ_NOTIFICATIONS_QUEUE_PROPERTIES x-max-length-bytes:1048576000;x-message-ttl:604800000 RabbitMQ properties for Notifications queues
queue.rabbitmq.queue-properties.js-executor TB_QUEUE_RABBIT_MQ_JE_QUEUE_PROPERTIES x-max-length-bytes:1048576000;x-message-ttl:604800000 RabbitMQ properties for Js Executor queues
queue.partitions.hash_function_name TB_QUEUE_PARTITIONS_HASH_FUNCTION_NAME murmur3_128 Name of hash function used for consistent hash ring in Cluster Mode. See architecture docs for more details. murmur3_32, murmur3_128 or sha256
queue.transport_api.requests_topic TB_QUEUE_TRANSPORT_API_REQUEST_TOPIC tb_transport.api.requests Topic used to consume api requests from transport microservices
queue.transport_api.responses_topic TB_QUEUE_TRANSPORT_API_RESPONSE_TOPIC tb_transport.api.responses Topic used to produce api responses to transport microservices
queue.transport_api.max_pending_requests TB_QUEUE_TRANSPORT_MAX_PENDING_REQUESTS 10000 Maximum pending api requests from transport microservices to be handled by server
queue.transport_api.max_requests_timeout TB_QUEUE_TRANSPORT_MAX_REQUEST_TIMEOUT 10000 Maximum timeout in milliseconds to handle api request from transport microservice by server
queue.transport_api.max_callback_threads TB_QUEUE_TRANSPORT_MAX_CALLBACK_THREADS 100 Amount of threads used to invoke callbacks
queue.transport_api.request_poll_interval TB_QUEUE_TRANSPORT_REQUEST_POLL_INTERVAL_MS 25 Interval in milliseconds to poll api requests from transport microservices
queue.transport_api.response_poll_interval TB_QUEUE_TRANSPORT_RESPONSE_POLL_INTERVAL_MS 25 Interval in milliseconds to poll api response from transport microservices
queue.core.topic TB_QUEUE_CORE_TOPIC tb_core Topic name for Core microservices
queue.core.poll-interval TB_QUEUE_CORE_POLL_INTERVAL_MS 25 Interval in milliseconds to poll messages by Core microservices
queue.core.partitions TB_QUEUE_CORE_PARTITIONS 10 Amount of partitions used by Core microservices
queue.core.pack-processing-timeout TB_QUEUE_CORE_PACK_PROCESSING_TIMEOUT_MS 2000 Timeout for processing a message pack by Core microservices
queue.core.ota.topic TB_QUEUE_CORE_OTA_TOPIC tb_ota_package The topic for queue of OTA updates
queue.core.ota.pack-interval-ms TB_QUEUE_CORE_OTA_PACK_INTERVAL_MS 60000 The interval of processing the OTA updates for devices. Used to avoid any harm to network due to many parallel OTA updates
queue.core.ota.pack-size TB_QUEUE_CORE_OTA_PACK_SIZE 100 The size of OTA updates notifications fetched from the queue. The queue stores pairs of firmware and device ids.
queue.core.usage-stats-topic TB_QUEUE_US_TOPIC tb_usage_stats The parameter to store usage statistics
queue.core.stats.enabled TB_QUEUE_CORE_STATS_ENABLED true Enable/disable statistics for Core microservices
queue.core.stats.print-interval-ms TB_QUEUE_CORE_STATS_PRINT_INTERVAL_MS 60000 Statistics printing interval for Core microservices
queue.js.request_topic REMOTE_JS_EVAL_REQUEST_TOPIC js_eval.requests JS Eval request topic
queue.js.response_topic_prefix REMOTE_JS_EVAL_RESPONSE_TOPIC js_eval.responses JS Eval responses topic prefix that is combined with node id
queue.js.max_pending_requests REMOTE_JS_MAX_PENDING_REQUESTS 10000 JS Eval max pending requests
queue.js.max_eval_requests_timeout REMOTE_JS_MAX_EVAL_REQUEST_TIMEOUT 60000 JS Eval max request timeout
queue.js.max_requests_timeout REMOTE_JS_MAX_REQUEST_TIMEOUT 10000 JS max request timeout
queue.js.response_poll_interval REMOTE_JS_RESPONSE_POLL_INTERVAL_MS 25 JS response poll interval
queue.rule-engine.topic TB_QUEUE_RULE_ENGINE_TOPIC tb_rule_engine Topic name for Rule Engine microservices
queue.rule-engine.poll-interval TB_QUEUE_RULE_ENGINE_POLL_INTERVAL_MS 25 Interval in milliseconds to poll messages by Rule Engine microservices
queue.rule-engine.pack-processing-timeout TB_QUEUE_RULE_ENGINE_PACK_PROCESSING_TIMEOUT_MS 2000 Timeout for processing a message pack
queue.rule-engine.stats.enabled TB_QUEUE_RULE_ENGINE_STATS_ENABLED true Enable/disable statistics for Rule Engine microservices
queue.rule-engine.stats.print-interval-ms TB_QUEUE_RULE_ENGINE_STATS_PRINT_INTERVAL_MS 60000 Statistics printing interval for Rule Engine microservices
queue.transport.notifications_topic TB_QUEUE_TRANSPORT_NOTIFICATIONS_TOPIC tb_transport.notifications Transport notifications topic
queue.transport.poll_interval TB_QUEUE_TRANSPORT_NOTIFICATIONS_POLL_INTERVAL_MS 25 Interval in milliseconds to poll messages by Core microservices
queue.vc.topic TB_QUEUE_VC_TOPIC tb_version_control Topic for storing Version Control synchronization tasks
queue.vc.partitions TB_QUEUE_VC_PARTITIONS 10 Amount of partitions used by Version Control microservices
queue.vc.poll-interval TB_QUEUE_VC_INTERVAL_MS 10 Interval in milliseconds to poll messages by Version Control microservices
queue.vc.pack-processing-timeout TB_QUEUE_VC_PACK_PROCESSING_TIMEOUT_MS 10 Timeout for processing a message pack

ThingsBoard service parameters

ParameterEnvironment VariableDefault ValueDescription
service.type TB_SERVICE_TYPE tb-transport
service.id TB_SERVICE_ID Unique id for this service (autogenerated if empty)
service.tenant_id TB_SERVICE_TENANT_ID Empty or specific tenant id

ThingsBoard metrics parameters

ParameterEnvironment VariableDefault ValueDescription
metrics.enabled METRICS_ENABLED false Enable/disable actuator metrics

ThingsBoard management parameters

ParameterEnvironment VariableDefault ValueDescription
management.endpoints.web.exposure.include METRICS_ENDPOINTS_EXPOSE info Expose metrics endpoint (use value 'prometheus' to enable prometheus metrics)

LWM2M Transport Parameters

ParameterEnvironment VariableDefault ValueDescription
spring.main.web-environment WEB_APPLICATION_ENABLE false If you enabled process metrics you should also enable 'web-environment'
spring.main.web-application-type WEB_APPLICATION_TYPE none If you enabled process metrics you should set 'web-application-type' to 'servlet' value

Server Parameters

ParameterEnvironment VariableDefault ValueDescription
server.address HTTP_BIND_ADDRESS 0.0.0.0 Server bind address (has no effect if web-environment is disabled)
server.port HTTP_BIND_PORT 8083 Server bind port (has no effect if web-environment is disabled)

Zookeeper connection parameters

ParameterEnvironment VariableDefault ValueDescription
zk.enabled ZOOKEEPER_ENABLED false Enable/disable zookeeper discovery service. Used for ThingsBoard cluster
zk.url ZOOKEEPER_URL localhost:2181 Zookeeper connect string
zk.retry_interval_ms ZOOKEEPER_RETRY_INTERVAL_MS 3000 Zookeeper retry interval in milliseconds
zk.connection_timeout_ms ZOOKEEPER_CONNECTION_TIMEOUT_MS 3000 Zookeeper connection timeout in milliseconds
zk.session_timeout_ms ZOOKEEPER_SESSION_TIMEOUT_MS 3000 Zookeeper session timeout in milliseconds
zk.zk_dir ZOOKEEPER_NODES_DIR /thingsboard Name of the directory in zookeeper 'filesystem'

Cache Parameter

ParameterEnvironment VariableDefault ValueDescription
cache.type CACHE_TYPE redis

Redis connection parameters

ParameterEnvironment VariableDefault ValueDescription
redis.connection.type REDIS_CONNECTION_TYPE standalone Redis connection type - standalone or cluster
redis.standalone.host REDIS_HOST localhost Redis connection host
redis.standalone.port REDIS_PORT 6379 Redis connection port
redis.standalone.useDefaultClientConfig REDIS_USE_DEFAULT_CLIENT_CONFIG true Redis connection port
redis.standalone.clientName REDIS_CLIENT_NAME standalone This value may be used only if you used not default ClientConfig
redis.standalone.connectTimeout REDIS_CLIENT_CONNECT_TIMEOUT 30000 This value may be used only if you used not default ClientConfig
redis.standalone.readTimeout REDIS_CLIENT_READ_TIMEOUT 60000 This value may be used only if you used not default ClientConfig
redis.standalone.usePoolConfig REDIS_CLIENT_USE_POOL_CONFIG false This value may be used only if you used not default ClientConfig
redis.cluster.nodes REDIS_NODES Comma-separated list of "host:port" pairs to bootstrap from
redis.cluster.max-redirects REDIS_MAX_REDIRECTS 12 Maximum number of redirects to follow when executing commands across the cluster
redis.cluster.useDefaultPoolConfig REDIS_USE_DEFAULT_POOL_CONFIG true Use default redis pool configuration. If set to "true", the REDIS_POOL_CONFIG_* properties will be ignored.
redis.db REDIS_DB 0 Redis database index
redis.password REDIS_PASSWORD Redis database password
redis.pool_config.maxTotal REDIS_POOL_CONFIG_MAX_TOTAL 128 General redis pool settings
redis.pool_config.maxIdle REDIS_POOL_CONFIG_MAX_IDLE 128 General redis pool settings
redis.pool_config.minIdle REDIS_POOL_CONFIG_MIN_IDLE 16 General redis pool settings
redis.pool_config.testOnBorrow REDIS_POOL_CONFIG_TEST_ON_BORROW true General redis pool settings
redis.pool_config.testOnReturn REDIS_POOL_CONFIG_TEST_ON_RETURN true General redis pool settings
redis.pool_config.testWhileIdle REDIS_POOL_CONFIG_TEST_WHILE_IDLE true General redis pool settings
redis.pool_config.minEvictableMs REDIS_POOL_CONFIG_MIN_EVICTABLE_MS 60000 General redis pool settings
redis.pool_config.evictionRunsMs REDIS_POOL_CONFIG_EVICTION_RUNS_MS 30000 General redis pool settings
redis.pool_config.maxWaitMills REDIS_POOL_CONFIG_MAX_WAIT_MS 60000 General redis pool settings
redis.pool_config.numberTestsPerEvictionRun REDIS_POOL_CONFIG_NUMBER_TESTS_PER_EVICTION_RUN 3 General redis pool settings
redis.pool_config.blockWhenExhausted REDIS_POOL_CONFIG_BLOCK_WHEN_EXHAUSTED true General redis pool settings

LWM2M server parameters

ParameterEnvironment VariableDefault ValueDescription
transport.lwm2m.server.id LWM2M_SERVER_ID 123 LwM2M Server ID
transport.lwm2m.server.bind_address LWM2M_BIND_ADDRESS 0.0.0.0 LwM2M server bind address. Bind to all interfaces by default.
transport.lwm2m.server.bind_port LWM2M_BIND_PORT 5685 LwM2M server bind port.
transport.lwm2m.server.security.bind_address LWM2M_SECURITY_BIND_ADDRESS 0.0.0.0 LwM2M server bind address for DTLS. Bind to all interfaces by default.
transport.lwm2m.server.security.bind_port LWM2M_SECURITY_BIND_PORT 5686 LwM2M server bind port for DTLS.
transport.lwm2m.server.security.credentials.enabled LWM2M_SERVER_CREDENTIALS_ENABLED true Whether to enable LWM2M server X509 Certificate/RPK support
transport.lwm2m.server.security.credentials.type LWM2M_SERVER_CREDENTIALS_TYPE PEM Server credentials type (PEM - pem certificate file; KEYSTORE - java keystore)
transport.lwm2m.server.security.credentials.pem.cert_file LWM2M_SERVER_PEM_CERT lwm2mserver.pem Path to the server certificate file (holds server certificate or certificate chain, may include server private key)
transport.lwm2m.server.security.credentials.pem.key_file LWM2M_SERVER_PEM_KEY lwm2mserver_key.pem Path to the server certificate private key file (optional)
transport.lwm2m.server.security.credentials.pem.key_password LWM2M_SERVER_PEM_KEY_PASSWORD server_key_password Server certificate private key password (optional)
transport.lwm2m.server.security.credentials.keystore.type LWM2M_SERVER_KEY_STORE_TYPE JKS Type of the key store
transport.lwm2m.server.security.credentials.keystore.store_file LWM2M_SERVER_KEY_STORE lwm2mserver.jks Path to the key store that holds the SSL certificate
transport.lwm2m.server.security.credentials.keystore.store_password LWM2M_SERVER_KEY_STORE_PASSWORD server_ks_password Password used to access the key store
transport.lwm2m.server.security.credentials.keystore.key_alias LWM2M_SERVER_KEY_ALIAS server Key alias
transport.lwm2m.server.security.credentials.keystore.key_password LWM2M_SERVER_KEY_PASSWORD server_ks_password Password used to access the key
transport.lwm2m.server.security.skip_validity_check_for_client_cert TB_LWM2M_SERVER_SECURITY_SKIP_VALIDITY_CHECK_FOR_CLIENT_CERT false Only Certificate_x509
transport.lwm2m.bootstrap.enable LWM2M_ENABLED_BS true Enable/disable Bootstrap Server
transport.lwm2m.bootstrap.id LWM2M_SERVER_ID_BS 111 This is:
* Default value in Lwm2mClient after start in mode Bootstrap for the object : name "LWM2M Security" field: "Short Server ID" (deviceProfile: Bootstrap.BOOTSTRAP SERVER.Short ID)
transport.lwm2m.bootstrap.bind_address LWM2M_BS_BIND_ADDRESS 0.0.0.0 LwM2M bootstrap server bind address. Bind to all interfaces by default.
transport.lwm2m.bootstrap.bind_port LWM2M_BS_BIND_PORT 5687 LwM2M bootstrap server bind port
transport.lwm2m.bootstrap.security.bind_address LWM2M_BS_SECURITY_BIND_ADDRESS 0.0.0.0 LwM2M bootstrap server bind address for DTLS. Bind to all interfaces by default.
transport.lwm2m.bootstrap.security.bind_port LWM2M_BS_SECURITY_BIND_PORT 5688 LwM2M bootstrap server bind port for DTLS.
transport.lwm2m.bootstrap.security.credentials.enabled LWM2M_BS_CREDENTIALS_ENABLED true Whether to enable LWM2M bootstrap server X509 Certificate/RPK support
transport.lwm2m.bootstrap.security.credentials.type LWM2M_BS_CREDENTIALS_TYPE PEM Server credentials type (PEM - pem certificate file; KEYSTORE - java keystore)
transport.lwm2m.bootstrap.security.credentials.pem.cert_file LWM2M_BS_PEM_CERT lwm2mserver.pem Path to the server certificate file (holds server certificate or certificate chain, may include server private key)
transport.lwm2m.bootstrap.security.credentials.pem.key_file LWM2M_BS_PEM_KEY lwm2mserver_key.pem Path to the server certificate private key file (optional)
transport.lwm2m.bootstrap.security.credentials.pem.key_password LWM2M_BS_PEM_KEY_PASSWORD server_key_password Server certificate private key password (optional)
transport.lwm2m.bootstrap.security.credentials.keystore.type LWM2M_BS_KEY_STORE_TYPE JKS Type of the key store
transport.lwm2m.bootstrap.security.credentials.keystore.store_file LWM2M_BS_KEY_STORE lwm2mserver.jks Path to the key store that holds the SSL certificate
transport.lwm2m.bootstrap.security.credentials.keystore.store_password LWM2M_BS_KEY_STORE_PASSWORD server_ks_password Password used to access the key store
transport.lwm2m.bootstrap.security.credentials.keystore.key_alias LWM2M_BS_KEY_ALIAS bootstrap Key alias
transport.lwm2m.bootstrap.security.credentials.keystore.key_password LWM2M_BS_KEY_PASSWORD server_ks_password Password used to access the key
transport.lwm2m.security.trust-credentials.enabled LWM2M_TRUST_CREDENTIALS_ENABLED true Whether to load X509 trust certificates
transport.lwm2m.security.trust-credentials.type LWM2M_TRUST_CREDENTIALS_TYPE PEM Trust certificates store type (PEM - pem certificates file; KEYSTORE - java keystore)
transport.lwm2m.security.trust-credentials.pem.cert_file LWM2M_TRUST_PEM_CERT lwm2mserver.pem Path to the certificates file (holds trust certificates)
transport.lwm2m.security.trust-credentials.keystore.type LWM2M_TRUST_KEY_STORE_TYPE JKS Type of the key store
transport.lwm2m.security.trust-credentials.keystore.store_file LWM2M_TRUST_KEY_STORE lwm2mserver.jks Path to the key store that holds the X509 certificates
transport.lwm2m.security.trust-credentials.keystore.store_password LWM2M_TRUST_KEY_STORE_PASSWORD server_ks_password Password used to access the key store
transport.lwm2m.security.recommended_ciphers LWM2M_RECOMMENDED_CIPHERS false Set usage of recommended cipher suites.
* Params DTLS Connector config:
-- recommendedCipherSuitesOnly = true allow only recommended cipher suites,
-- recommendedCipherSuitesOnly = false, also allow not recommended cipher suites.
transport.lwm2m.security.recommended_supported_groups LWM2M_RECOMMENDED_SUPPORTED_GROUPS true Set usage of recommended supported groups (curves).
* Params DTLS Connector config:
-- recommendedSupportedGroupsOnly = true allow only recommended supported groups,
-- recommendedSupportedGroupsOnly = false, also allow not recommended supported groups. Default value is true
transport.lwm2m.timeout LWM2M_TIMEOUT 120000 Timeout of LwM2M operation
transport.lwm2m.uplink_pool_size LWM2M_UPLINK_POOL_SIZE 10 Thread pool size for processing of the LwM2M uplinks
transport.lwm2m.downlink_pool_size LWM2M_DOWNLINK_POOL_SIZE 10 Thread pool size for processing of the LwM2M downlinks
transport.lwm2m.ota_pool_size LWM2M_OTA_POOL_SIZE 10 Thread pool size for processing of the OTA updates
transport.lwm2m.clean_period_in_sec LWM2M_CLEAN_PERIOD_IN_SEC 2 Period of cleanup for the registrations in store
transport.lwm2m.redis.enabled LWM2M_REDIS_ENABLED false Enable/disable Redis for lvm2m transport
ParameterEnvironment VariableDefault ValueDescription
transport.sessions.inactivity_timeout TB_TRANSPORT_SESSIONS_INACTIVITY_TIMEOUT 300000 Inactivity timeout for device session in transport service. The last activity time of the device session is updated if device sends any message, including keepalive messages.
transport.sessions.report_timeout TB_TRANSPORT_SESSIONS_REPORT_TIMEOUT 3000 Interval of periodic check for expired sessions and report of the changes to session last activity time.
transport.rate_limits.enabled TB_TRANSPORT_RATE_LIMITS_ENABLED false
transport.rate_limits.tenant TB_TRANSPORT_RATE_LIMITS_TENANT 1000:1,20000:60
transport.rate_limits.device TB_TRANSPORT_RATE_LIMITS_DEVICE 10:1,300:60
transport.json.type_cast_enabled JSON_TYPE_CAST_ENABLED false Cast String data types to Numeric if possible when processing Telemetry/Attributes JSON
transport.json.max_string_value_length JSON_MAX_STRING_VALUE_LENGTH 0 Maximum allowed string value length when processing Telemetry/Attributes JSON (0 value disables string value length check)
transport.client_side_rpc.timeout CLIENT_SIDE_RPC_TIMEOUT 60000
transport.api_enabled TB_TRANSPORT_API_ENABLED true Enable/disable http/mqtt/coap transport protocols (has higher priority than certain protocol's 'enabled' property)
transport.log.enabled TB_TRANSPORT_LOG_ENABLED true Enable/Disable log of transport messages to telemetry. For example, logging of LwM2M registration update.
transport.log.max_length TB_TRANSPORT_LOG_MAX_LENGTH 1024 Maximum length of the log message. The content will be truncated to the specified value if needed.
transport.stats.enabled TB_TRANSPORT_STATS_ENABLED true Enable/Disable collection of transport statistics
transport.stats.print-interval-ms TB_TRANSPORT_STATS_PRINT_INTERVAL_MS 60000 Interval of transport statistics logging.

Queue parameters

ParameterEnvironment VariableDefault ValueDescription
queue.type TB_QUEUE_TYPE kafka In-memory or kafka (Apache Kafka) or aws-sqs (AWS SQS) or pubsub (PubSub) or service-bus (Azure Service Bus) or rabbitmq (RabbitMQ)
ParameterEnvironment VariableDefault ValueDescription
queue.kafka.bootstrap.servers TB_KAFKA_SERVERS localhost:9092 Kafka Bootstrap servers list as a connection string for kafka client
queue.kafka.acks TB_KAFKA_ACKS all General Kafka client setting
queue.kafka.retries TB_KAFKA_RETRIES 1 General Kafka client setting
queue.kafka.compression TB_KAFKA_COMPRESSION_TYPE none Compression of the Kafka messages: none or gzip
queue.kafka.batch.size TB_KAFKA_BATCH_SIZE 16384 General Kafka client setting
queue.kafka.linger.ms TB_KAFKA_LINGER_MS 1 General Kafka client setting
queue.kafka.max.request.size TB_KAFKA_MAX_REQUEST_SIZE 1048576 General Kafka client setting
queue.kafka.max.in.flight.requests.per.connection TB_KAFKA_MAX_IN_FLIGHT_REQUESTS_PER_CONNECTION 5 General Kafka client setting
queue.kafka.buffer.memory TB_BUFFER_MEMORY 33554432 General Kafka client setting
queue.kafka.replication_factor TB_QUEUE_KAFKA_REPLICATION_FACTOR 1 General Kafka client setting
queue.kafka.max_poll_interval_ms TB_QUEUE_KAFKA_MAX_POLL_INTERVAL_MS 300000 General Kafka client setting
queue.kafka.max_poll_records TB_QUEUE_KAFKA_MAX_POLL_RECORDS 8192 General Kafka client setting
queue.kafka.max_partition_fetch_bytes TB_QUEUE_KAFKA_MAX_PARTITION_FETCH_BYTES 16777216 General Kafka client setting
queue.kafka.fetch_max_bytes TB_QUEUE_KAFKA_FETCH_MAX_BYTES 134217728 General Kafka client setting
queue.kafka.use_confluent_cloud TB_QUEUE_KAFKA_USE_CONFLUENT_CLOUD false Enable to connect to Confluent Cloud.
queue.kafka.confluent.ssl.algorithm TB_QUEUE_KAFKA_CONFLUENT_SSL_ALGORITHM https Confluent Cloud connection settings
queue.kafka.confluent.sasl.mechanism TB_QUEUE_KAFKA_CONFLUENT_SASL_MECHANISM PLAIN Confluent Cloud connection settings
queue.kafka.confluent.sasl.config TB_QUEUE_KAFKA_CONFLUENT_SASL_JAAS_CONFIG Confluent Cloud connection settings
queue.kafka.confluent.security.protocol TB_QUEUE_KAFKA_CONFLUENT_SECURITY_PROTOCOL SASL_SSL Confluent Cloud connection settings
queue.kafka.consumer-properties-per-topic.tb_ota_package.key max.poll.records Example of specific consumer properties key per topic
queue.kafka.consumer-properties-per-topic.tb_ota_package.value TB_QUEUE_KAFKA_OTA_MAX_POLL_RECORDS 10 Example of specific consumer properties value per topic
queue.kafka.other.key request.timeout.ms refer to https://docs.confluent.io/platform/current/installation/configuration/producer-configs.html#producerconfigs_request.timeout.ms
queue.kafka.other.value TB_QUEUE_KAFKA_REQUEST_TIMEOUT_MS 30000 (30 seconds)
queue.kafka.other.key session.timeout.ms refer to https://docs.confluent.io/platform/current/installation/configuration/consumer-configs.html#consumerconfigs_session.timeout.ms
queue.kafka.other.value TB_QUEUE_KAFKA_SESSION_TIMEOUT_MS 10000 (10 seconds)
queue.kafka.topic-properties.rule-engine TB_QUEUE_KAFKA_RE_TOPIC_PROPERTIES retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 Kafka properties for Rule Engine topics
queue.kafka.topic-properties.core TB_QUEUE_KAFKA_CORE_TOPIC_PROPERTIES retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 Kafka properties for Core topics
queue.kafka.topic-properties.transport-api TB_QUEUE_KAFKA_TA_TOPIC_PROPERTIES retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 Kafka properties for Transport Api topics
queue.kafka.topic-properties.notifications TB_QUEUE_KAFKA_NOTIFICATIONS_TOPIC_PROPERTIES retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 Kafka properties for Notifications topics
queue.kafka.topic-properties.js-executor TB_QUEUE_KAFKA_JE_TOPIC_PROPERTIES retention.ms:604800000;segment.bytes:26214400;retention.bytes:104857600;partitions:100;min.insync.replicas:1 Kafka properties for JS Executor topics
queue.kafka.topic-properties.ota-updates TB_QUEUE_KAFKA_OTA_TOPIC_PROPERTIES retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:10;min.insync.replicas:1 Kafka properties for OTA updates topic
queue.kafka.consumer-stats.enabled TB_QUEUE_KAFKA_CONSUMER_STATS_ENABLED true Prints lag between consumer group offset and last messages offset in Kafka topics
queue.kafka.consumer-stats.print-interval-ms TB_QUEUE_KAFKA_CONSUMER_STATS_MIN_PRINT_INTERVAL_MS 60000 Statistics printing interval for Kafka's consumer-groups stats
queue.kafka.consumer-stats.kafka-response-timeout-ms TB_QUEUE_KAFKA_CONSUMER_STATS_RESPONSE_TIMEOUT_MS 1000 Time to wait for the stats-loading requests to Kafka to finish
queue.aws_sqs.use_default_credential_provider_chain TB_QUEUE_AWS_SQS_USE_DEFAULT_CREDENTIAL_PROVIDER_CHAIN false Use default credentials provider for AWS SQS
queue.aws_sqs.access_key_id TB_QUEUE_AWS_SQS_ACCESS_KEY_ID YOUR_KEY Access key ID from AWS IAM user
queue.aws_sqs.secret_access_key TB_QUEUE_AWS_SQS_SECRET_ACCESS_KEY YOUR_SECRET Secret access key from AWS IAM user
queue.aws_sqs.region TB_QUEUE_AWS_SQS_REGION YOUR_REGION Region from AWS account
queue.aws_sqs.threads_per_topic TB_QUEUE_AWS_SQS_THREADS_PER_TOPIC 1 Number of threads per each AWS SQS queue in consumer
queue.aws_sqs.queue-properties.rule-engine TB_QUEUE_AWS_SQS_RE_QUEUE_PROPERTIES VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
queue.aws_sqs.queue-properties.core TB_QUEUE_AWS_SQS_CORE_QUEUE_PROPERTIES VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
queue.aws_sqs.queue-properties.transport-api TB_QUEUE_AWS_SQS_TA_QUEUE_PROPERTIES VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
queue.aws_sqs.queue-properties.notifications TB_QUEUE_AWS_SQS_NOTIFICATIONS_QUEUE_PROPERTIES VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
queue.aws_sqs.queue-properties.js-executor TB_QUEUE_AWS_SQS_JE_QUEUE_PROPERTIES VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
queue.pubsub.project_id TB_QUEUE_PUBSUB_PROJECT_ID YOUR_PROJECT_ID Project Id from google cloud
queue.pubsub.service_account TB_QUEUE_PUBSUB_SERVICE_ACCOUNT YOUR_SERVICE_ACCOUNT API Credentials in json format
queue.pubsub.max_msg_size TB_QUEUE_PUBSUB_MAX_MSG_SIZE 1048576 in bytes
queue.pubsub.max_messages TB_QUEUE_PUBSUB_MAX_MESSAGES 1000 Number of messages per a consumer
queue.pubsub.queue-properties.rule-engine TB_QUEUE_PUBSUB_RE_QUEUE_PROPERTIES ackDeadlineInSec:30;messageRetentionInSec:604800 Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consume again
queue.pubsub.queue-properties.core TB_QUEUE_PUBSUB_CORE_QUEUE_PROPERTIES ackDeadlineInSec:30;messageRetentionInSec:604800 Pub/Sub properties for Core subscribers, messages which will commit after ackDeadlineInSec period can be consume again
queue.pubsub.queue-properties.transport-api TB_QUEUE_PUBSUB_TA_QUEUE_PROPERTIES ackDeadlineInSec:30;messageRetentionInSec:604800 Pub/Sub properties for Transport Api subscribers, messages which will commit after ackDeadlineInSec period can be consume again
queue.pubsub.queue-properties.notifications TB_QUEUE_PUBSUB_NOTIFICATIONS_QUEUE_PROPERTIES ackDeadlineInSec:30;messageRetentionInSec:604800 Pub/Sub properties for Notifications subscribers, messages which will commit after ackDeadlineInSec period can be consume again
queue.pubsub.queue-properties.js-executor TB_QUEUE_PUBSUB_JE_QUEUE_PROPERTIES ackDeadlineInSec:30;messageRetentionInSec:604800 Pub/Sub properties for Js Executor subscribers, messages which will commit after ackDeadlineInSec period can be consume again
queue.service_bus.namespace_name TB_QUEUE_SERVICE_BUS_NAMESPACE_NAME YOUR_NAMESPACE_NAME Azure namespace is a scoping container for all messaging components
queue.service_bus.sas_key_name TB_QUEUE_SERVICE_BUS_SAS_KEY_NAME YOUR_SAS_KEY_NAME Azure Service Bus Shared Access Signatures key name
queue.service_bus.sas_key TB_QUEUE_SERVICE_BUS_SAS_KEY YOUR_SAS_KEY Azure Service Bus Shared Access Signatures key
queue.service_bus.max_messages TB_QUEUE_SERVICE_BUS_MAX_MESSAGES 1000 Number of messages per a consumer
queue.service_bus.queue-properties.rule-engine TB_QUEUE_SERVICE_BUS_RE_QUEUE_PROPERTIES lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 Azure Service Bus properties for Rule Engine queues
queue.service_bus.queue-properties.core TB_QUEUE_SERVICE_BUS_CORE_QUEUE_PROPERTIES lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 Azure Service Bus properties for Core queues
queue.service_bus.queue-properties.transport-api TB_QUEUE_SERVICE_BUS_TA_QUEUE_PROPERTIES lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 Azure Service Bus properties for Transport Api queues
queue.service_bus.queue-properties.notifications TB_QUEUE_SERVICE_BUS_NOTIFICATIONS_QUEUE_PROPERTIES lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 Azure Service Bus properties for Notifications queues
queue.service_bus.queue-properties.js-executor TB_QUEUE_SERVICE_BUS_JE_QUEUE_PROPERTIES lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 Azure Service Bus properties for Js Executor queues
queue.rabbitmq.exchange_name TB_QUEUE_RABBIT_MQ_EXCHANGE_NAME Default empty
queue.rabbitmq.host TB_QUEUE_RABBIT_MQ_HOST localhost RabbitMQ host used to establish connection
queue.rabbitmq.port TB_QUEUE_RABBIT_MQ_PORT 5672 RabbitMQ host used to establish connection
queue.rabbitmq.virtual_host TB_QUEUE_RABBIT_MQ_VIRTUAL_HOST / Virtual hosts provide logical grouping and separation of resources
queue.rabbitmq.password TB_QUEUE_RABBIT_MQ_PASSWORD YOUR_PASSWORD User password for RabbitMQ user account
queue.rabbitmq.automatic_recovery_enabled TB_QUEUE_RABBIT_MQ_AUTOMATIC_RECOVERY_ENABLED false Network connection between clients and RabbitMQ nodes can fail. RabbitMQ Java client supports automatic recovery of connections and topology (queues, exchanges, bindings, and consumers)
queue.rabbitmq.connection_timeout TB_QUEUE_RABBIT_MQ_CONNECTION_TIMEOUT 60000 The connection timeout for the RabbitMQ connection factory
queue.rabbitmq.handshake_timeout TB_QUEUE_RABBIT_MQ_HANDSHAKE_TIMEOUT 10000 RabbitMQ has a timeout for connection handshake. When clients run in heavily constrained environments, it may be necessary to increase the timeout
queue.rabbitmq.queue-properties.rule-engine TB_QUEUE_RABBIT_MQ_RE_QUEUE_PROPERTIES x-max-length-bytes:1048576000;x-message-ttl:604800000 RabbitMQ properties for Rule Engine queues
queue.rabbitmq.queue-properties.core TB_QUEUE_RABBIT_MQ_CORE_QUEUE_PROPERTIES x-max-length-bytes:1048576000;x-message-ttl:604800000 RabbitMQ properties for Core queues
queue.rabbitmq.queue-properties.transport-api TB_QUEUE_RABBIT_MQ_TA_QUEUE_PROPERTIES x-max-length-bytes:1048576000;x-message-ttl:604800000 RabbitMQ properties for Transport Api queues
queue.rabbitmq.queue-properties.notifications TB_QUEUE_RABBIT_MQ_NOTIFICATIONS_QUEUE_PROPERTIES x-max-length-bytes:1048576000;x-message-ttl:604800000 RabbitMQ properties for Notifications queues
queue.rabbitmq.queue-properties.js-executor TB_QUEUE_RABBIT_MQ_JE_QUEUE_PROPERTIES x-max-length-bytes:1048576000;x-message-ttl:604800000 RabbitMQ properties for Js Executor queues
queue.partitions.hash_function_name TB_QUEUE_PARTITIONS_HASH_FUNCTION_NAME murmur3_128 Name of hash function used for consistent hash ring in Cluster Mode. See architecture docs for more details. murmur3_32, murmur3_128 or sha256
queue.transport_api.requests_topic TB_QUEUE_TRANSPORT_API_REQUEST_TOPIC tb_transport.api.requests Topic used to consume api requests from transport microservices
queue.transport_api.responses_topic TB_QUEUE_TRANSPORT_API_RESPONSE_TOPIC tb_transport.api.responses Topic used to produce api responses to transport microservices
queue.transport_api.max_pending_requests TB_QUEUE_TRANSPORT_MAX_PENDING_REQUESTS 10000 Maximum pending api requests from transport microservices to be handled by server
queue.transport_api.max_requests_timeout TB_QUEUE_TRANSPORT_MAX_REQUEST_TIMEOUT 10000 Maximum timeout in milliseconds to handle api request from transport microservice by server
queue.transport_api.max_callback_threads TB_QUEUE_TRANSPORT_MAX_CALLBACK_THREADS 100 Amount of threads used to invoke callbacks
queue.transport_api.request_poll_interval TB_QUEUE_TRANSPORT_REQUEST_POLL_INTERVAL_MS 25 Interval in milliseconds to poll api requests from transport microservices
queue.transport_api.response_poll_interval TB_QUEUE_TRANSPORT_RESPONSE_POLL_INTERVAL_MS 25 Interval in milliseconds to poll api response from transport microservices
queue.core.topic TB_QUEUE_CORE_TOPIC tb_core Topic name for Core microservices
queue.core.poll-interval TB_QUEUE_CORE_POLL_INTERVAL_MS 25 Interval in milliseconds to poll messages by Core microservices
queue.core.partitions TB_QUEUE_CORE_PARTITIONS 10 Amount of partitions used by Core microservices
queue.core.pack-processing-timeout TB_QUEUE_CORE_PACK_PROCESSING_TIMEOUT_MS 2000 Timeout for processing a message pack by Core microservices
queue.core.ota.topic TB_QUEUE_CORE_OTA_TOPIC tb_ota_package The topic for queue of OTA updates
queue.core.ota.pack-interval-ms TB_QUEUE_CORE_OTA_PACK_INTERVAL_MS 60000 The interval of processing the OTA updates for devices. Used to avoid any harm to network due to many parallel OTA updates
queue.core.ota.pack-size TB_QUEUE_CORE_OTA_PACK_SIZE 100 The size of OTA updates notifications fetched from the queue. The queue stores pairs of firmware and device ids.
queue.core.usage-stats-topic TB_QUEUE_US_TOPIC tb_usage_stats The parameter to store usage statistics
queue.core.stats.enabled TB_QUEUE_CORE_STATS_ENABLED true Enable/disable statistics for Core microservices
queue.core.stats.print-interval-ms TB_QUEUE_CORE_STATS_PRINT_INTERVAL_MS 60000 Statistics printing interval for Core microservices
queue.js.request_topic REMOTE_JS_EVAL_REQUEST_TOPIC js_eval.requests JS Eval request topic
queue.js.response_topic_prefix REMOTE_JS_EVAL_RESPONSE_TOPIC js_eval.responses JS Eval responses topic prefix that is combined with node id
queue.js.max_pending_requests REMOTE_JS_MAX_PENDING_REQUESTS 10000 JS Eval max pending requests
queue.js.max_eval_requests_timeout REMOTE_JS_MAX_EVAL_REQUEST_TIMEOUT 60000 JS Eval max request timeout
queue.js.max_requests_timeout REMOTE_JS_MAX_REQUEST_TIMEOUT 10000 JS max request timeout
queue.js.response_poll_interval REMOTE_JS_RESPONSE_POLL_INTERVAL_MS 25 JS response poll interval
queue.rule-engine.topic TB_QUEUE_RULE_ENGINE_TOPIC tb_rule_engine Topic name for Rule Engine microservices
queue.rule-engine.poll-interval TB_QUEUE_RULE_ENGINE_POLL_INTERVAL_MS 25 Interval in milliseconds to poll messages by Rule Engine microservices
queue.rule-engine.pack-processing-timeout TB_QUEUE_RULE_ENGINE_PACK_PROCESSING_TIMEOUT_MS 2000 Timeout for processing a message pack
queue.rule-engine.stats.enabled TB_QUEUE_RULE_ENGINE_STATS_ENABLED true Enable/disable statistics for Rule Engine microservices
queue.rule-engine.stats.print-interval-ms TB_QUEUE_RULE_ENGINE_STATS_PRINT_INTERVAL_MS 60000 Statistics printing interval for Rule Engine microservices
queue.transport.notifications_topic TB_QUEUE_TRANSPORT_NOTIFICATIONS_TOPIC tb_transport.notifications Transport notifications topic
queue.transport.poll_interval TB_QUEUE_TRANSPORT_NOTIFICATIONS_POLL_INTERVAL_MS 25 Interval in milliseconds to poll messages by Core microservices
queue.vc.topic TB_QUEUE_VC_TOPIC tb_version_control Topic for storing Version Control synchronization tasks
queue.vc.partitions TB_QUEUE_VC_PARTITIONS 10 Amount of partitions used by Version Control microservices
queue.vc.poll-interval TB_QUEUE_VC_INTERVAL_MS 10 Interval in milliseconds to poll messages by Version Control microservices
queue.vc.pack-processing-timeout TB_QUEUE_VC_PACK_PROCESSING_TIMEOUT_MS 10 Timeout for processing a message pack

ThingsBoard service parameters

ParameterEnvironment VariableDefault ValueDescription
service.type TB_SERVICE_TYPE tb-transport
service.id TB_SERVICE_ID Unique id for this service (autogenerated if empty)
service.tenant_id TB_SERVICE_TENANT_ID Empty or specific tenant id

ThingsBoard metrics parameters

ParameterEnvironment VariableDefault ValueDescription
metrics.enabled METRICS_ENABLED false Enable/disable actuator metrics

ThingsBoard management parameters

ParameterEnvironment VariableDefault ValueDescription
management.endpoints.web.exposure.include METRICS_ENDPOINTS_EXPOSE info Expose metrics endpoint (use value 'prometheus' to enable prometheus metrics)

SNMP Transport Parameters

ParameterEnvironment VariableDefault ValueDescription
spring.main.web-environment WEB_APPLICATION_ENABLE false If you enabled process metrics you should also enable 'web-environment'
spring.main.web-application-type WEB_APPLICATION_TYPE none If you enabled process metrics you should set 'web-application-type' to 'servlet' value

Server Parameters

ParameterEnvironment VariableDefault ValueDescription
server.address HTTP_BIND_ADDRESS 0.0.0.0 Server bind address (has no effect if web-environment is disabled)
server.port HTTP_BIND_PORT 8083 Server bind port (has no effect if web-environment is disabled)

Zookeeper connection parameters

ParameterEnvironment VariableDefault ValueDescription
zk.enabled ZOOKEEPER_ENABLED false Enable/disable zookeeper discovery service. Used for ThingsBoard cluster
zk.url ZOOKEEPER_URL localhost:2181 Zookeeper connect string
zk.retry_interval_ms ZOOKEEPER_RETRY_INTERVAL_MS 3000 Zookeeper retry interval in milliseconds
zk.connection_timeout_ms ZOOKEEPER_CONNECTION_TIMEOUT_MS 3000 Zookeeper connection timeout in milliseconds
zk.session_timeout_ms ZOOKEEPER_SESSION_TIMEOUT_MS 3000 Zookeeper session timeout in milliseconds
zk.zk_dir ZOOKEEPER_NODES_DIR /thingsboard Name of the directory in zookeeper 'filesystem'

Cache Parameter

ParameterEnvironment VariableDefault ValueDescription
cache.type CACHE_TYPE redis

Redis connection parameters

ParameterEnvironment VariableDefault ValueDescription
redis.connection.type REDIS_CONNECTION_TYPE standalone Redis connection type - standalone or cluster
redis.standalone.host REDIS_HOST localhost Redis connection host
redis.standalone.port REDIS_PORT 6379 Redis connection port
redis.standalone.useDefaultClientConfig REDIS_USE_DEFAULT_CLIENT_CONFIG true Redis connection port
redis.standalone.clientName REDIS_CLIENT_NAME standalone This value may be used only if you used not default ClientConfig
redis.standalone.connectTimeout REDIS_CLIENT_CONNECT_TIMEOUT 30000 This value may be used only if you used not default ClientConfig
redis.standalone.readTimeout REDIS_CLIENT_READ_TIMEOUT 60000 This value may be used only if you used not default ClientConfig
redis.standalone.usePoolConfig REDIS_CLIENT_USE_POOL_CONFIG false This value may be used only if you used not default ClientConfig
redis.cluster.nodes REDIS_NODES Comma-separated list of "host:port" pairs to bootstrap from
redis.cluster.max-redirects REDIS_MAX_REDIRECTS 12 Maximum number of redirects to follow when executing commands across the cluster
redis.cluster.useDefaultPoolConfig REDIS_USE_DEFAULT_POOL_CONFIG true Use default redis pool configuration. If set to "true", the REDIS_POOL_CONFIG_* properties will be ignored.
redis.db REDIS_DB 0 Redis database index
redis.password REDIS_PASSWORD Redis database password
redis.pool_config.maxTotal REDIS_POOL_CONFIG_MAX_TOTAL 128 General redis pool settings
redis.pool_config.maxIdle REDIS_POOL_CONFIG_MAX_IDLE 128 General redis pool settings
redis.pool_config.minIdle REDIS_POOL_CONFIG_MIN_IDLE 16 General redis pool settings
redis.pool_config.testOnBorrow REDIS_POOL_CONFIG_TEST_ON_BORROW true General redis pool settings
redis.pool_config.testOnReturn REDIS_POOL_CONFIG_TEST_ON_RETURN true General redis pool settings
redis.pool_config.testWhileIdle REDIS_POOL_CONFIG_TEST_WHILE_IDLE true General redis pool settings
redis.pool_config.minEvictableMs REDIS_POOL_CONFIG_MIN_EVICTABLE_MS 60000 General redis pool settings
redis.pool_config.evictionRunsMs REDIS_POOL_CONFIG_EVICTION_RUNS_MS 30000 General redis pool settings
redis.pool_config.maxWaitMills REDIS_POOL_CONFIG_MAX_WAIT_MS 60000 General redis pool settings
redis.pool_config.numberTestsPerEvictionRun REDIS_POOL_CONFIG_NUMBER_TESTS_PER_EVICTION_RUN 3 General redis pool settings
redis.pool_config.blockWhenExhausted REDIS_POOL_CONFIG_BLOCK_WHEN_EXHAUSTED true General redis pool settings

SNMP Server Parameters

ParameterEnvironment VariableDefault ValueDescription
transport.snmp.response_processing.parallelism_level SNMP_RESPONSE_PROCESSING_PARALLELISM_LEVEL 20 Parallelism level for executor (workStealingPool) that is responsible for handling responses from SNMP devices
transport.snmp.underlying_protocol SNMP_UNDERLYING_PROTOCOL udp To configure SNMP to work over UDP or TCP
ParameterEnvironment VariableDefault ValueDescription
transport.sessions.inactivity_timeout TB_TRANSPORT_SESSIONS_INACTIVITY_TIMEOUT 300000 Inactivity timeout for device session in transport service. The last activity time of the device session is updated if device sends any message, including keepalive messages.
transport.sessions.report_timeout TB_TRANSPORT_SESSIONS_REPORT_TIMEOUT 3000 Interval of periodic check for expired sessions and report of the changes to session last activity time.
transport.rate_limits.enabled TB_TRANSPORT_RATE_LIMITS_ENABLED false
transport.rate_limits.tenant TB_TRANSPORT_RATE_LIMITS_TENANT 1000:1,20000:60
transport.rate_limits.device TB_TRANSPORT_RATE_LIMITS_DEVICE 10:1,300:60
transport.json.type_cast_enabled JSON_TYPE_CAST_ENABLED true Cast String data types to Numeric if possible when processing Telemetry/Attributes JSON
transport.json.max_string_value_length JSON_MAX_STRING_VALUE_LENGTH 0 Maximum allowed string value length when processing Telemetry/Attributes JSON (0 value disables string value length check)
transport.client_side_rpc.timeout CLIENT_SIDE_RPC_TIMEOUT 60000
transport.api_enabled TB_TRANSPORT_API_ENABLED true Enable/disable http/mqtt/coap transport protocols (has higher priority than certain protocol's 'enabled' property)
transport.log.enabled TB_TRANSPORT_LOG_ENABLED true Enable/Disable log of transport messages to telemetry. For example, logging of LwM2M registration update.
transport.log.max_length TB_TRANSPORT_LOG_MAX_LENGTH 1024 Maximum length of the log message. The content will be truncated to the specified value if needed.
transport.stats.enabled TB_TRANSPORT_STATS_ENABLED true Enable/Disable collection of transport statistics
transport.stats.print-interval-ms TB_TRANSPORT_STATS_PRINT_INTERVAL_MS 60000 Interval of transport statistics logging.

Queue parameters

ParameterEnvironment VariableDefault ValueDescription
queue.type TB_QUEUE_TYPE kafka In-memory or kafka (Apache Kafka) or aws-sqs (AWS SQS) or pubsub (PubSub) or service-bus (Azure Service Bus) or rabbitmq (RabbitMQ)
ParameterEnvironment VariableDefault ValueDescription
queue.kafka.bootstrap.servers TB_KAFKA_SERVERS localhost:9092 Kafka Bootstrap servers list as a connection string for kafka client
queue.kafka.acks TB_KAFKA_ACKS all General Kafka client setting
queue.kafka.retries TB_KAFKA_RETRIES 1 General Kafka client setting
queue.kafka.compression TB_KAFKA_COMPRESSION_TYPE none Compression of the Kafka messages: none or gzip
queue.kafka.batch.size TB_KAFKA_BATCH_SIZE 16384 General Kafka client setting
queue.kafka.linger.ms TB_KAFKA_LINGER_MS 1 General Kafka client setting
queue.kafka.max.request.size TB_KAFKA_MAX_REQUEST_SIZE 1048576 General Kafka client setting
queue.kafka.max.in.flight.requests.per.connection TB_KAFKA_MAX_IN_FLIGHT_REQUESTS_PER_CONNECTION 5 General Kafka client setting
queue.kafka.buffer.memory TB_BUFFER_MEMORY 33554432 General Kafka client setting
queue.kafka.replication_factor TB_QUEUE_KAFKA_REPLICATION_FACTOR 1 General Kafka client setting
queue.kafka.max_poll_interval_ms TB_QUEUE_KAFKA_MAX_POLL_INTERVAL_MS 300000 General Kafka client setting
queue.kafka.max_poll_records TB_QUEUE_KAFKA_MAX_POLL_RECORDS 8192 General Kafka client setting
queue.kafka.max_partition_fetch_bytes TB_QUEUE_KAFKA_MAX_PARTITION_FETCH_BYTES 16777216 General Kafka client setting
queue.kafka.fetch_max_bytes TB_QUEUE_KAFKA_FETCH_MAX_BYTES 134217728 General Kafka client setting
queue.kafka.use_confluent_cloud TB_QUEUE_KAFKA_USE_CONFLUENT_CLOUD false Enable to connect to Confluent Cloud.
queue.kafka.confluent.ssl.algorithm TB_QUEUE_KAFKA_CONFLUENT_SSL_ALGORITHM https Confluent Cloud connection settings
queue.kafka.confluent.sasl.mechanism TB_QUEUE_KAFKA_CONFLUENT_SASL_MECHANISM PLAIN Confluent Cloud connection settings
queue.kafka.confluent.sasl.config TB_QUEUE_KAFKA_CONFLUENT_SASL_JAAS_CONFIG Confluent Cloud connection settings
queue.kafka.confluent.security.protocol TB_QUEUE_KAFKA_CONFLUENT_SECURITY_PROTOCOL SASL_SSL Confluent Cloud connection settings
queue.kafka.consumer-properties-per-topic.tb_ota_package.key max.poll.records Example of specific consumer properties key per topic
queue.kafka.consumer-properties-per-topic.tb_ota_package.value TB_QUEUE_KAFKA_OTA_MAX_POLL_RECORDS 10 Example of specific consumer properties value per topic
queue.kafka.other.key request.timeout.ms refer to https://docs.confluent.io/platform/current/installation/configuration/producer-configs.html#producerconfigs_request.timeout.ms
queue.kafka.other.value TB_QUEUE_KAFKA_REQUEST_TIMEOUT_MS 30000 (30 seconds)
queue.kafka.other.key session.timeout.ms refer to https://docs.confluent.io/platform/current/installation/configuration/consumer-configs.html#consumerconfigs_session.timeout.ms
queue.kafka.other.value TB_QUEUE_KAFKA_SESSION_TIMEOUT_MS 10000 (10 seconds)
queue.kafka.topic-properties.rule-engine TB_QUEUE_KAFKA_RE_TOPIC_PROPERTIES retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 Kafka properties for Rule Engine topics
queue.kafka.topic-properties.core TB_QUEUE_KAFKA_CORE_TOPIC_PROPERTIES retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 Kafka properties for Core topics
queue.kafka.topic-properties.transport-api TB_QUEUE_KAFKA_TA_TOPIC_PROPERTIES retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 Kafka properties for Transport Api topics
queue.kafka.topic-properties.notifications TB_QUEUE_KAFKA_NOTIFICATIONS_TOPIC_PROPERTIES retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 Kafka properties for Notifications topics
queue.kafka.topic-properties.js-executor TB_QUEUE_KAFKA_JE_TOPIC_PROPERTIES retention.ms:604800000;segment.bytes:26214400;retention.bytes:104857600;partitions:100;min.insync.replicas:1 Kafka properties for JS Executor topics
queue.kafka.topic-properties.ota-updates TB_QUEUE_KAFKA_OTA_TOPIC_PROPERTIES retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:10;min.insync.replicas:1 Kafka properties for OTA updates topic
queue.kafka.consumer-stats.enabled TB_QUEUE_KAFKA_CONSUMER_STATS_ENABLED true Prints lag between consumer group offset and last messages offset in Kafka topics
queue.kafka.consumer-stats.print-interval-ms TB_QUEUE_KAFKA_CONSUMER_STATS_MIN_PRINT_INTERVAL_MS 60000 Statistics printing interval for Kafka's consumer-groups stats
queue.kafka.consumer-stats.kafka-response-timeout-ms TB_QUEUE_KAFKA_CONSUMER_STATS_RESPONSE_TIMEOUT_MS 1000 Time to wait for the stats-loading requests to Kafka to finish
queue.aws_sqs.use_default_credential_provider_chain TB_QUEUE_AWS_SQS_USE_DEFAULT_CREDENTIAL_PROVIDER_CHAIN false Use default credentials provider for AWS SQS
queue.aws_sqs.access_key_id TB_QUEUE_AWS_SQS_ACCESS_KEY_ID YOUR_KEY Access key ID from AWS IAM user
queue.aws_sqs.secret_access_key TB_QUEUE_AWS_SQS_SECRET_ACCESS_KEY YOUR_SECRET Secret access key from AWS IAM user
queue.aws_sqs.region TB_QUEUE_AWS_SQS_REGION YOUR_REGION Region from AWS account
queue.aws_sqs.threads_per_topic TB_QUEUE_AWS_SQS_THREADS_PER_TOPIC 1 Number of threads per each AWS SQS queue in consumer
queue.aws_sqs.queue-properties.rule-engine TB_QUEUE_AWS_SQS_RE_QUEUE_PROPERTIES VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
queue.aws_sqs.queue-properties.core TB_QUEUE_AWS_SQS_CORE_QUEUE_PROPERTIES VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
queue.aws_sqs.queue-properties.transport-api TB_QUEUE_AWS_SQS_TA_QUEUE_PROPERTIES VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
queue.aws_sqs.queue-properties.notifications TB_QUEUE_AWS_SQS_NOTIFICATIONS_QUEUE_PROPERTIES VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
queue.aws_sqs.queue-properties.js-executor TB_QUEUE_AWS_SQS_JE_QUEUE_PROPERTIES VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
queue.pubsub.project_id TB_QUEUE_PUBSUB_PROJECT_ID YOUR_PROJECT_ID Project Id from google cloud
queue.pubsub.service_account TB_QUEUE_PUBSUB_SERVICE_ACCOUNT YOUR_SERVICE_ACCOUNT API Credentials in json format
queue.pubsub.max_msg_size TB_QUEUE_PUBSUB_MAX_MSG_SIZE 1048576 in bytes
queue.pubsub.max_messages TB_QUEUE_PUBSUB_MAX_MESSAGES 1000 Number of messages per a consumer
queue.pubsub.queue-properties.rule-engine TB_QUEUE_PUBSUB_RE_QUEUE_PROPERTIES ackDeadlineInSec:30;messageRetentionInSec:604800 Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consume again
queue.pubsub.queue-properties.core TB_QUEUE_PUBSUB_CORE_QUEUE_PROPERTIES ackDeadlineInSec:30;messageRetentionInSec:604800 Pub/Sub properties for Core subscribers, messages which will commit after ackDeadlineInSec period can be consume again
queue.pubsub.queue-properties.transport-api TB_QUEUE_PUBSUB_TA_QUEUE_PROPERTIES ackDeadlineInSec:30;messageRetentionInSec:604800 Pub/Sub properties for Transport Api subscribers, messages which will commit after ackDeadlineInSec period can be consume again
queue.pubsub.queue-properties.notifications TB_QUEUE_PUBSUB_NOTIFICATIONS_QUEUE_PROPERTIES ackDeadlineInSec:30;messageRetentionInSec:604800 Pub/Sub properties for Notifications subscribers, messages which will commit after ackDeadlineInSec period can be consume again
queue.pubsub.queue-properties.js-executor TB_QUEUE_PUBSUB_JE_QUEUE_PROPERTIES ackDeadlineInSec:30;messageRetentionInSec:604800 Pub/Sub properties for Js Executor subscribers, messages which will commit after ackDeadlineInSec period can be consume again
queue.service_bus.namespace_name TB_QUEUE_SERVICE_BUS_NAMESPACE_NAME YOUR_NAMESPACE_NAME Azure namespace is a scoping container for all messaging components
queue.service_bus.sas_key_name TB_QUEUE_SERVICE_BUS_SAS_KEY_NAME YOUR_SAS_KEY_NAME Azure Service Bus Shared Access Signatures key name
queue.service_bus.sas_key TB_QUEUE_SERVICE_BUS_SAS_KEY YOUR_SAS_KEY Azure Service Bus Shared Access Signatures key
queue.service_bus.max_messages TB_QUEUE_SERVICE_BUS_MAX_MESSAGES 1000 Number of messages per a consumer
queue.service_bus.queue-properties.rule-engine TB_QUEUE_SERVICE_BUS_RE_QUEUE_PROPERTIES lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 Azure Service Bus properties for Rule Engine queues
queue.service_bus.queue-properties.core TB_QUEUE_SERVICE_BUS_CORE_QUEUE_PROPERTIES lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 Azure Service Bus properties for Core queues
queue.service_bus.queue-properties.transport-api TB_QUEUE_SERVICE_BUS_TA_QUEUE_PROPERTIES lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 Azure Service Bus properties for Transport Api queues
queue.service_bus.queue-properties.notifications TB_QUEUE_SERVICE_BUS_NOTIFICATIONS_QUEUE_PROPERTIES lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 Azure Service Bus properties for Notifications queues
queue.service_bus.queue-properties.js-executor TB_QUEUE_SERVICE_BUS_JE_QUEUE_PROPERTIES lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 Azure Service Bus properties for Js Executor queues
queue.rabbitmq.exchange_name TB_QUEUE_RABBIT_MQ_EXCHANGE_NAME Default empty
queue.rabbitmq.host TB_QUEUE_RABBIT_MQ_HOST localhost RabbitMQ host used to establish connection
queue.rabbitmq.port TB_QUEUE_RABBIT_MQ_PORT 5672 RabbitMQ host used to establish connection
queue.rabbitmq.virtual_host TB_QUEUE_RABBIT_MQ_VIRTUAL_HOST / Virtual hosts provide logical grouping and separation of resources
queue.rabbitmq.password TB_QUEUE_RABBIT_MQ_PASSWORD YOUR_PASSWORD User password for RabbitMQ user account
queue.rabbitmq.automatic_recovery_enabled TB_QUEUE_RABBIT_MQ_AUTOMATIC_RECOVERY_ENABLED false Network connection between clients and RabbitMQ nodes can fail. RabbitMQ Java client supports automatic recovery of connections and topology (queues, exchanges, bindings, and consumers)
queue.rabbitmq.connection_timeout TB_QUEUE_RABBIT_MQ_CONNECTION_TIMEOUT 60000 The connection timeout for the RabbitMQ connection factory
queue.rabbitmq.handshake_timeout TB_QUEUE_RABBIT_MQ_HANDSHAKE_TIMEOUT 10000 RabbitMQ has a timeout for connection handshake. When clients run in heavily constrained environments, it may be necessary to increase the timeout
queue.rabbitmq.queue-properties.rule-engine TB_QUEUE_RABBIT_MQ_RE_QUEUE_PROPERTIES x-max-length-bytes:1048576000;x-message-ttl:604800000 RabbitMQ properties for Rule Engine queues
queue.rabbitmq.queue-properties.core TB_QUEUE_RABBIT_MQ_CORE_QUEUE_PROPERTIES x-max-length-bytes:1048576000;x-message-ttl:604800000 RabbitMQ properties for Core queues
queue.rabbitmq.queue-properties.transport-api TB_QUEUE_RABBIT_MQ_TA_QUEUE_PROPERTIES x-max-length-bytes:1048576000;x-message-ttl:604800000 RabbitMQ properties for Transport Api queues
queue.rabbitmq.queue-properties.notifications TB_QUEUE_RABBIT_MQ_NOTIFICATIONS_QUEUE_PROPERTIES x-max-length-bytes:1048576000;x-message-ttl:604800000 RabbitMQ properties for Notifications queues
queue.rabbitmq.queue-properties.js-executor TB_QUEUE_RABBIT_MQ_JE_QUEUE_PROPERTIES x-max-length-bytes:1048576000;x-message-ttl:604800000 RabbitMQ properties for Js Executor queues
queue.partitions.hash_function_name TB_QUEUE_PARTITIONS_HASH_FUNCTION_NAME murmur3_128 Name of hash function used for consistent hash ring in Cluster Mode. See architecture docs for more details. murmur3_32, murmur3_128 or sha256
queue.transport_api.requests_topic TB_QUEUE_TRANSPORT_API_REQUEST_TOPIC tb_transport.api.requests Topic used to consume api requests from transport microservices
queue.transport_api.responses_topic TB_QUEUE_TRANSPORT_API_RESPONSE_TOPIC tb_transport.api.responses Topic used to produce api responses to transport microservices
queue.transport_api.max_pending_requests TB_QUEUE_TRANSPORT_MAX_PENDING_REQUESTS 10000 Maximum pending api requests from transport microservices to be handled by server
queue.transport_api.max_requests_timeout TB_QUEUE_TRANSPORT_MAX_REQUEST_TIMEOUT 10000 Maximum timeout in milliseconds to handle api request from transport microservice by server
queue.transport_api.max_callback_threads TB_QUEUE_TRANSPORT_MAX_CALLBACK_THREADS 100 Amount of threads used to invoke callbacks
queue.transport_api.request_poll_interval TB_QUEUE_TRANSPORT_REQUEST_POLL_INTERVAL_MS 25 Interval in milliseconds to poll api requests from transport microservices
queue.transport_api.response_poll_interval TB_QUEUE_TRANSPORT_RESPONSE_POLL_INTERVAL_MS 25 Interval in milliseconds to poll api response from transport microservices
queue.core.topic TB_QUEUE_CORE_TOPIC tb_core Topic name for Core microservices
queue.core.poll-interval TB_QUEUE_CORE_POLL_INTERVAL_MS 25 Interval in milliseconds to poll messages by Core microservices
queue.core.partitions TB_QUEUE_CORE_PARTITIONS 10 Amount of partitions used by Core microservices
queue.core.pack-processing-timeout TB_QUEUE_CORE_PACK_PROCESSING_TIMEOUT_MS 2000 Timeout for processing a message pack by Core microservices
queue.core.ota.topic TB_QUEUE_CORE_OTA_TOPIC tb_ota_package The topic for queue of OTA updates
queue.core.ota.pack-interval-ms TB_QUEUE_CORE_OTA_PACK_INTERVAL_MS 60000 The interval of processing the OTA updates for devices. Used to avoid any harm to network due to many parallel OTA updates
queue.core.ota.pack-size TB_QUEUE_CORE_OTA_PACK_SIZE 100 The size of OTA updates notifications fetched from the queue. The queue stores pairs of firmware and device ids.
queue.core.usage-stats-topic TB_QUEUE_US_TOPIC tb_usage_stats The parameter to store usage statistics
queue.core.stats.enabled TB_QUEUE_CORE_STATS_ENABLED true Enable/disable statistics for Core microservices
queue.core.stats.print-interval-ms TB_QUEUE_CORE_STATS_PRINT_INTERVAL_MS 60000 Statistics printing interval for Core microservices
queue.js.request_topic REMOTE_JS_EVAL_REQUEST_TOPIC js_eval.requests JS Eval request topic
queue.js.response_topic_prefix REMOTE_JS_EVAL_RESPONSE_TOPIC js_eval.responses JS Eval responses topic prefix that is combined with node id
queue.js.max_pending_requests REMOTE_JS_MAX_PENDING_REQUESTS 10000 JS Eval max pending requests
queue.js.max_eval_requests_timeout REMOTE_JS_MAX_EVAL_REQUEST_TIMEOUT 60000 JS Eval max request timeout
queue.js.max_requests_timeout REMOTE_JS_MAX_REQUEST_TIMEOUT 10000 JS max request timeout
queue.js.response_poll_interval REMOTE_JS_RESPONSE_POLL_INTERVAL_MS 25 JS response poll interval
queue.rule-engine.topic TB_QUEUE_RULE_ENGINE_TOPIC tb_rule_engine Topic name for Rule Engine microservices
queue.rule-engine.poll-interval TB_QUEUE_RULE_ENGINE_POLL_INTERVAL_MS 25 Interval in milliseconds to poll messages by Rule Engine microservices
queue.rule-engine.pack-processing-timeout TB_QUEUE_RULE_ENGINE_PACK_PROCESSING_TIMEOUT_MS 2000 Timeout for processing a message pack
queue.rule-engine.stats.enabled TB_QUEUE_RULE_ENGINE_STATS_ENABLED true Enable/disable statistics for Rule Engine microservices
queue.rule-engine.stats.print-interval-ms TB_QUEUE_RULE_ENGINE_STATS_PRINT_INTERVAL_MS 60000 Statistics printing interval for Rule Engine microservices
queue.transport.notifications_topic TB_QUEUE_TRANSPORT_NOTIFICATIONS_TOPIC tb_transport.notifications Transport notifications topic
queue.transport.poll_interval TB_QUEUE_TRANSPORT_NOTIFICATIONS_POLL_INTERVAL_MS 25 Interval in milliseconds to poll messages by Core microservices
queue.vc.topic TB_QUEUE_VC_TOPIC tb_version_control Topic for storing Version Control synchronization tasks
queue.vc.partitions TB_QUEUE_VC_PARTITIONS 10 Amount of partitions used by Version Control microservices
queue.vc.poll-interval TB_QUEUE_VC_INTERVAL_MS 10 Interval in milliseconds to poll messages by Version Control microservices
queue.vc.pack-processing-timeout TB_QUEUE_VC_PACK_PROCESSING_TIMEOUT_MS 10 Timeout for processing a message pack

ThingsBoard service parameters

ParameterEnvironment VariableDefault ValueDescription
service.type TB_SERVICE_TYPE tb-transport
service.id TB_SERVICE_ID Unique id for this service (autogenerated if empty)
service.tenant_id TB_SERVICE_TENANT_ID Empty or specific tenant id

ThingsBoard metrics parameters

ParameterEnvironment VariableDefault ValueDescription
metrics.enabled METRICS_ENABLED false Enable/disable actuator metrics

ThingsBoard management parameters

ParameterEnvironment VariableDefault ValueDescription
management.endpoints.web.exposure.include METRICS_ENDPOINTS_EXPOSE info Expose metrics endpoint (use value 'prometheus' to enable prometheus metrics)

Version Control Server Parameters

ParameterEnvironment VariableDefault ValueDescription
vc.thread_pool_size TB_VC_POOL_SIZE 2 Size of the thread pool for processing the synchronization tasks
vc.git.io_pool_size TB_VC_GIT_POOL_SIZE 3 Size of the thread pool for processing IO operations related to Git
vc.git.repositories-folder TB_VC_GIT_REPOSITORIES_FOLDER ${java.io.tmpdir}/repositories Folder for storing the GIT repositories

logback.xml

The configuration file for logging. Allows controlling the log level, the size of log files and the total size/volume of logs.