Перенос данных из Slack#

Вам доступен перенос данных из публичных каналов Slack в рабочее пространство Compass. Перед выгрузкой данных из Slack, вы можете открыть закрытые каналы, таким образом они тоже попадут в выгрузку и будут перенесены.

Перенос данных выполняется в три шага:

  • Шаг 1: Связка учётных записей.

  • Шаг 2: Выгрузка архива переписок из Slack.

  • Шаг 3: Загрузка архива на сервер и перенос данных.

Примечание

Специалисты Compass всегда готовы оказать помощь в процессе переноса данных из Slack. Напишите нам в пространстве поддержки On-premise, Telegram или на почту support@getcompass.ru, чтобы получить индивидуальную поддержку.

Шаг 1: Связка учётных записей#

Для подготовки к переносу данных важно убедиться, что все участники команды уже зарегистрированы в Compass на вашем сервере и корректно заполнили свои имена в личных профилях. После этого потребуется связать учётные данные профилей сотрудников в Compass и Slack, чтобы у всех перенесенных сообщений отображались корректные отправители. Сообщения тех пользователей, чьи учётные записи Compass и Slack не будут связаны, будут отображаться отправленными от лица уволенных системных пользователей.

Способ связки учётных записей зависит от того, остался ли у вашей команды доступ к Slack.

Если есть доступ к пространству Slack#

Если у вас сохраняется доступ к рабочему пространству Slack, попросите участников вашей команды скопировать свой ID в личном профиле Compass и вставить его в поле Phone профиля Slack. В поле не должно содержаться какой-либо посторонней информации кроме ID Compass. Когда все сотрудники заполнят свои ID Compass в Slack, экспортируйте архив, согласно инструкции в шаге 2.

Slack export bind user id.

Если доступа к пространству Slack нет#

Если доступ команды к пространству Slack ограничен, и вы ранее выгрузили архив, связь между учётными записями можно установить в уже выгруженном архиве.

Для этого откройте файл users.json, который расположен в корневой папке архива выгрузки.

Выполните команду в консоли на сервере, чтобы получить список всех зарегистрированных пользователей с их ID:

sudo python3 script/get_users.py

Последовательно скопируйте ID Compass каждого пользователя и укажите его в поле phone для каждого из зарегистрированных в Compass сотрудников:

"profile":{"title":"","phone":"+79999999999"...} -> "profile":{"title":"","phone":"160007"...}

Сохраните изменения в файле users.json.

Шаг 2: Выгрузка архива переписок из Slack#

Примечание

Если вы уже выгрузили чистовой архив из Slack, этот пункт можно пропустить.

Выгрузку из Slack может осуществлять владелец рабочего пространства или администратор, которому выданы такие права.

Для выгрузки потребуется открыть настройки пространства Slack. Нажмите на название вашего пространства в окне приложения или в веб-версии, далее выберите «Tools & settings» и в открывшемся окне нажмите на «Workspace settings». На этом шаге Slack перенаправит вас в веб-браузер.

Slack export step 1.

После открытия экрана «Settings & Permissions», нажмите на кнопку «Import/Export Data» и далее на название вкладки «Export».

Slack export step 2.

На странице экспорта остается выбрать временной промежуток, за который требуется экспорт сообщений. Для выгрузки всей доступной истории выберите пункт «Entire history». Важно учесть, что Slack ограничивает количество выгрузок данных. Как правило, в час можно сделать один экспорт. Поэтому лучше сразу убедиться в том, что при экспорте выбран корректный временной промежуток для выгрузки сообщений.

Slack export step 3.

Нажмите кнопку «Start Export», чтобы начать экспорт. Система оповестит вас о том, что экспорт находится в работе. По готовности вы получите письмо о том, что архив с экспортированными данными доступен для загрузки.

Нажмите на «Ready for download» в столбце Status, чтобы перейти к скачиванию архива.

Шаг 3: Загрузка архива на сервер и перенос данных#

В ходе переноса данных могут создаваться системные пользователи, необходимые для переноса сообщений от пользователей, которые состояли в вашем пространстве Slack, но не были зарегистрированы в пространстве Compass. В процессе переноса такие пользователи будут автоматически удалены из вашего пространства.

Предупреждение

Во время переноса данных рабочее пространство будет временно недоступно для использования, на него будет установлен анонс технических работ. Это нужно, чтобы активность пользователей не оказывала влияние на миграцию данных. После окончания переноса, анонс технических работ будет снят, и пространство станет доступно для пользователей.

