image001

© Syntellect 2019


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

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

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

Applications

Приложения

Applications\Publisher

Приложение Publisher для публикации кастомизированных рабочих мест

Applications\SchemeEditor

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

Applications\TessaAdmin

Приложение Tessa Admin - административное рабочее место

Applications\TessaClient

Приложение Tessa Client - рабочее место пользователя

Applications\TessaAppManager

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

Applications\TokenEditor

Приложение Token Editor - генерация токена безопасности в конфигурационном файле веб-сервиса

Applications\publish_admin_demo.bat

Файл для публикации Tessa Admin

Applications\publish_client_demo.bat

Файл для публикации Tessa Client

Applications\publish_client_32bit_only_demo.bat

Файл для публикации Tessa Client в режиме "32-разрядное приложение на 64-разрядных ОС" (не используйте совместно с publish_client_demo.bat)

Applications\publish_appmanager_demo.bat

Файл для публикации Tessa Applications

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

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

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, в комплекте русскоязычная и англоязычная версии инсталлятора, причём любой из инсталляторов устанавливает мультиязычную версию приложения (разница в названии создаваемых ярлыков и в языке при запуске пользователем инсталлятора или деинсталлятора)

Source

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

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 2008 R2 SP1 (x64)

    • Windows Server 2012 (x64)

    • Windows Server 2012 R2 (x64)

    • Windows Server 2016 (x64)

  • IIS 7.0+

  • .NET Framework 4.7.2 или старше (для установки часто требуется также установить обновления для ОС)

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

    • Windows Server 2008 R2 SP1 (x64)

    • Windows Server 2012 (x64)

    • Windows Server 2012 R2 (x64)

    • Windows Server 2016 (x64)

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

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

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

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

    • Windows 7 SP1 (x86 and x64)

    • Windows 8.1 (x86 and x64)

    • Windows 10 Anniversary Update (x86 and x64)

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

  • .NET Framework 4.7.2 или старше (для установки часто требуется также установить обновления для ОС)

Требования к клиентским компьютерам для работы web-клиента
  • Операционная система Linux, Mac OS X или 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 (для Mac OS X).

    • Google Chrome 55+

    • Mozilla Firefox 50+

    • Microsoft Edge: версия, входящая в состав ОС Windows 10 Anniversary Update Version 1607, или старше

    • Safari 10+

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

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

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

На сервере приложений должны быть установлены (или включены в компонентах):
  • .NET Framework 4.7.2 или старше

  • IIS (роль Веб-сервер) и его дополнительные компоненты:

    • Компонент Проверка подлинности Windows: "Internet Information Services\World Wide Web Services\Security\Windows Authentication" или "Службы Интернета\Безопасность\Проверка подлинности Windows"

    • Компонент Консоль управления IIS: "Internet Information Services\Web Management Tools\IIS Management Console" или "Службы 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 2.2.x найдите последнюю доступную версию (обычно сверху), скачайте и установите Runtime & Hosting Bundle для Windows.

      На странице со списком версий не выбирайте 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.

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

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

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

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

После установки и конфигурации веб-сервиса, для него нужно сгенерировать и установить новую подпись токена безопасности. Для генерации новой подписи токена нужно использовать TokenEditor (в сборке в папке Applications\TokenEditor), который значительно упрощает процесс смены подписи.

Запустите приложение от администратора, после запуска выбирается корневая папка веб-сервисов Tessa и подпись:

image021

По умолчанию в качестве папки с сервисами указан путь C:\inetpub\wwwroot\tessa, если сервисы были установлены в другую папку – укажите ее.

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

После выбора корневой папки веб-сервисов по опции Заменить подпись TokenEditor заменит подпись токена безопасности для конфигурационного файла сервиса Tessa. После удачной замены TokenEditor отобразит информационное сообщение, в котором будет указан путь к конфигурационному файлу сервиса, в котором была установлена новая подпись.

image022

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;"
    }
