diff --git a/bootstrap/sql/migrations/native/1.5.0/mysql/schemaChanges.sql b/bootstrap/sql/migrations/native/1.5.0/mysql/schemaChanges.sql index a1b3560e823..1a856073292 100644 --- a/bootstrap/sql/migrations/native/1.5.0/mysql/schemaChanges.sql +++ b/bootstrap/sql/migrations/native/1.5.0/mysql/schemaChanges.sql @@ -220,3 +220,8 @@ SET json = JSON_SET( ) WHERE JSON_CONTAINS_PATH(json, 'one', '$.owner') AND JSON_TYPE(JSON_EXTRACT(json, '$.owner')) <> 'ARRAY'; + +-- set templates to fetch emailTemplates +UPDATE openmetadata_settings +SET json = JSON_SET(json, '$.templates', 'openmetadata') +WHERE configType = 'emailConfiguration'; \ No newline at end of file diff --git a/bootstrap/sql/migrations/native/1.5.0/postgres/schemaChanges.sql b/bootstrap/sql/migrations/native/1.5.0/postgres/schemaChanges.sql index c37b09af00e..d651e1423be 100644 --- a/bootstrap/sql/migrations/native/1.5.0/postgres/schemaChanges.sql +++ b/bootstrap/sql/migrations/native/1.5.0/postgres/schemaChanges.sql @@ -201,3 +201,8 @@ SET json = jsonb_set( WHERE jsonb_path_exists(json, '$.owner') AND jsonb_path_query_first(json, '$.owner ? (@ != null)') IS NOT null AND jsonb_typeof(json->'owner') <> 'array'; + +-- set templates to fetch emailTemplates +UPDATE openmetadata_settings +SET json = jsonb_set(json, '{templates}', '"openmetadata"') +WHERE configType = 'emailConfiguration'; \ No newline at end of file diff --git a/conf/openmetadata.yaml b/conf/openmetadata.yaml index f18aa33117f..8ee0c9341e4 100644 --- a/conf/openmetadata.yaml +++ b/conf/openmetadata.yaml @@ -372,6 +372,7 @@ email: username: ${SMTP_SERVER_USERNAME:-""} password: ${SMTP_SERVER_PWD:-""} transportationStrategy: ${SMTP_SERVER_STRATEGY:-"SMTP_TLS"} + templates: ${TEMPLATES:-"openmetadata"} limits: enable: ${LIMITS_ENABLED:-false} 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 9fbff586c20..8b68e8d21cb 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 @@ -115,10 +115,12 @@ import org.openmetadata.schema.api.VoteRequest; import org.openmetadata.schema.api.VoteRequest.VoteType; import org.openmetadata.schema.api.feed.ResolveTask; import org.openmetadata.schema.api.teams.CreateTeam; +import org.openmetadata.schema.email.SmtpSettings; import org.openmetadata.schema.entity.data.Table; import org.openmetadata.schema.entity.feed.Suggestion; import org.openmetadata.schema.entity.teams.Team; import org.openmetadata.schema.entity.teams.User; +import org.openmetadata.schema.settings.SettingsType; import org.openmetadata.schema.system.EntityError; import org.openmetadata.schema.type.ApiStatus; import org.openmetadata.schema.type.ChangeDescription; @@ -153,6 +155,7 @@ import org.openmetadata.service.jdbi3.CollectionDAO.EntityVersionPair; import org.openmetadata.service.jdbi3.CollectionDAO.ExtensionRecord; import org.openmetadata.service.jdbi3.FeedRepository.TaskWorkflow; import org.openmetadata.service.jdbi3.FeedRepository.ThreadContext; +import org.openmetadata.service.resources.settings.SettingsCache; import org.openmetadata.service.resources.tags.TagLabelUtil; import org.openmetadata.service.search.SearchClient; import org.openmetadata.service.search.SearchListFilter; @@ -440,6 +443,31 @@ public abstract class EntityRepository { } public final List getEntitiesFromSeedData() throws IOException { + List entitiesFromSeedData = new ArrayList<>(); + + if (entityType.equals(Entity.DOCUMENT)) { + SmtpSettings emailConfig = + SettingsCache.getSetting(SettingsType.EMAIL_CONFIGURATION, SmtpSettings.class); + + switch (emailConfig.getTemplates()) { + case COLLATE -> { + entitiesFromSeedData.addAll( + getEntitiesFromSeedData( + String.format(".*json/data/%s/emailTemplates/collate/.*\\.json$", entityType))); + } + default -> { + entitiesFromSeedData.addAll( + getEntitiesFromSeedData( + String.format( + ".*json/data/%s/emailTemplates/openmetadata/.*\\.json$", entityType))); + } + } + + entitiesFromSeedData.addAll( + getEntitiesFromSeedData(String.format(".*json/data/%s/docs/.*\\.json$", entityType))); + return entitiesFromSeedData; + } + return getEntitiesFromSeedData(String.format(".*json/data/%s/.*\\.json$", entityType)); } diff --git a/openmetadata-service/src/main/resources/json/data/document/activityFeed.json b/openmetadata-service/src/main/resources/json/data/document/docs/activityFeed.json similarity index 100% rename from openmetadata-service/src/main/resources/json/data/document/activityFeed.json rename to openmetadata-service/src/main/resources/json/data/document/docs/activityFeed.json diff --git a/openmetadata-service/src/main/resources/json/data/document/dataAsset.json b/openmetadata-service/src/main/resources/json/data/document/docs/dataAsset.json similarity index 100% rename from openmetadata-service/src/main/resources/json/data/document/dataAsset.json rename to openmetadata-service/src/main/resources/json/data/document/docs/dataAsset.json diff --git a/openmetadata-service/src/main/resources/json/data/document/following.json b/openmetadata-service/src/main/resources/json/data/document/docs/following.json similarity index 100% rename from openmetadata-service/src/main/resources/json/data/document/following.json rename to openmetadata-service/src/main/resources/json/data/document/docs/following.json diff --git a/openmetadata-service/src/main/resources/json/data/document/kpi.json b/openmetadata-service/src/main/resources/json/data/document/docs/kpi.json similarity index 100% rename from openmetadata-service/src/main/resources/json/data/document/kpi.json rename to openmetadata-service/src/main/resources/json/data/document/docs/kpi.json diff --git a/openmetadata-service/src/main/resources/json/data/document/myData.json b/openmetadata-service/src/main/resources/json/data/document/docs/myData.json similarity index 100% rename from openmetadata-service/src/main/resources/json/data/document/myData.json rename to openmetadata-service/src/main/resources/json/data/document/docs/myData.json diff --git a/openmetadata-service/src/main/resources/json/data/document/recentlyViewed.json b/openmetadata-service/src/main/resources/json/data/document/docs/recentlyViewed.json similarity index 100% rename from openmetadata-service/src/main/resources/json/data/document/recentlyViewed.json rename to openmetadata-service/src/main/resources/json/data/document/docs/recentlyViewed.json diff --git a/openmetadata-service/src/main/resources/json/data/document/totalAssets.json b/openmetadata-service/src/main/resources/json/data/document/docs/totalAssets.json similarity index 100% rename from openmetadata-service/src/main/resources/json/data/document/totalAssets.json rename to openmetadata-service/src/main/resources/json/data/document/docs/totalAssets.json diff --git a/openmetadata-service/src/main/resources/json/data/document/emailTemplates/account-activity-change.json b/openmetadata-service/src/main/resources/json/data/document/emailTemplates/openmetadata/account-activity-change.json similarity index 100% rename from openmetadata-service/src/main/resources/json/data/document/emailTemplates/account-activity-change.json rename to openmetadata-service/src/main/resources/json/data/document/emailTemplates/openmetadata/account-activity-change.json diff --git a/openmetadata-service/src/main/resources/json/data/document/emailTemplates/changeEvent.json b/openmetadata-service/src/main/resources/json/data/document/emailTemplates/openmetadata/changeEvent.json similarity index 100% rename from openmetadata-service/src/main/resources/json/data/document/emailTemplates/changeEvent.json rename to openmetadata-service/src/main/resources/json/data/document/emailTemplates/openmetadata/changeEvent.json diff --git a/openmetadata-service/src/main/resources/json/data/document/emailTemplates/dataInsightReport.json b/openmetadata-service/src/main/resources/json/data/document/emailTemplates/openmetadata/dataInsightReport.json similarity index 100% rename from openmetadata-service/src/main/resources/json/data/document/emailTemplates/dataInsightReport.json rename to openmetadata-service/src/main/resources/json/data/document/emailTemplates/openmetadata/dataInsightReport.json diff --git a/openmetadata-service/src/main/resources/json/data/document/emailTemplates/email-verification.json b/openmetadata-service/src/main/resources/json/data/document/emailTemplates/openmetadata/email-verification.json similarity index 100% rename from openmetadata-service/src/main/resources/json/data/document/emailTemplates/email-verification.json rename to openmetadata-service/src/main/resources/json/data/document/emailTemplates/openmetadata/email-verification.json diff --git a/openmetadata-service/src/main/resources/json/data/document/emailTemplates/invite-createPassword.json b/openmetadata-service/src/main/resources/json/data/document/emailTemplates/openmetadata/invite-createPassword.json similarity index 100% rename from openmetadata-service/src/main/resources/json/data/document/emailTemplates/invite-createPassword.json rename to openmetadata-service/src/main/resources/json/data/document/emailTemplates/openmetadata/invite-createPassword.json diff --git a/openmetadata-service/src/main/resources/json/data/document/emailTemplates/invite-randompwd.json b/openmetadata-service/src/main/resources/json/data/document/emailTemplates/openmetadata/invite-randompwd.json similarity index 100% rename from openmetadata-service/src/main/resources/json/data/document/emailTemplates/invite-randompwd.json rename to openmetadata-service/src/main/resources/json/data/document/emailTemplates/openmetadata/invite-randompwd.json diff --git a/openmetadata-service/src/main/resources/json/data/document/emailTemplates/reset-link.json b/openmetadata-service/src/main/resources/json/data/document/emailTemplates/openmetadata/reset-link.json similarity index 100% rename from openmetadata-service/src/main/resources/json/data/document/emailTemplates/reset-link.json rename to openmetadata-service/src/main/resources/json/data/document/emailTemplates/openmetadata/reset-link.json diff --git a/openmetadata-service/src/main/resources/json/data/document/emailTemplates/taskAssignment.json b/openmetadata-service/src/main/resources/json/data/document/emailTemplates/openmetadata/taskAssignment.json similarity index 100% rename from openmetadata-service/src/main/resources/json/data/document/emailTemplates/taskAssignment.json rename to openmetadata-service/src/main/resources/json/data/document/emailTemplates/openmetadata/taskAssignment.json diff --git a/openmetadata-service/src/main/resources/json/data/document/emailTemplates/testMail.json b/openmetadata-service/src/main/resources/json/data/document/emailTemplates/openmetadata/testMail.json similarity index 100% rename from openmetadata-service/src/main/resources/json/data/document/emailTemplates/testMail.json rename to openmetadata-service/src/main/resources/json/data/document/emailTemplates/openmetadata/testMail.json diff --git a/openmetadata-service/src/main/resources/json/data/document/emailTemplates/testResultStatus.json b/openmetadata-service/src/main/resources/json/data/document/emailTemplates/openmetadata/testResultStatus.json similarity index 100% rename from openmetadata-service/src/main/resources/json/data/document/emailTemplates/testResultStatus.json rename to openmetadata-service/src/main/resources/json/data/document/emailTemplates/openmetadata/testResultStatus.json diff --git a/openmetadata-spec/src/main/resources/json/schema/email/smtpSettings.json b/openmetadata-spec/src/main/resources/json/schema/email/smtpSettings.json index 6cbb5156000..96502708aa0 100644 --- a/openmetadata-spec/src/main/resources/json/schema/email/smtpSettings.json +++ b/openmetadata-spec/src/main/resources/json/schema/email/smtpSettings.json @@ -52,6 +52,11 @@ }, "templatePath": { "type": "string" + }, + "templates": { + "type": "string", + "enum": ["openmetadata", "collate"], + "default": "openmetadata" } }, "additionalProperties": false,