Подключение структуры организации
Назначение документа
Структура организаций — это сервис, который позволяет загружать, хранить, отображать и редактировать иерархии между организациями, подразделениями и сотрудниками.
В данном документе описано подключение структуры организации в случаях, когда:
Документ предназначен для использования администраторами организации.
Дополнительная документация
Инструкция по настройке и администрированию продуктов Почты, Диска и VK Teams — в документе описано управление структурой организации в административной панели VK WorkSpace при наличии интеграции с Почтой VK WorkSpace.
Как работать в VK Teams — в документе описана работа пользователей со структурой организации в корпоративном мессенджере VK Teams — поиск сотрудников и организаций, просмотр иерархии отделов и иерархии между организациями.
Архитектура и описание системы VK Teams — в документе представлено описание сервисов, обеспечивающих работу функциональности оргструктуры. Не является частью публичной документации, обратитесь к представителю VK Tech, чтобы ознакомиться с документом.
Подключение структуры организации при наличии интеграции с Почтой VK WorkSpace
Шаг 1. Подключите функциональность в административной панели
Чтобы подключить функциональность оргструктуры в административной панели VK WorkSpace, обратитесь в техническую поддержку или к вашему персональному менеджеру.
Шаг 2. Создайте структуру организации
После подключения функциональности управление оргструктурой происходит в административной панели VK WorkSpace в разделе Структура организаций.
Вы можете создать структуру организаций вручную или загрузить ее при помощи XLSX-файла. Подробные инструкции по управлению оргструктурой в административной панели VK WorkSpace представлены в документации.
Шаг 3. Подключите функциональность в мессенджере
После создания оргструктуры в административной панели VK WorkSpace подключите структуру организации в корпоративном мессенджере VK Teams:
-
В конфигурационном файле /usr/local/nginx-im/html/myteam/myteam-config.json произведите следующие настройки:
1.1. Укажите в секции
orgstructure
дляurl
иurl-dark
webim-ссылку вида https://webim.<YOUR_DOMAIN>/webapps/orgstructure:```json "services": { "config": { "orgstructure": { "external": false, "needs_auth": true, "url": "https://webim.<YOUR_DOMAIN>/webapps/orgstructure", "url-dark": "https://webim.<YOUR_DOMAIN>/webapps/orgstructure", "staff-visible-part-index": 2 } ``` где: - <YOUR_DOMAIN> — ваш домен; - staff-visible-part-index — количество пользователей, которые будут отображаться в оргструктуре подразделения над кнопкой «Показать всех». Значение по умолчанию — 2.
1.2. Включите отображение вкладки оргструктуры в клиентском приложении:
```json "services": { "disposition": { "desktop": { #включаем отображение сервиса оргструктуры в десктоп-версии "leftbar": [ "orgstructure" ] }, "mobile": { #включаем отображение сервиса оргструктуры в мобильном приложении "services": [ "orgstructure" ] ``` !!!note "Примечание" В секциях leftbar и services могут быть подключены другие сервисы. Не удаляйте их.
-
Пересоздайте под админ-консоли:
где: * — уникальное имя пода. Имя пода необходимо получить с помощью вывода команды:
После данных настроек в разделе сервисов VK Teams появится иконка для работы со структурой организации.
Подключение структуры организации при отсутствии интеграции с Почтой VK WorkSpace
При отсутствии интеграции с Почтой VK WorkSpace функциональность оргструктуры в VK Teams обеспечивают сервисы:
- Sys-org-adapt — наполняет оргструктуру мессенджера VK Teams, используя внешний источник данных о пользователях и организациях.
- Org-nomail-adapt — заполняет поле «О себе» в профиле пользователя на основании внешнего источника данных о пользователях и организациях.
Более подробное описание сервисов представлено в документе «Архитектура и описание системы VK Teams» (не является частью публичной документации, обратитесь к представителю VK Tech, чтобы ознакомиться с документом).
API для наполнения оргструктуры в VK Teams
Сервис Sys-org-adapt работает с внешним источником данных о пользователях и организациях по описанному ниже API.
Получить подразделения
Метод позволяет получить информацию о подразделениях:
- название подразделения;
- уровень вложенности подразделения в иерархии оргструктуры;
- почта руководителя.
Входные данные
Get <DOMAIN>/api/v2/units/
где <DOMAIN> — домен внешнего источника данных о пользователях и организациях.
Ограничения
Данный метод требует авторизации.
Для авторизации сервис Sys-org-adapt передает в заголовке Authorization авторизационный токен, который можно настроить в конфигурационном файле сервиса. Чтобы сделать это, перейдите в /usr/local/etc/sys-org-adapt-1.yaml и укажите в поле api_key
авторизационный токен:
Параметры
Имя | Тип | Описание |
---|---|---|
page *required |
string | Номер страницы |
per_page *required |
string | Количество подразделений на странице |
exclude_hidden | boolean | Если в запросе передано это значение, то в ответе не передаются подразделения, которые должны быть скрыты в оргструктуре VK Teams |
Пример запроса для получения подразделений
Формат ответа
{
"objects": [
{
"id": 2, # идентификатор подразделения
"parent_id": 1, # идентификатор родительского подразделения
"email": "i_ivanov@YOUR_DOMAIN.ru", # почта руководителя подразделения
"level": 7, # уровень вложенности подразделения при отсчете от корневого подразделения (level: 0)
"name": "Юнит № 1", # название подразделения
},
],
"meta" : {
"next": 2 # следующая страница
}
}
Получить пользователей
Метод позволяет получить информацию о пользователях:
- название должности;
- название подразделения, в котором работает пользователь;
- почта пользователя.
Также позволяет ограничивать добавление в оргструктуру технических аккаунтов и неактивных пользователей.
Входные данные
Get <DOMAIN>/api/v2/users
где <DOMAIN> — домен внешнего источника данных о пользователях и организациях.
Ограничения
Данный метод требует авторизации.
Для авторизации сервис Sys-org-adapt передает в заголовке Authorization авторизационный токен, который можно настроить в конфигурационном файле сервиса. Чтобы сделать это, перейдите в /usr/local/etc/sys-org-adapt-1.yaml и укажите в поле api_key
авторизационный токен:
Параметры
Имя | Тип | Описание |
---|---|---|
page *required |
string | Номер страницы |
per_page *required |
string | Количество подразделений на странице |
end_of_work__isnull | boolean | Если в запросе значение true, то в ответе передаются только те сотрудники, которые еще работают в компании |
Пример запроса для получения пользователей
Формат ответа
{
"objects": [
{
"appointment_name": 1, # название должности пользователя
"unit_id": 2, # подразделение, в котором работает пользователь
"email": "i_ivanov@YOUR_DOMAIN.ru", # почта пользователя
"is_technical_account": false # если аккаунт технический, он не будет добавлен в оргструткуру
"is_active": true # будут добавлены только активные пользователи
"end_of_work": "2023-01-01" # если пользователь уволен уже не работает, то он не будет добавлен в оргструткуру
},
],
"meta" : {
"next": 2 # следующая страница
}
}
Шаг 1. Реализуйте API
Реализуйте методы API, описанные выше.
Шаг 2. Включите синхронизацию
Чтобы сервис Sys-org-adapt начал обходить внешний источник данных о пользователях и организациях, необходимо включить синхронизацию в etcd:
etcdctl --endpoints [ХОСТ_ETCD]:[ПОРТ_ETCD] put /vars/services/sys_org_adapt/production/public/service/unit_tree_updater_enabled true
Пример команды:
etcdctl --endpoints etcd.im-etcd.svc.cluster.local:2379 put /vars/services/sys_org_adapt/production/public/service/unit_tree_updater_enabled true
Шаг 3. Включите дополнительные настройки (опционально)
Заполнение поля «О себе»
Чтобы выгружать значение поля «О себе» из внешнего источника оргструктуры в профиль пользователя VK Teams, необходимо:
-
В конфигурационном файле /usr/local/etc/nomail-1.conf добавить следующие строчки:
nomail.connector.additional.extra.fields.enabled "true" nomail.keycloak.additional.extra.fields organization,department,position,mobile nomail.keycloak.about.fields [$sys:organization](vkteams://miniapp/orgstructure/?unitId=$sys:organizationid)\n[$sys:department](vkteams://miniapp/orgstructure/?unitId=$sys:departmentid)\n$sys:position\n$sys:syslink\n\nРуководитель:\n[$sys:leadfullname]({https://u.{DOMAIN}/}/profile/$sys:leademail) nomail.connector.url {адрес org-nomail-adapt} nomail.connector.method query nomail.keycloak.compound.about.connectors.enabled true
-
Перезапустить сервис Nomail:
Отображение номера телефона отдельным полем
Чтобы номер телефона пользователя отображался в карточке контакта отдельным полем, необходимо:
-
В конфигурационных файлах сервиса Front
/usr/local/etc/front-1.conf
/usr/local/etc/front-2.conf
/usr/local/etc/front-3.conf
/usr/local/etc/front-4.conf
указать для поля userInfo.phone_from_prof_st значение true:
-
Перезапустить сервис Front:
-
В конфигурационном файле сервиса Nomail /usr/local/etc/nomail-1.conf указать для поля user.phone_filed значение "mobile":
-
Перезапустить сервис Nomail:
-
В конфигурационный файл сервиса Prof-st /usr/local/etc/prof-st-1.conf добавить следующие строчки:
-
Перезапустить сервис Prof-st:
-
В конфигурационный файл сервиса Feedog /oap/feedog_srv_post.tcl добавить строчку:
-
Перезапустить сервис Feedog :
Дата создания документа: 18.04.2024 г.