Розгортання демо-реєстру із референтними прикладами
🌐 Цей документ доступний українською та англійською мовами. Використовуйте перемикач у правому верхньому куті, щоб змінити версію. |
Ви маєте змогу розгорнути демо-реєстр на Платформі з референтними прикладами моделювання регламенту. Структура такого регламенту аналогічна структурі типового регламенту, який використовується для будь-якого реєстру, розгорнутого на Платформі.
Регламент демо-реєстру включає референтні приклади, які позначені префіксом reference-
, та приклади для тестування, позначені префіксом feature-
. Це можуть бути зразки .bpmn-схем бізнес-процесів, .json-форм для внесення даних до процесів, а також .xml-схем для розгортання моделі даних реєстру тощо.
Важливо відзначити, що ці референтні приклади, а також інші зразки, розроблені фахівцями core-команди Платформи. Вони регулярно оновлюються і поповнюються з кожним новим релізом. Це надає можливість бути в курсі останніх тенденцій та практик при моделюванні власного регламенту, експериментувати та тестувати різні сценарії у контрольованих умовах.
1. Розгортання демо-реєстру та регламенту
Щоб розгорнути демо реєстр та скопіювати регламент із готовими зразками, виконайте наступні кроки:
-
Створіть новий реєстр
demo
відповідно до інструкції на сторінці Розгортання екземпляра реєстру. -
Увійдіть до консолі OpenShift > Home > Projects та знайдіть проєкт
control-plane
.Відкрийте розділ Networking > Routes та перейдіть за посиланням до компонента
control-plane-console
. -
Відкрийте консоль Control Plane > Дашборд та перейдіть за посиланням до центрального компонента Gerrit.
-
Перейдіть до налаштувань облікового запису Gerrit та знайдіть розділ HTTP Credentials.
-
Згенеруйте новий HTTP-пароль та скопіюйте його до блокнота.
Цей HTTP-пароль надалі потрібен для автентифікації при клонуванні Gerrit-репозиторію consent-data. -
Відкрийте вкладку Browse > Repositories та у полі Filter знайдіть репозиторій consent-data.
-
Клонуйте репозиторій consent-data на локальну машину. Зробити це можна наступним чином:
-
Оберіть вкладку Anonymous HTTP (за замовчуванням) та скопіюйте команду Clone with commit-msg hook.
Обов’язково клонуйте репозиторій із опцією
commit-msg hook
.Один з ключових елементів Gerrit — це використання "hooks" (або "гуків"). Hooks — це скрипти, які виконуються перед або після певних подій у Git, наприклад, перед
git commit
абоgit push
.Команда Clone with commit-msg hook у Gerrit дозволяє клонувати репозиторій і автоматично додає спеціальний
commit-msg hook
до локального репозиторію. Цей hook автоматично генерує унікальний Change-Id для кожного нового коміту. Change-Id використовується Gerrit для слідкування за різними версіями зміни. -
Відкрийте Git Bash та перейдіть до бажаної директорії, куди потрібно скопіювати consent-data:
Перехід до цільової директоріїcd <шлях/до/вашої/локальної/директорії>
-
Вставте скопійовану команду Clone with commit-msg hook та натисніть Enter.
Зачекайте, доки репозиторій буде остаточно клоновано.
-
-
Увійдіть до консолі OpenShift > Home > Projects та знайдіть проєкт зі створеним демо-реєстром
demo
.Відкрийте розділ Networking > Routes та перейдіть за посиланням до компонента Gerrit реєстру.
-
Перейдіть до налаштувань облікового запису Gerrit та знайдіть розділ HTTP Credentials.
-
Згенеруйте новий HTTP-пароль та скопіюйте його до блокнота.
Цей HTTP-пароль надалі потрібен для автентифікації при клонуванні та подальшій взаємодії із Gerrit-репозиторієм, що містить регламент registry-regulations. -
Відкрийте вкладку Browse > Repositories та у полі Filter знайдіть репозиторій registry-regulations.
Після розгортання реєстру, Gerrit міститиме порожній регламент registry-regulations. Його необхідно наповнити. -
Клонуйте репозиторій registry-regulations на локальну машину. Зробити це можна наступним чином:
-
Оберіть вкладку Anonymous HTTP (за замовчуванням) та скопіюйте команду Clone with commit-msg hook.
Обов’язково клонуйте репозиторій із опцією
commit-msg hook
.Один з ключових елементів Gerrit — це використання "hooks" (або "гуків"). Hooks — це скрипти, які виконуються перед або після певних подій у Git, наприклад, перед
git commit
абоgit push
.Команда Clone with commit-msg hook у Gerrit дозволяє клонувати репозиторій і автоматично додає спеціальний
commit-msg hook
до локального репозиторію. Цей hook автоматично генерує унікальний Change-Id для кожного нового коміту. Change-Id використовується Gerrit для слідкування за різними версіями зміни. -
Відкрийте Git Bash та перейдіть до бажаної директорії, куди потрібно скопіювати consent-data:
Перехід до цільової директоріїcd <шлях/до/вашої/локальної/директорії>
-
Вставте скопійовану команду Clone with commit-msg hook та натисніть Enter.
Зачекайте, доки репозиторій буде остаточно клоновано.
-
-
На локальній машині скопіюйте вміст репозиторію consent-data та вставте його із заміною до registry-regulations.
Обов’язково перенесіть вміст репозиторію consent-data без системної теки .git. Якщо демо-реєстр не передбачає налаштувань підключення до "Дії", то для успішного розгортання регламенту необхідно видалити теку diia із репозиторію registry-regulations, яка знаходиться за шляхом: ./notifications/diia. -
Опублікуйте зміни у регламенті демо-реєстру. Після публікації, сутності регламенту, як-от модель даних, бізнес-процеси, форми тощо стануть доступними для використання у Кабінетах користувачів, зокрема у Кабінеті адміністратора регламентів (
admin-portal
), посадової особи (officer-portal
) та отримувача послуг (citizen-portal
).На цьому кроці вам необхідно наповнити регламент registry-regulations онлайн-репозиторію Gerrit реєстру. -
Підготуйте
commit
зі змінами до registry-regulations та відправте його до репозиторію. Для цього виконайте по черзі наступні команди у Git Bash-терміналі:git add --all
Ця команда додає всі нові, змінені або видалені файли в поточному каталозі та його підкаталогах до індексу (
stage
) для наступного коміту. Тобто, вона готує всі зміни у проєкті до виконання командиgit commit
.git commit -m "added demo registry data"
Команда
git commit
створює новий коміт зі змінами, які були попередньо додані до індексу за допомогою командиgit add
. Опція-m
дозволяє додати коротке повідомлення до коміту, яке описує виконані зміни. У нашому випадку повідомлення буде таке:"added demo registry data"
.git push origin HEAD:refs/for/master
Команда
git push
відправляє зміни на віддалений git-сервер. У нашому випадкуorigin
— це віддалений репозиторій, до якого ви надсилаєте зміни.HEAD:refs/for/master
означає, що ви надсилаєте зміни з поточної гілки до віддаленої для перевірки коду перед злиттям із гілкоюmaster
. Це специфічний для Gerrit спосіб відправки змін для перевірки.
-
-
Після відправки змін, перейдіть за посиланням до Gerrit, яке з’явиться у терміналі.
Шлях до реєстрового Gerrit буде таким:
https://admin-tools-<openshift-project-name>.<dns-wildcard>/gerrit
-
<openshift-project-name>
— назва вашого реєстру (тут —demo
). -
<dns-wildcard>
— назва середовища в OpenShift, в якому розгорнуто реєстр.
-
-
Зачекайте, доки виконається системний пайплайн перевірки коду —
MASTER-Code-review-registry-regulations
. Перевірити прогрес можна за посиланням внизу сторінки у Gerrit.
У результаті успішної перевірки, ваш запит на внесення змін отримає статусVERIFIED +1
. -
Підтвердьте внесення змін натисканням кнопки
CODE-REVIEW+2
як модератор. -
Застосуйте зміни до
master
-гілки репозиторію з регламентом натисканням кнопкиSUBMIT
, тобто виконайтеgit merge
змін.У результаті запускається автоматична публікація регламенту пайплайном
MASTER-Build-registry-regulations
. Перевірити прогрес розгортання можна за посиланням внизу сторінки у Gerrit.Після успішної публікації, у регламенті демо-реєстру будуть доступні референтні приклади, помічені префіксом
reference-
та приклади для тестування, помічені префіксомfeature-
. -
Перейдіть до Кабінету адміністратора регламентів та перевірте наявність бізнес-процесів, UI-форм тощо. Службова назва референтних прикладів міститиме префікс
reference-
.Адміністративний портал доступний за посиланням: https://admin-tools-<registry-name>.<dns-wildcard>. Ці ж референтні бізнес-процеси стануть доступними у вигляді послуг у Кабінетах посадової особи та отримувача послуг.
2. Опис вмісту регламенту демо-реєстру
Вміст регламенту демо-реєстру подібний до типового регламенту будь-якого реєстру, що розгорнуто на Платформі (див. детальніше — Структура регламенту реєстру).
Регламент демо-реєстру містить референтні приклади, відмічені префіксом reference-
та приклади для тестування, відмічені префіксом feature-
. Це можуть бути .bpmn-схеми бізнес-процесів, .json-форми внесення даних до процесу, .xml-схеми розгортання моделі даних реєстру тощо.
Для того, щоб посадова особа в особистому Кабінеті змогла отримати доступ до відповідного референтного процесу, необхідно створити користувача у реалмі <назва-реєстру>-officer
для відповідного реєстру в сервісі Keycloak та надати такому користувачеві відповідні права доступу.
Права доступу можуть відрізнятися, згідно з логікою вашого реєстру. Це можуть бути як загальні права для посадових осіб, зокрема роль -officer
, так і специфічні, як-от посадова особа, відповідальна за управління ієрархічними структурами — hierarchy-registry-manager
.
Детальніше про створення користувачів та надання їм прав доступу див. у розділі Внесення користувачів до системи. |
Список ролей, що передбачає регламент демо-реєстру, доступний у файлах roles/*.yml. Ролі посадової особи знаходяться у файлі roles/officer.yml, ролі отримувачів послуг — у файлі roles/citizen.yml.
Для перегляду процесів, які належать до feature-прикладів, у Keycloak передбачена роль op-regression
. У Кабінеті стануть доступними процеси для тестування функціональності, зокрема для перевірки JUEL-функцій, делегатів тощо.
Для перегляду процесів, які належать до reference-прикладів, у Keycloak передбачена роль op-reference
.
Ролі регламенту демо-реєструroles/officer.yml
|
Орієнтуватися, яка роль матиме доступ до тих чи інших процесів, можна за допомогою авторизаційних файлів регламенту bp-auth/*.yml.
Доступ для посадових осіб визначається у файлі bp-auth/officer.yml, для отримувачів послуг — у файлі bp-auth/citizen.yml. Авторизація для зовнішніх систем встановлюється у файлі bp-auth/external-system.yml.
Доступ до бізнес-процесів демо-реєстру для відповідних ролейbp-auth/officer.yml
|
3. Референтні приклади
Опис референтних прикладів моделювання регламенту доступний на сторінках розділу Найкращі практики.