Перейти к содержанию

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

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

В инструкции описаны основные настройки клиентского приложения VK WorkSpace — Супераппа (ранее — VK Teams). Документ предназначен для использования администраторами организации.

Примечание

Ранее Суперапп VK WorkSpace назывался VK Teams, а также Myteam, что находит отражение в технических моментах (например, команды в консоли).

Включить мини-апп «Опросы»

Если мини-апп «Опросы» еще не установлен, его необходимо установить:

  1. Если в конфигурации инсталляции один экземпляра сервиса Nomail, пропустите данный шаг и перейдите к шагу 2.

    Если в конфигурации инсталляции существует более одного экземпляра сервиса Nomail, определите сервер на котором располагается необходимый экземпляр. Выполните скрипт instance_detect.sh на любом сервере в инсталляции:

    /usr/local/miniapp_deploy/instance_detect.sh
    

    В выводе команды будет необходимый сервер, в примере ниже это nomail.onpremise.nomail-1:

    d57ae511 in [0 ffffffff] 01 nomail.onpremise.nomail-1 alive
    
  2. Подключитесь к серверу из шага 1 по SHH.

  3. Авторизуйтесь под root-пользователем.

  4. Выполните скрипт установки мини-аппа опросов survey_deploy.sh:

    /usr/local/miniapp_deploy/survey_deploy.sh 
    

    Во время установки мини-аппа в консоли будет отображаться информация о пройденных этапах. В случае возникновения ошибки установки отобразится описание, какой этап не удалось выполнить. В случае успешной установки мини-аппа отобразится строка «All operations have been completed successfully. Check working miniapp!».

После того как мини-апп опросов установлен, управлять им можно в панели администратора VK WorkSpace (доступна при наличии интеграции с Почтой VK WorkSpace), см. документацию.

Запретить использование устаревших версий Супераппа

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

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

