Загрузка организационной структуры¶
В этой инструкции описано как загружать организационную структуру и сотрудников компании при использовании VK People Hub.
Вот так выглядит пример готовой оргструктуры внутри портала.
Рисунок. Вид настроенной оргструктуры внутри портала.
Ниже указаны необходимые действия и условия, при выполнении которых пользователи вашей организации увидят в портале VK People Hub похожую оргструктуру и смогут ею успешно пользоваться.
Загрузить пользователей в KeyCloak¶
Необходимо загрузить пользователей в KeyCloak.
Раздел будет дополнен в следующих релизах.
Заполнить json-файлы для оргструктуры¶
Для начала необходимо сформировать корректные json-файлы:
- client_file_processing_order.json
- employees.json
- organizations.json
Файлы всегда загружаются вместе, отсутствие какого-либо из трех файлов приведет к ошибке.
client_file_processing_order.json¶
Пример json-файла организации.
Модель данных клиента
Параметр | Обязательность | Описание |
---|---|---|
some_client | Да | Название вашей организации на английском языке без пробелов |
org_file_name | Да | Название json-файла с иерархией подразделений (organizations.json) |
emp_file_name | Да | Название json-файла с пользователями (employees.json) |
employees.json¶
Файл с пользователями необходимо формировать после того, как пользователи загружены в Keycloak. Важно, чтобы в ID пользователя в Keycloak соответствовал keycloak_attribute_id
в json-файле.
Пример json-файла пользователей.
Модель данных пользователя
Параметр | Обязательность | Описание |
---|---|---|
keycloak_attribute_id | Да | ID пользователя в Keycloak |
patronymic | Нет | Отчество |
position | Нет | Должность |
is_active | Да | Признак активности пользователя |
organization_id | Да | Идентификатор организации, в которой состоит пользователь Параметр organization_id должен соответствовать параметру id подразделения, к которому относится пользователь Данный параметр находится в файле organizations.json |
organizations.json¶
Пример json-файла организации.
Модель данных организации
Параметр | Обязательность | Описание |
---|---|---|
id | Да | Идентификатор организации
Параметр id организации может быть взят при выгрузке оргструктуры из другой системы при переходе с нее в VK People Hub В таком случае нужно проверить, чтобы все id внутри всех отделов организации внутри оргструктуры были уникальными Если же оргструктура организации не будет выгружена из какого-либо другого сервиса при переходе в VK People Hub, а должна быть создана с нуля — id каждого отдела внутри организации могут быть созданы по модели UUID Рекомендуемый стандарт данных — UUID4 Единственное критически важное условие — эти id должны быть уникальными и не должны повторяться. |
parent_id | Да | Идентификатор родительской организации Для родительской организации внутри оргструктуры указывается parent_id: null Для остальных подразделений компании parent_id указывает на вышестоящий по иерархии отдел компании |
name | Да | Название организации |
leader_keycloak_attribute_id | Нет | Идентификатор руководителя организации (по пользовательскому атрибуту Keycloak) Параметр leader_keycloak_attribute_id указывает на идентификатор пользователя - руководителя подразделения Этот параметр должен соответствовать параметру keycloak_attribute_id этого пользователя из файла employees.json |
Подготовка инфраструктуры¶
Порядок действий по загрузке оргструктуры:
- Развернуть Airflow (для этого используем helm-chart с рекомендуемыми values.yaml)
- Скачать архив dags.tar.gz по ссылке https://raw.people-hub.ru/init/dags-4-30-1.tar.gz и разархивировать:
В разархивированной папке разместить ранее подготовленные json-файлы:
- в корне папки файл client_file_processing_order.json
- по пути integration_files/some_client/ файлы organizations.json и employees.json
Итоговые изменения в структуре распакованного архива:
├── dags
│ ├── client_file_processing_order.json
│ ├── integration_files
│ │ └── some_client
│ │ ├── employees.json
│ │ └── organizations.json
Рисунок. Расположение файлов с клиентом, пользователями и оргструктурой.
- Обратите внимание на следующие переменные в файле values.yaml к helm chart Airflow:
- В переменной CLIENT_PROCESSING_ORDER_JSON_PATH, должен быть указан путь к файлу клиента оргструктуры:
- name: "CLIENT_PROCESSING_ORDER_JSON_PATH"
value: "/opt/airflow/dags/client_file_processing_order.json"
- В переменнной INTEGRATION_FILES_DIR, файлы с пользователями и организационной структурой в папке с названием клиента оргструктуры
- name: "INTEGRATION_FILES_DIR"
value: "/opt/airflow/dags/integration_files"
-
Заархивировать полученный результат и разместить итоговый архив dags.tar.gz в S3 хранилище с публичным доступом по следующему пути: /ph-media/init/dags.tar.gz
-
Обратите внимание, что в Keycloak должна быть создана учетная запись для интеграции в realm PH, данные этой учетной записи указываются в файле values.yaml в следующих переменных:
- name: "KEYCLOAK_API_USERNAME"
value: "your_user"
- name: "KEYCLOAK_API_PASSWORD"
value: "your_password"
- После того как json-файлы настроены и помещены в нужные директории, можно перейти к загрузке оргструктуры.
Загрузка и обновление оргструктуры с помощью Airflow¶
Чтобы загрузить оргструктуру, войдите в сервис Apache Airflow. Для работы в этом сервисе у вас должны быть соответствующие права администратора.
Рисунок. Админпанель Apache Airflow с выделенной кнопкой запуска обновления оргструктуры.
В административной панели Apache Airflow отображаются предварительно загруженные клиенты оргструктуры организации. Клиент — связка json-файлов сотрудников и организации.
У клиента отображается его активный или неактивный статус, название, пользователь-создатель, количество шагов во время обновления, расписание, даты последнего и следующего обновления, последние пройденные шаги во время обновления, кнопка принудительного запуска обновления и кнопка удаления клиента.
По умолчанию клиент автоматически обновляется раз в сутки. Это рекомендуемый период обновления, при котором вероятность ошибок в отображении оргструктуры сведена к минимуму. Обновление оргструктуры позволяет своевременно отображать изменения должностей сотрудников, добавлять и удалять сотрудников, добавлять и удалять отделы внутри компании, и производить прочие изменения внутри оргструктуры организации.
При успешном обновлении оргструктуры число внутри зеленого круга в поле Runs будет соответствовать числу внутри зеленого круга в поле Recent Tasks.
Чтобы обновить оргструктуру вне автоматического расписания обновлений, нажмите на кнопку запуска. Она выделена на рисунке выше.