Star

Installation

Documentation for installation and configuration of ThingsBoard IoT Platform.

Configuration properties

This guide will help you to get familiar with ThingsBoard configuration files and parameters.

Configuration files location depends on the ThingsBoard installation type. If ThingsBoard is installed as a monolithic application, you can find configuration files in the following directory:

Windows: YOUR_INSTALL_DIR/conf
Linux: /usr/share/thingsboard/conf

But if ThingsBoard is installed as a microservice, then each component of the platform will have separate configuration files.

In this guide all application properties will be devided by components where they are applied. Note that in case of monolithic application all application properties are located in the single file - thingsboard.yml and all environment variables are in thingsboard.conf

ThingsBoard Core Settings

This is the main configuration file that contains configuration properties for transports (HTTP, MQTT, CoAP), database (Cassandra), clustering (Zookeeper and gRPC), etc. The configuration file is written in YAML.

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

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

In this case, ‘HTTP_BIND_ADDRESS’ is environment variable name and ‘0.0.0.0’ is a default value. Environment variables are useful in case of docker installation. See docker documentation for more details.

There is 190+ configuration parameters in thingsboard.yml file. You can review their description in the configuration file itself. We will list only main configuration parameters below to avoid duplication of the parameter descriptions and to simplify maintenance of this documentation page.

