Ana içeriğe geç

2.2.1. Giriş#

Veri Depolama (Data Storage)#

System setting ortamının kurulması için PostgreSQL ve tercihe bağlı redis'in çalıştırılması gerekmektedir.

PostgreSQL docker bilgisine buradan ulaşabilirsiniz.

Redis docker bilgisine buradan ulaşabilirsiniz.

Uygulama Paketi (Instances)#

System setting docker instance'ına buradan ulaşabilirsiniz.

Dış Bağımlılıklar (External Dependencies)#

Security enabled durumda security instances kurulumu ihtiyacı olmaktadır. Kurulumun detaylarına buradan ulaşabilirsiniz.

Varsayılan Uygulama Parametreleri (Default Environment Variables)#

Değişken Adı Değeri Açıklama
DATA_INITIALIZER_ENABLED true Veri ilklendirmenin aktif/pasif yapılmasının sağlayan değişkendir.
DATA_INITIALIZER_GIT_ENABLED true Veri ilklendirmesinin git üzerinden yapılıp yapılmayacağının bilgisidir.
DATA_INITIALIZER_GIT_LABEL master Veri ilklendirmesinin yapılacağı branch bilgisidir.
DATA_INITIALIZER_GIT_PATH ${user.home}/.hvl-gradle-spring-plugin/data-initializer/hvl-system-setting Veri ilklendirmesinin yapılacaği git path bilgisidir.
DATA_INITIALIZER_RESOURCE_PATH ${hvl.core.jdbc.initializer.git.path}/script/db/framework/system/setting/scenario/setting.scenario Veri ilklendirmesi yapılacak kaynak senaryo dosyası bilgisidir.
DB_SCHEMA system Uygulama verilerinin işlendiği RDMS schema bilgisidir.
DB_SCHEMA_CREATE_ENABLED true Schema oluşturmanın aktif/pasif yapıldığı değişkendir.
DDL_AUTO_TYPE create Veri ilklendirme strateji bilgisidir. (create, update vb.)
LOGGING_CONFIG \({spring.cloud.config.uri}/\)/default/framework()log4j2()instance()system()setting/log4j2.yml Uygulama log4j konfigurasyon dosyası dizin bilgisidir.
REDIS_CM_CACHE_PREFIX hvl::sys::setting:: Redis üzerinde tutulan cache prefix değeridir.
REDIS_CM_VALUE_SERIALIZER java Redis üzerindeki cache bilgisinin serializer(java, binary) yönetiminin bilgisidir.
SERVER_APP_NAME system-setting-server Uygulama isim bilgisidir.
SERVER_DESCRIPTION Hvl System Setting Server Uygulama açıklama bilgisidir.
SERVER_PORT 9192 Uygulamanın sunulduğu port bilgisidir.
SETTING_EVENT_OPERATION_ENABLED false Setting ile ilgili olayların kafkaya gönderilmesini aktif hale getirir.
SETTING_EVENT_OPERATION_TOPIC_NAME hvl_system_setting_operation Setting ile ilgili olayların kafka topic adı.
SWAGGER_DESCRIPTION Havelsan system setting services info Uygulamanın swagger açıklama bilgisidir

*Daha fazlası için Parametreler'e bakınız.

Veri ilklendirme (Data Initializer)#

  1. Ayar modül isimlerinin tanımlanması
  2. Ayar tiplerinin tanımlanması
  3. Ayar bilgisinin kayıt edilmesi

adımlarından oluşmaktadır.

  • Module Name Ekleme SQL :

Ayar bilgisi gerektiren modüller tanımlanır. 'KEYSIS', 'HR' vb. modüllerin tanımlanması gerekmektedir.

INSERT INTO system.sys_setting_module (id, created_by, created_at, updated_at, updated_by, uuid, obj_version,
                                       name, module_order)
VALUES (NEXTVAL('system.sys_setting_module_seq'), 'unknown', CURRENT_DATE, CURRENT_DATE, 'unknown',
        'SETTING_MODULE_NAME_UUID_00000000001',
        0, 'KEYSYS', 1);
  • Setting Type Ekleme SQL :

Modül içerisinde ihtiyaç duyulan ayar tipleri tanımlanır. Örnek olarak Keysis modülü için 'SECURITY', 'SYSTEM' vb. ayar tipleri vardır. Hangi modülün ayar tipi olduğunu belirtmek için module_id bulundurur.

INSERT INTO system.sys_setting_type (id, created_by, created_at, updated_at, updated_by, uuid, obj_version,
                                     module_id, name, type_order)
