org.springframework
diff --git a/transport/lwm2m/src/main/java/org/thingsboard/server/lwm2m/ThingsboardLwm2mTransportApplication.java b/transport/lwm2m/src/main/java/org/thingsboard/server/lwm2m/ThingsboardLwm2mTransportApplication.java
index ed8ebb3f68..90a5282253 100644
--- a/transport/lwm2m/src/main/java/org/thingsboard/server/lwm2m/ThingsboardLwm2mTransportApplication.java
+++ b/transport/lwm2m/src/main/java/org/thingsboard/server/lwm2m/ThingsboardLwm2mTransportApplication.java
@@ -26,7 +26,7 @@ import java.util.Arrays;
@SpringBootConfiguration
@EnableAsync
@EnableScheduling
-@ComponentScan({"org.thingsboard.server.lwm2m", "org.thingsboard.server.common", "org.thingsboard.server.transport.lwm2m", "org.thingsboard.server.queue"})
+@ComponentScan({"org.thingsboard.server.lwm2m", "org.thingsboard.server.common", "org.thingsboard.server.transport.lwm2m", "org.thingsboard.server.queue", "org.thingsboard.server.cache"})
public class ThingsboardLwm2mTransportApplication {
private static final String SPRING_CONFIG_NAME_KEY = "--spring.config.name";
diff --git a/transport/lwm2m/src/main/resources/tb-lwm2m-transport.yml b/transport/lwm2m/src/main/resources/tb-lwm2m-transport.yml
index 3c6c9b2afa..8617868771 100644
--- a/transport/lwm2m/src/main/resources/tb-lwm2m-transport.yml
+++ b/transport/lwm2m/src/main/resources/tb-lwm2m-transport.yml
@@ -40,6 +40,83 @@ zk:
# Name of the directory in zookeeper 'filesystem'
zk_dir: "${ZOOKEEPER_NODES_DIR:/thingsboard}"
+cache:
+ # caffeine or redis
+ type: "${CACHE_TYPE:caffeine}"
+
+caffeine:
+ specs:
+ relations:
+ timeToLiveInMinutes: 1440
+ maxSize: 0
+ deviceCredentials:
+ timeToLiveInMinutes: 1440
+ maxSize: 0
+ devices:
+ timeToLiveInMinutes: 1440
+ maxSize: 0
+ sessions:
+ timeToLiveInMinutes: 1440
+ maxSize: 0
+ assets:
+ timeToLiveInMinutes: 1440
+ maxSize: 0
+ entityViews:
+ timeToLiveInMinutes: 1440
+ maxSize: 0
+ claimDevices:
+ timeToLiveInMinutes: 1
+ maxSize: 0
+ securitySettings:
+ timeToLiveInMinutes: 1440
+ maxSize: 0
+ tenantProfiles:
+ timeToLiveInMinutes: 1440
+ maxSize: 0
+ deviceProfiles:
+ timeToLiveInMinutes: 1440
+ maxSize: 0
+
+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:
# Local LwM2M transport parameters
@@ -102,8 +179,8 @@ transport:
public_y: "${LWM2M_SERVER_PUBLIC_Y_BS:3fc4e61bcd8901ec27c424114c3e887ed372497f0c2cf85839b8443e76988b34}"
private_encoded: "${LWM2M_SERVER_PRIVATE_ENCODED_BS:308193020100301306072a8648ce3d020106082a8648ce3d0301070479307702010104205ecafd90caa7be45c42e1f3f32571632b8409e6e6249d7124f4ba56fab3c8083a00a06082a8648ce3d030107a144034200045017c87a1c1768264656b3b355434b0def6edb8b9bf166a4762d9930cd730f913fc4e61bcd8901ec27c424114c3e887ed372497f0c2cf85839b8443e76988b34}" # Only Certificate_x509:
alias: "${LWM2M_KEYSTORE_ALIAS_BOOTSTRAP:bootstrap}"
- # Redis
- redis_url: "${LWM2M_REDIS_URL:''}"
+ # Use redis for Security and Registration stores
+ redis.enabled: "${LWM2M_REDIS_ENABLED:false}"
sessions:
inactivity_timeout: "${TB_TRANSPORT_SESSIONS_INACTIVITY_TIMEOUT:300000}"
diff --git a/ui-ngx/src/app/modules/home/components/device/device-credentials.component.html b/ui-ngx/src/app/modules/home/components/device/device-credentials.component.html
index 013760c2d8..55c2979fd9 100644
--- a/ui-ngx/src/app/modules/home/components/device/device-credentials.component.html
+++ b/ui-ngx/src/app/modules/home/components/device/device-credentials.component.html
@@ -88,6 +88,9 @@
{{ 'device.lwm2m-value-required' | translate }}
+
+ {{ 'device.lwm2m-value-json-error' | translate }}
+