PropertyEnvironment VariableDefault ValueDescription
HTTP server parameters
server.address HTTP_BIND_ADDRESS 0.0.0.0 HTTP Server bind address
server.port HTTP_BIND_PORT 8080 HTTP Server bind port
server.ssl.enabled SSL_ENABLED false Enable/disable SSL support
server.ssl.key-store SSL_KEY_STORE classpath:keystore/keystore.p12 Path to the key store that holds the SSL certificate
server.ssl.key-store-password SSL_KEY_STORE_PASSWORD thingsboard Password used to access the key store
server.ssl.key-store-type SSL_KEY_STORE_TYPE PKCS12 Type of the key store
server.ssl.key-alias SSL_KEY_ALIAS tomcat Alias that identifies the key in the key store
server.log_controller_error_stack_trace HTTP_LOG_CONTROLLER_ERROR_STACK_TRACE true Log errors with stacktrace when REST API throws exception
server.ws.send_timeout TB_SERVER_WS_SEND_TIMEOUT 5000 Timeout for sending data to client WebSocket session in milliseconds
server.ws.limits.max_sessions_per_tenant TB_SERVER_WS_TENANT_RATE_LIMITS_MAX_SESSIONS_PER_TENANT 0 Limit the amount of WebSocket sessions per each tenant available on each server. Zero value disables limitation.
server.ws.limits.max_sessions_per_customer TB_SERVER_WS_TENANT_RATE_LIMITS_MAX_SESSIONS_PER_CUSTOMER 0 Limit the amount of WebSocket sessions per each customer available on each server. Zero value disables limitation.
server.ws.limits.max_sessions_per_regular_user TB_SERVER_WS_TENANT_RATE_LIMITS_MAX_SESSIONS_PER_REGULAR_USER 0 Limit the amount of WebSocket sessions per each regular user available on each server. Zero value disables limitation.
server.ws.limits.max_sessions_per_public_user TB_SERVER_WS_TENANT_RATE_LIMITS_MAX_SESSIONS_PER_PUBLIC_USER 0 Limit the amount of WebSocket sessions per each public user available on each server. Zero value disables limitation.
server.ws.limits.max_queue_per_ws_session TB_SERVER_WS_TENANT_RATE_LIMITS_MAX_QUEUE_PER_WS_SESSION 500 Limit the size of pending message queue per each WebSocket session.
server.ws.limits.max_subscriptions_per_tenant TB_SERVER_WS_TENANT_RATE_LIMITS_MAX_SUBSCRIPTIONS_PER_TENANT 0 Limit the amount of WebSocket subscriptions per each tenant available on each server. Zero value disables limitation.
server.ws.limits.max_subscriptions_per_customer TB_SERVER_WS_TENANT_RATE_LIMITS_MAX_SUBSCRIPTIONS_PER_CUSTOMER 0 Limit the amount of WebSocket subscriptions per each customer available on each server. Zero value disables limitation.
server.ws.limits.max_subscriptions_per_regular_user TB_SERVER_WS_TENANT_RATE_LIMITS_MAX_SUBSCRIPTIONS_PER_REGULAR_USER 0 Limit the amount of WebSocket subscriptions per each regular user available on each server. Zero value disables limitation.
server.ws.limits.max_subscriptions_per_public_user TB_SERVER_WS_TENANT_RATE_LIMITS_MAX_SUBSCRIPTIONS_PER_PUBLIC_USER 0 Limit the amount of WebSocket subscriptions per each public user available on each server. Zero value disables limitation.
server.ws.limits.max_updates_per_session TB_SERVER_WS_TENANT_RATE_LIMITS_MAX_UPDATES_PER_SESSION 300:1,3000:60 Limit the maximum data updates sent to WebSocket session for specified time intervals in seconds. Comma separated list of limit:seconds pairs.
server.rest.limits.tenant.enabled TB_SERVER_REST_LIMITS_TENANT_ENABLED false Enable/disable REST API rate limits per tenant.
server.rest.limits.tenant.configuration TB_SERVER_REST_LIMITS_TENANT_CONFIGURATION 100:1,2000:60 Limit the maximum REST API calls per tenant on each server for specified time intervals in seconds. Comma separated list of limit:seconds pairs.
server.rest.limits.customer.enabled TB_SERVER_REST_LIMITS_CUSTOMER_ENABLED false Enable/disable REST API rate limits per customer.
server.rest.limits.customer.configuration TB_SERVER_REST_LIMITS_CUSTOMER_CONFIGURATION 50:1,1000:60 Limit the maximum REST API calls per customer on each server for specified time intervals in seconds. Comma separated list of limit:seconds pairs.
Cluster mode parameters
zk.enabled ZOOKEEPER_ENABLED false Enable/disable zookeeper discovery service. Used for ThingsBoard cluster
zk.url ZOOKEEPER_URL localhost:2181 Zookeeper connect string
zk.retry_interval_ms ZOOKEEPER_RETRY_INTERVAL_MS 3000 Zookeeper retry interval in milliseconds
zk.connection_timeout_ms ZOOKEEPER_CONNECTION_TIMEOUT_MS 3000 Zookeeper connection timeout in milliseconds
zk.session_timeout_ms ZOOKEEPER_SESSION_TIMEOUT_MS 3000 Zookeeper session timeout in milliseconds
zk.zk_dir ZOOKEEPER_NODES_DIR /thingsboard Name of the directory in zookeeper 'filesystem'
rpc.bind_host RPC_HOST localhost gRPC connection host. Used only in cluster mode only.
rpc.bind_port RPC_PORT 9001 gRPC connection port. Used only in cluster mode only.
cluster.node_id CLUSTER_NODE_ID Unique id for this node (autogenerated if empty).
cluster.hash_function_name CLUSTER_HASH_FUNCTION_NAME murmur3_128 Name of hash function used for consistent hash ring in Cluster Mode. See architecture docs for more details.
cluster.vitrual_nodes_size CLUSTER_VIRTUAL_NODES_SIZE 16 Amount of virtual nodes in consistent hash ring.
cluster.partition_id QUEUE_PARTITION_ID 0 Queue partition id for current node in the Cluster
Plugins configuration parameters
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
security.jwt.tokenExpirationTime JWT_TOKEN_EXPIRATION_TIME 900 User JWT Token expiration time in seconds
security.jwt.refreshTokenExpTime JWT_REFRESH_TOKEN_EXPIRATION_TIME 3600 User JWT Refresh Token expiration time in seconds
security.jwt.tokenIssuer JWT_TOKEN_ISSUER thingsboard.io User JWT Token issuer
security.jwt.tokenSigningKey JWT_TOKEN_SIGNING_KEY thingsboardDefaultSigningKey User JWT Token sign key
security.user_token_access_enabled SECURITY_USER_TOKEN_ACCESS_ENABLED true Enable/disable access to Tenant Administrators JWT token by System Administrator or Customer Users JWT token by Tenant Administrator
security.user_login_case_sensitive SECURITY_USER_LOGIN_CASE_SENSITIVE true Enable/disable case-sensitive username login
Dashboard parameters
dashboard.max_datapoints_limit DASHBOARD_MAX_DATAPOINTS_LIMIT 50000 Maximum allowed datapoints fetched by ThingsBoard UI widgets
Common database parameters
database.ts_max_intervals DATABASE_TS_MAX_INTERVALS 700 Max number of DB queries generated by single API call to fetch telemetry records
database.entities.type DATABASE_ENTITIES_TYPE sql Database type for ThingsBoard entities (assets, devices, customers, etc.). Allowed values - cassandra OR sql
database.ts.type DATABASE_TS_TYPE sql Database type for ThingsBoard timeseries data. Allowed values - cassandra OR sql. For hybrid mode, only this value should be cassandra
Cassandra database parameters
cassandra.cluster_name CASSANDRA_CLUSTER_NAME Thingsboard Cluster Thingsboard Cassandra cluster name
cassandra.keyspace_name CASSANDRA_KEYSPACE_NAME thingsboard Thingsboard keyspace name
cassandra.url CASSANDRA_URL 127.0.0.1:9042 Cassandra seed nodes, comma separated
cassandra.ssl CASSANDRA_USE_SSL false Enable/disable Cassandra secure connection
cassandra.jmx CASSANDRA_USE_JMX true Enable/disable Casandra JMX
cassandra.metrics CASSANDRA_DISABLE_METRICS true Enable/disable Cassandra metrics collection.
cassandra.compression CASSANDRA_COMPRESSION none Cassandra compression type. Allowed values - NONE SNAPPY LZ4
cassandra.init_timeout_ms CASSANDRA_CLUSTER_INIT_TIMEOUT_MS 300000 Specify cassandra cluster initialization timeout in milliseconds (if no hosts available during startup)
cassandra.init_retry_interval_ms CASSANDRA_CLUSTER_INIT_RETRY_INTERVAL_MS 3000 Specify cassandra cluster initialization retry interval in milliseconds (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 Enable/Disable Cassandra credentials
cassandra.username CASSANDRA_USERNAME Casandra username
cassandra.password CASSANDRA_PASSWORD Cassandra password
cassandra.socket.connect_timeout CASSANDRA_SOCKET_TIMEOUT 5000
cassandra.socket.read_timeout CASSANDRA_SOCKET_READ_TIMEOUT 20000
cassandra.socket.keep_alive CASSANDRA_SOCKET_KEEP_ALIVE true
cassandra.socket.reuse_address CASSANDRA_SOCKET_REUSE_ADDRESS true
cassandra.socket.so_linger CASSANDRA_SOCKET_SO_LINGER
cassandra.socket.tcp_no_delay CASSANDRA_SOCKET_TCP_NO_DELAY false
cassandra.socket.receive_buffer_size CASSANDRA_SOCKET_RECEIVE_BUFFER_SIZE
cassandra.socket.send_buffer_size CASSANDRA_SOCKET_SEND_BUFFER_SIZE
cassandra.query.read_consistency_level CASSANDRA_READ_CONSISTENCY_LEVEL ONE Cassandra read consistency level
cassandra.query.write_consistency_level CASSANDRA_WRITE_CONSISTENCY_LEVEL ONE Cassandra write consistency level
cassandra.query.default_fetch_size CASSANDRA_DEFAULT_FETCH_SIZE 2000 Cassandra query fetch size
cassandra.query.ts_key_value_partitioning TS_KV_PARTITIONING MONTHS Specify partitioning size for timestamp key-value storage. Allowed values MINUTES, HOURS, DAYS, MONTHS, INDEFINITE. In case of INDEFINITE - timeseries data partitioning is disabled
cassandra.query.ts_key_value_ttl TS_KV_TTL 0 Time To Live (in seconds) for Cassandra Record. 0 - record is never expired.
cassandra.query.buffer_size CASSANDRA_QUERY_BUFFER_SIZE 200000 Max number of Cassandra queries that are waiting for execution
cassandra.query.concurrent_limit CASSANDRA_QUERY_CONCURRENT_LIMIT 1000 MAx number of concurrent Cassandra queries
cassandra.query.permit_max_wait_time PERMIT_MAX_WAIT_TIME 120000 Max time in milliseconds query waits for execution
cassandra.query.dispatcher_threads CASSANDRA_QUERY_DISPATCHER_THREADS 2 Amount of threads to dispatch cassandra queries
cassandra.query.callback_threads CASSANDRA_QUERY_CALLBACK_THREADS 4 Amount of threads used to invoke callbacks for queries results
cassandra.query.poll_ms CASSANDRA_QUERY_POLL_MS 50 Cassandra query queue polling interval in milliseconds
cassandra.query.rate_limit_print_interval_ms CASSANDRA_QUERY_RATE_LIMIT_PRINT_MS 10000 Interval in milliseconds for printing Cassandra query queue statistic
cassandra.query.tenant_rate_limits.enabled CASSANDRA_QUERY_TENANT_RATE_LIMITS_ENABLED false Enable/disable cassandra query rate limits per tenant
cassandra.query.tenant_rate_limits.configuration CASSANDRA_QUERY_TENANT_RATE_LIMITS_CONFIGURATION 1000:1,30000:60 Limit the maximum Cassandra queries per tenant on each server for specified time intervals in seconds. Comma separated list of limit:seconds pairs.
cassandra.query.tenant_rate_limits.print_tenant_names CASSANDRA_QUERY_TENANT_RATE_LIMITS_PRINT_TENANT_NAMES false Whether to print rate-limited tenant names when printing Cassandra query queue statistic
SQL database parameters
sql.ts_inserts_executor_type SQL_TS_INSERTS_EXECUTOR_TYPE fixed Specify executor service type used to perform timeseries insert tasks: SINGLE FIXED CACHED
sql.ts_inserts_fixed_thread_pool_size SQL_TS_INSERTS_FIXED_THREAD_POOL_SIZE 10 Specify thread pool size for FIXED executor service type
Actor system parameters
actors.cluster.grpc_callback_thread_pool_size ACTORS_CLUSTER_GRPC_CALLBACK_THREAD_POOL_SIZE 10 Thread pool size for processing requests received from gRPC cluster session
actors.tenant.create_components_on_init ACTORS_TENANT_CREATE_COMPONENTS_ON_INIT true Create components in initialization
actors.session.max_concurrent_sessions_per_device ACTORS_MAX_CONCURRENT_SESSION_PER_DEVICE 1 Max number of concurrent sessions per device
actors.session.sync.timeout ACTORS_SESSION_SYNC_TIMEOUT 10000 Default timeout for processing request using synchronous session (HTTP, CoAP) in milliseconds
actors.rule.db_callback_thread_pool_size ACTORS_RULE_DB_CALLBACK_THREAD_POOL_SIZE 1 Specify thread pool size for database request callbacks executor service
actors.rule.js_thread_pool_size ACTORS_RULE_JS_THREAD_POOL_SIZE 10 Specify thread pool size for javascript executor service
actors.rule.mail_thread_pool_size ACTORS_RULE_MAIL_THREAD_POOL_SIZE 10 Specify thread pool size for mail 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.external_call_thread_pool_size ACTORS_RULE_EXTERNAL_CALL_THREAD_POOL_SIZE 10 Specify thread pool size for external call service
actors.rule.chain.error_persist_frequency ACTORS_RULE_CHAIN_ERROR_FREQUENCY 3000 Errors for particular actor are persisted once per specified amount of milliseconds
actors.rule.node.error_persist_frequency ACTORS_RULE_NODE_ERROR_FREQUENCY 3000 Errors for particular actor are persisted once per specified amount of milliseconds
actors.statistics.enabled ACTORS_STATISTICS_ENABLED true Enable/disable actor statistics
actors.statistics.persist_frequency ACTORS_STATISTICS_PERSIST_FREQUENCY 3600000 Actors statistic persistence frequency in milliseconds
actors.queue.enabled ACTORS_QUEUE_ENABLED true Enable/disable persistence of un-processed messages to the queue
actors.queue.timeout ACTORS_QUEUE_PERSISTENCE_TIMEOUT 30000 Maximum allowed timeout for persistence into the queue in milliseconds
actors.client_side_rpc.timeout CLIENT_SIDE_RPC_TIMEOUT 60000 Client side RPC timeout in milliseconds
Cache parameters
cache.type CACHE_TYPE caffeine Cache provider. caffeine for stand alone installations and redis for clustered installations
caffeine.specs.relations.timeToLiveInMinutes 1440 Relations cache TTL
caffeine.specs.relations.maxSize 100000 Relations cache max size
caffeine.specs.deviceCredentials.timeToLiveInMinutes 1440 deviceCredentials cache TTL
caffeine.specs.deviceCredentials.maxSize 100000 deviceCredentials cache max size
caffeine.specs.devices.timeToLiveInMinutes 1440 devices cache TTL
caffeine.specs.devices.maxSize 100000 devices cache max size
caffeine.specs.sessions.timeToLiveInMinutes 1440 sessions cache TTL
caffeine.specs.sessions.maxSize 100000 sessions cache max size
caffeine.specs.assets.timeToLiveInMinutes 1440 assets cache TTL
caffeine.specs.assets.maxSize 100000 assets cache max size
caffeine.specs.entityViews.timeToLiveInMinutes 1440 entityViews cache TTL
caffeine.specs.entityViews.maxSize 100000 entityViews cache max size
redis.connection.type standalone Redis connection type - standalone or cluster
redis.connection.host REDIS_HOST localhost Redis connection host
redis.connection.port REDIS_PORT 6379 Redis connection port
redis.connection.db REDIS_DB 0 Redis database index
redis.connection.password REDIS_PASSWORD Redis password
Check new version updates parameters
updates.enabled UPDATES_ENABLED true Enable/disable thingsboard updates checking
Spring MVC/Resources parameters
spring.mvc.cors.mappings.* Spring CORS configuration
spring.resources.chain.gzipped true Enable/disable gzip compression of static resources
spring.resources.chain.strategy.content.enabled true
Spring JPA datasource parameters (for SQL database)
spring.jpa.database-platform SPRING_JPA_DATABASE_PLATFORM org.hibernate.dialect.HSQLDialect Database SQL dialect for Spring JPA - org.hibernate.dialect.HSQLDialect or org.hibernate.dialect.PostgreSQLDialect
spring.datasource.driverClassName SPRING_DRIVER_CLASS_NAME org.hsqldb.jdbc.JDBCDriver Database driver for Spring JPA - org.hsqldb.jdbc.JDBCDriver or org.postgresql.Driver
spring.datasource.url SPRING_DATASOURCE_URL Database URL
spring.datasource.username SPRING_DATASOURCE_USERNAME sa Database Username
spring.datasource.password SPRING_DATASOURCE_PASSWORD Database password
Audit log parameters
audit_log.enabled AUDIT_LOG_ENABLED true Enable/disable audit log functionality.
audit_log.by_tenant_partitioning AUDIT_LOG_BY_TENANT_PARTITIONING MONTHS Specify partitioning size for audit log by tenant id storage. Example MINUTES, HOURS, DAYS, MONTHS
audit_log.default_query_period AUDIT_LOG_DEFAULT_QUERY_PERIOD 30 Number of days as history period if startTime and endTime are not specified
audit_log.logging_level.mask."device" AUDIT_LOG_MASK_DEVICE W Device logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations)
audit_log.logging_level.mask."asset" AUDIT_LOG_MASK_ASSET W Asset logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations)
audit_log.logging_level.mask."dashboard" AUDIT_LOG_MASK_DASHBOARD W Dashboard logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations)
audit_log.logging_level.mask."customer" AUDIT_LOG_MASK_CUSTOMER W Customer logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations)
audit_log.logging_level.mask."user" AUDIT_LOG_MASK_USER W User logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations)
audit_log.logging_level.mask."rule_chain" AUDIT_LOG_MASK_RULE_CHAIN W Rule Chain logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations)
audit_log.logging_level.mask."alarm" AUDIT_LOG_MASK_ALARM W Alarm logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations)
audit_log.logging_level.mask."entity_view" AUDIT_LOG_MASK_ENTITY_VIEW W Entity View logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations)
audit_log.sink.type AUDIT_LOG_SINK_TYPE none Type of external sink system to forward audit logs records. Possible options: none, elasticsearch
audit_log.sink.index_pattern AUDIT_LOG_SINK_INDEX_PATTERN @{TENANT}[email protected]{DATE} Name of the index where audit logs stored. Index name could contain next placeholders (not mandatory): @{TENANT} - substituted by tenant ID @{DATE} - substituted by current date in format provided in audit_log.sink.date_format
audit_log.sink.date_format AUDIT_LOG_SINK_DATE_FORMAT YYYY.MM.DD Date format. Details of the pattern could be found in this link
audit_log.sink.scheme_name AUDIT_LOG_SINK_SCHEME_NAME http http or https
audit_log.sink.host AUDIT_LOG_SINK_HOST localhost Host of external sink system
audit_log.sink.port AUDIT_LOG_SINK_PORT 9200 Port of external sink system
audit_log.sink.user_name AUDIT_LOG_SINK_USER_NAME Username used to access external sink system
audit_log.sink.password AUDIT_LOG_SINK_PASSWORD Password used to access external sink system
Device connectivity state parameters
state.defaultInactivityTimeoutInSec DEFAULT_INACTIVITY_TIMEOUT 10 Device inactivity timeout in seconds
state.defaultStateCheckIntervalInSec DEFAULT_STATE_CHECK_INTERVAL 10 Device inactivity check period in seconds
Kafka parameters
kafka.enabled true Enable/disable kafka
kafka.bootstrap.servers TB_KAFKA_SERVERS localhost:9092 List of kafka bootstrap servers used to establish connection
kafka.acks TB_KAFKA_ACKS all The number of acknowledgments the producer requires the leader to have received before considering a request complete
kafka.retries TB_KAFKA_RETRIES 1 Setting a value greater than zero will cause the client to resend any record whose send fails with a potentially transient error
kafka.batch.size TB_KAFKA_BATCH_SIZE 16384 The producer will attempt to batch records together into fewer requests whenever multiple records are being sent to the same partition
kafka.linger.ms TB_KAFKA_LINGER_MS 1 The producer groups together any records that arrive in between request transmissions into a single batched request
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
JavaScript evaluator parameters
js.evaluator JS_EVALUATOR local Javascript evaluator type - local (Built-in JVM JavaScript environment properties) or remote (Remote JavaScript environment )
js.local.use_js_sandbox USE_LOCAL_JS_SANDBOX true Use Sandboxed (secured) JVM JavaScript environment
js.local.monitor_thread_pool_size LOCAL_JS_SANDBOX_MONITOR_THREAD_POOL_SIZE 4 Specify thread pool size for JavaScript sandbox resource monitor
js.local.max_cpu_time LOCAL_JS_SANDBOX_MAX_CPU_TIME 100 Maximum CPU time in milliseconds allowed for script execution
js.local.max_errors LOCAL_JS_SANDBOX_MAX_ERRORS 3 Maximum allowed JavaScript execution errors before JavaScript will be blacklisted
js.remote.request_topic REMOTE_JS_EVAL_REQUEST_TOPIC js.eval.requests Kafka topic used for producing JavaScript evaluation requests
js.remote.response_topic_prefix REMOTE_JS_EVAL_RESPONSE_TOPIC js.eval.responses Prefix for kafka topic used to consume JavaScript evaluation responses
js.remote.max_pending_requests REMOTE_JS_MAX_PENDING_REQUESTS 10000 Maximum pending JavaScript evaluation requests
js.remote.max_requests_timeout REMOTE_JS_MAX_REQUEST_TIMEOUT 10000 Maximum timeout in milliseconds for JavaScript evaluation
js.remote.response_poll_interval REMOTE_JS_RESPONSE_POLL_INTERVAL_MS 25 JavaScript evaluation responses poll interval
js.remote.response_auto_commit_interval REMOTE_JS_RESPONSE_AUTO_COMMIT_INTERVAL_MS 100 JavaScript evaluation responses auto commit interval
js.remote.max_errors REMOTE_JS_SANDBOX_MAX_ERRORS 3 Maximum allowed JavaScript execution errors before JavaScript will be blacklisted
Transport parameters
transport.type TRANSPORT_TYPE local Transport type : local for monolithic application and remote for microservices
transport.remote.transport_api.requests_topic TB_TRANSPORT_API_REQUEST_TOPIC tb.transport.api.requests Kafka topic used to consume api requests from remote transport microservices
transport.remote.transport_api.responses_topic TB_TRANSPORT_API_RESPONSE_TOPIC tb.transport.api.responses Prefix for kafka topic used to produce api responses to remote transport microservices
transport.remote.transport_api.max_pending_requests TB_TRANSPORT_MAX_PENDING_REQUESTS 10000 Maximum pending api requests from remote transport microservices to be handled by server
transport.remote.transport_api.request_timeout TB_TRANSPORT_MAX_REQUEST_TIMEOUT 10000 Maximum timeout in milliseconds to handle api request from remote transport microservice by server
transport.remote.transport_api.request_poll_interval TB_TRANSPORT_RESPONSE_POLL_INTERVAL_MS 25 Interval in milliseconds to poll api requests from remote transport microservices
transport.remote.transport_api.request_auto_commit_interval TB_TRANSPORT_RESPONSE_AUTO_COMMIT_INTERVAL_MS 1000 The frequency in milliseconds that the consumer offsets are auto-committed to Kafka for consumed transport api requests records
transport.remote.rule_engine.topic TB_RULE_ENGINE_TOPIC tb.rule-engine Kafka topic used to consume records forwared to rule engine from remote transport microservices
transport.remote.rule_engine.poll_interval TB_RULE_ENGINE_POLL_INTERVAL_MS 25 Interval in milliseconds to poll records for rule engine from remote transport microservices
transport.remote.rule_engine.auto_commit_interval TB_RULE_ENGINE_AUTO_COMMIT_INTERVAL_MS 100 The frequency in milliseconds that the consumer offsets are auto-committed to Kafka for consumed records for rule engine from remote transport microservices
transport.remote.rule_engine.poll_records_pack_size TB_RULE_ENGINE_MAX_POLL_RECORDS 1000 The maximum number of records returned in a single polling call
transport.remote.rule_engine.max_poll_records_per_second TB_RULE_ENGINE_MAX_POLL_RECORDS_PER_SECOND 10000 Rate limit for maximum number of records processed per second
transport.remote.rule_engine.max_poll_records_per_minute TB_RULE_ENGINE_MAX_POLL_RECORDS_PER_MINUTE 120000 Rate limit for maximum number of records processed per minute
transport.remote.notifications.topic TB_TRANSPORT_NOTIFICATIONS_TOPIC tb.transport.notifications Prefix for kafka topic used to produce notifications to remote transport microservices
transport.sessions.inactivity_timeout TB_TRANSPORT_SESSIONS_INACTIVITY_TIMEOUT 300000
transport.sessions.report_timeout TB_TRANSPORT_SESSIONS_REPORT_TIMEOUT 30000
transport.rate_limits.enabled TB_TRANSPORT_RATE_LIMITS_ENABLED false
transport.rate_limits.tenant TB_TRANSPORT_RATE_LIMITS_TENANT 1000:1,20000:60
transport.rate_limits.device TB_TRANSPORT_RATE_LIMITS_DEVICE 10:1,300:60
transport.json.type_cast_enabled JSON_TYPE_CAST_ENABLED true Cast String data types to Numeric if possible when processing Telemetry/Attributes JSON
transport.json.max_string_value_length JSON_MAX_STRING_VALUE_LENGTH 0 Maximum allowed string value length when processing Telemetry/Attributes JSON (0 value disables string value length check)
transport.http.enabled HTTP_ENABLED true Enable\Disable local HTTP transport
transport.http.request_timeout HTTP_REQUEST_TIMEOUT 60000
transport.mqtt.enabled MQTT_ENABLED true Enable/Disable local MQTT transport
transport.mqtt.bind_address MQTT_BIND_ADDRESS 0.0.0.0
transport.mqtt.bind_port MQTT_BIND_PORT 1883
transport.mqtt.timeout MQTT_TIMEOUT 10000
transport.mqtt.netty.leak_detector_level NETTY_LEAK_DETECTOR_LVL DISABLED
transport.mqtt.netty.boss_group_thread_count NETTY_BOSS_GROUP_THREADS 1
transport.mqtt.netty.worker_group_thread_count NETTY_WORKER_GROUP_THREADS 12
transport.mqtt.netty.max_payload_size NETTY_MAX_PAYLOAD_SIZE 65536
transport.mqtt.ssl.enabled MQTT_SSL_ENABLED false Enable/disable MQTTS support
transport.mqtt.ssl.protocol MQTT_SSL_PROTOCOL TLSv1.2 SSL protocol
transport.mqtt.ssl.key_store MQTT_SSL_KEY_STORE mqttserver.jks Path to the key store that holds the SSL certificate
transport.mqtt.ssl.key_store_password MQTT_SSL_KEY_STORE_PASSWORD server_ks_password Password used to access the key store
transport.mqtt.ssl.key_password MQTT_SSL_KEY_PASSWORD server_key_password Password used to access the key
transport.mqtt.ssl.key_store_type MQTT_SSL_KEY_STORE_TYPE JKS Type of the key store
transport.coap.enabled COAP_ENABLED true Enable/Disable local CoAP transport
transport.coap.bind_address COAP_BIND_ADDRESS 0.0.0.0
transport.coap.bind_port COAP_BIND_PORT 5683
transport.coap.timeout COAP_TIMEOUT 10000

