Ana içeriğe geç

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 mail 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)#

  1. Mail template kayıt edilmesi.
  2. Mail template content kayıt edilmesi.
  3. Çoklu dil desteği için content kayıtlarının oluşturulması

adımlarından oluşmaktadır.

  • Mail template tanımlaması :

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');