348 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			348 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
#
 | 
						|
# Copyright © 2016-2022 The Thingsboard Authors
 | 
						|
#
 | 
						|
# Licensed under the Apache License, Version 2.0 (the "License");
 | 
						|
# you may not use this file except in compliance with the License.
 | 
						|
# You may obtain a copy of the License at
 | 
						|
#
 | 
						|
#     http://www.apache.org/licenses/LICENSE-2.0
 | 
						|
#
 | 
						|
# Unless required by applicable law or agreed to in writing, software
 | 
						|
# distributed under the License is distributed on an "AS IS" BASIS,
 | 
						|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
						|
# See the License for the specific language governing permissions and
 | 
						|
# limitations under the License.
 | 
						|
#
 | 
						|
 | 
						|
# If you enabled process metrics you should also enable 'web-environment'.
 | 
						|
spring.main.web-environment: "${WEB_APPLICATION_ENABLE:false}"
 | 
						|
# If you enabled process metrics you should set 'web-application-type' to 'servlet' value.
 | 
						|
spring.main.web-application-type: "${WEB_APPLICATION_TYPE:none}"
 | 
						|
 | 
						|
spring.main.allow-circular-references: "true"
 | 
						|
 | 
						|
server:
 | 
						|
  # Server bind address (has no effect if web-environment is disabled).
 | 
						|
  address: "${HTTP_BIND_ADDRESS:0.0.0.0}"
 | 
						|
  # Server bind port (has no effect if web-environment is disabled).
 | 
						|
  port: "${HTTP_BIND_PORT:8083}"
 | 
						|
 | 
						|
# Zookeeper connection parameters. Used for service discovery.
 | 
						|
zk:
 | 
						|
  # Enable/disable zookeeper discovery service.
 | 
						|
  enabled: "${ZOOKEEPER_ENABLED:false}"
 | 
						|
  # Zookeeper connect string
 | 
						|
  url: "${ZOOKEEPER_URL:localhost:2181}"
 | 
						|
  # Zookeeper retry interval in milliseconds
 | 
						|
  retry_interval_ms: "${ZOOKEEPER_RETRY_INTERVAL_MS:3000}"
 | 
						|
  # Zookeeper connection timeout in milliseconds
 | 
						|
  connection_timeout_ms: "${ZOOKEEPER_CONNECTION_TIMEOUT_MS:3000}"
 | 
						|
  # Zookeeper session timeout in milliseconds
 | 
						|
  session_timeout_ms: "${ZOOKEEPER_SESSION_TIMEOUT_MS:3000}"
 | 
						|
  # Name of the directory in zookeeper 'filesystem'
 | 
						|
  zk_dir: "${ZOOKEEPER_NODES_DIR:/thingsboard}"
 | 
						|
 | 
						|
cache:
 | 
						|
  type: "${CACHE_TYPE:redis}"
 | 
						|
 | 
						|