MQTT Transport Settings

PropertyEnvironment VariableDefault ValueDescription
spring.main.web-environment false
spring.main.web-application-type none
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.adaptor MQTT_ADAPTOR_NAME JsonMqttAdaptor MQTT Adaptor name
transport.mqtt.timeout MQTT_TIMEOUT 10000 MQTT processing timeout in milliseconds
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.ssl.enabled MQTT_SSL_ENABLED false Enable/disable SSL support
transport.mqtt.ssl.protocol MQTT_SSL_PROTOCOL TLSv1.2 SSL protocol: See this link
transport.mqtt.ssl.key_store MQTT_SSL_KEY_STORE mqttserver.jks Path to the key store that holds the SSL certificate
transport.mqtt.ssl.key_store_password MQTT_SSL_KEY_STORE_PASSWORD server_ks_password Password used to access the key store
transport.mqtt.ssl.key_password MQTT_SSL_KEY_PASSWORD server_key_password Password used to access the key
transport.mqtt.ssl.key_store_type MQTT_SSL_KEY_STORE_TYPE JKS Type of the key store
transport.sessions.inactivity_timeout TB_TRANSPORT_SESSIONS_INACTIVITY_TIMEOUT 300000
transport.sessions.report_timeout TB_TRANSPORT_SESSIONS_REPORT_TIMEOUT 30000
transport.rate_limits.enabled TB_TRANSPORT_RATE_LIMITS_ENABLED false Enabel/Disable rate limits on transport layer
transport.rate_limits.tenant TB_TRANSPORT_RATE_LIMITS_TENANT 1000:1,20000:60 Tenant Rate limit policy x:y where x = number of messages per time unit, y = timeunit size in seconds
transport.rate_limits.device TB_TRANSPORT_RATE_LIMITS_DEVICE 10:1,300:60 Device Rate limit policy x:y where x = number of messages per time unit, y = timeunit size in seconds
transport.json.type_cast_enabled JSON_TYPE_CAST_ENABLED true Cast String data types to Numeric if possible when processing Telemetry/Attributes JSON
kafka.enabled true Enable/Disable Kafka service
kafka.bootstrap.servers TB_KAFKA_SERVERS localhost:9092 Kafka seed nodes
kafka.acks TB_KAFKA_ACKS all
kafka.retries TB_KAFKA_RETRIES 1
kafka.batch.size TB_KAFKA_BATCH_SIZE 16384
kafka.linger.ms TB_KAFKA_LINGER_MS 1
kafka.buffer.memory TB_BUFFER_MEMORY 33554432
kafka.transport_api.requests_topic TB_TRANSPORT_API_REQUEST_TOPIC tb.transport.api.requests
kafka.transport_api.responses_topic TB_TRANSPORT_API_RESPONSE_TOPIC tb.transport.api.responses
kafka.transport_api.max_pending_requests TB_TRANSPORT_MAX_PENDING_REQUESTS 10000
kafka.transport_api.max_requests_timeout TB_TRANSPORT_MAX_REQUEST_TIMEOUT 10000
kafka.transport_api.request_poll_interval TB_TRANSPORT_REQUEST_POLL_INTERVAL_MS 25
kafka.transport_api.request_auto_commit_interval TB_TRANSPORT_REQUEST_AUTO_COMMIT_INTERVAL_MS 100
kafka.rule_engine.topic TB_RULE_ENGINE_TOPIC tb.rule-engine
kafka.notifications.topic TB_TRANSPORT_NOTIFICATIONS_TOPIC tb.transport.notifications
kafka.notifications.poll_interval TB_TRANSPORT_NOTIFICATIONS_POLL_INTERVAL_MS 25
kafka.notifications.auto_commit_interval TB_TRANSPORT_NOTIFICATIONS_AUTO_COMMIT_INTERVAL_MS 100

