6.1.1. Giriş#
Veri Depolama (Data Storage)#
Mail Notification ortamının kurulması için postgresql, kafka ve tercihe bağlı redis'in çalıştırılması gerekmektedir.
PostgreSQL docker bilgisine buradan ulaşabilirsiniz.
Redis docker bilgisine buradan ulaşabilirsiniz.
Kafka docker bilgisine buradan ulaşabilirsiniz.
Uygulama Paketi (Instances)#
Mail notification docker instance'ına buradan ulaşabilirsiniz.
Notification mail paketi hvl-notification-content-provider paketi aracılığı ile içeriklerin RDBMS üzerinde yönetilmesini sağlamaktadır.
Varsayılan Uygulama Parametreleri (Default Environment Variables)#
Değişken Adı | Değeri | Açıklama |
---|---|---|
DB_SCHEMA | notification | Uygulamaya ait verislerin işleneceği RDMS schema bilgisidir. |
DB_SCHEMA_CREATE_ENABLED | true | Schema oluşturmanın aktif/pasif yapıldığı değişkendir. |
DDL_AUTO_TYPE | none | Veri ilklendirme strateji bilgisidir. (create, update vb.) |
LOGGING_CONFIG | \({spring.cloud.config.uri}/\)/default/framework()log4j2()instance()notification()mail/log4j2.yml | Uygulama log4j konfigurasyon dosyası dizin bilgisidir. |
SERVER_APP_NAME | mail-notification-server | Uygulama isim bilgisidir. |
SERVER_DESCRIPTION | Hvl Mail Notification Server | Uygulama açıklama bilgisidir. |
SERVER_PORT | 7090 | Uygulamanın port bilgisidir. |
SPRING_JPA_SHOW_SQL | false | Spring'in veritabanı operasyonlarına ilişkin çalıştırılan sql loglarının aktif edilmesini sağlar. |
SWAGGER_DESCRIPTION | Havelsan mail notification services info | Uygulamanın swagger döküman açıklamasıdır. |
SPRING_PROFILES_ACTIVE | Uygulamanın çalıştığı aktif profile bilgileridir. | |
REDIS_CM_CACHE_PREFIX | HVL::NOTIFICATION::MAIL:: | Redis üzerinde tutulan cache prefix değeridir. |
CACHE_TYPE | redis | 'simple' seçeneği ile inmemory cache kullanımı sağlanır. 'redis' seçeneği ile redis cache desteği sağlanır. |
KAFKA_SUPPORT_ENABLED | true | Kafka bağlantısı aramasını sağlar. |
KAFKA_CONSUMER_GROUP_ID | hvl-notification-mail-event | Consumer group bilgisidir. |
MAIL_EVENT_TOPIC | 'javalt-oauth-mail-notification' | Kafka'da tutulan mail eventlerin topic bilgisidir. |
MAIL_EVENT_MAX_MESSAGE_SIZE | 10485760 | Mail paketinin maximum boyutu bilgisidir |
MAIL_MAX_ATTACHMENT_QUANTITY | 10 | Maximum Mail eki sayısı bilgisidir. |
MAIL_SERVER_HOST | 10.150.0.22 | Mail server ip bilgisidir. |
MAIL_SERVER_PORT | 25 | Mail server port bilgisidir. |
MAIL_USERNAME | Mail username bilgisidir. | |
MAIL_PASSWORD | Mail password bilgisidir. | |
MAIL_PASSWORD | Mail password bilgisidir. | |
FAKE_MAIL_ENABLED | true | Mail bilgilerinin tek bir adrese gönderilmesini sağlayan parametredir. |
FAKE_MAIL_FROM_ADRESS | javalt@havelsan.com.tr | Sahte olarak gönderen bilgisi mail adresidir. |
FAKE_MAIL_TO_ADRESS | bocal@havelsan.com.tr | Sahte olarak alıcı bilgisi mail adresidir. |
LIQUIBASE_ENABLED | true | Liquibase eklentisini aktif hale getirmek için gereken parametredir. |
LIQUIBASE_DROP_FIRST | true | Bu değer true iken Liquibase çalışmadan önce üzerinde çalıştığı modülün ilgili şemasını düşürüp kendi oluşturur. |
Veri İlklendirme (Data Initializer)#
- Mail template kayıt edilmesi.
- Mail template content kayıt edilmesi.
- Çoklu dil desteği için content kayıtlarının oluşturulması
adımlarından oluşmaktadır.Aynı işlemler Bildirim uygulaması(/BİLDİRİM/Bildirim Şablonu Yönetimi Bildirim Şablonu Yönetimi) ekranı üzerinden'de yapılabilmektedir.
- Mail template tanımlaması :
Ekran üzerinden mail template ekleme * /BİLDİRİM/Bildirim Şablonu Yönetimi Bildirim Şablonu Yönetimi ekranı üzerinden mail şablonları'ları düzenlebilir.
Mail template Ekleme SQL
INSERT INTO notification.ntf_notification_template (id, created_by, created_at, updated_at, updated_by, uuid, obj_version, description, name, code, type)
VALUES (NEXTVAL('notification.ntf_notification_template_seq'), 'system', CURRENT_TIMESTAMP , CURRENT_TIMESTAMP, 'system', 'AUTHZ_MAIL_TMP_1', 0, 'Role silinme mail template', 'AuthzTemplate1', 'HVL_AUTHZ_ROLE_001', 'MAIL');
- Mail Template Content Tanımlanması :
Mail Template Content Ekleme SQL
INSERT INTO notification.ntf_notification_template_content (id, locale, type, content, sender, subject)
VALUES ((SELECT id FROM notification.ntf_notification_template WHERE uuid = 'AUTHZ_MAIL_TMP_1'), 'tr', 'STRING', '<html>
<body>
Sayın ${username};
<br/>
<br/>
<b> ${roleName} sistem yöneticisi tarafından silinmiştir. </b>
<br/>
</body>
</html>', 'javalt@havelsan.com.tr', 'Role Silinme Bilgilendirmesi');
- Mail Template Content Çoklu Dil Desteği ile Tanımlanması :
Mail Template Content Çoklu Dil Desteği Ekleme SQL
SQL scriptlerinin grup olarak tek seferde çalışması için "--script", "--!script" ifadelerinin arasına eklemek gerekmektedir.
INSERT INTO notification.ntf_notification_template_content (id, locale, type, content, sender, subject)
VALUES ((SELECT id FROM notification.ntf_notification_template WHERE uuid = 'AUTHZ_MAIL_TMP_1'), 'en', 'STRING', '<html>
<body>
Welcome ${username};
<br/>
<br/>
<b> ${roleName} deleted by system admin </b>
<br/>
</body>
</html>
', 'javalt@havelsan.com.tr', 'Role Delete Information');
INSERT INTO notification.ntf_notification_template_content (id, locale, type, content, sender, subject)
VALUES ((SELECT id FROM notification.ntf_notification_template WHERE uuid = 'AUTHZ_MAIL_TMP_1'), 'tr', 'STRING', '<html>
<body>
Sayın ${username};
<br/>
<br/>
<b> ${roleName} sistem yöneticisi tarafından silinmiştir. </b>
<br/>
</body>
</html>', 'javalt@havelsan.com.tr', 'Role Silinme Bilgilendirmesi');