Миграция настроек Vinteo Desktop через групповые политики: различия между версиями

Материал из База знаний VINTEO
 
(не показано 40 промежуточных версий 3 участников)
Строка 1: Строка 1:
 
== Общее описание ==  
 
== Общее описание ==  
  
При каждом запуске десктоп-клиента, происходит загрузка настроек из файла ClientSettings для последующей миграции в десктоп-клиент. Файл ClientSettings нужно добавить в определенную папку:  
+
Начиная с версии 3.15, при каждом запуске десктоп-клиента, происходит загрузка настроек из файла ClientSettings для последующей миграции в десктоп-клиент. Файл ClientSettings нужно добавить в определенную папку:  
* для Windows - %appData%/Roaming/Vinteo.Desktop
+
* для Windows - %appData%/VinteoDesktop
 
* для MacOS - /Users/y/Library/Application Support/VinteoDesktop  
 
* для MacOS - /Users/y/Library/Application Support/VinteoDesktop  
 
* для Linux - /home/.config/VinteoDesktop
 
* для Linux - /home/.config/VinteoDesktop
  
Передаваемые настройки, в файле ClientSettings, хранятся в формате json и валидируются json-схемой на этапе чтения файла. Схема валидации с полным списком полей содержится в проекте clients - packages/apps/desktop-client/src/clientSettingsSchema.json.  
+
Передаваемые настройки, в файле ClientSettings, хранятся в формате json и валидируются json-схемой на этапе чтения файла.
  
Файл ClientSettings имеет две группы настроек:  
+
'''С полным списком настроек, доступных для миграции, можно ознакомиться по [https://schemas.dm1.vinteo.dev/clientSettingsSchema.json ссылке].'''
  
* profile - настройки корпоративного профиля  
+
Файл ClientSettings имеет три группы настроек:
* settings - настройки приложения  
+
 
 +
* profile - настройки корпоративного профиля;
 +
* settings - настройки приложения;
 +
* emailInvitationTemplate - шаблон приглашения по email.
  
 
== Параметры мигрируемых настроек ==  
 
== Параметры мигрируемых настроек ==  
Строка 20: Строка 23:
 
! Свойство !! Описание
 
! Свойство !! Описание
 
|-
 
|-
| value  || Содержит значение настройки, которое будет мигрировано в приложение. Может иметь типы "string", "number" или "boolean" в зависимости от конкретной настройки
+
| <font color = 'red'>value</font> || Содержит значение настройки, которое будет мигрировано в приложение. Может иметь типы "string", "number" или "boolean" в зависимости от конкретной настройки
 +
|-
 +
| <font color = 'red'>overwriteUserSettings</font>  || Опциональный флаг принудительной миграции. При установке значения '''true''', настройка из файла принудительно перепишет настройку пользователя в клиенте. При значении '''false''' или '''отсутствии флага''', настройка будет перезаписана только если пользователь не изменял ее значение с момента первого запуска клиента.
 +
|-
 +
|}
 +
 
 +
=== Настройки клиента (settings) ===
 +
 
 +
Группа настроек settings содержит следующие настройки:
 +
{| class="wikitable"
 +
|-
 +
! Настройка !! Тип значения !! Описание
 +
|-
 +
| displayName || string  || Отображаемое имя пользователя
 +
|-
 +
| remoteMicControl || boolean || Разрешать модератору включать и выключать микрофон
 +
|-
 +
| remoteCameraControl  || boolean || Разрешить модератору включать и выключать камеру
 +
|-
 +
| moveContentVideoToFullscreen || boolean || Запускать входящую презентацию в полноэкранном режиме
 +
|-
 +
| autoOpenChat || boolean  || Автоматически открывать чат при старте звонка или трансляции
 +
|-
 +
| autoOpenParticipants || boolean || Автоматически открывать список участников при старте звонка или трансляции
 +
|-
 +
| autoAnswer || boolean || Автоответ при входящем звонке
 +
|-
 +
| autoMute || boolean || Выключение микрофона при автоответе
 +
|-
 +
| autoFullscreen  || boolean || Полноэкранный режим при автоответе
 +
|-
 +
| hardwareNotification  || boolean || Аппаратное оповещение
 +
|-
 +
| autorun  || boolean || Автозапуск
 +
|-
 +
| minimizeOnClose  || boolean || Сворачивание приложения при закрытии
 +
|-
 +
| disableConfirms  || boolean || Выключить все диалоги подтверждения действий
 +
|-
 +
| disableNotifications  || boolean || Выключить все уведомления
 +
|-
 +
| disableErrors || boolean || Выключить все уведомления об ошибках
 +
|}
 +
 
 +
