- How to change configuration parameters?
- Configuration parameters
- ThingsBoard Edge Core/Rule Engine Parameters
- Cloud parameters
- HTTP server parameters
- Zookeeper connection parameters
- Cluster stats parameters
- Plugins configuration parameters
- Security parameters
- Usage statistics parameters
- UI parameters
- SQL configuration parameters
- Actor system parameters
- Platform integrations parameters
- Reports parameters
- Cache parameters
- Caffeine parameters
- Redis connection parameters
- Check new version updates parameters
- Spring freemarker configuration
- Spring CORS configuration
- The default timeout for asynchronous requests in milliseconds
- Spring serve gzip compressed static resources
- SQL DAO Configuration
- Audit log parameters
- Device connectivity state parameters
- JavaScript evaluator parameters
- Transport parameters
- License parameters
- Swagger parameters
- Queue parameters
- ThingsBoard event parameters
- ThingsBoard service parameters
- ThingsBoard metrics parameters
- logback.xml
- ThingsBoard Edge Core/Rule Engine Parameters
This guide will help you to get familiar with ThingsBoard Edge configuration files and parameters. We recommend to configure ThingsBoard Edge using environment variables. This way you do not need to merge the configuration files when new edge release arrives. List of available configuration parameters and corresponding environment variables is located here.
How to change configuration parameters?
Linux
If ThingsBoard Edge is installed on Linux, you may specify the environment variables in the tb-edge.conf file:
1
sudo nano /usr/share/tb-edge/conf/tb-edge.conf
Use simple example below to add new environment variable ‘HTTP_BIND_PORT’ with value ‘8081’.
1
2
...
export HTTP_BIND_PORT=8081
Windows
If ThingsBoard Edge is installed on Windows, you may specify the environment variables in the tb-edge.yml file located in the following directory:
1
YOUR_INSTALL_DIR/conf
The configuration file is written in YAML.
All configuration parameters have corresponding environment variable name and default value. In order to change configuration parameter you can simply change it’s default value. For example:
1
2
server:
address: "${HTTP_BIND_ADDRESS:0.0.0.0}"
In this case, ‘HTTP_BIND_ADDRESS’ is environment variable name and ‘0.0.0.0’ is a default value.
Docker based deployment
If ThingsBoard Edge is installed in a docker compose environment, you may edit the scripts and add environment variables for the corresponding containers. See docker documentation for more details.
Configuration parameters
The parameters are grouped by system components. The list contains the name (address in tb-edge.yml file), environment variable, default value and description.
ThingsBoard Edge Core/Rule Engine Parameters
Cloud parameters
Property | Environment Variable | Default Value | Description |
cloud.routingKey | CLOUD_ROUTING_KEY | Your edge key # e.g. 19ea7ee8-5e6d-e642-4f32-05440a529015 | |
cloud.secret | CLOUD_ROUTING_SECRET | Your edge secret # e.g. bztvkvfqsye7omv9uxlp | |
cloud.reconnect_timeout | CLOUD_RECONNECT_TIMEOUT | 3000 | Time to wait before reconnecting to cloud in case connectivity was lost |
cloud.rpc.host | CLOUD_RPC_HOST | localhost | IP address of the machine with the ThingsBoard platform # e.g. thingsboard.cloud, demo.thingsboard.io, X.X.X.X, localhost |
cloud.rpc.port | CLOUD_RPC_PORT | 7070 | Edge RPC port according to ThingsBoard server configuration |
cloud.rpc.timeout | CLOUD_RPC_TIMEOUT | 5 | Timeout in seconds for channel termination |
cloud.rpc.keep_alive_time_sec | CLOUD_RPC_KEEP_ALIVE_TIME_SEC | 360 | Number of seconds to keep alive connection. If after X seconds keep alive messages will not be colivered consider connection to cloud as lost |
cloud.rpc.ssl.enabled | CLOUD_RPC_SSL_ENABLED | false | Enable TLS communication between cloud and edge |
cloud.rpc.ssl.cert | CLOUD_RPC_SSL_CERT | Cert file to be used during TLS connectivity to cloud | |
cloud.rpc.storage.max_read_records_count | CLOUD_RPC_STORAGE_MAX_READ_RECORDS_COUNT | 50 | Max records of cloud event to read from local DB and sent to cloud |
cloud.rpc.storage.no_read_records_sleep | CLOUD_RPC_NO_READ_RECORDS_SLEEP | 1000 | Number of milliseconds to wait before next check of cloud events in local DB |
cloud.rpc.storage.sleep_between_batches | CLOUD_RPC_SLEEP_BETWEEN_BATCHES | 1000 | Number of milliseconds to wait before send failed batch of cloud events to cloud |
HTTP server parameters
Parameter | Environment Variable | Default Value | Description |
server.address | HTTP_BIND_ADDRESS | 0.0.0.0 | HTTP Server bind address |
server.port | HTTP_BIND_PORT | 8080 | HTTP Server bind port |
server.ssl.enabled | SSL_ENABLED | false | Enable/disable SSL support |
server.ssl.credentials.type | SSL_CREDENTIALS_TYPE | PEM | Server credentials type (PEM - pem certificate file; KEYSTORE - java keystore) |
server.ssl.credentials.pem.cert_file | SSL_PEM_CERT | server.pem | Path to the server certificate file (holds server certificate or certificate chain, may include server private key) |
server.ssl.credentials.pem.key_file | SSL_PEM_KEY | server_key.pem | Path to the server certificate private key file (optional) |
server.ssl.credentials.pem.key_password | SSL_PEM_KEY_PASSWORD | server_key_password | Server certificate private key password (optional) |
server.ssl.credentials.keystore.type | SSL_KEY_STORE_TYPE | PKCS12 | Type of the key store |
server.ssl.credentials.keystore.store_file | SSL_KEY_STORE | classpath:keystore/keystore.p12 | Path to the key store that holds the SSL certificate |
server.ssl.credentials.keystore.store_password | SSL_KEY_STORE_PASSWORD | thingsboard | Password used to access the key store |
server.ssl.credentials.keystore.key_alias | SSL_KEY_ALIAS | tomcat | Key alias |
server.ssl.credentials.keystore.key_password | SSL_KEY_PASSWORD | thingsboard | Password used to access the key |
server.http2.enabled | HTTP2_ENABLED | true | Enable/disable HTTP/2 support |
server.ssl.credentials.keystore.key_password | SSL_KEY_PASSWORD | thingsboard | Password used to access the key in the keystore |
server.http2 | HTTP2_ENABLED | true | Enable/disable HTTP/2 support (takes effect only if server SSL is enabled) |
server.log_controller_error_stack_trace | HTTP_LOG_CONTROLLER_ERROR_STACK_TRACE | false | Log errors with stacktrace when REST API throws exception |
server.ws.send_timeout | TB_SERVER_WS_SEND_TIMEOUT | 5000 | Timeout for sending data to client WebSocket session in milliseconds |
server.ws.ping_timeout | TB_SERVER_WS_PING_TIMEOUT | 30000 | |
server.ws.limits.max_sessions_per_tenant | TB_SERVER_WS_TENANT_RATE_LIMITS_MAX_SESSIONS_PER_TENANT | 0 | Limit the amount of WebSocket sessions per each tenant available on each server. Zero value disables limitation |
server.ws.limits.max_sessions_per_customer | TB_SERVER_WS_TENANT_RATE_LIMITS_MAX_SESSIONS_PER_CUSTOMER | 0 | Limit the amount of WebSocket sessions per each customer available on each server. Zero value disables limitation |
server.ws.limits.max_sessions_per_regular_user | TB_SERVER_WS_TENANT_RATE_LIMITS_MAX_SESSIONS_PER_REGULAR_USER | 0 | Limit the amount of WebSocket sessions per each regular user available on each server. Zero value disables limitation |
server.ws.limits.max_sessions_per_public_user | TB_SERVER_WS_TENANT_RATE_LIMITS_MAX_SESSIONS_PER_PUBLIC_USER | 0 | Limit the amount of WebSocket sessions per each public user available on each server. Zero value disables limitation |
server.ws.limits.max_queue_per_ws_session | TB_SERVER_WS_TENANT_RATE_LIMITS_MAX_QUEUE_PER_WS_SESSION | 500 | Limit the size of pending message queue per each WebSocket session |
server.ws.limits.max_subscriptions_per_tenant | TB_SERVER_WS_TENANT_RATE_LIMITS_MAX_SUBSCRIPTIONS_PER_TENANT | 0 | Limit the amount of WebSocket subscriptions per each tenant available on each server. Zero value disables limitation |
server.ws.limits.max_subscriptions_per_customer | TB_SERVER_WS_TENANT_RATE_LIMITS_MAX_SUBSCRIPTIONS_PER_CUSTOMER | 0 | Limit the amount of WebSocket subscriptions per each customer available on each server. Zero value disables limitation |
server.ws.limits.max_subscriptions_per_regular_user | TB_SERVER_WS_TENANT_RATE_LIMITS_MAX_SUBSCRIPTIONS_PER_REGULAR_USER | 0 | Limit the amount of WebSocket subscriptions per each regular user available on each server. Zero value disables limitation |
server.ws.limits.max_subscriptions_per_public_user | TB_SERVER_WS_TENANT_RATE_LIMITS_MAX_SUBSCRIPTIONS_PER_PUBLIC_USER | 0 | Limit the amount of WebSocket subscriptions per each public user available on each server. Zero value disables limitation |
server.ws.limits.max_updates_per_session | TB_SERVER_WS_TENANT_RATE_LIMITS_MAX_UPDATES_PER_SESSION | 300:1,3000:60 | Limit the maximum data updates sent to WebSocket session for specified time intervals in seconds. Comma separated list of limit:seconds pairs |
server.ws.dynamic_page_link.refresh_interval | TB_SERVER_WS_DYNAMIC_PAGE_LINK_REFRESH_INTERVAL_SEC | 60 | Refresh rate of the dynamic alarm end entity data queries. |
server.ws.dynamic_page_link.refresh_pool_size | TB_SERVER_WS_DYNAMIC_PAGE_LINK_REFRESH_POOL_SIZE | 1 | Thread pool size to execute dynamic queries. |
server.ws.dynamic_page_link.max_per_user | TB_SERVER_WS_DYNAMIC_PAGE_LINK_MAX_PER_USER | 10 | Maximum number of dynamic queries per user. For example, no more then 10 alarm widgets opened by user simultaneously in all browsers. |
server.ws.max_entities_per_data_subscription | TB_SERVER_WS_MAX_ENTITIES_PER_DATA_SUBSCRIPTION | 10000 | Maximum number of entities returned for single entity subscription. For example, no more then 10 000 entities on the map widget. |
server.ws.max_entities_per_alarm_subscription | TB_SERVER_WS_MAX_ENTITIES_PER_ALARM_SUBSCRIPTION | 10000 | Maximum number of alarms returned for single alarm subscription. For example, no more then 10 000 alarms on the alarm widget. |
server.rest.limits.tenant.enabled | TB_SERVER_REST_LIMITS_TENANT_ENABLED | false | Enable/disable REST API rate limits per tenant |
server.rest.limits.tenant.configuration | TB_SERVER_REST_LIMITS_TENANT_CONFIGURATION | 100:1,2000:60 | Limit the maximum REST API calls per tenant on each server for specified time intervals in seconds. Comma separated list of limit:seconds pairs |
server.rest.limits.customer.enabled | TB_SERVER_REST_LIMITS_CUSTOMER_ENABLED | false | Enable/disable REST API rate limits per customer |
server.rest.limits.customer.configuration | TB_SERVER_REST_LIMITS_CUSTOMER_CONFIGURATION | 50:1,1000:60 | Limit the maximum REST API calls per customer on each server for specified time intervals in seconds. Comma separated list of limit:seconds pairs |
server.rest.server_side_rpc.min_timeout | MIN_SERVER_SIDE_RPC_TIMEOUT | 5000 | Minimum value of the server side RPC timeout |
server.rest.server_side_rpc.default_timeout | DEFAULT_SERVER_SIDE_RPC_TIMEOUT | 10000 | Default value of the server side RPC timeout |
Zookeeper connection parameters
Parameter | Environment Variable | Default Value | Description |
zk.enabled | ZOOKEEPER_ENABLED | false | Enable/disable zookeeper discovery service. Used for ThingsBoard cluster |
zk.url | ZOOKEEPER_URL | localhost:2181 | Zookeeper connect string |
zk.retry_interval_ms | ZOOKEEPER_RETRY_INTERVAL_MS | 3000 | Zookeeper retry interval in milliseconds |
zk.connection_timeout_ms | ZOOKEEPER_CONNECTION_TIMEOUT_MS | 3000 | Zookeeper connection timeout in milliseconds |
zk.session_timeout_ms | ZOOKEEPER_SESSION_TIMEOUT_MS | 3000 | Zookeeper session timeout in milliseconds |
zk.zk_dir | ZOOKEEPER_NODES_DIR | /thingsboard | Name of the directory in zookeeper 'filesystem' |
Cluster stats parameters
Parameter | Environment Variable | Default Value | Description |
cluster.stats.enabled | TB_CLUSTER_STATS_ENABLED | false | Enable/Disable the cluster statistics. Calculates number of messages sent between cluster nodes based on each type. |
cluster.stats.print_interval_ms | TB_CLUSTER_STATS_PRINT_INTERVAL_MS | 10000 | Interval of printing the cluster stats to the log file. |
Plugins configuration parameters
Parameter | Environment Variable | Default Value | Description |
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
Parameter | Environment Variable | Default Value | Description |
security.jwt.tokenExpirationTime | JWT_TOKEN_EXPIRATION_TIME | 9000 | User JWT Token expiration time in seconds |
security.jwt.refreshTokenExpTime | JWT_REFRESH_TOKEN_EXPIRATION_TIME | 604800 | User JWT Refresh Token expiration time in seconds |
security.jwt.tokenIssuer | JWT_TOKEN_ISSUER | thingsboard.io | User JWT Token issuer |
security.jwt.tokenSigningKey | JWT_TOKEN_SIGNING_KEY | thingsboardDefaultSigningKey | User JWT Token sign key |
security.user_token_access_enabled | SECURITY_USER_TOKEN_ACCESS_ENABLED | true | Enable/disable access to Tenant Administrators JWT token by System Administrator or Customer Users JWT token by Tenant Administrator |
security.user_login_case_sensitive | SECURITY_USER_LOGIN_CASE_SENSITIVE | true | Enable/disable case-sensitive username login |
security.claim.allowClaimingByDefault | SECURITY_CLAIM_ALLOW_CLAIMING_BY_DEFAULT | true | Enable/disable claiming devices, if false -> the device's [claimingAllowed] SERVER_SCOPE attribute must be set to [true] to allow claiming specific device |
security.claim.duration | SECURITY_CLAIM_DURATION | 86400000 | Time allowed to claim the device in milliseconds. 24 hours. Note this value must equal claimDevices.timeToLiveInMinutes value |
security.basic.enabled | SECURITY_BASIC_ENABLED | false | |
security.oauth2.loginProcessingUrl | SECURITY_OAUTH2_LOGIN_PROCESSING_URL | /login/oauth2/code/ | Redirect URL where access code from external user management system will be processed |
security.oauth2.githubMapper.emailUrl | SECURITY_OAUTH2_GITHUB_MAPPER_EMAIL_URL_KEY | https://api.github.com/user/emails |
Usage statistics parameters
Parameter | Environment Variable | Default Value | Description |
usage.stats.report.enabled | USAGE_STATS_REPORT_ENABLED | true | Enable/Disable collection of statistics about API usage. Collected on a system and tenant level by default. |
usage.stats.report.enabled_per_customer | USAGE_STATS_REPORT_PER_CUSTOMER_ENABLED | false | Enable/Disable collection of statistics about API usage on a customer level. |
usage.stats.report.interval | USAGE_STATS_REPORT_INTERVAL | 10 | Interval of reporting the statistics. By default, the summarized statistics is sent every 10 seconds. |
usage.stats.check.cycle | USAGE_STATS_CHECK_CYCLE | 60000 | Interval of checking the start of next cycle and re-enabling the blocked tenants/customers. |
UI parameters
Parameter | Environment Variable | Default Value | Description |
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-pe-ui-help/release-3.3.3 | Base URL for UI Help Assets. This is a link to the raw files hosted in the dedicated GitHub project. You may fork the project, update the content of the files and put your own project link. The project should be public in order for any platfrom UI users to access help resources. |
SQL configuration parameters
Parameter | Environment Variable | Default Value | Description |
sql.attributes.batch_size | SQL_ATTRIBUTES_BATCH_SIZE | 10000 | Batch size for persisting attribute updates |
sql.attributes.batch_max_delay | SQL_ATTRIBUTES_BATCH_MAX_DELAY_MS | 100 | Max timeout for attributes entries queue polling. Value set in milliseconds |
sql.attributes.stats_print_interval_ms | SQL_ATTRIBUTES_BATCH_STATS_PRINT_MS | 10000 | Interval in milliseconds for printing attributes updates statistic |
sql.attributes.batch_threads | SQL_ATTRIBUTES_BATCH_THREADS | 4 | Number of threads that execute batch insert/update statements for attributes |
sql.ts.batch_size | SQL_TS_BATCH_SIZE | 10000 | Batch size for persisting timeseries inserts |
sql.ts.batch_max_delay | SQL_TS_BATCH_MAX_DELAY_MS | 100 | Max timeout for time-series entries queue polling. Value set in milliseconds |
sql.ts.stats_print_interval_ms | SQL_TS_BATCH_STATS_PRINT_MS | 10000 | Interval in milliseconds for printing timeseries insert statistic |
sql.ts.batch_threads | SQL_TS_BATCH_THREADS | 4 | Number of threads that execute batch insert/update statements for time-series data |
sql.ts_latest.batch_size | SQL_TS_LATEST_BATCH_SIZE | 10000 | Batch size for persisting latest telemetry updates |
sql.ts_latest.batch_max_delay | SQL_TS_LATEST_BATCH_MAX_DELAY_MS | 100 | Max timeout for latest telemetry entries queue polling. The value set in milliseconds |
sql.ts_latest.stats_print_interval_ms | SQL_TS_LATEST_BATCH_STATS_PRINT_MS | 10000 | Interval in milliseconds for printing latest telemetry updates statistic |
sql.ts_latest.batch_threads | SQL_TS_LATEST_BATCH_THREADS | 4 | Number of threads that execute batch insert/update statements for latest data |
sql.ts_latest.update_by_latest_ts | SQL_TS_UPDATE_BY_LATEST_TIMESTAMP | true | Update latest values only if the timestamp of the new record is greater or equals than timestamp of the previously saved latest value. Latest values are stored separately from historical values for fast lookup from DB. Insert of historical value happens in any case. |
sql.cloud_events.batch_size | SQL_CLOUD_EVENTS_BATCH_SIZE | 10000 | Batch size for persisting cloud events inserts |
sql.cloud_events.batch_max_delay | SQL_CLOUD_EVENTS_BATCH_MAX_DELAY_MS | 100 | Max timeout for cloud events entries queue polling. Value set in milliseconds |
sql.cloud_events.stats_print_interval_ms | SQL_CLOUD_EVENTS_BATCH_STATS_PRINT_MS | 10000 | Interval in milliseconds for printing cloud events insert statistic |
sql.batch_sort | SQL_BATCH_SORT | false | Specify whether to sort entities before batch update. Should be enabled for cluster mode to avoid deadlocks |
sql.remove_null_chars | SQL_REMOVE_NULL_CHARS | true | Specify whether to remove null characters from strValue of attributes and timeseries before insert |
sql.log_queries | SQL_LOG_QUERIES | false | Log slow SQL queries. Slow queries are determined using SQL_LOG_QUERIES_THRESHOLD threshold |
sql.log_queries_threshold | SQL_LOG_QUERIES_THRESHOLD | 5000 | Threshold of slow SQL queries to log. |
sql.postgres.ts_key_value_partitioning | SQL_POSTGRES_TS_KV_PARTITIONING | MONTHS | Specify partitioning size for timestamp key-value storage. Example: DAYS, MONTHS, YEARS, INDEFINITE |
sql.timescale.chunk_time_interval | SQL_TIMESCALE_CHUNK_TIME_INTERVAL | 604800000 | Specify Interval size for new data chunks storage |
sql.timescale.batch_threads | SQL_TIMESCALE_BATCH_THREADS | 4 | Number of threads that execute batch insert/update statements for timeseries data when using Timescale DB. |
sql.ttl.ts.enabled | SQL_TTL_TS_ENABLED | true | The parameter to specify whether to use TTL (Time To Live) for timeseries records |
sql.ttl.ts.execution_interval_ms | SQL_TTL_TS_EXECUTION_INTERVAL | 86400000 | The parameter to specify the period of execution TTL task for timeseries records. Value set in milliseconds. Default value corresponds to one day |
sql.ttl.ts.ts_key_value_ttl | SQL_TTL_TS_TS_KEY_VALUE_TTL | 0 | The parameter to specify system TTL(Time To Live) value for timeseries records. Value set in seconds. 0 - records are never expired. System TTL value can be overwritten for a particular Tenant, or parent Customer entity by setting the server-side attribute TTL to the corresponding Tenant or parent Customer entity. Please, note that the value should be set as long value, otherwise the TTL will be used from the higher level(Tenant or System) |
sql.ttl.events.enabled | SQL_TTL_EVENTS_ENABLED | true | The parameter to specify whether to use TTL (Time To Live) for events records. |
sql.ttl.events.execution_interval_ms | SQL_TTL_EVENTS_EXECUTION_INTERVAL | 2220000 | The parameter to specify the period of execution TTL task for events records. Value set in milliseconds. (max random initial delay and fixed period). 37 minutes to avoid common interval spikes |
sql.ttl.events.events_ttl | SQL_TTL_EVENTS_EVENTS_TTL | 0 | The parameter to specify TTL(Time To Live) value for Events(LC_EVENT, STATS) records. Value set in seconds. 0 - records are never expired. |
sql.ttl.events.debug_events_ttl | SQL_TTL_EVENTS_DEBUG_EVENTS_TTL | 604800 | The parameter to specify TTL(Time To Live) value for Debug Events(DEBUG_CONVERTER, DEBUG_INTEGRATION, DEBUG_RULE_NODE, DEBUG_RULE_CHAIN) records. Value set in seconds. 0 - records are never expired. Default value corresponds to one week. |
sql.ttl.edge_events.enabled | SQL_TTL_EDGE_EVENTS_ENABLED | true | Enable/disable TTL(Time To Live) for edge events |
sql.ttl.edge_events.execution_interval_ms | SQL_TTL_EDGE_EVENTS_EXECUTION_INTERVAL | 86400000 | Number of milliseconds. The current value corresponds to one day |
sql.ttl.edge_events.edge_events_ttl | SQL_TTL_EDGE_EVENTS_TTL | 2628000 | Number of seconds. The current value corresponds to one month |
sql.ttl.alarms.checking_interval | SQL_ALARMS_TTL_CHECKING_INTERVAL | 7200000 | Number of milliseconds. The current value corresponds to two hours |
sql.ttl.alarms.removal_batch_size | SQL_ALARMS_TTL_REMOVAL_BATCH_SIZE | 3000 | To delete outdated alarms not all at once but in batches |
sql.ttl.rpc.enabled | SQL_TTL_RPC_ENABLED | true | Parameter to enable or disable TTL(Time To Live) for Persistent RPC |
sql.ttl.rpc.checking_interval | SQL_RPC_TTL_CHECKING_INTERVAL | 7200000 | Parameter to specify how often TTL(Time To Live) will be checked.Number of milliseconds. The current value corresponds to two hours |
sql.relations.max_level | SQL_RELATIONS_MAX_LEVEL | 50 | This value has to be reasonable small to prevent infinite recursion as early as possible |
sql.ttl.cloud_events.enabled | SQL_TTL_CLOUD_EVENTS_ENABLED | true | Parameter to enable or disable TTL(Time To Live) for cloud events. |
sql.ttl.cloud_events.execution_interval_ms | SQL_TTL_CLOUD_EVENTS_EXECUTION_INTERVAL | 86400000 | Parameter to specify how often TTL(Time To Live) will be checked. |
sql.ttl.cloud_events.cloud_events_ttl | SQL_TTL_CLOUD_EVENTS_TTL | 2628000 | The parameter to specify TTL(Time To Live) value for cloud event records. Value set in seconds. 0 - records are never expired. |
Actor system parameters
Parameter | Environment Variable | Default Value | Description |
actors.system.throughput | ACTORS_SYSTEM_THROUGHPUT | 5 | Number of messages the actor system will process per actor before switching to processing of messages for next actor. |
actors.system.scheduler_pool_size | ACTORS_SYSTEM_SCHEDULER_POOL_SIZE | 1 | Thread pool size for actor system scheduler. |
actors.system.max_actor_init_attempts | ACTORS_SYSTEM_MAX_ACTOR_INIT_ATTEMPTS | 10 | Maximum number of attempts to init the actor before disabling the actor. |
actors.system.app_dispatcher_pool_size | ACTORS_SYSTEM_APP_DISPATCHER_POOL_SIZE | 1 | Thread pool size for main actor system dispatcher. |
actors.system.tenant_dispatcher_pool_size | ACTORS_SYSTEM_TENANT_DISPATCHER_POOL_SIZE | 2 | Thread pool size for actor system dispatcher that process messages for tenant actors. |
actors.system.device_dispatcher_pool_size | ACTORS_SYSTEM_DEVICE_DISPATCHER_POOL_SIZE | 4 | Thread pool size for actor system dispatcher that process messages for device actors. |
actors.system.rule_dispatcher_pool_size | ACTORS_SYSTEM_RULE_DISPATCHER_POOL_SIZE | 4 | Thread pool size for actor system dispatcher that process messages for rule engine (chain/node) actors. |
actors.tenant.create_components_on_init | ACTORS_TENANT_CREATE_COMPONENTS_ON_INIT | true | Create components in initialization |
actors.session.max_concurrent_sessions_per_device | ACTORS_MAX_CONCURRENT_SESSION_PER_DEVICE | 1 | Max number of concurrent sessions per device |
actors.session.sync.timeout | ACTORS_SESSION_SYNC_TIMEOUT | 10000 | Default timeout for processing request using synchronous session (HTTP, CoAP) in milliseconds |
actors.rule.db_callback_thread_pool_size | ACTORS_RULE_DB_CALLBACK_THREAD_POOL_SIZE | 50 | Specify thread pool size for database request callbacks executor service |
actors.rule.js_thread_pool_size | ACTORS_RULE_JS_THREAD_POOL_SIZE | 50 | Specify thread pool size for javascript executor service |
actors.rule.mail_thread_pool_size | ACTORS_RULE_MAIL_THREAD_POOL_SIZE | 50 | Specify thread pool size for mail sender executor service |
actors.rule.sms_thread_pool_size | ACTORS_RULE_SMS_THREAD_POOL_SIZE | 50 | Specify thread pool size for sms sender executor service |
actors.rule.allow_system_mail_service | ACTORS_RULE_ALLOW_SYSTEM_MAIL_SERVICE | true | Whether to allow usage of system mail service for rules |
actors.rule.allow_system_sms_service | ACTORS_RULE_ALLOW_SYSTEM_SMS_SERVICE | true | Whether to allow usage of system sms service for rules |
actors.rule.external_call_thread_pool_size | ACTORS_RULE_EXTERNAL_CALL_THREAD_POOL_SIZE | 50 | Specify thread pool size for external call service |
actors.rule.chain.error_persist_frequency | ACTORS_RULE_CHAIN_ERROR_FREQUENCY | 3000 | Errors for particular actor are persisted once per specified amount of milliseconds |
actors.rule.chain.debug_mode_rate_limits_per_tenant.enabled | ACTORS_RULE_CHAIN_DEBUG_MODE_RATE_LIMITS_PER_TENANT_ENABLED | true | Enable/Disable the rate limit of persisted debug events for all rule nodes per tenant. |
actors.rule.chain.debug_mode_rate_limits_per_tenant.configuration | ACTORS_RULE_CHAIN_DEBUG_MODE_RATE_LIMITS_PER_TENANT_CONFIGURATION | 50000:3600 | The value of rate limit. By default, no more then 50 thousand events per hour. |
actors.rule.node.error_persist_frequency | ACTORS_RULE_NODE_ERROR_FREQUENCY | 3000 | Errors for particular actor are persisted once per specified amount of milliseconds |
actors.rule.transaction.queue_size | ACTORS_RULE_TRANSACTION_QUEUE_SIZE | 15000 | Size of queues which store messages for transaction rule nodes |
actors.rule.transaction.duration | ACTORS_RULE_TRANSACTION_DURATION | 60000 | Time in milliseconds for transaction to complete |
actors.rpc.max_retries | ACTORS_RPC_MAX_RETRIES | 5 | Maximum number of persistent RPC call retries in case of failed requests delivery. |
actors.rpc.sequential | ACTORS_RPC_SEQUENTIAL | false | Enable/Disable sequential processing of RPC calls per device. |
actors.statistics.enabled | ACTORS_STATISTICS_ENABLED | true | Enable/disable actor statistics |
actors.statistics.js_print_interval_ms | ACTORS_JS_STATISTICS_PRINT_INTERVAL_MS | 10000 | Frequency of printing the JS executor statistics |
actors.statistics.persist_frequency | ACTORS_STATISTICS_PERSIST_FREQUENCY | 3600000 | Actors statistic persistence frequency in milliseconds |
Platform integrations parameters
Parameter | Environment Variable | Default Value | Description |
integrations.statistics.enabled | INTEGRATIONS_STATISTICS_ENABLED | true | Enable/disable integrations statistics |
integrations.statistics.persist_frequency | INTEGRATIONS_STATISTICS_PERSIST_FREQUENCY | 3600000 | |
integrations.reinit.enabled | INTEGRATIONS_REINIT_ENABLED | true | |
integrations.reinit.frequency | INTEGRATIONS_REINIT_FREQUENCY | 300000 | |
integrations.allow_Local_network_hosts | INTEGRATIONS_ALLOW_LOCAL_NETWORK_HOSTS | true | |
integrations.rpc.enabled | INTEGRATIONS_RPC_ENABLED | true | |
integrations.rpc.port | INTEGRATIONS_RPC_PORT | 9090 | |
integrations.rpc.ssl.enabled | INTEGRATIONS_RPC_SSL_ENABLED | false | Enable/disable SSL support |
integrations.rpc.ssl.cert | INTEGRATIONS_RPC_SSL_CERT | certChainFile.pem | |
integrations.rpc.ssl.privateKey | INTEGRATIONS_RPC_SSL_PRIVATE_KEY | privateKeyFile.pem | |
integrations.rpc.client_max_keep_alive_time_sec | INTEGRATIONS_RPC_CLIENT_MAX_KEEP_ALIVE_TIME_SEC | 300 | Disconnect a client if no keepalive ping received in the specified time |
Reports parameters
Parameter | Environment Variable | Default Value | Description |
reports.server.endpointUrl | REPORTS_SERVER_ENDPOINT_URL | http://localhost:8383 | |
reports.rate_limits.enabled | REPORTS_TENANT_RATE_LIMITS_ENABLED | false | Enable/disable reports tenant rate limits |
reports.rate_limits.configuration | REPORTS_TENANT_RATE_LIMITS_CONFIGURATION | 5:300 | |
reports.scheduler.min_interval | REPORTS_SCHEDULER_MIN_INTERVAL_IN_SEC | 60 | Minimum interval between subsequent scheduler events. Applicable for timer based events |
Cache parameters
Parameter | Environment Variable | Default Value | Description |
cache.type | CACHE_TYPE | caffeine | Cache provider. caffeine for stand alone installations and redis for clustered installations |
cache.maximumPoolSize | CACHE_MAXIMUM_POOL_SIZE | 16 | Maximum pool size to process futures that calls the external cache |
cache.attributes.enabled | CACHE_ATTRIBUTES_ENABLED | true | Cache attribute request in caffeine or redis |
Caffeine parameters
Parameter | Environment Variable | Default Value | Description |
caffeine.specs.relations.timeToLiveInMinutes | 1440 | Relations cache TTL | |
caffeine.specs.relations.maxSize | 10000 | Relations cache max size. maxSize: 0 means the cache is disabled | |
caffeine.specs.deviceCredentials.timeToLiveInMinutes | 1440 | deviceCredentials cache TTL | |
caffeine.specs.deviceCredentials.maxSize | 10000 | deviceCredentials cache max size | |
caffeine.specs.devices.timeToLiveInMinutes | 1440 | devices cache TTL | |
caffeine.specs.devices.maxSize | 10000 | devices cache max size | |
caffeine.specs.sessions.timeToLiveInMinutes | 1440 | sessions cache TTL | |
caffeine.specs.sessions.maxSize | 10000 | sessions cache max size | |
caffeine.specs.assets.timeToLiveInMinutes | 1440 | assets cache TTL | |
caffeine.specs.assets.maxSize | 10000 | assets cache max size | |
caffeine.specs.downlink.timeToLiveInMinutes | 1440 | downlink cache TTL | |
caffeine.specs.downlink.maxSize | 100000 | downlink cache max size | |
caffeine.specs.entityViews.timeToLiveInMinutes | 1440 | entityViews cache TTL | |
caffeine.specs.entityViews.maxSize | 10000 | entityViews cache max size | |
caffeine.specs.roles.timeToLiveInMinutes | 1440 | roles cache TTL | |
caffeine.specs.roles.maxSize | 10000 | roles cache max size | |
caffeine.specs.permissions.timeToLiveInMinutes | 1440 | permissions cache TTL | |
caffeine.specs.permissions.maxSize | 10000 | permissions cache max size | |
caffeine.specs.owners.timeToLiveInMinutes | 1440 | owners cache TTL | |
caffeine.specs.owners.maxSize | 100000 | owners cache max size | |
caffeine.specs.claimDevices.timeToLiveInMinutes | 1440 | claimDevices cache TTL | |
caffeine.specs.claimDevices.maxSize | 10000 | claimDevices cache max size | |
caffeine.specs.securitySettings.timeToLiveInMinutes | 1440 | securitySettings cache TTL | |
caffeine.specs.securitySettings.maxSize | 10000 | securitySettings cache max size | |
caffeine.specs.remoteIntegrations.timeToLiveInMinutes | 1440 | remoteIntegrations cache TTL | |
caffeine.specs.remoteIntegrations.maxSize | 10000 | remoteIntegrations cache max size | |
caffeine.specs.tenantProfiles.timeToLiveInMinutes | 1440 | tenantProfiles cache TTL | |
caffeine.specs.tenantProfiles.maxSize | 10000 | tenantProfiles cache max size | |
caffeine.specs.deviceProfiles.timeToLiveInMinutes | 1440 | deviceProfiles cache TTL | |
caffeine.specs.deviceProfiles.maxSize | 10000 | deviceProfiles cache max size | |
caffeine.specs.attributes.timeToLiveInMinutes | 1440 | attributes cache TTL | |
caffeine.specs.attributes.maxSize | 100000 | attributes cache max size | |
caffeine.specs.tokensOutdatageTime.timeToLiveInMinutes | 20000 | tokensOutdatageTime cache TTL | |
caffeine.specs.tokensOutdatageTime.maxSize | 10000 | tokensOutdatageTime cache max size | |
caffeine.specs.otaPackages.timeToLiveInMinutes | 60 | otaPackages cache TTL | |
caffeine.specs.otaPackages.maxSize | 10 | otaPackages cache max size | |
caffeine.specs.otaPackagesData.timeToLiveInMinutes | 60 | otaPackagesData cache TTL | |
caffeine.specs.otaPackagesData.maxSize | 10 | otaPackagesData cache max size | |
caffeine.specs.edges.timeToLiveInMinutes | 1440 | edges cache TTL | |
caffeine.specs.edges.maxSize | 10000 | edges cache max size |
Redis connection parameters
Parameter | Environment Variable | Default Value | Description |
redis.connection.type | REDIS_CONNECTION_TYPE | standalone | Redis connection type - standalone or cluster |
redis.standalone.host | REDIS_HOST | localhost | Redis connection host |
redis.standalone.port | REDIS_PORT | 6379 | Redis connection port |
redis.standalone.useDefaultClientConfig | REDIS_USE_DEFAULT_CLIENT_CONFIG | true | Redis connection port |
redis.standalone.clientName | REDIS_CLIENT_NAME | standalone | This value may be used only if you used not default ClientConfig |
redis.standalone.connectTimeout | REDIS_CLIENT_CONNECT_TIMEOUT | 30000 | This value may be used only if you used not default ClientConfig |
redis.standalone.readTimeout | REDIS_CLIENT_READ_TIMEOUT | 60000 | This value may be used only if you used not default ClientConfig |
redis.standalone.usePoolConfig | REDIS_CLIENT_USE_POOL_CONFIG | false | This value may be used only if you used not default ClientConfig |
redis.cluster.nodes | REDIS_NODES | Comma-separated list of "host:port" pairs to bootstrap from | |
redis.cluster.max-redirects | REDIS_MAX_REDIRECTS | 12 | Maximum number of redirects to follow when executing commands across the cluster |
redis.cluster.useDefaultPoolConfig | REDIS_USE_DEFAULT_POOL_CONFIG | true | Use default redis pool configuration. If set to "true", the REDIS_POOL_CONFIG_* properties will be ignored. |
redis.db | REDIS_DB | 0 | Redis database index |
redis.password | REDIS_PASSWORD | Redis database password | |
redis.pool_config.maxTotal | REDIS_POOL_CONFIG_MAX_TOTAL | 128 | General redis pool settings |
redis.pool_config.maxIdle | REDIS_POOL_CONFIG_MAX_IDLE | 128 | General redis pool settings |
redis.pool_config.minIdle | REDIS_POOL_CONFIG_MIN_IDLE | 16 | General redis pool settings |
redis.pool_config.testOnBorrow | REDIS_POOL_CONFIG_TEST_ON_BORROW | true | General redis pool settings |
redis.pool_config.testOnReturn | REDIS_POOL_CONFIG_TEST_ON_RETURN | true | General redis pool settings |
redis.pool_config.testWhileIdle | REDIS_POOL_CONFIG_TEST_WHILE_IDLE | true | General redis pool settings |
redis.pool_config.minEvictableMs | REDIS_POOL_CONFIG_MIN_EVICTABLE_MS | 60000 | General redis pool settings |
redis.pool_config.evictionRunsMs | REDIS_POOL_CONFIG_EVICTION_RUNS_MS | 30000 | General redis pool settings |
redis.pool_config.maxWaitMills | REDIS_POOL_CONFIG_MAX_WAIT_MS | 60000 | General redis pool settings |
redis.pool_config.numberTestsPerEvictionRun | REDIS_POOL_CONFIG_NUMBER_TESTS_PER_EVICTION_RUN | 3 | General redis pool settings |
redis.pool_config.blockWhenExhausted | REDIS_POOL_CONFIG_BLOCK_WHEN_EXHAUSTED | true | General redis pool settings |
Check new version updates parameters
Parameter | Environment Variable | Default Value | Description |
updates.enabled | UPDATES_ENABLED | true | Enable/disable ThingsBoard updates checking. If enabled, the platform will periodically request information about new releases from updates.thingsboard.io |
Spring freemarker configuration
Parameter | Environment Variable | Default Value | Description |
spring.freemarker.checkTemplateLocation | false |
Spring CORS configuration
Parameter | Environment Variable | Default Value | Description |
spring.mvc.cors.mappings.[/api/**].allowed-origins | * | Comma-separated list of origins to allow. '*' allows all origins. When not set,CORS support is disabled | |
spring.mvc.cors.mappings.[/api/**].allowed-methods | * | Comma-separated list of methods to allow. '*' allows all methods | |
spring.mvc.cors.mappings.[/api/**].allowed-headers | * | Comma-separated list of headers to allow in a request. '*' allows all headers | |
spring.mvc.cors.mappings.[/api/**].max-age | 1800 | How long, in seconds, the response from a pre-flight request can be cached by clients | |
spring.mvc.cors.mappings.[/api/**].allow-credentials | true | Set whether credentials are supported. When not set, credentials are not supported |
The default timeout for asynchronous requests in milliseconds
Parameter | Environment Variable | Default Value | Description |
spring.mvc.async.request-timeout | SPRING_MVC_ASYNC_REQUEST_TIMEOUT | 30000 | Timeout for HTTP requests. |
Spring serve gzip compressed static resources
Parameter | Environment Variable | Default Value | Description |
spring.resources.chain.compressed | true | Enable/disable compression of static resources | |
spring.resources.chain.strategy.content.enabled | true | ||
spring.servlet.multipart.max-file-size | 50MB | ||
spring.servlet.multipart.max-request-size | 50MB | ||
spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation | true | ||
spring.jpa.properties.hibernate.order_by.default_null_ordering | last |
SQL DAO Configuration
Parameter | Environment Variable | Default Value | Description |
spring.data.jpa.repositories.enabled | true | ||
spring.jpa.properties.javax.persistence.query.timeout | JAVAX_PERSISTENCE_QUERY_TIMEOUT | 30000 | General timeout for JDBC queries |
spring.jpa.open-in-view | false | ||
spring.jpa.hibernate.ddl-auto | none | ||
spring.jpa.database-platform | SPRING_JPA_DATABASE_PLATFORM | org.hibernate.dialect.PostgreSQLDialect | Database SQL dialect for Spring JPA - org.hibernate.dialect.PostgreSQLDialect or org.hibernate.dialect.HSQLDialect |
spring.datasource.driverClassName | SPRING_DRIVER_CLASS_NAME | org.postgresql.Driver | Database driver for Spring JPA - org.postgresql.Driver or org.hsqldb.jdbc.JDBCDriver |
spring.datasource.url | SPRING_DATASOURCE_URL | jdbc:postgresql://localhost:5432/tb_edge | Database URL |
spring.datasource.username | SPRING_DATASOURCE_USERNAME | postgres | Database Username |
spring.datasource.password | SPRING_DATASOURCE_PASSWORD | postgres | Database password |
spring.datasource.hikari.maximumPoolSize | SPRING_DATASOURCE_MAXIMUM_POOL_SIZE | 16 | This property allows the number of connections in the pool to increase as demand increases. At the same time, the property ensures that the pool doesn't grow to the point of exhausting a system's resources, which ultimately affects an application's performance and availability. |
Audit log parameters
Parameter | Environment Variable | Default Value | Description |
audit-log.enabled | AUDIT_LOG_ENABLED | true | Enable/disable audit log functionality. |
audit-log.by_tenant_partitioning | AUDIT_LOG_BY_TENANT_PARTITIONING | MONTHS | Specify partitioning size for audit log by tenant id storage. Example MINUTES, HOURS, DAYS, MONTHS |
audit-log.default_query_period | AUDIT_LOG_DEFAULT_QUERY_PERIOD | 30 | Number of days as history period if startTime and endTime are not specified |
audit-log.logging-level.mask."device" | AUDIT_LOG_MASK_DEVICE | W | Device logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations) |
audit-log.logging-level.mask."asset" | AUDIT_LOG_MASK_ASSET | W | Asset logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations) |
audit-log.logging-level.mask."dashboard" | AUDIT_LOG_MASK_DASHBOARD | W | Dashboard logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations) |
audit-log.logging-level.mask."customer" | AUDIT_LOG_MASK_CUSTOMER | W | Customer logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations) |
audit-log.logging-level.mask."user" | AUDIT_LOG_MASK_USER | W | User logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations) |
audit-log.logging-level.mask."rule_chain" | AUDIT_LOG_MASK_RULE_CHAIN | W | Rule Chain logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations) |
audit-log.logging-level.mask."alarm" | AUDIT_LOG_MASK_ALARM | W | Alarm logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations) |
audit-log.logging-level.mask."integration" | AUDIT_LOG_MASK_INTEGRATION | W | Integration logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations) |
audit-log.logging-level.mask."converter" | AUDIT_LOG_MASK_CONVERTER | W | Converter logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations) |
audit-log.logging-level.mask."entity_group" | AUDIT_LOG_MASK_ENTITY_GROUP | W | Entity Group logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations) |
audit-log.logging-level.mask."scheduler_event" | AUDIT_LOG_MASK_SCHEDULER_EVENT | W | Scheduler Event logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations) |
audit-log.logging-level.mask."blob_entity" | AUDIT_LOG_MASK_BLOB_ENTITY | W | Blob Entity logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations) |
audit-log.logging-level.mask."entity_view" | AUDIT_LOG_MASK_ENTITY_VIEW | W | Entity View logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations) |
audit-log.logging-level.mask."device_profile" | AUDIT_LOG_MASK_DEVICE_PROFILE | W | Device Profile logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations) |
audit-log.logging-level.mask."edge" | AUDIT_LOG_MASK_EDGE | W | Edge logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations) |
audit-log.logging-level.mask."tb_resource" | AUDIT_LOG_MASK_RESOURCE | W | ThingsBoard resource logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations) |
audit-log.logging-level.mask."ota_package" | AUDIT_LOG_MASK_OTA_PACKAGE | W | Ota package logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations) |
audit-log.logging-level.mask."role" | AUDIT_LOG_MASK_ROLE | W | Role logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations) |
audit-log.logging-level.mask."group_permission" | AUDIT_LOG_MASK_GROUP_PERMISSION | W | Group Permission logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations) |
audit-log.sink.type | AUDIT_LOG_SINK_TYPE | none | Type of external sink system to forward audit logs records. Possible options: none, elasticsearch |
audit-log.sink.index_pattern | AUDIT_LOG_SINK_INDEX_PATTERN | @{TENANT}[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
Parameter | Environment Variable | Default Value | Description |
state.defaultInactivityTimeoutInSec | DEFAULT_INACTIVITY_TIMEOUT | 600 | Device inactivity timeout in seconds |
state.defaultStateCheckIntervalInSec | DEFAULT_STATE_CHECK_INTERVAL | 60 | Device inactivity check period in seconds |
state.persistToTelemetry | PERSIST_STATE_TO_TELEMETRY | false |
JavaScript evaluator parameters
Parameter | Environment Variable | Default Value | Description |
js.evaluator | JS_EVALUATOR | local | Javascript evaluator type - local (Built-in JVM JavaScript environment properties) or remote (Remote JavaScript environment ) |
js.local.use_js_sandbox | USE_LOCAL_JS_SANDBOX | true | Use Sandboxed (secured) JVM JavaScript environment |
js.local.monitor_thread_pool_size | LOCAL_JS_SANDBOX_MONITOR_THREAD_POOL_SIZE | 4 | Specify thread pool size for JavaScript sandbox resource monitor |
js.local.max_cpu_time | LOCAL_JS_SANDBOX_MAX_CPU_TIME | 8000 | Maximum CPU time in milliseconds allowed for script execution |
js.local.max_errors | LOCAL_JS_SANDBOX_MAX_ERRORS | 3 | Maximum allowed JavaScript execution errors before JavaScript will be blacklisted |
js.local.max_requests_timeout | LOCAL_JS_MAX_REQUEST_TIMEOUT | 0 | JS Eval max request timeout. 0 - no timeout |
js.local.max_black_list_duration_sec | LOCAL_JS_SANDBOX_MAX_BLACKLIST_DURATION_SEC | 60 | Maximum time in seconds for black listed function to stay in the list |
js.local.stats.enabled | TB_JS_LOCAL_STATS_ENABLED | false | Enable/Disable stats collection for local JS executor |
js.local.stats.print_interval_ms | TB_JS_LOCAL_STATS_PRINT_INTERVAL_MS | 10000 | Interval of logging for local JS executor stats |
js.remote.max_errors | REMOTE_JS_SANDBOX_MAX_ERRORS | 3 | Maximum allowed JavaScript execution errors before JavaScript will be blacklisted |
js.remote.max_black_list_duration_sec | REMOTE_JS_SANDBOX_MAX_BLACKLIST_DURATION_SEC | 60 | Maximum time in seconds for black listed function to stay in the list |
js.remote.stats.enabled | TB_JS_REMOTE_STATS_ENABLED | false | Enable/Disable stats collection for remote JS executor |
js.remote.stats.print_interval_ms | TB_JS_REMOTE_STATS_PRINT_INTERVAL_MS | 10000 | Interval of logging for remote JS executor stats |
Transport parameters
Parameter | Environment Variable | Default Value | Description |
transport.sessions.inactivity_timeout | TB_TRANSPORT_SESSIONS_INACTIVITY_TIMEOUT | 300000 | Inactivity timeout for device session in transport service. The last activity time of the device session is updated if device sends any message, including keepalive messages. |
transport.sessions.report_timeout | TB_TRANSPORT_SESSIONS_REPORT_TIMEOUT | 3000 | Interval of periodic check for expired sessions and report of the changes to session last activity time. |
transport.rate_limits.enabled | TB_TRANSPORT_RATE_LIMITS_ENABLED | false | |
transport.rate_limits.tenant | TB_TRANSPORT_RATE_LIMITS_TENANT | 1000:1,20000:60 | |
transport.rate_limits.device | TB_TRANSPORT_RATE_LIMITS_DEVICE | 10:1,300:60 | |
transport.json.type_cast_enabled | JSON_TYPE_CAST_ENABLED | true | Cast String data types to Numeric if possible when processing Telemetry/Attributes JSON |
transport.json.max_string_value_length | JSON_MAX_STRING_VALUE_LENGTH | 0 | Maximum allowed string value length when processing Telemetry/Attributes JSON (0 value disables string value length check) |
transport.client_side_rpc.timeout | CLIENT_SIDE_RPC_TIMEOUT | 60000 | |
transport.api_enabled | TB_TRANSPORT_API_ENABLED | true | Enable/disable http/mqtt/coap transport protocols (has higher priority than certain protocol's 'enabled' property) |
transport.log.enabled | TB_TRANSPORT_LOG_ENABLED | true | Enable/Disable log of transport messages to telemetry. For example, logging of LwM2M registration update. |
transport.log.max_length | TB_TRANSPORT_LOG_MAX_LENGTH | 1024 | Maximum length of the log message. The content will be truncated to the specified value if needed. |
transport.stats.enabled | TB_TRANSPORT_STATS_ENABLED | true | Enable/Disable collection of transport statistics |
transport.stats.print-interval-ms | TB_TRANSPORT_STATS_PRINT_INTERVAL_MS | 60000 | Interval of transport statistics logging. |
Local HTTP transport parameters
Parameter | Environment Variable | Default Value | Description |
transport.http.enabled | HTTP_ENABLED | true | Enable/Disable local HTTP transport protocol |
Parameter | Environment Variable | Default Value | Description |
transport.http.request_timeout | HTTP_REQUEST_TIMEOUT | 60000 | HTTP request processing timeout in milliseconds |
transport.http.max_request_timeout | HTTP_MAX_REQUEST_TIMEOUT | 300000 | HTTP maximum request processing timeout in milliseconds |
Local MQTT transport parameters
Parameter | Environment Variable | Default Value | Description |
transport.mqtt.enabled | MQTT_ENABLED | true | Enable/Disable local MQTT transport protocol |
Parameter | Environment Variable | Default Value | Description |
transport.mqtt.bind_address | MQTT_BIND_ADDRESS | 0.0.0.0 | MQTT bind address |
transport.mqtt.bind_port | MQTT_BIND_PORT | 1883 | MQTT bind port |
transport.mqtt.timeout | MQTT_TIMEOUT | 10000 | MQTT processing timeout in milliseconds |
transport.mqtt.msg_queue_size_per_device_limit | MQTT_MSG_QUEUE_SIZE_PER_DEVICE_LIMIT | 100 | Messages await in the queue before device connected state. This limit works on low level before TenantProfileLimits mechanism |
transport.mqtt.netty.leak_detector_level | NETTY_LEAK_DETECTOR_LVL | DISABLED | Netty leak detector level |
transport.mqtt.netty.boss_group_thread_count | NETTY_BOSS_GROUP_THREADS | 1 | Netty BOSS threads count |
transport.mqtt.netty.worker_group_thread_count | NETTY_WORKER_GROUP_THREADS | 12 | Netty worker threads count |
transport.mqtt.netty.max_payload_size | NETTY_MAX_PAYLOAD_SIZE | 65536 | Max payload size in bytes |
transport.mqtt.netty.so_keep_alive | NETTY_SO_KEEPALIVE | false | |
transport.mqtt.ssl.enabled | MQTT_SSL_ENABLED | false | Enable/disable MQTTS support |
transport.mqtt.ssl.bind_address | MQTT_SSL_BIND_ADDRESS | 0.0.0.0 | MMQTT SSL bind address |
transport.mqtt.ssl.bind_port | MQTT_SSL_BIND_PORT | 8883 | MQTT SSL bind port |
transport.mqtt.ssl.protocol | MQTT_SSL_PROTOCOL | TLSv1.2 | SSL protocol: See this link |
transport.mqtt.ssl.credentials.type. | MQTT_SSL_CREDENTIALS_TYPE | PEM | Server credentials type (PEM - pem certificate file; KEYSTORE - java keystore) |
transport.mqtt.ssl.credentials.pem.cert_file | MQTT_SSL_PEM_CERT | mqttserver.pem | Path to the server certificate file (holds server certificate or certificate chain, may include server private key) |
transport.mqtt.ssl.credentials.pem.key_file | MQTT_SSL_PEM_KEY | mqttserver_key.pem | Path to the server certificate private key file (optional) |
transport.mqtt.ssl.credentials.pem.key_password | MQTT_SSL_PEM_KEY_PASSWORD | server_key_password | Server certificate private key password (optional) |
transport.mqtt.ssl.credentials.keystore.type | MQTT_SSL_KEY_STORE_TYPE | PKCS12 | Type of the key store: PKCS12 or JKS |
transport.mqtt.ssl.credentials.keystore.store_file | MQTT_SSL_KEY_STORE | mqttserver.jks | Path to the key store that holds the SSL certificate |
transport.mqtt.ssl.credentials.keystore.store_password | MQTT_SSL_KEY_STORE_PASSWORD | server_ks_password | Password used to access the key store |
transport.mqtt.ssl.credentials.keystore.key_password | MQTT_SSL_KEY_PASSWORD | server_key_password | Password used to access the key |
transport.mqtt.ssl.skip_validity_check_for_client_cert | MQTT_SSL_SKIP_VALIDITY_CHECK_FOR_CLIENT_CERT | false | Skip certificate validity check for client certificates |
Local CoAP transport parameters
Parameter | Environment Variable | Default Value | Description |
transport.coap.enabled | COAP_ENABLED | true | Enable/Disable local CoAP transport protocol |
Parameter | Environment Variable | Default Value | Description |
transport.coap.bind_address | COAP_BIND_ADDRESS | 0.0.0.0 | CoAP bind address |
transport.coap.bind_port | COAP_BIND_PORT | 5683 | CoAP bind port |
transport.coap.timeout | COAP_TIMEOUT | 10000 | CoaP processing timeout in milliseconds |
transport.coap.psm_activity_timer | COAP_PSM_ACTIVITY_TIMER | 10000 | Default PSM Activity Timer if not specified in device profile. |
transport.coap.paging_transmission_window | COAP_PAGING_TRANSMISSION_WINDOW | 10000 | Default Paging Transmission Window for eDRX support if not specified in the device profile. |
transport.coap.dtls.enabled | COAP_DTLS_ENABLED | false | Enable/disable DTLS 1.2 support |
transport.coap.dtls.bind_address | COAP_DTLS_BIND_ADDRESS | 0.0.0.0 | CoAP DTLS bind address |
transport.coap.dtls.bind_port | COAP_DTLS_BIND_PORT | 5684 | CoAP DTLS bind port |
transport.coap.dtls.credentials.type | COAP_DTLS_CREDENTIALS_TYPE | PEM | Server credentials type (PEM - pem certificate file; KEYSTORE - java keystore) |
transport.coap.dtls.credentials.pem.cert_file | COAP_DTLS_PEM_CERT | coapserver.pem | Path to the server certificate file (holds server certificate or certificate chain, may include server private key) |
transport.coap.dtls.credentials.pem.key_file | COAP_DTLS_PEM_KEY | coapserver_key.pem | Path to the server certificate private key file (optional) |
transport.coap.dtls.credentials.pem.key_password | COAP_DTLS_PEM_KEY_PASSWORD | server_key_password | Server certificate private key password (optional) |
transport.coap.dtls.credentials.keystore.type | COAP_DTLS_KEY_STORE_TYPE | JKS | Type of the key store |
transport.coap.dtls.credentials.keystore.store_file | COAP_DTLS_KEY_STORE | coapserver.jks | Path to the key store that holds the SSL certificate |
transport.coap.dtls.credentials.keystore.store_password | COAP_DTLS_KEY_STORE_PASSWORD | server_ks_password | Password used to access the key store |
transport.coap.dtls.credentials.keystore.key_alias | COAP_DTLS_KEY_ALIAS | serveralias | Key alias |
transport.coap.dtls.credentials.keystore.key_password | COAP_DTLS_KEY_PASSWORD | server_key_password | Password used to access the key |
transport.coap.dtls.x509.skip_validity_check_for_client_cert | TB_COAP_X509_DTLS_SKIP_VALIDITY_CHECK_FOR_CLIENT_CERT | false | Skip check of client certificate validity. |
transport.coap.dtls.x509.dtls_session_inactivity_timeout | TB_COAP_X509_DTLS_SESSION_INACTIVITY_TIMEOUT | 86400000 | Inactivity timeout of DTLS session. Used to cleanup cache. |
transport.coap.dtls.x509.dtls_session_report_timeout | TB_COAP_X509_DTLS_SESSION_REPORT_TIMEOUT | 1800000 | Interval of periodic eviction of the timed-out DTLS sessions. |
Local LwM2M transport parameters
Parameter | Environment Variable | Default Value | Description |
transport.lwm2m.enabled | LWM2M_ENABLED | false | Enable/disable lvm2m transport protocol |
Parameter | Environment Variable | Default Value | Description |
transport.lwm2m.server.id | LWM2M_SERVER_ID | 123 | LwM2M Server ID |
transport.lwm2m.server.bind_address | LWM2M_BIND_ADDRESS | 0.0.0.0 | LwM2M server bind address. Bind to all interfaces by default. |
transport.lwm2m.server.bind_port | LWM2M_BIND_PORT | 5685 | LwM2M server bind port. |
transport.lwm2m.server.security.bind_address | LWM2M_SECURITY_BIND_ADDRESS | 0.0.0.0 | LwM2M server bind address for DTLS. Bind to all interfaces by default. |
transport.lwm2m.server.security.bind_port | LWM2M_SECURITY_BIND_PORT | 5686 | LwM2M server bind port for DTLS. |
transport.lwm2m.server.security.credentials.enabled | LWM2M_SERVER_CREDENTIALS_ENABLED | true | Whether to enable LWM2M server X509 Certificate/RPK support |
transport.lwm2m.server.security.credentials.type | LWM2M_SERVER_CREDENTIALS_TYPE | PEM | Server credentials type (PEM - pem certificate file; KEYSTORE - java keystore) |
transport.lwm2m.server.security.credentials.pem.cert_file | LWM2M_SERVER_PEM_CERT | lwm2mserver.pem | Path to the server certificate file (holds server certificate or certificate chain, may include server private key) |
transport.lwm2m.server.security.credentials.pem.key_file | LWM2M_SERVER_PEM_KEY | lwm2mserver_key.pem | Path to the server certificate private key file (optional) |
transport.lwm2m.server.security.credentials.pem.key_password | LWM2M_SERVER_PEM_KEY_PASSWORD | server_key_password | Server certificate private key password (optional) |
transport.lwm2m.server.security.credentials.keystore.type | LWM2M_SERVER_KEY_STORE_TYPE | JKS | Type of the key store |
transport.lwm2m.server.security.credentials.keystore.store_file | LWM2M_SERVER_KEY_STORE | lwm2mserver.jks | Path to the key store that holds the SSL certificate |
transport.lwm2m.server.security.credentials.keystore.store_password | LWM2M_SERVER_KEY_STORE_PASSWORD | server_ks_password | Password used to access the key store |
transport.lwm2m.server.security.credentials.keystore.key_alias | LWM2M_SERVER_KEY_ALIAS | server | Key alias |
transport.lwm2m.server.security.credentials.keystore.key_password | LWM2M_SERVER_KEY_PASSWORD | server_ks_password | Password used to access the key |
transport.lwm2m.server.security.skip_validity_check_for_client_cert | TB_LWM2M_SERVER_SECURITY_SKIP_VALIDITY_CHECK_FOR_CLIENT_CERT | false | Only Certificate_x509 |
transport.lwm2m.bootstrap.enable | LWM2M_ENABLED_BS | true | Enable/disable Bootstrap Server |
transport.lwm2m.bootstrap.id | LWM2M_SERVER_ID_BS | 111 | This is: * Default value in Lwm2mClient after start in mode Bootstrap for the object : name "LWM2M Security" field: "Short Server ID" (deviceProfile: Bootstrap.BOOTSTRAP SERVER.Short ID) |
transport.lwm2m.bootstrap.bind_address | LWM2M_BS_BIND_ADDRESS | 0.0.0.0 | LwM2M bootstrap server bind address. Bind to all interfaces by default. |
transport.lwm2m.bootstrap.bind_port | LWM2M_BS_BIND_PORT | 5687 | LwM2M bootstrap server bind port |
transport.lwm2m.bootstrap.security.bind_address | LWM2M_BS_SECURITY_BIND_ADDRESS | 0.0.0.0 | LwM2M bootstrap server bind address for DTLS. Bind to all interfaces by default. |
transport.lwm2m.bootstrap.security.bind_port | LWM2M_BS_SECURITY_BIND_PORT | 5688 | LwM2M bootstrap server bind port for DTLS. |
transport.lwm2m.bootstrap.security.credentials.enabled | LWM2M_BS_CREDENTIALS_ENABLED | true | Whether to enable LWM2M bootstrap server X509 Certificate/RPK support |
transport.lwm2m.bootstrap.security.credentials.type | LWM2M_BS_CREDENTIALS_TYPE | PEM | Server credentials type (PEM - pem certificate file; KEYSTORE - java keystore) |
transport.lwm2m.bootstrap.security.credentials.pem.cert_file | LWM2M_BS_PEM_CERT | lwm2mserver.pem | Path to the server certificate file (holds server certificate or certificate chain, may include server private key) |
transport.lwm2m.bootstrap.security.credentials.pem.key_file | LWM2M_BS_PEM_KEY | lwm2mserver_key.pem | Path to the server certificate private key file (optional) |
transport.lwm2m.bootstrap.security.credentials.pem.key_password | LWM2M_BS_PEM_KEY_PASSWORD | server_key_password | Server certificate private key password (optional) |
transport.lwm2m.bootstrap.security.credentials.keystore.type | LWM2M_BS_KEY_STORE_TYPE | JKS | Type of the key store |
transport.lwm2m.bootstrap.security.credentials.keystore.store_file | LWM2M_BS_KEY_STORE | lwm2mserver.jks | Path to the key store that holds the SSL certificate |
transport.lwm2m.bootstrap.security.credentials.keystore.store_password | LWM2M_BS_KEY_STORE_PASSWORD | server_ks_password | Password used to access the key store |
transport.lwm2m.bootstrap.security.credentials.keystore.key_alias | LWM2M_BS_KEY_ALIAS | bootstrap | Key alias |
transport.lwm2m.bootstrap.security.credentials.keystore.key_password | LWM2M_BS_KEY_PASSWORD | server_ks_password | Password used to access the key |
transport.lwm2m.security.trust-credentials.enabled | LWM2M_TRUST_CREDENTIALS_ENABLED | true | Whether to load X509 trust certificates |
transport.lwm2m.security.trust-credentials.type | LWM2M_TRUST_CREDENTIALS_TYPE | PEM | Trust certificates store type (PEM - pem certificates file; KEYSTORE - java keystore) |
transport.lwm2m.security.trust-credentials.pem.cert_file | LWM2M_TRUST_PEM_CERT | lwm2mserver.pem | Path to the certificates file (holds trust certificates) |
transport.lwm2m.security.trust-credentials.keystore.type | LWM2M_TRUST_KEY_STORE_TYPE | JKS | Type of the key store |
transport.lwm2m.security.trust-credentials.keystore.store_file | LWM2M_TRUST_KEY_STORE | lwm2mserver.jks | Path to the key store that holds the X509 certificates |
transport.lwm2m.security.trust-credentials.keystore.store_password | LWM2M_TRUST_KEY_STORE_PASSWORD | server_ks_password | Password used to access the key store |
transport.lwm2m.security.recommended_ciphers | LWM2M_RECOMMENDED_CIPHERS | false | Set usage of recommended cipher suites. * Params DTLS Connector config: -- recommendedCipherSuitesOnly = true allow only recommended cipher suites, -- recommendedCipherSuitesOnly = false, also allow not recommended cipher suites. |
transport.lwm2m.security.recommended_supported_groups | LWM2M_RECOMMENDED_SUPPORTED_GROUPS | true | Set usage of recommended supported groups (curves). * Params DTLS Connector config: -- recommendedSupportedGroupsOnly = true allow only recommended supported groups, -- recommendedSupportedGroupsOnly = false, also allow not recommended supported groups. Default value is true |
transport.lwm2m.timeout | LWM2M_TIMEOUT | 120000 | Timeout of LwM2M operation |
transport.lwm2m.uplink_pool_size | LWM2M_UPLINK_POOL_SIZE | 10 | Thread pool size for processing of the LwM2M uplinks |
transport.lwm2m.downlink_pool_size | LWM2M_DOWNLINK_POOL_SIZE | 10 | Thread pool size for processing of the LwM2M downlinks |
transport.lwm2m.ota_pool_size | LWM2M_OTA_POOL_SIZE | 10 | Thread pool size for processing of the OTA updates |
transport.lwm2m.clean_period_in_sec | LWM2M_CLEAN_PERIOD_IN_SEC | 2 | Period of cleanup for the registrations in store |
transport.lwm2m.redis.enabled | LWM2M_REDIS_ENABLED | false | Enable/disable Redis for lvm2m transport |
Local SNMP transport parameters
Parameter | Environment Variable | Default Value | Description |
transport.snmp.enabled | SNMP_ENABLED | false | Enable/disable SNMP transport protocol |
Parameter | Environment Variable | Default Value | Description |
transport.snmp.response_processing.parallelism_level | SNMP_RESPONSE_PROCESSING_PARALLELISM_LEVEL | 20 | Parallelism level for executor (workStealingPool) that is responsible for handling responses from SNMP devices |
transport.snmp.underlying_protocol | SNMP_UNDERLYING_PROTOCOL | udp | To configure SNMP to work over UDP or TCP |
License parameters
Parameter | Environment Variable | Default Value | Description |
license.instance_data_file | EDGE_LICENSE_INSTANCE_DATA_FILE | instance-edge-license.data | Instance data is auto-generated and is used to identify particular ThingsBoard Edge Instance. Instance data is periodically updated and stored into the specified file which can be set to absolute or relative path. Please make sure that thingsboard edge process has access to the instance data file, in case you use absolute path. |
Swagger parameters
Parameter | Environment Variable | Default Value | Description |
swagger.api_path_regex | SWAGGER_API_PATH_REGEX | /api/.* | General swagger parameters |
swagger.security_path_regex | SWAGGER_SECURITY_PATH_REGEX | /api/.* | General swagger parameters |
swagger.non_security_path_regex | SWAGGER_NON_SECURITY_PATH_REGEX | /api/(?:noauth|v1)/.* | General swagger parameters |
swagger.title | SWAGGER_TITLE | ThingsBoard REST API | The title on the API doc UI page |
swagger.description | SWAGGER_DESCRIPTION | ThingsBoard Edge PE IoT platform REST API documentation. | The description on the API doc UI page |
swagger.contact.name | SWAGGER_CONTACT_NAME | ThingsBoard, Inc. | 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. |
Queue parameters
Parameter | Environment Variable | Default Value | Description |
queue.type | TB_QUEUE_TYPE | in-memory | In-memory or kafka (Apache Kafka) or aws-sqs (AWS SQS) or pubsub (PubSub) or service-bus (Azure Service Bus) or rabbitmq (RabbitMQ) |
queue.in_memory.stats.print-interval-ms | TB_QUEUE_IN_MEMORY_STATS_PRINT_INTERVAL_MS | 60000 | For debug lvl |
Parameter | Environment Variable | Default Value | Description |
queue.kafka.bootstrap.servers | TB_KAFKA_SERVERS | localhost:9092 | Kafka Bootstrap servers list as a connection string for kafka client |
queue.kafka.acks | TB_KAFKA_ACKS | all | General Kafka client setting |
queue.kafka.retries | TB_KAFKA_RETRIES | 1 | General Kafka client setting |
queue.kafka.compression | TB_KAFKA_COMPRESSION_TYPE | none | Compression of the Kafka messages: none or gzip |
queue.kafka.batch.size | TB_KAFKA_BATCH_SIZE | 16384 | General Kafka client setting |
queue.kafka.linger.ms | TB_KAFKA_LINGER_MS | 1 | General Kafka client setting |
queue.kafka.max.request.size | TB_KAFKA_MAX_REQUEST_SIZE | 1048576 | General Kafka client setting |
queue.kafka.max.in.flight.requests.per.connection | TB_KAFKA_MAX_IN_FLIGHT_REQUESTS_PER_CONNECTION | 5 | General Kafka client setting |
queue.kafka.buffer.memory | TB_BUFFER_MEMORY | 33554432 | General Kafka client setting |
queue.kafka.replication_factor | TB_QUEUE_KAFKA_REPLICATION_FACTOR | 1 | General Kafka client setting |
queue.kafka.max_poll_interval_ms | TB_QUEUE_KAFKA_MAX_POLL_INTERVAL_MS | 300000 | General Kafka client setting |
queue.kafka.max_poll_records | TB_QUEUE_KAFKA_MAX_POLL_RECORDS | 8192 | General Kafka client setting |
queue.kafka.max_partition_fetch_bytes | TB_QUEUE_KAFKA_MAX_PARTITION_FETCH_BYTES | 16777216 | General Kafka client setting |
queue.kafka.fetch_max_bytes | TB_QUEUE_KAFKA_FETCH_MAX_BYTES | 134217728 | General Kafka client setting |
queue.kafka.use_confluent_cloud | TB_QUEUE_KAFKA_USE_CONFLUENT_CLOUD | false | Enable to connect to Confluent Cloud. |
queue.kafka.confluent.ssl.algorithm | TB_QUEUE_KAFKA_CONFLUENT_SSL_ALGORITHM | https | Confluent Cloud connection settings |
queue.kafka.confluent.sasl.mechanism | TB_QUEUE_KAFKA_CONFLUENT_SASL_MECHANISM | PLAIN | Confluent Cloud connection settings |
queue.kafka.confluent.sasl.config | TB_QUEUE_KAFKA_CONFLUENT_SASL_JAAS_CONFIG | Confluent Cloud connection settings | |
queue.kafka.confluent.security.protocol | TB_QUEUE_KAFKA_CONFLUENT_SECURITY_PROTOCOL | SASL_SSL | Confluent Cloud connection settings |
queue.kafka.consumer-properties-per-topic.tb_ota_package.key | max.poll.records | Example of specific consumer properties key per topic | |
queue.kafka.consumer-properties-per-topic.tb_ota_package.value | TB_QUEUE_KAFKA_OTA_MAX_POLL_RECORDS | 10 | Example of specific consumer properties value per topic |
queue.kafka.other.key | request.timeout.ms | refer to https://docs.confluent.io/platform/current/installation/configuration/producer-configs.html#producerconfigs_request.timeout.ms | |
queue.kafka.other.value | TB_QUEUE_KAFKA_REQUEST_TIMEOUT_MS | 30000 | (30 seconds) |
queue.kafka.other.key | session.timeout.ms | refer to https://docs.confluent.io/platform/current/installation/configuration/consumer-configs.html#consumerconfigs_session.timeout.ms | |
queue.kafka.other.value | TB_QUEUE_KAFKA_SESSION_TIMEOUT_MS | 10000 | (10 seconds) |
queue.kafka.topic-properties.rule-engine | TB_QUEUE_KAFKA_RE_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 | Kafka properties for Rule Engine topics |
queue.kafka.topic-properties.core | TB_QUEUE_KAFKA_CORE_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 | Kafka properties for Core topics |
queue.kafka.topic-properties.transport-api | TB_QUEUE_KAFKA_TA_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 | Kafka properties for Transport Api topics |
queue.kafka.topic-properties.notifications | TB_QUEUE_KAFKA_NOTIFICATIONS_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 | Kafka properties for Notifications topics |
queue.kafka.topic-properties.js-executor | TB_QUEUE_KAFKA_JE_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:26214400;retention.bytes:104857600;partitions:100;min.insync.replicas:1 | Kafka properties for JS Executor topics |
queue.kafka.topic-properties.ota-updates | TB_QUEUE_KAFKA_OTA_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:10;min.insync.replicas:1 | Kafka properties for OTA updates topic |
queue.kafka.consumer-stats.enabled | TB_QUEUE_KAFKA_CONSUMER_STATS_ENABLED | true | Prints lag between consumer group offset and last messages offset in Kafka topics |
queue.kafka.consumer-stats.print-interval-ms | TB_QUEUE_KAFKA_CONSUMER_STATS_MIN_PRINT_INTERVAL_MS | 60000 | Statistics printing interval for Kafka's consumer-groups stats |
queue.kafka.consumer-stats.kafka-response-timeout-ms | TB_QUEUE_KAFKA_CONSUMER_STATS_RESPONSE_TIMEOUT_MS | 1000 | Time to wait for the stats-loading requests to Kafka to finish |
queue.aws_sqs.use_default_credential_provider_chain | TB_QUEUE_AWS_SQS_USE_DEFAULT_CREDENTIAL_PROVIDER_CHAIN | false | Use default credentials provider for AWS SQS |
queue.aws_sqs.access_key_id | TB_QUEUE_AWS_SQS_ACCESS_KEY_ID | YOUR_KEY | Access key ID from AWS IAM user |
queue.aws_sqs.secret_access_key | TB_QUEUE_AWS_SQS_SECRET_ACCESS_KEY | YOUR_SECRET | Secret access key from AWS IAM user |
queue.aws_sqs.region | TB_QUEUE_AWS_SQS_REGION | YOUR_REGION | Region from AWS account |
queue.aws_sqs.threads_per_topic | TB_QUEUE_AWS_SQS_THREADS_PER_TOPIC | 1 | Number of threads per each AWS SQS queue in consumer |
queue.aws_sqs.queue-properties.rule-engine | TB_QUEUE_AWS_SQS_RE_QUEUE_PROPERTIES | VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 | VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds |
queue.aws_sqs.queue-properties.core | TB_QUEUE_AWS_SQS_CORE_QUEUE_PROPERTIES | VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 | VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds |
queue.aws_sqs.queue-properties.transport-api | TB_QUEUE_AWS_SQS_TA_QUEUE_PROPERTIES | VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 | VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds |
queue.aws_sqs.queue-properties.notifications | TB_QUEUE_AWS_SQS_NOTIFICATIONS_QUEUE_PROPERTIES | VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 | VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds |
queue.aws_sqs.queue-properties.js-executor | TB_QUEUE_AWS_SQS_JE_QUEUE_PROPERTIES | VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 | VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds |
queue.pubsub.project_id | TB_QUEUE_PUBSUB_PROJECT_ID | YOUR_PROJECT_ID | Project Id from google cloud |
queue.pubsub.service_account | TB_QUEUE_PUBSUB_SERVICE_ACCOUNT | YOUR_SERVICE_ACCOUNT | API Credentials in json format |
queue.pubsub.max_msg_size | TB_QUEUE_PUBSUB_MAX_MSG_SIZE | 1048576 | in bytes |
queue.pubsub.max_messages | TB_QUEUE_PUBSUB_MAX_MESSAGES | 1000 | Number of messages per a consumer |
queue.pubsub.queue-properties.rule-engine | TB_QUEUE_PUBSUB_RE_QUEUE_PROPERTIES | ackDeadlineInSec:30;messageRetentionInSec:604800 | Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consume again |
queue.pubsub.queue-properties.core | TB_QUEUE_PUBSUB_CORE_QUEUE_PROPERTIES | ackDeadlineInSec:30;messageRetentionInSec:604800 | Pub/Sub properties for Core subscribers, messages which will commit after ackDeadlineInSec period can be consume again |
queue.pubsub.queue-properties.transport-api | TB_QUEUE_PUBSUB_TA_QUEUE_PROPERTIES | ackDeadlineInSec:30;messageRetentionInSec:604800 | Pub/Sub properties for Transport Api subscribers, messages which will commit after ackDeadlineInSec period can be consume again |
queue.pubsub.queue-properties.notifications | TB_QUEUE_PUBSUB_NOTIFICATIONS_QUEUE_PROPERTIES | ackDeadlineInSec:30;messageRetentionInSec:604800 | Pub/Sub properties for Notifications subscribers, messages which will commit after ackDeadlineInSec period can be consume again |
queue.pubsub.queue-properties.js-executor | TB_QUEUE_PUBSUB_JE_QUEUE_PROPERTIES | ackDeadlineInSec:30;messageRetentionInSec:604800 | Pub/Sub properties for Js Executor subscribers, messages which will commit after ackDeadlineInSec period can be consume again |
queue.service_bus.namespace_name | TB_QUEUE_SERVICE_BUS_NAMESPACE_NAME | YOUR_NAMESPACE_NAME | Azure namespace is a scoping container for all messaging components |
queue.service_bus.sas_key_name | TB_QUEUE_SERVICE_BUS_SAS_KEY_NAME | YOUR_SAS_KEY_NAME | Azure Service Bus Shared Access Signatures key name |
queue.service_bus.sas_key | TB_QUEUE_SERVICE_BUS_SAS_KEY | YOUR_SAS_KEY | Azure Service Bus Shared Access Signatures key |
queue.service_bus.max_messages | TB_QUEUE_SERVICE_BUS_MAX_MESSAGES | 1000 | Number of messages per a consumer |
queue.service_bus.queue-properties.rule-engine | TB_QUEUE_SERVICE_BUS_RE_QUEUE_PROPERTIES | lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 | Azure Service Bus properties for Rule Engine queues |
queue.service_bus.queue-properties.core | TB_QUEUE_SERVICE_BUS_CORE_QUEUE_PROPERTIES | lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 | Azure Service Bus properties for Core queues |
queue.service_bus.queue-properties.transport-api | TB_QUEUE_SERVICE_BUS_TA_QUEUE_PROPERTIES | lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 | Azure Service Bus properties for Transport Api queues |
queue.service_bus.queue-properties.notifications | TB_QUEUE_SERVICE_BUS_NOTIFICATIONS_QUEUE_PROPERTIES | lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 | Azure Service Bus properties for Notifications queues |
queue.service_bus.queue-properties.js-executor | TB_QUEUE_SERVICE_BUS_JE_QUEUE_PROPERTIES | lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 | Azure Service Bus properties for Js Executor queues |
queue.rabbitmq.exchange_name | TB_QUEUE_RABBIT_MQ_EXCHANGE_NAME | Default empty | |
queue.rabbitmq.host | TB_QUEUE_RABBIT_MQ_HOST | localhost | RabbitMQ host used to establish connection |
queue.rabbitmq.port | TB_QUEUE_RABBIT_MQ_PORT | 5672 | RabbitMQ host used to establish connection |
queue.rabbitmq.virtual_host | TB_QUEUE_RABBIT_MQ_VIRTUAL_HOST | / | Virtual hosts provide logical grouping and separation of resources |
queue.rabbitmq.password | TB_QUEUE_RABBIT_MQ_PASSWORD | YOUR_PASSWORD | User password for RabbitMQ user account |
queue.rabbitmq.automatic_recovery_enabled | TB_QUEUE_RABBIT_MQ_AUTOMATIC_RECOVERY_ENABLED | false | Network connection between clients and RabbitMQ nodes can fail. RabbitMQ Java client supports automatic recovery of connections and topology (queues, exchanges, bindings, and consumers) |
queue.rabbitmq.connection_timeout | TB_QUEUE_RABBIT_MQ_CONNECTION_TIMEOUT | 60000 | The connection timeout for the RabbitMQ connection factory |
queue.rabbitmq.handshake_timeout | TB_QUEUE_RABBIT_MQ_HANDSHAKE_TIMEOUT | 10000 | RabbitMQ has a timeout for connection handshake. When clients run in heavily constrained environments, it may be necessary to increase the timeout |
queue.rabbitmq.queue-properties.rule-engine | TB_QUEUE_RABBIT_MQ_RE_QUEUE_PROPERTIES | x-max-length-bytes:1048576000;x-message-ttl:604800000 | RabbitMQ properties for Rule Engine queues |
queue.rabbitmq.queue-properties.core | TB_QUEUE_RABBIT_MQ_CORE_QUEUE_PROPERTIES | x-max-length-bytes:1048576000;x-message-ttl:604800000 | RabbitMQ properties for Core queues |
queue.rabbitmq.queue-properties.transport-api | TB_QUEUE_RABBIT_MQ_TA_QUEUE_PROPERTIES | x-max-length-bytes:1048576000;x-message-ttl:604800000 | RabbitMQ properties for Transport Api queues |
queue.rabbitmq.queue-properties.notifications | TB_QUEUE_RABBIT_MQ_NOTIFICATIONS_QUEUE_PROPERTIES | x-max-length-bytes:1048576000;x-message-ttl:604800000 | RabbitMQ properties for Notifications queues |
queue.rabbitmq.queue-properties.js-executor | TB_QUEUE_RABBIT_MQ_JE_QUEUE_PROPERTIES | x-max-length-bytes:1048576000;x-message-ttl:604800000 | RabbitMQ properties for Js Executor queues |
queue.partitions.hash_function_name | TB_QUEUE_PARTITIONS_HASH_FUNCTION_NAME | murmur3_128 | Name of hash function used for consistent hash ring in Cluster Mode. See architecture docs for more details. murmur3_32, murmur3_128 or sha256 |
queue.transport_api.requests_topic | TB_QUEUE_TRANSPORT_API_REQUEST_TOPIC | tb_transport.api.requests | Topic used to consume api requests from transport microservices |
queue.transport_api.responses_topic | TB_QUEUE_TRANSPORT_API_RESPONSE_TOPIC | tb_transport.api.responses | Topic used to produce api responses to transport microservices |
queue.transport_api.max_pending_requests | TB_QUEUE_TRANSPORT_MAX_PENDING_REQUESTS | 10000 | Maximum pending api requests from transport microservices to be handled by server |
queue.transport_api.max_requests_timeout | TB_QUEUE_TRANSPORT_MAX_REQUEST_TIMEOUT | 10000 | Maximum timeout in milliseconds to handle api request from transport microservice by server |
queue.transport_api.max_callback_threads | TB_QUEUE_TRANSPORT_MAX_CALLBACK_THREADS | 100 | Amount of threads used to invoke callbacks |
queue.transport_api.request_poll_interval | TB_QUEUE_TRANSPORT_REQUEST_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll api requests from transport microservices |
queue.transport_api.response_poll_interval | TB_QUEUE_TRANSPORT_RESPONSE_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll api response from transport microservices |
queue.core.topic | TB_QUEUE_CORE_TOPIC | tb_core | Topic name for Core microservices |
queue.core.poll-interval | TB_QUEUE_CORE_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll messages by Core microservices |
queue.core.partitions | TB_QUEUE_CORE_PARTITIONS | 10 | Amount of partitions used by Core microservices |
queue.core.pack-processing-timeout | TB_QUEUE_CORE_PACK_PROCESSING_TIMEOUT_MS | 2000 | Timeout for processing a message pack by Core microservices |
queue.core.ota.topic | TB_QUEUE_CORE_OTA_TOPIC | tb_ota_package | The topic for queue of OTA updates |
queue.core.ota.pack-interval-ms | TB_QUEUE_CORE_OTA_PACK_INTERVAL_MS | 60000 | The interval of processing the OTA updates for devices. Used to avoid any harm to network due to many parallel OTA updates |
queue.core.ota.pack-size | TB_QUEUE_CORE_OTA_PACK_SIZE | 100 | The size of OTA updates notifications fetched from the queue. The queue stores pairs of firmware and device ids. |
queue.core.usage-stats-topic | TB_QUEUE_US_TOPIC | tb_usage_stats | The parameter to store usage statistics |
queue.core.stats.enabled | TB_QUEUE_CORE_STATS_ENABLED | true | Enable/disable statistics for Core microservices |
queue.core.stats.print-interval-ms | TB_QUEUE_CORE_STATS_PRINT_INTERVAL_MS | 60000 | Statistics printing interval for Core microservices |
queue.js.request_topic | REMOTE_JS_EVAL_REQUEST_TOPIC | js_eval.requests | JS Eval request topic |
queue.js.response_topic_prefix | REMOTE_JS_EVAL_RESPONSE_TOPIC | js_eval.responses | JS Eval responses topic prefix that is combined with node id |
queue.js.max_pending_requests | REMOTE_JS_MAX_PENDING_REQUESTS | 10000 | JS Eval max pending requests |
queue.js.max_eval_requests_timeout | REMOTE_JS_MAX_EVAL_REQUEST_TIMEOUT | 60000 | JS Eval max request timeout |
queue.js.max_requests_timeout | REMOTE_JS_MAX_REQUEST_TIMEOUT | 10000 | JS max request timeout |
queue.js.response_poll_interval | REMOTE_JS_RESPONSE_POLL_INTERVAL_MS | 25 | JS response poll interval |
queue.rule-engine.topic | TB_QUEUE_RULE_ENGINE_TOPIC | tb_rule_engine | Topic name for Rule Engine microservices |
queue.rule-engine.poll-interval | TB_QUEUE_RULE_ENGINE_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll messages by Rule Engine microservices |
queue.rule-engine.pack-processing-timeout | TB_QUEUE_RULE_ENGINE_PACK_PROCESSING_TIMEOUT_MS | 2000 | Timeout for processing a message pack |
queue.rule-engine.stats.enabled | TB_QUEUE_RULE_ENGINE_STATS_ENABLED | true | Enable/disable statistics for Rule Engine microservices |
queue.rule-engine.stats.print-interval-ms | TB_QUEUE_RULE_ENGINE_STATS_PRINT_INTERVAL_MS | 60000 | Statistics printing interval for Rule Engine microservices |
queue.transport.notifications_topic | TB_QUEUE_TRANSPORT_NOTIFICATIONS_TOPIC | tb_transport.notifications | Transport notifications topic |
queue.transport.poll_interval | TB_QUEUE_TRANSPORT_NOTIFICATIONS_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll messages by Core microservices |
queue.vc.topic | TB_QUEUE_VC_TOPIC | tb_version_control | Topic for storing Version Control synchronization tasks |
queue.vc.partitions | TB_QUEUE_VC_PARTITIONS | 10 | Amount of partitions used by Version Control microservices |
queue.vc.poll-interval | TB_QUEUE_VC_INTERVAL_MS | 10 | Interval in milliseconds to poll messages by Version Control microservices |
queue.vc.pack-processing-timeout | TB_QUEUE_VC_PACK_PROCESSING_TIMEOUT_MS | 10 | Timeout for processing a message pack |
ThingsBoard event parameters
Parameter | Environment Variable | Default Value | Description |
event.debug.max-symbols | TB_MAX_DEBUG_EVENT_SYMBOLS | 4096 | Maximum number of symbols per debug event. The event content will be truncated if needed. |
ThingsBoard service parameters
Parameter | Environment Variable | Default Value | Description |
service.type | TB_SERVICE_TYPE | monolith | Allowed values: monolith or tb-core or tb-rule-engine or tb-integration |
service.id | TB_SERVICE_ID | Unique id for this service (autogenerated if empty) | |
service.tenant_id | TB_SERVICE_TENANT_ID | Empty or specific tenant id |
ThingsBoard metrics parameters
Parameter | Environment Variable | Default Value | Description |
metrics.enabled | METRICS_ENABLED | false | Enable/disable actuator metrics |
metrics.timer.percentiles | METRICS_TIMER_PERCENTILES | 0.5 | Metrics percentiles returned by actuator for timer metrics. List of double values (divided by ,) |
management.endpoints.web.exposure.include | METRICS_ENDPOINTS_EXPOSE | info | Expose metrics endpoint (use value 'prometheus' to enable prometheus metrics) |
logback.xml
The configuration file for logging. Allows controlling the log level, the size of log files and the total size/volume of logs.