image001

© Syntellect 2020


1. Состав поставки

В состав поставки TESSA входят следующие компоненты:

Папка/Файл Содержимое

Applications

Приложения

Applications\SchemeEditor

Приложение Scheme Editor - редактор схемы данных, соединяющийся напрямую с БД

Applications\TessaAdmin

Приложение Tessa Admin - административное рабочее место, версия для 64-битных ОС

Applications\TessaAdmin32

Приложение Tessa Admin - административное рабочее место, версия для 32-битных ОС

Applications\TessaClient

Приложение Tessa Client - рабочее место пользователя, версия для 64-битных ОС

Applications\TessaClient32

Приложение Tessa Client - рабочее место пользователя, версия для 32-битных ОС

Applications\TessaAppManager

Приложение Tessa Applications, версия для 64-битных ОС, может использоваться для публикации обновлений (инсталлятор содержится в папке Setup)

Applications\TessaAppManager32

Приложение Tessa Applications, версия для 32-битных ОС, может использоваться для публикации обновлений (инсталлятор содержится в папке Setup)

Applications\publish_admin_demo.bat

Файл для публикации Tessa Admin и в 32-битном, и 64-битном вариантах

Applications\publish_client_demo.bat

Файл для публикации Tessa Client и в 32-битном, и 64-битном вариантах

Applications\publish_appmanager_demo.bat

Файл для публикации Tessa Applications и в 32-битном, и 64-битном вариантах

Chronos

Сервис Syntellect Chronos, устанавливаемый как сервис Windows или запускаемый из командной строки для ОС Windows

Chronos\app.json

Конфигурационный файл сервиса Syntellect Chronos, который содержит основные параметры, включая адрес подключения к БД и настройки почты

Chronos\NLog.config

Конфигурационный файл для указания пути к файлу лога, а также уровня логирования для сервиса Syntellect Chronos

Chronos\Plugins\Tessa\app.json

Конфигурационный файл плагинов для сервиса Syntellect Chronos. По умолчанию в данном файле указана ссылка к основному конфигурационному файлу сервиса Chronos\app.json

Chronos\Plugins\Tessa\configuration

Папка с xml файлами для настройки расписания запуска отдельных плагинов, а также какие-либо дополнительные настройки. См. Руководство администратора

Configuration

Метаинформация для схемы базы данных и объекты конфигурации для загрузки в базу

Configuration\Card

Карточки

Configuration\Card\Access rules

Правила доступа

Configuration\Card\Currencies

Валюты

Configuration\Card\Document types

Типы документов

Configuration\Card\File templates

Шаблоны файлов

Configuration\Card\KrProcess

Настройки маршрутов

Configuration\Card\Notifications

Типовые карточки уведомлений

Configuration\Card\PostgreSql

Карточки, специфичные для установки на СУБД PostgreSQL, в т.ч. роли с SQL-запросами для этой СУБД

Configuration\Card\Report permissions

Права на просмотр отчетов

Configuration\Card\Roles

Роли

Configuration\Card\Settings

Настройки

Configuration\Card\Task history group types

Типы групп в истории заданий

Configuration\Card\File templates.cardlib

Файл для импорта всех шаблонов файлов

Configuration\Card\Tessa.ms.cardlib

Файл для импорта всех вышеперечисленных карточек (кроме шаблонов файлов) на СУБД MS SQL Server

Configuration\Card\Tessa.pg.cardlib

Файл для импорта всех вышеперечисленных карточек (кроме шаблонов файлов) на СУБД PostgreSQL

Configuration\Localization

Библиотеки локализации

Configuration\Scheme

Схема данных

Configuration\Types

Типы

Configuration\Types\Cards

Типы карточек

Configuration\Types\Tasks

Типы заданий

Configuration\Types\Files

Типы файлов

Configuration\Views

Представления

Configuration\Workplaces

Рабочие места

DeskiSetup

Установщик Tessa Deski - приложения-ассистента для web-клиента. В комплекте русскоязычная и англоязычная версии инсталлятора msi для Windows, мультиязычная версия для 64-битной ОС Linux, и мультиязычная версия для macOS, причём любой из инсталляторов устанавливает мультиязычную версию приложения (разница в названии создаваемых ярлыков и в языке при запуске пользователем инсталлятора или деинсталлятора). Установите версию в подпапке x64 только для 64-битных ОС Windows. Версию x86 рекомендуется устанавливать для 32-битных ОС Windows, но также возможна её установка для 64-битной ОС. В подпапках "Linux" и "macOS" расположены архивы с приложением для 64-битных ОС Linux и macOS соответственно.

Fixes

SQL скрипты (скрипты миграций и скрипты пересчёта индексов, а также другие средства, полезные при обновлении или обслуживании системы, такие как файлы реестра).

linux

Дистрибутивы для установки на сервер ОС Linux, см. Руководство по установке на Linux

linux\chronos

Сервис Chronos для установки на сервер ОС Linux

linux\chronos\app.json

Настройки сервиса Chronos для установки на сервер ОС Linux

linux\tools

Консольное приложение tadmin, используемое на ОС Linux

linux\web

Веб-сервис для установки на сервер приложений ОС Linux

linux\web\app.json

Настройки веб-сервиса для установки на сервер приложений ОС Linux

Manuals

Руководства по системе Tessa

Services

Веб-сервисы для установки на Windows

Services\web

Файлы сервиса приложений для Windows

Services\app.json

Конфигурационный файл для веб-сервисов

Tools

Консольные приложения, такие как tadmin.exe, используются на Windows

Setup

Установщик Tessa Applications, в комплекте русскоязычная и англоязычная версии инсталлятора, причём любой из инсталляторов устанавливает мультиязычную версию приложения (разница в названии создаваемых ярлыков и в языке при запуске пользователем инсталлятора или деинсталлятора). Установите версию в подпапке x64 только для 64-битных ОС. Версию x86 рекомендуется устанавливать для 32-битных ОС, но также возможна её установка для 64-битной ОС.

Source

Проекты и SDK для разработки расширений для сервера и desktop-клиента

Source\Export.bat

Скрипт для экспорта конфигурации из указанных веб-сервиса и базы данных, запускается на Windows

Source\export.sh

Скрипт для экспорта конфигурации из указанных веб-сервиса и базы данных, запускается на Linux

Source\readme.txt

Файл, описывающий требования к ПО на компьютере разработчика расширений, прочитайте перед началом разработки

WebClient SDK

Папка с SDK для разработчика web-клиента на платформе Tessa

ReleaseNotes.html

Файл с описанием требований, которые необходимо выполнить для того, чтобы перейти на текущую версию из предыдущей, а также описание добавления/изменения функционала и исправления багов/оптимизации по каждой версии Tessa

Setup.bat

Для импорта конфигурации типового решения на новую базу, используется на Windows

Upgrade.bat

Для обновления существующей базы до новой версии конфигурации типового решения, используется на Windows

Migrate.bat

Для миграции существующей базы данных с одного сервера на другой (как в пределах одной СУБД, так и между PostgreSQL и MSSQL), используется на Windows

2. Системные требования для серверов Windows и клиентских приложений

Это руководство рассматривает установку сервера приложений на Windows, а также общие вопросы по конфигурированию сервера Tessa, такие как настройка почты. Для установки сервера приложений на Linux обратитесь к инструкции Tessa. Руководство по установке на Linux, причём за дополнительной информацией по конфигурационным файлам обратитесь к этому руководству.
Требования к программной конфигурации сервера приложений
  • Операционная система Microsoft Windows одной из следующих версий:

    • Windows Server 2012 R2 (x64)

    • Windows Server 2016 (x64)

    • Windows Server 2019 (x64)

  • IIS 8.5+

  • Для установки часто требуется также установить обновления для ОС

  • Платформа .NET Framework не используется, его установленная версия не является важной

Требования к программной конфигурации сервера БД
  • Операционная система Microsoft Windows одной из следующих версий:

    • Windows Server 2008 R2 SP1 (x64)

    • Windows Server 2012 (x64)

    • Windows Server 2012 R2 (x64)

    • Windows Server 2016 (x64)

    • Windows Server 2019 (x64)

  • Любая из поддерживаемых СУБД:

    • Microsoft SQL Server 2012 и старше редакции Standard и выше. Допускается использование редакции Express на усмотрение заказчика с учетом ограничений данной редакции.

    • PostgreSQL 9.6 или старше.

Требования к клиентским компьютерам для работы desktop-клиента
  • Операционная система Microsoft Windows одной из следующих версий:

    • Windows 7 SP1 (x86 and x64)

    • Windows 8.1 (x86 and x64)

    • Windows 10 (version 1809+, x86 and x64)

  • 2 ГБ оперативной памяти и выше.

  • Для Windows 7 SP1 требуется установленный .NET Framework 4.0 или старше (для установки часто требуется также установить обновления для ОС). Для Windows 8.1 требования отсутствуют. Windows 10 должна быть обновлена минимум до версии 1809 (номер сборки 10.0.17763) или любая версия старше.

Требования к клиентским компьютерам для работы web-клиента
  • Операционная система Linux, macOS или Microsoft Windows одной из следующих версий:

    • Windows 7 SP1 (x86 and x64)

    • Windows 8.1 (x86 and x64)

    • Windows 10 (x86 and x64)

  • 2 ГБ оперативной памяти и выше.

  • Браузер Chrome/Firefox/Microsoft Edge или Safari (для macOS).

    • Google Chrome 55+

    • Mozilla Firefox 50+

    • Microsoft Edge: версия, входящая в состав ОС Windows 10 Version 1809 или старше, включая Microsoft Edge на движке Chromium

    • Safari 10+

2.1. Примечание по безопасности и поддержка протоколов HTTPS/TLS

Взаимодействие с сервером приложений TESSA всегда выполняется по протоколу https с использованием протокола TLS для шифрования трафика. Протокол SSLv3 явно запрещён к использованию.

На момент написания документации версия протокола TLS 1.2 общепринято считается безопасной. Также выпущена версия TLS 1.3, в которой считается, что безопасность повышена, но поддержка этой версии ограничена (см. ниже). Версии протоколов TLS 1.0 и 1.1 названы небезопасными, и их использование не рекомендуется.

Для коммуникации между клиентом и сервером системой TESSA используется самая старшая версия протокола, поддерживаемая и клиентом, и сервером. Например, если и клиент, и сервер поддерживает протокол TLS 1.3, то будет использоваться он как более надёжный, иначе - TLS 1.2, 1.1 или 1.0. Для ОС Windows 7 SP1 требуются установленные обновления (из центра обновлений Windows) для поддержки TLS 1.2, для более старших версий Windows 8.1/10 и Windows Server 2012 R2+, и для поддерживаемых дистрибутивов ОС Linux протокол TLS 1.2 всегда доступен.

Для desktop-приложений и для серверной стороны играет роль версия операционной системы Windows или версия библиотеки OpenSSL, установленной в дистрибутиве Linux. Для web-клиента версия протокола зависит от версии браузера.

Протокол последней версии TLS 1.3 поддерживается на сервере приложений TESSA для ОС Linux с установленной библиотекой OpenSSL 1.1.1 (проверьте документацию или репозиторий своего дистрибутива).

Со стороны клиента поддержку обеспечивает только web-клиент TESSA в браузерах с поддержкой этого протокола, причём браузер должен быть обновлён (Chrome, Firefox, Safari). Также может потребоваться явно включить этот протокол в настройках браузера - обратитесь к документации по вашему браузеру.

ОС Windows 10 версий 1903 и 1909, а также Windows Server 2019 версий 1903 и 1909 имеют экспериментальную поддержку этого протокола, отключённую по умолчанию и включаемую через реестр. Платформа .NET Core, на основе которой построена система TESSA, также не имеет поддержки TLS 1.3 на ОС Windows, поэтому самая старшая версия протокола, которую может использовать desktop-клиент - TLS 1.2. Аналогично, если сервер приложений установлен на ОС Windows, то web-клиент всегда будет использовать максимум версию TLS 1.2, даже при наличии поддержки TLS 1.3 со стороны браузера.

3. Установка Tessa для серверов Windows

Для установки платформы Tessa выполните по порядку последующие пункты данного руководства.

3.1. Предварительные настройки

На сервере приложений должны быть установлены (или включены в компонентах):
  • IIS (роль Веб-сервер) и его дополнительные компоненты:

    • Компонент Проверка подлинности Windows

      • EN: "Internet Information Services\World Wide Web Services\Security\Windows Authentication"

      • RU: "Службы IIS\Службы Интернета\Безопасность\Проверка подлинности Windows"

    • Компонент Консоль управления IIS

      • EN: "Internet Information Services\Web Management Tools\IIS Management Console"

      • RU: "Службы IIS\Средства управления веб-сайтом\Консоль управления IIS"

    • Настройка протокола https: создать или указать необходимый сертификат и добавить серверные привязки (bindings)

  • После включения компонентов установите .NET Core Runtime & Windows Server Hosting bundle (см. ниже)

Для установки компонентов IIS перейдите Панель управления\Программы\Программы и компоненты, нажмите Включение или отключение компонентов Windows.

image013

В открывшемся окне найдите группу Службы IIS

image014

В ветке Службы интернета/Безопасность включите Проверка подлинности Windows.

image015

В консоли IIS (Internet Information Services Manager) необходимо настроить поддержку протокола https. В корневом каталоге выберите пункт Сертификаты сервера.

image007

Открыв его, в правом верхнем углу нажмите Создать самозаверенный сертификат…​.

image008

В появившемся окне введите понятное имя сертификата, например, server_name, и нажмите ОК.

image009
image010

Далее выберите узел сайта в дереве, обычно это Default Web Site. В правом меню выберите пункт Привязки.

В открывшемся окне, если нет пункта с типом https, нажмите Добавить.

image011

Заполните настройки привязки: Тип – https, Сертификаты SSL – укажите созданный выше сертификат, в примере он имеет имя https.

image012
Установите .NET Core Runtime & Windows Server Hosting bundle
  • Установка описана в документации на сайте Microsoft:

    • Перейдите на страницу загрузки. В разделе Runtime 3.1.x найдите последнюю доступную версию (обычно сверху), скачайте и установите Runtime & Hosting Bundle для Windows по ссылке "Hosting Bundle" (на картинке ниже).

      image088
      На странице со списком версий не выбирайте preview-версию.
      Устанавливайте .NET Core Hosting bundle ТОЛЬКО после установки и настройки IIS. Исправление описано в разделе Возможных проблем.

      При установке потребуется подключение к интернету.

    • Далее требуется перезапустить сервер или в консоли, запущенной от имени Администратора, выполнить две команды: net stop was /y, а затем net start w3svc.

3.2. Создание учётной записи для работы пула приложений и системных сервисов

Веб-сервисы (пул приложений) и системный сервис должны выполняться от выделенной учетной записи.

При наличии домена (Active Directory) рекомендуется создать учетную запись в домене. Типичное название учетной записи tessa, права в домене по умолчанию.

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

Созданную учетную запись необходимо включить в группу IIS_IUSRS на сервере приложений, а также рекомендуется дать права администратора на данном сервере. При отсутствии такой возможности необходимо дать права пользователя и как минимум доступ на чтение папки и вложенных подпапок в C:\inetpub\wwwroot\tessa (см. далее настройку сервера приложений). В зависимости от конфигурации сервера могут потребоваться дополнительные права. Рекомендуется в таком случае выполнять первичную установку с правами администратора, которые затем ограничить.

3.3. Установка и конфигурирование сервера приложений и веб-сервисов системы

Здесь и далее физически пути к файлам и директориям внутри сборки будут даваться относительно верхней директории сборки. Если вы распаковали архив со сборкой в папку C:\Tessa\Build3.0, то указание директории Applications\SchemeEditor означает директорию C:\Tessa\Build3.0\Applications\SchemeEditor.
  1. В Диспетчер служб IIS создать новый пул приложений в IIS. Назовите его tessa и настройте его на работу Без управляемого кода и на работу от учетной записи "tessa".

    Для настройки учетной записи необходимо выбрать созданный в предыдущем пункте пул приложений и нажать Дополнительные параметры…​:

    image059

    В открывшемся окне в поле Удостоверение нажать на кнопку с изображением трех точек:

    image060

    Выбрать Особая учетная запись, нажав на кнопку Установить…​ откроется окно, где необходимо указать учетную запись (в формате имя домена\имя учетной записи и пароль):

    image061

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

  2. Убедитесь, что веб-сайт Default Web Site запущен (щелкаем правой кнопкой на сайте, далее Управление веб-сайтом→Начало).

  3. Создайте папку C:\inetpub\wwwroot\tessa.

  4. Скопируйте в нее из папки сборки Services всё содержимое, т.е. подпапку web, файлы app.json, localization.json, а также файл лицензии с расширением .tlic.

  5. Далее в диспетчере IIS вы увидите Default Web Site и вложенную в него папку tessa\web. Папку необходимо преобразовать в приложение через контекстное меню и указать в настройках пул приложений tessa:

    image019
    image019 1
  6. На уровне корневой папки tessa в разделе Параметры SSL включите флажок Требовать SSL, сертификаты клиента: игнорировать.

  7. Затем на уровне приложения web в разделе Проверка подлинности включите Анонимная проверка подлинности и Проверка подлинности Windows, а все остальные отключите.

3.4. Генерация нового токена безопасности веб-сервиса системы

После установки и конфигурации веб-сервиса, для него нужно сгенерировать и установить новую подпись токена безопасности. Для генерации новой подписи токена нужно использовать команды консольной утилиты tadmin GetKey / SetKey (в сборке в папке Tools или linux/tools), которые упрощают процесс смены подписи.