<font color = 'red'>'''Важно!'''</font> При при попытке включения autoOpenChat и autoOpenParticipants, флаг autoOpenParticipants имеет приоритет. То есть, autoOpenParticipants будет включен, а autoOpenChat останется выключенным. Последовательность и одновременность передачи флагов не имеют значения.
 +
 
 +
== Корпоративный профиль ==
 +
 
 +
Корпоративный профиль - это профиль, который создается и обновляется скриптами миграции. Отличие корпоративного профиля от прочих в уникальном uuid, который равен "uuid-corporate-profile-0fa76dd5-9c48-48de-be1b-75b8df1b2208". Данный профиль создается, если его еще нет в списке профилей подключения, либо обновляется при миграции.
 +
 
 +
=== Настройки корпоративного профиля (profile) ===
 +
 
 +
Группа настроек profile содержит следующие настройки, доступные для миграции корпоративного профиля:
 +
{| class="wikitable"
 +
|-
 +
! Настройка !! Тип значения !! Описание
 +
|-
 +
| name  || string || Логин пользователя. Опциональный параметр
 +
|-
 +
| serverUrl  || string || Адрес сервера подключения. Может содержать URL или IP сервера
 +
|-
 +
| profileName  || string || Имя корпоративного профиля - будет указано в качестве названия для корпоративного профиля подключения. Опциональный параметр
 +
|}
 +
 
 +
<font color = 'red'>'''Важно!'''</font>
 +
 
 +
* Через группу настроек profile нельзя передать пароль пользователя; 
 +
* При каждой перезаписи корпоративного профиля пароль предыдущего профиля удаляется из клиента;
 +
 
 +
Если в группе настроек profile не хватает данных для подключения, то при запуске клиента откроется диалоговое окно начальных настроек подключения (InitialSetupWizard), в котором необходимо заполнить недостающие данные. Данный шаг можно пропустить.
 +
 
 +
'''Примеры недостающих данных в группе настроек profile'''
 +
 
 +
* Не заполнен serverUrl (адрес сервера подключения); 
 +
* Не заполнен displayName (отображаемое имя); 
 +
* Заполнены displayName, serverUrl и name (не хватает пароля).
 +
 
 +
'''Примеры'''
 +
 
 +
Ниже приведен пример файла ClientSettings:
 +
<source lang="json">
 +
{
 +
"version": 1,
 +
"values": {
 +
"settings": {
 +
"displayName": {
 +
"value": "Новая подпись",
 +
"overwriteUserSettings": true
 +
}
 +
}
 +
}
 +
}
 +
</source>
 +
 
 +
=<span id = 'email_template'> Шаблоны приглашений по email (emailInvitationTemplate) </span>=
 +
 
 +
Данный параметр позволяет настраивать шаблон приглашения в конференцию по email.
 +
 
 +
'''Параметры шаблона'''
 +
{| class="wikitable"
 +
|-
 +
! Название !! Тип значения !! Описание
 +
|-
 +
| value || TEmailInvitationTemplate || Шаблон приглашения по email
 +
|-
 +
| overwriteUserSettings || boolean || Флаг использования шаблона. При значении true использует данный шаблон для приглашений по email. Иначе - использует стандартный шаблон приложения. По умолчанию - false.
 +
|}
 +
 
 +
'''Шаблон приглашения по email (TEmailInvitationTemplate)'''
 +
{| class="wikitable"
 +
|-
 +
! Название !! Тип значения !! Описание
 +
|-
 +
| subject || string || Заголовок приглашения
 +
|-
 +
| body || TBodyEmailInvitationTemplate || Тело сообщения
 +
|}
 +
 
 +
'''Тело сообщения (TBodyEmailInvitationTemplate)'''
 +
{| class="wikitable"
 +
|-
 +
! Название !! Тип значения !! Описание
 +
|-
 +
| value || string || Шаблон текста сообщения
 +
|-
 +
| optional || TOptionalBodyEmailInvitationTemplate || Опциональные параметры
 +
|}
 +
 
 +