Чтобы установить запрет:

  1. В конфигурационном файле /usr/local/nginx-im/html/myteam/myteam-config.json в секции updates установите минимально поддерживаемую версию для каждой платформы:

     "min_supported_version": {
       "version": "10.6.0",
       "build": "528",
       "full_version": "10.6.0.528"
    

    где:

    • version — номер версии.

    • build — номер сборки. Если номер сборки неизвестен, допустимое значение — 0.

    • full_version — номер версии и номер сборки, разделенные точкой (full_version: version.build).

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

  2. В поле force_update_enabled установите запрет на использование устаревших версий клиентских приложений:

    "force_update_enabled": true
    

    где:

    • true — включает запрет на использование устаревших версий клиентских приложений.

    • false — выключает.

  3. Укажите в поле updates.customLandingUrl адрес dl-лендинга, с которого можно скачать обновление для клиентского приложения:

    "customLandingUrl": "https://dl.<your_domain>.ru",
    

    Если поле customLandingUrl не заполнено, пользователю будет предложено скачать обновление с apps.<platform>.url.

    Пример настройки запрета в myteam-config.json для всех платформ:

    "updates": {
        "customLandingUrl": "https://dl.<YOUR_DOMAIN>.ru",
        "android": {
          "min_supported_version": {
            "version": "10.6.0",
            "build": "528",
            "full_version": "10.6.0.528"
          },
          "force_update_enabled": true
        },
        "ios": {
          "min_supported_version": {
            "version": "10.6",
            "build": "90186",
            "full_version": "10.6.90186"
          },
          "force_update_enabled": true
        },
        "linux_x64": {
          "min_supported_version": {
            "version": "10.0",
            "build": "9706",
            "full_version": "10.0.9706"
          },
          "force_update_enabled": true
        },
        "mac_x64": {
          "min_supported_version": {
            "version": "5.0",
            "build": "9702",
            "full_version": "5.0.9702"
          },
          "force_update_enabled": true
        },
        "win_x32": {
          "min_supported_version": {
            "version": "10.0",
            "build": "9707",
            "full_version": "10.0.9707"
          },
          "force_update_enabled": true
        }
      }
    
  4. Пересоздайте под админ-консоли:

    kubectl delete pod -n vkteams myteam-admin-\*
    

    где * — уникальное имя пода. Имя пода необходимо получить с помощью вывода команды:

    kubectl get pods -A | grep myteam-admin
    

Отключить синхронизацию черновиков между клиентскими приложениями

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

Чтобы отключить синхронизацию черновиков:

  1. В конфигурационном файле /usr/local/nginx-im/html/myteam/myteam-config.json установите для поля draft-enabled значение false.

  2. Пересоздайте под админ-консоли:

    kubectl delete pod -n vkteams myteam-admin-\*
    

    где: * — уникальное имя пода. Имя пода необходимо получить с помощью вывода команды:

    kubectl get pods -A | grep myteam-admin
    

Ограничить создание скриншотов и записи экрана

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

Для Android на уровне системы реализована защита, блокирующая возможность создания скриншотов и записи экрана. При попытке сделать скриншот или запись в результате будет черный экран.

Для iOS отображается визуальное предупреждение о запрете на создание скриншотов. При попытке сделать скриншот в результате будет белый экран.

Для десктоп-приложений:

  • Windows — реализована защита от скриншотов и блокировка распространённых средств записи экрана (например, Bandicam). При попытке сделать скриншот, на нем не отобразится окно приложения. Аналогично и при записи экрана.
  • macOS — внедрены ограничения на стандартные сценарии снятия скриншотов, с учётом системных разрешений. При попытке сделать скриншот, на нем не отобразится окно приложения

Вы можете запретить пользователям делать скриншоты и запись экрана двумя способами — через конфигурационный файл или при помощи Панели администратора VK WorkSpace (при наличии).

Через конфигурационный файл

  1. Перейдите в конфигурационный файл /usr/local/nginx-im/html/myteam/myteam-config.json и установите для параметра screenshots-allowed значение false.

  2. Перезапустите pod myteam-admin:

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

Через Панель администратора

  1. Перейдите в конфигурационный файл /usr/local/nginx-im/html/myteam/myteam-config.json и убедитесь, что в нем есть переменная screenshots-allowed с любым значением. Если переменной нет — добавьте ее:

    "screenshots-allowed": false
    
  2. Подключитесь к серверу Супераппа и сгенерируйте client_id и client_secret:

    creds=$(curl -s http://onpremise.stroma-1.weave.local:8036/api/v1/private/generate_credentials); \
        client_id=$(echo $creds | jq -r ".client_id"); \
        client_secret=$(echo $creds | jq -r ".client_secret"); \
        client_secret_hash=$(echo $creds | jq -r ".client_secret_hash"); \
        echo "tokeeper.request.add_application('biz', 'biz admin', '$client_id', '$client_secret_hash', '')" | sudo tarantoolctl eval tokeeper-1
    
    echo $client_id
    echo $client_secret
    

    Запомните выводы команд.

  3. Перейдите в инсталлятор VK WorkSpace по адресу http://server-ip-address:8888 в раздел НастройкиИнтеграции и включите переключатель VK Teams поддерживает авторизацию ЕСИА.

  4. Укажите client_id и client_secret и нажмите на кнопку Сохранить.
  5. Перейдите в раздел НастройкиПеременные окружения.
  6. В левом боковом меню найдите bizf и нажмите на иконку
  7. Нажмите на кнопку Добавить и добавьте переменные со следующими значениями:

    MYTEAM_GODMOD_HOST: https://admin.<домен Супераппа>

    FRONTEND_ADD_PERMISSIONS: im.can_access_superapp

    Внимание

    Не перезаписывайте значение переменной FRONTEND_ADD_PERMISSIONS. Найдите переменную в таблице и добавьте для нее значение im.can_access_superapp без удаления ранее добавленных значений

  8. Нажмите Сохранить.

  9. Выполните шаг up_container для контейнера bizf.
  10. Перейдите в расширенную панель администратора по адресу https://biz.<ваш домен>/admin/features/ и добавьте фичу tmp-myteam-plugins-configuration.
  11. Перейдите в Панель администратора по адресу https://biz.<ваш домен>/ в раздел Суперапп и включите Запрет на скриншоты и запись экрана.

  12. Нажмите на кнопку Сохранить.

Включить доступ к Супераппу по паролю

Вы можете включить для пользователей доступ в приложение по паролю.

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

Чтобы включить доступ по паролю:

  1. Перейдите в конфигурационный файл /usr/local/nginx-im/html/myteam/myteam-config.json и установите для параметра pin-required значение true.
  2. Перезапустите pod myteam-admin:

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

Отображать баннер о подключенном VPN

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

Данная настройка доступна для декстоп- и мобильной версии Супераппа.

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

Чтобы включить н:

  1. Перейдите в конфигурационный файл /usr/local/nginx-im/html/myteam/myteam-config.json и установите для параметра vpn-detect значение true.
  2. Перезапустите pod myteam-admin:

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

Скрыть содержимое пуш-уведомлений

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

При включении настройки в пуш-уведомлениях не будет видно:

  • Содержимое сообщения.
  • Имя отправителя и получателя.
  • Название группы/канала/бота.

При включении настройки:

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

Настройка доступна на уровне всей инсталляции и влияет на все группы/каналы/личные сообщения для всех пользователей без исключения.

Подробнее о работе сервисов уведомлений описано в документации по архитектуре (не является частью публичной документации, обратитесь к представителю VK Tech, чтобы ознакомиться с документом).

Чтобы скрыть содержимое пуш-уведомлений:

Шаг 1. Включите отправку пуш-уведомлений через сервис VKTPusher

  1. Откройте на редактирование конфигурационный файл сервиса Boss в режиме суперпользователя:

    sudo vi /usr/local/etc/k8s/helmwave/projects/boss/values/boss/bos-pre.tcl.yml
    
  2. Для параметра set PNOTIFY_VKT_PUSHER_ENABLE укажите значение «1» и сохраните изменения:

    set PNOTIFY_VKT_PUSHER_ENABLE 1
    
  3. Примените настройку.

    Для инсталляции на одну виртуальную машину выполните команду:

    sudo hwup -t boss
    

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

    im_deployer --helmwave --update --hw-once --hw-project boss
    

Шаг 2. Настройте сервис VKTPusher

  1. Откройте на редактирование конфигурационный файл сервиса VKTPusher в режиме суперпользователя:

    sudo vi /usr/local/etc/k8s/helmwave/projects/vktpusher/values/vktpusher/vktpusher.yml
    
  2. Для параметра erase_sensitive_push_content укажите значение true и сохраните изменения:

    erase_sensitive_push_content: true #включаем скрытие контента уведомлений
    
  3. Примените настройку.

    Для инсталляции на одну виртуальную машину выполните команду:

    hwup -t vktpusher
    
    Для кластерной инсталляции:

    im_deployer --helmwave --update --hw-once --hw-project vktpusher
    

Шаг 3. Настройте myteam-config

  1. Откройте на редактирование конфигурационный файл myteam-config в режиме суперпользователя:

    sudo vi /usr/local/nginx-im/html/myteam/myteam-config.json
    
  2. Добавьте следующие настройки в файл и сохраните изменения:

    "force-hide-notification-all-data": true, #вместо текста уведомления отображаем «Новое сообщение»
    "disable-notifications-privacy-settings": true #скрываем контент уведомления
    
  3. Примените настройки:

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

Переключиться на провайдера пуш-уведомлений RuStore

Вы можете настроить отправку пуш-уведомлений через RuStore, если не хотите использовать зарубежных провайдеров или на мобильных устройствах пользователей отсутствуют Google Services.

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

  1. Приложение RuStore должно быть установлено на мобильных устройствах пользователей.
  2. Приложению RuStore разрешена работа в фоновом режиме. Если разрешения нет, пуш-уведомления будут приходить со значительной задержкой.
  3. Пользователь должен авторизоваться в приложении RuStore.

Если отправка пуш-уведомлений через RuStore включена и приложение RuStore не установлено, на мобильных устройствах пользователя может отображаться баннер о необходимости установить приложение (настройки описаны ниже).

Чтобы настроить отправку пуш-уведомлений через RuStore:

Шаг 1. Включите отправку пуш-уведомлений через сервис VKTPusher

  1. Откройте на редактирование конфигурационный файл сервиса Boss в режиме суперпользователя:

    sudo vi /usr/local/etc/k8s/helmwave/projects/boss/values/boss/bos-pre.tcl.yml
    
  2. Для параметра set PNOTIFY_VKT_PUSHER_ENABLE укажите значение «1» и сохраните изменения:

    set PNOTIFY_VKT_PUSHER_ENABLE 1
    
  3. Примените настройку.

    Для инсталляции на одну виртуальную машину выполните команду:

    sudo hwup -t boss
    

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

    im_deployer --helmwave --update --hw-once --hw-project boss
    

Шаг 2. Настройте myteam-config

  1. Откройте на редактирование конфигурационный файл myteam-config в режиме суперпользователя:

    sudo vi /usr/local/nginx-im/html/myteam/myteam-config.json
    
  2. Добавьте в файл секцию push-settings и сохраните изменения:

    "push-settings": {
        "push-provider": "rustore",
        "use-rustore-if-fcm-unavailable": true,
        "show-download-rustore-screen": true,
        "show-download-rustore-screen-if-no-one-provider-available": true,
        "show-rustore-screen-every-days-in-first-month": 7,
        "show-rustore-screen-every-days-from-second-month": 30,
        "rustore-url": "https://www.rustore.ru"
    }
    
    где:

    • push-provider — какой провайдер пуш-уведомлений должен использоваться на клиентском приложении. Возможные значения — rustore или firebase.

    • use-rustore-if-fcm-unavailable — используем ли RuStore, если Google Services отсутствует на мобильном устройстве пользователя. Если true — используем RuStore.

    • show-download-rustore-screen — отображаем ли пользователям баннер об отсутствии приложения RuStore при включенных RuStore пуш-уведомлениях. Если true — отображаем.

    • show-download-rustore-screen-if-no-one-provider-available — отображаем ли пользователям баннер об отсутствии приложения RuStore, когда на мобильном устройстве не доступен ни один из провайдеров пуш-уведомлений. Если true — отображаем.

    • show-rustore-screen-every-days-in-first-month — через сколько дней должен отображаться баннер в первый месяц.

    • show-rustore-screen-every-days-from-second-month — через сколько дней должен показываться баннер, начиная со второго месяца.

    • rustore-url — ссылка на скачивание приложения RuStore, используется при отсутствии приложения.

  3. Примените настройки:

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