Рекомендуется изменять подпись токена безопасности сразу после установки и далее каждый месяц (по умолчанию в начале каждого месяца пользователю Admin на почту приходит письмо-напоминание по смене токена). Также убедитесь, что доступ к конфигурационному файлу app.json имеет только администратор сервера.
Подпись токена безопасности используется для подписания и проверки информации по сессиям пользователя и по правам доступа к карточкам и другим объектам системы. Если злоумышленнику окажется известна подпись, установленная на сервере, то он сможет предоставить себе любые права до момента, когда подпись будет изменена.
Токен безопасности генерируется и устанавливается автоматически если конфигурация устанавливается с использованием Setup.bat (или обновляется с использованием Update.bat). В этом случае, генерацию токена можно пропустить.

Если сервис установлен на Windows и расположен в папке C:\inetpub\wwwroot, то запустите командную строку от имени администратора. Если сервис в папке, не требующей административный доступ, то запустите командную строку от пользователя, имеющего доступ к папке веб-сервиса. Перейдите в папку с консольной утилитой tadmin:

cd /D "C:\Tessa\tessa-3.5.0\Tools"

Теперь запустите команду GetKey, которая генерирует новую подпись, и направьте результат в команду SetKey, указав ей папку базовую папку для сервисов. Например:

tadmin GetKey Signature|tadmin SetKey Signature "/path:C:\inetpub\wwwroot\tessa"
tadmin GetKey Cipher|tadmin SetKey Cipher "/path:C:\inetpub\wwwroot\tessa"

В результате будет отображено сообщение об успешной замене токена:

Replacing key Signature in: C:\inetpub\wwwroot\tessa
New value: X/RVy4P8m7SN1+lwGC9tfB+xxfb5w43Z2GqpM7yiZnixznqB5OExystLNpYtSNeMkC3PgmubFtwB/KI/M+oh2A==
Key Signature has been replaced in files (1): "C:\inetpub\wwwroot\tessa\app.json"

Replacing key Cipher in: C:\inetpub\wwwroot\tessa
New value: qaX7tIKu9DQqey09X7HzG3Q4krZtB4Om2izNYnC3PF4=
Key Cipher has been replaced in files (1): "C:\inetpub\wwwroot\tessa\app.json"
Если будет выведена ошибка доступа к файлу, то проверьте права доступа к папке для пользователя, от имени которого была запущена командная строка.
Введите команду tadmin GetKey Signature, чтобы сгенерировать новую подпись токена и вывести её на экран. Её можно будет скопировать и заменить вручную.

Теперь перезапустите пул приложений. Если вы запускали командную строку от имени администратора, то перезапустить пул вы можете следующей командой, где в параметре /apppool.name: указывается имя перезапускаемого пула приложений:

"%windir%\system32\inetsrv\appcmd.exe" recycle apppool /apppool.name:tessa

3.5. Настройка конфигурационного файла

Далее необходимо настроить параметры конфигурационного файла веб-сервиса. Конфигурационный файл называется app.json и находится в папке: c:\inetpub\wwwroot\tessa\app.json.

При написании файлов app.json необходимо учитывать следующие особенности. Должен выполняться эскейпинг символа обратного слэша, т.е. пишем \\ вместо одного \, это часть стандарта JSON. В начале любого из значений можно написать символ @, это вставит путь к папке с текущим файлом app.json и обратным слэшом. Например, файл лежит в папке c:\inetpub\wwwroot\tessa и есть настройка с путём к файлу лицензии @Syntellect.tlic, то после обработки файла значение будет равно c:\inetpub\wwwroot\tessa\Syntellect.tlic. Это применимо к любым настройкам в app.json, но не является частью стандарта JSON и не будет работать для других .json-файлов. Для того, чтобы в начале значения действительно вставить символ @ вместо пути, то его надо написать дважды @@.

В файле необходимо настроить следующие параметры (выделено желтым):

Параметр

Описание

Строка подключения.

Для подключения к SQL Server с использованием Windows аутентификации:
  "ConnectionStrings": {
        "default": "Server=.\\SQLEXPRESS; Database=tessa; Integrated Security=true; Connect Timeout=200; pooling='true'; Max Pool Size=200; MultipleActiveResultSets=true;"
    }
Для подключения с использованием пользователя SQL Server:
  "ConnectionStrings": {
        "default": "Server=.\\SQLEXPRESS; Database=tessa; Integrated Security=false; User ID=sa; Password=master; Connect Timeout=200; pooling='true'; Max Pool Size=200; MultipleActiveResultSets=true;"
    }
Для подключения с использованием пользователя SQL Server и указанием номера порта (1433 - номера порта по умолчанию для протокола TCP/IP):
  "ConnectionStrings": {
        "default": "Server=.\\SQLEXPRESS,1433; Database=tessa; Integrated Security=false; User ID=sa; Password=master; Connect Timeout=200; pooling='true'; Max Pool Size=200; MultipleActiveResultSets=true;"
    }
Для подключения с использованием пользователя PostgreSQL:
  "ConnectionStrings": {
        "default": [ "Host=localhost; Database=tessa; Integrated Security=false; User ID=postgres; Password=Master1234; Pooling=true; MaxPoolSize=100", "Npgsql" ]
  },

Строка подключения к базе данных Tessa в формате Sql Server Connection string/PostgreSQL connection strings.

Не забывайте, что подключение к MS SQL Server в случае использования Windows аутентификации (Integrated Security=true) будет происходить от учетной записи, от которой запущен пул приложений, обычно это domain\tessa, которой надо дать соответствующие права в настройках MS SQL Server (dbowner на базу tessa). Для MS SQL Server схемой по умолчанию для учетной записи должна быть dbo.

"ServerCode": "tessa"

Код сервера. Для разных инсталляций Tessa указывайте разные коды приложений, например, "prod" или "qa". Код сервера используется для формирования ссылок tessa:// для desktop-клиента, при этом код сервера в Tessa Applications и на сервере должны совпадать. Также код сервера используется для разделения глобального кэша метаинформации между процессами, поэтому при использовании на сервере приложения нескольких экземпляров системы, укажите для каждого из них отличающийся код сервера. Подробнее по установке второго сервиса на одном сервере приложений см. в разделе Установка второго экземпляра Tessa на этом же сервере приложений.

"LicenseFile": "@*.tlic"

Ссылка на присланный вам файл лицензии. По умолчанию используется файл с расширением .tlic в папке рядом с конфигурационным файлом, поэтому достаточно скопировать файл лицензии в эту папку на сервере. Если файл лицензии должен лежать в другой папке, то путь к нему вы можете записать в этом параметре. Если файл лежит рядом с файлом app.json, то перед именем файла необходимо поставить @.

Ключ для подписи токена безопасности.

"SignatureKey": "b2AeHjUWpuqCKf9cGWQogBqKTdUm/F
WVNkcB/VdZD62r01q5vY3S4Cp4C378Au1obKPgqQH/onMLiefuFKiSKQ=="

Base64 представление ключа шифрования, используемого для подписи маркера безопасности. Ключ шифрования может быть произвольным набором байт. Рекомендуется использовать секретный ключ длиной 64 байта. Рекомендуется изменять значение посредством приложения tadmin (описано в разделе Генерация нового токена безопасности веб-сервиса системы).

"LimitMaxThreads": true

Признак того, что максимальное число потоков для каждой параллельной операции, такой как конвертация файла, ограничивается до безопасного значения. Указание "true" (рекомендуется) резервирует одно ядро при таких операциях, обеспечивая стабильное время реакции на другие запросы, пока выполняется длительная параллельная операция.

"HealthCheckIsEnabled": true

