Отримання ролей з Keycloak-реалму: Get Keycloak roles by realm
Цей документ пояснює, як отримати перелік системних та реєстрових ролей з певного Keycloak-реалму.
1. Загальна інформація
Інтеграційне розширення Get Keycloak roles by realm дозволяє вам отримати список усіх ролей з певного Keycloak-реалму.
| Назва | Пояснення | 
|---|---|
| Бізнес-назва інтеграційного розширення | Get Keycloak roles by realm | 
| Службова назва інтеграційного розширення | 
 | 
| Назва файлу в бібліотеці розширень | keycloakGetRolesByRealmConnectorDelegate.json | 
2. Перед початком
| Якщо ви використовуєте функціональність Кабінету адміністратора регламентів для розробки реєстру, вам не потрібно встановлювати типові розширення, додаткові зовнішні застосунки та плагіни. Портал містить усе необхідне вбудоване з коробки. При моделюванні бізнес-процесів із використанням сторонніх застосунків, важливо інтегрувати каталог типових розширень з нашого репозиторію. Завітайте до business-process-modeler-extensions, щоб завантажити необхідні файли. Наприклад, для таких інструментів, як Camunda Modeler, у вашій теці /element-templates мають бути включені відповідні JSON-файли. Для детальних інструкцій, будь ласка, перегляньте Встановлення типових розширень. | 
3. Налаштування делегата
Делегат Get Keycloak roles by realm призначений для використання у сервісних завданнях (Service Task) бізнес-процесу. Він отримує список усіх ролей з певного Keycloak-реалму:
- 
citizen— список ролей для призначення отримувачам послуг.
- 
officer— список ролей для призначення надавачам послуг.
3.1. Налаштування сервісного завдання
- 
Створіть завдання типу Service Task у вашому бізнес-процесі. 
- 
Назвіть завдання, наприклад, Отримання переліку можливих регламентих ролей для реалма.
- 
Застосуйте шаблон делегата, обравши відповідний зі списку в налаштуваннях завдання.  
3.2. Налаштування делегата
- 
У полі Realm оберіть Officerдля надавачів послуг абоCitizenдля отримувачів послуг.
- 
Оберіть Role Type, щоб визначити, які ролі повертати: REGISTRY ROLES,PLATFORM ROLESабоALL ROLES. Ви можете запитати всі (системні та реєстрові), лише системні, або лише реєстрові ролі, доступні для використання у реєстрі. За замовчуванням встановленоREGISTRY ROLES.
- 
Вкажіть змінну процесу (наприклад, rolesResponse), куди буде збережено відповідь. Ця змінна буде тимчасовою (transient). Це дозволяє ефективно управляти отриманими даними без зайвого зберігання інформації в базі даних.
Результатом виконання запита буде повернення переліку назв ролей певного користувача для визначеного реалма: List<String>.
[
  "user",
  "admin",
  "hierarchy-registry-manager",
  "personnel-officer-admin",
  "reviewer"
]Надалі ви зможете використовувати отриманий список ролей для різних цілей у бізнес-процесі. Наприклад, ви зможете отримати лише певну роль зі списку за індексом, сформувати payload із відповідним значенням та зберегти до тимчасової змінної для подальшого застосування у процесі:
// Визначення масиву ролей
def roles = ["user", "admin", "hierarchy-registry-manager", "personnel-officer-admin", "reviewer"]
// Отримання першої ролі з масиву
def firstRole = roles[0]
// Формування результату. Наприклад, створимо Map для тимчасової змінної payload
def payload = [firstRole: firstRole]
// Припустимо, що весь масив ролей є доступними ролями, які ми хочемо зберегти
def availableRoles = roles
// Запис даних у змінні процесу
set_transient_variable('payload', payload)
set_variable('availableRoles', availableRoles)4. Приклад
Ось референтний приклад, який показує, як відповідний делегат використовується у бізнес-процесі:
 
| Де можна знайти приклад референтного бізнес-процесу?Адміністратор Платформи може розгорнути для вас демо-реєстр — еталонний реєстр, що містить референтні та інші приклади файлів для створення цифрового регламенту. Він містить різноманітні елементи для розробки моделі даних, бізнес-процесів, UI-форм, аналітичної звітності, витягів, сповіщень, зовнішніх інтеграцій та багато іншого. Еталонний регламент з прикладами для України зберігається в репозиторії  Детальну інструкцію щодо розгортання демо-реєстру та отримання референтних прикладів моделювання ви знайдете на сторінці Розгортання демо-реєстру із референтними прикладами. Приклад BPMN-схеми процесу буде доступний у регламенті демо-реєстру за пошуком по ключовим словам — reference-officers-management. Назви форм ви можете знайти всередині відповідних користувацьких задач бізнес-процесу у полі  |