Для подключения с использованием пользователя PostgreSQL:
  "ConnectionStrings": {
        "default": [ "Host=localhost; Database=tessa; Integrated Security=false; User ID=postgres; Password=Master1234", "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 байта. Рекомендуется изменять значение посредством приложения TokenEditor (описано в разделе Генерация нового токена безопасности веб-сервиса системы).

"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 час. Кэш прав доступа не используется для администраторов, поскольку для них доступны все представления, независимо от прав.

"ProbingPath": "extensions"

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

"ServerDependencies": "Tessa.Compilation.CompilationTessaServerDependencies, Tessa.Compilation"

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

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

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

"Configuration.Sealed": false

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

"Configuration.StrictSecurity": false

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

"GuyFawkesAuth": "tessa/web"

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

"WinAuth": "tessa/tw_winauth"

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

"InstanceName": ""

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

"MultipleInstances": false

Зарезервировано для будущих нужд. Признак того, что сервер может работать в режиме нескольких экземпляров. Если указан, то к адресу web-клиента требуется дописать имя экземпляра InstanceName. Не изменяйте значение по умолчанию (false), проконсультируйтесь с вендором при необходимости его изменить.

"PreviewPdfEnabled": true

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

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

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

"CryptoProPluginEnabled": false

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

"CardTracingMode": "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}))

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

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

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

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

Параметр

Описание

"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. Установка конфигурации

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

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

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

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

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

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

Теперь запустите Setup.bat из папки сборки. Будет предложено указать адрес подключения, или нажмите клавишу Enter, чтобы использовать адрес по умолчанию:

image053

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

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

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

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

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

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

image054

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

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

image057

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

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

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

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

image084

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

Chronos – системный сервис, который необходим для корректной работы некоторых компонентов системы. Он занимается периодическим расчетом замещений, рассылкой почтовых уведомлений и т.д. Скопируйте папку сборки Chronos в SYSTEM_VOLUME:\tessa\, где SYSTEM_VOLUME - основной раздел сервера, на котором установлена система. Chronos.exe устанавливается как сервис Windows.

Прежде чем выполнять установку Chronos необходимо установить настройки в файле Chronos\app.json:

  • Указать строку подключения к базе данных;

  • Прописать путь к файлу лицензии.

Более подробно о данных параметрах можно посмотреть в разделе Настройка конфигурационного файла (параметры конфигурационных файлов сервера и Chronos аналогичны).

Чтобы установить Chronos как сервис Windows необходимо выполнить в командной строке (с правами администратора) следующие команды.

rem Переходим в папку, куда скопировали Chronos
cd C:\Tessa\Chronos

C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil Chronos.exe

net start "Syntellect Chronos"
Если система установлена не на диск C, то измените пути в скрипте выше.

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

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

Запустите приложение 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.10. Установка системы вручную (не рекомендуется для типовой конфигурации)

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

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

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

image002 1

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

image002

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

image003

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

image004

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

image005

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

image006

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

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

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

image024

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

image025

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

image026

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

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

image027

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

image028

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

image029

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

image030

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

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

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

image032

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

image033

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

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

image034

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

image035

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

image036

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

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

image037

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

image038

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

image039

3.10.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 локального компьютера, отправляющего запрос.

SmtpTargetName

Задает имя поставщика услуг (SPN) для проверки подлинности при использовании расширенной защиты SMTP - транзакций. У данного атрибута нет значения по умолчанию.

SmtpFrom

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

SmtpFromDisplayName

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

SmtpTimeout

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

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

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

Параметр

Описание

ExchangeUser

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

ExchangePassword

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

ExchangeServer

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

ExchangeVersion

Задает версию почтового Exchange-сервера. Значение по умолчанию: Exchange2010.

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

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

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

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

image043 1

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

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

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

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

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

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

/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.

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

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

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

image043 2

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

5.2. Создание пакета инсталляции

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

Tessa Applications управляет запуском и обновлением приложений Tessa на рабочих местах пользователей. Для того, чтобы указать адрес сервера по умолчанию, к которому будет подключаться 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.

    Вторым параметром задаётся опциональный код сервера, например, 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.

Параметры для адреса и сервер-кода можно указать в командной строке (т.е. без создания 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
Командная строка (или .bat файл) должна быть запущена от имени администратора.

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

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

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

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

image064

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

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

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

image046

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

image047

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

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

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

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

image046 1

Серверных и клиентских расширений должно быть по три:

image046 2

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

image046 3

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

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

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

При установке системы на СУБД 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 (это имя строки подключения в конфигурационном файле выше), База данных - да:

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

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

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

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

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

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

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

9.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. Поэтому на сервере, где запущен 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.

9.2. ЭЦП

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

9.2.1. Настройка ЭЦП

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

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

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

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

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

image066

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

image067

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

image068

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

image069

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

image070

9.3. Настройка Windows-авторизации

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

9.3.1. Настройка серверной части

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

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

    image071

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

    image072
  2. Для созданного приложения в разделе "Проверка подлинности" включаем Проверка подлинности Windows, остальные - отключаем.

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

    <aspNetCore processPath=".\WebClient.exe" arguments="" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="true"/>

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

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

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

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

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

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

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

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

    image074

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

    image075

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

    image076

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

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

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

    image078

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

    image079

9.3.3. Проверка работы Windows-авторизации

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

image080

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

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

9.4. ADFS

Web-клиент поддерживает аутентификацию через ADFS, основанную на стандарте 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.

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 адрес.
Для работы ADFS требуется установленный на сервере .NET Framework 4.5.2 и выше.

10. Установка второго экземпляра 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 конфигурационного файла Chronos\Chronos.exe.config:

    <add key="ServiceName" value="Syntellect Chronos" />
    C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil Chronos.exe
    
    net start "Syntellect Chronos TEST"
  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 можно воспользоваться специальными ссылками (см. Руководство администратора).

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

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

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

  2. Установлен .NET Framework 4.7.2 (установка .NET Core не требуется)

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

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

11.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\TessaClient.exe.config настройте базовый адрес 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\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).

11.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-файла с адресом подключения, который предварительно настроен в файле ИмяПриложения.exe.config. Это настройка BaseAddress в файлах TessaClient.exe.config и TessaAdmin.exe.config.

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

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

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

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

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

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

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

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

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

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

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

image047 6

13.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.

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

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

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

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

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

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

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

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

13.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 авторизуются с использованием тех же параметров подключения.

13.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.

13.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

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

При установленном плагине КриптоПро CAdESCOM в приложениях TessaClient и TessaAdmin могут наблюдаться проблемы с запуском и значительное снижение производительности (высокая нагрузка на процессор и постепенно увеличивающиеся объёмы занятой памяти).

Это связано с тем, что Tessa отправляет HTTPS-запросы на сервер штатными средствами ОС, а драйвер КриптоПро вмешивается в этот процесс и нарушает работу системы.

Проблему можно решить одним из способов:

  1. Удалите плагин КриптоПро, если он не требуется на этом компьютере.

  2. Удалите регистрацию библиотеки pkivalidator (ПО КриптоПро) из реестра по пути CLSID\{1FDD1FC3-6347-49DF-BDAB-E465BF32AD92}\InprocServer32

13.9. Почтовый сервере не поддерживает Explicit SSL

При отправке почты по SMTP можно столкнуться с сервером, который не поддерживает Explicit SSL (это когда соединение устанавливается как незащищенное, и потом выдается команда STARTTLS для перехода в защищенный режим). API отправки почты в .NET Framework SmtpClient, используемое в платформе, поддерживает только Explicit SSL и не поддерживает Implicit SSL (это когда сразу устанавливается защищенное SSL соединение).

Для того, чтобы обойти это ограничение, можно использовать утилиту stunnel https://www.stunnel.org/index.html , которая может работать как локальный прокси. Stunnel устанавливает SSL-соединение к почтовому серверу, а платформа настроена на подключение к локальному порту stunnel.

Пример настройки описан по ссылке https://stackoverflow.com/a/29551513 .

13.10. Переполнение перемещаемого профиля пользователя

В некоторых случаях пользователи, работающие на множестве серверов и использующие много приложений, могут столкнуться с трудностями, связанными с тем, что перемещаемый профиль пользователя Windows начинает занимать слишком много места. Это происходит, потому что приложение Tessa Applications кэширует загруженные приложения в папке %AppData%\tessa\applications (обычно это путь вида C:\Users\ivan\AppData\Roaming\tessa\applications). В некоторых инфраструктурах размер этой папки может быть ограничен.

Для решения это проблемы можно настроить Tessa Applications для кеширования загруженных приложений в другой папке. Эта настройка задается в файле настроек пользователя %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.

13.11. Ошибка "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.

13.12. Ошибка "Необходимо заново войти в систему" или зависание после неактивности в 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 будет отключён, это можно будет увидеть в правой боковой панели в плитке "О программе".

13.13. Ошибка "Failed to fetch metadata" при открытии веб-клиента после перехода на новую версию платформы

Это означает, что в браузере у пользователя, у которого произошла ошибка, надо сбросить cookies и кэш браузера. Обратитесь к документации браузера, чтобы узнать, как это сделать.

13.14. Ошибка "При выполнении операции произошла ошибка. Имя файла \\?С:\inetpub\wwwroot\tessa\web\web.config"

image085

Данная ошибка наблюдается, если на сервере .NET Core Hosting bundle был установлен раньше, чем IIS. Чтобы исправить ошибку необходимо выполнить исправление .NET Core Hosting bundle:

image086

Перейдите в Панель управления\Программы\Программы и компоненты. И там выберите "изменить" на последней версии .NET Core Hosting bundle. После этого нажмите repair. Для применения изменений необходимо перезагрузить компьютер.