Загрузка организационной структуры¶
В этой инструкции описано как загружать организационную структуру и сотрудников компании при использовании VK People Hub.
Вот так выглядит пример готовой оргструктуры внутри портала.
Рисунок. Вид настроенной оргструктуры внутри портала.
Ниже указаны необходимые действия и условия, при выполнении которых пользователи вашей организации увидят в портале VK People Hub похожую оргструктуру и смогут ею успешно пользоваться.
Предварительные шаги по настройке оргструктуры¶
Перед интеграцией оргструктуры нужно убедиться, что выполнены предварительные действия:
- Клиент оргструктуры указан в файле CLIENT_PROCESSING_ORDER_JSON_PATH.
- Файлы с пользователями и организационной структурой лежат в папке с названием клиента оргструктуры по пути INTEGRATION_FILES_DIR.
- В Keycloak созданы:
- учетная запись администратора (для переменных KEYCLOAK_API_{...}).
- учетные записи сотрудников с атрибутом EmpID. Значения этого атрибута должны соответствовать значениям из файла пользователей.
- Все обязательные переменные окружения выставлены корректно.
Пример json-файла клиента оргструктуры
Рисунок. Расположение файлов с клиентом, пользователями и оргструктурой.
Обязательные json-файлы для оргструктуры¶
Для успешного отображения оргструктуры нужны правильно заполненные json-файлы сотрудников и организации. Например, файл с сотрудниками можно назвать employees.json
, файл организации — organizations.json
. Примеры файлов доступны для загрузки ниже.
Пример json-файла с пользователями:
[
{
"keycloak_attribute_id": "100",
"patronymic": "Александрович",
"position": "Руководитель",
"is_active": true,
"organization_id": "57722ae4-ca66-4602-bfe0-7d7d5fe3de48"
},
{
"keycloak_attribute_id": "101",
"patronymic": "Васильевна",
"position": "Заместитель руководителя",
"is_active": true,
"organization_id": "2d355c26-c811-4f06-9e06-e644072a8135"
},
]
organization_id
должен соответствовать параметру id
подразделения, к которому относится пользователь. Данный параметр находится в json-файле организации.
Пример json-файла организации:
[
{
"id": "57722ae4-ca66-4602-bfe0-7d7d5fe3de48",
"parent_id": null,
"name": "Главная организация",
"leader_keycloak_attribute_id": "100"
},
{
"id": "2d355c26-c811-4f06-9e06-e644072a8135",
"parent_id": "57722ae4-ca66-4602-bfe0-7d7d5fe3de48",
"name": "Организация заместителей",
"leader_keycloak_attribute_id": "101"
}
]
parent_id: null
. Для остальных подразделений компании parent_id
указывает на вышестоящий по иерархии отдел компании.
Параметр leader_keycloak_attribute_id
указывает на идентификатор пользователя-руководителя подразделения. Этот параметр должен соответствовать параметру keycloak_attribute_id
этого пользователя из json-файла со списком сотрудников.
Параметр id
организации может быть взят при выгрузке оргструктуры из другой системы при переходе с нее в VK People Hub. В таком случае нужно проверить, чтобы все id
внутри всех отделов организации внутри оргструктуры были уникальными. Это критически важный момент при настройке оргструктуры.
Если же оргструктура организации не будет выгружена из какого-либо другого сервиса при переходе в VK People Hub, а должна быть создана с нуля — id
каждого отдела внутри организации могут быть созданы по модели UUID. Рекомендуемый стандарт данных — UUID4. Единственное критически важное условие — эти id
должны быть уникальными и не должны повторяться.
Пример json-файла пользователей
Модели данных
Для пользователей:
Параметр | Описание | Обязательный |
---|---|---|
keycloak_attribute_id | Идентификатор пользователя, указанный в пользовательском атрибуте Keycloak | Да |
patronymic | Отчество | Нет |
position | Должность | Нет |
is_active | Признак активности пользователя | Да |
organization_id | Идентификатор организации, в которой состоит пользователь | Да |
keycloak_attribute_id назначаются последовательно в числовом формате, начиная со значения 100.
Для организаций:
Параметр | Описание | Обязательный |
---|---|---|
id | Идентификатор организации | Да |
parent_id | Идентификатор родительской организации | Да |
name | Название организации | Да |
leader_keycloak_attribute_id | Идентификатор руководителя организации (по пользовательскому атрибуту Keycloak) | Нет |
Загрузка и обновление оргструктуры с помощью Apache Airflow
После того как json-файлы сотрудников и организации настроены и помещены в нужные директории, можно перейти к загрузке оргструктуры.
Чтобы загрузить оргструктуру, войдите в сервис Apache Airflow. Для работы в этом сервисе у вас должны быть соответствующие права администратора.
Рисунок. Админпанель Apache Airflow с выделенной кнопкой запуска обновления оргструктуры.
В административной панели Apache Airflow отображаются предварительно загруженные клиенты оргструктуры организации. Клиент — связка json-файлов сотрудников и организации.
У клиента отображается его активный или неактивный статус, название, пользователь-создатель, количество шагов во время обновления, расписание, даты последнего и следующего обновления, последние пройденные шаги во время обновления, кнопка принудительного запуска обновления и кнопка удаления клиента.
По умолчанию клиент автоматически обновляется раз в сутки. Это рекомендуемый период обновления, при котором вероятность ошибок в отображении оргструктуры сведена к минимуму. Обновление оргструктуры позволяет своевременно отображать изменения должностей сотрудников, добавлять и удалять сотрудников, добавлять и удалять отделы внутри компании, и производить прочие изменения внутри оргструктуры организации.
При успешном обновлении оргструктуры число внутри зеленого круга в поле Runs будет соответствовать числу внутри зеленого круга в поле Recent Tasks.
Чтобы обновить оргструктуру вне автоматического расписания обновлений, нажмите на кнопку запуска. Она выделена на рисунке выше.