Чтобы запустить процесс переноса, cоздайте на сервере папку, в которой будут храниться экспортированные данные из Slack. Перейдите в неё:

mkdir <название директории>

Загрузите архив в созданную папку. Пример загрузки файла на сервер с помощью утилиты scp:

scp C:\путь\к\файлу username@hostname:/путь/на/сервере/

# - C:\путь\к\файлу - путь к файлу на вашем компьютере Windows.
# Если используете MacOS или Linux, то путь к файлу на вашем компьютере будет вида /путь/к/файлу
# - username - ваше имя пользователя на сервере.
# - hostname - адрес сервера.
# - /путь/на/сервере/ - путь на сервере, куда вы хотите загрузить файл.

Распакуйте архив:

# Загрузка
sudo apt install unzip # Установка инструмента распаковки
unzip <название архива>.zip # Распаковка

# Распаковка архива если расширение 7zip
sudo apt install p7zip-full # Установка инструмента распаковки
p7zip -d <название архива>.7z # Распаковка

Создайте папку, в которую будут сгружаться промежуточные данные при миграции из Slack. Рекомендуем создать её в той же папке, из которой поднят Compass:

mkdir <название директории>

Перейдите в папку onpremise-installer (откуда поднято приложение). Запустите скрипт переноса данных, указав путь до папки промежуточных файлов в --manticore_mount и путь до папки с файлами выгрузки в --slack_export_workdir:

sudo python3 script/slack_migration.py --manticore_mount=/home/onpremise-installer/folder --slack_export_workdir=/home/slack
# где
# --manticore_mount=<полный путь до папки, в которую будут сгружаться промежуточные данные Slack> (из предыдущего шага)
# --slack_export_workdir=<полный путь до папки с экспортом Slack в разархивированном виде>

Запустите скрипт и следуйте инструкциям на экране. Время миграции данных зависит от объема данных в архиве и в особенности от суммарного объема файлов по ссылкам в архиве. Если Slack приостановил работу вашего рабочего пространства, при попытке загрузить файлы, будет отображаться неблокирующая ошибка.

После успешного завершения скрипта переноса анонс технических работ будет снят с пространства автоматически.

Когда вы ознакомитесь с итогами переноса, очистите временные контейнеры, созданные для проведения миграции.

Внимание

После удаления временных контейнеров, скрипт сброса данных миграции работать не будет. Поэтому удалять контейнеры следует только после того, как вы убедитесь что все данные перенесены корректно.

Для очистки временных контейнеров выполните команды:

sudo docker container rm compass-migration-exporter --force;
sudo docker container rm compass-migration-manticore --force;

Снятие анонса технических работ#

Если процесс переноса данных был прерван, и анонс технических работ не был снят с вашего рабочего пространства, выполните следующую команду, чтобы снять его вручную, и сделать пространство вновь доступным для пользователей:

sudo python3 script/disable_announcement.py --announcement-id=N # Где N - номер анонса

Номер анонса (announcement_id) можно найти:

  • в начале, после запуска скрипта миграции script/slack_migration.py --manticore_mount=<путь> --slack_export_workdir=<путь>;

  • после вывода ошибки в процессе миграции.

Сброс данных в случае ошибки импорта#

Если процесс импорта данных завершился неуспешно, вы можете скрыть импортированные чаты. При этом добавленные пользователи покинут все перенесенные чаты. Для этого выполните команду:

sudo python3 script/reset_slack_migration.py --manticore_mount=<полный путь до папки, куда будут сгружаться промежуточные данные Slack> --slack_export_workdir=<полный путь до папки с экспортом Slack в разархивированном виде> -v=compass -e=production

После сброса данных очистите временные контейнеры миграции, выполнив команды:

sudo docker container rm compass-migration-exporter --force;
sudo docker container rm compass-migration-manticore --force;

Для повторного запуска миграции данных необходимо создать новую папку, в которую будут сгружаться промежуточные данные Slack. Рекомендуем создать её в той же папке, из которой поднят Compass, выполнив команду:

mkdir <название директории>

После выполнения команды можно будет запустить повторный перенос, перейдя в папку из которой поднято приложение и запустив скрипт переноса.


Напишите нам в пространстве поддержки On-premise, Telegram или на почту support@getcompass.ru, чтобы получить индивидуальную демонстрацию функционала и помощь по вопросам интеграции мессенджера в вашей компании.