redis:
 | 
						|
  # standalone or cluster
 | 
						|
  connection:
 | 
						|
    type: "${REDIS_CONNECTION_TYPE:standalone}"
 | 
						|
  standalone:
 | 
						|
    host: "${REDIS_HOST:localhost}"
 | 
						|
    port: "${REDIS_PORT:6379}"
 | 
						|
    useDefaultClientConfig: "${REDIS_USE_DEFAULT_CLIENT_CONFIG:true}"
 | 
						|
    # this value may be used only if you used not default ClientConfig
 | 
						|
    clientName: "${REDIS_CLIENT_NAME:standalone}"
 | 
						|
    # this value may be used only if you used not default ClientConfig
 | 
						|
    connectTimeout: "${REDIS_CLIENT_CONNECT_TIMEOUT:30000}"
 | 
						|
    # this value may be used only if you used not default ClientConfig
 | 
						|
    readTimeout: "${REDIS_CLIENT_READ_TIMEOUT:60000}"
 | 
						|
    # this value may be used only if you used not default ClientConfig
 | 
						|
    usePoolConfig: "${REDIS_CLIENT_USE_POOL_CONFIG:false}"
 | 
						|
  cluster:
 | 
						|
    # Comma-separated list of "host:port" pairs to bootstrap from.
 | 
						|
    nodes: "${REDIS_NODES:}"
 | 
						|
    # Maximum number of redirects to follow when executing commands across the cluster.
 | 
						|
    max-redirects: "${REDIS_MAX_REDIRECTS:12}"
 | 
						|
    useDefaultPoolConfig: "${REDIS_USE_DEFAULT_POOL_CONFIG:true}"
 | 
						|
  # db index
 | 
						|
  db: "${REDIS_DB:0}"
 | 
						|
  # db password
 | 
						|
  password: "${REDIS_PASSWORD:}"
 | 
						|
  # pool config
 | 
						|
  pool_config:
 | 
						|
    maxTotal: "${REDIS_POOL_CONFIG_MAX_TOTAL:128}"
 | 
						|
    maxIdle: "${REDIS_POOL_CONFIG_MAX_IDLE:128}"
 | 
						|
    minIdle: "${REDIS_POOL_CONFIG_MIN_IDLE:16}"
 | 
						|
    testOnBorrow: "${REDIS_POOL_CONFIG_TEST_ON_BORROW:true}"
 | 
						|
    testOnReturn: "${REDIS_POOL_CONFIG_TEST_ON_RETURN:true}"
 | 
						|
    testWhileIdle: "${REDIS_POOL_CONFIG_TEST_WHILE_IDLE:true}"
 | 
						|
    minEvictableMs: "${REDIS_POOL_CONFIG_MIN_EVICTABLE_MS:60000}"
 | 
						|
    evictionRunsMs: "${REDIS_POOL_CONFIG_EVICTION_RUNS_MS:30000}"
 | 
						|
    maxWaitMills: "${REDIS_POOL_CONFIG_MAX_WAIT_MS:60000}"
 | 
						|
    numberTestsPerEvictionRun: "${REDIS_POOL_CONFIG_NUMBER_TESTS_PER_EVICTION_RUN:3}"
 | 
						|
    blockWhenExhausted: "${REDIS_POOL_CONFIG_BLOCK_WHEN_EXHAUSTED:true}"
 | 
						|
 | 
						|
# LWM2M server parameters
 | 
						|