'''Опциональные параметры (TOptionalBodyEmailInvitationTemplate)'''
 +
{| class="wikitable"
 +
|-
 +
! Название !! Тип значения !! Описание
 
|-
 
|-
| Текст ячейки || Текст ячейки
+
| pinText || { textWhenFilled: string; textWhenEmpty: string } || Шаблон для отображения пин-кода конференции. Текст параметра textWhenFilled используется, когда конференция имеет пин-код. Иначе - используется текст из параметра textWhenEmpty.
 
|-
 
|-
 
|}
 
|}
 +
 +
'''Заполняемые поля шаблона'''
 +
{| class="wikitable"
 +
|-
 +
! Настройка !! Тип значения !! Описание
 +
|-
 +
| {userName} || string || Имя пользователя, отправившего приглашение
 +
|-
 +
| {conferenceUrl} || string || https-ссылка на подключение к конференции
 +
|-
 +
| {dialedNumber} || string || номер-конференции@домен
 +
|-
 +
| {pin} || string || пин-код
 +
|-
 +
| {pinText} || string || Шаблон для отображения пин-кода конференции
 +
|}
 +
 +
'''Примеры'''
 +
 +
Ниже приведен пример файла ClientSettings:
 +
<source lang="json">
 +
{
 +
  "version": 1,
 +
  "values": {
 +
    "emailInvitationTemplate": {
 +
      "value": {
 +
        "subject": "mailto:?subject=Приглашение в конференцию",
 +
        "body": {
 +
            "value": "&body={userName} приглашает вас принять участие в видеоконференции.%0A- ссылка: {conferenceUrl};%0A- номер конференции: {dialedNumber}{pinText}",
 +
            "optional": {
 +
                "pinText": {
 +
                    "textWhenFilled": ";%0A- пин-код: {pin}.",
 +
                    "textWhenEmpty": "."
 +
                }
 +
            }
 +
        }
 +
      },
 +
      "overwriteUserSettings": false
 +
    }
 +
  }
 +
}
 +
</source>

Текущая версия на 14:40, 31 октября 2024

Общее описание

Начиная с версии 3.15, при каждом запуске десктоп-клиента, происходит загрузка настроек из файла ClientSettings для последующей миграции в десктоп-клиент. Файл ClientSettings нужно добавить в определенную папку:

  • для Windows - %appData%/VinteoDesktop
  • для MacOS - /Users/y/Library/Application Support/VinteoDesktop
  • для Linux - /home/.config/VinteoDesktop

Передаваемые настройки, в файле ClientSettings, хранятся в формате json и валидируются json-схемой на этапе чтения файла.

С полным списком настроек, доступных для миграции, можно ознакомиться по ссылке.

Файл ClientSettings имеет три группы настроек:

  • profile - настройки корпоративного профиля;
  • settings - настройки приложения;
  • emailInvitationTemplate - шаблон приглашения по email.

Параметры мигрируемых настроек

Каждая настройка в группе представляет собой простой объект с двумя свойствами:

Свойство Описание
value Содержит значение настройки, которое будет мигрировано в приложение. Может иметь типы "string", "number" или "boolean" в зависимости от конкретной настройки
overwriteUserSettings Опциональный флаг принудительной миграции. При установке значения true, настройка из файла принудительно перепишет настройку пользователя в клиенте. При значении false или отсутствии флага, настройка будет перезаписана только если пользователь не изменял ее значение с момента первого запуска клиента.

Настройки клиента (settings)

Группа настроек settings содержит следующие настройки:

