Stand with Ukraine flag
Try it now Pricing
Community Edition
Installation > Configuration > Core/Rule engine deployment parameters
Getting Started Documentation Devices Library Guides
Architecture API FAQ
On this page

Core/rule engine deployment parameters

Server common parameters

ParameterEnvironment VariableDefault ValueDescription
server.address HTTP_BIND_ADDRESS 0.0.0.0 Server bind-address
server.port HTTP_BIND_PORT 8080 Server bind port
server.forward_headers_strategy HTTP_FORWARD_HEADERS_STRATEGY framework Server forward headers strategy. Required for SWAGGER UI when reverse proxy is used
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). Required if the private key is not present in the server certificate file
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 (JKS or PKCS12)
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.http.max_payload_size HTTP_MAX_PAYLOAD_SIZE_LIMIT_CONFIGURATION /api/image*/**=52428800;/api/resource/**=52428800;/api/**=16777216 Semi-colon-separated list of urlPattern=maxPayloadSize pairs that define max http request size for specified url pattern. After first match all other will be skipped
server.http2.enabled HTTP2_ENABLED true Enable/disable HTTP/2 support
server.log_controller_error_stack_trace HTTP_LOG_CONTROLLER_ERROR_STACK_TRACE false Log errors with stacktrace when REST API throws an exception with the message "Please contact sysadmin"
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 recommended timeout >= 30 seconds. The platform will attempt to send a 'ping' request 3 times within the timeout
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_alarm_queries_per_refresh_interval TB_SERVER_WS_MAX_ALARM_QUERIES_PER_REFRESH_INTERVAL 10 Maximum number of dynamic queries per refresh interval. For example, no more than 10 alarm queries are executed by the user simultaneously in all browsers.
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 than 10 alarm widgets opened by the 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 than 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 than 10,000 alarms on the alarm widget
server.ws.max_queue_messages_per_session TB_SERVER_WS_DEFAULT_QUEUE_MESSAGES_PER_SESSION 1000 Maximum queue size of the websocket updates per session. This restriction prevents infinite updates of WS
server.ws.auth_timeout_ms TB_SERVER_WS_AUTH_TIMEOUT_MS 10000 Maximum time between WS session opening and sending auth command
server.ws.rate_limits.subscriptions_per_tenant TB_SERVER_WS_SUBSCRIPTIONS_PER_TENANT_RATE_LIMIT Per-tenant rate limit for WS subscriptions
server.ws.rate_limits.subscriptions_per_user TB_SERVER_WS_SUBSCRIPTIONS_PER_USER_RATE_LIMIT Per-user rate limit for WS subscriptions
server.rest.server_side_rpc.min_timeout MIN_SERVER_SIDE_RPC_TIMEOUT 5000 Minimum value of the server-side RPC timeout. May override value provided in the REST API call. Since 2.5 migration to queues, the RPC delay depends on the size of the pending messages in the queue. So default UI parameter of 500ms may not be sufficient for loaded environments.
server.rest.server_side_rpc.default_timeout DEFAULT_SERVER_SIDE_RPC_TIMEOUT 10000 Default value of the server-side RPC timeout.
server.rest.rate_limits.reset_password_per_user RESET_PASSWORD_PER_USER_RATE_LIMIT_CONFIGURATION 5:3600 Limit that prohibits resetting the password for the user too often. The value of the rate limit. By default, no more than 5 requests per hour

Application info parameters

ParameterEnvironment VariableDefault ValueDescription
app.version "@project.version@" Application version

Zookeeper connection parameters

ParameterEnvironment VariableDefault ValueDescription
zk.enabled ZOOKEEPER_ENABLED false Enable/disable zookeeper discovery service.
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'
zk.recalculate_delay ZOOKEEPER_RECALCULATE_DELAY_MS 0 The recalculate_delay property is recommended in a microservices architecture setup for rule-engine services. This property provides a pause to ensure that when a rule-engine service is restarted, other nodes don't immediately attempt to recalculate their partitions. The delay is recommended because the initialization of rule chain actors is time-consuming. Avoiding unnecessary recalculations during a restart can enhance system performance and stability.

Cluster parameters

ParameterEnvironment VariableDefault ValueDescription
cluster.stats.enabled TB_CLUSTER_STATS_ENABLED false Enable/Disable the cluster statistics. Calculates the 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 Number of seconds (2.5 hours)
security.jwt.refreshTokenExpTime JWT_REFRESH_TOKEN_EXPIRATION_TIME 604800 Number of seconds (1 week).
security.jwt.tokenIssuer JWT_TOKEN_ISSUER thingsboard.io User JWT Token issuer
security.jwt.tokenSigningKey JWT_TOKEN_SIGNING_KEY thingsboardDefaultSigningKey Base64 encoded
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 the specific device
security.claim.duration SECURITY_CLAIM_DURATION 86400000 1 minute, note this value must equal claimDevices.timeToLiveInMinutes value
security.basic.enabled SECURITY_BASIC_ENABLED false Enable/Disable basic security options
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 The email addresses that will be mapped from the URL
security.java_cacerts.path SECURITY_JAVA_CACERTS_PATH ${java.home}/lib/security/cacerts CA certificates keystore default path. Typically this keystore is at JAVA_HOME/lib/security/cacerts
security.java_cacerts.password SECURITY_JAVA_CACERTS_PASSWORD changeit The password of the cacerts keystore file

Mail settings parameters

ParameterEnvironment VariableDefault ValueDescription
mail.oauth2.refreshTokenCheckingInterval REFRESH_TOKEN_EXPIRATION_CHECKING_INTERVAL 86400 Interval for checking refresh token expiration in seconds(by default, 1 day).
mail.per_tenant_rate_limits MAIL_PER_TENANT_RATE_LIMITS Rate limits for sending mails per tenant. As example for 1000 per minute and 10000 per hour is "1000:60,10000:3600"

Usage statistics parameters

ParameterEnvironment VariableDefault ValueDescription
usage.stats.report.enabled USAGE_STATS_REPORT_ENABLED true Enable/Disable the collection of API usage statistics. Collected on a system and tenant level by default
usage.stats.report.enabled_per_customer USAGE_STATS_REPORT_PER_CUSTOMER_ENABLED false Enable/Disable the collection of API usage statistics on a customer level
usage.stats.report.interval USAGE_STATS_REPORT_INTERVAL 10 Statistics reporting interval, set to send summarized data every 10 seconds by default
usage.stats.check.cycle USAGE_STATS_CHECK_CYCLE 60000 Interval of checking the start of the next cycle and re-enabling the blocked tenants/customers
usage.stats.gauge_report_interval USAGE_STATS_GAUGE_REPORT_INTERVAL 180000 In milliseconds. The default value is 3 minutes
usage.stats.devices.report_interval DEVICES_STATS_REPORT_INTERVAL 60 In seconds, the default value is 1 minute. When changing, in cluster mode, make sure usage.stats.gauge_report_interval is set to x2-x3 of this value

UI settings 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.8 Base URL for UI help assets

Database telemetry parameters

ParameterEnvironment VariableDefault ValueDescription
database.ts_max_intervals DATABASE_TS_MAX_INTERVALS 700 Max number of DB queries generated by a 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 the local data center 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, the hostname of the Cassandra server must match the CN of the server certificate
cassandra.ssl.trust_store CASSANDRA_SSL_TRUST_STORE Set trust store for client authentication of the 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 key
cassandra.ssl.key_store CASSANDRA_SSL_KEY_STORE Set key store for server authentication of the 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 the 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 are available during startup)
cassandra.init_retry_interval_ms CASSANDRA_CLUSTER_INIT_RETRY_INTERVAL_MS 3000 Specify cassandra cluster 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.cloud.secure_connect_bundle_path CASSANDRA_CLOUD_SECURE_BUNDLE_PATH /etc/thingsboard/astra/secure-connect-thingsboard.zip
cassandra.cloud.client_id CASSANDRA_CLOUD_CLIENT_ID DucitQPHMzPCBOZqFYexAfKk
cassandra.cloud.client_secret CASSANDRA_CLOUD_CLIENT_SECRET ZnF7FpuHp43FP5BzM+KY8wGmSb4Ql6BhT4Z7sOU13ze+gXQ-n7OkFpNuB,oACUIQObQnK0g4bSPoZhK5ejkcF9F.j6f64j71Sr.tiRe0Fsq2hPS1ZCGSfAaIgg63IydG
cassandra.socket.connect_timeout CASSANDRA_SOCKET_TIMEOUT 5000 Sets the timeout, in milliseconds, of a native connection from ThingsBoard to Cassandra. The default value is 5000
cassandra.socket.read_timeout CASSANDRA_SOCKET_READ_TIMEOUT 20000 Timeout before closing the connection. Value set in milliseconds
cassandra.socket.keep_alive CASSANDRA_SOCKET_KEEP_ALIVE true Gets if TCP keep-alive must be used
cassandra.socket.reuse_address CASSANDRA_SOCKET_REUSE_ADDRESS true Enable/Disable reuse-address. The socket option allows for the reuse of local addresses and ports
cassandra.socket.so_linger CASSANDRA_SOCKET_SO_LINGER Sets the linger-on-close timeout. By default, this option is not set by the driver. The actual value will be the default from the underlying Netty transport
cassandra.socket.tcp_no_delay CASSANDRA_SOCKET_TCP_NO_DELAY false Enable/Disable Nagle's algorithm
cassandra.socket.receive_buffer_size CASSANDRA_SOCKET_RECEIVE_BUFFER_SIZE Sets a hint to the size of the underlying buffers for incoming network I/O. By default, this option is not set by the driver. The actual value will be the default from the underlying Netty transport
cassandra.socket.send_buffer_size CASSANDRA_SOCKET_SEND_BUFFER_SIZE Returns the hint to the size of the underlying buffers for outgoing network I/O. By default, this option is not set by the driver. The actual value will be the default from the underlying Netty transport
cassandra.query.read_consistency_level CASSANDRA_READ_CONSISTENCY_LEVEL ONE Consistency levels in Cassandra can be configured to manage availability versus data accuracy. The consistency level defaults to ONE for all write and read operations
cassandra.query.write_consistency_level CASSANDRA_WRITE_CONSISTENCY_LEVEL ONE Consistency levels in Cassandra can be configured to manage availability versus data accuracy. The consistency level defaults to ONE for all write and read operations
cassandra.query.default_fetch_size CASSANDRA_DEFAULT_FETCH_SIZE 2000 The fetch size specifies how many rows will be returned at once by Cassandra (in other words, it’s the size of each page)
cassandra.query.ts_key_value_partitioning TS_KV_PARTITIONING MONTHS Specify partitioning size for timestamp key-value storage. Example: MINUTES, HOURS, DAYS, MONTHS, INDEFINITE
cassandra.query.use_ts_key_value_partitioning_on_read USE_TS_KV_PARTITIONING_ON_READ true Enable/Disable timestamp key-value partioning on read queries
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. It is useful to decrease the load of re-inserting the same partitions again
cassandra.query.ts_key_value_ttl TS_KV_TTL 0 Timeseries Time To Live (in seconds) for Cassandra Record. 0 - record has never expired
cassandra.query.buffer_size CASSANDRA_QUERY_BUFFER_SIZE 200000 Maximum number of Cassandra queries that are waiting for execution
cassandra.query.concurrent_limit CASSANDRA_QUERY_CONCURRENT_LIMIT 1000 Maximum 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 Buffered rate executor (read, write) for managing I/O rate. See "nosql-*-callback" threads in JMX
cassandra.query.result_processing_threads CASSANDRA_QUERY_RESULT_PROCESSING_THREADS 50 Result set transformer and processing. See "cassandra-callback" threads in JMX
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_enabled CASSANDRA_QUERY_SET_NULL_VALUES_ENABLED true set all data type 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.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 1000 Batch size for persisting attribute updates
sql.attributes.batch_max_delay SQL_ATTRIBUTES_BATCH_MAX_DELAY_MS 50 Max timeout for attributes entries queue polling. The value is 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 3 batch thread count has to be a prime number like 3 or 5 to gain perfect hash distribution
sql.attributes.value_no_xss_validation SQL_ATTRIBUTES_VALUE_NO_XSS_VALIDATION false If true attribute values will be checked for XSS vulnerability
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. The 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 3 batch thread count has to be a prime number like 3 or 5 to gain perfect hash distribution
sql.ts.value_no_xss_validation SQL_TS_VALUE_NO_XSS_VALIDATION false If true telemetry values will be checked for XSS vulnerability
sql.ts_latest.batch_size SQL_TS_LATEST_BATCH_SIZE 1000 Batch size for persisting latest telemetry updates
sql.ts_latest.batch_max_delay SQL_TS_LATEST_BATCH_MAX_DELAY_MS 50 Maximum 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 3 batch thread count has to be a prime number like 3 or 5 to gain perfect hash distribution
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 the timestamp of the previously saved latest value. The latest values are stored separately from historical values for fast lookup from DB. Insert of historical value happens in any case
sql.events.batch_size SQL_EVENTS_BATCH_SIZE 10000 Batch size for persisting latest telemetry updates
sql.events.batch_max_delay SQL_EVENTS_BATCH_MAX_DELAY_MS 100 Max timeout for latest telemetry entries queue polling. The value set in milliseconds
sql.events.stats_print_interval_ms SQL_EVENTS_BATCH_STATS_PRINT_MS 10000 Interval in milliseconds for printing latest telemetry updates statistic
sql.events.batch_threads SQL_EVENTS_BATCH_THREADS 3 batch thread count has to be a prime number like 3 or 5 to gain perfect hash distribution
sql.events.partition_size SQL_EVENTS_REGULAR_PARTITION_SIZE_HOURS 168 Number of hours to partition the events. The current value corresponds to one week.
sql.events.debug_partition_size SQL_EVENTS_DEBUG_PARTITION_SIZE_HOURS 1 Number of hours to partition the debug events. The current value corresponds to one hour.
sql.edge_events.batch_size SQL_EDGE_EVENTS_BATCH_SIZE 1000 Batch size for persisting latest telemetry updates
sql.edge_events.batch_max_delay SQL_EDGE_EVENTS_BATCH_MAX_DELAY_MS 100 Max timeout for latest telemetry entries queue polling. The value set in milliseconds
sql.edge_events.stats_print_interval_ms SQL_EDGE_EVENTS_BATCH_STATS_PRINT_MS 10000 Interval in milliseconds for printing latest telemetry updates statistic
sql.edge_events.partition_size SQL_EDGE_EVENTS_PARTITION_SIZE_HOURS 168 Number of hours to partition the events. The current value corresponds to one week.
sql.audit_logs.partition_size SQL_AUDIT_LOGS_PARTITION_SIZE_HOURS 168 Default value - 1 week
sql.alarm_comments.partition_size SQL_ALARM_COMMENTS_PARTITION_SIZE_HOURS 168 Default value - 1 week
sql.notifications.partition_size SQL_NOTIFICATIONS_PARTITION_SIZE_HOURS 168 Default value - 1 week
sql.batch_sort SQL_BATCH_SORT true 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 Specify whether to log database queries and their parameters generated by the entity query repository
sql.log_queries_threshold SQL_LOG_QUERIES_THRESHOLD 5000 Threshold of slow SQL queries to log. The value set in milliseconds
sql.log_tenant_stats SQL_LOG_TENANT_STATS true Enable/Disable logging statistic information about tenants
sql.log_tenant_stats_interval_ms SQL_LOG_TENANT_STATS_INTERVAL_MS 60000 Interval in milliseconds for printing the latest statistic information about the tenant
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 3 batch thread count has to be a prime number like 3 or 5 to gain perfect hash distribution
sql.ttl.ts.enabled SQL_TTL_TS_ENABLED true Enable/disable TTL (Time To Live) for timeseries records
sql.ttl.ts.execution_interval_ms SQL_TTL_TS_EXECUTION_INTERVAL 86400000 Number of milliseconds. The current 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.
sql.ttl.events.enabled SQL_TTL_EVENTS_ENABLED true Enable/disable TTL (Time To Live) for event records
sql.ttl.events.execution_interval_ms SQL_TTL_EVENTS_EXECUTION_INTERVAL 3600000 Number of milliseconds (max random initial delay and fixed period).
sql.ttl.events.events_ttl SQL_TTL_EVENTS_EVENTS_TTL 0 Number of seconds. TTL is disabled by default. The accuracy of the cleanup depends on the sql.events.partition_size parameter.
sql.ttl.events.debug_events_ttl SQL_TTL_EVENTS_DEBUG_EVENTS_TTL 604800 Number of seconds. The current value corresponds to one week. The accuracy of the cleanup depends on the sql.events.debug_partition_size parameter.
sql.ttl.edge_events.enabled SQL_TTL_EDGE_EVENTS_ENABLED true Enable/disable TTL (Time To Live) for edge event records
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 Enable/disable TTL (Time To Live) for rpc call records
sql.ttl.rpc.checking_interval SQL_RPC_TTL_CHECKING_INTERVAL 7200000 Number of milliseconds. The current value corresponds to two hours
sql.ttl.audit_logs.enabled SQL_TTL_AUDIT_LOGS_ENABLED true Enable/disable TTL (Time To Live) for audit log records
sql.ttl.audit_logs.ttl SQL_TTL_AUDIT_LOGS_SECS 0 Disabled by default. The accuracy of the cleanup depends on the sql.audit_logs.partition_size
sql.ttl.audit_logs.checking_interval_ms SQL_TTL_AUDIT_LOGS_CHECKING_INTERVAL_MS 86400000 Default value - 1 day
sql.ttl.notifications.enabled SQL_TTL_NOTIFICATIONS_ENABLED true Enable/disable TTL (Time To Live) for notification center records
sql.ttl.notifications.ttl SQL_TTL_NOTIFICATIONS_SECS 2592000 Default value - 30 days
sql.ttl.notifications.checking_interval_ms SQL_TTL_NOTIFICATIONS_CHECKING_INTERVAL_MS 86400000 Default value - 1 day
sql.relations.max_level SQL_RELATIONS_MAX_LEVEL 50 This value has to be reasonably small to prevent infinite recursion as early as possible
sql.relations.pool_size SQL_RELATIONS_POOL_SIZE 4 This value has to be reasonably small to prevent the relation query from blocking all other DB calls
sql.relations.query_timeout SQL_RELATIONS_QUERY_TIMEOUT_SEC 20 This value has to be reasonably small to prevent the relation query from blocking all other DB calls

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 the 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 8 Thread pool size for actor system dispatcher that process messages for rule engine (chain/node) actors
actors.system.edge_dispatcher_pool_size ACTORS_SYSTEM_EDGE_DISPATCHER_POOL_SIZE 4 Thread pool size for actor system dispatcher that process messages for edge 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 requests 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.mail_thread_pool_size ACTORS_RULE_MAIL_THREAD_POOL_SIZE 40 Specify thread pool size for mail sender executor service
actors.rule.mail_password_reset_thread_pool_size ACTORS_RULE_MAIL_PASSWORD_RESET_THREAD_POOL_SIZE 10 Specify thread pool size for password reset emails
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 actors 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 DEBUG mode 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 that store messages for transaction rule nodes
actors.rule.transaction.duration ACTORS_RULE_TRANSACTION_DURATION 60000 Time in milliseconds for transaction to complete
actors.rule.external.force_ack ACTORS_RULE_EXTERNAL_NODE_FORCE_ACK false Force acknowledgment of the incoming message for external rule nodes to decrease processing latency. Enqueue the result of external node processing as a separate message to the rule engine.
actors.rpc.max_retries ACTORS_RPC_MAX_RETRIES 5 Maximum number of persistent RPC call retries in case of failed request delivery.
actors.rpc.submit_strategy ACTORS_RPC_SUBMIT_STRATEGY_TYPE BURST RPC submit strategies. Allowed values: BURST, SEQUENTIAL_ON_ACK_FROM_DEVICE, SEQUENTIAL_ON_RESPONSE_FROM_DEVICE.
actors.rpc.response_timeout_ms ACTORS_RPC_RESPONSE_TIMEOUT_MS 30000 Time in milliseconds for RPC to receive a response after delivery. Used only for SEQUENTIAL_ON_RESPONSE_FROM_DEVICE submit strategy.
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 settings parameters

ParameterEnvironment VariableDefault ValueDescription
cache.type CACHE_TYPE caffeine caffeine or redis(7.2 - latest compatible version)
cache.maximumPoolSize CACHE_MAXIMUM_POOL_SIZE 16 max pool size to process futures that call the external cache
cache.attributes.enabled CACHE_ATTRIBUTES_ENABLED true make sure that if cache.type is 'redis' and cache.attributes.enabled is 'true' if you change 'maxmemory-policy' Redis config property to 'allkeys-lru', 'allkeys-lfu' or 'allkeys-random'
cache.ts_latest.enabled CACHE_TS_LATEST_ENABLED true Will enable cache-aside strategy for SQL timeseries latest DAO. make sure that if cache.type is 'redis' and cache.ts_latest.enabled is 'true' if you change 'maxmemory-policy' Redis config property to 'allkeys-lru', 'allkeys-lfu' or 'allkeys-random'
cache.specs.relations.timeToLiveInMinutes CACHE_SPECS_RELATIONS_TTL 1440 Relations cache TTL
cache.specs.relations.maxSize CACHE_SPECS_RELATIONS_MAX_SIZE 10000 0 means the cache is disabled
cache.specs.deviceCredentials.timeToLiveInMinutes CACHE_SPECS_DEVICE_CREDENTIALS_TTL 1440 Device credentials cache TTL
cache.specs.deviceCredentials.maxSize CACHE_SPECS_DEVICE_CREDENTIALS_MAX_SIZE 10000 0 means the cache is disabled
cache.specs.devices.timeToLiveInMinutes CACHE_SPECS_DEVICES_TTL 1440 Device cache TTL
cache.specs.devices.maxSize CACHE_SPECS_DEVICES_MAX_SIZE 10000 0 means the cache is disabled
cache.specs.sessions.timeToLiveInMinutes CACHE_SPECS_SESSIONS_TTL 1440 Sessions cache TTL
cache.specs.sessions.maxSize CACHE_SPECS_SESSIONS_MAX_SIZE 10000 0 means the cache is disabled
cache.specs.assets.timeToLiveInMinutes CACHE_SPECS_ASSETS_TTL 1440 Asset cache TTL
cache.specs.assets.maxSize CACHE_SPECS_ASSETS_MAX_SIZE 10000 0 means the cache is disabled
cache.specs.customers.timeToLiveInMinutes CACHE_SPECS_CUSTOMERS_TTL 1440 Customer cache TTL
cache.specs.customers.maxSize CACHE_SPECS_CUSTOMERS_MAX_SIZE 10000 0 means the cache is disabled
cache.specs.users.timeToLiveInMinutes CACHE_SPECS_USERS_TTL 1440 User cache TTL
cache.specs.users.maxSize CACHE_SPECS_USERS_MAX_SIZE 10000 0 means the cache is disabled
cache.specs.entityViews.timeToLiveInMinutes CACHE_SPECS_ENTITY_VIEWS_TTL 1440 Entity view cache TTL
cache.specs.entityViews.maxSize CACHE_SPECS_ENTITY_VIEWS_MAX_SIZE 10000 0 means the cache is disabled
cache.specs.claimDevices.timeToLiveInMinutes CACHE_SPECS_CLAIM_DEVICES_TTL 1440 Claim devices cache TTL
cache.specs.claimDevices.maxSize CACHE_SPECS_CLAIM_DEVICES_MAX_SIZE 1000 0 means the cache is disabled
cache.specs.securitySettings.timeToLiveInMinutes CACHE_SPECS_SECURITY_SETTINGS_TTL 1440 Security settings cache TTL
cache.specs.securitySettings.maxSize CACHE_SPECS_SECURITY_SETTINGS_MAX_SIZE 10000 0 means the cache is disabled
cache.specs.tenantProfiles.timeToLiveInMinutes CACHE_SPECS_TENANT_PROFILES_TTL 1440 Tenant profiles cache TTL
cache.specs.tenantProfiles.maxSize CACHE_SPECS_TENANT_PROFILES_MAX_SIZE 10000 0 means the cache is disabled
cache.specs.tenants.timeToLiveInMinutes CACHE_SPECS_TENANTS_TTL 1440 Tenant cache TTL
cache.specs.tenants.maxSize CACHE_SPECS_TENANTS_MAX_SIZE 10000 0 means the cache is disabled
cache.specs.tenantsExist.timeToLiveInMinutes CACHE_SPECS_TENANTS_TTL 1440 Environment variables are intentionally the same as in 'tenants' cache to be equal.
cache.specs.tenantsExist.maxSize CACHE_SPECS_TENANTS_MAX_SIZE 10000 0 means the cache is disabled
cache.specs.deviceProfiles.timeToLiveInMinutes CACHE_SPECS_DEVICE_PROFILES_TTL 1440 Device profile cache TTL
cache.specs.deviceProfiles.maxSize CACHE_SPECS_DEVICE_PROFILES_MAX_SIZE 10000 0 means the cache is disabled
cache.specs.assetProfiles.timeToLiveInMinutes CACHE_SPECS_ASSET_PROFILES_TTL 1440 Asset profile cache TTL
cache.specs.assetProfiles.maxSize CACHE_SPECS_ASSET_PROFILES_MAX_SIZE 10000 0 means the cache is disabled
cache.specs.notificationSettings.timeToLiveInMinutes CACHE_SPECS_NOTIFICATION_SETTINGS_TTL 10 Notification settings cache TTL
cache.specs.notificationSettings.maxSize CACHE_SPECS_NOTIFICATION_SETTINGS_MAX_SIZE 1000 0 means the cache is disabled
cache.specs.sentNotifications.timeToLiveInMinutes CACHE_SPECS_SENT_NOTIFICATIONS_TTL 1440 Sent notifications cache TTL
cache.specs.sentNotifications.maxSize CACHE_SPECS_SENT_NOTIFICATIONS_MAX_SIZE 10000 0 means the cache is disabled
cache.specs.attributes.timeToLiveInMinutes CACHE_SPECS_ATTRIBUTES_TTL 1440 Attributes cache TTL
cache.specs.attributes.maxSize CACHE_SPECS_ATTRIBUTES_MAX_SIZE 100000 0 means the cache is disabled
cache.specs.tsLatest.timeToLiveInMinutes CACHE_SPECS_TS_LATEST_TTL 1440 Timeseries latest cache TTL
cache.specs.tsLatest.maxSize CACHE_SPECS_TS_LATEST_MAX_SIZE 100000 0 means the cache is disabled
cache.specs.userSessionsInvalidation.timeToLiveInMinutes "0" The value of this TTL is ignored and replaced by the JWT refresh token expiration time
cache.specs.userSessionsInvalidation.maxSize CACHE_SPECS_USERS_UPDATE_TIME_MAX_SIZE 10000 0 means the cache is disabled
cache.specs.otaPackages.timeToLiveInMinutes CACHE_SPECS_OTA_PACKAGES_TTL 60 Ota packages cache TTL
cache.specs.otaPackages.maxSize CACHE_SPECS_OTA_PACKAGES_MAX_SIZE 10 0 means the cache is disabled
cache.specs.otaPackagesData.timeToLiveInMinutes CACHE_SPECS_OTA_PACKAGES_DATA_TTL 60 Ota packages data cache TTL
cache.specs.otaPackagesData.maxSize CACHE_SPECS_OTA_PACKAGES_DATA_MAX_SIZE 10 0 means the cache is disabled
cache.specs.edges.timeToLiveInMinutes CACHE_SPECS_EDGES_TTL 1440 Edges cache TTL
cache.specs.edges.maxSize CACHE_SPECS_EDGES_MAX_SIZE 10000 0 means the cache is disabled
cache.specs.edgeSessions.timeToLiveInMinutes CACHE_SPECS_EDGE_SESSIONS_TTL 0 Edge Sessions cache TTL; no expiration time if set to '0'
cache.specs.edgeSessions.maxSize CACHE_SPECS_EDGE_SESSIONS_MAX_SIZE 10000 0 means the cache is disabled
cache.specs.relatedEdges.timeToLiveInMinutes CACHE_SPECS_RELATED_EDGES_TTL 1440 Related Edges cache TTL
cache.specs.relatedEdges.maxSize CACHE_SPECS_RELATED_EDGES_MAX_SIZE 10000 0 means the cache is disabled
cache.specs.repositorySettings.timeToLiveInMinutes CACHE_SPECS_REPOSITORY_SETTINGS_TTL 1440 Repository settings cache TTL
cache.specs.repositorySettings.maxSize CACHE_SPECS_REPOSITORY_SETTINGS_MAX_SIZE 10000 0 means the cache is disabled
cache.specs.autoCommitSettings.timeToLiveInMinutes CACHE_SPECS_AUTO_COMMIT_SETTINGS_TTL 1440 Autocommit settings cache TTL
cache.specs.autoCommitSettings.maxSize CACHE_SPECS_AUTO_COMMIT_SETTINGS_MAX_SIZE 10000 0 means the cache is disabled
cache.specs.twoFaVerificationCodes.timeToLiveInMinutes CACHE_SPECS_TWO_FA_VERIFICATION_CODES_TTL 60 Two factor verification codes cache TTL
cache.specs.twoFaVerificationCodes.maxSize CACHE_SPECS_TWO_FA_VERIFICATION_CODES_MAX_SIZE 100000 0 means the cache is disabled
cache.specs.versionControlTask.timeToLiveInMinutes CACHE_SPECS_VERSION_CONTROL_TASK_TTL 20 Version control task cache TTL
cache.specs.versionControlTask.maxSize CACHE_SPECS_VERSION_CONTROL_TASK_MAX_SIZE 100000 0 means the cache is disabled
cache.specs.userSettings.timeToLiveInMinutes CACHE_SPECS_USER_SETTINGS_TTL 1440 User settings cache TTL
cache.specs.userSettings.maxSize CACHE_SPECS_USER_SETTINGS_MAX_SIZE 100000 0 means the cache is disabled
cache.specs.dashboardTitles.timeToLiveInMinutes CACHE_SPECS_DASHBOARD_TITLES_TTL 1440 Dashboard titles cache TTL
cache.specs.dashboardTitles.maxSize CACHE_SPECS_DASHBOARD_TITLES_MAX_SIZE 100000 0 means the cache is disabled
cache.specs.entityCount.timeToLiveInMinutes CACHE_SPECS_ENTITY_COUNT_TTL 1440 Entity count cache TTL
cache.specs.entityCount.maxSize CACHE_SPECS_ENTITY_COUNT_MAX_SIZE 100000 0 means the cache is disabled
cache.specs.resourceInfo.timeToLiveInMinutes CACHE_SPECS_RESOURCE_INFO_TTL 1440 Resource info cache TTL
cache.specs.resourceInfo.maxSize CACHE_SPECS_RESOURCE_INFO_MAX_SIZE 100000 0 means the cache is disabled
cache.specs.alarmTypes.timeToLiveInMinutes CACHE_SPECS_ALARM_TYPES_TTL 60 Alarm types cache TTL
cache.specs.alarmTypes.maxSize CACHE_SPECS_ALARM_TYPES_MAX_SIZE 10000 0 means the cache is disabled
cache.specs.mobileAppSettings.timeToLiveInMinutes CACHE_SPECS_MOBILE_APP_SETTINGS_TTL 1440 Mobile application cache TTL
cache.specs.mobileAppSettings.maxSize CACHE_SPECS_MOBILE_APP_SETTINGS_MAX_SIZE 10000 0 means the cache is disabled
cache.specs.mobileSecretKey.timeToLiveInMinutes CACHE_MOBILE_SECRET_KEY_TTL 2 QR secret key cache TTL
cache.specs.mobileSecretKey.maxSize CACHE_MOBILE_SECRET_KEY_MAX_SIZE 10000 0 means the cache is disabled
cache.notificationRules.timeToLiveInMinutes CACHE_SPECS_NOTIFICATION_RULES_TTL 30 Notification rules cache TTL
cache.notificationRules.maxSize CACHE_SPECS_NOTIFICATION_RULES_MAX_SIZE 1000 0 means the cache is disabled
cache.rateLimits.timeToLiveInMinutes CACHE_SPECS_RATE_LIMITS_TTL 120 Rate limits cache TTL
cache.rateLimits.maxSize CACHE_SPECS_RATE_LIMITS_MAX_SIZE 200000 0 means the cache is disabled
cache.entityLimits.timeToLiveInMinutes CACHE_SPECS_ENTITY_LIMITS_TTL 5 Entity limits cache TTL
cache.entityLimits.maxSize CACHE_SPECS_ENTITY_LIMITS_MAX_SIZE 100000 0 means the cache is disabled
cache.image.etag.timeToLiveInMinutes CACHE_SPECS_IMAGE_ETAGS_TTL 44640 Image ETags cache TTL
cache.image.etag.maxSize CACHE_SPECS_IMAGE_ETAGS_MAX_SIZE 10000 0 means the cache is disabled
cache.image.systemImagesBrowserTtlInMinutes CACHE_SPECS_IMAGE_SYSTEM_BROWSER_TTL 0 Browser cache TTL for system images in minutes. 0 means the cache is disabled
cache.image.tenantImagesBrowserTtlInMinutes CACHE_SPECS_IMAGE_TENANT_BROWSER_TTL 0 Browser cache TTL for tenant images in minutes. 0 means the cache is disabled

Spring data parameters

ParameterEnvironment VariableDefault ValueDescription
spring.data.redis.repositories.enabled false Disable this because it is not required.

Redis configuration parameters

ParameterEnvironment VariableDefault ValueDescription
redis.connection.type REDIS_CONNECTION_TYPE standalone Redis deployment type: Standalone (single Redis node deployment) 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 Use the default Redis configuration file
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 if set false will be used pool config build from values of the pool config section
redis.sentinel.master REDIS_MASTER name of the master node
redis.sentinel.sentinels REDIS_SENTINELS comma-separated list of "host:port" pairs of sentinels
redis.sentinel.password REDIS_SENTINEL_PASSWORD password to authenticate with sentinel
redis.sentinel.useDefaultPoolConfig REDIS_USE_DEFAULT_POOL_CONFIG true if set false will be used pool config build from values of the pool config section
redis.db REDIS_DB 0 db index
redis.password REDIS_PASSWORD db password
redis.ssl.enabled TB_REDIS_SSL_ENABLED false Enable/disable secure connection
redis.ssl.credentials.cert_file TB_REDIS_SSL_PEM_CERT Path redis server (CA) certificate
redis.ssl.credentials.user_cert_file TB_REDIS_SSL_PEM_KEY Path to user certificate file. This is optional for the client and can be used for two-way authentication for the client
redis.ssl.credentials.user_key_file TB_REDIS_SSL_PEM_KEY_PASSWORD Path to user private key file. This is optional for the client and only needed if ‘user_cert_file’ is configured.
redis.pool_config.maxTotal REDIS_POOL_CONFIG_MAX_TOTAL 128 Maximum number of connections that can be allocated by the connection pool
redis.pool_config.maxIdle REDIS_POOL_CONFIG_MAX_IDLE 128 Maximum number of idle connections that can be maintained in the pool without being closed
redis.pool_config.minIdle REDIS_POOL_CONFIG_MIN_IDLE 16 Minumum number of idle connections that can be maintained in the pool without being closed
redis.pool_config.testOnBorrow REDIS_POOL_CONFIG_TEST_ON_BORROW true Enable/Disable PING command sent when a connection is borrowed
redis.pool_config.testOnReturn REDIS_POOL_CONFIG_TEST_ON_RETURN true The property is used to specify whether to test the connection before returning it to the connection pool.
redis.pool_config.testWhileIdle REDIS_POOL_CONFIG_TEST_WHILE_IDLE true The property is used in the context of connection pooling in Redis
redis.pool_config.minEvictableMs REDIS_POOL_CONFIG_MIN_EVICTABLE_MS 60000 Minimum time that an idle connection should be idle before it can be evicted from the connection pool. The value is set in milliseconds
redis.pool_config.evictionRunsMs REDIS_POOL_CONFIG_EVICTION_RUNS_MS 30000 Specifies the time interval in milliseconds between two consecutive eviction runs
redis.pool_config.maxWaitMills REDIS_POOL_CONFIG_MAX_WAIT_MS 60000 Maximum time in milliseconds where a client is willing to wait for a connection from the pool when all connections are exhausted
redis.pool_config.numberTestsPerEvictionRun REDIS_POOL_CONFIG_NUMBER_TESTS_PER_EVICTION_RUN 3 Specifies the number of connections to test for eviction during each eviction run
redis.pool_config.blockWhenExhausted REDIS_POOL_CONFIG_BLOCK_WHEN_EXHAUSTED true Determines the behavior when a thread requests a connection from the pool, but there are no available connections, and the pool cannot create more due to the maxTotal configuration
redis.evictTtlInMs REDIS_EVICT_TTL_MS 60000 TTL for short-living SET commands that are used to replace DEL to enable transaction support

Update version parameters

ParameterEnvironment VariableDefault ValueDescription
updates.enabled UPDATES_ENABLED true Enable/disable checks for the new version

Spring CORS configuration parameters

ParameterEnvironment VariableDefault ValueDescription
spring.mvc.cors.mappings."[/api/**]".allowed-origin-patterns "*" 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.

General spring parameters

ParameterEnvironment VariableDefault ValueDescription
spring.main.allow-circular-references "true" Spring Boot configuration property that controls whether circular dependencies between beans are allowed.
spring.freemarker.checkTemplateLocation "false" spring freemarker configuration
spring.mvc.async.request-timeout SPRING_MVC_ASYNC_REQUEST_TIMEOUT 30000 The default timeout for asynchronous requests in milliseconds
spring.mvc.pathmatch.matching-strategy "ANT_PATH_MATCHER" For endpoints matching in Swagger
spring.resources.chain.compressed "true" This property enables or disables support for serving pre-compressed resources (for example, a .gzip or .br file)
spring.resources.chain.strategy.content.enabled "true" This property enables or disables the content Version Strategy. This strategy allows Spring to generate a unique version for static resources, which is based on the content of the resource
spring.servlet.multipart.max-file-size SPRING_SERVLET_MULTIPART_MAX_FILE_SIZE 50MB Total file size cannot exceed 50MB when configuring file uploads
spring.servlet.multipart.max-request-size SPRING_SERVLET_MULTIPART_MAX_REQUEST_SIZE 50MB Total request size for a multipart/form-data cannot exceed 50MB
spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation "true" Fix Postgres JPA Error (Method org.postgresql.jdbc.PgConnection.createClob() is not yet implemented)
spring.jpa.properties.hibernate.order_by.default_null_ordering SPRING_JPA_PROPERTIES_HIBERNATE_ORDER_BY_DEFAULT_NULL_ORDERING last Note: as for current Spring JPA version, custom NullHandling for the Sort.Order is ignored and this parameter is used
spring.jpa.properties.hibernate.dialect SPRING_JPA_DIALECT org.thingsboard.server.dao.ThingsboardPostgreSQLDialect we use custom dialect that contains ilike(arg1, arg2) function (is interpreted to postgres ILIKE operator)

SQL DAO Configuration parameters

ParameterEnvironment VariableDefault ValueDescription
spring.data.jpa.repositories.enabled "true" Enable/Disable the Spring Data JPA repositories support
spring.jpa.properties.jakarta.persistence.query.timeout JAVAX_PERSISTENCE_QUERY_TIMEOUT 30000 General timeout for JDBC queries
spring.jpa.open-in-view "false" Enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
spring.jpa.hibernate.ddl-auto "none" You can set a Hibernate feature that controls the DDL behavior in a more fine-grained way. The standard Hibernate property values are none, validate, update, create-drop. Spring Boot chooses a default value for you based on whether it thinks your database is embedded (default create-drop) or not (default 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 connection URL
spring.datasource.username SPRING_DATASOURCE_USERNAME postgres Database user name
spring.datasource.password SPRING_DATASOURCE_PASSWORD postgres Database user password
spring.datasource.hikari.leakDetectionThreshold SPRING_DATASOURCE_HIKARI_LEAK_DETECTION_THRESHOLD 0 This property controls the amount of time that a connection can be out of the pool before a message is logged indicating a possible connection leak. A value of 0 means leak detection is disabled
spring.datasource.hikari.maximumPoolSize SPRING_DATASOURCE_MAXIMUM_POOL_SIZE 16 This property increases the number of connections in the pool 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
spring.datasource.hikari.registerMbeans SPRING_DATASOURCE_HIKARI_REGISTER_MBEANS false Enable MBean to diagnose pools state via JMX
spring.datasource.events.enabled SPRING_DEDICATED_EVENTS_DATASOURCE_ENABLED false Enable dedicated datasource (a separate database) for events and audit logs. Before enabling this, make sure you have set up the following tables in the new DB: error_event, lc_event, rule_chain_debug_event, rule_node_debug_event, stats_event, audit_log
spring.datasource.events.driverClassName SPRING_EVENTS_DATASOURCE_DRIVER_CLASS_NAME org.postgresql.Driver Database driver for Spring JPA for events datasource
spring.datasource.events.url SPRING_EVENTS_DATASOURCE_URL jdbc:postgresql://localhost:5432/thingsboard_events Database connection URL for events datasource
spring.datasource.events.username SPRING_EVENTS_DATASOURCE_USERNAME postgres Database username for events datasource
spring.datasource.events.password SPRING_EVENTS_DATASOURCE_PASSWORD postgres Database user password for events datasource
spring.datasource.events.hikari.leakDetectionThreshold SPRING_EVENTS_DATASOURCE_HIKARI_LEAK_DETECTION_THRESHOLD 0 This property controls the amount of time that a connection can be out of the pool before a message is logged indicating a possible connection leak for events datasource. A value of 0 means leak detection is disabled
spring.datasource.events.hikari.maximumPoolSize SPRING_EVENTS_DATASOURCE_MAXIMUM_POOL_SIZE 4 This property increases the number of connections in the pool as demand increases for events datasource. 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
spring.datasource.events.hikari.registerMbeans SPRING_EVENTS_DATASOURCE_HIKARI_REGISTER_MBEANS false Enable MBean to diagnose pools state via JMX for events datasource

Audit log parameters

ParameterEnvironment VariableDefault ValueDescription
audit-log.enabled AUDIT_LOG_ENABLED true Enable/disable audit log functionality.
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 operation
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 operation
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 operation
audit-log.logging-level.mask."widget_type" AUDIT_LOG_MASK_WIDGET_TYPE W Widget type logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operation
audit-log.logging-level.mask."widgets_bundle" AUDIT_LOG_MASK_WIDGETS_BUNDLE W Widget bundles logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operation
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 operation
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 operation
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 operation
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 operation
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 operation
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 operation
audit-log.logging-level.mask."asset_profile" AUDIT_LOG_MASK_ASSET_PROFILE W Asset profile logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operation
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 operation
audit-log.logging-level.mask."tb_resource" AUDIT_LOG_MASK_RESOURCE W TB resource logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operation
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 operation
audit-log.sink.type AUDIT_LOG_SINK_TYPE none Type of external sink. 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 are 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 can be found here: https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html
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 state parameters

ParameterEnvironment VariableDefault ValueDescription
state.defaultInactivityTimeoutInSec DEFAULT_INACTIVITY_TIMEOUT 600 Device inactivity timeout is a global configuration parameter that defines when the device will be marked as "inactive" by the server. The parameter value is in seconds. A user can overwrite this parameter for an individual device by setting the “inactivityTimeout” server-side attribute (NOTE: expects value in milliseconds). We recommend this parameter to be in sync with session inactivity timeout ("transport.sessions.inactivity_timeout" or TB_TRANSPORT_SESSIONS_INACTIVITY_TIMEOUT) parameter which is responsible for detection of the stale device connection sessions. The value of the session inactivity timeout parameter should be greater or equal to the device inactivity timeout. Note that the session inactivity timeout is set in milliseconds while device inactivity timeout is in seconds.
state.defaultStateCheckIntervalInSec DEFAULT_STATE_CHECK_INTERVAL 60 Interval for checking the device state after a specified period. Time in seconds
state.persistToTelemetry PERSIST_STATE_TO_TELEMETRY false Controls whether we store the device 'active' flag in attributes (default) or telemetry. If you decide to change this parameter, you should re-create the device info view as one of the following: If 'persistToTelemetry' is changed from 'false' to 'true': 'CREATE OR REPLACE VIEW device_info_view AS SELECT * FROM device_info_active_ts_view;' If 'persistToTelemetry' is changed from 'true' to 'false': 'CREATE OR REPLACE VIEW device_info_view AS SELECT * FROM device_info_active_attribute_view;'
state.telemetryTtl STATE_TELEMETRY_TTL 0 Millisecond value defining time-to-live for device state telemetry data (e.g. 'active', 'lastActivityTime'). Used only when state.persistToTelemetry is set to 'true' and Cassandra is used for timeseries data. 0 means time-to-live mechanism is disabled.
state.rule.node.deviceState.rateLimit DEVICE_STATE_NODE_RATE_LIMIT_CONFIGURATION 1:1,30:60,60:3600 Defines the rate at which device connectivity events can be triggered. Comma-separated list of capacity:duration pairs that define bandwidth capacity and refill duration for token bucket rate limit algorithm. Refill is set to be greedy. Please refer to Bucket4j library documentation for more details.

Tbel parameters

ParameterEnvironment VariableDefault ValueDescription
tbel.enabled TBEL_ENABLED true Enable/Disable TBEL feature.
tbel.max_total_args_size TBEL_MAX_TOTAL_ARGS_SIZE 100000 Limit the number of arguments that are passed to the function to execute the script
tbel.max_result_size TBEL_MAX_RESULT_SIZE 300000 Maximum allowed symbols in a result after processing a script
tbel.max_script_body_size TBEL_MAX_SCRIPT_BODY_SIZE 50000 Maximum allowed symbols in the script body
tbel.max_memory_limit_mb TBEL_MAX_MEMORY_LIMIT_MB 8 Maximum allowed TBEL script execution memory
tbel.max_errors TBEL_MAX_ERRORS 3 Maximum allowed TBEL script execution errors before it will be blacklisted
tbel.max_requests_timeout TBEL_MAX_REQUEST_TIMEOUT 500 TBEL Eval max request timeout in milliseconds. 0 - no timeout
tbel.max_black_list_duration_sec TBEL_MAX_BLACKLIST_DURATION_SEC 60 Maximum time in seconds for black listed function to stay in the list.
tbel.thread_pool_size TBEL_THREAD_POOL_SIZE 50 Specify thread pool size for javascript executor service
tbel.compiled_scripts_cache_size TBEL_COMPILED_SCRIPTS_CACHE_SIZE 1000 Maximum cache size of TBEL compiled scripts
tbel.stats.enabled TB_TBEL_STATS_ENABLED false Enable/Disable stats collection for TBEL engine
tbel.stats.print_interval_ms TB_TBEL_STATS_PRINT_INTERVAL_MS 10000 Interval of logging for TBEL stats

JS parameters

ParameterEnvironment VariableDefault ValueDescription
js.evaluator JS_EVALUATOR local local (Nashorn Engine, deprecated) OR remote JS-Executors (NodeJS)
js.max_total_args_size JS_MAX_TOTAL_ARGS_SIZE 100000 Limit the number of arguments that are passed to the function to execute the script
js.max_result_size JS_MAX_RESULT_SIZE 300000 Maximum allowed symbols in a result after processing a script
js.max_script_body_size JS_MAX_SCRIPT_BODY_SIZE 50000 Maximum allowed symbols in script body
js.local.js_thread_pool_size LOCAL_JS_THREAD_POOL_SIZE 50 Specify thread pool size for javascript executor service
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_memory LOCAL_JS_SANDBOX_MAX_MEMORY 104857600 Maximum memory in Bytes which JS executor thread can allocate (approximate calculation). A zero memory limit in combination with a non-zero CPU limit is not recommended due to the implementation of Nashorn 0.4.2. 100MiB is effectively unlimited for most cases
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.js_thread_pool_size REMOTE_JS_THREAD_POOL_SIZE 50 Specify thread pool size for javascript executor service
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 configuration parameters

ParameterEnvironment VariableDefault ValueDescription
transport.sessions.inactivity_timeout TB_TRANSPORT_SESSIONS_INACTIVITY_TIMEOUT 600000 Session inactivity timeout is a global configuration parameter that defines how long the device transport session will be opened after the last message arrives from the device. The parameter value is in milliseconds. The last activity time of the device session is updated if the device sends any message, including keepalive messages If there is no activity, the session will be closed, and all subscriptions will be deleted. We recommend this parameter to be in sync with device inactivity timeout ("state.defaultInactivityTimeoutInSec" or DEFAULT_INACTIVITY_TIMEOUT) parameter which is responsible for detection of the device connectivity status in the core service of the platform. The value of the session inactivity timeout parameter should be greater or equal to the device inactivity timeout. Note that the session inactivity timeout is set in milliseconds while device inactivity timeout is in seconds.
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.activity.reporting_strategy TB_TRANSPORT_ACTIVITY_REPORTING_STRATEGY LAST This property specifies the strategy for reporting activity events within each reporting period. The accepted values are 'FIRST', 'LAST', 'FIRST_AND_LAST' and 'ALL'. - 'FIRST': Only the first activity event in each reporting period is reported. - 'LAST': Only the last activity event in the reporting period is reported. - 'FIRST_AND_LAST': Both the first and last activity events in the reporting period are reported. - 'ALL': All activity events in the reporting period are reported.
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 Processing timeout interval of the RPC command on the CLIENT SIDE. Time in milliseconds
transport.api_enabled TB_TRANSPORT_API_ENABLED true Enable/disable http/mqtt/coap/lwm2m 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.rate_limits.ip_limits_enabled TB_TRANSPORT_IP_RATE_LIMITS_ENABLED false Enable or disable generic rate limits. Device and Tenant-specific rate limits are controlled in Tenant Profile.
transport.rate_limits.max_wrong_credentials_per_ip TB_TRANSPORT_MAX_WRONG_CREDENTIALS_PER_IP 10 Maximum number of connect attempts with invalid credentials
transport.rate_limits.ip_block_timeout TB_TRANSPORT_IP_BLOCK_TIMEOUT 60000 Timeout (in milliseconds) to expire block IP addresses
transport.http.enabled HTTP_ENABLED true Enable/Disable local HTTP transport protocol
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
transport.http.max_payload_size HTTP_TRANSPORT_MAX_PAYLOAD_SIZE_LIMIT_CONFIGURATION /api/v1/*/rpc/**=65536;/api/v1/**=52428800 Semi-colon-separated list of urlPattern=maxPayloadSize pairs that define max http request size for specified url pattern. After first match all other will be skipped
transport.mqtt.enabled MQTT_ENABLED true Enable/disable mqtt transport protocol.
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.proxy_enabled MQTT_PROXY_PROTOCOL_ENABLED false Enable proxy protocol support. Disabled by default. If enabled, supports both v1 and v2. Useful to get the real IP address of the client in the logs and for rate limits.
transport.mqtt.timeout MQTT_TIMEOUT 10000 MQTT processing timeout in milliseconds
transport.mqtt.disconnect_timeout MQTT_DISCONNECT_TIMEOUT 1000 MQTT disconnect timeout in milliseconds. The time to wait for the client to disconnect after the server sends a disconnect message.
transport.mqtt.msg_queue_size_per_device_limit MQTT_MSG_QUEUE_SIZE_PER_DEVICE_LIMIT 100 messages await in the queue before the device connected state. This limit works on the low level before TenantProfileLimits mechanism
transport.mqtt.gateway_metrics_report_interval_sec MQTT_GATEWAY_METRICS_REPORT_INTERVAL_SEC 60 Interval of periodic report of the gateway metrics
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 Enables TCP keepalive. This means that TCP starts sending keepalive probes when a connection is idle for some time
transport.mqtt.ssl.enabled MQTT_SSL_ENABLED false Enable/disable SSL support
transport.mqtt.ssl.bind_address MQTT_SSL_BIND_ADDRESS 0.0.0.0 MQTT 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 https://docs.oracle.com/en/java/javase/11/docs/specs/security/standard-names.html#sslcontext-algorithms
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 by default. Required if the private key is not present in server certificate file;
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 JKS Type of the key store (JKS or PKCS12)
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_alias MQTT_SSL_KEY_ALIAS Optional alias of the private key. If not set, the platform will load the first private key from the keystore
transport.mqtt.ssl.credentials.keystore.key_password MQTT_SSL_KEY_PASSWORD server_key_password Optional password to access the private key. If not set, the platform will attempt to load the private keys that are not protected with the password;
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.
transport.coap.enabled COAP_ENABLED true Enable/disable CoAP transport protocol.
transport.coap.timeout COAP_TIMEOUT 10000 CoaP processing timeout in milliseconds
transport.coap.piggyback_timeout COAP_PIGGYBACK_TIMEOUT 500 CoaP piggyback response 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 PSM Activity Timer if not specified in device profile
transport.lwm2m.enabled LWM2M_ENABLED true Enable/disable LwM2M transport protocol.
transport.lwm2m.dtls.retransmission_timeout LWM2M_DTLS_RETRANSMISSION_TIMEOUT_MS 9000 RFC7925_RETRANSMISSION_TIMEOUT_IN_MILLISECONDS = 9000
transport.lwm2m.dtls.connection_id_length LWM2M_DTLS_CONNECTION_ID_LENGTH CoAP DTLS connection ID length for LWM2M. RFC 9146, Connection Identifier for DTLS 1.2 Default: off Control usage of DTLS connection ID length (CID). - 'off' to deactivate it. - 'on' to activate Connection ID support (same as CID 0 or more 0). - A positive value defines generated CID size in bytes. - A value of 0 means we accept using CID but will not generate one for foreign peer (enables support but not for incoming traffic). - A value between 0 and <= 4: SingleNodeConnectionIdGenerator is used - A value that are > 4: MultiNodeConnectionIdGenerator is used
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 false 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 by default. Required if the private key is not present in the server certificate file;
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 (JKS or PKCS12)
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.enabled LWM2M_ENABLED_BS true Enable/disable Bootstrap Server
transport.lwm2m.bootstrap.id LWM2M_SERVER_ID_BS 111 Default value in LwM2M client 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 address for DTLS. Bind to all interfaces by default
transport.lwm2m.bootstrap.security.credentials.enabled LWM2M_BS_CREDENTIALS_ENABLED false 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 by default. Required if the private key is not present in server certificate file
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 (JKS or PKCS12)
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 false 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 lwm2mtruststorechain.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 (JKS or PKCS12)
transport.lwm2m.security.trust-credentials.keystore.store_file LWM2M_TRUST_KEY_STORE lwm2mtruststorechain.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; true - allow only recommended cipher suites; false - allow not recommended cipher suites
transport.lwm2m.security.recommended_supported_groups LWM2M_RECOMMENDED_SUPPORTED_GROUPS true Set usage of recommended supported groups (curves); true - allow only recommended supported groups, false - allow not recommended supported groups
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.log_max_length LWM2M_LOG_MAX_LENGTH 1024 Maximum log size
transport.lwm2m.psm_activity_timer LWM2M_PSM_ACTIVITY_TIMER 10000 PSM Activity Timer if not specified in the device profile
transport.lwm2m.paging_transmission_window LWM2M_PAGING_TRANSMISSION_WINDOW 10000 Paging Transmission Window for eDRX support if not specified in the device profile
transport.snmp.enabled SNMP_ENABLED true Enable/disable SNMP transport protocol
transport.snmp.bind_port SNMP_BIND_PORT 1620 Snmp bind port
transport.snmp.response_processing.parallelism_level SNMP_RESPONSE_PROCESSING_PARALLELISM_LEVEL 4 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
transport.snmp.max_request_oids SNMP_MAX_REQUEST_OIDS 100 Maximum size of a PDU (amount of OID mappings in a single SNMP request). The request will be split into multiple PDUs if mappings amount exceeds this number
transport.snmp.request_chunk_delay_ms SNMP_REQUEST_CHUNK_DELAY_MS 100 Delay after sending each request chunk (in case the request was split into multiple PDUs due to max_request_oids)
transport.snmp.response.ignore_type_cast_errors SNMP_RESPONSE_IGNORE_TYPE_CAST_ERRORS false To ignore SNMP response values that do not match the data type of the configured OID mapping (by default false - will throw an error if any value of the response not match configured data types)
transport.snmp.scheduler_thread_pool_size SNMP_SCHEDULER_THREAD_POOL_SIZE 4 Thread pool size for scheduler that executes device querying tasks
transport.stats.enabled TB_TRANSPORT_STATS_ENABLED true Enable/Disable the collection of transport statistics
transport.stats.print-interval-ms TB_TRANSPORT_STATS_PRINT_INTERVAL_MS 60000 Interval of transport statistics logging

CoAP server parameters

ParameterEnvironment VariableDefault ValueDescription
coap.enabled COAP_SERVER_ENABLED true Enable/disable coap server.
coap.bind_address COAP_BIND_ADDRESS 0.0.0.0 CoAP bind address
coap.bind_port COAP_BIND_PORT 5683 CoAP bind port
coap.dtls.enabled COAP_DTLS_ENABLED false Enable/disable DTLS 1.2 support
coap.dtls.retransmission_timeout COAP_DTLS_RETRANSMISSION_TIMEOUT_MS 9000 RFC7925_RETRANSMISSION_TIMEOUT_IN_MILLISECONDS = 9000
coap.dtls.bind_address COAP_DTLS_BIND_ADDRESS 0.0.0.0 CoAP DTLS bind address
coap.dtls.bind_port COAP_DTLS_BIND_PORT 5684 CoAP DTLS bind port
coap.dtls.connection_id_length COAP_DTLS_CONNECTION_ID_LENGTH CoAP DTLS connection ID length. RFC 9146, Connection Identifier for DTLS 1.2 Default: off Control usage of DTLS connection ID length (CID). - 'off' to deactivate it. - 'on' to activate Connection ID support (same as CID 0 or more 0). - A positive value defines generated CID size in bytes. - A value of 0 means we accept using CID but will not generate one for foreign peer (enables support but not for incoming traffic). - A value between 0 and <= 4: SingleNodeConnectionIdGenerator is used - A value that are > 4: MultiNodeConnectionIdGenerator is used
coap.dtls.credentials.type COAP_DTLS_CREDENTIALS_TYPE PEM Server credentials type (PEM - pem certificate file; KEYSTORE - java keystore)
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)
coap.dtls.credentials.pem.key_file COAP_DTLS_PEM_KEY coapserver_key.pem Path to the server certificate private key file. Optional by default. Required if the private key is not present in the server certificate file;
coap.dtls.credentials.pem.key_password COAP_DTLS_PEM_KEY_PASSWORD server_key_password Server certificate private key password (optional)
coap.dtls.credentials.keystore.type COAP_DTLS_KEY_STORE_TYPE JKS Type of the key store (JKS or PKCS12)
coap.dtls.credentials.keystore.store_file COAP_DTLS_KEY_STORE coapserver.jks Path to the key store that holds the SSL certificate
coap.dtls.credentials.keystore.store_password COAP_DTLS_KEY_STORE_PASSWORD server_ks_password Password used to access the key store
coap.dtls.credentials.keystore.key_alias COAP_DTLS_KEY_ALIAS serveralias Key alias
coap.dtls.credentials.keystore.key_password COAP_DTLS_KEY_PASSWORD server_key_password Password used to access the key
coap.dtls.x509.skip_validity_check_for_client_cert TB_COAP_X509_DTLS_SKIP_VALIDITY_CHECK_FOR_CLIENT_CERT false Skip certificate validity check for client certificates.
coap.dtls.x509.dtls_session_inactivity_timeout TB_COAP_X509_DTLS_SESSION_INACTIVITY_TIMEOUT 86400000 Inactivity timeout of DTLS session. Used to cleanup cache
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

Device connectivity parameters

ParameterEnvironment VariableDefault ValueDescription
device.connectivity.http.enabled DEVICE_CONNECTIVITY_HTTP_ENABLED true If true check-connectivity service will include curl command to the list of all test commands using DEVICE_CONNECTIVITY_HTTP_HOST and DEVICE_CONNECTIVITY_HTTP_PORT variables
device.connectivity.http.host DEVICE_CONNECTIVITY_HTTP_HOST Host of http transport service. If empty, the base URL will be used.
device.connectivity.http.port DEVICE_CONNECTIVITY_HTTP_PORT 8080 Port of http transport service. If empty, default http port will be used.
device.connectivity.https.enabled DEVICE_CONNECTIVITY_HTTPS_ENABLED false If true check-connectivity service will include curl command to the list of all test commands using DEVICE_CONNECTIVITY_HTTPS_HOST and DEVICE_CONNECTIVITY_HTTPS_PORT variables
device.connectivity.https.host DEVICE_CONNECTIVITY_HTTPS_HOST Host of http transport service. If empty, the base URL will be used.
device.connectivity.https.port DEVICE_CONNECTIVITY_HTTPS_PORT 443 Port of http transport service. If empty, the default https port will be used.
device.connectivity.mqtt.enabled DEVICE_CONNECTIVITY_MQTT_ENABLED true If true mosquito command will be included to the list of all test commands using DEVICE_CONNECTIVITY_MQTT_HOST and DEVICE_CONNECTIVITY_MQTT_PORT
device.connectivity.mqtt.host DEVICE_CONNECTIVITY_MQTT_HOST Host of mqtt transport service. If empty, the base url host will be used.
device.connectivity.mqtt.port DEVICE_CONNECTIVITY_MQTT_PORT 1883 Port of mqtt transport service
device.connectivity.mqtts.enabled DEVICE_CONNECTIVITY_MQTTS_ENABLED false If true mosquito command will be included in the list of all test commands using DEVICE_CONNECTIVITY_MQTTS_HOST and DEVICE_CONNECTIVITY_MQTTS_PORT<
device.connectivity.mqtts.host DEVICE_CONNECTIVITY_MQTTS_HOST Host of mqtt transport service. If empty, the base URL host will be used.
device.connectivity.mqtts.port DEVICE_CONNECTIVITY_MQTTS_PORT 8883 Port of mqtt transport service. If empty, the default port for mqtts will be used.
device.connectivity.mqtts.pem_cert_file DEVICE_CONNECTIVITY_MQTTS_CA_ROOT_CERT cafile.pem Path to the MQTT CA root certificate file
device.connectivity.coap.enabled DEVICE_CONNECTIVITY_COAP_ENABLED true If true coap command will be included in the list of all test commands using DEVICE_CONNECTIVITY_COAP_HOST and DEVICE_CONNECTIVITY_COAP_PORT.
device.connectivity.coap.host DEVICE_CONNECTIVITY_COAP_HOST Host of coap transport service. If empty, the base URL host will be used.
device.connectivity.coap.port DEVICE_CONNECTIVITY_COAP_PORT 5683 Port of coap transport service. If empty, the default port for coap will be used.
device.connectivity.coaps.enabled DEVICE_CONNECTIVITY_COAPS_ENABLED false If true coap command will be included in the list of all test commands using DEVICE_CONNECTIVITY_COAPS_HOST and DEVICE_CONNECTIVITY_COAPS_PORT.
device.connectivity.coaps.host DEVICE_CONNECTIVITY_COAPS_HOST Host of coap transport service. If empty, the base URL host will be used.
device.connectivity.coaps.port DEVICE_CONNECTIVITY_COAPS_PORT 5684 Port of coap transport service. If empty, the default port for coaps will be used.

Edges parameters

ParameterEnvironment VariableDefault ValueDescription
edges.enabled EDGES_ENABLED true Enable/disable Edge instance
edges.rpc.port EDGES_RPC_PORT 7070 RPC port bind
edges.rpc.client_max_keep_alive_time_sec EDGES_RPC_CLIENT_MAX_KEEP_ALIVE_TIME_SEC 1 Specifies the minimum amount of time that should elapse between keepalive pings sent by the client This prevents clients from sending pings too frequently, which can be a nuisance to the server (potentially even a denial-of-service attack vector if abused) If a client sends pings more frequently than this interval, the server may terminate the connection.
edges.rpc.keep_alive_time_sec EDGES_RPC_KEEP_ALIVE_TIME_SEC 10 Sets the time of inactivity (no read operations on the connection) after which the server will send a keepalive ping to the client. This is used to ensure that the connection is still alive and to prevent network intermediaries from dropping connections due to inactivity. It's a way for the server to proactively check if the client is still responsive.
edges.rpc.keep_alive_timeout_sec EDGES_RPC_KEEP_ALIVE_TIMEOUT_SEC 5 Specifies the maximum amount of time the server waits for a response to its keepalive ping. If the ping is not acknowledged within this time frame, the server considers the connection dead and may close it. This timeout helps detect unresponsive clients.
edges.rpc.ssl.enabled EDGES_RPC_SSL_ENABLED false Enable/disable SSL support
edges.rpc.ssl.cert EDGES_RPC_SSL_CERT certChainFile.pem Cert file to be used during TLS connectivity to the cloud
edges.rpc.ssl.private_key EDGES_RPC_SSL_PRIVATE_KEY privateKeyFile.pem Private key file associated with the Cert certificate. This key is used in the encryption process during a secure connection
edges.rpc.max_inbound_message_size EDGES_RPC_MAX_INBOUND_MESSAGE_SIZE 4194304 Maximum size (in bytes) of inbound messages the cloud can handle from the edge. By default, it can handle messages up to 4 Megabytes
edges.rpc.max_telemetry_message_size EDGES_RPC_MAX_TELEMETRY_MESSAGE_SIZE 0 Maximum length of telemetry (time-series and attributes) message the cloud sends to the edge. By default, there is no limitation.
edges.storage.max_read_records_count EDGES_STORAGE_MAX_READ_RECORDS_COUNT 50 Max records of edge event to read from DB and sent to the edge
edges.storage.no_read_records_sleep EDGES_NO_READ_RECORDS_SLEEP 1000 Number of milliseconds to wait before the next check of edge events in DB
edges.storage.sleep_between_batches EDGES_SLEEP_BETWEEN_BATCHES 60000 Number of milliseconds to wait before resending failed batch of edge events to edge
edges.max_high_priority_queue_size_per_session EDGES_MAX_HIGH_PRIORITY_QUEUE_SIZE_PER_SESSION 10000 Max number of high priority edge events per edge session. No persistence - stored in memory
edges.scheduler_pool_size EDGES_SCHEDULER_POOL_SIZE 1 Number of threads that are used to check DB for edge events
edges.send_scheduler_pool_size EDGES_SEND_SCHEDULER_POOL_SIZE 1 Number of threads that are used to send downlink messages to edge over gRPC
edges.grpc_callback_thread_pool_size EDGES_GRPC_CALLBACK_POOL_SIZE 1 Number of threads that are used to convert edge events from DB into downlink messages and send them for delivery
edges.state.persistToTelemetry EDGES_PERSIST_STATE_TO_TELEMETRY false Persist state of edge (active, last connect, last disconnect) into timeseries or attributes tables. 'false' means to store edge state into attributes table

Spring doc common parameters

ParameterEnvironment VariableDefault ValueDescription
springdoc.api-docs.enabled SWAGGER_ENABLED true If false swagger API docs will be unavailable
springdoc.default-produces-media-type SWAGGER_DEFAULT_PRODUCES_MEDIA_TYPE application/json Swagger default produces media-type

Swagger common parameters

ParameterEnvironment VariableDefault ValueDescription
swagger.api_path SWAGGER_API_PATH /api/** General swagger match pattern of swagger UI links
swagger.security_path_regex SWAGGER_SECURITY_PATH_REGEX /api/.* General swagger match pattern path of swagger UI links
swagger.non_security_path_regex SWAGGER_NON_SECURITY_PATH_REGEX /api/(?:noauth|v1)/.* Nonsecurity API path match pattern of swagger UI links
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 [email protected] 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.
swagger.group_name SWAGGER_GROUP_NAME thingsboard The group name (definition) on the API doc UI page.

Queue configuration 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.prefix TB_QUEUE_PREFIX Global queue prefix. If specified, prefix is added before default topic name: 'prefix.default_topic_name'. Prefix is applied to all topics (and consumer groups for kafka).
queue.in_memory.stats.print-interval-ms TB_QUEUE_IN_MEMORY_STATS_PRINT_INTERVAL_MS 60000 For debug level
queue.kafka.bootstrap.servers TB_KAFKA_SERVERS localhost:9092 Kafka Bootstrap nodes in "host:port" format
queue.kafka.ssl.enabled TB_KAFKA_SSL_ENABLED false Enable/Disable SSL Kafka communication
queue.kafka.ssl.truststore.location TB_KAFKA_SSL_TRUSTSTORE_LOCATION The location of the trust store file
queue.kafka.ssl.truststore.password TB_KAFKA_SSL_TRUSTSTORE_PASSWORD The password of trust store file if specified
queue.kafka.ssl.keystore.location TB_KAFKA_SSL_KEYSTORE_LOCATION The location of the key store file. This is optional for the client and can be used for two-way authentication for the client
queue.kafka.ssl.keystore.password TB_KAFKA_SSL_KEYSTORE_PASSWORD The store password for the key store file. This is optional for the client and only needed if ‘ssl.keystore.location’ is configured. Key store password is not supported for PEM format
queue.kafka.ssl.key.password TB_KAFKA_SSL_KEY_PASSWORD The password of the private key in the key store file or the PEM key specified in ‘keystore.key’
queue.kafka.acks TB_KAFKA_ACKS all The number of acknowledgments the producer requires the leader to have received before considering a request complete. This controls the durability of records that are sent. The following settings are allowed:0, 1 and all
queue.kafka.retries TB_KAFKA_RETRIES 1 Number of retries. Resend any record whose send fails with a potentially transient error
queue.kafka.compression.type TB_KAFKA_COMPRESSION_TYPE none none or gzip
queue.kafka.batch.size TB_KAFKA_BATCH_SIZE 16384 Default batch size. This setting gives the upper bound of the batch size to be sent
queue.kafka.linger.ms TB_KAFKA_LINGER_MS 1 This variable creates a small amount of artificial delay—that is, rather than immediately sending out a record
queue.kafka.max.request.size TB_KAFKA_MAX_REQUEST_SIZE 1048576 The maximum size of a request in bytes. This setting will limit the number of record batches the producer will send in a single request to avoid sending huge requests
queue.kafka.max.in.flight.requests.per.connection TB_KAFKA_MAX_IN_FLIGHT_REQUESTS_PER_CONNECTION 5 The maximum number of unacknowledged requests the client will send on a single connection before blocking
queue.kafka.buffer.memory TB_BUFFER_MEMORY 33554432 The total bytes of memory the producer can use to buffer records waiting to be sent to the server
queue.kafka.replication_factor TB_QUEUE_KAFKA_REPLICATION_FACTOR 1 The multiple copies of data over the multiple brokers of Kafka
queue.kafka.max_poll_interval_ms TB_QUEUE_KAFKA_MAX_POLL_INTERVAL_MS 300000 The maximum delay between invocations of poll() method when using consumer group management. This places an upper bound on the amount of time that the consumer can be idle before fetching more records
queue.kafka.max_poll_records TB_QUEUE_KAFKA_MAX_POLL_RECORDS 8192 The maximum number of records returned in a single call of poll() method
queue.kafka.max_partition_fetch_bytes TB_QUEUE_KAFKA_MAX_PARTITION_FETCH_BYTES 16777216 The maximum amount of data per-partition the server will return. Records are fetched in batches by the consumer
queue.kafka.fetch_max_bytes TB_QUEUE_KAFKA_FETCH_MAX_BYTES 134217728 The maximum amount of data the server will return. Records are fetched in batches by the consumer
queue.kafka.request.timeout.ms TB_QUEUE_KAFKA_REQUEST_TIMEOUT_MS 30000 (30 seconds)
queue.kafka.session.timeout.ms TB_QUEUE_KAFKA_SESSION_TIMEOUT_MS 10000 (10 seconds)
queue.kafka.auto_offset_reset TB_QUEUE_KAFKA_AUTO_OFFSET_RESET earliest earliest, latest or none
queue.kafka.use_confluent_cloud TB_QUEUE_KAFKA_USE_CONFLUENT_CLOUD false Enable/Disable using of Confluent Cloud
queue.kafka.confluent.ssl.algorithm TB_QUEUE_KAFKA_CONFLUENT_SSL_ALGORITHM https The endpoint identification algorithm used by clients to validate server hostname. The default value is https
queue.kafka.confluent.sasl.mechanism TB_QUEUE_KAFKA_CONFLUENT_SASL_MECHANISM PLAIN The mechanism used to authenticate Schema Registry requests. SASL/PLAIN should only be used with TLS/SSL as a transport layer to ensure that clear passwords are not transmitted on the wire without encryption
queue.kafka.confluent.sasl.config TB_QUEUE_KAFKA_CONFLUENT_SASL_JAAS_CONFIG org.apache.kafka.common.security.plain.PlainLoginModule required username=\"CLUSTER_API_KEY\" password=\"CLUSTER_API_SECRET\"; Using JAAS Configuration for specifying multiple SASL mechanisms on a broker
queue.kafka.confluent.security.protocol TB_QUEUE_KAFKA_CONFLUENT_SECURITY_PROTOCOL SASL_SSL Protocol used to communicate with brokers. Valid values are: PLAINTEXT, SSL, SASL_PLAINTEXT, SASL_SSL
queue.kafka.consumer-properties-per-topic.tb_ota_package.key max.poll.records Key-value properties for Kafka consumer per specific topic, e.g. tb_ota_package is a topic name for ota, tb_rule_engine.sq is a topic name for default SequentialByOriginator queue. Check TB_QUEUE_CORE_OTA_TOPIC and TB_QUEUE_RE_SQ_TOPIC params
queue.kafka.consumer-properties-per-topic.tb_ota_package.key.value TB_QUEUE_KAFKA_OTA_MAX_POLL_RECORDS 10 Example of specific consumer properties value per topic
queue.kafka.consumer-properties-per-topic.tb_version_control.key max.poll.interval.ms Example of specific consumer properties value per topic for VC
queue.kafka.consumer-properties-per-topic.tb_version_control.key.value TB_QUEUE_KAFKA_VC_MAX_POLL_INTERVAL_MS 600000 Example of specific consumer properties value per topic for VC
queue.kafka.consumer-properties-per-topic.tb_housekeeper.key max.poll.records Consumer properties for Housekeeper tasks topic
queue.kafka.consumer-properties-per-topic.tb_housekeeper.key.value TB_QUEUE_KAFKA_HOUSEKEEPER_MAX_POLL_RECORDS 1 Amount of records to be returned in a single poll. For Housekeeper tasks topic, we should consume messages (tasks) one by one
queue.kafka.consumer-properties-per-topic.tb_housekeeper.reprocessing.key max.poll.records Consumer properties for Housekeeper reprocessing topic
queue.kafka.consumer-properties-per-topic.tb_housekeeper.reprocessing.key.value TB_QUEUE_KAFKA_HOUSEKEEPER_REPROCESSING_MAX_POLL_RECORDS 1 Amount of records to be returned in a single poll. For Housekeeper reprocessing topic, we should consume messages (tasks) one by one
queue.kafka.other-inline TB_QUEUE_KAFKA_OTHER_PROPERTIES In this section you can specify custom parameters (semicolon separated) for Kafka consumer/producer/admin
queue.kafka.topic-properties.rule-engine TB_QUEUE_KAFKA_RE_TOPIC_PROPERTIES retention.ms:604800000;segment.bytes:52428800;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 Kafka properties for Rule Engine
queue.kafka.topic-properties.core TB_QUEUE_KAFKA_CORE_TOPIC_PROPERTIES retention.ms:604800000;segment.bytes:52428800;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:52428800;retention.bytes:1048576000;partitions:10;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:52428800;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:52428800;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:52428800;retention.bytes:1048576000;partitions:10;min.insync.replicas:1 Kafka properties for OTA updates topic
queue.kafka.topic-properties.version-control TB_QUEUE_KAFKA_VC_TOPIC_PROPERTIES retention.ms:604800000;segment.bytes:52428800;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 Kafka properties for Version Control topic
queue.kafka.topic-properties.housekeeper TB_QUEUE_KAFKA_HOUSEKEEPER_TOPIC_PROPERTIES retention.ms:604800000;segment.bytes:52428800;retention.bytes:1048576000;partitions:10;min.insync.replicas:1 Kafka properties for Housekeeper tasks topic
queue.kafka.topic-properties.housekeeper-reprocessing TB_QUEUE_KAFKA_HOUSEKEEPER_REPROCESSING_TOPIC_PROPERTIES retention.ms:7776000000;segment.bytes:52428800;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 Kafka properties for Housekeeper reprocessing topic; retention.ms is set to 90 days; partitions is set to 1 since only one reprocessing service is running at a time
queue.kafka.topic-properties.edge TB_QUEUE_KAFKA_EDGE_TOPIC_PROPERTIES retention.ms:604800000;segment.bytes:52428800;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 Kafka properties for Edge 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 the 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.producer_thread_pool_size TB_QUEUE_AWS_SQS_EXECUTOR_THREAD_POOL_SIZE 50 Thread pool size for aws_sqs queue producer executor provider. Default value equals to AmazonSQSAsyncClient.DEFAULT_THREAD_POOL_SIZE
queue.aws_sqs.queue-properties.rule-engine TB_QUEUE_AWS_SQS_RE_QUEUE_PROPERTIES VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 AWS SQS queue properties. 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 AWS SQS queue properties. 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 AWS SQS queue properties. 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 AWS SQS queue properties. 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:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800
queue.aws_sqs.queue-properties.ota-updates TB_QUEUE_AWS_SQS_OTA_QUEUE_PROPERTIES VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
queue.aws_sqs.queue-properties.version-control TB_QUEUE_AWS_SQS_VC_QUEUE_PROPERTIES VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
queue.aws_sqs.queue-properties.edge TB_QUEUE_AWS_SQS_EDGE_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 Message size for PubSub queue.Value in bytes
queue.pubsub.max_messages TB_QUEUE_PUBSUB_MAX_MESSAGES 1000 Number of messages per consumer
queue.pubsub.executor_thread_pool_size TB_QUEUE_PUBSUB_EXECUTOR_THREAD_POOL_SIZE 0 Thread pool size for pubsub queue executor provider. If set to 0 - default pubsub executor provider value will be used (5 * number of available processors)
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 consumed 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 consumed 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 consumed again
queue.pubsub.queue-properties.notifications TB_QUEUE_PUBSUB_NOTIFICATIONS_QUEUE_PROPERTIES ackDeadlineInSec:30;messageRetentionInSec:604800 Pub/Sub properties for Version Control subscribers, messages which will commit after ackDeadlineInSec period can be consumed again
queue.pubsub.queue-properties.js-executor TB_QUEUE_PUBSUB_JE_QUEUE_PROPERTIES ackDeadlineInSec:30;messageRetentionInSec:604800 PubSub queue properties
queue.pubsub.queue-properties.version-control TB_QUEUE_PUBSUB_VC_QUEUE_PROPERTIES ackDeadlineInSec:30;messageRetentionInSec:604800 Pub/Sub properties for Transport Api subscribers, messages which will commit after ackDeadlineInSec period can be consumed again
queue.pubsub.queue-properties.edge TB_QUEUE_PUBSUB_EDGE_QUEUE_PROPERTIES ackDeadlineInSec:30;messageRetentionInSec:604800 Pub/Sub properties for Edge subscribers, messages which will commit after ackDeadlineInSec period can be consumed again
queue.service_bus.namespace_name TB_QUEUE_SERVICE_BUS_NAMESPACE_NAME YOUR_NAMESPACE_NAME Azure namespace
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 Notification queues
queue.service_bus.queue-properties.js-executor TB_QUEUE_SERVICE_BUS_JE_QUEUE_PROPERTIES lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 Azure Service Bus queue properties
queue.service_bus.queue-properties.version-control TB_QUEUE_SERVICE_BUS_VC_QUEUE_PROPERTIES lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 Azure Service Bus properties for Version Control queues
queue.service_bus.queue-properties.edge TB_QUEUE_SERVICE_BUS_EDGE_QUEUE_PROPERTIES lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 Azure Service Bus properties for Edge queues
queue.rabbitmq.exchange_name TB_QUEUE_RABBIT_MQ_EXCHANGE_NAME By 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 a connection
queue.rabbitmq.virtual_host TB_QUEUE_RABBIT_MQ_VIRTUAL_HOST / Virtual hosts provide logical grouping and separation of resources
queue.rabbitmq.username TB_QUEUE_RABBIT_MQ_USERNAME YOUR_USERNAME Username for RabbitMQ user account
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.max_poll_messages TB_QUEUE_RABBIT_MQ_MAX_POLL_MESSAGES 1 The maximum number of messages returned in a single call of doPoll() method
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 Notification queues
queue.rabbitmq.queue-properties.js-executor TB_QUEUE_RABBIT_MQ_JE_QUEUE_PROPERTIES x-max-length-bytes:1048576000;x-message-ttl:604800000 RabbitMQ queue properties
queue.rabbitmq.queue-properties.version-control TB_QUEUE_RABBIT_MQ_VC_QUEUE_PROPERTIES x-max-length-bytes:1048576000;x-message-ttl:604800000 RabbitMQ properties for Version Control queues
queue.rabbitmq.queue-properties.edge TB_QUEUE_RABBIT_MQ_EDGE_QUEUE_PROPERTIES x-max-length-bytes:1048576000;x-message-ttl:604800000 RabbitMQ properties for Edge queues
queue.partitions.hash_function_name TB_QUEUE_PARTITIONS_HASH_FUNCTION_NAME murmur3_128 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.max_core_handler_threads TB_QUEUE_TRANSPORT_MAX_CORE_HANDLER_THREADS 16 Amount of threads used for transport API requests
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 Default topic name of Kafka, RabbitMQ, etc. queue
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.consumer-per-partition TB_QUEUE_CORE_CONSUMER_PER_PARTITION true Enable/disable a separate consumer per partition for Core queue
queue.core.ota.topic TB_QUEUE_CORE_OTA_TOPIC tb_ota_package Default topic name for 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 the 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 Stats topic name for queue Kafka, RabbitMQ, etc.
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.core.housekeeper.topic TB_HOUSEKEEPER_TOPIC tb_housekeeper Topic name for Housekeeper tasks
queue.core.housekeeper.reprocessing-topic TB_HOUSEKEEPER_REPROCESSING_TOPIC tb_housekeeper.reprocessing Topic name for Housekeeper tasks to be reprocessed
queue.core.housekeeper.poll-interval-ms TB_HOUSEKEEPER_POLL_INTERVAL_MS 500 Poll interval for topics related to Housekeeper
queue.core.housekeeper.task-processing-timeout-ms TB_HOUSEKEEPER_TASK_PROCESSING_TIMEOUT_MS 120000 Timeout in milliseconds for task processing. Tasks that fail to finish on time will be submitted for reprocessing
queue.core.housekeeper.disabled-task-types TB_HOUSEKEEPER_DISABLED_TASK_TYPES Comma-separated list of task types that shouldn't be processed. Available task types: DELETE_ATTRIBUTES, DELETE_TELEMETRY (both DELETE_LATEST_TS and DELETE_TS_HISTORY will be disabled), DELETE_LATEST_TS, DELETE_TS_HISTORY, DELETE_EVENTS, DELETE_ALARMS, UNASSIGN_ALARMS
queue.core.housekeeper.task-reprocessing-delay-ms TB_HOUSEKEEPER_TASK_REPROCESSING_DELAY_MS 3000 Delay in milliseconds between tasks reprocessing
queue.core.housekeeper.max-reprocessing-attempts TB_HOUSEKEEPER_MAX_REPROCESSING_ATTEMPTS 10 Maximum amount of task reprocessing attempts. After exceeding, the task will be dropped
queue.core.housekeeper.stats.enabled TB_HOUSEKEEPER_STATS_ENABLED true Enable/disable statistics for Housekeeper
queue.core.housekeeper.stats.print-interval-ms TB_HOUSEKEEPER_STATS_PRINT_INTERVAL_MS 60000 Statistics printing interval for Housekeeper
queue.vc.topic TB_QUEUE_VC_TOPIC tb_version_control Default topic name for Kafka, RabbitMQ, etc.
queue.vc.partitions TB_QUEUE_VC_PARTITIONS 10 Number of partitions to associate with this queue. Used for scaling the number of messages that can be processed in parallel
queue.vc.poll-interval TB_QUEUE_VC_INTERVAL_MS 25 Interval in milliseconds between polling of the messages if no new messages arrive
queue.vc.pack-processing-timeout TB_QUEUE_VC_PACK_PROCESSING_TIMEOUT_MS 180000 Timeout before retrying all failed and timed-out messages from the processing pack
queue.vc.request-timeout TB_QUEUE_VC_REQUEST_TIMEOUT 180000 Timeout for a request to VC-executor (for a request for the version of the entity, for a commit charge, etc.)
queue.vc.msg-chunk-size TB_QUEUE_VC_MSG_CHUNK_SIZE 250000 Queue settings for Kafka, RabbitMQ, etc. Limit for single message size
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.max_exec_requests_timeout REMOTE_JS_MAX_EXEC_REQUEST_TIMEOUT 2000 JS execution 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 Deprecated. It will be removed in the nearest releases
queue.rule-engine.poll-interval TB_QUEUE_RULE_ENGINE_POLL_INTERVAL_MS 25 Interval in milliseconds to poll messages by Rule Engine
queue.rule-engine.pack-processing-timeout TB_QUEUE_RULE_ENGINE_PACK_PROCESSING_TIMEOUT_MS 2000 Timeout for processing a message pack of Rule Engine
queue.rule-engine.stats.enabled TB_QUEUE_RULE_ENGINE_STATS_ENABLED true Enable/disable statistics for Rule Engine
queue.rule-engine.stats.print-interval-ms TB_QUEUE_RULE_ENGINE_STATS_PRINT_INTERVAL_MS 60000 Statistics printing interval for Rule Engine
queue.rule-engine.stats.max-error-message-length TB_QUEUE_RULE_ENGINE_MAX_ERROR_MESSAGE_LENGTH 4096 Max length of the error message that is printed by statistics
queue.rule-engine.topic-deletion-delay TB_QUEUE_RULE_ENGINE_TOPIC_DELETION_DELAY_SEC 15 After a queue is deleted (or the profile's isolation option was disabled), Rule Engine will continue reading related topics during this period before deleting the actual topics
queue.rule-engine.management-thread-pool-size TB_QUEUE_RULE_ENGINE_MGMT_THREAD_POOL_SIZE 12 Size of the thread pool that handles such operations as partition changes, config updates, queue deletion
queue.transport.notifications_topic TB_QUEUE_TRANSPORT_NOTIFICATIONS_TOPIC tb_transport.notifications For high-priority notifications that require minimum latency and processing time
queue.transport.poll_interval TB_QUEUE_TRANSPORT_NOTIFICATIONS_POLL_INTERVAL_MS 25 Interval in milliseconds to poll messages
queue.edge.topic TB_QUEUE_EDGE_TOPIC tb_edge Default topic name for Kafka, RabbitMQ, etc.
queue.edge.partitions TB_QUEUE_EDGE_PARTITIONS 10 Amount of partitions used by Edge services
queue.edge.poll-interval TB_QUEUE_EDGE_POLL_INTERVAL_MS 25 Poll interval for topics related to Edge services
queue.edge.pack-processing-timeout TB_QUEUE_EDGE_PACK_PROCESSING_TIMEOUT_MS 10000 Timeout for processing a message pack by Edge services
queue.edge.pack-processing-retries TB_QUEUE_EDGE_MESSAGE_PROCESSING_RETRIES 3 Retries for processing a failure message pack by Edge services
queue.edge.consumer-per-partition TB_QUEUE_EDGE_CONSUMER_PER_PARTITION false Enable/disable a separate consumer per partition for Edge queue
queue.edge.stats.enabled TB_QUEUE_EDGE_STATS_ENABLED true Enable/disable statistics for Edge services
queue.edge.stats.print-interval-ms TB_QUEUE_EDGE_STATS_PRINT_INTERVAL_MS 60000 Statistics printing interval for Edge services

Event configuration 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

General service parameters

ParameterEnvironment VariableDefault ValueDescription
service.type TB_SERVICE_TYPE monolith monolith or tb-core or tb-rule-engine
service.id TB_SERVICE_ID Unique id for this service (autogenerated if empty)
service.rule_engine.assigned_tenant_profiles TB_RULE_ENGINE_ASSIGNED_TENANT_PROFILES Comma-separated list of tenant profile ids assigned to this Rule Engine. This Rule Engine will only be responsible for tenants with these profiles (in case 'isolation' option is enabled in the profile).
service.rule_engine.pubsub.executor_thread_pool_size TB_RULE_ENGINE_PUBSUB_EXECUTOR_THREAD_POOL_SIZE 0 Thread pool size for pubsub rule node executor provider. If not set - default pubsub executor provider value will be used (5 * number of available processors)

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 ,).
metrics.system_info.persist_frequency METRICS_SYSTEM_INFO_PERSIST_FREQUENCY_SECONDS 60 Persist frequency of system info (CPU, memory usage, etc.) in seconds
metrics.system_info.ttl METRICS_SYSTEM_INFO_TTL_DAYS 7 TTL in days for system info timeseries

Version control parameters

ParameterEnvironment VariableDefault ValueDescription
vc.thread_pool_size TB_VC_POOL_SIZE 6 Pool size for handling export tasks
vc.git.io_pool_size TB_VC_GIT_POOL_SIZE 3 Pool size for handling the git IO operations
vc.git.repositories-folder TB_VC_GIT_REPOSITORIES_FOLDER ${java.io.tmpdir}/repositories Default storing repository path

Notification system parameters

ParameterEnvironment VariableDefault ValueDescription
notification_system.thread_pool_size TB_NOTIFICATION_SYSTEM_THREAD_POOL_SIZE 10 Specify thread pool size for Notification System processing notification rules and notification sending. Recommend value <= 10
notification_system.rules.deduplication_durations TB_NOTIFICATION_RULES_DEDUPLICATION_DURATIONS NEW_PLATFORM_VERSION:0;RATE_LIMITS:14400000; Semicolon-separated deduplication durations (in millis) for trigger types. Format: 'NotificationRuleTriggerType1:123;NotificationRuleTriggerType2:456'

General management parameters

ParameterEnvironment VariableDefault ValueDescription
management.endpoints.web.exposure.include '${METRICS_ENDPOINTS_EXPOSE:info}' Expose metrics endpoint (use value 'prometheus' to enable prometheus metrics).
management.health.elasticsearch.enabled "false" Enable the org.springframework.boot.actuate.elasticsearch.ElasticsearchRestClientHealthIndicator.doHealthCheck

Mobile application settings for Thingsboard mobile application

ParameterEnvironment VariableDefault ValueDescription
mobileApp.domain TB_MOBILE_APP_DOMAIN demo.thingsboard.io Server domain name for Thingsboard Live mobile application
mobileApp.googlePlayLink TB_MOBILE_APP_GOOGLE_PLAY_LINK https://play.google.com/store/apps/details?id=org.thingsboard.demo.app Link to Google Play store for Thingsboard Live mobile application
mobileApp.appStoreLink TB_MOBILE_APP_APP_STORE_LINK https://apps.apple.com/us/app/thingsboard-live/id1594355695 Link to App Store for Thingsboard Live mobile application