transport:
 | 
						|
  sessions:
 | 
						|
    inactivity_timeout: "${TB_TRANSPORT_SESSIONS_INACTIVITY_TIMEOUT:300000}"
 | 
						|
    report_timeout: "${TB_TRANSPORT_SESSIONS_REPORT_TIMEOUT:3000}"
 | 
						|
  json:
 | 
						|
    # Cast String data types to Numeric if possible when processing Telemetry/Attributes JSON
 | 
						|
    type_cast_enabled: "${JSON_TYPE_CAST_ENABLED:false}"
 | 
						|
    # Maximum allowed string value length when processing Telemetry/Attributes JSON (0 value disables string value length check)
 | 
						|
    max_string_value_length: "${JSON_MAX_STRING_VALUE_LENGTH:0}"
 | 
						|
  client_side_rpc:
 | 
						|
    timeout: "${CLIENT_SIDE_RPC_TIMEOUT:60000}"
 | 
						|
  # Enable/disable http/mqtt/coap transport protocols (has higher priority than certain protocol's 'enabled' property)
 | 
						|
  api_enabled: "${TB_TRANSPORT_API_ENABLED:true}"
 | 
						|
  log:
 | 
						|
    enabled: "${TB_TRANSPORT_LOG_ENABLED:true}"
 | 
						|
    max_length: "${TB_TRANSPORT_LOG_MAX_LENGTH:1024}"
 | 
						|
  # Local LwM2M transport parameters
 | 
						|
  lwm2m:
 | 
						|
    # Enable/disable lvm2m transport protocol.
 | 
						|
    enabled: "${LWM2M_ENABLED:true}"
 | 
						|
    server:
 | 
						|
      id: "${LWM2M_SERVER_ID:123}"
 | 
						|
      bind_address: "${LWM2M_BIND_ADDRESS:0.0.0.0}"
 | 
						|
      bind_port: "${LWM2M_BIND_PORT:5685}"
 | 
						|
      security:
 | 
						|
        bind_address: "${LWM2M_SECURITY_BIND_ADDRESS:0.0.0.0}"
 | 
						|
        bind_port: "${LWM2M_SECURITY_BIND_PORT:5686}"
 | 
						|
        # Server X509 Certificates support
 | 
						|
        credentials:
 | 
						|
          # Whether to enable LWM2M server X509 Certificate/RPK support
 | 
						|
          enabled: "${LWM2M_SERVER_CREDENTIALS_ENABLED:false}"
 | 
						|
          # Server credentials type (PEM - pem certificate file; KEYSTORE - java keystore)
 | 
						|
          type: "${LWM2M_SERVER_CREDENTIALS_TYPE:PEM}"
 | 
						|
          # PEM server credentials
 | 
						|
          pem:
 | 
						|
            # Path to the server certificate file (holds server certificate or certificate chain, may include server private key)
 | 
						|
            cert_file: "${LWM2M_SERVER_PEM_CERT:lwm2mserver.pem}"
 | 
						|
            # Path to the server certificate private key file. Optional by default. Required if the private key is not present in server certificate file;
 | 
						|
            key_file: "${LWM2M_SERVER_PEM_KEY:lwm2mserver_key.pem}"
 | 
						|
            # Server certificate private key password (optional)
 | 
						|
            key_password: "${LWM2M_SERVER_PEM_KEY_PASSWORD:server_key_password}"
 | 
						|
          # Keystore server credentials
 | 
						|
          keystore:
 | 
						|
            # Type of the key store
 | 
						|
            type: "${LWM2M_SERVER_KEY_STORE_TYPE:JKS}"
 | 
						|
            # Path to the key store that holds the SSL certificate
 | 
						|
            store_file: "${LWM2M_SERVER_KEY_STORE:lwm2mserver.jks}"
 | 
						|
            # Password used to access the key store
 | 
						|
            store_password: "${LWM2M_SERVER_KEY_STORE_PASSWORD:server_ks_password}"
 | 
						|
            # Key alias
 | 
						|
            key_alias: "${LWM2M_SERVER_KEY_ALIAS:server}"
 | 
						|
            # Password used to access the key
 | 
						|
            key_password: "${LWM2M_SERVER_KEY_PASSWORD:server_ks_password}"
 | 
						|
        # Only Certificate_x509:
 | 
						|
        skip_validity_check_for_client_cert: "${TB_LWM2M_SERVER_SECURITY_SKIP_VALIDITY_CHECK_FOR_CLIENT_CERT:false}"
 | 
						|
    bootstrap:
 | 
						|
      enabled: "${LWM2M_ENABLED_BS:true}"
 | 
						|
      id: "${LWM2M_SERVER_ID_BS:111}"
 | 
						|
      bind_address: "${LWM2M_BS_BIND_ADDRESS:0.0.0.0}"
 | 
						|
      bind_port: "${LWM2M_BS_BIND_PORT:5687}"
 | 
						|
      security:
 | 
						|
        bind_address: "${LWM2M_BS_SECURITY_BIND_ADDRESS:0.0.0.0}"
 | 
						|
        bind_port: "${LWM2M_BS_SECURITY_BIND_PORT:5688}"
 | 
						|
        # Bootstrap server X509 Certificates support
 | 
						|
        credentials:
 | 
						|
          # Whether to enable LWM2M bootstrap server X509 Certificate/RPK support
 | 
						|
          enabled: "${LWM2M_BS_CREDENTIALS_ENABLED:false}"
 | 
						|
          # Server credentials type (PEM - pem certificate file; KEYSTORE - java keystore)
 | 
						|
          type:  "${LWM2M_BS_CREDENTIALS_TYPE:PEM}"
 | 
						|
          # PEM server credentials
 | 
						|
          pem:
 | 
						|
            # Path to the server certificate file (holds server certificate or certificate chain, may include server private key)
 | 
						|
            cert_file: "${LWM2M_BS_PEM_CERT:lwm2mserver.pem}"
 | 
						|
            # Path to the server certificate private key file. Optional by default. Required if the private key is not present in server certificate file;
 | 
						|
            key_file: "${LWM2M_BS_PEM_KEY:lwm2mserver_key.pem}"
 | 
						|
            # Server certificate private key password (optional)
 | 
						|
            key_password: "${LWM2M_BS_PEM_KEY_PASSWORD:server_key_password}"
 | 
						|
          # Keystore server credentials
 | 
						|
          keystore:
 | 
						|
            # Type of the key store
 | 
						|
            type: "${LWM2M_BS_KEY_STORE_TYPE:JKS}"
 | 
						|
            # Path to the key store that holds the SSL certificate
 | 
						|
            store_file: "${LWM2M_BS_KEY_STORE:lwm2mserver.jks}"
 | 
						|
            # Password used to access the key store
 | 
						|
            store_password: "${LWM2M_BS_KEY_STORE_PASSWORD:server_ks_password}"
 | 
						|
            # Key alias
 | 
						|
            key_alias: "${LWM2M_BS_KEY_ALIAS:bootstrap}"
 | 
						|
            # Password used to access the key
 | 
						|
            key_password: "${LWM2M_BS_KEY_PASSWORD:server_ks_password}"
 | 
						|
    security:
 | 
						|
      # X509 trust certificates
 | 
						|
      trust-credentials:
 | 
						|
        # Whether to load X509 trust certificates
 | 
						|
        enabled: "${LWM2M_TRUST_CREDENTIALS_ENABLED:false}"
 | 
						|
        # Trust certificates store type (PEM - pem certificates file; KEYSTORE - java keystore)
 | 
						|
        type:  "${LWM2M_TRUST_CREDENTIALS_TYPE:PEM}"
 | 
						|
        # PEM certificates
 | 
						|
        pem:
 | 
						|
          # Path to the certificates file (holds trust certificates)
 | 
						|
          cert_file: "${LWM2M_TRUST_PEM_CERT:lwm2mtruststorechain.pem}"
 | 
						|
        # Keystore with trust certificates
 | 
						|
        keystore:
 | 
						|
          # Type of the key store
 | 
						|
          type: "${LWM2M_TRUST_KEY_STORE_TYPE:JKS}"
 | 
						|
          # Path to the key store that holds the X509 certificates
 | 
						|
          store_file: "${LWM2M_TRUST_KEY_STORE:lwm2mtruststorechain.jks}"
 | 
						|
          # Password used to access the key store
 | 
						|
          store_password: "${LWM2M_TRUST_KEY_STORE_PASSWORD:server_ks_password}"
 | 
						|
      recommended_ciphers: "${LWM2M_RECOMMENDED_CIPHERS:false}"
 | 
						|
      recommended_supported_groups: "${LWM2M_RECOMMENDED_SUPPORTED_GROUPS:true}"
 | 
						|
    timeout: "${LWM2M_TIMEOUT:120000}"
 | 
						|
    uplink_pool_size: "${LWM2M_UPLINK_POOL_SIZE:10}"
 | 
						|
    downlink_pool_size: "${LWM2M_DOWNLINK_POOL_SIZE:10}"
 | 
						|
    ota_pool_size: "${LWM2M_OTA_POOL_SIZE:10}"
 | 
						|
    clean_period_in_sec: "${LWM2M_CLEAN_PERIOD_IN_SEC:2}"
 | 
						|
    psm_activity_timer: "${LWM2M_PSM_ACTIVITY_TIMER:10000}"
 | 
						|
    paging_transmission_window: "${LWM2M_PAGING_TRANSMISSION_WINDOW:10000}"
 | 
						|
    network_config: # In this section you can specify custom parameters for LwM2M network configuration and expose the env variables to configure outside
 | 
						|
  #      - key: "PROTOCOL_STAGE_THREAD_COUNT"
 | 
						|
  #        value: "${LWM2M_PROTOCOL_STAGE_THREAD_COUNT:4}"
 | 
						|
  stats:
 | 
						|
    enabled: "${TB_TRANSPORT_STATS_ENABLED:true}"
 | 
						|
    print-interval-ms: "${TB_TRANSPORT_STATS_PRINT_INTERVAL_MS:60000}"
 | 
						|
 | 
						|
