From 924e00e26e3fa0c2a43b909b395cbfcb6d363bb1 Mon Sep 17 00:00:00 2001 From: dashevchenko Date: Wed, 10 Dec 2025 19:14:38 +0200 Subject: [PATCH 01/72] fixed EDQ for sysadmin: tenant and tenant profile entities are allowed --- .../controller/EntityQueryController.java | 2 +- .../controller/EntityQueryControllerTest.java | 64 +++++++++++++++++++ .../server/dao/entity/BaseEntityService.java | 2 +- .../query/DefaultEntityQueryRepository.java | 3 +- 4 files changed, 68 insertions(+), 3 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/controller/EntityQueryController.java b/application/src/main/java/org/thingsboard/server/controller/EntityQueryController.java index 70fa3a5ed0..fb080e854d 100644 --- a/application/src/main/java/org/thingsboard/server/controller/EntityQueryController.java +++ b/application/src/main/java/org/thingsboard/server/controller/EntityQueryController.java @@ -82,7 +82,7 @@ public class EntityQueryController extends BaseController { } @ApiOperation(value = "Find Entity Data by Query", notes = ENTITY_DATA_QUERY_DESCRIPTION) - @PreAuthorize("hasAnyAuthority('TENANT_ADMIN', 'CUSTOMER_USER')") + @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN', 'CUSTOMER_USER')") @RequestMapping(value = "/entitiesQuery/find", method = RequestMethod.POST) @ResponseBody public PageData findEntityDataByQuery( diff --git a/application/src/test/java/org/thingsboard/server/controller/EntityQueryControllerTest.java b/application/src/test/java/org/thingsboard/server/controller/EntityQueryControllerTest.java index 93d67ccd4b..8e6d90dfdc 100644 --- a/application/src/test/java/org/thingsboard/server/controller/EntityQueryControllerTest.java +++ b/application/src/test/java/org/thingsboard/server/controller/EntityQueryControllerTest.java @@ -17,6 +17,7 @@ package org.thingsboard.server.controller; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.node.ObjectNode; import org.junit.After; import org.junit.Assert; import org.junit.Before; @@ -26,6 +27,7 @@ import org.springframework.test.context.TestPropertySource; import org.springframework.test.web.servlet.ResultActions; import org.testcontainers.shaded.org.apache.commons.lang3.RandomStringUtils; import org.thingsboard.common.util.JacksonUtil; +import org.thingsboard.server.common.data.AttributeScope; import org.thingsboard.server.common.data.Customer; import org.thingsboard.server.common.data.Dashboard; import org.thingsboard.server.common.data.DataConstants; @@ -33,6 +35,7 @@ import org.thingsboard.server.common.data.Device; import org.thingsboard.server.common.data.EntityType; import org.thingsboard.server.common.data.StringUtils; import org.thingsboard.server.common.data.Tenant; +import org.thingsboard.server.common.data.TenantProfile; import org.thingsboard.server.common.data.User; import org.thingsboard.server.common.data.alarm.Alarm; import org.thingsboard.server.common.data.alarm.AlarmSeverity; @@ -62,6 +65,7 @@ import org.thingsboard.server.common.data.query.FilterPredicateValue; import org.thingsboard.server.common.data.query.KeyFilter; import org.thingsboard.server.common.data.query.NumericFilterPredicate; import org.thingsboard.server.common.data.query.RelationsQueryFilter; +import org.thingsboard.server.common.data.query.SingleEntityFilter; import org.thingsboard.server.common.data.query.StringFilterPredicate; import org.thingsboard.server.common.data.query.TsValue; import org.thingsboard.server.common.data.queue.QueueStats; @@ -69,6 +73,8 @@ import org.thingsboard.server.common.data.relation.EntityRelation; import org.thingsboard.server.common.data.relation.EntitySearchDirection; import org.thingsboard.server.common.data.relation.RelationEntityTypeFilter; import org.thingsboard.server.common.data.security.Authority; +import org.thingsboard.server.common.data.tenant.profile.DefaultTenantProfileConfiguration; +import org.thingsboard.server.common.data.tenant.profile.TenantProfileData; import org.thingsboard.server.dao.queue.QueueStatsService; import org.thingsboard.server.dao.service.DaoSqlTest; @@ -210,6 +216,64 @@ public class EntityQueryControllerTest extends AbstractControllerTest { countByQueryAndCheck(countQuery, 97); } + @Test + public void testEDQForSysAdmin() throws Exception { + loginSysAdmin(); + + ObjectNode tenantAttr = JacksonUtil.newObjectNode(); + tenantAttr.put("attr", "tenantAttrValue"); + doPost("/api/plugins/telemetry/TENANT/" + tenantId + "/attributes/" + AttributeScope.SERVER_SCOPE, tenantAttr); + + loginTenantAdmin(); + Device tenantDevice = new Device(); + tenantDevice.setName("device " + StringUtils.randomAlphanumeric(10)); + tenantDevice.setType("default"); + tenantDevice = doPost("/api/device", tenantDevice, Device.class); + + loginSysAdmin(); + TenantProfile tenantProfile = doPost("/api/tenantProfile", createTenantProfile("Test tenant profile"), TenantProfile.class); + + ObjectNode tenantProfileAttr = JacksonUtil.newObjectNode(); + tenantProfileAttr.put("attr", "tenantProfileAttrValue"); + doPost("/api/plugins/telemetry/TENANT_PROFILE/" + tenantProfile.getId() + "/attributes/" + AttributeScope.SERVER_SCOPE, tenantProfileAttr); + + // check tenant telemetry is accessible for sysadmin + SingleEntityFilter filter = new SingleEntityFilter(); + filter.setSingleEntity(AliasEntityId.fromEntityId(tenantId)); + EntityDataSortOrder sortOrder = new EntityDataSortOrder(new EntityKey(EntityKeyType.ENTITY_FIELD, "createdTime"), EntityDataSortOrder.Direction.ASC); + EntityDataPageLink pageLink = new EntityDataPageLink(10, 0, null, sortOrder); + List entityFields = List.of(new EntityKey(EntityKeyType.ENTITY_FIELD, "name")); + List latestValues = List.of(new EntityKey(EntityKeyType.ATTRIBUTE, "attr")); + EntityDataQuery dataQuery = new EntityDataQuery(filter, pageLink, entityFields, latestValues, null); + + PageData loadedTenants = findByQueryAndCheck(dataQuery, 1); + String retrievedTenantAttr = loadedTenants.getData().get(0).getLatest().get(EntityKeyType.ATTRIBUTE).get("attr").getValue(); + assertThat(retrievedTenantAttr).isEqualTo("tenantAttrValue"); + + // check tenant profile telemetry is accessible for sysadmin + filter.setSingleEntity(AliasEntityId.fromEntityId(tenantProfile.getId())); + + PageData loadedTenantProfiles = findByQueryAndCheck(dataQuery, 1); + String retrievedProfileAttr = loadedTenantProfiles.getData().get(0).getLatest().get(EntityKeyType.ATTRIBUTE).get("attr").getValue(); + assertThat(retrievedProfileAttr).isEqualTo("tenantProfileAttrValue"); + + // check other tenant entities are prohibited + filter.setSingleEntity(AliasEntityId.fromEntityId(tenantDevice.getId())); + findByQueryAndCheck(dataQuery, 0); + } + + private TenantProfile createTenantProfile(String name) { + TenantProfile tenantProfile = new TenantProfile(); + tenantProfile.setName(name); + tenantProfile.setDescription(name + " Test"); + TenantProfileData tenantProfileData = new TenantProfileData(); + tenantProfileData.setConfiguration(new DefaultTenantProfileConfiguration()); + tenantProfile.setProfileData(tenantProfileData); + tenantProfile.setDefault(false); + tenantProfile.setIsolatedTbRuleEngine(false); + return tenantProfile; + } + @Test public void testTenantCountAlarmsByQuery() throws Exception { loginTenantAdmin(); diff --git a/dao/src/main/java/org/thingsboard/server/dao/entity/BaseEntityService.java b/dao/src/main/java/org/thingsboard/server/dao/entity/BaseEntityService.java index b512f353f5..d9deb5d891 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/entity/BaseEntityService.java +++ b/dao/src/main/java/org/thingsboard/server/dao/entity/BaseEntityService.java @@ -135,7 +135,7 @@ public class BaseEntityService extends AbstractEntityService implements EntitySe long startNs = System.nanoTime(); PageData result; - if (edqsService.isApiEnabled() && validForEdqs(query)) { + if (edqsService.isApiEnabled() && validForEdqs(query) && !tenantId.isSysTenantId()) { EdqsRequest request = EdqsRequest.builder() .entityDataQuery(query) .build(); diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/query/DefaultEntityQueryRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/query/DefaultEntityQueryRepository.java index 8f3fe71f35..45515e16bd 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/query/DefaultEntityQueryRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/query/DefaultEntityQueryRepository.java @@ -540,7 +540,8 @@ public class DefaultEntityQueryRepository implements EntityQueryRepository { } private String buildPermissionQuery(SqlQueryContext ctx, EntityFilter entityFilter) { - if (ctx.isIgnorePermissionCheck()) { + if (ctx.isIgnorePermissionCheck() || (ctx.getTenantId().isSysTenantId() && + (ctx.getEntityType() == EntityType.TENANT || ctx.getEntityType() == EntityType.TENANT_PROFILE))) { return "1=1"; } switch (entityFilter.getType()) { From 831e95b313844583a3dfdf8d75d44b2f9c5d6447 Mon Sep 17 00:00:00 2001 From: Maksym Tsymbarov Date: Tue, 16 Dec 2025 16:08:05 +0200 Subject: [PATCH 02/72] Fixed button changing after dialog closing --- .../lwm2m/lwm2m-bootstrap-config-servers.component.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/ui-ngx/src/app/modules/home/components/profile/device/lwm2m/lwm2m-bootstrap-config-servers.component.ts b/ui-ngx/src/app/modules/home/components/profile/device/lwm2m/lwm2m-bootstrap-config-servers.component.ts index 86f01e4cd8..f988d7e6aa 100644 --- a/ui-ngx/src/app/modules/home/components/profile/device/lwm2m/lwm2m-bootstrap-config-servers.component.ts +++ b/ui-ngx/src/app/modules/home/components/profile/device/lwm2m/lwm2m-bootstrap-config-servers.component.ts @@ -30,7 +30,7 @@ import { TranslateService } from '@ngx-translate/core'; import { DialogService } from '@core/services/dialog.service'; import { MatDialog } from '@angular/material/dialog'; import { Lwm2mBootstrapAddConfigServerDialogComponent } from '@home/components/profile/device/lwm2m/lwm2m-bootstrap-add-config-server-dialog.component'; -import { mergeMap, takeUntil } from 'rxjs/operators'; +import { filter, mergeMap, takeUntil } from 'rxjs/operators'; import { DeviceProfileService } from '@core/http/device-profile.service'; import { Lwm2mSecurityType } from '@shared/models/lwm2m-security-config.models'; @@ -164,10 +164,8 @@ export class Lwm2mBootstrapConfigServersComponent implements OnInit, ControlValu panelClass: ['tb-dialog', 'tb-fullscreen-dialog'] }).afterClosed(); const addServerConfigObs = addDialogObs.pipe( + filter((isBootstrap) => isBootstrap !== null), mergeMap((isBootstrap) => { - if (isBootstrap === null) { - return of(null); - } return this.deviceProfileService.getLwm2mBootstrapSecurityInfoBySecurityType(isBootstrap, Lwm2mSecurityType.NO_SEC); }) ); From 289c5674db59e6e666a90ad4f5aaebc5d1353fcf Mon Sep 17 00:00:00 2001 From: Andrii Landiak Date: Wed, 17 Dec 2025 17:36:57 +0200 Subject: [PATCH 03/72] Fetch and drop partitioning tables --- .../server/service/ttl/EdgeEventsCleanUpService.java | 1 - .../server/dao/sql/asset/AssetRepository.java | 3 --- .../server/dao/sql/edge/JpaBaseEdgeEventDao.java | 3 --- .../dao/sql/entityview/EntityViewRepository.java | 3 --- .../server/dao/sql/entityview/JpaEntityViewDao.java | 3 --- .../server/dao/sql/relation/JpaRelationDao.java | 11 +++-------- .../server/dao/sql/tenant/TenantRepository.java | 3 --- .../dao/sql/usagerecord/ApiUsageStateRepository.java | 3 --- .../dao/sql/usagerecord/JpaApiUsageStateDao.java | 3 --- .../server/dao/sql/widget/JpaWidgetTypeDao.java | 3 --- .../server/dao/sql/widget/JpaWidgetsBundleDao.java | 3 --- .../dao/sql/widget/WidgetsBundleRepository.java | 4 ---- .../sqlts/insert/sql/SqlPartitioningRepository.java | 5 +++-- dao/src/main/resources/sql/schema-ts-psql.sql | 8 ++++---- 14 files changed, 10 insertions(+), 46 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/service/ttl/EdgeEventsCleanUpService.java b/application/src/main/java/org/thingsboard/server/service/ttl/EdgeEventsCleanUpService.java index 8b38ca32bb..dfa8f36a3e 100644 --- a/application/src/main/java/org/thingsboard/server/service/ttl/EdgeEventsCleanUpService.java +++ b/application/src/main/java/org/thingsboard/server/service/ttl/EdgeEventsCleanUpService.java @@ -20,7 +20,6 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Service; -import org.thingsboard.server.dao.edge.EdgeEventDao; import org.thingsboard.server.dao.edge.EdgeEventService; import org.thingsboard.server.dao.sqlts.insert.sql.SqlPartitioningRepository; import org.thingsboard.server.queue.discovery.PartitionService; diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/asset/AssetRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/asset/AssetRepository.java index e475864684..be36ce7dd1 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/asset/AssetRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/asset/AssetRepository.java @@ -30,9 +30,6 @@ import org.thingsboard.server.dao.model.sql.AssetInfoEntity; import java.util.List; import java.util.UUID; -/** - * Created by Valerii Sosliuk on 5/21/2017. - */ public interface AssetRepository extends JpaRepository, ExportableEntityRepository { @Query("SELECT new org.thingsboard.server.dao.model.sql.AssetInfoEntity(a, c.title, c.additionalInfo, p.name) " + diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/edge/JpaBaseEdgeEventDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/edge/JpaBaseEdgeEventDao.java index ea2abbba8a..e30946f744 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/edge/JpaBaseEdgeEventDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/edge/JpaBaseEdgeEventDao.java @@ -86,9 +86,6 @@ public class JpaBaseEdgeEventDao extends JpaPartitionedAbstractDao queue; diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/entityview/EntityViewRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/entityview/EntityViewRepository.java index 6094e9b171..b460699b22 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/entityview/EntityViewRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/entityview/EntityViewRepository.java @@ -29,9 +29,6 @@ import org.thingsboard.server.dao.model.sql.EntityViewInfoEntity; import java.util.List; import java.util.UUID; -/** - * Created by Victor Basanets on 8/31/2017. - */ public interface EntityViewRepository extends JpaRepository, ExportableEntityRepository { @Query("SELECT new org.thingsboard.server.dao.model.sql.EntityViewInfoEntity(e, c.title, c.additionalInfo) " + diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/entityview/JpaEntityViewDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/entityview/JpaEntityViewDao.java index 44d8a09ff4..dd9f302588 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/entityview/JpaEntityViewDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/entityview/JpaEntityViewDao.java @@ -44,9 +44,6 @@ import java.util.UUID; import static org.thingsboard.server.dao.DaoUtil.convertTenantEntityTypesToDto; -/** - * Created by Victor Basanets on 8/31/2017. - */ @Component @Slf4j @SqlDao diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/relation/JpaRelationDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/relation/JpaRelationDao.java index 7417418f54..3d9115dda0 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/relation/JpaRelationDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/relation/JpaRelationDao.java @@ -49,9 +49,6 @@ import static org.thingsboard.server.dao.model.ModelConstants.RELATION_TYPE_GROU import static org.thingsboard.server.dao.model.ModelConstants.RELATION_TYPE_PROPERTY; import static org.thingsboard.server.dao.model.ModelConstants.VERSION_COLUMN; -/** - * Created by Valerii Sosliuk on 5/29/2017. - */ @Slf4j @Component @SqlDao @@ -256,9 +253,7 @@ public class JpaRelationDao extends JpaAbstractDaoListeningExecutorService imple if (!CollectionUtils.isEmpty(relationTypeGroups)) { sqlBuilder.append("AND relation_type_group IN (?"); - for (int i = 1; i < relationTypeGroups.size(); i++) { - sqlBuilder.append(", ?"); - } + sqlBuilder.append(", ?".repeat(Math.max(0, relationTypeGroups.size() - 1))); sqlBuilder.append(")"); params.addAll(relationTypeGroups); } @@ -285,12 +280,12 @@ public class JpaRelationDao extends JpaAbstractDaoListeningExecutorService imple relation.setTypeGroup(RelationTypeGroup.valueOf((String) relationTypeGroup)); relation.setVersion((Long) version); return relation; - }) - .collect(Collectors.toList()); + }).toList(); } @Override public List findRuleNodeToRuleChainRelations(RuleChainType ruleChainType, int limit) { return DaoUtil.convertDataList(relationRepository.findRuleNodeToRuleChainRelations(ruleChainType, PageRequest.of(0, limit))); } + } diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/tenant/TenantRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/tenant/TenantRepository.java index 08859d5f63..f424afaf39 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/tenant/TenantRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/tenant/TenantRepository.java @@ -28,9 +28,6 @@ import org.thingsboard.server.dao.model.sql.TenantInfoEntity; import java.util.List; import java.util.UUID; -/** - * Created by Valerii Sosliuk on 4/30/2017. - */ public interface TenantRepository extends JpaRepository { @Query("SELECT new org.thingsboard.server.dao.model.sql.TenantInfoEntity(t, p.name) " + diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/usagerecord/ApiUsageStateRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/usagerecord/ApiUsageStateRepository.java index 98e62fc110..b3afa997c9 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/usagerecord/ApiUsageStateRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/usagerecord/ApiUsageStateRepository.java @@ -29,9 +29,6 @@ import org.thingsboard.server.dao.model.sql.ApiUsageStateEntity; import java.util.List; import java.util.UUID; -/** - * @author Valerii Sosliuk - */ public interface ApiUsageStateRepository extends JpaRepository { @Query("SELECT ur FROM ApiUsageStateEntity ur WHERE ur.tenantId = :tenantId " + diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/usagerecord/JpaApiUsageStateDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/usagerecord/JpaApiUsageStateDao.java index ec68fa34c3..83f9c0693c 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/usagerecord/JpaApiUsageStateDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/usagerecord/JpaApiUsageStateDao.java @@ -34,9 +34,6 @@ import org.thingsboard.server.dao.util.SqlDao; import java.util.List; import java.util.UUID; -/** - * @author Andrii Shvaika - */ @Component @SqlDao public class JpaApiUsageStateDao extends JpaAbstractDao implements ApiUsageStateDao { diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetTypeDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetTypeDao.java index 18fb544dcb..900e508736 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetTypeDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetTypeDao.java @@ -53,9 +53,6 @@ import java.util.stream.Collectors; import static org.thingsboard.server.dao.model.ModelConstants.NULL_UUID; -/** - * Created by Valerii Sosliuk on 4/29/2017. - */ @Component @SqlDao public class JpaWidgetTypeDao extends JpaAbstractDao implements WidgetTypeDao, TenantEntityDao { diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetsBundleDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetsBundleDao.java index bc81be054a..d3f5e9c208 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetsBundleDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetsBundleDao.java @@ -42,9 +42,6 @@ import java.util.UUID; import static org.thingsboard.server.dao.model.ModelConstants.NULL_UUID; -/** - * Created by Valerii Sosliuk on 4/23/2017. - */ @Component @SqlDao public class JpaWidgetsBundleDao extends JpaAbstractDao implements WidgetsBundleDao, TenantEntityDao { diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetsBundleRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetsBundleRepository.java index de778588dd..3033154484 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetsBundleRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetsBundleRepository.java @@ -21,7 +21,6 @@ import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; -import org.thingsboard.server.common.data.edqs.fields.WidgetTypeFields; import org.thingsboard.server.common.data.edqs.fields.WidgetsBundleFields; import org.thingsboard.server.dao.ExportableEntityRepository; import org.thingsboard.server.dao.model.sql.WidgetsBundleEntity; @@ -29,9 +28,6 @@ import org.thingsboard.server.dao.model.sql.WidgetsBundleEntity; import java.util.List; import java.util.UUID; -/** - * Created by Valerii Sosliuk on 4/23/2017. - */ public interface WidgetsBundleRepository extends JpaRepository, ExportableEntityRepository { WidgetsBundleEntity findWidgetsBundleByTenantIdAndAlias(UUID tenantId, String alias); diff --git a/dao/src/main/java/org/thingsboard/server/dao/sqlts/insert/sql/SqlPartitioningRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sqlts/insert/sql/SqlPartitioningRepository.java index f9b0be2395..55ecb9269d 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sqlts/insert/sql/SqlPartitioningRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sqlts/insert/sql/SqlPartitioningRepository.java @@ -41,7 +41,7 @@ public class SqlPartitioningRepository { @Autowired private JdbcTemplate jdbcTemplate; - private static final String SELECT_PARTITIONS_STMT = "SELECT tablename from pg_tables WHERE schemaname = 'public' and tablename like concat(?, '_%')"; + private static final String SELECT_PARTITIONS_STMT = "SELECT tablename from pg_tables WHERE schemaname = current_schema() and tablename like concat(?, '_%')"; private static final int PSQL_VERSION_14 = 140000; private volatile Integer currentServerVersion; @@ -54,7 +54,8 @@ public class SqlPartitioningRepository { getJdbcTemplate().execute(partition.getQuery()); } - @Transactional(propagation = Propagation.NOT_SUPPORTED) // executing non-transactionally, so that parent transaction is not aborted on partition save error + @Transactional(propagation = Propagation.NOT_SUPPORTED) + // executing non-transactionally, so that parent transaction is not aborted on partition save error public void createPartitionIfNotExists(String table, long entityTs, long partitionDurationMs) { long partitionStartTs = calculatePartitionStartTime(entityTs, partitionDurationMs); Map partitions = tablesPartitions.computeIfAbsent(table, t -> new ConcurrentHashMap<>()); diff --git a/dao/src/main/resources/sql/schema-ts-psql.sql b/dao/src/main/resources/sql/schema-ts-psql.sql index 1c88ca5604..08dfa315c9 100644 --- a/dao/src/main/resources/sql/schema-ts-psql.sql +++ b/dao/src/main/resources/sql/schema-ts-psql.sql @@ -72,7 +72,7 @@ BEGIN IF partition_type = 'YEARS' THEN FOR partition IN SELECT tablename FROM pg_tables - WHERE schemaname = 'public' + WHERE schemaname = current_schema() AND tablename like 'ts_kv_' || '%' AND tablename != 'ts_kv_latest' AND tablename != 'key_dictionary' @@ -93,7 +93,7 @@ BEGIN ELSE FOR partition IN SELECT tablename FROM pg_tables - WHERE schemaname = 'public' + WHERE schemaname = current_schema() AND tablename like 'ts_kv_' || '%' AND tablename != 'ts_kv_latest' AND tablename != 'key_dictionary' @@ -135,7 +135,7 @@ BEGIN ELSE FOR partition IN SELECT tablename FROM pg_tables - WHERE schemaname = 'public' + WHERE schemaname = current_schema() AND tablename like 'ts_kv_' || '%' AND tablename != 'ts_kv_latest' AND tablename != 'key_dictionary' @@ -205,7 +205,7 @@ BEGIN IF partition IS NOT NULL THEN IF NOT EXISTS(SELECT FROM pg_tables - WHERE schemaname = 'public' + WHERE schemaname = current_schema() AND tablename = partition) THEN partition := NULL; RAISE NOTICE 'Failed to found partition by ttl'; From 9684a1e8ad16300de6cbcf40348179cb57f139a1 Mon Sep 17 00:00:00 2001 From: Andrii Landiak Date: Wed, 17 Dec 2025 17:42:32 +0200 Subject: [PATCH 04/72] Revert --- .../server/dao/sqlts/insert/sql/SqlPartitioningRepository.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/dao/src/main/java/org/thingsboard/server/dao/sqlts/insert/sql/SqlPartitioningRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sqlts/insert/sql/SqlPartitioningRepository.java index 55ecb9269d..0a7cf237c8 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sqlts/insert/sql/SqlPartitioningRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sqlts/insert/sql/SqlPartitioningRepository.java @@ -54,8 +54,7 @@ public class SqlPartitioningRepository { getJdbcTemplate().execute(partition.getQuery()); } - @Transactional(propagation = Propagation.NOT_SUPPORTED) - // executing non-transactionally, so that parent transaction is not aborted on partition save error + @Transactional(propagation = Propagation.NOT_SUPPORTED)// executing non-transactionally, so that parent transaction is not aborted on partition save error public void createPartitionIfNotExists(String table, long entityTs, long partitionDurationMs) { long partitionStartTs = calculatePartitionStartTime(entityTs, partitionDurationMs); Map partitions = tablesPartitions.computeIfAbsent(table, t -> new ConcurrentHashMap<>()); From 1baaed8279c5dcd29ceed94fe3ad262cadbfc741 Mon Sep 17 00:00:00 2001 From: Andrii Landiak Date: Wed, 17 Dec 2025 17:51:09 +0200 Subject: [PATCH 05/72] Improve EventsDeletionTaskProcessor to delete only non-debug types --- .../EventsDeletionTaskProcessor.java | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/application/src/main/java/org/thingsboard/server/service/housekeeper/processor/EventsDeletionTaskProcessor.java b/application/src/main/java/org/thingsboard/server/service/housekeeper/processor/EventsDeletionTaskProcessor.java index cd3953130f..8a0a1c882f 100644 --- a/application/src/main/java/org/thingsboard/server/service/housekeeper/processor/EventsDeletionTaskProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/housekeeper/processor/EventsDeletionTaskProcessor.java @@ -17,6 +17,11 @@ package org.thingsboard.server.service.housekeeper.processor; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Component; +import org.thingsboard.server.common.data.event.ErrorEventFilter; +import org.thingsboard.server.common.data.event.EventFilter; +import org.thingsboard.server.common.data.event.EventType; +import org.thingsboard.server.common.data.event.LifeCycleEventFilter; +import org.thingsboard.server.common.data.event.StatisticsEventFilter; import org.thingsboard.server.common.data.housekeeper.HousekeeperTask; import org.thingsboard.server.common.data.housekeeper.HousekeeperTaskType; import org.thingsboard.server.dao.event.EventService; @@ -29,7 +34,22 @@ public class EventsDeletionTaskProcessor extends HousekeeperTaskProcessor new ErrorEventFilter(); + case LC_EVENT -> new LifeCycleEventFilter(); + case STATS -> new StatisticsEventFilter(); + default -> throw new IllegalArgumentException("Unexpected non-debug event type: " + eventType); + }; } @Override From ecedfab6425e5a2afe522699ed570eb1d5154a69 Mon Sep 17 00:00:00 2001 From: nickAS21 Date: Thu, 18 Dec 2025 22:20:18 +0200 Subject: [PATCH 06/72] lwm2m: fix bug: after reboot Lwm2mDeviceProfileTransportConfiguration is null for lts --- .../server/client/LwM2mClientContextImpl.java | 21 ++++-- .../ota/DefaultLwM2MOtaUpdateService.java | 14 ++-- .../uplink/DefaultLwM2mUplinkMsgHandler.java | 69 ++++++------------- 3 files changed, 43 insertions(+), 61 deletions(-) diff --git a/common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/client/LwM2mClientContextImpl.java b/common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/client/LwM2mClientContextImpl.java index 36cf1639db..7b3102a55c 100644 --- a/common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/client/LwM2mClientContextImpl.java +++ b/common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/client/LwM2mClientContextImpl.java @@ -289,6 +289,7 @@ public class LwM2mClientContextImpl implements LwM2mClientContext { @Override public String getObjectIdByKeyNameFromProfile(LwM2mClient client, String keyName) { Lwm2mDeviceProfileTransportConfiguration profile = getProfile(client.getRegistration()); + if (profile == null) throw new IllegalArgumentException(keyName + " is not configured in the device profile! Device profile is null"); for (Map.Entry entry : profile.getObserveAttr().getKeyName().entrySet()) { String k = entry.getKey(); String v = entry.getValue(); @@ -347,6 +348,7 @@ public class LwM2mClientContextImpl implements LwM2mClientContext { PowerMode powerMode = lwM2MClient.getPowerMode(); if (powerMode == null) { Lwm2mDeviceProfileTransportConfiguration deviceProfile = getProfile(lwM2MClient.getRegistration()); + if (deviceProfile == null) return null; powerMode = deviceProfile.getClientLwM2mSettings().getPowerMode(); } return powerMode; @@ -377,8 +379,8 @@ public class LwM2mClientContextImpl implements LwM2mClientContext { } } } else { - log.warn("Device profile not found! The device profile ID is null. Return Lwm2mDeviceProfileTransportConfiguration with default."); - result = new Lwm2mDeviceProfileTransportConfiguration(); + log.warn("Device profile not found! The device profile ID is null. Return Lwm2mDeviceProfileTransportConfiguration with null."); + result = null; } return result; } @@ -413,6 +415,7 @@ public class LwM2mClientContextImpl implements LwM2mClientContext { OtherConfiguration profileSettings = null; if (powerMode == null && client.getProfileId() != null) { var clientProfile = getProfile(client.getRegistration()); + if (clientProfile == null) return true; profileSettings = clientProfile.getClientLwM2mSettings(); powerMode = profileSettings.getPowerMode(); } @@ -459,8 +462,10 @@ public class LwM2mClientContextImpl implements LwM2mClientContext { OtherConfiguration profileSettings = null; if (powerMode == null && client.getProfileId() != null) { var clientProfile = getProfile(client.getRegistration()); - profileSettings = clientProfile.getClientLwM2mSettings(); - powerMode = profileSettings.getPowerMode(); + if (clientProfile != null) { + profileSettings = clientProfile.getClientLwM2mSettings(); + powerMode = profileSettings.getPowerMode(); + } } if (powerMode == null || PowerMode.DRX.equals(powerMode)) { client.updateLastUplinkTime(); @@ -515,9 +520,11 @@ public class LwM2mClientContextImpl implements LwM2mClientContext { timeout = client.getEdrxCycle(); } else { var clientProfile = getProfile(client.getRegistration()); - OtherConfiguration clientLwM2mSettings = clientProfile.getClientLwM2mSettings(); - if (PowerMode.E_DRX.equals(clientLwM2mSettings.getPowerMode())) { - timeout = clientLwM2mSettings.getEdrxCycle(); + if (clientProfile != null) { + OtherConfiguration clientLwM2mSettings = clientProfile.getClientLwM2mSettings(); + if (PowerMode.E_DRX.equals(clientLwM2mSettings.getPowerMode())) { + timeout = clientLwM2mSettings.getEdrxCycle(); + } } } if (timeout == null || timeout == 0L) { diff --git a/common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/ota/DefaultLwM2MOtaUpdateService.java b/common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/ota/DefaultLwM2MOtaUpdateService.java index 325f1e2280..cc89fb8fd8 100644 --- a/common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/ota/DefaultLwM2MOtaUpdateService.java +++ b/common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/ota/DefaultLwM2MOtaUpdateService.java @@ -200,7 +200,8 @@ public class DefaultLwM2MOtaUpdateService extends LwM2MExecutorAwareService impl attributesToFetch.add(SOFTWARE_URL); } - var clientSettings = clientContext.getProfile(client.getRegistration()).getClientLwM2mSettings(); + var clientProfile = clientContext.getProfile(client.getRegistration()); + var clientSettings = clientProfile != null ? clientProfile.getClientLwM2mSettings() : null; if (clientSettings != null) { initFwStrategy(client, clientSettings); initSwStrategy(client, clientSettings); @@ -532,7 +533,8 @@ public class DefaultLwM2MOtaUpdateService extends LwM2MExecutorAwareService impl } else { strategy = info.getDeliveryMethod() == FirmwareDeliveryMethod.PULL.code ? LwM2MFirmwareUpdateStrategy.OBJ_5_TEMP_URL : LwM2MFirmwareUpdateStrategy.OBJ_5_BINARY; } - Boolean useObject19ForOtaInfo = clientContext.getProfile(client.getRegistration()).getClientLwM2mSettings().getUseObject19ForOtaInfo(); + var clientProfile = clientContext.getProfile(client.getRegistration()); + Boolean useObject19ForOtaInfo = clientProfile != null ? clientProfile.getClientLwM2mSettings().getUseObject19ForOtaInfo() : null; if (useObject19ForOtaInfo != null && useObject19ForOtaInfo){ sendInfoToObject19ForOta(client, FW_INFO_19_INSTANCE_ID, response, otaPackageId); } @@ -558,7 +560,8 @@ public class DefaultLwM2MOtaUpdateService extends LwM2MExecutorAwareService impl if (TransportProtos.ResponseStatus.SUCCESS.equals(response.getResponseStatus())) { UUID otaPackageId = new UUID(response.getOtaPackageIdMSB(), response.getOtaPackageIdLSB()); LwM2MSoftwareUpdateStrategy strategy = info.getStrategy(); - Boolean useObject19ForOtaInfo = clientContext.getProfile(client.getRegistration()).getClientLwM2mSettings().getUseObject19ForOtaInfo(); + var clientProfile = clientContext.getProfile(client.getRegistration()); + Boolean useObject19ForOtaInfo = clientProfile != null ? clientProfile.getClientLwM2mSettings().getUseObject19ForOtaInfo() : null; if (useObject19ForOtaInfo != null && useObject19ForOtaInfo){ sendInfoToObject19ForOta(client, SW_INFO_19_INSTANCE_ID, response, otaPackageId); } @@ -647,8 +650,9 @@ public class DefaultLwM2MOtaUpdateService extends LwM2MExecutorAwareService impl LwM2MClientSwOtaInfo info = otaInfoStore.getSw(endpoint); if (info == null) { var profile = clientContext.getProfile(client.getRegistration()); - info = new LwM2MClientSwOtaInfo(endpoint, profile.getClientLwM2mSettings().getSwUpdateResource(), - LwM2MSoftwareUpdateStrategy.fromStrategySwByCode(profile.getClientLwM2mSettings().getSwUpdateStrategy())); + OtherConfiguration clientLwM2mSettings = profile == null ? new OtherConfiguration() : profile.getClientLwM2mSettings(); + info = new LwM2MClientSwOtaInfo(endpoint, clientLwM2mSettings.getSwUpdateResource(), + LwM2MSoftwareUpdateStrategy.fromStrategySwByCode(clientLwM2mSettings.getSwUpdateStrategy())); update(info); } return info; diff --git a/common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/uplink/DefaultLwM2mUplinkMsgHandler.java b/common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/uplink/DefaultLwM2mUplinkMsgHandler.java index 5e27b936f3..26eb6e83c4 100644 --- a/common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/uplink/DefaultLwM2mUplinkMsgHandler.java +++ b/common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/uplink/DefaultLwM2mUplinkMsgHandler.java @@ -418,7 +418,7 @@ public class DefaultLwM2mUplinkMsgHandler extends LwM2MExecutorAwareService impl }); if (!clients.isEmpty()) { var oldProfile = clientContext.getProfile(clients.get(0).getRegistration()); - this.onDeviceProfileUpdate(clients, oldProfile, deviceProfile); + if (oldProfile != null) this.onDeviceProfileUpdate(clients, oldProfile, deviceProfile); } } catch (Exception e) { log.warn("[{}] failed to update profile: {} [{}]", deviceProfile.getId(), e.getMessage(), deviceProfile); @@ -714,8 +714,10 @@ public class DefaultLwM2mUplinkMsgHandler extends LwM2MExecutorAwareService impl private void onDeviceUpdate(LwM2mClient lwM2MClient, Device device, Optional deviceProfileOpt) { var oldProfile = clientContext.getProfile(lwM2MClient.getRegistration()); - deviceProfileOpt.ifPresent(deviceProfile -> this.onDeviceProfileUpdate(Collections.singletonList(lwM2MClient), oldProfile, deviceProfile)); - lwM2MClient.onDeviceUpdate(device, deviceProfileOpt); + if (oldProfile != null) { + deviceProfileOpt.ifPresent(deviceProfile -> this.onDeviceProfileUpdate(Collections.singletonList(lwM2MClient), oldProfile, deviceProfile)); + lwM2MClient.onDeviceUpdate(device, deviceProfileOpt); + } } /** @@ -729,45 +731,12 @@ public class DefaultLwM2mUplinkMsgHandler extends LwM2MExecutorAwareService impl Set paths = updateResource.getPaths(); ResultsAddKeyValueProto results = new ResultsAddKeyValueProto(); var profile = clientContext.getProfile(registration); - List resultAttributes = new ArrayList<>(); - Set attributes = profile.getObserveAttr().getAttribute().stream() - .filter(paths::contains) - .collect(Collectors.toSet()); - if (!attributes.isEmpty()){ - attributes.stream() - .map(attr -> this.getKvToThingsBoard(attr, registration)) - .filter(Objects::nonNull) - .forEach(resultAttributes::add); - } - List resultTelemetries = new ArrayList<>(); - Set telemetries = profile.getObserveAttr().getTelemetry().stream() - .filter(paths::contains) - .collect(Collectors.toSet()); - if (!telemetries.isEmpty()){ - telemetries.stream() - .map(telemetry -> this.getKvToThingsBoard(telemetry, registration)) - .filter(Objects::nonNull) - .forEach(resultTelemetries::add); - } - if (resultAttributes.size() > 0) { - results.setResultAttributes(resultAttributes); - } - if (resultTelemetries.size() > 0) { - results.setResultTelemetries(resultTelemetries); - } - return results; - } - - private ResultsAddKeyValueProto getParametersFromProfile(Registration registration, Set path) { - if (!path.isEmpty()) { - ResultsAddKeyValueProto results = new ResultsAddKeyValueProto(); - var profile = clientContext.getProfile(registration); + if (profile != null) { List resultAttributes = new ArrayList<>(); Set attributes = profile.getObserveAttr().getAttribute().stream() - .map(LwM2MTransportUtil::fromVersionedIdToObjectId) - .filter(path::contains) + .filter(paths::contains) .collect(Collectors.toSet()); - if (!attributes.isEmpty()){ + if (!attributes.isEmpty()) { attributes.stream() .map(attr -> this.getKvToThingsBoard(attr, registration)) .filter(Objects::nonNull) @@ -775,10 +744,9 @@ public class DefaultLwM2mUplinkMsgHandler extends LwM2MExecutorAwareService impl } List resultTelemetries = new ArrayList<>(); Set telemetries = profile.getObserveAttr().getTelemetry().stream() - .map(LwM2MTransportUtil::fromVersionedIdToObjectId) - .filter(path::contains) + .filter(paths::contains) .collect(Collectors.toSet()); - if (!telemetries.isEmpty()){ + if (!telemetries.isEmpty()) { telemetries.stream() .map(telemetry -> this.getKvToThingsBoard(telemetry, registration)) .filter(Objects::nonNull) @@ -790,14 +758,15 @@ public class DefaultLwM2mUplinkMsgHandler extends LwM2MExecutorAwareService impl if (resultTelemetries.size() > 0) { results.setResultTelemetries(resultTelemetries); } - return results; } - return null; + return results; } private TransportProtos.KeyValueProto getKvToThingsBoard(String pathIdVer, Registration registration) { LwM2mClient lwM2MClient = this.clientContext.getClientByEndpoint(registration.getEndpoint()); - Map names = clientContext.getProfile(lwM2MClient.getRegistration()).getObserveAttr().getKeyName(); + var clientProfile = clientContext.getProfile(lwM2MClient.getRegistration()); + if (clientProfile == null) return null; + Map names = clientProfile.getObserveAttr().getKeyName(); if (names != null && names.containsKey(pathIdVer)) { String resourceName = names.get(pathIdVer); if (resourceName != null && !resourceName.isEmpty()) { @@ -887,10 +856,12 @@ public class DefaultLwM2mUplinkMsgHandler extends LwM2MExecutorAwareService impl private void onDeviceProfileUpdate(List clients, Lwm2mDeviceProfileTransportConfiguration oldProfileTransportConfiguration, DeviceProfile deviceProfile) { if (clientContext.profileUpdate(deviceProfile) != null) { var newProfileTransportConfiguration = clientContext.getProfile(clients.get(0).getRegistration()); - ParametersUpdateAnalyzeResult parametersUpdate = getParametersUpdate(oldProfileTransportConfiguration, newProfileTransportConfiguration); - ParametersObserveAnalyzeResult parametersObserve = getParametersObserve(oldProfileTransportConfiguration.getObserveAttr(), newProfileTransportConfiguration.getObserveAttr(), deviceProfile.getId().getId()); - compareAndSetWriteAttributesObservations(clients, parametersUpdate, parametersObserve); - updateValueOta(clients, newProfileTransportConfiguration, oldProfileTransportConfiguration); + if (newProfileTransportConfiguration != null) { + ParametersUpdateAnalyzeResult parametersUpdate = getParametersUpdate(oldProfileTransportConfiguration, newProfileTransportConfiguration); + ParametersObserveAnalyzeResult parametersObserve = getParametersObserve(oldProfileTransportConfiguration.getObserveAttr(), newProfileTransportConfiguration.getObserveAttr(), deviceProfile.getId().getId()); + compareAndSetWriteAttributesObservations(clients, parametersUpdate, parametersObserve); + updateValueOta(clients, newProfileTransportConfiguration, oldProfileTransportConfiguration); + } } } From f2dadd07914d6c327756160f0c665fce8597a786 Mon Sep 17 00:00:00 2001 From: Viacheslav Klimov Date: Thu, 25 Dec 2025 11:52:53 +0200 Subject: [PATCH 07/72] Version set to 4.2.1.2-SNAPSHOT --- application/pom.xml | 2 +- .../service/install/DefaultDatabaseSchemaSettingsService.java | 2 +- common/actor/pom.xml | 2 +- common/cache/pom.xml | 2 +- common/cluster-api/pom.xml | 2 +- common/coap-server/pom.xml | 2 +- common/dao-api/pom.xml | 2 +- common/data/pom.xml | 2 +- common/discovery-api/pom.xml | 2 +- common/edge-api/pom.xml | 2 +- common/edqs/pom.xml | 2 +- common/message/pom.xml | 2 +- common/pom.xml | 2 +- common/proto/pom.xml | 2 +- common/queue/pom.xml | 2 +- common/script/pom.xml | 2 +- common/script/remote-js-client/pom.xml | 2 +- common/script/script-api/pom.xml | 2 +- common/stats/pom.xml | 2 +- common/transport/coap/pom.xml | 2 +- common/transport/http/pom.xml | 2 +- common/transport/lwm2m/pom.xml | 2 +- common/transport/mqtt/pom.xml | 2 +- common/transport/pom.xml | 2 +- common/transport/snmp/pom.xml | 2 +- common/transport/transport-api/pom.xml | 2 +- common/util/pom.xml | 2 +- common/version-control/pom.xml | 2 +- dao/pom.xml | 2 +- edqs/pom.xml | 2 +- monitoring/pom.xml | 2 +- msa/black-box-tests/pom.xml | 2 +- msa/edqs/pom.xml | 2 +- msa/js-executor/package.json | 2 +- msa/js-executor/pom.xml | 2 +- msa/monitoring/pom.xml | 2 +- msa/pom.xml | 2 +- msa/tb-node/pom.xml | 2 +- msa/tb/pom.xml | 2 +- msa/transport/coap/pom.xml | 2 +- msa/transport/http/pom.xml | 2 +- msa/transport/lwm2m/pom.xml | 2 +- msa/transport/mqtt/pom.xml | 2 +- msa/transport/pom.xml | 2 +- msa/transport/snmp/pom.xml | 2 +- msa/vc-executor-docker/pom.xml | 2 +- msa/vc-executor/pom.xml | 2 +- msa/web-ui/package.json | 2 +- msa/web-ui/pom.xml | 2 +- netty-mqtt/pom.xml | 4 ++-- pom.xml | 2 +- rest-client/pom.xml | 2 +- rule-engine/pom.xml | 2 +- rule-engine/rule-engine-api/pom.xml | 2 +- rule-engine/rule-engine-components/pom.xml | 2 +- tools/pom.xml | 2 +- transport/coap/pom.xml | 2 +- transport/http/pom.xml | 2 +- transport/lwm2m/pom.xml | 2 +- transport/mqtt/pom.xml | 2 +- transport/pom.xml | 2 +- transport/snmp/pom.xml | 2 +- ui-ngx/package.json | 2 +- ui-ngx/pom.xml | 2 +- 64 files changed, 65 insertions(+), 65 deletions(-) diff --git a/application/pom.xml b/application/pom.xml index 47772dfa97..9f3b79b3f5 100644 --- a/application/pom.xml +++ b/application/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT thingsboard application diff --git a/application/src/main/java/org/thingsboard/server/service/install/DefaultDatabaseSchemaSettingsService.java b/application/src/main/java/org/thingsboard/server/service/install/DefaultDatabaseSchemaSettingsService.java index 44aa14b782..500ad60df0 100644 --- a/application/src/main/java/org/thingsboard/server/service/install/DefaultDatabaseSchemaSettingsService.java +++ b/application/src/main/java/org/thingsboard/server/service/install/DefaultDatabaseSchemaSettingsService.java @@ -30,7 +30,7 @@ public class DefaultDatabaseSchemaSettingsService implements DatabaseSchemaSetti // This list should include all versions that are compatible for the upgrade in 4 digits format (like 4.2.0.0, etc.). // The compatibility cycle usually breaks when we have some scripts written in Java that may not work after a new release. - private static final List SUPPORTED_VERSIONS_FOR_UPGRADE = List.of("4.2.0.0", "4.2.1.0"); + private static final List SUPPORTED_VERSIONS_FOR_UPGRADE = List.of("4.2.1.0"); private final ProjectInfo projectInfo; private final JdbcTemplate jdbcTemplate; diff --git a/common/actor/pom.xml b/common/actor/pom.xml index 6411934f7d..68d05cecba 100644 --- a/common/actor/pom.xml +++ b/common/actor/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT common org.thingsboard.common diff --git a/common/cache/pom.xml b/common/cache/pom.xml index a43009b6e1..3d42e467ba 100644 --- a/common/cache/pom.xml +++ b/common/cache/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT common org.thingsboard.common diff --git a/common/cluster-api/pom.xml b/common/cluster-api/pom.xml index 9a75a6b0c3..f9b0b60e50 100644 --- a/common/cluster-api/pom.xml +++ b/common/cluster-api/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT common org.thingsboard.common diff --git a/common/coap-server/pom.xml b/common/coap-server/pom.xml index 1950a9ecc2..fd53b3dfc7 100644 --- a/common/coap-server/pom.xml +++ b/common/coap-server/pom.xml @@ -22,7 +22,7 @@ 4.0.0 org.thingsboard - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT common org.thingsboard.common diff --git a/common/dao-api/pom.xml b/common/dao-api/pom.xml index 8b0ad31e23..fe6f59503b 100644 --- a/common/dao-api/pom.xml +++ b/common/dao-api/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT common org.thingsboard.common diff --git a/common/data/pom.xml b/common/data/pom.xml index a574a6ed07..e8bd87aa19 100644 --- a/common/data/pom.xml +++ b/common/data/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT common org.thingsboard.common diff --git a/common/discovery-api/pom.xml b/common/discovery-api/pom.xml index 9e65abf10a..2c62c714f1 100644 --- a/common/discovery-api/pom.xml +++ b/common/discovery-api/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT common org.thingsboard.common diff --git a/common/edge-api/pom.xml b/common/edge-api/pom.xml index 208e1e7b55..704dc7759b 100644 --- a/common/edge-api/pom.xml +++ b/common/edge-api/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT common org.thingsboard.common diff --git a/common/edqs/pom.xml b/common/edqs/pom.xml index 677f5ad5ae..bd2b96da15 100644 --- a/common/edqs/pom.xml +++ b/common/edqs/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT common org.thingsboard.common diff --git a/common/message/pom.xml b/common/message/pom.xml index f70bc260cf..a3a4d2e38e 100644 --- a/common/message/pom.xml +++ b/common/message/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT common org.thingsboard.common diff --git a/common/pom.xml b/common/pom.xml index 5467f452d2..76aa577782 100644 --- a/common/pom.xml +++ b/common/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT thingsboard common diff --git a/common/proto/pom.xml b/common/proto/pom.xml index bab2f8d12b..875904824b 100644 --- a/common/proto/pom.xml +++ b/common/proto/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT common org.thingsboard.common diff --git a/common/queue/pom.xml b/common/queue/pom.xml index 19368c1345..f88baefc6e 100644 --- a/common/queue/pom.xml +++ b/common/queue/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT common org.thingsboard.common diff --git a/common/script/pom.xml b/common/script/pom.xml index 4b7a812737..cb4d0c2ac2 100644 --- a/common/script/pom.xml +++ b/common/script/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT common org.thingsboard.common diff --git a/common/script/remote-js-client/pom.xml b/common/script/remote-js-client/pom.xml index 45d4698efe..e2dffb44a6 100644 --- a/common/script/remote-js-client/pom.xml +++ b/common/script/remote-js-client/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard.common - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT script org.thingsboard.common.script diff --git a/common/script/script-api/pom.xml b/common/script/script-api/pom.xml index 3bc2168dfe..c10c49b279 100644 --- a/common/script/script-api/pom.xml +++ b/common/script/script-api/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard.common - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT script org.thingsboard.common.script diff --git a/common/stats/pom.xml b/common/stats/pom.xml index 66011657d8..8e896767c7 100644 --- a/common/stats/pom.xml +++ b/common/stats/pom.xml @@ -22,7 +22,7 @@ 4.0.0 org.thingsboard - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT common org.thingsboard.common diff --git a/common/transport/coap/pom.xml b/common/transport/coap/pom.xml index e9d5dcfc1a..29bf5c7567 100644 --- a/common/transport/coap/pom.xml +++ b/common/transport/coap/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard.common - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT transport org.thingsboard.common.transport diff --git a/common/transport/http/pom.xml b/common/transport/http/pom.xml index caff518fe2..3b033bb741 100644 --- a/common/transport/http/pom.xml +++ b/common/transport/http/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard.common - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT transport org.thingsboard.common.transport diff --git a/common/transport/lwm2m/pom.xml b/common/transport/lwm2m/pom.xml index 2bec8f7bcb..8c4e9e79ff 100644 --- a/common/transport/lwm2m/pom.xml +++ b/common/transport/lwm2m/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard.common - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT transport org.thingsboard.common.transport diff --git a/common/transport/mqtt/pom.xml b/common/transport/mqtt/pom.xml index 18ff4e96c3..7012f22bb4 100644 --- a/common/transport/mqtt/pom.xml +++ b/common/transport/mqtt/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard.common - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT transport org.thingsboard.common.transport diff --git a/common/transport/pom.xml b/common/transport/pom.xml index feaef2bcce..d6f1761a40 100644 --- a/common/transport/pom.xml +++ b/common/transport/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT common org.thingsboard.common diff --git a/common/transport/snmp/pom.xml b/common/transport/snmp/pom.xml index da5093349d..522034b9c8 100644 --- a/common/transport/snmp/pom.xml +++ b/common/transport/snmp/pom.xml @@ -21,7 +21,7 @@ org.thingsboard.common - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT transport diff --git a/common/transport/transport-api/pom.xml b/common/transport/transport-api/pom.xml index 1cb128b439..34de935e17 100644 --- a/common/transport/transport-api/pom.xml +++ b/common/transport/transport-api/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard.common - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT transport org.thingsboard.common.transport diff --git a/common/util/pom.xml b/common/util/pom.xml index 6509f154ad..2e1eb18478 100644 --- a/common/util/pom.xml +++ b/common/util/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT common org.thingsboard.common diff --git a/common/version-control/pom.xml b/common/version-control/pom.xml index 939d0d47ad..1930c026b5 100644 --- a/common/version-control/pom.xml +++ b/common/version-control/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT common org.thingsboard.common diff --git a/dao/pom.xml b/dao/pom.xml index 5044c0edfb..36e5bad26d 100644 --- a/dao/pom.xml +++ b/dao/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT thingsboard dao diff --git a/edqs/pom.xml b/edqs/pom.xml index ef91e0bed4..2f5e513f16 100644 --- a/edqs/pom.xml +++ b/edqs/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT thingsboard edqs diff --git a/monitoring/pom.xml b/monitoring/pom.xml index 3fb4ba5314..1b67c4c397 100644 --- a/monitoring/pom.xml +++ b/monitoring/pom.xml @@ -21,7 +21,7 @@ 4.0.0 org.thingsboard - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT thingsboard diff --git a/msa/black-box-tests/pom.xml b/msa/black-box-tests/pom.xml index 6800c0c4cf..0d560720c8 100644 --- a/msa/black-box-tests/pom.xml +++ b/msa/black-box-tests/pom.xml @@ -21,7 +21,7 @@ org.thingsboard - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT msa org.thingsboard.msa diff --git a/msa/edqs/pom.xml b/msa/edqs/pom.xml index 62374eb2bc..a40ef45fff 100644 --- a/msa/edqs/pom.xml +++ b/msa/edqs/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT msa org.thingsboard.msa diff --git a/msa/js-executor/package.json b/msa/js-executor/package.json index 3f4370b642..3c77172f4e 100644 --- a/msa/js-executor/package.json +++ b/msa/js-executor/package.json @@ -1,7 +1,7 @@ { "name": "thingsboard-js-executor", "private": true, - "version": "4.2.1.1", + "version": "4.2.1.2", "description": "ThingsBoard JavaScript Executor Microservice", "main": "server.ts", "bin": "server.js", diff --git a/msa/js-executor/pom.xml b/msa/js-executor/pom.xml index 3aaf380e2f..99cef90704 100644 --- a/msa/js-executor/pom.xml +++ b/msa/js-executor/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT msa org.thingsboard.msa diff --git a/msa/monitoring/pom.xml b/msa/monitoring/pom.xml index b81abce27d..cd7615ae6e 100644 --- a/msa/monitoring/pom.xml +++ b/msa/monitoring/pom.xml @@ -22,7 +22,7 @@ 4.0.0 org.thingsboard - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT msa diff --git a/msa/pom.xml b/msa/pom.xml index 5eff7cc06d..29299d7b9a 100644 --- a/msa/pom.xml +++ b/msa/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT thingsboard msa diff --git a/msa/tb-node/pom.xml b/msa/tb-node/pom.xml index e473e1dfdf..0be77548a2 100644 --- a/msa/tb-node/pom.xml +++ b/msa/tb-node/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT msa org.thingsboard.msa diff --git a/msa/tb/pom.xml b/msa/tb/pom.xml index 9db071c9ae..e46152fb62 100644 --- a/msa/tb/pom.xml +++ b/msa/tb/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT msa org.thingsboard.msa diff --git a/msa/transport/coap/pom.xml b/msa/transport/coap/pom.xml index 098e3263b8..7b9167980d 100644 --- a/msa/transport/coap/pom.xml +++ b/msa/transport/coap/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard.msa - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT transport org.thingsboard.msa.transport diff --git a/msa/transport/http/pom.xml b/msa/transport/http/pom.xml index 3acbeb7a2d..e56c364c72 100644 --- a/msa/transport/http/pom.xml +++ b/msa/transport/http/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard.msa - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT transport org.thingsboard.msa.transport diff --git a/msa/transport/lwm2m/pom.xml b/msa/transport/lwm2m/pom.xml index bc6d0d004e..7a2fc4b007 100644 --- a/msa/transport/lwm2m/pom.xml +++ b/msa/transport/lwm2m/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard.msa - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT transport org.thingsboard.msa.transport diff --git a/msa/transport/mqtt/pom.xml b/msa/transport/mqtt/pom.xml index ef20c96f26..7c0c77725d 100644 --- a/msa/transport/mqtt/pom.xml +++ b/msa/transport/mqtt/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard.msa - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT transport org.thingsboard.msa.transport diff --git a/msa/transport/pom.xml b/msa/transport/pom.xml index 76cec909da..e1d53efaf4 100644 --- a/msa/transport/pom.xml +++ b/msa/transport/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT msa org.thingsboard.msa diff --git a/msa/transport/snmp/pom.xml b/msa/transport/snmp/pom.xml index 348880019c..ba25ffa004 100644 --- a/msa/transport/snmp/pom.xml +++ b/msa/transport/snmp/pom.xml @@ -21,7 +21,7 @@ org.thingsboard.msa transport - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT org.thingsboard.msa.transport diff --git a/msa/vc-executor-docker/pom.xml b/msa/vc-executor-docker/pom.xml index b1c11efe0a..134c3d8ce5 100644 --- a/msa/vc-executor-docker/pom.xml +++ b/msa/vc-executor-docker/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT msa org.thingsboard.msa diff --git a/msa/vc-executor/pom.xml b/msa/vc-executor/pom.xml index a59a8aa823..c487ddc721 100644 --- a/msa/vc-executor/pom.xml +++ b/msa/vc-executor/pom.xml @@ -21,7 +21,7 @@ org.thingsboard - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT msa org.thingsboard.msa diff --git a/msa/web-ui/package.json b/msa/web-ui/package.json index 97d69546bc..44aade2d73 100644 --- a/msa/web-ui/package.json +++ b/msa/web-ui/package.json @@ -1,7 +1,7 @@ { "name": "thingsboard-web-ui", "private": true, - "version": "4.2.1.1", + "version": "4.2.1.2", "description": "ThingsBoard Web UI Microservice", "main": "server.ts", "bin": "server.js", diff --git a/msa/web-ui/pom.xml b/msa/web-ui/pom.xml index 70200eddb3..36e53ed52c 100644 --- a/msa/web-ui/pom.xml +++ b/msa/web-ui/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT msa org.thingsboard.msa diff --git a/netty-mqtt/pom.xml b/netty-mqtt/pom.xml index c0743024ea..99261b714d 100644 --- a/netty-mqtt/pom.xml +++ b/netty-mqtt/pom.xml @@ -19,11 +19,11 @@ 4.0.0 org.thingsboard - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT thingsboard netty-mqtt - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT jar Netty MQTT Client diff --git a/pom.xml b/pom.xml index 7f8ef8074a..9edccba7f7 100755 --- a/pom.xml +++ b/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard thingsboard - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT pom Thingsboard diff --git a/rest-client/pom.xml b/rest-client/pom.xml index eddcd84d9a..3ee5321627 100644 --- a/rest-client/pom.xml +++ b/rest-client/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT thingsboard rest-client diff --git a/rule-engine/pom.xml b/rule-engine/pom.xml index 99372b9703..d89c238559 100644 --- a/rule-engine/pom.xml +++ b/rule-engine/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT thingsboard rule-engine diff --git a/rule-engine/rule-engine-api/pom.xml b/rule-engine/rule-engine-api/pom.xml index c52fb92594..5f48404b91 100644 --- a/rule-engine/rule-engine-api/pom.xml +++ b/rule-engine/rule-engine-api/pom.xml @@ -22,7 +22,7 @@ 4.0.0 org.thingsboard - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT rule-engine org.thingsboard.rule-engine diff --git a/rule-engine/rule-engine-components/pom.xml b/rule-engine/rule-engine-components/pom.xml index f582f1277a..e307d9a57d 100644 --- a/rule-engine/rule-engine-components/pom.xml +++ b/rule-engine/rule-engine-components/pom.xml @@ -22,7 +22,7 @@ 4.0.0 org.thingsboard - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT rule-engine org.thingsboard.rule-engine diff --git a/tools/pom.xml b/tools/pom.xml index 783dc1ee73..bd16603596 100644 --- a/tools/pom.xml +++ b/tools/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT thingsboard tools diff --git a/transport/coap/pom.xml b/transport/coap/pom.xml index f43d31e35b..681c75b102 100644 --- a/transport/coap/pom.xml +++ b/transport/coap/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT transport org.thingsboard.transport diff --git a/transport/http/pom.xml b/transport/http/pom.xml index 7e55ae3db5..b338a4b4ea 100644 --- a/transport/http/pom.xml +++ b/transport/http/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT transport org.thingsboard.transport diff --git a/transport/lwm2m/pom.xml b/transport/lwm2m/pom.xml index f64f8b4aa4..4d5d621a08 100644 --- a/transport/lwm2m/pom.xml +++ b/transport/lwm2m/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT transport org.thingsboard.transport diff --git a/transport/mqtt/pom.xml b/transport/mqtt/pom.xml index 0bcf68cbb8..336265ff00 100644 --- a/transport/mqtt/pom.xml +++ b/transport/mqtt/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT transport org.thingsboard.transport diff --git a/transport/pom.xml b/transport/pom.xml index 1d3755a766..a4b9c9c630 100644 --- a/transport/pom.xml +++ b/transport/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT thingsboard transport diff --git a/transport/snmp/pom.xml b/transport/snmp/pom.xml index 5ea39a4066..a361d85838 100644 --- a/transport/snmp/pom.xml +++ b/transport/snmp/pom.xml @@ -21,7 +21,7 @@ org.thingsboard - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT transport diff --git a/ui-ngx/package.json b/ui-ngx/package.json index 74b4bbbb9c..b17c3e1d35 100644 --- a/ui-ngx/package.json +++ b/ui-ngx/package.json @@ -1,6 +1,6 @@ { "name": "thingsboard", - "version": "4.2.1.1", + "version": "4.2.1.2", "scripts": { "ng": "ng", "start": "node --max_old_space_size=8048 ./node_modules/@angular/cli/bin/ng serve --configuration development --host 0.0.0.0 --open", diff --git a/ui-ngx/pom.xml b/ui-ngx/pom.xml index d5bd48de78..54b8adc93a 100644 --- a/ui-ngx/pom.xml +++ b/ui-ngx/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 4.2.1.1-RC + 4.2.1.2-SNAPSHOT thingsboard org.thingsboard From dac772b47610a87cb95f3254f61bee25ae3fe026 Mon Sep 17 00:00:00 2001 From: Viacheslav Klimov Date: Tue, 30 Dec 2025 12:15:27 +0200 Subject: [PATCH 08/72] Fix release notes generation for bugs section --- .github/release.yml | 51 ++++++++++++++++++++++++++++++--------------- 1 file changed, 34 insertions(+), 17 deletions(-) diff --git a/.github/release.yml b/.github/release.yml index 53b2e3ae65..1dad5d274f 100644 --- a/.github/release.yml +++ b/.github/release.yml @@ -23,27 +23,19 @@ changelog: labels: - 'Major Core' - 'Major Rule Engine' - exclude: - labels: - - 'Bug' + - title: 'Major UI' labels: - 'Major UI' - exclude: - labels: - - 'Bug' + - title: 'Major Transport' labels: - 'Major Transport' - exclude: - labels: - - 'Bug' + - title: 'Major Edge' labels: - 'Major Edge' - exclude: - labels: - - 'Bug' + - title: 'Core & Rule Engine' labels: - 'Core' @@ -51,38 +43,63 @@ changelog: exclude: labels: - 'Bug' + - title: 'UI' labels: - 'UI' exclude: labels: - 'Bug' + - title: 'Transport' labels: - 'Transport' exclude: labels: - 'Bug' + - title: 'Edge' labels: - 'Edge' exclude: labels: - 'Bug' + - title: 'Bug: Core & Rule Engine' labels: - - 'Core' - - 'Rule Engine' - 'Bug' + exclude: + labels: + - 'UI' + - 'Transport' + - 'Edge' + - title: 'Bug: UI' labels: - - 'UI' - 'Bug' + exclude: + labels: + - 'Core' + - 'Rule Engine' + - 'Transport' + - 'Edge' + - title: 'Bug: Transport' labels: - - 'Transport' - 'Bug' + exclude: + labels: + - 'Core' + - 'Rule Engine' + - 'UI' + - 'Edge' + - title: 'Bug: Edge' labels: - - 'Edge' - 'Bug' + exclude: + labels: + - 'Core' + - 'Rule Engine' + - 'UI' + - 'Transport' From b29c67006097b463375406e88d6e978f94e30440 Mon Sep 17 00:00:00 2001 From: Viacheslav Klimov Date: Mon, 5 Jan 2026 12:18:59 +0200 Subject: [PATCH 09/72] Fix invalid finish ts for jobs with zero tasks --- .../server/service/job/JobManagerTest.java | 40 +++++++++++++++++++ .../server/dao/job/DefaultJobService.java | 3 ++ 2 files changed, 43 insertions(+) diff --git a/application/src/test/java/org/thingsboard/server/service/job/JobManagerTest.java b/application/src/test/java/org/thingsboard/server/service/job/JobManagerTest.java index 7806215a51..0a529e57f5 100644 --- a/application/src/test/java/org/thingsboard/server/service/job/JobManagerTest.java +++ b/application/src/test/java/org/thingsboard/server/service/job/JobManagerTest.java @@ -107,6 +107,8 @@ public class JobManagerTest extends AbstractControllerTest { assertThat(job.getResult().getSuccessfulCount()).isEqualTo(tasksCount); assertThat(job.getResult().getResults()).isEmpty(); assertThat(job.getResult().getCompletedCount()).isEqualTo(tasksCount); + assertThat(job.getResult().getStartTs()).isPositive(); + assertThat(job.getResult().getFinishTs()).isPositive(); }); } @@ -133,6 +135,8 @@ public class JobManagerTest extends AbstractControllerTest { assertThat(failure.getError()).isEqualTo("error3"); // last error }); assertThat(jobResult.getCompletedCount()).isEqualTo(jobResult.getTotalCount()); + assertThat(job.getResult().getStartTs()).isPositive(); + assertThat(job.getResult().getFinishTs()).isPositive(); }); } @@ -168,6 +172,9 @@ public class JobManagerTest extends AbstractControllerTest { assertThat(job.getResult().getDiscardedCount()).isBetween(1, tasksCount); assertThat(job.getResult().getTotalCount()).isEqualTo(tasksCount); assertThat(job.getResult().getCompletedCount()).isEqualTo(tasksCount); + assertThat(job.getResult().getStartTs()).isPositive(); + assertThat(job.getResult().getFinishTs()).isPositive(); + assertThat(job.getResult().getCancellationTs()).isPositive(); }); } @@ -194,6 +201,9 @@ public class JobManagerTest extends AbstractControllerTest { assertThat(job.getResult().getTotalCount()).isEqualTo(1); assertThat(job.getResult().getDiscardedCount()).isEqualTo(1); assertThat(job.getResult().getFailedCount()).isZero(); + assertThat(job.getResult().getStartTs()).isPositive(); + assertThat(job.getResult().getFinishTs()).isPositive(); + assertThat(job.getResult().getCancellationTs()).isPositive(); }); } @@ -222,6 +232,9 @@ public class JobManagerTest extends AbstractControllerTest { assertThat(job.getResult().getDiscardedCount()).isBetween(1, tasksCount - 1); assertThat(job.getResult().getTotalCount()).isEqualTo(tasksCount); assertThat(job.getResult().getCompletedCount()).isEqualTo(tasksCount); + assertThat(job.getResult().getStartTs()).isPositive(); + assertThat(job.getResult().getFinishTs()).isPositive(); + assertThat(job.getResult().getCancellationTs()).isPositive(); }); } @@ -275,6 +288,8 @@ public class JobManagerTest extends AbstractControllerTest { assertThat(job.getResult().getTotalCount()).isEqualTo(tasksCount); assertThat(job.getEntityId()).isEqualTo(jobEntity.getId()); assertThat(job.getEntityName()).isEqualTo(jobEntity.getName()); + assertThat(job.getResult().getStartTs()).isPositive(); + assertThat(job.getResult().getFinishTs()).isPositive(); } }); @@ -385,6 +400,8 @@ public class JobManagerTest extends AbstractControllerTest { assertThat(job.getResult().getTotalCount()).isEqualTo(submittedTasks); assertThat(job.getResult().getFailedCount()).isZero(); assertThat(job.getResult().getDiscardedCount()).isZero(); + assertThat(job.getResult().getStartTs()).isPositive(); + assertThat(job.getResult().getFinishTs()).isPositive(); }); } @@ -425,6 +442,8 @@ public class JobManagerTest extends AbstractControllerTest { assertThat(job.getResult().getTotalCount()).isEqualTo(totalTasksCount); assertThat(job.getResult().getResults()).isEmpty(); assertThat(job.getConfiguration().getToReprocess()).isNullOrEmpty(); + assertThat(job.getResult().getStartTs()).isPositive(); + assertThat(job.getResult().getFinishTs()).isPositive(); }); } @@ -449,6 +468,8 @@ public class JobManagerTest extends AbstractControllerTest { assertThat(jobResult.getSuccessfulCount()).isEqualTo(successfulTasks); assertThat(jobResult.getFailedCount()).isEqualTo(failedTasks + permanentlyFailedTasks); assertThat(jobResult.getTotalCount()).isEqualTo(totalTasksCount); + assertThat(jobResult.getStartTs()).isPositive(); + assertThat(jobResult.getFinishTs()).isPositive(); List failures = getFailures(jobResult); for (int i = 0, taskNumber = successfulTasks + 1; taskNumber <= totalTasksCount; i++, taskNumber++) { @@ -467,6 +488,8 @@ public class JobManagerTest extends AbstractControllerTest { assertThat(jobResult.getSuccessfulCount()).isEqualTo(successfulTasks + failedTasks); assertThat(jobResult.getFailedCount()).isEqualTo(permanentlyFailedTasks); assertThat(jobResult.getTotalCount()).isEqualTo(totalTasksCount); + assertThat(jobResult.getStartTs()).isPositive(); + assertThat(jobResult.getFinishTs()).isPositive(); List failures = getFailures(jobResult); for (int i = 0, taskNumber = successfulTasks + failedTasks + 1; taskNumber <= totalTasksCount; i++, taskNumber++) { @@ -478,6 +501,23 @@ public class JobManagerTest extends AbstractControllerTest { }); } + @Test + public void testSubmitJob_zeroTasks() { + JobId jobId = submitJob(DummyJobConfiguration.builder() + .successfulTasksCount(0) + .build()).getId(); + + await().atMost(TIMEOUT, TimeUnit.SECONDS).untilAsserted(() -> { + Job job = findJobById(jobId); + assertThat(job.getStatus()).isEqualTo(JobStatus.COMPLETED); + assertThat(job.getResult().getSuccessfulCount()).isEqualTo(0); + assertThat(job.getResult().getResults()).isEmpty(); + assertThat(job.getResult().getCompletedCount()).isEqualTo(0); + assertThat(job.getResult().getStartTs()).isPositive(); + assertThat(job.getResult().getFinishTs()).isPositive(); + }); + } + private Job submitJob(DummyJobConfiguration configuration) { return submitJob(configuration, "test-job"); } diff --git a/dao/src/main/java/org/thingsboard/server/dao/job/DefaultJobService.java b/dao/src/main/java/org/thingsboard/server/dao/job/DefaultJobService.java index 06f219ca3d..f97805285c 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/job/DefaultJobService.java +++ b/dao/src/main/java/org/thingsboard/server/dao/job/DefaultJobService.java @@ -154,6 +154,9 @@ public class DefaultJobService extends AbstractEntityService implements JobServi job.setStatus(COMPLETED); publishEvent = true; } + if (result.getTotalCount() == 0 && lastFinishTs == 0) { + lastFinishTs = System.currentTimeMillis(); + } result.setFinishTs(lastFinishTs); job.getConfiguration().setToReprocess(null); } From 3b7ffe1f3a82d1563ca9dddfd551b6aebc50a2be Mon Sep 17 00:00:00 2001 From: Vladyslav_Prykhodko Date: Mon, 5 Jan 2026 12:37:40 +0200 Subject: [PATCH 10/72] Fixed CVE-2025-15284 --- msa/js-executor/yarn.lock | 6 +- msa/web-ui/yarn.lock | 6 +- ui-ngx/yarn.lock | 353 ++++++++++++++++++-------------------- 3 files changed, 176 insertions(+), 189 deletions(-) diff --git a/msa/js-executor/yarn.lock b/msa/js-executor/yarn.lock index 1d42a9cd96..7a54682fa7 100644 --- a/msa/js-executor/yarn.lock +++ b/msa/js-executor/yarn.lock @@ -1253,9 +1253,9 @@ pump@^3.0.0: once "^1.3.1" qs@^6.14.0: - version "6.14.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.14.0.tgz#c63fa40680d2c5c941412a0e899c89af60c0a930" - integrity sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w== + version "6.14.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.14.1.tgz#a41d85b9d3902f31d27861790506294881871159" + integrity sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ== dependencies: side-channel "^1.1.0" diff --git a/msa/web-ui/yarn.lock b/msa/web-ui/yarn.lock index 0f8b6f3eed..383d64d5f9 100644 --- a/msa/web-ui/yarn.lock +++ b/msa/web-ui/yarn.lock @@ -1330,9 +1330,9 @@ pump@^3.0.0: once "^1.3.1" qs@^6.14.0: - version "6.14.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.14.0.tgz#c63fa40680d2c5c941412a0e899c89af60c0a930" - integrity sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w== + version "6.14.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.14.1.tgz#a41d85b9d3902f31d27861790506294881871159" + integrity sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ== dependencies: side-channel "^1.1.0" diff --git a/ui-ngx/yarn.lock b/ui-ngx/yarn.lock index 56dc0f47a5..5f21abf7c8 100644 --- a/ui-ngx/yarn.lock +++ b/ui-ngx/yarn.lock @@ -2716,21 +2716,16 @@ dependencies: "@types/geojson" "*" -"@types/geojson@*", "@types/geojson@^7946.0.10": - version "7946.0.14" - resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-7946.0.14.tgz#319b63ad6df705ee2a65a73ef042c8271e696613" - integrity sha512-WCfD5Ht3ZesJUsONdhvm84dmzWOiOzOAqOncN0++w0lBw1o8OuDNJF2McvvCef/yBqb/HYRahp1BYtODFQ8bRg== +"@types/geojson@*", "@types/geojson@^7946.0.10", "@types/geojson@^7946.0.16": + version "7946.0.16" + resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-7946.0.16.tgz#8ebe53d69efada7044454e3305c19017d97ced2a" + integrity sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg== "@types/geojson@7946.0.8": version "7946.0.8" resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-7946.0.8.tgz#30744afdb385e2945e22f3b033f897f76b1f12ca" integrity sha512-1rkryxURpr6aWP7R786/UQOkJ3PcpQiWkAXBmdWc7ryFWqN6a4xfK7BtjXvFBKO9LjQ+MWQSWxYeZX1OApnArA== -"@types/geojson@^7946.0.16": - version "7946.0.16" - resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-7946.0.16.tgz#8ebe53d69efada7044454e3305c19017d97ced2a" - integrity sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg== - "@types/hammerjs@^2.0.45": version "2.0.45" resolved "https://registry.yarnpkg.com/@types/hammerjs/-/hammerjs-2.0.45.tgz#ffa764bb68a66c08db6efb9c816eb7be850577b1" @@ -3629,23 +3624,23 @@ bl@^4.1.0: inherits "^2.0.4" readable-stream "^3.4.0" -body-parser@1.20.3: - version "1.20.3" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.3.tgz#1953431221c6fb5cd63c4b36d53fab0928e548c6" - integrity sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g== +body-parser@~1.20.3: + version "1.20.4" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.4.tgz#f8e20f4d06ca8a50a71ed329c15dccad1cdc547f" + integrity sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA== dependencies: - bytes "3.1.2" + bytes "~3.1.2" content-type "~1.0.5" debug "2.6.9" depd "2.0.0" - destroy "1.2.0" - http-errors "2.0.0" - iconv-lite "0.4.24" - on-finished "2.4.1" - qs "6.13.0" - raw-body "2.5.2" + destroy "~1.2.0" + http-errors "~2.0.1" + iconv-lite "~0.4.24" + on-finished "~2.4.1" + qs "~6.14.0" + raw-body "~2.5.3" type-is "~1.6.18" - unpipe "1.0.0" + unpipe "~1.0.0" bonjour-service@^1.2.1: version "1.2.1" @@ -3717,7 +3712,7 @@ bytes@3.0.0: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== -bytes@3.1.2: +bytes@~3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== @@ -3759,6 +3754,14 @@ call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: get-intrinsic "^1.2.4" set-function-length "^1.2.1" +call-bound@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/call-bound/-/call-bound-1.0.4.tgz#238de935d2a2a692928c538c7ccfa91067fd062a" + integrity sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg== + dependencies: + call-bind-apply-helpers "^1.0.2" + get-intrinsic "^1.3.0" + callsites@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" @@ -4074,7 +4077,7 @@ connect-history-api-fallback@^2.0.0: resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz#647264845251a0daf25b97ce87834cace0f5f1c8" integrity sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA== -content-disposition@0.5.4: +content-disposition@~0.5.4: version "0.5.4" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== @@ -4096,15 +4099,15 @@ convert-source-map@^2.0.0: resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== +cookie-signature@~1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.7.tgz#ab5dd7ab757c54e60f37ef6550f481c426d10454" + integrity sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA== -cookie@0.7.1: - version "0.7.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.1.tgz#2f73c42142d5d5cf71310a74fc4ae61670e5dbc9" - integrity sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w== +cookie@~0.7.1: + version "0.7.2" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.2.tgz#556369c472a2ba910f2979891b526b3436237ed7" + integrity sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w== copy-anything@^2.0.1: version "2.0.6" @@ -4689,7 +4692,7 @@ delegate@^3.1.2: resolved "https://registry.yarnpkg.com/delegate/-/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166" integrity sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw== -depd@2.0.0: +depd@2.0.0, depd@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== @@ -4699,7 +4702,7 @@ depd@~1.1.2: resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== -destroy@1.2.0: +destroy@1.2.0, destroy@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== @@ -4867,11 +4870,6 @@ emojis-list@^3.0.0: resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== - encodeurl@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58" @@ -4978,14 +4976,7 @@ es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23 unbox-primitive "^1.0.2" which-typed-array "^1.1.15" -es-define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" - integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== - dependencies: - get-intrinsic "^1.2.4" - -es-define-property@^1.0.1: +es-define-property@^1.0.0, es-define-property@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa" integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== @@ -5000,30 +4991,14 @@ es-module-lexer@^1.2.1, es-module-lexer@^1.5.3: resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.5.4.tgz#a8efec3a3da991e60efa6b633a7cad6ab8d26b78" integrity sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw== -es-object-atoms@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.0.0.tgz#ddb55cd47ac2e240701260bc2a8e31ecb643d941" - integrity sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw== - dependencies: - es-errors "^1.3.0" - -es-object-atoms@^1.1.1: +es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz#1c4f2c4837327597ce69d2ca190a7fdd172338c1" integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA== dependencies: es-errors "^1.3.0" -es-set-tostringtag@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz#8bb60f0a440c2e4281962428438d58545af39777" - integrity sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ== - dependencies: - get-intrinsic "^1.2.4" - has-tostringtag "^1.0.2" - hasown "^2.0.1" - -es-set-tostringtag@^2.1.0: +es-set-tostringtag@^2.0.3, es-set-tostringtag@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz#f31dbbe0c183b00a6d26eb6325c810c0fd18bd4d" integrity sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA== @@ -5325,38 +5300,38 @@ exponential-backoff@^3.1.1: integrity sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw== express@^4.17.3: - version "4.21.1" - resolved "https://registry.yarnpkg.com/express/-/express-4.21.1.tgz#9dae5dda832f16b4eec941a4e44aa89ec481b281" - integrity sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ== + version "4.22.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.22.1.tgz#1de23a09745a4fffdb39247b344bb5eaff382069" + integrity sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g== dependencies: accepts "~1.3.8" array-flatten "1.1.1" - body-parser "1.20.3" - content-disposition "0.5.4" + body-parser "~1.20.3" + content-disposition "~0.5.4" content-type "~1.0.4" - cookie "0.7.1" - cookie-signature "1.0.6" + cookie "~0.7.1" + cookie-signature "~1.0.6" debug "2.6.9" depd "2.0.0" encodeurl "~2.0.0" escape-html "~1.0.3" etag "~1.8.1" - finalhandler "1.3.1" - fresh "0.5.2" - http-errors "2.0.0" + finalhandler "~1.3.1" + fresh "~0.5.2" + http-errors "~2.0.0" merge-descriptors "1.0.3" methods "~1.1.2" - on-finished "2.4.1" + on-finished "~2.4.1" parseurl "~1.3.3" - path-to-regexp "0.1.10" + path-to-regexp "~0.1.12" proxy-addr "~2.0.7" - qs "6.13.0" + qs "~6.14.0" range-parser "~1.2.1" safe-buffer "5.2.1" - send "0.19.0" - serve-static "1.16.2" + send "~0.19.0" + serve-static "~1.16.2" setprototypeof "1.2.0" - statuses "2.0.1" + statuses "~2.0.1" type-is "~1.6.18" utils-merge "1.0.1" vary "~1.1.2" @@ -5437,17 +5412,17 @@ fill-range@^7.1.1: dependencies: to-regex-range "^5.0.1" -finalhandler@1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.3.1.tgz#0c575f1d1d324ddd1da35ad7ece3df7d19088019" - integrity sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ== +finalhandler@~1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.3.2.tgz#1ebc2228fc7673aac4a472c310cc05b77d852b88" + integrity sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg== dependencies: debug "2.6.9" encodeurl "~2.0.0" escape-html "~1.0.3" - on-finished "2.4.1" + on-finished "~2.4.1" parseurl "~1.3.3" - statuses "2.0.1" + statuses "~2.0.2" unpipe "~1.0.0" find-cache-dir@^4.0.0: @@ -5575,7 +5550,7 @@ fraction.js@^4.3.7: resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== -fresh@0.5.2: +fresh@~0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== @@ -5660,18 +5635,7 @@ get-east-asian-width@^1.0.0: resolved "https://registry.yarnpkg.com/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz#21b4071ee58ed04ee0db653371b55b4299875389" integrity sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ== -get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" - integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== - dependencies: - es-errors "^1.3.0" - function-bind "^1.1.2" - has-proto "^1.0.1" - has-symbols "^1.0.3" - hasown "^2.0.0" - -get-intrinsic@^1.2.6: +get-intrinsic@^1.2.1, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4, get-intrinsic@^1.2.5, get-intrinsic@^1.2.6, get-intrinsic@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01" integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== @@ -5791,14 +5755,7 @@ good-listener@^1.2.2: dependencies: delegate "^3.1.2" -gopd@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" - integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== - dependencies: - get-intrinsic "^1.1.3" - -gopd@^1.2.0: +gopd@^1.0.1, gopd@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1" integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== @@ -5850,17 +5807,12 @@ has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: dependencies: es-define-property "^1.0.0" -has-proto@^1.0.1, has-proto@^1.0.3: +has-proto@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== -has-symbols@^1.0.2, has-symbols@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - -has-symbols@^1.1.0: +has-symbols@^1.0.2, has-symbols@^1.0.3, has-symbols@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338" integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== @@ -5872,7 +5824,7 @@ has-tostringtag@^1.0.0, has-tostringtag@^1.0.2: dependencies: has-symbols "^1.0.3" -hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2: +hasown@^2.0.0, hasown@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== @@ -5929,17 +5881,6 @@ http-deceiver@^1.2.7: resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== -http-errors@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" - integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== - dependencies: - depd "2.0.0" - inherits "2.0.4" - setprototypeof "1.2.0" - statuses "2.0.1" - toidentifier "1.0.1" - http-errors@~1.6.2: version "1.6.3" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" @@ -5950,6 +5891,17 @@ http-errors@~1.6.2: setprototypeof "1.1.0" statuses ">= 1.4.0 < 2" +http-errors@~2.0.0, http-errors@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.1.tgz#36d2f65bc909c8790018dd36fb4d93da6caae06b" + integrity sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ== + dependencies: + depd "~2.0.0" + inherits "~2.0.4" + setprototypeof "~1.2.0" + statuses "~2.0.2" + toidentifier "~1.0.1" + http-parser-js@>=0.5.1: version "0.5.8" resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.8.tgz#af23090d9ac4e24573de6f6aecc9d84a48bf20e3" @@ -6013,13 +5965,6 @@ hyperdyperid@^1.2.0: resolved "https://registry.yarnpkg.com/hyperdyperid/-/hyperdyperid-1.2.0.tgz#59668d323ada92228d2a869d3e474d5a33b69e6b" integrity sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A== -iconv-lite@0.4.24, iconv-lite@^0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - iconv-lite@0.6, iconv-lite@^0.6.2, iconv-lite@^0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" @@ -6027,6 +5972,13 @@ iconv-lite@0.6, iconv-lite@^0.6.2, iconv-lite@^0.6.3: dependencies: safer-buffer ">= 2.1.2 < 3.0.0" +iconv-lite@^0.4.24, iconv-lite@~0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + icss-utils@^5.0.0, icss-utils@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" @@ -6092,7 +6044,7 @@ inherits@2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== -inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: +inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3, inherits@~2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -7616,10 +7568,10 @@ object-hash@^3.0.0: resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== -object-inspect@^1.13.1: - version "1.13.2" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.2.tgz#dea0088467fb991e67af4058147a24824a3043ff" - integrity sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g== +object-inspect@^1.13.1, object-inspect@^1.13.3: + version "1.13.4" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.4.tgz#8375265e21bc20d0fa582c22e1b13485d6e00213" + integrity sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew== object-keys@^1.1.1: version "1.1.1" @@ -7674,7 +7626,7 @@ obuf@^1.0.0, obuf@^1.1.2: resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== -on-finished@2.4.1, on-finished@^2.4.1: +on-finished@^2.4.1, on-finished@~2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== @@ -7968,7 +7920,7 @@ path-scurry@^1.11.1: lru-cache "^10.2.0" minipass "^5.0.0 || ^6.0.2 || ^7.0.0" -path-to-regexp@0.1.10, path-to-regexp@0.1.12: +path-to-regexp@0.1.12, path-to-regexp@~0.1.12: version "0.1.12" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.12.tgz#d5e1a12e478a976d432ef3c58d534b9923164bb7" integrity sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ== @@ -8259,12 +8211,12 @@ qrcode@^1.5.4: pngjs "^5.0.0" yargs "^15.3.1" -qs@6.13.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.13.0.tgz#6ca3bd58439f7e245655798997787b0d88a51906" - integrity sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg== +qs@~6.14.0: + version "6.14.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.14.1.tgz#a41d85b9d3902f31d27861790506294881871159" + integrity sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ== dependencies: - side-channel "^1.0.6" + side-channel "^1.1.0" queue-microtask@^1.2.2: version "1.2.3" @@ -8300,15 +8252,15 @@ raphael@^2.3.0: dependencies: eve-raphael "0.5.0" -raw-body@2.5.2: - version "2.5.2" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" - integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== +raw-body@~2.5.3: + version "2.5.3" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.3.tgz#11c6650ee770a7de1b494f197927de0c923822e2" + integrity sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA== dependencies: - bytes "3.1.2" - http-errors "2.0.0" - iconv-lite "0.4.24" - unpipe "1.0.0" + bytes "~3.1.2" + http-errors "~2.0.1" + iconv-lite "~0.4.24" + unpipe "~1.0.0" rbush@^3.0.1: version "3.0.1" @@ -8706,7 +8658,7 @@ selfsigned@^2.4.1: "@types/node-forge" "^1.3.0" node-forge "^1" -semver@7.6.3, semver@^7.0.0, semver@^7.1.1, semver@^7.3.5, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0, semver@^7.6.3: +semver@7.6.3: version "7.6.3" resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== @@ -8721,24 +8673,29 @@ semver@^6.3.1: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -send@0.19.0: - version "0.19.0" - resolved "https://registry.yarnpkg.com/send/-/send-0.19.0.tgz#bbc5a388c8ea6c048967049dbeac0e4a3f09d7f8" - integrity sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw== +semver@^7.0.0, semver@^7.1.1, semver@^7.3.5, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0, semver@^7.6.3: + version "7.7.3" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.3.tgz#4b5f4143d007633a8dc671cd0a6ef9147b8bb946" + integrity sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q== + +send@~0.19.0, send@~0.19.1: + version "0.19.2" + resolved "https://registry.yarnpkg.com/send/-/send-0.19.2.tgz#59bc0da1b4ea7ad42736fd642b1c4294e114ff29" + integrity sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg== dependencies: debug "2.6.9" depd "2.0.0" destroy "1.2.0" - encodeurl "~1.0.2" + encodeurl "~2.0.0" escape-html "~1.0.3" etag "~1.8.1" - fresh "0.5.2" - http-errors "2.0.0" + fresh "~0.5.2" + http-errors "~2.0.1" mime "1.6.0" ms "2.1.3" - on-finished "2.4.1" + on-finished "~2.4.1" range-parser "~1.2.1" - statuses "2.0.1" + statuses "~2.0.2" serialize-javascript@^6.0.1, serialize-javascript@^6.0.2: version "6.0.2" @@ -8760,15 +8717,15 @@ serve-index@^1.9.1: mime-types "~2.1.17" parseurl "~1.3.2" -serve-static@1.16.2: - version "1.16.2" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.16.2.tgz#b6a5343da47f6bdd2673848bf45754941e803296" - integrity sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw== +serve-static@~1.16.2: + version "1.16.3" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.16.3.tgz#a97b74d955778583f3862a4f0b841eb4d5d78cf9" + integrity sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA== dependencies: encodeurl "~2.0.0" escape-html "~1.0.3" parseurl "~1.3.3" - send "0.19.0" + send "~0.19.1" set-blocking@^2.0.0: version "2.0.0" @@ -8807,7 +8764,7 @@ setprototypeof@1.1.0: resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== -setprototypeof@1.2.0: +setprototypeof@1.2.0, setprototypeof@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== @@ -8836,15 +8793,45 @@ shell-quote@^1.8.1: resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== -side-channel@^1.0.4, side-channel@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" - integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== +side-channel-list@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/side-channel-list/-/side-channel-list-1.0.0.tgz#10cb5984263115d3b7a0e336591e290a830af8ad" + integrity sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA== dependencies: - call-bind "^1.0.7" es-errors "^1.3.0" - get-intrinsic "^1.2.4" - object-inspect "^1.13.1" + object-inspect "^1.13.3" + +side-channel-map@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/side-channel-map/-/side-channel-map-1.0.1.tgz#d6bb6b37902c6fef5174e5f533fab4c732a26f42" + integrity sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + get-intrinsic "^1.2.5" + object-inspect "^1.13.3" + +side-channel-weakmap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz#11dda19d5368e40ce9ec2bdc1fb0ecbc0790ecea" + integrity sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + get-intrinsic "^1.2.5" + object-inspect "^1.13.3" + side-channel-map "^1.0.1" + +side-channel@^1.0.4, side-channel@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.1.0.tgz#c3fcff9c4da932784873335ec9765fa94ff66bc9" + integrity sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw== + dependencies: + es-errors "^1.3.0" + object-inspect "^1.13.3" + side-channel-list "^1.0.0" + side-channel-map "^1.0.1" + side-channel-weakmap "^1.0.2" signal-exit@^3.0.2, signal-exit@^3.0.3: version "3.0.7" @@ -9050,16 +9037,16 @@ ssri@^10.0.0: dependencies: minipass "^7.0.3" -statuses@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" - integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== - "statuses@>= 1.4.0 < 2": version "1.5.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== +statuses@~2.0.1, statuses@~2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.2.tgz#8f75eecef765b5e1cfcdc080da59409ed424e382" + integrity sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw== + "string-width-cjs@npm:string-width@^4.2.0": version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" @@ -9399,7 +9386,7 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" -toidentifier@1.0.1: +toidentifier@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== @@ -9661,7 +9648,7 @@ universalify@^2.0.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== -unpipe@1.0.0, unpipe@~1.0.0: +unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== From 44df43db1aad9c91137990fdd296d33c1fb8d0b1 Mon Sep 17 00:00:00 2001 From: Viacheslav Klimov Date: Mon, 5 Jan 2026 15:25:32 +0200 Subject: [PATCH 11/72] Fix invalid service tests --- .../thingsboard/server/dao/service/DeviceServiceTest.java | 5 +++++ .../server/dao/service/OtaPackageServiceTest.java | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/dao/src/test/java/org/thingsboard/server/dao/service/DeviceServiceTest.java b/dao/src/test/java/org/thingsboard/server/dao/service/DeviceServiceTest.java index 32767043d7..8b48e724f7 100644 --- a/dao/src/test/java/org/thingsboard/server/dao/service/DeviceServiceTest.java +++ b/dao/src/test/java/org/thingsboard/server/dao/service/DeviceServiceTest.java @@ -67,6 +67,7 @@ import org.thingsboard.server.dao.exception.DataValidationException; import org.thingsboard.server.dao.exception.DeviceCredentialsValidationException; import org.thingsboard.server.dao.ota.OtaPackageService; import org.thingsboard.server.dao.service.validator.DeviceCredentialsDataValidator; +import org.thingsboard.server.dao.tenant.TbTenantProfileCache; import org.thingsboard.server.dao.tenant.TenantProfileService; import java.nio.ByteBuffer; @@ -97,6 +98,8 @@ public class DeviceServiceTest extends AbstractServiceTest { @Autowired TenantProfileService tenantProfileService; @Autowired + TbTenantProfileCache tenantProfileCache; + @Autowired private CalculatedFieldService calculatedFieldService; @Autowired private PlatformTransactionManager platformTransactionManager; @@ -131,6 +134,7 @@ public class DeviceServiceTest extends AbstractServiceTest { TenantProfile defaultTenantProfile = tenantProfileService.findDefaultTenantProfile(tenantId); defaultTenantProfile.getProfileData().setConfiguration(DefaultTenantProfileConfiguration.builder().maxDevices(Long.MAX_VALUE).build()); tenantProfileService.saveTenantProfile(tenantId, defaultTenantProfile); + tenantProfileCache.evict(defaultTenantProfile.getId()); Device device = this.saveDevice(tenantId, "My device"); deleteDevice(tenantId, device); @@ -141,6 +145,7 @@ public class DeviceServiceTest extends AbstractServiceTest { TenantProfile defaultTenantProfile = tenantProfileService.findDefaultTenantProfile(tenantId); defaultTenantProfile.getProfileData().setConfiguration(DefaultTenantProfileConfiguration.builder().maxDevices(1).build()); tenantProfileService.saveTenantProfile(tenantId, defaultTenantProfile); + tenantProfileCache.evict(defaultTenantProfile.getId()); Assert.assertEquals(0, deviceService.countByTenantId(tenantId)); diff --git a/dao/src/test/java/org/thingsboard/server/dao/service/OtaPackageServiceTest.java b/dao/src/test/java/org/thingsboard/server/dao/service/OtaPackageServiceTest.java index 70f2ff119d..66fccf313c 100644 --- a/dao/src/test/java/org/thingsboard/server/dao/service/OtaPackageServiceTest.java +++ b/dao/src/test/java/org/thingsboard/server/dao/service/OtaPackageServiceTest.java @@ -38,6 +38,7 @@ import org.thingsboard.server.dao.device.DeviceProfileService; import org.thingsboard.server.dao.device.DeviceService; import org.thingsboard.server.dao.exception.DataValidationException; import org.thingsboard.server.dao.ota.OtaPackageService; +import org.thingsboard.server.dao.tenant.TbTenantProfileCache; import org.thingsboard.server.dao.tenant.TenantProfileService; import java.nio.ByteBuffer; @@ -75,6 +76,8 @@ public class OtaPackageServiceTest extends AbstractServiceTest { OtaPackageService otaPackageService; @Autowired TenantProfileService tenantProfileService; + @Autowired + TbTenantProfileCache tenantProfileCache; @Before public void before() { @@ -95,6 +98,7 @@ public class OtaPackageServiceTest extends AbstractServiceTest { TenantProfile defaultTenantProfile = tenantProfileService.findDefaultTenantProfile(tenantId); defaultTenantProfile.getProfileData().setConfiguration(DefaultTenantProfileConfiguration.builder().maxOtaPackagesInBytes(DATA_SIZE).build()); tenantProfileService.saveTenantProfile(tenantId, defaultTenantProfile); + tenantProfileCache.evict(defaultTenantProfile.getId()); Assert.assertEquals(0, otaPackageService.sumDataSizeByTenantId(tenantId)); From b15ef1c082d7d649dd65bd49bd995be24ebc707b Mon Sep 17 00:00:00 2001 From: Andrii Landiak Date: Tue, 6 Jan 2026 12:55:56 +0200 Subject: [PATCH 12/72] Redis: add username for ACL auth --- application/src/main/resources/thingsboard.yml | 2 ++ .../server/cache/TBRedisClusterConfiguration.java | 6 ++++++ .../server/cache/TBRedisSentinelConfiguration.java | 8 +++++++- .../server/cache/TBRedisStandaloneConfiguration.java | 5 +++++ transport/coap/src/main/resources/tb-coap-transport.yml | 2 ++ transport/http/src/main/resources/tb-http-transport.yml | 2 ++ transport/lwm2m/src/main/resources/tb-lwm2m-transport.yml | 2 ++ transport/mqtt/src/main/resources/tb-mqtt-transport.yml | 2 ++ transport/snmp/src/main/resources/tb-snmp-transport.yml | 2 ++ 9 files changed, 30 insertions(+), 1 deletion(-) diff --git a/application/src/main/resources/thingsboard.yml b/application/src/main/resources/thingsboard.yml index cda7f5782a..5cc3b901ab 100644 --- a/application/src/main/resources/thingsboard.yml +++ b/application/src/main/resources/thingsboard.yml @@ -727,6 +727,8 @@ redis: db: "${REDIS_DB:0}" # db password password: "${REDIS_PASSWORD:}" + # Redis username for ACL authentication (Redis 6.0+). Leave empty for legacy password-only auth + username: "${REDIS_USERNAME:}" # ssl config ssl: # Enable/disable secure connection diff --git a/common/cache/src/main/java/org/thingsboard/server/cache/TBRedisClusterConfiguration.java b/common/cache/src/main/java/org/thingsboard/server/cache/TBRedisClusterConfiguration.java index 0c6599846b..40a1931853 100644 --- a/common/cache/src/main/java/org/thingsboard/server/cache/TBRedisClusterConfiguration.java +++ b/common/cache/src/main/java/org/thingsboard/server/cache/TBRedisClusterConfiguration.java @@ -22,6 +22,7 @@ import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.RedisClusterConfiguration; import org.springframework.data.redis.connection.jedis.JedisClientConfiguration; import org.springframework.data.redis.connection.jedis.JedisConnectionFactory; +import org.thingsboard.server.common.data.StringUtils; @Configuration @ConditionalOnMissingBean(TbCaffeineCacheConfiguration.class) @@ -37,6 +38,9 @@ public class TBRedisClusterConfiguration extends TBRedisCacheConfiguration { @Value("${redis.cluster.useDefaultPoolConfig:true}") private boolean useDefaultPoolConfig; + @Value("${redis.username:}") + private String username; + @Value("${redis.password:}") private String password; @@ -47,6 +51,7 @@ public class TBRedisClusterConfiguration extends TBRedisCacheConfiguration { RedisClusterConfiguration clusterConfiguration = new RedisClusterConfiguration(); clusterConfiguration.setClusterNodes(getNodes(clusterNodes)); clusterConfiguration.setMaxRedirects(maxRedirects); + clusterConfiguration.setUsername(username); clusterConfiguration.setPassword(password); return new JedisConnectionFactory(clusterConfiguration, buildClientConfig()); } @@ -65,4 +70,5 @@ public class TBRedisClusterConfiguration extends TBRedisCacheConfiguration { } return jedisClientConfigurationBuilder.build(); } + } diff --git a/common/cache/src/main/java/org/thingsboard/server/cache/TBRedisSentinelConfiguration.java b/common/cache/src/main/java/org/thingsboard/server/cache/TBRedisSentinelConfiguration.java index 2a4e1b34ac..9c83782071 100644 --- a/common/cache/src/main/java/org/thingsboard/server/cache/TBRedisSentinelConfiguration.java +++ b/common/cache/src/main/java/org/thingsboard/server/cache/TBRedisSentinelConfiguration.java @@ -22,6 +22,7 @@ import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.RedisSentinelConfiguration; import org.springframework.data.redis.connection.jedis.JedisClientConfiguration; import org.springframework.data.redis.connection.jedis.JedisConnectionFactory; +import org.thingsboard.server.common.data.StringUtils; @Configuration @ConditionalOnMissingBean(TbCaffeineCacheConfiguration.class) @@ -46,6 +47,9 @@ public class TBRedisSentinelConfiguration extends TBRedisCacheConfiguration { @Value("${redis.ssl.enabled:false}") private boolean useSsl; + @Value("${redis.username:}") + private String username; + @Value("${redis.password:}") private String password; @@ -54,9 +58,10 @@ public class TBRedisSentinelConfiguration extends TBRedisCacheConfiguration { redisSentinelConfiguration.setMaster(master); redisSentinelConfiguration.setSentinels(getNodes(sentinels)); redisSentinelConfiguration.setSentinelPassword(sentinelPassword); + redisSentinelConfiguration.setUsername(username); redisSentinelConfiguration.setPassword(password); redisSentinelConfiguration.setDatabase(database); - return new JedisConnectionFactory(redisSentinelConfiguration, buildClientConfig()); + return new JedisConnectionFactory(redisSentinelConfiguration, buildClientConfig()); } private JedisClientConfiguration buildClientConfig() { @@ -73,4 +78,5 @@ public class TBRedisSentinelConfiguration extends TBRedisCacheConfiguration { } return jedisClientConfigurationBuilder.build(); } + } diff --git a/common/cache/src/main/java/org/thingsboard/server/cache/TBRedisStandaloneConfiguration.java b/common/cache/src/main/java/org/thingsboard/server/cache/TBRedisStandaloneConfiguration.java index 39944d5217..029e9c72a8 100644 --- a/common/cache/src/main/java/org/thingsboard/server/cache/TBRedisStandaloneConfiguration.java +++ b/common/cache/src/main/java/org/thingsboard/server/cache/TBRedisStandaloneConfiguration.java @@ -54,6 +54,9 @@ public class TBRedisStandaloneConfiguration extends TBRedisCacheConfiguration { @Value("${redis.db:0}") private Integer db; + @Value("${redis.username:}") + private String username; + @Value("${redis.password:}") private String password; @@ -65,6 +68,7 @@ public class TBRedisStandaloneConfiguration extends TBRedisCacheConfiguration { standaloneConfiguration.setHostName(host); standaloneConfiguration.setPort(port); standaloneConfiguration.setDatabase(db); + standaloneConfiguration.setUsername(username); standaloneConfiguration.setPassword(password); return new JedisConnectionFactory(standaloneConfiguration, buildClientConfig()); } @@ -89,4 +93,5 @@ public class TBRedisStandaloneConfiguration extends TBRedisCacheConfiguration { } return jedisClientConfigurationBuilder.build(); } + } diff --git a/transport/coap/src/main/resources/tb-coap-transport.yml b/transport/coap/src/main/resources/tb-coap-transport.yml index 02ec421366..2227aaddc3 100644 --- a/transport/coap/src/main/resources/tb-coap-transport.yml +++ b/transport/coap/src/main/resources/tb-coap-transport.yml @@ -94,6 +94,8 @@ redis: db: "${REDIS_DB:0}" # db password password: "${REDIS_PASSWORD:}" + # Redis username for ACL authentication (Redis 6.0+). Leave empty for legacy password-only auth + username: "${REDIS_USERNAME:}" ssl: # Enable/disable secure connection enabled: "${TB_REDIS_SSL_ENABLED:false}" diff --git a/transport/http/src/main/resources/tb-http-transport.yml b/transport/http/src/main/resources/tb-http-transport.yml index 7fe35a57d5..638bff9641 100644 --- a/transport/http/src/main/resources/tb-http-transport.yml +++ b/transport/http/src/main/resources/tb-http-transport.yml @@ -127,6 +127,8 @@ redis: db: "${REDIS_DB:0}" # db password password: "${REDIS_PASSWORD:}" + # Redis username for ACL authentication (Redis 6.0+). Leave empty for legacy password-only auth + username: "${REDIS_USERNAME:}" ssl: # Enable/disable secure connection enabled: "${TB_REDIS_SSL_ENABLED:false}" diff --git a/transport/lwm2m/src/main/resources/tb-lwm2m-transport.yml b/transport/lwm2m/src/main/resources/tb-lwm2m-transport.yml index b1718a2099..de3b33688d 100644 --- a/transport/lwm2m/src/main/resources/tb-lwm2m-transport.yml +++ b/transport/lwm2m/src/main/resources/tb-lwm2m-transport.yml @@ -94,6 +94,8 @@ redis: db: "${REDIS_DB:0}" # db password password: "${REDIS_PASSWORD:}" + # Redis username for ACL authentication (Redis 6.0+). Leave empty for legacy password-only auth + username: "${REDIS_USERNAME:}" ssl: # Enable/disable secure connection enabled: "${TB_REDIS_SSL_ENABLED:false}" diff --git a/transport/mqtt/src/main/resources/tb-mqtt-transport.yml b/transport/mqtt/src/main/resources/tb-mqtt-transport.yml index 86e5dc5a5b..4378fbaa4e 100644 --- a/transport/mqtt/src/main/resources/tb-mqtt-transport.yml +++ b/transport/mqtt/src/main/resources/tb-mqtt-transport.yml @@ -95,6 +95,8 @@ redis: db: "${REDIS_DB:0}" # db password password: "${REDIS_PASSWORD:}" + # Redis username for ACL authentication (Redis 6.0+). Leave empty for legacy password-only auth + username: "${REDIS_USERNAME:}" ssl: # Enable/disable secure connection enabled: "${TB_REDIS_SSL_ENABLED:false}" diff --git a/transport/snmp/src/main/resources/tb-snmp-transport.yml b/transport/snmp/src/main/resources/tb-snmp-transport.yml index 9dfb9f0b41..a454f6f294 100644 --- a/transport/snmp/src/main/resources/tb-snmp-transport.yml +++ b/transport/snmp/src/main/resources/tb-snmp-transport.yml @@ -94,6 +94,8 @@ redis: db: "${REDIS_DB:0}" # db password password: "${REDIS_PASSWORD:}" + # Redis username for ACL authentication (Redis 6.0+). Leave empty for legacy password-only auth + username: "${REDIS_USERNAME:}" ssl: # Enable/disable secure connection enabled: "${TB_REDIS_SSL_ENABLED:false}" From 7dd23bfcf07743225e1cf3edface5c4a75099049 Mon Sep 17 00:00:00 2001 From: Maksym Tsymbarov Date: Tue, 6 Jan 2026 14:12:24 +0200 Subject: [PATCH 13/72] Fixed map action panel hide when open other data layer --- .../components/widget/lib/maps/data-layer/data-layer-utils.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/maps/data-layer/data-layer-utils.ts b/ui-ngx/src/app/modules/home/components/widget/lib/maps/data-layer/data-layer-utils.ts index 4b7b933d74..4a8c44919d 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/maps/data-layer/data-layer-utils.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/maps/data-layer/data-layer-utils.ts @@ -44,6 +44,7 @@ export const createTooltip = (map: TbMap, tooltip.close(); } else if (canOpen()) { if ((tooltip as any)._prepareOpen((layer as any)._latlng)) { + map.deselectItem(); tooltip.openOn(map.getMap()); } } From b7581e08e73db708310181b2c7abacab53476726 Mon Sep 17 00:00:00 2001 From: nickAS21 Date: Tue, 6 Jan 2026 16:07:04 +0200 Subject: [PATCH 14/72] fix bug coap unicast/multicast request --- .../callback/AbstractSyncSessionCallback.java | 6 ++++++ .../coap/client/DefaultCoapClientContext.java | 17 +++++++++++++---- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/common/transport/coap/src/main/java/org/thingsboard/server/transport/coap/callback/AbstractSyncSessionCallback.java b/common/transport/coap/src/main/java/org/thingsboard/server/transport/coap/callback/AbstractSyncSessionCallback.java index a1bfb004b8..24ddaadb68 100644 --- a/common/transport/coap/src/main/java/org/thingsboard/server/transport/coap/callback/AbstractSyncSessionCallback.java +++ b/common/transport/coap/src/main/java/org/thingsboard/server/transport/coap/callback/AbstractSyncSessionCallback.java @@ -78,6 +78,12 @@ public abstract class AbstractSyncSessionCallback implements SessionMsgListener return false; } } + public static boolean isMulticastRequest(TbCoapObservationState state) { + if (state != null) { + return state.getExchange().advanced().getRequest().isMulticast(); + } + return false; + } protected void respond(Response response) { response.getOptions().setContentFormat(TbCoapContentFormatUtil.getContentFormat(exchange.getRequestOptions().getContentFormat(), state.getContentFormat())); diff --git a/common/transport/coap/src/main/java/org/thingsboard/server/transport/coap/client/DefaultCoapClientContext.java b/common/transport/coap/src/main/java/org/thingsboard/server/transport/coap/client/DefaultCoapClientContext.java index 5c17cb75e8..422721f671 100644 --- a/common/transport/coap/src/main/java/org/thingsboard/server/transport/coap/client/DefaultCoapClientContext.java +++ b/common/transport/coap/src/main/java/org/thingsboard/server/transport/coap/client/DefaultCoapClientContext.java @@ -19,6 +19,7 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.eclipse.californium.core.coap.CoAP; import org.eclipse.californium.core.coap.Response; +import org.eclipse.californium.core.config.CoapConfig; import org.eclipse.californium.core.observe.ObserveRelation; import org.eclipse.californium.core.server.resources.CoapExchange; import org.springframework.context.annotation.Lazy; @@ -514,7 +515,8 @@ public class DefaultCoapClientContext implements CoapClientContext { if (attrs != null) { try { boolean conRequest = AbstractSyncSessionCallback.isConRequest(state.getAttrs()); - int requestId = getNextMsgId(); + boolean isMulticastRequest = AbstractSyncSessionCallback.isMulticastRequest(state.getAttrs()); + int requestId = getNextMsgId(isMulticastRequest); Response response = state.getAdaptor().convertToPublish(msg); response.getOptions().setObserve(attrs.getObserveCounter().getAndIncrement()); response.setConfirmable(conRequest); @@ -578,7 +580,8 @@ public class DefaultCoapClientContext implements CoapClientContext { boolean sent = false; String error = null; boolean conRequest = AbstractSyncSessionCallback.isConRequest(state.getRpc()); - int requestId = getNextMsgId(); + boolean isMulticastRequest = AbstractSyncSessionCallback.isMulticastRequest(state.getRpc()); + int requestId = getNextMsgId(isMulticastRequest); try { Response response = state.getAdaptor().convertToPublish(msg, state.getConfiguration().getRpcRequestDynamicMessageBuilder()); response.getOptions().setObserve(state.getRpc().getObserveCounter().getAndIncrement()); @@ -807,8 +810,14 @@ public class DefaultCoapClientContext implements CoapClientContext { } } - protected int getNextMsgId() { - return ThreadLocalRandom.current().nextInt(NONE, MAX_MID + 1); + protected int getNextMsgId(boolean multicast) { + if (multicast) { + // Range [65000...65535] + return ThreadLocalRandom.current().nextInt(CoapConfig.DEFAULT_MULTICAST_BASE_MID, MAX_MID + 1); + } else { + // Range [0...64999] + return ThreadLocalRandom.current().nextInt(NONE, CoapConfig.DEFAULT_MULTICAST_BASE_MID); + } } private void cancelRpcSubscription(TbCoapClientState state) { From c6af9659fae8cd5d36fe141ca4bc925cf907f95d Mon Sep 17 00:00:00 2001 From: Andrii Landiak Date: Wed, 7 Jan 2026 12:12:01 +0200 Subject: [PATCH 15/72] Improve NotificationRuleApiTest --- .../notification/AbstractNotificationApiTest.java | 8 +++----- .../service/notification/NotificationRuleApiTest.java | 10 ++++------ 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/application/src/test/java/org/thingsboard/server/service/notification/AbstractNotificationApiTest.java b/application/src/test/java/org/thingsboard/server/service/notification/AbstractNotificationApiTest.java index f238a1bbc1..a28e2cb10f 100644 --- a/application/src/test/java/org/thingsboard/server/service/notification/AbstractNotificationApiTest.java +++ b/application/src/test/java/org/thingsboard/server/service/notification/AbstractNotificationApiTest.java @@ -19,9 +19,8 @@ import com.fasterxml.jackson.core.type.TypeReference; import org.apache.commons.lang3.RandomStringUtils; import org.junit.After; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.data.util.Pair; -import org.thingsboard.rule.engine.api.MailService; +import org.springframework.test.context.bean.override.mockito.MockitoBean; import org.thingsboard.rule.engine.api.notification.SlackService; import org.thingsboard.server.common.data.User; import org.thingsboard.server.common.data.id.NotificationRequestId; @@ -69,10 +68,8 @@ public abstract class AbstractNotificationApiTest extends AbstractControllerTest protected NotificationApiWsClient wsClient; protected NotificationApiWsClient otherWsClient; - @MockBean + @MockitoBean protected SlackService slackService; - @Autowired - protected MailService mailService; @Autowired protected NotificationRuleService notificationRuleService; @@ -225,4 +222,5 @@ public abstract class AbstractNotificationApiTest extends AbstractControllerTest public NotificationApiWsClient getAnotherWsClient() { return (NotificationApiWsClient) super.getAnotherWsClient(); } + } diff --git a/application/src/test/java/org/thingsboard/server/service/notification/NotificationRuleApiTest.java b/application/src/test/java/org/thingsboard/server/service/notification/NotificationRuleApiTest.java index bab70ea505..d2d8f8a470 100644 --- a/application/src/test/java/org/thingsboard/server/service/notification/NotificationRuleApiTest.java +++ b/application/src/test/java/org/thingsboard/server/service/notification/NotificationRuleApiTest.java @@ -812,13 +812,13 @@ public class NotificationRuleApiTest extends AbstractNotificationApiTest { @Test public void testNotificationsDeduplication_resourcesShortage() throws Exception { loginSysAdmin(); + NotificationTarget sysadmins = createNotificationTarget(new SystemAdministratorsFilter()); ResourcesShortageNotificationRuleTriggerConfig triggerConfig = ResourcesShortageNotificationRuleTriggerConfig.builder() .ramThreshold(0.01f) .cpuThreshold(1f) .storageThreshold(1f) .build(); - createNotificationRule(triggerConfig, "Warning: ${resource} shortage", "${resource} shortage", createNotificationTarget(tenantAdminUserId).getId()); - loginTenantAdmin(); + createNotificationRule(triggerConfig, "Warning: ${resource} shortage", "${resource} shortage", sysadmins.getId()); assertThat(getMyNotifications(false, 100)).size().isZero(); for (int i = 0; i < 10; i++) { @@ -848,13 +848,13 @@ public class NotificationRuleApiTest extends AbstractNotificationApiTest { @Test public void testNotificationsResourcesShortage_whenThresholdChangeToMatchingFilter_thenSendNotification() throws Exception { loginSysAdmin(); + NotificationTarget sysadmins = createNotificationTarget(new SystemAdministratorsFilter()); ResourcesShortageNotificationRuleTriggerConfig triggerConfig = ResourcesShortageNotificationRuleTriggerConfig.builder() .ramThreshold(1f) .cpuThreshold(1f) .storageThreshold(1f) .build(); - NotificationRule rule = createNotificationRule(triggerConfig, "Warning: ${resource} shortage", "${resource} shortage", createNotificationTarget(tenantAdminUserId).getId()); - loginTenantAdmin(); + NotificationRule rule = createNotificationRule(triggerConfig, "Warning: ${resource} shortage", "${resource} shortage", sysadmins.getId()); Method method = DefaultSystemInfoService.class.getDeclaredMethod("saveCurrentMonolithSystemInfo"); method.setAccessible(true); @@ -863,7 +863,6 @@ public class NotificationRuleApiTest extends AbstractNotificationApiTest { TimeUnit.SECONDS.sleep(5); assertThat(getMyNotifications(false, 100)).size().isZero(); - loginSysAdmin(); triggerConfig = ResourcesShortageNotificationRuleTriggerConfig.builder() .ramThreshold(0.01f) .cpuThreshold(1f) @@ -871,7 +870,6 @@ public class NotificationRuleApiTest extends AbstractNotificationApiTest { .build(); rule.setTriggerConfig(triggerConfig); saveNotificationRule(rule); - loginTenantAdmin(); method.invoke(systemInfoService); From c4de8926e40779b6ce39413f22c53f4dc6e190ef Mon Sep 17 00:00:00 2001 From: Andrii Landiak Date: Wed, 7 Jan 2026 12:34:25 +0200 Subject: [PATCH 16/72] Refactoring after review --- .../EventsDeletionTaskProcessor.java | 23 ++----- .../server/dao/event/EventService.java | 2 + .../server/dao/event/BaseEventService.java | 12 ++-- .../server/dao/event/EventDao.java | 60 +------------------ .../server/dao/sql/event/JpaBaseEventDao.java | 8 ++- .../insert/sql/SqlPartitioningRepository.java | 2 +- 6 files changed, 22 insertions(+), 85 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/service/housekeeper/processor/EventsDeletionTaskProcessor.java b/application/src/main/java/org/thingsboard/server/service/housekeeper/processor/EventsDeletionTaskProcessor.java index 8a0a1c882f..738249f29c 100644 --- a/application/src/main/java/org/thingsboard/server/service/housekeeper/processor/EventsDeletionTaskProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/housekeeper/processor/EventsDeletionTaskProcessor.java @@ -17,15 +17,13 @@ package org.thingsboard.server.service.housekeeper.processor; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Component; -import org.thingsboard.server.common.data.event.ErrorEventFilter; -import org.thingsboard.server.common.data.event.EventFilter; import org.thingsboard.server.common.data.event.EventType; -import org.thingsboard.server.common.data.event.LifeCycleEventFilter; -import org.thingsboard.server.common.data.event.StatisticsEventFilter; import org.thingsboard.server.common.data.housekeeper.HousekeeperTask; import org.thingsboard.server.common.data.housekeeper.HousekeeperTaskType; import org.thingsboard.server.dao.event.EventService; +import java.util.Arrays; + @Component @RequiredArgsConstructor public class EventsDeletionTaskProcessor extends HousekeeperTaskProcessor { @@ -35,21 +33,8 @@ public class EventsDeletionTaskProcessor extends HousekeeperTaskProcessor new ErrorEventFilter(); - case LC_EVENT -> new LifeCycleEventFilter(); - case STATS -> new StatisticsEventFilter(); - default -> throw new IllegalArgumentException("Unexpected non-debug event type: " + eventType); - }; + EventType[] nonDebugEventTypes = Arrays.stream(EventType.values()).filter(eventType -> !eventType.isDebug()).toArray(EventType[]::new); + eventService.removeEvents(task.getTenantId(), task.getEntityId(), 0L, System.currentTimeMillis(), nonDebugEventTypes); } @Override diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/event/EventService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/event/EventService.java index 556ef0371d..26223f14e2 100644 --- a/common/dao-api/src/main/java/org/thingsboard/server/dao/event/EventService.java +++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/event/EventService.java @@ -41,6 +41,8 @@ public interface EventService { void removeEvents(TenantId tenantId, EntityId entityId); + void removeEvents(TenantId tenantId, EntityId entityId, Long startTime, Long endTime, EventType... types); + void removeEvents(TenantId tenantId, EntityId entityId, EventFilter eventFilter, Long startTime, Long endTime); void cleanupEvents(long regularEventExpTs, long debugEventExpTs, boolean cleanupDb); diff --git a/dao/src/main/java/org/thingsboard/server/dao/event/BaseEventService.java b/dao/src/main/java/org/thingsboard/server/dao/event/BaseEventService.java index d81d8eb0f3..68ffce0acf 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/event/BaseEventService.java +++ b/dao/src/main/java/org/thingsboard/server/dao/event/BaseEventService.java @@ -47,11 +47,6 @@ import java.util.stream.Collectors; @Slf4j public class BaseEventService implements EventService { - @Value("${sql.ttl.events.events_ttl:0}") - private long ttlInSec; - @Value("${sql.ttl.events.debug_events_ttl:604800}") - private long debugTtlInSec; - @Value("${event.debug.max-symbols:4096}") private int maxDebugEventSymbols; @@ -125,7 +120,12 @@ public class BaseEventService implements EventService { @Override public void removeEvents(TenantId tenantId, EntityId entityId) { - removeEvents(tenantId, entityId, null, null, null); + removeEvents(tenantId, entityId, null, null); + } + + @Override + public void removeEvents(TenantId tenantId, EntityId entityId, Long startTime, Long endTime, EventType... types) { + eventDao.removeEvents(tenantId.getId(), entityId.getId(), startTime, endTime, types); } @Override diff --git a/dao/src/main/java/org/thingsboard/server/dao/event/EventDao.java b/dao/src/main/java/org/thingsboard/server/dao/event/EventDao.java index 7494ad2532..d8c7a0678a 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/event/EventDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/event/EventDao.java @@ -25,80 +25,24 @@ import org.thingsboard.server.common.data.page.TimePageLink; import java.util.List; import java.util.UUID; -/** - * The Interface EventDao. - */ public interface EventDao { - /** - * Save or update event object async - * - * @param event the event object - * @return saved event object future - */ ListenableFuture saveAsync(Event event); - /** - * Find events by tenantId, entityId, eventType and pageLink. - * - * @param tenantId the tenantId - * @param entityId the entityId - * @param eventType the eventType - * @param pageLink the pageLink - * @return the event list - */ PageData findEvents(UUID tenantId, UUID entityId, EventType eventType, TimePageLink pageLink); PageData findEventByFilter(UUID tenantId, UUID entityId, EventFilter eventFilter, TimePageLink pageLink); - /** - * Find latest events by tenantId, entityId and eventType. - * - * @param tenantId the tenantId - * @param entityId the entityId - * @param eventType the eventType - * @param limit the limit - * @return the event list - */ List findLatestEvents(UUID tenantId, UUID entityId, EventType eventType, int limit); - /** - * Find latest debug IN event by tenantId, entityId. - * - * @param tenantId the tenantId - * @param entityId the entityId - * @return the latest debug IN event - */ Event findLatestDebugRuleNodeInEvent(UUID tenantId, UUID entityId); - /** - * Executes stored procedure to cleanup old events. Uses separate ttl for debug and other events. - * @param regularEventExpTs the expiration time of the regular events - * @param debugEventExpTs the expiration time of the debug events - * @param cleanupDb - */ void cleanupEvents(long regularEventExpTs, long debugEventExpTs, boolean cleanupDb); - /** - * Removes all events for the specified entity and time interval - * - * @param tenantId - * @param entityId - * @param startTime - * @param endTime - */ void removeEvents(UUID tenantId, UUID entityId, Long startTime, Long endTime); - /** - * - * Removes all events for the specified entity, event filter and time interval - * - * @param tenantId - * @param entityId - * @param eventFilter - * @param startTime - * @param endTime - */ + void removeEvents(UUID tenantId, UUID entityId, Long startTime, Long endTime, EventType... types); + void removeEvents(UUID tenantId, UUID entityId, EventFilter eventFilter, Long startTime, Long endTime); } diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/event/JpaBaseEventDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/event/JpaBaseEventDao.java index 189e024608..5cd9012831 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/event/JpaBaseEventDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/event/JpaBaseEventDao.java @@ -173,8 +173,14 @@ public class JpaBaseEventDao implements EventDao { @Override public void removeEvents(UUID tenantId, UUID entityId, Long startTime, Long endTime) { + removeEvents(tenantId, entityId, startTime, endTime, EventType.values()); + } + + @Override + public void removeEvents(UUID tenantId, UUID entityId, Long startTime, Long endTime, EventType... types) { log.debug("[{}][{}] Remove events [{}-{}] ", tenantId, entityId, startTime, endTime); - for (EventType eventType : EventType.values()) { + EventType[] eventTypes = (types == null || types.length == 0) ? EventType.values() : types; + for (EventType eventType : eventTypes) { getEventRepository(eventType).removeEvents(tenantId, entityId, startTime, endTime); } } diff --git a/dao/src/main/java/org/thingsboard/server/dao/sqlts/insert/sql/SqlPartitioningRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sqlts/insert/sql/SqlPartitioningRepository.java index 0a7cf237c8..550922bbc6 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sqlts/insert/sql/SqlPartitioningRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sqlts/insert/sql/SqlPartitioningRepository.java @@ -54,7 +54,7 @@ public class SqlPartitioningRepository { getJdbcTemplate().execute(partition.getQuery()); } - @Transactional(propagation = Propagation.NOT_SUPPORTED)// executing non-transactionally, so that parent transaction is not aborted on partition save error + @Transactional(propagation = Propagation.NOT_SUPPORTED) // executing non-transactionally, so that parent transaction is not aborted on partition save error public void createPartitionIfNotExists(String table, long entityTs, long partitionDurationMs) { long partitionStartTs = calculatePartitionStartTime(entityTs, partitionDurationMs); Map partitions = tablesPartitions.computeIfAbsent(table, t -> new ConcurrentHashMap<>()); From aabf0c3813d5f5962f47dd1382589787241ccdfe Mon Sep 17 00:00:00 2001 From: Andrii Landiak Date: Wed, 7 Jan 2026 13:03:22 +0200 Subject: [PATCH 17/72] Improve validation for user credentials on login --- .../security/system/DefaultSystemSecurityService.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/service/security/system/DefaultSystemSecurityService.java b/application/src/main/java/org/thingsboard/server/service/security/system/DefaultSystemSecurityService.java index 69536f0953..a977def292 100644 --- a/application/src/main/java/org/thingsboard/server/service/security/system/DefaultSystemSecurityService.java +++ b/application/src/main/java/org/thingsboard/server/service/security/system/DefaultSystemSecurityService.java @@ -80,11 +80,15 @@ public class DefaultSystemSecurityService implements SystemSecurityService { @Override public void validateUserCredentials(TenantId tenantId, UserCredentials userCredentials, String username, String password) throws AuthenticationException { + if (!userCredentials.isEnabled()) { + throw new DisabledException("User is not active"); + } + if (!encoder.matches(password, userCredentials.getPassword())) { int failedLoginAttempts = userService.increaseFailedLoginAttempts(tenantId, userCredentials.getUserId()); SecuritySettings securitySettings = securitySettingsService.getSecuritySettings(); if (securitySettings.getMaxFailedLoginAttempts() != null && securitySettings.getMaxFailedLoginAttempts() > 0) { - if (failedLoginAttempts > securitySettings.getMaxFailedLoginAttempts() && userCredentials.isEnabled()) { + if (failedLoginAttempts > securitySettings.getMaxFailedLoginAttempts()) { lockAccount(userCredentials.getUserId(), username, securitySettings.getUserLockoutNotificationEmail(), securitySettings.getMaxFailedLoginAttempts()); throw new LockedException("Authentication Failed. Username was locked due to security policy."); } @@ -92,10 +96,6 @@ public class DefaultSystemSecurityService implements SystemSecurityService { throw new BadCredentialsException("Authentication Failed. Username or Password not valid."); } - if (!userCredentials.isEnabled()) { - throw new DisabledException("User is not active"); - } - userService.resetFailedLoginAttempts(tenantId, userCredentials.getUserId()); SecuritySettings securitySettings = securitySettingsService.getSecuritySettings(); From 5b5b4dff6b2fffce002793b15dbe4b264fa720db Mon Sep 17 00:00:00 2001 From: Viacheslav Klimov Date: Wed, 7 Jan 2026 14:46:51 +0200 Subject: [PATCH 18/72] Update license header --- .github/release.yml | 2 +- .github/workflows/check-configuration-files.yml | 2 +- .github/workflows/license-header-format.yml | 2 +- application/pom.xml | 2 +- application/src/main/conf/logback.xml | 2 +- application/src/main/conf/thingsboard.conf | 2 +- application/src/main/data/upgrade/basic/schema_update.sql | 2 +- .../converter/xml/MappingJackson2XmlHttpMessageConverter.java | 2 +- .../org/thingsboard/server/ThingsboardInstallApplication.java | 2 +- .../org/thingsboard/server/ThingsboardServerApplication.java | 2 +- .../java/org/thingsboard/server/actors/ActorSystemContext.java | 2 +- .../server/actors/TbEntityTypeActorIdPredicate.java | 2 +- .../main/java/org/thingsboard/server/actors/app/AppActor.java | 2 +- .../java/org/thingsboard/server/actors/app/AppInitMsg.java | 2 +- .../actors/calculatedField/AbstractCalculatedFieldActor.java | 2 +- .../actors/calculatedField/CalculatedFieldEntityActor.java | 2 +- .../calculatedField/CalculatedFieldEntityActorCreator.java | 2 +- .../actors/calculatedField/CalculatedFieldEntityDeleteMsg.java | 2 +- .../calculatedField/CalculatedFieldEntityMessageProcessor.java | 2 +- .../actors/calculatedField/CalculatedFieldException.java | 2 +- .../calculatedField/CalculatedFieldLinkedTelemetryMsg.java | 2 +- .../actors/calculatedField/CalculatedFieldManagerActor.java | 2 +- .../calculatedField/CalculatedFieldManagerActorCreator.java | 2 +- .../CalculatedFieldManagerMessageProcessor.java | 2 +- .../actors/calculatedField/CalculatedFieldStateRestoreMsg.java | 2 +- .../actors/calculatedField/CalculatedFieldTelemetryMsg.java | 2 +- .../EntityCalculatedFieldLinkedTelemetryMsg.java | 2 +- .../calculatedField/EntityCalculatedFieldTelemetryMsg.java | 2 +- .../actors/calculatedField/EntityInitCalculatedFieldMsg.java | 2 +- .../server/actors/calculatedField/MultipleTbCallback.java | 2 +- .../java/org/thingsboard/server/actors/device/DeviceActor.java | 2 +- .../thingsboard/server/actors/device/DeviceActorCreator.java | 2 +- .../server/actors/device/DeviceActorMessageProcessor.java | 2 +- .../java/org/thingsboard/server/actors/device/SessionInfo.java | 2 +- .../thingsboard/server/actors/device/SessionInfoMetaData.java | 2 +- .../server/actors/device/SessionTimeoutCheckMsg.java | 2 +- .../server/actors/device/ToDeviceRpcRequestMetadata.java | 2 +- .../server/actors/device/ToServerRpcRequestMetadata.java | 2 +- .../server/actors/device/TransportSessionCloseReason.java | 2 +- .../thingsboard/server/actors/ruleChain/DefaultTbContext.java | 2 +- .../thingsboard/server/actors/ruleChain/RuleChainActor.java | 2 +- .../actors/ruleChain/RuleChainActorMessageProcessor.java | 2 +- .../thingsboard/server/actors/ruleChain/RuleChainInputMsg.java | 2 +- .../server/actors/ruleChain/RuleChainManagerActor.java | 2 +- .../server/actors/ruleChain/RuleChainOutputMsg.java | 2 +- .../server/actors/ruleChain/RuleChainToRuleChainMsg.java | 2 +- .../server/actors/ruleChain/RuleChainToRuleNodeMsg.java | 2 +- .../server/actors/ruleChain/RuleEngineComponentActor.java | 2 +- .../org/thingsboard/server/actors/ruleChain/RuleNodeActor.java | 2 +- .../server/actors/ruleChain/RuleNodeActorMessageProcessor.java | 2 +- .../org/thingsboard/server/actors/ruleChain/RuleNodeCtx.java | 2 +- .../thingsboard/server/actors/ruleChain/RuleNodeRelation.java | 2 +- .../actors/ruleChain/RuleNodeToRuleChainTellNextMsg.java | 2 +- .../thingsboard/server/actors/ruleChain/RuleNodeToSelfMsg.java | 2 +- .../server/actors/ruleChain/TbToRuleChainActorMsg.java | 2 +- .../server/actors/ruleChain/TbToRuleNodeActorMsg.java | 2 +- .../org/thingsboard/server/actors/service/ActorService.java | 2 +- .../org/thingsboard/server/actors/service/ComponentActor.java | 2 +- .../thingsboard/server/actors/service/ContextAwareActor.java | 2 +- .../thingsboard/server/actors/service/ContextBasedCreator.java | 2 +- .../thingsboard/server/actors/service/DefaultActorService.java | 2 +- .../server/actors/shared/AbstractContextAwareMsgProcessor.java | 2 +- .../thingsboard/server/actors/shared/ActorTerminationMsg.java | 2 +- .../server/actors/shared/ComponentMsgProcessor.java | 2 +- .../thingsboard/server/actors/shared/RuleChainErrorActor.java | 2 +- .../java/org/thingsboard/server/actors/stats/StatsActor.java | 2 +- .../org/thingsboard/server/actors/stats/StatsPersistMsg.java | 2 +- .../org/thingsboard/server/actors/stats/StatsPersistTick.java | 2 +- .../thingsboard/server/actors/tenant/DebugTbRateLimits.java | 2 +- .../java/org/thingsboard/server/actors/tenant/TenantActor.java | 2 +- .../main/java/org/thingsboard/server/config/CryptoConfig.java | 2 +- .../config/CustomOAuth2AuthorizationRequestResolver.java | 2 +- .../java/org/thingsboard/server/config/MvcCorsProperties.java | 2 +- .../thingsboard/server/config/RateLimitProcessingFilter.java | 2 +- .../org/thingsboard/server/config/SchedulingConfiguration.java | 2 +- .../org/thingsboard/server/config/SwaggerConfiguration.java | 2 +- .../server/config/TbRuleEngineSecurityConfiguration.java | 2 +- .../server/config/ThingsboardMessageConfiguration.java | 2 +- .../server/config/ThingsboardSecurityConfiguration.java | 2 +- .../src/main/java/org/thingsboard/server/config/WebConfig.java | 2 +- .../org/thingsboard/server/config/WebSocketConfiguration.java | 2 +- .../thingsboard/server/config/annotations/ApiOperation.java | 2 +- .../config/mqtt/MqttClientRetransmissionSettingsComponent.java | 2 +- .../server/config/mqtt/MqttClientSettingsComponent.java | 2 +- .../thingsboard/server/controller/AbstractRpcController.java | 2 +- .../org/thingsboard/server/controller/AdminController.java | 2 +- .../org/thingsboard/server/controller/AiModelController.java | 2 +- .../thingsboard/server/controller/AlarmCommentController.java | 2 +- .../org/thingsboard/server/controller/AlarmController.java | 2 +- .../org/thingsboard/server/controller/AssetController.java | 2 +- .../thingsboard/server/controller/AssetProfileController.java | 2 +- .../org/thingsboard/server/controller/AuditLogController.java | 2 +- .../java/org/thingsboard/server/controller/AuthController.java | 2 +- .../thingsboard/server/controller/AutoCommitController.java | 2 +- .../java/org/thingsboard/server/controller/BaseController.java | 2 +- .../server/controller/CalculatedFieldController.java | 2 +- .../server/controller/ComponentDescriptorController.java | 2 +- .../org/thingsboard/server/controller/ControllerConstants.java | 2 +- .../org/thingsboard/server/controller/CustomerController.java | 2 +- .../org/thingsboard/server/controller/DashboardController.java | 2 +- .../server/controller/DeviceConnectivityController.java | 2 +- .../org/thingsboard/server/controller/DeviceController.java | 2 +- .../thingsboard/server/controller/DeviceProfileController.java | 2 +- .../org/thingsboard/server/controller/DomainController.java | 2 +- .../java/org/thingsboard/server/controller/EdgeController.java | 2 +- .../org/thingsboard/server/controller/EdgeEventController.java | 2 +- .../server/controller/EntitiesVersionControlController.java | 2 +- .../thingsboard/server/controller/EntityQueryController.java | 2 +- .../server/controller/EntityRelationController.java | 2 +- .../thingsboard/server/controller/EntityViewController.java | 2 +- .../org/thingsboard/server/controller/EventController.java | 2 +- .../thingsboard/server/controller/HttpValidationCallback.java | 2 +- .../org/thingsboard/server/controller/ImageController.java | 2 +- .../java/org/thingsboard/server/controller/JobController.java | 2 +- .../org/thingsboard/server/controller/Lwm2mController.java | 2 +- .../server/controller/MailConfigTemplateController.java | 2 +- .../server/controller/MobileAppBundleController.java | 2 +- .../org/thingsboard/server/controller/MobileAppController.java | 2 +- .../thingsboard/server/controller/NotificationController.java | 2 +- .../server/controller/NotificationRuleController.java | 2 +- .../server/controller/NotificationTargetController.java | 2 +- .../server/controller/NotificationTemplateController.java | 2 +- .../server/controller/OAuth2ConfigTemplateController.java | 2 +- .../org/thingsboard/server/controller/OAuth2Controller.java | 2 +- .../thingsboard/server/controller/OtaPackageController.java | 2 +- .../server/controller/QrCodeSettingsController.java | 2 +- .../org/thingsboard/server/controller/QueueController.java | 2 +- .../thingsboard/server/controller/QueueStatsController.java | 2 +- .../org/thingsboard/server/controller/RpcV1Controller.java | 2 +- .../org/thingsboard/server/controller/RpcV2Controller.java | 2 +- .../org/thingsboard/server/controller/RuleChainController.java | 2 +- .../thingsboard/server/controller/RuleEngineController.java | 2 +- .../thingsboard/server/controller/SystemInfoController.java | 2 +- .../thingsboard/server/controller/TbResourceController.java | 2 +- .../java/org/thingsboard/server/controller/TbUrlConstants.java | 2 +- .../org/thingsboard/server/controller/TelemetryController.java | 2 +- .../org/thingsboard/server/controller/TenantController.java | 2 +- .../thingsboard/server/controller/TenantProfileController.java | 2 +- .../org/thingsboard/server/controller/TrendzController.java | 2 +- .../server/controller/TwoFactorAuthConfigController.java | 2 +- .../thingsboard/server/controller/TwoFactorAuthController.java | 2 +- .../thingsboard/server/controller/UiSettingsController.java | 2 +- .../org/thingsboard/server/controller/UsageInfoController.java | 2 +- .../java/org/thingsboard/server/controller/UserController.java | 2 +- .../thingsboard/server/controller/WidgetTypeController.java | 2 +- .../thingsboard/server/controller/WidgetsBundleController.java | 2 +- .../server/controller/plugin/TbWebSocketHandler.java | 2 +- .../thingsboard/server/controller/plugin/TbWebSocketMsg.java | 2 +- .../server/controller/plugin/TbWebSocketMsgType.java | 2 +- .../server/controller/plugin/TbWebSocketPingMsg.java | 2 +- .../server/controller/plugin/TbWebSocketTextMsg.java | 2 +- .../thingsboard/server/exception/AccessDeniedException.java | 2 +- .../server/exception/CalculatedFieldStateException.java | 2 +- .../thingsboard/server/exception/EntityNotFoundException.java | 2 +- .../thingsboard/server/exception/InternalErrorException.java | 2 +- .../server/exception/InvalidParametersException.java | 2 +- .../exception/ThingsboardCredentialsExpiredResponse.java | 2 +- .../exception/ThingsboardCredentialsViolationResponse.java | 2 +- .../thingsboard/server/exception/ThingsboardErrorResponse.java | 2 +- .../server/exception/ThingsboardErrorResponseHandler.java | 2 +- .../thingsboard/server/exception/ToErrorResponseEntity.java | 2 +- .../thingsboard/server/exception/UnauthorizedException.java | 2 +- .../thingsboard/server/exception/UncheckedApiException.java | 2 +- .../server/install/ThingsboardInstallConfiguration.java | 2 +- .../server/install/ThingsboardInstallException.java | 2 +- .../thingsboard/server/install/ThingsboardInstallService.java | 2 +- .../thingsboard/server/service/action/EntityActionService.java | 2 +- .../org/thingsboard/server/service/ai/AiChatModelService.java | 2 +- .../thingsboard/server/service/ai/AiChatModelServiceImpl.java | 2 +- .../org/thingsboard/server/service/ai/AiRequestsExecutor.java | 2 +- .../server/service/ai/DefaultAiRequestsExecutor.java | 2 +- .../server/service/ai/Langchain4jChatModelConfigurerImpl.java | 2 +- .../thingsboard/server/service/apiusage/BaseApiUsageState.java | 2 +- .../server/service/apiusage/CustomerApiUsageState.java | 2 +- .../server/service/apiusage/DefaultTbApiUsageStateService.java | 2 +- .../server/service/apiusage/TbApiUsageStateService.java | 2 +- .../server/service/apiusage/TenantApiUsageState.java | 2 +- .../server/service/asset/AssetBulkImportService.java | 2 +- .../server/service/cf/AbstractCalculatedFieldStateService.java | 2 +- .../thingsboard/server/service/cf/CalculatedFieldCache.java | 2 +- .../server/service/cf/CalculatedFieldInitService.java | 2 +- .../server/service/cf/CalculatedFieldProcessingService.java | 2 +- .../server/service/cf/CalculatedFieldQueueService.java | 2 +- .../thingsboard/server/service/cf/CalculatedFieldResult.java | 2 +- .../server/service/cf/CalculatedFieldStateService.java | 2 +- .../main/java/org/thingsboard/server/service/cf/CfRocksDb.java | 2 +- .../server/service/cf/DefaultCalculatedFieldCache.java | 2 +- .../service/cf/DefaultCalculatedFieldProcessingService.java | 2 +- .../server/service/cf/DefaultCalculatedFieldQueueService.java | 2 +- .../server/service/cf/cache/TenantEntityProfileCache.java | 2 +- .../server/service/cf/ctx/CalculatedFieldEntityCtx.java | 2 +- .../server/service/cf/ctx/CalculatedFieldEntityCtxId.java | 2 +- .../thingsboard/server/service/cf/ctx/state/ArgumentEntry.java | 2 +- .../server/service/cf/ctx/state/ArgumentEntryType.java | 2 +- .../server/service/cf/ctx/state/BaseCalculatedFieldState.java | 2 +- .../server/service/cf/ctx/state/CalculatedFieldCtx.java | 2 +- .../service/cf/ctx/state/CalculatedFieldScriptEngine.java | 2 +- .../server/service/cf/ctx/state/CalculatedFieldState.java | 2 +- .../service/cf/ctx/state/CalculatedFieldTbelScriptEngine.java | 2 +- .../service/cf/ctx/state/KafkaCalculatedFieldStateService.java | 2 +- .../cf/ctx/state/RocksDBCalculatedFieldStateService.java | 2 +- .../service/cf/ctx/state/ScriptCalculatedFieldState.java | 2 +- .../service/cf/ctx/state/SimpleCalculatedFieldState.java | 2 +- .../server/service/cf/ctx/state/SingleValueArgumentEntry.java | 2 +- .../server/service/cf/ctx/state/TsRollingArgumentEntry.java | 2 +- .../service/component/AnnotationComponentDiscoveryService.java | 2 +- .../server/service/component/ComponentDiscoveryService.java | 2 +- .../server/service/component/RuleNodeClassInfo.java | 2 +- .../server/service/device/ClaimDevicesServiceImpl.java | 2 +- .../server/service/device/DeviceBulkImportService.java | 2 +- .../server/service/device/DeviceProvisionServiceImpl.java | 2 +- .../thingsboard/server/service/edge/EdgeBulkImportService.java | 2 +- .../thingsboard/server/service/edge/EdgeContextComponent.java | 2 +- .../server/service/edge/EdgeEventSourcingListener.java | 2 +- .../server/service/edge/EdgeMsgConstructorUtils.java | 2 +- .../server/service/edge/RelatedEdgesSourcingListener.java | 2 +- .../BaseEdgeInstallUpgradeInstructionsService.java | 2 +- .../instructions/DefaultEdgeInstallInstructionsService.java | 2 +- .../instructions/DefaultEdgeUpgradeInstructionsService.java | 2 +- .../edge/instructions/EdgeInstallInstructionsService.java | 2 +- .../edge/instructions/EdgeUpgradeInstructionsService.java | 2 +- .../server/service/edge/rpc/EdgeEventStorageSettings.java | 2 +- .../thingsboard/server/service/edge/rpc/EdgeGrpcService.java | 2 +- .../thingsboard/server/service/edge/rpc/EdgeGrpcSession.java | 2 +- .../thingsboard/server/service/edge/rpc/EdgeRpcService.java | 2 +- .../thingsboard/server/service/edge/rpc/EdgeSessionState.java | 2 +- .../thingsboard/server/service/edge/rpc/EdgeSyncCursor.java | 2 +- .../server/service/edge/rpc/KafkaEdgeEventService.java | 2 +- .../server/service/edge/rpc/KafkaEdgeGrpcSession.java | 2 +- .../server/service/edge/rpc/PostgresEdgeGrpcSession.java | 2 +- .../service/edge/rpc/fetch/AdminSettingsEdgeEventFetcher.java | 2 +- .../service/edge/rpc/fetch/AssetProfilesEdgeEventFetcher.java | 2 +- .../server/service/edge/rpc/fetch/AssetsEdgeEventFetcher.java | 2 +- .../service/edge/rpc/fetch/BasePageableEdgeEventFetcher.java | 2 +- .../service/edge/rpc/fetch/BaseUsersEdgeEventFetcher.java | 2 +- .../edge/rpc/fetch/BaseWidgetTypesEdgeEventFetcher.java | 2 +- .../edge/rpc/fetch/BaseWidgetsBundlesEdgeEventFetcher.java | 2 +- .../service/edge/rpc/fetch/CustomerEdgeEventFetcher.java | 2 +- .../service/edge/rpc/fetch/CustomerUsersEdgeEventFetcher.java | 2 +- .../service/edge/rpc/fetch/DashboardsEdgeEventFetcher.java | 2 +- .../edge/rpc/fetch/DefaultProfilesEdgeEventFetcher.java | 2 +- .../service/edge/rpc/fetch/DeviceProfilesEdgeEventFetcher.java | 2 +- .../server/service/edge/rpc/fetch/DevicesEdgeEventFetcher.java | 2 +- .../server/service/edge/rpc/fetch/EdgeEventFetcher.java | 2 +- .../service/edge/rpc/fetch/EntityViewsEdgeEventFetcher.java | 2 +- .../server/service/edge/rpc/fetch/GeneralEdgeEventFetcher.java | 2 +- .../edge/rpc/fetch/NotificationRuleEdgeEventFetcher.java | 2 +- .../edge/rpc/fetch/NotificationTargetEdgeEventFetcher.java | 2 +- .../edge/rpc/fetch/NotificationTemplateEdgeEventFetcher.java | 2 +- .../server/service/edge/rpc/fetch/OAuth2EdgeEventFetcher.java | 2 +- .../service/edge/rpc/fetch/OtaPackagesEdgeEventFetcher.java | 2 +- .../server/service/edge/rpc/fetch/QueuesEdgeEventFetcher.java | 2 +- .../service/edge/rpc/fetch/RuleChainsEdgeEventFetcher.java | 2 +- .../edge/rpc/fetch/SystemWidgetTypesEdgeEventFetcher.java | 2 +- .../edge/rpc/fetch/SystemWidgetsBundlesEdgeEventFetcher.java | 2 +- .../edge/rpc/fetch/TenantAdminUsersEdgeEventFetcher.java | 2 +- .../server/service/edge/rpc/fetch/TenantEdgeEventFetcher.java | 2 +- .../edge/rpc/fetch/TenantResourcesEdgeEventFetcher.java | 2 +- .../edge/rpc/fetch/TenantWidgetTypesEdgeEventFetcher.java | 2 +- .../edge/rpc/fetch/TenantWidgetsBundlesEdgeEventFetcher.java | 2 +- .../server/service/edge/rpc/processor/BaseEdgeProcessor.java | 2 +- .../server/service/edge/rpc/processor/EdgeProcessor.java | 2 +- .../service/edge/rpc/processor/alarm/AlarmEdgeProcessor.java | 2 +- .../service/edge/rpc/processor/alarm/AlarmProcessor.java | 2 +- .../service/edge/rpc/processor/alarm/BaseAlarmProcessor.java | 2 +- .../rpc/processor/alarm/comment/AlarmCommentEdgeProcessor.java | 2 +- .../rpc/processor/alarm/comment/AlarmCommentProcessor.java | 2 +- .../service/edge/rpc/processor/asset/AssetEdgeProcessor.java | 2 +- .../service/edge/rpc/processor/asset/AssetProcessor.java | 2 +- .../service/edge/rpc/processor/asset/BaseAssetProcessor.java | 2 +- .../rpc/processor/asset/profile/AssetProfileEdgeProcessor.java | 2 +- .../rpc/processor/asset/profile/AssetProfileProcessor.java | 2 +- .../rpc/processor/asset/profile/BaseAssetProfileProcessor.java | 2 +- .../edge/rpc/processor/cf/BaseCalculatedFieldProcessor.java | 2 +- .../edge/rpc/processor/cf/CalculatedFieldEdgeProcessor.java | 2 +- .../edge/rpc/processor/cf/CalculatedFieldProcessor.java | 2 +- .../edge/rpc/processor/customer/CustomerEdgeProcessor.java | 2 +- .../edge/rpc/processor/dashboard/BaseDashboardProcessor.java | 2 +- .../edge/rpc/processor/dashboard/DashboardEdgeProcessor.java | 2 +- .../edge/rpc/processor/dashboard/DashboardProcessor.java | 2 +- .../service/edge/rpc/processor/device/BaseDeviceProcessor.java | 2 +- .../service/edge/rpc/processor/device/DeviceEdgeProcessor.java | 2 +- .../service/edge/rpc/processor/device/DeviceProcessor.java | 2 +- .../processor/device/profile/BaseDeviceProfileProcessor.java | 2 +- .../processor/device/profile/DeviceProfileEdgeProcessor.java | 2 +- .../rpc/processor/device/profile/DeviceProfileProcessor.java | 2 +- .../service/edge/rpc/processor/edge/EdgeEntityProcessor.java | 2 +- .../edge/rpc/processor/entityview/BaseEntityViewProcessor.java | 2 +- .../edge/rpc/processor/entityview/EntityViewEdgeProcessor.java | 2 +- .../edge/rpc/processor/entityview/EntityViewProcessor.java | 2 +- .../processor/notification/NotificationRuleEdgeProcessor.java | 2 +- .../notification/NotificationTargetEdgeProcessor.java | 2 +- .../notification/NotificationTemplateEdgeProcessor.java | 2 +- .../service/edge/rpc/processor/oauth2/DomainEdgeProcessor.java | 2 +- .../edge/rpc/processor/oauth2/OAuth2ClientEdgeProcessor.java | 2 +- .../edge/rpc/processor/ota/OtaPackageEdgeProcessor.java | 2 +- .../service/edge/rpc/processor/queue/QueueEdgeProcessor.java | 2 +- .../edge/rpc/processor/relation/BaseRelationProcessor.java | 2 +- .../edge/rpc/processor/relation/RelationEdgeProcessor.java | 2 +- .../service/edge/rpc/processor/relation/RelationProcessor.java | 2 +- .../edge/rpc/processor/resource/BaseResourceProcessor.java | 2 +- .../edge/rpc/processor/resource/ResourceEdgeProcessor.java | 2 +- .../service/edge/rpc/processor/resource/ResourceProcessor.java | 2 +- .../edge/rpc/processor/rule/BaseRuleChainProcessor.java | 2 +- .../edge/rpc/processor/rule/RuleChainEdgeProcessor.java | 2 +- .../rpc/processor/rule/RuleChainMetadataEdgeProcessor.java | 2 +- .../rpc/processor/settings/AdminSettingsEdgeProcessor.java | 2 +- .../edge/rpc/processor/telemetry/BaseTelemetryProcessor.java | 2 +- .../edge/rpc/processor/telemetry/TelemetryEdgeProcessor.java | 2 +- .../service/edge/rpc/processor/tenant/TenantEdgeProcessor.java | 2 +- .../edge/rpc/processor/tenant/TenantProfileEdgeProcessor.java | 2 +- .../service/edge/rpc/processor/user/UserEdgeProcessor.java | 2 +- .../edge/rpc/processor/widget/WidgetBundleEdgeProcessor.java | 2 +- .../edge/rpc/processor/widget/WidgetTypeEdgeProcessor.java | 2 +- .../service/edge/rpc/sync/DefaultEdgeRequestsService.java | 2 +- .../server/service/edge/rpc/sync/EdgeRequestsService.java | 2 +- .../server/service/edge/rpc/utils/EdgeVersionUtils.java | 2 +- .../server/service/edge/stats/EdgeStatsService.java | 2 +- .../thingsboard/server/service/edqs/DefaultEdqsApiService.java | 2 +- .../thingsboard/server/service/edqs/DefaultEdqsService.java | 2 +- .../java/org/thingsboard/server/service/edqs/EdqsListener.java | 2 +- .../org/thingsboard/server/service/edqs/EdqsSyncService.java | 2 +- .../thingsboard/server/service/edqs/KafkaEdqsSyncService.java | 2 +- .../thingsboard/server/service/edqs/LocalEdqsSyncService.java | 2 +- .../server/service/entitiy/AbstractTbEntityService.java | 2 +- .../service/entitiy/DefaultTbLogEntityActionService.java | 2 +- .../server/service/entitiy/EntityStateSourcingListener.java | 2 +- .../server/service/entitiy/SimpleTbEntityService.java | 2 +- .../server/service/entitiy/TbLogEntityActionService.java | 2 +- .../server/service/entitiy/ai/DefaultTbAiModelService.java | 2 +- .../server/service/entitiy/ai/TbAiModelService.java | 2 +- .../service/entitiy/alarm/DefaultTbAlarmCommentService.java | 2 +- .../server/service/entitiy/alarm/DefaultTbAlarmService.java | 2 +- .../server/service/entitiy/alarm/TbAlarmCommentService.java | 2 +- .../server/service/entitiy/alarm/TbAlarmService.java | 2 +- .../server/service/entitiy/asset/DefaultTbAssetService.java | 2 +- .../server/service/entitiy/asset/TbAssetService.java | 2 +- .../entitiy/asset/profile/DefaultTbAssetProfileService.java | 2 +- .../service/entitiy/asset/profile/TbAssetProfileService.java | 2 +- .../service/entitiy/cf/DefaultTbCalculatedFieldService.java | 2 +- .../server/service/entitiy/cf/TbCalculatedFieldService.java | 2 +- .../service/entitiy/customer/DefaultTbCustomerService.java | 2 +- .../server/service/entitiy/customer/TbCustomerService.java | 2 +- .../server/service/entitiy/dashboard/DashboardSyncService.java | 2 +- .../service/entitiy/dashboard/DefaultTbDashboardService.java | 2 +- .../server/service/entitiy/dashboard/TbDashboardService.java | 2 +- .../server/service/entitiy/device/DefaultTbDeviceService.java | 2 +- .../server/service/entitiy/device/TbDeviceService.java | 2 +- .../entitiy/device/profile/DefaultTbDeviceProfileService.java | 2 +- .../service/entitiy/device/profile/TbDeviceProfileService.java | 2 +- .../server/service/entitiy/domain/DefaultTbDomainService.java | 2 +- .../server/service/entitiy/domain/TbDomainService.java | 2 +- .../server/service/entitiy/edge/DefaultTbEdgeService.java | 2 +- .../thingsboard/server/service/entitiy/edge/TbEdgeService.java | 2 +- .../entity/relation/DefaultTbEntityRelationService.java | 2 +- .../entitiy/entity/relation/TbEntityRelationService.java | 2 +- .../service/entitiy/entityview/DefaultTbEntityViewService.java | 2 +- .../server/service/entitiy/entityview/TbEntityViewService.java | 2 +- .../entitiy/mobile/DefaultTbMobileAppBundleService.java | 2 +- .../service/entitiy/mobile/DefaultTbMobileAppService.java | 2 +- .../service/entitiy/mobile/TbMobileAppBundleService.java | 2 +- .../server/service/entitiy/mobile/TbMobileAppService.java | 2 +- .../entitiy/oauth2client/DefaultTbOauth2ClientService.java | 2 +- .../service/entitiy/oauth2client/TbOauth2ClientService.java | 2 +- .../server/service/entitiy/ota/DefaultTbOtaPackageService.java | 2 +- .../server/service/entitiy/ota/TbOtaPackageService.java | 2 +- .../server/service/entitiy/queue/DefaultTbQueueService.java | 2 +- .../server/service/entitiy/queue/TbQueueService.java | 2 +- .../server/service/entitiy/tenant/DefaultTbTenantService.java | 2 +- .../server/service/entitiy/tenant/TbTenantService.java | 2 +- .../entitiy/tenant/profile/DefaultTbTenantProfileService.java | 2 +- .../service/entitiy/tenant/profile/TbTenantProfileService.java | 2 +- .../service/entitiy/user/DefaultTbUserSettingsService.java | 2 +- .../server/service/entitiy/user/DefaultUserService.java | 2 +- .../thingsboard/server/service/entitiy/user/TbUserService.java | 2 +- .../server/service/entitiy/user/TbUserSettingsService.java | 2 +- .../entitiy/widgets/bundle/DefaultWidgetsBundleService.java | 2 +- .../service/entitiy/widgets/bundle/TbWidgetsBundleService.java | 2 +- .../service/entitiy/widgets/type/DefaultWidgetTypeService.java | 2 +- .../service/entitiy/widgets/type/TbWidgetTypeService.java | 2 +- .../server/service/executors/DbCallbackExecutorService.java | 2 +- .../server/service/executors/ExternalCallExecutorService.java | 2 +- .../server/service/executors/GrpcCallbackExecutorService.java | 2 +- .../server/service/executors/NotificationExecutorService.java | 2 +- .../service/executors/PubSubRuleNodeExecutorProvider.java | 2 +- .../server/service/executors/SharedEventLoopGroupService.java | 2 +- .../server/service/executors/VersionControlExecutor.java | 2 +- .../gateway_device/DefaultGatewayNotificationsService.java | 2 +- .../service/gateway_device/GatewayNotificationsService.java | 2 +- .../service/housekeeper/HousekeeperReprocessingService.java | 2 +- .../server/service/housekeeper/HousekeeperService.java | 2 +- .../housekeeper/processor/AlarmsDeletionTaskProcessor.java | 2 +- .../housekeeper/processor/AlarmsUnassignTaskProcessor.java | 2 +- .../housekeeper/processor/AttributesDeletionTaskProcessor.java | 2 +- .../processor/CalculatedFieldsDeletionTaskProcessor.java | 2 +- .../housekeeper/processor/EntitiesDeletionTaskProcessor.java | 2 +- .../housekeeper/processor/EventsDeletionTaskProcessor.java | 2 +- .../housekeeper/processor/HousekeeperTaskProcessor.java | 2 +- .../housekeeper/processor/JobsDeletionTaskProcessor.java | 2 +- .../housekeeper/processor/LatestTsDeletionTaskProcessor.java | 2 +- .../housekeeper/processor/TelemetryDeletionTaskProcessor.java | 2 +- .../processor/TenantEntitiesDeletionTaskProcessor.java | 2 +- .../housekeeper/processor/TsHistoryDeletionTaskProcessor.java | 2 +- .../service/housekeeper/stats/HousekeeperStatsService.java | 2 +- .../install/AbstractCassandraDatabaseUpgradeService.java | 2 +- .../install/CassandraAbstractDatabaseSchemaService.java | 2 +- .../server/service/install/CassandraKeyspaceService.java | 2 +- .../service/install/CassandraTsDatabaseSchemaService.java | 2 +- .../install/CassandraTsLatestDatabaseSchemaService.java | 2 +- .../server/service/install/DatabaseEntitiesUpgradeService.java | 2 +- .../server/service/install/DatabaseSchemaService.java | 2 +- .../server/service/install/DatabaseSchemaSettingsService.java | 2 +- .../server/service/install/DbUpgradeExecutorService.java | 2 +- .../service/install/DefaultDatabaseSchemaSettingsService.java | 2 +- .../server/service/install/DefaultSystemDataLoaderService.java | 2 +- .../server/service/install/EntityDatabaseSchemaService.java | 2 +- .../org/thingsboard/server/service/install/InstallScripts.java | 2 +- .../server/service/install/NoSqlKeyspaceService.java | 2 +- .../org/thingsboard/server/service/install/ProjectInfo.java | 2 +- .../service/install/SqlAbstractDatabaseSchemaService.java | 2 +- .../server/service/install/SqlDatabaseUpgradeService.java | 2 +- .../server/service/install/SqlEntityDatabaseSchemaService.java | 2 +- .../server/service/install/SqlTsDatabaseSchemaService.java | 2 +- .../server/service/install/SystemDataLoaderService.java | 2 +- .../service/install/TimescaleTsDatabaseSchemaService.java | 2 +- .../server/service/install/TsDatabaseSchemaService.java | 2 +- .../server/service/install/TsLatestDatabaseSchemaService.java | 2 +- .../server/service/install/cql/CQLStatementsParser.java | 2 +- .../server/service/install/migrate/CassandraToSqlColumn.java | 2 +- .../service/install/migrate/CassandraToSqlColumnData.java | 2 +- .../service/install/migrate/CassandraToSqlColumnType.java | 2 +- .../server/service/install/migrate/CassandraToSqlTable.java | 2 +- .../install/migrate/CassandraTsLatestToSqlMigrateService.java | 2 +- .../server/service/install/migrate/TsLatestMigrateService.java | 2 +- .../server/service/install/update/CacheCleanupService.java | 2 +- .../server/service/install/update/DataUpdateService.java | 2 +- .../service/install/update/DefaultCacheCleanupService.java | 2 +- .../service/install/update/DefaultDataUpdateService.java | 2 +- .../server/service/install/update/PaginatedUpdater.java | 2 +- .../server/service/install/update/ResourcesUpdater.java | 2 +- .../org/thingsboard/server/service/job/DefaultJobManager.java | 2 +- .../org/thingsboard/server/service/job/DummyJobProcessor.java | 2 +- .../java/org/thingsboard/server/service/job/JobProcessor.java | 2 +- .../org/thingsboard/server/service/job/JobStatsProcessor.java | 2 +- .../server/service/job/task/DummyTaskProcessor.java | 2 +- .../org/thingsboard/server/service/lwm2m/LwM2MService.java | 2 +- .../org/thingsboard/server/service/lwm2m/LwM2MServiceImpl.java | 2 +- .../thingsboard/server/service/mail/DefaultMailService.java | 2 +- .../service/mail/DefaultTbMailConfigTemplateService.java | 2 +- .../thingsboard/server/service/mail/MailExecutorService.java | 2 +- .../server/service/mail/MailSenderInternalExecutorService.java | 2 +- .../server/service/mail/PasswordResetExecutorService.java | 2 +- .../server/service/mail/RefreshTokenExpCheckService.java | 2 +- .../server/service/mail/TbMailConfigTemplateService.java | 2 +- .../server/service/mail/TbMailContextComponent.java | 2 +- .../java/org/thingsboard/server/service/mail/TbMailSender.java | 2 +- .../server/service/mobile/secret/MobileAppSecretService.java | 2 +- .../service/mobile/secret/MobileAppSecretServiceImpl.java | 2 +- .../service/mobile/secret/MobileSecretCaffeineCache.java | 2 +- .../server/service/mobile/secret/MobileSecretEvictEvent.java | 2 +- .../server/service/mobile/secret/MobileSecretRedisCache.java | 2 +- .../server/service/notification/DefaultNotificationCenter.java | 2 +- .../notification/DefaultNotificationSchedulerService.java | 2 +- .../service/notification/NotificationProcessingContext.java | 2 +- .../service/notification/NotificationSchedulerService.java | 2 +- .../notification/channels/EmailNotificationChannel.java | 2 +- .../channels/MicrosoftTeamsNotificationChannel.java | 2 +- .../notification/channels/MobileAppNotificationChannel.java | 2 +- .../service/notification/channels/NotificationChannel.java | 2 +- .../notification/channels/SlackNotificationChannel.java | 2 +- .../service/notification/channels/SmsNotificationChannel.java | 2 +- .../service/notification/channels/TeamsAdaptiveCard.java | 2 +- .../server/service/notification/channels/TeamsMessageCard.java | 2 +- .../service/notification/provider/DefaultFirebaseService.java | 2 +- .../service/notification/provider/DefaultSlackService.java | 2 +- .../notification/rule/DefaultNotificationRuleProcessor.java | 2 +- .../notification/rule/cache/DefaultNotificationRulesCache.java | 2 +- .../notification/rule/cache/NotificationRulesCache.java | 2 +- .../rule/trigger/AlarmAssignmentTriggerProcessor.java | 2 +- .../rule/trigger/AlarmCommentTriggerProcessor.java | 2 +- .../notification/rule/trigger/AlarmTriggerProcessor.java | 2 +- .../rule/trigger/ApiUsageLimitTriggerProcessor.java | 2 +- .../rule/trigger/DeviceActivityTriggerProcessor.java | 2 +- .../rule/trigger/EdgeCommunicationFailureTriggerProcessor.java | 2 +- .../rule/trigger/EdgeConnectionTriggerProcessor.java | 2 +- .../rule/trigger/EntitiesLimitTriggerProcessor.java | 2 +- .../rule/trigger/EntityActionTriggerProcessor.java | 2 +- .../rule/trigger/NewPlatformVersionTriggerProcessor.java | 2 +- .../rule/trigger/NotificationRuleTriggerProcessor.java | 2 +- .../notification/rule/trigger/RateLimitsTriggerProcessor.java | 2 +- .../rule/trigger/ResourcesShortageTriggerProcessor.java | 2 +- .../RuleEngineComponentLifecycleEventTriggerProcessor.java | 2 +- .../rule/trigger/TaskProcessingFailureTriggerProcessor.java | 2 +- .../server/service/ota/DefaultOtaPackageStateService.java | 2 +- .../thingsboard/server/service/ota/OtaPackageStateService.java | 2 +- .../service/partition/AbstractPartitionBasedService.java | 2 +- .../server/service/partition/TbCoreStartupService.java | 2 +- .../server/service/profile/DefaultTbAssetProfileCache.java | 2 +- .../server/service/profile/DefaultTbDeviceProfileCache.java | 2 +- .../server/service/profile/TbAssetProfileCache.java | 2 +- .../server/service/profile/TbDeviceProfileCache.java | 2 +- .../server/service/query/DefaultEntityQueryService.java | 2 +- .../thingsboard/server/service/query/EntityQueryService.java | 2 +- .../server/service/queue/DefaultQueueRoutingInfoService.java | 2 +- .../service/queue/DefaultTbCalculatedFieldConsumerService.java | 2 +- .../server/service/queue/DefaultTbClusterService.java | 2 +- .../server/service/queue/DefaultTbCoreConsumerService.java | 2 +- .../server/service/queue/DefaultTbEdgeConsumerService.java | 2 +- .../service/queue/DefaultTbRuleEngineConsumerService.java | 2 +- .../server/service/queue/DefaultTenantRoutingInfoService.java | 2 +- .../thingsboard/server/service/queue/EdgeConsumerStats.java | 2 +- .../org/thingsboard/server/service/queue/PendingMsgHolder.java | 2 +- .../server/service/queue/TbCalculatedFieldConsumerService.java | 2 +- .../server/service/queue/TbCoreConsumerService.java | 2 +- .../thingsboard/server/service/queue/TbCoreConsumerStats.java | 2 +- .../server/service/queue/TbEdgeConsumerService.java | 2 +- .../thingsboard/server/service/queue/TbMsgPackCallback.java | 2 +- .../server/service/queue/TbMsgPackProcessingContext.java | 2 +- .../thingsboard/server/service/queue/TbMsgProfilerInfo.java | 2 +- .../org/thingsboard/server/service/queue/TbPackCallback.java | 2 +- .../server/service/queue/TbPackProcessingContext.java | 2 +- .../server/service/queue/TbRuleEngineConsumerService.java | 2 +- .../server/service/queue/TbRuleEngineConsumerStats.java | 2 +- .../server/service/queue/TbRuleNodeProfilerInfo.java | 2 +- .../server/service/queue/TbTenantRuleEngineStats.java | 2 +- .../server/service/queue/TbTopicWithConsumerPerPartition.java | 2 +- .../service/queue/processing/AbstractConsumerService.java | 2 +- .../processing/AbstractPartitionBasedConsumerService.java | 2 +- .../queue/processing/AbstractTbRuleEngineSubmitStrategy.java | 2 +- .../queue/processing/BatchTbRuleEngineSubmitStrategy.java | 2 +- .../queue/processing/BurstTbRuleEngineSubmitStrategy.java | 2 +- .../thingsboard/server/service/queue/processing/IdMsgPair.java | 2 +- .../SequentialByEntityIdTbRuleEngineSubmitStrategy.java | 2 +- .../SequentialByOriginatorIdTbRuleEngineSubmitStrategy.java | 2 +- .../SequentialByTenantIdTbRuleEngineSubmitStrategy.java | 2 +- .../queue/processing/SequentialTbRuleEngineSubmitStrategy.java | 2 +- .../queue/processing/TbRuleEngineProcessingDecision.java | 2 +- .../service/queue/processing/TbRuleEngineProcessingResult.java | 2 +- .../queue/processing/TbRuleEngineProcessingStrategy.java | 2 +- .../processing/TbRuleEngineProcessingStrategyFactory.java | 2 +- .../service/queue/processing/TbRuleEngineSubmitStrategy.java | 2 +- .../queue/processing/TbRuleEngineSubmitStrategyFactory.java | 2 +- .../service/queue/ruleengine/TbRuleEngineConsumerContext.java | 2 +- .../queue/ruleengine/TbRuleEngineQueueConsumerManager.java | 2 +- .../server/service/resource/DefaultTbImageService.java | 2 +- .../server/service/resource/DefaultTbResourceService.java | 2 +- .../thingsboard/server/service/resource/TbImageService.java | 2 +- .../thingsboard/server/service/resource/TbResourceService.java | 2 +- .../server/service/rpc/DefaultTbCoreDeviceRpcService.java | 2 +- .../server/service/rpc/DefaultTbRuleEngineRpcService.java | 2 +- .../thingsboard/server/service/rpc/LocalRequestMetaData.java | 2 +- .../org/thingsboard/server/service/rpc/RpcSubmitStrategy.java | 2 +- .../thingsboard/server/service/rpc/TbCoreDeviceRpcService.java | 2 +- .../java/org/thingsboard/server/service/rpc/TbRpcService.java | 2 +- .../server/service/rpc/TbRuleEngineDeviceRpcService.java | 2 +- .../server/service/rule/DefaultTbRuleChainService.java | 2 +- .../thingsboard/server/service/rule/TbRuleChainService.java | 2 +- .../service/ruleengine/DefaultRuleEngineCallService.java | 2 +- .../server/service/ruleengine/RuleEngineCallService.java | 2 +- .../server/service/script/RuleNodeJsScriptEngine.java | 2 +- .../server/service/script/RuleNodeScriptEngine.java | 2 +- .../server/service/script/RuleNodeTbelScriptEngine.java | 2 +- .../thingsboard/server/service/security/AccessValidator.java | 2 +- .../server/service/security/ValidationCallback.java | 2 +- .../thingsboard/server/service/security/ValidationResult.java | 2 +- .../server/service/security/ValidationResultCode.java | 2 +- .../service/security/auth/AbstractJwtAuthenticationToken.java | 2 +- .../server/service/security/auth/AuthExceptionHandler.java | 2 +- .../service/security/auth/DefaultTokenOutdatingService.java | 2 +- .../server/service/security/auth/JwtAuthenticationToken.java | 2 +- .../server/service/security/auth/MfaAuthenticationToken.java | 2 +- .../service/security/auth/RefreshAuthenticationToken.java | 2 +- .../server/service/security/auth/TokenOutdatingService.java | 2 +- .../service/security/auth/jwt/JwtAuthenticationProvider.java | 2 +- .../auth/jwt/JwtTokenAuthenticationProcessingFilter.java | 2 +- .../security/auth/jwt/RefreshTokenAuthenticationProvider.java | 2 +- .../security/auth/jwt/RefreshTokenProcessingFilter.java | 2 +- .../server/service/security/auth/jwt/RefreshTokenRequest.java | 2 +- .../service/security/auth/jwt/SkipPathRequestMatcher.java | 2 +- .../security/auth/jwt/extractor/JwtHeaderTokenExtractor.java | 2 +- .../security/auth/jwt/extractor/JwtQueryTokenExtractor.java | 2 +- .../service/security/auth/jwt/extractor/TokenExtractor.java | 2 +- .../security/auth/jwt/settings/DefaultJwtSettingsService.java | 2 +- .../auth/jwt/settings/DefaultJwtSettingsValidator.java | 2 +- .../auth/jwt/settings/InstallJwtSettingsValidator.java | 2 +- .../service/security/auth/jwt/settings/JwtSettingsService.java | 2 +- .../security/auth/jwt/settings/JwtSettingsValidator.java | 2 +- .../service/security/auth/mfa/DefaultTwoFactorAuthService.java | 2 +- .../server/service/security/auth/mfa/TwoFactorAuthService.java | 2 +- .../security/auth/mfa/config/DefaultTwoFaConfigManager.java | 2 +- .../service/security/auth/mfa/config/TwoFaConfigManager.java | 2 +- .../service/security/auth/mfa/provider/TwoFaProvider.java | 2 +- .../auth/mfa/provider/impl/BackupCodeTwoFaProvider.java | 2 +- .../security/auth/mfa/provider/impl/EmailTwoFaProvider.java | 2 +- .../security/auth/mfa/provider/impl/OtpBasedTwoFaProvider.java | 2 +- .../security/auth/mfa/provider/impl/SmsTwoFaProvider.java | 2 +- .../security/auth/mfa/provider/impl/TotpTwoFaProvider.java | 2 +- .../security/auth/oauth2/AbstractOAuth2ClientMapper.java | 2 +- .../service/security/auth/oauth2/AppleOAuth2ClientMapper.java | 2 +- .../server/service/security/auth/oauth2/BasicMapperUtils.java | 2 +- .../service/security/auth/oauth2/BasicOAuth2ClientMapper.java | 2 +- .../server/service/security/auth/oauth2/CookieUtils.java | 2 +- .../service/security/auth/oauth2/CustomOAuth2ClientMapper.java | 2 +- .../service/security/auth/oauth2/GithubOAuth2ClientMapper.java | 2 +- .../oauth2/HttpCookieOAuth2AuthorizationRequestRepository.java | 2 +- .../service/security/auth/oauth2/OAuth2ClientMapper.java | 2 +- .../security/auth/oauth2/OAuth2ClientMapperProvider.java | 2 +- .../auth/oauth2/Oauth2AuthenticationFailureHandler.java | 2 +- .../auth/oauth2/Oauth2AuthenticationSuccessHandler.java | 2 +- .../service/security/auth/oauth2/TbOAuth2ParameterNames.java | 2 +- .../server/service/security/auth/rest/LoginRequest.java | 2 +- .../server/service/security/auth/rest/LoginResponse.java | 2 +- .../server/service/security/auth/rest/PublicLoginRequest.java | 2 +- .../service/security/auth/rest/RestAuthenticationDetails.java | 2 +- .../security/auth/rest/RestAuthenticationDetailsSource.java | 2 +- .../service/security/auth/rest/RestAuthenticationProvider.java | 2 +- .../auth/rest/RestAwareAuthenticationFailureHandler.java | 2 +- .../auth/rest/RestAwareAuthenticationSuccessHandler.java | 2 +- .../service/security/auth/rest/RestLoginProcessingFilter.java | 2 +- .../security/auth/rest/RestPublicLoginProcessingFilter.java | 2 +- .../service/security/device/DefaultDeviceAuthService.java | 2 +- .../security/exception/AuthMethodNotSupportedException.java | 2 +- .../service/security/exception/JwtExpiredTokenException.java | 2 +- .../security/exception/UserPasswordExpiredException.java | 2 +- .../security/exception/UserPasswordNotValidException.java | 2 +- .../server/service/security/model/ActivateUserRequest.java | 2 +- .../server/service/security/model/ChangePasswordRequest.java | 2 +- .../service/security/model/ResetPasswordEmailRequest.java | 2 +- .../server/service/security/model/ResetPasswordRequest.java | 2 +- .../server/service/security/model/SecurityUser.java | 2 +- .../server/service/security/model/UserPrincipal.java | 2 +- .../server/service/security/model/token/AccessJwtToken.java | 2 +- .../server/service/security/model/token/JwtTokenFactory.java | 2 +- .../service/security/model/token/OAuth2AppTokenFactory.java | 2 +- .../server/service/security/model/token/RawAccessJwtToken.java | 2 +- .../service/security/permission/AbstractPermissions.java | 2 +- .../service/security/permission/AccessControlService.java | 2 +- .../service/security/permission/CustomerUserPermissions.java | 2 +- .../security/permission/DefaultAccessControlService.java | 2 +- .../server/service/security/permission/Operation.java | 2 +- .../server/service/security/permission/PermissionChecker.java | 2 +- .../server/service/security/permission/Permissions.java | 2 +- .../server/service/security/permission/Resource.java | 2 +- .../service/security/permission/SysAdminPermissions.java | 2 +- .../service/security/permission/TenantAdminPermissions.java | 2 +- .../service/security/system/DefaultSystemSecurityService.java | 2 +- .../server/service/security/system/SystemSecurityService.java | 2 +- .../service/session/DefaultDeviceSessionCacheService.java | 2 +- .../server/service/session/DeviceSessionCacheService.java | 2 +- .../server/service/session/SessionCaffeineCache.java | 2 +- .../thingsboard/server/service/session/SessionRedisCache.java | 2 +- .../org/thingsboard/server/service/sms/AbstractSmsSender.java | 2 +- .../server/service/sms/DefaultSmsSenderFactory.java | 2 +- .../org/thingsboard/server/service/sms/DefaultSmsService.java | 2 +- .../org/thingsboard/server/service/sms/SmsExecutorService.java | 2 +- .../org/thingsboard/server/service/sms/aws/AwsSmsSender.java | 2 +- .../org/thingsboard/server/service/sms/smpp/SmppSmsSender.java | 2 +- .../thingsboard/server/service/sms/twilio/TwilioSmsSender.java | 2 +- .../server/service/state/DefaultDeviceStateManager.java | 2 +- .../server/service/state/DefaultDeviceStateService.java | 2 +- .../java/org/thingsboard/server/service/state/DeviceState.java | 2 +- .../org/thingsboard/server/service/state/DeviceStateData.java | 2 +- .../thingsboard/server/service/state/DeviceStateService.java | 2 +- .../service/stats/DefaultRuleEngineStatisticsService.java | 2 +- .../server/service/stats/RuleEngineStatisticsService.java | 2 +- .../subscription/DefaultSubscriptionManagerService.java | 2 +- .../subscription/DefaultTbEntityDataSubscriptionService.java | 2 +- .../subscription/DefaultTbLocalSubscriptionService.java | 2 +- .../server/service/subscription/ReadTsKvQueryInfo.java | 2 +- .../server/service/subscription/SubscriptionErrorCode.java | 2 +- .../service/subscription/SubscriptionManagerService.java | 2 +- .../service/subscription/SubscriptionModificationResult.java | 2 +- .../service/subscription/SubscriptionSchedulerComponent.java | 2 +- .../service/subscription/SubscriptionServiceStatistics.java | 2 +- .../server/service/subscription/TbAbstractDataSubCtx.java | 2 +- .../service/subscription/TbAbstractEntityQuerySubCtx.java | 2 +- .../server/service/subscription/TbAbstractSubCtx.java | 2 +- .../server/service/subscription/TbAlarmCountSubCtx.java | 2 +- .../server/service/subscription/TbAlarmDataSubCtx.java | 2 +- .../server/service/subscription/TbAlarmStatusSubCtx.java | 2 +- .../server/service/subscription/TbAlarmStatusSubscription.java | 2 +- .../server/service/subscription/TbAlarmsSubscription.java | 2 +- .../server/service/subscription/TbAttributeSubscription.java | 2 +- .../service/subscription/TbAttributeSubscriptionScope.java | 2 +- .../server/service/subscription/TbEntityCountSubCtx.java | 2 +- .../server/service/subscription/TbEntityDataSubCtx.java | 2 +- .../service/subscription/TbEntityDataSubscriptionService.java | 2 +- .../server/service/subscription/TbEntityLocalSubsInfo.java | 2 +- .../server/service/subscription/TbEntityRemoteSubsInfo.java | 2 +- .../server/service/subscription/TbEntitySubEvent.java | 2 +- .../server/service/subscription/TbEntityUpdatesInfo.java | 2 +- .../service/subscription/TbLocalSubscriptionService.java | 2 +- .../server/service/subscription/TbSubscription.java | 2 +- .../server/service/subscription/TbSubscriptionType.java | 2 +- .../server/service/subscription/TbSubscriptionUtils.java | 2 +- .../server/service/subscription/TbSubscriptionsInfo.java | 2 +- .../server/service/subscription/TbTimeSeriesSubscription.java | 2 +- .../thingsboard/server/service/sync/DefaultGitSyncService.java | 2 +- .../org/thingsboard/server/service/sync/GitSyncService.java | 2 +- .../service/sync/ie/DefaultEntitiesExportImportService.java | 2 +- .../server/service/sync/ie/EntitiesExportImportService.java | 2 +- .../sync/ie/exporting/DefaultExportableEntitiesService.java | 2 +- .../server/service/sync/ie/exporting/EntityExportService.java | 2 +- .../service/sync/ie/exporting/ExportableEntitiesService.java | 2 +- .../service/sync/ie/exporting/impl/AiModelExportService.java | 2 +- .../service/sync/ie/exporting/impl/AssetExportService.java | 2 +- .../sync/ie/exporting/impl/AssetProfileExportService.java | 2 +- .../sync/ie/exporting/impl/BaseEntityExportService.java | 2 +- .../service/sync/ie/exporting/impl/DashboardExportService.java | 2 +- .../sync/ie/exporting/impl/DefaultEntityExportService.java | 2 +- .../service/sync/ie/exporting/impl/DeviceExportService.java | 2 +- .../sync/ie/exporting/impl/DeviceProfileExportService.java | 2 +- .../sync/ie/exporting/impl/EntityViewExportService.java | 2 +- .../sync/ie/exporting/impl/NotificationRuleExportService.java | 2 +- .../ie/exporting/impl/NotificationTargetExportService.java | 2 +- .../ie/exporting/impl/NotificationTemplateExportService.java | 2 +- .../sync/ie/exporting/impl/OtaPackageExportService.java | 2 +- .../service/sync/ie/exporting/impl/ResourceExportService.java | 2 +- .../service/sync/ie/exporting/impl/RuleChainExportService.java | 2 +- .../sync/ie/exporting/impl/WidgetTypeExportService.java | 2 +- .../sync/ie/exporting/impl/WidgetsBundleExportService.java | 2 +- .../server/service/sync/ie/importing/EntityImportService.java | 2 +- .../sync/ie/importing/csv/AbstractBulkImportService.java | 2 +- .../service/sync/ie/importing/csv/ImportedEntityInfo.java | 2 +- .../service/sync/ie/importing/impl/AiModelImportService.java | 2 +- .../service/sync/ie/importing/impl/AssetImportService.java | 2 +- .../sync/ie/importing/impl/AssetProfileImportService.java | 2 +- .../sync/ie/importing/impl/BaseEntityImportService.java | 2 +- .../service/sync/ie/importing/impl/CustomerImportService.java | 2 +- .../service/sync/ie/importing/impl/DashboardImportService.java | 2 +- .../service/sync/ie/importing/impl/DeviceImportService.java | 2 +- .../sync/ie/importing/impl/DeviceProfileImportService.java | 2 +- .../sync/ie/importing/impl/EntityViewImportService.java | 2 +- .../service/sync/ie/importing/impl/ImportServiceException.java | 2 +- .../service/sync/ie/importing/impl/MissingEntityException.java | 2 +- .../sync/ie/importing/impl/NotificationRuleImportService.java | 2 +- .../ie/importing/impl/NotificationTargetImportService.java | 2 +- .../ie/importing/impl/NotificationTemplateImportService.java | 2 +- .../sync/ie/importing/impl/OtaPackageImportService.java | 2 +- .../service/sync/ie/importing/impl/ResourceImportService.java | 2 +- .../service/sync/ie/importing/impl/RuleChainImportService.java | 2 +- .../sync/ie/importing/impl/WidgetTypeImportService.java | 2 +- .../sync/ie/importing/impl/WidgetsBundleImportService.java | 2 +- .../service/sync/vc/DefaultEntitiesVersionControlService.java | 2 +- .../service/sync/vc/DefaultGitVersionControlQueueService.java | 2 +- .../server/service/sync/vc/EntitiesVersionControlService.java | 2 +- .../server/service/sync/vc/GitVersionControlQueueService.java | 2 +- .../server/service/sync/vc/LoadEntityException.java | 2 +- .../sync/vc/TbAbstractVersionControlSettingsService.java | 2 +- .../server/service/sync/vc/VersionControlTaskCacheEntry.java | 2 +- .../service/sync/vc/VersionControlTaskCaffeineCache.java | 2 +- .../server/service/sync/vc/VersionControlTaskRedisCache.java | 2 +- .../sync/vc/autocommit/AutoCommitSettingsCaffeineCache.java | 2 +- .../sync/vc/autocommit/AutoCommitSettingsRedisCache.java | 2 +- .../sync/vc/autocommit/DefaultTbAutoCommitSettingsService.java | 2 +- .../sync/vc/autocommit/TbAutoCommitSettingsService.java | 2 +- .../server/service/sync/vc/data/ClearRepositoryGitRequest.java | 2 +- .../server/service/sync/vc/data/CommitGitRequest.java | 2 +- .../server/service/sync/vc/data/ComplexEntitiesExportCtx.java | 2 +- .../server/service/sync/vc/data/ContentsDiffGitRequest.java | 2 +- .../server/service/sync/vc/data/EntitiesContentGitRequest.java | 2 +- .../server/service/sync/vc/data/EntitiesExportCtx.java | 2 +- .../server/service/sync/vc/data/EntitiesImportCtx.java | 2 +- .../server/service/sync/vc/data/EntityContentGitRequest.java | 2 +- .../server/service/sync/vc/data/EntityTypeExportCtx.java | 2 +- .../server/service/sync/vc/data/ListBranchesGitRequest.java | 2 +- .../server/service/sync/vc/data/ListEntitiesGitRequest.java | 2 +- .../server/service/sync/vc/data/ListVersionsGitRequest.java | 2 +- .../server/service/sync/vc/data/PendingGitRequest.java | 2 +- .../thingsboard/server/service/sync/vc/data/ReimportTask.java | 2 +- .../server/service/sync/vc/data/SimpleEntitiesExportCtx.java | 2 +- .../server/service/sync/vc/data/VersionsDiffGitRequest.java | 2 +- .../server/service/sync/vc/data/VoidGitRequest.java | 2 +- .../sync/vc/repository/DefaultTbRepositorySettingsService.java | 2 +- .../sync/vc/repository/RepositorySettingsCaffeineCache.java | 2 +- .../sync/vc/repository/RepositorySettingsRedisCache.java | 2 +- .../sync/vc/repository/TbRepositorySettingsService.java | 2 +- .../server/service/system/DefaultSystemInfoService.java | 2 +- .../thingsboard/server/service/system/SystemInfoService.java | 2 +- .../thingsboard/server/service/system/SystemPatchApplier.java | 2 +- .../server/service/telemetry/AbstractSubscriptionService.java | 2 +- .../server/service/telemetry/AlarmSubscriptionService.java | 2 +- .../thingsboard/server/service/telemetry/AttributeData.java | 2 +- .../service/telemetry/DefaultAlarmSubscriptionService.java | 2 +- .../server/service/telemetry/DefaultTbTelemetryService.java | 2 +- .../service/telemetry/DefaultTelemetrySubscriptionService.java | 2 +- .../server/service/telemetry/InternalTelemetryService.java | 2 +- .../server/service/telemetry/TbTelemetryService.java | 2 +- .../server/service/telemetry/TelemetrySubscriptionService.java | 2 +- .../java/org/thingsboard/server/service/telemetry/TsData.java | 2 +- .../service/transport/BasicCredentialsValidationResult.java | 2 +- .../service/transport/DefaultTbCoreToTransportService.java | 2 +- .../server/service/transport/DefaultTransportApiService.java | 2 +- .../server/service/transport/TbCoreToTransportService.java | 2 +- .../server/service/transport/TbCoreTransportApiService.java | 2 +- .../server/service/transport/TransportApiService.java | 2 +- .../transport/msg/TransportToDeviceActorMsgWrapper.java | 2 +- .../thingsboard/server/service/ttl/AbstractCleanUpService.java | 2 +- .../thingsboard/server/service/ttl/AlarmsCleanUpService.java | 2 +- .../server/service/ttl/AuditLogsCleanUpService.java | 2 +- .../server/service/ttl/EdgeEventsCleanUpService.java | 2 +- .../thingsboard/server/service/ttl/EventsCleanUpService.java | 2 +- .../server/service/ttl/KafkaEdgeTopicsCleanUpService.java | 2 +- .../server/service/ttl/NotificationsCleanUpService.java | 2 +- .../server/service/ttl/TimeseriesCleanUpService.java | 2 +- .../thingsboard/server/service/ttl/rpc/RpcCleanUpService.java | 2 +- .../server/service/update/DefaultUpdateService.java | 2 +- .../org/thingsboard/server/service/update/UpdateService.java | 2 +- .../main/java/org/thingsboard/server/service/ws/AuthCmd.java | 2 +- .../thingsboard/server/service/ws/DefaultWebSocketService.java | 2 +- .../java/org/thingsboard/server/service/ws/SessionEvent.java | 2 +- .../thingsboard/server/service/ws/WebSocketMsgEndpoint.java | 2 +- .../org/thingsboard/server/service/ws/WebSocketService.java | 2 +- .../org/thingsboard/server/service/ws/WebSocketSessionRef.java | 2 +- .../thingsboard/server/service/ws/WebSocketSessionType.java | 2 +- .../src/main/java/org/thingsboard/server/service/ws/WsCmd.java | 2 +- .../main/java/org/thingsboard/server/service/ws/WsCmdType.java | 2 +- .../org/thingsboard/server/service/ws/WsCommandsWrapper.java | 2 +- .../org/thingsboard/server/service/ws/WsSessionMetaData.java | 2 +- .../ws/notification/DefaultNotificationCommandsHandler.java | 2 +- .../service/ws/notification/NotificationCommandsHandler.java | 2 +- .../ws/notification/cmd/MarkAllNotificationsAsReadCmd.java | 2 +- .../ws/notification/cmd/MarkNotificationsAsReadCmd.java | 2 +- .../service/ws/notification/cmd/NotificationCmdsWrapper.java | 2 +- .../service/ws/notification/cmd/NotificationsCountSubCmd.java | 2 +- .../service/ws/notification/cmd/NotificationsSubCmd.java | 2 +- .../service/ws/notification/cmd/NotificationsUnsubCmd.java | 2 +- .../ws/notification/cmd/UnreadNotificationsCountUpdate.java | 2 +- .../service/ws/notification/cmd/UnreadNotificationsUpdate.java | 2 +- .../ws/notification/sub/AbstractNotificationSubscription.java | 2 +- .../service/ws/notification/sub/NotificationRequestUpdate.java | 2 +- .../server/service/ws/notification/sub/NotificationUpdate.java | 2 +- .../ws/notification/sub/NotificationsCountSubscription.java | 2 +- .../service/ws/notification/sub/NotificationsSubscription.java | 2 +- .../ws/notification/sub/NotificationsSubscriptionUpdate.java | 2 +- .../server/service/ws/telemetry/TelemetryFeature.java | 2 +- .../server/service/ws/telemetry/TelemetryWebSocketTextMsg.java | 2 +- .../server/service/ws/telemetry/cmd/TelemetryCmdsWrapper.java | 2 +- .../service/ws/telemetry/cmd/v1/AttributesSubscriptionCmd.java | 2 +- .../server/service/ws/telemetry/cmd/v1/GetHistoryCmd.java | 2 +- .../server/service/ws/telemetry/cmd/v1/SubscriptionCmd.java | 2 +- .../server/service/ws/telemetry/cmd/v1/TelemetryPluginCmd.java | 2 +- .../service/ws/telemetry/cmd/v1/TimeseriesSubscriptionCmd.java | 2 +- .../server/service/ws/telemetry/cmd/v2/AggHistoryCmd.java | 2 +- .../thingsboard/server/service/ws/telemetry/cmd/v2/AggKey.java | 2 +- .../server/service/ws/telemetry/cmd/v2/AggTimeSeriesCmd.java | 2 +- .../server/service/ws/telemetry/cmd/v2/AlarmCountCmd.java | 2 +- .../service/ws/telemetry/cmd/v2/AlarmCountUnsubscribeCmd.java | 2 +- .../server/service/ws/telemetry/cmd/v2/AlarmCountUpdate.java | 2 +- .../server/service/ws/telemetry/cmd/v2/AlarmDataCmd.java | 2 +- .../service/ws/telemetry/cmd/v2/AlarmDataUnsubscribeCmd.java | 2 +- .../server/service/ws/telemetry/cmd/v2/AlarmDataUpdate.java | 2 +- .../server/service/ws/telemetry/cmd/v2/AlarmStatusCmd.java | 2 +- .../service/ws/telemetry/cmd/v2/AlarmStatusUnsubscribeCmd.java | 2 +- .../server/service/ws/telemetry/cmd/v2/AlarmStatusUpdate.java | 2 +- .../server/service/ws/telemetry/cmd/v2/CmdUpdate.java | 2 +- .../server/service/ws/telemetry/cmd/v2/CmdUpdateType.java | 2 +- .../server/service/ws/telemetry/cmd/v2/DataCmd.java | 2 +- .../server/service/ws/telemetry/cmd/v2/DataUpdate.java | 2 +- .../server/service/ws/telemetry/cmd/v2/EntityCountCmd.java | 2 +- .../service/ws/telemetry/cmd/v2/EntityCountUnsubscribeCmd.java | 2 +- .../server/service/ws/telemetry/cmd/v2/EntityCountUpdate.java | 2 +- .../server/service/ws/telemetry/cmd/v2/EntityDataCmd.java | 2 +- .../service/ws/telemetry/cmd/v2/EntityDataUnsubscribeCmd.java | 2 +- .../server/service/ws/telemetry/cmd/v2/EntityDataUpdate.java | 2 +- .../server/service/ws/telemetry/cmd/v2/EntityHistoryCmd.java | 2 +- .../server/service/ws/telemetry/cmd/v2/GetTsCmd.java | 2 +- .../server/service/ws/telemetry/cmd/v2/LatestValueCmd.java | 2 +- .../server/service/ws/telemetry/cmd/v2/TimeSeriesCmd.java | 2 +- .../server/service/ws/telemetry/cmd/v2/UnsubscribeCmd.java | 2 +- .../service/ws/telemetry/sub/AlarmSubscriptionUpdate.java | 2 +- .../server/service/ws/telemetry/sub/SubscriptionState.java | 2 +- .../service/ws/telemetry/sub/TelemetrySubscriptionUpdate.java | 2 +- .../thingsboard/server/utils/CalculatedFieldArgumentUtils.java | 2 +- .../org/thingsboard/server/utils/CalculatedFieldUtils.java | 2 +- .../src/main/java/org/thingsboard/server/utils/CsvUtils.java | 2 +- .../thingsboard/server/utils/DebugModeRateLimitsConfig.java | 2 +- .../org/thingsboard/server/utils/LwM2mObjectModelUtils.java | 2 +- .../src/main/java/org/thingsboard/server/utils/MiscUtils.java | 2 +- .../java/org/thingsboard/server/utils/TbNodeUpgradeUtils.java | 2 +- application/src/main/resources/logback.xml | 2 +- .../src/main/resources/templates/2fa.verification.code.ftl | 2 +- application/src/main/resources/templates/account.activated.ftl | 2 +- application/src/main/resources/templates/account.lockout.ftl | 2 +- application/src/main/resources/templates/activation.ftl | 2 +- .../src/main/resources/templates/password.was.reset.ftl | 2 +- application/src/main/resources/templates/reset.password.ftl | 2 +- application/src/main/resources/templates/state.disabled.ftl | 2 +- application/src/main/resources/templates/state.enabled.ftl | 2 +- application/src/main/resources/templates/state.warning.ftl | 2 +- application/src/main/resources/templates/test.ftl | 2 +- application/src/main/resources/thingsboard.yml | 2 +- .../server/actors/device/DeviceActorMessageProcessorTest.java | 2 +- .../thingsboard/server/actors/rule/DefaultTbContextTest.java | 2 +- .../thingsboard/server/actors/service/ComponentActorTest.java | 2 +- .../org/thingsboard/server/actors/stats/StatsActorTest.java | 2 +- .../thingsboard/server/actors/stats/StatsPersistMsgTest.java | 2 +- .../org/thingsboard/server/actors/tenant/TenantActorTest.java | 2 +- .../server/cache/CaffeineCacheDefaultConfigurationTest.java | 2 +- .../thingsboard/server/cf/CalculatedFieldIntegrationTest.java | 2 +- .../thingsboard/server/controller/AbstractControllerTest.java | 2 +- .../server/controller/AbstractInMemoryStorageTest.java | 2 +- .../server/controller/AbstractNotifyEntityTest.java | 2 +- .../server/controller/AbstractRuleEngineControllerTest.java | 2 +- .../org/thingsboard/server/controller/AbstractWebTest.java | 2 +- .../org/thingsboard/server/controller/AdminControllerTest.java | 2 +- .../thingsboard/server/controller/AiModelControllerTest.java | 2 +- .../server/controller/AlarmCommentControllerTest.java | 2 +- .../org/thingsboard/server/controller/AlarmControllerTest.java | 2 +- .../org/thingsboard/server/controller/AssetControllerTest.java | 2 +- .../server/controller/AssetProfileControllerTest.java | 2 +- .../thingsboard/server/controller/AuditLogControllerTest.java | 2 +- .../AuditLogControllerTest_DedicatedEventsDataSource.java | 2 +- .../org/thingsboard/server/controller/AuthControllerTest.java | 2 +- .../thingsboard/server/controller/BaseQueueControllerTest.java | 2 +- .../server/controller/CalculatedFieldControllerTest.java | 2 +- .../server/controller/ComponentDescriptorControllerTest.java | 2 +- .../thingsboard/server/controller/CustomerControllerTest.java | 2 +- .../thingsboard/server/controller/DashboardControllerTest.java | 2 +- .../server/controller/DeviceConnectivityControllerTest.java | 2 +- .../thingsboard/server/controller/DeviceControllerTest.java | 2 +- .../server/controller/DeviceProfileControllerTest.java | 2 +- .../thingsboard/server/controller/DomainControllerTest.java | 2 +- .../org/thingsboard/server/controller/EdgeControllerTest.java | 2 +- .../thingsboard/server/controller/EdgeEventControllerTest.java | 2 +- .../org/thingsboard/server/controller/EdqsControllerTest.java | 2 +- .../server/controller/EdqsEntityQueryControllerTest.java | 2 +- .../server/controller/EntityQueryControllerTest.java | 2 +- .../server/controller/EntityRelationControllerTest.java | 2 +- .../server/controller/EntityViewControllerTest.java | 2 +- .../org/thingsboard/server/controller/HomePageApiTest.java | 2 +- .../org/thingsboard/server/controller/ImageControllerTest.java | 2 +- .../server/controller/MobileAppBundleControllerTest.java | 2 +- .../thingsboard/server/controller/MobileAppControllerTest.java | 2 +- .../server/controller/Oauth2ClientControllerTest.java | 2 +- .../server/controller/OtaPackageControllerTest.java | 2 +- .../server/controller/QrCodeSettingsControllerTest.java | 2 +- .../thingsboard/server/controller/RepositorySettingsTest.java | 2 +- .../org/thingsboard/server/controller/RpcControllerTest.java | 2 +- .../thingsboard/server/controller/RuleChainControllerTest.java | 2 +- .../server/controller/RuleEngineControllerTest.java | 2 +- .../server/controller/TbResourceControllerTest.java | 2 +- .../thingsboard/server/controller/TbTestWebSocketClient.java | 2 +- .../thingsboard/server/controller/TelemetryControllerTest.java | 2 +- .../thingsboard/server/controller/TenantControllerTest.java | 2 +- .../server/controller/TenantProfileControllerTest.java | 2 +- .../thingsboard/server/controller/TrendzControllerTest.java | 2 +- .../thingsboard/server/controller/TwoFactorAuthConfigTest.java | 2 +- .../org/thingsboard/server/controller/TwoFactorAuthTest.java | 2 +- .../org/thingsboard/server/controller/UserControllerTest.java | 2 +- .../org/thingsboard/server/controller/WebsocketApiTest.java | 2 +- .../server/controller/WidgetTypeControllerTest.java | 2 +- .../server/controller/WidgetsBundleControllerTest.java | 2 +- .../server/controller/plugin/TbWebSocketHandlerTest.java | 2 +- .../java/org/thingsboard/server/edge/AbstractEdgeTest.java | 2 +- .../test/java/org/thingsboard/server/edge/AlarmEdgeTest.java | 2 +- .../test/java/org/thingsboard/server/edge/AssetEdgeTest.java | 2 +- .../java/org/thingsboard/server/edge/AssetProfileEdgeTest.java | 2 +- .../org/thingsboard/server/edge/CalculatedFieldEdgeTest.java | 2 +- .../java/org/thingsboard/server/edge/CustomerEdgeTest.java | 2 +- .../java/org/thingsboard/server/edge/DashboardEdgeTest.java | 2 +- .../test/java/org/thingsboard/server/edge/DeviceEdgeTest.java | 2 +- .../org/thingsboard/server/edge/DeviceProfileEdgeTest.java | 2 +- .../src/test/java/org/thingsboard/server/edge/EdgeTest.java | 2 +- .../java/org/thingsboard/server/edge/EntityViewEdgeTest.java | 2 +- .../java/org/thingsboard/server/edge/NotificationEdgeTest.java | 2 +- .../test/java/org/thingsboard/server/edge/OAuth2EdgeTest.java | 2 +- .../java/org/thingsboard/server/edge/OtaPackageEdgeTest.java | 2 +- .../test/java/org/thingsboard/server/edge/QueueEdgeTest.java | 2 +- .../java/org/thingsboard/server/edge/RelationEdgeTest.java | 2 +- .../java/org/thingsboard/server/edge/ResourceEdgeTest.java | 2 +- .../java/org/thingsboard/server/edge/RuleChainEdgeTest.java | 2 +- .../java/org/thingsboard/server/edge/TelemetryEdgeTest.java | 2 +- .../test/java/org/thingsboard/server/edge/TenantEdgeTest.java | 2 +- .../org/thingsboard/server/edge/TenantProfileEdgeTest.java | 2 +- .../test/java/org/thingsboard/server/edge/UserEdgeTest.java | 2 +- .../test/java/org/thingsboard/server/edge/WidgetEdgeTest.java | 2 +- .../org/thingsboard/server/edge/imitator/EdgeImitator.java | 2 +- .../server/queue/discovery/HashPartitionServiceTest.java | 2 +- .../rules/flow/AbstractRuleEngineFlowIntegrationTest.java | 2 +- .../rules/flow/sql/RuleEngineFlowSqlIntegrationTest.java | 2 +- .../lifecycle/AbstractRuleEngineLifecycleIntegrationTest.java | 2 +- .../lifecycle/sql/RuleEngineLifecycleSqlIntegrationTest.java | 2 +- .../org/thingsboard/server/service/apiusage/ApiUsageTest.java | 2 +- .../service/apiusage/DefaultTbApiUsageStateServiceTest.java | 2 +- .../service/cf/ctx/state/ScriptCalculatedFieldStateTest.java | 2 +- .../service/cf/ctx/state/SimpleCalculatedFieldStateTest.java | 2 +- .../service/cf/ctx/state/SingleValueArgumentEntryTest.java | 2 +- .../service/cf/ctx/state/TsRollingArgumentEntryTest.java | 2 +- .../service/device/provision/DeviceProvisionServiceTest.java | 2 +- .../server/service/edge/EdgeMsgConstructorUtilsTest.java | 2 +- .../org/thingsboard/server/service/edge/EdgeStatsTest.java | 2 +- .../server/service/entitiy/EdqsEntityServiceTest.java | 2 +- .../thingsboard/server/service/entitiy/EntityServiceTest.java | 2 +- .../server/service/entitiy/ai/DefaultTbAiModelServiceTest.java | 2 +- .../service/entitiy/alarm/DefaultTbAlarmServiceTest.java | 2 +- .../entitiy/alarmComment/DefaultTbAlarmCommentServiceTest.java | 2 +- .../service/entitiy/dashboard/DashboardSyncServiceTest.java | 2 +- .../entitiy/entityview/DefaultTbEntityViewServiceTest.java | 2 +- .../server/service/housekeeper/HousekeeperServiceTest.java | 2 +- .../thingsboard/server/service/install/InstallScriptsTest.java | 2 +- .../service/install/SqlEntityDatabaseSchemaServiceTest.java | 2 +- .../service/install/update/DefaultDataUpdateServiceTest.java | 2 +- .../org/thingsboard/server/service/job/JobManagerTest.java | 2 +- .../service/job/JobManagerTest_EntityPartitioningStrategy.java | 2 +- .../org/thingsboard/server/service/job/TestTaskProcessor.java | 2 +- .../server/service/limits/RateLimitServiceTest.java | 2 +- .../org/thingsboard/server/service/mail/TbMailSenderTest.java | 2 +- .../service/notification/AbstractNotificationApiTest.java | 2 +- .../server/service/notification/NotificationApiTest.java | 2 +- .../server/service/notification/NotificationApiWsClient.java | 2 +- .../server/service/notification/NotificationRuleApiTest.java | 2 +- .../server/service/notification/NotificationTargetApiTest.java | 2 +- .../service/notification/NotificationTemplateApiTest.java | 2 +- .../service/notification/TestNotificationSettingsService.java | 2 +- .../server/service/queue/DefaultTbClusterServiceTest.java | 2 +- .../server/service/queue/DefaultTbCoreConsumerServiceTest.java | 2 +- .../server/service/queue/TbMsgPackCallbackTest.java | 2 +- .../server/service/queue/TbMsgPackProcessingContextTest.java | 2 +- .../queue/ruleengine/TbRuleEngineQueueConsumerManagerTest.java | 2 +- .../service/queue/ruleengine/TbRuleEngineStrategyTest.java | 2 +- .../server/service/resource/DefaultResourceDataCacheTest.java | 2 +- .../server/service/resource/sql/BaseTbResourceServiceTest.java | 2 +- .../server/service/rpc/DefaultTbRuleEngineRpcServiceTest.java | 2 +- .../thingsboard/server/service/rpc/RpcSubmitStrategyTest.java | 2 +- .../service/ruleengine/DefaultRuleEngineCallServiceTest.java | 2 +- .../server/service/script/AbstractTbelInvokeTest.java | 2 +- .../thingsboard/server/service/script/MockJsInvokeService.java | 2 +- .../server/service/script/NashornJsInvokeServiceTest.java | 2 +- .../server/service/script/RemoteJsInvokeServiceTest.java | 2 +- .../server/service/script/TbelInvokeDocsIoTest.java | 2 +- .../server/service/script/TbelInvokeServiceTest.java | 2 +- .../server/service/security/auth/JwtTokenFactoryTest.java | 2 +- .../server/service/security/auth/TokenOutdatingTest.java | 2 +- .../server/service/security/auth/oauth2/CookieUtilsTest.java | 2 +- .../auth/oauth2/Oauth2AuthenticationSuccessHandlerTest.java | 2 +- .../thingsboard/server/service/sms/DefaultSmsServiceTest.java | 2 +- .../thingsboard/server/service/sms/smpp/SmppSmsSenderTest.java | 2 +- .../service/sql/SequentialTimeseriesPersistenceTest.java | 2 +- .../server/service/state/DefaultDeviceStateManagerTest.java | 2 +- .../server/service/state/DefaultDeviceStateServiceTest.java | 2 +- .../server/service/stats/DevicesStatisticsTest.java | 2 +- .../subscription/DefaultTbLocalSubscriptionServiceTest.java | 2 +- .../server/service/subscription/TbEntityDataSubCtxTest.java | 2 +- .../server/service/subscription/TbEntityLocalSubsInfoTest.java | 2 +- .../server/service/sync/ie/ExportImportServiceSqlTest.java | 2 +- .../thingsboard/server/service/sync/vc/VersionControlTest.java | 2 +- .../telemetry/DefaultTelemetrySubscriptionServiceTest.java | 2 +- .../service/transport/DefaultTransportApiServiceTest.java | 2 +- .../server/service/ttl/AlarmsCleanUpServiceTest.java | 2 +- .../server/service/ttl/EventsCleanUpServiceTest.java | 2 +- .../org/thingsboard/server/system/BaseHttpDeviceApiTest.java | 2 +- .../org/thingsboard/server/system/BaseRestApiLimitsTest.java | 2 +- .../thingsboard/server/system/RestTemplateConvertersTest.java | 2 +- .../org/thingsboard/server/system/SystemPatchApplierTest.java | 2 +- .../org/thingsboard/server/system/sql/DeviceApiSqlTest.java | 2 +- .../thingsboard/server/system/sql/RestApiLimitsSqlTest.java | 2 +- .../server/transport/AbstractTransportIntegrationTest.java | 2 +- .../thingsboard/server/transport/TransportNoSqlTestSuite.java | 2 +- .../server/transport/coap/AbstractCoapIntegrationTest.java | 2 +- .../thingsboard/server/transport/coap/CoapTestCallback.java | 2 +- .../org/thingsboard/server/transport/coap/CoapTestClient.java | 2 +- .../server/transport/coap/CoapTestConfigProperties.java | 2 +- .../coap/attributes/AbstractCoapAttributesIntegrationTest.java | 2 +- .../request/CoapAttributesRequestIntegrationTest.java | 2 +- .../request/CoapAttributesRequestJsonIntegrationTest.java | 2 +- .../request/CoapAttributesRequestProtoIntegrationTest.java | 2 +- .../updates/CoapAttributesUpdatesIntegrationTest.java | 2 +- .../updates/CoapAttributesUpdatesJsonIntegrationTest.java | 2 +- .../updates/CoapAttributesUpdatesProtoIntegrationTest.java | 2 +- .../server/transport/coap/claim/CoapClaimDeviceTest.java | 2 +- .../server/transport/coap/claim/CoapClaimJsonDeviceTest.java | 2 +- .../server/transport/coap/claim/CoapClaimProtoDeviceTest.java | 2 +- .../transport/coap/client/CoapClientIntegrationTest.java | 2 +- .../transport/coap/provision/CoapProvisionJsonDeviceTest.java | 2 +- .../transport/coap/provision/CoapProvisionProtoDeviceTest.java | 2 +- .../coap/rpc/AbstractCoapServerSideRpcIntegrationTest.java | 2 +- .../coap/rpc/CoapServerSideRpcDefaultIntegrationTest.java | 2 +- .../coap/rpc/CoapServerSideRpcJsonIntegrationTest.java | 2 +- .../coap/rpc/CoapServerSideRpcProtoIntegrationTest.java | 2 +- .../coap/security/AbstractCoapSecurityIntegrationTest.java | 2 +- .../security/sql/CoapClientX509SecurityJksIntegrationTest.java | 2 +- .../security/sql/CoapClientX509SecurityPemIntegrationTest.java | 2 +- .../telemetry/attributes/CoapAttributesIntegrationTest.java | 2 +- .../attributes/CoapAttributesJsonIntegrationTest.java | 2 +- .../attributes/CoapAttributesProtoIntegrationTest.java | 2 +- .../timeseries/AbstractCoapTimeseriesIntegrationTest.java | 2 +- .../timeseries/AbstractCoapTimeseriesJsonIntegrationTest.java | 2 +- .../timeseries/AbstractCoapTimeseriesProtoIntegrationTest.java | 2 +- .../timeseries/nosql/CoapTimeseriesNoSqlIntegrationTest.java | 2 +- .../nosql/CoapTimeseriesNoSqlJsonIntegrationTest.java | 2 +- .../nosql/CoapTimeseriesNoSqlProtoIntegrationTest.java | 2 +- .../timeseries/sql/CoapTimeseriesSqlIntegrationTest.java | 2 +- .../timeseries/sql/CoapTimeseriesSqlJsonIntegrationTest.java | 2 +- .../timeseries/sql/CoapTimeseriesSqlProtoIntegrationTest.java | 2 +- .../thingsboard/server/transport/coap/x509/CertPrivateKey.java | 2 +- .../server/transport/coap/x509/CoapClientX509Test.java | 2 +- .../transport/coap/x509/TbAdvancedCertificateVerifier.java | 2 +- .../server/transport/lwm2m/AbstractLwM2MIntegrationTest.java | 2 +- .../thingsboard/server/transport/lwm2m/Lwm2mTestHelper.java | 2 +- .../lwm2m/attributes/DefaultLwM2mAttributeParserTest.java | 2 +- .../transport/lwm2m/attributes/DefaultLwM2mLinkParserTest.java | 2 +- .../server/transport/lwm2m/attributes/LwM2mAttributesTest.java | 2 +- .../server/transport/lwm2m/client/DtlsSessionLogger.java | 2 +- .../server/transport/lwm2m/client/FwLwM2MDevice.java | 2 +- .../server/transport/lwm2m/client/LwM2MLocationParams.java | 2 +- .../server/transport/lwm2m/client/LwM2MTestClient.java | 2 +- .../transport/lwm2m/client/LwM2mBinaryAppDataContainer.java | 2 +- .../server/transport/lwm2m/client/LwM2mLocation.java | 2 +- .../server/transport/lwm2m/client/LwM2mTemperatureSensor.java | 2 +- .../thingsboard/server/transport/lwm2m/client/Lwm2mServer.java | 2 +- .../server/transport/lwm2m/client/SimpleLwM2MDevice.java | 2 +- .../server/transport/lwm2m/client/SwLwM2MDevice.java | 2 +- .../transport/lwm2m/ota/AbstractOtaLwM2MIntegrationTest.java | 2 +- .../transport/lwm2m/ota/sql/Ota5LwM2MIntegrationTest.java | 2 +- .../transport/lwm2m/ota/sql/Ota9LwM2MIntegrationTest.java | 2 +- .../rpc/AbstractRpcLwM2MIntegrationObserve_Ver_1_0_Test.java | 2 +- .../rpc/AbstractRpcLwM2MIntegrationObserve_Ver_1_1_Test.java | 2 +- .../rpc/AbstractRpcLwM2MIntegrationObserve_Ver_1_2_Test.java | 2 +- .../transport/lwm2m/rpc/AbstractRpcLwM2MIntegrationTest.java | 2 +- .../lwm2m/rpc/sql/RpcLwm2MIntegrationObserveCompositeTest.java | 2 +- .../transport/lwm2m/rpc/sql/RpcLwm2mIntegrationCreateTest.java | 2 +- .../rpc/sql/RpcLwm2mIntegrationDataReceivedFromClientTest.java | 2 +- .../transport/lwm2m/rpc/sql/RpcLwm2mIntegrationDeleteTest.java | 2 +- .../lwm2m/rpc/sql/RpcLwm2mIntegrationDiscoverTest.java | 2 +- .../sql/RpcLwm2mIntegrationDiscoverWriteAttributesTest.java | 2 +- .../lwm2m/rpc/sql/RpcLwm2mIntegrationExecuteTest.java | 2 +- .../lwm2m/rpc/sql/RpcLwm2mIntegrationObserveTest.java | 2 +- .../lwm2m/rpc/sql/RpcLwm2mIntegrationObserveVer10Test.java | 2 +- .../lwm2m/rpc/sql/RpcLwm2mIntegrationObserveVer11Test.java | 2 +- .../lwm2m/rpc/sql/RpcLwm2mIntegrationObserveVer12Test.java | 2 +- .../rpc/sql/RpcLwm2mIntegrationReadCollectedValueTest.java | 2 +- .../transport/lwm2m/rpc/sql/RpcLwm2mIntegrationReadTest.java | 2 +- .../lwm2m/rpc/sql/RpcLwm2mIntegrationWriteCborTest.java | 2 +- .../transport/lwm2m/rpc/sql/RpcLwm2mIntegrationWriteTest.java | 2 +- .../lwm2m/security/AbstractSecurityLwM2MIntegrationTest.java | 2 +- .../AbstractSecurityLwM2MIntegrationDtlsCidLength0Test.java | 2 +- .../AbstractSecurityLwM2MIntegrationDtlsCidLength3Test.java | 2 +- .../AbstractSecurityLwM2MIntegrationDtlsCidLengthNullTest.java | 2 +- .../cid/AbstractSecurityLwM2MIntegrationDtlsCidLengthTest.java | 2 +- .../NoSecLwM2MIntegrationDtlsCidLengthTest.java | 2 +- .../PskLwm2mIntegrationDtlsCidLengthTest.java | 2 +- .../NoSecLwM2MIntegrationDtlsCidLengthTest.java | 2 +- .../PskLwm2mIntegrationDtlsCidLengthTest.java | 2 +- .../NoSecLwM2MIntegrationDtlsCidLengthTest.java | 2 +- .../PskLwm2mIntegrationDtlsCidLengthTest.java | 2 +- .../diffPort/AbstractLwM2MIntegrationDiffPortTest.java | 2 +- .../lwm2m/security/diffPort/LwM2MIntegrationDiffPortTest.java | 2 +- .../lwm2m/security/sql/NoSecLwM2MIntegrationTest.java | 2 +- .../transport/lwm2m/security/sql/PskLwm2mIntegrationTest.java | 2 +- .../transport/lwm2m/security/sql/RpkLwM2MIntegrationTest.java | 2 +- .../lwm2m/security/sql/X509_NoTrustLwM2MIntegrationTest.java | 2 +- .../lwm2m/security/sql/X509_TrustLwM2MIntegrationTest.java | 2 +- .../transport/lwm2m/server/LwM2mTransportServerHelperTest.java | 2 +- .../ObserveStrategyTransportConfigurationTest.java | 2 +- .../ObserveStrategyWithNoSecQueueModeConnectTest.java | 2 +- .../server/transport/mqtt/AbstractMqttIntegrationTest.java | 2 +- .../server/transport/mqtt/MqttGatewayRateLimitsTest.java | 2 +- .../server/transport/mqtt/MqttTestConfigProperties.java | 2 +- .../server/transport/mqtt/mqttv3/MqttTestCallback.java | 2 +- .../server/transport/mqtt/mqttv3/MqttTestClient.java | 2 +- .../mqtt/mqttv3/MqttTestSubscribeOnTopicCallback.java | 2 +- .../attributes/AbstractMqttAttributesIntegrationTest.java | 2 +- ...tAttributesRequestBackwardCompatibilityIntegrationTest.java | 2 +- .../request/MqttAttributesRequestIntegrationTest.java | 2 +- .../request/MqttAttributesRequestJsonIntegrationTest.java | 2 +- .../request/MqttAttributesRequestProtoIntegrationTest.java | 2 +- ...tAttributesUpdatesBackwardCompatibilityIntegrationTest.java | 2 +- .../updates/MqttAttributesUpdatesIntegrationTest.java | 2 +- .../updates/MqttAttributesUpdatesJsonIntegrationTest.java | 2 +- .../updates/MqttAttributesUpdatesProtoIntegrationTest.java | 2 +- .../mqttv3/claim/MqttClaimBackwardCompatibilityDeviceTest.java | 2 +- .../transport/mqtt/mqttv3/claim/MqttClaimDeviceTest.java | 2 +- .../transport/mqtt/mqttv3/claim/MqttClaimJsonDeviceTest.java | 2 +- .../transport/mqtt/mqttv3/claim/MqttClaimProtoDeviceTest.java | 2 +- .../mqtt/mqttv3/client/AbstractMqttClientConnectionTest.java | 2 +- .../transport/mqtt/mqttv3/client/MqttClientConnectionTest.java | 2 +- .../mqtt/mqttv3/credentials/BasicMqttCredentialsTest.java | 2 +- .../mqtt/mqttv3/provision/MqttProvisionJsonDeviceTest.java | 2 +- .../mqtt/mqttv3/provision/MqttProvisionProtoDeviceTest.java | 2 +- .../mqttv3/rpc/AbstractMqttServerSideRpcIntegrationTest.java | 2 +- .../mqtt/mqttv3/rpc/MqttClientSideRpcIntegrationTest.java | 2 +- .../MqttServerSideRpcBackwardCompatibilityIntegrationTest.java | 2 +- .../mqttv3/rpc/MqttServerSideRpcDefaultIntegrationTest.java | 2 +- .../mqtt/mqttv3/rpc/MqttServerSideRpcJsonIntegrationTest.java | 2 +- .../mqtt/mqttv3/rpc/MqttServerSideRpcProtoIntegrationTest.java | 2 +- .../rpc/MqttServerSideRpcSequenceOnAckIntegrationTest.java | 2 +- .../MqttServerSideRpcSequenceOnResponseIntegrationTest.java | 2 +- .../telemetry/attributes/MqttAttributesIntegrationTest.java | 2 +- .../attributes/MqttAttributesJsonIntegrationTest.java | 2 +- .../attributes/MqttAttributesProtoIntegrationTest.java | 2 +- .../timeseries/AbstractMqttTimeseriesIntegrationTest.java | 2 +- .../timeseries/AbstractMqttTimeseriesJsonIntegrationTest.java | 2 +- .../timeseries/AbstractMqttTimeseriesProtoIntegrationTest.java | 2 +- .../timeseries/nosql/MqttTimeseriesNoSqlIntegrationTest.java | 2 +- .../nosql/MqttTimeseriesNoSqlJsonIntegrationTest.java | 2 +- .../nosql/MqttTimeseriesNoSqlProtoIntegrationTest.java | 2 +- .../timeseries/sql/MqttTimeseriesSqlIntegrationTest.java | 2 +- .../timeseries/sql/MqttTimeseriesSqlJsonIntegrationTest.java | 2 +- .../timeseries/sql/MqttTimeseriesSqlProtoIntegrationTest.java | 2 +- .../server/transport/mqtt/mqttv5/AbstractMqttV5Test.java | 2 +- .../server/transport/mqtt/mqttv5/MqttV5TestCallback.java | 2 +- .../server/transport/mqtt/mqttv5/MqttV5TestClient.java | 2 +- .../mqtt/mqttv5/attributes/AbstractAttributesMqttV5Test.java | 2 +- .../mqtt/mqttv5/attributes/updates/AttributesUpdatesTest.java | 2 +- .../mqtt/mqttv5/attributes/upload/AttributesPublishTest.java | 2 +- .../transport/mqtt/mqttv5/claim/AbstractMqttV5ClaimTest.java | 2 +- .../server/transport/mqtt/mqttv5/claim/MqttV5ClaimTest.java | 2 +- .../client/connection/AbstractMqttV5ClientConnectionTest.java | 2 +- .../mqttv5/client/connection/MqttV5ClientConnectionTest.java | 2 +- .../mqttv5/client/publish/AbstractMqttV5ClientPublishTest.java | 2 +- .../mqtt/mqttv5/client/publish/MqttV5ClientPublishTest.java | 2 +- .../client/subscribe/AbstractMqttV5ClientSubscriptionTest.java | 2 +- .../mqttv5/client/subscribe/MqttV5ClientSubscriptionTest.java | 2 +- .../unsubscribe/AbstractMqttV5ClientUnsubscribeTest.java | 2 +- .../mqttv5/client/unsubscribe/MqttV5ClientUnsubscribeTest.java | 2 +- .../mqtt/mqttv5/provision/MqttV5ProvisionDeviceTest.java | 2 +- .../transport/mqtt/mqttv5/rpc/AbstractMqttV5RpcTest.java | 2 +- ...oseTransportSessionOnRpcDeliveryTimeoutIntegrationTest.java | 2 +- .../server/transport/mqtt/mqttv5/rpc/MqttV5RpcTest.java | 2 +- .../mqtt/mqttv5/timeseries/AbstractMqttV5TimeseriesTest.java | 2 +- .../transport/mqtt/mqttv5/timeseries/MqttV5TimeseriesTest.java | 2 +- .../mqtt/sparkplug/AbstractMqttV5ClientSparkplugTest.java | 2 +- .../AbstractMqttV5ClientSparkplugAttributesTest.java | 2 +- .../MqttV5ClientSparkplugBAttributesInProfileTest.java | 2 +- .../attributes/MqttV5ClientSparkplugBAttributesTest.java | 2 +- .../AbstractMqttV5ClientSparkplugConnectionTest.java | 2 +- .../connection/MqttV5ClientSparkplugBConnectionTest.java | 2 +- .../mqtt/sparkplug/rpc/AbstractMqttV5RpcSparkplugTest.java | 2 +- .../transport/mqtt/sparkplug/rpc/MqttV5RpcSparkplugTest.java | 2 +- .../timeseries/AbstractMqttV5ClientSparkplugTelemetryTest.java | 2 +- .../timeseries/MqttV5ClientSparkplugBTelemetryTest.java | 2 +- .../org/thingsboard/server/utils/TbNodeUpgradeUtilsTest.java | 2 +- build.sh | 2 +- build_proto.sh | 2 +- common/actor/pom.xml | 2 +- .../java/org/thingsboard/server/actors/AbstractTbActor.java | 2 +- .../org/thingsboard/server/actors/DefaultTbActorSystem.java | 2 +- .../main/java/org/thingsboard/server/actors/Dispatcher.java | 2 +- .../org/thingsboard/server/actors/InitFailureStrategy.java | 2 +- .../org/thingsboard/server/actors/ProcessFailureStrategy.java | 2 +- .../src/main/java/org/thingsboard/server/actors/TbActor.java | 2 +- .../java/org/thingsboard/server/actors/TbActorCreator.java | 2 +- .../main/java/org/thingsboard/server/actors/TbActorCtx.java | 2 +- .../java/org/thingsboard/server/actors/TbActorException.java | 2 +- .../src/main/java/org/thingsboard/server/actors/TbActorId.java | 2 +- .../java/org/thingsboard/server/actors/TbActorMailbox.java | 2 +- .../server/actors/TbActorNotRegisteredException.java | 2 +- .../main/java/org/thingsboard/server/actors/TbActorRef.java | 2 +- .../main/java/org/thingsboard/server/actors/TbActorSystem.java | 2 +- .../org/thingsboard/server/actors/TbActorSystemSettings.java | 2 +- .../server/actors/TbCalculatedFieldEntityActorId.java | 2 +- .../java/org/thingsboard/server/actors/TbEntityActorId.java | 2 +- .../thingsboard/server/actors/TbRuleNodeUpdateException.java | 2 +- .../java/org/thingsboard/server/actors/TbStringActorId.java | 2 +- .../java/org/thingsboard/server/actors/ActorSystemTest.java | 2 +- .../test/java/org/thingsboard/server/actors/ActorTestCtx.java | 2 +- .../java/org/thingsboard/server/actors/FailedToInitActor.java | 2 +- .../test/java/org/thingsboard/server/actors/IntTbActorMsg.java | 2 +- .../java/org/thingsboard/server/actors/SlowCreateActor.java | 2 +- .../test/java/org/thingsboard/server/actors/SlowInitActor.java | 2 +- .../test/java/org/thingsboard/server/actors/TestRootActor.java | 2 +- common/cache/pom.xml | 2 +- .../src/main/java/org/thingsboard/server/cache/CacheSpecs.java | 2 +- .../main/java/org/thingsboard/server/cache/CacheSpecsMap.java | 2 +- .../thingsboard/server/cache/CaffeineTbCacheTransaction.java | 2 +- .../thingsboard/server/cache/CaffeineTbTransactionalCache.java | 2 +- .../java/org/thingsboard/server/cache/RedisSslCredentials.java | 2 +- .../org/thingsboard/server/cache/RedisTbCacheTransaction.java | 2 +- .../thingsboard/server/cache/RedisTbTransactionalCache.java | 2 +- .../thingsboard/server/cache/SimpleTbCacheValueWrapper.java | 2 +- .../thingsboard/server/cache/TBRedisCacheConfiguration.java | 2 +- .../thingsboard/server/cache/TBRedisClusterConfiguration.java | 2 +- .../thingsboard/server/cache/TBRedisSentinelConfiguration.java | 2 +- .../server/cache/TBRedisStandaloneConfiguration.java | 2 +- .../java/org/thingsboard/server/cache/TbCacheTransaction.java | 2 +- .../java/org/thingsboard/server/cache/TbCacheValueWrapper.java | 2 +- .../thingsboard/server/cache/TbCaffeineCacheConfiguration.java | 2 +- .../org/thingsboard/server/cache/TbJavaRedisSerializer.java | 2 +- .../org/thingsboard/server/cache/TbJsonRedisSerializer.java | 2 +- .../java/org/thingsboard/server/cache/TbRedisSerializer.java | 2 +- .../org/thingsboard/server/cache/TbTransactionalCache.java | 2 +- .../thingsboard/server/cache/TbTypedJsonRedisSerializer.java | 2 +- .../java/org/thingsboard/server/cache/VersionedCacheKey.java | 2 +- .../org/thingsboard/server/cache/VersionedCaffeineTbCache.java | 2 +- .../org/thingsboard/server/cache/VersionedRedisTbCache.java | 2 +- .../java/org/thingsboard/server/cache/VersionedTbCache.java | 2 +- .../server/cache/customer/CustomerCacheEvictEvent.java | 2 +- .../thingsboard/server/cache/customer/CustomerCacheKey.java | 2 +- .../server/cache/customer/CustomerCaffeineCache.java | 2 +- .../thingsboard/server/cache/customer/CustomerRedisCache.java | 2 +- .../thingsboard/server/cache/device/DeviceCacheEvictEvent.java | 2 +- .../org/thingsboard/server/cache/device/DeviceCacheKey.java | 2 +- .../thingsboard/server/cache/device/DeviceCaffeineCache.java | 2 +- .../org/thingsboard/server/cache/device/DeviceRedisCache.java | 2 +- .../org/thingsboard/server/cache/edge/EdgeCacheEvictEvent.java | 2 +- .../java/org/thingsboard/server/cache/edge/EdgeCacheKey.java | 2 +- .../org/thingsboard/server/cache/edge/EdgeCaffeineCache.java | 2 +- .../java/org/thingsboard/server/cache/edge/EdgeRedisCache.java | 2 +- .../thingsboard/server/cache/edge/RelatedEdgesCacheKey.java | 2 +- .../thingsboard/server/cache/edge/RelatedEdgesCacheValue.java | 2 +- .../server/cache/edge/RelatedEdgesCaffeineCache.java | 2 +- .../thingsboard/server/cache/edge/RelatedEdgesEvictEvent.java | 2 +- .../thingsboard/server/cache/edge/RelatedEdgesRedisCache.java | 2 +- .../server/cache/limits/DefaultRateLimitService.java | 2 +- .../org/thingsboard/server/cache/limits/RateLimitService.java | 2 +- .../thingsboard/server/cache/limits/TenantProfileProvider.java | 2 +- .../thingsboard/server/cache/ota/CaffeineOtaPackageCache.java | 2 +- .../org/thingsboard/server/cache/ota/OtaPackageDataCache.java | 2 +- .../thingsboard/server/cache/ota/RedisOtaPackageDataCache.java | 2 +- .../server/cache/resourceInfo/ResourceInfoCacheKey.java | 2 +- .../server/cache/resourceInfo/ResourceInfoCaffeineCache.java | 2 +- .../server/cache/resourceInfo/ResourceInfoEvictEvent.java | 2 +- .../server/cache/resourceInfo/ResourceInfoRedisCache.java | 2 +- .../org/thingsboard/server/cache/user/UserCacheEvictEvent.java | 2 +- .../java/org/thingsboard/server/cache/user/UserCacheKey.java | 2 +- .../org/thingsboard/server/cache/user/UserCaffeineCache.java | 2 +- .../java/org/thingsboard/server/cache/user/UserRedisCache.java | 2 +- .../usersUpdateTime/UsersSessionInvalidationCaffeineCache.java | 2 +- .../usersUpdateTime/UsersSessionInvalidationRedisCache.java | 2 +- .../java/org/thingsboard/server/cache/CacheSpecsMapTest.java | 2 +- .../org/thingsboard/server/cache/TsLatestRedisCacheTest.java | 2 +- common/cluster-api/pom.xml | 2 +- .../java/org/thingsboard/server/cluster/TbClusterService.java | 2 +- .../java/org/thingsboard/server/queue/TbEdgeQueueAdmin.java | 2 +- .../main/java/org/thingsboard/server/queue/TbQueueAdmin.java | 2 +- .../java/org/thingsboard/server/queue/TbQueueCallback.java | 2 +- .../org/thingsboard/server/queue/TbQueueClusterService.java | 2 +- .../java/org/thingsboard/server/queue/TbQueueConsumer.java | 2 +- .../main/java/org/thingsboard/server/queue/TbQueueHandler.java | 2 +- .../src/main/java/org/thingsboard/server/queue/TbQueueMsg.java | 2 +- .../java/org/thingsboard/server/queue/TbQueueMsgDecoder.java | 2 +- .../java/org/thingsboard/server/queue/TbQueueMsgHeaders.java | 2 +- .../java/org/thingsboard/server/queue/TbQueueMsgMetadata.java | 2 +- .../java/org/thingsboard/server/queue/TbQueueProducer.java | 2 +- .../org/thingsboard/server/queue/TbQueueRequestTemplate.java | 2 +- .../org/thingsboard/server/queue/TbQueueResponseTemplate.java | 2 +- common/coap-server/pom.xml | 2 +- .../org/thingsboard/server/coapserver/CoapServerContext.java | 2 +- .../org/thingsboard/server/coapserver/CoapServerService.java | 2 +- .../server/coapserver/DefaultCoapServerService.java | 2 +- .../server/coapserver/TbCoapDtlsCertificateVerifier.java | 2 +- .../server/coapserver/TbCoapDtlsSessionInMemoryStorage.java | 2 +- .../thingsboard/server/coapserver/TbCoapDtlsSessionInfo.java | 2 +- .../thingsboard/server/coapserver/TbCoapDtlsSessionKey.java | 2 +- .../org/thingsboard/server/coapserver/TbCoapDtlsSettings.java | 2 +- .../thingsboard/server/coapserver/TbCoapServerComponent.java | 2 +- .../server/coapserver/TbCoapServerMessageDeliverer.java | 2 +- .../server/coapserver/TbCoapTransportComponent.java | 2 +- .../thingsboard/server/coapserver/TbCoapDtlsSettingsTest.java | 2 +- common/dao-api/pom.xml | 2 +- .../java/org/thingsboard/server/dao/ai/AiModelService.java | 2 +- .../org/thingsboard/server/dao/alarm/AlarmCommentService.java | 2 +- .../java/org/thingsboard/server/dao/alarm/AlarmService.java | 2 +- .../org/thingsboard/server/dao/asset/AssetProfileService.java | 2 +- .../java/org/thingsboard/server/dao/asset/AssetService.java | 2 +- .../thingsboard/server/dao/attributes/AttributesService.java | 2 +- .../java/org/thingsboard/server/dao/audit/AuditLogService.java | 2 +- .../server/dao/cassandra/AbstractCassandraCluster.java | 2 +- .../org/thingsboard/server/dao/cassandra/CassandraCluster.java | 2 +- .../server/dao/cassandra/CassandraDriverOptions.java | 2 +- .../server/dao/cassandra/CassandraInstallCluster.java | 2 +- .../server/dao/cassandra/guava/DefaultGuavaSession.java | 2 +- .../server/dao/cassandra/guava/GuavaDriverContext.java | 2 +- .../server/dao/cassandra/guava/GuavaMultiPageResultSet.java | 2 +- .../server/dao/cassandra/guava/GuavaRequestAsyncProcessor.java | 2 +- .../thingsboard/server/dao/cassandra/guava/GuavaSession.java | 2 +- .../server/dao/cassandra/guava/GuavaSessionBuilder.java | 2 +- .../server/dao/cassandra/guava/GuavaSessionUtils.java | 2 +- .../org/thingsboard/server/dao/cf/CalculatedFieldService.java | 2 +- .../server/dao/component/ComponentDescriptorService.java | 2 +- .../org/thingsboard/server/dao/customer/CustomerService.java | 2 +- .../org/thingsboard/server/dao/dashboard/DashboardService.java | 2 +- .../org/thingsboard/server/dao/device/ClaimDevicesService.java | 2 +- .../server/dao/device/DeviceConnectivityService.java | 2 +- .../server/dao/device/DeviceCredentialsService.java | 2 +- .../thingsboard/server/dao/device/DeviceProfileService.java | 2 +- .../thingsboard/server/dao/device/DeviceProvisionService.java | 2 +- .../java/org/thingsboard/server/dao/device/DeviceService.java | 2 +- .../org/thingsboard/server/dao/device/claim/ClaimData.java | 2 +- .../org/thingsboard/server/dao/device/claim/ClaimResponse.java | 2 +- .../org/thingsboard/server/dao/device/claim/ClaimResult.java | 2 +- .../org/thingsboard/server/dao/device/claim/ReclaimResult.java | 2 +- .../server/dao/device/provision/ProvisionFailedException.java | 2 +- .../server/dao/device/provision/ProvisionRequest.java | 2 +- .../server/dao/device/provision/ProvisionResponse.java | 2 +- .../server/dao/device/provision/ProvisionResponseStatus.java | 2 +- .../java/org/thingsboard/server/dao/domain/DomainService.java | 2 +- .../java/org/thingsboard/server/dao/edge/EdgeEventService.java | 2 +- .../main/java/org/thingsboard/server/dao/edge/EdgeService.java | 2 +- .../server/dao/edge/EdgeSynchronizationManager.java | 2 +- .../org/thingsboard/server/dao/edge/RelatedEdgesService.java | 2 +- .../org/thingsboard/server/dao/entity/EntityCountService.java | 2 +- .../org/thingsboard/server/dao/entity/EntityDaoService.java | 2 +- .../java/org/thingsboard/server/dao/entity/EntityService.java | 2 +- .../thingsboard/server/dao/entity/EntityServiceRegistry.java | 2 +- .../thingsboard/server/dao/entityview/EntityViewService.java | 2 +- .../java/org/thingsboard/server/dao/event/EventService.java | 2 +- .../main/java/org/thingsboard/server/dao/job/JobService.java | 2 +- .../thingsboard/server/dao/mobile/MobileAppBundleService.java | 2 +- .../org/thingsboard/server/dao/mobile/MobileAppService.java | 2 +- .../thingsboard/server/dao/nosql/CassandraStatementTask.java | 2 +- .../java/org/thingsboard/server/dao/nosql/TbResultSet.java | 2 +- .../org/thingsboard/server/dao/nosql/TbResultSetFuture.java | 2 +- .../server/dao/notification/NotificationRequestService.java | 2 +- .../server/dao/notification/NotificationRuleService.java | 2 +- .../server/dao/notification/NotificationService.java | 2 +- .../server/dao/notification/NotificationSettingsService.java | 2 +- .../server/dao/notification/NotificationTargetService.java | 2 +- .../server/dao/notification/NotificationTemplateService.java | 2 +- .../org/thingsboard/server/dao/oauth2/OAuth2ClientService.java | 2 +- .../server/dao/oauth2/OAuth2ConfigTemplateService.java | 2 +- .../java/org/thingsboard/server/dao/oauth2/OAuth2User.java | 2 +- .../java/org/thingsboard/server/dao/ota/OtaPackageService.java | 2 +- .../java/org/thingsboard/server/dao/queue/QueueService.java | 2 +- .../org/thingsboard/server/dao/queue/QueueStatsService.java | 2 +- .../org/thingsboard/server/dao/relation/RelationService.java | 2 +- .../java/org/thingsboard/server/dao/resource/ImageService.java | 2 +- .../org/thingsboard/server/dao/resource/ResourceService.java | 2 +- .../thingsboard/server/dao/resource/TbResourceDataCache.java | 2 +- .../main/java/org/thingsboard/server/dao/rpc/RpcService.java | 2 +- .../java/org/thingsboard/server/dao/rule/RuleChainService.java | 2 +- .../org/thingsboard/server/dao/rule/RuleNodeStateService.java | 2 +- .../thingsboard/server/dao/settings/AdminSettingsService.java | 2 +- .../thingsboard/server/dao/tenant/TbTenantProfileCache.java | 2 +- .../thingsboard/server/dao/tenant/TenantProfileService.java | 2 +- .../java/org/thingsboard/server/dao/tenant/TenantService.java | 2 +- .../thingsboard/server/dao/timeseries/TimeseriesService.java | 2 +- .../thingsboard/server/dao/trendz/TrendzSettingsService.java | 2 +- .../org/thingsboard/server/dao/usage/UsageInfoService.java | 2 +- .../thingsboard/server/dao/usagerecord/ApiLimitService.java | 2 +- .../server/dao/usagerecord/ApiUsageStateService.java | 2 +- .../main/java/org/thingsboard/server/dao/user/UserService.java | 2 +- .../org/thingsboard/server/dao/user/UserSettingsService.java | 2 +- .../main/java/org/thingsboard/server/dao/util/AsyncTask.java | 2 +- .../org/thingsboard/server/dao/util/DbTypeInfoComponent.java | 2 +- .../server/dao/util/DefaultDbTypeInfoComponent.java | 2 +- .../main/java/org/thingsboard/server/dao/util/NoSqlAnyDao.java | 2 +- .../org/thingsboard/server/dao/util/NoSqlAnyDaoNonCloud.java | 2 +- .../main/java/org/thingsboard/server/dao/util/NoSqlTsDao.java | 2 +- .../java/org/thingsboard/server/dao/util/NoSqlTsLatestDao.java | 2 +- .../src/main/java/org/thingsboard/server/dao/util/SqlDao.java | 2 +- .../main/java/org/thingsboard/server/dao/util/SqlTsDao.java | 2 +- .../org/thingsboard/server/dao/util/SqlTsLatestAnyDao.java | 2 +- .../server/dao/util/SqlTsLatestAnyDaoCachedRedis.java | 2 +- .../java/org/thingsboard/server/dao/util/SqlTsLatestDao.java | 2 +- .../org/thingsboard/server/dao/util/SqlTsOrTsLatestAnyDao.java | 2 +- .../org/thingsboard/server/dao/util/TbAutoConfiguration.java | 2 +- .../java/org/thingsboard/server/dao/util/TimescaleDBTsDao.java | 2 +- .../thingsboard/server/dao/util/TimescaleDBTsLatestDao.java | 2 +- .../server/dao/util/TimescaleDBTsOrTsLatestDao.java | 2 +- .../org/thingsboard/server/dao/widget/WidgetTypeService.java | 2 +- .../thingsboard/server/dao/widget/WidgetsBundleService.java | 2 +- common/data/pom.xml | 2 +- .../java/org/thingsboard/server/common/data/AdminSettings.java | 2 +- .../java/org/thingsboard/server/common/data/ApiFeature.java | 2 +- .../org/thingsboard/server/common/data/ApiUsageRecordKey.java | 2 +- .../thingsboard/server/common/data/ApiUsageRecordState.java | 2 +- .../java/org/thingsboard/server/common/data/ApiUsageState.java | 2 +- .../org/thingsboard/server/common/data/ApiUsageStateValue.java | 2 +- .../org/thingsboard/server/common/data/AttributeScope.java | 2 +- .../main/java/org/thingsboard/server/common/data/BaseData.java | 2 +- .../server/common/data/BaseDataWithAdditionalInfo.java | 2 +- .../org/thingsboard/server/common/data/CacheConstants.java | 2 +- .../java/org/thingsboard/server/common/data/ClaimRequest.java | 2 +- .../org/thingsboard/server/common/data/CoapDeviceType.java | 2 +- .../java/org/thingsboard/server/common/data/ContactBased.java | 2 +- .../main/java/org/thingsboard/server/common/data/Customer.java | 2 +- .../java/org/thingsboard/server/common/data/Dashboard.java | 2 +- .../java/org/thingsboard/server/common/data/DashboardInfo.java | 2 +- .../java/org/thingsboard/server/common/data/DataConstants.java | 2 +- .../main/java/org/thingsboard/server/common/data/Device.java | 2 +- .../java/org/thingsboard/server/common/data/DeviceIdInfo.java | 2 +- .../java/org/thingsboard/server/common/data/DeviceInfo.java | 2 +- .../org/thingsboard/server/common/data/DeviceInfoFilter.java | 2 +- .../java/org/thingsboard/server/common/data/DeviceProfile.java | 2 +- .../org/thingsboard/server/common/data/DeviceProfileInfo.java | 2 +- .../server/common/data/DeviceProfileProvisionType.java | 2 +- .../org/thingsboard/server/common/data/DeviceProfileType.java | 2 +- .../thingsboard/server/common/data/DeviceTransportType.java | 2 +- .../org/thingsboard/server/common/data/DynamicProtoUtils.java | 2 +- .../org/thingsboard/server/common/data/EdgeUpgradeInfo.java | 2 +- .../org/thingsboard/server/common/data/EdgeUpgradeMessage.java | 2 +- .../java/org/thingsboard/server/common/data/EdgeUtils.java | 2 +- .../org/thingsboard/server/common/data/EntityFieldsData.java | 2 +- .../java/org/thingsboard/server/common/data/EntityInfo.java | 2 +- .../java/org/thingsboard/server/common/data/EntitySubtype.java | 2 +- .../java/org/thingsboard/server/common/data/EntityType.java | 2 +- .../java/org/thingsboard/server/common/data/EntityView.java | 2 +- .../org/thingsboard/server/common/data/EntityViewInfo.java | 2 +- .../java/org/thingsboard/server/common/data/EventInfo.java | 2 +- .../org/thingsboard/server/common/data/ExportableEntity.java | 2 +- .../java/org/thingsboard/server/common/data/FeaturesInfo.java | 2 +- .../org/thingsboard/server/common/data/FstStatsService.java | 2 +- .../thingsboard/server/common/data/GeneralFileDescriptor.java | 2 +- .../org/thingsboard/server/common/data/HasAdditionalInfo.java | 2 +- .../java/org/thingsboard/server/common/data/HasCustomerId.java | 2 +- .../org/thingsboard/server/common/data/HasDebugSettings.java | 2 +- .../org/thingsboard/server/common/data/HasDefaultOption.java | 2 +- .../main/java/org/thingsboard/server/common/data/HasEmail.java | 2 +- .../main/java/org/thingsboard/server/common/data/HasImage.java | 2 +- .../main/java/org/thingsboard/server/common/data/HasLabel.java | 2 +- .../main/java/org/thingsboard/server/common/data/HasName.java | 2 +- .../java/org/thingsboard/server/common/data/HasOtaPackage.java | 2 +- .../thingsboard/server/common/data/HasRuleEngineProfile.java | 2 +- .../java/org/thingsboard/server/common/data/HasTenantId.java | 2 +- .../main/java/org/thingsboard/server/common/data/HasTitle.java | 2 +- .../java/org/thingsboard/server/common/data/HasVersion.java | 2 +- .../java/org/thingsboard/server/common/data/HomeDashboard.java | 2 +- .../org/thingsboard/server/common/data/HomeDashboardInfo.java | 2 +- .../org/thingsboard/server/common/data/ImageDescriptor.java | 2 +- .../org/thingsboard/server/common/data/JavaSerDesUtil.java | 2 +- .../java/org/thingsboard/server/common/data/ObjectType.java | 2 +- .../java/org/thingsboard/server/common/data/OtaPackage.java | 2 +- .../org/thingsboard/server/common/data/OtaPackageInfo.java | 2 +- .../thingsboard/server/common/data/ProfileEntityIdInfo.java | 2 +- .../org/thingsboard/server/common/data/ResourceExportData.java | 2 +- .../org/thingsboard/server/common/data/ResourceSubType.java | 2 +- .../java/org/thingsboard/server/common/data/ResourceType.java | 2 +- .../java/org/thingsboard/server/common/data/ResourceUtils.java | 2 +- .../server/common/data/SaveDeviceWithCredentialsRequest.java | 2 +- .../server/common/data/SaveOtaPackageInfoRequest.java | 2 +- .../org/thingsboard/server/common/data/ShortCustomerInfo.java | 2 +- .../java/org/thingsboard/server/common/data/StringUtils.java | 2 +- .../java/org/thingsboard/server/common/data/SystemInfo.java | 2 +- .../org/thingsboard/server/common/data/SystemInfoData.java | 2 +- .../java/org/thingsboard/server/common/data/SystemParams.java | 2 +- .../thingsboard/server/common/data/TbImageDeleteResult.java | 2 +- .../java/org/thingsboard/server/common/data/TbProperty.java | 2 +- .../java/org/thingsboard/server/common/data/TbResource.java | 2 +- .../org/thingsboard/server/common/data/TbResourceDataInfo.java | 2 +- .../thingsboard/server/common/data/TbResourceDeleteResult.java | 2 +- .../org/thingsboard/server/common/data/TbResourceInfo.java | 2 +- .../thingsboard/server/common/data/TbResourceInfoFilter.java | 2 +- .../org/thingsboard/server/common/data/TbTransportService.java | 2 +- .../main/java/org/thingsboard/server/common/data/Tenant.java | 2 +- .../java/org/thingsboard/server/common/data/TenantInfo.java | 2 +- .../java/org/thingsboard/server/common/data/TenantProfile.java | 2 +- .../org/thingsboard/server/common/data/TenantProfileType.java | 2 +- .../thingsboard/server/common/data/TransportPayloadType.java | 2 +- .../java/org/thingsboard/server/common/data/UUIDConverter.java | 2 +- .../java/org/thingsboard/server/common/data/UpdateMessage.java | 2 +- .../java/org/thingsboard/server/common/data/UsageInfo.java | 2 +- .../src/main/java/org/thingsboard/server/common/data/User.java | 2 +- .../org/thingsboard/server/common/data/UserActivationLink.java | 2 +- .../java/org/thingsboard/server/common/data/UserEmailInfo.java | 2 +- .../main/java/org/thingsboard/server/common/data/Views.java | 2 +- .../java/org/thingsboard/server/common/data/ai/AiModel.java | 2 +- .../thingsboard/server/common/data/ai/dto/TbChatRequest.java | 2 +- .../thingsboard/server/common/data/ai/dto/TbChatResponse.java | 2 +- .../org/thingsboard/server/common/data/ai/dto/TbContent.java | 2 +- .../thingsboard/server/common/data/ai/dto/TbUserMessage.java | 2 +- .../thingsboard/server/common/data/ai/model/AiModelConfig.java | 2 +- .../thingsboard/server/common/data/ai/model/AiModelType.java | 2 +- .../server/common/data/ai/model/chat/AiChatModelConfig.java | 2 +- .../data/ai/model/chat/AmazonBedrockChatModelConfig.java | 2 +- .../common/data/ai/model/chat/AnthropicChatModelConfig.java | 2 +- .../common/data/ai/model/chat/AzureOpenAiChatModelConfig.java | 2 +- .../common/data/ai/model/chat/GitHubModelsChatModelConfig.java | 2 +- .../data/ai/model/chat/GoogleAiGeminiChatModelConfig.java | 2 +- .../ai/model/chat/GoogleVertexAiGeminiChatModelConfig.java | 2 +- .../data/ai/model/chat/Langchain4jChatModelConfigurer.java | 2 +- .../common/data/ai/model/chat/MistralAiChatModelConfig.java | 2 +- .../common/data/ai/model/chat/OllamaChatModelConfig.java | 2 +- .../common/data/ai/model/chat/OpenAiChatModelConfig.java | 2 +- .../thingsboard/server/common/data/ai/provider/AiProvider.java | 2 +- .../server/common/data/ai/provider/AiProviderConfig.java | 2 +- .../common/data/ai/provider/AmazonBedrockProviderConfig.java | 2 +- .../common/data/ai/provider/AnthropicProviderConfig.java | 2 +- .../common/data/ai/provider/AzureOpenAiProviderConfig.java | 2 +- .../common/data/ai/provider/GitHubModelsProviderConfig.java | 2 +- .../common/data/ai/provider/GoogleAiGeminiProviderConfig.java | 2 +- .../data/ai/provider/GoogleVertexAiGeminiProviderConfig.java | 2 +- .../common/data/ai/provider/MistralAiProviderConfig.java | 2 +- .../server/common/data/ai/provider/OllamaProviderConfig.java | 2 +- .../server/common/data/ai/provider/OpenAiProviderConfig.java | 2 +- .../java/org/thingsboard/server/common/data/alarm/Alarm.java | 2 +- .../server/common/data/alarm/AlarmApiCallResult.java | 2 +- .../thingsboard/server/common/data/alarm/AlarmAssignee.java | 2 +- .../server/common/data/alarm/AlarmAssigneeUpdate.java | 2 +- .../org/thingsboard/server/common/data/alarm/AlarmComment.java | 2 +- .../thingsboard/server/common/data/alarm/AlarmCommentInfo.java | 2 +- .../thingsboard/server/common/data/alarm/AlarmCommentType.java | 2 +- .../common/data/alarm/AlarmCreateOrUpdateActiveRequest.java | 2 +- .../org/thingsboard/server/common/data/alarm/AlarmInfo.java | 2 +- .../server/common/data/alarm/AlarmModificationRequest.java | 2 +- .../server/common/data/alarm/AlarmPropagationInfo.java | 2 +- .../org/thingsboard/server/common/data/alarm/AlarmQuery.java | 2 +- .../org/thingsboard/server/common/data/alarm/AlarmQueryV2.java | 2 +- .../server/common/data/alarm/AlarmSearchStatus.java | 2 +- .../thingsboard/server/common/data/alarm/AlarmSeverity.java | 2 +- .../org/thingsboard/server/common/data/alarm/AlarmStatus.java | 2 +- .../server/common/data/alarm/AlarmStatusFilter.java | 2 +- .../server/common/data/alarm/AlarmUpdateRequest.java | 2 +- .../org/thingsboard/server/common/data/alarm/EntityAlarm.java | 2 +- .../java/org/thingsboard/server/common/data/asset/Asset.java | 2 +- .../org/thingsboard/server/common/data/asset/AssetInfo.java | 2 +- .../org/thingsboard/server/common/data/asset/AssetProfile.java | 2 +- .../thingsboard/server/common/data/asset/AssetProfileInfo.java | 2 +- .../thingsboard/server/common/data/asset/AssetSearchQuery.java | 2 +- .../org/thingsboard/server/common/data/audit/ActionStatus.java | 2 +- .../org/thingsboard/server/common/data/audit/ActionType.java | 2 +- .../org/thingsboard/server/common/data/audit/AuditLog.java | 2 +- .../org/thingsboard/server/common/data/cf/CalculatedField.java | 2 +- .../thingsboard/server/common/data/cf/CalculatedFieldLink.java | 2 +- .../thingsboard/server/common/data/cf/CalculatedFieldType.java | 2 +- .../server/common/data/cf/configuration/Argument.java | 2 +- .../server/common/data/cf/configuration/ArgumentType.java | 2 +- .../cf/configuration/BaseCalculatedFieldConfiguration.java | 2 +- .../data/cf/configuration/CalculatedFieldConfiguration.java | 2 +- .../server/common/data/cf/configuration/Output.java | 2 +- .../server/common/data/cf/configuration/OutputType.java | 2 +- .../common/data/cf/configuration/ReferencedEntityKey.java | 2 +- .../cf/configuration/ScriptCalculatedFieldConfiguration.java | 2 +- .../cf/configuration/SimpleCalculatedFieldConfiguration.java | 2 +- .../thingsboard/server/common/data/debug/DebugSettings.java | 2 +- .../server/common/data/device/DeviceSearchQuery.java | 2 +- .../common/data/device/credentials/BasicMqttCredentials.java | 2 +- .../device/credentials/ProvisionDeviceCredentialsData.java | 2 +- .../lwm2m/AbstractLwM2MBootstrapClientCredentialWithKeys.java | 2 +- .../credentials/lwm2m/AbstractLwM2MClientCredential.java | 2 +- .../lwm2m/AbstractLwM2MClientSecurityCredential.java | 2 +- .../credentials/lwm2m/LwM2MBootstrapClientCredential.java | 2 +- .../credentials/lwm2m/LwM2MBootstrapClientCredentials.java | 2 +- .../data/device/credentials/lwm2m/LwM2MClientCredential.java | 2 +- .../data/device/credentials/lwm2m/LwM2MDeviceCredentials.java | 2 +- .../data/device/credentials/lwm2m/LwM2MSecurityMode.java | 2 +- .../credentials/lwm2m/NoSecBootstrapClientCredential.java | 2 +- .../data/device/credentials/lwm2m/NoSecClientCredential.java | 2 +- .../device/credentials/lwm2m/PSKBootstrapClientCredential.java | 2 +- .../data/device/credentials/lwm2m/PSKClientCredential.java | 2 +- .../device/credentials/lwm2m/RPKBootstrapClientCredential.java | 2 +- .../data/device/credentials/lwm2m/RPKClientCredential.java | 2 +- .../credentials/lwm2m/X509BootstrapClientCredential.java | 2 +- .../data/device/credentials/lwm2m/X509ClientCredential.java | 2 +- .../data/device/data/CoapDeviceTransportConfiguration.java | 2 +- .../common/data/device/data/DefaultDeviceConfiguration.java | 2 +- .../data/device/data/DefaultDeviceTransportConfiguration.java | 2 +- .../server/common/data/device/data/DeviceConfiguration.java | 2 +- .../thingsboard/server/common/data/device/data/DeviceData.java | 2 +- .../common/data/device/data/DeviceTransportConfiguration.java | 2 +- .../data/device/data/Lwm2mDeviceTransportConfiguration.java | 2 +- .../data/device/data/MqttDeviceTransportConfiguration.java | 2 +- .../thingsboard/server/common/data/device/data/PowerMode.java | 2 +- .../common/data/device/data/PowerSavingConfiguration.java | 2 +- .../data/device/data/SnmpDeviceTransportConfiguration.java | 2 +- .../server/common/data/device/profile/AlarmCondition.java | 2 +- .../common/data/device/profile/AlarmConditionFilter.java | 2 +- .../common/data/device/profile/AlarmConditionFilterKey.java | 2 +- .../common/data/device/profile/AlarmConditionKeyType.java | 2 +- .../server/common/data/device/profile/AlarmConditionSpec.java | 2 +- .../common/data/device/profile/AlarmConditionSpecType.java | 2 +- .../server/common/data/device/profile/AlarmRule.java | 2 +- .../server/common/data/device/profile/AlarmSchedule.java | 2 +- .../server/common/data/device/profile/AlarmScheduleType.java | 2 +- ...lowCreateNewDevicesDeviceProfileProvisionConfiguration.java | 2 +- .../server/common/data/device/profile/AnyTimeSchedule.java | 2 +- ...eProvisionedDevicesDeviceProfileProvisionConfiguration.java | 2 +- .../profile/CoapDeviceProfileTransportConfiguration.java | 2 +- .../data/device/profile/CoapDeviceTypeConfiguration.java | 2 +- .../server/common/data/device/profile/CustomTimeSchedule.java | 2 +- .../common/data/device/profile/CustomTimeScheduleItem.java | 2 +- .../device/profile/DefaultCoapDeviceTypeConfiguration.java | 2 +- .../data/device/profile/DefaultDeviceProfileConfiguration.java | 2 +- .../profile/DefaultDeviceProfileTransportConfiguration.java | 2 +- .../server/common/data/device/profile/DeviceProfileAlarm.java | 2 +- .../common/data/device/profile/DeviceProfileConfiguration.java | 2 +- .../server/common/data/device/profile/DeviceProfileData.java | 2 +- .../device/profile/DeviceProfileProvisionConfiguration.java | 2 +- .../device/profile/DeviceProfileTransportConfiguration.java | 2 +- .../profile/DisabledDeviceProfileProvisionConfiguration.java | 2 +- .../common/data/device/profile/DurationAlarmConditionSpec.java | 2 +- .../data/device/profile/EfentoCoapDeviceTypeConfiguration.java | 2 +- .../data/device/profile/JsonTransportPayloadConfiguration.java | 2 +- .../profile/Lwm2mDeviceProfileTransportConfiguration.java | 2 +- .../profile/MqttDeviceProfileTransportConfiguration.java | 2 +- .../server/common/data/device/profile/MqttTopics.java | 2 +- .../device/profile/ProtoTransportPayloadConfiguration.java | 2 +- .../data/device/profile/ProvisionDeviceProfileCredentials.java | 2 +- .../data/device/profile/RepeatingAlarmConditionSpec.java | 2 +- .../common/data/device/profile/SimpleAlarmConditionSpec.java | 2 +- .../profile/SnmpDeviceProfileTransportConfiguration.java | 2 +- .../common/data/device/profile/SpecificTimeSchedule.java | 2 +- .../data/device/profile/TransportPayloadTypeConfiguration.java | 2 +- .../profile/X509CertificateChainProvisionConfiguration.java | 2 +- .../common/data/device/profile/lwm2m/ObjectAttributes.java | 2 +- .../common/data/device/profile/lwm2m/OtherConfiguration.java | 2 +- .../device/profile/lwm2m/TelemetryMappingConfiguration.java | 2 +- .../data/device/profile/lwm2m/TelemetryObserveStrategy.java | 2 +- .../bootstrap/AbstractLwM2MBootstrapServerCredential.java | 2 +- .../lwm2m/bootstrap/LwM2MBootstrapServerCredential.java | 2 +- .../profile/lwm2m/bootstrap/LwM2MServerSecurityConfig.java | 2 +- .../lwm2m/bootstrap/LwM2MServerSecurityConfigDefault.java | 2 +- .../lwm2m/bootstrap/NoSecLwM2MBootstrapServerCredential.java | 2 +- .../lwm2m/bootstrap/PSKLwM2MBootstrapServerCredential.java | 2 +- .../lwm2m/bootstrap/RPKLwM2MBootstrapServerCredential.java | 2 +- .../lwm2m/bootstrap/X509LwM2MBootstrapServerCredential.java | 2 +- .../java/org/thingsboard/server/common/data/domain/Domain.java | 2 +- .../org/thingsboard/server/common/data/domain/DomainInfo.java | 2 +- .../server/common/data/domain/DomainOauth2Client.java | 2 +- .../java/org/thingsboard/server/common/data/edge/Edge.java | 2 +- .../org/thingsboard/server/common/data/edge/EdgeEvent.java | 2 +- .../server/common/data/edge/EdgeEventActionType.java | 2 +- .../org/thingsboard/server/common/data/edge/EdgeEventType.java | 2 +- .../java/org/thingsboard/server/common/data/edge/EdgeInfo.java | 2 +- .../thingsboard/server/common/data/edge/EdgeInstructions.java | 2 +- .../thingsboard/server/common/data/edge/EdgeSearchQuery.java | 2 +- .../org/thingsboard/server/common/data/edqs/AttributeKv.java | 2 +- .../org/thingsboard/server/common/data/edqs/DataPoint.java | 2 +- .../org/thingsboard/server/common/data/edqs/EdqsEvent.java | 2 +- .../org/thingsboard/server/common/data/edqs/EdqsEventType.java | 2 +- .../org/thingsboard/server/common/data/edqs/EdqsObject.java | 2 +- .../org/thingsboard/server/common/data/edqs/EdqsObjectKey.java | 2 +- .../org/thingsboard/server/common/data/edqs/EdqsState.java | 2 +- .../thingsboard/server/common/data/edqs/EdqsSyncRequest.java | 2 +- .../java/org/thingsboard/server/common/data/edqs/Entity.java | 2 +- .../org/thingsboard/server/common/data/edqs/LatestTsKv.java | 2 +- .../org/thingsboard/server/common/data/edqs/ToCoreEdqsMsg.java | 2 +- .../thingsboard/server/common/data/edqs/ToCoreEdqsRequest.java | 2 +- .../server/common/data/edqs/fields/AbstractEntityFields.java | 2 +- .../server/common/data/edqs/fields/ApiUsageStateFields.java | 2 +- .../server/common/data/edqs/fields/AssetFields.java | 2 +- .../server/common/data/edqs/fields/AssetProfileFields.java | 2 +- .../server/common/data/edqs/fields/CustomerFields.java | 2 +- .../server/common/data/edqs/fields/DashboardFields.java | 2 +- .../server/common/data/edqs/fields/DeviceFields.java | 2 +- .../server/common/data/edqs/fields/DeviceProfileFields.java | 2 +- .../thingsboard/server/common/data/edqs/fields/EdgeFields.java | 2 +- .../server/common/data/edqs/fields/EntityFields.java | 2 +- .../server/common/data/edqs/fields/EntityIdFields.java | 2 +- .../server/common/data/edqs/fields/EntityViewFields.java | 2 +- .../thingsboard/server/common/data/edqs/fields/FieldsUtil.java | 2 +- .../server/common/data/edqs/fields/GenericFields.java | 2 +- .../server/common/data/edqs/fields/ProfileAwareFields.java | 2 +- .../server/common/data/edqs/fields/QueueStatsFields.java | 2 +- .../server/common/data/edqs/fields/RuleChainFields.java | 2 +- .../server/common/data/edqs/fields/RuleNodeFields.java | 2 +- .../server/common/data/edqs/fields/TenantFields.java | 2 +- .../server/common/data/edqs/fields/TenantProfileFields.java | 2 +- .../thingsboard/server/common/data/edqs/fields/UserFields.java | 2 +- .../server/common/data/edqs/fields/WidgetTypeFields.java | 2 +- .../server/common/data/edqs/fields/WidgetsBundleFields.java | 2 +- .../thingsboard/server/common/data/edqs/query/EdqsRequest.java | 2 +- .../server/common/data/edqs/query/EdqsResponse.java | 2 +- .../thingsboard/server/common/data/edqs/query/QueryResult.java | 2 +- .../server/common/data/entityview/EntityViewSearchQuery.java | 2 +- .../server/common/data/event/CalculatedFieldDebugEvent.java | 2 +- .../common/data/event/CalculatedFieldDebugEventFilter.java | 2 +- .../thingsboard/server/common/data/event/DebugEventFilter.java | 2 +- .../org/thingsboard/server/common/data/event/ErrorEvent.java | 2 +- .../thingsboard/server/common/data/event/ErrorEventFilter.java | 2 +- .../java/org/thingsboard/server/common/data/event/Event.java | 2 +- .../org/thingsboard/server/common/data/event/EventFilter.java | 2 +- .../org/thingsboard/server/common/data/event/EventType.java | 2 +- .../server/common/data/event/LifeCycleEventFilter.java | 2 +- .../thingsboard/server/common/data/event/LifecycleEvent.java | 2 +- .../server/common/data/event/RuleChainDebugEvent.java | 2 +- .../server/common/data/event/RuleChainDebugEventFilter.java | 2 +- .../server/common/data/event/RuleNodeDebugEvent.java | 2 +- .../server/common/data/event/RuleNodeDebugEventFilter.java | 2 +- .../thingsboard/server/common/data/event/StatisticsEvent.java | 2 +- .../server/common/data/event/StatisticsEventFilter.java | 2 +- .../common/data/exception/AbstractRateLimitException.java | 2 +- .../common/data/exception/ApiUsageLimitsExceededException.java | 2 +- .../common/data/exception/EntityVersionMismatchException.java | 2 +- .../common/data/exception/RateLimitExceededException.java | 2 +- .../server/common/data/exception/TenantNotFoundException.java | 2 +- .../common/data/exception/TenantProfileNotFoundException.java | 2 +- .../server/common/data/exception/ThingsboardErrorCode.java | 2 +- .../server/common/data/exception/ThingsboardException.java | 2 +- .../common/data/exception/ThingsboardKafkaClientError.java | 2 +- .../common/data/housekeeper/AlarmsDeletionHousekeeperTask.java | 2 +- .../common/data/housekeeper/AlarmsUnassignHousekeeperTask.java | 2 +- .../data/housekeeper/EntitiesDeletionHousekeeperTask.java | 2 +- .../server/common/data/housekeeper/HousekeeperTask.java | 2 +- .../server/common/data/housekeeper/HousekeeperTaskType.java | 2 +- .../data/housekeeper/LatestTsDeletionHousekeeperTask.java | 2 +- .../housekeeper/TenantEntitiesDeletionHousekeeperTask.java | 2 +- .../data/housekeeper/TsHistoryDeletionHousekeeperTask.java | 2 +- .../org/thingsboard/server/common/data/id/AdminSettingsId.java | 2 +- .../java/org/thingsboard/server/common/data/id/AiModelId.java | 2 +- .../org/thingsboard/server/common/data/id/AlarmCommentId.java | 2 +- .../java/org/thingsboard/server/common/data/id/AlarmId.java | 2 +- .../org/thingsboard/server/common/data/id/ApiUsageStateId.java | 2 +- .../java/org/thingsboard/server/common/data/id/AssetId.java | 2 +- .../org/thingsboard/server/common/data/id/AssetProfileId.java | 2 +- .../java/org/thingsboard/server/common/data/id/AuditLogId.java | 2 +- .../thingsboard/server/common/data/id/CalculatedFieldId.java | 2 +- .../server/common/data/id/CalculatedFieldLinkId.java | 2 +- .../server/common/data/id/ComponentDescriptorId.java | 2 +- .../java/org/thingsboard/server/common/data/id/CustomerId.java | 2 +- .../org/thingsboard/server/common/data/id/DashboardId.java | 2 +- .../thingsboard/server/common/data/id/DeviceCredentialsId.java | 2 +- .../java/org/thingsboard/server/common/data/id/DeviceId.java | 2 +- .../org/thingsboard/server/common/data/id/DeviceProfileId.java | 2 +- .../java/org/thingsboard/server/common/data/id/DomainId.java | 2 +- .../org/thingsboard/server/common/data/id/EdgeEventId.java | 2 +- .../java/org/thingsboard/server/common/data/id/EdgeId.java | 2 +- .../java/org/thingsboard/server/common/data/id/EntityId.java | 2 +- .../server/common/data/id/EntityIdDeserializer.java | 2 +- .../org/thingsboard/server/common/data/id/EntityIdFactory.java | 2 +- .../thingsboard/server/common/data/id/EntityIdSerializer.java | 2 +- .../org/thingsboard/server/common/data/id/EntityViewId.java | 2 +- .../java/org/thingsboard/server/common/data/id/EventId.java | 2 +- .../main/java/org/thingsboard/server/common/data/id/HasId.java | 2 +- .../java/org/thingsboard/server/common/data/id/HasUUID.java | 2 +- .../java/org/thingsboard/server/common/data/id/IdBased.java | 2 +- .../main/java/org/thingsboard/server/common/data/id/JobId.java | 2 +- .../thingsboard/server/common/data/id/MobileAppBundleId.java | 2 +- .../org/thingsboard/server/common/data/id/MobileAppId.java | 2 +- .../server/common/data/id/NameLabelAndCustomerDetails.java | 2 +- .../java/org/thingsboard/server/common/data/id/NodeId.java | 2 +- .../org/thingsboard/server/common/data/id/NotificationId.java | 2 +- .../server/common/data/id/NotificationRequestId.java | 2 +- .../thingsboard/server/common/data/id/NotificationRuleId.java | 2 +- .../server/common/data/id/NotificationTargetId.java | 2 +- .../server/common/data/id/NotificationTemplateId.java | 2 +- .../org/thingsboard/server/common/data/id/OAuth2ClientId.java | 2 +- .../common/data/id/OAuth2ClientRegistrationTemplateId.java | 2 +- .../org/thingsboard/server/common/data/id/OAuth2ParamsId.java | 2 +- .../org/thingsboard/server/common/data/id/OtaPackageId.java | 2 +- .../thingsboard/server/common/data/id/QrCodeSettingsId.java | 2 +- .../java/org/thingsboard/server/common/data/id/QueueId.java | 2 +- .../org/thingsboard/server/common/data/id/QueueStatsId.java | 2 +- .../main/java/org/thingsboard/server/common/data/id/RpcId.java | 2 +- .../org/thingsboard/server/common/data/id/RuleChainId.java | 2 +- .../java/org/thingsboard/server/common/data/id/RuleNodeId.java | 2 +- .../org/thingsboard/server/common/data/id/RuleNodeStateId.java | 2 +- .../org/thingsboard/server/common/data/id/TbResourceId.java | 2 +- .../java/org/thingsboard/server/common/data/id/TenantId.java | 2 +- .../org/thingsboard/server/common/data/id/TenantProfileId.java | 2 +- .../java/org/thingsboard/server/common/data/id/UUIDBased.java | 2 +- .../thingsboard/server/common/data/id/UserAuthSettingsId.java | 2 +- .../thingsboard/server/common/data/id/UserCredentialsId.java | 2 +- .../java/org/thingsboard/server/common/data/id/UserId.java | 2 +- .../org/thingsboard/server/common/data/id/WidgetTypeId.java | 2 +- .../org/thingsboard/server/common/data/id/WidgetsBundleId.java | 2 +- .../server/common/data/job/DummyJobConfiguration.java | 2 +- .../org/thingsboard/server/common/data/job/DummyJobResult.java | 2 +- .../main/java/org/thingsboard/server/common/data/job/Job.java | 2 +- .../thingsboard/server/common/data/job/JobConfiguration.java | 2 +- .../java/org/thingsboard/server/common/data/job/JobFilter.java | 2 +- .../java/org/thingsboard/server/common/data/job/JobResult.java | 2 +- .../java/org/thingsboard/server/common/data/job/JobStats.java | 2 +- .../java/org/thingsboard/server/common/data/job/JobStatus.java | 2 +- .../java/org/thingsboard/server/common/data/job/JobType.java | 2 +- .../org/thingsboard/server/common/data/job/task/DummyTask.java | 2 +- .../server/common/data/job/task/DummyTaskResult.java | 2 +- .../java/org/thingsboard/server/common/data/job/task/Task.java | 2 +- .../thingsboard/server/common/data/job/task/TaskFailure.java | 2 +- .../thingsboard/server/common/data/job/task/TaskResult.java | 2 +- .../org/thingsboard/server/common/data/kv/AggTsKvEntry.java | 2 +- .../org/thingsboard/server/common/data/kv/Aggregation.java | 2 +- .../thingsboard/server/common/data/kv/AggregationParams.java | 2 +- .../org/thingsboard/server/common/data/kv/AttributeKey.java | 2 +- .../thingsboard/server/common/data/kv/AttributeKvEntry.java | 2 +- .../server/common/data/kv/AttributesSaveResult.java | 2 +- .../server/common/data/kv/BaseAttributeKvEntry.java | 2 +- .../thingsboard/server/common/data/kv/BaseDeleteTsKvQuery.java | 2 +- .../thingsboard/server/common/data/kv/BaseReadTsKvQuery.java | 2 +- .../org/thingsboard/server/common/data/kv/BaseTsKvQuery.java | 2 +- .../org/thingsboard/server/common/data/kv/BasicKvEntry.java | 2 +- .../org/thingsboard/server/common/data/kv/BasicTsKvEntry.java | 2 +- .../thingsboard/server/common/data/kv/BooleanDataEntry.java | 2 +- .../java/org/thingsboard/server/common/data/kv/DataType.java | 2 +- .../org/thingsboard/server/common/data/kv/DeleteTsKvQuery.java | 2 +- .../org/thingsboard/server/common/data/kv/DoubleDataEntry.java | 2 +- .../org/thingsboard/server/common/data/kv/IntervalType.java | 2 +- .../org/thingsboard/server/common/data/kv/JsonDataEntry.java | 2 +- .../java/org/thingsboard/server/common/data/kv/KvEntry.java | 2 +- .../org/thingsboard/server/common/data/kv/LongDataEntry.java | 2 +- .../org/thingsboard/server/common/data/kv/ReadTsKvQuery.java | 2 +- .../thingsboard/server/common/data/kv/ReadTsKvQueryResult.java | 2 +- .../org/thingsboard/server/common/data/kv/StringDataEntry.java | 2 +- .../server/common/data/kv/TimeseriesSaveResult.java | 2 +- .../java/org/thingsboard/server/common/data/kv/TsKvEntry.java | 2 +- .../thingsboard/server/common/data/kv/TsKvEntryAggWrapper.java | 2 +- .../server/common/data/kv/TsKvLatestRemovingResult.java | 2 +- .../java/org/thingsboard/server/common/data/kv/TsKvQuery.java | 2 +- .../org/thingsboard/server/common/data/limit/LimitedApi.java | 2 +- .../thingsboard/server/common/data/limit/RateLimitEntry.java | 2 +- .../thingsboard/server/common/data/limit/RateLimitUtil.java | 2 +- .../thingsboard/server/common/data/lwm2m/LwM2mConstants.java | 2 +- .../thingsboard/server/common/data/lwm2m/LwM2mInstance.java | 2 +- .../org/thingsboard/server/common/data/lwm2m/LwM2mObject.java | 2 +- .../server/common/data/lwm2m/LwM2mResourceObserve.java | 2 +- .../server/common/data/mail/MailOauth2Provider.java | 2 +- .../thingsboard/server/common/data/mobile/LoginMobileInfo.java | 2 +- .../server/common/data/mobile/MobileSessionInfo.java | 2 +- .../thingsboard/server/common/data/mobile/UserMobileInfo.java | 2 +- .../server/common/data/mobile/UserMobileSessionInfo.java | 2 +- .../thingsboard/server/common/data/mobile/app/MobileApp.java | 2 +- .../server/common/data/mobile/app/MobileAppStatus.java | 2 +- .../server/common/data/mobile/app/MobileAppVersionInfo.java | 2 +- .../thingsboard/server/common/data/mobile/app/StoreInfo.java | 2 +- .../server/common/data/mobile/bundle/MobileAppBundle.java | 2 +- .../server/common/data/mobile/bundle/MobileAppBundleInfo.java | 2 +- .../common/data/mobile/bundle/MobileAppBundleOauth2Client.java | 2 +- .../server/common/data/mobile/layout/AbstractMobilePage.java | 2 +- .../server/common/data/mobile/layout/CustomMobilePage.java | 2 +- .../server/common/data/mobile/layout/DashboardPage.java | 2 +- .../server/common/data/mobile/layout/DefaultMobilePage.java | 2 +- .../server/common/data/mobile/layout/DefaultPageId.java | 2 +- .../server/common/data/mobile/layout/MobileLayoutConfig.java | 2 +- .../server/common/data/mobile/layout/MobilePage.java | 2 +- .../server/common/data/mobile/layout/MobilePageType.java | 2 +- .../server/common/data/mobile/layout/WebViewPage.java | 2 +- .../common/data/mobile/qrCodeSettings/BadgePosition.java | 2 +- .../server/common/data/mobile/qrCodeSettings/QRCodeConfig.java | 2 +- .../common/data/mobile/qrCodeSettings/QrCodeSettings.java | 2 +- .../java/org/thingsboard/server/common/data/msg/TbMsgType.java | 2 +- .../server/common/data/msg/TbNodeConnectionType.java | 2 +- .../server/common/data/notification/AlreadySentException.java | 2 +- .../server/common/data/notification/Notification.java | 2 +- .../common/data/notification/NotificationDeliveryMethod.java | 2 +- .../server/common/data/notification/NotificationRequest.java | 2 +- .../common/data/notification/NotificationRequestConfig.java | 2 +- .../common/data/notification/NotificationRequestInfo.java | 2 +- .../common/data/notification/NotificationRequestPreview.java | 2 +- .../common/data/notification/NotificationRequestStats.java | 2 +- .../common/data/notification/NotificationRequestStatus.java | 2 +- .../server/common/data/notification/NotificationStatus.java | 2 +- .../server/common/data/notification/NotificationType.java | 2 +- .../notification/info/AlarmAssignmentNotificationInfo.java | 2 +- .../data/notification/info/AlarmCommentNotificationInfo.java | 2 +- .../common/data/notification/info/AlarmNotificationInfo.java | 2 +- .../data/notification/info/ApiUsageLimitNotificationInfo.java | 2 +- .../data/notification/info/DeviceActivityNotificationInfo.java | 2 +- .../info/EdgeCommunicationFailureNotificationInfo.java | 2 +- .../data/notification/info/EdgeConnectionNotificationInfo.java | 2 +- .../data/notification/info/EntitiesLimitNotificationInfo.java | 2 +- .../data/notification/info/EntityActionNotificationInfo.java | 2 +- .../common/data/notification/info/GeneralNotificationInfo.java | 2 +- .../notification/info/NewPlatformVersionNotificationInfo.java | 2 +- .../server/common/data/notification/info/NotificationInfo.java | 2 +- .../data/notification/info/RateLimitsNotificationInfo.java | 2 +- .../notification/info/ResourcesShortageNotificationInfo.java | 2 +- .../RuleEngineComponentLifecycleEventNotificationInfo.java | 2 +- .../info/RuleEngineOriginatedNotificationInfo.java | 2 +- .../data/notification/info/RuleOriginatedNotificationInfo.java | 2 +- .../info/TaskProcessingFailureNotificationInfo.java | 2 +- .../rule/DefaultNotificationRuleRecipientsConfig.java | 2 +- .../rule/EscalatedNotificationRuleRecipientsConfig.java | 2 +- .../server/common/data/notification/rule/NotificationRule.java | 2 +- .../common/data/notification/rule/NotificationRuleConfig.java | 2 +- .../common/data/notification/rule/NotificationRuleInfo.java | 2 +- .../notification/rule/NotificationRuleRecipientsConfig.java | 2 +- .../data/notification/rule/trigger/AlarmAssignmentTrigger.java | 2 +- .../data/notification/rule/trigger/AlarmCommentTrigger.java | 2 +- .../common/data/notification/rule/trigger/AlarmTrigger.java | 2 +- .../data/notification/rule/trigger/ApiUsageLimitTrigger.java | 2 +- .../data/notification/rule/trigger/DeviceActivityTrigger.java | 2 +- .../rule/trigger/EdgeCommunicationFailureTrigger.java | 2 +- .../data/notification/rule/trigger/EdgeConnectionTrigger.java | 2 +- .../data/notification/rule/trigger/EntitiesLimitTrigger.java | 2 +- .../data/notification/rule/trigger/EntityActionTrigger.java | 2 +- .../notification/rule/trigger/NewPlatformVersionTrigger.java | 2 +- .../notification/rule/trigger/NotificationRuleTrigger.java | 2 +- .../data/notification/rule/trigger/RateLimitsTrigger.java | 2 +- .../notification/rule/trigger/ResourcesShortageTrigger.java | 2 +- .../rule/trigger/RuleEngineComponentLifecycleEventTrigger.java | 2 +- .../rule/trigger/TaskProcessingFailureTrigger.java | 2 +- .../config/AlarmAssignmentNotificationRuleTriggerConfig.java | 2 +- .../config/AlarmCommentNotificationRuleTriggerConfig.java | 2 +- .../trigger/config/AlarmNotificationRuleTriggerConfig.java | 2 +- .../config/ApiUsageLimitNotificationRuleTriggerConfig.java | 2 +- .../config/DeviceActivityNotificationRuleTriggerConfig.java | 2 +- .../EdgeCommunicationFailureNotificationRuleTriggerConfig.java | 2 +- .../config/EdgeConnectionNotificationRuleTriggerConfig.java | 2 +- .../config/EntitiesLimitNotificationRuleTriggerConfig.java | 2 +- .../config/EntityActionNotificationRuleTriggerConfig.java | 2 +- .../NewPlatformVersionNotificationRuleTriggerConfig.java | 2 +- .../rule/trigger/config/NotificationRuleTriggerConfig.java | 2 +- .../rule/trigger/config/NotificationRuleTriggerType.java | 2 +- .../config/RateLimitsNotificationRuleTriggerConfig.java | 2 +- .../config/ResourcesShortageNotificationRuleTriggerConfig.java | 2 +- ...neComponentLifecycleEventNotificationRuleTriggerConfig.java | 2 +- .../TaskProcessingFailureNotificationRuleTriggerConfig.java | 2 +- .../notification/settings/AccountNotificationSettings.java | 2 +- .../settings/MobileAppNotificationDeliveryMethodConfig.java | 2 +- .../settings/NotificationDeliveryMethodConfig.java | 2 +- .../data/notification/settings/NotificationSettings.java | 2 +- .../settings/SlackNotificationDeliveryMethodConfig.java | 2 +- .../data/notification/settings/UserNotificationSettings.java | 2 +- .../targets/MicrosoftTeamsNotificationTargetConfig.java | 2 +- .../data/notification/targets/NotificationRecipient.java | 2 +- .../common/data/notification/targets/NotificationTarget.java | 2 +- .../data/notification/targets/NotificationTargetConfig.java | 2 +- .../data/notification/targets/NotificationTargetType.java | 2 +- .../targets/platform/AffectedTenantAdministratorsFilter.java | 2 +- .../data/notification/targets/platform/AffectedUserFilter.java | 2 +- .../data/notification/targets/platform/AllUsersFilter.java | 2 +- .../notification/targets/platform/CustomerUsersFilter.java | 2 +- .../targets/platform/OriginatorEntityOwnerUsersFilter.java | 2 +- .../platform/PlatformUsersNotificationTargetConfig.java | 2 +- .../targets/platform/SystemAdministratorsFilter.java | 2 +- .../targets/platform/TenantAdministratorsFilter.java | 2 +- .../data/notification/targets/platform/UserListFilter.java | 2 +- .../common/data/notification/targets/platform/UsersFilter.java | 2 +- .../data/notification/targets/platform/UsersFilterType.java | 2 +- .../data/notification/targets/slack/SlackConversation.java | 2 +- .../data/notification/targets/slack/SlackConversationType.java | 2 +- .../common/data/notification/targets/slack/SlackFile.java | 2 +- .../targets/slack/SlackNotificationTargetConfig.java | 2 +- .../template/DeliveryMethodNotificationTemplate.java | 2 +- .../template/EmailDeliveryMethodNotificationTemplate.java | 2 +- .../server/common/data/notification/template/HasSubject.java | 2 +- .../MicrosoftTeamsDeliveryMethodNotificationTemplate.java | 2 +- .../template/MobileAppDeliveryMethodNotificationTemplate.java | 2 +- .../data/notification/template/NotificationTemplate.java | 2 +- .../data/notification/template/NotificationTemplateConfig.java | 2 +- .../template/SlackDeliveryMethodNotificationTemplate.java | 2 +- .../template/SmsDeliveryMethodNotificationTemplate.java | 2 +- .../common/data/notification/template/TemplatableValue.java | 2 +- .../template/WebDeliveryMethodNotificationTemplate.java | 2 +- .../org/thingsboard/server/common/data/oauth2/MapperType.java | 2 +- .../server/common/data/oauth2/OAuth2BasicMapperConfig.java | 2 +- .../thingsboard/server/common/data/oauth2/OAuth2Client.java | 2 +- .../server/common/data/oauth2/OAuth2ClientInfo.java | 2 +- .../server/common/data/oauth2/OAuth2ClientLoginInfo.java | 2 +- .../common/data/oauth2/OAuth2ClientRegistrationTemplate.java | 2 +- .../server/common/data/oauth2/OAuth2CustomMapperConfig.java | 2 +- .../server/common/data/oauth2/OAuth2MapperConfig.java | 2 +- .../thingsboard/server/common/data/oauth2/OAuth2Params.java | 2 +- .../thingsboard/server/common/data/oauth2/PlatformType.java | 2 +- .../org/thingsboard/server/common/data/oauth2/SchemeType.java | 2 +- .../server/common/data/oauth2/TenantNameStrategyType.java | 2 +- .../server/common/data/objects/AttributesEntityView.java | 2 +- .../server/common/data/objects/TelemetryEntityView.java | 2 +- .../thingsboard/server/common/data/ota/ChecksumAlgorithm.java | 2 +- .../org/thingsboard/server/common/data/ota/OtaPackageKey.java | 2 +- .../org/thingsboard/server/common/data/ota/OtaPackageType.java | 2 +- .../server/common/data/ota/OtaPackageUpdateStatus.java | 2 +- .../org/thingsboard/server/common/data/ota/OtaPackageUtil.java | 2 +- .../server/common/data/page/BasePageDataIterable.java | 2 +- .../java/org/thingsboard/server/common/data/page/PageData.java | 2 +- .../thingsboard/server/common/data/page/PageDataIterable.java | 2 +- .../server/common/data/page/PageDataIterableByTenant.java | 2 +- .../common/data/page/PageDataIterableByTenantIdEntityId.java | 2 +- .../java/org/thingsboard/server/common/data/page/PageLink.java | 2 +- .../org/thingsboard/server/common/data/page/SortOrder.java | 2 +- .../org/thingsboard/server/common/data/page/TimePageLink.java | 2 +- .../server/common/data/permission/QueryContext.java | 2 +- .../server/common/data/plugin/ComponentClusteringMode.java | 2 +- .../server/common/data/plugin/ComponentDescriptor.java | 2 +- .../server/common/data/plugin/ComponentLifecycleEvent.java | 2 +- .../server/common/data/plugin/ComponentLifecycleState.java | 2 +- .../thingsboard/server/common/data/plugin/ComponentScope.java | 2 +- .../thingsboard/server/common/data/plugin/ComponentType.java | 2 +- .../server/common/data/query/AbstractDataQuery.java | 2 +- .../thingsboard/server/common/data/query/AlarmCountQuery.java | 2 +- .../org/thingsboard/server/common/data/query/AlarmData.java | 2 +- .../server/common/data/query/AlarmDataPageLink.java | 2 +- .../thingsboard/server/common/data/query/AlarmDataQuery.java | 2 +- .../thingsboard/server/common/data/query/AliasEntityId.java | 2 +- .../server/common/data/query/AliasEntityIdDeserializer.java | 2 +- .../server/common/data/query/AliasEntityIdImpl.java | 2 +- .../server/common/data/query/AliasEntityIdSerializer.java | 2 +- .../thingsboard/server/common/data/query/AliasEntityType.java | 2 +- .../server/common/data/query/ApiUsageStateFilter.java | 2 +- .../server/common/data/query/AssetSearchQueryFilter.java | 2 +- .../thingsboard/server/common/data/query/AssetTypeFilter.java | 2 +- .../server/common/data/query/BooleanFilterPredicate.java | 2 +- .../server/common/data/query/ComparisonTsValue.java | 2 +- .../server/common/data/query/ComplexFilterPredicate.java | 2 +- .../server/common/data/query/DeviceSearchQueryFilter.java | 2 +- .../thingsboard/server/common/data/query/DeviceTypeFilter.java | 2 +- .../org/thingsboard/server/common/data/query/DynamicValue.java | 2 +- .../server/common/data/query/DynamicValueSourceType.java | 2 +- .../server/common/data/query/EdgeSearchQueryFilter.java | 2 +- .../thingsboard/server/common/data/query/EdgeTypeFilter.java | 2 +- .../thingsboard/server/common/data/query/EntityCountQuery.java | 2 +- .../org/thingsboard/server/common/data/query/EntityData.java | 2 +- .../server/common/data/query/EntityDataPageLink.java | 2 +- .../thingsboard/server/common/data/query/EntityDataQuery.java | 2 +- .../server/common/data/query/EntityDataSortOrder.java | 2 +- .../org/thingsboard/server/common/data/query/EntityFilter.java | 2 +- .../thingsboard/server/common/data/query/EntityFilterType.java | 2 +- .../org/thingsboard/server/common/data/query/EntityKey.java | 2 +- .../thingsboard/server/common/data/query/EntityKeyType.java | 2 +- .../server/common/data/query/EntityKeyValueType.java | 2 +- .../thingsboard/server/common/data/query/EntityListFilter.java | 2 +- .../thingsboard/server/common/data/query/EntityNameFilter.java | 2 +- .../server/common/data/query/EntitySearchQueryFilter.java | 2 +- .../thingsboard/server/common/data/query/EntityTypeFilter.java | 2 +- .../server/common/data/query/EntityViewSearchQueryFilter.java | 2 +- .../server/common/data/query/EntityViewTypeFilter.java | 2 +- .../server/common/data/query/FilterPredicateType.java | 2 +- .../server/common/data/query/FilterPredicateValue.java | 2 +- .../org/thingsboard/server/common/data/query/KeyFilter.java | 2 +- .../server/common/data/query/KeyFilterPredicate.java | 2 +- .../server/common/data/query/NumericFilterPredicate.java | 2 +- .../server/common/data/query/OriginatorAlarmFilter.java | 2 +- .../server/common/data/query/RelationsQueryFilter.java | 2 +- .../server/common/data/query/SimpleKeyFilterPredicate.java | 2 +- .../server/common/data/query/SingleEntityFilter.java | 2 +- .../server/common/data/query/StringFilterPredicate.java | 2 +- .../java/org/thingsboard/server/common/data/query/TsValue.java | 2 +- .../server/common/data/queue/ProcessingStrategy.java | 2 +- .../server/common/data/queue/ProcessingStrategyType.java | 2 +- .../java/org/thingsboard/server/common/data/queue/Queue.java | 2 +- .../org/thingsboard/server/common/data/queue/QueueConfig.java | 2 +- .../org/thingsboard/server/common/data/queue/QueueStats.java | 2 +- .../thingsboard/server/common/data/queue/SubmitStrategy.java | 2 +- .../server/common/data/queue/SubmitStrategyType.java | 2 +- .../server/common/data/relation/EntityRelation.java | 2 +- .../server/common/data/relation/EntityRelationInfo.java | 2 +- .../server/common/data/relation/EntityRelationsQuery.java | 2 +- .../server/common/data/relation/EntitySearchDirection.java | 2 +- .../server/common/data/relation/RelationEntityTypeFilter.java | 2 +- .../server/common/data/relation/RelationTypeGroup.java | 2 +- .../server/common/data/relation/RelationsSearchParameters.java | 2 +- .../main/java/org/thingsboard/server/common/data/rpc/Rpc.java | 2 +- .../java/org/thingsboard/server/common/data/rpc/RpcError.java | 2 +- .../java/org/thingsboard/server/common/data/rpc/RpcStatus.java | 2 +- .../server/common/data/rpc/ToDeviceRpcRequestBody.java | 2 +- .../server/common/data/rule/DefaultRuleChainCreateRequest.java | 2 +- .../server/common/data/rule/NodeConnectionInfo.java | 2 +- .../org/thingsboard/server/common/data/rule/RuleChain.java | 2 +- .../server/common/data/rule/RuleChainConnectionInfo.java | 2 +- .../org/thingsboard/server/common/data/rule/RuleChainData.java | 2 +- .../server/common/data/rule/RuleChainImportResult.java | 2 +- .../thingsboard/server/common/data/rule/RuleChainMetaData.java | 2 +- .../server/common/data/rule/RuleChainOutputLabelsUsage.java | 2 +- .../org/thingsboard/server/common/data/rule/RuleChainType.java | 2 +- .../server/common/data/rule/RuleChainUpdateResult.java | 2 +- .../java/org/thingsboard/server/common/data/rule/RuleNode.java | 2 +- .../org/thingsboard/server/common/data/rule/RuleNodeState.java | 2 +- .../server/common/data/rule/RuleNodeUpdateResult.java | 2 +- .../java/org/thingsboard/server/common/data/rule/RuleType.java | 2 +- .../java/org/thingsboard/server/common/data/rule/Scope.java | 2 +- .../thingsboard/server/common/data/script/ScriptLanguage.java | 2 +- .../org/thingsboard/server/common/data/security/Authority.java | 2 +- .../server/common/data/security/DeviceCredentials.java | 2 +- .../server/common/data/security/DeviceCredentialsFilter.java | 2 +- .../server/common/data/security/DeviceCredentialsType.java | 2 +- .../server/common/data/security/DeviceTokenCredentials.java | 2 +- .../server/common/data/security/DeviceX509Credentials.java | 2 +- .../server/common/data/security/UserAuthSettings.java | 2 +- .../server/common/data/security/UserCredentials.java | 2 +- .../common/data/security/event/UserAuthDataChangedEvent.java | 2 +- .../data/security/event/UserCredentialsInvalidationEvent.java | 2 +- .../data/security/event/UserSessionInvalidationEvent.java | 2 +- .../thingsboard/server/common/data/security/model/JwtPair.java | 2 +- .../server/common/data/security/model/JwtSettings.java | 2 +- .../server/common/data/security/model/JwtToken.java | 2 +- .../server/common/data/security/model/SecuritySettings.java | 2 +- .../server/common/data/security/model/UserPasswordPolicy.java | 2 +- .../common/data/security/model/mfa/PlatformTwoFaSettings.java | 2 +- .../data/security/model/mfa/account/AccountTwoFaSettings.java | 2 +- .../model/mfa/account/BackupCodeTwoFaAccountConfig.java | 2 +- .../security/model/mfa/account/EmailTwoFaAccountConfig.java | 2 +- .../security/model/mfa/account/OtpBasedTwoFaAccountConfig.java | 2 +- .../data/security/model/mfa/account/SmsTwoFaAccountConfig.java | 2 +- .../security/model/mfa/account/TotpTwoFaAccountConfig.java | 2 +- .../data/security/model/mfa/account/TwoFaAccountConfig.java | 2 +- .../model/mfa/provider/BackupCodeTwoFaProviderConfig.java | 2 +- .../security/model/mfa/provider/EmailTwoFaProviderConfig.java | 2 +- .../model/mfa/provider/OtpBasedTwoFaProviderConfig.java | 2 +- .../security/model/mfa/provider/SmsTwoFaProviderConfig.java | 2 +- .../security/model/mfa/provider/TotpTwoFaProviderConfig.java | 2 +- .../data/security/model/mfa/provider/TwoFaProviderConfig.java | 2 +- .../data/security/model/mfa/provider/TwoFaProviderType.java | 2 +- .../server/common/data/settings/AbstractUserDashboardInfo.java | 2 +- .../server/common/data/settings/LastVisitedDashboardInfo.java | 2 +- .../server/common/data/settings/StarredDashboardInfo.java | 2 +- .../server/common/data/settings/UserDashboardAction.java | 2 +- .../server/common/data/settings/UserDashboardsInfo.java | 2 +- .../thingsboard/server/common/data/settings/UserSettings.java | 2 +- .../server/common/data/settings/UserSettingsCompositeKey.java | 2 +- .../server/common/data/settings/UserSettingsType.java | 2 +- .../common/data/sms/config/AwsSnsSmsProviderConfiguration.java | 2 +- .../common/data/sms/config/SmppSmsProviderConfiguration.java | 2 +- .../common/data/sms/config/SmsProviderConfiguration.java | 2 +- .../server/common/data/sms/config/SmsProviderType.java | 2 +- .../server/common/data/sms/config/TestSmsRequest.java | 2 +- .../common/data/sms/config/TwilioSmsProviderConfiguration.java | 2 +- .../org/thingsboard/server/common/data/sync/JsonTbEntity.java | 2 +- .../server/common/data/sync/ie/AttributeExportData.java | 2 +- .../server/common/data/sync/ie/DeviceExportData.java | 2 +- .../server/common/data/sync/ie/EntityExportData.java | 2 +- .../server/common/data/sync/ie/EntityExportSettings.java | 2 +- .../server/common/data/sync/ie/EntityImportResult.java | 2 +- .../server/common/data/sync/ie/EntityImportSettings.java | 2 +- .../server/common/data/sync/ie/OtaPackageExportData.java | 2 +- .../server/common/data/sync/ie/RuleChainExportData.java | 2 +- .../server/common/data/sync/ie/WidgetTypeExportData.java | 2 +- .../server/common/data/sync/ie/WidgetsBundleExportData.java | 2 +- .../data/sync/ie/importing/csv/BulkImportColumnType.java | 2 +- .../common/data/sync/ie/importing/csv/BulkImportRequest.java | 2 +- .../common/data/sync/ie/importing/csv/BulkImportResult.java | 2 +- .../server/common/data/sync/vc/AutoCommitSettings.java | 2 +- .../org/thingsboard/server/common/data/sync/vc/BranchInfo.java | 2 +- .../thingsboard/server/common/data/sync/vc/EntityDataDiff.java | 2 +- .../thingsboard/server/common/data/sync/vc/EntityDataInfo.java | 2 +- .../server/common/data/sync/vc/EntityLoadError.java | 2 +- .../server/common/data/sync/vc/EntityTypeLoadResult.java | 2 +- .../thingsboard/server/common/data/sync/vc/EntityVersion.java | 2 +- .../server/common/data/sync/vc/EntityVersionsDiff.java | 2 +- .../server/common/data/sync/vc/RepositoryAuthMethod.java | 2 +- .../server/common/data/sync/vc/RepositorySettings.java | 2 +- .../server/common/data/sync/vc/RepositorySettingsInfo.java | 2 +- .../org/thingsboard/server/common/data/sync/vc/VcUtils.java | 2 +- .../server/common/data/sync/vc/VersionCreationResult.java | 2 +- .../server/common/data/sync/vc/VersionLoadResult.java | 2 +- .../server/common/data/sync/vc/VersionedEntityInfo.java | 2 +- .../data/sync/vc/request/create/AutoVersionCreateConfig.java | 2 +- .../sync/vc/request/create/ComplexVersionCreateRequest.java | 2 +- .../sync/vc/request/create/EntityTypeVersionCreateConfig.java | 2 +- .../vc/request/create/SingleEntityVersionCreateRequest.java | 2 +- .../common/data/sync/vc/request/create/SyncStrategy.java | 2 +- .../data/sync/vc/request/create/VersionCreateConfig.java | 2 +- .../data/sync/vc/request/create/VersionCreateRequest.java | 2 +- .../data/sync/vc/request/create/VersionCreateRequestType.java | 2 +- .../data/sync/vc/request/load/EntityTypeVersionLoadConfig.java | 2 +- .../sync/vc/request/load/EntityTypeVersionLoadRequest.java | 2 +- .../sync/vc/request/load/SingleEntityVersionLoadRequest.java | 2 +- .../common/data/sync/vc/request/load/VersionLoadConfig.java | 2 +- .../common/data/sync/vc/request/load/VersionLoadRequest.java | 2 +- .../data/sync/vc/request/load/VersionLoadRequestType.java | 2 +- .../data/tenant/profile/DefaultTenantProfileConfiguration.java | 2 +- .../common/data/tenant/profile/TenantProfileConfiguration.java | 2 +- .../server/common/data/tenant/profile/TenantProfileData.java | 2 +- .../data/tenant/profile/TenantProfileQueueConfiguration.java | 2 +- .../server/common/data/transport/resource/ResourceType.java | 2 +- .../common/data/transport/snmp/AuthenticationProtocol.java | 2 +- .../server/common/data/transport/snmp/PrivacyProtocol.java | 2 +- .../common/data/transport/snmp/SnmpCommunicationSpec.java | 2 +- .../server/common/data/transport/snmp/SnmpMapping.java | 2 +- .../server/common/data/transport/snmp/SnmpMethod.java | 2 +- .../server/common/data/transport/snmp/SnmpProtocolVersion.java | 2 +- .../snmp/config/MultipleMappingsSnmpCommunicationConfig.java | 2 +- .../snmp/config/RepeatingQueryingSnmpCommunicationConfig.java | 2 +- .../data/transport/snmp/config/SnmpCommunicationConfig.java | 2 +- .../snmp/config/ToServerRpcRequestSnmpCommunicationConfig.java | 2 +- .../impl/ClientAttributesQueryingSnmpCommunicationConfig.java | 2 +- .../impl/SharedAttributesSettingSnmpCommunicationConfig.java | 2 +- .../config/impl/TelemetryQueryingSnmpCommunicationConfig.java | 2 +- .../config/impl/ToDeviceRpcRequestSnmpCommunicationConfig.java | 2 +- .../thingsboard/server/common/data/trendz/TrendzSettings.java | 2 +- .../thingsboard/server/common/data/util/CollectionsUtil.java | 2 +- .../thingsboard/server/common/data/util/ReflectionUtils.java | 2 +- .../thingsboard/server/common/data/util/TbDDFFileParser.java | 2 +- .../server/common/data/util/TbDefaultDDFFileValidator.java | 2 +- .../java/org/thingsboard/server/common/data/util/TbPair.java | 2 +- .../org/thingsboard/server/common/data/util/TemplateUtils.java | 2 +- .../server/common/data/util/ThrowingBiFunction.java | 2 +- .../thingsboard/server/common/data/util/ThrowingRunnable.java | 2 +- .../thingsboard/server/common/data/util/ThrowingSupplier.java | 2 +- .../org/thingsboard/server/common/data/util/TypeCastUtil.java | 2 +- .../org/thingsboard/server/common/data/validation/Length.java | 2 +- .../thingsboard/server/common/data/validation/NoNullChar.java | 2 +- .../org/thingsboard/server/common/data/validation/NoXss.java | 2 +- .../thingsboard/server/common/data/validation/RateLimit.java | 2 +- .../server/common/data/validation/ValidJsonSchema.java | 2 +- .../thingsboard/server/common/data/widget/BaseWidgetType.java | 2 +- .../server/common/data/widget/DeprecatedFilter.java | 2 +- .../server/common/data/widget/WidgetBundleInfo.java | 2 +- .../org/thingsboard/server/common/data/widget/WidgetType.java | 2 +- .../server/common/data/widget/WidgetTypeDetails.java | 2 +- .../server/common/data/widget/WidgetTypeFilter.java | 2 +- .../thingsboard/server/common/data/widget/WidgetTypeInfo.java | 2 +- .../thingsboard/server/common/data/widget/WidgetsBundle.java | 2 +- .../server/common/data/widget/WidgetsBundleFilter.java | 2 +- .../server/common/data/widget/WidgetsBundleWidget.java | 2 +- .../thingsboard/server/common/data/DynamicProtoUtilsTest.java | 2 +- .../org/thingsboard/server/common/data/EntityTypeTest.java | 2 +- .../org/thingsboard/server/common/data/StringUtilsTest.java | 2 +- .../org/thingsboard/server/common/data/UUIDConverterTest.java | 2 +- .../thingsboard/server/common/data/audit/ActionTypeTest.java | 2 +- .../org/thingsboard/server/common/data/id/EntityIdTest.java | 2 +- .../thingsboard/server/common/data/limit/LimitedApiTest.java | 2 +- .../server/common/data/limit/RateLimitUtilTest.java | 2 +- .../org/thingsboard/server/common/data/msg/TbMsgTypeTest.java | 2 +- .../org/thingsboard/server/common/data/rpc/RpcStatusTest.java | 2 +- common/discovery-api/pom.xml | 2 +- .../server/queue/discovery/TbServiceInfoProvider.java | 2 +- common/edge-api/pom.xml | 2 +- .../thingsboard/edge/exception/EdgeConnectionException.java | 2 +- .../src/main/java/org/thingsboard/edge/rpc/EdgeGrpcClient.java | 2 +- .../src/main/java/org/thingsboard/edge/rpc/EdgeRpcClient.java | 2 +- common/edge-api/src/main/proto/edge.proto | 2 +- common/edqs/pom.xml | 2 +- .../org/thingsboard/server/edqs/data/ApiUsageStateData.java | 2 +- .../main/java/org/thingsboard/server/edqs/data/AssetData.java | 2 +- .../java/org/thingsboard/server/edqs/data/BaseEntityData.java | 2 +- .../java/org/thingsboard/server/edqs/data/CustomerData.java | 2 +- .../main/java/org/thingsboard/server/edqs/data/DeviceData.java | 2 +- .../main/java/org/thingsboard/server/edqs/data/EntityData.java | 2 +- .../org/thingsboard/server/edqs/data/EntityProfileData.java | 2 +- .../java/org/thingsboard/server/edqs/data/GenericData.java | 2 +- .../org/thingsboard/server/edqs/data/ProfileAwareData.java | 2 +- .../java/org/thingsboard/server/edqs/data/RelationData.java | 2 +- .../java/org/thingsboard/server/edqs/data/RelationInfo.java | 2 +- .../java/org/thingsboard/server/edqs/data/RelationsRepo.java | 2 +- .../main/java/org/thingsboard/server/edqs/data/TenantData.java | 2 +- .../org/thingsboard/server/edqs/data/dp/AbstractDataPoint.java | 2 +- .../org/thingsboard/server/edqs/data/dp/BoolDataPoint.java | 2 +- .../server/edqs/data/dp/CompressedJsonDataPoint.java | 2 +- .../server/edqs/data/dp/CompressedStringDataPoint.java | 2 +- .../org/thingsboard/server/edqs/data/dp/DoubleDataPoint.java | 2 +- .../org/thingsboard/server/edqs/data/dp/JsonDataPoint.java | 2 +- .../org/thingsboard/server/edqs/data/dp/LongDataPoint.java | 2 +- .../org/thingsboard/server/edqs/data/dp/StringDataPoint.java | 2 +- .../org/thingsboard/server/edqs/processor/EdqsProcessor.java | 2 +- .../org/thingsboard/server/edqs/processor/EdqsProducer.java | 2 +- .../main/java/org/thingsboard/server/edqs/query/DataKey.java | 2 +- .../java/org/thingsboard/server/edqs/query/EdqsCountQuery.java | 2 +- .../java/org/thingsboard/server/edqs/query/EdqsDataQuery.java | 2 +- .../java/org/thingsboard/server/edqs/query/EdqsFilter.java | 2 +- .../main/java/org/thingsboard/server/edqs/query/EdqsQuery.java | 2 +- .../org/thingsboard/server/edqs/query/SortableEntityData.java | 2 +- .../processor/AbstractEntityProfileNameQueryProcessor.java | 2 +- .../query/processor/AbstractEntityProfileQueryProcessor.java | 2 +- .../query/processor/AbstractEntitySearchQueryProcessor.java | 2 +- .../server/edqs/query/processor/AbstractQueryProcessor.java | 2 +- .../edqs/query/processor/AbstractRelationQueryProcessor.java | 2 +- .../edqs/query/processor/AbstractSimpleQueryProcessor.java | 2 +- .../processor/AbstractSingleEntityTypeQueryProcessor.java | 2 +- .../edqs/query/processor/ApiUsageStateQueryProcessor.java | 2 +- .../server/edqs/query/processor/AssetSearchQueryProcessor.java | 2 +- .../server/edqs/query/processor/AssetTypeQueryProcessor.java | 2 +- .../edqs/query/processor/DeviceSearchQueryProcessor.java | 2 +- .../server/edqs/query/processor/DeviceTypeQueryProcessor.java | 2 +- .../server/edqs/query/processor/EdgeTypeQueryProcessor.java | 2 +- .../edqs/query/processor/EdgeTypeSearchQueryProcessor.java | 2 +- .../server/edqs/query/processor/EntityListQueryProcessor.java | 2 +- .../server/edqs/query/processor/EntityNameQueryProcessor.java | 2 +- .../server/edqs/query/processor/EntityQueryProcessor.java | 2 +- .../edqs/query/processor/EntityQueryProcessorFactory.java | 2 +- .../server/edqs/query/processor/EntityTypeQueryProcessor.java | 2 +- .../edqs/query/processor/EntityViewSearchQueryProcessor.java | 2 +- .../edqs/query/processor/EntityViewTypeQueryProcessor.java | 2 +- .../server/edqs/query/processor/RelationQueryProcessor.java | 2 +- .../edqs/query/processor/SingleEntityQueryProcessor.java | 2 +- .../thingsboard/server/edqs/repo/DefaultEdqsRepository.java | 2 +- .../java/org/thingsboard/server/edqs/repo/EdqsRepository.java | 2 +- .../java/org/thingsboard/server/edqs/repo/KeyDictionary.java | 2 +- .../main/java/org/thingsboard/server/edqs/repo/TenantRepo.java | 2 +- .../thingsboard/server/edqs/state/EdqsPartitionService.java | 2 +- .../org/thingsboard/server/edqs/state/EdqsStateService.java | 2 +- .../thingsboard/server/edqs/state/KafkaEdqsStateService.java | 2 +- .../thingsboard/server/edqs/state/LocalEdqsStateService.java | 2 +- .../thingsboard/server/edqs/stats/DefaultEdqsStatsService.java | 2 +- .../org/thingsboard/server/edqs/util/DefaultEdqsMapper.java | 2 +- .../main/java/org/thingsboard/server/edqs/util/EdqsMapper.java | 2 +- .../java/org/thingsboard/server/edqs/util/EdqsRocksDb.java | 2 +- .../java/org/thingsboard/server/edqs/util/RepositoryUtils.java | 2 +- .../main/java/org/thingsboard/server/edqs/util/TbRocksDb.java | 2 +- .../java/org/thingsboard/server/edqs/util/VersionsStore.java | 2 +- common/message/pom.xml | 2 +- .../java/org/thingsboard/server/common/msg/EncryptionUtil.java | 2 +- .../main/java/org/thingsboard/server/common/msg/MsgType.java | 2 +- .../java/org/thingsboard/server/common/msg/TbActorMsg.java | 2 +- .../org/thingsboard/server/common/msg/TbActorStopReason.java | 2 +- .../src/main/java/org/thingsboard/server/common/msg/TbMsg.java | 2 +- .../java/org/thingsboard/server/common/msg/TbMsgDataType.java | 2 +- .../java/org/thingsboard/server/common/msg/TbMsgMetaData.java | 2 +- .../org/thingsboard/server/common/msg/TbMsgProcessingCtx.java | 2 +- .../server/common/msg/TbMsgProcessingStackItem.java | 2 +- .../thingsboard/server/common/msg/TbRuleEngineActorMsg.java | 2 +- .../server/common/msg/ToCalculatedFieldSystemMsg.java | 2 +- .../server/common/msg/ToDeviceActorNotificationMsg.java | 2 +- .../thingsboard/server/common/msg/aware/CustomerAwareMsg.java | 2 +- .../thingsboard/server/common/msg/aware/DeviceAwareMsg.java | 2 +- .../org/thingsboard/server/common/msg/aware/NodeAwareMsg.java | 2 +- .../thingsboard/server/common/msg/aware/RuleChainAwareMsg.java | 2 +- .../thingsboard/server/common/msg/aware/TenantAwareMsg.java | 2 +- .../server/common/msg/cf/CalculatedFieldCacheInitMsg.java | 2 +- .../common/msg/cf/CalculatedFieldEntityLifecycleMsg.java | 2 +- .../common/msg/cf/CalculatedFieldPartitionChangeMsg.java | 2 +- .../thingsboard/server/common/msg/cluster/ToAllNodesMsg.java | 2 +- .../thingsboard/server/common/msg/edge/EdgeEventUpdateMsg.java | 2 +- .../server/common/msg/edge/EdgeHighPriorityMsg.java | 2 +- .../org/thingsboard/server/common/msg/edge/EdgeSessionMsg.java | 2 +- .../server/common/msg/edge/FromEdgeSyncResponse.java | 2 +- .../thingsboard/server/common/msg/edge/ToEdgeSyncRequest.java | 2 +- .../org/thingsboard/server/common/msg/edqs/EdqsApiService.java | 2 +- .../org/thingsboard/server/common/msg/edqs/EdqsService.java | 2 +- .../server/common/msg/gateway/metrics/GatewayMetadata.java | 2 +- .../server/common/msg/housekeeper/HousekeeperClient.java | 2 +- .../common/msg/notification/NotificationRuleProcessor.java | 2 +- .../server/common/msg/plugin/ComponentLifecycleListener.java | 2 +- .../server/common/msg/plugin/ComponentLifecycleMsg.java | 2 +- .../server/common/msg/plugin/RuleNodeUpdatedMsg.java | 2 +- .../server/common/msg/queue/PartitionChangeMsg.java | 2 +- .../server/common/msg/queue/QueueToRuleEngineMsg.java | 2 +- .../server/common/msg/queue/RuleEngineException.java | 2 +- .../thingsboard/server/common/msg/queue/RuleNodeException.java | 2 +- .../org/thingsboard/server/common/msg/queue/RuleNodeInfo.java | 2 +- .../org/thingsboard/server/common/msg/queue/ServiceType.java | 2 +- .../org/thingsboard/server/common/msg/queue/TbCallback.java | 2 +- .../org/thingsboard/server/common/msg/queue/TbMsgCallback.java | 2 +- .../server/common/msg/queue/TopicPartitionInfo.java | 2 +- .../server/common/msg/rpc/FromDeviceRpcResponse.java | 2 +- .../server/common/msg/rpc/FromDeviceRpcResponseActorMsg.java | 2 +- .../thingsboard/server/common/msg/rpc/RemoveRpcActorMsg.java | 2 +- .../thingsboard/server/common/msg/rpc/ToDeviceRpcRequest.java | 2 +- .../server/common/msg/rpc/ToDeviceRpcRequestActorMsg.java | 2 +- .../server/common/msg/rule/engine/DeviceAttributes.java | 2 +- .../msg/rule/engine/DeviceAttributesEventNotificationMsg.java | 2 +- .../rule/engine/DeviceCredentialsUpdateNotificationMsg.java | 2 +- .../server/common/msg/rule/engine/DeviceDeleteMsg.java | 2 +- .../server/common/msg/rule/engine/DeviceEdgeUpdateMsg.java | 2 +- .../server/common/msg/rule/engine/DeviceMetaData.java | 2 +- .../common/msg/rule/engine/DeviceNameOrTypeUpdateMsg.java | 2 +- .../org/thingsboard/server/common/msg/session/FeatureType.java | 2 +- .../thingsboard/server/common/msg/session/SessionMsgType.java | 2 +- .../common/msg/session/ex/ProcessingTimeoutException.java | 2 +- .../server/common/msg/session/ex/SessionAuthException.java | 2 +- .../server/common/msg/session/ex/SessionException.java | 2 +- .../common/msg/timeout/DeviceActorServerSideRpcTimeoutMsg.java | 2 +- .../org/thingsboard/server/common/msg/timeout/TimeoutMsg.java | 2 +- .../common/msg/tools/MaxPayloadSizeExceededException.java | 2 +- .../thingsboard/server/common/msg/tools/SchedulerUtils.java | 2 +- .../org/thingsboard/server/common/msg/tools/TbRateLimits.java | 2 +- .../server/common/msg/tools/TbRateLimitsException.java | 2 +- common/message/src/main/proto/tbmsg.proto | 2 +- .../org/thingsboard/server/common/msg/EncryptionUtilTest.java | 2 +- .../org/thingsboard/server/common/msg/TbMsgMetaDataTest.java | 2 +- .../server/common/msg/TbMsgProcessingStackItemTest.java | 2 +- .../server/common/msg/queue/TopicPartitionInfoTest.java | 2 +- .../thingsboard/server/common/msg/tools/TbRateLimitsTest.java | 2 +- common/pom.xml | 2 +- common/proto/pom.xml | 2 +- .../thingsboard/server/common/adaptor/AdaptorException.java | 2 +- .../org/thingsboard/server/common/adaptor/JsonConverter.java | 2 +- .../thingsboard/server/common/adaptor/JsonConverterConfig.java | 2 +- .../org/thingsboard/server/common/adaptor/ProtoConverter.java | 2 +- .../java/org/thingsboard/server/common/util/KvProtoUtil.java | 2 +- .../java/org/thingsboard/server/common/util/ProtoUtils.java | 2 +- common/proto/src/main/proto/jsinvoke.proto | 2 +- common/proto/src/main/proto/queue.proto | 2 +- common/proto/src/main/proto/transport.proto | 2 +- .../thingsboard/server/common/adaptor/JsonConverterTest.java | 2 +- .../org/thingsboard/server/common/util/KvProtoUtilTest.java | 2 +- .../org/thingsboard/server/common/util/ProtoUtilsTest.java | 2 +- common/queue/pom.xml | 2 +- .../server/queue/RuleEngineTbQueueAdminFactory.java | 2 +- .../queue/common/AbstractParallelTbQueueConsumerTemplate.java | 2 +- .../server/queue/common/AbstractTbQueueConsumerTemplate.java | 2 +- .../server/queue/common/AbstractTbQueueTemplate.java | 2 +- .../thingsboard/server/queue/common/AsyncCallbackTemplate.java | 2 +- .../org/thingsboard/server/queue/common/DefaultTbQueueMsg.java | 2 +- .../server/queue/common/DefaultTbQueueMsgHeaders.java | 2 +- .../server/queue/common/DefaultTbQueueRequestTemplate.java | 2 +- .../server/queue/common/DefaultTbQueueResponseTemplate.java | 2 +- .../server/queue/common/MultipleTbQueueCallbackWrapper.java | 2 +- .../queue/common/MultipleTbQueueTbMsgCallbackWrapper.java | 2 +- .../server/queue/common/PartitionedQueueResponseTemplate.java | 2 +- .../thingsboard/server/queue/common/SimpleTbQueueCallback.java | 2 +- .../org/thingsboard/server/queue/common/TbProtoJsQueueMsg.java | 2 +- .../org/thingsboard/server/queue/common/TbProtoQueueMsg.java | 2 +- .../server/queue/common/TbQueueTbMsgCallbackWrapper.java | 2 +- .../server/queue/common/TbRuleEngineProducerService.java | 2 +- .../server/queue/common/consumer/MainQueueConsumerManager.java | 2 +- .../queue/common/consumer/PartitionedQueueConsumerManager.java | 2 +- .../server/queue/common/consumer/QueueConsumerManager.java | 2 +- .../server/queue/common/consumer/QueueTaskType.java | 2 +- .../queue/common/consumer/TbQueueConsumerManagerTask.java | 2 +- .../server/queue/common/consumer/TbQueueConsumerTask.java | 2 +- .../server/queue/common/state/DefaultQueueStateService.java | 2 +- .../server/queue/common/state/KafkaQueueStateService.java | 2 +- .../server/queue/common/state/QueueStateService.java | 2 +- .../server/queue/discovery/ConsistentHashCircle.java | 2 +- .../server/queue/discovery/DefaultTbServiceInfoProvider.java | 2 +- .../thingsboard/server/queue/discovery/DiscoveryService.java | 2 +- .../server/queue/discovery/DummyDiscoveryService.java | 2 +- .../server/queue/discovery/HashPartitionService.java | 2 +- .../thingsboard/server/queue/discovery/PartitionService.java | 2 +- .../java/org/thingsboard/server/queue/discovery/QueueKey.java | 2 +- .../thingsboard/server/queue/discovery/QueueRoutingInfo.java | 2 +- .../server/queue/discovery/QueueRoutingInfoService.java | 2 +- .../server/queue/discovery/TbApplicationEventListener.java | 2 +- .../thingsboard/server/queue/discovery/TenantRoutingInfo.java | 2 +- .../server/queue/discovery/TenantRoutingInfoService.java | 2 +- .../org/thingsboard/server/queue/discovery/TopicService.java | 2 +- .../thingsboard/server/queue/discovery/ZkDiscoveryService.java | 2 +- .../queue/discovery/event/ClusterTopologyChangeEvent.java | 2 +- .../queue/discovery/event/OtherServiceShutdownEvent.java | 2 +- .../server/queue/discovery/event/PartitionChangeEvent.java | 2 +- .../server/queue/discovery/event/ServiceListChangedEvent.java | 2 +- .../server/queue/discovery/event/TbApplicationEvent.java | 2 +- .../java/org/thingsboard/server/queue/edqs/EdqsComponent.java | 2 +- .../java/org/thingsboard/server/queue/edqs/EdqsConfig.java | 2 +- .../java/org/thingsboard/server/queue/edqs/EdqsExecutors.java | 2 +- .../org/thingsboard/server/queue/edqs/EdqsQueueFactory.java | 2 +- .../thingsboard/server/queue/edqs/InMemoryEdqsComponent.java | 2 +- .../server/queue/edqs/InMemoryEdqsQueueFactory.java | 2 +- .../org/thingsboard/server/queue/edqs/KafkaEdqsComponent.java | 2 +- .../thingsboard/server/queue/edqs/KafkaEdqsQueueFactory.java | 2 +- .../thingsboard/server/queue/environment/DistributedLock.java | 2 +- .../server/queue/environment/DistributedLockService.java | 2 +- .../server/queue/environment/DummyDistributedLockService.java | 2 +- .../server/queue/environment/EnvironmentLogService.java | 2 +- .../server/queue/environment/ZkDistributedLockService.java | 2 +- .../server/queue/housekeeper/DefaultHousekeeperClient.java | 2 +- .../server/queue/housekeeper/HousekeeperConfig.java | 2 +- .../java/org/thingsboard/server/queue/kafka/KafkaAdmin.java | 2 +- .../org/thingsboard/server/queue/kafka/KafkaTbQueueMsg.java | 2 +- .../server/queue/kafka/KafkaTbQueueMsgMetadata.java | 2 +- .../java/org/thingsboard/server/queue/kafka/TbKafkaAdmin.java | 2 +- .../server/queue/kafka/TbKafkaConsumerStatisticConfig.java | 2 +- .../server/queue/kafka/TbKafkaConsumerStatsService.java | 2 +- .../server/queue/kafka/TbKafkaConsumerTemplate.java | 2 +- .../org/thingsboard/server/queue/kafka/TbKafkaDecoder.java | 2 +- .../org/thingsboard/server/queue/kafka/TbKafkaEncoder.java | 2 +- .../server/queue/kafka/TbKafkaProducerTemplate.java | 2 +- .../org/thingsboard/server/queue/kafka/TbKafkaSettings.java | 2 +- .../thingsboard/server/queue/kafka/TbKafkaTopicConfigs.java | 2 +- .../server/queue/memory/DefaultInMemoryStorage.java | 2 +- .../org/thingsboard/server/queue/memory/InMemoryStorage.java | 2 +- .../server/queue/memory/InMemoryTbQueueConsumer.java | 2 +- .../server/queue/memory/InMemoryTbQueueProducer.java | 2 +- .../notification/DefaultNotificationDeduplicationService.java | 2 +- .../queue/notification/NotificationDeduplicationService.java | 2 +- .../queue/notification/RemoteNotificationRuleProcessor.java | 2 +- .../server/queue/provider/EdqsClientQueueFactory.java | 2 +- .../server/queue/provider/HousekeeperClientQueueFactory.java | 2 +- .../server/queue/provider/InMemoryMonolithQueueFactory.java | 2 +- .../server/queue/provider/InMemoryTbTransportQueueFactory.java | 2 +- .../server/queue/provider/KafkaMonolithQueueFactory.java | 2 +- .../server/queue/provider/KafkaTbCoreQueueFactory.java | 2 +- .../server/queue/provider/KafkaTbRuleEngineQueueFactory.java | 2 +- .../server/queue/provider/KafkaTbTransportQueueFactory.java | 2 +- .../queue/provider/KafkaTbVersionControlQueueFactory.java | 2 +- .../thingsboard/server/queue/provider/TbCoreQueueFactory.java | 2 +- .../server/queue/provider/TbCoreQueueProducerProvider.java | 2 +- .../server/queue/provider/TbQueueProducerProvider.java | 2 +- .../server/queue/provider/TbRuleEngineProducerProvider.java | 2 +- .../server/queue/provider/TbRuleEngineQueueFactory.java | 2 +- .../server/queue/provider/TbTransportQueueFactory.java | 2 +- .../queue/provider/TbTransportQueueProducerProvider.java | 2 +- .../server/queue/provider/TbUsageStatsClientQueueFactory.java | 2 +- .../queue/provider/TbVersionControlProducerProvider.java | 2 +- .../server/queue/provider/TbVersionControlQueueFactory.java | 2 +- .../server/queue/scheduler/DefaultSchedulerComponent.java | 2 +- .../thingsboard/server/queue/scheduler/SchedulerComponent.java | 2 +- .../thingsboard/server/queue/settings/TasksQueueConfig.java | 2 +- .../server/queue/settings/TbQueueCalculatedFieldSettings.java | 2 +- .../thingsboard/server/queue/settings/TbQueueCoreSettings.java | 2 +- .../thingsboard/server/queue/settings/TbQueueEdgeSettings.java | 2 +- .../server/queue/settings/TbQueueRemoteJsInvokeSettings.java | 2 +- .../server/queue/settings/TbQueueRuleEngineSettings.java | 2 +- .../server/queue/settings/TbQueueTransportApiSettings.java | 2 +- .../queue/settings/TbQueueTransportNotificationSettings.java | 2 +- .../server/queue/settings/TbQueueVersionControlSettings.java | 2 +- .../server/queue/task/InMemoryTaskProcessorQueueFactory.java | 2 +- .../server/queue/task/InMemoryTaskProducerQueueFactory.java | 2 +- .../org/thingsboard/server/queue/task/JobStatsService.java | 2 +- .../server/queue/task/KafkaTaskProcessorQueueFactory.java | 2 +- .../server/queue/task/KafkaTaskProducerQueueFactory.java | 2 +- .../java/org/thingsboard/server/queue/task/TaskProcessor.java | 2 +- .../thingsboard/server/queue/task/TaskProcessorExecutors.java | 2 +- .../server/queue/task/TaskProcessorQueueFactory.java | 2 +- .../server/queue/task/TaskProducerQueueFactory.java | 2 +- .../server/queue/usagestats/DefaultTbApiUsageReportClient.java | 2 +- .../org/thingsboard/server/queue/util/AfterContextReady.java | 2 +- .../java/org/thingsboard/server/queue/util/AfterStartUp.java | 2 +- .../java/org/thingsboard/server/queue/util/PropertyUtils.java | 2 +- .../org/thingsboard/server/queue/util/TbCoreComponent.java | 2 +- .../org/thingsboard/server/queue/util/TbKafkaComponent.java | 2 +- .../server/queue/util/TbLwM2mBootstrapTransportComponent.java | 2 +- .../server/queue/util/TbLwM2mTransportComponent.java | 2 +- .../thingsboard/server/queue/util/TbRuleEngineComponent.java | 2 +- .../server/queue/util/TbSnmpTransportComponent.java | 2 +- .../thingsboard/server/queue/util/TbTransportComponent.java | 2 +- .../server/queue/util/TbVersionControlComponent.java | 2 +- .../server/queue/common/DefaultTbQueueRequestTemplateTest.java | 2 +- .../org/thingsboard/server/queue/discovery/QueueKeyTest.java | 2 +- .../server/queue/discovery/ZkDiscoveryServiceTest.java | 2 +- .../org/thingsboard/server/queue/kafka/TbKafkaAdminTest.java | 2 +- .../server/queue/kafka/TbKafkaProducerTemplateTest.java | 2 +- .../thingsboard/server/queue/kafka/TbKafkaSettingsTest.java | 2 +- .../server/queue/memory/DefaultInMemoryStorageTest.java | 2 +- .../org/thingsboard/server/queue/util/PropertyUtilsTest.java | 2 +- common/script/pom.xml | 2 +- common/script/remote-js-client/pom.xml | 2 +- .../thingsboard/server/service/script/JsExecutorService.java | 2 +- .../server/service/script/RemoteJsInvokeService.java | 2 +- .../server/service/script/RemoteJsRequestEncoder.java | 2 +- .../server/service/script/RemoteJsResponseDecoder.java | 2 +- common/script/script-api/pom.xml | 2 +- .../thingsboard/script/api/AbstractScriptInvokeService.java | 2 +- .../java/org/thingsboard/script/api/BlockedScriptInfo.java | 2 +- .../java/org/thingsboard/script/api/RuleNodeScriptFactory.java | 2 +- .../java/org/thingsboard/script/api/ScriptInvokeService.java | 2 +- .../java/org/thingsboard/script/api/ScriptStatCallback.java | 2 +- .../src/main/java/org/thingsboard/script/api/ScriptType.java | 2 +- .../java/org/thingsboard/script/api/TbScriptException.java | 2 +- .../java/org/thingsboard/script/api/TbScriptExecutionTask.java | 2 +- .../org/thingsboard/script/api/js/AbstractJsInvokeService.java | 2 +- .../java/org/thingsboard/script/api/js/JsInvokeService.java | 2 +- .../org/thingsboard/script/api/js/JsScriptExecutionTask.java | 2 +- .../main/java/org/thingsboard/script/api/js/JsScriptInfo.java | 2 +- .../main/java/org/thingsboard/script/api/js/JsValidator.java | 2 +- .../org/thingsboard/script/api/js/NashornJsInvokeService.java | 2 +- .../org/thingsboard/script/api/tbel/DateTimeFormatOptions.java | 2 +- .../thingsboard/script/api/tbel/DefaultTbelInvokeService.java | 2 +- .../src/main/java/org/thingsboard/script/api/tbel/TbDate.java | 2 +- .../src/main/java/org/thingsboard/script/api/tbel/TbJson.java | 2 +- .../java/org/thingsboard/script/api/tbel/TbTimeWindow.java | 2 +- .../src/main/java/org/thingsboard/script/api/tbel/TbUtils.java | 2 +- .../main/java/org/thingsboard/script/api/tbel/TbelCfArg.java | 2 +- .../main/java/org/thingsboard/script/api/tbel/TbelCfCtx.java | 2 +- .../java/org/thingsboard/script/api/tbel/TbelCfObject.java | 2 +- .../org/thingsboard/script/api/tbel/TbelCfSingleValueArg.java | 2 +- .../org/thingsboard/script/api/tbel/TbelCfTsDoubleVal.java | 2 +- .../thingsboard/script/api/tbel/TbelCfTsMultiDoubleVal.java | 2 +- .../org/thingsboard/script/api/tbel/TbelCfTsRollingArg.java | 2 +- .../org/thingsboard/script/api/tbel/TbelCfTsRollingData.java | 2 +- .../org/thingsboard/script/api/tbel/TbelInvokeService.java | 2 +- .../main/java/org/thingsboard/script/api/tbel/TbelScript.java | 2 +- .../thingsboard/script/api/tbel/TbelScriptExecutionTask.java | 2 +- .../script/api/AbstractScriptInvokeServiceTest.java | 2 +- .../java/org/thingsboard/script/api/TbScriptExceptionTest.java | 2 +- .../thingsboard/script/api/js/AbstractJsInvokeServiceTest.java | 2 +- .../java/org/thingsboard/script/api/js/JsValidatorTest.java | 2 +- .../org/thingsboard/script/api/tbel/TbDateConstructorTest.java | 2 +- .../test/java/org/thingsboard/script/api/tbel/TbDateTest.java | 2 +- .../java/org/thingsboard/script/api/tbel/TbDateTestEntity.java | 2 +- .../test/java/org/thingsboard/script/api/tbel/TbUtilsTest.java | 2 +- .../thingsboard/script/api/tbel/TbelCfTsRollingArgTest.java | 2 +- common/stats/pom.xml | 2 +- .../org/thingsboard/server/common/stats/DefaultCounter.java | 2 +- .../thingsboard/server/common/stats/DefaultMessagesStats.java | 2 +- .../thingsboard/server/common/stats/DefaultStatsFactory.java | 2 +- .../thingsboard/server/common/stats/DummyEdqsStatsService.java | 2 +- .../org/thingsboard/server/common/stats/EdqsStatsService.java | 2 +- .../thingsboard/server/common/stats/FstStatsServiceImpl.java | 2 +- .../org/thingsboard/server/common/stats/MessagesStats.java | 2 +- .../java/org/thingsboard/server/common/stats/StatsCounter.java | 2 +- .../java/org/thingsboard/server/common/stats/StatsFactory.java | 2 +- .../java/org/thingsboard/server/common/stats/StatsTimer.java | 2 +- .../java/org/thingsboard/server/common/stats/StatsType.java | 2 +- .../server/common/stats/TbApiUsageReportClient.java | 2 +- .../thingsboard/server/common/stats/TbApiUsageStateClient.java | 2 +- common/transport/coap/pom.xml | 2 +- .../server/transport/coap/AbstractCoapTransportResource.java | 2 +- .../thingsboard/server/transport/coap/CoapSessionMsgType.java | 2 +- .../server/transport/coap/CoapTransportContext.java | 2 +- .../server/transport/coap/CoapTransportResource.java | 2 +- .../server/transport/coap/CoapTransportService.java | 2 +- .../server/transport/coap/OtaPackageTransportResource.java | 2 +- .../server/transport/coap/TbCoapMessageObserver.java | 2 +- .../server/transport/coap/TransportConfigurationContainer.java | 2 +- .../server/transport/coap/adaptors/CoapAdaptorUtils.java | 2 +- .../server/transport/coap/adaptors/CoapTransportAdaptor.java | 2 +- .../server/transport/coap/adaptors/JsonCoapAdaptor.java | 2 +- .../server/transport/coap/adaptors/ProtoCoapAdaptor.java | 2 +- .../transport/coap/callback/AbstractSyncSessionCallback.java | 2 +- .../server/transport/coap/callback/CoapDeviceAuthCallback.java | 2 +- .../server/transport/coap/callback/CoapEfentoCallback.java | 2 +- .../server/transport/coap/callback/CoapNoOpCallback.java | 2 +- .../server/transport/coap/callback/CoapResponseCallback.java | 2 +- .../transport/coap/callback/CoapResponseCodeCallback.java | 2 +- .../coap/callback/GetAttributesSyncSessionCallback.java | 2 +- .../coap/callback/ToServerRpcSyncSessionCallback.java | 2 +- .../server/transport/coap/client/CoapClientContext.java | 2 +- .../server/transport/coap/client/DefaultCoapClientContext.java | 2 +- .../thingsboard/server/transport/coap/client/NoSecClient.java | 2 +- .../server/transport/coap/client/NoSecObserveClient.java | 2 +- .../server/transport/coap/client/SecureClientNoAuth.java | 2 +- .../server/transport/coap/client/SecureClientX509.java | 2 +- .../server/transport/coap/client/TbCoapClientState.java | 2 +- .../server/transport/coap/client/TbCoapContentFormatUtil.java | 2 +- .../server/transport/coap/client/TbCoapObservationState.java | 2 +- .../transport/coap/efento/CoapEfentoTransportResource.java | 2 +- .../transport/coap/efento/adaptor/EfentoCoapAdaptor.java | 2 +- .../server/transport/coap/efento/utils/CoapEfentoUtils.java | 2 +- .../server/transport/coap/efento/utils/PulseCounterType.java | 2 +- common/transport/coap/src/main/proto/efento/proto_config.proto | 2 +- .../coap/src/main/proto/efento/proto_device_info.proto | 2 +- .../coap/src/main/proto/efento/proto_measurement_types.proto | 2 +- .../coap/src/main/proto/efento/proto_measurements.proto | 2 +- common/transport/coap/src/main/proto/efento/proto_rule.proto | 2 +- .../server/transport/coap/CoapTransportResourceTest.java | 2 +- .../transport/coap/efento/CoapEfentoTransportResourceTest.java | 2 +- common/transport/http/pom.xml | 2 +- .../thingsboard/server/transport/http/DeviceApiController.java | 2 +- .../server/transport/http/HttpTransportContext.java | 2 +- .../server/transport/http/config/PayloadSizeFilter.java | 2 +- .../transport/http/config/TransportSecurityConfiguration.java | 2 +- .../server/transport/http/DeviceApiControllerTest.java | 2 +- common/transport/lwm2m/pom.xml | 2 +- .../lwm2m/bootstrap/LwM2MTransportBootstrapService.java | 2 +- .../transport/lwm2m/bootstrap/secure/LwM2MBootstrapConfig.java | 2 +- .../lwm2m/bootstrap/secure/LwM2MBootstrapServers.java | 2 +- .../transport/lwm2m/bootstrap/secure/LwM2MServerBootstrap.java | 2 +- .../bootstrap/secure/LwM2mDefaultBootstrapSessionManager.java | 2 +- .../secure/TbLwM2MDtlsBootstrapCertificateVerifier.java | 2 +- .../lwm2m/bootstrap/store/LwM2MBootstrapClientInstanceIds.java | 2 +- .../bootstrap/store/LwM2MBootstrapConfigStoreTaskProvider.java | 2 +- .../lwm2m/bootstrap/store/LwM2MBootstrapSecurityStore.java | 2 +- .../lwm2m/bootstrap/store/LwM2MBootstrapTaskProvider.java | 2 +- .../lwm2m/bootstrap/store/LwM2MConfigurationChecker.java | 2 +- .../bootstrap/store/LwM2MInMemoryBootstrapConfigStore.java | 2 +- .../server/transport/lwm2m/config/LwM2MSecureServerConfig.java | 2 +- .../transport/lwm2m/config/LwM2MTransportBootstrapConfig.java | 2 +- .../transport/lwm2m/config/LwM2MTransportServerConfig.java | 2 +- .../server/transport/lwm2m/config/TbLwM2mVersion.java | 2 +- .../lwm2m/secure/LwM2mCredentialsSecurityInfoValidator.java | 2 +- .../server/transport/lwm2m/secure/LwM2mRPkCredentials.java | 2 +- .../server/transport/lwm2m/secure/TbLwM2MAuthorizer.java | 2 +- .../transport/lwm2m/secure/TbLwM2MDtlsCertificateVerifier.java | 2 +- .../server/transport/lwm2m/secure/TbLwM2MSecurityInfo.java | 2 +- .../server/transport/lwm2m/secure/TbX509DtlsSessionInfo.java | 2 +- .../lwm2m/secure/credentials/LwM2MClientCredentials.java | 2 +- .../transport/lwm2m/server/AbstractLwM2mTransportResource.java | 2 +- .../transport/lwm2m/server/DefaultLwM2mTransportService.java | 2 +- .../server/transport/lwm2m/server/LwM2MNetworkConfig.java | 2 +- .../server/transport/lwm2m/server/LwM2MOperationType.java | 2 +- .../server/transport/lwm2m/server/LwM2MTransportService.java | 2 +- .../server/transport/lwm2m/server/LwM2mOtaConvert.java | 2 +- .../server/transport/lwm2m/server/LwM2mQueuedRequest.java | 2 +- .../server/transport/lwm2m/server/LwM2mServerListener.java | 2 +- .../server/transport/lwm2m/server/LwM2mSessionMsgListener.java | 2 +- .../transport/lwm2m/server/LwM2mTransportCoapResource.java | 2 +- .../server/transport/lwm2m/server/LwM2mTransportContext.java | 2 +- .../transport/lwm2m/server/LwM2mTransportServerHelper.java | 2 +- .../transport/lwm2m/server/LwM2mVersionedModelProvider.java | 2 +- .../transport/lwm2m/server/adaptors/LwM2MJsonAdaptor.java | 2 +- .../transport/lwm2m/server/adaptors/LwM2MTransportAdaptor.java | 2 +- .../lwm2m/server/attributes/DefaultLwM2MAttributesService.java | 2 +- .../lwm2m/server/attributes/LwM2MAttributesService.java | 2 +- .../transport/lwm2m/server/client/LwM2MAuthException.java | 2 +- .../server/transport/lwm2m/server/client/LwM2MClientState.java | 2 +- .../lwm2m/server/client/LwM2MClientStateException.java | 2 +- .../server/transport/lwm2m/server/client/LwM2mClient.java | 2 +- .../transport/lwm2m/server/client/LwM2mClientContext.java | 2 +- .../transport/lwm2m/server/client/LwM2mClientContextImpl.java | 2 +- .../server/transport/lwm2m/server/client/ModelObject.java | 2 +- .../transport/lwm2m/server/client/ResourceUpdateResult.java | 2 +- .../server/transport/lwm2m/server/client/ResourceValue.java | 2 +- .../transport/lwm2m/server/client/ResultsAddKeyValueProto.java | 2 +- .../lwm2m/server/common/LwM2MExecutorAwareService.java | 2 +- .../lwm2m/server/downlink/AbstractTbLwM2MRequestCallback.java | 2 +- .../downlink/AbstractTbLwM2MTargetedDownlinkRequest.java | 2 +- .../lwm2m/server/downlink/DefaultLwM2mDownlinkMsgHandler.java | 2 +- .../lwm2m/server/downlink/DownlinkRequestCallback.java | 2 +- .../transport/lwm2m/server/downlink/HasContentFormat.java | 2 +- .../server/transport/lwm2m/server/downlink/HasVersionedId.java | 2 +- .../transport/lwm2m/server/downlink/HasVersionedIds.java | 2 +- .../lwm2m/server/downlink/LwM2mDownlinkMsgHandler.java | 2 +- .../lwm2m/server/downlink/TbLwM2MCancelAllObserveCallback.java | 2 +- .../lwm2m/server/downlink/TbLwM2MCancelAllRequest.java | 2 +- .../lwm2m/server/downlink/TbLwM2MCancelObserveCallback.java | 2 +- .../lwm2m/server/downlink/TbLwM2MCancelObserveRequest.java | 2 +- .../transport/lwm2m/server/downlink/TbLwM2MCreateRequest.java | 2 +- .../lwm2m/server/downlink/TbLwM2MCreateResponseCallback.java | 2 +- .../transport/lwm2m/server/downlink/TbLwM2MDeleteCallback.java | 2 +- .../transport/lwm2m/server/downlink/TbLwM2MDeleteRequest.java | 2 +- .../lwm2m/server/downlink/TbLwM2MDiscoverAllRequest.java | 2 +- .../lwm2m/server/downlink/TbLwM2MDiscoverCallback.java | 2 +- .../lwm2m/server/downlink/TbLwM2MDiscoverRequest.java | 2 +- .../lwm2m/server/downlink/TbLwM2MDownlinkRequest.java | 2 +- .../lwm2m/server/downlink/TbLwM2MExecuteCallback.java | 2 +- .../transport/lwm2m/server/downlink/TbLwM2MExecuteRequest.java | 2 +- .../transport/lwm2m/server/downlink/TbLwM2MLatchCallback.java | 2 +- .../lwm2m/server/downlink/TbLwM2MObserveAllRequest.java | 2 +- .../lwm2m/server/downlink/TbLwM2MObserveCallback.java | 2 +- .../transport/lwm2m/server/downlink/TbLwM2MObserveRequest.java | 2 +- .../transport/lwm2m/server/downlink/TbLwM2MReadCallback.java | 2 +- .../transport/lwm2m/server/downlink/TbLwM2MReadRequest.java | 2 +- .../lwm2m/server/downlink/TbLwM2MTargetedCallback.java | 2 +- .../lwm2m/server/downlink/TbLwM2MUplinkTargetedCallback.java | 2 +- .../lwm2m/server/downlink/TbLwM2MWriteAttributesCallback.java | 2 +- .../lwm2m/server/downlink/TbLwM2MWriteAttributesRequest.java | 2 +- .../lwm2m/server/downlink/TbLwM2MWriteReplaceRequest.java | 2 +- .../lwm2m/server/downlink/TbLwM2MWriteResponseCallback.java | 2 +- .../lwm2m/server/downlink/TbLwM2MWriteUpdateRequest.java | 2 +- .../AbstractTbLwM2MTargetedDownlinkCompositeRequest.java | 2 +- .../composite/TbLwM2MCancelObserveCompositeCallback.java | 2 +- .../composite/TbLwM2MCancelObserveCompositeRequest.java | 2 +- .../downlink/composite/TbLwM2MObserveCompositeCallback.java | 2 +- .../downlink/composite/TbLwM2MObserveCompositeRequest.java | 2 +- .../downlink/composite/TbLwM2MReadCompositeCallback.java | 2 +- .../server/downlink/composite/TbLwM2MReadCompositeRequest.java | 2 +- .../downlink/composite/TbLwM2MWriteCompositeRequest.java | 2 +- .../composite/TbLwM2MWriteResponseCompositeCallback.java | 2 +- .../lwm2m/server/log/DefaultLwM2MTelemetryLogService.java | 2 +- .../transport/lwm2m/server/log/LwM2MTelemetryLogService.java | 2 +- .../server/transport/lwm2m/server/model/LwM2MModelConfig.java | 2 +- .../transport/lwm2m/server/model/LwM2MModelConfigService.java | 2 +- .../lwm2m/server/model/LwM2MModelConfigServiceImpl.java | 2 +- .../transport/lwm2m/server/model/ParametersAnalyzeResult.java | 2 +- .../lwm2m/server/model/ParametersObserveAnalyzeResult.java | 2 +- .../lwm2m/server/model/ParametersUpdateAnalyzeResult.java | 2 +- .../lwm2m/server/ota/DefaultLwM2MOtaUpdateService.java | 2 +- .../server/transport/lwm2m/server/ota/LwM2MClientOtaInfo.java | 2 +- .../server/transport/lwm2m/server/ota/LwM2MClientOtaState.java | 2 +- .../transport/lwm2m/server/ota/LwM2MOtaUpdateService.java | 2 +- .../lwm2m/server/ota/firmware/FirmwareDeliveryMethod.java | 2 +- .../lwm2m/server/ota/firmware/FirmwareUpdateResult.java | 2 +- .../lwm2m/server/ota/firmware/FirmwareUpdateState.java | 2 +- .../lwm2m/server/ota/firmware/LwM2MClientFwOtaInfo.java | 2 +- .../lwm2m/server/ota/firmware/LwM2MFirmwareUpdateStrategy.java | 2 +- .../lwm2m/server/ota/software/LwM2MClientSwOtaInfo.java | 2 +- .../lwm2m/server/ota/software/LwM2MSoftwareUpdateStrategy.java | 2 +- .../lwm2m/server/ota/software/SoftwareUpdateResult.java | 2 +- .../lwm2m/server/ota/software/SoftwareUpdateState.java | 2 +- .../lwm2m/server/rpc/DefaultLwM2MRpcRequestHandler.java | 2 +- .../transport/lwm2m/server/rpc/LwM2MRpcRequestHandler.java | 2 +- .../transport/lwm2m/server/rpc/LwM2MRpcRequestHeader.java | 2 +- .../transport/lwm2m/server/rpc/LwM2MRpcResponseBody.java | 2 +- .../lwm2m/server/rpc/RpcCancelAllObserveCallback.java | 2 +- .../transport/lwm2m/server/rpc/RpcCancelObserveCallback.java | 2 +- .../server/transport/lwm2m/server/rpc/RpcCreateRequest.java | 2 +- .../transport/lwm2m/server/rpc/RpcCreateResponseCallback.java | 2 +- .../server/transport/lwm2m/server/rpc/RpcDiscoverCallback.java | 2 +- .../lwm2m/server/rpc/RpcDownlinkRequestCallbackProxy.java | 2 +- .../transport/lwm2m/server/rpc/RpcEmptyResponseCallback.java | 2 +- .../server/transport/lwm2m/server/rpc/RpcLinkSetCallback.java | 2 +- .../transport/lwm2m/server/rpc/RpcLwM2MDownlinkCallback.java | 2 +- .../transport/lwm2m/server/rpc/RpcReadResponseCallback.java | 2 +- .../transport/lwm2m/server/rpc/RpcWriteAttributesRequest.java | 2 +- .../transport/lwm2m/server/rpc/RpcWriteReplaceRequest.java | 2 +- .../transport/lwm2m/server/rpc/RpcWriteUpdateRequest.java | 2 +- .../rpc/composite/RpcCancelObserveCompositeCallback.java | 2 +- .../rpc/composite/RpcObserveResponseCompositeCallback.java | 2 +- .../lwm2m/server/rpc/composite/RpcReadCompositeRequest.java | 2 +- .../server/rpc/composite/RpcReadResponseCompositeCallback.java | 2 +- .../lwm2m/server/rpc/composite/RpcWriteCompositeRequest.java | 2 +- .../lwm2m/server/session/DefaultLwM2MSessionManager.java | 2 +- .../transport/lwm2m/server/session/LwM2MSessionManager.java | 2 +- .../lwm2m/server/store/TbDummyLwM2MClientOtaInfoStore.java | 2 +- .../transport/lwm2m/server/store/TbDummyLwM2MClientStore.java | 2 +- .../lwm2m/server/store/TbDummyLwM2MModelConfigStore.java | 2 +- .../transport/lwm2m/server/store/TbEditableSecurityStore.java | 2 +- .../lwm2m/server/store/TbInMemoryRegistrationStore.java | 2 +- .../transport/lwm2m/server/store/TbInMemorySecurityStore.java | 2 +- .../lwm2m/server/store/TbL2M2MDtlsSessionInMemoryStore.java | 2 +- .../lwm2m/server/store/TbLwM2MClientOtaInfoStore.java | 2 +- .../transport/lwm2m/server/store/TbLwM2MClientStore.java | 2 +- .../lwm2m/server/store/TbLwM2MDtlsSessionRedisStore.java | 2 +- .../transport/lwm2m/server/store/TbLwM2MDtlsSessionStore.java | 2 +- .../transport/lwm2m/server/store/TbLwM2MModelConfigStore.java | 2 +- .../lwm2m/server/store/TbLwM2mRedisClientOtaInfoStore.java | 2 +- .../lwm2m/server/store/TbLwM2mRedisRegistrationStore.java | 2 +- .../lwm2m/server/store/TbLwM2mRedisSecurityStore.java | 2 +- .../transport/lwm2m/server/store/TbLwM2mSecurityStore.java | 2 +- .../transport/lwm2m/server/store/TbLwM2mStoreFactory.java | 2 +- .../transport/lwm2m/server/store/TbMainSecurityStore.java | 2 +- .../transport/lwm2m/server/store/TbRedisLwM2MClientStore.java | 2 +- .../lwm2m/server/store/TbRedisLwM2MModelConfigStore.java | 2 +- .../server/transport/lwm2m/server/store/TbSecurityStore.java | 2 +- .../transport/lwm2m/server/store/util/LwM2MClientSerDes.java | 2 +- .../lwm2m/server/uplink/DefaultLwM2mUplinkMsgHandler.java | 2 +- .../server/transport/lwm2m/server/uplink/LwM2mTypeServer.java | 2 +- .../transport/lwm2m/server/uplink/LwM2mUplinkMsgHandler.java | 2 +- .../server/transport/lwm2m/utils/LwM2MTransportUtil.java | 2 +- .../server/transport/lwm2m/utils/LwM2mValueConverterImpl.java | 2 +- .../server/transport/lwm2m/server/client/LwM2mClientTest.java | 2 +- .../lwm2m/server/model/LwM2MModelConfigServiceImplTest.java | 2 +- .../lwm2m/server/store/util/LwM2MClientSerDesTest.java | 2 +- common/transport/mqtt/pom.xml | 2 +- .../transport/mqtt/DefaultTransportMBeanConfiguration.java | 2 +- .../org/thingsboard/server/transport/mqtt/HashMapObserver.java | 2 +- .../server/transport/mqtt/HashMapObserverMBean.java | 2 +- .../server/transport/mqtt/MqttSslHandlerProvider.java | 2 +- .../server/transport/mqtt/MqttTransportContext.java | 2 +- .../server/transport/mqtt/MqttTransportHandler.java | 2 +- .../server/transport/mqtt/MqttTransportServerInitializer.java | 2 +- .../server/transport/mqtt/MqttTransportService.java | 2 +- .../server/transport/mqtt/TbMqttSslTransportComponent.java | 2 +- .../server/transport/mqtt/TbMqttTransportComponent.java | 2 +- .../java/org/thingsboard/server/transport/mqtt/TopicType.java | 2 +- .../transport/mqtt/adaptors/BackwardCompatibilityAdaptor.java | 2 +- .../server/transport/mqtt/adaptors/JsonMqttAdaptor.java | 2 +- .../server/transport/mqtt/adaptors/MqttTransportAdaptor.java | 2 +- .../server/transport/mqtt/adaptors/ProtoMqttAdaptor.java | 2 +- .../server/transport/mqtt/gateway/GatewayMetricsService.java | 2 +- .../transport/mqtt/gateway/metrics/GatewayMetricsState.java | 2 +- .../server/transport/mqtt/limits/GatewaySessionLimits.java | 2 +- .../org/thingsboard/server/transport/mqtt/limits/IpFilter.java | 2 +- .../server/transport/mqtt/limits/ProxyIpFilter.java | 2 +- .../server/transport/mqtt/limits/SessionLimits.java | 2 +- .../mqtt/session/AbstractGatewayDeviceSessionContext.java | 2 +- .../transport/mqtt/session/AbstractGatewaySessionHandler.java | 2 +- .../server/transport/mqtt/session/DeviceSessionCtx.java | 2 +- .../transport/mqtt/session/GatewayDeviceSessionContext.java | 2 +- .../server/transport/mqtt/session/GatewaySessionHandler.java | 2 +- .../transport/mqtt/session/MqttDeviceAwareSessionContext.java | 2 +- .../server/transport/mqtt/session/MqttTopicMatcher.java | 2 +- .../transport/mqtt/session/SparkplugDeviceSessionContext.java | 2 +- .../transport/mqtt/session/SparkplugNodeSessionHandler.java | 2 +- .../server/transport/mqtt/util/AlwaysTrueTopicFilter.java | 2 +- .../server/transport/mqtt/util/EqualsTopicFilter.java | 2 +- .../server/transport/mqtt/util/MqttTopicFilter.java | 2 +- .../server/transport/mqtt/util/MqttTopicFilterFactory.java | 2 +- .../server/transport/mqtt/util/RegexTopicFilter.java | 2 +- .../server/transport/mqtt/util/ReturnCodeResolver.java | 2 +- .../server/transport/mqtt/util/sparkplug/DeviceDescriptor.java | 2 +- .../transport/mqtt/util/sparkplug/EdgeNodeDescriptor.java | 2 +- .../server/transport/mqtt/util/sparkplug/MetricDataType.java | 2 +- .../mqtt/util/sparkplug/SparkplugConnectionState.java | 2 +- .../transport/mqtt/util/sparkplug/SparkplugDescriptor.java | 2 +- .../transport/mqtt/util/sparkplug/SparkplugMessageType.java | 2 +- .../transport/mqtt/util/sparkplug/SparkplugMetricUtil.java | 2 +- .../mqtt/util/sparkplug/SparkplugRpcRequestHeader.java | 2 +- .../mqtt/util/sparkplug/SparkplugRpcResponseBody.java | 2 +- .../server/transport/mqtt/util/sparkplug/SparkplugTopic.java | 2 +- .../transport/mqtt/util/sparkplug/SparkplugTopicService.java | 2 +- .../server/transport/mqtt/util/sparkplug/SpecVersion.java | 2 +- common/transport/mqtt/src/main/proto/sparkplug.proto | 2 +- .../server/transport/mqtt/MqttTransportHandlerTest.java | 2 +- .../transport/mqtt/session/GatewaySessionHandlerTest.java | 2 +- .../server/transport/mqtt/util/MqttTopicFilterFactoryTest.java | 2 +- common/transport/pom.xml | 2 +- common/transport/snmp/pom.xml | 2 +- .../server/transport/snmp/SnmpTransportContext.java | 2 +- .../transport/snmp/event/ServiceListChangedEventListener.java | 2 +- .../transport/snmp/event/SnmpTransportListChangedEvent.java | 2 +- .../snmp/event/SnmpTransportListChangedEventListener.java | 2 +- .../thingsboard/server/transport/snmp/service/PduService.java | 2 +- .../transport/snmp/service/ProtoTransportEntityService.java | 2 +- .../server/transport/snmp/service/SnmpAuthService.java | 2 +- .../transport/snmp/service/SnmpTransportBalancingService.java | 2 +- .../server/transport/snmp/service/SnmpTransportService.java | 2 +- .../server/transport/snmp/session/DeviceSessionContext.java | 2 +- .../server/transport/snmp/session/ScheduledTask.java | 2 +- .../server/transport/snmp/SnmpDeviceSimulatorV2.java | 2 +- .../server/transport/snmp/SnmpDeviceSimulatorV3.java | 2 +- .../java/org/thingsboard/server/transport/snmp/SnmpTestV2.java | 2 +- .../java/org/thingsboard/server/transport/snmp/SnmpTestV3.java | 2 +- common/transport/transport-api/pom.xml | 2 +- .../server/common/transport/DeviceDeletedEvent.java | 2 +- .../server/common/transport/DeviceProfileUpdatedEvent.java | 2 +- .../server/common/transport/DeviceUpdatedEvent.java | 2 +- .../server/common/transport/SessionMsgListener.java | 2 +- .../thingsboard/server/common/transport/TransportAdaptor.java | 2 +- .../thingsboard/server/common/transport/TransportContext.java | 2 +- .../server/common/transport/TransportDeviceProfileCache.java | 2 +- .../server/common/transport/TransportResourceCache.java | 2 +- .../thingsboard/server/common/transport/TransportService.java | 2 +- .../server/common/transport/TransportServiceCallback.java | 2 +- .../server/common/transport/TransportTenantProfileCache.java | 2 +- .../common/transport/activity/AbstractActivityManager.java | 2 +- .../server/common/transport/activity/ActivityManager.java | 2 +- .../common/transport/activity/ActivityReportCallback.java | 2 +- .../server/common/transport/activity/ActivityState.java | 2 +- .../common/transport/activity/strategy/ActivityStrategy.java | 2 +- .../transport/activity/strategy/ActivityStrategyType.java | 2 +- .../transport/activity/strategy/AllEventsActivityStrategy.java | 2 +- .../activity/strategy/FirstAndLastEventActivityStrategy.java | 2 +- .../activity/strategy/FirstEventActivityStrategy.java | 2 +- .../transport/activity/strategy/LastEventActivityStrategy.java | 2 +- .../server/common/transport/auth/DeviceAuthResult.java | 2 +- .../server/common/transport/auth/DeviceAuthService.java | 2 +- .../server/common/transport/auth/DeviceProfileAware.java | 2 +- .../transport/auth/GetOrCreateDeviceFromGatewayResponse.java | 2 +- .../server/common/transport/auth/SessionInfoCreator.java | 2 +- .../server/common/transport/auth/TransportDeviceInfo.java | 2 +- .../transport/auth/ValidateDeviceCredentialsResponse.java | 2 +- .../common/transport/config/ssl/AbstractSslCredentials.java | 2 +- .../common/transport/config/ssl/KeystoreSslCredentials.java | 2 +- .../server/common/transport/config/ssl/PemSslCredentials.java | 2 +- .../server/common/transport/config/ssl/SslCredentials.java | 2 +- .../common/transport/config/ssl/SslCredentialsConfig.java | 2 +- .../server/common/transport/config/ssl/SslCredentialsType.java | 2 +- .../config/ssl/SslCredentialsWebServerCustomizer.java | 2 +- .../common/transport/limits/DefaultEntityLimitsCache.java | 2 +- .../transport/limits/DefaultTransportRateLimitService.java | 2 +- .../common/transport/limits/DummyTransportRateLimit.java | 2 +- .../server/common/transport/limits/EntityLimitKey.java | 2 +- .../server/common/transport/limits/EntityLimitsCache.java | 2 +- .../common/transport/limits/EntityTransportRateLimits.java | 2 +- .../common/transport/limits/InetAddressRateLimitStats.java | 2 +- .../common/transport/limits/SimpleTransportRateLimit.java | 2 +- .../server/common/transport/limits/TransportLimitsType.java | 2 +- .../server/common/transport/limits/TransportRateLimit.java | 2 +- .../common/transport/limits/TransportRateLimitService.java | 2 +- .../common/transport/profile/TenantProfileUpdateResult.java | 2 +- .../transport/service/DefaultTransportDeviceProfileCache.java | 2 +- .../transport/service/DefaultTransportResourceCache.java | 2 +- .../common/transport/service/DefaultTransportService.java | 2 +- .../transport/service/DefaultTransportTenantProfileCache.java | 2 +- .../server/common/transport/service/RpcRequestMetadata.java | 2 +- .../server/common/transport/service/SessionMetaData.java | 2 +- .../common/transport/service/ToRuleEngineMsgEncoder.java | 2 +- .../transport/service/ToTransportMsgResponseDecoder.java | 2 +- .../common/transport/service/TransportActivityManager.java | 2 +- .../common/transport/service/TransportApiRequestEncoder.java | 2 +- .../common/transport/service/TransportApiResponseDecoder.java | 2 +- .../transport/service/TransportQueueRoutingInfoService.java | 2 +- .../transport/service/TransportTenantRoutingInfoService.java | 2 +- .../common/transport/session/DeviceAwareSessionContext.java | 2 +- .../server/common/transport/session/SessionContext.java | 2 +- .../thingsboard/server/common/transport/util/JsonUtils.java | 2 +- .../org/thingsboard/server/common/transport/util/SslUtil.java | 2 +- .../transport/activity/strategy/ActivityStrategyTypeTest.java | 2 +- .../activity/strategy/AllEventsActivityStrategyTest.java | 2 +- .../strategy/FirstAndLastEventActivityStrategyTest.java | 2 +- .../activity/strategy/FirstEventActivityStrategyTest.java | 2 +- .../activity/strategy/LastEventActivityStrategyTest.java | 2 +- .../common/transport/service/TransportActivityManagerTest.java | 2 +- common/util/pom.xml | 2 +- .../org/thingsboard/common/util/AbstractListeningExecutor.java | 2 +- .../main/java/org/thingsboard/common/util/AzureIotHubUtil.java | 2 +- .../src/main/java/org/thingsboard/common/util/CachedValue.java | 2 +- .../main/java/org/thingsboard/common/util/DebugModeUtil.java | 2 +- .../java/org/thingsboard/common/util/DeduplicationUtil.java | 2 +- .../main/java/org/thingsboard/common/util/DonAsynchron.java | 2 +- .../main/java/org/thingsboard/common/util/ExceptionUtil.java | 2 +- .../java/org/thingsboard/common/util/ExecutorProvider.java | 2 +- .../org/thingsboard/common/util/ExpressionFunctionsUtil.java | 2 +- .../src/main/java/org/thingsboard/common/util/JacksonUtil.java | 2 +- .../main/java/org/thingsboard/common/util/JsonSchemaUtils.java | 2 +- .../util/src/main/java/org/thingsboard/common/util/KvUtil.java | 2 +- .../org/thingsboard/common/util/LinkedHashMapRemoveEldest.java | 2 +- .../java/org/thingsboard/common/util/ListeningExecutor.java | 2 +- .../java/org/thingsboard/common/util/NoOpFutureCallback.java | 2 +- .../main/java/org/thingsboard/common/util/RecoveryAware.java | 2 +- .../src/main/java/org/thingsboard/common/util/RegexUtils.java | 2 +- .../src/main/java/org/thingsboard/common/util/SetCache.java | 2 +- .../src/main/java/org/thingsboard/common/util/SslUtil.java | 2 +- .../src/main/java/org/thingsboard/common/util/SystemUtil.java | 2 +- .../src/main/java/org/thingsboard/common/util/TbBytePool.java | 2 +- .../src/main/java/org/thingsboard/common/util/TbStopWatch.java | 2 +- .../main/java/org/thingsboard/common/util/TbStringPool.java | 2 +- .../java/org/thingsboard/common/util/ThingsBoardExecutors.java | 2 +- .../common/util/ThingsBoardForkJoinWorkerThreadFactory.java | 2 +- .../common/util/ThingsBoardScheduledThreadPoolExecutor.java | 2 +- .../org/thingsboard/common/util/ThingsBoardThreadFactory.java | 2 +- .../main/java/org/thingsboard/common/util/geo/Coordinates.java | 2 +- .../src/main/java/org/thingsboard/common/util/geo/GeoUtil.java | 2 +- .../main/java/org/thingsboard/common/util/geo/Perimeter.java | 2 +- .../java/org/thingsboard/common/util/geo/PerimeterType.java | 2 +- .../main/java/org/thingsboard/common/util/geo/RangeUnit.java | 2 +- .../java/org/thingsboard/common/util/ExceptionUtilTest.java | 2 +- .../test/java/org/thingsboard/common/util/JacksonUtilTest.java | 2 +- .../thingsboard/common/util/LinkedHashMapRemoveEldestTest.java | 2 +- .../util/ThingsBoardScheduledThreadPoolExecutorTest.java | 2 +- common/version-control/pom.xml | 2 +- .../server/service/sync/vc/ClusterVersionControlService.java | 2 +- .../service/sync/vc/DefaultClusterVersionControlService.java | 2 +- .../server/service/sync/vc/DefaultGitRepositoryService.java | 2 +- .../org/thingsboard/server/service/sync/vc/GitRepository.java | 2 +- .../server/service/sync/vc/GitRepositoryService.java | 2 +- .../org/thingsboard/server/service/sync/vc/PendingCommit.java | 2 +- .../server/service/sync/vc/VersionControlRequestCtx.java | 2 +- dao/pom.xml | 2 +- .../server/dao/AbstractVersionedInsertRepository.java | 2 +- dao/src/main/java/org/thingsboard/server/dao/Dao.java | 2 +- dao/src/main/java/org/thingsboard/server/dao/DaoUtil.java | 2 +- .../java/org/thingsboard/server/dao/ExportableEntityDao.java | 2 +- .../org/thingsboard/server/dao/ExportableEntityRepository.java | 2 +- .../java/org/thingsboard/server/dao/ImageContainerDao.java | 2 +- .../java/org/thingsboard/server/dao/ResourceContainerDao.java | 2 +- .../main/java/org/thingsboard/server/dao/TenantEntityDao.java | 2 +- .../org/thingsboard/server/dao/TenantEntityWithDataDao.java | 2 +- .../thingsboard/server/dao/ThingsboardPostgreSQLDialect.java | 2 +- .../org/thingsboard/server/dao/ai/AiModelCacheEvictEvent.java | 2 +- .../java/org/thingsboard/server/dao/ai/AiModelCacheKey.java | 2 +- .../org/thingsboard/server/dao/ai/AiModelCaffeineCache.java | 2 +- .../main/java/org/thingsboard/server/dao/ai/AiModelDao.java | 2 +- .../java/org/thingsboard/server/dao/ai/AiModelRedisCache.java | 2 +- .../java/org/thingsboard/server/dao/ai/AiModelServiceImpl.java | 2 +- .../java/org/thingsboard/server/dao/alarm/AlarmCommentDao.java | 2 +- .../main/java/org/thingsboard/server/dao/alarm/AlarmDao.java | 2 +- .../server/dao/alarm/AlarmTypesCacheEvictEvent.java | 2 +- .../thingsboard/server/dao/alarm/AlarmTypesCaffeineCache.java | 2 +- .../org/thingsboard/server/dao/alarm/AlarmTypesRedisCache.java | 2 +- .../thingsboard/server/dao/alarm/BaseAlarmCommentService.java | 2 +- .../org/thingsboard/server/dao/alarm/BaseAlarmService.java | 2 +- .../java/org/thingsboard/server/dao/aspect/DbCallStats.java | 2 +- .../org/thingsboard/server/dao/aspect/DbCallStatsSnapshot.java | 2 +- .../org/thingsboard/server/dao/aspect/MethodCallStats.java | 2 +- .../thingsboard/server/dao/aspect/MethodCallStatsSnapshot.java | 2 +- .../org/thingsboard/server/dao/aspect/SqlDaoCallsAspect.java | 2 +- .../org/thingsboard/server/dao/asset/AssetCacheEvictEvent.java | 2 +- .../java/org/thingsboard/server/dao/asset/AssetCacheKey.java | 2 +- .../org/thingsboard/server/dao/asset/AssetCaffeineCache.java | 2 +- .../main/java/org/thingsboard/server/dao/asset/AssetDao.java | 2 +- .../org/thingsboard/server/dao/asset/AssetProfileCacheKey.java | 2 +- .../server/dao/asset/AssetProfileCaffeineCache.java | 2 +- .../java/org/thingsboard/server/dao/asset/AssetProfileDao.java | 2 +- .../thingsboard/server/dao/asset/AssetProfileEvictEvent.java | 2 +- .../thingsboard/server/dao/asset/AssetProfileRedisCache.java | 2 +- .../thingsboard/server/dao/asset/AssetProfileServiceImpl.java | 2 +- .../java/org/thingsboard/server/dao/asset/AssetRedisCache.java | 2 +- .../java/org/thingsboard/server/dao/asset/AssetTypeFilter.java | 2 +- .../org/thingsboard/server/dao/asset/BaseAssetService.java | 2 +- .../thingsboard/server/dao/attributes/AttributeCacheKey.java | 2 +- .../server/dao/attributes/AttributeCaffeineCache.java | 2 +- .../thingsboard/server/dao/attributes/AttributeRedisCache.java | 2 +- .../org/thingsboard/server/dao/attributes/AttributeUtils.java | 2 +- .../org/thingsboard/server/dao/attributes/AttributesDao.java | 2 +- .../server/dao/attributes/BaseAttributesService.java | 2 +- .../server/dao/attributes/CachedAttributesService.java | 2 +- .../java/org/thingsboard/server/dao/audit/AuditLogDao.java | 2 +- .../org/thingsboard/server/dao/audit/AuditLogLevelFilter.java | 2 +- .../org/thingsboard/server/dao/audit/AuditLogLevelMask.java | 2 +- .../thingsboard/server/dao/audit/AuditLogLevelProperties.java | 2 +- .../org/thingsboard/server/dao/audit/AuditLogServiceImpl.java | 2 +- .../thingsboard/server/dao/audit/DummyAuditLogServiceImpl.java | 2 +- .../org/thingsboard/server/dao/audit/sink/AuditLogSink.java | 2 +- .../thingsboard/server/dao/audit/sink/DummyAuditLogSink.java | 2 +- .../server/dao/audit/sink/ElasticsearchAuditLogSink.java | 2 +- .../org/thingsboard/server/dao/cache/CacheExecutorService.java | 2 +- .../thingsboard/server/dao/cf/BaseCalculatedFieldService.java | 2 +- .../java/org/thingsboard/server/dao/cf/CalculatedFieldDao.java | 2 +- .../org/thingsboard/server/dao/cf/CalculatedFieldLinkDao.java | 2 +- .../server/dao/component/BaseComponentDescriptorService.java | 2 +- .../server/dao/component/ComponentDescriptorDao.java | 2 +- .../server/dao/config/DedicatedEventsDataSource.java | 2 +- .../server/dao/config/DedicatedEventsJpaDaoConfig.java | 2 +- .../org/thingsboard/server/dao/config/DefaultDataSource.java | 2 +- .../server/dao/config/DefaultDedicatedJpaDaoConfig.java | 2 +- .../java/org/thingsboard/server/dao/config/JpaDaoConfig.java | 2 +- .../java/org/thingsboard/server/dao/config/SqlTsDaoConfig.java | 2 +- .../thingsboard/server/dao/config/SqlTsLatestDaoConfig.java | 2 +- .../org/thingsboard/server/dao/config/TimescaleDaoConfig.java | 2 +- .../server/dao/config/TimescaleTsLatestDaoConfig.java | 2 +- .../java/org/thingsboard/server/dao/customer/CustomerDao.java | 2 +- .../thingsboard/server/dao/customer/CustomerServiceImpl.java | 2 +- .../org/thingsboard/server/dao/dashboard/DashboardDao.java | 2 +- .../org/thingsboard/server/dao/dashboard/DashboardInfoDao.java | 2 +- .../thingsboard/server/dao/dashboard/DashboardServiceImpl.java | 2 +- .../server/dao/dashboard/DashboardTitleEvictEvent.java | 2 +- .../server/dao/dashboard/DashboardTitlesCaffeineCache.java | 2 +- .../server/dao/dashboard/DashboardTitlesRedisCache.java | 2 +- .../java/org/thingsboard/server/dao/device/ClaimDataInfo.java | 2 +- .../server/dao/device/DeviceConnectivityConfiguration.java | 2 +- .../thingsboard/server/dao/device/DeviceConnectivityInfo.java | 2 +- .../server/dao/device/DeviceConnectivityServiceImpl.java | 2 +- .../server/dao/device/DeviceCredentialsCaffeineCache.java | 2 +- .../thingsboard/server/dao/device/DeviceCredentialsDao.java | 2 +- .../server/dao/device/DeviceCredentialsEvictEvent.java | 2 +- .../server/dao/device/DeviceCredentialsRedisCache.java | 2 +- .../server/dao/device/DeviceCredentialsServiceImpl.java | 2 +- .../main/java/org/thingsboard/server/dao/device/DeviceDao.java | 2 +- .../thingsboard/server/dao/device/DeviceProfileCacheKey.java | 2 +- .../server/dao/device/DeviceProfileCaffeineCache.java | 2 +- .../org/thingsboard/server/dao/device/DeviceProfileDao.java | 2 +- .../thingsboard/server/dao/device/DeviceProfileEvictEvent.java | 2 +- .../thingsboard/server/dao/device/DeviceProfileRedisCache.java | 2 +- .../server/dao/device/DeviceProfileServiceImpl.java | 2 +- .../org/thingsboard/server/dao/device/DeviceServiceImpl.java | 2 +- .../thingsboard/server/dao/dictionary/KeyDictionaryDao.java | 2 +- .../main/java/org/thingsboard/server/dao/domain/DomainDao.java | 2 +- .../org/thingsboard/server/dao/domain/DomainServiceImpl.java | 2 +- .../org/thingsboard/server/dao/edge/BaseEdgeEventService.java | 2 +- .../thingsboard/server/dao/edge/BaseRelatedEdgesService.java | 2 +- .../server/dao/edge/DefaultEdgeSynchronizationManager.java | 2 +- dao/src/main/java/org/thingsboard/server/dao/edge/EdgeDao.java | 2 +- .../java/org/thingsboard/server/dao/edge/EdgeEventDao.java | 2 +- .../java/org/thingsboard/server/dao/edge/EdgeServiceImpl.java | 2 +- .../thingsboard/server/dao/edge/EdgeSessionCaffeineCache.java | 2 +- .../org/thingsboard/server/dao/edge/EdgeSessionRedisCache.java | 2 +- .../thingsboard/server/dao/edge/PostgresEdgeEventService.java | 2 +- .../server/dao/edge/stats/EdgeStatsCounterService.java | 2 +- .../org/thingsboard/server/dao/edge/stats/EdgeStatsKey.java | 2 +- .../org/thingsboard/server/dao/edge/stats/MsgCounters.java | 2 +- .../server/dao/entity/AbstractCachedEntityService.java | 2 +- .../thingsboard/server/dao/entity/AbstractCachedService.java | 2 +- .../thingsboard/server/dao/entity/AbstractEntityService.java | 2 +- .../thingsboard/server/dao/entity/BaseEntityCountService.java | 2 +- .../org/thingsboard/server/dao/entity/BaseEntityService.java | 2 +- .../server/dao/entity/CachedVersionedEntityService.java | 2 +- .../server/dao/entity/DefaultEntityServiceRegistry.java | 2 +- .../server/dao/entity/EntityCountCacheEvictEvent.java | 2 +- .../org/thingsboard/server/dao/entity/EntityCountCacheKey.java | 2 +- .../org/thingsboard/server/dao/entity/EntityDaoRegistry.java | 2 +- .../java/org/thingsboard/server/dao/entity/EntityQueryDao.java | 2 +- .../server/dao/entity/count/EntityCountCaffeineCache.java | 2 +- .../server/dao/entity/count/EntityCountRedisCache.java | 2 +- .../thingsboard/server/dao/entityview/EntityViewCacheKey.java | 2 +- .../server/dao/entityview/EntityViewCacheValue.java | 2 +- .../server/dao/entityview/EntityViewCaffeineCache.java | 2 +- .../org/thingsboard/server/dao/entityview/EntityViewDao.java | 2 +- .../server/dao/entityview/EntityViewEvictEvent.java | 2 +- .../server/dao/entityview/EntityViewRedisCache.java | 2 +- .../server/dao/entityview/EntityViewServiceImpl.java | 2 +- .../org/thingsboard/server/dao/event/BaseEventService.java | 2 +- .../main/java/org/thingsboard/server/dao/event/EventDao.java | 2 +- .../org/thingsboard/server/dao/eventsourcing/ActionCause.java | 2 +- .../server/dao/eventsourcing/ActionEntityEvent.java | 2 +- .../server/dao/eventsourcing/DeleteEntityEvent.java | 2 +- .../server/dao/eventsourcing/RelationActionEvent.java | 2 +- .../thingsboard/server/dao/eventsourcing/SaveEntityEvent.java | 2 +- .../thingsboard/server/dao/exception/BufferLimitException.java | 2 +- .../server/dao/exception/DataValidationException.java | 2 +- .../thingsboard/server/dao/exception/DatabaseException.java | 2 +- .../dao/exception/DeviceCredentialsValidationException.java | 2 +- .../server/dao/exception/EntitiesLimitException.java | 2 +- .../server/dao/exception/IncorrectParameterException.java | 2 +- .../org/thingsboard/server/dao/housekeeper/CleanUpService.java | 2 +- .../java/org/thingsboard/server/dao/job/DefaultJobService.java | 2 +- dao/src/main/java/org/thingsboard/server/dao/job/JobDao.java | 2 +- .../org/thingsboard/server/dao/mobile/MobileAppBundleDao.java | 2 +- .../server/dao/mobile/MobileAppBundleServiceImpl.java | 2 +- .../java/org/thingsboard/server/dao/mobile/MobileAppDao.java | 2 +- .../thingsboard/server/dao/mobile/MobileAppServiceImpl.java | 2 +- .../thingsboard/server/dao/mobile/QrCodeSettingService.java | 2 +- .../server/dao/mobile/QrCodeSettingServiceImpl.java | 2 +- .../server/dao/mobile/QrCodeSettingsCaffeineCache.java | 2 +- .../org/thingsboard/server/dao/mobile/QrCodeSettingsDao.java | 2 +- .../server/dao/mobile/QrCodeSettingsEvictEvent.java | 2 +- .../server/dao/mobile/QrCodeSettingsRedisCache.java | 2 +- .../main/java/org/thingsboard/server/dao/model/BaseEntity.java | 2 +- .../java/org/thingsboard/server/dao/model/BaseSqlEntity.java | 2 +- .../org/thingsboard/server/dao/model/BaseVersionedEntity.java | 2 +- .../java/org/thingsboard/server/dao/model/ModelConstants.java | 2 +- dao/src/main/java/org/thingsboard/server/dao/model/ToData.java | 2 +- .../server/dao/model/sql/AbstractAlarmCommentEntity.java | 2 +- .../thingsboard/server/dao/model/sql/AbstractAlarmEntity.java | 2 +- .../thingsboard/server/dao/model/sql/AbstractAssetEntity.java | 2 +- .../thingsboard/server/dao/model/sql/AbstractDeviceEntity.java | 2 +- .../thingsboard/server/dao/model/sql/AbstractEdgeEntity.java | 2 +- .../server/dao/model/sql/AbstractEntityViewEntity.java | 2 +- .../server/dao/model/sql/AbstractMobileAppBundleEntity.java | 2 +- .../thingsboard/server/dao/model/sql/AbstractTenantEntity.java | 2 +- .../thingsboard/server/dao/model/sql/AbstractTsKvEntity.java | 2 +- .../server/dao/model/sql/AbstractWidgetTypeEntity.java | 2 +- .../thingsboard/server/dao/model/sql/AdminSettingsEntity.java | 2 +- .../org/thingsboard/server/dao/model/sql/AiModelEntity.java | 2 +- .../thingsboard/server/dao/model/sql/AlarmCommentEntity.java | 2 +- .../server/dao/model/sql/AlarmCommentInfoEntity.java | 2 +- .../java/org/thingsboard/server/dao/model/sql/AlarmEntity.java | 2 +- .../org/thingsboard/server/dao/model/sql/AlarmInfoEntity.java | 2 +- .../thingsboard/server/dao/model/sql/ApiUsageStateEntity.java | 2 +- .../java/org/thingsboard/server/dao/model/sql/AssetEntity.java | 2 +- .../org/thingsboard/server/dao/model/sql/AssetInfoEntity.java | 2 +- .../thingsboard/server/dao/model/sql/AssetProfileEntity.java | 2 +- .../server/dao/model/sql/AttributeKvCompositeKey.java | 2 +- .../thingsboard/server/dao/model/sql/AttributeKvEntity.java | 2 +- .../org/thingsboard/server/dao/model/sql/AuditLogEntity.java | 2 +- .../server/dao/model/sql/CalculatedFieldDebugEventEntity.java | 2 +- .../server/dao/model/sql/CalculatedFieldEntity.java | 2 +- .../server/dao/model/sql/CalculatedFieldLinkEntity.java | 2 +- .../server/dao/model/sql/ComponentDescriptorEntity.java | 2 +- .../org/thingsboard/server/dao/model/sql/CustomerEntity.java | 2 +- .../org/thingsboard/server/dao/model/sql/DashboardEntity.java | 2 +- .../thingsboard/server/dao/model/sql/DashboardInfoEntity.java | 2 +- .../server/dao/model/sql/DeviceCredentialsEntity.java | 2 +- .../org/thingsboard/server/dao/model/sql/DeviceEntity.java | 2 +- .../org/thingsboard/server/dao/model/sql/DeviceInfoEntity.java | 2 +- .../thingsboard/server/dao/model/sql/DeviceProfileEntity.java | 2 +- .../org/thingsboard/server/dao/model/sql/DomainEntity.java | 2 +- .../server/dao/model/sql/DomainOauth2ClientCompositeKey.java | 2 +- .../server/dao/model/sql/DomainOauth2ClientEntity.java | 2 +- .../java/org/thingsboard/server/dao/model/sql/EdgeEntity.java | 2 +- .../org/thingsboard/server/dao/model/sql/EdgeEventEntity.java | 2 +- .../org/thingsboard/server/dao/model/sql/EdgeInfoEntity.java | 2 +- .../server/dao/model/sql/EntityAlarmCompositeKey.java | 2 +- .../thingsboard/server/dao/model/sql/EntityAlarmEntity.java | 2 +- .../org/thingsboard/server/dao/model/sql/EntityViewEntity.java | 2 +- .../thingsboard/server/dao/model/sql/EntityViewInfoEntity.java | 2 +- .../org/thingsboard/server/dao/model/sql/ErrorEventEntity.java | 2 +- .../java/org/thingsboard/server/dao/model/sql/EventEntity.java | 2 +- .../java/org/thingsboard/server/dao/model/sql/JobEntity.java | 2 +- .../thingsboard/server/dao/model/sql/LifecycleEventEntity.java | 2 +- .../server/dao/model/sql/MobileAppBundleEntity.java | 2 +- .../server/dao/model/sql/MobileAppBundleInfoEntity.java | 2 +- .../dao/model/sql/MobileAppBundleOauth2ClientEntity.java | 2 +- .../org/thingsboard/server/dao/model/sql/MobileAppEntity.java | 2 +- .../dao/model/sql/MobileAppOauth2ClientCompositeKey.java | 2 +- .../thingsboard/server/dao/model/sql/NotificationEntity.java | 2 +- .../server/dao/model/sql/NotificationRequestEntity.java | 2 +- .../server/dao/model/sql/NotificationRequestInfoEntity.java | 2 +- .../server/dao/model/sql/NotificationRuleEntity.java | 2 +- .../server/dao/model/sql/NotificationRuleInfoEntity.java | 2 +- .../server/dao/model/sql/NotificationTargetEntity.java | 2 +- .../server/dao/model/sql/NotificationTemplateEntity.java | 2 +- .../thingsboard/server/dao/model/sql/OAuth2ClientEntity.java | 2 +- .../server/dao/model/sql/OAuth2ClientInfoEntity.java | 2 +- .../dao/model/sql/OAuth2ClientRegistrationTemplateEntity.java | 2 +- .../org/thingsboard/server/dao/model/sql/OtaPackageEntity.java | 2 +- .../thingsboard/server/dao/model/sql/OtaPackageInfoEntity.java | 2 +- .../thingsboard/server/dao/model/sql/QrCodeSettingsEntity.java | 2 +- .../java/org/thingsboard/server/dao/model/sql/QueueEntity.java | 2 +- .../org/thingsboard/server/dao/model/sql/QueueStatsEntity.java | 2 +- .../thingsboard/server/dao/model/sql/RelationCompositeKey.java | 2 +- .../org/thingsboard/server/dao/model/sql/RelationEntity.java | 2 +- .../java/org/thingsboard/server/dao/model/sql/RpcEntity.java | 2 +- .../server/dao/model/sql/RuleChainDebugEventEntity.java | 2 +- .../org/thingsboard/server/dao/model/sql/RuleChainEntity.java | 2 +- .../server/dao/model/sql/RuleNodeDebugEventEntity.java | 2 +- .../org/thingsboard/server/dao/model/sql/RuleNodeEntity.java | 2 +- .../thingsboard/server/dao/model/sql/RuleNodeStateEntity.java | 2 +- .../server/dao/model/sql/StatisticsEventEntity.java | 2 +- .../org/thingsboard/server/dao/model/sql/TbResourceEntity.java | 2 +- .../thingsboard/server/dao/model/sql/TbResourceInfoEntity.java | 2 +- .../org/thingsboard/server/dao/model/sql/TenantEntity.java | 2 +- .../org/thingsboard/server/dao/model/sql/TenantInfoEntity.java | 2 +- .../thingsboard/server/dao/model/sql/TenantProfileEntity.java | 2 +- .../server/dao/model/sql/UserAuthSettingsEntity.java | 2 +- .../server/dao/model/sql/UserCredentialsEntity.java | 2 +- .../java/org/thingsboard/server/dao/model/sql/UserEntity.java | 2 +- .../thingsboard/server/dao/model/sql/UserSettingsEntity.java | 2 +- .../server/dao/model/sql/WidgetTypeDetailsEntity.java | 2 +- .../org/thingsboard/server/dao/model/sql/WidgetTypeEntity.java | 2 +- .../server/dao/model/sql/WidgetTypeIdFqnEntity.java | 2 +- .../thingsboard/server/dao/model/sql/WidgetTypeInfoEntity.java | 2 +- .../thingsboard/server/dao/model/sql/WidgetsBundleEntity.java | 2 +- .../server/dao/model/sql/WidgetsBundleWidgetCompositeKey.java | 2 +- .../server/dao/model/sql/WidgetsBundleWidgetEntity.java | 2 +- .../dao/model/sqlts/dictionary/KeyDictionaryCompositeKey.java | 2 +- .../server/dao/model/sqlts/dictionary/KeyDictionaryEntry.java | 2 +- .../server/dao/model/sqlts/latest/TsKvLatestCompositeKey.java | 2 +- .../server/dao/model/sqlts/latest/TsKvLatestEntity.java | 2 +- .../model/sqlts/timescale/ts/TimescaleTsKvCompositeKey.java | 2 +- .../dao/model/sqlts/timescale/ts/TimescaleTsKvEntity.java | 2 +- .../server/dao/model/sqlts/ts/TsKvCompositeKey.java | 2 +- .../org/thingsboard/server/dao/model/sqlts/ts/TsKvEntity.java | 2 +- .../server/dao/nosql/CassandraAbstractAsyncDao.java | 2 +- .../org/thingsboard/server/dao/nosql/CassandraAbstractDao.java | 2 +- .../server/dao/nosql/CassandraBufferedRateReadExecutor.java | 2 +- .../server/dao/nosql/CassandraBufferedRateWriteExecutor.java | 2 +- .../dao/notification/DefaultNotificationRequestService.java | 2 +- .../dao/notification/DefaultNotificationRuleService.java | 2 +- .../server/dao/notification/DefaultNotificationService.java | 2 +- .../dao/notification/DefaultNotificationSettingsService.java | 2 +- .../dao/notification/DefaultNotificationTargetService.java | 2 +- .../dao/notification/DefaultNotificationTemplateService.java | 2 +- .../server/dao/notification/DefaultNotifications.java | 2 +- .../thingsboard/server/dao/notification/NotificationDao.java | 2 +- .../server/dao/notification/NotificationRequestDao.java | 2 +- .../server/dao/notification/NotificationRuleDao.java | 2 +- .../server/dao/notification/NotificationTargetDao.java | 2 +- .../server/dao/notification/NotificationTemplateDao.java | 2 +- .../server/dao/oauth2/HybridClientRegistrationRepository.java | 2 +- .../org/thingsboard/server/dao/oauth2/OAuth2ClientDao.java | 2 +- .../server/dao/oauth2/OAuth2ClientRegistrationTemplateDao.java | 2 +- .../thingsboard/server/dao/oauth2/OAuth2ClientServiceImpl.java | 2 +- .../server/dao/oauth2/OAuth2ConfigTemplateServiceImpl.java | 2 +- .../org/thingsboard/server/dao/oauth2/OAuth2Configuration.java | 2 +- .../org/thingsboard/server/dao/oauth2/OAuth2ParamsDao.java | 2 +- .../java/org/thingsboard/server/dao/oauth2/OAuth2Utils.java | 2 +- .../org/thingsboard/server/dao/ota/BaseOtaPackageService.java | 2 +- .../thingsboard/server/dao/ota/OtaPackageCacheEvictEvent.java | 2 +- .../org/thingsboard/server/dao/ota/OtaPackageCacheKey.java | 2 +- .../thingsboard/server/dao/ota/OtaPackageCaffeineCache.java | 2 +- .../java/org/thingsboard/server/dao/ota/OtaPackageDao.java | 2 +- .../java/org/thingsboard/server/dao/ota/OtaPackageInfoDao.java | 2 +- .../org/thingsboard/server/dao/ota/OtaPackageRedisCache.java | 2 +- .../org/thingsboard/server/dao/queue/BaseQueueService.java | 2 +- .../thingsboard/server/dao/queue/BaseQueueStatsService.java | 2 +- .../main/java/org/thingsboard/server/dao/queue/QueueDao.java | 2 +- .../java/org/thingsboard/server/dao/queue/QueueStatsDao.java | 2 +- .../thingsboard/server/dao/relation/BaseRelationService.java | 2 +- .../thingsboard/server/dao/relation/EntityRelationEvent.java | 2 +- .../org/thingsboard/server/dao/relation/RelationCacheKey.java | 2 +- .../thingsboard/server/dao/relation/RelationCacheValue.java | 2 +- .../thingsboard/server/dao/relation/RelationCaffeineCache.java | 2 +- .../java/org/thingsboard/server/dao/relation/RelationDao.java | 2 +- .../thingsboard/server/dao/relation/RelationRedisCache.java | 2 +- .../org/thingsboard/server/dao/resource/BaseImageService.java | 2 +- .../thingsboard/server/dao/resource/BaseResourceService.java | 2 +- .../server/dao/resource/DefaultTbResourceDataCache.java | 2 +- .../org/thingsboard/server/dao/resource/ImageCacheKey.java | 2 +- .../org/thingsboard/server/dao/resource/TbResourceDao.java | 2 +- .../org/thingsboard/server/dao/resource/TbResourceInfoDao.java | 2 +- .../java/org/thingsboard/server/dao/rpc/BaseRpcService.java | 2 +- dao/src/main/java/org/thingsboard/server/dao/rpc/RpcDao.java | 2 +- .../org/thingsboard/server/dao/rule/BaseRuleChainService.java | 2 +- .../thingsboard/server/dao/rule/BaseRuleNodeStateService.java | 2 +- .../java/org/thingsboard/server/dao/rule/RuleChainDao.java | 2 +- .../main/java/org/thingsboard/server/dao/rule/RuleNodeDao.java | 2 +- .../java/org/thingsboard/server/dao/rule/RuleNodeStateDao.java | 2 +- .../thingsboard/server/dao/service/ConstraintValidator.java | 2 +- .../java/org/thingsboard/server/dao/service/DataValidator.java | 2 +- .../thingsboard/server/dao/service/JsonSchemaValidator.java | 2 +- .../thingsboard/server/dao/service/NoNullCharValidator.java | 2 +- .../org/thingsboard/server/dao/service/NoXssValidator.java | 2 +- .../org/thingsboard/server/dao/service/PaginatedRemover.java | 2 +- .../org/thingsboard/server/dao/service/RateLimitValidator.java | 2 +- .../thingsboard/server/dao/service/StringLengthValidator.java | 2 +- .../thingsboard/server/dao/service/TimePaginatedRemover.java | 2 +- .../java/org/thingsboard/server/dao/service/Validator.java | 2 +- .../dao/service/validator/AbstractHasOtaPackageValidator.java | 2 +- .../dao/service/validator/AdminSettingsDataValidator.java | 2 +- .../server/dao/service/validator/AiModelDataValidator.java | 2 +- .../dao/service/validator/AlarmCommentDataValidator.java | 2 +- .../server/dao/service/validator/AlarmDataValidator.java | 2 +- .../server/dao/service/validator/ApiUsageDataValidator.java | 2 +- .../server/dao/service/validator/AssetDataValidator.java | 2 +- .../dao/service/validator/AssetProfileDataValidator.java | 2 +- .../server/dao/service/validator/AuditLogDataValidator.java | 2 +- .../dao/service/validator/BaseOtaPackageDataValidator.java | 2 +- .../dao/service/validator/CalculatedFieldDataValidator.java | 2 +- .../service/validator/CalculatedFieldLinkDataValidator.java | 2 +- .../validator/ClientRegistrationTemplateDataValidator.java | 2 +- .../service/validator/ComponentDescriptorDataValidator.java | 2 +- .../server/dao/service/validator/CustomerDataValidator.java | 2 +- .../server/dao/service/validator/DashboardDataValidator.java | 2 +- .../dao/service/validator/DeviceCredentialsDataValidator.java | 2 +- .../server/dao/service/validator/DeviceDataValidator.java | 2 +- .../dao/service/validator/DeviceProfileDataValidator.java | 2 +- .../server/dao/service/validator/DomainDataValidator.java | 2 +- .../server/dao/service/validator/EdgeDataValidator.java | 2 +- .../server/dao/service/validator/EdgeEventDataValidator.java | 2 +- .../server/dao/service/validator/EntityViewDataValidator.java | 2 +- .../server/dao/service/validator/EventDataValidator.java | 2 +- .../dao/service/validator/MobileAppBundleDataValidator.java | 2 +- .../server/dao/service/validator/MobileAppDataValidator.java | 2 +- .../dao/service/validator/Oauth2ClientDataValidator.java | 2 +- .../server/dao/service/validator/OtaPackageDataValidator.java | 2 +- .../dao/service/validator/OtaPackageInfoDataValidator.java | 2 +- .../dao/service/validator/QrCodeSettingsDataValidator.java | 2 +- .../server/dao/service/validator/QueueStatsDataValidator.java | 2 +- .../server/dao/service/validator/QueueValidator.java | 2 +- .../server/dao/service/validator/ResourceDataValidator.java | 2 +- .../server/dao/service/validator/RuleChainDataValidator.java | 2 +- .../server/dao/service/validator/TenantDataValidator.java | 2 +- .../dao/service/validator/TenantProfileDataValidator.java | 2 +- .../dao/service/validator/UserCredentialsDataValidator.java | 2 +- .../server/dao/service/validator/UserDataValidator.java | 2 +- .../server/dao/service/validator/WidgetTypeDataValidator.java | 2 +- .../dao/service/validator/WidgetsBundleDataValidator.java | 2 +- .../org/thingsboard/server/dao/settings/AdminSettingsDao.java | 2 +- .../server/dao/settings/AdminSettingsServiceImpl.java | 2 +- .../server/dao/settings/DefaultSecuritySettingsService.java | 2 +- .../server/dao/settings/SecuritySettingsService.java | 2 +- .../main/java/org/thingsboard/server/dao/sql/IdGenerator.java | 2 +- .../java/org/thingsboard/server/dao/sql/JpaAbstractDao.java | 2 +- .../server/dao/sql/JpaAbstractDaoListeningExecutorService.java | 2 +- .../org/thingsboard/server/dao/sql/JpaExecutorService.java | 2 +- .../thingsboard/server/dao/sql/JpaPartitionedAbstractDao.java | 2 +- .../dao/sql/NamedParameterJdbcTemplateConfiguration.java | 2 +- .../server/dao/sql/ScheduledLogExecutorComponent.java | 2 +- .../org/thingsboard/server/dao/sql/TbSqlBlockingQueue.java | 2 +- .../thingsboard/server/dao/sql/TbSqlBlockingQueueParams.java | 2 +- .../thingsboard/server/dao/sql/TbSqlBlockingQueueWrapper.java | 2 +- .../main/java/org/thingsboard/server/dao/sql/TbSqlQueue.java | 2 +- .../java/org/thingsboard/server/dao/sql/TbSqlQueueElement.java | 2 +- .../org/thingsboard/server/dao/sql/ai/AiModelRepository.java | 2 +- .../java/org/thingsboard/server/dao/sql/ai/JpaAiModelDao.java | 2 +- .../server/dao/sql/alarm/AlarmCommentRepository.java | 2 +- .../org/thingsboard/server/dao/sql/alarm/AlarmRepository.java | 2 +- .../server/dao/sql/alarm/EntityAlarmRepository.java | 2 +- .../thingsboard/server/dao/sql/alarm/JpaAlarmCommentDao.java | 2 +- .../java/org/thingsboard/server/dao/sql/alarm/JpaAlarmDao.java | 2 +- .../thingsboard/server/dao/sql/alarm/JpaEntityAlarmDao.java | 2 +- .../server/dao/sql/asset/AssetProfileRepository.java | 2 +- .../org/thingsboard/server/dao/sql/asset/AssetRepository.java | 2 +- .../java/org/thingsboard/server/dao/sql/asset/JpaAssetDao.java | 2 +- .../thingsboard/server/dao/sql/asset/JpaAssetProfileDao.java | 2 +- .../server/dao/sql/attributes/AttributeKvInsertRepository.java | 2 +- .../server/dao/sql/attributes/AttributeKvRepository.java | 2 +- .../thingsboard/server/dao/sql/attributes/JpaAttributeDao.java | 2 +- .../thingsboard/server/dao/sql/audit/AuditLogRepository.java | 2 +- .../server/dao/sql/audit/DedicatedJpaAuditLogDao.java | 2 +- .../org/thingsboard/server/dao/sql/audit/JpaAuditLogDao.java | 2 +- .../server/dao/sql/cf/CalculatedFieldLinkRepository.java | 2 +- .../server/dao/sql/cf/CalculatedFieldRepository.java | 2 +- .../dao/sql/cf/DefaultNativeCalculatedFieldRepository.java | 2 +- .../thingsboard/server/dao/sql/cf/JpaCalculatedFieldDao.java | 2 +- .../server/dao/sql/cf/JpaCalculatedFieldLinkDao.java | 2 +- .../server/dao/sql/cf/NativeCalculatedFieldRepository.java | 2 +- .../component/AbstractComponentDescriptorInsertRepository.java | 2 +- .../dao/sql/component/ComponentDescriptorInsertRepository.java | 2 +- .../dao/sql/component/ComponentDescriptorRepository.java | 2 +- .../dao/sql/component/JpaBaseComponentDescriptorDao.java | 2 +- .../sql/component/SqlComponentDescriptorInsertRepository.java | 2 +- .../server/dao/sql/customer/CustomerRepository.java | 2 +- .../thingsboard/server/dao/sql/customer/JpaCustomerDao.java | 2 +- .../server/dao/sql/dashboard/DashboardInfoRepository.java | 2 +- .../server/dao/sql/dashboard/DashboardRepository.java | 2 +- .../thingsboard/server/dao/sql/dashboard/JpaDashboardDao.java | 2 +- .../server/dao/sql/dashboard/JpaDashboardInfoDao.java | 2 +- .../server/dao/sql/device/AbstractNativeRepository.java | 2 +- .../server/dao/sql/device/DefaultNativeAssetRepository.java | 2 +- .../server/dao/sql/device/DefaultNativeDeviceRepository.java | 2 +- .../server/dao/sql/device/DeviceCredentialsRepository.java | 2 +- .../server/dao/sql/device/DeviceProfileRepository.java | 2 +- .../thingsboard/server/dao/sql/device/DeviceRepository.java | 2 +- .../server/dao/sql/device/JpaDeviceCredentialsDao.java | 2 +- .../org/thingsboard/server/dao/sql/device/JpaDeviceDao.java | 2 +- .../thingsboard/server/dao/sql/device/JpaDeviceProfileDao.java | 2 +- .../server/dao/sql/device/NativeAssetRepository.java | 2 +- .../server/dao/sql/device/NativeDeviceRepository.java | 2 +- .../server/dao/sql/device/NativeProfileEntityRepository.java | 2 +- .../server/dao/sql/domain/DomainOauth2ClientRepository.java | 2 +- .../thingsboard/server/dao/sql/domain/DomainRepository.java | 2 +- .../org/thingsboard/server/dao/sql/domain/JpaDomainDao.java | 2 +- .../server/dao/sql/edge/EdgeEventInsertRepository.java | 2 +- .../thingsboard/server/dao/sql/edge/EdgeEventRepository.java | 2 +- .../org/thingsboard/server/dao/sql/edge/EdgeRepository.java | 2 +- .../thingsboard/server/dao/sql/edge/JpaBaseEdgeEventDao.java | 2 +- .../java/org/thingsboard/server/dao/sql/edge/JpaEdgeDao.java | 2 +- .../server/dao/sql/entityview/EntityViewRepository.java | 2 +- .../server/dao/sql/entityview/JpaEntityViewDao.java | 2 +- .../dao/sql/event/CalculatedFieldDebugEventRepository.java | 2 +- .../server/dao/sql/event/DedicatedEventInsertRepository.java | 2 +- .../thingsboard/server/dao/sql/event/DedicatedJpaEventDao.java | 2 +- .../thingsboard/server/dao/sql/event/ErrorEventRepository.java | 2 +- .../server/dao/sql/event/EventInsertRepository.java | 2 +- .../server/dao/sql/event/EventPartitionConfiguration.java | 2 +- .../org/thingsboard/server/dao/sql/event/EventRepository.java | 2 +- .../org/thingsboard/server/dao/sql/event/JpaBaseEventDao.java | 2 +- .../server/dao/sql/event/LifecycleEventRepository.java | 2 +- .../server/dao/sql/event/RuleChainDebugEventRepository.java | 2 +- .../server/dao/sql/event/RuleNodeDebugEventRepository.java | 2 +- .../server/dao/sql/event/StatisticsEventRepository.java | 2 +- .../java/org/thingsboard/server/dao/sql/job/JobRepository.java | 2 +- .../java/org/thingsboard/server/dao/sql/job/JpaJobDao.java | 2 +- .../server/dao/sql/mobile/JpaMobileAppBundleDao.java | 2 +- .../org/thingsboard/server/dao/sql/mobile/JpaMobileAppDao.java | 2 +- .../server/dao/sql/mobile/JpaQrCodeSettingsDao.java | 2 +- .../dao/sql/mobile/MobileAppBundleOauth2ClientRepository.java | 2 +- .../server/dao/sql/mobile/MobileAppBundleRepository.java | 2 +- .../thingsboard/server/dao/sql/mobile/MobileAppRepository.java | 2 +- .../server/dao/sql/mobile/QrCodeSettingsRepository.java | 2 +- .../server/dao/sql/notification/JpaNotificationDao.java | 2 +- .../server/dao/sql/notification/JpaNotificationRequestDao.java | 2 +- .../server/dao/sql/notification/JpaNotificationRuleDao.java | 2 +- .../server/dao/sql/notification/JpaNotificationTargetDao.java | 2 +- .../dao/sql/notification/JpaNotificationTemplateDao.java | 2 +- .../server/dao/sql/notification/NotificationRepository.java | 2 +- .../dao/sql/notification/NotificationRequestRepository.java | 2 +- .../dao/sql/notification/NotificationRuleRepository.java | 2 +- .../dao/sql/notification/NotificationTargetRepository.java | 2 +- .../dao/sql/notification/NotificationTemplateRepository.java | 2 +- .../thingsboard/server/dao/sql/oauth2/JpaOAuth2ClientDao.java | 2 +- .../dao/sql/oauth2/JpaOAuth2ClientRegistrationTemplateDao.java | 2 +- .../sql/oauth2/OAuth2ClientRegistrationTemplateRepository.java | 2 +- .../server/dao/sql/oauth2/OAuth2ClientRepository.java | 2 +- .../org/thingsboard/server/dao/sql/ota/JpaOtaPackageDao.java | 2 +- .../thingsboard/server/dao/sql/ota/JpaOtaPackageInfoDao.java | 2 +- .../server/dao/sql/ota/OtaPackageInfoRepository.java | 2 +- .../thingsboard/server/dao/sql/ota/OtaPackageRepository.java | 2 +- .../org/thingsboard/server/dao/sql/query/AlarmDataAdapter.java | 2 +- .../thingsboard/server/dao/sql/query/AlarmQueryRepository.java | 2 +- .../server/dao/sql/query/DefaultAlarmQueryRepository.java | 2 +- .../server/dao/sql/query/DefaultEntityQueryRepository.java | 2 +- .../server/dao/sql/query/DefaultQueryLogComponent.java | 2 +- .../thingsboard/server/dao/sql/query/DummyEdqsApiService.java | 2 +- .../org/thingsboard/server/dao/sql/query/DummyEdqsService.java | 2 +- .../thingsboard/server/dao/sql/query/EntityDataAdapter.java | 2 +- .../org/thingsboard/server/dao/sql/query/EntityKeyMapping.java | 2 +- .../server/dao/sql/query/EntityQueryRepository.java | 2 +- .../thingsboard/server/dao/sql/query/JpaEntityQueryDao.java | 2 +- .../thingsboard/server/dao/sql/query/QueryLogComponent.java | 2 +- .../org/thingsboard/server/dao/sql/query/SqlQueryContext.java | 2 +- .../java/org/thingsboard/server/dao/sql/queue/JpaQueueDao.java | 2 +- .../org/thingsboard/server/dao/sql/queue/JpaQueueStatsDao.java | 2 +- .../org/thingsboard/server/dao/sql/queue/QueueRepository.java | 2 +- .../thingsboard/server/dao/sql/queue/QueueStatsRepository.java | 2 +- .../thingsboard/server/dao/sql/relation/JpaRelationDao.java | 2 +- .../dao/sql/relation/JpaRelationQueryExecutorService.java | 2 +- .../server/dao/sql/relation/RelationInsertRepository.java | 2 +- .../server/dao/sql/relation/RelationRepository.java | 2 +- .../server/dao/sql/relation/SqlRelationInsertRepository.java | 2 +- .../thingsboard/server/dao/sql/resource/JpaTbResourceDao.java | 2 +- .../server/dao/sql/resource/JpaTbResourceInfoDao.java | 2 +- .../server/dao/sql/resource/TbResourceInfoRepository.java | 2 +- .../server/dao/sql/resource/TbResourceRepository.java | 2 +- .../java/org/thingsboard/server/dao/sql/rpc/JpaRpcDao.java | 2 +- .../java/org/thingsboard/server/dao/sql/rpc/RpcRepository.java | 2 +- .../org/thingsboard/server/dao/sql/rule/JpaRuleChainDao.java | 2 +- .../org/thingsboard/server/dao/sql/rule/JpaRuleNodeDao.java | 2 +- .../thingsboard/server/dao/sql/rule/JpaRuleNodeStateDao.java | 2 +- .../thingsboard/server/dao/sql/rule/RuleChainRepository.java | 2 +- .../thingsboard/server/dao/sql/rule/RuleNodeRepository.java | 2 +- .../server/dao/sql/rule/RuleNodeStateRepository.java | 2 +- .../server/dao/sql/settings/AdminSettingsRepository.java | 2 +- .../server/dao/sql/settings/JpaAdminSettingsDao.java | 2 +- .../org/thingsboard/server/dao/sql/tenant/JpaTenantDao.java | 2 +- .../thingsboard/server/dao/sql/tenant/JpaTenantProfileDao.java | 2 +- .../server/dao/sql/tenant/TenantProfileRepository.java | 2 +- .../thingsboard/server/dao/sql/tenant/TenantRepository.java | 2 +- .../server/dao/sql/usagerecord/ApiUsageStateRepository.java | 2 +- .../server/dao/sql/usagerecord/JpaApiUsageStateDao.java | 2 +- .../server/dao/sql/user/JpaUserAuthSettingsDao.java | 2 +- .../thingsboard/server/dao/sql/user/JpaUserCredentialsDao.java | 2 +- .../java/org/thingsboard/server/dao/sql/user/JpaUserDao.java | 2 +- .../thingsboard/server/dao/sql/user/JpaUserSettingsDao.java | 2 +- .../server/dao/sql/user/UserAuthSettingsRepository.java | 2 +- .../server/dao/sql/user/UserCredentialsRepository.java | 2 +- .../org/thingsboard/server/dao/sql/user/UserRepository.java | 2 +- .../server/dao/sql/user/UserSettingsRepository.java | 2 +- .../thingsboard/server/dao/sql/widget/JpaWidgetTypeDao.java | 2 +- .../thingsboard/server/dao/sql/widget/JpaWidgetsBundleDao.java | 2 +- .../server/dao/sql/widget/WidgetTypeInfoRepository.java | 2 +- .../server/dao/sql/widget/WidgetTypeRepository.java | 2 +- .../server/dao/sql/widget/WidgetsBundleRepository.java | 2 +- .../server/dao/sql/widget/WidgetsBundleWidgetRepository.java | 2 +- .../dao/sqlts/AbstractChunkedAggregationTimeseriesDao.java | 2 +- .../thingsboard/server/dao/sqlts/AbstractSqlTimeseriesDao.java | 2 +- .../thingsboard/server/dao/sqlts/AggregationTimeseriesDao.java | 2 +- .../server/dao/sqlts/BaseAbstractSqlTimeseriesDao.java | 2 +- .../server/dao/sqlts/CachedRedisSqlTimeseriesLatestDao.java | 2 +- .../java/org/thingsboard/server/dao/sqlts/EntityContainer.java | 2 +- .../thingsboard/server/dao/sqlts/SqlTimeseriesLatestDao.java | 2 +- dao/src/main/java/org/thingsboard/server/dao/sqlts/TsKey.java | 2 +- .../server/dao/sqlts/dictionary/JpaKeyDictionaryDao.java | 2 +- .../server/dao/sqlts/dictionary/KeyDictionaryRepository.java | 2 +- .../server/dao/sqlts/insert/AbstractInsertRepository.java | 2 +- .../server/dao/sqlts/insert/InsertTsRepository.java | 2 +- .../dao/sqlts/insert/latest/InsertLatestTsRepository.java | 2 +- .../sqlts/insert/latest/sql/SqlLatestInsertTsRepository.java | 2 +- .../insert/sql/DedicatedEventsSqlPartitioningRepository.java | 2 +- .../server/dao/sqlts/insert/sql/SqlInsertTsRepository.java | 2 +- .../server/dao/sqlts/insert/sql/SqlPartitioningRepository.java | 2 +- .../sqlts/insert/timescale/TimescaleInsertTsRepository.java | 2 +- .../server/dao/sqlts/latest/SearchTsKvLatestRepository.java | 2 +- .../server/dao/sqlts/latest/TsKvLatestRepository.java | 2 +- .../thingsboard/server/dao/sqlts/sql/JpaSqlTimeseriesDao.java | 2 +- .../server/dao/sqlts/timescale/AggregationRepository.java | 2 +- .../server/dao/sqlts/timescale/TimescaleTimeseriesDao.java | 2 +- .../server/dao/sqlts/timescale/TsKvTimescaleRepository.java | 2 +- .../org/thingsboard/server/dao/sqlts/ts/TsKvRepository.java | 2 +- .../server/dao/tenant/DefaultTbTenantProfileCache.java | 2 +- .../org/thingsboard/server/dao/tenant/TenantCaffeineCache.java | 2 +- .../main/java/org/thingsboard/server/dao/tenant/TenantDao.java | 2 +- .../org/thingsboard/server/dao/tenant/TenantEvictEvent.java | 2 +- .../server/dao/tenant/TenantExistsCaffeineCache.java | 2 +- .../thingsboard/server/dao/tenant/TenantExistsRedisCache.java | 2 +- .../thingsboard/server/dao/tenant/TenantProfileCacheKey.java | 2 +- .../server/dao/tenant/TenantProfileCaffeineCache.java | 2 +- .../org/thingsboard/server/dao/tenant/TenantProfileDao.java | 2 +- .../thingsboard/server/dao/tenant/TenantProfileEvictEvent.java | 2 +- .../thingsboard/server/dao/tenant/TenantProfileRedisCache.java | 2 +- .../server/dao/tenant/TenantProfileServiceImpl.java | 2 +- .../org/thingsboard/server/dao/tenant/TenantRedisCache.java | 2 +- .../org/thingsboard/server/dao/tenant/TenantServiceImpl.java | 2 +- .../dao/timeseries/AbstractCassandraBaseTimeseriesDao.java | 2 +- .../server/dao/timeseries/AggregatePartitionsFunction.java | 2 +- .../server/dao/timeseries/BaseTimeseriesService.java | 2 +- .../server/dao/timeseries/CassandraBaseTimeseriesDao.java | 2 +- .../dao/timeseries/CassandraBaseTimeseriesLatestDao.java | 2 +- .../server/dao/timeseries/CassandraPartitionCacheKey.java | 2 +- .../server/dao/timeseries/CassandraTsPartitionsCache.java | 2 +- .../server/dao/timeseries/NoSqlTsPartitionDate.java | 2 +- .../org/thingsboard/server/dao/timeseries/QueryCursor.java | 2 +- .../server/dao/timeseries/SimpleListenableFuture.java | 2 +- .../org/thingsboard/server/dao/timeseries/SqlPartition.java | 2 +- .../thingsboard/server/dao/timeseries/SqlTsPartitionDate.java | 2 +- .../org/thingsboard/server/dao/timeseries/TimeseriesDao.java | 2 +- .../thingsboard/server/dao/timeseries/TimeseriesLatestDao.java | 2 +- .../server/dao/timeseries/TsInsertExecutorType.java | 2 +- .../org/thingsboard/server/dao/timeseries/TsKvQueryCursor.java | 2 +- .../thingsboard/server/dao/timeseries/TsLatestCacheKey.java | 2 +- .../thingsboard/server/dao/timeseries/TsLatestRedisCache.java | 2 +- .../server/dao/trendz/DefaultTrendzSettingsService.java | 2 +- .../thingsboard/server/dao/usage/BasicUsageInfoService.java | 2 +- .../thingsboard/server/dao/usagerecord/ApiUsageStateDao.java | 2 +- .../server/dao/usagerecord/ApiUsageStateServiceImpl.java | 2 +- .../server/dao/usagerecord/DefaultApiLimitService.java | 2 +- .../org/thingsboard/server/dao/user/UserAuthSettingsDao.java | 2 +- .../org/thingsboard/server/dao/user/UserCredentialsDao.java | 2 +- dao/src/main/java/org/thingsboard/server/dao/user/UserDao.java | 2 +- .../java/org/thingsboard/server/dao/user/UserServiceImpl.java | 2 +- .../thingsboard/server/dao/user/UserSettingsCaffeineCache.java | 2 +- .../java/org/thingsboard/server/dao/user/UserSettingsDao.java | 2 +- .../thingsboard/server/dao/user/UserSettingsEvictEvent.java | 2 +- .../thingsboard/server/dao/user/UserSettingsRedisCache.java | 2 +- .../thingsboard/server/dao/user/UserSettingsServiceImpl.java | 2 +- .../server/dao/util/AbstractBufferedRateExecutor.java | 2 +- .../java/org/thingsboard/server/dao/util/AsyncRateLimiter.java | 2 +- .../java/org/thingsboard/server/dao/util/AsyncTaskContext.java | 2 +- .../org/thingsboard/server/dao/util/BufferedRateExecutor.java | 2 +- .../thingsboard/server/dao/util/BufferedRateExecutorStats.java | 2 +- .../thingsboard/server/dao/util/BufferedRateExecutorType.java | 2 +- .../thingsboard/server/dao/util/DeviceConnectivityUtil.java | 2 +- .../main/java/org/thingsboard/server/dao/util/ImageUtils.java | 2 +- dao/src/main/java/org/thingsboard/server/dao/util/KvUtils.java | 2 +- .../main/java/org/thingsboard/server/dao/util/TimeUtils.java | 2 +- .../org/thingsboard/server/dao/util/mapping/JsonConverter.java | 2 +- .../java/org/thingsboard/server/dao/widget/WidgetTypeDao.java | 2 +- .../thingsboard/server/dao/widget/WidgetTypeServiceImpl.java | 2 +- .../org/thingsboard/server/dao/widget/WidgetsBundleDao.java | 2 +- .../server/dao/widget/WidgetsBundleServiceImpl.java | 2 +- dao/src/main/resources/cassandra/schema-keyspace.cql | 2 +- dao/src/main/resources/cassandra/schema-ts-latest.cql | 2 +- dao/src/main/resources/cassandra/schema-ts.cql | 2 +- dao/src/main/resources/sql/schema-entities-idx-psql-addon.sql | 2 +- dao/src/main/resources/sql/schema-entities-idx.sql | 2 +- dao/src/main/resources/sql/schema-entities.sql | 2 +- dao/src/main/resources/sql/schema-functions.sql | 2 +- dao/src/main/resources/sql/schema-timescale.sql | 2 +- dao/src/main/resources/sql/schema-ts-latest-psql.sql | 2 +- dao/src/main/resources/sql/schema-ts-psql.sql | 2 +- dao/src/main/resources/sql/schema-views.sql | 2 +- dao/src/main/resources/xss-policy.xml | 2 +- .../org/thingsboard/server/dao/AbstractDaoServiceTest.java | 2 +- .../java/org/thingsboard/server/dao/AbstractJpaDaoTest.java | 2 +- .../org/thingsboard/server/dao/AbstractNoSqlContainer.java | 2 +- .../thingsboard/server/dao/AbstractRedisClusterContainer.java | 2 +- .../org/thingsboard/server/dao/AbstractRedisContainer.java | 2 +- .../org/thingsboard/server/dao/NoSqlDaoServiceTestSuite.java | 2 +- .../java/org/thingsboard/server/dao/PostgreSqlInitializer.java | 2 +- .../org/thingsboard/server/dao/RedisClusterSqlTestSuite.java | 2 +- .../test/java/org/thingsboard/server/dao/RedisJUnit5Test.java | 2 +- .../java/org/thingsboard/server/dao/RedisSqlTestSuite.java | 2 +- .../thingsboard/server/dao/TimescaleDaoServiceTestSuite.java | 2 +- .../org/thingsboard/server/dao/TimescaleSqlInitializer.java | 2 +- .../thingsboard/server/dao/audit/AuditLogServiceImplTest.java | 2 +- .../server/dao/cache/RedisTbTransactionalCacheTest.java | 2 +- .../dao/component/BaseComponentDescriptorServiceTest.java | 2 +- .../server/dao/eventsourcing/DeleteEntityEventTest.java | 2 +- .../server/dao/nosql/CassandraPartitionsCacheTest.java | 2 +- .../thingsboard/server/dao/service/AbstractServiceTest.java | 2 +- .../server/dao/service/AdminSettingsServiceTest.java | 2 +- .../server/dao/service/AlarmCommentServiceTest.java | 2 +- .../org/thingsboard/server/dao/service/AlarmServiceTest.java | 2 +- .../server/dao/service/ApiUsageStateServiceTest.java | 2 +- .../server/dao/service/AssetProfileServiceTest.java | 2 +- .../org/thingsboard/server/dao/service/AssetServiceTest.java | 2 +- .../server/dao/service/CalculatedFieldServiceTest.java | 2 +- .../server/dao/service/ConstraintValidatorTest.java | 2 +- .../thingsboard/server/dao/service/CustomerServiceTest.java | 2 +- .../java/org/thingsboard/server/dao/service/DaoNoSqlTest.java | 2 +- .../java/org/thingsboard/server/dao/service/DaoSqlTest.java | 2 +- .../org/thingsboard/server/dao/service/DaoTimescaleTest.java | 2 +- .../thingsboard/server/dao/service/DashboardServiceTest.java | 2 +- .../org/thingsboard/server/dao/service/DataValidatorTest.java | 2 +- .../server/dao/service/DeviceCredentialsCacheTest.java | 2 +- .../server/dao/service/DeviceCredentialsServiceTest.java | 2 +- .../server/dao/service/DeviceProfileServiceTest.java | 2 +- .../org/thingsboard/server/dao/service/DeviceServiceTest.java | 2 +- .../org/thingsboard/server/dao/service/DomainServiceTest.java | 2 +- .../thingsboard/server/dao/service/EdgeEventServiceTest.java | 2 +- .../org/thingsboard/server/dao/service/EdgeServiceTest.java | 2 +- .../thingsboard/server/dao/service/EntityDaoRegistryTest.java | 2 +- .../server/dao/service/EntityServiceRegistryTest.java | 2 +- .../thingsboard/server/dao/service/MobileAppServiceTest.java | 2 +- .../org/thingsboard/server/dao/service/NoXssValidatorTest.java | 2 +- .../server/dao/service/OAuth2ClientServiceTest.java | 2 +- .../server/dao/service/OAuth2ConfigTemplateServiceTest.java | 2 +- .../thingsboard/server/dao/service/OtaPackageServiceTest.java | 2 +- .../org/thingsboard/server/dao/service/QueueServiceTest.java | 2 +- .../thingsboard/server/dao/service/QueueStatsServiceTest.java | 2 +- .../org/thingsboard/server/dao/service/RelationCacheTest.java | 2 +- .../thingsboard/server/dao/service/RelationServiceTest.java | 2 +- .../thingsboard/server/dao/service/RuleChainServiceTest.java | 2 +- .../server/dao/service/TbCacheSerializationTest.java | 2 +- .../server/dao/service/TenantProfileServiceTest.java | 2 +- .../org/thingsboard/server/dao/service/TenantServiceTest.java | 2 +- .../org/thingsboard/server/dao/service/UserServiceTest.java | 2 +- .../java/org/thingsboard/server/dao/service/ValidatorTest.java | 2 +- .../thingsboard/server/dao/service/WidgetTypeServiceTest.java | 2 +- .../server/dao/service/WidgetsBundleServiceTest.java | 2 +- .../dao/service/attributes/BaseAttributesServiceTest.java | 2 +- .../service/attributes/sql/AttributeCacheServiceSqlTest.java | 2 +- .../dao/service/attributes/sql/AttributesServiceSqlTest.java | 2 +- .../server/dao/service/event/BaseEventServiceTest.java | 2 +- .../server/dao/service/event/sql/EventServiceSqlTest.java | 2 +- .../sql/EventServiceSqlTest_DedicatedEventsDataSource.java | 2 +- .../server/dao/service/install/sql/EntitiesSchemaSqlTest.java | 2 +- .../dao/service/timeseries/BaseTimeseriesServiceTest.java | 2 +- .../nosql/TimeseriesServiceNoSqlSetNullEnabledTest.java | 2 +- .../service/timeseries/nosql/TimeseriesServiceNoSqlTest.java | 2 +- .../timeseries/nosql/TimeseriesServiceTimescaleTest.java | 2 +- .../timeseries/sql/LatestTimeseriesPerformanceTest.java | 2 +- .../dao/service/timeseries/sql/TimeseriesServiceSqlTest.java | 2 +- .../dao/service/validator/AdminSettingsDataValidatorTest.java | 2 +- .../server/dao/service/validator/AlarmDataValidatorTest.java | 2 +- .../server/dao/service/validator/AssetDataValidatorTest.java | 2 +- .../dao/service/validator/AssetProfileDataValidatorTest.java | 2 +- .../dao/service/validator/BaseOtaPackageDataValidatorTest.java | 2 +- .../service/validator/CalculatedFieldDataValidatorTest.java | 2 +- .../validator/CalculatedFieldLinkDataValidatorTest.java | 2 +- .../validator/ComponentDescriptorDataValidatorTest.java | 2 +- .../dao/service/validator/CustomerDataValidatorTest.java | 2 +- .../dao/service/validator/DashboardDataValidatorTest.java | 2 +- .../server/dao/service/validator/DeviceDataValidatorTest.java | 2 +- .../dao/service/validator/DeviceProfileDataValidatorTest.java | 2 +- .../server/dao/service/validator/EdgeDataValidatorTest.java | 2 +- .../dao/service/validator/EntityViewDataValidatorTest.java | 2 +- .../dao/service/validator/ResourceDataValidatorTest.java | 2 +- .../dao/service/validator/RuleChainDataValidatorTest.java | 2 +- .../server/dao/service/validator/TenantDataValidatorTest.java | 2 +- .../dao/service/validator/TenantProfileDataValidatorTest.java | 2 +- .../dao/service/validator/WidgetTypeDataValidatorTest.java | 2 +- .../dao/service/validator/WidgetsBundleDataValidatorTest.java | 2 +- .../java/org/thingsboard/server/dao/sql/JdbcTemplateTest.java | 2 +- .../server/dao/sql/alarm/JpaAlarmCommentDaoTest.java | 2 +- .../org/thingsboard/server/dao/sql/alarm/JpaAlarmDaoTest.java | 2 +- .../org/thingsboard/server/dao/sql/asset/JpaAssetDaoTest.java | 2 +- .../thingsboard/server/dao/sql/audit/JpaAuditLogDaoTest.java | 2 +- .../dao/sql/component/JpaBaseComponentDescriptorDaoTest.java | 2 +- .../server/dao/sql/customer/JpaCustomerDaoTest.java | 2 +- .../server/dao/sql/dashboard/JpaDashboardInfoDaoTest.java | 2 +- .../server/dao/sql/device/JpaDeviceCredentialsDaoTest.java | 2 +- .../thingsboard/server/dao/sql/device/JpaDeviceDaoTest.java | 2 +- .../thingsboard/server/dao/sql/event/JpaBaseEventDaoTest.java | 2 +- .../server/dao/sql/query/DefaultEntityQueryRepositoryTest.java | 2 +- .../server/dao/sql/query/DefaultQueryLogComponentTest.java | 2 +- .../server/dao/sql/query/EntityDataAdapterTest.java | 2 +- .../thingsboard/server/dao/sql/query/EntityKeyMappingTest.java | 2 +- .../java/org/thingsboard/server/dao/sql/rpc/JpaRpcDaoTest.java | 2 +- .../thingsboard/server/dao/sql/rule/JpaRuleNodeDaoTest.java | 2 +- .../thingsboard/server/dao/sql/tenant/JpaTenantDaoTest.java | 2 +- .../server/dao/sql/user/JpaUserCredentialsDaoTest.java | 2 +- .../org/thingsboard/server/dao/sql/user/JpaUserDaoTest.java | 2 +- .../server/dao/sql/user/JpaUserSettingsDaoTest.java | 2 +- .../server/dao/sql/widget/JpaWidgetTypeDaoTest.java | 2 +- .../server/dao/sql/widget/JpaWidgetsBundleDaoTest.java | 2 +- .../dao/sqlts/AbstractChunkedAggregationTimeseriesDaoTest.java | 2 +- .../server/dao/sqlts/SqlTimeseriesLatestDaoTest.java | 2 +- .../server/dao/sqlts/dictionary/KeyDictionaryDaoTest.java | 2 +- ...andraBaseTimeseriesDaoPartitioningDaysAlwaysExistsTest.java | 2 +- ...ndraBaseTimeseriesDaoPartitioningHoursAlwaysExistsTest.java | 2 +- ...aseTimeseriesDaoPartitioningIndefiniteAlwaysExistsTest.java | 2 +- ...raBaseTimeseriesDaoPartitioningMinutesAlwaysExistsTest.java | 2 +- ...draBaseTimeseriesDaoPartitioningMonthsAlwaysExistsTest.java | 2 +- ...ndraBaseTimeseriesDaoPartitioningYearsAlwaysExistsTest.java | 2 +- .../server/dao/timeseries/NoSqlTsPartitionDateTest.java | 2 +- .../server/dao/util/DeviceConnectivityUtilTest.java | 2 +- .../java/org/thingsboard/server/dao/util/TimeUtilsTest.java | 2 +- docker/compose-utils.sh | 2 +- docker/docker-check-log-folders.sh | 2 +- docker/docker-compose.cassandra.volumes.yml | 2 +- docker/docker-compose.confluent.yml | 2 +- docker/docker-compose.edqs.volumes.yml | 2 +- docker/docker-compose.edqs.yml | 2 +- docker/docker-compose.hybrid.yml | 2 +- docker/docker-compose.kafka.yml | 2 +- docker/docker-compose.postgres.volumes.yml | 2 +- docker/docker-compose.postgres.yml | 2 +- docker/docker-compose.prometheus-grafana.yml | 2 +- docker/docker-compose.valkey-cluster.volumes.yml | 2 +- docker/docker-compose.valkey-cluster.yml | 2 +- docker/docker-compose.valkey-sentinel.volumes.yml | 2 +- docker/docker-compose.valkey-sentinel.yml | 2 +- docker/docker-compose.valkey.volumes.yml | 2 +- docker/docker-compose.valkey.yml | 2 +- docker/docker-compose.volumes.yml | 2 +- docker/docker-compose.yml | 2 +- docker/docker-create-log-folders.sh | 2 +- docker/docker-install-tb.sh | 2 +- docker/docker-remove-services.sh | 2 +- docker/docker-start-services.sh | 2 +- docker/docker-stop-services.sh | 2 +- docker/docker-update-service.sh | 2 +- docker/docker-upgrade-tb.sh | 2 +- .../monitoring/grafana/provisioning/dashboards/dashboard.yml | 2 +- .../monitoring/grafana/provisioning/datasources/datasource.yml | 2 +- docker/monitoring/prometheus/prometheus.yml | 2 +- docker/tb-edqs/conf/logback.xml | 2 +- docker/tb-edqs/conf/tb-edqs.conf | 2 +- docker/tb-transports/coap/conf/logback.xml | 2 +- docker/tb-transports/coap/conf/tb-coap-transport.conf | 2 +- docker/tb-transports/http/conf/logback.xml | 2 +- docker/tb-transports/http/conf/tb-http-transport.conf | 2 +- docker/tb-transports/lwm2m/conf/logback.xml | 2 +- docker/tb-transports/lwm2m/conf/tb-lwm2m-transport.conf | 2 +- docker/tb-transports/mqtt/conf/logback.xml | 2 +- docker/tb-transports/mqtt/conf/tb-mqtt-transport.conf | 2 +- docker/tb-transports/snmp/conf/logback.xml | 2 +- docker/tb-transports/snmp/conf/tb-snmp-transport.conf | 2 +- docker/tb-vc-executor/conf/logback.xml | 2 +- docker/tb-vc-executor/conf/tb-vc-executor.conf | 2 +- edqs/pom.xml | 2 +- edqs/src/main/conf/logback.xml | 2 +- edqs/src/main/conf/tb-edqs.conf | 2 +- .../main/java/org/thingsboard/server/edqs/EdqsController.java | 2 +- .../thingsboard/server/edqs/ThingsboardEdqsApplication.java | 2 +- edqs/src/main/resources/edqs.yml | 2 +- edqs/src/main/resources/logback.xml | 2 +- .../java/org/thingsboard/server/edqs/repo/AbstractEDQTest.java | 2 +- .../thingsboard/server/edqs/repo/ApiUsageStateFilterTest.java | 2 +- .../server/edqs/repo/AssetSearchQueryFilterTest.java | 2 +- .../org/thingsboard/server/edqs/repo/AssetTypeFilterTest.java | 2 +- .../server/edqs/repo/DeviceSearchQueryFilterTest.java | 2 +- .../org/thingsboard/server/edqs/repo/DeviceTypeFilterTest.java | 2 +- .../server/edqs/repo/EdgeSearchQueryFilterTest.java | 2 +- .../org/thingsboard/server/edqs/repo/EdgeTypeFilterTest.java | 2 +- .../org/thingsboard/server/edqs/repo/EntityListFilterTest.java | 2 +- .../org/thingsboard/server/edqs/repo/EntityNameFilterTest.java | 2 +- .../org/thingsboard/server/edqs/repo/EntityTypeFilterTest.java | 2 +- .../server/edqs/repo/EntityViewSearchQueryFilterTest.java | 2 +- .../thingsboard/server/edqs/repo/EntityViewTypeFilterTest.java | 2 +- .../thingsboard/server/edqs/repo/RelationsQueryFilterTest.java | 2 +- .../org/thingsboard/server/edqs/repo/RepositoryUtilsTest.java | 2 +- .../thingsboard/server/edqs/repo/SingleEntityFilterTest.java | 2 +- license-header-template.txt | 2 +- monitoring/pom.xml | 2 +- monitoring/src/main/conf/logback.xml | 2 +- monitoring/src/main/conf/tb-monitoring.conf | 2 +- .../monitoring/ThingsboardMonitoringApplication.java | 2 +- .../java/org/thingsboard/monitoring/client/Lwm2mClient.java | 2 +- .../main/java/org/thingsboard/monitoring/client/TbClient.java | 2 +- .../main/java/org/thingsboard/monitoring/client/WsClient.java | 2 +- .../org/thingsboard/monitoring/client/WsClientFactory.java | 2 +- .../org/thingsboard/monitoring/config/MonitoringConfig.java | 2 +- .../org/thingsboard/monitoring/config/MonitoringTarget.java | 2 +- .../config/transport/CoapTransportMonitoringConfig.java | 2 +- .../thingsboard/monitoring/config/transport/DeviceConfig.java | 2 +- .../config/transport/HttpTransportMonitoringConfig.java | 2 +- .../config/transport/Lwm2mTransportMonitoringConfig.java | 2 +- .../config/transport/MqttTransportMonitoringConfig.java | 2 +- .../thingsboard/monitoring/config/transport/TransportInfo.java | 2 +- .../monitoring/config/transport/TransportMonitoringConfig.java | 2 +- .../monitoring/config/transport/TransportMonitoringTarget.java | 2 +- .../thingsboard/monitoring/config/transport/TransportType.java | 2 +- .../main/java/org/thingsboard/monitoring/data/Latencies.java | 2 +- .../src/main/java/org/thingsboard/monitoring/data/Latency.java | 2 +- .../org/thingsboard/monitoring/data/MonitoredServiceKey.java | 2 +- .../thingsboard/monitoring/data/ServiceFailureException.java | 2 +- .../java/org/thingsboard/monitoring/data/cmd/CmdsWrapper.java | 2 +- .../org/thingsboard/monitoring/data/cmd/EntityDataCmd.java | 2 +- .../org/thingsboard/monitoring/data/cmd/EntityDataUpdate.java | 2 +- .../org/thingsboard/monitoring/data/cmd/LatestValueCmd.java | 2 +- .../monitoring/data/notification/HighLatencyNotification.java | 2 +- .../thingsboard/monitoring/data/notification/Notification.java | 2 +- .../data/notification/ServiceFailureNotification.java | 2 +- .../data/notification/ServiceRecoveryNotification.java | 2 +- .../monitoring/notification/NotificationService.java | 2 +- .../monitoring/notification/channels/NotificationChannel.java | 2 +- .../notification/channels/impl/SlackNotificationChannel.java | 2 +- .../org/thingsboard/monitoring/service/BaseHealthChecker.java | 2 +- .../thingsboard/monitoring/service/BaseMonitoringService.java | 2 +- .../monitoring/service/MonitoringEntityService.java | 2 +- .../org/thingsboard/monitoring/service/MonitoringReporter.java | 2 +- .../monitoring/service/transport/TransportHealthChecker.java | 2 +- .../service/transport/TransportsMonitoringService.java | 2 +- .../service/transport/impl/CoapTransportHealthChecker.java | 2 +- .../service/transport/impl/HttpTransportHealthChecker.java | 2 +- .../service/transport/impl/Lwm2mTransportHealthChecker.java | 2 +- .../service/transport/impl/MqttTransportHealthChecker.java | 2 +- .../java/org/thingsboard/monitoring/util/ResourceUtils.java | 2 +- .../main/java/org/thingsboard/monitoring/util/TbStopWatch.java | 2 +- monitoring/src/main/resources/logback.xml | 2 +- monitoring/src/main/resources/lwm2m/models/0.xml | 2 +- monitoring/src/main/resources/lwm2m/models/1.xml | 2 +- monitoring/src/main/resources/lwm2m/models/2.xml | 2 +- monitoring/src/main/resources/tb-monitoring.yml | 2 +- msa/black-box-tests/pom.xml | 2 +- .../org/thingsboard/server/msa/AbstractCoapClientTest.java | 2 +- .../java/org/thingsboard/server/msa/AbstractContainerTest.java | 2 +- .../java/org/thingsboard/server/msa/ContainerTestSuite.java | 2 +- .../java/org/thingsboard/server/msa/DisableUIListeners.java | 2 +- .../java/org/thingsboard/server/msa/DockerComposeExecutor.java | 2 +- .../thingsboard/server/msa/SeleniumRemoteWebDriverTest.java | 2 +- .../src/test/java/org/thingsboard/server/msa/TestListener.java | 2 +- .../test/java/org/thingsboard/server/msa/TestProperties.java | 2 +- .../test/java/org/thingsboard/server/msa/TestRestClient.java | 2 +- .../src/test/java/org/thingsboard/server/msa/TestUtils.java | 2 +- .../org/thingsboard/server/msa/ThingsBoardDbInstaller.java | 2 +- .../src/test/java/org/thingsboard/server/msa/WsClient.java | 2 +- .../org/thingsboard/server/msa/cf/CalculatedFieldTest.java | 2 +- .../thingsboard/server/msa/connectivity/CoapClientTest.java | 2 +- .../thingsboard/server/msa/connectivity/HttpClientTest.java | 2 +- .../thingsboard/server/msa/connectivity/MqttClientTest.java | 2 +- .../server/msa/connectivity/MqttGatewayClientTest.java | 2 +- .../server/msa/connectivity/lwm2m/AbstractLwm2mClientTest.java | 2 +- .../server/msa/connectivity/lwm2m/Lwm2mDevicesForTest.java | 2 +- .../server/msa/connectivity/lwm2m/client/FwLwM2MDevice.java | 2 +- .../server/msa/connectivity/lwm2m/client/LwM2MTestClient.java | 2 +- .../connectivity/lwm2m/client/LwM2mBinaryAppDataContainer.java | 2 +- .../msa/connectivity/lwm2m/client/LwM2mTemperatureSensor.java | 2 +- .../msa/connectivity/lwm2m/client/LwM2mValueConverterImpl.java | 2 +- .../server/msa/connectivity/lwm2m/client/Lwm2mTestHelper.java | 2 +- .../msa/connectivity/lwm2m/client/SimpleLwM2MDevice.java | 2 +- .../msa/connectivity/lwm2m/rpc/Lwm2mObserveCompositeTest.java | 2 +- .../server/msa/connectivity/lwm2m/rpc/Lwm2mObserveTest.java | 2 +- .../msa/connectivity/lwm2m/security/Lwm2mClientNoSecTest.java | 2 +- .../msa/connectivity/lwm2m/security/Lwm2mClientPskTest.java | 2 +- .../thingsboard/server/msa/edqs/EdqsEntityDataQueryTest.java | 2 +- .../org/thingsboard/server/msa/mapper/AttributesResponse.java | 2 +- .../org/thingsboard/server/msa/mapper/WsTelemetryResponse.java | 2 +- .../thingsboard/server/msa/prototypes/DevicePrototypes.java | 2 +- .../org/thingsboard/server/msa/rule/node/MqttNodeTest.java | 2 +- .../org/thingsboard/server/msa/ui/base/AbstractBasePage.java | 2 +- .../thingsboard/server/msa/ui/base/AbstractDriverBaseTest.java | 2 +- .../org/thingsboard/server/msa/ui/listeners/RetryAnalyzer.java | 2 +- .../thingsboard/server/msa/ui/listeners/RetryTestListener.java | 2 +- .../server/msa/ui/pages/AlarmDetailsEntityTabElements.java | 2 +- .../server/msa/ui/pages/AlarmDetailsEntityTabHelper.java | 2 +- .../server/msa/ui/pages/AlarmDetailsViewElements.java | 2 +- .../server/msa/ui/pages/AlarmDetailsViewHelper.java | 2 +- .../thingsboard/server/msa/ui/pages/AlarmWidgetElements.java | 2 +- .../org/thingsboard/server/msa/ui/pages/AssetPageElements.java | 2 +- .../org/thingsboard/server/msa/ui/pages/AssetPageHelper.java | 2 +- .../server/msa/ui/pages/CreateWidgetPopupElements.java | 2 +- .../server/msa/ui/pages/CreateWidgetPopupHelper.java | 2 +- .../thingsboard/server/msa/ui/pages/CustomerPageElements.java | 2 +- .../thingsboard/server/msa/ui/pages/CustomerPageHelper.java | 2 +- .../thingsboard/server/msa/ui/pages/DashboardPageElements.java | 2 +- .../thingsboard/server/msa/ui/pages/DashboardPageHelper.java | 2 +- .../thingsboard/server/msa/ui/pages/DevicePageElements.java | 2 +- .../org/thingsboard/server/msa/ui/pages/DevicePageHelper.java | 2 +- .../server/msa/ui/pages/EntityViewPageElements.java | 2 +- .../thingsboard/server/msa/ui/pages/EntityViewPageHelper.java | 2 +- .../org/thingsboard/server/msa/ui/pages/LoginPageElements.java | 2 +- .../org/thingsboard/server/msa/ui/pages/LoginPageHelper.java | 2 +- .../server/msa/ui/pages/OpenRuleChainPageElements.java | 2 +- .../server/msa/ui/pages/OpenRuleChainPageHelper.java | 2 +- .../org/thingsboard/server/msa/ui/pages/OtherPageElements.java | 2 +- .../server/msa/ui/pages/OtherPageElementsHelper.java | 2 +- .../thingsboard/server/msa/ui/pages/ProfilesPageElements.java | 2 +- .../thingsboard/server/msa/ui/pages/ProfilesPageHelper.java | 2 +- .../server/msa/ui/pages/RuleChainsPageElements.java | 2 +- .../thingsboard/server/msa/ui/pages/RuleChainsPageHelper.java | 2 +- .../server/msa/ui/pages/SideBarMenuViewElements.java | 2 +- .../thingsboard/server/msa/ui/pages/SideBarMenuViewHelper.java | 2 +- .../server/msa/ui/tabs/AssignDeviceTabElements.java | 2 +- .../thingsboard/server/msa/ui/tabs/AssignDeviceTabHelper.java | 2 +- .../server/msa/ui/tabs/CreateDeviceTabElements.java | 2 +- .../thingsboard/server/msa/ui/tabs/CreateDeviceTabHelper.java | 2 +- .../server/msa/ui/tests/alarmassignee/AbstractAssignTest.java | 2 +- .../msa/ui/tests/alarmassignee/AssignDetailsTabAssignTest.java | 2 +- .../alarmassignee/AssignDetailsTabFromCustomerAssignTest.java | 2 +- .../msa/ui/tests/alarmassignee/AssignFromAlarmWidgetTest.java | 2 +- .../ui/tests/assetProfileSmoke/AssetProfileEditMenuTest.java | 2 +- .../tests/assetProfileSmoke/CreateAssetProfileImportTest.java | 2 +- .../msa/ui/tests/assetProfileSmoke/CreateAssetProfileTest.java | 2 +- .../msa/ui/tests/assetProfileSmoke/DeleteAssetProfileTest.java | 2 +- .../assetProfileSmoke/DeleteSeveralAssetProfilesTest.java | 2 +- .../tests/assetProfileSmoke/MakeAssetProfileDefaultTest.java | 2 +- .../msa/ui/tests/assetProfileSmoke/SearchAssetProfileTest.java | 2 +- .../server/msa/ui/tests/assetProfileSmoke/SortByNameTest.java | 2 +- .../server/msa/ui/tests/customerSmoke/CreateCustomerTest.java | 2 +- .../msa/ui/tests/customerSmoke/CustomerEditMenuTest.java | 2 +- .../server/msa/ui/tests/customerSmoke/DeleteCustomerTest.java | 2 +- .../msa/ui/tests/customerSmoke/DeleteSeveralCustomerTest.java | 2 +- .../msa/ui/tests/customerSmoke/ManageCustomersAssetsTest.java | 2 +- .../ui/tests/customerSmoke/ManageCustomersDashboardsTest.java | 2 +- .../msa/ui/tests/customerSmoke/ManageCustomersDevicesTest.java | 2 +- .../msa/ui/tests/customerSmoke/ManageCustomersEdgesTest.java | 2 +- .../msa/ui/tests/customerSmoke/ManageCustomersUsersTest.java | 2 +- .../server/msa/ui/tests/customerSmoke/SearchCustomerTest.java | 2 +- .../server/msa/ui/tests/customerSmoke/SortByNameTest.java | 2 +- .../deviceProfileSmoke/CreateDeviceProfileImportTest.java | 2 +- .../ui/tests/deviceProfileSmoke/CreateDeviceProfileTest.java | 2 +- .../ui/tests/deviceProfileSmoke/DeleteDeviceProfileTest.java | 2 +- .../deviceProfileSmoke/DeleteSeveralDeviceProfilesTest.java | 2 +- .../ui/tests/deviceProfileSmoke/DeviceProfileEditMenuTest.java | 2 +- .../tests/deviceProfileSmoke/MakeDeviceProfileDefaultTest.java | 2 +- .../ui/tests/deviceProfileSmoke/SearchDeviceProfileTest.java | 2 +- .../server/msa/ui/tests/deviceProfileSmoke/SortByNameTest.java | 2 +- .../server/msa/ui/tests/devicessmoke/AbstractDeviceTest.java | 2 +- .../server/msa/ui/tests/devicessmoke/AssignToCustomerTest.java | 2 +- .../server/msa/ui/tests/devicessmoke/CreateDeviceTest.java | 2 +- .../server/msa/ui/tests/devicessmoke/DeleteDeviceTest.java | 2 +- .../msa/ui/tests/devicessmoke/DeleteSeveralDevicesTest.java | 2 +- .../server/msa/ui/tests/devicessmoke/DeviceFilterTest.java | 2 +- .../server/msa/ui/tests/devicessmoke/EditDeviceTest.java | 2 +- .../msa/ui/tests/devicessmoke/MakeDevicePrivateTest.java | 2 +- .../server/msa/ui/tests/devicessmoke/MakeDevicePublicTest.java | 2 +- .../msa/ui/tests/rulechainssmoke/AbstractRuleChainTest.java | 2 +- .../ui/tests/rulechainssmoke/CreateRuleChainImportTest.java | 2 +- .../msa/ui/tests/rulechainssmoke/CreateRuleChainTest.java | 2 +- .../msa/ui/tests/rulechainssmoke/DeleteRuleChainTest.java | 2 +- .../ui/tests/rulechainssmoke/DeleteSeveralRuleChainsTest.java | 2 +- .../msa/ui/tests/rulechainssmoke/MakeRuleChainRootTest.java | 2 +- .../server/msa/ui/tests/rulechainssmoke/OpenRuleChainTest.java | 2 +- .../msa/ui/tests/rulechainssmoke/RuleChainEditMenuTest.java | 2 +- .../msa/ui/tests/rulechainssmoke/SearchRuleChainTest.java | 2 +- .../server/msa/ui/tests/rulechainssmoke/SortByNameTest.java | 2 +- .../server/msa/ui/tests/rulechainssmoke/SortByTimeTest.java | 2 +- .../test/java/org/thingsboard/server/msa/ui/utils/Const.java | 2 +- .../server/msa/ui/utils/DataProviderCredential.java | 2 +- .../org/thingsboard/server/msa/ui/utils/EntityPrototypes.java | 2 +- msa/black-box-tests/src/test/resources/alarmAssignee.xml | 2 +- msa/black-box-tests/src/test/resources/all.xml | 2 +- msa/black-box-tests/src/test/resources/connectivity.xml | 2 +- .../src/test/resources/docker-compose.hybrid-test-extras.yml | 2 +- .../src/test/resources/docker-compose.mosquitto.yml | 2 +- .../src/test/resources/docker-compose.postgres-test-extras.yml | 2 +- .../src/test/resources/docker-compose.rabbitmq-server.yml | 2 +- .../src/test/resources/docker-compose.valkey-ssl.volumes.yml | 2 +- .../src/test/resources/docker-compose.valkey-ssl.yml | 2 +- msa/black-box-tests/src/test/resources/docker-selenium.yml | 2 +- msa/black-box-tests/src/test/resources/forImport.txt | 2 +- msa/black-box-tests/src/test/resources/logback.xml | 2 +- .../src/test/resources/mosquitto/mosquitto.conf | 2 +- msa/black-box-tests/src/test/resources/smokeDevices.xml | 2 +- msa/black-box-tests/src/test/resources/smokesCustomer.xml | 2 +- msa/black-box-tests/src/test/resources/smokesProfiles.xml | 2 +- msa/black-box-tests/src/test/resources/smokesRuleChain.xml | 2 +- .../src/test/resources/tb-node/conf/logback.xml | 2 +- .../src/test/resources/tb-transports/coap/conf/logback.xml | 2 +- .../src/test/resources/tb-transports/http/conf/logback.xml | 2 +- .../src/test/resources/tb-transports/lwm2m/conf/logback.xml | 2 +- .../src/test/resources/tb-transports/mqtt/conf/logback.xml | 2 +- msa/black-box-tests/src/test/resources/uiTests.xml | 2 +- msa/edqs/docker/Dockerfile | 2 +- msa/edqs/docker/start-tb-edqs.sh | 2 +- msa/edqs/pom.xml | 2 +- msa/js-executor/api/httpServer.ts | 2 +- msa/js-executor/api/jsExecutor.models.ts | 2 +- msa/js-executor/api/jsExecutor.ts | 2 +- msa/js-executor/api/jsInvokeMessageProcessor.ts | 2 +- msa/js-executor/api/utils.ts | 2 +- msa/js-executor/config/custom-environment-variables.yml | 2 +- msa/js-executor/config/default.yml | 2 +- msa/js-executor/config/logger.ts | 2 +- msa/js-executor/config/tb-js-executor.conf | 2 +- msa/js-executor/docker/Dockerfile | 2 +- msa/js-executor/docker/start-js-executor.sh | 2 +- msa/js-executor/install.js | 2 +- msa/js-executor/pom.xml | 2 +- msa/js-executor/queue/kafkaTemplate.ts | 2 +- msa/js-executor/queue/queue.models.ts | 2 +- msa/js-executor/server.ts | 2 +- msa/monitoring/docker/Dockerfile | 2 +- msa/monitoring/docker/start-tb-monitoring.sh | 2 +- msa/monitoring/pom.xml | 2 +- msa/pom.xml | 2 +- msa/tb-node/docker/Dockerfile | 2 +- msa/tb-node/docker/logback.xml | 2 +- msa/tb-node/docker/start-tb-node.sh | 2 +- msa/tb-node/pom.xml | 2 +- msa/tb/docker-cassandra/Dockerfile | 2 +- msa/tb/docker-cassandra/start-db.sh | 2 +- msa/tb/docker-cassandra/stop-db.sh | 2 +- msa/tb/docker-postgres/Dockerfile | 2 +- msa/tb/docker-postgres/start-db.sh | 2 +- msa/tb/docker-postgres/stop-db.sh | 2 +- msa/tb/docker/install-tb.sh | 2 +- msa/tb/docker/logback.xml | 2 +- msa/tb/docker/start-tb.sh | 2 +- msa/tb/docker/thingsboard.conf | 2 +- msa/tb/docker/upgrade-tb.sh | 2 +- msa/tb/pom.xml | 2 +- msa/transport/coap/docker/Dockerfile | 2 +- msa/transport/coap/docker/start-tb-coap-transport.sh | 2 +- msa/transport/coap/pom.xml | 2 +- msa/transport/http/docker/Dockerfile | 2 +- msa/transport/http/docker/start-tb-http-transport.sh | 2 +- msa/transport/http/pom.xml | 2 +- msa/transport/lwm2m/docker/Dockerfile | 2 +- msa/transport/lwm2m/docker/start-tb-lwm2m-transport.sh | 2 +- msa/transport/lwm2m/pom.xml | 2 +- msa/transport/mqtt/docker/Dockerfile | 2 +- msa/transport/mqtt/docker/start-tb-mqtt-transport.sh | 2 +- msa/transport/mqtt/pom.xml | 2 +- msa/transport/pom.xml | 2 +- msa/transport/snmp/docker/Dockerfile | 2 +- msa/transport/snmp/docker/start-tb-snmp-transport.sh | 2 +- msa/transport/snmp/pom.xml | 2 +- msa/vc-executor-docker/docker/Dockerfile | 2 +- msa/vc-executor-docker/docker/start-tb-vc-executor.sh | 2 +- msa/vc-executor-docker/pom.xml | 2 +- msa/vc-executor/pom.xml | 2 +- msa/vc-executor/src/main/conf/logback.xml | 2 +- msa/vc-executor/src/main/conf/tb-vc-executor.conf | 2 +- .../vc/ThingsboardVersionControlExecutorApplication.java | 2 +- .../vc/service/VersionControlQueueRoutingInfoService.java | 2 +- .../vc/service/VersionControlTenantRoutingInfoService.java | 2 +- msa/vc-executor/src/main/resources/logback.xml | 2 +- msa/vc-executor/src/main/resources/tb-vc-executor.yml | 2 +- msa/web-ui/config/custom-environment-variables.yml | 2 +- msa/web-ui/config/default.yml | 2 +- msa/web-ui/config/logger.ts | 2 +- msa/web-ui/config/tb-web-ui.conf | 2 +- msa/web-ui/docker/Dockerfile | 2 +- msa/web-ui/docker/start-web-ui.sh | 2 +- msa/web-ui/install.js | 2 +- msa/web-ui/pom.xml | 2 +- msa/web-ui/server.ts | 2 +- netty-mqtt/pom.xml | 2 +- .../main/java/org/thingsboard/mqtt/ChannelClosedException.java | 2 +- .../thingsboard/mqtt/MaxRetransmissionsReachedException.java | 2 +- .../src/main/java/org/thingsboard/mqtt/MqttChannelHandler.java | 2 +- netty-mqtt/src/main/java/org/thingsboard/mqtt/MqttClient.java | 2 +- .../src/main/java/org/thingsboard/mqtt/MqttClientCallback.java | 2 +- .../src/main/java/org/thingsboard/mqtt/MqttClientConfig.java | 2 +- .../src/main/java/org/thingsboard/mqtt/MqttClientImpl.java | 2 +- .../src/main/java/org/thingsboard/mqtt/MqttConnectResult.java | 2 +- netty-mqtt/src/main/java/org/thingsboard/mqtt/MqttHandler.java | 2 +- .../java/org/thingsboard/mqtt/MqttIncomingQos2Publish.java | 2 +- .../src/main/java/org/thingsboard/mqtt/MqttLastWill.java | 2 +- .../src/main/java/org/thingsboard/mqtt/MqttPendingPublish.java | 2 +- .../java/org/thingsboard/mqtt/MqttPendingSubscription.java | 2 +- .../java/org/thingsboard/mqtt/MqttPendingUnsubscription.java | 2 +- .../src/main/java/org/thingsboard/mqtt/MqttPingHandler.java | 2 +- .../src/main/java/org/thingsboard/mqtt/MqttSubscription.java | 2 +- .../src/main/java/org/thingsboard/mqtt/PendingOperation.java | 2 +- .../src/main/java/org/thingsboard/mqtt/ReconnectStrategy.java | 2 +- .../org/thingsboard/mqtt/ReconnectStrategyExponential.java | 2 +- .../main/java/org/thingsboard/mqtt/RetransmissionHandler.java | 2 +- .../src/test/java/org/thingsboard/mqtt/MqttClientTest.java | 2 +- .../src/test/java/org/thingsboard/mqtt/MqttTestProxy.java | 2 +- .../org/thingsboard/mqtt/ReconnectStrategyExponentialTest.java | 2 +- packaging/java/assembly/windows.xml | 2 +- packaging/java/build.gradle | 2 +- packaging/java/scripts/install/install.sh | 2 +- packaging/java/scripts/install/install_dev_db.sh | 2 +- packaging/java/scripts/install/logback.xml | 2 +- packaging/java/scripts/install/upgrade.sh | 2 +- packaging/java/scripts/install/upgrade_dev_db.sh | 2 +- packaging/js/assembly/windows.xml | 2 +- packaging/js/build.gradle | 2 +- pom.xml | 2 +- rest-client/pom.xml | 2 +- .../src/main/java/org/thingsboard/rest/client/RestClient.java | 2 +- .../org/thingsboard/rest/client/utils/RestJsonConverter.java | 2 +- rest-client/src/main/resources/logback.xml | 2 +- rule-engine/pom.xml | 2 +- rule-engine/rule-engine-api/pom.xml | 2 +- .../thingsboard/rule/engine/api/AttributesDeleteRequest.java | 2 +- .../org/thingsboard/rule/engine/api/AttributesSaveRequest.java | 2 +- .../rule/engine/api/CalculatedFieldSystemAwareRequest.java | 2 +- .../org/thingsboard/rule/engine/api/DeviceStateManager.java | 2 +- .../thingsboard/rule/engine/api/EmptyNodeConfiguration.java | 2 +- .../main/java/org/thingsboard/rule/engine/api/JobManager.java | 2 +- .../main/java/org/thingsboard/rule/engine/api/MailService.java | 2 +- .../org/thingsboard/rule/engine/api/MqttClientSettings.java | 2 +- .../org/thingsboard/rule/engine/api/NodeConfiguration.java | 2 +- .../java/org/thingsboard/rule/engine/api/NodeDefinition.java | 2 +- .../org/thingsboard/rule/engine/api/NotificationCenter.java | 2 +- .../rule/engine/api/RuleEngineAiChatModelService.java | 2 +- .../thingsboard/rule/engine/api/RuleEngineAlarmService.java | 2 +- .../rule/engine/api/RuleEngineApiUsageStateService.java | 2 +- .../rule/engine/api/RuleEngineAssetProfileCache.java | 2 +- .../rule/engine/api/RuleEngineCalculatedFieldQueueService.java | 2 +- .../rule/engine/api/RuleEngineDeviceProfileCache.java | 2 +- .../rule/engine/api/RuleEngineDeviceRpcRequest.java | 2 +- .../rule/engine/api/RuleEngineDeviceRpcResponse.java | 2 +- .../org/thingsboard/rule/engine/api/RuleEngineRpcService.java | 2 +- .../rule/engine/api/RuleEngineTelemetryService.java | 2 +- .../main/java/org/thingsboard/rule/engine/api/RuleNode.java | 2 +- .../java/org/thingsboard/rule/engine/api/ScriptEngine.java | 2 +- .../main/java/org/thingsboard/rule/engine/api/SmsService.java | 2 +- .../main/java/org/thingsboard/rule/engine/api/TbContext.java | 2 +- .../src/main/java/org/thingsboard/rule/engine/api/TbEmail.java | 2 +- .../src/main/java/org/thingsboard/rule/engine/api/TbNode.java | 2 +- .../org/thingsboard/rule/engine/api/TbNodeConfiguration.java | 2 +- .../java/org/thingsboard/rule/engine/api/TbNodeException.java | 2 +- .../main/java/org/thingsboard/rule/engine/api/TbNodeState.java | 2 +- .../thingsboard/rule/engine/api/TimeseriesDeleteRequest.java | 2 +- .../org/thingsboard/rule/engine/api/TimeseriesSaveRequest.java | 2 +- .../rule/engine/api/notification/FirebaseService.java | 2 +- .../thingsboard/rule/engine/api/notification/SlackService.java | 2 +- .../java/org/thingsboard/rule/engine/api/sms/SmsSender.java | 2 +- .../org/thingsboard/rule/engine/api/sms/SmsSenderFactory.java | 2 +- .../rule/engine/api/sms/exception/SmsException.java | 2 +- .../rule/engine/api/sms/exception/SmsParseException.java | 2 +- .../rule/engine/api/sms/exception/SmsSendException.java | 2 +- .../java/org/thingsboard/rule/engine/api/util/TbNodeUtils.java | 2 +- .../rule/engine/api/AttributesDeleteRequestTest.java | 2 +- .../thingsboard/rule/engine/api/AttributesSaveRequestTest.java | 2 +- .../thingsboard/rule/engine/api/TimeseriesSaveRequestTest.java | 2 +- .../org/thingsboard/rule/engine/api/util/TbNodeUtilsTest.java | 2 +- rule-engine/rule-engine-components/pom.xml | 2 +- .../thingsboard/rule/engine/action/TbAbstractAlarmNode.java | 2 +- .../rule/engine/action/TbAbstractAlarmNodeConfiguration.java | 2 +- .../rule/engine/action/TbAbstractCustomerActionNode.java | 2 +- .../action/TbAbstractCustomerActionNodeConfiguration.java | 2 +- .../rule/engine/action/TbAbstractRelationActionNode.java | 2 +- .../action/TbAbstractRelationActionNodeConfiguration.java | 2 +- .../java/org/thingsboard/rule/engine/action/TbAlarmResult.java | 2 +- .../thingsboard/rule/engine/action/TbAssignToCustomerNode.java | 2 +- .../engine/action/TbAssignToCustomerNodeConfiguration.java | 2 +- .../org/thingsboard/rule/engine/action/TbClearAlarmNode.java | 2 +- .../rule/engine/action/TbClearAlarmNodeConfiguration.java | 2 +- .../rule/engine/action/TbCopyAttributesToEntityViewNode.java | 2 +- .../org/thingsboard/rule/engine/action/TbCreateAlarmNode.java | 2 +- .../rule/engine/action/TbCreateAlarmNodeConfiguration.java | 2 +- .../thingsboard/rule/engine/action/TbCreateRelationNode.java | 2 +- .../rule/engine/action/TbCreateRelationNodeConfiguration.java | 2 +- .../thingsboard/rule/engine/action/TbDeleteRelationNode.java | 2 +- .../rule/engine/action/TbDeleteRelationNodeConfiguration.java | 2 +- .../org/thingsboard/rule/engine/action/TbDeviceStateNode.java | 2 +- .../rule/engine/action/TbDeviceStateNodeConfiguration.java | 2 +- .../java/org/thingsboard/rule/engine/action/TbLogNode.java | 2 +- .../thingsboard/rule/engine/action/TbLogNodeConfiguration.java | 2 +- .../org/thingsboard/rule/engine/action/TbMsgCountNode.java | 2 +- .../rule/engine/action/TbMsgCountNodeConfiguration.java | 2 +- .../rule/engine/action/TbSaveToCustomCassandraTableNode.java | 2 +- .../action/TbSaveToCustomCassandraTableNodeConfiguration.java | 2 +- .../rule/engine/action/TbUnassignFromCustomerNode.java | 2 +- .../engine/action/TbUnassignFromCustomerNodeConfiguration.java | 2 +- .../rule/engine/ai/Langchain4jJsonSchemaAdapter.java | 2 +- .../src/main/java/org/thingsboard/rule/engine/ai/TbAiNode.java | 2 +- .../org/thingsboard/rule/engine/ai/TbAiNodeConfiguration.java | 2 +- .../java/org/thingsboard/rule/engine/ai/TbResponseFormat.java | 2 +- .../thingsboard/rule/engine/aws/lambda/TbAwsLambdaNode.java | 2 +- .../rule/engine/aws/lambda/TbAwsLambdaNodeConfiguration.java | 2 +- .../java/org/thingsboard/rule/engine/aws/sns/TbSnsNode.java | 2 +- .../rule/engine/aws/sns/TbSnsNodeConfiguration.java | 2 +- .../java/org/thingsboard/rule/engine/aws/sqs/TbSqsNode.java | 2 +- .../rule/engine/aws/sqs/TbSqsNodeConfiguration.java | 2 +- .../rule/engine/credentials/AnonymousCredentials.java | 2 +- .../thingsboard/rule/engine/credentials/BasicCredentials.java | 2 +- .../rule/engine/credentials/CertPemCredentials.java | 2 +- .../thingsboard/rule/engine/credentials/ClientCredentials.java | 2 +- .../thingsboard/rule/engine/credentials/CredentialsType.java | 2 +- .../org/thingsboard/rule/engine/data/DeviceRelationsQuery.java | 2 +- .../java/org/thingsboard/rule/engine/data/RelationsQuery.java | 2 +- .../org/thingsboard/rule/engine/debug/TbMsgGeneratorNode.java | 2 +- .../rule/engine/debug/TbMsgGeneratorNodeConfiguration.java | 2 +- .../rule/engine/deduplication/DeduplicationData.java | 2 +- .../thingsboard/rule/engine/deduplication/DeduplicationId.java | 2 +- .../rule/engine/deduplication/DeduplicationStrategy.java | 2 +- .../rule/engine/deduplication/TbMsgDeduplicationNode.java | 2 +- .../deduplication/TbMsgDeduplicationNodeConfiguration.java | 2 +- .../java/org/thingsboard/rule/engine/delay/TbMsgDelayNode.java | 2 +- .../rule/engine/delay/TbMsgDelayNodeConfiguration.java | 2 +- .../thingsboard/rule/engine/edge/AbstractTbMsgPushNode.java | 2 +- .../rule/engine/edge/BaseTbMsgPushNodeConfiguration.java | 2 +- .../org/thingsboard/rule/engine/edge/TbMsgPushToCloudNode.java | 2 +- .../rule/engine/edge/TbMsgPushToCloudNodeConfiguration.java | 2 +- .../org/thingsboard/rule/engine/edge/TbMsgPushToEdgeNode.java | 2 +- .../rule/engine/edge/TbMsgPushToEdgeNodeConfiguration.java | 2 +- .../rule/engine/external/TbAbstractExternalNode.java | 2 +- .../rule/engine/filter/TbAbstractTypeSwitchNode.java | 2 +- .../thingsboard/rule/engine/filter/TbAssetTypeSwitchNode.java | 2 +- .../thingsboard/rule/engine/filter/TbCheckAlarmStatusNode.java | 2 +- .../rule/engine/filter/TbCheckAlarmStatusNodeConfig.java | 2 +- .../org/thingsboard/rule/engine/filter/TbCheckMessageNode.java | 2 +- .../rule/engine/filter/TbCheckMessageNodeConfiguration.java | 2 +- .../thingsboard/rule/engine/filter/TbCheckRelationNode.java | 2 +- .../rule/engine/filter/TbCheckRelationNodeConfiguration.java | 2 +- .../thingsboard/rule/engine/filter/TbDeviceTypeSwitchNode.java | 2 +- .../org/thingsboard/rule/engine/filter/TbJsFilterNode.java | 2 +- .../rule/engine/filter/TbJsFilterNodeConfiguration.java | 2 +- .../org/thingsboard/rule/engine/filter/TbJsSwitchNode.java | 2 +- .../rule/engine/filter/TbJsSwitchNodeConfiguration.java | 2 +- .../thingsboard/rule/engine/filter/TbMsgTypeFilterNode.java | 2 +- .../rule/engine/filter/TbMsgTypeFilterNodeConfiguration.java | 2 +- .../thingsboard/rule/engine/filter/TbMsgTypeSwitchNode.java | 2 +- .../rule/engine/filter/TbOriginatorTypeFilterNode.java | 2 +- .../engine/filter/TbOriginatorTypeFilterNodeConfiguration.java | 2 +- .../rule/engine/filter/TbOriginatorTypeSwitchNode.java | 2 +- .../main/java/org/thingsboard/rule/engine/flow/TbAckNode.java | 2 +- .../org/thingsboard/rule/engine/flow/TbCheckpointNode.java | 2 +- .../org/thingsboard/rule/engine/flow/TbRuleChainInputNode.java | 2 +- .../rule/engine/flow/TbRuleChainInputNodeConfiguration.java | 2 +- .../thingsboard/rule/engine/flow/TbRuleChainOutputNode.java | 2 +- .../org/thingsboard/rule/engine/gcp/pubsub/TbPubSubNode.java | 2 +- .../rule/engine/gcp/pubsub/TbPubSubNodeConfiguration.java | 2 +- .../thingsboard/rule/engine/geo/AbstractGeofencingNode.java | 2 +- .../org/thingsboard/rule/engine/geo/EntityGeofencingState.java | 2 +- .../thingsboard/rule/engine/geo/TbGpsGeofencingActionNode.java | 2 +- .../engine/geo/TbGpsGeofencingActionNodeConfiguration.java | 2 +- .../thingsboard/rule/engine/geo/TbGpsGeofencingFilterNode.java | 2 +- .../engine/geo/TbGpsGeofencingFilterNodeConfiguration.java | 2 +- .../java/org/thingsboard/rule/engine/kafka/TbKafkaNode.java | 2 +- .../rule/engine/kafka/TbKafkaNodeConfiguration.java | 2 +- .../org/thingsboard/rule/engine/mail/TbMsgToEmailNode.java | 2 +- .../rule/engine/mail/TbMsgToEmailNodeConfiguration.java | 2 +- .../java/org/thingsboard/rule/engine/mail/TbSendEmailNode.java | 2 +- .../rule/engine/mail/TbSendEmailNodeConfiguration.java | 2 +- .../java/org/thingsboard/rule/engine/math/TbMathArgument.java | 2 +- .../org/thingsboard/rule/engine/math/TbMathArgumentType.java | 2 +- .../org/thingsboard/rule/engine/math/TbMathArgumentValue.java | 2 +- .../main/java/org/thingsboard/rule/engine/math/TbMathNode.java | 2 +- .../thingsboard/rule/engine/math/TbMathNodeConfiguration.java | 2 +- .../java/org/thingsboard/rule/engine/math/TbMathResult.java | 2 +- .../rule/engine/math/TbRuleNodeMathFunctionType.java | 2 +- .../thingsboard/rule/engine/metadata/CalculateDeltaNode.java | 2 +- .../rule/engine/metadata/CalculateDeltaNodeConfiguration.java | 2 +- .../java/org/thingsboard/rule/engine/metadata/DataToFetch.java | 2 +- .../java/org/thingsboard/rule/engine/metadata/FetchMode.java | 2 +- .../engine/metadata/TbAbstractFetchToNodeConfiguration.java | 2 +- .../rule/engine/metadata/TbAbstractGetAttributesNode.java | 2 +- .../rule/engine/metadata/TbAbstractGetEntityDataNode.java | 2 +- .../rule/engine/metadata/TbAbstractGetEntityDetailsNode.java | 2 +- .../metadata/TbAbstractGetEntityDetailsNodeConfiguration.java | 2 +- .../rule/engine/metadata/TbAbstractGetMappedDataNode.java | 2 +- .../rule/engine/metadata/TbAbstractNodeWithFetchTo.java | 2 +- .../rule/engine/metadata/TbFetchDeviceCredentialsNode.java | 2 +- .../metadata/TbFetchDeviceCredentialsNodeConfiguration.java | 2 +- .../thingsboard/rule/engine/metadata/TbGetAttributesNode.java | 2 +- .../rule/engine/metadata/TbGetAttributesNodeConfiguration.java | 2 +- .../rule/engine/metadata/TbGetCustomerAttributeNode.java | 2 +- .../rule/engine/metadata/TbGetCustomerDetailsNode.java | 2 +- .../engine/metadata/TbGetCustomerDetailsNodeConfiguration.java | 2 +- .../thingsboard/rule/engine/metadata/TbGetDeviceAttrNode.java | 2 +- .../rule/engine/metadata/TbGetDeviceAttrNodeConfiguration.java | 2 +- .../rule/engine/metadata/TbGetEntityDataNodeConfiguration.java | 2 +- .../rule/engine/metadata/TbGetMappedDataNodeConfiguration.java | 2 +- .../engine/metadata/TbGetOriginatorFieldsConfiguration.java | 2 +- .../rule/engine/metadata/TbGetOriginatorFieldsNode.java | 2 +- .../rule/engine/metadata/TbGetRelatedAttributeNode.java | 2 +- .../engine/metadata/TbGetRelatedDataNodeConfiguration.java | 2 +- .../thingsboard/rule/engine/metadata/TbGetTelemetryNode.java | 2 +- .../rule/engine/metadata/TbGetTelemetryNodeConfiguration.java | 2 +- .../rule/engine/metadata/TbGetTenantAttributeNode.java | 2 +- .../rule/engine/metadata/TbGetTenantDetailsNode.java | 2 +- .../engine/metadata/TbGetTenantDetailsNodeConfiguration.java | 2 +- .../main/java/org/thingsboard/rule/engine/mqtt/TbMqttNode.java | 2 +- .../thingsboard/rule/engine/mqtt/TbMqttNodeConfiguration.java | 2 +- .../rule/engine/mqtt/azure/AzureIotHubSasCredentials.java | 2 +- .../thingsboard/rule/engine/mqtt/azure/TbAzureIotHubNode.java | 2 +- .../rule/engine/mqtt/azure/TbAzureIotHubNodeConfiguration.java | 2 +- .../rule/engine/notification/TbNotificationNode.java | 2 +- .../engine/notification/TbNotificationNodeConfiguration.java | 2 +- .../org/thingsboard/rule/engine/notification/TbSlackNode.java | 2 +- .../rule/engine/notification/TbSlackNodeConfiguration.java | 2 +- .../org/thingsboard/rule/engine/profile/AlarmEvalResult.java | 2 +- .../org/thingsboard/rule/engine/profile/AlarmRuleState.java | 2 +- .../java/org/thingsboard/rule/engine/profile/AlarmState.java | 2 +- .../rule/engine/profile/AlarmStateUpdateResult.java | 2 +- .../java/org/thingsboard/rule/engine/profile/DataSnapshot.java | 2 +- .../java/org/thingsboard/rule/engine/profile/DeviceState.java | 2 +- .../rule/engine/profile/DynamicPredicateValueCtx.java | 2 +- .../rule/engine/profile/DynamicPredicateValueCtxImpl.java | 2 +- .../org/thingsboard/rule/engine/profile/EntityKeyValue.java | 2 +- .../thingsboard/rule/engine/profile/NumericParseException.java | 2 +- .../java/org/thingsboard/rule/engine/profile/ProfileState.java | 2 +- .../org/thingsboard/rule/engine/profile/SnapshotUpdate.java | 2 +- .../thingsboard/rule/engine/profile/TbDeviceProfileNode.java | 2 +- .../rule/engine/profile/TbDeviceProfileNodeConfiguration.java | 2 +- .../rule/engine/profile/state/PersistedAlarmRuleState.java | 2 +- .../rule/engine/profile/state/PersistedAlarmState.java | 2 +- .../rule/engine/profile/state/PersistedDeviceState.java | 2 +- .../org/thingsboard/rule/engine/rabbitmq/TbRabbitMqNode.java | 2 +- .../rule/engine/rabbitmq/TbRabbitMqNodeConfiguration.java | 2 +- .../java/org/thingsboard/rule/engine/rest/TbHttpClient.java | 2 +- .../org/thingsboard/rule/engine/rest/TbRestApiCallNode.java | 2 +- .../rule/engine/rest/TbRestApiCallNodeConfiguration.java | 2 +- .../rule/engine/rest/TbSendRestApiCallReplyNode.java | 2 +- .../engine/rest/TbSendRestApiCallReplyNodeConfiguration.java | 2 +- .../org/thingsboard/rule/engine/rpc/TbSendRPCReplyNode.java | 2 +- .../org/thingsboard/rule/engine/rpc/TbSendRPCRequestNode.java | 2 +- .../rule/engine/rpc/TbSendRpcReplyNodeConfiguration.java | 2 +- .../rule/engine/rpc/TbSendRpcRequestNodeConfiguration.java | 2 +- .../java/org/thingsboard/rule/engine/sms/TbSendSmsNode.java | 2 +- .../rule/engine/sms/TbSendSmsNodeConfiguration.java | 2 +- .../rule/engine/telemetry/AttributesDeleteNodeCallback.java | 2 +- .../rule/engine/telemetry/AttributesUpdateNodeCallback.java | 2 +- .../rule/engine/telemetry/TbCalculatedFieldsNode.java | 2 +- .../thingsboard/rule/engine/telemetry/TbMsgAttributesNode.java | 2 +- .../engine/telemetry/TbMsgAttributesNodeConfiguration.java | 2 +- .../rule/engine/telemetry/TbMsgDeleteAttributesNode.java | 2 +- .../telemetry/TbMsgDeleteAttributesNodeConfiguration.java | 2 +- .../thingsboard/rule/engine/telemetry/TbMsgTimeseriesNode.java | 2 +- .../engine/telemetry/TbMsgTimeseriesNodeConfiguration.java | 2 +- .../rule/engine/telemetry/TelemetryNodeCallback.java | 2 +- .../telemetry/settings/AttributesProcessingSettings.java | 2 +- .../rule/engine/telemetry/settings/ProcessingSettings.java | 3 +-- .../telemetry/settings/TimeseriesProcessingSettings.java | 2 +- .../telemetry/strategy/DeduplicateProcessingStrategy.java | 2 +- .../telemetry/strategy/OnEveryMessageProcessingStrategy.java | 2 +- .../rule/engine/telemetry/strategy/ProcessingStrategy.java | 2 +- .../rule/engine/telemetry/strategy/SkipProcessingStrategy.java | 2 +- .../rule/engine/transaction/TbSynchronizationBeginNode.java | 2 +- .../rule/engine/transaction/TbSynchronizationEndNode.java | 2 +- .../rule/engine/transform/MultipleTbMsgsCallbackWrapper.java | 2 +- .../thingsboard/rule/engine/transform/OriginatorSource.java | 2 +- .../rule/engine/transform/TbAbstractTransformNode.java | 2 +- .../transform/TbAbstractTransformNodeWithTbMsgSource.java | 2 +- .../rule/engine/transform/TbChangeOriginatorNode.java | 2 +- .../engine/transform/TbChangeOriginatorNodeConfiguration.java | 2 +- .../org/thingsboard/rule/engine/transform/TbCopyKeysNode.java | 2 +- .../rule/engine/transform/TbCopyKeysNodeConfiguration.java | 2 +- .../thingsboard/rule/engine/transform/TbDeleteKeysNode.java | 2 +- .../rule/engine/transform/TbDeleteKeysNodeConfiguration.java | 2 +- .../org/thingsboard/rule/engine/transform/TbJsonPathNode.java | 2 +- .../rule/engine/transform/TbJsonPathNodeConfiguration.java | 2 +- .../rule/engine/transform/TbMsgCallbackWrapper.java | 2 +- .../thingsboard/rule/engine/transform/TbRenameKeysNode.java | 2 +- .../rule/engine/transform/TbRenameKeysNodeConfiguration.java | 2 +- .../thingsboard/rule/engine/transform/TbSplitArrayMsgNode.java | 2 +- .../thingsboard/rule/engine/transform/TbTransformMsgNode.java | 2 +- .../rule/engine/transform/TbTransformMsgNodeConfiguration.java | 2 +- .../rule/engine/util/ContactBasedEntityDetails.java | 2 +- .../rule/engine/util/EntitiesAlarmOriginatorIdAsyncLoader.java | 2 +- .../rule/engine/util/EntitiesByNameAndTypeLoader.java | 2 +- .../rule/engine/util/EntitiesFieldsAsyncLoader.java | 2 +- .../rule/engine/util/EntitiesRelatedDeviceIdAsyncLoader.java | 2 +- .../rule/engine/util/EntitiesRelatedEntityIdAsyncLoader.java | 2 +- .../org/thingsboard/rule/engine/util/GpsGeofencingEvents.java | 2 +- .../thingsboard/rule/engine/util/SemaphoreWithTbMsgQueue.java | 2 +- .../java/org/thingsboard/rule/engine/util/TbMsgSource.java | 2 +- .../java/org/thingsboard/rule/engine/util/TenantIdLoader.java | 2 +- .../thingsboard/rule/engine/AbstractRuleNodeUpgradeTest.java | 2 +- .../org/thingsboard/rule/engine/TestDbCallbackExecutor.java | 2 +- .../rule/engine/action/TbAssignToCustomerNodeTest.java | 2 +- .../thingsboard/rule/engine/action/TbClearAlarmNodeTest.java | 2 +- .../engine/action/TbCopyAttributesToEntityViewNodeTest.java | 2 +- .../thingsboard/rule/engine/action/TbCreateAlarmNodeTest.java | 2 +- .../rule/engine/action/TbCreateRelationNodeTest.java | 2 +- .../rule/engine/action/TbDeleteRelationNodeTest.java | 2 +- .../thingsboard/rule/engine/action/TbDeviceStateNodeTest.java | 2 +- .../java/org/thingsboard/rule/engine/action/TbLogNodeTest.java | 2 +- .../org/thingsboard/rule/engine/action/TbMsgCountNodeTest.java | 2 +- .../engine/action/TbSaveToCustomCassandraTableNodeTest.java | 2 +- .../rule/engine/action/TbUnassignFromCustomerNodeTest.java | 2 +- .../test/java/org/thingsboard/rule/engine/ai/TbAiNodeTest.java | 2 +- .../rule/engine/aws/lambda/TbAwsLambdaNodeTest.java | 2 +- .../org/thingsboard/rule/engine/aws/sns/TbSnsNodeTest.java | 2 +- .../org/thingsboard/rule/engine/aws/sqs/TbSqsNodeTest.java | 2 +- .../rule/engine/credentials/CertPemCredentialsTest.java | 2 +- .../thingsboard/rule/engine/debug/TbMsgGeneratorNodeTest.java | 2 +- .../thingsboard/rule/engine/edge/TbMsgPushToEdgeNodeTest.java | 2 +- .../rule/engine/filter/TbAssetTypeSwitchNodeTest.java | 2 +- .../rule/engine/filter/TbCheckAlarmStatusNodeTest.java | 2 +- .../thingsboard/rule/engine/filter/TbCheckMessageNodeTest.java | 2 +- .../rule/engine/filter/TbCheckRelationNodeTest.java | 2 +- .../rule/engine/filter/TbDeviceTypeSwitchNodeTest.java | 2 +- .../org/thingsboard/rule/engine/filter/TbJsFilterNodeTest.java | 2 +- .../org/thingsboard/rule/engine/filter/TbJsSwitchNodeTest.java | 2 +- .../rule/engine/filter/TbMsgTypeFilterNodeTest.java | 2 +- .../rule/engine/filter/TbMsgTypeSwitchNodeTest.java | 2 +- .../rule/engine/filter/TbOriginatorTypeFilterNodeTest.java | 2 +- .../rule/engine/filter/TbOriginatorTypeSwitchNodeTest.java | 2 +- .../java/org/thingsboard/rule/engine/flow/TbAckNodeTest.java | 2 +- .../org/thingsboard/rule/engine/flow/TbCheckpointNodeTest.java | 2 +- .../thingsboard/rule/engine/flow/TbRuleChainInputNodeTest.java | 2 +- .../rule/engine/flow/TbRuleChainOutputNodeTest.java | 2 +- .../thingsboard/rule/engine/gcp/pubsub/TbPubSubNodeTest.java | 2 +- .../test/java/org/thingsboard/rule/engine/geo/GeoUtilTest.java | 2 +- .../rule/engine/geo/GpsGeofencingActionTestCase.java | 2 +- .../rule/engine/geo/TbGpsGeofencingActionNodeTest.java | 2 +- .../rule/engine/geo/TbGpsGeofencingFilterNodeTest.java | 2 +- .../org/thingsboard/rule/engine/kafka/TbKafkaNodeTest.java | 2 +- .../org/thingsboard/rule/engine/mail/TbMsgToEmailNodeTest.java | 2 +- .../thingsboard/rule/engine/math/TbMathArgumentValueTest.java | 2 +- .../java/org/thingsboard/rule/engine/math/TbMathNodeTest.java | 2 +- .../rule/engine/metadata/CalculateDeltaNodeTest.java | 2 +- .../rule/engine/metadata/TbFetchDeviceCredentialsNodeTest.java | 2 +- .../rule/engine/metadata/TbGetAttributesNodeTest.java | 2 +- .../rule/engine/metadata/TbGetCustomerAttributeNodeTest.java | 2 +- .../rule/engine/metadata/TbGetCustomerDetailsNodeTest.java | 2 +- .../rule/engine/metadata/TbGetDeviceAttrNodeTest.java | 2 +- .../rule/engine/metadata/TbGetOriginatorFieldsNodeTest.java | 2 +- .../rule/engine/metadata/TbGetRelatedAttributeNodeTest.java | 2 +- .../rule/engine/metadata/TbGetTelemetryNodeTest.java | 2 +- .../rule/engine/metadata/TbGetTenantAttributeNodeTest.java | 2 +- .../rule/engine/metadata/TbGetTenantDetailsNodeTest.java | 2 +- .../java/org/thingsboard/rule/engine/mqtt/TbMqttNodeTest.java | 2 +- .../rule/engine/mqtt/azure/TbAzureIotHubNodeTest.java | 2 +- .../thingsboard/rule/engine/profile/AlarmRuleStateTest.java | 2 +- .../org/thingsboard/rule/engine/profile/AlarmStateTest.java | 2 +- .../org/thingsboard/rule/engine/profile/DeviceStateTest.java | 2 +- .../org/thingsboard/rule/engine/profile/ProfileStateTest.java | 2 +- .../rule/engine/profile/TbDeviceProfileNodeTest.java | 2 +- .../thingsboard/rule/engine/rabbitmq/TbRabbitMqNodeTest.java | 2 +- .../org/thingsboard/rule/engine/rest/TbHttpClientTest.java | 2 +- .../thingsboard/rule/engine/rest/TbRestApiCallNodeTest.java | 2 +- .../rule/engine/rest/TbSendRestApiCallReplyNodeTest.java | 2 +- .../thingsboard/rule/engine/rpc/TbSendRPCReplyNodeTest.java | 2 +- .../thingsboard/rule/engine/rpc/TbSendRPCRequestNodeTest.java | 2 +- .../rule/engine/telemetry/TbMsgAttributesNodeTest.java | 2 +- .../rule/engine/telemetry/TbMsgDeleteAttributesNodeTest.java | 2 +- .../rule/engine/telemetry/TbMsgTimeseriesNodeTest.java | 2 +- .../telemetry/strategy/DeduplicateProcessingStrategyTest.java | 2 +- .../strategy/OnEveryMessageProcessingStrategyTest.java | 2 +- .../rule/engine/telemetry/strategy/ProcessingStrategyTest.java | 2 +- .../engine/telemetry/strategy/SkipProcessingStrategyTest.java | 2 +- .../rule/engine/transform/TbChangeOriginatorNodeTest.java | 2 +- .../thingsboard/rule/engine/transform/TbCopyKeysNodeTest.java | 2 +- .../rule/engine/transform/TbDeleteKeysNodeTest.java | 2 +- .../thingsboard/rule/engine/transform/TbJsonPathNodeTest.java | 2 +- .../rule/engine/transform/TbMsgDeduplicationNodeTest.java | 2 +- .../rule/engine/transform/TbRenameKeysNodeTest.java | 2 +- .../rule/engine/transform/TbSplitArrayMsgNodeTest.java | 2 +- .../rule/engine/transform/TbTransformMsgNodeTest.java | 2 +- .../rule/engine/util/EntitiesFieldsAsyncLoaderTest.java | 2 +- .../engine/util/EntitiesRelatedDeviceIdAsyncLoaderTest.java | 2 +- .../engine/util/EntitiesRelatedEntityIdAsyncLoaderTest.java | 2 +- .../org/thingsboard/rule/engine/util/TenantIdLoaderTest.java | 2 +- tools/pom.xml | 2 +- .../main/java/org/thingsboard/client/tools/MqttSslClient.java | 2 +- .../org/thingsboard/client/tools/i18n/TranslationPruner.java | 2 +- .../thingsboard/client/tools/migrator/DictionaryParser.java | 2 +- .../org/thingsboard/client/tools/migrator/MigratorTool.java | 2 +- .../org/thingsboard/client/tools/migrator/PgCaMigrator.java | 2 +- .../client/tools/migrator/RelatedEntitiesParser.java | 2 +- .../org/thingsboard/client/tools/migrator/WriterBuilder.java | 2 +- tools/src/main/python/check_yml_file.py | 2 +- tools/src/main/python/mqtt-send-telemetry.py | 2 +- tools/src/main/python/one-way-ssl-mqtt-client.py | 2 +- tools/src/main/python/simple-mqtt-client.py | 2 +- tools/src/main/python/two-way-ssl-mqtt-client.py | 2 +- tools/src/main/shell/client.keygen.sh | 2 +- .../src/main/shell/lwm2m/lwM2M_cfssl_chain_clients_for_test.sh | 2 +- tools/src/main/shell/lwm2m/lwm2m_cfssl_chain_all_for_test.sh | 2 +- .../src/main/shell/lwm2m/lwm2m_cfssl_chain_server_for_test.sh | 2 +- tools/src/main/shell/server.keygen.sh | 2 +- transport/coap/pom.xml | 2 +- transport/coap/src/main/conf/logback.xml | 2 +- transport/coap/src/main/conf/tb-coap-transport.conf | 2 +- .../server/coap/ThingsboardCoapTransportApplication.java | 2 +- transport/coap/src/main/resources/logback.xml | 2 +- transport/coap/src/main/resources/tb-coap-transport.yml | 2 +- transport/http/pom.xml | 2 +- transport/http/src/main/conf/logback.xml | 2 +- transport/http/src/main/conf/tb-http-transport.conf | 2 +- .../server/http/ThingsboardHttpTransportApplication.java | 2 +- transport/http/src/main/resources/logback.xml | 2 +- transport/http/src/main/resources/tb-http-transport.yml | 2 +- transport/lwm2m/pom.xml | 2 +- transport/lwm2m/src/main/conf/logback.xml | 2 +- transport/lwm2m/src/main/conf/tb-lwm2m-transport.conf | 2 +- .../server/lwm2m/ThingsboardLwm2mTransportApplication.java | 2 +- transport/lwm2m/src/main/resources/logback.xml | 2 +- transport/lwm2m/src/main/resources/tb-lwm2m-transport.yml | 2 +- transport/mqtt/pom.xml | 2 +- transport/mqtt/src/main/conf/logback.xml | 2 +- transport/mqtt/src/main/conf/tb-mqtt-transport.conf | 2 +- .../server/mqtt/ThingsboardMqttTransportApplication.java | 2 +- transport/mqtt/src/main/resources/logback.xml | 2 +- transport/mqtt/src/main/resources/tb-mqtt-transport.yml | 2 +- transport/pom.xml | 2 +- transport/snmp/pom.xml | 2 +- transport/snmp/src/main/conf/logback.xml | 2 +- transport/snmp/src/main/conf/tb-snmp-transport.conf | 2 +- .../server/snmp/ThingsboardSnmpTransportApplication.java | 2 +- transport/snmp/src/main/resources/logback.xml | 2 +- transport/snmp/src/main/resources/tb-snmp-transport.yml | 2 +- ui-ngx/.editorconfig | 2 +- ui-ngx/esbuild/tb-esbuild-plugins.ts | 2 +- ui-ngx/esbuild/tb-html-fallback-middleware.ts | 2 +- ui-ngx/generate-icon-metadata.js | 2 +- ui-ngx/generate-types.js | 2 +- ui-ngx/pom.xml | 2 +- ui-ngx/proxy.conf.js | 2 +- ui-ngx/src/app/app-routing.module.ts | 2 +- ui-ngx/src/app/app.component.html | 2 +- ui-ngx/src/app/app.component.scss | 2 +- ui-ngx/src/app/app.component.ts | 2 +- ui-ngx/src/app/app.module.ts | 2 +- ui-ngx/src/app/core/api/alarm-data-subscription.ts | 2 +- ui-ngx/src/app/core/api/alarm-data.service.ts | 2 +- ui-ngx/src/app/core/api/alias-controller.ts | 2 +- ui-ngx/src/app/core/api/data-aggregator.ts | 2 +- ui-ngx/src/app/core/api/entity-data-subscription.ts | 2 +- ui-ngx/src/app/core/api/entity-data.service.ts | 2 +- ui-ngx/src/app/core/api/public-api.ts | 2 +- ui-ngx/src/app/core/api/widget-api.models.ts | 2 +- ui-ngx/src/app/core/api/widget-subscription.ts | 2 +- ui-ngx/src/app/core/auth/auth.actions.ts | 2 +- ui-ngx/src/app/core/auth/auth.effects.ts | 2 +- ui-ngx/src/app/core/auth/auth.models.ts | 2 +- ui-ngx/src/app/core/auth/auth.reducer.ts | 2 +- ui-ngx/src/app/core/auth/auth.selectors.ts | 2 +- ui-ngx/src/app/core/auth/auth.service.spec.ts | 2 +- ui-ngx/src/app/core/auth/auth.service.ts | 2 +- ui-ngx/src/app/core/auth/public-api.ts | 2 +- ui-ngx/src/app/core/core.module.ts | 2 +- ui-ngx/src/app/core/core.state.ts | 2 +- ui-ngx/src/app/core/css/css.ts | 2 +- ui-ngx/src/app/core/guards/auth.guard.ts | 2 +- ui-ngx/src/app/core/guards/confirm-on-exit.guard.ts | 2 +- ui-ngx/src/app/core/http/admin.service.ts | 2 +- ui-ngx/src/app/core/http/ai-model.service.ts | 2 +- ui-ngx/src/app/core/http/alarm-comment.service.ts | 2 +- ui-ngx/src/app/core/http/alarm.service.ts | 2 +- ui-ngx/src/app/core/http/asset-profile.service.ts | 2 +- ui-ngx/src/app/core/http/asset.service.ts | 2 +- ui-ngx/src/app/core/http/attribute.service.ts | 2 +- ui-ngx/src/app/core/http/audit-log.service.ts | 2 +- ui-ngx/src/app/core/http/calculated-fields.service.ts | 2 +- ui-ngx/src/app/core/http/component-descriptor.service.ts | 2 +- ui-ngx/src/app/core/http/customer.service.ts | 2 +- ui-ngx/src/app/core/http/dashboard.service.ts | 2 +- ui-ngx/src/app/core/http/device-profile.service.ts | 2 +- ui-ngx/src/app/core/http/device.service.ts | 2 +- ui-ngx/src/app/core/http/domain.service.ts | 2 +- ui-ngx/src/app/core/http/edge.service.ts | 2 +- ui-ngx/src/app/core/http/entities-version-control.service.ts | 2 +- ui-ngx/src/app/core/http/entity-relation.service.ts | 2 +- ui-ngx/src/app/core/http/entity-view.service.ts | 2 +- ui-ngx/src/app/core/http/entity.service.ts | 2 +- ui-ngx/src/app/core/http/event.service.ts | 2 +- ui-ngx/src/app/core/http/git-hub.service.ts | 2 +- ui-ngx/src/app/core/http/http-utils.ts | 2 +- ui-ngx/src/app/core/http/image.service.ts | 2 +- ui-ngx/src/app/core/http/mobile-app.service.ts | 2 +- ui-ngx/src/app/core/http/mobile-application.service.ts | 2 +- ui-ngx/src/app/core/http/notification.service.ts | 2 +- ui-ngx/src/app/core/http/oauth2.service.ts | 2 +- ui-ngx/src/app/core/http/ota-package.service.ts | 2 +- ui-ngx/src/app/core/http/public-api.ts | 2 +- ui-ngx/src/app/core/http/queue.service.ts | 2 +- ui-ngx/src/app/core/http/resource.service.ts | 2 +- ui-ngx/src/app/core/http/rule-chain.service.ts | 2 +- ui-ngx/src/app/core/http/tenant-profile.service.ts | 2 +- ui-ngx/src/app/core/http/tenant.service.ts | 2 +- ui-ngx/src/app/core/http/trendz-settings.service.ts | 2 +- ui-ngx/src/app/core/http/two-factor-authentication.service.ts | 2 +- ui-ngx/src/app/core/http/ui-settings.service.ts | 2 +- ui-ngx/src/app/core/http/usage-info.service.ts | 2 +- ui-ngx/src/app/core/http/user-settings.service.ts | 2 +- ui-ngx/src/app/core/http/user.service.ts | 2 +- ui-ngx/src/app/core/http/widget.service.ts | 2 +- .../src/app/core/interceptors/entity-conflict.interceptor.ts | 2 +- ui-ngx/src/app/core/interceptors/global-http-interceptor.ts | 2 +- ui-ngx/src/app/core/interceptors/interceptor-config.ts | 2 +- ui-ngx/src/app/core/interceptors/interceptor-http-params.ts | 2 +- ui-ngx/src/app/core/interceptors/interceptor.util.ts | 2 +- ui-ngx/src/app/core/interceptors/load.actions.ts | 2 +- ui-ngx/src/app/core/interceptors/load.models.ts | 2 +- ui-ngx/src/app/core/interceptors/load.reducer.ts | 2 +- ui-ngx/src/app/core/interceptors/load.selectors.ts | 2 +- ui-ngx/src/app/core/local-storage/local-storage.service.ts | 2 +- ui-ngx/src/app/core/meta-reducers/debug.reducer.ts | 2 +- .../meta-reducers/init-state-from-local-storage.reducer.ts | 2 +- ui-ngx/src/app/core/notification/notification.actions.ts | 2 +- ui-ngx/src/app/core/notification/notification.effects.ts | 2 +- ui-ngx/src/app/core/notification/notification.models.ts | 2 +- ui-ngx/src/app/core/notification/notification.reducer.ts | 2 +- ui-ngx/src/app/core/operator/enterZone.ts | 2 +- ui-ngx/src/app/core/public-api.ts | 2 +- ui-ngx/src/app/core/services/active-component.service.ts | 2 +- ui-ngx/src/app/core/services/broadcast.models.ts | 2 +- ui-ngx/src/app/core/services/broadcast.service.ts | 2 +- ui-ngx/src/app/core/services/dashboard-utils.service.ts | 2 +- ui-ngx/src/app/core/services/dialog.service.ts | 2 +- .../src/app/core/services/dynamic-component-factory.service.ts | 2 +- ui-ngx/src/app/core/services/help.service.ts | 2 +- ui-ngx/src/app/core/services/item-buffer.service.ts | 2 +- ui-ngx/src/app/core/services/menu.models.ts | 2 +- ui-ngx/src/app/core/services/menu.service.ts | 2 +- ui-ngx/src/app/core/services/mobile.service.ts | 2 +- ui-ngx/src/app/core/services/public-api.ts | 2 +- ui-ngx/src/app/core/services/raf.service.ts | 2 +- ui-ngx/src/app/core/services/resources.service.ts | 2 +- .../src/app/core/services/script/node-script-test.service.ts | 2 +- ui-ngx/src/app/core/services/time.service.ts | 2 +- ui-ngx/src/app/core/services/title.service.ts | 2 +- ui-ngx/src/app/core/services/toast-notification.service.ts | 2 +- ui-ngx/src/app/core/services/unit.service.ts | 2 +- ui-ngx/src/app/core/services/utils.service.ts | 2 +- ui-ngx/src/app/core/services/window.service.ts | 2 +- ui-ngx/src/app/core/settings/settings.actions.ts | 2 +- ui-ngx/src/app/core/settings/settings.effects.ts | 2 +- ui-ngx/src/app/core/settings/settings.models.ts | 2 +- ui-ngx/src/app/core/settings/settings.reducer.ts | 2 +- ui-ngx/src/app/core/settings/settings.selectors.ts | 2 +- ui-ngx/src/app/core/settings/settings.utils.ts | 2 +- ui-ngx/src/app/core/translate/missing-translate-handler.ts | 2 +- ui-ngx/src/app/core/translate/translate-default-compiler.ts | 2 +- ui-ngx/src/app/core/translate/translate-default-loader.ts | 2 +- ui-ngx/src/app/core/translate/translate-default-parser.ts | 2 +- ui-ngx/src/app/core/utils.ts | 2 +- ui-ngx/src/app/core/ws/notification-websocket.service.ts | 2 +- ui-ngx/src/app/core/ws/public-api.ts | 2 +- ui-ngx/src/app/core/ws/telemetry-websocket.service.ts | 2 +- ui-ngx/src/app/core/ws/websocket.service.ts | 2 +- ui-ngx/src/app/modules/common/modules-map.models.ts | 2 +- ui-ngx/src/app/modules/common/modules-map.ts | 2 +- ui-ngx/src/app/modules/dashboard/dashboard-pages.module.ts | 2 +- .../app/modules/dashboard/dashboard-pages.routing.module.ts | 2 +- ui-ngx/src/app/modules/dashboard/dashboard-routing.module.ts | 2 +- .../home/components/ai-model/ai-model-dialog.component.html | 2 +- .../home/components/ai-model/ai-model-dialog.component.scss | 3 +-- .../home/components/ai-model/ai-model-dialog.component.ts | 2 +- .../ai-model/check-connectivity-dialog.component.html | 2 +- .../ai-model/check-connectivity-dialog.component.scss | 3 +-- .../components/ai-model/check-connectivity-dialog.component.ts | 2 +- .../home/components/alarm/alarm-assignee-panel.component.html | 2 +- .../home/components/alarm/alarm-assignee-panel.component.scss | 2 +- .../home/components/alarm/alarm-assignee-panel.component.ts | 2 +- .../components/alarm/alarm-assignee-select-panel.component.ts | 2 +- .../home/components/alarm/alarm-assignee-select.component.html | 2 +- .../home/components/alarm/alarm-assignee-select.component.ts | 2 +- .../home/components/alarm/alarm-assignee.component.html | 2 +- .../home/components/alarm/alarm-assignee.component.scss | 2 +- .../modules/home/components/alarm/alarm-assignee.component.ts | 2 +- .../home/components/alarm/alarm-comment-dialog.component.html | 2 +- .../home/components/alarm/alarm-comment-dialog.component.ts | 2 +- .../modules/home/components/alarm/alarm-comment.component.html | 2 +- .../modules/home/components/alarm/alarm-comment.component.scss | 2 +- .../modules/home/components/alarm/alarm-comment.component.ts | 2 +- .../home/components/alarm/alarm-details-dialog.component.html | 2 +- .../home/components/alarm/alarm-details-dialog.component.scss | 2 +- .../home/components/alarm/alarm-details-dialog.component.ts | 2 +- .../home/components/alarm/alarm-filter-config.component.html | 2 +- .../home/components/alarm/alarm-filter-config.component.scss | 3 +-- .../home/components/alarm/alarm-filter-config.component.ts | 2 +- .../app/modules/home/components/alarm/alarm-table-config.ts | 2 +- .../home/components/alarm/alarm-table-header.component.html | 2 +- .../home/components/alarm/alarm-table-header.component.scss | 2 +- .../home/components/alarm/alarm-table-header.component.ts | 2 +- .../modules/home/components/alarm/alarm-table.component.html | 2 +- .../modules/home/components/alarm/alarm-table.component.scss | 2 +- .../app/modules/home/components/alarm/alarm-table.component.ts | 2 +- .../alias/aliases-entity-autocomplete.component.html | 2 +- .../components/alias/aliases-entity-autocomplete.component.ts | 2 +- .../alias/aliases-entity-select-panel.component.html | 2 +- .../alias/aliases-entity-select-panel.component.scss | 2 +- .../components/alias/aliases-entity-select-panel.component.ts | 2 +- .../home/components/alias/aliases-entity-select.component.html | 2 +- .../home/components/alias/aliases-entity-select.component.scss | 2 +- .../home/components/alias/aliases-entity-select.component.ts | 2 +- .../home/components/alias/entity-alias-dialog.component.html | 2 +- .../home/components/alias/entity-alias-dialog.component.scss | 2 +- .../home/components/alias/entity-alias-dialog.component.ts | 2 +- .../home/components/alias/entity-aliases-dialog.component.html | 2 +- .../home/components/alias/entity-aliases-dialog.component.scss | 2 +- .../home/components/alias/entity-aliases-dialog.component.ts | 2 +- .../components/attribute/add-attribute-dialog.component.html | 2 +- .../components/attribute/add-attribute-dialog.component.ts | 2 +- .../attribute/add-widget-to-dashboard-dialog.component.html | 2 +- .../attribute/add-widget-to-dashboard-dialog.component.scss | 2 +- .../attribute/add-widget-to-dashboard-dialog.component.ts | 2 +- .../home/components/attribute/attribute-table.component.html | 2 +- .../home/components/attribute/attribute-table.component.scss | 2 +- .../home/components/attribute/attribute-table.component.ts | 2 +- .../attribute/delete-timeseries-panel.component.html | 2 +- .../attribute/delete-timeseries-panel.component.scss | 2 +- .../components/attribute/delete-timeseries-panel.component.ts | 2 +- .../attribute/edit-attribute-value-panel.component.html | 2 +- .../attribute/edit-attribute-value-panel.component.scss | 2 +- .../attribute/edit-attribute-value-panel.component.ts | 2 +- .../audit-log/audit-log-details-dialog.component.html | 2 +- .../audit-log/audit-log-details-dialog.component.scss | 2 +- .../components/audit-log/audit-log-details-dialog.component.ts | 2 +- .../home/components/audit-log/audit-log-table-config.ts | 2 +- .../home/components/audit-log/audit-log-table.component.html | 2 +- .../home/components/audit-log/audit-log-table.component.scss | 2 +- .../home/components/audit-log/audit-log-table.component.ts | 2 +- .../calculated-fields/calculated-fields-table-config.ts | 2 +- .../calculated-fields/calculated-fields-table.component.html | 2 +- .../calculated-fields/calculated-fields-table.component.scss | 2 +- .../calculated-fields/calculated-fields-table.component.ts | 2 +- .../calculated-field-arguments-table.component.html | 2 +- .../calculated-field-arguments-table.component.scss | 2 +- .../calculated-field-arguments-table.component.ts | 2 +- .../debug-dialog/calculated-field-debug-dialog.component.html | 2 +- .../debug-dialog/calculated-field-debug-dialog.component.scss | 2 +- .../debug-dialog/calculated-field-debug-dialog.component.ts | 2 +- .../components/dialog/calculated-field-dialog.component.html | 2 +- .../components/dialog/calculated-field-dialog.component.scss | 3 +-- .../components/dialog/calculated-field-dialog.component.ts | 2 +- .../panel/calculated-field-argument-panel.component.html | 2 +- .../panel/calculated-field-argument-panel.component.scss | 2 +- .../panel/calculated-field-argument-panel.component.ts | 2 +- .../home/components/calculated-fields/components/public-api.ts | 2 +- .../calculated-field-test-arguments.component.html | 2 +- .../calculated-field-test-arguments.component.scss | 2 +- .../calculated-field-test-arguments.component.ts | 2 +- .../calculated-field-script-test-dialog.component.html | 2 +- .../calculated-field-script-test-dialog.component.scss | 3 +-- .../calculated-field-script-test-dialog.component.ts | 2 +- .../components/dashboard-page/add-widget-dialog.component.html | 2 +- .../components/dashboard-page/add-widget-dialog.component.scss | 2 +- .../components/dashboard-page/add-widget-dialog.component.ts | 2 +- .../dashboard-page/dashboard-image-dialog.component.html | 2 +- .../dashboard-page/dashboard-image-dialog.component.scss | 2 +- .../dashboard-page/dashboard-image-dialog.component.ts | 2 +- .../components/dashboard-page/dashboard-page.component.html | 2 +- .../components/dashboard-page/dashboard-page.component.scss | 2 +- .../home/components/dashboard-page/dashboard-page.component.ts | 2 +- .../home/components/dashboard-page/dashboard-page.models.ts | 2 +- .../dashboard-page/dashboard-settings-dialog.component.html | 2 +- .../dashboard-page/dashboard-settings-dialog.component.scss | 2 +- .../dashboard-page/dashboard-settings-dialog.component.ts | 2 +- .../components/dashboard-page/dashboard-state.component.html | 2 +- .../components/dashboard-page/dashboard-state.component.scss | 2 +- .../components/dashboard-page/dashboard-state.component.ts | 2 +- .../components/dashboard-page/dashboard-toolbar.component.html | 2 +- .../components/dashboard-page/dashboard-toolbar.component.scss | 2 +- .../components/dashboard-page/dashboard-toolbar.component.ts | 2 +- .../dashboard-page/dashboard-widget-select.component.html | 2 +- .../dashboard-page/dashboard-widget-select.component.scss | 2 +- .../dashboard-page/dashboard-widget-select.component.ts | 2 +- .../home/components/dashboard-page/edit-widget.component.html | 2 +- .../home/components/dashboard-page/edit-widget.component.scss | 2 +- .../home/components/dashboard-page/edit-widget.component.ts | 2 +- .../layout/add-new-breakpoint-dialog.component.html | 2 +- .../layout/add-new-breakpoint-dialog.component.ts | 2 +- .../dashboard-page/layout/dashboard-layout.component.html | 2 +- .../dashboard-page/layout/dashboard-layout.component.scss | 2 +- .../dashboard-page/layout/dashboard-layout.component.ts | 2 +- .../home/components/dashboard-page/layout/layout.models.ts | 2 +- .../layout/manage-dashboard-layouts-dialog.component.html | 2 +- .../layout/manage-dashboard-layouts-dialog.component.scss | 2 +- .../layout/manage-dashboard-layouts-dialog.component.ts | 2 +- .../dashboard-page/layout/move-widgets-dialog.component.html | 2 +- .../dashboard-page/layout/move-widgets-dialog.component.ts | 2 +- .../layout/select-dashboard-breakpoint.component.html | 2 +- .../layout/select-dashboard-breakpoint.component.scss | 2 +- .../layout/select-dashboard-breakpoint.component.ts | 2 +- .../states/dashboard-state-dialog.component.html | 2 +- .../dashboard-page/states/dashboard-state-dialog.component.ts | 2 +- .../states/default-state-controller.component.html | 2 +- .../states/default-state-controller.component.scss | 2 +- .../states/default-state-controller.component.ts | 2 +- .../states/entity-state-controller.component.html | 2 +- .../states/entity-state-controller.component.scss | 2 +- .../dashboard-page/states/entity-state-controller.component.ts | 2 +- .../states/manage-dashboard-states-dialog.component.html | 2 +- .../states/manage-dashboard-states-dialog.component.models.ts | 2 +- .../states/manage-dashboard-states-dialog.component.scss | 2 +- .../states/manage-dashboard-states-dialog.component.ts | 2 +- .../dashboard-page/states/state-controller.component.ts | 2 +- .../dashboard-page/states/state-controller.models.ts | 2 +- .../dashboard-page/states/states-component.directive.ts | 2 +- .../dashboard-page/states/states-controller.module.ts | 2 +- .../dashboard-page/states/states-controller.service.ts | 2 +- .../dashboard-page/widget-types-panel.component.html | 2 +- .../dashboard-page/widget-types-panel.component.scss | 2 +- .../components/dashboard-page/widget-types-panel.component.ts | 2 +- .../components/dashboard-view/dashboard-view.component.html | 2 +- .../components/dashboard-view/dashboard-view.component.scss | 2 +- .../home/components/dashboard-view/dashboard-view.component.ts | 2 +- .../modules/home/components/dashboard/dashboard.component.html | 2 +- .../modules/home/components/dashboard/dashboard.component.scss | 2 +- .../modules/home/components/dashboard/dashboard.component.ts | 2 +- .../app/modules/home/components/dashboard/layout-button.scss | 2 +- .../dashboard/select-target-layout-dialog.component.html | 2 +- .../dashboard/select-target-layout-dialog.component.ts | 2 +- .../dashboard/select-target-state-dialog.component.html | 2 +- .../dashboard/select-target-state-dialog.component.ts | 2 +- .../app/modules/home/components/details-panel.component.html | 2 +- .../app/modules/home/components/details-panel.component.scss | 2 +- .../src/app/modules/home/components/details-panel.component.ts | 2 +- .../components/device/copy-device-credentials.component.html | 2 +- .../components/device/copy-device-credentials.component.ts | 2 +- .../device/device-credentials-lwm2m-server.component.html | 2 +- .../device/device-credentials-lwm2m-server.component.ts | 2 +- .../components/device/device-credentials-lwm2m.component.html | 2 +- .../components/device/device-credentials-lwm2m.component.scss | 2 +- .../components/device/device-credentials-lwm2m.component.ts | 2 +- .../device/device-credentials-mqtt-basic.component.html | 2 +- .../device/device-credentials-mqtt-basic.component.ts | 2 +- .../home/components/device/device-credentials.component.html | 2 +- .../home/components/device/device-credentials.component.scss | 2 +- .../home/components/device/device-credentials.component.ts | 2 +- .../home/components/device/device-credentials.module.ts | 2 +- .../home/components/device/device-info-filter.component.html | 2 +- .../home/components/device/device-info-filter.component.scss | 2 +- .../home/components/device/device-info-filter.component.ts | 2 +- .../modules/home/components/edge/edge-downlink-table-config.ts | 2 +- .../components/edge/edge-downlink-table-header.component.html | 2 +- .../components/edge/edge-downlink-table-header.component.scss | 2 +- .../components/edge/edge-downlink-table-header.component.ts | 2 +- .../home/components/edge/edge-downlink-table.component.html | 2 +- .../home/components/edge/edge-downlink-table.component.scss | 2 +- .../home/components/edge/edge-downlink-table.component.ts | 2 +- .../home/components/entity/add-entity-dialog.component.html | 2 +- .../home/components/entity/add-entity-dialog.component.scss | 2 +- .../home/components/entity/add-entity-dialog.component.ts | 2 +- .../modules/home/components/entity/contact-based.component.ts | 2 +- .../entity/debug/entity-debug-settings-button.component.html | 2 +- .../entity/debug/entity-debug-settings-button.component.ts | 2 +- .../entity/debug/entity-debug-settings-panel.component.html | 2 +- .../entity/debug/entity-debug-settings-panel.component.ts | 2 +- .../components/entity/debug/entity-debug-settings.model.ts | 2 +- .../components/entity/debug/entity-debug-settings.service.ts | 2 +- .../home/components/entity/entities-table.component.html | 2 +- .../home/components/entity/entities-table.component.scss | 2 +- .../modules/home/components/entity/entities-table.component.ts | 2 +- .../modules/home/components/entity/entity-chips.component.html | 2 +- .../modules/home/components/entity/entity-chips.component.scss | 2 +- .../modules/home/components/entity/entity-chips.component.ts | 2 +- .../home/components/entity/entity-details-page.component.html | 2 +- .../home/components/entity/entity-details-page.component.scss | 2 +- .../home/components/entity/entity-details-page.component.ts | 2 +- .../home/components/entity/entity-details-panel.component.html | 2 +- .../home/components/entity/entity-details-panel.component.scss | 2 +- .../home/components/entity/entity-details-panel.component.ts | 2 +- .../home/components/entity/entity-filter-view.component.html | 2 +- .../home/components/entity/entity-filter-view.component.scss | 2 +- .../home/components/entity/entity-filter-view.component.ts | 2 +- .../home/components/entity/entity-filter.component.html | 2 +- .../home/components/entity/entity-filter.component.scss | 2 +- .../modules/home/components/entity/entity-filter.component.ts | 2 +- .../home/components/entity/entity-table-header.component.ts | 2 +- .../modules/home/components/entity/entity-tabs.component.ts | 2 +- .../src/app/modules/home/components/entity/entity.component.ts | 2 +- .../home/components/event/event-content-dialog.component.html | 2 +- .../home/components/event/event-content-dialog.component.scss | 2 +- .../home/components/event/event-content-dialog.component.ts | 2 +- .../home/components/event/event-filter-panel.component.html | 2 +- .../home/components/event/event-filter-panel.component.scss | 2 +- .../home/components/event/event-filter-panel.component.ts | 2 +- .../app/modules/home/components/event/event-table-config.ts | 2 +- .../home/components/event/event-table-header.component.html | 2 +- .../home/components/event/event-table-header.component.scss | 2 +- .../home/components/event/event-table-header.component.ts | 2 +- .../modules/home/components/event/event-table.component.html | 2 +- .../modules/home/components/event/event-table.component.scss | 2 +- .../app/modules/home/components/event/event-table.component.ts | 2 +- .../components/filter/boolean-filter-predicate.component.html | 2 +- .../components/filter/boolean-filter-predicate.component.ts | 2 +- .../filter/complex-filter-predicate-dialog.component.html | 2 +- .../filter/complex-filter-predicate-dialog.component.ts | 2 +- .../components/filter/complex-filter-predicate.component.html | 2 +- .../components/filter/complex-filter-predicate.component.ts | 2 +- .../modules/home/components/filter/filter-component.models.ts | 2 +- .../home/components/filter/filter-dialog.component.html | 2 +- .../home/components/filter/filter-dialog.component.scss | 2 +- .../modules/home/components/filter/filter-dialog.component.ts | 2 +- .../components/filter/filter-predicate-list.component.html | 2 +- .../components/filter/filter-predicate-list.component.scss | 2 +- .../home/components/filter/filter-predicate-list.component.ts | 2 +- .../components/filter/filter-predicate-value.component.html | 2 +- .../home/components/filter/filter-predicate-value.component.ts | 2 +- .../home/components/filter/filter-predicate.component.html | 2 +- .../home/components/filter/filter-predicate.component.ts | 2 +- .../app/modules/home/components/filter/filter-predicate.scss | 2 +- .../modules/home/components/filter/filter-text.component.html | 2 +- .../modules/home/components/filter/filter-text.component.scss | 2 +- .../modules/home/components/filter/filter-text.component.ts | 2 +- .../components/filter/filter-user-info-dialog.component.html | 2 +- .../components/filter/filter-user-info-dialog.component.ts | 2 +- .../home/components/filter/filter-user-info.component.html | 2 +- .../home/components/filter/filter-user-info.component.ts | 2 +- .../home/components/filter/filters-dialog.component.html | 2 +- .../home/components/filter/filters-dialog.component.scss | 2 +- .../modules/home/components/filter/filters-dialog.component.ts | 2 +- .../home/components/filter/filters-edit-panel.component.html | 2 +- .../home/components/filter/filters-edit-panel.component.scss | 2 +- .../home/components/filter/filters-edit-panel.component.ts | 2 +- .../modules/home/components/filter/filters-edit.component.html | 2 +- .../modules/home/components/filter/filters-edit.component.scss | 2 +- .../modules/home/components/filter/filters-edit.component.ts | 2 +- .../home/components/filter/key-filter-dialog.component.html | 2 +- .../home/components/filter/key-filter-dialog.component.scss | 2 +- .../home/components/filter/key-filter-dialog.component.ts | 2 +- .../home/components/filter/key-filter-list.component.html | 2 +- .../home/components/filter/key-filter-list.component.scss | 2 +- .../home/components/filter/key-filter-list.component.ts | 2 +- .../components/filter/numeric-filter-predicate.component.html | 2 +- .../components/filter/numeric-filter-predicate.component.ts | 2 +- .../components/filter/string-filter-predicate.component.html | 2 +- .../components/filter/string-filter-predicate.component.ts | 2 +- .../home/components/filter/user-filter-dialog.component.html | 2 +- .../home/components/filter/user-filter-dialog.component.scss | 2 +- .../home/components/filter/user-filter-dialog.component.ts | 2 +- .../home/components/github-badge/github-badge.component.html | 2 +- .../home/components/github-badge/github-badge.component.scss | 2 +- .../home/components/github-badge/github-badge.component.ts | 2 +- .../src/app/modules/home/components/home-components.module.ts | 2 +- .../components/notification/notification-bell.component.html | 2 +- .../components/notification/notification-bell.component.ts | 2 +- .../notification/send-notification-button.component.html | 2 +- .../notification/send-notification-button.component.ts | 2 +- .../notification/show-notification-popover.component.html | 2 +- .../notification/show-notification-popover.component.scss | 2 +- .../notification/show-notification-popover.component.ts | 2 +- .../profile/add-device-profile-dialog.component.html | 2 +- .../profile/add-device-profile-dialog.component.scss | 2 +- .../components/profile/add-device-profile-dialog.component.ts | 2 +- .../alarm/alarm-duration-predicate-value.component.html | 2 +- .../profile/alarm/alarm-duration-predicate-value.component.ts | 2 +- .../profile/alarm/alarm-dynamic-value.component.html | 2 +- .../components/profile/alarm/alarm-dynamic-value.component.ts | 2 +- .../profile/alarm/alarm-rule-condition-dialog.component.html | 2 +- .../profile/alarm/alarm-rule-condition-dialog.component.scss | 2 +- .../profile/alarm/alarm-rule-condition-dialog.component.ts | 2 +- .../profile/alarm/alarm-rule-condition.component.html | 2 +- .../profile/alarm/alarm-rule-condition.component.scss | 2 +- .../components/profile/alarm/alarm-rule-condition.component.ts | 2 +- .../home/components/profile/alarm/alarm-rule.component.html | 2 +- .../home/components/profile/alarm/alarm-rule.component.scss | 2 +- .../home/components/profile/alarm/alarm-rule.component.ts | 2 +- .../profile/alarm/alarm-schedule-dialog.component.html | 2 +- .../profile/alarm/alarm-schedule-dialog.component.ts | 2 +- .../profile/alarm/alarm-schedule-info.component.html | 2 +- .../profile/alarm/alarm-schedule-info.component.scss | 2 +- .../components/profile/alarm/alarm-schedule-info.component.ts | 2 +- .../components/profile/alarm/alarm-schedule.component.html | 2 +- .../components/profile/alarm/alarm-schedule.component.scss | 2 +- .../home/components/profile/alarm/alarm-schedule.component.ts | 2 +- .../components/profile/alarm/create-alarm-rules.component.html | 2 +- .../components/profile/alarm/create-alarm-rules.component.scss | 2 +- .../components/profile/alarm/create-alarm-rules.component.ts | 2 +- .../profile/alarm/device-profile-alarm.component.html | 2 +- .../profile/alarm/device-profile-alarm.component.scss | 2 +- .../components/profile/alarm/device-profile-alarm.component.ts | 2 +- .../profile/alarm/device-profile-alarms.component.html | 2 +- .../profile/alarm/device-profile-alarms.component.scss | 2 +- .../profile/alarm/device-profile-alarms.component.ts | 2 +- .../profile/alarm/edit-alarm-details-dialog.component.html | 2 +- .../profile/alarm/edit-alarm-details-dialog.component.ts | 2 +- .../profile/asset-profile-autocomplete.component.html | 2 +- .../profile/asset-profile-autocomplete.component.scss | 2 +- .../components/profile/asset-profile-autocomplete.component.ts | 2 +- .../components/profile/asset-profile-dialog.component.html | 2 +- .../home/components/profile/asset-profile-dialog.component.ts | 2 +- .../home/components/profile/asset-profile.component.html | 2 +- .../modules/home/components/profile/asset-profile.component.ts | 2 +- .../profile/device-profile-autocomplete.component.html | 2 +- .../profile/device-profile-autocomplete.component.scss | 2 +- .../profile/device-profile-autocomplete.component.ts | 2 +- .../components/profile/device-profile-dialog.component.html | 2 +- .../home/components/profile/device-profile-dialog.component.ts | 2 +- .../device-profile-provision-configuration.component.html | 2 +- .../device-profile-provision-configuration.component.ts | 2 +- .../home/components/profile/device-profile.component.html | 2 +- .../home/components/profile/device-profile.component.ts | 2 +- .../coap-device-profile-transport-configuration.component.html | 2 +- .../coap-device-profile-transport-configuration.component.scss | 2 +- .../coap-device-profile-transport-configuration.component.ts | 2 +- .../profile/device/common/device-profile-common.module.ts | 2 +- .../profile/device/common/power-mode-setting.component.html | 2 +- .../profile/device/common/power-mode-setting.component.ts | 2 +- .../profile/device/common/time-unit-select.component.html | 2 +- .../profile/device/common/time-unit-select.component.ts | 2 +- .../device/default-device-profile-configuration.component.html | 2 +- .../device/default-device-profile-configuration.component.ts | 2 +- ...fault-device-profile-transport-configuration.component.html | 2 +- ...default-device-profile-transport-configuration.component.ts | 2 +- .../profile/device/device-profile-configuration.component.html | 2 +- .../profile/device/device-profile-configuration.component.ts | 2 +- .../device-profile-transport-configuration.component.html | 2 +- .../device/device-profile-transport-configuration.component.ts | 2 +- .../device/lwm2m/lwm2m-attributes-dialog.component.html | 2 +- .../profile/device/lwm2m/lwm2m-attributes-dialog.component.ts | 2 +- .../device/lwm2m/lwm2m-attributes-key-list.component.html | 2 +- .../device/lwm2m/lwm2m-attributes-key-list.component.scss | 2 +- .../device/lwm2m/lwm2m-attributes-key-list.component.ts | 2 +- .../profile/device/lwm2m/lwm2m-attributes.component.html | 2 +- .../profile/device/lwm2m/lwm2m-attributes.component.ts | 2 +- .../lwm2m-bootstrap-add-config-server-dialog.component.html | 2 +- .../lwm2m-bootstrap-add-config-server-dialog.component.ts | 2 +- .../device/lwm2m/lwm2m-bootstrap-config-servers.component.html | 2 +- .../device/lwm2m/lwm2m-bootstrap-config-servers.component.ts | 2 +- .../device/lwm2m/lwm2m-device-config-server.component.html | 2 +- .../device/lwm2m/lwm2m-device-config-server.component.ts | 2 +- ...lwm2m-device-profile-transport-configuration.component.html | 2 +- ...lwm2m-device-profile-transport-configuration.component.scss | 2 +- .../lwm2m-device-profile-transport-configuration.component.ts | 2 +- .../lwm2m/lwm2m-object-add-instances-dialog.component.html | 2 +- .../lwm2m/lwm2m-object-add-instances-dialog.component.ts | 2 +- .../lwm2m/lwm2m-object-add-instances-list.component.html | 2 +- .../device/lwm2m/lwm2m-object-add-instances-list.component.ts | 2 +- .../profile/device/lwm2m/lwm2m-object-list.component.html | 2 +- .../profile/device/lwm2m/lwm2m-object-list.component.ts | 2 +- .../lwm2m-observe-attr-telemetry-instances.component.html | 2 +- .../lwm2m-observe-attr-telemetry-instances.component.scss | 2 +- .../lwm2m/lwm2m-observe-attr-telemetry-instances.component.ts | 2 +- .../lwm2m-observe-attr-telemetry-resources.component.html | 2 +- .../lwm2m-observe-attr-telemetry-resources.component.scss | 2 +- .../lwm2m/lwm2m-observe-attr-telemetry-resources.component.ts | 2 +- .../device/lwm2m/lwm2m-observe-attr-telemetry.component.html | 2 +- .../device/lwm2m/lwm2m-observe-attr-telemetry.component.scss | 2 +- .../device/lwm2m/lwm2m-observe-attr-telemetry.component.ts | 2 +- .../profile/device/lwm2m/lwm2m-profile-components.module.ts | 2 +- .../profile/device/lwm2m/lwm2m-profile-config.models.ts | 2 +- .../mqtt-device-profile-transport-configuration.component.html | 2 +- .../mqtt-device-profile-transport-configuration.component.scss | 2 +- .../mqtt-device-profile-transport-configuration.component.ts | 2 +- .../snmp-device-profile-communication-config.component.html | 2 +- .../snmp-device-profile-communication-config.component.scss | 2 +- .../snmp/snmp-device-profile-communication-config.component.ts | 2 +- .../device/snmp/snmp-device-profile-mapping.component.html | 2 +- .../device/snmp/snmp-device-profile-mapping.component.scss | 2 +- .../device/snmp/snmp-device-profile-mapping.component.ts | 2 +- .../snmp-device-profile-transport-configuration.component.html | 2 +- .../snmp-device-profile-transport-configuration.component.ts | 2 +- .../device/snmp/snmp-device-profile-transport.module.ts | 2 +- .../profile/queue/tenant-profile-queues.component.html | 2 +- .../profile/queue/tenant-profile-queues.component.scss | 2 +- .../profile/queue/tenant-profile-queues.component.ts | 2 +- .../profile/tenant-profile-autocomplete.component.html | 2 +- .../profile/tenant-profile-autocomplete.component.scss | 2 +- .../profile/tenant-profile-autocomplete.component.ts | 2 +- .../home/components/profile/tenant-profile-data.component.html | 2 +- .../home/components/profile/tenant-profile-data.component.ts | 2 +- .../components/profile/tenant-profile-dialog.component.html | 2 +- .../components/profile/tenant-profile-dialog.component.scss | 2 +- .../home/components/profile/tenant-profile-dialog.component.ts | 2 +- .../home/components/profile/tenant-profile.component.html | 2 +- .../home/components/profile/tenant-profile.component.scss | 2 +- .../home/components/profile/tenant-profile.component.ts | 2 +- .../tenant/default-tenant-profile-configuration.component.html | 2 +- .../tenant/default-tenant-profile-configuration.component.scss | 2 +- .../tenant/default-tenant-profile-configuration.component.ts | 2 +- .../rate-limits/rate-limits-details-dialog.component.html | 2 +- .../tenant/rate-limits/rate-limits-details-dialog.component.ts | 2 +- .../profile/tenant/rate-limits/rate-limits-list.component.html | 2 +- .../profile/tenant/rate-limits/rate-limits-list.component.scss | 2 +- .../profile/tenant/rate-limits/rate-limits-list.component.ts | 2 +- .../profile/tenant/rate-limits/rate-limits-text.component.html | 2 +- .../profile/tenant/rate-limits/rate-limits-text.component.scss | 2 +- .../profile/tenant/rate-limits/rate-limits-text.component.ts | 2 +- .../profile/tenant/rate-limits/rate-limits.component.html | 2 +- .../profile/tenant/rate-limits/rate-limits.component.scss | 2 +- .../profile/tenant/rate-limits/rate-limits.component.ts | 2 +- .../profile/tenant/rate-limits/rate-limits.models.ts | 2 +- .../profile/tenant/tenant-profile-configuration.component.html | 2 +- .../profile/tenant/tenant-profile-configuration.component.ts | 2 +- ui-ngx/src/app/modules/home/components/public-api.ts | 2 +- .../modules/home/components/queue/queue-form.component.html | 2 +- .../modules/home/components/queue/queue-form.component.scss | 2 +- .../app/modules/home/components/queue/queue-form.component.ts | 2 +- .../home/components/relation/relation-dialog.component.html | 2 +- .../home/components/relation/relation-dialog.component.scss | 2 +- .../home/components/relation/relation-dialog.component.ts | 2 +- .../home/components/relation/relation-filters.component.html | 2 +- .../home/components/relation/relation-filters.component.scss | 2 +- .../home/components/relation/relation-filters.component.ts | 2 +- .../home/components/relation/relation-table.component.html | 2 +- .../home/components/relation/relation-table.component.scss | 2 +- .../home/components/relation/relation-table.component.ts | 2 +- .../home/components/resources/resources-dialog.component.html | 2 +- .../home/components/resources/resources-dialog.component.scss | 3 +-- .../home/components/resources/resources-dialog.component.ts | 2 +- .../home/components/resources/resources-library.component.html | 2 +- .../home/components/resources/resources-library.component.ts | 2 +- .../src/app/modules/home/components/router-tabs.component.html | 2 +- .../src/app/modules/home/components/router-tabs.component.scss | 2 +- .../src/app/modules/home/components/router-tabs.component.ts | 2 +- .../rule-chain/rule-chain-autocomplete.component.html | 2 +- .../components/rule-chain/rule-chain-autocomplete.component.ts | 2 +- .../rule-node/action/action-rule-node-config.module.ts | 2 +- .../action/advanced-processing-setting-row.component.html | 2 +- .../action/advanced-processing-setting-row.component.ts | 2 +- .../action/advanced-processing-setting.component.html | 2 +- .../rule-node/action/advanced-processing-setting.component.ts | 2 +- .../rule-node/action/assign-customer-config.component.html | 2 +- .../rule-node/action/assign-customer-config.component.ts | 2 +- .../rule-node/action/attributes-config.component.html | 2 +- .../components/rule-node/action/attributes-config.component.ts | 2 +- .../components/rule-node/action/attributes-config.model.ts | 2 +- .../rule-node/action/clear-alarm-config.component.html | 2 +- .../rule-node/action/clear-alarm-config.component.ts | 2 +- .../rule-node/action/create-alarm-config.component.html | 2 +- .../rule-node/action/create-alarm-config.component.ts | 2 +- .../rule-node/action/create-relation-config.component.html | 2 +- .../rule-node/action/create-relation-config.component.ts | 2 +- .../rule-node/action/delete-attributes-config.component.html | 2 +- .../rule-node/action/delete-attributes-config.component.ts | 2 +- .../rule-node/action/delete-relation-config.component.html | 2 +- .../rule-node/action/delete-relation-config.component.ts | 2 +- .../rule-node/action/device-profile-config.component.html | 2 +- .../rule-node/action/device-profile-config.component.ts | 2 +- .../rule-node/action/device-state-config.component.html | 2 +- .../rule-node/action/device-state-config.component.ts | 2 +- .../rule-node/action/generator-config.component.html | 2 +- .../rule-node/action/generator-config.component.scss | 2 +- .../components/rule-node/action/generator-config.component.ts | 2 +- .../rule-node/action/gps-geo-action-config.component.html | 2 +- .../rule-node/action/gps-geo-action-config.component.scss | 2 +- .../rule-node/action/gps-geo-action-config.component.ts | 2 +- .../home/components/rule-node/action/log-config.component.html | 2 +- .../home/components/rule-node/action/log-config.component.ts | 2 +- .../rule-node/action/math-function-config.component.html | 2 +- .../rule-node/action/math-function-config.component.scss | 2 +- .../rule-node/action/math-function-config.component.ts | 2 +- .../rule-node/action/msg-count-config.component.html | 2 +- .../components/rule-node/action/msg-count-config.component.ts | 2 +- .../rule-node/action/msg-delay-config.component.html | 2 +- .../components/rule-node/action/msg-delay-config.component.ts | 2 +- .../rule-node/action/push-to-cloud-config.component.html | 2 +- .../rule-node/action/push-to-cloud-config.component.ts | 2 +- .../rule-node/action/push-to-edge-config.component.html | 2 +- .../rule-node/action/push-to-edge-config.component.ts | 2 +- .../rule-node/action/rpc-reply-config.component.html | 2 +- .../components/rule-node/action/rpc-reply-config.component.ts | 2 +- .../rule-node/action/rpc-request-config.component.html | 2 +- .../rule-node/action/rpc-request-config.component.ts | 2 +- .../action/save-to-custom-table-config.component.html | 2 +- .../rule-node/action/save-to-custom-table-config.component.ts | 2 +- .../action/send-rest-api-call-reply-config.component.html | 2 +- .../action/send-rest-api-call-reply-config.component.ts | 2 +- .../rule-node/action/timeseries-config.component.html | 2 +- .../components/rule-node/action/timeseries-config.component.ts | 2 +- .../components/rule-node/action/timeseries-config.models.ts | 2 +- .../rule-node/action/unassign-customer-config.component.html | 2 +- .../rule-node/action/unassign-customer-config.component.ts | 2 +- .../rule-node/common/alarm-status-select.component.html | 2 +- .../rule-node/common/alarm-status-select.component.scss | 2 +- .../rule-node/common/alarm-status-select.component.ts | 2 +- .../rule-node/common/arguments-map-config.component.html | 2 +- .../rule-node/common/arguments-map-config.component.scss | 2 +- .../rule-node/common/arguments-map-config.component.ts | 2 +- .../rule-node/common/common-rule-node-config.module.ts | 2 +- .../rule-node/common/credentials-config.component.html | 2 +- .../rule-node/common/credentials-config.component.ts | 2 +- .../common/device-relations-query-config.component.html | 2 +- .../common/device-relations-query-config.component.scss | 2 +- .../common/device-relations-query-config.component.ts | 2 +- .../components/rule-node/common/example-hint.component.html | 2 +- .../home/components/rule-node/common/example-hint.component.ts | 2 +- .../rule-node/common/kv-map-config-old.component.html | 2 +- .../rule-node/common/kv-map-config-old.component.scss | 2 +- .../components/rule-node/common/kv-map-config-old.component.ts | 2 +- .../components/rule-node/common/kv-map-config.component.html | 2 +- .../components/rule-node/common/kv-map-config.component.scss | 2 +- .../components/rule-node/common/kv-map-config.component.ts | 2 +- .../rule-node/common/math-function-autocomplete.component.html | 2 +- .../rule-node/common/math-function-autocomplete.component.ts | 2 +- .../rule-node/common/message-types-config.component.html | 2 +- .../rule-node/common/message-types-config.component.ts | 2 +- .../rule-node/common/msg-metadata-chip.component.html | 2 +- .../components/rule-node/common/msg-metadata-chip.component.ts | 2 +- .../common/output-message-type-autocomplete.component.html | 2 +- .../common/output-message-type-autocomplete.component.ts | 2 +- .../rule-node/common/relations-query-config-old.component.html | 2 +- .../rule-node/common/relations-query-config-old.component.ts | 2 +- .../rule-node/common/relations-query-config.component.html | 2 +- .../rule-node/common/relations-query-config.component.ts | 2 +- .../rule-node/common/select-attributes.component.html | 2 +- .../components/rule-node/common/select-attributes.component.ts | 2 +- .../components/rule-node/common/sv-map-config.component.html | 2 +- .../components/rule-node/common/sv-map-config.component.scss | 2 +- .../components/rule-node/common/sv-map-config.component.ts | 2 +- .../components/rule-node/common/time-unit-input.component.html | 2 +- .../components/rule-node/common/time-unit-input.component.ts | 2 +- .../home/components/rule-node/empty-config.component.ts | 2 +- .../rule-node/enrichment/calculate-delta-config.component.html | 2 +- .../rule-node/enrichment/calculate-delta-config.component.ts | 2 +- .../enrichment/customer-attributes-config.component.html | 2 +- .../enrichment/customer-attributes-config.component.scss | 2 +- .../enrichment/customer-attributes-config.component.ts | 2 +- .../enrichment/device-attributes-config.component.html | 2 +- .../rule-node/enrichment/device-attributes-config.component.ts | 2 +- .../rule-node/enrichment/enrichment-rule-node-core.module.ts | 2 +- .../rule-node/enrichment/entity-details-config.component.html | 2 +- .../rule-node/enrichment/entity-details-config.component.ts | 2 +- .../enrichment/fetch-device-credentials-config.component.html | 2 +- .../enrichment/fetch-device-credentials-config.component.ts | 2 +- .../get-telemetry-from-database-config.component.html | 2 +- .../get-telemetry-from-database-config.component.scss | 2 +- .../enrichment/get-telemetry-from-database-config.component.ts | 2 +- .../enrichment/originator-attributes-config.component.html | 2 +- .../enrichment/originator-attributes-config.component.ts | 2 +- .../enrichment/originator-fields-config.component.html | 2 +- .../rule-node/enrichment/originator-fields-config.component.ts | 2 +- .../enrichment/related-attributes-config.component.html | 2 +- .../enrichment/related-attributes-config.component.ts | 2 +- .../enrichment/tenant-attributes-config.component.html | 2 +- .../enrichment/tenant-attributes-config.component.scss | 2 +- .../rule-node/enrichment/tenant-attributes-config.component.ts | 2 +- .../components/rule-node/external/ai-config.component.html | 2 +- .../home/components/rule-node/external/ai-config.component.ts | 2 +- .../rule-node/external/azure-iot-hub-config.component.html | 2 +- .../rule-node/external/azure-iot-hub-config.component.ts | 2 +- .../rule-node/external/external-rule-node-config.module.ts | 2 +- .../components/rule-node/external/kafka-config.component.html | 2 +- .../components/rule-node/external/kafka-config.component.ts | 2 +- .../components/rule-node/external/lambda-config.component.html | 2 +- .../components/rule-node/external/lambda-config.component.ts | 2 +- .../components/rule-node/external/mqtt-config.component.html | 2 +- .../components/rule-node/external/mqtt-config.component.scss | 2 +- .../components/rule-node/external/mqtt-config.component.ts | 2 +- .../rule-node/external/notification-config.component.html | 2 +- .../rule-node/external/notification-config.component.ts | 2 +- .../components/rule-node/external/pubsub-config.component.html | 2 +- .../components/rule-node/external/pubsub-config.component.ts | 2 +- .../rule-node/external/rabbit-mq-config.component.html | 2 +- .../rule-node/external/rabbit-mq-config.component.ts | 2 +- .../rule-node/external/rest-api-call-config.component.html | 2 +- .../rule-node/external/rest-api-call-config.component.ts | 2 +- .../rule-node/external/send-email-config.component.html | 2 +- .../rule-node/external/send-email-config.component.ts | 2 +- .../rule-node/external/send-sms-config.component.html | 2 +- .../components/rule-node/external/send-sms-config.component.ts | 2 +- .../components/rule-node/external/slack-config.component.html | 2 +- .../components/rule-node/external/slack-config.component.scss | 2 +- .../components/rule-node/external/slack-config.component.ts | 2 +- .../components/rule-node/external/sns-config.component.html | 2 +- .../home/components/rule-node/external/sns-config.component.ts | 2 +- .../components/rule-node/external/sqs-config.component.html | 2 +- .../home/components/rule-node/external/sqs-config.component.ts | 2 +- .../rule-node/filter/check-alarm-status.component.html | 2 +- .../rule-node/filter/check-alarm-status.component.ts | 2 +- .../rule-node/filter/check-message-config.component.html | 2 +- .../rule-node/filter/check-message-config.component.ts | 2 +- .../rule-node/filter/check-relation-config.component.html | 2 +- .../rule-node/filter/check-relation-config.component.scss | 2 +- .../rule-node/filter/check-relation-config.component.ts | 2 +- .../rule-node/filter/filter-rule-node-config.module.ts | 2 +- .../rule-node/filter/gps-geo-filter-config.component.html | 2 +- .../rule-node/filter/gps-geo-filter-config.component.scss | 2 +- .../rule-node/filter/gps-geo-filter-config.component.ts | 2 +- .../rule-node/filter/message-type-config.component.html | 2 +- .../rule-node/filter/message-type-config.component.ts | 2 +- .../rule-node/filter/originator-type-config.component.html | 2 +- .../rule-node/filter/originator-type-config.component.ts | 2 +- .../components/rule-node/filter/script-config.component.html | 2 +- .../components/rule-node/filter/script-config.component.ts | 2 +- .../components/rule-node/filter/switch-config.component.html | 2 +- .../components/rule-node/filter/switch-config.component.ts | 2 +- .../components/rule-node/flow/flow-rule-node-config.module.ts | 2 +- .../components/rule-node/flow/rule-chain-input.component.html | 2 +- .../components/rule-node/flow/rule-chain-input.component.ts | 2 +- .../components/rule-node/flow/rule-chain-output.component.html | 2 +- .../components/rule-node/flow/rule-chain-output.component.ts | 2 +- .../home/components/rule-node/rule-node-config.models.ts | 2 +- .../home/components/rule-node/rule-node-config.module.ts | 2 +- .../transformation/change-originator-config.component.html | 2 +- .../transformation/change-originator-config.component.ts | 2 +- .../rule-node/transformation/copy-keys-config.component.html | 2 +- .../rule-node/transformation/copy-keys-config.component.ts | 2 +- .../transformation/deduplication-config.component.html | 2 +- .../rule-node/transformation/deduplication-config.component.ts | 2 +- .../rule-node/transformation/delete-keys-config.component.html | 2 +- .../rule-node/transformation/delete-keys-config.component.ts | 2 +- .../transformation/node-json-path-config.component.html | 2 +- .../transformation/node-json-path-config.component.ts | 2 +- .../rule-node/transformation/rename-keys-config.component.html | 2 +- .../rule-node/transformation/rename-keys-config.component.scss | 2 +- .../rule-node/transformation/rename-keys-config.component.ts | 2 +- .../rule-node/transformation/script-config.component.html | 2 +- .../rule-node/transformation/script-config.component.ts | 2 +- .../rule-node/transformation/to-email-config.component.html | 2 +- .../rule-node/transformation/to-email-config.component.scss | 2 +- .../rule-node/transformation/to-email-config.component.ts | 2 +- .../transformation/transformation-rule-node-config.module.ts | 2 +- .../modules/home/components/shared-home-components.module.ts | 2 +- .../sms/aws-sns-provider-configuration.component.html | 2 +- .../components/sms/aws-sns-provider-configuration.component.ts | 2 +- .../sms/smpp-sms-provider-configuration.component.html | 2 +- .../sms/smpp-sms-provider-configuration.component.ts | 2 +- .../components/sms/sms-provider-configuration.component.html | 2 +- .../components/sms/sms-provider-configuration.component.ts | 2 +- .../sms/twilio-sms-provider-configuration.component.html | 2 +- .../sms/twilio-sms-provider-configuration.component.ts | 2 +- ui-ngx/src/app/modules/home/components/tokens.ts | 2 +- .../home/components/vc/auto-commit-settings.component.html | 2 +- .../home/components/vc/auto-commit-settings.component.scss | 2 +- .../home/components/vc/auto-commit-settings.component.ts | 2 +- .../home/components/vc/complex-version-create.component.html | 2 +- .../home/components/vc/complex-version-create.component.ts | 2 +- .../home/components/vc/complex-version-load.component.html | 2 +- .../home/components/vc/complex-version-load.component.ts | 2 +- .../components/vc/entity-types-version-create.component.html | 2 +- .../components/vc/entity-types-version-create.component.ts | 2 +- .../components/vc/entity-types-version-load.component.html | 2 +- .../home/components/vc/entity-types-version-load.component.ts | 2 +- .../home/components/vc/entity-types-version.component.scss | 2 +- .../home/components/vc/entity-version-create.component.html | 2 +- .../home/components/vc/entity-version-create.component.ts | 2 +- .../home/components/vc/entity-version-diff.component.html | 2 +- .../home/components/vc/entity-version-diff.component.scss | 2 +- .../home/components/vc/entity-version-diff.component.ts | 2 +- .../home/components/vc/entity-version-restore.component.html | 2 +- .../home/components/vc/entity-version-restore.component.ts | 2 +- .../home/components/vc/entity-versions-table.component.html | 2 +- .../home/components/vc/entity-versions-table.component.scss | 2 +- .../home/components/vc/entity-versions-table.component.ts | 2 +- .../components/vc/remove-other-entities-confirm.component.html | 2 +- .../components/vc/remove-other-entities-confirm.component.ts | 2 +- .../home/components/vc/repository-settings.component.html | 2 +- .../home/components/vc/repository-settings.component.scss | 2 +- .../home/components/vc/repository-settings.component.ts | 2 +- .../modules/home/components/vc/version-control.component.html | 2 +- .../modules/home/components/vc/version-control.component.scss | 2 +- .../modules/home/components/vc/version-control.component.ts | 2 +- ui-ngx/src/app/modules/home/components/vc/version-control.scss | 2 +- .../widget/action/manage-widget-actions-dialog.component.html | 2 +- .../widget/action/manage-widget-actions-dialog.component.ts | 2 +- .../widget/action/manage-widget-actions.component.html | 2 +- .../widget/action/manage-widget-actions.component.models.ts | 2 +- .../widget/action/manage-widget-actions.component.scss | 2 +- .../widget/action/manage-widget-actions.component.ts | 2 +- .../widget/action/widget-action-dialog.component.html | 2 +- .../components/widget/action/widget-action-dialog.component.ts | 2 +- .../config/basic/alarm/alarm-count-basic-config.component.html | 2 +- .../config/basic/alarm/alarm-count-basic-config.component.ts | 2 +- .../basic/alarm/alarms-table-basic-config.component.html | 2 +- .../config/basic/alarm/alarms-table-basic-config.component.ts | 2 +- .../home/components/widget/config/basic/basic-config.scss | 2 +- .../widget/config/basic/basic-widget-config.module.ts | 2 +- .../basic/button/action-button-basic-config.component.html | 2 +- .../basic/button/action-button-basic-config.component.ts | 2 +- .../basic/button/command-button-basic-config.component.html | 2 +- .../basic/button/command-button-basic-config.component.ts | 2 +- .../basic/button/power-button-basic-config.component.html | 2 +- .../config/basic/button/power-button-basic-config.component.ts | 2 +- .../basic/button/segmented-button-basic-config.component.html | 2 +- .../basic/button/segmented-button-basic-config.component.ts | 2 +- .../basic/button/toggle-button-basic-config.component.html | 2 +- .../basic/button/toggle-button-basic-config.component.ts | 2 +- .../config/basic/cards/aggregated-data-key-row.component.html | 2 +- .../config/basic/cards/aggregated-data-key-row.component.scss | 2 +- .../config/basic/cards/aggregated-data-key-row.component.ts | 2 +- .../basic/cards/aggregated-data-keys-panel.component.html | 2 +- .../basic/cards/aggregated-data-keys-panel.component.scss | 2 +- .../config/basic/cards/aggregated-data-keys-panel.component.ts | 2 +- .../cards/aggregated-value-card-basic-config.component.html | 2 +- .../cards/aggregated-value-card-basic-config.component.ts | 2 +- .../config/basic/cards/label-card-basic-config.component.html | 2 +- .../config/basic/cards/label-card-basic-config.component.ts | 2 +- .../basic/cards/label-value-card-basic-config.component.html | 2 +- .../basic/cards/label-value-card-basic-config.component.ts | 2 +- .../basic/cards/mobile-app-qr-code-basic-config.component.html | 2 +- .../basic/cards/mobile-app-qr-code-basic-config.component.ts | 2 +- .../basic/cards/progress-bar-basic-config.component.html | 2 +- .../config/basic/cards/progress-bar-basic-config.component.ts | 2 +- .../config/basic/cards/simple-card-basic-config.component.html | 2 +- .../config/basic/cards/simple-card-basic-config.component.ts | 2 +- .../basic/cards/timeseries-table-basic-config.component.html | 2 +- .../basic/cards/timeseries-table-basic-config.component.ts | 2 +- .../cards/unread-notification-basic-config.component.html | 2 +- .../basic/cards/unread-notification-basic-config.component.ts | 2 +- .../config/basic/cards/value-card-basic-config.component.html | 2 +- .../config/basic/cards/value-card-basic-config.component.ts | 2 +- .../basic/cards/value-chart-card-basic-config.component.html | 2 +- .../basic/cards/value-chart-card-basic-config.component.ts | 2 +- .../config/basic/chart/bar-chart-basic-config.component.ts | 2 +- .../chart/bar-chart-with-labels-basic-config.component.html | 2 +- .../chart/bar-chart-with-labels-basic-config.component.ts | 2 +- .../config/basic/chart/comparison-key-row.component.html | 2 +- .../config/basic/chart/comparison-key-row.component.scss | 2 +- .../widget/config/basic/chart/comparison-key-row.component.ts | 2 +- .../config/basic/chart/comparison-keys-table.component.html | 2 +- .../config/basic/chart/comparison-keys-table.component.scss | 2 +- .../config/basic/chart/comparison-keys-table.component.ts | 2 +- .../config/basic/chart/doughnut-basic-config.component.ts | 2 +- .../widget/config/basic/chart/flot-basic-config.component.html | 2 +- .../widget/config/basic/chart/flot-basic-config.component.ts | 2 +- .../basic/chart/latest-chart-basic-config.component.html | 2 +- .../config/basic/chart/latest-chart-basic-config.component.ts | 2 +- .../config/basic/chart/pie-chart-basic-config.component.ts | 2 +- .../basic/chart/polar-area-chart-basic-config.component.ts | 2 +- .../config/basic/chart/radar-chart-basic-config.component.ts | 2 +- .../config/basic/chart/range-chart-basic-config.component.html | 2 +- .../config/basic/chart/range-chart-basic-config.component.ts | 2 +- .../basic/chart/time-series-chart-basic-config.component.html | 2 +- .../basic/chart/time-series-chart-basic-config.component.ts | 2 +- .../widget/config/basic/common/data-key-row.component.html | 2 +- .../widget/config/basic/common/data-key-row.component.scss | 2 +- .../widget/config/basic/common/data-key-row.component.ts | 2 +- .../widget/config/basic/common/data-keys-panel.component.html | 2 +- .../widget/config/basic/common/data-keys-panel.component.scss | 2 +- .../widget/config/basic/common/data-keys-panel.component.ts | 2 +- .../config/basic/common/widget-actions-panel.component.html | 2 +- .../config/basic/common/widget-actions-panel.component.ts | 2 +- .../basic/entity/entities-table-basic-config.component.html | 2 +- .../basic/entity/entities-table-basic-config.component.ts | 2 +- .../basic/entity/entity-count-basic-config.component.html | 2 +- .../config/basic/entity/entity-count-basic-config.component.ts | 2 +- .../basic/gauge/analog-gauge-basic-config.component.html | 2 +- .../config/basic/gauge/analog-gauge-basic-config.component.ts | 2 +- .../basic/gauge/compass-gauge-basic-config.component.html | 2 +- .../config/basic/gauge/compass-gauge-basic-config.component.ts | 2 +- .../gauge/digital-simple-gauge-basic-config.component.html | 2 +- .../basic/gauge/digital-simple-gauge-basic-config.component.ts | 2 +- .../config/basic/gauge/radial-gauge-basic-config.component.ts | 2 +- .../gauge/thermometer-scale-gauge-basic-config.component.ts | 2 +- .../basic/indicator/battery-level-basic-config.component.html | 2 +- .../basic/indicator/battery-level-basic-config.component.ts | 2 +- .../indicator/liquid-level-card-basic-config.component.html | 2 +- .../indicator/liquid-level-card-basic-config.component.ts | 2 +- .../indicator/signal-strength-basic-config.component.html | 2 +- .../basic/indicator/signal-strength-basic-config.component.ts | 2 +- .../basic/indicator/status-widget-basic-config.component.html | 2 +- .../basic/indicator/status-widget-basic-config.component.ts | 2 +- .../widget/config/basic/map/map-basic-config.component.html | 2 +- .../widget/config/basic/map/map-basic-config.component.ts | 2 +- .../config/basic/rpc/single-switch-basic-config.component.html | 2 +- .../config/basic/rpc/single-switch-basic-config.component.ts | 2 +- .../widget/config/basic/rpc/slider-basic-config.component.html | 2 +- .../widget/config/basic/rpc/slider-basic-config.component.ts | 2 +- .../config/basic/rpc/value-stepper-basic-config.component.html | 2 +- .../config/basic/rpc/value-stepper-basic-config.component.ts | 2 +- .../basic/scada/scada-symbol-basic-config.component.html | 2 +- .../config/basic/scada/scada-symbol-basic-config.component.ts | 2 +- .../weather/wind-speed-direction-basic-config.component.html | 2 +- .../weather/wind-speed-direction-basic-config.component.ts | 2 +- .../home/components/widget/config/datasource.component.html | 2 +- .../components/widget/config/datasource.component.models.ts | 2 +- .../home/components/widget/config/datasource.component.scss | 2 +- .../home/components/widget/config/datasource.component.ts | 2 +- .../home/components/widget/config/datasources.component.html | 2 +- .../home/components/widget/config/datasources.component.scss | 2 +- .../home/components/widget/config/datasources.component.ts | 2 +- .../home/components/widget/config/target-device.component.html | 2 +- .../home/components/widget/config/target-device.component.ts | 2 +- .../widget/config/timewindow-config-panel.component.html | 2 +- .../widget/config/timewindow-config-panel.component.ts | 2 +- .../widget/config/timewindow-style-panel.component.html | 2 +- .../widget/config/timewindow-style-panel.component.scss | 2 +- .../widget/config/timewindow-style-panel.component.ts | 2 +- .../components/widget/config/timewindow-style.component.html | 2 +- .../components/widget/config/timewindow-style.component.ts | 2 +- .../widget/config/widget-config-components.module.ts | 2 +- .../components/widget/config/widget-config.component.models.ts | 2 +- .../widget/dialog/custom-dialog-container.component.ts | 2 +- .../home/components/widget/dialog/custom-dialog.component.ts | 2 +- .../home/components/widget/dialog/custom-dialog.service.ts | 2 +- .../components/widget/dialog/embed-dashboard-dialog-token.ts | 2 +- .../widget/dialog/embed-dashboard-dialog.component.html | 2 +- .../widget/dialog/embed-dashboard-dialog.component.scss | 2 +- .../widget/dialog/embed-dashboard-dialog.component.ts | 2 +- .../modules/home/components/widget/dynamic-widget.component.ts | 2 +- .../home/components/widget/lib/action/action-widget.models.ts | 2 +- .../home/components/widget/lib/action/action-widget.scss | 2 +- .../widget/lib/alarm/alarms-table-widget.component.html | 2 +- .../widget/lib/alarm/alarms-table-widget.component.scss | 2 +- .../widget/lib/alarm/alarms-table-widget.component.ts | 2 +- .../home/components/widget/lib/analogue-compass.models.ts | 2 +- .../app/modules/home/components/widget/lib/analogue-compass.ts | 2 +- .../home/components/widget/lib/analogue-gauge.models.ts | 2 +- .../home/components/widget/lib/analogue-linear-gauge.models.ts | 2 +- .../home/components/widget/lib/analogue-linear-gauge.ts | 2 +- .../home/components/widget/lib/analogue-radial-gauge.models.ts | 2 +- .../home/components/widget/lib/analogue-radial-gauge.ts | 2 +- .../widget/lib/button/action-button-widget.component.html | 2 +- .../widget/lib/button/action-button-widget.component.scss | 2 +- .../widget/lib/button/action-button-widget.component.ts | 2 +- .../widget/lib/button/action-button-widget.models.ts | 2 +- .../widget/lib/button/command-button-widget.component.html | 2 +- .../widget/lib/button/command-button-widget.component.scss | 2 +- .../widget/lib/button/command-button-widget.component.ts | 2 +- .../widget/lib/button/command-button-widget.models.ts | 2 +- .../widget/lib/button/segmented-button-widget.models.ts | 2 +- .../widget/lib/button/toggle-button-widget.component.html | 2 +- .../widget/lib/button/toggle-button-widget.component.scss | 2 +- .../widget/lib/button/toggle-button-widget.component.ts | 2 +- .../widget/lib/button/toggle-button-widget.models.ts | 2 +- .../widget/lib/button/two-segment-button-widget.component.html | 2 +- .../widget/lib/button/two-segment-button-widget.component.scss | 2 +- .../widget/lib/button/two-segment-button-widget.component.ts | 2 +- .../modules/home/components/widget/lib/canvas-digital-gauge.ts | 2 +- .../lib/cards/aggregated-value-card-widget.component.html | 2 +- .../lib/cards/aggregated-value-card-widget.component.scss | 2 +- .../widget/lib/cards/aggregated-value-card-widget.component.ts | 2 +- .../widget/lib/cards/aggregated-value-card.models.ts | 2 +- .../widget/lib/cards/label-card-widget.component.html | 2 +- .../widget/lib/cards/label-card-widget.component.scss | 2 +- .../components/widget/lib/cards/label-card-widget.component.ts | 2 +- .../components/widget/lib/cards/label-card-widget.models.ts | 2 +- .../widget/lib/cards/label-value-card-widget.component.html | 2 +- .../widget/lib/cards/label-value-card-widget.component.scss | 2 +- .../widget/lib/cards/label-value-card-widget.component.ts | 2 +- .../widget/lib/cards/label-value-card-widget.models.ts | 2 +- .../widget/lib/cards/mobile-app-qr-code-widget.models.ts | 2 +- .../lib/cards/notification-type-filter-panel.component.html | 2 +- .../lib/cards/notification-type-filter-panel.component.scss | 2 +- .../lib/cards/notification-type-filter-panel.component.ts | 2 +- .../widget/lib/cards/progress-bar-widget.component.html | 2 +- .../widget/lib/cards/progress-bar-widget.component.scss | 2 +- .../widget/lib/cards/progress-bar-widget.component.ts | 2 +- .../components/widget/lib/cards/progress-bar-widget.models.ts | 2 +- .../widget/lib/cards/unread-notification-widget.component.html | 2 +- .../widget/lib/cards/unread-notification-widget.component.scss | 2 +- .../widget/lib/cards/unread-notification-widget.component.ts | 2 +- .../widget/lib/cards/unread-notification-widget.models.ts | 2 +- .../widget/lib/cards/value-card-widget.component.html | 2 +- .../widget/lib/cards/value-card-widget.component.scss | 2 +- .../components/widget/lib/cards/value-card-widget.component.ts | 2 +- .../components/widget/lib/cards/value-card-widget.models.ts | 2 +- .../widget/lib/cards/value-chart-card-widget.component.html | 2 +- .../widget/lib/cards/value-chart-card-widget.component.scss | 2 +- .../widget/lib/cards/value-chart-card-widget.component.ts | 2 +- .../widget/lib/cards/value-chart-card-widget.models.ts | 2 +- .../components/widget/lib/chart/bar-chart-widget.component.ts | 2 +- .../components/widget/lib/chart/bar-chart-widget.models.ts | 2 +- .../lib/chart/bar-chart-with-labels-widget.component.html | 2 +- .../lib/chart/bar-chart-with-labels-widget.component.scss | 2 +- .../widget/lib/chart/bar-chart-with-labels-widget.component.ts | 2 +- .../widget/lib/chart/bar-chart-with-labels-widget.models.ts | 2 +- .../home/components/widget/lib/chart/bars-chart.models.ts | 2 +- .../app/modules/home/components/widget/lib/chart/bars-chart.ts | 2 +- .../modules/home/components/widget/lib/chart/chart.models.ts | 2 +- .../components/widget/lib/chart/doughnut-widget.component.ts | 2 +- .../home/components/widget/lib/chart/doughnut-widget.models.ts | 2 +- .../home/components/widget/lib/chart/echarts-widget.models.ts | 2 +- .../widget/lib/chart/latest-chart-widget.component.html | 2 +- .../components/widget/lib/chart/latest-chart.component.html | 2 +- .../components/widget/lib/chart/latest-chart.component.scss | 2 +- .../home/components/widget/lib/chart/latest-chart.component.ts | 2 +- .../home/components/widget/lib/chart/latest-chart.models.ts | 2 +- .../modules/home/components/widget/lib/chart/latest-chart.ts | 2 +- .../components/widget/lib/chart/pie-chart-widget.component.ts | 2 +- .../components/widget/lib/chart/pie-chart-widget.models.ts | 2 +- .../home/components/widget/lib/chart/pie-chart.models.ts | 2 +- .../app/modules/home/components/widget/lib/chart/pie-chart.ts | 2 +- .../components/widget/lib/chart/polar-area-widget.component.ts | 2 +- .../components/widget/lib/chart/polar-area-widget.models.ts | 2 +- .../widget/lib/chart/radar-chart-widget.component.ts | 2 +- .../components/widget/lib/chart/radar-chart-widget.models.ts | 2 +- .../home/components/widget/lib/chart/radar-chart.models.ts | 2 +- .../modules/home/components/widget/lib/chart/radar-chart.ts | 2 +- .../widget/lib/chart/range-chart-widget.component.html | 2 +- .../widget/lib/chart/range-chart-widget.component.scss | 2 +- .../widget/lib/chart/range-chart-widget.component.ts | 2 +- .../components/widget/lib/chart/range-chart-widget.models.ts | 2 +- .../widget/lib/chart/time-series-chart-bar.models.ts | 2 +- .../widget/lib/chart/time-series-chart-state.models.ts | 2 +- .../widget/lib/chart/time-series-chart-tooltip.models.ts | 2 +- .../widget/lib/chart/time-series-chart-widget.component.html | 2 +- .../widget/lib/chart/time-series-chart-widget.component.scss | 2 +- .../widget/lib/chart/time-series-chart-widget.component.ts | 2 +- .../widget/lib/chart/time-series-chart-widget.models.ts | 2 +- .../components/widget/lib/chart/time-series-chart.models.ts | 2 +- .../home/components/widget/lib/chart/time-series-chart.ts | 2 +- .../components/widget/lib/count/count-widget.component.html | 2 +- .../components/widget/lib/count/count-widget.component.scss | 2 +- .../home/components/widget/lib/count/count-widget.component.ts | 2 +- .../home/components/widget/lib/count/count-widget.models.ts | 2 +- .../date-range-navigator-panel.component.html | 2 +- .../date-range-navigator-panel.component.scss | 2 +- .../date-range-navigator/date-range-navigator.component.html | 2 +- .../date-range-navigator/date-range-navigator.component.scss | 2 +- .../lib/date-range-navigator/date-range-navigator.component.ts | 2 +- .../lib/date-range-navigator/date-range-navigator.models.ts | 2 +- .../modules/home/components/widget/lib/digital-gauge.models.ts | 2 +- .../app/modules/home/components/widget/lib/digital-gauge.ts | 2 +- .../components/widget/lib/display-columns-panel.component.html | 2 +- .../components/widget/lib/display-columns-panel.component.scss | 2 +- .../components/widget/lib/display-columns-panel.component.ts | 2 +- .../components/widget/lib/edges-overview-widget.component.html | 2 +- .../components/widget/lib/edges-overview-widget.component.scss | 2 +- .../components/widget/lib/edges-overview-widget.component.ts | 2 +- .../home/components/widget/lib/edges-overview-widget.models.ts | 2 +- .../widget/lib/entity/entities-hierarchy-widget.component.html | 2 +- .../widget/lib/entity/entities-hierarchy-widget.component.scss | 2 +- .../widget/lib/entity/entities-hierarchy-widget.component.ts | 2 +- .../widget/lib/entity/entities-hierarchy-widget.models.ts | 2 +- .../widget/lib/entity/entities-table-widget.component.html | 2 +- .../widget/lib/entity/entities-table-widget.component.scss | 2 +- .../widget/lib/entity/entities-table-widget.component.ts | 2 +- .../home/components/widget/lib/flot-widget.component.html | 2 +- .../home/components/widget/lib/flot-widget.component.ts | 2 +- .../modules/home/components/widget/lib/flot-widget.models.ts | 2 +- .../src/app/modules/home/components/widget/lib/flot-widget.ts | 2 +- .../widget/lib/home-page/add-doc-link-dialog.component.html | 2 +- .../widget/lib/home-page/add-doc-link-dialog.component.scss | 2 +- .../widget/lib/home-page/add-doc-link-dialog.component.ts | 2 +- .../widget/lib/home-page/add-quick-link-dialog.component.html | 2 +- .../widget/lib/home-page/add-quick-link-dialog.component.scss | 2 +- .../widget/lib/home-page/add-quick-link-dialog.component.ts | 2 +- .../widget/lib/home-page/cluster-info-table.component.html | 2 +- .../widget/lib/home-page/cluster-info-table.component.scss | 2 +- .../widget/lib/home-page/cluster-info-table.component.ts | 2 +- .../widget/lib/home-page/configured-features.component.html | 2 +- .../widget/lib/home-page/configured-features.component.scss | 2 +- .../widget/lib/home-page/configured-features.component.ts | 2 +- .../components/widget/lib/home-page/doc-link.component.html | 2 +- .../home/components/widget/lib/home-page/doc-link.component.ts | 2 +- .../widget/lib/home-page/doc-links-widget.component.html | 2 +- .../widget/lib/home-page/doc-links-widget.component.ts | 2 +- .../widget/lib/home-page/edit-links-dialog.component.html | 2 +- .../widget/lib/home-page/edit-links-dialog.component.scss | 2 +- .../widget/lib/home-page/edit-links-dialog.component.ts | 2 +- .../home-page/getting-started-completed-dialog.component.html | 2 +- .../home-page/getting-started-completed-dialog.component.scss | 2 +- .../home-page/getting-started-completed-dialog.component.ts | 2 +- .../widget/lib/home-page/getting-started-widget.component.html | 2 +- .../widget/lib/home-page/getting-started-widget.component.scss | 2 +- .../widget/lib/home-page/getting-started-widget.component.ts | 2 +- .../home/components/widget/lib/home-page/home-page-widget.scss | 2 +- .../widget/lib/home-page/home-page-widgets.module.ts | 2 +- .../home/components/widget/lib/home-page/home-page.scss | 2 +- .../home/components/widget/lib/home-page/link.component.scss | 2 +- .../widget/lib/home-page/links-widget.component.scss | 2 +- .../components/widget/lib/home-page/quick-link.component.html | 2 +- .../components/widget/lib/home-page/quick-link.component.ts | 2 +- .../widget/lib/home-page/quick-links-widget.component.html | 2 +- .../widget/lib/home-page/quick-links-widget.component.ts | 2 +- .../lib/home-page/recent-dashboards-widget.component.html | 2 +- .../lib/home-page/recent-dashboards-widget.component.scss | 2 +- .../widget/lib/home-page/recent-dashboards-widget.component.ts | 2 +- .../widget/lib/home-page/usage-info-widget.component.html | 2 +- .../widget/lib/home-page/usage-info-widget.component.scss | 2 +- .../widget/lib/home-page/usage-info-widget.component.ts | 2 +- .../widget/lib/home-page/version-info.component.html | 2 +- .../widget/lib/home-page/version-info.component.scss | 2 +- .../components/widget/lib/home-page/version-info.component.ts | 2 +- .../widget/lib/indicator/battery-level-widget.component.html | 2 +- .../widget/lib/indicator/battery-level-widget.component.scss | 2 +- .../widget/lib/indicator/battery-level-widget.component.ts | 2 +- .../widget/lib/indicator/battery-level-widget.models.ts | 2 +- .../widget/lib/indicator/liquid-level-widget.component.html | 2 +- .../widget/lib/indicator/liquid-level-widget.component.scss | 2 +- .../widget/lib/indicator/liquid-level-widget.component.ts | 2 +- .../widget/lib/indicator/liquid-level-widget.models.ts | 2 +- .../widget/lib/indicator/signal-strength-widget.component.html | 2 +- .../widget/lib/indicator/signal-strength-widget.component.scss | 2 +- .../widget/lib/indicator/signal-strength-widget.component.ts | 2 +- .../widget/lib/indicator/signal-strength-widget.models.ts | 2 +- .../widget/lib/indicator/status-widget.component.html | 2 +- .../widget/lib/indicator/status-widget.component.scss | 2 +- .../components/widget/lib/indicator/status-widget.component.ts | 2 +- .../components/widget/lib/indicator/status-widget.models.ts | 2 +- .../components/widget/lib/json-input-widget.component.html | 2 +- .../components/widget/lib/json-input-widget.component.scss | 2 +- .../home/components/widget/lib/json-input-widget.component.ts | 2 +- .../modules/home/components/widget/lib/legend.component.html | 2 +- .../modules/home/components/widget/lib/legend.component.scss | 2 +- .../app/modules/home/components/widget/lib/legend.component.ts | 2 +- .../modules/home/components/widget/lib/maps-legacy/circle.ts | 2 +- .../components/widget/lib/maps-legacy/common-maps-utils.ts | 2 +- .../maps-legacy/dialogs/select-entity-dialog.component.html | 2 +- .../maps-legacy/dialogs/select-entity-dialog.component.scss | 2 +- .../lib/maps-legacy/dialogs/select-entity-dialog.component.ts | 2 +- .../home/components/widget/lib/maps-legacy/leaflet-map.ts | 2 +- .../home/components/widget/lib/maps-legacy/map-models.ts | 2 +- .../components/widget/lib/maps-legacy/map-widget.interface.ts | 2 +- .../home/components/widget/lib/maps-legacy/map-widget2.ts | 2 +- .../home/components/widget/lib/maps-legacy/maps-utils.ts | 2 +- .../home/components/widget/lib/maps-legacy/markers.scss | 2 +- .../modules/home/components/widget/lib/maps-legacy/markers.ts | 2 +- .../modules/home/components/widget/lib/maps-legacy/polygon.ts | 2 +- .../modules/home/components/widget/lib/maps-legacy/polyline.ts | 2 +- .../components/widget/lib/maps-legacy/providers/google-map.ts | 2 +- .../components/widget/lib/maps-legacy/providers/here-map.ts | 2 +- .../components/widget/lib/maps-legacy/providers/image-map.ts | 2 +- .../widget/lib/maps-legacy/providers/openstreet-map.ts | 2 +- .../components/widget/lib/maps-legacy/providers/public-api.ts | 2 +- .../components/widget/lib/maps-legacy/providers/tencent-map.ts | 2 +- .../widget/lib/maps/data-layer/circles-data-layer.ts | 2 +- .../components/widget/lib/maps/data-layer/data-layer-utils.ts | 2 +- .../widget/lib/maps/data-layer/latest-map-data-layer.ts | 2 +- .../components/widget/lib/maps/data-layer/map-data-layer.ts | 2 +- .../widget/lib/maps/data-layer/markers-data-layer.ts | 2 +- .../widget/lib/maps/data-layer/polygons-data-layer.ts | 2 +- .../components/widget/lib/maps/data-layer/shapes-data-layer.ts | 2 +- .../components/widget/lib/maps/data-layer/trips-data-layer.ts | 2 +- .../src/app/modules/home/components/widget/lib/maps/geo-map.ts | 2 +- .../app/modules/home/components/widget/lib/maps/image-map.ts | 2 +- .../home/components/widget/lib/maps/leaflet/leaflet-tb.ts | 2 +- .../app/modules/home/components/widget/lib/maps/map-layer.ts | 2 +- .../home/components/widget/lib/maps/map-widget.component.html | 2 +- .../home/components/widget/lib/maps/map-widget.component.scss | 2 +- .../home/components/widget/lib/maps/map-widget.component.ts | 2 +- .../home/components/widget/lib/maps/map-widget.models.ts | 2 +- .../src/app/modules/home/components/widget/lib/maps/map.scss | 2 +- ui-ngx/src/app/modules/home/components/widget/lib/maps/map.ts | 2 +- .../widget/lib/maps/panels/map-timeline-panel.component.html | 2 +- .../widget/lib/maps/panels/map-timeline-panel.component.scss | 2 +- .../widget/lib/maps/panels/map-timeline-panel.component.ts | 2 +- .../lib/maps/panels/select-map-entity-panel.component.html | 2 +- .../lib/maps/panels/select-map-entity-panel.component.scss | 2 +- .../lib/maps/panels/select-map-entity-panel.component.ts | 2 +- .../home/components/widget/lib/markdown-widget.component.html | 2 +- .../home/components/widget/lib/markdown-widget.component.ts | 2 +- .../widget/lib/mobile-app-qrcode-widget.component.html | 2 +- .../widget/lib/mobile-app-qrcode-widget.component.scss | 2 +- .../widget/lib/mobile-app-qrcode-widget.component.ts | 2 +- .../components/widget/lib/multiple-input-widget.component.html | 2 +- .../components/widget/lib/multiple-input-widget.component.scss | 2 +- .../components/widget/lib/multiple-input-widget.component.ts | 2 +- .../widget/lib/navigation-card-widget.component.html | 2 +- .../widget/lib/navigation-card-widget.component.scss | 2 +- .../components/widget/lib/navigation-card-widget.component.ts | 2 +- .../widget/lib/navigation-cards-widget.component.html | 2 +- .../widget/lib/navigation-cards-widget.component.scss | 2 +- .../components/widget/lib/navigation-cards-widget.component.ts | 2 +- .../components/widget/lib/photo-camera-input.component.html | 2 +- .../components/widget/lib/photo-camera-input.component.scss | 2 +- .../home/components/widget/lib/photo-camera-input.component.ts | 2 +- .../home/components/widget/lib/qrcode-widget.component.html | 2 +- .../home/components/widget/lib/qrcode-widget.component.ts | 2 +- .../modules/home/components/widget/lib/rpc/knob.component.html | 2 +- .../modules/home/components/widget/lib/rpc/knob.component.scss | 2 +- .../modules/home/components/widget/lib/rpc/knob.component.ts | 2 +- .../components/widget/lib/rpc/led-indicator.component.html | 2 +- .../components/widget/lib/rpc/led-indicator.component.scss | 2 +- .../home/components/widget/lib/rpc/led-indicator.component.ts | 2 +- .../widget/lib/rpc/persistent-add-dialog.component.html | 2 +- .../widget/lib/rpc/persistent-add-dialog.component.scss | 2 +- .../widget/lib/rpc/persistent-add-dialog.component.ts | 2 +- .../widget/lib/rpc/persistent-details-dialog.component.html | 2 +- .../widget/lib/rpc/persistent-details-dialog.component.scss | 2 +- .../widget/lib/rpc/persistent-details-dialog.component.ts | 2 +- .../widget/lib/rpc/persistent-filter-panel.component.html | 2 +- .../widget/lib/rpc/persistent-filter-panel.component.scss | 2 +- .../widget/lib/rpc/persistent-filter-panel.component.ts | 2 +- .../components/widget/lib/rpc/persistent-table.component.html | 2 +- .../components/widget/lib/rpc/persistent-table.component.scss | 2 +- .../components/widget/lib/rpc/persistent-table.component.ts | 2 +- .../widget/lib/rpc/power-button-widget.component.html | 2 +- .../widget/lib/rpc/power-button-widget.component.scss | 2 +- .../components/widget/lib/rpc/power-button-widget.component.ts | 2 +- .../components/widget/lib/rpc/power-button-widget.models.ts | 2 +- .../home/components/widget/lib/rpc/round-switch.component.html | 2 +- .../home/components/widget/lib/rpc/round-switch.component.scss | 2 +- .../home/components/widget/lib/rpc/round-switch.component.ts | 2 +- .../home/components/widget/lib/rpc/rpc-widgets.module.ts | 2 +- .../widget/lib/rpc/single-switch-widget.component.html | 2 +- .../widget/lib/rpc/single-switch-widget.component.scss | 2 +- .../widget/lib/rpc/single-switch-widget.component.ts | 2 +- .../components/widget/lib/rpc/single-switch-widget.models.ts | 2 +- .../components/widget/lib/rpc/slider-widget.component.html | 2 +- .../components/widget/lib/rpc/slider-widget.component.scss | 2 +- .../home/components/widget/lib/rpc/slider-widget.component.ts | 2 +- .../home/components/widget/lib/rpc/slider-widget.models.ts | 2 +- .../home/components/widget/lib/rpc/switch.component.html | 2 +- .../home/components/widget/lib/rpc/switch.component.scss | 2 +- .../modules/home/components/widget/lib/rpc/switch.component.ts | 2 +- .../widget/lib/rpc/value-stepper-widget.component.html | 2 +- .../widget/lib/rpc/value-stepper-widget.component.scss | 2 +- .../widget/lib/rpc/value-stepper-widget.component.ts | 2 +- .../components/widget/lib/rpc/value-stepper-widget.models.ts | 2 +- .../widget/lib/scada/scada-symbol-widget.component.html | 2 +- .../widget/lib/scada/scada-symbol-widget.component.scss | 2 +- .../widget/lib/scada/scada-symbol-widget.component.ts | 2 +- .../components/widget/lib/scada/scada-symbol-widget.models.ts | 2 +- .../home/components/widget/lib/scada/scada-symbol.models.ts | 2 +- .../app/modules/home/components/widget/lib/settings.models.ts | 2 +- .../settings/alarm/alarm-count-widget-settings.component.html | 2 +- .../settings/alarm/alarm-count-widget-settings.component.ts | 2 +- .../settings/alarm/alarms-table-key-settings.component.html | 2 +- .../lib/settings/alarm/alarms-table-key-settings.component.ts | 2 +- .../settings/alarm/alarms-table-widget-settings.component.html | 2 +- .../settings/alarm/alarms-table-widget-settings.component.ts | 2 +- .../button/action-button-widget-settings.component.html | 2 +- .../settings/button/action-button-widget-settings.component.ts | 2 +- .../button/command-button-widget-settings.component.html | 2 +- .../button/command-button-widget-settings.component.ts | 2 +- .../button/power-button-widget-settings.component.html | 2 +- .../settings/button/power-button-widget-settings.component.ts | 2 +- .../button/segmented-button-widget-settings.component.html | 2 +- .../button/segmented-button-widget-settings.component.ts | 2 +- .../button/toggle-button-widget-settings.component.html | 2 +- .../settings/button/toggle-button-widget-settings.component.ts | 2 +- .../cards/aggregated-value-card-key-settings.component.html | 2 +- .../cards/aggregated-value-card-key-settings.component.ts | 2 +- .../cards/aggregated-value-card-widget-settings.component.html | 2 +- .../cards/aggregated-value-card-widget-settings.component.ts | 2 +- .../cards/dashboard-state-widget-settings.component.html | 2 +- .../cards/dashboard-state-widget-settings.component.ts | 2 +- .../cards/edge-quick-overview-widget-settings.component.html | 2 +- .../cards/edge-quick-overview-widget-settings.component.ts | 2 +- .../settings/cards/html-card-widget-settings.component.html | 2 +- .../lib/settings/cards/html-card-widget-settings.component.ts | 2 +- .../settings/cards/label-card-widget-settings.component.html | 2 +- .../lib/settings/cards/label-card-widget-settings.component.ts | 2 +- .../cards/label-value-card-widget-settings.component.html | 2 +- .../cards/label-value-card-widget-settings.component.ts | 2 +- .../lib/settings/cards/label-widget-label.component.html | 2 +- .../lib/settings/cards/label-widget-label.component.scss | 2 +- .../widget/lib/settings/cards/label-widget-label.component.ts | 2 +- .../lib/settings/cards/label-widget-settings.component.html | 2 +- .../lib/settings/cards/label-widget-settings.component.ts | 2 +- .../lib/settings/cards/markdown-widget-settings.component.html | 2 +- .../lib/settings/cards/markdown-widget-settings.component.ts | 2 +- .../cards/mobile-app-qr-code-widget-settings.component.html | 2 +- .../cards/mobile-app-qr-code-widget-settings.component.ts | 2 +- .../settings/cards/progress-bar-widget-settings.component.html | 2 +- .../settings/cards/progress-bar-widget-settings.component.ts | 2 +- .../lib/settings/cards/qrcode-widget-settings.component.html | 2 +- .../lib/settings/cards/qrcode-widget-settings.component.ts | 2 +- .../settings/cards/simple-card-widget-settings.component.html | 2 +- .../settings/cards/simple-card-widget-settings.component.ts | 2 +- .../cards/timeseries-table-key-settings.component.html | 2 +- .../settings/cards/timeseries-table-key-settings.component.ts | 2 +- .../cards/timeseries-table-latest-key-settings.component.html | 2 +- .../cards/timeseries-table-latest-key-settings.component.ts | 2 +- .../cards/timeseries-table-widget-settings.component.html | 2 +- .../cards/timeseries-table-widget-settings.component.ts | 2 +- .../cards/unread-notification-widget-settings.component.html | 2 +- .../cards/unread-notification-widget-settings.component.ts | 2 +- .../settings/cards/value-card-widget-settings.component.html | 2 +- .../lib/settings/cards/value-card-widget-settings.component.ts | 2 +- .../cards/value-chart-card-widget-settings.component.html | 2 +- .../cards/value-chart-card-widget-settings.component.ts | 2 +- .../lib/settings/chart/bar-chart-widget-settings.component.ts | 2 +- .../chart/bar-chart-with-labels-widget-settings.component.html | 2 +- .../chart/bar-chart-with-labels-widget-settings.component.ts | 2 +- .../lib/settings/chart/chart-widget-settings.component.html | 2 +- .../lib/settings/chart/chart-widget-settings.component.ts | 2 +- .../chart/doughnut-chart-widget-settings.component.html | 2 +- .../settings/chart/doughnut-chart-widget-settings.component.ts | 2 +- .../lib/settings/chart/doughnut-widget-settings.component.ts | 2 +- .../lib/settings/chart/flot-bar-key-settings.component.html | 2 +- .../lib/settings/chart/flot-bar-key-settings.component.ts | 2 +- .../lib/settings/chart/flot-bar-widget-settings.component.html | 2 +- .../lib/settings/chart/flot-bar-widget-settings.component.ts | 2 +- .../widget/lib/settings/chart/flot-key-settings.component.html | 2 +- .../widget/lib/settings/chart/flot-key-settings.component.ts | 2 +- .../lib/settings/chart/flot-latest-key-settings.component.html | 2 +- .../lib/settings/chart/flot-latest-key-settings.component.ts | 2 +- .../lib/settings/chart/flot-line-key-settings.component.html | 2 +- .../lib/settings/chart/flot-line-key-settings.component.ts | 2 +- .../settings/chart/flot-line-widget-settings.component.html | 2 +- .../lib/settings/chart/flot-line-widget-settings.component.ts | 2 +- .../lib/settings/chart/flot-pie-key-settings.component.html | 2 +- .../lib/settings/chart/flot-pie-key-settings.component.ts | 2 +- .../lib/settings/chart/flot-pie-widget-settings.component.html | 2 +- .../lib/settings/chart/flot-pie-widget-settings.component.ts | 2 +- .../widget/lib/settings/chart/flot-threshold.component.html | 2 +- .../widget/lib/settings/chart/flot-threshold.component.ts | 2 +- .../lib/settings/chart/flot-widget-settings.component.html | 2 +- .../lib/settings/chart/flot-widget-settings.component.ts | 2 +- .../widget/lib/settings/chart/label-data-key.component.html | 2 +- .../widget/lib/settings/chart/label-data-key.component.scss | 2 +- .../widget/lib/settings/chart/label-data-key.component.ts | 2 +- .../settings/chart/latest-chart-widget-settings.component.html | 2 +- .../settings/chart/latest-chart-widget-settings.component.ts | 2 +- .../lib/settings/chart/pie-chart-widget-settings.component.ts | 2 +- .../chart/polar-area-chart-widget-settings.component.ts | 2 +- .../settings/chart/radar-chart-widget-settings.component.ts | 2 +- .../settings/chart/range-chart-widget-settings.component.html | 2 +- .../settings/chart/range-chart-widget-settings.component.ts | 2 +- .../chart/time-series-chart-key-settings.component.html | 2 +- .../settings/chart/time-series-chart-key-settings.component.ts | 2 +- .../chart/time-series-chart-line-settings.component.html | 2 +- .../chart/time-series-chart-line-settings.component.ts | 2 +- .../chart/time-series-chart-widget-settings.component.html | 2 +- .../chart/time-series-chart-widget-settings.component.ts | 2 +- .../common/action/action-settings-button.component.html | 2 +- .../lib/settings/common/action/action-settings-button.scss | 2 +- .../common/action/action-settings-panel.component.scss | 2 +- .../common/action/custom-action-pretty-editor.component.html | 2 +- .../common/action/custom-action-pretty-editor.component.scss | 2 +- .../common/action/custom-action-pretty-editor.component.ts | 2 +- .../action/custom-action-pretty-resources-tabs.component.html | 2 +- .../action/custom-action-pretty-resources-tabs.component.scss | 2 +- .../action/custom-action-pretty-resources-tabs.component.ts | 2 +- .../widget/lib/settings/common/action/custom-action.models.ts | 2 +- .../action/get-value-action-settings-panel.component.html | 2 +- .../common/action/get-value-action-settings-panel.component.ts | 2 +- .../common/action/get-value-action-settings.component.ts | 2 +- .../settings/common/action/map-item-tooltips.component.html | 2 +- .../lib/settings/common/action/map-item-tooltips.component.ts | 2 +- .../settings/common/action/mobile-action-editor.component.html | 2 +- .../settings/common/action/mobile-action-editor.component.ts | 2 +- .../lib/settings/common/action/mobile-action-editor.models.ts | 2 +- .../action/set-value-action-settings-panel.component.html | 2 +- .../common/action/set-value-action-settings-panel.component.ts | 2 +- .../common/action/set-value-action-settings.component.ts | 2 +- .../common/action/widget-action-settings-panel.component.html | 2 +- .../common/action/widget-action-settings-panel.component.ts | 2 +- .../settings/common/action/widget-action-settings.component.ts | 2 +- .../lib/settings/common/action/widget-action.component.html | 2 +- .../lib/settings/common/action/widget-action.component.ts | 2 +- .../widget/lib/settings/common/advanced-range.component.html | 2 +- .../widget/lib/settings/common/advanced-range.component.scss | 2 +- .../widget/lib/settings/common/advanced-range.component.ts | 2 +- .../settings/common/alias/entity-alias-select.component.html | 2 +- .../common/alias/entity-alias-select.component.models.ts | 2 +- .../settings/common/alias/entity-alias-select.component.scss | 2 +- .../lib/settings/common/alias/entity-alias-select.component.ts | 2 +- .../common/auto-date-format-settings-panel.component.html | 2 +- .../common/auto-date-format-settings-panel.component.scss | 2 +- .../common/auto-date-format-settings-panel.component.ts | 2 +- .../settings/common/auto-date-format-settings.component.html | 2 +- .../lib/settings/common/auto-date-format-settings.component.ts | 2 +- .../settings/common/background-settings-panel.component.html | 2 +- .../settings/common/background-settings-panel.component.scss | 2 +- .../lib/settings/common/background-settings-panel.component.ts | 2 +- .../lib/settings/common/background-settings.component.html | 2 +- .../lib/settings/common/background-settings.component.scss | 2 +- .../lib/settings/common/background-settings.component.ts | 2 +- .../common/button/widget-button-appearance.component.html | 2 +- .../common/button/widget-button-appearance.component.ts | 2 +- .../button/widget-button-custom-style-panel.component.html | 2 +- .../button/widget-button-custom-style-panel.component.scss | 2 +- .../button/widget-button-custom-style-panel.component.ts | 2 +- .../common/button/widget-button-custom-style.component.html | 2 +- .../common/button/widget-button-custom-style.component.scss | 2 +- .../common/button/widget-button-custom-style.component.ts | 2 +- .../widget-button-toggle-custom-style-panel.component.html | 2 +- .../widget-button-toggle-custom-style-panel.component.scss | 2 +- .../widget-button-toggle-custom-style-panel.component.ts | 2 +- .../button/widget-button-toggle-custom-style.component.html | 2 +- .../button/widget-button-toggle-custom-style.component.scss | 2 +- .../button/widget-button-toggle-custom-style.component.ts | 2 +- .../common/chart/chart-animation-settings.component.html | 2 +- .../common/chart/chart-animation-settings.component.ts | 2 +- .../settings/common/chart/chart-bar-settings.component.html | 2 +- .../lib/settings/common/chart/chart-bar-settings.component.ts | 2 +- .../settings/common/chart/chart-fill-settings.component.html | 2 +- .../lib/settings/common/chart/chart-fill-settings.component.ts | 2 +- .../time-series-chart-axis-settings-button.component.html | 2 +- .../chart/time-series-chart-axis-settings-button.component.ts | 2 +- .../chart/time-series-chart-axis-settings-panel.component.html | 2 +- .../chart/time-series-chart-axis-settings-panel.component.scss | 2 +- .../chart/time-series-chart-axis-settings-panel.component.ts | 2 +- .../chart/time-series-chart-axis-settings.component.html | 2 +- .../common/chart/time-series-chart-axis-settings.component.ts | 2 +- .../chart/time-series-chart-grid-settings.component.html | 2 +- .../common/chart/time-series-chart-grid-settings.component.ts | 2 +- .../common/chart/time-series-chart-state-row.component.html | 2 +- .../common/chart/time-series-chart-state-row.component.scss | 2 +- .../common/chart/time-series-chart-state-row.component.ts | 2 +- .../common/chart/time-series-chart-states-panel.component.html | 2 +- .../common/chart/time-series-chart-states-panel.component.scss | 2 +- .../common/chart/time-series-chart-states-panel.component.ts | 2 +- .../chart/time-series-chart-threshold-row.component.html | 2 +- .../chart/time-series-chart-threshold-row.component.scss | 2 +- .../common/chart/time-series-chart-threshold-row.component.ts | 2 +- .../time-series-chart-threshold-settings-panel.component.html | 2 +- .../time-series-chart-threshold-settings-panel.component.scss | 2 +- .../time-series-chart-threshold-settings-panel.component.ts | 2 +- .../chart/time-series-chart-threshold-settings.component.html | 2 +- .../chart/time-series-chart-threshold-settings.component.ts | 2 +- .../chart/time-series-chart-thresholds-panel.component.html | 2 +- .../chart/time-series-chart-thresholds-panel.component.scss | 2 +- .../chart/time-series-chart-thresholds-panel.component.ts | 2 +- .../common/chart/time-series-chart-y-axes-panel.component.html | 2 +- .../common/chart/time-series-chart-y-axes-panel.component.scss | 2 +- .../common/chart/time-series-chart-y-axes-panel.component.ts | 2 +- .../common/chart/time-series-chart-y-axis-row.component.html | 2 +- .../common/chart/time-series-chart-y-axis-row.component.scss | 2 +- .../common/chart/time-series-chart-y-axis-row.component.ts | 2 +- ...ime-series-no-aggregation-bar-width-settings.component.html | 2 +- .../time-series-no-aggregation-bar-width-settings.component.ts | 2 +- .../widget/lib/settings/common/color-range-list.component.html | 2 +- .../widget/lib/settings/common/color-range-list.component.scss | 2 +- .../widget/lib/settings/common/color-range-list.component.ts | 2 +- .../lib/settings/common/color-range-panel.component.html | 2 +- .../widget/lib/settings/common/color-range-panel.component.ts | 2 +- .../lib/settings/common/color-range-settings.component.html | 2 +- .../lib/settings/common/color-range-settings.component.ts | 2 +- .../lib/settings/common/color-settings-panel.component.html | 2 +- .../lib/settings/common/color-settings-panel.component.scss | 2 +- .../lib/settings/common/color-settings-panel.component.ts | 2 +- .../widget/lib/settings/common/color-settings.component.html | 2 +- .../widget/lib/settings/common/color-settings.component.ts | 2 +- .../lib/settings/common/count-widget-settings.component.html | 2 +- .../lib/settings/common/count-widget-settings.component.ts | 2 +- .../widget/lib/settings/common/css-size-input.component.html | 2 +- .../widget/lib/settings/common/css-size-input.component.ts | 2 +- .../widget/lib/settings/common/css-unit-select.component.html | 2 +- .../widget/lib/settings/common/css-unit-select.component.ts | 2 +- .../lib/settings/common/date-format-select.component.html | 2 +- .../widget/lib/settings/common/date-format-select.component.ts | 2 +- .../settings/common/date-format-settings-panel.component.html | 2 +- .../settings/common/date-format-settings-panel.component.scss | 2 +- .../settings/common/date-format-settings-panel.component.ts | 2 +- .../common/dynamic-form/dynamic-form-array.component.html | 2 +- .../common/dynamic-form/dynamic-form-array.component.scss | 2 +- .../common/dynamic-form/dynamic-form-array.component.ts | 2 +- .../common/dynamic-form/dynamic-form-properties.component.html | 2 +- .../common/dynamic-form/dynamic-form-properties.component.scss | 2 +- .../common/dynamic-form/dynamic-form-properties.component.ts | 2 +- .../dynamic-form/dynamic-form-property-panel.component.html | 2 +- .../dynamic-form/dynamic-form-property-panel.component.scss | 2 +- .../dynamic-form/dynamic-form-property-panel.component.ts | 2 +- .../dynamic-form/dynamic-form-property-row.component.html | 2 +- .../dynamic-form/dynamic-form-property-row.component.scss | 2 +- .../common/dynamic-form/dynamic-form-property-row.component.ts | 2 +- .../dynamic-form/dynamic-form-select-item-row.component.html | 2 +- .../dynamic-form/dynamic-form-select-item-row.component.scss | 2 +- .../dynamic-form/dynamic-form-select-item-row.component.ts | 2 +- .../dynamic-form/dynamic-form-select-items.component.html | 2 +- .../dynamic-form/dynamic-form-select-items.component.scss | 2 +- .../common/dynamic-form/dynamic-form-select-items.component.ts | 2 +- .../settings/common/dynamic-form/dynamic-form.component.html | 2 +- .../settings/common/dynamic-form/dynamic-form.component.scss | 2 +- .../lib/settings/common/dynamic-form/dynamic-form.component.ts | 2 +- .../lib/settings/common/entity-alias-input.component.html | 2 +- .../lib/settings/common/entity-alias-input.component.scss | 2 +- .../widget/lib/settings/common/entity-alias-input.component.ts | 2 +- .../lib/settings/common/filter/filter-select.component.html | 2 +- .../settings/common/filter/filter-select.component.models.ts | 2 +- .../lib/settings/common/filter/filter-select.component.ts | 2 +- .../lib/settings/common/font-settings-panel.component.html | 2 +- .../lib/settings/common/font-settings-panel.component.scss | 2 +- .../lib/settings/common/font-settings-panel.component.ts | 2 +- .../widget/lib/settings/common/font-settings.component.html | 2 +- .../widget/lib/settings/common/font-settings.component.ts | 2 +- .../widget/lib/settings/common/gradient.component.html | 2 +- .../widget/lib/settings/common/gradient.component.scss | 2 +- .../widget/lib/settings/common/gradient.component.ts | 2 +- .../lib/settings/common/image-cards-select.component.html | 2 +- .../lib/settings/common/image-cards-select.component.scss | 2 +- .../widget/lib/settings/common/image-cards-select.component.ts | 2 +- .../indicator/status-widget-state-settings.component.html | 2 +- .../common/indicator/status-widget-state-settings.component.ts | 2 +- .../settings/common/key/data-key-config-dialog.component.html | 2 +- .../settings/common/key/data-key-config-dialog.component.scss | 2 +- .../settings/common/key/data-key-config-dialog.component.ts | 2 +- .../lib/settings/common/key/data-key-config.component.html | 2 +- .../lib/settings/common/key/data-key-config.component.ts | 2 +- .../lib/settings/common/key/data-key-input.component.html | 2 +- .../lib/settings/common/key/data-key-input.component.scss | 2 +- .../widget/lib/settings/common/key/data-key-input.component.ts | 2 +- .../widget/lib/settings/common/key/data-keys.component.html | 2 +- .../lib/settings/common/key/data-keys.component.models.ts | 2 +- .../widget/lib/settings/common/key/data-keys.component.scss | 3 +-- .../widget/lib/settings/common/key/data-keys.component.ts | 2 +- .../widget/lib/settings/common/legend-config.component.html | 2 +- .../widget/lib/settings/common/legend-config.component.ts | 2 +- .../common/map/additional-map-data-source-row.component.html | 2 +- .../common/map/additional-map-data-source-row.component.scss | 2 +- .../common/map/additional-map-data-source-row.component.ts | 2 +- .../common/map/additional-map-data-sources.component.html | 2 +- .../common/map/additional-map-data-sources.component.scss | 2 +- .../common/map/additional-map-data-sources.component.ts | 2 +- .../common/map/data-layer-color-settings-panel.component.html | 2 +- .../common/map/data-layer-color-settings-panel.component.scss | 2 +- .../common/map/data-layer-color-settings-panel.component.ts | 2 +- .../common/map/data-layer-color-settings.component.html | 2 +- .../settings/common/map/data-layer-color-settings.component.ts | 2 +- .../common/map/data-layer-pattern-settings.component.html | 2 +- .../common/map/data-layer-pattern-settings.component.ts | 2 +- .../common/map/image-map-source-settings.component.html | 2 +- .../settings/common/map/image-map-source-settings.component.ts | 2 +- .../settings/common/map/map-action-button-row.component.html | 2 +- .../lib/settings/common/map/map-action-button-row.component.ts | 2 +- .../common/map/map-action-buttons-settings.component.html | 2 +- .../common/map/map-action-buttons-settings.component.ts | 2 +- .../settings/common/map/map-data-layer-dialog.component.html | 2 +- .../settings/common/map/map-data-layer-dialog.component.scss | 2 +- .../lib/settings/common/map/map-data-layer-dialog.component.ts | 2 +- .../lib/settings/common/map/map-data-layer-row.component.html | 2 +- .../lib/settings/common/map/map-data-layer-row.component.scss | 2 +- .../lib/settings/common/map/map-data-layer-row.component.ts | 2 +- .../lib/settings/common/map/map-data-layers.component.html | 2 +- .../lib/settings/common/map/map-data-layers.component.scss | 2 +- .../lib/settings/common/map/map-data-layers.component.ts | 2 +- .../lib/settings/common/map/map-data-source-row.component.html | 2 +- .../lib/settings/common/map/map-data-source-row.component.scss | 2 +- .../lib/settings/common/map/map-data-source-row.component.ts | 2 +- .../lib/settings/common/map/map-data-sources.component.html | 2 +- .../lib/settings/common/map/map-data-sources.component.scss | 3 +-- .../lib/settings/common/map/map-data-sources.component.ts | 2 +- .../lib/settings/common/map/map-layer-row.component.html | 2 +- .../lib/settings/common/map/map-layer-row.component.scss | 2 +- .../widget/lib/settings/common/map/map-layer-row.component.ts | 2 +- .../common/map/map-layer-settings-panel.component.html | 2 +- .../common/map/map-layer-settings-panel.component.scss | 2 +- .../settings/common/map/map-layer-settings-panel.component.ts | 2 +- .../widget/lib/settings/common/map/map-layers.component.html | 2 +- .../widget/lib/settings/common/map/map-layers.component.scss | 2 +- .../widget/lib/settings/common/map/map-layers.component.ts | 2 +- .../widget/lib/settings/common/map/map-settings.component.html | 2 +- .../lib/settings/common/map/map-settings.component.models.ts | 2 +- .../widget/lib/settings/common/map/map-settings.component.ts | 2 +- .../settings/common/map/map-tooltip-tag-actions.component.html | 2 +- .../settings/common/map/map-tooltip-tag-actions.component.scss | 2 +- .../settings/common/map/map-tooltip-tag-actions.component.ts | 2 +- .../common/map/marker-clustering-settings.component.html | 2 +- .../common/map/marker-clustering-settings.component.ts | 2 +- .../lib/settings/common/map/marker-icon-shapes.component.html | 2 +- .../lib/settings/common/map/marker-icon-shapes.component.scss | 2 +- .../lib/settings/common/map/marker-icon-shapes.component.ts | 2 +- .../common/map/marker-image-settings-panel.component.html | 2 +- .../common/map/marker-image-settings-panel.component.scss | 2 +- .../common/map/marker-image-settings-panel.component.ts | 2 +- .../settings/common/map/marker-image-settings.component.html | 2 +- .../lib/settings/common/map/marker-image-settings.component.ts | 2 +- .../settings/common/map/marker-shape-settings.component.html | 2 +- .../lib/settings/common/map/marker-shape-settings.component.ts | 2 +- .../lib/settings/common/map/marker-shapes.component.html | 2 +- .../lib/settings/common/map/marker-shapes.component.scss | 2 +- .../widget/lib/settings/common/map/marker-shapes.component.ts | 2 +- .../common/map/shape-fill-image-settings-panel.component.html | 2 +- .../common/map/shape-fill-image-settings-panel.component.scss | 2 +- .../common/map/shape-fill-image-settings-panel.component.ts | 2 +- .../common/map/shape-fill-image-settings.component.html | 2 +- .../settings/common/map/shape-fill-image-settings.component.ts | 2 +- .../common/map/shape-fill-stripe-settings-panel.component.html | 2 +- .../common/map/shape-fill-stripe-settings-panel.component.scss | 2 +- .../common/map/shape-fill-stripe-settings-panel.component.ts | 2 +- .../common/map/shape-fill-stripe-settings.component.html | 2 +- .../common/map/shape-fill-stripe-settings.component.ts | 2 +- .../settings/common/map/trip-timeline-settings.component.html | 3 +-- .../settings/common/map/trip-timeline-settings.component.ts | 2 +- .../common/scada/scada-symbol-object-settings.component.html | 2 +- .../common/scada/scada-symbol-object-settings.component.scss | 2 +- .../common/scada/scada-symbol-object-settings.component.ts | 2 +- .../common/scada/scada-symbol-object-settings.models.ts | 2 +- .../lib/settings/common/value-source-data-key.component.html | 2 +- .../lib/settings/common/value-source-data-key.component.scss | 2 +- .../lib/settings/common/value-source-data-key.component.ts | 2 +- .../widget/lib/settings/common/value-source.component.html | 2 +- .../widget/lib/settings/common/value-source.component.ts | 2 +- .../widget/lib/settings/common/widget-font.component.html | 2 +- .../widget/lib/settings/common/widget-font.component.ts | 2 +- .../lib/settings/common/widget-settings-common.module.ts | 2 +- .../lib/settings/common/widget/widget-settings.component.html | 2 +- .../lib/settings/common/widget/widget-settings.component.scss | 2 +- .../lib/settings/common/widget/widget-settings.component.ts | 2 +- .../settings/control/device-key-autocomplete.component.html | 2 +- .../lib/settings/control/device-key-autocomplete.component.ts | 2 +- .../control/knob-control-widget-settings.component.html | 2 +- .../settings/control/knob-control-widget-settings.component.ts | 2 +- .../control/led-indicator-widget-settings.component.html | 2 +- .../control/led-indicator-widget-settings.component.ts | 2 +- .../control/persistent-table-widget-settings.component.html | 2 +- .../control/persistent-table-widget-settings.component.ts | 2 +- .../control/round-switch-widget-settings.component.html | 2 +- .../settings/control/round-switch-widget-settings.component.ts | 2 +- .../lib/settings/control/rpc-button-style.component.html | 2 +- .../widget/lib/settings/control/rpc-button-style.component.ts | 2 +- .../settings/control/rpc-shell-widget-settings.component.html | 2 +- .../settings/control/rpc-shell-widget-settings.component.ts | 2 +- .../control/rpc-terminal-widget-settings.component.html | 2 +- .../settings/control/rpc-terminal-widget-settings.component.ts | 2 +- .../settings/control/send-rpc-widget-settings.component.html | 2 +- .../lib/settings/control/send-rpc-widget-settings.component.ts | 2 +- .../control/single-switch-widget-settings.component.html | 2 +- .../control/single-switch-widget-settings.component.ts | 2 +- .../control/slide-toggle-widget-settings.component.html | 2 +- .../settings/control/slide-toggle-widget-settings.component.ts | 2 +- .../lib/settings/control/slider-widget-settings.component.html | 2 +- .../lib/settings/control/slider-widget-settings.component.ts | 2 +- .../control/switch-control-widget-settings.component.html | 2 +- .../control/switch-control-widget-settings.component.ts | 2 +- .../lib/settings/control/switch-rpc-settings.component.html | 2 +- .../lib/settings/control/switch-rpc-settings.component.ts | 2 +- .../update-device-attribute-widget-settings.component.html | 2 +- .../update-device-attribute-widget-settings.component.ts | 2 +- .../control/value-stepper-widget-settings.component.html | 2 +- .../control/value-stepper-widget-settings.component.ts | 2 +- .../date/date-range-navigator-widget-settings.component.html | 2 +- .../date/date-range-navigator-widget-settings.component.ts | 2 +- .../entity/entities-hierarchy-widget-settings.component.html | 2 +- .../entity/entities-hierarchy-widget-settings.component.ts | 2 +- .../settings/entity/entities-table-key-settings.component.html | 2 +- .../settings/entity/entities-table-key-settings.component.ts | 2 +- .../entity/entities-table-widget-settings.component.html | 2 +- .../entity/entities-table-widget-settings.component.ts | 2 +- .../entity/entity-count-widget-settings.component.html | 2 +- .../settings/entity/entity-count-widget-settings.component.ts | 2 +- ...gateway-config-single-device-widget-settings.component.html | 2 +- .../gateway-config-single-device-widget-settings.component.ts | 2 +- .../gateway/gateway-config-widget-settings.component.html | 2 +- .../gateway/gateway-config-widget-settings.component.ts | 2 +- .../gateway/gateway-events-widget-settings.component.html | 2 +- .../gateway/gateway-events-widget-settings.component.ts | 2 +- .../lib/settings/gateway/gateway-logs-settings.component.html | 2 +- .../lib/settings/gateway/gateway-logs-settings.component.ts | 2 +- .../gateway/gateway-service-rpc-settings.component.html | 2 +- .../settings/gateway/gateway-service-rpc-settings.component.ts | 2 +- .../gauge/analogue-compass-widget-settings.component.html | 2 +- .../gauge/analogue-compass-widget-settings.component.ts | 2 +- .../gauge/analogue-gauge-widget-settings.component.html | 2 +- .../settings/gauge/analogue-gauge-widget-settings.component.ts | 2 +- .../gauge/analogue-linear-gauge-widget-settings.component.ts | 2 +- .../gauge/analogue-radial-gauge-widget-settings.component.ts | 2 +- .../gauge/digital-gauge-widget-settings.component.html | 2 +- .../settings/gauge/digital-gauge-widget-settings.component.ts | 2 +- .../widget/lib/settings/gauge/tick-value.component.html | 2 +- .../widget/lib/settings/gauge/tick-value.component.ts | 2 +- .../settings/gpio/gpio-control-widget-settings.component.html | 2 +- .../settings/gpio/gpio-control-widget-settings.component.ts | 2 +- .../widget/lib/settings/gpio/gpio-item.component.html | 2 +- .../widget/lib/settings/gpio/gpio-item.component.scss | 2 +- .../components/widget/lib/settings/gpio/gpio-item.component.ts | 2 +- .../settings/gpio/gpio-panel-widget-settings.component.html | 2 +- .../lib/settings/gpio/gpio-panel-widget-settings.component.ts | 2 +- .../home-page/doc-links-widget-settings.component.html | 2 +- .../settings/home-page/doc-links-widget-settings.component.ts | 2 +- .../home-page/quick-links-widget-settings.component.html | 2 +- .../home-page/quick-links-widget-settings.component.ts | 2 +- .../indicator/battery-level-widget-settings.component.html | 2 +- .../indicator/battery-level-widget-settings.component.ts | 2 +- .../indicator/liquid-level-card-widget-settings.component.html | 2 +- .../indicator/liquid-level-card-widget-settings.component.ts | 2 +- .../indicator/signal-strength-widget-settings.component.html | 2 +- .../indicator/signal-strength-widget-settings.component.ts | 2 +- .../settings/indicator/status-widget-settings.component.html | 2 +- .../lib/settings/indicator/status-widget-settings.component.ts | 2 +- .../lib/settings/input/datakey-select-option.component.html | 2 +- .../lib/settings/input/datakey-select-option.component.scss | 2 +- .../lib/settings/input/datakey-select-option.component.ts | 2 +- .../input/device-claiming-widget-settings.component.html | 2 +- .../input/device-claiming-widget-settings.component.ts | 2 +- .../input/photo-camera-input-widget-settings.component.html | 2 +- .../input/photo-camera-input-widget-settings.component.ts | 2 +- .../input/update-attribute-general-settings.component.html | 2 +- .../input/update-attribute-general-settings.component.ts | 2 +- .../update-boolean-attribute-widget-settings.component.html | 2 +- .../update-boolean-attribute-widget-settings.component.ts | 2 +- .../input/update-date-attribute-widget-settings.component.html | 2 +- .../input/update-date-attribute-widget-settings.component.ts | 2 +- .../update-double-attribute-widget-settings.component.html | 2 +- .../input/update-double-attribute-widget-settings.component.ts | 2 +- .../update-image-attribute-widget-settings.component.html | 2 +- .../input/update-image-attribute-widget-settings.component.ts | 2 +- .../update-integer-attribute-widget-settings.component.html | 2 +- .../update-integer-attribute-widget-settings.component.ts | 2 +- .../input/update-json-attribute-widget-settings.component.html | 2 +- .../input/update-json-attribute-widget-settings.component.ts | 2 +- .../update-location-attribute-widget-settings.component.html | 2 +- .../update-location-attribute-widget-settings.component.ts | 2 +- .../update-multiple-attributes-key-settings.component.html | 2 +- .../input/update-multiple-attributes-key-settings.component.ts | 2 +- .../update-multiple-attributes-widget-settings.component.html | 2 +- .../update-multiple-attributes-widget-settings.component.ts | 2 +- .../update-string-attribute-widget-settings.component.html | 2 +- .../input/update-string-attribute-widget-settings.component.ts | 2 +- .../lib/settings/map/legacy/circle-settings.component.html | 2 +- .../lib/settings/map/legacy/circle-settings.component.ts | 2 +- .../lib/settings/map/legacy/common-map-settings.component.html | 2 +- .../lib/settings/map/legacy/common-map-settings.component.ts | 2 +- .../map/legacy/datasources-key-autocomplete.component.html | 2 +- .../map/legacy/datasources-key-autocomplete.component.ts | 2 +- .../map/legacy/google-map-provider-settings.component.html | 2 +- .../map/legacy/google-map-provider-settings.component.ts | 2 +- .../map/legacy/here-map-provider-settings.component.html | 2 +- .../map/legacy/here-map-provider-settings.component.ts | 2 +- .../map/legacy/image-map-provider-settings.component.html | 2 +- .../map/legacy/image-map-provider-settings.component.ts | 2 +- .../lib/settings/map/legacy/map-editor-settings.component.html | 2 +- .../lib/settings/map/legacy/map-editor-settings.component.ts | 2 +- .../settings/map/legacy/map-provider-settings.component.html | 2 +- .../lib/settings/map/legacy/map-provider-settings.component.ts | 2 +- .../lib/settings/map/legacy/map-settings-legacy.component.html | 2 +- .../lib/settings/map/legacy/map-settings-legacy.component.ts | 2 +- .../map/legacy/map-widget-settings-legacy.component.html | 2 +- .../map/legacy/map-widget-settings-legacy.component.ts | 2 +- .../map/legacy/marker-clustering-settings.component.html | 2 +- .../map/legacy/marker-clustering-settings.component.ts | 2 +- .../lib/settings/map/legacy/markers-settings.component.html | 2 +- .../lib/settings/map/legacy/markers-settings.component.ts | 2 +- .../map/legacy/openstreet-map-provider-settings.component.html | 2 +- .../map/legacy/openstreet-map-provider-settings.component.ts | 2 +- .../lib/settings/map/legacy/polygon-settings.component.html | 2 +- .../lib/settings/map/legacy/polygon-settings.component.ts | 2 +- .../lib/settings/map/legacy/route-map-settings.component.html | 2 +- .../lib/settings/map/legacy/route-map-settings.component.ts | 2 +- .../map/legacy/route-map-widget-settings.component.html | 2 +- .../settings/map/legacy/route-map-widget-settings.component.ts | 2 +- .../map/legacy/tencent-map-provider-settings.component.html | 2 +- .../map/legacy/tencent-map-provider-settings.component.ts | 2 +- .../map/legacy/trip-animation-common-settings.component.html | 2 +- .../map/legacy/trip-animation-common-settings.component.ts | 2 +- .../map/legacy/trip-animation-marker-settings.component.html | 2 +- .../map/legacy/trip-animation-marker-settings.component.ts | 2 +- .../map/legacy/trip-animation-path-settings.component.html | 2 +- .../map/legacy/trip-animation-path-settings.component.ts | 2 +- .../map/legacy/trip-animation-point-settings.component.html | 2 +- .../map/legacy/trip-animation-point-settings.component.ts | 2 +- .../map/legacy/trip-animation-widget-settings.component.html | 2 +- .../map/legacy/trip-animation-widget-settings.component.ts | 2 +- .../widget/lib/settings/map/map-widget-settings.component.html | 2 +- .../widget/lib/settings/map/map-widget-settings.component.ts | 2 +- .../navigation/navigation-card-widget-settings.component.html | 2 +- .../navigation/navigation-card-widget-settings.component.ts | 2 +- .../navigation/navigation-cards-widget-settings.component.html | 2 +- .../navigation/navigation-cards-widget-settings.component.ts | 2 +- .../settings/scada/scada-symbol-widget-settings.component.html | 2 +- .../settings/scada/scada-symbol-widget-settings.component.ts | 2 +- .../wind-speed-direction-widget-settings.component.html | 2 +- .../weather/wind-speed-direction-widget-settings.component.ts | 2 +- .../components/widget/lib/settings/widget-settings.module.ts | 2 +- .../home/components/widget/lib/settings/widget-settings.scss | 2 +- .../modules/home/components/widget/lib/table-widget.models.ts | 2 +- .../app/modules/home/components/widget/lib/table-widget.scss | 2 +- .../widget/lib/timeseries-table-widget.component.html | 2 +- .../widget/lib/timeseries-table-widget.component.scss | 2 +- .../components/widget/lib/timeseries-table-widget.component.ts | 2 +- .../widget/lib/trip-animation/trip-animation.component.html | 2 +- .../widget/lib/trip-animation/trip-animation.component.scss | 2 +- .../widget/lib/trip-animation/trip-animation.component.ts | 2 +- .../lib/weather/wind-speed-direction-widget.component.html | 2 +- .../lib/weather/wind-speed-direction-widget.component.scss | 2 +- .../lib/weather/wind-speed-direction-widget.component.ts | 2 +- .../widget/lib/weather/wind-speed-direction-widget.models.ts | 2 +- .../modules/home/components/widget/widget-component.service.ts | 2 +- .../modules/home/components/widget/widget-components.module.ts | 2 +- .../home/components/widget/widget-config.component.html | 2 +- .../home/components/widget/widget-config.component.scss | 2 +- .../modules/home/components/widget/widget-config.component.ts | 2 +- .../home/components/widget/widget-container.component.html | 2 +- .../home/components/widget/widget-container.component.scss | 2 +- .../home/components/widget/widget-container.component.ts | 2 +- .../home/components/widget/widget-preview.component.html | 2 +- .../home/components/widget/widget-preview.component.scss | 2 +- .../modules/home/components/widget/widget-preview.component.ts | 2 +- .../app/modules/home/components/widget/widget.component.html | 2 +- .../app/modules/home/components/widget/widget.component.scss | 2 +- .../src/app/modules/home/components/widget/widget.component.ts | 2 +- .../home/components/wizard/device-wizard-dialog.component.html | 2 +- .../home/components/wizard/device-wizard-dialog.component.scss | 2 +- .../home/components/wizard/device-wizard-dialog.component.ts | 2 +- .../dialogs/add-entities-to-customer-dialog.component.html | 2 +- .../home/dialogs/add-entities-to-customer-dialog.component.ts | 2 +- .../home/dialogs/add-entities-to-edge-dialog.component.html | 2 +- .../home/dialogs/add-entities-to-edge-dialog.component.ts | 2 +- .../home/dialogs/assign-to-customer-dialog.component.html | 2 +- .../home/dialogs/assign-to-customer-dialog.component.ts | 2 +- ui-ngx/src/app/modules/home/dialogs/home-dialogs.module.ts | 2 +- ui-ngx/src/app/modules/home/dialogs/home-dialogs.service.ts | 2 +- ui-ngx/src/app/modules/home/home-routing.module.ts | 2 +- ui-ngx/src/app/modules/home/home.component.html | 2 +- ui-ngx/src/app/modules/home/home.component.scss | 2 +- ui-ngx/src/app/modules/home/home.component.ts | 2 +- ui-ngx/src/app/modules/home/home.module.ts | 2 +- ui-ngx/src/app/modules/home/menu/menu-link.component.html | 2 +- ui-ngx/src/app/modules/home/menu/menu-link.component.scss | 2 +- ui-ngx/src/app/modules/home/menu/menu-link.component.ts | 2 +- ui-ngx/src/app/modules/home/menu/menu-toggle.component.html | 2 +- ui-ngx/src/app/modules/home/menu/menu-toggle.component.scss | 2 +- ui-ngx/src/app/modules/home/menu/menu-toggle.component.ts | 2 +- ui-ngx/src/app/modules/home/menu/side-menu.component.html | 2 +- ui-ngx/src/app/modules/home/menu/side-menu.component.scss | 2 +- ui-ngx/src/app/modules/home/menu/side-menu.component.ts | 2 +- .../src/app/modules/home/models/dashboard-component.models.ts | 2 +- .../app/modules/home/models/datasource/attribute-datasource.ts | 2 +- .../app/modules/home/models/datasource/entity-datasource.ts | 2 +- .../app/modules/home/models/datasource/relation-datasource.ts | 2 +- .../modules/home/models/entity/entities-table-config.models.ts | 2 +- .../app/modules/home/models/entity/entity-component.models.ts | 2 +- .../home/models/entity/entity-details-page-component.models.ts | 2 +- .../home/models/entity/entity-table-component.models.ts | 2 +- .../src/app/modules/home/models/searchable-component.models.ts | 2 +- ui-ngx/src/app/modules/home/models/services.map.ts | 2 +- ui-ngx/src/app/modules/home/models/widget-component.models.ts | 2 +- .../app/modules/home/pages/account/account-routing.module.ts | 2 +- ui-ngx/src/app/modules/home/pages/account/account.module.ts | 2 +- .../src/app/modules/home/pages/admin/admin-routing.module.ts | 2 +- ui-ngx/src/app/modules/home/pages/admin/admin.module.ts | 2 +- .../home/pages/admin/auto-commit-admin-settings.component.html | 2 +- .../home/pages/admin/auto-commit-admin-settings.component.ts | 2 +- .../modules/home/pages/admin/general-settings.component.html | 2 +- .../modules/home/pages/admin/general-settings.component.scss | 2 +- .../app/modules/home/pages/admin/general-settings.component.ts | 2 +- .../app/modules/home/pages/admin/home-settings.component.html | 2 +- .../app/modules/home/pages/admin/home-settings.component.scss | 2 +- .../app/modules/home/pages/admin/home-settings.component.ts | 2 +- .../app/modules/home/pages/admin/mail-server.component.html | 2 +- .../app/modules/home/pages/admin/mail-server.component.scss | 2 +- .../src/app/modules/home/pages/admin/mail-server.component.ts | 2 +- .../pages/admin/oauth2/clients/client-dialog.component.html | 2 +- .../home/pages/admin/oauth2/clients/client-dialog.component.ts | 2 +- .../admin/oauth2/clients/client-table-header.component.html | 2 +- .../admin/oauth2/clients/client-table-header.component.ts | 2 +- .../home/pages/admin/oauth2/clients/client.component.html | 2 +- .../home/pages/admin/oauth2/clients/client.component.scss | 2 +- .../home/pages/admin/oauth2/clients/client.component.ts | 2 +- .../admin/oauth2/clients/clients-table-config.resolver.ts | 2 +- .../pages/admin/oauth2/domains/domain-table-config.resolver.ts | 2 +- .../admin/oauth2/domains/domain-table-header.component.html | 2 +- .../admin/oauth2/domains/domain-table-header.component.ts | 2 +- .../home/pages/admin/oauth2/domains/domain.component.html | 2 +- .../home/pages/admin/oauth2/domains/domain.component.ts | 2 +- .../modules/home/pages/admin/oauth2/oauth2-routing.module.ts | 2 +- .../src/app/modules/home/pages/admin/oauth2/oauth2.module.ts | 2 +- .../app/modules/home/pages/admin/queue/queue.component.html | 2 +- .../src/app/modules/home/pages/admin/queue/queue.component.ts | 2 +- .../home/pages/admin/queue/queues-table-config.resolver.ts | 2 +- .../home/pages/admin/repository-admin-settings.component.html | 2 +- .../home/pages/admin/repository-admin-settings.component.ts | 2 +- .../pages/admin/resource/js-library-table-config.resolver.ts | 2 +- .../admin/resource/js-library-table-header.component.html | 2 +- .../pages/admin/resource/js-library-table-header.component.ts | 2 +- .../home/pages/admin/resource/js-resource.component.html | 2 +- .../modules/home/pages/admin/resource/js-resource.component.ts | 2 +- .../pages/admin/resource/resource-library-tabs.component.html | 2 +- .../pages/admin/resource/resource-library-tabs.component.ts | 2 +- .../home/pages/admin/resource/resource-tabs.component.html | 2 +- .../home/pages/admin/resource/resource-tabs.component.ts | 2 +- .../modules/home/pages/admin/resource/resources-datasource.ts | 2 +- .../admin/resource/resources-library-table-config.resolve.ts | 2 +- .../pages/admin/resource/resources-table-header.component.html | 2 +- .../pages/admin/resource/resources-table-header.component.ts | 2 +- .../modules/home/pages/admin/security-settings.component.html | 2 +- .../modules/home/pages/admin/security-settings.component.scss | 2 +- .../modules/home/pages/admin/security-settings.component.ts | 2 +- .../home/pages/admin/send-test-sms-dialog.component.html | 2 +- .../modules/home/pages/admin/send-test-sms-dialog.component.ts | 2 +- ui-ngx/src/app/modules/home/pages/admin/settings-card.scss | 2 +- .../app/modules/home/pages/admin/sms-provider.component.html | 2 +- .../app/modules/home/pages/admin/sms-provider.component.scss | 2 +- .../src/app/modules/home/pages/admin/sms-provider.component.ts | 2 +- .../modules/home/pages/admin/trendz-settings.component.html | 2 +- .../modules/home/pages/admin/trendz-settings.component.scss | 2 +- .../app/modules/home/pages/admin/trendz-settings.component.ts | 2 +- .../home/pages/admin/two-factor-auth-settings.component.html | 2 +- .../home/pages/admin/two-factor-auth-settings.component.scss | 2 +- .../home/pages/admin/two-factor-auth-settings.component.ts | 2 +- .../app/modules/home/pages/ai-model/ai-model-routing.module.ts | 2 +- .../home/pages/ai-model/ai-model-table-config.resolve.ts | 2 +- .../home/pages/ai-model/ai-model-table-header.component.html | 2 +- .../home/pages/ai-model/ai-model-table-header.component.ts | 2 +- ui-ngx/src/app/modules/home/pages/ai-model/ai-model.module.ts | 2 +- .../src/app/modules/home/pages/alarm/alarm-routing.module.ts | 2 +- ui-ngx/src/app/modules/home/pages/alarm/alarm.module.ts | 2 +- .../modules/home/pages/api-usage/api-usage-routing.module.ts | 2 +- .../src/app/modules/home/pages/api-usage/api-usage.module.ts | 2 +- .../home/pages/asset-profile/asset-profile-routing.module.ts | 2 +- .../home/pages/asset-profile/asset-profile-tabs.component.html | 2 +- .../home/pages/asset-profile/asset-profile-tabs.component.ts | 2 +- .../modules/home/pages/asset-profile/asset-profile.module.ts | 2 +- .../asset-profile/asset-profiles-table-config.resolver.ts | 2 +- .../src/app/modules/home/pages/asset/asset-routing.module.ts | 2 +- .../modules/home/pages/asset/asset-table-header.component.html | 2 +- .../modules/home/pages/asset/asset-table-header.component.ts | 2 +- .../src/app/modules/home/pages/asset/asset-tabs.component.html | 2 +- .../src/app/modules/home/pages/asset/asset-tabs.component.ts | 2 +- ui-ngx/src/app/modules/home/pages/asset/asset.component.html | 2 +- ui-ngx/src/app/modules/home/pages/asset/asset.component.scss | 2 +- ui-ngx/src/app/modules/home/pages/asset/asset.component.ts | 2 +- ui-ngx/src/app/modules/home/pages/asset/asset.module.ts | 2 +- .../modules/home/pages/asset/assets-table-config.resolver.ts | 2 +- .../modules/home/pages/audit-log/audit-log-routing.module.ts | 2 +- .../src/app/modules/home/pages/audit-log/audit-log.module.ts | 2 +- .../app/modules/home/pages/customer/customer-routing.module.ts | 2 +- .../modules/home/pages/customer/customer-tabs.component.html | 2 +- .../app/modules/home/pages/customer/customer-tabs.component.ts | 2 +- .../app/modules/home/pages/customer/customer.component.html | 2 +- .../app/modules/home/pages/customer/customer.component.scss | 2 +- .../src/app/modules/home/pages/customer/customer.component.ts | 2 +- ui-ngx/src/app/modules/home/pages/customer/customer.module.ts | 2 +- .../home/pages/customer/customers-table-config.resolver.ts | 2 +- .../modules/home/pages/dashboard/dashboard-form.component.html | 2 +- .../modules/home/pages/dashboard/dashboard-form.component.scss | 2 +- .../modules/home/pages/dashboard/dashboard-form.component.ts | 2 +- .../modules/home/pages/dashboard/dashboard-routing.module.ts | 2 +- .../modules/home/pages/dashboard/dashboard-tabs.component.html | 2 +- .../modules/home/pages/dashboard/dashboard-tabs.component.ts | 2 +- .../src/app/modules/home/pages/dashboard/dashboard.module.ts | 2 +- .../home/pages/dashboard/dashboards-table-config.resolver.ts | 2 +- .../dashboard/make-dashboard-public-dialog.component.html | 2 +- .../pages/dashboard/make-dashboard-public-dialog.component.ts | 2 +- .../dashboard/manage-dashboard-customers-dialog.component.html | 2 +- .../dashboard/manage-dashboard-customers-dialog.component.ts | 2 +- .../home/pages/device-profile/device-profile-routing.module.ts | 2 +- .../pages/device-profile/device-profile-tabs.component.html | 2 +- .../home/pages/device-profile/device-profile-tabs.component.ts | 2 +- .../modules/home/pages/device-profile/device-profile.module.ts | 2 +- .../device-profile/device-profiles-table-config.resolver.ts | 2 +- .../data/coap-device-transport-configuration.component.html | 2 +- .../data/coap-device-transport-configuration.component.ts | 2 +- .../device/data/default-device-configuration.component.html | 2 +- .../device/data/default-device-configuration.component.ts | 2 +- .../data/default-device-transport-configuration.component.html | 2 +- .../data/default-device-transport-configuration.component.ts | 2 +- .../home/pages/device/data/device-configuration.component.html | 2 +- .../home/pages/device/data/device-configuration.component.ts | 2 +- .../modules/home/pages/device/data/device-data.component.html | 2 +- .../modules/home/pages/device/data/device-data.component.ts | 2 +- .../device/data/device-transport-configuration.component.html | 2 +- .../device/data/device-transport-configuration.component.ts | 2 +- .../data/lwm2m-device-transport-configuration.component.html | 2 +- .../data/lwm2m-device-transport-configuration.component.ts | 2 +- .../data/mqtt-device-transport-configuration.component.html | 2 +- .../data/mqtt-device-transport-configuration.component.ts | 2 +- .../data/snmp-device-transport-configuration.component.html | 2 +- .../data/snmp-device-transport-configuration.component.ts | 2 +- .../device/device-check-connectivity-dialog.component.html | 2 +- .../device/device-check-connectivity-dialog.component.scss | 2 +- .../pages/device/device-check-connectivity-dialog.component.ts | 2 +- .../home/pages/device/device-credentials-dialog.component.html | 2 +- .../home/pages/device/device-credentials-dialog.component.scss | 2 +- .../home/pages/device/device-credentials-dialog.component.ts | 2 +- .../src/app/modules/home/pages/device/device-routing.module.ts | 2 +- .../home/pages/device/device-table-header.component.html | 2 +- .../modules/home/pages/device/device-table-header.component.ts | 2 +- .../app/modules/home/pages/device/device-tabs.component.html | 2 +- .../src/app/modules/home/pages/device/device-tabs.component.ts | 2 +- ui-ngx/src/app/modules/home/pages/device/device.component.html | 2 +- ui-ngx/src/app/modules/home/pages/device/device.component.scss | 2 +- ui-ngx/src/app/modules/home/pages/device/device.component.ts | 2 +- ui-ngx/src/app/modules/home/pages/device/device.module.ts | 2 +- .../modules/home/pages/device/devices-table-config.resolver.ts | 2 +- .../home/pages/edge/edge-instructions-dialog.component.html | 2 +- .../home/pages/edge/edge-instructions-dialog.component.scss | 2 +- .../home/pages/edge/edge-instructions-dialog.component.ts | 2 +- ui-ngx/src/app/modules/home/pages/edge/edge-routing.module.ts | 2 +- .../modules/home/pages/edge/edge-table-header.component.html | 2 +- .../app/modules/home/pages/edge/edge-table-header.component.ts | 2 +- .../src/app/modules/home/pages/edge/edge-tabs.component.html | 2 +- ui-ngx/src/app/modules/home/pages/edge/edge-tabs.component.ts | 2 +- ui-ngx/src/app/modules/home/pages/edge/edge.component.html | 2 +- ui-ngx/src/app/modules/home/pages/edge/edge.component.scss | 2 +- ui-ngx/src/app/modules/home/pages/edge/edge.component.ts | 2 +- ui-ngx/src/app/modules/home/pages/edge/edge.module.ts | 2 +- .../app/modules/home/pages/edge/edges-table-config.resolver.ts | 2 +- .../app/modules/home/pages/entities/entities-routing.module.ts | 2 +- ui-ngx/src/app/modules/home/pages/entities/entities.module.ts | 2 +- .../home/pages/entity-view/entity-view-routing.module.ts | 2 +- .../pages/entity-view/entity-view-table-header.component.html | 2 +- .../pages/entity-view/entity-view-table-header.component.ts | 2 +- .../home/pages/entity-view/entity-view-tabs.component.html | 2 +- .../home/pages/entity-view/entity-view-tabs.component.ts | 2 +- .../modules/home/pages/entity-view/entity-view.component.html | 2 +- .../modules/home/pages/entity-view/entity-view.component.scss | 2 +- .../modules/home/pages/entity-view/entity-view.component.ts | 2 +- .../app/modules/home/pages/entity-view/entity-view.module.ts | 2 +- .../pages/entity-view/entity-views-table-config.resolver.ts | 2 +- .../app/modules/home/pages/features/features-routing.module.ts | 2 +- ui-ngx/src/app/modules/home/pages/features/features.module.ts | 2 +- .../app/modules/home/pages/gateways/gateways-routing.module.ts | 2 +- ui-ngx/src/app/modules/home/pages/gateways/gateways.module.ts | 2 +- .../modules/home/pages/home-links/home-links-routing.module.ts | 2 +- .../modules/home/pages/home-links/home-links.component.html | 2 +- .../modules/home/pages/home-links/home-links.component.scss | 2 +- .../app/modules/home/pages/home-links/home-links.component.ts | 2 +- .../src/app/modules/home/pages/home-links/home-links.module.ts | 2 +- ui-ngx/src/app/modules/home/pages/home-pages.models.ts | 2 +- ui-ngx/src/app/modules/home/pages/home-pages.module.ts | 2 +- .../pages/mobile/applications/applications-routing.module.ts | 2 +- .../home/pages/mobile/applications/applications.module.ts | 2 +- .../pages/mobile/applications/mobile-app-dialog.component.html | 2 +- .../pages/mobile/applications/mobile-app-dialog.component.ts | 2 +- .../mobile/applications/mobile-app-table-config.resolver.ts | 2 +- .../mobile/applications/mobile-app-table-header.component.html | 2 +- .../mobile/applications/mobile-app-table-header.component.scss | 2 +- .../mobile/applications/mobile-app-table-header.component.ts | 2 +- .../home/pages/mobile/applications/mobile-app.component.html | 2 +- .../home/pages/mobile/applications/mobile-app.component.scss | 2 +- .../home/pages/mobile/applications/mobile-app.component.ts | 2 +- .../pages/mobile/applications/remove-app-dialog.component.html | 2 +- .../pages/mobile/applications/remove-app-dialog.component.scss | 2 +- .../pages/mobile/applications/remove-app-dialog.component.ts | 2 +- .../modules/home/pages/mobile/bundes/bundles-routing.module.ts | 2 +- .../src/app/modules/home/pages/mobile/bundes/bundles.module.ts | 2 +- .../mobile/bundes/layout/add-mobile-page-dialog.component.html | 2 +- .../mobile/bundes/layout/add-mobile-page-dialog.component.scss | 2 +- .../mobile/bundes/layout/add-mobile-page-dialog.component.ts | 2 +- .../bundes/layout/custom-mobile-page-panel.component.html | 2 +- .../bundes/layout/custom-mobile-page-panel.component.scss | 2 +- .../mobile/bundes/layout/custom-mobile-page-panel.component.ts | 2 +- .../mobile/bundes/layout/custom-mobile-page.component.html | 2 +- .../mobile/bundes/layout/custom-mobile-page.component.scss | 2 +- .../pages/mobile/bundes/layout/custom-mobile-page.component.ts | 2 +- .../bundes/layout/default-mobile-page-panel.component.html | 2 +- .../bundes/layout/default-mobile-page-panel.component.scss | 2 +- .../bundes/layout/default-mobile-page-panel.component.ts | 2 +- .../pages/mobile/bundes/layout/mobile-layout.component.html | 2 +- .../pages/mobile/bundes/layout/mobile-layout.component.scss | 2 +- .../home/pages/mobile/bundes/layout/mobile-layout.component.ts | 2 +- .../mobile/bundes/layout/mobile-page-item-row.component.html | 2 +- .../mobile/bundes/layout/mobile-page-item-row.component.scss | 2 +- .../mobile/bundes/layout/mobile-page-item-row.component.ts | 2 +- .../bundes/mobile-app-configuration-dialog.component.html | 2 +- .../bundes/mobile-app-configuration-dialog.component.scss | 2 +- .../mobile/bundes/mobile-app-configuration-dialog.component.ts | 2 +- .../pages/mobile/bundes/mobile-bundle-dialog.component.html | 2 +- .../pages/mobile/bundes/mobile-bundle-dialog.component.scss | 2 +- .../home/pages/mobile/bundes/mobile-bundle-dialog.component.ts | 2 +- .../pages/mobile/bundes/mobile-bundle-table-config.resolve.ts | 2 +- .../mobile/bundes/mobile-bundle-table-header.component.html | 2 +- .../mobile/bundes/mobile-bundle-table-header.component.scss | 2 +- .../mobile/bundes/mobile-bundle-table-header.component.ts | 2 +- .../modules/home/pages/mobile/common/common-mobile.module.ts | 2 +- .../home/pages/mobile/common/editor-panel.component.html | 2 +- .../home/pages/mobile/common/editor-panel.component.scss | 2 +- .../modules/home/pages/mobile/common/editor-panel.component.ts | 2 +- .../src/app/modules/home/pages/mobile/mobile-routing.module.ts | 2 +- ui-ngx/src/app/modules/home/pages/mobile/mobile.module.ts | 2 +- .../mobile-qr-code-widget-settings-routing.module.ts | 2 +- .../mobile-qr-code-widget-settings.component.html | 2 +- .../mobile-qr-code-widget-settings.component.scss | 2 +- .../qr-code-widget/mobile-qr-code-widget-settings.component.ts | 2 +- .../qr-code-widget/mobile-qr-code-widget-settings.module.ts | 2 +- .../inbox/inbox-notification-dialog.component.html | 2 +- .../inbox/inbox-notification-dialog.component.scss | 2 +- .../notification/inbox/inbox-notification-dialog.component.ts | 2 +- .../pages/notification/inbox/inbox-table-config.resolver.ts | 2 +- .../pages/notification/inbox/inbox-table-header.component.html | 2 +- .../pages/notification/inbox/inbox-table-header.component.ts | 2 +- .../home/pages/notification/notification-routing.module.ts | 2 +- .../app/modules/home/pages/notification/notification.module.ts | 2 +- .../recipient/recipient-notification-dialog.component.html | 2 +- .../recipient/recipient-notification-dialog.component.scss | 2 +- .../recipient/recipient-notification-dialog.component.ts | 2 +- .../notification/recipient/recipient-table-config.resolver.ts | 2 +- .../pages/notification/rule/escalation-form.component.html | 2 +- .../pages/notification/rule/escalation-form.component.scss | 2 +- .../home/pages/notification/rule/escalation-form.component.ts | 2 +- .../home/pages/notification/rule/escalations.component.html | 2 +- .../home/pages/notification/rule/escalations.component.ts | 2 +- .../notification/rule/rule-notification-dialog.component.html | 2 +- .../notification/rule/rule-notification-dialog.component.scss | 2 +- .../notification/rule/rule-notification-dialog.component.ts | 2 +- .../home/pages/notification/rule/rule-table-config.resolver.ts | 2 +- .../pages/notification/sent/sent-error-dialog.component.html | 2 +- .../pages/notification/sent/sent-error-dialog.component.scss | 2 +- .../pages/notification/sent/sent-error-dialog.component.ts | 2 +- .../notification/sent/sent-notification-dialog.component.html | 2 +- .../notification/sent/sent-notification-dialog.component.scss | 2 +- .../notification/sent/sent-notification-dialog.componet.ts | 2 +- .../home/pages/notification/sent/sent-table-config.resolver.ts | 2 +- .../settings/notification-setting-form.component.html | 2 +- .../settings/notification-setting-form.component.scss | 2 +- .../settings/notification-setting-form.component.ts | 2 +- .../settings/notification-settings-routing.modules.ts | 2 +- .../notification/settings/notification-settings.component.html | 2 +- .../notification/settings/notification-settings.component.scss | 2 +- .../notification/settings/notification-settings.component.ts | 2 +- .../notification-action-button-configuration.component.html | 2 +- .../notification-action-button-configuration.component.ts | 2 +- .../notification-template-configuration.component.html | 2 +- .../notification-template-configuration.component.scss | 2 +- .../notification-template-configuration.component.ts | 2 +- .../home/pages/notification/template/template-configuration.ts | 2 +- .../template/template-notification-dialog.component.html | 2 +- .../template/template-notification-dialog.component.scss | 2 +- .../template/template-notification-dialog.component.ts | 2 +- .../notification/template/template-table-config.resolver.ts | 2 +- .../modules/home/pages/ota-update/ota-update-routing.module.ts | 2 +- .../home/pages/ota-update/ota-update-table-config.resolve.ts | 2 +- .../home/pages/ota-update/ota-update-tabs.component.html | 2 +- .../modules/home/pages/ota-update/ota-update-tabs.component.ts | 2 +- .../modules/home/pages/ota-update/ota-update.component.html | 2 +- .../app/modules/home/pages/ota-update/ota-update.component.ts | 2 +- .../src/app/modules/home/pages/ota-update/ota-update.module.ts | 2 +- .../app/modules/home/pages/profile/profile-routing.module.ts | 2 +- .../src/app/modules/home/pages/profile/profile.component.html | 2 +- .../src/app/modules/home/pages/profile/profile.component.scss | 2 +- ui-ngx/src/app/modules/home/pages/profile/profile.component.ts | 2 +- ui-ngx/src/app/modules/home/pages/profile/profile.module.ts | 2 +- .../app/modules/home/pages/profiles/profiles-routing.module.ts | 2 +- ui-ngx/src/app/modules/home/pages/profiles/profiles.module.ts | 2 +- ui-ngx/src/app/modules/home/pages/public-api.ts | 2 +- .../home/pages/rulechain/add-rule-node-dialog.component.html | 2 +- .../home/pages/rulechain/add-rule-node-dialog.component.scss | 2 +- .../pages/rulechain/add-rule-node-link-dialog.component.html | 2 +- .../pages/rulechain/add-rule-node-link-dialog.component.scss | 2 +- .../rulechain/create-nested-rulechain-dialog.component.html | 2 +- .../modules/home/pages/rulechain/link-labels.component.html | 2 +- .../app/modules/home/pages/rulechain/link-labels.component.ts | 2 +- .../src/app/modules/home/pages/rulechain/rule-node-colors.scss | 2 +- .../home/pages/rulechain/rule-node-config.component.html | 2 +- .../home/pages/rulechain/rule-node-config.component.scss | 2 +- .../modules/home/pages/rulechain/rule-node-config.component.ts | 2 +- .../home/pages/rulechain/rule-node-details.component.html | 2 +- .../home/pages/rulechain/rule-node-details.component.scss | 2 +- .../home/pages/rulechain/rule-node-details.component.ts | 2 +- .../modules/home/pages/rulechain/rule-node-link.component.html | 2 +- .../modules/home/pages/rulechain/rule-node-link.component.ts | 2 +- .../modules/home/pages/rulechain/rulechain-page.component.html | 2 +- .../modules/home/pages/rulechain/rulechain-page.component.scss | 2 +- .../modules/home/pages/rulechain/rulechain-page.component.ts | 2 +- .../app/modules/home/pages/rulechain/rulechain-page.models.ts | 2 +- .../app/modules/home/pages/rulechain/rulechain-page.module.ts | 2 +- .../modules/home/pages/rulechain/rulechain-routing.module.ts | 2 +- .../modules/home/pages/rulechain/rulechain-tabs.component.html | 2 +- .../modules/home/pages/rulechain/rulechain-tabs.component.ts | 2 +- .../app/modules/home/pages/rulechain/rulechain.component.html | 2 +- .../app/modules/home/pages/rulechain/rulechain.component.scss | 2 +- .../app/modules/home/pages/rulechain/rulechain.component.ts | 2 +- .../src/app/modules/home/pages/rulechain/rulechain.module.ts | 2 +- .../home/pages/rulechain/rulechains-table-config.resolver.ts | 2 +- .../app/modules/home/pages/rulechain/rulenode.component.html | 2 +- .../app/modules/home/pages/rulechain/rulenode.component.scss | 2 +- .../src/app/modules/home/pages/rulechain/rulenode.component.ts | 2 +- .../scada-symbol-behavior-panel.component.html | 2 +- .../scada-symbol-behavior-panel.component.scss | 2 +- .../scada-symbol-behavior-panel.component.ts | 2 +- .../scada-symbol-behavior-row.component.html | 2 +- .../scada-symbol-behavior-row.component.scss | 2 +- .../metadata-components/scada-symbol-behavior-row.component.ts | 2 +- .../metadata-components/scada-symbol-behaviors.component.html | 2 +- .../metadata-components/scada-symbol-behaviors.component.scss | 2 +- .../metadata-components/scada-symbol-behaviors.component.ts | 2 +- .../scada-symbol-metadata-components.module.ts | 2 +- .../scada-symbol-metadata-tag-function-panel.component.html | 2 +- .../scada-symbol-metadata-tag-function-panel.component.scss | 2 +- .../scada-symbol-metadata-tag-function-panel.component.ts | 2 +- .../scada-symbol-metadata-tag.component.html | 2 +- .../scada-symbol-metadata-tag.component.scss | 2 +- .../metadata-components/scada-symbol-metadata-tag.component.ts | 2 +- .../scada-symbol-metadata-tags.component.html | 2 +- .../scada-symbol-metadata-tags.component.scss | 2 +- .../scada-symbol-metadata-tags.component.ts | 2 +- .../metadata-components/scada-symbol-metadata.component.html | 2 +- .../metadata-components/scada-symbol-metadata.component.scss | 2 +- .../metadata-components/scada-symbol-metadata.component.ts | 2 +- .../home/pages/scada-symbol/scada-symbol-editor.component.html | 2 +- .../home/pages/scada-symbol/scada-symbol-editor.component.scss | 2 +- .../home/pages/scada-symbol/scada-symbol-editor.component.ts | 2 +- .../home/pages/scada-symbol/scada-symbol-editor.models.ts | 2 +- .../pages/scada-symbol/scada-symbol-tooltip.component.scss | 2 +- .../home/pages/scada-symbol/scada-symbol-tooltip.components.ts | 2 +- .../home/pages/scada-symbol/scada-symbol.component.html | 2 +- .../home/pages/scada-symbol/scada-symbol.component.scss | 2 +- .../modules/home/pages/scada-symbol/scada-symbol.component.ts | 2 +- .../app/modules/home/pages/scada-symbol/scada-symbol.module.ts | 2 +- .../authentication-dialog/authentication-dialog.component.scss | 2 +- .../authentication-dialog/authentication-dialog.map.ts | 2 +- .../backup-code-auth-dialog.component.html | 2 +- .../authentication-dialog/backup-code-auth-dialog.component.ts | 2 +- .../authentication-dialog/email-auth-dialog.component.html | 2 +- .../authentication-dialog/email-auth-dialog.component.ts | 2 +- .../authentication-dialog/sms-auth-dialog.component.html | 2 +- .../authentication-dialog/sms-auth-dialog.component.ts | 2 +- .../authentication-dialog/totp-auth-dialog.component.html | 2 +- .../authentication-dialog/totp-auth-dialog.component.ts | 2 +- .../app/modules/home/pages/security/security-routing.module.ts | 2 +- .../app/modules/home/pages/security/security.component.html | 2 +- .../app/modules/home/pages/security/security.component.scss | 2 +- .../src/app/modules/home/pages/security/security.component.ts | 2 +- ui-ngx/src/app/modules/home/pages/security/security.module.ts | 2 +- .../home/pages/tenant-profile/tenant-profile-routing.module.ts | 2 +- .../pages/tenant-profile/tenant-profile-tabs.component.html | 2 +- .../home/pages/tenant-profile/tenant-profile-tabs.component.ts | 2 +- .../modules/home/pages/tenant-profile/tenant-profile.module.ts | 2 +- .../tenant-profile/tenant-profiles-table-config.resolver.ts | 2 +- .../src/app/modules/home/pages/tenant/tenant-routing.module.ts | 2 +- .../app/modules/home/pages/tenant/tenant-tabs.component.html | 2 +- .../src/app/modules/home/pages/tenant/tenant-tabs.component.ts | 2 +- ui-ngx/src/app/modules/home/pages/tenant/tenant.component.html | 2 +- ui-ngx/src/app/modules/home/pages/tenant/tenant.component.scss | 2 +- ui-ngx/src/app/modules/home/pages/tenant/tenant.component.ts | 2 +- ui-ngx/src/app/modules/home/pages/tenant/tenant.module.ts | 2 +- .../modules/home/pages/tenant/tenants-table-config.resolver.ts | 2 +- .../home/pages/user/activation-link-dialog.component.html | 2 +- .../home/pages/user/activation-link-dialog.component.ts | 2 +- .../app/modules/home/pages/user/add-user-dialog.component.html | 2 +- .../app/modules/home/pages/user/add-user-dialog.component.scss | 2 +- .../app/modules/home/pages/user/add-user-dialog.component.ts | 2 +- ui-ngx/src/app/modules/home/pages/user/user-routing.module.ts | 2 +- .../src/app/modules/home/pages/user/user-tabs.component.html | 2 +- ui-ngx/src/app/modules/home/pages/user/user-tabs.component.ts | 2 +- ui-ngx/src/app/modules/home/pages/user/user.component.html | 2 +- ui-ngx/src/app/modules/home/pages/user/user.component.scss | 2 +- ui-ngx/src/app/modules/home/pages/user/user.component.ts | 2 +- ui-ngx/src/app/modules/home/pages/user/user.module.ts | 2 +- .../app/modules/home/pages/user/users-table-config.resolver.ts | 2 +- ui-ngx/src/app/modules/home/pages/vc/vc-routing.module.ts | 2 +- ui-ngx/src/app/modules/home/pages/vc/vc.module.ts | 2 +- .../pages/widget/save-widget-type-as-dialog.component.html | 2 +- .../home/pages/widget/save-widget-type-as-dialog.component.ts | 2 +- .../home/pages/widget/select-widget-type-dialog.component.html | 2 +- .../home/pages/widget/select-widget-type-dialog.component.scss | 2 +- .../home/pages/widget/select-widget-type-dialog.component.ts | 2 +- .../app/modules/home/pages/widget/widget-editor.component.html | 2 +- .../app/modules/home/pages/widget/widget-editor.component.scss | 2 +- .../app/modules/home/pages/widget/widget-editor.component.ts | 2 +- .../src/app/modules/home/pages/widget/widget-editor.models.ts | 2 +- .../modules/home/pages/widget/widget-library-routing.module.ts | 2 +- .../src/app/modules/home/pages/widget/widget-library.module.ts | 2 +- .../home/pages/widget/widget-type-autocomplete.component.html | 2 +- .../home/pages/widget/widget-type-autocomplete.component.scss | 2 +- .../home/pages/widget/widget-type-autocomplete.component.ts | 2 +- .../modules/home/pages/widget/widget-type-tabs.component.html | 2 +- .../modules/home/pages/widget/widget-type-tabs.component.ts | 2 +- .../app/modules/home/pages/widget/widget-type.component.html | 2 +- .../src/app/modules/home/pages/widget/widget-type.component.ts | 2 +- .../home/pages/widget/widget-types-table-config.resolver.ts | 2 +- .../home/pages/widget/widgets-bundle-dialog.component.html | 2 +- .../home/pages/widget/widgets-bundle-dialog.component.scss | 2 +- .../home/pages/widget/widgets-bundle-dialog.component.ts | 2 +- .../home/pages/widget/widgets-bundle-tabs.component.html | 2 +- .../modules/home/pages/widget/widgets-bundle-tabs.component.ts | 2 +- .../home/pages/widget/widgets-bundle-widgets.component.html | 2 +- .../home/pages/widget/widgets-bundle-widgets.component.scss | 2 +- .../home/pages/widget/widgets-bundle-widgets.component.ts | 2 +- .../modules/home/pages/widget/widgets-bundle.component.html | 2 +- .../modules/home/pages/widget/widgets-bundle.component.scss | 2 +- .../app/modules/home/pages/widget/widgets-bundle.component.ts | 2 +- .../home/pages/widget/widgets-bundles-table-config.resolver.ts | 2 +- ui-ngx/src/app/modules/home/public-api.ts | 2 +- ui-ngx/src/app/modules/login/login-routing.module.ts | 2 +- ui-ngx/src/app/modules/login/login.module.ts | 2 +- .../modules/login/pages/login/create-password.component.html | 2 +- .../modules/login/pages/login/create-password.component.scss | 2 +- .../app/modules/login/pages/login/create-password.component.ts | 2 +- .../app/modules/login/pages/login/link-expired.component.html | 2 +- .../app/modules/login/pages/login/link-expired.component.scss | 2 +- .../app/modules/login/pages/login/link-expired.component.ts | 2 +- ui-ngx/src/app/modules/login/pages/login/login.component.html | 2 +- ui-ngx/src/app/modules/login/pages/login/login.component.scss | 2 +- ui-ngx/src/app/modules/login/pages/login/login.component.ts | 2 +- .../login/pages/login/reset-password-request.component.html | 2 +- .../login/pages/login/reset-password-request.component.scss | 2 +- .../login/pages/login/reset-password-request.component.ts | 2 +- .../modules/login/pages/login/reset-password.component.html | 2 +- .../modules/login/pages/login/reset-password.component.scss | 2 +- .../app/modules/login/pages/login/reset-password.component.ts | 2 +- .../login/pages/login/two-factor-auth-login.component.html | 2 +- .../login/pages/login/two-factor-auth-login.component.scss | 2 +- .../login/pages/login/two-factor-auth-login.component.ts | 2 +- ui-ngx/src/app/shared/adapter/custom-datatime-adapter.ts | 2 +- ui-ngx/src/app/shared/animations/speed-dial-fab.animations.ts | 2 +- ui-ngx/src/app/shared/components/breadcrumb.component.html | 2 +- ui-ngx/src/app/shared/components/breadcrumb.component.scss | 2 +- ui-ngx/src/app/shared/components/breadcrumb.component.ts | 2 +- ui-ngx/src/app/shared/components/breadcrumb.ts | 2 +- .../app/shared/components/button/copy-button.component.html | 2 +- .../app/shared/components/button/copy-button.component.scss | 2 +- .../src/app/shared/components/button/copy-button.component.ts | 2 +- .../shared/components/button/toggle-password.component.html | 2 +- .../app/shared/components/button/toggle-password.component.ts | 2 +- .../components/button/widget-button-toggle.component.html | 2 +- .../components/button/widget-button-toggle.component.scss | 2 +- .../shared/components/button/widget-button-toggle.component.ts | 2 +- .../app/shared/components/button/widget-button.component.html | 2 +- .../app/shared/components/button/widget-button.component.scss | 2 +- .../app/shared/components/button/widget-button.component.ts | 2 +- .../src/app/shared/components/button/widget-button.models.ts | 2 +- ui-ngx/src/app/shared/components/cheatsheet.component.ts | 2 +- .../src/app/shared/components/circular-progress.directive.ts | 2 +- ui-ngx/src/app/shared/components/color-input.component.html | 2 +- ui-ngx/src/app/shared/components/color-input.component.scss | 2 +- ui-ngx/src/app/shared/components/color-input.component.ts | 2 +- .../components/color-picker/color-picker-panel.component.html | 2 +- .../components/color-picker/color-picker-panel.component.scss | 2 +- .../components/color-picker/color-picker-panel.component.ts | 2 +- .../shared/components/color-picker/color-picker.component.html | 2 +- .../shared/components/color-picker/color-picker.component.scss | 2 +- .../shared/components/color-picker/color-picker.component.ts | 2 +- .../shared/components/color-picker/hex-input.component.html | 2 +- .../shared/components/color-picker/hex-input.component.scss | 2 +- .../app/shared/components/color-picker/hex-input.component.ts | 2 +- ui-ngx/src/app/shared/components/contact.component.html | 2 +- ui-ngx/src/app/shared/components/contact.component.ts | 2 +- .../app/shared/components/country-autocomplete.component.html | 2 +- .../app/shared/components/country-autocomplete.component.ts | 2 +- ui-ngx/src/app/shared/components/css.component.html | 2 +- ui-ngx/src/app/shared/components/css.component.scss | 2 +- ui-ngx/src/app/shared/components/css.component.ts | 2 +- .../shared/components/dashboard-autocomplete.component.html | 2 +- .../app/shared/components/dashboard-autocomplete.component.ts | 2 +- .../shared/components/dashboard-select-panel.component.html | 2 +- .../shared/components/dashboard-select-panel.component.scss | 2 +- .../app/shared/components/dashboard-select-panel.component.ts | 2 +- .../src/app/shared/components/dashboard-select.component.html | 2 +- .../src/app/shared/components/dashboard-select.component.scss | 2 +- ui-ngx/src/app/shared/components/dashboard-select.component.ts | 2 +- .../components/dashboard-state-autocomplete.component.html | 2 +- .../components/dashboard-state-autocomplete.component.ts | 2 +- ui-ngx/src/app/shared/components/dialog.component.ts | 2 +- .../app/shared/components/dialog/alert-dialog.component.html | 2 +- .../app/shared/components/dialog/alert-dialog.component.scss | 2 +- .../src/app/shared/components/dialog/alert-dialog.component.ts | 2 +- .../components/dialog/color-picker-dialog.component.html | 2 +- .../components/dialog/color-picker-dialog.component.scss | 2 +- .../shared/components/dialog/color-picker-dialog.component.ts | 2 +- .../app/shared/components/dialog/confirm-dialog.component.html | 2 +- .../app/shared/components/dialog/confirm-dialog.component.scss | 2 +- .../app/shared/components/dialog/confirm-dialog.component.ts | 2 +- .../entity-conflict-dialog.component.html | 2 +- .../entity-conflict-dialog.component.scss | 2 +- .../entity-conflict-dialog/entity-conflict-dialog.component.ts | 2 +- .../shared/components/dialog/error-alert-dialog.component.html | 2 +- .../shared/components/dialog/error-alert-dialog.component.scss | 2 +- .../shared/components/dialog/error-alert-dialog.component.ts | 2 +- .../components/dialog/json-object-edit-dialog.component.html | 2 +- .../components/dialog/json-object-edit-dialog.component.ts | 2 +- .../components/dialog/material-icons-dialog.component.html | 2 +- .../components/dialog/material-icons-dialog.component.scss | 2 +- .../components/dialog/material-icons-dialog.component.ts | 2 +- .../components/dialog/node-script-test-dialog.component.html | 2 +- .../components/dialog/node-script-test-dialog.component.scss | 2 +- .../components/dialog/node-script-test-dialog.component.ts | 2 +- .../app/shared/components/dialog/todo-dialog.component.html | 2 +- .../app/shared/components/dialog/todo-dialog.component.scss | 2 +- .../src/app/shared/components/dialog/todo-dialog.component.ts | 2 +- .../shared/components/directives/component-outlet.directive.ts | 2 +- .../components/directives/sring-template-outlet.directive.ts | 2 +- .../components/directives/tb-json-to-string.directive.ts | 2 +- .../components/entity/entity-autocomplete.component.html | 2 +- .../shared/components/entity/entity-autocomplete.component.ts | 2 +- .../components/entity/entity-gateway-select.component.html | 2 +- .../components/entity/entity-gateway-select.component.ts | 2 +- .../components/entity/entity-key-autocomplete.component.html | 2 +- .../components/entity/entity-key-autocomplete.component.ts | 2 +- .../shared/components/entity/entity-keys-list.component.html | 2 +- .../app/shared/components/entity/entity-keys-list.component.ts | 2 +- .../shared/components/entity/entity-list-select.component.html | 2 +- .../shared/components/entity/entity-list-select.component.scss | 2 +- .../shared/components/entity/entity-list-select.component.ts | 2 +- .../app/shared/components/entity/entity-list.component.html | 2 +- .../src/app/shared/components/entity/entity-list.component.ts | 2 +- .../app/shared/components/entity/entity-select.component.html | 2 +- .../app/shared/components/entity/entity-select.component.scss | 2 +- .../app/shared/components/entity/entity-select.component.ts | 2 +- .../entity/entity-subtype-autocomplete.component.html | 2 +- .../components/entity/entity-subtype-autocomplete.component.ts | 2 +- .../components/entity/entity-subtype-list.component.html | 2 +- .../shared/components/entity/entity-subtype-list.component.ts | 2 +- .../components/entity/entity-subtype-select.component.html | 2 +- .../components/entity/entity-subtype-select.component.scss | 2 +- .../components/entity/entity-subtype-select.component.ts | 2 +- .../shared/components/entity/entity-type-list.component.html | 2 +- .../app/shared/components/entity/entity-type-list.component.ts | 2 +- .../shared/components/entity/entity-type-select.component.html | 2 +- .../shared/components/entity/entity-type-select.component.scss | 2 +- .../shared/components/entity/entity-type-select.component.ts | 2 +- ui-ngx/src/app/shared/components/fab-toolbar.component.html | 2 +- ui-ngx/src/app/shared/components/fab-toolbar.component.scss | 2 +- ui-ngx/src/app/shared/components/fab-toolbar.component.ts | 2 +- ui-ngx/src/app/shared/components/file-input.component.html | 2 +- ui-ngx/src/app/shared/components/file-input.component.scss | 2 +- ui-ngx/src/app/shared/components/file-input.component.ts | 2 +- .../app/shared/components/footer-fab-buttons.component.html | 2 +- .../app/shared/components/footer-fab-buttons.component.scss | 2 +- .../src/app/shared/components/footer-fab-buttons.component.ts | 2 +- ui-ngx/src/app/shared/components/footer.component.html | 2 +- ui-ngx/src/app/shared/components/footer.component.scss | 2 +- ui-ngx/src/app/shared/components/footer.component.ts | 2 +- ui-ngx/src/app/shared/components/fullscreen.directive.ts | 2 +- .../src/app/shared/components/grid/scroll-grid-datasource.ts | 2 +- .../src/app/shared/components/grid/scroll-grid.component.html | 2 +- .../src/app/shared/components/grid/scroll-grid.component.scss | 2 +- ui-ngx/src/app/shared/components/grid/scroll-grid.component.ts | 2 +- ui-ngx/src/app/shared/components/help-markdown.component.html | 2 +- ui-ngx/src/app/shared/components/help-markdown.component.scss | 2 +- ui-ngx/src/app/shared/components/help-markdown.component.ts | 2 +- ui-ngx/src/app/shared/components/help-popup.component.html | 2 +- ui-ngx/src/app/shared/components/help-popup.component.scss | 2 +- ui-ngx/src/app/shared/components/help-popup.component.ts | 2 +- ui-ngx/src/app/shared/components/help.component.html | 2 +- ui-ngx/src/app/shared/components/help.component.ts | 2 +- .../src/app/shared/components/hint-tooltip-icon.component.html | 2 +- .../src/app/shared/components/hint-tooltip-icon.component.scss | 2 +- .../src/app/shared/components/hint-tooltip-icon.component.ts | 2 +- ui-ngx/src/app/shared/components/hotkeys.directive.ts | 2 +- ui-ngx/src/app/shared/components/html.component.html | 2 +- ui-ngx/src/app/shared/components/html.component.scss | 2 +- ui-ngx/src/app/shared/components/html.component.ts | 2 +- ui-ngx/src/app/shared/components/icon.component.ts | 2 +- ui-ngx/src/app/shared/components/image-input.component.html | 2 +- ui-ngx/src/app/shared/components/image-input.component.scss | 2 +- ui-ngx/src/app/shared/components/image-input.component.ts | 2 +- .../shared/components/image/embed-image-dialog.component.html | 2 +- .../shared/components/image/embed-image-dialog.component.scss | 2 +- .../shared/components/image/embed-image-dialog.component.ts | 2 +- .../shared/components/image/gallery-image-input.component.html | 2 +- .../shared/components/image/gallery-image-input.component.scss | 2 +- .../shared/components/image/gallery-image-input.component.ts | 2 +- .../app/shared/components/image/image-dialog.component.html | 2 +- .../app/shared/components/image/image-dialog.component.scss | 2 +- .../src/app/shared/components/image/image-dialog.component.ts | 2 +- .../components/image/image-gallery-dialog.component.html | 2 +- .../components/image/image-gallery-dialog.component.scss | 2 +- .../shared/components/image/image-gallery-dialog.component.ts | 2 +- .../app/shared/components/image/image-gallery.component.html | 2 +- .../app/shared/components/image/image-gallery.component.scss | 2 +- .../src/app/shared/components/image/image-gallery.component.ts | 2 +- .../shared/components/image/image-references.component.html | 2 +- .../shared/components/image/image-references.component.scss | 2 +- .../app/shared/components/image/image-references.component.ts | 2 +- ui-ngx/src/app/shared/components/image/images-datasource.ts | 2 +- .../image/multiple-gallery-image-input.component.html | 2 +- .../image/multiple-gallery-image-input.component.scss | 2 +- .../components/image/multiple-gallery-image-input.component.ts | 2 +- .../shared/components/image/scada-symbol-input.component.html | 2 +- .../shared/components/image/scada-symbol-input.component.scss | 2 +- .../shared/components/image/scada-symbol-input.component.ts | 2 +- .../shared/components/image/upload-image-dialog.component.html | 2 +- .../shared/components/image/upload-image-dialog.component.ts | 2 +- .../app/shared/components/js-func-module-row.component.html | 2 +- .../app/shared/components/js-func-module-row.component.scss | 2 +- .../src/app/shared/components/js-func-module-row.component.ts | 2 +- .../src/app/shared/components/js-func-modules.component.html | 2 +- .../src/app/shared/components/js-func-modules.component.scss | 2 +- ui-ngx/src/app/shared/components/js-func-modules.component.ts | 2 +- ui-ngx/src/app/shared/components/js-func.component.html | 2 +- ui-ngx/src/app/shared/components/js-func.component.scss | 2 +- ui-ngx/src/app/shared/components/js-func.component.ts | 2 +- ui-ngx/src/app/shared/components/json-content.component.html | 2 +- ui-ngx/src/app/shared/components/json-content.component.scss | 2 +- ui-ngx/src/app/shared/components/json-content.component.ts | 2 +- .../src/app/shared/components/json-object-edit.component.html | 2 +- .../src/app/shared/components/json-object-edit.component.scss | 2 +- ui-ngx/src/app/shared/components/json-object-edit.component.ts | 2 +- .../src/app/shared/components/json-object-view.component.html | 2 +- .../src/app/shared/components/json-object-view.component.scss | 2 +- ui-ngx/src/app/shared/components/json-object-view.component.ts | 2 +- ui-ngx/src/app/shared/components/kv-map.component.html | 2 +- ui-ngx/src/app/shared/components/kv-map.component.scss | 2 +- ui-ngx/src/app/shared/components/kv-map.component.ts | 2 +- ui-ngx/src/app/shared/components/led-light.component.html | 2 +- ui-ngx/src/app/shared/components/led-light.component.ts | 2 +- ui-ngx/src/app/shared/components/logo.component.html | 2 +- ui-ngx/src/app/shared/components/logo.component.scss | 2 +- ui-ngx/src/app/shared/components/logo.component.ts | 2 +- .../src/app/shared/components/markdown-editor.component.html | 2 +- .../src/app/shared/components/markdown-editor.component.scss | 2 +- ui-ngx/src/app/shared/components/markdown-editor.component.ts | 2 +- ui-ngx/src/app/shared/components/markdown.component.html | 2 +- ui-ngx/src/app/shared/components/markdown.component.scss | 2 +- ui-ngx/src/app/shared/components/markdown.component.ts | 2 +- ui-ngx/src/app/shared/components/marked-options.service.ts | 2 +- .../app/shared/components/material-icon-select.component.html | 2 +- .../app/shared/components/material-icon-select.component.scss | 2 +- .../app/shared/components/material-icon-select.component.ts | 2 +- ui-ngx/src/app/shared/components/material-icons.component.html | 2 +- ui-ngx/src/app/shared/components/material-icons.component.scss | 2 +- ui-ngx/src/app/shared/components/material-icons.component.ts | 2 +- .../shared/components/message-type-autocomplete.component.html | 2 +- .../shared/components/message-type-autocomplete.component.ts | 2 +- .../app/shared/components/mqtt-version-select.component.html | 2 +- .../src/app/shared/components/mqtt-version-select.component.ts | 2 +- .../app/shared/components/multiple-image-input.component.html | 2 +- .../app/shared/components/multiple-image-input.component.scss | 2 +- .../app/shared/components/multiple-image-input.component.ts | 2 +- ui-ngx/src/app/shared/components/nav-tree.component.html | 2 +- ui-ngx/src/app/shared/components/nav-tree.component.scss | 2 +- ui-ngx/src/app/shared/components/nav-tree.component.ts | 2 +- .../shared/components/notification/notification.component.html | 2 +- .../shared/components/notification/notification.component.scss | 2 +- .../shared/components/notification/notification.component.ts | 2 +- .../notification/template-autocomplete.component.html | 2 +- .../notification/template-autocomplete.component.scss | 2 +- .../components/notification/template-autocomplete.component.ts | 2 +- .../ota-package/ota-package-autocomplete.component.html | 2 +- .../ota-package/ota-package-autocomplete.component.scss | 2 +- .../ota-package/ota-package-autocomplete.component.ts | 2 +- ui-ngx/src/app/shared/components/page.component.ts | 2 +- ui-ngx/src/app/shared/components/phone-input.component.html | 2 +- ui-ngx/src/app/shared/components/phone-input.component.scss | 2 +- ui-ngx/src/app/shared/components/phone-input.component.ts | 2 +- ui-ngx/src/app/shared/components/popover.component.scss | 2 +- ui-ngx/src/app/shared/components/popover.component.ts | 2 +- ui-ngx/src/app/shared/components/popover.models.ts | 2 +- ui-ngx/src/app/shared/components/popover.service.ts | 2 +- .../src/app/shared/components/protobuf-content.component.html | 2 +- .../src/app/shared/components/protobuf-content.component.scss | 2 +- ui-ngx/src/app/shared/components/protobuf-content.component.ts | 2 +- ui-ngx/src/app/shared/components/public-api.ts | 2 +- .../shared/components/queue/queue-autocomplete.component.html | 2 +- .../shared/components/queue/queue-autocomplete.component.scss | 2 +- .../shared/components/queue/queue-autocomplete.component.ts | 2 +- .../relation/relation-type-autocomplete.component.html | 2 +- .../relation/relation-type-autocomplete.component.ts | 2 +- .../components/resource/resource-autocomplete.component.html | 2 +- .../components/resource/resource-autocomplete.component.ts | 2 +- .../components/resource/resources-in-use-dialog.component.html | 2 +- .../components/resource/resources-in-use-dialog.component.scss | 2 +- .../components/resource/resources-in-use-dialog.component.ts | 2 +- .../rule-chain/rule-chain-select-panel.component.html | 2 +- .../rule-chain/rule-chain-select-panel.component.scss | 2 +- .../components/rule-chain/rule-chain-select-panel.component.ts | 2 +- .../components/rule-chain/rule-chain-select.component.html | 2 +- .../components/rule-chain/rule-chain-select.component.scss | 2 +- .../components/rule-chain/rule-chain-select.component.ts | 2 +- ui-ngx/src/app/shared/components/script-lang.component.html | 2 +- ui-ngx/src/app/shared/components/script-lang.component.scss | 2 +- ui-ngx/src/app/shared/components/script-lang.component.ts | 2 +- .../components/slack-conversation-autocomplete.component.html | 2 +- .../components/slack-conversation-autocomplete.component.scss | 2 +- .../components/slack-conversation-autocomplete.component.ts | 2 +- ui-ngx/src/app/shared/components/snack-bar-component.html | 2 +- ui-ngx/src/app/shared/components/snack-bar-component.scss | 2 +- .../src/app/shared/components/socialshare-panel.component.html | 2 +- .../src/app/shared/components/socialshare-panel.component.scss | 2 +- .../src/app/shared/components/socialshare-panel.component.ts | 2 +- .../app/shared/components/string-autocomplete.component.html | 2 +- .../app/shared/components/string-autocomplete.component.scss | 2 +- .../src/app/shared/components/string-autocomplete.component.ts | 2 +- .../src/app/shared/components/string-items-list.component.html | 2 +- .../src/app/shared/components/string-items-list.component.ts | 2 +- ui-ngx/src/app/shared/components/svg-xml.component.html | 2 +- ui-ngx/src/app/shared/components/svg-xml.component.scss | 2 +- ui-ngx/src/app/shared/components/svg-xml.component.ts | 2 +- .../app/shared/components/table/table-datasource.abstract.ts | 2 +- ui-ngx/src/app/shared/components/tb-anchor.component.ts | 2 +- ui-ngx/src/app/shared/components/tb-checkbox.component.html | 2 +- ui-ngx/src/app/shared/components/tb-checkbox.component.ts | 2 +- ui-ngx/src/app/shared/components/tb-error.component.ts | 2 +- .../aggregation-options-config-panel.component.html | 2 +- .../aggregation-options-config-panel.component.scss | 2 +- .../aggregation/aggregation-options-config-panel.component.ts | 2 +- .../time/aggregation/aggregation-type-select.component.html | 2 +- .../time/aggregation/aggregation-type-select.component.scss | 2 +- .../time/aggregation/aggregation-type-select.component.ts | 2 +- .../time/aggregation/grouping-interval-options.component.html | 2 +- .../time/aggregation/grouping-interval-options.component.scss | 2 +- .../time/aggregation/grouping-interval-options.component.ts | 2 +- .../app/shared/components/time/datapoints-limit.component.html | 2 +- .../app/shared/components/time/datapoints-limit.component.scss | 2 +- .../app/shared/components/time/datapoints-limit.component.ts | 2 +- .../app/shared/components/time/datetime-period.component.html | 2 +- .../app/shared/components/time/datetime-period.component.scss | 2 +- .../app/shared/components/time/datetime-period.component.ts | 2 +- ui-ngx/src/app/shared/components/time/datetime.component.html | 2 +- ui-ngx/src/app/shared/components/time/datetime.component.scss | 2 +- ui-ngx/src/app/shared/components/time/datetime.component.ts | 2 +- .../time/history-selector/history-selector.component.html | 2 +- .../time/history-selector/history-selector.component.scss | 2 +- .../time/history-selector/history-selector.component.ts | 2 +- .../time/interval-options-config-panel.component.html | 2 +- .../time/interval-options-config-panel.component.scss | 2 +- .../components/time/interval-options-config-panel.component.ts | 2 +- .../shared/components/time/quick-time-interval.component.html | 2 +- .../shared/components/time/quick-time-interval.component.scss | 2 +- .../shared/components/time/quick-time-interval.component.ts | 2 +- .../src/app/shared/components/time/timeinterval.component.html | 2 +- .../src/app/shared/components/time/timeinterval.component.scss | 2 +- .../src/app/shared/components/time/timeinterval.component.ts | 2 +- .../components/time/timewindow-config-dialog.component.html | 2 +- .../components/time/timewindow-config-dialog.component.scss | 2 +- .../components/time/timewindow-config-dialog.component.ts | 2 +- ui-ngx/src/app/shared/components/time/timewindow-form.scss | 2 +- .../app/shared/components/time/timewindow-panel.component.html | 2 +- .../app/shared/components/time/timewindow-panel.component.scss | 2 +- .../app/shared/components/time/timewindow-panel.component.ts | 2 +- .../src/app/shared/components/time/timewindow.component.html | 2 +- .../src/app/shared/components/time/timewindow.component.scss | 2 +- ui-ngx/src/app/shared/components/time/timewindow.component.ts | 2 +- .../app/shared/components/time/timezone-panel.component.html | 2 +- .../app/shared/components/time/timezone-panel.component.scss | 2 +- .../src/app/shared/components/time/timezone-panel.component.ts | 2 +- .../app/shared/components/time/timezone-select.component.html | 2 +- .../app/shared/components/time/timezone-select.component.ts | 2 +- ui-ngx/src/app/shared/components/time/timezone.component.html | 2 +- ui-ngx/src/app/shared/components/time/timezone.component.scss | 2 +- ui-ngx/src/app/shared/components/time/timezone.component.ts | 2 +- ui-ngx/src/app/shared/components/toast.directive.ts | 2 +- ui-ngx/src/app/shared/components/toggle-header.component.html | 2 +- ui-ngx/src/app/shared/components/toggle-header.component.scss | 2 +- ui-ngx/src/app/shared/components/toggle-header.component.ts | 2 +- ui-ngx/src/app/shared/components/toggle-select.component.html | 2 +- ui-ngx/src/app/shared/components/toggle-select.component.scss | 2 +- ui-ngx/src/app/shared/components/toggle-select.component.ts | 2 +- ui-ngx/src/app/shared/components/tokens.ts | 2 +- ui-ngx/src/app/shared/components/unit-input.component.html | 2 +- ui-ngx/src/app/shared/components/unit-input.component.scss | 2 +- ui-ngx/src/app/shared/components/unit-input.component.ts | 2 +- .../app/shared/components/unit-settings-panel.component.html | 2 +- .../app/shared/components/unit-settings-panel.component.scss | 2 +- .../src/app/shared/components/unit-settings-panel.component.ts | 2 +- ui-ngx/src/app/shared/components/user-menu.component.html | 2 +- ui-ngx/src/app/shared/components/user-menu.component.scss | 2 +- ui-ngx/src/app/shared/components/user-menu.component.ts | 2 +- ui-ngx/src/app/shared/components/value-input.component.html | 2 +- ui-ngx/src/app/shared/components/value-input.component.scss | 2 +- ui-ngx/src/app/shared/components/value-input.component.ts | 2 +- .../shared/components/vc/branch-autocomplete.component.html | 2 +- .../shared/components/vc/branch-autocomplete.component.scss | 2 +- .../app/shared/components/vc/branch-autocomplete.component.ts | 2 +- .../app/shared/components/widgets-bundle-search.component.html | 2 +- .../app/shared/components/widgets-bundle-search.component.scss | 2 +- .../app/shared/components/widgets-bundle-search.component.ts | 2 +- .../app/shared/components/widgets-bundle-select.component.html | 2 +- .../app/shared/components/widgets-bundle-select.component.scss | 2 +- .../app/shared/components/widgets-bundle-select.component.ts | 2 +- ui-ngx/src/app/shared/decorators/coercion.ts | 2 +- ui-ngx/src/app/shared/decorators/enumerable.ts | 2 +- ui-ngx/src/app/shared/decorators/public-api.ts | 2 +- ui-ngx/src/app/shared/directives/context-menu.directive.ts | 2 +- .../src/app/shared/directives/ellipsis-chip-list.directive.ts | 2 +- ui-ngx/src/app/shared/directives/public-api.ts | 2 +- .../app/shared/directives/truncate-with-tooltip.directive.ts | 2 +- .../shared/import-export/export-resource-dialog.component.html | 2 +- .../shared/import-export/export-resource-dialog.component.ts | 2 +- .../app/shared/import-export/import-dialog-csv.component.html | 2 +- .../app/shared/import-export/import-dialog-csv.component.scss | 2 +- .../app/shared/import-export/import-dialog-csv.component.ts | 2 +- .../src/app/shared/import-export/import-dialog.component.html | 2 +- ui-ngx/src/app/shared/import-export/import-dialog.component.ts | 2 +- ui-ngx/src/app/shared/import-export/import-export.models.ts | 2 +- ui-ngx/src/app/shared/import-export/import-export.service.ts | 2 +- .../import-export/table-columns-assignment.component.html | 2 +- .../import-export/table-columns-assignment.component.scss | 2 +- .../shared/import-export/table-columns-assignment.component.ts | 2 +- ui-ngx/src/app/shared/legacy/json-form-utils.ts | 2 +- ui-ngx/src/app/shared/legacy/json-form.models.ts | 2 +- ui-ngx/src/app/shared/models/ace/ace.models.ts | 2 +- ui-ngx/src/app/shared/models/ace/completion.models.ts | 2 +- ui-ngx/src/app/shared/models/ace/service-completion.models.ts | 2 +- ui-ngx/src/app/shared/models/ace/tbel-utils.models.ts | 2 +- ui-ngx/src/app/shared/models/ace/tbel/mode-tbel.js | 2 +- ui-ngx/src/app/shared/models/ace/tbel/worker-tbel.js | 2 +- ui-ngx/src/app/shared/models/ace/widget-completion.models.ts | 2 +- ui-ngx/src/app/shared/models/action-widget-settings.models.ts | 2 +- ui-ngx/src/app/shared/models/ai-model.models.ts | 2 +- ui-ngx/src/app/shared/models/alarm.models.ts | 2 +- ui-ngx/src/app/shared/models/alias.models.ts | 2 +- ui-ngx/src/app/shared/models/api-usage.models.ts | 2 +- ui-ngx/src/app/shared/models/asset.models.ts | 2 +- ui-ngx/src/app/shared/models/audit-log.models.ts | 2 +- ui-ngx/src/app/shared/models/authority.enum.ts | 2 +- ui-ngx/src/app/shared/models/base-data.ts | 2 +- ui-ngx/src/app/shared/models/beautify.models.ts | 2 +- ui-ngx/src/app/shared/models/calculated-field.models.ts | 2 +- ui-ngx/src/app/shared/models/color.models.ts | 2 +- ui-ngx/src/app/shared/models/common.ts | 2 +- ui-ngx/src/app/shared/models/component-descriptor.models.ts | 2 +- ui-ngx/src/app/shared/models/constants.ts | 2 +- ui-ngx/src/app/shared/models/contact-based.model.ts | 2 +- ui-ngx/src/app/shared/models/country.models.ts | 2 +- ui-ngx/src/app/shared/models/customer.model.ts | 2 +- ui-ngx/src/app/shared/models/dashboard.models.ts | 2 +- ui-ngx/src/app/shared/models/device.models.ts | 2 +- ui-ngx/src/app/shared/models/dynamic-form.models.ts | 2 +- ui-ngx/src/app/shared/models/edge.models.ts | 2 +- ui-ngx/src/app/shared/models/entity-type.models.ts | 2 +- ui-ngx/src/app/shared/models/entity-view.models.ts | 2 +- ui-ngx/src/app/shared/models/entity.models.ts | 2 +- ui-ngx/src/app/shared/models/error.models.ts | 2 +- ui-ngx/src/app/shared/models/event.models.ts | 2 +- ui-ngx/src/app/shared/models/icon.models.ts | 2 +- ui-ngx/src/app/shared/models/id/ai-model-id.ts | 2 +- ui-ngx/src/app/shared/models/id/alarm-comment-id.ts | 2 +- ui-ngx/src/app/shared/models/id/alarm-id.ts | 2 +- ui-ngx/src/app/shared/models/id/asset-id.ts | 2 +- ui-ngx/src/app/shared/models/id/asset-profile-id.ts | 2 +- ui-ngx/src/app/shared/models/id/audit-log-id.ts | 2 +- ui-ngx/src/app/shared/models/id/calculated-field-id.ts | 2 +- ui-ngx/src/app/shared/models/id/customer-id.ts | 2 +- ui-ngx/src/app/shared/models/id/dashboard-id.ts | 2 +- ui-ngx/src/app/shared/models/id/device-credentials-id.ts | 2 +- ui-ngx/src/app/shared/models/id/device-id.ts | 2 +- ui-ngx/src/app/shared/models/id/device-profile-id.ts | 2 +- ui-ngx/src/app/shared/models/id/domain-id.ts | 2 +- ui-ngx/src/app/shared/models/id/edge-id.ts | 2 +- ui-ngx/src/app/shared/models/id/entity-id.ts | 2 +- ui-ngx/src/app/shared/models/id/entity-view-id.ts | 2 +- ui-ngx/src/app/shared/models/id/event-id.ts | 2 +- ui-ngx/src/app/shared/models/id/has-uuid.ts | 2 +- ui-ngx/src/app/shared/models/id/mobile-app-bundle-id.ts | 2 +- ui-ngx/src/app/shared/models/id/mobile-app-id.ts | 2 +- ui-ngx/src/app/shared/models/id/notification-id.ts | 2 +- ui-ngx/src/app/shared/models/id/notification-request-id.ts | 2 +- ui-ngx/src/app/shared/models/id/notification-rule-id.ts | 2 +- ui-ngx/src/app/shared/models/id/notification-target-id.ts | 2 +- ui-ngx/src/app/shared/models/id/notification-template-id.ts | 2 +- ui-ngx/src/app/shared/models/id/oauth2-client-id.ts | 2 +- ui-ngx/src/app/shared/models/id/ota-package-id.ts | 2 +- ui-ngx/src/app/shared/models/id/public-api.ts | 2 +- ui-ngx/src/app/shared/models/id/queue-id.ts | 2 +- ui-ngx/src/app/shared/models/id/rpc-id.ts | 2 +- ui-ngx/src/app/shared/models/id/rule-chain-id.ts | 2 +- ui-ngx/src/app/shared/models/id/rule-node-id.ts | 2 +- ui-ngx/src/app/shared/models/id/tb-resource-id.ts | 2 +- ui-ngx/src/app/shared/models/id/tenant-id.ts | 2 +- ui-ngx/src/app/shared/models/id/tenant-profile-id.ts | 2 +- ui-ngx/src/app/shared/models/id/user-id.ts | 2 +- ui-ngx/src/app/shared/models/id/widget-type-id.ts | 2 +- ui-ngx/src/app/shared/models/id/widgets-bundle-id.ts | 2 +- ui-ngx/src/app/shared/models/jquery-event.models.ts | 2 +- ui-ngx/src/app/shared/models/js-function.models.ts | 2 +- ui-ngx/src/app/shared/models/limited-api.models.ts | 2 +- ui-ngx/src/app/shared/models/login.models.ts | 2 +- ui-ngx/src/app/shared/models/lwm2m-security-config.models.ts | 2 +- ui-ngx/src/app/shared/models/material.models.ts | 2 +- ui-ngx/src/app/shared/models/mobile-app.models.ts | 2 +- ui-ngx/src/app/shared/models/mqtt.models.ts | 2 +- ui-ngx/src/app/shared/models/notification.models.ts | 2 +- ui-ngx/src/app/shared/models/oauth2.models.ts | 2 +- ui-ngx/src/app/shared/models/ota-package.models.ts | 2 +- ui-ngx/src/app/shared/models/overlay.models.ts | 2 +- ui-ngx/src/app/shared/models/page/page-data.ts | 2 +- ui-ngx/src/app/shared/models/page/page-link.ts | 2 +- ui-ngx/src/app/shared/models/page/public-api.ts | 2 +- ui-ngx/src/app/shared/models/page/sort-order.ts | 2 +- ui-ngx/src/app/shared/models/public-api.ts | 2 +- ui-ngx/src/app/shared/models/query/query.models.ts | 2 +- ui-ngx/src/app/shared/models/queue.models.ts | 2 +- ui-ngx/src/app/shared/models/regex.constants.ts | 2 +- ui-ngx/src/app/shared/models/relation.models.ts | 2 +- ui-ngx/src/app/shared/models/resource.models.ts | 2 +- ui-ngx/src/app/shared/models/rpc.models.ts | 2 +- ui-ngx/src/app/shared/models/rule-chain.models.ts | 2 +- ui-ngx/src/app/shared/models/rule-node.models.ts | 2 +- ui-ngx/src/app/shared/models/settings.models.ts | 2 +- ui-ngx/src/app/shared/models/telemetry/telemetry.models.ts | 2 +- ui-ngx/src/app/shared/models/tenant.model.ts | 2 +- ui-ngx/src/app/shared/models/time/time.models.ts | 2 +- ui-ngx/src/app/shared/models/trendz-settings.models.ts | 2 +- ui-ngx/src/app/shared/models/two-factor-auth.models.ts | 2 +- ui-ngx/src/app/shared/models/unit.models.ts | 2 +- ui-ngx/src/app/shared/models/units/absorbed-dose-rate.ts | 2 +- ui-ngx/src/app/shared/models/units/acceleration.ts | 2 +- ui-ngx/src/app/shared/models/units/acidity.ts | 2 +- ui-ngx/src/app/shared/models/units/air-quality-index.ts | 2 +- ui-ngx/src/app/shared/models/units/amount-of-substance.ts | 2 +- ui-ngx/src/app/shared/models/units/angle.ts | 2 +- ui-ngx/src/app/shared/models/units/angular-acceleration.ts | 2 +- ui-ngx/src/app/shared/models/units/area-density.ts | 2 +- ui-ngx/src/app/shared/models/units/area.ts | 2 +- ui-ngx/src/app/shared/models/units/capacitance.ts | 2 +- ui-ngx/src/app/shared/models/units/catalytic-activity.ts | 2 +- ui-ngx/src/app/shared/models/units/catalytic-concentration.ts | 2 +- ui-ngx/src/app/shared/models/units/charge.ts | 2 +- ui-ngx/src/app/shared/models/units/current-density.ts | 2 +- ui-ngx/src/app/shared/models/units/data-transfer-rate.ts | 2 +- ui-ngx/src/app/shared/models/units/density.ts | 2 +- ui-ngx/src/app/shared/models/units/digital.ts | 2 +- ui-ngx/src/app/shared/models/units/dimension-ratio.ts | 2 +- ui-ngx/src/app/shared/models/units/dynamic-viscosity.ts | 2 +- ui-ngx/src/app/shared/models/units/earthquake-magnitude.ts | 2 +- ui-ngx/src/app/shared/models/units/electric-charge-density.ts | 2 +- ui-ngx/src/app/shared/models/units/electric-current.ts | 2 +- ui-ngx/src/app/shared/models/units/electric-dipole-moment.ts | 2 +- ui-ngx/src/app/shared/models/units/electric-field-strength.ts | 2 +- ui-ngx/src/app/shared/models/units/electric-flux.ts | 2 +- ui-ngx/src/app/shared/models/units/electric-permittivity.ts | 2 +- ui-ngx/src/app/shared/models/units/electric-polarizability.ts | 2 +- ui-ngx/src/app/shared/models/units/electrical-conductance.ts | 2 +- ui-ngx/src/app/shared/models/units/electrical-conductivity.ts | 2 +- ui-ngx/src/app/shared/models/units/energy-density.ts | 2 +- ui-ngx/src/app/shared/models/units/energy.ts | 2 +- ui-ngx/src/app/shared/models/units/force.ts | 2 +- ui-ngx/src/app/shared/models/units/frequency.ts | 2 +- ui-ngx/src/app/shared/models/units/fuel-efficiency.ts | 2 +- ui-ngx/src/app/shared/models/units/heat-capacity.ts | 2 +- ui-ngx/src/app/shared/models/units/illuminance.ts | 2 +- ui-ngx/src/app/shared/models/units/inductance.ts | 2 +- ui-ngx/src/app/shared/models/units/kinematic-viscosity.ts | 2 +- ui-ngx/src/app/shared/models/units/length.ts | 2 +- ui-ngx/src/app/shared/models/units/light-exposure.ts | 2 +- ui-ngx/src/app/shared/models/units/liner-charge-density.ts | 2 +- ui-ngx/src/app/shared/models/units/logarithmic-ratio.ts | 2 +- ui-ngx/src/app/shared/models/units/luminous-efficacy.ts | 2 +- ui-ngx/src/app/shared/models/units/luminous-flux.ts | 2 +- ui-ngx/src/app/shared/models/units/luminous-intensity.ts | 2 +- ui-ngx/src/app/shared/models/units/magnetic-field-gradient.ts | 2 +- ui-ngx/src/app/shared/models/units/magnetic-flux-density.ts | 2 +- ui-ngx/src/app/shared/models/units/magnetic-flux.ts | 2 +- ui-ngx/src/app/shared/models/units/magnetic-moment.ts | 2 +- ui-ngx/src/app/shared/models/units/magnetic-permeability.ts | 2 +- ui-ngx/src/app/shared/models/units/mass-fraction.ts | 2 +- ui-ngx/src/app/shared/models/units/mass.ts | 2 +- ui-ngx/src/app/shared/models/units/molar-concentration.ts | 2 +- ui-ngx/src/app/shared/models/units/molar-energy.ts | 2 +- ui-ngx/src/app/shared/models/units/molar-heat-capacity.ts | 2 +- ui-ngx/src/app/shared/models/units/molar-mass.ts | 2 +- ui-ngx/src/app/shared/models/units/number-concentration.ts | 2 +- ui-ngx/src/app/shared/models/units/parts-per-million.ts | 2 +- ui-ngx/src/app/shared/models/units/power-density.ts | 2 +- ui-ngx/src/app/shared/models/units/power.ts | 2 +- ui-ngx/src/app/shared/models/units/pressure.ts | 2 +- ui-ngx/src/app/shared/models/units/radiance.ts | 2 +- ui-ngx/src/app/shared/models/units/radiant-intensity.ts | 2 +- ui-ngx/src/app/shared/models/units/radiation-dose.ts | 2 +- ui-ngx/src/app/shared/models/units/radioactive-decay.ts | 2 +- .../src/app/shared/models/units/radioactivity-concentration.ts | 2 +- ui-ngx/src/app/shared/models/units/radioactivity.ts | 2 +- ui-ngx/src/app/shared/models/units/reciprocal-length.ts | 2 +- ui-ngx/src/app/shared/models/units/resistance.ts | 2 +- ui-ngx/src/app/shared/models/units/reynolds-number.ts | 2 +- ui-ngx/src/app/shared/models/units/signal-level.ts | 2 +- ui-ngx/src/app/shared/models/units/solid-angle.ts | 2 +- ui-ngx/src/app/shared/models/units/specific-energy.ts | 2 +- ui-ngx/src/app/shared/models/units/specific-heat-capacity.ts | 2 +- ui-ngx/src/app/shared/models/units/specific-humidity.ts | 2 +- ui-ngx/src/app/shared/models/units/specific-volume.ts | 2 +- ui-ngx/src/app/shared/models/units/speed.ts | 2 +- ui-ngx/src/app/shared/models/units/surface-charge-density.ts | 2 +- ui-ngx/src/app/shared/models/units/surface-tension.ts | 2 +- ui-ngx/src/app/shared/models/units/temperature.ts | 2 +- ui-ngx/src/app/shared/models/units/thermal-conductivity.ts | 2 +- ui-ngx/src/app/shared/models/units/time.ts | 2 +- ui-ngx/src/app/shared/models/units/torque.ts | 2 +- ui-ngx/src/app/shared/models/units/turbidity.ts | 2 +- ui-ngx/src/app/shared/models/units/voltage.ts | 2 +- ui-ngx/src/app/shared/models/units/volume-flow.ts | 2 +- ui-ngx/src/app/shared/models/units/volume.ts | 2 +- ui-ngx/src/app/shared/models/usage.models.ts | 2 +- ui-ngx/src/app/shared/models/user-settings.models.ts | 2 +- ui-ngx/src/app/shared/models/user.model.ts | 2 +- ui-ngx/src/app/shared/models/vc.models.ts | 2 +- ui-ngx/src/app/shared/models/websocket/websocket.models.ts | 2 +- ui-ngx/src/app/shared/models/widget-settings.models.ts | 2 +- ui-ngx/src/app/shared/models/widget.models.ts | 2 +- .../src/app/shared/models/widget/maps/map-model.definition.ts | 2 +- ui-ngx/src/app/shared/models/widget/maps/map.models.ts | 2 +- .../src/app/shared/models/widget/maps/marker-shape.models.ts | 2 +- ui-ngx/src/app/shared/models/widget/public-api.ts | 2 +- .../src/app/shared/models/widget/rpc/knob.component.models.ts | 2 +- ui-ngx/src/app/shared/models/widget/widget-model.definition.ts | 2 +- ui-ngx/src/app/shared/models/widgets-bundle.model.ts | 2 +- ui-ngx/src/app/shared/models/window-message.model.ts | 2 +- ui-ngx/src/app/shared/pipe/custom-translate.pipe.ts | 2 +- ui-ngx/src/app/shared/pipe/date-ago.pipe.ts | 2 +- ui-ngx/src/app/shared/pipe/duration-left.pipe.ts | 2 +- ui-ngx/src/app/shared/pipe/enum-to-array.pipe.ts | 2 +- ui-ngx/src/app/shared/pipe/file-size.pipe.ts | 2 +- ui-ngx/src/app/shared/pipe/highlight.pipe.ts | 2 +- ui-ngx/src/app/shared/pipe/image.pipe.ts | 2 +- ui-ngx/src/app/shared/pipe/key-value-not-empty.pipe.ts | 2 +- ui-ngx/src/app/shared/pipe/keyboard-shortcut.pipe.ts | 2 +- ui-ngx/src/app/shared/pipe/milliseconds-to-time-string.pipe.ts | 2 +- ui-ngx/src/app/shared/pipe/nospace.pipe.ts | 2 +- ui-ngx/src/app/shared/pipe/public-api.ts | 2 +- ui-ngx/src/app/shared/pipe/safe.pipe.ts | 2 +- ui-ngx/src/app/shared/pipe/selectable-columns.pipe.ts | 2 +- ui-ngx/src/app/shared/pipe/short-number.pipe.ts | 2 +- ui-ngx/src/app/shared/pipe/tbJson.pipe.ts | 2 +- ui-ngx/src/app/shared/pipe/truncate.pipe.ts | 2 +- ui-ngx/src/app/shared/public-api.ts | 2 +- ui-ngx/src/app/shared/services/custom-paginator-intl.ts | 2 +- ui-ngx/src/app/shared/shared.module.ts | 2 +- ui-ngx/src/assets/fonts/material-icons.css | 2 +- ui-ngx/src/environments/environment.prod.ts | 2 +- ui-ngx/src/environments/environment.ts | 2 +- ui-ngx/src/form.scss | 2 +- ui-ngx/src/index.html | 2 +- ui-ngx/src/main.ts | 2 +- ui-ngx/src/polyfills.ts | 2 +- ui-ngx/src/scss/animations.scss | 2 +- ui-ngx/src/scss/constants.scss | 2 +- ui-ngx/src/scss/fonts.scss | 2 +- ui-ngx/src/scss/mixins.scss | 2 +- ui-ngx/src/styles.scss | 2 +- ui-ngx/src/theme-overwrites.scss | 2 +- ui-ngx/src/theme.scss | 2 +- ui-ngx/src/theme/datepicker-theme.scss | 2 +- ui-ngx/src/typings/jquery.flot.typings.d.ts | 2 +- ui-ngx/src/typings/jquery.jstree.typings.d.ts | 2 +- ui-ngx/src/typings/jquery.typings.d.ts | 2 +- ui-ngx/src/typings/leaflet-extend-tb.d.ts | 2 +- ui-ngx/src/typings/leaflet-geoman-extend.d.ts | 2 +- ui-ngx/src/typings/rawloader.typings.d.ts | 2 +- ui-ngx/src/typings/split.js.typings.d.ts | 2 +- ui-ngx/src/typings/utils.d.ts | 2 +- ui-ngx/src/zone-flags.ts | 2 +- ui-ngx/tailwind.config.js | 2 +- 7544 files changed, 7544 insertions(+), 7554 deletions(-) diff --git a/.github/release.yml b/.github/release.yml index 1dad5d274f..70852dcbb2 100644 --- a/.github/release.yml +++ b/.github/release.yml @@ -1,5 +1,5 @@ # -# Copyright © 2016-2025 The Thingsboard Authors +# Copyright © 2016-2026 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. diff --git a/.github/workflows/check-configuration-files.yml b/.github/workflows/check-configuration-files.yml index 561b7d0019..0ea9d61923 100644 --- a/.github/workflows/check-configuration-files.yml +++ b/.github/workflows/check-configuration-files.yml @@ -1,5 +1,5 @@ # -# Copyright © 2016-2025 The Thingsboard Authors +# Copyright © 2016-2026 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. diff --git a/.github/workflows/license-header-format.yml b/.github/workflows/license-header-format.yml index 20a1c1350a..0ac41c7bc8 100644 --- a/.github/workflows/license-header-format.yml +++ b/.github/workflows/license-header-format.yml @@ -1,5 +1,5 @@ # -# Copyright © 2016-2025 The Thingsboard Authors +# Copyright © 2016-2026 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. diff --git a/application/pom.xml b/application/pom.xml index 9f3b79b3f5..36dfcac42f 100644 --- a/application/pom.xml +++ b/application/pom.xml @@ -1,6 +1,6 @@ -
Date: Thu, 8 Jan 2026 12:35:27 +0200 Subject: [PATCH 19/72] Add DefaultSystemSecurityServiceTest --- .../DefaultSystemSecurityServiceTest.java | 204 ++++++++++++++++++ 1 file changed, 204 insertions(+) create mode 100644 application/src/test/java/org/thingsboard/server/service/security/system/DefaultSystemSecurityServiceTest.java diff --git a/application/src/test/java/org/thingsboard/server/service/security/system/DefaultSystemSecurityServiceTest.java b/application/src/test/java/org/thingsboard/server/service/security/system/DefaultSystemSecurityServiceTest.java new file mode 100644 index 0000000000..05e51177af --- /dev/null +++ b/application/src/test/java/org/thingsboard/server/service/security/system/DefaultSystemSecurityServiceTest.java @@ -0,0 +1,204 @@ +/** + * Copyright © 2016-2025 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. + */ +package org.thingsboard.server.service.security.system; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.junit.MockitoJUnitRunner; +import org.springframework.security.authentication.BadCredentialsException; +import org.springframework.security.authentication.DisabledException; +import org.springframework.security.authentication.LockedException; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; +import org.thingsboard.rule.engine.api.MailService; +import org.thingsboard.server.common.data.exception.ThingsboardException; +import org.thingsboard.server.common.data.id.TenantId; +import org.thingsboard.server.common.data.id.UserId; +import org.thingsboard.server.common.data.security.UserCredentials; +import org.thingsboard.server.common.data.security.model.SecuritySettings; +import org.thingsboard.server.common.data.security.model.UserPasswordPolicy; +import org.thingsboard.server.dao.audit.AuditLogService; +import org.thingsboard.server.dao.settings.AdminSettingsService; +import org.thingsboard.server.dao.settings.SecuritySettingsService; +import org.thingsboard.server.dao.user.UserService; + +import java.util.UUID; + +import static org.assertj.core.api.Assertions.assertThatThrownBy; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +@RunWith(MockitoJUnitRunner.class) +public class DefaultSystemSecurityServiceTest { + + @Mock + private AdminSettingsService adminSettingsService; + @Mock + private BCryptPasswordEncoder encoder; + @Mock + private UserService userService; + @Mock + private MailService mailService; + @Mock + private AuditLogService auditLogService; + @Mock + private SecuritySettingsService securitySettingsService; + + private DefaultSystemSecurityService systemSecurityService; + + private TenantId tenantId; + private UserId userId; + private UserCredentials userCredentials; + private SecuritySettings securitySettings; + private String username; + private String password; + private String encodedPassword; + + @Before + public void setUp() { + systemSecurityService = new DefaultSystemSecurityService(adminSettingsService, encoder, userService, mailService, auditLogService, securitySettingsService); + + tenantId = TenantId.fromUUID(UUID.randomUUID()); + userId = new UserId(UUID.randomUUID()); + username = "tenant@example.com"; + password = "correctPassword"; + encodedPassword = "$2a$10$encodedPasswordHash"; + + userCredentials = new UserCredentials(); + userCredentials.setUserId(userId); + userCredentials.setEnabled(true); + userCredentials.setPassword(encodedPassword); + userCredentials.setCreatedTime(System.currentTimeMillis()); + + securitySettings = new SecuritySettings(); + securitySettings.setMaxFailedLoginAttempts(5); + securitySettings.setPasswordPolicy(new UserPasswordPolicy()); + } + + @Test + public void testValidateUserCredentials_successfulLogin() { + when(encoder.matches(password, encodedPassword)).thenReturn(true); + when(securitySettingsService.getSecuritySettings()).thenReturn(securitySettings); + + systemSecurityService.validateUserCredentials(tenantId, userCredentials, username, password); + + verify(encoder).matches(password, encodedPassword); + verify(userService).resetFailedLoginAttempts(tenantId, userId); + verify(userService, never()).increaseFailedLoginAttempts(any(), any()); + } + + @Test + public void testValidateUserCredentials_wrongPassword_incrementsFailedAttempts() { + when(encoder.matches(password, encodedPassword)).thenReturn(false); + when(userService.increaseFailedLoginAttempts(tenantId, userId)).thenReturn(3); + when(securitySettingsService.getSecuritySettings()).thenReturn(securitySettings); + + assertThatThrownBy(() -> systemSecurityService.validateUserCredentials(tenantId, userCredentials, username, password)) + .isInstanceOf(BadCredentialsException.class) + .hasMessageContaining("Authentication Failed"); + + verify(userService).increaseFailedLoginAttempts(tenantId, userId); + verify(userService, never()).setUserCredentialsEnabled(any(), any(), eq(false)); + } + + @Test + public void testValidateUserCredentials_wrongPassword_accountLocked() { + when(encoder.matches(password, encodedPassword)).thenReturn(false); + when(userService.increaseFailedLoginAttempts(tenantId, userId)).thenReturn(6); + when(securitySettingsService.getSecuritySettings()).thenReturn(securitySettings); + + assertThatThrownBy(() -> systemSecurityService.validateUserCredentials(tenantId, userCredentials, username, password)) + .isInstanceOf(LockedException.class) + .hasMessageContaining("locked due to security policy"); + + verify(userService).increaseFailedLoginAttempts(tenantId, userId); + verify(userService).setUserCredentialsEnabled(TenantId.SYS_TENANT_ID, userId, false); + } + + @Test + public void testValidateUserCredentials_wrongPassword_exactlyAtThreshold_noLock() { + when(encoder.matches(password, encodedPassword)).thenReturn(false); + when(userService.increaseFailedLoginAttempts(tenantId, userId)).thenReturn(5); + when(securitySettingsService.getSecuritySettings()).thenReturn(securitySettings); + + assertThatThrownBy(() -> systemSecurityService.validateUserCredentials(tenantId, userCredentials, username, password)) + .isInstanceOf(BadCredentialsException.class) + .hasMessageContaining("Authentication Failed"); + + verify(userService).increaseFailedLoginAttempts(tenantId, userId); + verify(userService, never()).setUserCredentialsEnabled(any(), any(), eq(false)); + } + + @Test + public void testValidateUserCredentials_correctPassword_disabledUser_throwsDisabledException() { + userCredentials.setEnabled(false); + + assertThatThrownBy(() -> systemSecurityService.validateUserCredentials(tenantId, userCredentials, username, password)) + .isInstanceOf(DisabledException.class) + .hasMessage("User is not active"); + + verify(encoder, never()).matches(any(), any()); + verify(userService, never()).increaseFailedLoginAttempts(any(), any()); + } + + @Test + public void testValidateUserCredentials_wrongPassword_maxAttemptsDisabled() { + securitySettings.setMaxFailedLoginAttempts(null); + when(encoder.matches(password, encodedPassword)).thenReturn(false); + when(userService.increaseFailedLoginAttempts(tenantId, userId)).thenReturn(100); + when(securitySettingsService.getSecuritySettings()).thenReturn(securitySettings); + + assertThatThrownBy(() -> systemSecurityService.validateUserCredentials(tenantId, userCredentials, username, password)) + .isInstanceOf(BadCredentialsException.class); + + verify(userService).increaseFailedLoginAttempts(tenantId, userId); + verify(userService, never()).setUserCredentialsEnabled(any(), any(), eq(false)); + } + + @Test + public void testValidateUserCredentials_wrongPassword_maxAttemptsSetToZero() { + securitySettings.setMaxFailedLoginAttempts(0); + when(encoder.matches(password, encodedPassword)).thenReturn(false); + when(userService.increaseFailedLoginAttempts(tenantId, userId)).thenReturn(100); + when(securitySettingsService.getSecuritySettings()).thenReturn(securitySettings); + + assertThatThrownBy(() -> systemSecurityService.validateUserCredentials(tenantId, userCredentials, username, password)) + .isInstanceOf(BadCredentialsException.class); + + verify(userService).increaseFailedLoginAttempts(tenantId, userId); + verify(userService, never()).setUserCredentialsEnabled(any(), any(), eq(false)); + } + + @Test + public void testValidateUserCredentials_wrongPassword_withNotificationEmail() throws ThingsboardException { + String notificationEmail = "admin@example.com"; + securitySettings.setUserLockoutNotificationEmail(notificationEmail); + when(encoder.matches(password, encodedPassword)).thenReturn(false); + when(userService.increaseFailedLoginAttempts(tenantId, userId)).thenReturn(6); + when(securitySettingsService.getSecuritySettings()).thenReturn(securitySettings); + + assertThatThrownBy(() -> systemSecurityService.validateUserCredentials(tenantId, userCredentials, username, password)) + .isInstanceOf(LockedException.class); + + verify(userService).setUserCredentialsEnabled(TenantId.SYS_TENANT_ID, userId, false); + verify(mailService).sendAccountLockoutEmail(eq(username), eq(notificationEmail), eq(5)); + } + +} From 9e748520e848daaf23254777df6e3ba70fcf418f Mon Sep 17 00:00:00 2001 From: Viacheslav Klimov Date: Fri, 9 Jan 2026 14:52:31 +0200 Subject: [PATCH 20/72] Fix invalid notification targets search by type --- .../NotificationTargetApiTest.java | 28 +++++++++++++++++++ .../JpaNotificationTargetDao.java | 2 +- .../NotificationTargetRepository.java | 15 +++++++--- 3 files changed, 40 insertions(+), 5 deletions(-) diff --git a/application/src/test/java/org/thingsboard/server/service/notification/NotificationTargetApiTest.java b/application/src/test/java/org/thingsboard/server/service/notification/NotificationTargetApiTest.java index adfe8a2435..2d865542a1 100644 --- a/application/src/test/java/org/thingsboard/server/service/notification/NotificationTargetApiTest.java +++ b/application/src/test/java/org/thingsboard/server/service/notification/NotificationTargetApiTest.java @@ -16,6 +16,7 @@ package org.thingsboard.server.service.notification; import com.fasterxml.jackson.core.type.TypeReference; +import org.apache.commons.lang3.RandomStringUtils; import org.junit.Before; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -30,7 +31,12 @@ import org.thingsboard.server.common.data.notification.targets.NotificationTarge import org.thingsboard.server.common.data.notification.targets.platform.AllUsersFilter; import org.thingsboard.server.common.data.notification.targets.platform.CustomerUsersFilter; import org.thingsboard.server.common.data.notification.targets.platform.PlatformUsersNotificationTargetConfig; +import org.thingsboard.server.common.data.notification.targets.platform.SystemAdministratorsFilter; import org.thingsboard.server.common.data.notification.targets.platform.UserListFilter; +import org.thingsboard.server.common.data.notification.targets.platform.UsersFilterType; +import org.thingsboard.server.common.data.notification.targets.slack.SlackConversation; +import org.thingsboard.server.common.data.notification.targets.slack.SlackConversationType; +import org.thingsboard.server.common.data.notification.targets.slack.SlackNotificationTargetConfig; import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageLink; import org.thingsboard.server.dao.notification.NotificationTargetDao; @@ -175,6 +181,28 @@ public class NotificationTargetApiTest extends AbstractNotificationApiTest { assertThat(error).containsIgnoringCase("referenced by scheduled notification request"); } + @Test + public void findByTenantIdAndUsersFilterType() throws Exception { + loginSysAdmin(); + NotificationTarget sysAdmins = createNotificationTarget(new SystemAdministratorsFilter()); + + NotificationTarget slack = new NotificationTarget(); + slack.setName(RandomStringUtils.randomNumeric(5)); + SlackNotificationTargetConfig slackConfig = new SlackNotificationTargetConfig(); + SlackConversation slackConversation = new SlackConversation(); + slackConversation.setType(SlackConversationType.DIRECT); + slackConversation.setId("U12345678"); + slackConversation.setName("test"); + slackConfig.setConversation(slackConversation); + slack.setConfiguration(slackConfig); + slack = saveNotificationTarget(slack); + + List sysAdminTargets = notificationTargetDao.findByTenantIdAndUsersFilterType( + TenantId.SYS_TENANT_ID, UsersFilterType.SYSTEM_ADMINISTRATORS + ); + assertThat(sysAdminTargets).containsOnly(sysAdmins); + } + private String saveAndGetError(NotificationTarget notificationTarget, ResultMatcher statusMatcher) throws Exception { return getErrorMessage(save(notificationTarget, statusMatcher)); } diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/notification/JpaNotificationTargetDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/notification/JpaNotificationTargetDao.java index d05172e255..00dddd0114 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/notification/JpaNotificationTargetDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/notification/JpaNotificationTargetDao.java @@ -67,7 +67,7 @@ public class JpaNotificationTargetDao extends JpaAbstractDao findByTenantIdAndUsersFilterType(TenantId tenantId, UsersFilterType filterType) { - return DaoUtil.convertDataList(notificationTargetRepository.findByTenantIdAndSearchTextAndUsersFilterTypeIfPresent(tenantId.getId(), null, + return DaoUtil.convertDataList(notificationTargetRepository.findByTenantIdAndUsersFilterType(tenantId.getId(), List.of(filterType.name()), DaoUtil.toPageable(new PageLink(Integer.MAX_VALUE))).getContent()); } diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/notification/NotificationTargetRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/notification/NotificationTargetRepository.java index 961e734c9e..e807a6bffb 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/notification/NotificationTargetRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/notification/NotificationTargetRepository.java @@ -33,20 +33,27 @@ import java.util.UUID; public interface NotificationTargetRepository extends JpaRepository, ExportableEntityRepository { @Query("SELECT t FROM NotificationTargetEntity t WHERE t.tenantId = :tenantId " + - "AND (:searchText is NULL OR ilike(t.name, concat('%', :searchText, '%')) = true)") + "AND (:searchText is NULL OR ilike(t.name, concat('%', :searchText, '%')) = true)") Page findByTenantIdAndSearchText(@Param("tenantId") UUID tenantId, @Param("searchText") String searchText, Pageable pageable); @Query(value = "SELECT * FROM notification_target t WHERE t.tenant_id = :tenantId " + - "AND (:searchText IS NULL OR t.name ILIKE concat('%', :searchText, '%')) " + - "AND (cast(t.configuration as json) ->> 'type' <> 'PLATFORM_USERS' OR " + - "cast(t.configuration as json) -> 'usersFilter' ->> 'type' IN :usersFilterTypes)", nativeQuery = true) + "AND (:searchText IS NULL OR t.name ILIKE concat('%', :searchText, '%')) " + + "AND (cast(t.configuration as json) ->> 'type' <> 'PLATFORM_USERS' OR " + + "cast(t.configuration as json) -> 'usersFilter' ->> 'type' IN :usersFilterTypes)", nativeQuery = true) Page findByTenantIdAndSearchTextAndUsersFilterTypeIfPresent(@Param("tenantId") UUID tenantId, @Param("searchText") String searchText, @Param("usersFilterTypes") List usersFilterTypes, Pageable pageable); + @Query(value = "SELECT * FROM notification_target t WHERE t.tenant_id = :tenantId " + + "AND (cast(t.configuration as json) ->> 'type' = 'PLATFORM_USERS' AND " + + "cast(t.configuration as json) -> 'usersFilter' ->> 'type' IN :usersFilterTypes)", nativeQuery = true) + Page findByTenantIdAndUsersFilterType(@Param("tenantId") UUID tenantId, + @Param("usersFilterTypes") List usersFilterTypes, + Pageable pageable); + List findByTenantIdAndIdIn(UUID tenantId, List ids); @Transactional From 38d4f23c5eb657483c0b21b927e15233941923ff Mon Sep 17 00:00:00 2001 From: Viacheslav Klimov Date: Tue, 13 Jan 2026 17:12:41 +0200 Subject: [PATCH 21/72] Fix CONF_FOLDER for start-tb-edqs.sh in k8s --- msa/edqs/docker/start-tb-edqs.sh | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/msa/edqs/docker/start-tb-edqs.sh b/msa/edqs/docker/start-tb-edqs.sh index 40970ead21..4968f5b866 100755 --- a/msa/edqs/docker/start-tb-edqs.sh +++ b/msa/edqs/docker/start-tb-edqs.sh @@ -15,11 +15,19 @@ # limitations under the License. # -CONF_FOLDER=${pkg.installFolder}/conf jarfile=${pkg.installFolder}/bin/${pkg.name}.jar configfile=${pkg.name}.conf -source "${CONF_FOLDER}/${configfile}" +CONF_FOLDER="/config" +if [ -d "${CONF_FOLDER}" ]; then + LOGGING_CONFIG="${CONF_FOLDER}/logback.xml" + source "${CONF_FOLDER}/${configfile}" + export LOADER_PATH=${CONF_FOLDER},${LOADER_PATH} +else + CONF_FOLDER="/usr/share/${pkg.name}/conf" + LOGGING_CONFIG="/usr/share/${pkg.name}/conf/logback.xml" + source "${CONF_FOLDER}/${configfile}" +fi echo "Starting '${project.name}' ..." @@ -27,5 +35,5 @@ cd ${pkg.installFolder}/bin exec java -cp ${jarfile} $JAVA_OPTS -Dloader.main=org.thingsboard.server.edqs.ThingsboardEdqsApplication \ -Dspring.jpa.hibernate.ddl-auto=none \ - -Dlogging.config=$CONF_FOLDER/logback.xml \ + -Dlogging.config=${LOGGING_CONFIG} \ org.springframework.boot.loader.launch.PropertiesLauncher From 32f7c2abf744caeddd45e3eed843f145176ead45 Mon Sep 17 00:00:00 2001 From: dashevchenko Date: Tue, 13 Jan 2026 17:44:31 +0200 Subject: [PATCH 22/72] fixed smsEnabled property handling for tenant profile configuration --- .../DefaultTbApiUsageStateServiceTest.java | 84 +++++++++++++++++++ .../usagerecord/ApiUsageStateServiceImpl.java | 28 +++++-- 2 files changed, 103 insertions(+), 9 deletions(-) diff --git a/application/src/test/java/org/thingsboard/server/service/apiusage/DefaultTbApiUsageStateServiceTest.java b/application/src/test/java/org/thingsboard/server/service/apiusage/DefaultTbApiUsageStateServiceTest.java index 7530c646f4..a358c0f12c 100644 --- a/application/src/test/java/org/thingsboard/server/service/apiusage/DefaultTbApiUsageStateServiceTest.java +++ b/application/src/test/java/org/thingsboard/server/service/apiusage/DefaultTbApiUsageStateServiceTest.java @@ -27,6 +27,7 @@ import org.thingsboard.server.common.data.TenantProfile; import org.thingsboard.server.common.data.id.ApiUsageStateId; import org.thingsboard.server.common.data.id.EntityId; import org.thingsboard.server.common.data.id.TenantId; +import org.thingsboard.server.common.data.kv.TsKvEntry; import org.thingsboard.server.common.data.tenant.profile.DefaultTenantProfileConfiguration; import org.thingsboard.server.common.data.tenant.profile.TenantProfileData; import org.thingsboard.server.common.msg.queue.TbCallback; @@ -40,6 +41,7 @@ import java.lang.reflect.Field; import java.time.LocalDate; import java.util.HashMap; import java.util.Map; +import java.util.Optional; import java.util.UUID; import java.util.concurrent.TimeUnit; @@ -47,7 +49,10 @@ import static java.time.ZoneOffset.UTC; import static java.time.temporal.ChronoField.DAY_OF_MONTH; import static java.time.temporal.ChronoUnit.MONTHS; import static org.assertj.core.api.Assertions.assertThat; +import static org.awaitility.Awaitility.await; import static org.junit.Assert.assertEquals; +import static org.thingsboard.server.common.data.ApiFeature.SMS; +import static org.thingsboard.server.common.data.ApiUsageRecordKey.SMS_EXEC_COUNT; @DaoSqlTest public class DefaultTbApiUsageStateServiceTest extends AbstractControllerTest { @@ -157,6 +162,85 @@ public class DefaultTbApiUsageStateServiceTest extends AbstractControllerTest { assertThat(tenantApiUsageState.getNextCycleTs()).isEqualTo(firstOfNextMonth); } + @Test + public void checkTenantCreatedWithSmsDisabledApiUsage() throws Exception { + TenantProfile tenantProfile = new TenantProfile(); + tenantProfile.setName("Test profile"); + TenantProfileData tenantProfileData = new TenantProfileData(); + DefaultTenantProfileConfiguration config = DefaultTenantProfileConfiguration.builder() + .smsEnabled(false) + .build(); + + tenantProfileData.setConfiguration(config); + tenantProfile.setProfileData(tenantProfileData); + tenantProfile = doPost("/api/tenantProfile", tenantProfile, TenantProfile.class); + + Tenant tenant = new Tenant(); + tenant.setTitle("My test tenant"); + tenant.setTenantProfileId(tenantProfile.getId()); + tenant = saveTenant(tenant); + + ApiUsageState apiUsageState = apiUsageStateService.findApiUsageStateByEntityId(tenant.getId()); + assertThat(apiUsageState.getSmsExecState()).isEqualTo(ApiUsageStateValue.DISABLED); + + TenantId finalTenantId = tenant.getId(); + ApiUsageStateId finalApiUsageStateId = apiUsageState.getId(); + + + await().atMost(5, TimeUnit.SECONDS).until(() -> { + Optional smsApiState = tsService.findLatest(finalTenantId, finalApiUsageStateId, SMS.getApiStateKey()).get(); + return smsApiState.isPresent() && smsApiState.get().getValueAsString().equals(ApiUsageStateValue.DISABLED.name()); + }); + + await().atMost(5, TimeUnit.SECONDS).until(() -> { + Optional smsApiState = tsService.findLatest(finalTenantId, finalApiUsageStateId, SMS_EXEC_COUNT.getApiLimitKey()).get(); + return smsApiState.isPresent() && smsApiState.get().getLongValue().get().equals(0L); + }); + + // enable SMS and check that the ApiUsageState is updated accordingly + config = DefaultTenantProfileConfiguration.builder() + .smsEnabled(true) + .maxSms(10) + .build(); + tenantProfileData.setConfiguration(config); + tenantProfile.setProfileData(tenantProfileData); + doPost("/api/tenantProfile", tenantProfile, TenantProfile.class); + + await().atMost(5, TimeUnit.SECONDS).until(() -> + apiUsageStateService.findApiUsageStateByEntityId(finalTenantId).getSmsExecState() == ApiUsageStateValue.ENABLED); + + await().atMost(5, TimeUnit.SECONDS).until(() -> { + Optional smsApiState = tsService.findLatest(finalTenantId, finalApiUsageStateId, SMS.getApiStateKey()).get(); + return smsApiState.isPresent() && smsApiState.get().getValueAsString().equals(ApiUsageStateValue.ENABLED.name()); + }); + + await().atMost(5, TimeUnit.SECONDS).until(() -> { + Optional smsApiState = tsService.findLatest(finalTenantId, finalApiUsageStateId, SMS_EXEC_COUNT.getApiLimitKey()).get(); + return smsApiState.isPresent() && smsApiState.get().getLongValue().get().equals(10L); + }); + + //disable SMS and check that the ApiUsageState is updated accordingly + config = DefaultTenantProfileConfiguration.builder() + .smsEnabled(false) + .build(); + tenantProfileData.setConfiguration(config); + tenantProfile.setProfileData(tenantProfileData); + doPost("/api/tenantProfile", tenantProfile, TenantProfile.class); + + await().atMost(5, TimeUnit.SECONDS).until(() -> + apiUsageStateService.findApiUsageStateByEntityId(finalTenantId).getSmsExecState() == ApiUsageStateValue.DISABLED); + + await().atMost(5, TimeUnit.SECONDS).until(() -> { + Optional smsApiState = tsService.findLatest(finalTenantId, finalApiUsageStateId, SMS.getApiStateKey()).get(); + return smsApiState.isPresent() && smsApiState.get().getValueAsString().equals(ApiUsageStateValue.DISABLED.name()); + }); + + await().atMost(5, TimeUnit.SECONDS).until(() -> { + Optional smsApiState = tsService.findLatest(finalTenantId, finalApiUsageStateId, SMS_EXEC_COUNT.getApiLimitKey()).get(); + return smsApiState.isPresent() && smsApiState.get().getLongValue().get().equals(0L); + }); + } + private TenantProfile createTenantProfile() { TenantProfile tenantProfile = new TenantProfile(); tenantProfile.setName("Tenant Profile"); diff --git a/dao/src/main/java/org/thingsboard/server/dao/usagerecord/ApiUsageStateServiceImpl.java b/dao/src/main/java/org/thingsboard/server/dao/usagerecord/ApiUsageStateServiceImpl.java index b97c81c612..7f0e507f5f 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/usagerecord/ApiUsageStateServiceImpl.java +++ b/dao/src/main/java/org/thingsboard/server/dao/usagerecord/ApiUsageStateServiceImpl.java @@ -35,7 +35,7 @@ import org.thingsboard.server.common.data.kv.BasicTsKvEntry; import org.thingsboard.server.common.data.kv.LongDataEntry; import org.thingsboard.server.common.data.kv.StringDataEntry; import org.thingsboard.server.common.data.kv.TsKvEntry; -import org.thingsboard.server.common.data.tenant.profile.TenantProfileConfiguration; +import org.thingsboard.server.common.data.tenant.profile.DefaultTenantProfileConfiguration; import org.thingsboard.server.dao.entity.AbstractEntityService; import org.thingsboard.server.dao.eventsourcing.DeleteEntityEvent; import org.thingsboard.server.dao.eventsourcing.SaveEntityEvent; @@ -101,6 +101,21 @@ public class ApiUsageStateServiceImpl extends AbstractEntityService implements A entityId = Objects.requireNonNullElse(entityId, tenantId); log.trace("Executing createDefaultUsageRecord [{}]", entityId); validateId(tenantId, id -> INCORRECT_TENANT_ID + id); + + ApiUsageStateValue smsApiUsageState = ApiUsageStateValue.ENABLED; + + DefaultTenantProfileConfiguration configuration = null; + if (entityId.getEntityType() == EntityType.TENANT && !entityId.equals(TenantId.SYS_TENANT_ID)) { + tenantId = (TenantId) entityId; + Tenant tenant = tenantService.findTenantById(tenantId); + TenantProfile tenantProfile = tenantProfileDao.findById(tenantId, tenant.getTenantProfileId().getId()); + configuration = (DefaultTenantProfileConfiguration) tenantProfile.getProfileData().getConfiguration(); + + if (configuration.getSmsEnabled() != null && !configuration.getSmsEnabled()) { + smsApiUsageState = ApiUsageStateValue.DISABLED; + } + } + ApiUsageState apiUsageState = new ApiUsageState(); apiUsageState.setTenantId(tenantId); apiUsageState.setEntityId(entityId); @@ -109,7 +124,7 @@ public class ApiUsageStateServiceImpl extends AbstractEntityService implements A apiUsageState.setJsExecState(ApiUsageStateValue.ENABLED); apiUsageState.setTbelExecState(ApiUsageStateValue.ENABLED); apiUsageState.setDbStorageState(ApiUsageStateValue.ENABLED); - apiUsageState.setSmsExecState(ApiUsageStateValue.ENABLED); + apiUsageState.setSmsExecState(smsApiUsageState); apiUsageState.setEmailExecState(ApiUsageStateValue.ENABLED); apiUsageState.setAlarmExecState(ApiUsageStateValue.ENABLED); apiUsageStateValidator.validate(apiUsageState, ApiUsageState::getTenantId); @@ -138,17 +153,12 @@ public class ApiUsageStateServiceImpl extends AbstractEntityService implements A apiUsageStates.add(new BasicTsKvEntry(saved.getCreatedTime(), new StringDataEntry(ApiFeature.EMAIL.getApiStateKey(), ApiUsageStateValue.ENABLED.name()))); apiUsageStates.add(new BasicTsKvEntry(saved.getCreatedTime(), - new StringDataEntry(ApiFeature.SMS.getApiStateKey(), ApiUsageStateValue.ENABLED.name()))); + new StringDataEntry(ApiFeature.SMS.getApiStateKey(), smsApiUsageState.name()))); apiUsageStates.add(new BasicTsKvEntry(saved.getCreatedTime(), new StringDataEntry(ApiFeature.ALARM.getApiStateKey(), ApiUsageStateValue.ENABLED.name()))); tsService.save(tenantId, saved.getId(), apiUsageStates, 0L); - if (entityId.getEntityType() == EntityType.TENANT && !entityId.equals(TenantId.SYS_TENANT_ID)) { - tenantId = (TenantId) entityId; - Tenant tenant = tenantService.findTenantById(tenantId); - TenantProfile tenantProfile = tenantProfileDao.findById(tenantId, tenant.getTenantProfileId().getId()); - TenantProfileConfiguration configuration = tenantProfile.getProfileData().getConfiguration(); - + if (configuration != null) { List profileThresholds = new ArrayList<>(); for (ApiUsageRecordKey key : ApiUsageRecordKey.values()) { if (key.getApiLimitKey() == null) continue; From ec128f3e855e39259f05329471c626c0f3818a7b Mon Sep 17 00:00:00 2001 From: dashevchenko Date: Tue, 13 Jan 2026 18:28:26 +0200 Subject: [PATCH 23/72] null value for smsEnabled is interpreted as enabled on backend --- .../tenant/default-tenant-profile-configuration.component.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ui-ngx/src/app/modules/home/components/profile/tenant/default-tenant-profile-configuration.component.ts b/ui-ngx/src/app/modules/home/components/profile/tenant/default-tenant-profile-configuration.component.ts index fe8c4af871..4f1efa32d2 100644 --- a/ui-ngx/src/app/modules/home/components/profile/tenant/default-tenant-profile-configuration.component.ts +++ b/ui-ngx/src/app/modules/home/components/profile/tenant/default-tenant-profile-configuration.component.ts @@ -20,7 +20,7 @@ import { Store } from '@ngrx/store'; import { AppState } from '@app/core/core.state'; import { coerceBooleanProperty } from '@angular/cdk/coercion'; import { DefaultTenantProfileConfiguration, TenantProfileConfiguration } from '@shared/models/tenant.model'; -import { isDefinedAndNotNull } from '@core/utils'; +import { isDefinedAndNotNull, isUndefinedOrNull} from '@core/utils'; import { RateLimitsType } from './rate-limits/rate-limits.models'; import { takeUntil } from 'rxjs/operators'; import { Subject } from 'rxjs'; @@ -179,6 +179,9 @@ export class DefaultTenantProfileConfigurationComponent implements ControlValueA writeValue(value: DefaultTenantProfileConfiguration | null): void { if (isDefinedAndNotNull(value)) { + if (isUndefinedOrNull(value.smsEnabled)) { + value.smsEnabled = true; + } this.maxSmsValidation(value.smsEnabled); this.defaultTenantProfileConfigurationFormGroup.patchValue(value, {emitEvent: false}); } From 48c31e47b9743baedc64424d69130430fd41e1e7 Mon Sep 17 00:00:00 2001 From: Vladyslav_Prykhodko Date: Wed, 14 Jan 2026 12:59:23 +0200 Subject: [PATCH 24/72] UI: Fixed autofill country autocomplete and improved validation --- ui-ngx/src/app/core/utils.ts | 14 ++++++- .../country-autocomplete.component.html | 13 ++++++- .../country-autocomplete.component.scss | 27 +++++++++++++ .../country-autocomplete.component.ts | 39 ++++++++++++++++--- .../assets/locale/locale.constant-en_US.json | 1 + 5 files changed, 85 insertions(+), 9 deletions(-) create mode 100644 ui-ngx/src/app/shared/components/country-autocomplete.component.scss diff --git a/ui-ngx/src/app/core/utils.ts b/ui-ngx/src/app/core/utils.ts index f1a0671a52..e0665d4eb1 100644 --- a/ui-ngx/src/app/core/utils.ts +++ b/ui-ngx/src/app/core/utils.ts @@ -27,13 +27,14 @@ import { serverErrorCodesTranslations } from '@shared/models/constants'; import { SubscriptionEntityInfo } from '@core/api/widget-api.models'; import { CompiledTbFunction, - compileTbFunction, GenericFunction, + compileTbFunction, + GenericFunction, isNotEmptyTbFunction, TbFunction } from '@shared/models/js-function.models'; import { DomSanitizer } from '@angular/platform-browser'; import { SecurityContext } from '@angular/core'; -import { AbstractControl, ValidationErrors, Validators } from '@angular/forms'; +import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'; const varsRegex = /\${([^}]*)}/g; const emailRegex = /^[A-Z0-9_!#$%&'*+/=?`{|}~^.-]+@[A-Z0-9.-]+\.[A-Z]{2,}$/i; @@ -998,3 +999,12 @@ export const validateEmail = (control: AbstractControl): ValidationErrors | null return emailRegex.test(control.value) ? null : {email: true}; }; +export const requireMatch = (): ValidatorFn => { + return (control: AbstractControl): ValidationErrors | null => { + const value = control.value; + if (value && typeof value === 'string') { + return { requireMatch: { value: value } }; + } + return null; + }; +} diff --git a/ui-ngx/src/app/shared/components/country-autocomplete.component.html b/ui-ngx/src/app/shared/components/country-autocomplete.component.html index 9b3857cafb..61a874431a 100644 --- a/ui-ngx/src/app/shared/components/country-autocomplete.component.html +++ b/ui-ngx/src/app/shared/components/country-autocomplete.component.html @@ -15,13 +15,19 @@ limitations under the License. --> - + {{ labelText }} + @if (countryFormGroup.get('country').value?.flag) { + + {{ countryFormGroup.get('country').value.flag }} + + }