# Configures JWT tokens, user login, device claiming, OAuth2, and CA certificate trust store.
security:
# JWT Token parameters
jwt:# Since 3.4.2 values are persisted in the database during installation or upgrade. On Install, the key will be generated randomly if no custom value set. You can change it later from Web UI under SYS_ADMIN
# Tunes batch sizes, delays, thread counts, TTL, and partitioning for SQL-backed persistence of telemetry, events, and audit logs.
sql:
# Specify batch size for persisting attribute updates
attributes:
@ -453,6 +465,7 @@ sql:
query_timeout:"${SQL_RELATIONS_QUERY_TIMEOUT_SEC:20}"# This value has to be reasonably small to prevent the relation query from blocking all other DB calls
# Actor system parameters
# Configures thread pools, timeouts, and behavior for the internal actor system processing devices, rules, and RPCs.
actors:
system:
throughput:"${ACTORS_SYSTEM_THROUGHPUT:5}"# Number of messages the actor system will process per actor before switching to processing of messages for the next actor
# Configures cache type (Caffeine or Redis), pool size, and per-entity TTL and max-size limits for all caches.
cache:
# caffeine or redis(7.2 - latest compatible version)
type:"${CACHE_TYPE:caffeine}"
@ -719,6 +735,7 @@ cache:
spring.data.redis.repositories.enabled:false# Disable this because it is not required.
# Redis/Valkey configuration parameters
# Configures standalone, cluster, or sentinel Redis connection, SSL, and connection pool settings used for caching.
redis:
# standalone or cluster or sentinel
connection:
@ -802,11 +819,13 @@ redis:
# Update version parameters
# Controls whether the platform periodically checks for new ThingsBoard releases.
updates:
# Enable/disable checks for the new version
enabled:"${UPDATES_ENABLED:true}"
# Spring CORS configuration parameters
# Defines allowed origins, methods, headers, and credentials for cross-origin REST API requests.
spring.mvc.cors:
mappings:
# Intercept path
@ -823,6 +842,7 @@ spring.mvc.cors:
allow-credentials:"true"
# General spring parameters
# Miscellaneous Spring Boot settings for circular references, Freemarker, MVC, multipart, and JPA dialect.
spring.main.allow-circular-references:"true"# Spring Boot configuration property that controls whether circular dependencies between beans are allowed.
spring.freemarker.checkTemplateLocation:"false"# spring freemarker configuration
spring.mvc.async.request-timeout:"${SPRING_MVC_ASYNC_REQUEST_TIMEOUT:30000}"# The default timeout for asynchronous requests in milliseconds
spring.jpa.properties.hibernate.dialect:"${SPRING_JPA_DIALECT:org.thingsboard.server.dao.ThingsboardPostgreSQLDialect}"# we use custom dialect that contains ilike(arg1, arg2) function (is interpreted to postgres ILIKE operator)
# SQL DAO Configuration parameters
# Configures Spring JPA, Hibernate DDL, and HikariCP datasource connections for the primary and events databases.
# Configures audit logging levels per entity type and optional forwarding to an external sink such as Elasticsearch.
audit-log:
# Enable/disable audit log functionality.
enabled:"${AUDIT_LOG_ENABLED:true}"
@ -933,6 +955,7 @@ audit-log:
password:"${AUDIT_LOG_SINK_PASSWORD:}"# Password used to access external sink system
# Device state parameters
# Configures device inactivity detection, state persistence strategy, and rate limits for state rule nodes.
state:
# Device inactivity timeout is a global configuration parameter that defines when the device will be marked as "inactive" by the server.
# The parameter value is in seconds. A user can overwrite this parameter for an individual device by setting the “inactivityTimeout” server-side attribute (NOTE: expects value in milliseconds).
@ -963,7 +986,8 @@ state:
# Refill is set to be greedy. Please refer to Bucket4j library documentation for more details.
# Configures session management, rate limits, and protocol-specific settings for HTTP, MQTT, CoAP, LwM2M, and SNMP transports.
transport:
sessions:
# Session inactivity timeout is a global configuration parameter that defines how long the device transport session will be opened after the last message arrives from the device.
# Configures Swagger UI metadata: title, description, contact, license, version, and API path patterns.
swagger:
# General swagger match pattern of swagger UI links
api_path:"${SWAGGER_API_PATH:/api/**}"
@ -1585,6 +1616,7 @@ swagger:
doc_expansion:"${SWAGGER_DOC_EXPANSION:list}"
# Queue configuration parameters
# Configures the message queue backend (in-memory or Kafka) and all topic/partition/consumer settings for each service.
queue:
type:"${TB_QUEUE_TYPE:in-memory}"# in-memory or kafka (Apache Kafka)
prefix:"${TB_QUEUE_PREFIX:}"# Global queue prefix. If specified, prefix is added before default topic name: 'prefix.default_topic_name'. Prefix is applied to all topics (and consumer groups for kafka).
# Defines the messaging queue backend used to dispatch JS evaluation requests to the executor and receive results.
queue_type:"kafka"# Queue type used for JS evaluation requests: kafka or in-memory
request_topic:"js_eval.requests"# Kafka topic name for incoming JS evaluation requests
queue_prefix:""# Optional prefix applied to all queue/topic names; useful for environment isolation
http_port:"8888"# HTTP port exposing the /livenessProbe health check endpoint
# JavaScript execution configuration
# Controls response polling behavior and output size limits for individual JS script executions.
js:
response_poll_interval:"25"
max_result_size:"300000"
response_poll_interval:"25"# Interval in milliseconds to poll for JS execution responses
max_result_size:"300000"# Maximum allowed size in bytes of a JS execution result
# Kafka configuration
# Connection, producer, and topic settings for the Kafka message broker used as the JS evaluation queue.
kafka:
bootstrap:
# Kafka Bootstrap Servers
servers:"localhost:9092"
replication_factor:"1"
replication_factor:"1"# Number of replicas for each Kafka topic partition
acks:"1"# -1 = all; 0 = no acknowledgments; 1 = only waits for the leader to acknowledge
batch_size:"128"# for producer
linger_ms:"5"# for producer
batch_size:"128"# Maximum number of bytes the producer batches per partition before sending
linger_ms:"5"# Time in milliseconds the producer waits before sending a batch, allowing more messages to accumulate
partitions_consumed_concurrently:"1"# (EXPERIMENTAL) increase this value if you are planning to handle more than one partition (scale up, scale down) - this will decrease the latency
requestTimeout:"30000"# The default value in kafkajs is: 30000
connectionTimeout:"1000"# The default value in kafkajs is: 1000
# Controls Spring Boot startup mode, web environment type, and bean wiring behaviour.
spring.main.web-environment:"${WEB_APPLICATION_ENABLE:false}"# If you enabled process metrics you should also enable 'web-environment'.
spring.main.web-application-type:"${WEB_APPLICATION_TYPE:none}"# If you enabled process metrics you should set 'web-application-type' to 'servlet' value.
spring.main.allow-circular-references:"true"# Spring Boot configuration property that controls whether circular dependencies between beans are allowed.
# Server common parameters
# Configures the embedded HTTP server bind address and port used for actuator and metrics endpoints.
server:
# Server bind address (has no effect if web-environment is disabled).
prefix:"${TB_QUEUE_PREFIX:}"# Global queue prefix. If specified, prefix is added before default topic name: 'prefix.default_topic_name'. Prefix is applied to all topics (and consumer groups for kafka).
# Controls core Spring Boot application settings such as web environment and application type.
spring.main.web-environment:"${WEB_APPLICATION_ENABLE:false}"# If you enabled process metrics you should also enable 'web-environment'.
spring.main.web-application-type:"${WEB_APPLICATION_TYPE:none}"# If you enabled process metrics you should set 'web-application-type' to 'servlet' value.
spring.main.allow-circular-references:"true"# Spring Boot configuration property that controls whether circular dependencies between beans are allowed.
# Server common parameters
# Configures the HTTP server bind address and port for the actuator/metrics web endpoint.
server:
# Server bind address (has no effect if web-environment is disabled).
address:"${HTTP_BIND_ADDRESS:0.0.0.0}"
@ -27,6 +29,7 @@ server:
port:"${HTTP_BIND_PORT:8083}"
# Zookeeper connection parameters. Used for service discovery.
# Defines how this service registers itself and discovers other nodes via Apache ZooKeeper.
prefix:"${TB_QUEUE_PREFIX:}"# Global queue prefix. If specified, prefix is added before default topic name: 'prefix.default_topic_name'. Prefix is applied to all topics (and consumer groups for kafka).
# Configures the HTTP server bind address, port, SSL/TLS settings, and HTTP/2 support.
server:
# Server bind address
address:"${HTTP_BIND_ADDRESS:0.0.0.0}"
@ -54,6 +55,7 @@ server:
enabled:"${HTTP2_ENABLED:true}"
# Spring common parameters
# Controls Spring Boot framework-level settings such as circular references and multipart upload limits.
spring.main.allow-circular-references:"true"# Spring Boot configuration property that controls whether circular dependencies between beans are allowed.
spring.servlet.multipart.max-file-size:"${SPRING_SERVLET_MULTIPART_MAX_FILE_SIZE:50MB}"# Total file size cannot exceed 50MB when configuring file uploads
spring.servlet.multipart.max-request-size:"${SPRING_SERVLET_MULTIPART_MAX_REQUEST_SIZE:50MB}"# Total request size for a multipart/form-data cannot exceed 50MB
prefix:"${TB_QUEUE_PREFIX:}"# Global queue prefix. If specified, prefix is added before default topic name: 'prefix.default_topic_name'. Prefix is applied to all topics (and consumer groups for kafka) .
# Controls Spring Boot web environment and application type settings used for optional metrics exposure.
spring.main.web-environment:"${WEB_APPLICATION_ENABLE:false}"# If you enabled process metrics you should also enable 'web-environment'.
spring.main.web-application-type:"${WEB_APPLICATION_TYPE:none}"# If you enabled process metrics you should set 'web-application-type' to 'servlet' value.
spring.main.allow-circular-references:"true"# Spring Boot configuration property that controls whether circular dependencies between beans are allowed.
# Server common parameters
# HTTP server bind address and port, effective only when the web environment is enabled.
server:
# Server bind address (has no effect if web-environment is disabled).
# Session, JSON processing, RPC, logging, and LwM2M-specific transport settings including DTLS, bootstrap, and OTA.
transport:
sessions:
# Session inactivity timeout is a global configuration parameter that defines how long the device transport session will be opened after the last message arrives from the device.
prefix:"${TB_QUEUE_PREFIX:}"# Global queue prefix. If specified, prefix is added before default topic name: 'prefix.default_topic_name'. Prefix is applied to all topics (and consumer groups for kafka).
# Controls Spring Boot application type, web environment, and bean dependency settings.
spring.main.web-environment:"${WEB_APPLICATION_ENABLE:false}"# If you enabled process metrics you should also enable 'web-environment'.
spring.main.web-application-type:"${WEB_APPLICATION_TYPE:none}"# If you enabled process metrics you should set 'web-application-type' to 'servlet' value.
spring.main.allow-circular-references:"true"# Spring Boot configuration property that controls whether circular dependencies between beans are allowed.
# Server common parameters
# Configures the embedded HTTP server bind address and port for actuator/metrics endpoints.
server:
# Server bind address (has no effect if web-environment is disabled).
address:"${HTTP_BIND_ADDRESS:0.0.0.0}"
@ -27,6 +29,7 @@ server:
port:"${HTTP_BIND_PORT:8083}"
# Zookeeper connection parameters. Used for service discovery.
# Defines connection, session, retry settings and the node directory path for Zookeeper-based cluster coordination.
prefix:"${TB_QUEUE_PREFIX:}"# Global queue prefix. If specified, prefix is added before default topic name: 'prefix.default_topic_name'. Prefix is applied to all topics (and consumer groups for kafka).
# Controls Spring Boot application type and web environment settings for the SNMP transport service.
spring.main.web-environment:"${WEB_APPLICATION_ENABLE:false}"# If you enabled process metrics you should also enable 'web-environment'.
spring.main.web-application-type:"${WEB_APPLICATION_TYPE:none}"# If you enabled process metrics you should set 'web-application-type' to 'servlet' value.
spring.main.allow-circular-references:"true"# Spring Boot configuration property that controls whether circular dependencies between beans are allowed.
# Server common parameters
# Configures the embedded HTTP server bind address and port (used when web environment is enabled).
server:
# Server bind address (has no effect if web-environment is disabled).
address:"${HTTP_BIND_ADDRESS:0.0.0.0}"
@ -27,6 +29,7 @@ server:
port:"${HTTP_BIND_PORT:8083}"
# Zookeeper connection parameters. Used for service discovery.
# Defines ZooKeeper connectivity, timeouts, and cluster node registration settings for service coordination.
prefix:"${TB_QUEUE_PREFIX:}"# Global queue prefix. If specified, prefix is added before default topic name: 'prefix.default_topic_name'. Prefix is applied to all topics (and consumer groups for kafka).