Настройка Тип значения Описание
displayName string Отображаемое имя пользователя
remoteMicControl boolean Разрешать модератору включать и выключать микрофон
remoteCameraControl boolean Разрешить модератору включать и выключать камеру
moveContentVideoToFullscreen boolean Запускать входящую презентацию в полноэкранном режиме
autoOpenChat boolean Автоматически открывать чат при старте звонка или трансляции
autoOpenParticipants boolean Автоматически открывать список участников при старте звонка или трансляции
autoAnswer boolean Автоответ при входящем звонке
autoMute boolean Выключение микрофона при автоответе
autoFullscreen boolean Полноэкранный режим при автоответе
hardwareNotification boolean Аппаратное оповещение
autorun boolean Автозапуск
minimizeOnClose boolean Сворачивание приложения при закрытии
disableConfirms boolean Выключить все диалоги подтверждения действий
disableNotifications boolean Выключить все уведомления
disableErrors boolean Выключить все уведомления об ошибках
Важно! При при попытке включения autoOpenChat и autoOpenParticipants, флаг autoOpenParticipants имеет приоритет. То есть, autoOpenParticipants будет включен, а autoOpenChat останется выключенным. Последовательность и одновременность передачи флагов не имеют значения.

Корпоративный профиль

Корпоративный профиль - это профиль, который создается и обновляется скриптами миграции. Отличие корпоративного профиля от прочих в уникальном uuid, который равен "uuid-corporate-profile-0fa76dd5-9c48-48de-be1b-75b8df1b2208". Данный профиль создается, если его еще нет в списке профилей подключения, либо обновляется при миграции.

Настройки корпоративного профиля (profile)

Группа настроек profile содержит следующие настройки, доступные для миграции корпоративного профиля:

Настройка Тип значения Описание
name string Логин пользователя. Опциональный параметр
serverUrl string Адрес сервера подключения. Может содержать URL или IP сервера
profileName string Имя корпоративного профиля - будет указано в качестве названия для корпоративного профиля подключения. Опциональный параметр

Важно!

  • Через группу настроек profile нельзя передать пароль пользователя;
  • При каждой перезаписи корпоративного профиля пароль предыдущего профиля удаляется из клиента;

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

Примеры недостающих данных в группе настроек profile

  • Не заполнен serverUrl (адрес сервера подключения);
  • Не заполнен displayName (отображаемое имя);
  • Заполнены displayName, serverUrl и name (не хватает пароля).

Примеры

Ниже приведен пример файла ClientSettings:

{
	"version": 1,
	"values": {
		"settings": {
			"displayName": {
				"value": "Новая подпись",
				"overwriteUserSettings": true
			}
		}
	}
}

Шаблоны приглашений по email (emailInvitationTemplate)

Данный параметр позволяет настраивать шаблон приглашения в конференцию по email.

Параметры шаблона

Название Тип значения Описание
value TEmailInvitationTemplate Шаблон приглашения по email
overwriteUserSettings boolean Флаг использования шаблона. При значении true использует данный шаблон для приглашений по email. Иначе - использует стандартный шаблон приложения. По умолчанию - false.

Шаблон приглашения по email (TEmailInvitationTemplate)

Название Тип значения Описание
subject string Заголовок приглашения
body TBodyEmailInvitationTemplate Тело сообщения

Тело сообщения (TBodyEmailInvitationTemplate)

Название Тип значения Описание
value string Шаблон текста сообщения
optional TOptionalBodyEmailInvitationTemplate Опциональные параметры

Опциональные параметры (TOptionalBodyEmailInvitationTemplate)

Название Тип значения Описание
pinText { textWhenFilled: string; textWhenEmpty: string } Шаблон для отображения пин-кода конференции. Текст параметра textWhenFilled используется, когда конференция имеет пин-код. Иначе - используется текст из параметра textWhenEmpty.

Заполняемые поля шаблона

Настройка Тип значения Описание
{userName} string Имя пользователя, отправившего приглашение
{conferenceUrl} string https-ссылка на подключение к конференции
{dialedNumber} string номер-конференции@домен
{pin} string пин-код
{pinText} string Шаблон для отображения пин-кода конференции

Примеры

Ниже приведен пример файла ClientSettings:

{
  "version": 1,
  "values": {
    "emailInvitationTemplate": {
      "value": {
        "subject": "mailto:?subject=Приглашение в конференцию",
        "body": {
            "value": "&body={userName} приглашает вас принять участие в видеоконференции.%0A- ссылка: {conferenceUrl};%0A- номер конференции: {dialedNumber}{pinText}",
            "optional": {
                "pinText": {
                    "textWhenFilled": ";%0A- пин-код: {pin}.",
                    "textWhenEmpty": "."
                }
            }
        }
      },
      "overwriteUserSettings": false
    }
  }
}