HTTP Transport Settings

PropertyEnvironment VariableDefault ValueDescription
server.address HTTP_BIND_ADDRESS 0.0.0.0 HTTP Server bind address
server.port HTTP_BIND_PORT 8081 HTTP Server bind port
transport.http.request_timeout HTTP_REQUEST_TIMEOUT 60000 Http request processing timeout in milliseconds
transport.sessions.inactivity_timeout TB_TRANSPORT_SESSIONS_INACTIVITY_TIMEOUT 300000
transport.sessions.report_timeout TB_TRANSPORT_SESSIONS_REPORT_TIMEOUT 30000
transport.rate_limits.enabled TB_TRANSPORT_RATE_LIMITS_ENABLED false Enabel/Disable rate limits on transport layer
transport.rate_limits.tenant TB_TRANSPORT_RATE_LIMITS_TENANT 1000:1,20000:60 Tenant Rate limit policy x:y where x = number of messages per time unit, y = timeunit size in seconds
transport.rate_limits.device TB_TRANSPORT_RATE_LIMITS_DEVICE 10:1,300:60 Device Rate limit policy x:y where x = number of messages per time unit, y = timeunit size in seconds
transport.json.type_cast_enabled JSON_TYPE_CAST_ENABLED true Cast String data types to Numeric if possible when processing Telemetry/Attributes JSON
kafka.enabled true Enable/Disable Kafka service
kafka.bootstrap.servers TB_KAFKA_SERVERS localhost:9092 Kafka seed nodes
kafka.acks TB_KAFKA_ACKS all
kafka.retries TB_KAFKA_RETRIES 1
kafka.batch.size TB_KAFKA_BATCH_SIZE 16384
kafka.linger.ms TB_KAFKA_LINGER_MS 1
kafka.buffer.memory TB_BUFFER_MEMORY 33554432
kafka.transport_api.requests_topic TB_TRANSPORT_API_REQUEST_TOPIC tb.transport.api.requests
kafka.transport_api.responses_topic TB_TRANSPORT_API_RESPONSE_TOPIC tb.transport.api.responses
kafka.transport_api.max_pending_requests TB_TRANSPORT_MAX_PENDING_REQUESTS 10000
kafka.transport_api.max_requests_timeout TB_TRANSPORT_MAX_REQUEST_TIMEOUT 10000
kafka.transport_api.request_poll_interval TB_TRANSPORT_REQUEST_POLL_INTERVAL_MS 25
kafka.transport_api.request_auto_commit_interval TB_TRANSPORT_REQUEST_AUTO_COMMIT_INTERVAL_MS 100
kafka.rule_engine.topic TB_RULE_ENGINE_TOPIC tb.rule-engine
kafka.notifications.topic TB_TRANSPORT_NOTIFICATIONS_TOPIC tb.transport.notifications
kafka.notifications.poll_interval TB_TRANSPORT_NOTIFICATIONS_POLL_INTERVAL_MS 25
kafka.notifications.auto_commit_interval TB_TRANSPORT_NOTIFICATIONS_AUTO_COMMIT_INTERVAL_MS 100