queue:
 | 
						|
  type: "${TB_QUEUE_TYPE:kafka}" # kafka (Apache Kafka) or aws-sqs (AWS SQS) or pubsub (PubSub) or service-bus (Azure Service Bus) or rabbitmq (RabbitMQ)
 | 
						|
  kafka:
 | 
						|
    bootstrap.servers: "${TB_KAFKA_SERVERS:localhost:9092}"
 | 
						|
    acks: "${TB_KAFKA_ACKS:all}"
 | 
						|
    retries: "${TB_KAFKA_RETRIES:1}"
 | 
						|
    compression.type: "${TB_KAFKA_COMPRESSION_TYPE:none}" # none or gzip
 | 
						|
    batch.size: "${TB_KAFKA_BATCH_SIZE:16384}"
 | 
						|
    linger.ms: "${TB_KAFKA_LINGER_MS:1}"
 | 
						|
    max.request.size: "${TB_KAFKA_MAX_REQUEST_SIZE:1048576}"
 | 
						|
    max.in.flight.requests.per.connection: "${TB_KAFKA_MAX_IN_FLIGHT_REQUESTS_PER_CONNECTION:5}"
 | 
						|
    buffer.memory: "${TB_BUFFER_MEMORY:33554432}"
 | 
						|
    replication_factor: "${TB_QUEUE_KAFKA_REPLICATION_FACTOR:1}"
 | 
						|
    use_confluent_cloud: "${TB_QUEUE_KAFKA_USE_CONFLUENT_CLOUD:false}"
 | 
						|
    confluent:
 | 
						|
      ssl.algorithm: "${TB_QUEUE_KAFKA_CONFLUENT_SSL_ALGORITHM:https}"
 | 
						|
      sasl.mechanism: "${TB_QUEUE_KAFKA_CONFLUENT_SASL_MECHANISM:PLAIN}"
 | 
						|
      sasl.config: "${TB_QUEUE_KAFKA_CONFLUENT_SASL_JAAS_CONFIG:org.apache.kafka.common.security.plain.PlainLoginModule required username=\"CLUSTER_API_KEY\" password=\"CLUSTER_API_SECRET\";}"
 | 
						|
      security.protocol: "${TB_QUEUE_KAFKA_CONFLUENT_SECURITY_PROTOCOL:SASL_SSL}"
 | 
						|
    other: # In this section you can specify custom parameters for Kafka consumer/producer and expose the env variables to configure outside
 | 
						|
      - key: "request.timeout.ms" # refer to https://docs.confluent.io/platform/current/installation/configuration/producer-configs.html#producerconfigs_request.timeout.ms
 | 
						|
        value: "${TB_QUEUE_KAFKA_REQUEST_TIMEOUT_MS:30000}" # (30 seconds)
 | 
						|
      - key: "session.timeout.ms" # refer to https://docs.confluent.io/platform/current/installation/configuration/consumer-configs.html#consumerconfigs_session.timeout.ms
 | 
						|
        value: "${TB_QUEUE_KAFKA_SESSION_TIMEOUT_MS:10000}" # (10 seconds)
 | 
						|
    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}"
 | 
						|
      core: "${TB_QUEUE_KAFKA_CORE_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1}"
 | 
						|
      transport-api: "${TB_QUEUE_KAFKA_TA_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:10;min.insync.replicas:1}"
 | 
						|
      notifications: "${TB_QUEUE_KAFKA_NOTIFICATIONS_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1}"
 | 
						|
  aws_sqs:
 | 
						|
    use_default_credential_provider_chain: "${TB_QUEUE_AWS_SQS_USE_DEFAULT_CREDENTIAL_PROVIDER_CHAIN:false}"
 | 
						|
    access_key_id: "${TB_QUEUE_AWS_SQS_ACCESS_KEY_ID:YOUR_KEY}"
 | 
						|
    secret_access_key: "${TB_QUEUE_AWS_SQS_SECRET_ACCESS_KEY:YOUR_SECRET}"
 | 
						|
    region: "${TB_QUEUE_AWS_SQS_REGION:YOUR_REGION}"
 | 
						|
    threads_per_topic: "${TB_QUEUE_AWS_SQS_THREADS_PER_TOPIC:1}"
 | 
						|
    queue-properties:
 | 
						|
      rule-engine: "${TB_QUEUE_AWS_SQS_RE_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}"
 | 
						|
      core: "${TB_QUEUE_AWS_SQS_CORE_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}"
 | 
						|
      transport-api: "${TB_QUEUE_AWS_SQS_TA_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}"
 | 
						|
      notifications: "${TB_QUEUE_AWS_SQS_NOTIFICATIONS_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}"
 | 
						|
      #    VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
 | 
						|
  pubsub:
 | 
						|
    project_id: "${TB_QUEUE_PUBSUB_PROJECT_ID:YOUR_PROJECT_ID}"
 | 
						|
    service_account: "${TB_QUEUE_PUBSUB_SERVICE_ACCOUNT:YOUR_SERVICE_ACCOUNT}"
 | 
						|
    max_msg_size: "${TB_QUEUE_PUBSUB_MAX_MSG_SIZE:1048576}" #in bytes
 | 
						|
    max_messages: "${TB_QUEUE_PUBSUB_MAX_MESSAGES:1000}"
 | 
						|
    queue-properties:
 | 
						|
      rule-engine: "${TB_QUEUE_PUBSUB_RE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}"
 | 
						|
      core: "${TB_QUEUE_PUBSUB_CORE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}"
 | 
						|
      transport-api: "${TB_QUEUE_PUBSUB_TA_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}"
 | 
						|
      notifications: "${TB_QUEUE_PUBSUB_NOTIFICATIONS_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}"
 | 
						|
  service_bus:
 | 
						|
    namespace_name: "${TB_QUEUE_SERVICE_BUS_NAMESPACE_NAME:YOUR_NAMESPACE_NAME}"
 | 
						|
    sas_key_name: "${TB_QUEUE_SERVICE_BUS_SAS_KEY_NAME:YOUR_SAS_KEY_NAME}"
 | 
						|
    sas_key: "${TB_QUEUE_SERVICE_BUS_SAS_KEY:YOUR_SAS_KEY}"
 | 
						|
    max_messages: "${TB_QUEUE_SERVICE_BUS_MAX_MESSAGES:1000}"
 | 
						|
    queue-properties:
 | 
						|
      rule-engine: "${TB_QUEUE_SERVICE_BUS_RE_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}"
 | 
						|
      core: "${TB_QUEUE_SERVICE_BUS_CORE_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}"
 | 
						|
      transport-api: "${TB_QUEUE_SERVICE_BUS_TA_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}"
 | 
						|
      notifications: "${TB_QUEUE_SERVICE_BUS_NOTIFICATIONS_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}"
 | 
						|
  rabbitmq:
 | 
						|
    exchange_name: "${TB_QUEUE_RABBIT_MQ_EXCHANGE_NAME:}"
 | 
						|
    host: "${TB_QUEUE_RABBIT_MQ_HOST:localhost}"
 | 
						|
    port: "${TB_QUEUE_RABBIT_MQ_PORT:5672}"
 | 
						|
    virtual_host: "${TB_QUEUE_RABBIT_MQ_VIRTUAL_HOST:/}"
 | 
						|
    username: "${TB_QUEUE_RABBIT_MQ_USERNAME:YOUR_USERNAME}"
 | 
						|
    password: "${TB_QUEUE_RABBIT_MQ_PASSWORD:YOUR_PASSWORD}"
 | 
						|
    automatic_recovery_enabled: "${TB_QUEUE_RABBIT_MQ_AUTOMATIC_RECOVERY_ENABLED:false}"
 | 
						|
    connection_timeout: "${TB_QUEUE_RABBIT_MQ_CONNECTION_TIMEOUT:60000}"
 | 
						|
    handshake_timeout: "${TB_QUEUE_RABBIT_MQ_HANDSHAKE_TIMEOUT:10000}"
 | 
						|
    queue-properties:
 | 
						|
      rule-engine: "${TB_QUEUE_RABBIT_MQ_RE_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}"
 | 
						|
      core: "${TB_QUEUE_RABBIT_MQ_CORE_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}"
 | 
						|
      transport-api: "${TB_QUEUE_RABBIT_MQ_TA_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}"
 | 
						|
      notifications: "${TB_QUEUE_RABBIT_MQ_NOTIFICATIONS_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}"
 | 
						|
  partitions:
 | 
						|
    hash_function_name: "${TB_QUEUE_PARTITIONS_HASH_FUNCTION_NAME:murmur3_128}"
 | 
						|
    virtual_nodes_size: "${TB_QUEUE_PARTITIONS_VIRTUAL_NODES_SIZE:16}"
 | 
						|
  transport_api:
 | 
						|
    requests_topic: "${TB_QUEUE_TRANSPORT_API_REQUEST_TOPIC:tb_transport.api.requests}"
 | 
						|
    responses_topic: "${TB_QUEUE_TRANSPORT_API_RESPONSE_TOPIC:tb_transport.api.responses}"
 | 
						|
    max_pending_requests: "${TB_QUEUE_TRANSPORT_MAX_PENDING_REQUESTS:10000}"
 | 
						|
    max_requests_timeout: "${TB_QUEUE_TRANSPORT_MAX_REQUEST_TIMEOUT:10000}"
 | 
						|
    max_callback_threads: "${TB_QUEUE_TRANSPORT_MAX_CALLBACK_THREADS:100}"
 | 
						|
    request_poll_interval: "${TB_QUEUE_TRANSPORT_REQUEST_POLL_INTERVAL_MS:25}"
 | 
						|
    response_poll_interval: "${TB_QUEUE_TRANSPORT_RESPONSE_POLL_INTERVAL_MS:25}"
 | 
						|
  core:
 | 
						|
    topic: "${TB_QUEUE_CORE_TOPIC:tb_core}"
 | 
						|
    poll-interval: "${TB_QUEUE_CORE_POLL_INTERVAL_MS:25}"
 | 
						|
    partitions: "${TB_QUEUE_CORE_PARTITIONS:10}"
 | 
						|
    pack-processing-timeout: "${TB_QUEUE_CORE_PACK_PROCESSING_TIMEOUT_MS:60000}"
 | 
						|
    stats:
 | 
						|
      enabled: "${TB_QUEUE_CORE_STATS_ENABLED:false}"
 | 
						|
      print-interval-ms: "${TB_QUEUE_CORE_STATS_PRINT_INTERVAL_MS:10000}"
 | 
						|
  js:
 | 
						|
    # JS Eval request topic
 | 
						|
    request_topic: "${REMOTE_JS_EVAL_REQUEST_TOPIC:js_eval.requests}"
 | 
						|
    # JS Eval responses topic prefix that is combined with node id
 | 
						|
    response_topic_prefix: "${REMOTE_JS_EVAL_RESPONSE_TOPIC:js_eval.responses}"
 | 
						|
    # JS Eval max pending requests
 | 
						|
    max_pending_requests: "${REMOTE_JS_MAX_PENDING_REQUESTS:10000}"
 | 
						|
    # JS Eval max request timeout
 | 
						|
    max_requests_timeout: "${REMOTE_JS_MAX_REQUEST_TIMEOUT:10000}"
 | 
						|
    # JS response poll interval
 | 
						|
    response_poll_interval: "${REMOTE_JS_RESPONSE_POLL_INTERVAL_MS:25}"
 | 
						|
    # JS response auto commit interval
 | 
						|
    response_auto_commit_interval: "${REMOTE_JS_RESPONSE_AUTO_COMMIT_INTERVAL_MS:100}"
 | 
						|
  rule-engine:
 | 
						|
    topic: "${TB_QUEUE_RULE_ENGINE_TOPIC:tb_rule_engine}"
 | 
						|
    poll-interval: "${TB_QUEUE_RULE_ENGINE_POLL_INTERVAL_MS:25}"
 | 
						|
    pack-processing-timeout: "${TB_QUEUE_RULE_ENGINE_PACK_PROCESSING_TIMEOUT_MS:60000}"
 | 
						|
    stats:
 | 
						|
      enabled: "${TB_QUEUE_RULE_ENGINE_STATS_ENABLED:true}"
 | 
						|
      print-interval-ms: "${TB_QUEUE_RULE_ENGINE_STATS_PRINT_INTERVAL_MS:60000}"
 | 
						|
  transport:
 | 
						|
    # For high priority notifications that require minimum latency and processing time
 | 
						|
    notifications_topic: "${TB_QUEUE_TRANSPORT_NOTIFICATIONS_TOPIC:tb_transport.notifications}"
 | 
						|
    poll_interval: "${TB_QUEUE_TRANSPORT_NOTIFICATIONS_POLL_INTERVAL_MS:25}"
 | 
						|
 | 
						|
service:
 | 
						|
  type: "${TB_SERVICE_TYPE:tb-transport}"
 | 
						|
  # Unique id for this service (autogenerated if empty)
 | 
						|
  id: "${TB_SERVICE_ID:}"
 | 
						|
 | 
						|
metrics:
 | 
						|
  # Enable/disable actuator metrics.
 | 
						|
  enabled: "${METRICS_ENABLED:false}"
 | 
						|
 | 
						|
management:
 | 
						|
  endpoints:
 | 
						|
    web:
 | 
						|
      exposure:
 | 
						|
        # Expose metrics endpoint (use value 'prometheus' to enable prometheus metrics).
 | 
						|
        include: '${METRICS_ENDPOINTS_EXPOSE:info}'
 |