diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/governance/workflows/elements/nodes/automatedTask/impl/SetEntityCertificationImpl.java b/openmetadata-service/src/main/java/org/openmetadata/service/governance/workflows/elements/nodes/automatedTask/impl/SetEntityCertificationImpl.java index 857605f3bee..1de5a955412 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/governance/workflows/elements/nodes/automatedTask/impl/SetEntityCertificationImpl.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/governance/workflows/elements/nodes/automatedTask/impl/SetEntityCertificationImpl.java @@ -16,11 +16,10 @@ import org.flowable.engine.delegate.JavaDelegate; import org.openmetadata.schema.EntityInterface; import org.openmetadata.schema.type.AssetCertification; import org.openmetadata.schema.type.Include; +import org.openmetadata.schema.type.TagLabel; import org.openmetadata.service.Entity; import org.openmetadata.service.jdbi3.EntityRepository; import org.openmetadata.service.resources.feeds.MessageParser; -import org.openmetadata.service.resources.tags.TagLabelUtil; -import org.openmetadata.service.util.EntityUtil; import org.openmetadata.service.util.JsonUtils; @Slf4j @@ -76,7 +75,12 @@ public class SetEntityCertificationImpl implements JavaDelegate { AssetCertification assetCertification = new AssetCertification() - .withTagLabel(EntityUtil.toTagLabel(TagLabelUtil.getTag(certification))); + .withTagLabel( + new TagLabel() + .withTagFQN(certification) + .withSource(TagLabel.TagSource.CLASSIFICATION) + .withLabelType(TagLabel.LabelType.AUTOMATED) + .withState(TagLabel.State.CONFIRMED)); entity.setCertification(assetCertification); } diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java b/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java index f4a87d6d738..e3ab2c72569 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java @@ -917,6 +917,7 @@ public abstract class EntityRepository { public final T setFieldsInternal(T entity, Fields fields) { entity.setOwners(fields.contains(FIELD_OWNERS) ? getOwners(entity) : entity.getOwners()); entity.setTags(fields.contains(FIELD_TAGS) ? getTags(entity) : entity.getTags()); + entity.setCertification(fields.contains(FIELD_TAGS) ? getCertification(entity) : null); entity.setExtension( fields.contains(FIELD_EXTENSION) ? getExtension(entity) : entity.getExtension()); // Always return domains of entity @@ -1715,6 +1716,22 @@ public abstract class EntityRepository { } } + protected AssetCertification getCertification(T entity) { + return !supportsCertification ? null : getCertification(entity.getCertification()); + } + + protected AssetCertification getCertification(AssetCertification certification) { + if (certification == null) { + return null; + } + + String certificationTagFqn = certification.getTagLabel().getTagFQN(); + TagLabel certificationTagLabel = + EntityUtil.toTagLabel(TagLabelUtil.getTag(certificationTagFqn)); + certification.setTagLabel(certificationTagLabel); + return certification; + } + protected List getTags(T entity) { return !supportsTags ? null : getTags(entity.getFullyQualifiedName()); }