Управління налаштуваннями реєстру на рівні регламенту
Сторінка технічної документації є баченням майбутньої реалізації, актуальність якого може бути застарілою. |
Сценарії адміністрування налаштувань реєстру
-
Налаштування заголовку реєстру для відображення у кабінетах користувачів
-
Налаштування теми інтерфейсу кабінетів користувачів
-
Налаштування поштової скриньки для відправлення повідомлень команді підтримки користувачів кабінетів
-
Налаштування переліку доменів, поштові адреси яких є забороненими для використання у реєстрі
-
Валідація змін до регламенту налаштувань згідно визначених правил
Сценарії використання налаштувань реєстру
-
Відображення заголовку реєстру у кабінетах користувачів
-
Відображення заголовку реєстру на сторінках аутентифікації користувачів
-
Застосування теми до інтерфейсу кабінетів користувачів
-
Використання визначеної адміністратором поштової скриньки при відправленні повідомлень до служби підтримки через кабінети користувачів
-
Використання переліку заблокованих доменів для валідації поштових адрес, які вносяться через UI-форми бізнес-процесів
-
Використання переліку заблокованих доменів для валідації поштових адрес, які вносяться через профіль Кабінету Громадянина
-
Використання переліку заблокованих доменів для валідації поштової скриньки команди підтримки реєстру, яка задається адміністратором
Поточний дизайн управління налаштуваннями
supportEmail: help@support.com
themeFile: white-theme.js
В поточній реалізації існує ряд недоліків:
-
Нецільове використання global-vars/camunda-global-system-vars.yml для налаштування supportEmail та themeFile реєстру
-
Неможливість налаштувати перелік заборонених доменів для поштових адрес на рівні регламенту
-
Неконсистентність використання правил клієнтської та серверної валідації поштових адрес користувачів з урахуванням переліку заборонених доменів
Цільовий дизайн управління налаштуваннями
Компоненти системи та їх призначення в рамках дизайну рішення
У даному розділі наведено перелік компонент системи, які задіяні або потребують змін/створення в рамках реалізації функціональних вимог згідно технічного дизайну рішення.
Компонент | Службова назва | Призначення / Суть змін |
---|---|---|
Регламент реєстру |
registry-regulation |
Розширення регламенту налаштуваннями title, blacklist та реструктуризація |
Пайплайн публікації регламенту |
registry-jenkins |
Застосування змін згідно реструктуризації файлів конфігурації та ресурсів:
|
Кабінет посадової особи |
officer-portal |
Відображення назви реєстру та адреси служби підтримки. Валідація поштових адрес на сторінках UI-форм |
Кабінет громадянина |
citizen-portal |
Відображення назви реєстру та адреси служби підтримки. Валідація поштових адрес на сторінках UI-форм та профілі користувача |
Сторінка аутентифікації громадянина |
keycloak-ds-login-page-citizen |
Відображення назви реєстру та темування |
Сторінка аутентифікації посадової особи |
keycloak-ds-login-page-officer |
Відображення назви реєстру та темування |
Аутентифікатор громадян |
keycloak-ds-citizen-authenticator |
Налаштування назви реєстру та теми |
Аутентифікатор посадових осіб |
keycloak-ds-officer-authenticator |
Налаштування назви реєстру та теми |
Сервіс валідації даних UI-форм |
form-submission-validation |
Підключення конфігурації реєстру та валідація поштових адрес згідно переліку заблокованих доменів |
Сервіс управління налаштуваннями |
user-settings-service |
Підключення конфігурації реєстру та валідація поштових адрес згідно переліку заблокованих доменів |
Сервіс відправлення повідомлень |
notification-service |
Підключення конфігурації реєстру та валідація поштових адрес згідно переліку заблокованих доменів |
CLI-утиліта валідації цілісності регламенту |
registry-regulations-validator-cli |
Валідація налаштувань реєстру |
Регламент налаштувань реєстру
На даний момент в регламенті присутній конфігураційний файл <registry-regulation>/settings.xml з налаштуваннями Фабрики Даних. Розглянути доцільність його перевикористання та об’єднання з загальними налаштуваннями реєстру на рівні регламенту. |
В рамках проведення редизайну, необхідно створити структуру та відповідну конфігурацію реєстру за замовчуванням у шаблоні репозиторію регламенту empty_regulation_template. |
settings:
general:
title: "<Назва реєстру>"
themeFile: "white-theme.js"
contacts:
support:
email: "support@registry.gov.ua"
validation:
email:
blacklist:
domains:
- 'mail.ru'
- 'internet.ru'
- 'list.ru'
- 'bk.ru'
- 'inbox.ru'
- 'mail.ua'
- 'yandex.ru'
- 'yandex.ua'
- 'mail.yandex.ru'
- 'mail.yandex.ua'
- 'ya.ru'
- 'ya.ua'
camundaVar1: "<constant to be used in business process>"
camundaVar2: "<constant to be used in business process>"
Валідація регламенту налаштувань реєстру
В рамках редизайну, необхідно відкорегувати JSON-схему для валідації global-vars/camunda-global-system-vars.yml:
|
В рамках реалізації рішення, необхідно розширити CLI-утиліту registry-regulations-validator-cli валідації регламенту додатковими правилами:
-
Перевірка settings/settings.yml на відповідність JSON-схемі
-
Валідація settings.general.contacts.support.email значення згідно актуальному переліку в settings.validation.email.blacklist.domains
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"settings": {
"type": "object",
"properties": {
"general": {
"type": "object",
"properties": {
"title": {
"type": "string",
"minLength": 1
},
"themeFile": {
"type": "string",
"enum": [
"white-theme.js",
"dark-theme.js"
]
},
"contacts": {
"type": "object",
"properties": {
"support": {
"type": "object",
"properties": {
"email": {
"type": "string",
"format": "email"
}
},
"additionalProperties": false,
"required": [
"email"
]
}
},
"additionalProperties": false,
"required": [
"support"
]
}
},
"additionalProperties": false,
"required": [
"title",
"themeFile",
"contacts"
]
},
"validation": {
"type": "object",
"properties": {
"email": {
"properties": {
"blacklist": {
"type": "object",
"properties": {
"domains": {
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "string",
"minLength": 1
}
}
},
"additionalProperties": false,
"required": [
"domains"
]
}
},
"additionalProperties": false,
"required": [
"blacklist"
]
}
},
"additionalProperties": false,
"required": [
"email"
]
}
},
"additionalProperties": false,
"required": [
"general",
"validation"
]
}
},
"additionalProperties": false,
"required": [
"settings"
]
}
Реструктуризація службових ресурсів реєстру
В рамках редизайну, необхідно відкорегувати згідно призначення назви та структури ресурсів, які створються у результаті виконання Пайплайну публікації регламенту.
const REGISTRY_SETTINGS = {
"settings": {
"general": {
"title": "<title>",
"themeFile": "<white|dark-theme.js>",
"contacts": {
"support": {
"email": "<email>"
}
}
},
"validation": {
"email": {
"blacklist": {
"domains": [
'mail.ru',
'internet.ru',
'list.ru',
'bk.ru',
'inbox.ru',
'mail.ua',
'yandex.ru',
'yandex.ua',
'mail.yandex.ru',
'mail.yandex.ua',
'ya.ru',
'ya.ua'
]
}
}
}
}
};
const ENVIRONMENT_VARIABLES = {
kibanaUrl: 'https://...',
redashUrl: 'https://...',
signWidgetUrl: 'https://...'
};
settings:
general:
title: "<Назва реєстру>"
themeFile: "white-theme.js"
contacts:
support:
email: "support@registry.gov.ua"
validation:
email:
blacklist:
domains:
- 'mail.ru'
- 'internet.ru'
- 'list.ru'
- 'bk.ru'
- 'inbox.ru'
- 'mail.ua'
- 'yandex.ru'
- 'yandex.ua'
- 'mail.yandex.ru'
- 'mail.yandex.ua'
- 'ya.ru'
- 'ya.ua'
camunda:
system-variables:
const_camundaVar1: "const_value"
const_camundaVar2: "const_value"
Застосування налаштувань до аутентифікаторів кабінетів
Необхідно розширити:
-
Логіку registry-jenkins Пайплайну публікації регламенту таким чином, щоб налаштування themeFile та title для конфігурації реєстрових аутентифікаторів dso-citizen-authenticator та dso-officer-authenticator застосовувались з регламенту registry-gerrit/<registry-regulation>.git/settings/settings.yml через внесення змін до відповідних KeycloakAuthFlow ресурсів
![dso-citizen-authenticator](../../../_images/architecture-workspace/platform-evolution/registry-settings/dso-citizen-authenticator.png)
![dso-officer-authenticator](../../../_images/architecture-workspace/platform-evolution/registry-settings/dso-officer-authenticator.png)
Міграція налаштувань при оновленні
При оновленні існуючих реєстрів, необхідно:
-
Розширити структуру регламенту відповідно до канонічного вигляду
-
Створити settings/settings.yml файл з налаштуваннями реєстру, як зазначено в розділі Регламент налаштувань реєстру
-
Встановити значення "settings.general.title" для реєстру
-
Встановити значення "title" для dso-citizen-authenticator та dso-officer-authenticator
-
Встановити "settings.general.contacts.support.email" значенням з поточної конфігурації global-vars/camunda-global-system-vars.yml поля supportEmail та видалити налаштування з camunda-global-system-vars.yml
-
Встановити "settings.general.themeFile" значенням з поточної конфігурації global-vars/camunda-global-system-vars.yml поля themeFile та видалити налаштування з camunda-global-system-vars.yml