diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ResourceMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ResourceMsgConstructor.java index 02f2d5e000..96dd5220bc 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ResourceMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ResourceMsgConstructor.java @@ -15,6 +15,7 @@ */ package org.thingsboard.server.service.edge.rpc.constructor; +import com.google.protobuf.ByteString; import org.springframework.stereotype.Component; import org.thingsboard.server.common.data.TbResource; import org.thingsboard.server.common.data.id.TbResourceId; @@ -42,6 +43,12 @@ public class ResourceMsgConstructor { if (tbResource.getEtag() != null) { builder.setEtag(tbResource.getEtag()); } + if (tbResource.getDescriptor() != null) { + builder.setDescriptorJson(tbResource.getDescriptor().toString()); + } + if (tbResource.getPreview() != null) { + builder.setPreview(ByteString.copyFrom(tbResource.getPreview())); + } if (tbResource.getTenantId().equals(TenantId.SYS_TENANT_ID)) { builder.setIsSystem(true); } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/BaseResourceProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/BaseResourceProcessor.java index b28e6000d2..5d6d98469c 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/BaseResourceProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/BaseResourceProcessor.java @@ -17,6 +17,7 @@ package org.thingsboard.server.service.edge.rpc.processor.resource; import com.datastax.oss.driver.api.core.uuid.Uuids; import lombok.extern.slf4j.Slf4j; +import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.ResourceType; import org.thingsboard.server.common.data.StringUtils; import org.thingsboard.server.common.data.TbResource; @@ -61,7 +62,9 @@ public abstract class BaseResourceProcessor extends BaseEdgeProcessor { resource.setResourceKey(resourceKey); resource.setResourceType(resourceType); resource.setFileName(resourceUpdateMsg.getFileName()); + resource.setDescriptor(resourceUpdateMsg.hasDescriptorJson() ? JacksonUtil.toJsonNode(resourceUpdateMsg.getDescriptorJson()) : null); resource.setEncodedData(resourceUpdateMsg.hasData() ? resourceUpdateMsg.getData() : null); + resource.setPreview(resourceUpdateMsg.hasPreview() ? resourceUpdateMsg.getPreview().toByteArray() : null); resource.setEtag(resourceUpdateMsg.hasEtag() ? resourceUpdateMsg.getEtag() : null); resourceValidator.validate(resource, TbResourceInfo::getTenantId); if (created) { diff --git a/common/edge-api/src/main/proto/edge.proto b/common/edge-api/src/main/proto/edge.proto index 71e84304ed..2411b0af53 100644 --- a/common/edge-api/src/main/proto/edge.proto +++ b/common/edge-api/src/main/proto/edge.proto @@ -436,6 +436,8 @@ message ResourceUpdateMsg { optional string data = 8; optional string etag = 9; bool isSystem = 10; + optional string descriptorJson = 11; + optional bytes preview = 12; } message RuleChainMetadataRequestMsg {