CoAP Transport Settings

PropertyEnvironment VariableDefault ValueDescription
spring.main.web-environment false
spring.main.web-application-type none
transport.coap.bind_address COAP_BIND_ADDRESS 0.0.0.0 CoAP bind address
transport.coap.bind_port COAP_BIND_PORT 5683 CoAP bind port
transport.coap.timeout COAP_TIMEOUT 10000 CoaP processing timeout in milliseconds
transport.sessions.inactivity_timeout TB_TRANSPORT_SESSIONS_INACTIVITY_TIMEOUT 300000
transport.sessions.report_timeout TB_TRANSPORT_SESSIONS_REPORT_TIMEOUT 30000
transport.rate_limits.enabled TB_TRANSPORT_RATE_LIMITS_ENABLED false Enabel/Disable rate limits on transport layer
transport.rate_limits.tenant TB_TRANSPORT_RATE_LIMITS_TENANT 1000:1,20000:60 Tenant Rate limit policy x:y where x = number of messages per time unit, y = timeunit size in seconds
transport.rate_limits.device TB_TRANSPORT_RATE_LIMITS_DEVICE 10:1,300:60 Device Rate limit policy x:y where x = number of messages per time unit, y = timeunit size in seconds
transport.json.type_cast_enabled JSON_TYPE_CAST_ENABLED true Cast String data types to Numeric if possible when processing Telemetry/Attributes JSON
kafka.enabled true Enable/Disable Kafka service
kafka.bootstrap.servers TB_KAFKA_SERVERS localhost:9092 Kafka seed nodes
kafka.acks TB_KAFKA_ACKS all
kafka.retries TB_KAFKA_RETRIES 1
kafka.batch.size TB_KAFKA_BATCH_SIZE 16384
kafka.linger.ms TB_KAFKA_LINGER_MS 1
kafka.buffer.memory TB_BUFFER_MEMORY 33554432
kafka.transport_api.requests_topic TB_TRANSPORT_API_REQUEST_TOPIC tb.transport.api.requests
kafka.transport_api.responses_topic TB_TRANSPORT_API_RESPONSE_TOPIC tb.transport.api.responses
kafka.transport_api.max_pending_requests TB_TRANSPORT_MAX_PENDING_REQUESTS 10000
kafka.transport_api.max_requests_timeout TB_TRANSPORT_MAX_REQUEST_TIMEOUT 10000
kafka.transport_api.request_poll_interval TB_TRANSPORT_REQUEST_POLL_INTERVAL_MS 25
kafka.transport_api.request_auto_commit_interval TB_TRANSPORT_REQUEST_AUTO_COMMIT_INTERVAL_MS 100
kafka.rule_engine.topic TB_RULE_ENGINE_TOPIC tb.rule-engine
kafka.notifications.topic TB_TRANSPORT_NOTIFICATIONS_TOPIC tb.transport.notifications
kafka.notifications.poll_interval TB_TRANSPORT_NOTIFICATIONS_POLL_INTERVAL_MS 25
kafka.notifications.auto_commit_interval TB_TRANSPORT_NOTIFICATIONS_AUTO_COMMIT_INTERVAL_MS 100

Logging

thingsboard.conf

The configuration file for the startup script. Contains Java options and classpath related parameters.

actor-system.conf

Actor system configuration. Contains general actor system properties and configuration of Akka dispatchers. Allows performance tuning for specific use cases.

logback.xml

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