VK WorkSpace On-Premise logo
Помощь
Обновлена 20 октября 2026 г. в 14:33

Интеграция с Супераппом

Назначение документа

В документе описана настройка интеграции Диска VK WorkSpace версии не ниже 1.18 и Супераппа VK WorkSpace версии не ниже 24.1.

Документ предназначен для использования администраторами организации.

Предварительные требования

Для настройки интеграции Диска и Супераппа VK WorkSpace вам потребуется:

  1. Доступ к веб-интерфейсу установщика Диска VK WorkSpace http://<адрес_сервера_Диска_VK_WorkSpace>:8888.

  2. Доступ к виртуальной машине, на которой установлен Суперапп VK WorkSpace.

Настройки на стороне Супераппа VK WorkSpace

Шаг 1. Создайте бот для календаря

  1. В списке контактов в Мессенджере найдите @Metabot.

  2. Отправьте в чат сообщение /start.

  3. Нажмите Создать нового бота.

  4. Введите ник для нового бота. Он должен заканчиваться на bot, например vkcalendarbot.

  5. Сохраните полученные ID и токен.

  6. Разрешите боту отправлять сообщение первым, выполнив на сервере Супераппа VK WorkSpace команду:

echo "row_add bots_can_write_first <botID>" | nc stdb.vkteams.svc.cluster.local. 4020

где — ID созданного бота для календаря.

В случае распределенной инсталляции выполните команду на сервере в состоянии main. Найти такой сервер можно при помощи команды ic map stdb на любом сервере.

Шаг 2. Создайте почтовый бот

  1. Используя чат с @Metabot, создайте почтовый бот mailbot по аналогии с ботом для календаря.

  2. Сохраните его ID и токен.

  3. Разрешите боту отправлять сообщение первым, выполнив на сервере Супераппа VK WorkSpace команды:

echo "row_add bots_can_write_first <botID>" | nc stdb.vkteams.svc.cluster.local. 4020

где — ID созданного почтового бота.

  1. Разрешите боту отправлять DeepLink:

  2. На сервере Супераппа VK WorkSpace проверьте наличие таблицы:

```bash
echo "table_get bots_can_send_deeplink" | nc stdb.vkteams.svc.cluster.local. 4020```Если таблицы нет, создайте ее:```bashecho "stdb_table_add bots_can_send_deeplink sn@string" | nc stdb.vkteams.svc.cluster.local. 4020```

4. Добавьте бота в таблицу:

```bashecho "row_add bots_can_send_deeplink <botId>" | nc stdb.vkteams.svc.cluster.local. 4020```где <botID> — ID созданного почтового бота.

Шаг 3. Создайте токен biz-admin

  1. Перейдите в конфигурационный файл /usr/local/etc/import_prismtokens.yaml:
vim /usr/local/etc/import_prismtokens.yaml
  1. В секции prismtokens создайте секцию biz-admin, как в примере ниже, и задайте токен в поле key:
prismtokens: biz-admin:  methods:   - _any  ips: // список ip-адресов гипервизоров-фронтов Диска VK WorkSpace   - 192.0.2.1    - 192.0.2.2   akes: true  key: <your_token>
  1. Чтобы изменения вступили в силу, выполните команду:
/usr/local/bin/import_prismtokens.py -f /usr/local/etc/import_prismtokens.yaml

При распределенной инсталляции Супераппа VK WorkSpace команда выполняется на одном из серверов.

Шаг 4. Откройте доступ в окружение администратора

  1. Перейдите в файл конфигурации /usr/local/nginx-im/confv2/conf.d/myteam-admin_allow_hosts.inc:
vim /usr/local/nginx-im/confv2/conf.d/myteam-admin_allow_hosts.inc
  1. В поле allow вместо <real.mail.ip> укажите список IP-адресов гипервизоров-фронтов Диска VK WorkSpace:
allow 192.0.2.1 192.0.2.2;
  1. Чтобы изменения вступили в силу, выполните команду:
nginx.sh reload

Шаг 5. Добавьте CN-группы администраторов

  1. Перейдите в конфигурационный файл /usr/share/tarantool/extra_config/nomail-1/nomail-1_extra_conf.lua
vim /usr/share/tarantool/extra_config/nomail-1/nomail-1_extra_conf.lua
  1. В поле myteam-admin укажите CN-группы администраторов:
cfg.otp_permission.apps = {  ['myteam-client'] = '*',  ['download_ios_application'] = '*',  ['myteam-admin'] = {    'myteam-admin'  },}
  1. Чтобы изменения вступили в силу, выполните команду:
echo "dofile('/usr/share/tarantool/extra_config/nomail-1/nomail-1_extra_conf.lua')" | tarantoolctl enter nomail-1
  1. Проверить актуальные настройки можно командой:
echo "cfg.otp_permission.apps" | tarantoolctl enter nomail-1

Шаг 6. Создайте учетную запись с доступом в окружение администратора

  1. В любой удобной папке создайте файл users.yaml и заполните его данными учетной записи (в примере ниже это admin@admin.qdit):
users:   admin@admin.qdit:     email: admin@admin.qdit    firstName: admin    lastName: admin    attributes:             memberOf: ["myteam-admin"] #член группы "myteam-admin" с доступом в окружение администратора

где memberOf: — название группы пользователей с доступом в окружение администратора.

Объект users имеет тип Hash. При использовании расширенного формата yaml-файла username должен совпадать с email. В примере выше это admin@admin.qdit.

  1. После создания users.yaml выполните в консоли команду:
users.py --cmd add -c users.yaml
  1. Получите adminSn и adminRid созданной учетной записи:
echo "show admin@admin.qdit" | nc 127.1 4281

Значения rid и sn будут в выводе команды:

Интеграция с Супераппом

Шаг 7. Отредактируйте секцию mpop в файле myteam-admin.yml

  1. Перейдите в файл конфигурации myteam-admin.yml:
cd /usr/local/etc/k8s/helmwave/vim projects/godmod/values/myteam-admin.yml
  1. В секции mpop укажите домен Диска VK WorkSpace, sn (adminSn) и rid (adminRid), полученные на предыдущем шаге:
mpop: enable: true swa_host: http://swa.<домен Диска VK WorkSpace> swa_url: /int/CheckSession adminSn: admin@admin.qdit // указать значение adminSn, полученное на предыдущем шаге   adminRid: 0:100504 // указать значение adminRid, полученное на предыдущем шаге
  1. Чтобы изменения вступили в силу, поочередно выполните команды:

Для инсталляции на 1 виртуальную машину:

helm delete myteam-admin -n vkteams export HELMWAVE_USE_LOCAL_REPO_CACHE=1helmwave up --build --tpl helmwave.yml.tpl --yml --templater gomplate -t myteam-admin

Для распределенной инсталляции Супераппа VK WorkSpace версии 23.8 и выше выполните команду на одном из первых трех серверов:

im_deployer --helmwave --update --hw-project godmod --hw-once
  1. Для проверки изменений выполните команду:
kubectl exec -n vkteams -i myteam-admin-<Pod ID> -c myteam-admin -- cat /usr/local/etc/config.yaml

Актуальное значение pod ID можно получить с помощью команды:

kubectl get pods -A | grep myteam-admin

Шаг 8. Настройте сервис Stentor

  1. Перейдите в конфигурационный файл /usr/local/nginx-im/confv2/conf.d/stentor.conf:
vim /usr/local/nginx-im/confv2/conf.d/stentor.conf
  1. В поле allow вместо <real.mail.ip> укажите IP-адреса гипервизоров-фронтов Диска:
location / {  include /usr/local/nginx-im/confv2/conf.d/myteam-admin_allow_hosts.inc;  proxy_pass http://$upstream_stentor$uri$is_args$args;    allow 127.0.0.0/8;  allow 10.32.0.0/16;  allow <real.mail.ip>; // вместо <real.mail.ip> укажите IP-адреса гипервизоров-фронтов Диска    deny all;}

Шаг 9. Настройте CORS

  1. Перейдите в конфигурационный файл /usr/local/nginx-im/confv2/nginx.conf
vim /usr/local/nginx-im/confv2/nginx.conf
  1. Перед комментарием «# static global maps and geos» добавьте новую секцию map httporiginhttp_origin cors_enabled:
map $http_origin $cors_enabled {  ~webim\.<домен_Мессенджер_и_ВКС>$ 1;  ~calendarx\.<домен_Диска>$ 1;  ~calendarmsg\.<домен_Диска>$ 1;  ~calendartouch\.<домен_Диска>$ 1;  ~e\.<домен_Диска>$ 1;  ~cloud\.<домен_Диска>$ 1;  ~dl\.<домен_Мессенджер_и_ВКС>$ 1;  default 0;}# static global maps and geos
  1. В секции variables geos from hiera допишите:
# variables geos from hiera  geo $realip_remote_addr $allow_biz_grafana {    127.0.0.1 1;    10.32.0.0/16 1;    <real.mail.ip>/32 1; // вместо <real.mail.ip> указать IP-адреса гипервизоров-фронтов Диска VK WorkSpace    default 0;  }

Пример заполнения файла:

Интеграция с Супераппом Интеграция с Супераппом
  1. Чтобы изменения вступили в силу, выполните команду:
nginx.sh reload

Шаг 10. Настройте отображение сервисов в клиентском приложении Супераппа VK WorkSpace

  1. В конфигурационном файле /usr/local/nginx-im/html/myteam/myteam-config.json добавьте в секцию templates-urls:
"templates-urls": {  "mail": "https://e.<домен Диска VK WorkSpace>.ru/api/v1/user/webauth/vkteams",  "cloud": "https://cloud.<домен Диска VK WorkSpace>.ru",  "calendar": "https://calendarx.<домен Диска VK WorkSpace>.ru",  "mobile_calendar_main_url": "https://calendartouch.<домен Диска VK WorkSpace>.ru",  "mobile_calendar_create_event_url": "https://calendartouch.<домен Диска VK WorkSpace>.ru/create"},
  1. Добавьте в секцию mini-apps:
"mini-apps": {  "calendar-enabled": true},
  1. Посмотрите значения для клиентских приложений:

3.1. Перейдите в Установщик VK WorkSpace по адресу http://<адрес сервера Диска VK WorkSpace>:8888.

3.2. Найдите IP-адрес сервера Диска VK WorkSpace: первая строчка с тегами "standalone", "ansible".

3.3. Подключитесь по SSH к серверу Диска VK WorkSpace по адресу или IP:

  • SSH <адрес сервера Диска VK WorkSpace>
  • или SSH <IP сервера Диска VK WorkSpace>

3.4. Подключитесь к БД-контейнеру и получите все нужные данные:

docker exec -it swapg1 psql -d oauth -U postgres -c "select id, name, secret, url from client where name in ('VK Teams Native Calendar Plugin Android','VK Teams Native Calendar Plugin iOS','VK Teams Native Mail Plugin Android','VK Teams Native Mail Plugin iOS')"

3.5. Найдите среди полей id, secret и url. Пример вывода команды:

id

name

url

secret

<id из 32 символов>

VK Teams Native Mail Plugin Android

https://localhost/

<secret из 32 символов>

<id из 32 символов>

VK Teams Native Calendar Plugin iOS

mr-calendar-widget://

<secret из 32 символов>

<id из 32 символов>

VK Teams Native Calendar Plugin Android

mr-calendar-widget://

<secret из 32 символов>

<id из 32 символов>

VK Teams Native Mail Plugin iOS

https://localhost/

<secret из 32 символов>

Как заполнять значения:

Диск iOS:

  • <клиентский ID миниаппа Диска iOS> - id для name = "VK Teams Native Mail Plugin iOS"
  • <клиентский Secret миниаппа Диска iOS> - secret для name = "VK Teams Native Mail Plugin iOS"
  • <клиентский Redirect URL миниаппа Диска iOS> - url для name = "VK Teams Native Mail Plugin iOS"

Календарь iOS:

  • <клиентский ID миниаппа Календарь iOS> - id для name = "VK Teams Native Calendar Plugin iOS"
  • <клиентский Secret миниаппа Календарь iOS> - secret для name = "VK Teams Native Calendar Plugin iOS"
  • <клиентский Redirect URL миниаппа Календарь iOS> - url для name = "VK Teams Native Calendar Plugin iOS"

Диск Android:

  • <клиентский ID миниаппа Диска Android> - id для name = "VK Teams Native Mail Plugin Android"
  • <клиентский Secret миниаппа Диска Android> - secret для name = "VK Teams Native Mail Plugin Android"
  • <клиентский Redirect URL миниаппа Диска Android> - url для name = "VK Teams Native Mail Plugin Android"

Календарь Android:

  • <клиентский ID миниаппа Календарь Android> - id для name = "VK Teams Native Calendar Plugin Android"
  1. Добавьте в секцию services" – “config:
"services": {  "config": {   "calendar-desktop": {    "url": "https://calendarmsg.<домен Диска VK WorkSpace>.ru?nolanding=1",    "is-public": false,    "needs_auth": true,    "needs_offline_bundle": true,        "template-domains": ["calendarx.<домен Диска VK WorkSpace>.ru"],    "bundle": {     "all-hosts": {      "root-url": "https://calendar.<домен Диска VK WorkSpace>.ru/",      "touch-root-url": "https://calendartouch.<домен Диска VK WorkSpace>.ru/",      "auth-url": "https://auth.<домен Диска VK WorkSpace>.ru/cgi-bin/auth",      "base-static-url": "https://imgs.<домен Диска VK WorkSpace>.ru/",      "avatar-url": "https://filin.<домен Диска VK WorkSpace>.ru/pic?email=",      "email-url": "e.<домен Диска VK WorkSpace>.ru",      "account-url": "https://account.<домен Диска VK WorkSpace>.ru",      "oauth-url": "https://corsapi.<домен для облачных хранилищ>.ru",      "oauth-host": "https://o2.<домен Диска VK WorkSpace>.ru",      "myteam-api-url": "https://webim.<домен VK Teams>.ru"     },     "base-static-img-url": "https://imgs.<домен Диска VK WorkSpace>.ru/static.promo/calendar/",     "base-static-imgs2-url": "https://imgs.<домен Диска VK WorkSpace>.ru/pkgs/static/calendar/",     "cloud-public-url": "https://cloud.<домен Диска VK WorkSpace>.ru/public",     "cloud-thumb-url": "https://thumb.cloud.<домен Диска VK WorkSpace>.ru",     "cloud-url": "https://openapi.cloud.<домен Диска VK WorkSpace>.ru",     "dns-prefetch-domains": "imgs.<домен Диска VK WorkSpace>.ru",     "fonts-path": "https://imgs.<домен Диска VK WorkSpace>.ru/pkgs/static/fonts/v1.100",     "foundation-calls-locations": "calls[.]mail[.]ru,meet[.]megafon[.]ru,ivcs[.]hi-tech[.]org,meet[.]google[.]com,hangouts[.]google[.]com,saas[.]videomost[.]com,discord[.]gg,join[.]skype[.]com,(([a-z0-9-]+)[.])?zoom[.]us,(([a-z0-9-]+)[.])?ktalk[.]ru,call[.]agent[.]mail[.]ru,call[.]icq[.]com,call[.]myteam[.]mail[.]ru,call[.]internal[.]myteam[.]mail[.]ru,next[.]granatum[.]solutions[.]/register-course,telemost[.]yandex[.]ru,teams[.]microsoft[.]com/l/meetup-join,vk[.]com/call,meet[.]jit[.]si,vks[.]sfr[.]gov[.]ru,call[.]<домен Супераппа VK WorkSpace>",     "portal-url": "https://portal.<домен Диска VK WorkSpace>.ru",     "preconnect-domains": "imgs.<домен Диска VK WorkSpace>.ru",     "sharing-calendar-with-no-auth-url": "https://shared.calendarx.<домен Диска VK WorkSpace>.ru",     "static-img-url": "https://imgs.<домен Диска VK WorkSpace>.ru/calendarx/",     "staticHost": "https://imgs.<домен Диска VK WorkSpace>.ru",     "staticTestHost": "https://imgs.<домен Диска VK WorkSpace>.ru",     "themes-paths-v4": {       "default": {         "base": "https://imgs.<домен Диска VK WorkSpace>.rupkgs/themes.outsource/1.18.0",         "js": "https://imgs.<домен Диска VK WorkSpace>.rupkgs/themes.outsource/1.18.0/ru_RU"       }     }    }   },   "cloud-desktop": {    "url": "https://cloud.<домен Диска VK WorkSpace>.ru?wv=1&need_silent=0",    "is-public": false,    "needs_auth": true,    "needs_offline_bundle": false   },   "mail-desktop": {    "url": "https://e.<домен Диска VK WorkSpace>.ru/?wv=1",    "compose_url": "https://e.<домен Диска VK WorkSpace>.ru/compose/?wv=1",    "external": false,    "is-public": false,    "needs_auth": true,    "needs_offline_bundle": true,    "bundle": {     "amp-proxy-host": "https://ampproxy.<домен для облачных хранилищ>.ru/",     "ab-calendarUrl": "//calendarx.<домен Диска VK WorkSpace>.ru",     "ab-composeUrl": "https://e.<домен Диска VK WorkSpace>.ru/compose",     "ab-export-base-url": "https://e.<домен Диска VK WorkSpace>.ru",     "ab-readMessageUrl": "https://e.<домен Диска VK WorkSpace>.ru/search/${folder}/${thread}/${message}/?q_from=${email}&q_to=${activeEmail}&x-email=${activeEmail}",     "ab-searchAttachesToMyselfUrl": "https://e.<домен Диска VK WorkSpace>.ru/search/?q_from=${email}&q_to=${activeEmail}&q_attach=1&q_folder=500000&x-email=${activeEmail}",     "ab-searchAttachesUrl": "https://e.<домен Диска VK WorkSpace>.ru/search/?q_from=${email}&q_to=${activeEmail}&q_attach=1&x-email=${activeEmail}",     "ab-searchMessagesToMyselfUrl": "https://e.<домен Диска VK WorkSpace>.ru/search/?q_from=${email}&q_to=${activeEmail}&q_folder=500000&x-email=${activeEmail}",     "ab-searchMessagesUrl": "https://e.<домен Диска VK WorkSpace>.ru/search/?q_from=${email}&q_to=${activeEmail}&x-email=${activeEmail}",     "ab-viewAttachUrl": "https://e.<домен Диска VK WorkSpace>.ru/attach/${message}/${part}/?folder-id=${folder}&x-email=${activeEmail}",     "avatar-base-url": "https://filin.<домен Диска VK WorkSpace>.ru",     "avatar-filin-host": "https://filin.<домен Диска VK WorkSpace>.ru/pic",     "all-hosts": {      "adUrl": "https://ad.<домен Диска VK WorkSpace>.ru",      "ampIframePath": "//imgs.<домен Диска VK WorkSpace>.ru/pkgs/amp.viewer/2.5.5-b2b.2/iframe.html",      "ampRedirectUrl": "https://e.<домен Диска VK WorkSpace>.ru/inbox",      "authUrl": "https://auth.<домен Диска VK WorkSpace>.ru",      "avatarUrl": "https://filin.<домен Диска VK WorkSpace>.ru",      "calendarUrl": "https://calendarx.<домен Диска VK WorkSpace>.ru/",      "cdnPackagesUrl": "https://imgs.<домен Диска VK WorkSpace>.ru/pkgs",      "cloudHomeUrl": "https://cloud.<домен Диска VK WorkSpace>.ru/home",      "cloudOpenApiUrl": "https://openapi.cloud.<домен Диска VK WorkSpace>.ru/api/v1/",      "detectHttpUrl": "https://imgs.<домен Диска VK WorkSpace>.ru/detect_http_version.js",      "hbPackagesUrl": "https://imgs.<домен Диска VK WorkSpace>.ru/pkgs",      "helpUrl": "https://help.<домен Диска VK WorkSpace>.ru",      "imgRadarUrl": "https://stat.radar.<домен Диска VK WorkSpace>.ru",      "loginUrl": "https://account.<домен Диска VK WorkSpace>.ru/login",      "mailAttachPreviewHost": "apf.<домен Диска VK WorkSpace>.ru",      "notificationsUrl": "https://e.<домен Диска VK WorkSpace>.ru/settings/general#notifications",      "packagesUrl": "https://imgs.<домен Диска VK WorkSpace>.ru",      "radarUrl": "https://xray.<домен Диска VK WorkSpace>.ru",      "signatureUrl": "https://e.<домен Диска VK WorkSpace>.ru/settings/general#signature",      "singleDomainName": "<домен Диска VK WorkSpace>.ru",      "staticUrl": "https://imgs.<домен Диска VK WorkSpace>.ru/octavius",      "vktAuthUrl": "https://e.<домен Диска VK WorkSpace>.ru/api/v1/user/webauth/vkteams",      "widgetXCalendarUrl": "https://calendarx.<домен Диска VK WorkSpace>.ru/",      "xCalendarUrl": "https://calendarx.<домен Диска VK WorkSpace>.ru/",      "zipViewUrl": "//zipview.<домен Диска VK WorkSpace>.ru"     },     "async_notify": "e.<домен Диска VK WorkSpace>.ru/api-proxy/notifier/v2/ws|240000|5|10000|300000",     "calendar-graphql-api-url": "https://corsapi.<домен для облачных хранилищ>.ru/calendar/graphql",     "change-expired-password-url": "https://e.<домен Диска VK WorkSpace>.ru/settings/general?change_password=1",     "custom-themes-previews-paths": {      "default": "https://imgs.<домен Диска VK WorkSpace>.ru/pkgs/static/themes-previews/vk_wm/default/preview",      "t5000": "https://imgs.<домен Диска VK WorkSpace>.ru/pkgs/static/themes-previews/vk_wm/t5000/preview",      "t6000": "https://imgs.<домен Диска VK WorkSpace>.ru/pkgs/static/themes-previews/vk_wm/t6000/preview"     },     "cloud-host": "cloud.<домен Диска VK WorkSpace>.ru",     "exp-cloud-viewer-host": "cloud.<домен Диска VK WorkSpace>.ru",     "folder-password-captcha-url": "https://c.<домен Диска VK WorkSpace>.ru/c/0",     "forgot-password-url": "https://e.<домен Диска VK WorkSpace>.ru/settings/folders",     "mailAttachPreviewHost": "apf.<домен Диска VK WorkSpace>.ru",     "messages-attaches-blobcloud-path": "//blobcloud.e.<домен Диска VK WorkSpace>.ru/upload/",     "mobile-addressbook-url": "https://e.<домен Диска VK WorkSpace>.ru/addressbook",     "oauth_host": "https://o2.<домен Диска VK WorkSpace>.ru",     "settings-url": "https://e.<домен Диска VK WorkSpace>.ru/settings/?octaviusMode=1",     "singleDomainName": "<домен Диска VK WorkSpace>.ru",     "themes-paths-v4": {      "default": {       "base": "https://imgs.<домен Диска VK WorkSpace>.ru/pkgs/themes.outsource/2.0.8",       "js": "https://imgs.<домен Диска VK WorkSpace>.ru/pkgs/themes.outsource/2.0.8/ru_RU"      }     },     "xCalendarUrl": "https://calendarx.<домен Диска VK WorkSpace>.ru/",     "clicker-whitelist-hosts": "<домен Диска VK WorkSpace>.ru,e.<домен Диска VK WorkSpace>.ru,account.<домен Диска VK WorkSpace>.ru,id.<домен Диска VK WorkSpace>.ru,cloud.<домен Диска VK WorkSpace>.ru,calendarx.<домен Диска VK WorkSpace>.ru,calendar.<домен Диска VK WorkSpace>.ru,calls.<домен Диска VK WorkSpace>.ru,sharing-calendars.<домен Диска VK WorkSpace>.ru,mailer.<домен Диска VK WorkSpace>.ru,sharing.<домен Диска VK WorkSpace>.ru,miniapp",     "enable-vkteams-call": false,     "cache_preload_throttle_ms": 300000,     "enable-aimsid-sso": true    }   },   "orgstructure": { // добавьте эту секцию, если пользуетесь функциональностью структуры организаций    "external": false,    "needs_auth": true,    "new": true,    "url": "https://webim.<url-dark-domain>/webapps/orgstructure",    "url-dark": "https://webim.<vkt-domain>/webapps/orgstructure"   },   "auth":{    "o2host": "https://o2.<домен Диска VK WorkSpace>.ru/",    "ssohost": "https://auth.<домен Диска VK WorkSpace>.ru",    "email_request_host": "https://e.<домен Диска VK WorkSpace>.ru",    "aimsidhost": "https://e.<домен Диска VK WorkSpace>.ru"   },   "mail-ios":{       "main_api_host": "https://e.<домен Диска VK WorkSpace>.ru",       "oauth_host": "https://oauth.<домен Диска VK WorkSpace>.ru",       "push-me-host": "https://alt-push-me.<домен Диска VK WorkSpace>.ru",        "custom_mailto_host": "https://e.<домен Диска VK WorkSpace>.ru/compose/",       "avatar_host": "https://filin.<домен Диска VK WorkSpace>.ru/pic",       "auth_client_id": "<клиентский ID миниаппа Диска iOS>",       "auth_secret": "<клиентский Secret миниаппа Диска iOS>",       "auth_redirect_uri": "<клиентский Redirect URL миниаппа Диска iOS>",       "ssoauth_client_id": "<клиентский ID миниаппа Диска iOS>",       "sso_x_mobile_app_header": "e552fda2e6c711eaadc10242ac120002",       "onprem_config": "https://imgs.<домен Диска VK WorkSpace>.ru/pkgs/static/omicron/mail_ios_omicron.json"   },   "calendar-ios":{      "auth_client_id": "<клиентский ID миниаппа Календарь iOS>",      "auth_secret": "<клиентский Secret миниаппа Календарь iOS>",      "auth_redirect_uri": "<клиентский Redirect URL миниаппа Календарь iOS>",      "ssoauth_client_id": "<клиентский ID миниаппа Календарь iOS>",      "sso_x_mobile_app_header": "e552fda2e6c711eaadc10242ac120002",       "web-root-url": "https://calendar.<домен Диска VK WorkSpace>.ru/",      "web-oauth-url": "https://corsapi.<домен для облачных хранилищ>.ru",       "web-touch-root-url": "https://calendartouch.<домен Диска VK WorkSpace>.ru/",       "web-auth-url": "https://auth.<домен Диска VK WorkSpace>.ru/cgi-bin/auth",      "web-base-static-url": "https://imgs.<домен Диска VK WorkSpace>.ru/",       "web-avatar-url": "https://filin.<домен Диска VK WorkSpace>.ru/pic?email=",      "web-myteam-avatar-url": "https://ub.<домен Супераппа VK WorkSpace>.ru/api/v65",      "web-myteam-api-url": "https://u.<домен Супераппа VK WorkSpace>.ru/api/v65",      "graph-ql-host-url": "https://corsapi.<домен для облачных хранилищ>.ru/calendar/graphql",      "is-public": false,      "cloud-public-url": "https://cloud.<домен Диска VK WorkSpace>.ru/public",      "cloud-thumb-url": "https://thumb.cloud.<домен Диска VK WorkSpace>.ru",      "cloud-url": "https://openapi.cloud.<домен Диска VK WorkSpace>.ru",      "fonts-path": "https://imgs.<домен Диска VK WorkSpace>.ru/pkgs/static/fonts/v1.100",      "sharing-calendar-with-no-auth-url": "https://shared.calendarx.<домен Диска VK WorkSpace>.ru"   },   "mail-android":{      "calendar_for_client_id": "<клиентский ID миниаппа Календарь Android>",      "main_api_host": "https://e.<домен Диска VK WorkSpace>.ru",      "mail_to_host": "",      "onprem_config": "https://imgs.<домен Диска VK WorkSpace>.ru/pkgs/static/omicron/mail_android_omicron.json",      "files_host": "https://files.<домен Диска VK WorkSpace>.ru",      "avatar_host": "https://filin.<домен Диска VK WorkSpace>.ru/pic?",      "attach_preview_host": "https://apf.<домен Диска VK WorkSpace>.ru",      "attachments_url_host": "https://af.<домен Диска VK WorkSpace>.ru",      "avatar_host_filin": "https://filin.<домен Диска VK WorkSpace>.ru",      "auth_client_id": "<клиентский ID миниаппа Диска Android>",      "auth_secret": "<клиентский Secret миниаппа Диска Android>",      "auth_redirect_uri": "<клиентский Redirect URL миниаппа Диска Android>",      "ssoauth_client_id": "<клиентский ID миниаппа Диска Android>",      "sso_x_mobile_app_header": "e552fda2e6c711eaadc10242ac120002",      "is-public": true,      "needs_auth": true,      "url": "",      "oauth_host": "https://o2.<домен Диска VK WorkSpace>.ru/",      "sso_host": "https://auth.<домен Диска VK WorkSpace>.ru/",      "aimsid_host": "https://e.<домен Диска VK WorkSpace>.ru/",      "pusher_host": "push-me.<домен Диска VK WorkSpace>.ru"   },   "calendar-android":{      "calendar_for_client_id": "<клиентский ID миниаппа Календарь Android>",      "auth_client_id": "<клиентский ID миниаппа Диска Android>",      "auth_secret": "<клиентский Secret миниаппа Диска Android>",      "auth_redirect_uri": "<клиентский Redirect URL миниаппа Диска Android>",      "ssoauth_client_id": "<клиентский ID миниаппа Диска Android>",      "sso_x_mobile_app_header": "e552fda2e6c711eaadc10242ac120002",      "onprem_config": "https://imgs.<домен Диска VK WorkSpace>.ru/pkgs/static/omicron/mail_android_omicron.json",      "oauth_host": "https://o2.<домен Диска VK WorkSpace>.ru/",      "sso_host": "https://auth.<домен Диска VK WorkSpace>.ru/",      "aimsid_host": "https://e.<домен Диска VK WorkSpace>.ru/",      "pusher_host": "push-me.<домен Диска VK WorkSpace>.ru",      "is-public": true,      "needs_auth": true,      "url": "",      "calendar_url": "https://calendartouch.<домен Диска VK WorkSpace>.ru/",      "calendar_new_event_url": "https://calendartouch.<домен Диска VK WorkSpace>.ru/create",      "offline_intercept_request_urls": [        "https://calendartouch.<домен Диска VK WorkSpace>.ru/?",        "https://calendartouch.<домен Диска VK WorkSpace>.ru/create?",        "https://touch.calendar.<домен Диска VK WorkSpace>.ru/?",        "https://touch.calendar.<домен Диска VK WorkSpace>.ru/create?"      ],      "offline_critical_urls": [        ".*calendartouch.<домен Диска VK WorkSpace>.ru/\\?.*",        ".*calendartouch.<домен Диска VK WorkSpace>.ru/create\\?.*",        ".*touch.calendar.<домен Диска VK WorkSpace>.ru/\\?.*",        ".*touch.calendar.<домен Диска VK WorkSpace>.ru/create\\?.*",        ".*account.<домен Диска VK WorkSpace>.*"      ],      "bundle_update_enabled": false,      "bundle_update_auto": false,      "bundle_update_delay": 0,      "bundle_update_host_url": "",      "bundle_update_manifest_name": "asset-manifest.json",      "bundle_update_versions":{      },      "install_test_bundle_by_deeplink_enabled": true,      "install_test_bundle_by_deeplink_allowed_cdn_hosts": [        "calendarx.imgsmail.ru",        "static.mail.corpcloud.devmail.ru"      ],      "install_test_bundle_by_deeplink_auto_restart": true,      "open_message_deeplink_enabled": true,      "open_attach_deeplink_enabled": true,      "inner_domains_set_key": "calendar_portal",      "calendar_webview_inner_domains": [        ".*calendar\\.mail\\.ru",        "auth\\.mail\\.ru",        "account\\.mail\\.ru"      ],      "graph_ql_host_url": "https://corsapi.<домен для облачных хранилищ>.ru/calendar/graphql",      "prefetch_network_content_enabled": true,      "prefetch_network_content_timeout_hours": 168,      "calendar_urls": [        "https://calendartouch.<домен Диска VK WorkSpace>.ru/",        "https://calendar.mail.ru/",        "https://m.calendar.mail.ru/",        "https://alpha.calendar.mail.ru/",        "https://touch.calendar.mail.ru/",        "https://x.calendar.mail.ru/",        "https://calendar.mini-mail.ru/",        "https://m.calendar.mini-mail.ru/",        "https://alpha.calendar.mini-mail.ru/",        "https://touch.calendar.mini-mail.ru/",        "https://x.calendar.mini-mail.ru/"      ],      "fullscreen_url_action_param_regexp": [        "^/selectVacationDate/?$",        "^/congratulations/?$",        "^/create/?$"      ],      "fullscreen_url_path_regexp": [        "^/selectVacationDate/?$",        "^/congratulations/?$",        "^/create/?$"      ],      "network_checking_enabled": false,      "webview_disable_service_worker": true,      "webview_dark_theme_enabled": true,      "webview_compose_mail_urls": [        "https://e.mail.ru/compose"      ],      "url_schemes_for_webview": [        "https://telegram.me/",        "skype:",        "http://www.icq.com",        "http://www.icq.im",        "https://tamtam.chat/",        "https://play.google.com/",        "market://",        "https://calls.mail.ru/"      ],      "calendar_old_url_handler_enabled": true,      "calendar_web_url": "https://calendar.<домен Диска VK WorkSpace>.ru/",      "calendar_web_touch_url": "https://calendartouch.<домен Диска VK WorkSpace>.ru/",      "calendar_web_auth_url": "https://auth.<домен Диска VK WorkSpace>.ru/cgi-bin/auth",      "calendar_web_base_static_url": "https://img.<домен Диска VK WorkSpace>.ru",      "calendar_web_avatar_url": "https://filin.<домен Диска VK WorkSpace>.ru/pic?email",      "calendar_web_myteam_avatar_url": "https://ub.<домен Супераппа VK WorkSpace>.ru/api/v65",      "calendar_web_myteam_api_url": "https://u.<домен Супераппа VK WorkSpace>.ru/api/v65",      "calendar_web_oauth_url": "https://corsapi.<домен для облачных хранилищ>.ru",      "cloud_public_url": "https://cloud.<домен Диска VK WorkSpace>.ru/public",      "cloud_thumb_url": "https://thumb.cloud.<домен Диска VK WorkSpace>.ru",      "cloud_url": "https://openapi.cloud.<домен Диска VK WorkSpace>.ru",      "fonts_path": "https://imgs.<домен Диска VK WorkSpace>.ru/pkgs/static/fonts/v1.100",      "sharing_calendar_with_no_auth_url": "https://shared.calendarx.<домен Диска VK WorkSpace>.ru"   },   "mail": {      "external": false,      "mail-android-app-urlscheme": "mail-onpremise-auth://",      "mail-ios-app-urlscheme": "mailrumail-x-callback://",      "mail-mobile-url": "https://e.<домен Диска VK WorkSpace>.ru/inbox?wv=1",      "needs_auth": true,      "service-worker-enabled": true,      "is-public": false,      "url": "https://e.<домен Диска VK WorkSpace>.ru/inbox?wv=1", // для версии Диска VK WorkSpace 1.20.2 и выше      "url": "https://e.<домен Диска VK WorkSpace>.ru/api/v1/user/webauth/vkteams?wv=1", // для версии Диска VK WorkSpace 1.20 и ниже      "compose_url": "https://e.<домен Диска VK WorkSpace>.ru/compose?wv=1",      "use-native-instead": true   },   "calendar": {    "use-native-instead": true,    "external": false,    "is-public": false,    "needs_auth": true,    "template-domains": [     "calendarx.<домен Диска VK WorkSpace>.ru"    ],    "url": "https://calendarmsg.<домен Диска VK WorkSpace>.ru",    "mobile-url": "https://calendartouch.<домен Диска VK WorkSpace>.ru",    "mobile-create-event-url": "https://calendartouch.<домен Диска VK WorkSpace>.ru/create",    "touch-web-enabled": true,    "touch-web-url": "https://calendartouch.<домен Диска VK WorkSpace>.ru"   },   "cloud": {    "use-native-instead": true,    "external": false,    "needs_auth": true,    "is-public": false,    "template-domains": [     "cloud.<домен Диска VK WorkSpace>.ru"    ],    "url": "https://cloud.<домен Диска VK WorkSpace>.ru?wv=1&need_silent=0"   }  }}
  1. Добавьте в секцию disposition:
"disposition": {  "desktop": {    "leftbar": [      "tasks",      "calls",      "mail",      "calendar",      "cloud",       "orgstructure" // добавьте, если пользуетесь функциональностью структуры организаций    ]  },  "mobile": {    "services": [      "discover",      "cloud"    ],    "tabs": [      "calls",      "tasks",      "mail",            "calendar",            "orgstructure" // добавьте, если пользуетесь функциональностью структуры организаций    ]  }}
  1. При использовании нескольких доменов, добавьте секцию $switch-domain в config и выполните настройку сервисов для каждого из доменов (параметры для настройки сервисов приведены в пункте 4):
{  "services": {   "config": {    "$switch-domain": {     "example1.domain.ru": {      "auth": {       "o2host": "https://o2.<домен Диска VK WorkSpace>.ru/",       "ssohost": "https://auth.<домен Диска VK WorkSpace>.ru",       "email_request_host": "https://e.<домен Диска VK WorkSpace>.ru"      },      "mail": {},      "calendar": {},      "mail-android": {},      "calendar-android": {}     }     "example2.domain.ru": {      "auth": {       "o2host": "https://o2.<домен Диска VK WorkSpace>.ru/",       "ssohost": "https://auth.<домен Диска VK WorkSpace>.ru",       "email_request_host": "https://e.<домен Диска VK WorkSpace>.ru"      },      "mail": {},      "calendar": {},      "mail-android": {},      "calendar-android": {}     },     "default": {      "auth": {       "o2host": "https://o2.<домен Диска VK WorkSpace>.ru/",       "ssohost": "https://auth.<домен Диска VK WorkSpace>.ru",       "email_request_host": "https://e.<домен Диска VK WorkSpace>.ru"      },      "mail": {},      "calendar": {}    }   }  } }}
  1. Для инсталляции на одну виртуальную машину выполните команду:
HELMWAVE_USE_LOCAL_REPO_CACHE=true hwup -t godmod

Для кластерной инсталляции:

HELMWAVE_USE_LOCAL_REPO_CACHE=true HELMWAVE_ENV_NAME=cluster hwup -t godmod

Шаг 11. Пересоздайте pod админ-консоли

Перезапустите под в технологическое окно (может приводить к сбою в новых подключениях):

kubectl delete pods -n vkteams -l app=myteam-admin

Шаг 12. Настройте сервис Skywalker

  1. Получите access_token :

  2. Подключитесь по SSH к серверу Диска VK WorkSpace (к машине, где запущен onpremise-depoyer_linux в случае распределенной установки).

  3. Выполните команду:

```bash
grep -i webapi_vkt_token /home/deployer/main.yaml```<info>В команде используется директория /home/deployer/. Но если при установке Диска вы распаковали архив с дистрибутивом в другую директорию, укажите ее в команде.</info>

2. На сервере Супераппа VK WorkSpace выполните команды:

  1. В конфигурационном файле /usr/local/nginx-im/html/myteam/myteam-config.json включите флаг save-to-cloud-enabled:true.

  2. Для инсталляции на одну виртуальную машину выполните команду:
    shell HELMWAVE_USE_LOCAL_REPO_CACHE=true hwup -t godmod

Для кластерной инсталляции:
```shellHELMWAVE_USE_LOCAL_REPO_CACHE=true HELMWAVE_ENV_NAME=cluster hwup -t godmod```

3. Перезапустите под в технологическое окно (может приводить к сбою в новых подключениях):

```bashkubectl delete pods -n vkteams -l app=myteam-admin```

4. В файле vim /usr/local/go.files.icq.com/files.icq.com.config.yaml включите флаг show_cloud_file_status: true.

  1. Перезапустите службу:
```bash
systemctl restart gofiles_httpd```

6. Отредактируйте файл /usr/local/etc/k8s/helmwave/store/skywalker.yml:

```yamlcloud:  host: "cloud-serverside-api.<домен_Диска>"  timeout: 60s  upload_timeout: 1m  domain: "cloud.<домен_Диска>"  default_folder_to_save_file: "/Файлы мессенджера"  force_loader_url: "http://cloclo-int.<домен_Диска>/dupload"  access_token: "<webapi-token>"mail:  host: "serverside-api.<домен_Диска>"  timeout: 5s  ```

7. Включите Skywalker для вашего окружения. Перейдите в конфигурационный файл /usr/local/etc/k8s/helmwave/projects.yml и в секции disabled удалите skywalker:

```yamlenvs:  all:    projects:      disabled:        ...        skywalker: # удалите строчку        ...```

7. Примените изменения.

Для инсталляции на одну виртуальную машину выполните команды:```bashexport HELMWAVE_USE_LOCAL_REPO_CACHE=1helmwave up --build --tpl helmwave.yml.tpl --yml --templater gomplate -t skywalker```Для распределенной инсталляции Супераппа VK WorkSpace версии 23.8 и выше выполните команду на одном из первых трех серверов:```bashim_deployer --helmwave --update --hw-project skywalker --hw-once```

Настройки на стороне Диска VK WorkSpace

Все описанные ниже действия выполняются в веб-интерфейсе установщика Диска VK WorkSpace:

http://<адрес_сервера_Диска_VK_WorkSpace>:8888

Шаг 1. Включите интеграцию с Супераппом VK WorkSpace

Если при первичной установке Диска VK WorkSpace не были включены компоненты интеграции с Супераппом VK WorkSpace, их необходимо включить.

  1. Нажмите на кнопку Интеграция с Супераппом в правом верхнем углу, выберите пункт Продукты.
  2. Включите следующие компоненты:
  • Интеграция с VK Teams.
  • Календарь: бот календаря для VK Teams.
  • Бот новых почтовых сообщений для VK Teams.
  1. Нажмите на кнопку Сохранить.
  2. Перейдите на главную страницу веб-интерфейса установщика.
  3. Сгенерируйте новые контейнеры:
  • Если Диск VK WorkSpace установлен на одной машине, нажмите на кнопку Сгенерировать автоматически.

  • В случае распределенной установки:

    1. Нажмите **Добавить **→ Несколько контейнеров.
    2. Установите фильтр Установлено не более 0.
    3. Распределите недостающие контейнеры по гипервизорам с учетом дублируемости.
    4. Нажмите на кнопку Добавить.

Шаг 2. Укажите настройки интеграции веб-интерфейсе установщика Диска

  1. В веб-интерфейсе установщика перейдите на вкладку Настройки.
  2. Выберите Интеграции→ Интеграция с VK Teams.
  3. Включите флаг Использовать SSL шифрование.
  4. Заполните все поля:

Название поля

Значение

Адрес API VK Teams для добавления/удаления пользователей

stentor.<домен Супераппа VK WorkSpace>.ru

Адрес API управления VK Teams

admin.<домен Супераппа VK WorkSpace>

Адрес API бинарных данных VK Teams

ub.<домен Супераппа VK WorkSpace>

Адрес клиентского API VK Teams

u.<домен Супераппа VK WorkSpace>

Адрес веб-версии VK Teams

webim.<домен Супераппа VK WorkSpace>

Адрес Mini App API

files-n.<домен Супераппа VK WorkSpace>

Адрес API звонков (ссылок на звонок)

call.<домен Супераппа VK WorkSpace>

Адрес сервера документации VK Teams

Укажите адрес портала организации, по которому доступно клиентское приложение Супераппа VK WorkSpace и инструкции к нему, например: dl.<домен VK Teams>

Адрес сервера VK Teams, где находится Grafana

Для версии Супераппа VK WorkSpace 24.2 и ниже: stentor.<домен Супераппа VK WorkSpace>/myteam-grafana Для версий Супераппа VK WorkSpace 24.3 и 24.9: stentor.<домен Супераппа VK WorkSpace>/grafana Начиная с версии Супераппа VK WorkSpace 25.2: stentor.<домен Супераппа VK WorkSpace>/dashboards

Путь URL-адреса для Grafana в домене панели администрирования

myteam-grafana

Токен VK Teams для получения структуры организаций в панели администрирования

Значение key из шага 3 «Создайте токен biz-admin»

Пользователь ClickHouse VK Teams

biz

Пароль пользователя ClickHouse VK Teams

Чтобы получить пароль, выполните команду: cat /usr/local/etc/k8s/helmwave/projects/godmod/secrets/clickhouse-metric-cluster.yml \| grep password: \| cut -d':' -f2 \| sed 's/ //'

Список IP адресов/подсетей VK Teams (для ACL в SWA)

<IP-адрес сервера Супераппа VK WorkSpace>

Интеграция с Супераппом

Шаг 3. Импортируйте сертификаты

Подключение к компонентам Супераппа VK WorkSpace происходит по SSL, поэтому может возникать ошибка с недоверием к сертификату. Поскольку проверка SSL происходит при развертывании контейнеров calendarbot, то установить их вручную нельзя. Ошибка недоверия сертификатов происходит и для контейнеров mailbot, mailapi, calendarapi.

Чтобы избежать проблем с сертификатами выполните следующие действия:

  1. Подключитесь к виртуальным машинам-фронтам, на которых развернуты контейнеры calendarbot-api*, calendarbot-processor*, mailbot*, mailapi*, calendarapi*.

  2. Создайте директории certs для контейнеров:

mkdir /opt/mailOnPremise/dockerVolumes/calendarbot-api1/certs mkdir /opt/mailOnPremise/dockerVolumes/calendarbot-processor1/certs mkdir /opt/mailOnPremise/dockerVolumes/mailbot1/certs mkdir /opt/mailOnPremise/dockerVolumes/mailapi1/certs mkdir /opt/mailOnPremise/dockerVolumes/calendarapi1/certs
  1. Скопируйте подготовленные заранее выпускающий и корневой сертификаты (только в формате .crt):
cp <your_cert.crt> /opt/mailOnPremise/dockerVolumes/calendarbot-api<номер_контейнера>/certs/cp <your_cert.crt> /opt/mailOnPremise/dockerVolumes/calendarbot-processor<номер_контейнера>/certs/cp <your_cert.crt> /opt/mailOnPremise/dockerVolumes/mailbot<номер_контейнера>/certs/cp <your_cert.crt> /opt/mailOnPremise/dockerVolumes/mailapi<номер_контейнера>/certs/cp <your_cert.crt> /opt/mailOnPremise/dockerVolumes/calendarapi<номер_контейнера>/certs/
  1. Создайте файл custom_roles.yaml:
nano /home/deployer/custom_roles.yaml
  1. Добавьте в файл:
calendarbot-api:  volumes:    - src: etc      dst: /usr/local/etc    - src: certs      dst: /etc/pki/ca-trust/source/anchors  command: bash -c "update-ca-trust extract && /usr/local/bin/calendarbot_api --config /usr/local/etc/calendar-bot-api.yaml"calendarbot-processor:  volumes:    - src: etc      dst: /usr/local/etc    - src: certs      dst: /etc/pki/ca-trust/source/anchors  command: bash -c "update-ca-trust extract && /usr/local/bin/calendarbot_processor --config /usr/local/etc/calendar-bot-processor.yaml"mailbot:  volumes:    - src: conf      dst: /usr/local/etc/    - src: certs      dst: /etc/pki/ca-trust/source/anchors  entrypoint: bash -c 'update-ca-trust extract; exec /usr/local/bin/mailbot -config /usr/local/etc/mailbot.yaml -log /dev/stdout'mailapi:  volumes:    - src: conf      dst: /usr/local/etc    - src: tmp      dst: /tmp    - src: log      dst: /var/log    - src: aestat      dst: /var/log/aestat    - src: static      dst: /usr/local/www    - src: entrypoint      dst: /entrypoint.d    - src: certs      dst: /etc/pki/ca-trust/source/anchors  command: bash -c "update-ca-trust extract && /entrypoint.d/mailapi.sh"calendarapi:  volumes:    - src: etc      dst: /usr/local/etc    - src: entrypoint      dst: /entrypoint.d    - src: certs      dst: /etc/pki/ca-trust/source/anchors
  1. В контейнере calendarapi, в файл /home/deployer/configs/calendar/calendarapi.sh добавьте команду для обновления сертификата:
update-ca-trust extract || true

Итоговый вид файла:

#!/bin/bashexport WAITING_DB_MYSQL=""export WAITING_DB_PGSQL="calendarpg"source /entrypoint.d/waiting_dbs.shupdate-ca-trust extract || trueexec $@
  1. Перезапустите установщик:
sudo systemctl restart deployer.service
  1. Остановите и удалите контейнеры calendarapi-envoy*:
docker stop calendarapi-envoy1docker rm calendarapi-envoy1
  1. Выполните шаг up_container в веб-интерфейсе установщика, для контейнеров: calendarbot-api*, calendarbot-processor*, mailbot*, mailapi*, calendarapi*.
  2. Запустите автоматическую установку.

Шаг 4. Заполните данные ботов в веб-интерфейсе установщика Диска

  1. В веб-интерфейсе установщика перейдите на вкладку Настройки.
  2. Выберите Интеграции → Боты для VK Teams.
  3. Включите флаг Использовать SSL-шифрование.
  4. Заполните поля:
Название поля
Значение
Адрес bot-api VK Teams
api.<домен VK Teams>
ID бота календаря VK Teams
ID бота, созданного на шаге 1 «Создайте бот для календаря»
Токен бота календаря VK Teams
token бота, созданного на шаге 1 «Создайте бот для календаря»
Токен бота новых почтовых сообщений VK Teams
token бота, созданного на шаге 2 «Создайте почтовый бот»

Интеграция с Супераппом

Шаг 5. Завершите настройку

  1. В веб-интерфейсе установщика перейдите на главную страницу веб-интерфейса установщика.
  2. Запустите автоматическую установку, нажав на кнопку Play Интеграция с Супераппом.

Технический писатель: Белова Ирина

Была ли статья полезна?