VALUES (NEXTVAL('system.sys_setting_module_seq'), 'unknown', CURRENT_DATE, CURRENT_DATE, 'unknown',
        'SETTING_TYPE_UUID_000000000000000001',
        0, (SELECT id FROM system.sys_setting_module WHERE  name = 'KEYSYS'), 'SECURITY', 1);
  • Setting Ekleme SQL

Modül ve tipe göre ayar bilgileri tanımlanır. Değerler string, number ve boolean olabilir. Değerin olmadığı tiplere null vermek yerine 0 veya boş string değer vermek gerekmektedir.

INSERT INTO system.sys_setting (id, created_by, created_at, updated_at, updated_by, uuid, obj_version,
                                code, description, type_id, field_type, string_value, number_value,
                                boolean_value)
VALUES (NEXTVAL('system.sys_setting_seq'), 'unknown', CURRENT_DATE, CURRENT_DATE, 'unknown',
        'SETTING_UUID_00000000000000000000002',
        0, 'session_limit_count', 'session_limit_count', (SELECT id FROM system.sys_setting_type WHERE  name = 'SECURITY'), 0, '', 5, 0);

Değer Açıklamaları ve Ayar Adları (Setting names)#

settingModuleName.sql

Değişken Adı Açıklama
name Modül ismidir.
module_order Düzenleme sırasında modülün hangi sırada geleceğinin bilgisidir.

settingType.sql

Değişken Adı Açıklama
module_id Ayar tipinin hangi modüle ait olduğunun bilgisidir.
name Ayar tip ismidir. Örneğin SECURITY, SYSTEM gibi tipler olabilir.
type_order Düzenleme sırasında modüle ait tiplerin hangi sırada geleceğinin bilgisidir.

setting.sql

Değişken Adı Açıklama
code Ayara ait kod bilgisdir.
description Ayar bilgisine ait açıklamadır.
type_id Ait olduğu tip bilgisidir.
field_type Değer alanının tipini belirler. 0 sayısal değer, 1 string değer , 2 boolean değere karşılık gelmektedir.
string_value String değer barındıran ayarlar için alandır.
boolean_value Boolean değer barındıran ayarlar için alandır.
number_value Sayısal değer barındıran ayarlar için alandır.

Ayar Adları#

Ayar Adı Açıklama
session_limit_enabled Sistemde aynı kullanıcının ait oturum sayısının belirli olmasını aktif/pasif yapan ayardır.
session_limit_count Sistemde aynı kullanıcının kaç oturumu olabileceğini belirten ayardır.
session_auto_close Sistemde oturumun otomatik kapatılmasını belirleyen ayardır.
session_ttl_enabled Oturum yaşam süresinin belirlenmesinin aktif/pasif yapılabilmesini sağlayan ayardır.
session_ttl Oturum yaşam süresinin belirleyen ayardır.
failed_count Sistemde kullanıcı hatalı giriş sayısını belirleyen ayardır.
auto-unlock-enabled Kullanıcı kilidinin belirli süre sonra açılmasını aktif/pasif yapan ayardır.
auto-unlock-enabled Kullanıcı kilidinin belirli süre sonra açılmasını aktif/pasif yapan ayardır.
locked_duration Sistemde kullanıcının kilitli kalma süresini belirleyen ayardır. Örneğin 15 dk sonra kullanıcı kilidi otomatik açılabilir.
password_expire_time_enabled Kullanıcı parolasının geçerlilik süresini aktif/pasif yapan ayardır.
password_expire_time Kullanıcı parolasının geçerlilik süresini belirleyen ayardır.
verification_code_min_duration Üretilen verification kodunun geçerlilik süresidir.
two_factor_authentication_type İkili doğrulama tipini belirleyen ayardır. NONE ikili doğrulama yapılmayacağı anlamına gelir.
two_factor_authentication_verification_code_min_duration İkili doğrulama kodunun geçerliilik süresinin belirlendiği ayardır.

Not: Sistemde ayarların aktiflik durumunun yönetilmesi sağlanmaktadır. Aktif/pasif olarak yönetilmek istenen ayarlar için enabled (boolean) değerleri oluşturulmalıdır.

  • SECURITY -> Authentication ile ilgili ayarlardır. (failed_count, locked_duration vs.)
  • NOTIFICATION -> Uygulamada belirli işlemler sonrası bildirim gönderilme durumunu yönetmek için kullanılır.
  • SYSTEM -> Audit tutulmasını yönetmek için kullanılan ayardır.