Розгортання демо-реєстру із референтними прикладами
| 🌐 Цей документ доступний українською та англійською мовами. Використовуйте перемикач у правому верхньому куті, щоб змінити версію. |
Ви маєте змогу розгорнути демо-реєстр на Платформі з референтними прикладами моделювання регламенту. Структура такого регламенту аналогічна структурі типового регламенту, який використовується для будь-якого реєстру, розгорнутого на Платформі.
Регламент демо-реєстру включає референтні приклади, які позначені префіксом 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. Референтні приклади
Опис референтних прикладів моделювання регламенту доступний на сторінках розділу Найкращі практики.