Признак того, что доступна проверка здоровья веб-сервиса по адресу /check (например, https://localhost/tessa/web/check). При переходе по такому адресу выводится подробная информация по серверу (включая операционную систему и версию .NET), а также выполняется ряд проверок для сервисов карточек и представлений без аутентификации пользователя. Для production-установки рекомендуется указать false для повышения безопасности. Независимо от значения, указанного для этой настройки, по адресу /hcheck возможна быстрая проверка работоспособности веб-сервиса, в т.ч. возможность принимать HTTP-запросы и наличие соединения с базой данных, при этом возвращается только состояние "здоров/не здоров", что не влияет на безопасность.

"SwaggerDocIsEnabled": true

Признак того, что доступна автоматическая документация по всем доступным HTTP-методам (в т.ч. REST) по адресу /swagger (например, https://localhost/tessa/web/swagger). Для production-установки рекомендуется указать false для повышения безопасности.

"ViewAccessCacheTimeSpan": "0.01:00:00"

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

"Redis": ""

Строка подключения к серверу Redis, в простом случае - адрес сервера, который будет использован для синхронизации серверных кэшей, что актуально при установке в кластере. Укажите пустую строку, если сервер Redis не используется. В качестве допустимых адресов возможно указать "localhost", IP-адрес или DNS-имя сервера Redis, и опционально номер порта после двоеточия: "127.0.0.1:6379" (6379 - порт по умолчанию). Все возможные настройки в строке подключения перечислены в документации, причём мы рекомендуем указать логин/пароль и защищённое подключение по SSL/TLS или отдельно ограничить доступ к серверу Redis по сети (различные настройки перечисляются через запятую): https://stackexchange.github.io/StackExchange.Redis/Configuration.html#configuration-options

"ProbingPath": "extensions"

Относительный путь к папке, внутри которой будет выполнен поиск сборок .dll в дополнение к основной папке веб-сервиса. Может быть указано несколько папок через точку с запятой.

"ServerDependencies": "Tessa.Server.TessaServerDependencies, Tessa.Server"

Полное имя типа с указанием имени сборки, который реализует интерфейс ITessaServerDependencies для определения дополнительных зависимостей для использования в расширениях. Оставьте значение по умолчанию, кроме случаев, когда вы реализуете собственный класс, реализующий указанный интерфейс.

"WebControllers": [ "Tessa.Extensions.Server.Web.dll" ]

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

"Configuration.Sealed": false

Режим неизменяемой конфигурации. Административный импорт любых объектов конфигурации (в т.ч. карточек) и изменение C# и SQL-скриптов невозможны в таком режиме. Рекомендуется установить для production-конфигурации, в которой необходимо ограничить возможности администраторов системы. В процессе обновления конфигурации необходимо обязательно отключить такую настройку в конфигурационном файле сервере и перезапустить веб-сервисы.

"Configuration.StrictSecurity": false

Режим повышенной безопасности, отключающий просмотр структуры карточек и некоторые административные возможности, в т.ч. административный импорт из TessaClient и изменение C# и SQL-скриптов. Рекомендуется использовать на production-сервере только при наличии соответствующих требований. Не используйте этот режим для инсталляций, в которых это явно не требуется.

"PathBase": ""

Указывается базовый путь до веб-приложения если оно не запущено под IIS. Например, если путь до веб-сервиса был установлен как "https://localhost/tessa/web", то укажите в этой настройке значение "/tessa/web".

"GuyFawkesAuth": "tessa/web"

Указывается путь до веб-приложения в IIS для аутентификации в web-клиенте. Настройка не влияет на desktop-клиент. Например, если веб-сервис с именем "web" расположен внутри папки "tessa", то укажите в этой настройке значение "tessa/web". Также укажите настройку "WinAuthIsEnabled", равную true.

"WinAuthIsEnabled": true,
"WinAuth": "tessa/tw_winauth"

Указывается путь до отдельного веб-приложения в IIS с включённой Windows аутентификацией и отключённой анонимной аутентификацией для использования в web-клиенте. Настройка не влияет на desktop-клиент. Информация по настройке Windows аутентификации в web-клиенте доступна в разделе Настройка Windows аутентификации.

"PreviewPdfEnabled": true

Признак того, что в web-клиенте используется предпросмотр PDF (или конвертируемых в PDF форматов, таких как doc, docx, tiff и др.) в области предпросмотра файлов в карточках. Если указано true, то при запуске приложения в кэш браузера на клиенте загружается код компонента по предпросмотру PDF.

Значение false может использоваться для экономии трафика при первом запуске на слабых каналах, в таком случае компонент не будет загружен на клиент, но предпросмотр файлов PDF (и конвертируемых в PDF форматов) будет недоступен для всех пользователей web-клиента (файлы можно будет посмотреть по кнопке "Скачать").

Рекомендуется оставить значение по умолчанию true, если явно не выявлено, что такая экономия трафика заметно влияет на скорость открытия web-клиента, при этом предпросмотр файлов в PDF не требуется.

"CryptoProPluginEnabled": false

Признак того, что в web-клиенте используется плагин браузера КриптоПро для подписания файлов ЭП (электронной подписью) в web-клиенте. Настройка не влияет на desktop-клиент. Информация по настройке ЭП в web-клиенте доступна в разделе ЭП - электронная подпись.

"WinAutoLogin": true

Автоматически выполнять вход в систему если доступна Windows аутентификация.

"ExtensionTracingMode": "Off"

Режим трассировки серверных расширений для API карточек. Оставьте значение "Off" до тех пор, пока не потребуется определить время выполнения расширений или их порядок, причём включать настройку можно только на тестовом контуре (не на production). Информация по доступным режимам трассировки указана в руководстве разработчика.

"CheckPlatformVersion": true

Признак того, что приложения desktop-клиента TessaClient и TessaAdmin при запуске должны проверять точное совпадение версии платформы со своей версией. Это предотвращает возможные ошибки настройки, например, если при обновлении платформы забыли опубликовать новые версии приложений. Настройка не влияет на приложение Tessa Applications, утилиту tadmin и на web-клиент. Рекомендуется оставить значение по умолчанию true.

"UserWallpaperName": "Wallpaper"

Имя файла с фоновым изображением без указания расширения, который прикладывается как файл к карточке сотрудника при установке фона в web-клиенте. Настройка не влияет на desktop-клиент.

"WallpaperSizeKb": 600

Максимальный размер файла с фоновым изображением в Кб, который пользователь может загрузить на сервер при установке фона в web-клиенте. Настройка не влияет на desktop-клиент.

"MultipartBodyLengthLimit": 2147483648

Максимальный размер файла, который может быть приложен к карточке в web-клиенте. По умолчанию 2 Гб. При задании значения больше указанного возможны проблемы, связанные с конфигурацией браузеров. Настройка не влияет на desktop-клиент. Рекомендуется не изменять эту настройку, и использовать ограничение на размер файла, указываемое в карточке настроек "Настройки сервера".

"EnableInterprocessCache": true

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

Если вы используете один рабочий процесс (один процесс пула приложений или один процесс-демон на Linux), то вы можете указать false для незначительного прироста производительности в процессе изменения метаинформации (т.е. при изменениях через конструкторы в приложении TessaAdmin или через карточки настроек, виды документов и некоторые другие системные карточки).

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

Во всех остальных случаях рекомендуется оставить значение true.

"InstanceCheckSeconds": 300

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

"InstanceShutdownSeconds": 86400

Максимальное количество секунд, в течение которого используются зависимости в серверном контейнере UnityContainer. По завершении этого периода времени в процессе очередной проверки (приблизительно каждые InstanceCheckSeconds секунд) будет пересоздан контейнер со всеми зависимыми сервисами и расширениями. По умолчанию указано 24 часа. Рекомендуется не изменять эту настройку, проконсультируйтесь с вендором при необходимости.

3.5.1. Параметры подключения к LDAP

В конфигурационном файле app.json в группе "LDAP" содержатся настройки для подключения к службам каталогов LDAP, таким как Active Directory, Novell Directory Services, OpenDC, ApacheDC и др. Службы LDAP могут использоваться при входе в систему для проверки логина/пароля. Установите следующие параметры, если потребуется обеспечить вход для сотрудников с типом входа "Пользователь LDAP".

Параметр

Описание

"Enabled":  false

Признак того, что подключение к LDAP по указанным настройкам разрешено. Установите true, если используете аутентификацию в LDAP.

"UseSsl":  true

Признак того, что используется защищённое подключение по протоколу SSL.

"Url":  "localhost"

Имя сервера LDAP или его URL-адрес, который используется сервером приложений для подключения.

"Port":  null

Порт, по которому выполняется подключение (номер порта указывается без кавычек). Если значение равно null, 0 или отрицательное число, то используется порт по умолчанию в зависимости от настройки UseSsl: если "UseSsl": true, то порт 636; если "UseSsl": false, то порт 389.

"TimeoutMilliseconds":  null

Таймаут подключения в миллисекундах (значение указывается без кавычек). Если значение равно null, 0 или отрицательное число, то используется таймаут по умолчанию в зависимости от сервера LDAP (обычно около 5 секунд).

"BindDn":  "uid=admin,ou=system"

Имя пользователя (DN), от которого выполняется подключение к службам LDAP для поиска сотрудника с его последующей аутентификацией. Значение зависит от используемого сервера LDAP и от его настроек. Укажите любую учётную запись с известным паролем, которая может выполнять поиск записей в дереве домена.

"BindCredentials":  "secret_password"

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

"SearchBase":  "dc=example,dc=com"

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

"SearchFilter":  "(&(objectClass=person)(cn={0}))"

Строка с фильтром, используемая для поиска сотрудника. Вместо {0} в строку подставляется поле "Аккаунт" из карточки сотрудника, оно же - введённый пользователем логин (без учёта регистра символов). В значении по умолчанию выполняется поиск всех сотрудников с классом "person" и значением "Common Name" (он же "cn"), равным искомому логину.

Вместо "cn" можно выполнять поиск по другим атрибутам, а также проверять принадлежность нескольким классам:

(&(objectClass=user)(objectClass=person)(TessaLogin={0}))

Для подключения к Active Directory обычно используют строку следующего вида (причём имя учётной записи для логина используется без указания домена, т.е. "User" вместо "DOMAIN\User"):

(&(objectCategory=person)(objectClass=user)(sAMAccountName={0}))

Пример настройки для сервера LDAP:

"LDAP": {
    "Enabled": true,
    "UseSsl": false,
    "Url": "ipa.test.com",
    "Port": null,
    "TimeoutMilliseconds": null,
    "BindDn": "uid=user,cn=sysaccounts,cn=etc,dc=ipa,dc=test,dc=com",
    "BindCredentials": "Master1234",
    "SearchBase": "cn=users,cn=accounts,dc=ipa,dc=test,dc=com",
    "SearchFilter": "(&(objectClass=person)(uid={0}))"
},

Пример настройки для сервера Active Directory:

"LDAP": {
    "Enabled": true,
    "UseSsl": false,
    "Url": "server.domain.local",
    "Port": null,
    "TimeoutMilliseconds": null,
    "BindDn": "DC\\User",
    "BindCredentials": "Master1234",
    "SearchBase": "dc=domain,dc=local",
    "SearchFilter": "(&(objectClass=person)(sAMAccountName={0}))"
},

3.5.2. Настройка ограничений и таймаутов WebServerLimits

В конфигурационном файле app.json в группе "WebServerLimits" содержатся настройки с таймаутами, ограничениями по максимальному размеру HTTP-запросов/ответов, и другие ограничения, применяемые к веб-сервису Tessa.

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

Изменение настроек из таблицы изменяет соответствующую настройку веб-сервера Kestrel, на базе которого построен веб-сервис Tessa. Для описания таких настроек Kestrel обратитесь к документации MSDN.

Настройки в этом разделе неприменимы при установке TESSA на Windows в связке с веб-сервером IIS. В этом случае будут использоваться исключительно настройки IIS, для TESSA не поднимается отдельный сервис Kestrel.

Параметр

Описание

"MaxResponseBufferSizeBytes":  65536

Максимальный размер буфера в байтах для ответа на запрос перед тем, как начинается отправка по сети. По умолчанию 64 КиБ (65 536 байт). Укажите null, чтобы не ограничивать размер буфера. Укажите 0, чтобы не использовать буферизацию перед отправкой.

"MaxRequestBufferSizeBytes":  1048576

Максимальный размер буфера в байтах для запроса. По умолчанию 1 МиБ (1 048 576 байт). Укажите null, чтобы не ограничивать размер буфера.

"MaxRequestLineSizeBytes":  8192

Максимальный размер строки запроса HTTP. По умолчанию 8 КиБ (8 192 байт).

"MaxRequestHeadersTotalSizeBytes":  32768

Максимальный совокупный размер заголовков в HTTP запросе. По умолчанию 32 КиБ (32 768 байт).

"MaxRequestHeaderCount":  100

Максимальное количество заголовков в HTTP запросе. По умолчанию 100 заголовков.

"MaxRequestBodySizeBytes":  30000000

Максимальный размер в байтах для тела HTTP запроса. По умолчанию 28.6 МиБ (30 000 000 байт). Ограничено отключено для методов с потоковой передачей (такой как сохранение карточки с файлами или импорт библиотек локализации), а также для методов контроллеров, реализованных в рамках проекта, в которых задан атрибут DisableRequestSizeLimit.

"KeepAliveTimeoutSeconds":  120

Таймаут в секундах на поддержание соединения (т.н. keep alive). По умолчанию 120 секунд.

"RequestHeadersTimeoutSeconds":  30

Максимальное время в секундах, в течение которого сервер ожидает получения HTTP заголовков. По умолчанию 30 секунд.

"MaxConcurrentConnections":  null

Максимальное количество одновременно открытых соединений. Укажите null, чтобы не ограничивать количество соединений. По умолчанию указано null.

"MaxConcurrentUpgradedConnections":  null

Максимальное количество одновременно открытых соединений, которые были обновлены для использования другого протокола (например, на WebSockets). Укажите null, чтобы не ограничивать количество соединений. По умолчанию указано null.

"MinRequestBodyDataRateBytesPerSecond":  240.0

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

"MinRequestBodyDataRateGraceSeconds":  5

Интервал времени в секундах, для которого измеряется средняя скорость получения данных HTTP запроса от клиента MinRequestBodyDataRateBytesPerSecond. По умолчанию 5 секунд.

"MinResponseDataRateBytesPerSecond":  240.0

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

"MinResponseDataRateGraceSeconds":  5

Интервал времени в секундах, для которого измеряется средняя скорость отправки данных HTTP ответа MinResponseDataRateBytesPerSecond. По умолчанию 5 секунд.

3.6. Предварительная настройка Chronos

Chronos – системный сервис, который необходим для корректной работы некоторых компонентов системы. Он занимается периодическим расчетом замещений, рассылкой почтовых уведомлений и т.д.

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

Скопируйте папку сборки Chronos в SYSTEM_VOLUME:\tessa\, где SYSTEM_VOLUME - основной раздел сервера, на котором установлена система. Полный путь к запускаемому файлу будет C:\tessa\Chronos\Chronos.exe (если C: - системный диск). Позже Chronos будет установлен как служба Windows.

Далее необходимо указать строку подключения к базе данных в файле Chronos\app.json. За информацией о настройках в файле app.json обратитесь к разделу Настройка конфигурационного файла (параметры конфигурационных файлов веб-сервиса web\app.json и Chronos аналогичны).

Не забудьте скопировать файл лицензии .tlic в папку Chronos.

3.7. Установка конфигурации

Для импорта конфигурации и первичной настройки воспользуемся утилитой автоматизированной установки и настройки системы tadmin.exe.

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

  • Если пустая база данных была создана заранее (стандартными средствами через SQL Server Management Studio (далее SSMS)/pgAdmin), то подключение к БД должно быть от учётной записи, у которой есть права на использование созданной базы данных tessa (в т.ч. можно использовать встроенную учётную запись sa/postgres).

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

Подробное описание доступных команд для консольной административной утилиты tadmin.exe см. в Руководстве администратора.

В конфигурационном файле Tools\app.json укажите подключение к SQL Server/PostgreSQL в группе настроек ConnectionStrings аналогично настройкам, заданным в Настройка конфигурационного файла.

Теперь запустите Setup.bat из папки сборки. Если сервис установлен на Windows и расположен в папке C:\inetpub\wwwroot, то запустите имени администратора. Если сервис в папке, не требующей административный доступ, то запустите от пользователя, имеющего доступ к папке веб-сервиса. Будет предложено указать адрес подключения, или нажмите клавишу Enter, чтобы использовать адрес по умолчанию:

image053

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

Если ввести имя базы данных и нажать Enter, то эта база данных будет использоваться вместо той, что указана в конфигурационном файле. При этом база данных будет создана средствами скрипта, поэтому в строке подключения к БД должна использоваться учётная запись, позволяющая создавать базы данных, например, sa/postgres, либо другая роль, имеющая разрешение dbcreator.

Затем, аналогично, укажите путь для файлового хранилища на диске. Или оставьте значение по умолчанию, нажав на клавишу Enter.

К указанной папке файлового хранилища должны быть права на чтение и на запись у созданной выше учётной записи tessa, от имени которой работают пулы приложений и Chronos.

Далее укажите смещение часового пояса во временной зоне по умолчанию в минутах. Например, для часового пояса UTC+02:00 укажите 120 (2 часа умножить на 60 минут в часе). Нажмите Enter, чтобы использовать смещение по умолчанию 180 (для UTC+03:00). После установки вы можете изменить смещение в карточке настроек "Временные зоны".

После этого, укажите путь до веб-сервиса Tessa. Нажмите Enter, чтобы использовать путь по умолчанию.

Затем, аналогично, укажите путь до сервиса Chronos. Или оставьте значение по умолчанию, нажав на клавишу Enter.

Если в процессе создания БД будут ошибки, выведется соответствующее сообщение с указанием пути к файлу лога. Например, если вы по запросу скрипта ввели имя БД tessa, причём эта же БД существовала на момент запуска скрипта, то будет выведено сообщение:

image054

Исправьте причину ошибки, после чего перезапустите скрипт.

При успешном завершении установки выводится сообщение "Tessa is installed". Можно нажать любую клавишу, чтобы закрыть окно, и проверить установку.

image057

3.8. Проверка работоспособности веб-сервисов

Откройте веб-браузер и откройте страницу по адресу: https://SERVER_NAME/tessa/web/check (замените SERVER_NAME на сетевое имя сервера приложений).

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

Откроется страница примерно следующего содержания. Если на странице не заметно ошибок при проверке карточек или представлений (строки снизу), то веб-сервис корректно настроен.

image084

3.9. Установка Chronos

Chronos – системный сервис, который необходим для корректной работы некоторых компонентов системы. Он занимается периодическим расчетом замещений, рассылкой почтовых уведомлений и т.д.

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

Чтобы установить Chronos как службу Windows и сразу запустить его, выполните с правами администратора командный файл install-and-start.bat:

image087 1

В случае успешной установки будет выведено:

image087 2

Закройте консоль нажатием любой клавиши. Откройте приложение "Службы" (нажмите Win+R, введите services.msc). Найдите службу с именем "Syntellect Chronos". Это установленная служба сервиса Chronos, её можно останавливать, запускать и перезапускать ссылками под именем службы в левой части окна.

image087 3

По умолчанию служба установлена со следующими параметрами:

  1. Способ запуска: автоматически (при запуске системы)

  2. Учётная запись: LocalSystem

  3. Запуск службы Chronos выполняется из той же папки, из которой она установлена

Если требуется изменить параметры службы перед первым запуском (например, указать другую учётную запись), то вместо файла install-and-start.bat запустите файл install.bat в той же папке. Далее откройте приложение "Службы", найдите службу с именем "Syntellect Chronos", измените её параметры в контекстном меню "Свойства", и запустите службу вручную.

Если вы хотите изменить имя службы, или установить несколько служб Chronos (для разных инсталляций Tessa), то откройте командный файл install-and-start.bat или install.bat в блокноте, и измените выделенные две строки:

image087 4
  1. ServiceName - это алиас сервиса, используемый в командной строке для утилиты sc.exe (см. ниже). Должен быть уникален в пределах сервера.

  2. ServiceDisplayName - это отображаемое имя сервиса, которое выводится в окне приложения "Службы". Должно быть уникально в пределах сервера.

После установки службы вы можете управлять её состоянием, используя утилиту командной строки sc.exe вместо приложения "Службы". Подробнее параметры утилиты описаны в документации Microsoft.

Например, команда sc.exe query <ServiceName> выводит текущее состояние службы (на скриншоте RUNNING - служба запущена).

image087 5

Для удаления службы (с вежливой остановкой перед удалением, если служба запущена) запустите командный файл uninstall.bat от имени администратора в папке сервиса. Если вы изменяли строку ServiceName при установке сервиса, то перед запуском отредактируйте командный файл и задайте в нём вашу строку.

image087 6

После остановки и удаления службы вы увидите сообщения следующего вида. Закройте окно консоли. Служба "Syntellect Chronos" должна исчезнуть в приложении "Службы" после обновления списка служб (клавиша F5).

image087 7

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

3.10. Проверка работоспособности системы

Запустите приложение Applications\TessaAdmin\TessaAdmin.exe с параметрами (замените SERVER_NAME на сетевое имя сервера приложений):

TessaAdmin.exe /a:https://SERVER_NAME/tessa
Если вы запускаете TessaAdmin на том же сервере, где установлены сервисы, то запуск можно производить без параметров (т.е. приложение запустится с подключением к адресу по умолчанию https://localhost/tessa).

Система запросит данные для аутентификации в системе, укажите логин: admin, пароль: admin (далее в справочнике сотрудников логин/пароль можно будет изменить или заменить на windows аутентификацию, см. Руководство Администратора СЭД Tessa). Приложение Tessa Admin запустится и вы увидите подобное окно:

image020

Если все в порядке, закройте приложение. Аналогично можно проверить приложение TessaClient.

Для проверки работы web-клиента необходимо перейти по адресу https://localhost/tessa/web. Должно открыться окно логина (если окно логина сразу не откроется, попробуйте подождать пару минут и перезапустить IIS):

image062

Введите логин/пароль для аутентификации в системе Tessa. Для пользователей с типом входа в систему - Windows логин следует указывать с именем домена, например: domain\TessaUser.

После успешной аутентификации в web-клиенте будет открыто рабочее место:

image063

Вы успешно установили и настроили типовую конфигурацию платформы Tessa. Последующие подпункты в этом пункте можно пропустить, они затрагивают импорт конфигурации вручную (без помощи скрипта Setup.bat).

Обновление конфигурации при переходе на новую сборку платформы описано в Руководстве администратора.

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

3.11. Установка системы вручную (не рекомендуется для типовой конфигурации)

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

3.11.1. Импорт схемы данных

Запустите приложение Applications\SchemeEditor\SchemeEditor.exe. Выберите меню Файл\Открыть\Файл…​. В появившемся диалоге выберите файл Configuration\Scheme\Tessa.tsd. Откроется окно добавления схемы с указанием включенных библиотек:

image002 1

После нажатия на кнопку ОК схема будет открыта:

image002

Далее нажмите в меню Файл\Сохранить как…​\Базу данных…​ и в диалоге выберите используемую СУБД, введите параметры подключения к базе данных:

image003

Вы получите вот такое сообщение:

image004

Нажмите кнопку Да. Система создаст необходимые для работы приложения системные объекты и вы увидите диалог:

image005

Нажмите кнопку Сохранить. Система начнет создавать объекты базы данных и по мере ее работы успешно созданные объекты будут заливаться зеленым. Через несколько секунд, когда все будет завершено, окно будет выглядеть так:

image006

Нажмите кнопку Закрыть и закройте приложение SchemeEditor.

3.11.2. Импорт библиотек локализации

Для начала нужно импортировать библиотеки локализованных констант. Для этого запустите приложение Tessa Admin из папки Applications\TessaAdmin, указав логин admin и пароль admin. Необходимо перейти на вкладку Локализация. В верхнем меню нужно выбрать пункт Импорт, а в выпавшем меню нажать по кнопке Импорт из файла.

image024

В появившемся окне перейдите в папку из сборки Configuration\Localization и, выбрав все файлы (например, выделив первый и нажав Ctrl+A), нажмите Открыть.

image025

Далее в верхнем меню необходимо нажать на кнопку Сохранить всё (с дискетой) и дождаться пока система закончит сохранение библиотек локализаций.

image026

3.11.3. Импорт типов карточек и заданий

Теперь необходимо импортировать типы карточек и заданий. Для этого перейдите на вкладку Карточки и нажмите кнопку Импорт - Импортировать типы…​ В выбранном окне перейдите в папку из сборки Configuration\Types\Cards и, выбрав все файлы, нажмите Открыть.

image027

Добавленные типы карточек отобразятся в дереве жирным и со знаком *:

image028

Нажмите кнопку Сохранить всё, чтобы сохранить импортированные типы карточек. Повторите эту операцию для папки Configuration\Types\Tasks из сборки.

image029

Повторите эту операцию для папки Configuration\Types\Files из сборки.

image030

3.11.4. Импорт карточек

Для импортирования карточек нужно использовать Tessa Admin, выбрав пункт Импорт - Импортировать карточки…​ в строке меню на вкладке Карточки.

В появившемся окне нажимаем кнопку Открыть image031 и указываем путь к библиотеке карточек из сборки Configuration\Cards\Tessa.cardlib. В окне импорта появятся карточки из выбранной библиотеки.

image032

Нажимаем "Импортировать отмеченные карточки". При успешном завершении процесса импорта появится окно с подобным сообщением:

image033

3.11.5. Импорт представлений

Теперь проведём импорт представлений. Для этого перейдите на вкладку Представления и нажмите кнопку Импорт. В появившемся окне укажите путь до папки из сборки Configuration\Views. Нажмите кнопку Выбрать все. Так же нужно установить галочку Заменить разрешения в базе данных. Затем нажмите кнопку Выполнить.

image034

Появится окно с сообщением о том, что импорт представлений завершён успешно.

image035

Обновим список в справочнике представлений и убедимся, что представления были успешно импортированы.

image036

3.11.6. Импорт рабочих мест

Теперь необходимо импортировать рабочие места. Для этого перейдите на вкладку Рабочие места и нажмите кнопку Импорт. В появившемся окне укажите путь до папки из сборки Configuration\Workplaces. Нажмите кнопку Выбрать все. Установите флажки Заменить разрешения в базе данных и Импортировать внедрённые в рабочие места файлы поисковых запросов, затем нажмите кнопку Выполнить.

image037

Появится окно с сообщением о том, что импорт рабочих мест завершён успешно.

image038

Обновим список в справочнике рабочих мест и убедимся, что рабочие места были успешно импортированы.

image039

3.11.7. Расчёт календаря

Для нормального функционирования системы – необходимо провести первичный расчёт календаря.

Расчет календаря выполняется в приложении Tessa Client. Запуск Tessa Client можно произвести после установки клиентского рабочего места (описано в данном руководстве далее) или запустив Tessa Client с параметрами (замените SERVER_NAME на сетевое имя сервера приложений):

TessaClient.exe /a:https://SERVER_NAME/tessa

Данные для аутентификации указать те же - логин: admin, пароль: admin.

Откройте карточку настроек календаря (правая панель –> Настройки – Календарь), заполните параметры (начало/конец рабочего дня, начало/конец обеденного перерыва, период действия календаря) и нажмите кнопку "Пересчитать календарь".

Рекомендуется период действия календаря установить равным двум-трем годам от текущей даты. Следует учитывать, что чем больше период расчёта календаря, тем более медленными будут операции расчёта рабочего времени.
image041

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

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

Почтовые уведомления в системе реализованы при помощи плагина сервиса Chronos. Для их настройки необходимо внести данные о способе доставки уведомлений в файл app.json, который находится в папке Chronos. Существует два способа доставки почтовых уведомлений – SMTP и Exchange.

Если необходимо, чтобы в почтовом уведомлении помимо обычной ссылки на карточку (ссылка на открытие карточки в desktop-клиенте Tessa) была также и ссылка для открытия карточки в Web клиенте, то требуется прописать Базовый адрес web-клиента в карточке настроек сервера.

4.1. Настройки SMTP

Для настройки SMTP необходимо в параметре NoticeMailer.Mode указать значение "Smtp", а также заполнить остальные параметры, название которых начинается с NoticeMailer.Smtp***:

image042

В простом случае, когда в организации используется smtp-сервер c Windows аутентификацией, достаточно задать только параметр SmtpHost. Если требуется явно задать логин/пароль пользователя, укажите также параметры SmtpUserName, SmtpPassword.

Для настройки smtp используются следующие параметры:

Параметр

Описание

SmtpPickupDirectoryLocation

Настройки для выгрузки почты в папку (используется для тестирования). В параметре указывается либо абсолютный путь: "C:\\Tessa\\MailDrop" (не забывайте про эскейпинг символа обратного слэша, т.е. пишем \\ вместо одного \, это часть стандарта JSON), либо относительный "MailDrop", тогда путь рассчитывается относительно папки с плагинами Chronos\Plugins\Tessa.

Если настройка SmtpPickupDirectoryLocation имеет указанную папку (непустая) и в NoticeMailer.Mode указано "Smtp", то файлы писем выгружаются в эту папку. Если же указано "Smtp", но папка - пустая строка "" или null, то почта отправляется по настройкам NoticeMailer.Smtp***.

SmtpHost

Задает имя почтового SMTP-сервера. У данного атрибута нет значения по умолчанию.

SmtpPort

Задает номер порта, используемый для подключения к почтовому SMTP - серверу. Значение по умолчанию - 25.

SmtpEnableSsl

Задает, используется ли протокол SSL для доступа к почтовому SMTP - серверу. Значение по умолчанию - false.

SmtpDefaultCredentials

Указывает, следует ли использовать учетные данные пользователя по умолчанию для доступа к SMTP-серверу для SMTP-транзакций. Значение по умолчанию - false.

SmtpUserName

Задает имя пользователя, используемое для проверки подлинности на почтовом SMTP - сервере. У данного атрибута нет значения по умолчанию.

SmtpPassword

Задает пароль, используемый для проверки подлинности на почтовом SMTP – сервере. У данного атрибута нет значения по умолчанию.

SmtpClientDomain

Определяет имя домена клиента, используемое запросом протокола SMTP для подключения к почтовому SMTP-серверу. У данного атрибута нет значения по умолчанию, что соответствует домену локального компьютера. Также вы можете явно указать имя localhost локального компьютера, отправляющего запрос.

SmtpFrom

Адрес, с которого будет производиться рассылка сообщений.

SmtpFromDisplayName

Задаёт имя сервиса, от которого рассылаются все почтовые уведомления (имя, которое будет отображать в письме как Отправитель).

SmtpTimeout

Таймаут подключения сервиса Chronos к SMTP-серверу в миллисекундах. Значение "0" означает таймаут по умолчанию, принятый в .NET, на текущей версии это 100 секунд (значение "100 000").

4.2. Настройки Exchange

Для настройки Exchange необходимо в параметре NoticeMailer.Mode указать значение "Exchange", также необходимо заполнить следующие параметры подключения к Exchange серверу:

Параметр

Описание

ExchangeOAuth

Ключ API, сгенерированный на сервере Exchange для аутентификации OAuth. Если указан, то логин/пароль ниже игнорируются.

ExchangeUser

Задает имя пользователя, используемое для проверки подлинности на почтовом Exchange-сервере. Параметр является необязательным, если используется аутентификация OAuth (параметр ExchangeOAuth должен быть непустой) или Windows аутентификация (параметр ExchangeOAuth пустой).

ExchangePassword

Задает пароль, используемый для проверки подлинности на почтовом Exchange–сервере. Пароль является необязательным, если на Exchange–сервере используется Windows аутентификация.

ExchangeServer

Задает адрес почтового Exchange-сервера (необязательный параметр). Если параметр не задан, сервис Chronos осуществит попытку автоматического определения адреса Exchange-сервера по имени пользователя, в этом случае имя должно быть указано в параметре ExchangeUser.

ExchangeVersion

Задает версию почтового Exchange-сервера, что определяет минимальную версию протокола, который должен поддерживать сервер Exchange. Не указывайте более новую версию, чем фактически используемая. Значение по умолчанию: Exchange2010. Другие возможные значения (проверьте, что ваш сервер Exchange обновлён до этой версии): Exchange2010_SP1, Exchange2010_SP2, Exchange2013, Exchange2013_SP1, Exchange2015, Exchange2016.

4.3. Настройки мобильного согласования

Мобильное согласование - это модуль системы, который рассылает пользователям на электронную почту расширенные уведомления с возможностью выполнять действия с заданиями по ссылкам в письме, такие как ссылки для согласования/не согласования документа, для подписания/отказа в подписании, для завершения задач и др.

Для работы модуля необходима лицензия, включающая модуль "Мобильное согласование".

Для настройки получения сервисом ответных писем мобильного согласования необходимо сначала указать режим MobileApproval.Mode - "Exchange", "IMAP" или "POP3", и далее указать настройки в соответствии с выбранным режимом.

Описание параметров можно посмотреть выше, в разделах настройки SMTP и Exhange, они аналогичны. На рисунке ниже зеленым выделены настройки, относящиеся к POP3, синим - Exchange:

image043 1

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

  1. В карточке "Настройки сервера" (см. Руководство администратора - Настройки сервера) прописать Email для мобильного согласования - адрес почтового ящика, куда необходимо отсылать ответные письма. Именно с этого почтового ящика будет выполняться скачивание писем из папки "Входящие" и выполнение действий, указанных в письмах, от имени сотрудника-отправителя письма.

  2. В карточке "Лицензия" (см. Руководство администратора - Настройка лицензий) указать сотрудников, кому будут высылаться расширенные уведомления с возможностью мобильного согласования. В карточке этих сотрудников должно быть заполнено поле "Email".

4.4. Прочие настройки

Параметр

Описание

NoticeMailer.NumberOfMessagesToProcessAtOnce

Количество обрабатываемых сообщений за один запуск NoticeMailer’а.

NoticeMailer.MaxAttemptsBeforeDelete

Количество неудачных попыток отправки сообщения до того, как оно будет удалено из папки исходящих сообщений.

NoticeMailer.RetryIntervalMinutes

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

NoticeMailer.MaxFilesSizeEmail

Максимально допустимый общий размер всех приложенных к письму файлов. Указывается в килобайтах.

NoticeMailer.MaxNumberWorkingProcesses

Максимальное количество потоков, которые используются для параллельной отправки почты. Рекомендуется использовать значение по умолчанию "1", чтобы письма отправлялись последовательно. При больших объёмах отправляемой почты её отправку можно ускорить за счёт параллельности, для этого следует увеличить значение в настройке, но не более, чем количество физических ядер (например, для 4-ядерного процессора установите значение "4").

5. Публикация приложений

По умолчанию скрипты установки Setup.bat (setup.sh) и автоматического обновления сборки Upgrade.bat (upgrade.sh) выполняют автоматическую публикацию приложений TessaClient, TessaAdmin и TessaAppManager, используя консольную команду tadmin. В этом разделе описана публикация с использованием .exe-файла приложения, если система была установлена вручную без задействования скриптов или же автоматическая публикация по каким-то причинам не подходит.

Откройте папку в командной строке Applications\TessaClient. Выполните команду, заменив SERVER_NAME на сетевое имя сервера приложений:

TessaClient.exe /publish /a:https://SERVER_NAME/tessa

Откройте папку в командной строке Applications\TessaAdmin. Выполните команду, заменив SERVER_NAME на сетевое имя сервера приложений:

TessaAdmin.exe /publish /a:https://SERVER_NAME/tessa /admin
Если сервер приложений Tessa расположен на Linux, то адрес будет иметь следующий вид: https://SERVER_NAME.

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

Также у приложения Tessa Applications есть разные дополнительные ключи, в том числе для публикации приложения с заданным логином и паролем:

Параметр Описание

/a

Задаёт базовый адрес подключения вида https://servername/tessa (для Linux - https://servername).

/u

Позволяет явно задать имя пользователя для аутентификации на сервере. Если задать несуществующее имя пользователя, то система будет всегда выдавать окно ввода логина\пароля.

/p

Позволяет явно задать пароль для аутентификации на сервере.

/g

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

/n

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

/32bit

Разрядность публикуемого приложения определяется как 32-битная. Не используйте совместно с ключом /64bit. Если ключи /32bit и /64bit не указаны, то разрядность определяется по фактической разрядности запущенного процесса приложения.

/64bit

Разрядность публикуемого приложения определяется как 64-битная. Не используйте совместно с ключом /32bit. Если ключи /32bit и /64bit не указаны, то разрядность определяется по фактической разрядности запущенного процесса приложения.

/q

Выполняет публикацию в "тихом" режиме, который полезен для автоматизации в командных файлах. В этом режиме приложение не использует графический интерфейс, и любая информация об ошибках публикации будет указана только в файле лога log.txt. Если параметр указан, то при некорректной аутентификации не выводится диалогового окна ввода логина/пароля, и в лог сразу пишется ошибка. Для запуска публикации с ожиданием завершения используйте команду start /wait ФайлПриложения.exe /publish /q <другие-параметры>. После завершения команды через переменную %errorlevel% можно получить код возврата, который будет отличен от 0 при наличии ошибок.

Пример:

TessaClient.exe /publish /a:https://SERVER_NAME/tessa /u:login /p:password "/g:Client applications" "/n:Клиент"
Если сервер приложений Tessa расположен на Linux, то адрес будет иметь следующий вид: https://SERVER_NAME.
Публикация приложения-ассистента для web-клиента описана в Руководстве администратора.

6. Инсталлятор Tessa Applications

Теперь произведём установку и настройку программных компонентов необходимых для работы на клиентском рабочем месте. Установка производится на компьютере предполагаемого пользователя. Для работы необходимо установить приложение Tessa Applications. Оно поставляется в виде инсталляционного пакета. Установка должна производиться с правами администратора. В процессе установки предыдущая версия Tessa Applications (при наличии таковой) будет удалена.

В архиве со сборкой в папке Setup расположены файлы инсталлятора, позволяющие установить приложение через диалоги "Далее-Далее-Готово", и средства для настройки инсталлятора для автоматического разворачивания, в т.ч. в домене Active Directory с использованием групповых политик.

6.1. Выбор языка и разрядности инсталлятора

Интерфейс установки и ярлык Tessa Applications будут на русском или английском языке, в зависимости от выбранной папки: Setup\en-US или Setup\ru-RU в архиве со сборкой. Однако, язык установленного Tessa Applications определяется индивидуально для сотрудника, в зависимости от его настроек в карточке сотрудника (см. Руководство администратора), и не зависит от используемого инсталлятора.

В указанных папках Setup\en-US и Setup\ru-RU есть подпапки x64 и x86, они определяют разрядность менеджера приложений, поставляемого вместе с инсталлятором (в подпапке app внутри папки инсталляции).

  • Инсталлятор из папки x86 является 32-битным, и может быть использован как на 32-битных, так и на 64-битных операционных системах на рабочих станциях пользователей.

  • Инсталлятор из папки x64 является 64-битным, он может быть запущен на 64-битных ОС, и не может быть запущен на 32-битных ОС.

  • Разрядность инсталлятора определяет папку, в которую по умолчанию устанавливается приложение. Для 32-битного инсталлятора (подпапка x86) на 32-битной ОС установка производится в папку C:\Program Files\Syntellect\Tessa Applications, а на 64-битной ОС - это папка C:\Program Files (x86)\Syntellect\Tessa Applications. При использовании 64-битного инсталлятора на 64-битной ОС будет выбрана папка C:\Program Files\Syntellect\Tessa Applications.

  • Если на сервере опубликовано приложение TessaAppManager, то оно будет скачано в соответствии с разрядностью операционной системы пользователя или же в зависимости от настроек в карточке сотрудника, при этом разрядность установленного через msi приложения не учитывается при выборе.

  • Разрядность влияет на объём скачиваемых при обновлении файлов. Например, если инсталлятор в msi 64-битный и по настройкам сотрудника обновление для TessaAppManager также скачивается 64-битное, то бОльшая часть файлов не скачивается с сервера, а копируется из папки инсталляции. Если же инсталлятор 32-битный, а для сотрудника определяется, что разрядность его приложений 64-битная, то будет скачены и файлы для 32-битных приложений, и файлы для 64-битных приложений.

Подробная информация по разрядности приложений, в т.ч. для публикуемого на сервере менеджера приложений TessaAppManager, доступна в разделе Публикация приложений, а также в Руководстве администратора

6.2. Настройка клиентского рабочего места

Для того, чтобы выполнить установку на рабочем месте пользователя, запустите TessaApplications.msi из выбранной папки.

В окне Параметры подключения укажите базовый адрес сервиса Tessa (настраивалось выше). Замените SERVER_NAME на сетевое имя сервера приложений (если сервер приложений Tessa расположен на Linux, то адрес будет иметь следующий вид: https://SERVER_NAME):

image043 2

Отключить установку обновлений Tessa Applications с главного сервера - предотвращает автоматическое обновление менеджера с основного сервера (отмеченного звездой в списке серверов, но если это первая установка, то указанный в параметрах подключения сервер будет основным), но не затрагивает обновления приложений на любых серверах.

Сохранить существующие параметры подключения - если флаг выставлен, то все текущие настройки пользователя, в т.ч. список его серверов application_catalogs.xml, сохраняются как есть, и будут использованы новым менеджером приложений. Актуально, если это установка Tessa Applications поверх существующей версии.

Tessa Applications может разворачиваться на предприятии централизованно, посредством групповых политик домена. В этом случае, для указания адреса подключения приложения используется дополнительный файл трансформации .mst. Создание такого файла описано в следующем разделе.

Для корректной обработки ссылок укажите такой же код сервера, какой указан в настройке "ServerCode" в файле app.json веб-сервиса. По умолчанию это значение tessa.

6.3. Создание файла трансформации .mst с настройками инсталлятора

Для того, чтобы указать адрес сервера по умолчанию, к которому будет подключаться Tessa Applications, необходимо создать файл трансформации. Если файл .msi запускается без файла трансформации, то адрес сервера необходимо указывать в диалоге в процессе установки.

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

  1. В папке должны быть расположены следующие файлы:

    • TessaApplications.msi,

    • setserver.bat,

    • setserver.vbs.

  2. Создаём файл трансформации запуском файла setserver.bat из командной строки. Например:

    setserver.bat "https://SERVER_NAME/tessa"

    или:

    setserver.bat "https://SERVER_NAME/tessa" "prod"

    Здесь первым параметром указывается базовый адрес веб-сервисов, обычно в приведённом формате. Замените SERVER_NAME на имя сервера Tessa, к которому будет подключаться Tessa Applications.

    Если сервер приложений Tessa расположен на Linux, то адрес будет иметь следующий вид: https://SERVER_NAME.
    Для корректной обработки ссылок укажите такой же код сервера, какой указан в настройке "ServerCode" в файле app.json веб-сервиса. По умолчанию это значение tessa.

    Вторым параметром задаётся опциональный код сервера, например, prod для установки на production сервер или test для установки на тестовый сервер. По умолчанию код сервера равен tessa.

    Также можно указать несколько адресов, разделённых двумя запятыми, причём первый адрес будет считаться основным. Например:

    setserver.bat "https://SERVER_NAME/tessa-prod,,https://SERVER_NAME/tessa-qa" "prod,,qa"
  3. В текущей папке должен появиться файл трансформации server_address.mst.

  4. Копируем файлы server_address.mst, TessaApplications.msi и setup.bat в папку, которую распространяем на рабочие места. Другие файлы не потребуются для установки.

  5. Запускаем установку на рабочем месте посредством setup.bat. Не используем для запуска файл msi, т.к. он установит Tessa Applications, который подключается по умолчанию к localhost, если пользователь явно не изменит параметр в процессе установки.

    Запуск посредством setup.bat задаёт параметры по умолчанию для Tessa Applications, который будет установлен со ссылкой на базовый адрес сервера, заданный в п.2.

6.4. Параметры в командной строке msiexec

Параметры для адреса и сервер-кода можно указать в командной строке (т.е. без создания файла трансформации mst). Например:

msiexec /i TessaApplications.msi /qn BASEADDRESS="https://server/tessa1,,https://server/tessa2" SERVERCODE="tessa1,,tessa2" INSTALLFOLDER="C:\Tessa\Tessa Applications"

Также можно установить с параметрами по умолчанию (любой из параметров, указанных выше, можно опустить), например:

msiexec /i TessaApplications.msi /qn

Удаление:

msiexec /x TessaApplications.msi /qn

Для вывода подробного журнала установки в файл log.txt добавьте параметр:

msiexec ... /L*V "log.txt"
Командная строка (или .bat файл) должна быть запущена от имени администратора.

Для последующего удобного добавления/изменения/удаления серверов у пользователя в Tessa Applications можно воспользоваться специальными ссылками (см. Руководство администратора).

6.5. Переменные пакета инсталляции msi

Как было указано выше, переменные пакета msi могут быть установлены через файл трансформации или через командную строку.

Для выполнения тихой установки с параметром /qn убедитесь, что командная строка запущена от имени администратора.

Переменная

Значение по умолчанию

Описание

BASEADDRESS

https://localhost/tessa

Базовый адрес сервера, или адреса нескольких серверов, если они разделены через две запятые, например: https://server/tessa1,,https://server/tessa2. В случае указания нескольких адресов, их количество должно совпадать с количеством значений в переменной SERVERCODE.

Пример:

msiexec /i TessaApplications.msi /qn BASEADDRESS="https://server/tessa1,,https://server/tessa2" SERVERCODE="tessa1,,tessa2"

SERVERCODE

tessa

Код сервера, или коды нескольких серверов, если они разделены через две запятые, например: prod,,qa. В случае указания нескольких адресов, их количество должно совпадать с количеством значений в переменной BASEADDRESS.

Для корректной работы ссылок код, указанный для сервера со стороны клиента (в msi-пакете), должен быть таким же, как и код со стороны сервера (значение "ServerCode" в файле app.json веб-сервиса).

INSTALLFOLDER

64-битный инсталлятор или 32-битная ОС:

%ProgramFiles%\Syntellect\Tessa Applications

32-битный инсталлятор:

%ProgramFiles(x86)%\Syntellect\Tessa Applications

Путь к папке, в которую будет установлено приложение "Tessa Applications". Может содержать переменные окружения, такие как %ProgramFiles%, которые будут заменены в момент установки на их текущие значения.

Пример:

msiexec /i TessaApplications.msi /qn INSTALLFOLDER="C:\Syntellect\Tessa Applications"

DISABLEUPDATES

(пусто)

Укажите значение 1, чтобы было отключено автоматическое обновление Tessa Applications из основного сервера. В противном случае не указывайте значение (пустая строка).

Пример:

msiexec /i TessaApplications.msi /qn DISABLEUPDATES=1

KEEPUSERSETTINGS

(пусто)

Укажите значение 1, чтобы предыдущие настройки в профиле того пользователя, от имени которого выполняется установка, не изменялись, включая список серверов и параметры автоматического обновления. В противном случае не указывайте значение (пустая строка).

Параметры, связанные с подключением к серверам и с автоматическими обновлениями, будут записаны в папку установки в файл app\application_catalogs.xml, независимо от значения этой настройки, и этот файл будет использован для всех новых пользователей (учётных записей Windows), использующих Tessa Applications, или для тех пользователей, у которых файл отсутствует в перемещаемом профиле, по умолчанию это файл по пути %AppData%\tessa\settings\application_catalogs.xml, где первая часть пути может быть заменена в переменной LAUNCHERROAMING (см. ниже).

Если та переменная не указана, то для учётной записи, от имени которой выполняется установка, файл application_catalogs.xml будет удалён из профиля, поэтому в момент первого запуска Tessa Applications он будет скопирован из папки установки.

Пример:

msiexec /i TessaApplications.msi /qn KEEPUSERSETTINGS=1

LAUNCHERROAMING

%AppData%\tessa

Подпапка в перемещаемом профиле пользователя AppData\Roaming, в которой будут содержаться настройки менеджера приложений (список серверов и параметров подключения, настройки автоматического обновления и др.), настройки самих приложений (тема оформления, фон, язык интерфейса) и папка с логами менеджера приложений (для TessaAppLauncher.exe и TessaAppManager.exe).

Может включать переменные окружения, такие как %AppData%, которые будут заменены в момент установки на их текущие значения.

Пример (эскейпинг знака процента предотвращает замену переменной до фактического выполнения установки):

msiexec /i TessaApplications.msi /qn LAUNCHERROAMING="^%AppData^%\OtherFolder\tessa"

LAUNCHERLOCAL

%LocalAppData%\tessa

Подпапка в неперемещаемом профиле пользователя AppData\Local, в которую будут скачиваться приложения и обновления менеджера приложений.

Может включать переменные окружения, такие как %LocalAppData%, которые будут заменены в момент установки на их текущие значения.

Пример с несколькими задаваемыми переменными:

msiexec /i TessaApplications.msi /qn BASEADDRESS="https://server/tessa1,,https://server/tessa2" SERVERCODE="tessa1,,tessa2" INSTALLFOLDER="C:\Syntellect\Tessa Applications" DISABLEUPDATES=1 KEEPUSERSETTINGS=1 LAUNCHERROAMING="C:\Tessa\UserData" LAUNCHERLOCAL="^%LocalAppData^%\OtherFolder\tessa"

Переменные можно указывать в любом порядке. Для того, чтобы переменная окружения, такая как %LocalAppData%, была заменена не в командной строке, а непосредственно в момент выполнения инструкций инсталлятора (в соответствии с текущими переменными окружения для msiexec), используйте эскейпинг символа процента следующим образом: ^%

6.6. Компоненты установки: ярлыки и автозагрузка

Помимо установки собственно приложения Tessa Applications, пакет инсталлятора msi имеет несколько необязательных компонентов, позволяющих включать или отключать добавление ярлыков на рабочий стол и в меню "Пуск", а также добавление приложения в автозагрузку при запуске Windows.

image089 1

Имя компонента

Описание

DesktopShortcutFeature

Ярлык для запуска Tessa Applications на рабочем столе.

StartMenuFeature

Ярлыки в меню "Пуск" для запуска и удаления Tessa Applications.

AutoStartFeature

Ярлык в папке автозагрузки для всех пользователей, обычно это путь C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup.

Если этот компонент включён, то приложение запускается при загрузке Windows, свёрнутым в трее.

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

Например, для установки с отключённой автозагрузкой выполните:

msiexec /i TessaApplications.msi /qn ADDLOCAL=DesktopShortcutFeature,StartMenuFeature

Чтобы отключить все перечисленные выше опциональные компоненты, укажите в переменной ADDLOCAL значение ProductFeature:

msiexec /i TessaApplications.msi /qn ADDLOCAL=ProductFeature

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

msiexec /i TessaApplications.msi /qn BASEADDRESS="https://server/tessa1,,https://server/tessa2" SERVERCODE="tessa1,,tessa2" KEEPUSERSETTINGS=1 ADDLOCAL=DesktopShortcutFeature,StartMenuFeature

6.7. Запрет на сохранение параметров аутентификации в профиле пользователя

По умолчанию пользователь может сохранять логин/пароль для сервера, к которому он подключается без аутентификации, при этом они хранятся в зашифрованном виде в файле с настройками серверов (по умолчанию это файл по пути %AppData%\tessa\settings\application_catalogs.xml), для этого используется шифрование Windows для текущей учётной записи пользователя.

Вы можете запретить такое сохранение, при этом для существующих серверов, и везде, где нет автоматической аутентификации Windows, будет отображаться диалог ввода логина/пароля. Для этого откройте файл app.json в папке менеджера приложений Applications\TessaAppManager (или TessaAppManager32 для 32-битной версии менеджера).

Найдите строку:

"CanSaveCredentials": true,

Замените значение false:

"CanSaveCredentials": false,

Теперь опубликуйте приложение TessaAppManager, описание публикации доступно в разделе Публикация приложений. В момент перезапуска TessaAppManager (или после перезагрузки системы) он будет автоматически обновлён у пользователей, у которых не стоит флажок на запрет обновлений Tessa Applications.

После запрета в окне ввода логина/пароля исчезнет флажок "Сохранить пароль":

image089 2

В окне настроек сервера теперь не отображаются сохранённые логин/пароль, и также их нельзя изменить:

image089 3

Логины и пароли, которые были сохранены пользователем до обновления TessaAppManager, останутся в файле настроек, но не будут использоваться приложением, т.е. система будет работать так, если бы никакие параметры входа ни разу не сохранялись, и будет требовать логин/пароль при каждом подключении к серверу без автоматической аутентификации Windows.

7. Настройки сервера

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

В приложении Tessa Client, запущенном с правами Администратора, в карточке Настроек сервера (правая панель системы → Настройки → Настройки сервера) указать Базовый адрес web-клиента - в нашем примере адрес сервера будет https://localhost/tessa/web. Если сервер приложений расположен на Linux, то адрес будет следующего вида: https://localhost.

image064

8. Проверка установки

8.1. Проверка запуска приложений

После того как приложения будут опубликованы, а Tessa Applications установлен, при открытии Tessa Applications с учётной записью обычного пользователя автоматически будет выполнена загрузки приложения и далее Tessa Client запустится, вы увидите примерно такое окно:

image046

При запуске Tessa Applications с учётной записью администратора вы увидите примерно следующее окно:

image047

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

Необходимо убедиться, что оба приложения успешно запускаются из Tessa Applications.

8.2. Проверка загрузки расширений

В приложении Tessa Admin на вкладке "Информация" необходимо убедиться, что загрузились все необходимые расширения:

image046 1

Должны быть минимум по три расширения в каждой группе с указанными именами (если вы запустили проектное решение, в котором изменялись расширения, то список может отличаться):

image046 2

Аналогично, запустив приложение Tessa Client в разделе "О программе" (кнопка на правой панели системы) необходимо проверить загруженные расширения:

image046 3

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

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

9. Расширенные настройки сервера

9.1. Настройка полнотекстового поиска

При установке системы на СУБД MS SQL Server возможна настройка полнотекстового поиска, встроенного в эту СУБД. Для корректной работы полнотекстового поиска необходимо выполнить следующие настройки:

  1. На сервере СУБД установить MS Office 2010 Filter Pack SP2 (для поддержки офисных документов doc, docx, xls, xlsx и т.п.). Cсылки для скачивания:

  2. В настройках SQL Server должна быть включена служба полнотекстового поиска (указывается в компонентах SQL Server при установке).

  3. Настроить файловые хранилища:

    • Рекомендуется создать отдельную базу данных под содержимое индексируемых правил (для упрощения резервного копирования и восстановления баз данных). Для этого создаём пустую базу данных и выполняем на ней скрипт Fixes\CreateFileContent.ms.sql. В конфигурационном файле app.json веб-сервиса (c:\inetpub\wwwroot\tessa\app.json) надо добавить строку подключения к этой базе (в примере ниже это вторая строка tessa-files):

      "ConnectionStrings": {
      "default": "Server=.; Database=tessa; Integrated Security=false; User ID=sa; Password=Master1234; Connect Timeout=200; pooling='true'; Max Pool Size=200; MultipleActiveResultSets=true;",
      
      "tessa-files": "Server=.; Database=tessa-files; Integrated Security=false; User ID=sa; Password=Master1234; Connect Timeout=200; pooling='true'; Max Pool Size=200; MultipleActiveResultSets=true;"
      },

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

    • В настройках сервера (Tessa Client → правая панель системы → Настройки → Настройки сервера) добавим хранилище файлов. Указываем Местоположение - tessa-files (это имя строки подключения в конфигурационном файле выше), База данных - да, Расширения файлов - doc docx:

      image052

      Таким образом, файлы с расширением doc или docx, прикладываемые к карточкам документов, будут сохраняться в хранилище tessa-files, а все остальные - в основном файловом хранилище FileSystem.

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

      Более подробно все параметры карточки настроек сервера описаны в Руководстве Администратора.

  4. Создать полнотекстовый индекс с помощью скрипта Fixes\CreateFullTextCatalog.ms.sql, выполнив его на созданной базе данных tessa-files (имя базы может отличаться).

В случае, если был добавлен/удалён фильтр (например, если MS Office 2010 Filter Pack был установлен после того, как содержимое файлов было сохранено в базу данных), а база с полнотекстовым индексом уже была создана, необходимо выполнить скрипт Fixes\RebuildFullTextCatalog.ms.sql на базе данных с индексируемой таблицей FileContent. Этот скрипт перестраивает полнотекстовый индекс с учётом изменений в фильтрах.

Для удаления каталога используйте скрипт Fixes\DropFullTextCatalog.ms.sql (это удалит полнотекстовые индексы в базе данных с индексируемой таблицей FileContent).

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

9.2. Настройка Redis для сброса кэшей в кластере приложений

При развёртывании платформы TESSA в кластере из нескольких серверов приложений при любом изменении метаинформации (конфигурации в TessaAdmin) и ряда настроек (в карточках настроек, типов документов и др.) необходимо перезапускать процессы веб-сервисов (пулы приложений IIS или сервисы Linux) на всех нодах кластера.

Redis можно использовать не только в кластере серверов приложений, но и при наличии нескольких рабочих процессов пула приложений IIS в пределах одного сервера (или нескольких экземпляров сервиса Linux). Система корректно сбрасывает кэши в этом случае и при отсутствии Redis за счёт глобальных объектов синхронизации в ОС, но использование Redis даст небольшой прирост производительности и повышение надёжности. Если вы столкнулись с проблемами синхронизации кэшей без использования Redis, то рекомендуем настроить подключение к Redis.
Со сборки платформы 3.5.0 также доступна команда утилиты tadmin InvalidateCache для сброса всех кэшей для ноды сервера приложений, к которой подключается утилита tadmin, подробности в разделе Руководства администратора

Чтобы перезапуск не требовался, и различные кэши автоматически сбрасывались на всех нодах кластера, мы рекомендуем установить сервер Redis на отдельном сервере или на любой ноде сервера приложений - он не будет потреблять ресурсы. Такой сервер будет рассылать команды по сбросу кэшей всем нодам, при этом сами кэши наполняются сервисом на каждой из нод самостоятельно, поэтому к памяти и производительности сервиса Redis нет требований.

Redis поддерживается, начиная со сборки платформы 3.5.0.

Для установки на сервер Windows доступна только старая версия Redis 3.2. Для сброса кэшей в TESSA эта версия подходит и является необходимым минимумом, не устанавливайте более раннюю версию. Инструкция по установке имеется на сайте: https://redislabs.com/ebook/appendix-a/a-3-installing-on-windows/a-3-2-installing-redis-on-window/

Для установки на сервер Linux доступны более новые версии Redis, подойдут любые из них, которые присутствуют в вашем дистрибутиве Linux: https://redislabs.com/ebook/appendix-a/a-1-installation-on-debian-or-ubuntu-linux/

Также для компьютера Windows 10 или Windows Server 2019 можно включить компонент WSL 1.0 (Windows Subsystem for Linux) для того, чтобы установить более новую версию Redis на ОС Windows. Например, установите приложение Ubuntu из магазина Microsoft Store, откройте командную строку Ubuntu (запустите приложение) и выполните:

sudo apt -y install redis-server

sudo service redis-server start

После установки Redis любыми из перечисленных выше способов, вы можете подключить веб-сервисы платформы TESSA к Redis, открыв файл app.json и отредактировав параметр с именем "Redis", например:

"Redis": "localhost"
Redis также есть в app.json сервиса Chronos, но в типовой поставке отсутствуют плагины, кэширующие метаинформацию на длительное время, поэтому подключение Chronos к серверу Redis не повлияет на работу системы. В вашем решении на платформе могут присутствовать плагины, которые используют глобальный кэш (регистрируют зависимости с указанием enableInterprocessCommunication), в этом случае использование Redis является оправданным.

Это строка соединения с сервером Redis, подключит ноду веб-сервиса TESSA к серверу Redis, установленному на этой же ноде. Вы можете использовать IP-адрес сервера, DNS-имя компьютера, или адрес с номером порта после двоеточия.

После изменения файла app.json перезапустите веб-сервис TESSA.

По умолчанию, Redis работает через TCP-порт 6379. Воспользуйтесь документацией Redis, чтобы настроить его на другой порт, если это требуется для вашей инфраструктуры. Номер порта укажите через двоеточия после имени компьютера или IP-адреса, например: "127.0.0.1:6379"

Другие настройки, возможные в строке подключения, приведены в документации Redis (различные настройки перечисляются через запятую): https://stackexchange.github.io/StackExchange.Redis/Configuration.html#configuration-options

Мы рекомендуем указать логин/пароль и защищённое подключение по SSL/TLS, или отдельно ограничить доступ к серверу Redis по сети. Обратитесь к документации по ссылке выше.

10. Дополнительные настройки для web-клиента

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

Список особенностей web-клиента и его отличие от desktop-клиента доступен в документе Особенности и ограничения Web-клиента

10.1. Предпросмотр файлов

10.1.1. Описание

В карточках web клиента есть возможность предпросмотра приложенных файлов (т.е. просмотреть содержимое файла без его сохранения на диск). Предпросмотр для некоторых видов файлов работает без дополнительных настроек, например:

  • текстовые файлы - txt,

  • изображения - png, jpeg и др.,

  • web страницы - html и др.,

  • pdf файлы (для работы предпросмотра pdf файлов необходимо убедиться, что соответствующая настройка включена в конфигурационном файле app.json: "PreviewPdfEnabled": true).

Предпросмотр файлов с расширением tiff выполняется с помощью преобразования данного файла (плагином сервиса Chronos) в pdf и последующим отображением его в web клиенте.

Предпросмотр для офисных видов файлов (doc, docx, xls, xlsx, ppt, pptx, rtf и др.) работает посредством конвертации их в pdf через LibreOffice/OpenOffice и просмотре при помощи pdf.js.

При этом на сервере хранится кэш файлов, которые были сконвертированы для предпросмотра. При повторной попытке предпросмотра того же файла любым пользователем - сразу отображается уже сконвертированный pdf файл. Если файл был изменен (т.е. создана новая версия), то конвертация будет выполняться заново. Более подробно кэш файлов описан в руководстве администратора.

Конвертация файлов в pdf для предпросмотра может использоваться не только в web-клиенте, но и в толстом клиенте, при выставлении соответствующей настройки в карточке настроек сервера (см. Руководство администратора).

10.1.2. Настройка предпросмотра файлов

На сервере, где запущен Chronos, должен быть установлен и настроен офисный пакет LibreOffice или OpenOffice (для 64-битной системы должна быть установлена 64-битная версия офисного пакета LibreOffice/OpenOffice).

В конфигурационном файле сервиса Chronos (расположенного по пути Chronos\app.json) в параметре "OpenOfficePython" необходимо указать путь к файлу python.exe (интерпретатору языка Python), который расположен внутри папки с установленным LibreOffice/OpenOffice. По умолчанию в конфигурационном файле прописан путь для LibreOffice.

Конвертация выполняется плагином Chronos (FileConverterPlugin) в один поток. Большое количество одновременных запросов на конвертацию может создать существенную нагрузку на сервер. Чтобы снять эту нагрузку с сервера приложений, сервис Chronos можно продублировать на отдельном сервере и настройками отключить все плагины, кроме плагина конвертации. Отключить плагины можно следующим образом: в папке Chronos\Plugins\Tessa\configuration во всех xml файлах (кроме FileConverter.xml) выставить disabled="true".
В рамках проектного решения можно переопределить механизм конвертации в pdf, например, на использование SharePoint Word Authomation Services. Для этого нужно написать расширение, в котором переопределить класс Tessa.Extensions.Default.Chronos.FileConverters.PdfFileConverterWorker (исходный код класса входит в типовое решение, т.е. открыт для изучения и изменения. В комментариях в коде описано, что класс делает и как его переопределить). Это расширение должно быть добавлено в Chronos.

10.2. ЭП - электронная подпись

В web-клиенте есть возможность использовать ЭП для подписания файлов. По умолчанию данный функционал отключен.

10.2.1. Настройка ЭП

Для настройки ЭП в web-клиенте необходимо выполнить следующие действия:

  1. В конфигурационном файле app.json (который расположен по пути C:\inetpub\wwwroot\tessa) включить плагин: "CryptoProPluginEnabled": true,

  2. Установить КриптоПро ЭП Browser plug-in. Описание плагина, а также ссылка для его скачивания на странице https://www.cryptopro.ru/products/cades/plugin/.

10.2.2. Проверка работы ЭП

После выполнения указанных выше настроек в web-клиенте в карточке документа для приложенных файлов появится пункт меню "Подписать":

image066

При нажатии на него откроется окно для выбора ключа, которым необходимо подписать данный файл:

image067

После успешного подписания файла около него появится дополнительный значок:

image068

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

image069

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

  • Зеленый – целостность подписи верна, сертификат проверен и подтвержден доверенным сертификатом.

  • Красный – целостность подпись не верна.

  • Голубой – целостность подписи верна, сертификат не удалось проверить до доверенного.

image070

10.3. Настройка Windows аутентификации

Автоматическая Windows аутентификация в Web клиенте доступна только для десктопных версий Chrome и Firefox на платформе Windows.
Описание механизма работы аутентификации пользователей в платформе Tessa можно найти в Руководстве Администратора.

10.3.1. Настройка серверной части, используя средства IIS (только на платформе Windows)

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

  1. В IIS создать пул приложений (в этом примере с именем "tessawin") с параметрами, аналогичными основному пулу приложений (указать "Без управляемого кода" в выпадающем списке)

    image071 1
  2. Выбрать созданный пул, нажать пункт "Дополнительные параметры" в контекстном меню, и указать ту же учётную запись, которая указывалась для основного пула. Если в настройках основного пула указана встроенная учётная запись ApplicationPoolIdentity, то её необходимо поменять на явно заданную учётную запись, которая у обоих пулов должна быть одинаковой (ApplicationPoolIdentity соответствует разным учётным записям для каждого пула). Не указывайте более одного рабочего процесса для этого пула приложений, независимо от количества процессов для основного пула приложений.

    image071 2
  3. В IIS в папке сайты → Default Web Site → tessa создать новое приложение:

    image071

    Укажите псевдоним, например, tw_winauth. Пул приложений - созданный выше "tessawin". И физический путь (путь к приложению) установите такой же, как у серверной части -C:\inetpub\wwwroot\tessa\web:

    image072
  4. Для созданного приложения в разделе "Проверка подлинности" включить Проверка подлинности Windows, остальные - отключить (обычно анонимная аутентификация по умолчанию включена, её необходимо отключить).

  5. В конфигурационном файле C:\inetpub\wwwroot\tessa\web\web.config убедиться, что включена Windows аутентификация (параметр forwardWindowsAuthToken):

    <aspNetCore processPath=".\Tessa.Web.Server.exe" arguments="" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="true" requestTimeout="00:10:00" startupTimeLimit="3600" hostingModel="InProcess">

    Остальные параметры данной строки описаны в статье, однако менять их не рекомендуется.
  6. В конфигурационном файле C:\inetpub\wwwroot\tessa\app.json включить параметр "WinAuth" (удалить служебные символы // перед параметром).

    • В параметре "WinAuthIsEnabled" укажите true.

    • В параметре "WinAuth" необходимо указать путь к точке с windows аутентификацией: "tessa/tw_winauth", где tessa - путь к папке в IIS.

    • В параметре "GuyFawkesAuth" – путь к точке с приложением и анонимной аутентификацией: "tessa/web".

    • По умолчанию указан параметр "WinAutoLogin": true, включающий автоматический вход с windows аутентификацией. Если автоматический вход не выполнен, то отображается обычное окно входа с сообщением. Если вход выполнен, но требуется ввести другие логин/пароль, то пользователь может выполнить выход из учётной записи, что переведёт его на окно входа с возможностью ввести любые логин/пароль или нажать кнопку "Вход Windows". Если автоматический вход необходимо выключить для всех пользователей, то укажите значение false для этого параметра.

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

Теперь необходимо перезапустить оба пула приложений.

10.3.2. Настройка серверной части, используя модуль Kerberos аутентификации в платформе Tessa (работает на Windows и Linux платформах)

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

Проверьте наличие keytab файла по пути /etc/krb5.keytab. Если файл существует и сервер приложений введён в домен, то переходите к пункту 3. Если сервер введён в домен, но отсутствует keytab файл, то переходите к пункту 2, иначе начинайте настройку с пункта 1.
  1. Введите сервер на Linux платформе в домен (если этого не было сделано ранее).

    1. Установите realmd с помощью команды yum install или apt-get. Например: yum install sssd realmd oddjob oddjob-mkhomedir adcli samba-common samba-common-tools krb5-workstation openldap-clients policycoreutils-python -y

    2. Измените DNS сервер на сервер домена (если это требуется), редактируя файл resolv.conf. Например: sudo nano /etc/resolv.conf.

    3. Введите в домен с помощью команды realm join --user=Administrator DOMAIN.LOCAL, где Administrator имя пользователя с возможностью ввода в домен, а DOMAIN.LOCAL - название домена.

    4. Проверьте с помощью команды realm list успешность входа.

    5. Файл по пути /etc/krb5.keytab сохраните и переходите к пункту 3. Действия в пункте 2 не требуются.

  2. Сгенерируйте keytab файл (если сервер был введен ранее в домен, но keytab файл не сохранился, или не был выполнен пункт 1):

    1. Добавьте сервер (если это не было сделано ранее), к примеру, HOST-LINUX в домен с помощью команды dsadd. Пример: dsadd computer "CN=HOST-LINUX,CN=Computers,DC=DOMAIN,DC=LOCAL"

    2. Свяжите сервер (если это не было сделано ранее) и имя субъекта-службы (Service Principal Name, далее SPN) с помощью команды ktpass. Пример: ktpass /mapuser DC\HOST-LINUX /princ HTTP/HOST-LINUX@DOMAIN.LOCAL /pass Master1234 /ptype KRB5_NT_SRV_HST /crypto all /mapop set /out c:\temp\web.keytab +answer где через /pass указывается пароль, который будет установлен для учетной записи TessaUser, а /out - указание папки экспорта

      Если ваш сервер доступен в сети под несколькими DNS именами (они же SPN), то следует воспользоваться командой ktpass с дополнительными аргументами. Например: ktpass /mapuser DC\HOST-LINUX /princ HTTP/HOST-LINUX2@DOMAIN.LOCAL /pass Master1234 -setpass /kvno 2 /ptype KRB5_NT_SRV_HST /crypto all /mapop set /in c:\temp\web.keytab /out c:\temp\web2.keytab -setupn. Обратите внимание на параметр /kvno равный 2. В случае, если при генерации нового keytab файла он увеличится, то предыдущие keytab файлы перестанут действовать. Поэтому используется параметр -setpass отключающий изменение пароля. Проверить уровень kvno можно двумя последовательно введенными командами: ldifde -d "CN=HOST-LINUX,CN=Computers,DC=DOMAIN,DC=LOCAL" -l "userPrincipalName,servicePrincipalName,msDS-KeyVersionNumber" -f c:\temp\account.ldif и type c:\temp\account.ldif. Kvno это атрибут msDS-KeyVersionNumber.
    3. Проверьте связь имени субъекта-службы (SPN) и сервера с помощью команды setspn. Пример: setspn -L DC\HOST-LINUX

  3. Полученный keytab файл поместите в папку tessa, где находится файл лицензии, к примеру, /home/tessa/tessa/web

  4. В файле app.json включите настройку Kerberos.Enabled. Так же для работы аутентификации по указанному логину и паролю включите LDAP аутентификацию. Пример:

    "LDAP": {
        "Enabled": true,
        "UseSsl": false,
        "Url": "DOMAIN.LOCAL",
        "Port": null,
        "TimeoutMilliseconds": null,
        "BindDn": "DC\\TessaUser",
        "BindCredentials": "Master1234",
        "SearchBase": "dc=domain,dc=local",
        "SearchFilter": "(&(objectClass=person)(sAMAccountName={0}))"
    },
  5. Параметры GuyFawkesAuth (путь до веб-приложения в IIS) и WinAuth (путь до веб-приложения в IIS для аутентификации в web-клиенте) оставьте пустыми. Пример настройки:

    "Kerberos.Enabled": true,
    "Kerberos.Keytab": "*.keytab",
    "GuyFawkesAuth": "",
    "WinAuthIsEnabled": true,
    "WinAuth": "",
    "WinAutoLogin": true,
  6. Добавьте DNS запись уровня А (если это не было сделано ранее):

    1. Откройте DNS Manager с помощью команды dnsmgmt.msc.

    2. Раскройте узел Forward Lookup Zones.

    3. Кликните на домене правой кнопкой мыши и выберете New Host (A or AAAA)…​.

    4. Введите информацию об имени хоста целевой машины и ее IP-адрес в сети (более подробно см. Руководство по установке СЭД Tessa на Linux).

10.3.3. Настройка браузера

  • Настройка браузера Chrome:

    Запустите Панель управления - Свойства обозревателя. На вкладке "Безопасность" для зоны Надежные узлы в разделе "Уровень безопасности" нажмите на кнопку "Другой":

    image074

    Прокрутите список, чтобы для параметра "Проверка подлинности пользователя" выставить Автоматический вход в сеть с текущим именем пользователя:

    image075

    Далее необходимо сервер добавить в надежные узлы:

    image076

    В открывшемся окне прописываем имя сервера Tessa:

    image077
  • Настройка браузера Firefox:

    В адресной строке браузера введите about:config. Далее в поле поиска введите network.automatic. Дважды кликните на параметре network.automatic-ntlm-auth.trusted-uris:

    image078

    В открывшемся окне пропишите имя сервера Tessa:

    image079

10.3.4. Проверка работы Windows аутентификации

Откройте адрес в браузере https://SERVER_NAME/tessa/web и проверьте - должно открыться окно логина, где также есть кнопка Win Login:

image080

Нажав на кнопку Win Login, произойдет автоматическая аутентификация в Web клиенте Tessa под текущей учетной записью пользователя.

В Tessa в карточке сотрудника должен быть указан тип входа в систему - Пользователь Windows, а в поле "Аккаунт" - корректная учетная запись.

10.4. ADFS

Web-клиент поддерживает аутентификацию через ADFS (Active Directory Federation Services), основанную на стандарте SAML 2.0.

Для работы ADFS необходимы два сертификата: сертификат identity provider (idp.pem, его вам должен выдать ADFS provider) и service provider (sp.pfx, это ваш сертификат, его необходимо сгенерировать самостоятельно). Эти сертификаты обычно размещаются рядом с конфигурационным файлом web-приложения app.json, в котором и задаются настройки SAML.

Для того чтобы включить аутентификацию через ADFS, требуется настроить приложение через файл конфигурации app.json. Все настройки находятся в отдельном блоке "SAML".

image081

Параметр

Описание

SignIn

включает и отключает аутентификацию через ADFS.

SiteURL

URL приложения.

SPEntityID

Уникальный id приложения для service provider.

SingleSign

URL для запроса аутентификации.

SingleLogout

URL для запроса логаута.

IDPCert

Путь до сертификата identity provider. Для IDCert, SPCert действуют обычные правила указания путей в app.json. Если файлы сертификатов расположены в той же папке, что и app.json, используйте префикс '@', чтобы имя файла выглядело так: '@certname.pem'.

SPCert

Путь до сертификата service provider.

SPCertPass

Пароль для сертификата service provider.

SignAlgorithm

Криптоалгоритм.

CertificateValidationMode

Метод проверки сертификата.

RevocationMode

Метод проверки сертификата.

CreateUserAfterAuthenticationIfNotExists

Если флаг установлен в true, то при успешной adfs аутентификации система автоматически создает пользователя, если его нет в системе. В карточке сотрудника заполняются поля: Имя, E-mail, Логин. Для дополнения карточки перед сохранением можно написать серверное расширение на сохранение карточки сотрудника (подробнее описано в руководстве разработчика Web-клиента).

AddNewUserToRoles

Перечисление идентификаторов статических\динамических ролей через запятую, в которые система включит пользователя автоматически при создании. Например, '7ff52dc0-ff6a-4c9d-ba25-b562c370004d' это идентификатор динамической роли 'Все сотрудники'.

LoginClaimType

Идентификатор xml атрибута логина сотрудника в ответном сообщении от identity provider. По умолчанию равен http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name.

NameClaimType

Идентификатор xml атрибута имени сотрудника в ответном сообщении от identity provider. По умолчанию равен http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name.

EmailClaimType

Идентификатор xml атрибута электронной почты сотрудника в ответном сообщении от identity provider. По умолчанию равен http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress.

SetSAMLCookie

Если флажок установлен, то после успешной аутентификации будут установлены кукисы для быстрой повторной аутентификации на authentication сервере.

ExpireTimeSpan

Продолжительность действия cookie для adfs аутентификации. По умолчанию равно 24 часа.

UpdateEmailLoginUsers

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

После настройки метаданные будут доступны по адресу %SiteURL%/SAML/Metadata. При типовой установке это адрес вида https://your_server_name.ru/tessa/web/SAML/Metadata. Обращаем ваше внимание, что регистр символов важен!

Если CertificateValidationMode отличен от "None", то необходимо добавить сертификат identity provider (idp.pem) в доверенные сертификаты на сервере приложений.
SPEntityID - уникальный id приложения должен быть зарегистрирован в ADFS сервисе. ADFS-провайдеру отправляется SPEntityID и ссылка на метаданные, которые доступны по адресу %SiteURL%/SAML/Metadata

image082

При включенной аутентификации ADFS окно логина будет с одной кнопкой Login.

image083

В Tessa в карточке сотрудника должен быть указан тип входа в систему - Пользователь Windows, а в поле "Аккаунт" - учетная запись или уникальный идентификатор пользователя. Сопоставление сотрудника в Tessa и сотрудника из ADFS сервиса происходит по email адресу сотрудника. Поэтому в карточке сотрудника должен быть указан актуальный email адрес.

10.5. Установка Deski

Deski - это приложение-ассистент, позволяющее пользователям web-клиента работать с файлами (например, открывать на редактирование), не скачивая их в браузере.

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

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

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

По умолчанию приложение устанавливается в папку профиля пользователя LocalAppData, оттуда же и запускается.

11. Установка второго экземпляра Tessa на этом же сервере приложений

В случае, если требуется установить второй экземпляр Tessa на этом же сервере (например, один экземпляр рабочий, второй - для тестирования разработок), то необходимо выполнить следующие действия:

  1. Выполнить установку и настройку веб-сервиса (см. раздел Установка и конфигурирование веб-сервисов системы), при этом необходимо учитывать:

    п. 1 - для пула приложений необходимо дать другое имя, например tessa_test;

    п. 3 - указать соответствующее имя папки, например: C:\inetpub\wwwroot\tessa_test.

  2. Произвести настройку параметров конфигурационного файла. В строке подключения к базе данных помимо адреса SQL сервера и способа аутентификации необходимо указать название базы данных (например, tessa_test).

  3. В конфигурационном файле веб-сервиса (app.json, расположенном в папке C:\inetpub\wwwroot\tessa_test) необходимо для параметра ServerCode указать значение, отличное от основного экземпляра Tessa, например "tessa_test":

    "ServerCode": "tessa_test",
  4. Выполнить установку конфигурации на базу данных, которую указали в конфигруацинном файле - tessa_test, при этом в консоли необходимо указать адрес подключения к тестовому серверу, имя тестовой БД и папки с файлами:

    image058
  5. Установить Chronos. Необходимо учитывать, что для тестового экземпляра Tessa надо создать отдельную копию папки Chronos. В конфигурационном файле (Chronos\app.json) указать параметры для подключения к тестовой базе и ServerCode, тот, который мы указали в п.4. При необходимости настроить почтовые уведомления.

    В командных файлах установки и удаления обязательно требуется указать другое имя сервиса в настройках ServiceName и ServiceDisplayName (отредактируйте в блокноте файлы Chronos\install.bat, Chronos\install-and-start.bat, Chronos\uninstall.bat):

    set "ServiceName=chronos-prod"
    set "ServiceDisplayName=Syntellect Chronos production"

    После этого установите Chronos по инструкции.

  6. В Tessa Applications перейти на вкладку Сервер и нажать на кнопку Добавить:

    image047 1

    В окне добавления сервера укажите произвольный псевдоним и адрес тестового веб сервиса Tessa:

    image047 2

    В полях логин/пароль можно указать учетные данные для запуска приложений не под текущим пользователем, а под каким-либо другим (зарегистрированном в справочнике сотрудников Tessa), например, логин: admin, пароль: admin - стандартные учетные данные для первого запуска приложения.

  7. Выполнить публикацию приложений. Предварительно необходимо создать отдельную копию папок Applications\TessaClient и Applications\TessaAdmin и для созданных копий приложений выполнять публикацию, указав в параметре /a адрес тестового веб сервиса:

    TessaClient.exe /publish /a:https://SERVER_NAME/tessa_test

    Аналогично опубликовать приложение TessaAdmin.

    Если сервер приложений Tessa расположен на Linux, то адрес будет иметь следующий вид: https://SERVER_NAME.

В результате в Tessa Applications вы увидите опубликованные приложения:

image047 3

Настроить ограничение видимости приложений для разных пользователей можно в Tessa Client, запущенном пользователем с правами Администратора в системе.

На вкладке Администратор перейдите в представление Прочее → Приложения:

image047 4

Открыв нужную карточку приложения в поле Роли, которым доступны приложения укажите сотрудников, подразделения или роли, которым будет доступно данное приложение:

image047 5

Для удобного добавления/изменения/удаления серверов у пользователя в Tessa Applications можно воспользоваться специальными ссылками (см. Руководство администратора).

12. Локальная установка без настройки IIS

Для проверки работы системы или для разработки расширений можно не прибегать к настройке IIS, и вместо этого настроить временную инсталляцию сервера приложений. Такая установка возможна на любой системе, которая удовлетворяет следующим требованиям:

  1. ОС Windows x64: Windows 7 SP1 или старше, в т.ч. редакция Home

  2. Установка .NET Core не требуется, версия .NET Framework не является важной

  3. Локально установлены PostgreSQL или SQL Server (подойдёт редакция Express Edition), или обеспечен сетевой доступ к серверу СУБД (настройки в строке подключения в конфигурационных файлах, см. ниже)

Рекомендации, приведённые в этом разделе, подходят только для тестовой (временной) установки системы или для локальной установки для разработки расширений. Не используйте эти рекомендации, чтобы настроить тестовый или продуктовый серверы.

12.1. Установка системы

Установка выполняется следующим образом:

  1. В файле Services\app.json в папке со сборкой укажите пустую строку в настройке "GuyFawkesAuth": ""

  2. В этом же файле укажите адрес для подключения с именем создаваемой базы данных в настройке ConnectionStrings → default, подробности по настройкам указаны в следующем разделе.

  3. В файлах Chronos\app.json и Tools\app.json укажите такую же строку подключения, как в Services\app.json в п.2.

  4. Разместите файл лицензии в папках сборки Chronos и Services, укажите имя этого файла в конфигурационных файлах app.json в соответствующих папках (настройка LicenseFile).

  5. Запустите приложение веб-сервисов Services\web\Tessa.Web.Server.exe

    1. По умолчанию приложение запустится и будет слушать локальный порт 5000.

    2. Если окно консоли откроется и тут же закроется, то возникла ошибка.

      1. Откройте командную строку cmd: сочетание клавиш Win+R, введите cmd.exe, нажмите Enter.

      2. Перейдите в папку cd полный_путь_до_папки_со_сборкой\Services\web

      3. Запустите Tessa.Web.Server.exe

    3. Если в сообщении об ошибке будет информация о недоступности порта 5000 (обычно, если порт уже занят), то укажите адрес с другим портом, например, запустив Tessa.Web.Server.exe /a:http://localhost:5001

  6. Запустите скрипт Setup.bat для установки системы.

    1. Введите адрес http://localhost:5000 и нажмите Enter (укажите другой порт, если его изменяли при запуске Tessa.Web.Server.exe). Убедитесь, что вы ввели именно http://, а не https://. В случае ошибки ввода закройте окно консоли и заново запустите скрипт Setup.bat.

    2. Введите имя создаваемой базы данных и нажмите Enter, например: tessa

    3. Введите путь к папке с файлами, которая доступна на чтение и запись для текущего пользователя, и нажмите Enter, например: C:\Tessa\Files

    4. Нажмите любую клавишу и дождитесь окончания установки. Закройте окно консоли.

  7. Запустите сервис фоновых процессов Chronos, для этого запустите приложение Chronos\Chronos.exe

  8. Запустите приложение TessaClient, чтобы проверить работоспособность инсталляции. Для этого в файле Applications\TessaClient\app.json настройте базовый адрес BaseAddress, указав http://localhost:5000 (укажите другой порт, если его изменяли при запуске Tessa.Web.Server.exe).

    1. В появившемся окне введите логин admin и пароль admin для пользователя системы, созданного по умолчанию.

    2. В дальнейшем стандартным образом можно создать других сотрудников с типом "Пользователь Tessa" и любыми логинами/паролями.

  9. Web-клиент доступен в браузере по адресу http://localhost:5000 (укажите другой порт, если его изменяли при запуске Tessa.Web.Server.exe).

  10. Помимо запуска приложений TessaClient и TessaAdmin вручную, также их можно опубликовать и использовать для запуска менеджер приложений Tessa Applications.

    1. Отредактируйте файлы Applications\publish_client_demo.bat и Applications\publish_admin_demo.bat, указав адрес подключения: вместо /a:https://localhost/tessa пропишите /a:http://localhost:5000 (порт может отличаться), после чего сохраните и запустите файлы. Дождитесь окончания публикации.

  11. Установите Tessa Applications, выполнив Setup\ru-RU\x64\TessaApplications.msi.

    1. Для этого потребуются права локального администратора Windows на вашем компьютере.

    2. При установке укажите адрес http://localhost:5000 вместо адреса по умолчанию (укажите другой порт, если его изменяли при запуске Tessa.Web.Server.exe).

    3. После запуска Tessa Applications введите логин admin и пароль admin для пользователя системы по умолчанию.

    4. Чтобы не вводить логин/пароль каждый раз, его можно указать в настройках сервера. Для этого перейдите на вкладку "Серверы", дважды кликните по строке с сервером, задайте логин и пароль, и нажмите кнопку "Сохранить" внизу окна.

  12. Чтобы завершить работу сервера приложений Tessa, нажмите Ctrl+C в окнах консоли с запущенными Tessa.Web.Server.exe и Chronos.exe, и дождитесь окончания их работы.

  13. Когда снова потребуется использовать эту локальную инсталляцию, запустите окна приложений Tessa.Web.Server.exe и Chronos.exe, как это описано выше.

  14. После установки при необходимости вы можете скопировать папки, используемые системой, в произвольные места на вашем компьютере, к которым у текущего пользователя есть доступ на чтение и запись. Запуск Chronos.exe и Tessa.Web.Server.exe можно настроить по ярлыкам. Скопируйте папки:

    1. Chronos

    2. Services

    3. Applications\TessaClient и Applications\TessaAdmin (не требуется, если выполнялась публикация приложений с их последующим запуском посредством Tessa Applications).

12.2. Ограничения локальной установки

Локальная установка имеет следующие ограничения:

  1. В desktop-клиенте и в web-клиенте не работают автоматическая Windows аутентификация или аутентификация ADFS.

  2. Для функционирования веб-сервисов должно быть запущено окно консоли Tessa.Web.Server.exe. Консоль можно в любой момент закрыть, нажав Ctrl+C, или снова открыть, запустив соответствующий .exe-файл.

  3. Для функционирования фоновых сервисов Chronos должно быть запущено окно консоли Chronos.exe. Консоль можно в любой момент закрыть, нажав Ctrl+C, или снова открыть, запустив соответствующий .exe-файл.

  4. Веб-сервисы доступны только на том же компьютере по адресу localhost независимо от того, какие порты открыты и какие сетевые настройки выполнены на вашем компьютере.

  5. Веб-сервисы доступны только по протоколу http, доступ по https невозможен.

  6. Запуск любых приложений должен выполняться с указанием адреса и порта http://localhost:5000 одним из следующих способов:

    1. Запуском .exe-файла с адресом подключения, который предварительно настроен, это настройка BaseAddress в файле app.json.

    2. Из командной строки, например: TessaClient.exe /a:http://localhost:5000 /u:admin /p:admin

    3. Посредством установленного на том же компьютере приложения Tessa Applications при условии, что TessaClient и/или TessaAdmin опубликованы по адресу веб-сервисов для этой инсталляции. Такая публикация описана выше.

13. Установка платформы TESSA в среде управления контейнерами Docker

Вы можете установить типовую версию платформы на локальном компьютере для использования в целях тестирования или для продуктовой эксплуатации без развёртывания системы в виртуальной машине. Для этого используется среда управления контейнерами Docker. В текущей инструкции рассматривается установка для ОС Windows, внутри которой будут запущены контейнеры Docker.

Контейнеры Docker для приложения Tessa работают в заранее настроенной среде с использованием окружения ОС Alpine Linux. При этом система Docker может быть запущена не только на хост-машине ОС Windows, но и на macOS, и на любом дистрибутиве Linux, который поддерживается приложением Docker.
Поскольку контейнер определяет только окружение ОС Linux, но не ядро операционной системы, и контейнер не является виртуальной машиной (а своего рода маппингом папок, областей памяти и системных вызовов), то при запуске Docker, например, на хост-машине под ОС Debian, контейнер также будет исполняться на ОС Debian, несмотря на то, что окружением, которое определено в контейнере, является ОС Alpine Linux. Данная инструкция не затрагивает установку Docker на хост-машинах macOS или Linux, и создание контейнеров приложения TESSA на ОС Linux, отличной от окружения Alpine Linux.
На текущий момент зафиксированы проблемы с использованием Docker Desktop на Windows 10 версии 20H1 (май 2020 г.), в которой в настройках Docker Desktop (Settings в контекстном меню на значке в системном трее) указан "Use the WSL 2 based engine". Если вы также наблюдаете ошибку при установке на этапе "Checking connection to web service" при выполнении скрипта install.bat, то отключите этот флаг, Docker перезапустится, и запустите скрипт повторно.

13.1. Установка с использованием Docker Desktop на ОС Windows

Скачайте и установите Docker Desktop (на сайте потребуется зарегистрироваться, регистрация бесплатна): https://www.docker.com/products/docker-desktop

После установки потребуется перезагрузиться. Согласитесь при запросе на включение Hyper V при первом запуске.

После включения компонента Hyper V виртуальные машины VirtualBox и VMWare перестанут функционировать. Вы можете отключить Hyper V в настройках компонентов Windows (и перезагрузиться), чтобы виртуальные машины снова работали. Потом для работы Docker можно снова запустить Docker Desktop, который предложит включить Hyper V, чтобы работал он.

Откройте папку со сборкой TESSA, в ней в папке Docker скопируйте подпапку tessa на ваш локальный диск, из которого будет запускаться и настраиваться инсталляция. При этом дополнительных файлов в этой папке создано не будет, поскольку контейнеры создаются и хранятся в локальном реестре Docker, который располагается в папках пользователя (обратитесь к инструкции Docker на сайте https://docs.docker.com/ ).

Имя инсталляции зависит от имени папки, в которую распаковано содержимое. Например, папка "tessa" создаёт и управляет инсталляцией с именем "tessa". Скопируйте содержимое этой папки в папку с другим именем, расположенную рядом, и запускайте скрипты из папок с разными именами, чтобы одновременно иметь несколько независимых инсталляций на компьютере.

Скопируйте ваш файл лицензии *.tlic в текущую папку с инсталляцией (папка "tessa").

Запустите скрипт install.bat, нажмите любую клавишу для начала установки и дождитесь её завершения.

По умолчанию система скачивает и установливает последнюю сборку платформы TESSA, опубликованную в репозитории Docker Hub. Вы можете перед установкой отредактировать файл docker-compose.yml, указав конкретные версии образов syntellect/tessa:*** (свойство image), добавив номер сборки и знак дефиса, например: syntellect/tessa:3.5.0-web. Версии для образов web, chronos, nginx и tadmin должны совпадать. По аналогии можно использовать теги syntellect/tessa:3.5-web для последней опубликованной сборки 3.5.x, syntellect/tessa:3-web для последней опубликованной сборки 3.x.x, и по аналогии для других версий системы и других образов.

Перед завершением скрипт выведет на экран порт такого вида:

0.0.0.0:32768

Адрес веб-сервиса на вашем компьютере будет следующим (укажите порт, который вывел скрипт): https://localhost:32768

Повторно вывести порт можно, запустив скрипт start.bat.

Для использования web-клиента откройте эту ссылку в адресе веб-браузера. Введите логин admin и пароль admin для пользователя, созданного по умолчанию.

Для использования desktop-клиента установите Tessa Applications через msi-инсталлятор из сборки платформы в папке Setup (подпапка ru-RU для русскоязычной версии, в ней подпапка x64 для 64-битных ОС). В качестве адреса сервера укажите ссылку выше, в качестве кода сервера задайте "docker" (без кавычек). Логин admin, пароль admin (их можно указать на вкладке "Серверы", чтобы не вводить каждый раз).

На этом установка системы завершена. Ниже приведена информация по управлению запущенными контейнерами и по дополнительным настройкам инсталляции в контейнерах.

13.2. Управление запущенными контейнерами

Здесь приводится справочная информация по использованию скриптов в папке с приложением "tessa", в т.ч. по запуску, остановке, удалению контейнеров и др.

  1. Для остановки без удаления данных (из базы данных и файловых хранилищ) вызовите скрипт stop.bat.

  2. Для повторного запуска вызовите start.bat, новый адрес порта будет отображён в консоли (или предыдущий адрес, если сервисы не останавливались)

  3. После перезагрузки контейнеры будут остановлены, для их запуска вызовите start.bat после того, как на значке Docker в трее будет всплывающая подсказка "Docker Desktop is running".

  4. Для остановки и удаления данных из контейнеров вызовите uninstall.bat.

  5. Для повторной установки "чистой" системы вызовите install.bat. Предварительно вызывать uninstall.bat не нужно, данные предыдущей инсталляции будут удалены, если присутствовали.

  6. Для полной очистки Docker и всех его кэшей: в меню на значке Docker в трее выберите Settings, перейдите на вкладку Reset и выберите Reset to factory defaults. Дождитесь завершения очистки и заново вызовите install.bat.

  7. Посредством скрипта tadmin.bat можно из командной строки выполнять действия с утилитой tadmin, для которой укажите адрес подключения к сервисам https://nginx. Выполнение производится в контейнере утилиты, где доступны папки Configuration и Fixes из той версии сборки, которая была установлена. Пример:

    tadmin ImportCards "Configuration/Cards/Settings/License (settings).jcard" -c -a:https://nginx -u:admin -p:admin

13.3. Настройка логирования и обновление расширений

Для удобства просмотра логов log.txt и обновления библиотек серверных расширений extensions можно создать связи для папок в контейнерах и папок в Windows, вложенных в локальную папку с файлом docker-compose.yml, из которой вы выполняли установку системы в Docker.

Сначала требуется определить имена контейнеров и убедиться, что они функционируют. Откройте командную строку Windows в папке с файлом docker-compose.yml. Здесь подразумевается, что установка системы в Docker уже была выполнена. Определите имена запущенных контейнеров:

docker ps -a
Ключ -a выводит помимо запущенных контейнеров также созданные контейнеры, которые не запущены в настоящий момент. Можно опустить этот ключ, если надо отобразить только запущенные контейнеры.

По умолчанию имя контейнера для веб-сервиса называется tessa_web_1, где tessa - имя папки с файлом docker-compose.yml (обычно её имя изменяют для создания второй инсталляции системы в Docker на том же сервере), "web" - имя контейнера с веб-сервисом, указанное внутри файла docker-compose.yml, "1" - номер экземпляра контейнера, по умолчанию все контейнеры запускаются в единственном экземпляре.

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

Теперь запустите контейнеры, если они не запущены (скрипт start.bat) и проверьте, что корректно выполняется открытие консольной оболочки ash (аналог bash для дистрибутива Alpine Linux). В следующем примере открывается консоль для контейнера tessa_web_1, далее в нём выводится список файлов в папке веб-сервиса ls, и консоль закрывается exit:

docker exec -it tessa_web_1 ash

ls

exit

Аналогичную проверку выполните для сервиса Chronos в контейнере tessa_chronos_1.

Откройте командную строку Windows в папке с файлом docker-compose.yml.

Скопируйте папку с серверными расширениями из контейнера с веб-сервисом следующей командой. При этом в текущей папке будет создана подпапка "extensions" с библиотеками расширений и файлом extensions.xml. В контейнере Chronos эта папка полностью идентична, поэтому достаточно скопировать из веб-сервиса.

docker cp tessa_web_1:/root/tessa/web/extensions .
При обратном копировании командой docker cp, когда файлы были скопированы из папки Windows в контейнер, такие файлы будут сохранены только до следующего запуска контейнера (скрипт start.bat или команда docker-compose up). Если вы хотите копировать некоторые файлы настроек при каждом запуске контейнера, то доработайте скрипт start.bat по своему усмотрению и запускайте его каждый раз после запуска сервера.

Скопируйте файлы NLog.config из контейнеров веб-сервиса и сервиса Chronos в подпапки logs_chronos и logs_web, предварительно их необходимо создать командой mkdir:

mkdir logs_chronos logs_web

docker cp tessa_chronos_1:/root/tessa/chronos/logs/NLog.config ./logs_chronos

docker cp tessa_web_1:/root/tessa/web/logs/NLog.config ./logs_web

В файлах NLog.config, который появится в подпапках logs_chronos и logs_web, вы можете настроить логирование по своим правилам. Например, чтобы логируемые сообщения записывались в отдельные файлы каждый день с созданием подпапок с номером месяца и года. Подробная информация по настройкам NLog.config доступна в документации по библиотеке NLog: https://github.com/NLog/NLog/wiki/Configuration-file

Для создания связи между локальной папкой в Windows и папками в контейнере потребуется отредактировать файл docker-compose.yml, в который добавить в разделы volumes соответствующих контейнеров строку следующего вида (не добавляйте её, это пример):

volumes:
      - ./ПАПКА_В_Windows:/root/tessa/ПАПКА_В_КОНТЕЙНЕРЕ

Где /root/tessa - путь к домашней папке в контейнерах приложения TESSA.

После настройки связи каждый раз, когда контейнер будет запущен (скрипт start.bat или команда docker-compose up), содержимое соответствующей папки в контейнере будет очищено. После этого выполняется копирование всех файлов и подпапок из папки в Windows в папку в контейнере. Далее при изменении этой папки в контейнере она изменяется в Windows и в любых других контейнерах, связанных с той же папкой в Windows. Также, если вы изменяете папку в Windows, то она автоматически изменяется во всех связанных контейнерах, т.е. связь двусторонняя.

Теперь отредактируйте docker-compose.yml, добавив связи для папок с логами в текущей папке с файлом docker-compose.yml.

  1. Папка extensions содержит расширения, одинаковые для веб-сервиса и Chronos.

  2. Папка logs_web будет содержать логи веб-сервиса, по умолчанию это файл log.txt.

  3. Папка logs_chronos будет содержать логи Chronos, по умолчанию это файл log.txt.

Троеточием обозначены пропущенные строки, которые будут перед строками связей, которые требуется добавить (строка связи начинается со знака дефиса):

web:
    ...
    volumes:
      ...
      - ./extensions:/root/tessa/web/extensions
      - ./logs_web:/root/tessa/web/logs

...

chronos:
    ...
    volumes:
      ...
      - ./extensions:/root/tessa/chronos/extensions
      - ./logs_chronos:/root/tessa/chronos/logs

Для применения изменений остановите контейнеры скриптом stop.bat и снова запустите их скриптом start.bat.

Первый раз при запуске контейнера с привязанными папками может отобразиться предупреждение вида "Share disk C:\ with container?", подтвердите его, при этом потребуется ввести пароль администратора Windows. Если после этого вы получите ошибку в окне консоли вида "Drive sharing seems blocked by a firewall", то настройте правила вашего firewall в соответствии с инструкцией: https://docs.docker.com/docker-for-windows/#firewall-rules-for-shared-drives (обычно требуется отключить блокировку входящих соединений TCP по порту 445). После настройки повторите команду запуска контейнеров.
Также можно разрешить общий доступ из контейнера к дискам Windows, открыв окно Settings в контекстном меню Docker Desktop в трее, и на вкладке Shared Drives выбрав нужную букву диска и нажав Apply. Если вы не настроили firewall, и он блокирует порты, то вы также получите предупреждение. Docker гарантирует, что контейнер получает доступ к указанным подпапкам Windows, в соответствии с настроенной связью в docker-compose.yml, но разрешить доступ требуется для всего диска C:\ (или другого диска, где расположен docker-compose.yml).

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

14. Заключение

Спасибо, что установили СЭД TESSA. Теперь вы можете наслаждаться работой в современной системе электронного документооборота, разработанной с целью обеспечить надёжную, комфортную и быструю работу.

15. Возможные проблемы

15.1. Не загрузились расширения

Если какие-либо расширения не загрузились, то необходимо проверить:

  • Не заблокировал ли файлы с расширениями .dll или рядом лежащий файл extensions.xml антивирус:

    В папке веб-сервиса tessa (C:\inetpub\wwwroot\tessa\tessa), или в папке клиента (в которую можно перейти, нажав на пункт контекстного меню "Открыть папку приложений…​" в Tessa Applications).

  • Не заблокировал ли файлы Windows:

    В таком случае в окне свойств файла будет флаг "Разблокировать". Его надо поставить и нажать ОК:

image047 6

15.2. Не работает предпросмотр PDF в Windows 7/8.1/10

При отключении встроенного предпросмотра PDF и при использовании приложения Acrobat Reader версий 10, 11 (XI) и DC (указанные версии могут работать на 32-битной Windows, но они точно несовместимы с Tessa для 64-битной Windows).

Возможные методы решения:
  • Включить встроенный предпросмотр PDF.

  • Установить Foxit Reader (32 бит), он совместим с Windows 10 и у него нет проблем с предпросмотром.

  • Установить бесплатную (free) версию приложения PDF Architect.

  • Использовать старую версию Adobe Reader 9.

15.3. При запуске Tessa Applications долго показывает экран загрузки, и затем ошибка

При запуске Tessa Applications долго отображается экран загрузки, и затем появляется ошибка "Не удалось подключиться к серверу аутентификации".

При этом точно есть доступ по 443 порту к серверу аутентификации. Проблема возникла из-за установленной версии КриптоПро. В теории должна возникать только при невалидном ключе сервера. При установленной в составе КриптоПро библиотеке pkivalidator, они дополняют алгоритм проверки сертификата и делают это криво. Вот обсуждение на их форуме.

Возможные методы решения:
  • Удалить КриптоПро.

  • Установить более новую версию КриптоПро.

  • Удалить регистрацию в реестре CLSID\{1FDD1FC3-6347-49DF-BDAB-E465BF32AD92}\\InprocServer32

15.4. Не работает Windows Authentication в домене

Проблема скорее всего связана с некорректными SPN.

15.5. Установка на версии Windows, не поддерживающей Windows Authentication

При установке Tessa на версии Windows, в составе которых нет компонента Windows Authentication для IIS, например, Windows 10 Home, необходимо учесть следующие отличия относительно типовой установки:

  1. Т.к. Windows аутентификация работать не будет, то все приложения необходимо запускать с ключами /u /p для указания имени пользователя и пароля.

    TessaClient.exe /u:username /p:password
    
    TessaAdmin.exe /u:username /p:password

    Можно указать фиктивные имя пользователя и пароль, тогда при запуске система выведет диалог ввода логина\пароля.

  2. В Tessa Applications логин\пароль указываются индивидуально для каждого сервера на вкладке "Серверы". Запущенные оттуда приложения TessaAdmin и TessaClient проходят аутентификацию с использованием тех же параметров подключения.

15.6. Периодически возникает ошибка с CardMetadataCache при запуске приложений TessaClient или TessaAdmin

Периодически при запуске приложений TessaClient или TessaAdmin возникает исключение примерно следующего вида:

Resolution of the dependency failed, type = "Tessa.Cards.Metadata.CardMetadataCache", name = "(none)".
Exception occurred while: Calling constructor Tessa.Cards.Metadata.CardMetadataCache(System.String instanceName, Tessa.Platform.Services.IUnityDisposableContainer container).
Exception is: UnauthorizedAccessException - Отказано в доступе по пути "Invalidated.EventMutex.07e0663a744fa4f2c873ce76039037933919b186e848ba9e82ca8be547997e3c..6b8529df30919b9a82302b68b5bd1699174df646181b16db91345643bc899cd3".
At the time of the exception, the container was:

Resolving Tessa.Cards.Metadata.CardMetadataCache,(none)
  Calling constructor Tessa.Cards.Metadata.CardMetadataCache(System.String instanceName, Tessa.Platform.Services.IUnityDisposableContainer container)

Обычно такая ошибка возникает, если со стороны сервера приложений установлено два экземпляра веб-сервисов Tessa, которые работают в разных пулах приложений (что правильно). Например, на одном и том же сервере запущены веб-сервисы для тестового и production серверов.

Для исправления задайте различные значения настройки ServerCode в файле веб-сервиса app.json для каждой из папок. Например, в папке, относящейся к production-серверу, укажите значение prod, а в папке, относящейся к тестовому серверу, укажите значение qa.

    "Settings": {
        "ServerCode": "prod",
        ...
    }

Аналогичную настройку рекомендуется установить для Chronos в конфигурационных файлах app.json в папке рядом с Chronos.exe.

15.7. Проблемы с производительностью клиента, когда в сети предприятия отключён доступ в Интернет

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

Запустите Fiddler и посмотрите трафик при работающем приложении. Если появляется вот такой запрос, который может обрабатываться 10 секунд с последующим редиректом:

GET http:// ctldl.windowsupdate.com/msdownload/update/v3/static/trustedr/en/disallowedcertstl.cab?ab903fbe32ee4be1 HTTP/1.1
Accept: */*
User-Agent: Microsoft-CryptoAPI/6.1
Connection: Keep-Alive
Host: ctldl.windowsupdate.com

То необходимо отключить локальные политики, из-за которых приложение периодически обращается к Windows Update за проверкой сертификатов SSL/TLS. Подробнее описано в статье: https://support.microsoft.com/en-us/kb/2677070

  • Откройте редактор политики: пуск - выполнить - gpedit.msc

  • Перейдите в: Локальные политики безопасности - Политики открытого ключа – Политики подтверждения пути сертификата

  • Далее на вкладке "Получение по сети" поставьте флажок "определить параметры…​"

  • И снимите флажок "автоматически обновлять сертификаты…​"

В результате настройки должны быть как на скриншоте:

image051

15.8. Проблемы с производительностью клиента, когда на компьютере пользователя установлен КриптоПро

При установленном плагине КриптоПро CAdESCOM в приложениях TessaClient и TessaAdmin могут наблюдаться проблемы с запуском и значительное снижение производительности (высокая нагрузка на процессор и постепенно увеличивающиеся объёмы занятой памяти).

Это связано с тем, что Tessa отправляет HTTPS-запросы на сервер штатными средствами ОС, а драйвер КриптоПро вмешивается в этот процесс и нарушает работу системы.

Проблему можно решить одним из способов:

  1. Удалите плагин КриптоПро, если он не требуется на этом компьютере.

  2. Удалите регистрацию библиотеки pkivalidator (ПО КриптоПро) из реестра по пути CLSID\{1FDD1FC3-6347-49DF-BDAB-E465BF32AD92}\InprocServer32

15.9. Переполнение перемещаемого профиля пользователя

В некоторых случаях пользователи, работающие на множестве серверов и использующие много приложений, могут столкнуться с трудностями, связанными с тем, что перемещаемый профиль пользователя Windows начинает занимать слишком много места. Это происходит, потому что старые версии приложения Tessa Applications кэшируют загруженные приложения в папке %AppData%\tessa\applications (обычно это путь вида C:\Users\ivan\AppData\Roaming\tessa\applications). В некоторых инфраструктурах размер этой папки может быть ограничен.

Для решения это проблемы можно или обновить Tessa Applications до сборки 3.5.0 или старше, используя msi-пакет, или настроить его для кеширования загруженных приложений в другой папке. Эта настройка задается в файле настроек пользователя %AppData%\tessa\settings\application_catalogs.xml (например, C:\Users\ivan\AppData\Roaming\tessa\settings\application_catalogs.xml). Этот файл создается автоматически при первом запуске пользователем приложения Tessa Applications путем копирования аналогичного файла, находящегося в папке установки.

В указанное в примере место нужно добавить атрибут t:AppPath="%LocalAppData%\tessa" и в значении прописать папку, в которую вы хотите сохранять загруженные приложения. Система создаст по указанному пути подпапку "applications" и в нее будут сохраняться загруженные приложения.

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<t:AppManager xmlns:t="http://syntellect.ru/tessa/catalogs" t:AppPath="%LocalAppData%\tessa">
  <t:ApplicationCatalogs t:IsAppManagerUpdateService="tessa">
    <t:ApplicationCatalog t:Alias="tessa" t:Path="https://localhost/tessa" t:OpenTimeOut="0" />
  </t:ApplicationCatalogs>
</t:AppManager>

В примере выше использован путь для хранения приложений в неперемещаемом профиле пользователя. Вы можете использовать стандартные переменные окружения, например AppData, LocalAppData.

15.10. Ошибка "HTTP Error 503. The service is unavailable." при открытии web-клиента

В журнале событий системы в этом случае может присутствовать примерно такая запись
Имя журнала:   System
Источник:      Microsoft-Windows-WAS
Дата:          30.01.2017 13:54:12
Код события:   5021
Категория задачи:Отсутствует
Уровень:       Предупреждение
Ключевые слова:Классический
Пользователь:  Н/Д
Компьютер:
Описание:
Неверное удостоверение пула приложений tessaWeb. Возможно, неправильно указаны заданные для удостоверения имя пользователя или пароль, либо пользователь не имеет права на пакетный вход. Если удостоверение неверно, пул приложений будет отключен, как только пул приложений получит свой первый запрос. Если возникает проблема с правами на пакетный вход, необходимо заменить имя пользователя в хранилище конфигураций IIS после получения прав перед тем, как служба активации Windows (WAS) сможет выполнить повторный вход в систему. Если удостоверение останется неверным после обработки первого запроса пула приложений, пул будет отключен. Поле данных содержит номер ошибки.

Проверьте корректность аккаунта\пароля, под которым запускается пул приложений. Также можете запустить пул приложений от встроенной учетной записи ApplicationPoolIdentity. В этом случае в строке подключения к MS SQL Server нужно будет указать логин/пароль учётной записи MS SQL Server с правами dbo на базу данных tessa.

15.11. Ошибка "Необходимо заново войти в систему" или зависание после неактивности в Google Chrome

Такая проблема наблюдается, если к web-клиенту выполняется подключение по адресу с localhost, причём в настройках браузера Google Chrome установлен флаг для доверия сертификату с localhost: chrome://flags/#allow-insecure-localhost.

В этом случае браузер после неактивности начинает игнорировать любые запросы от объектов service worker (используемых в приложении Tessa для кэширования), в результате чего web-клиент может перестать отображать данные представлений (вечная надпись "загрузка"), зависнуть на открытии/создании карточки (вечная загрузка с крутящимся progress bar-ом) или выбросить с ошибкой.

Поскольку речь про localhost, это актуально только для разработчиков, тестирующих веб-клиент на своём компьютере, который выполняет роль сервера.

Для исправления используйте один из вариантов:

  • Подключитесь по http и укажите вместо localhost IP-адрес (например, 192.168.0.1, но не 127.0.0.1).

  • Подключитесь по https с самоподписанным сертификатом (проверка которого в браузере завершится неудачно), и укажите IP-адрес (в т.ч. подойдёт 127.0.0.1).

В этих случаях функционал service worker будет отключён, это можно будет увидеть в правой боковой панели в плитке "О программе".

15.12. Ошибка "Failed to fetch metadata" при открытии веб-клиента после перехода на новую версию платформы

Это означает, что в браузере у пользователя, у которого произошла ошибка, надо сбросить cookies и кэш браузера. Обратитесь к документации браузера, чтобы узнать, как это сделать.

15.13. Ошибка "При выполнении операции произошла ошибка. Имя файла \\?С:\inetpub\wwwroot\tessa\web\web.config"

image085

Данная ошибка наблюдается, если на сервере .NET Core Hosting bundle был установлен раньше, чем IIS. Чтобы исправить ошибку необходимо выполнить исправление .NET Core Hosting bundle:

image086

Перейдите в Панель управления\Программы\Программы и компоненты. И там выберите "изменить" на последней версии .NET Core Hosting bundle. После этого нажмите repair. Для применения изменений необходимо перезагрузить компьютер.

15.14. Ошибка в логе сервера приложений при соединении с СУБД: "error: 40 - Could not open a connection to SQL Server --→ System.ComponentModel.Win32Exception: Access is denied"

Ошибка может возникать при использовании Kerberos-аутентификации совместно с протоколом named pipes для общения между серверов приложений и СУБД. При возникновении такой ошибки явно укажите порт 1433 для использования протокола TCP/IP в строке подключения к СУБД (в файлах app.json веб-сервиса, Chronos и tadmin). Например:

  "ConnectionStrings": {
        "default": "Server=COMPUTER_NAME,1433; Database=tessa; Integrated Security=true; Connect Timeout=200; pooling='true'; Max Pool Size=200; MultipleActiveResultSets=true;"
  }

Если ваш СУБД использует другой номер порта для протокола TCP/IP, то замените 1433 на актуальный номер порта. Также может потребоваться настроить firewall для трафика по протоколу TCP и этому номеру порта.

15.15. Service Worker не работает в Firefox, несмотря на корректный сертификат

Если в окне "О программе" указано "Service Worker не доступен", при этом HTTPS-сертификат отмечен как корректный (зелёный значок "замка" слева от текущего адреса), то для браузера Firefox проверьте следующую настройку:

  1. Откройте страницу со специальными настройками, указав в адресной строке: about:config

  2. Найдите в поиске настройку: dom.serviceWorkers.enabled

  3. Если указано значение false, то двойным кликом замените его на true, после этого страницу можно закрывать - изменения сохранены

  4. Обновите страницу браузера с web-клиентом системы. В окне "О программе" теперь должно быть указано "Service Worker доступен"

Эта настройка обычно по умолчанию включена, но в Firefox в CentOS и некоторых других ОС возможно, что потребуется включить настройку вручную. Функциональность Service Worker заметно уменьшает количество трафика, загружаемого с сервера в момент открытия страницы web-клиента.

15.16. При использовании функций Deski в Firefox появляется ошибка "NetworkError when attempting to fetch resource."

Если в окне "О программе" написано "Deski доступен", но при выборе таких функций в контекстном меню файлов, как "Открыть для чтения", "Открыть для редактирования", "Открыть для редактирования в папке" и др., отображается сообщение об ошибке: Error: NetworkError when attempting to fetch resource.

Откройте консоль браузера (клавиша F12, вкладка Console). Нажмите повторно на пункт контекстного меню. В консоли может появиться сообщение следующего вида:

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://127.0.0.1:7711/api/setappinfo?app=https%3A%2F%2Flocalhost. (Reason: CORS request did not succeed).

Если это так, то вы столкнулись с ошибкой Firefox: https://bugzilla.mozilla.org/show_bug.cgi?id=1488740

Она повторяется в версиях Firefox 58-68. Некоторые ОС, такие как CentOS 8, содержат в репозиториях версию с долгосрочной поддержкой Firefox 68, в которой также эта проблема присутствует.

Варианты решения:

  1. Обновите версию Firefox, если есть такая возможность. В Windows браузер Firefox обновляется сам через меню. В Linux вы также можете скачать Firefox с сайта в виде архива (не в репозитории), и запускать новую версию Firefox параллельно с поддерживаемой версией из репозитория.

  2. Используйте другой поддерживаемый браузер. В Linux это Google Chrome или его открытая версия Chromium, которая также может быть в репозиториях вашего дистрибутива.

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

Откройте окно консоли и запустите deski. Если архив был распакован в домашнюю папку, то для этого выполните команду:

~/deski/deski

Если отображается сообщение "Deski is running" и открывается окно браузера со странице "Deski запущен", то остановите Deski нажатием [Ctrl+C] и перейдите к следующему абзацу. Если же в консоли выводится ошибка об отсутствии библиотеки, то ваш дистрибутив Linux по умолчанию не содержит необходимой библиотеки, и её должен установить пользователь с правами администратора. Например, в CentOS 7/8 требуется установить библиотеку libappindicator-gtk3, введя в консоли следующие команды:

su
yum -y install epel-release && yum -y install libappindicator-gtk3
exit

Если не отображается иконка Deski, то, возможно, также отсутствует расширение оконного менеджера GNOME или KDE для поддержки иконок в области уведомлений. Нам известно о такой проблеме в CentOS. Для её разрешения, откройте магазин приложений "Software", найдите приложение с именем "KStatusNotifierItem/AppIndicator Support", установите его и перезагрузите компьютер (или оконный менеджер). Подробнее по расширению можно прочитать в репозитории: https://github.com/ubuntu/gnome-shell-extension-appindicator

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