====== Инструкция по развёртыванию модуля триггеров в операционной системе Windows: версия 16.Х. ======
Перед началом установки модуля триггеров убедитесь, что установка Системы ADVANTA проведена корректно, иначе модуль триггеров не запустится. Информацию об установке Системы можно найти на страницах:
* [[product:settings:system:install|Установка и настройка системы под Windows]];
* [[product:settings:system:install_linux|Установка и настройка системы под Linux]].
===== Требования к серверу =====
==== Веб-сервер ====
- Windows server 2012 R2, или выше. Со всеми последними обновлениями
- MS Internet Information Services (IIS) 8.5.
- .net core 3.1.3 hosting bundle
==== SQL-сервер ====
- Windows server 2012 R2, или выше. Со всеми последними обновлениями
- Один из вариантов СУБД:
- MS SQL Server 2012, или выше. Со всеми последними обновлениями
- PostgreSql версии 10, или выше
===== Настройка сервера базы данных =====
==== MS SQL Server ====
- Открыть оснастку SQL Server Management Studio
- Создать новую базу данных. В названии указать любое значение (например triggers)
- Создать учетную запись для базы данных модуля триггеров. \\ {{:product:triggers:triggers1.png?direct|}}
- В окне «Обозреватель объектов» (Object Explorer) раскрыть «Безопасность» (Security), нажать правой кнопкой мыши на «Имена входа» (Logins) и выбрать «Создать имя» (New Login)
- В разделе «Общие» (General):
- В поле «Имя входа» (Login name) ввести любое значение (например triggers). Введённый логин затем понадобится указать на сервере приложения для доступа к базе данных.
- Ввести пароль учетной записи. Введённый пароль затем понадобится указать на сервере приложения для доступа к базе данных
- Выставить опцию «Проверка подлинности SQL Server» (SQL Server authentication)
- Убрать опцию «Требовать использование политики паролей» (Enforce password policy)
- Выставить используемый язык «Язык по умолчанию» (Default language), выбрав в выпадающем меню «Русский» (Russian)
- Выставить используемую базу данных «База данных по умолчанию», выбрав в выпадающем списке меню базу, созданную на шаге 2.1.1.2
- Нажать «OK»
- Открыть созданную учетную запись. Перейти на страницу «Сопоставление пользователей» (User Mapping):
- В окне «Пользователи, сопоставленные с этим именем входа» (User mapped to this login) в столбце «Схема» (Map) установить галочку напротив базы, созданную на шаге 2.1.1.2
- В окне «Членство в роли базы данных для: <выбранная база данных>» (Database role for membership for) выставить права db_owner. \\ {{:product:triggers:рисунок2.png?direct|}}
=== Настройка PostgreSql===
- Открываем pgAdmin
- Добавляем пользователя
- Создаем новую БД.
==== Подготовка сервера приложений ====
- Установить Net core 3.1.3 hosting bundle
- Установить Internet Information Services с компонентами по умолчанию
- Добавить учетную запись пользователя в систему, от которого будет работать сервис через оснастку «Локальные пользователи и группы».
- Распаковать архив с предоставленным модулем триггеров в папку содержащую контенты сайтов IIS (по умолчанию для IIS путь к папке: C:\inetpub\wwwroot\)
- Настроить конфигурационный файл модуля триггеров appsettings.json в скопированном контенте
- Секция «Database»: «ConnectionStrings», строка подключения к созданной базе данных модуля триггера
- RuntimeUser – логин и пароль администратора, от чьего имени будут вестись запросы в API системы Advanta при исполнении триггеров (параметры Login и Password соответственно). Под этим пользователем, через API так же осуществляется запрос на извлечение данных о типах объектов.
- Host – URL адрес сервера для осуществления запросов в API системы Advanta. Должно работать через https и доменное имя адреса обязательно должно совпадать с именем, на которое был выдан сертификат для системы Адванта. \\ {{:product:triggers:рисунок3.png?direct|}}
- Секция «Rebus»: «ConnectionStrings», строка подключения к шине событий системы Advanta (к той базе системы ADVANTA, для которой настраиваются триггеры). \\ {{:product:triggers:рисунок4.png?direct|}}
===Раздел Logging, подраздел File===
* **RootPath** – абсолютный путь по которому будет размещаться папка с логами. По умолчанию полный путь до папки с приложением.
* **BasePath** – относительный путь до папки, в которой будут создаваться файлы с логами. По умолчанию Logs. Конечный путь до папки с файлами логов будет сформирован объединением путей: [RootPath]\[BasePath].
* **LogLevel** – набор фильтров сообщений, поступающих в лог. Формируется по правилам стандартного логирования в Asp.Net Core. Для полного отключения логов, необходимо внутри данной секции указать параметр «Default» : «None».
===Раздел Advanta===
**RuntimeUser** - используется логин и пароль локальной учетной записи администратора системы Адванта.
== **Подраздел Api** ==
* ObjectsSyncTimeout – период синхронизации типов объектов с системой Advanta. Задаётся в секундах. Параметр необязательный. Значение по умолчанию 1440 (т.е. раз в 24 минуты).
* RequestTimeout – период ожидания ответа SOAP API системы Advanta. Задаётся в секундах. Параметр необязательный. Если параметр не задан или его значение равно 0, то будет использовано значение по умолчанию равное 3600 (т.е. 3600 секунд, что равно одному часу).
== **Подраздел Rebuild (Api)** ==
* RootPath – абсолютный путь в котором будет размещаться папка для генерации исходного кода Api. По умолчанию [полный путь до папки с приложением]\\CompilerConfig.
* BasePath – относительный путь до папки, в которой будет собираться Api. По умолчанию Api. Папка должна присутствовать на сервере и у приложения триггеров должен быть доступ на запись и чтение в папку.
* Endpoints – строковый массив названий soap endpoint-ов, которые будут опрашиваться для сборки Api. По умолчанию : [«Login», «Persons», «APIDiscussions», «APIPlans», «APIProjects», «APIService», «APISecurity», «APIRelations»].
* Disabled – признак принудительного запрета на сборку Api во время работы модуля. По умолчанию false.
== **Подраздел Alerts** ==
* Emails – список почтовых адресов, на которые необходимо рассылать уведомления о перезапуске или сбое в работе триггеров. Список необходимо указать через любой из разделителей: запятая, точка с запятой, пробел.
* Подраздел SmtpServer – содержит настройки smtp сервера для отправки email уведомлений:
* Address: адрес smtp сервера,
* Login: логин (email) отправителя,
* Password: пароль отправителя,
* Port: номер порта, если требуется,
* UseSSL: требование использовать SSL (true/false) по умолчанию false
== **Подраздел Rebus** ==
* Transport – тип транспорта для Rebus шины сообщений. Возможные варианты:
* «MSSQL»
* «PostgreSql». \\ Если параметр не указан или пустой, то по-умолчанию используется значение «MSSQL».
* ConnectionString – строка подключения к базе данных, через которую публикуются сообщения rebus.
* InputQueueName – название очереди сообщений (канала), через которую будут поступать сообщения для данного instans-а. Для MSSQL по-умолчанию будет «Bus_TriggersInputQueue», для PostgreSql по-умолчанию будет «bus_triggers_queue».
Для MSSQL параметр игнорируется, так как для MSSQL Rebus использует (и при необходимости создаёт) таблицу с именем, совпадающим с названием входящей очереди сообщений (InputQueueName).
* SubscriptionsTableName – название таблицы, в которую будет размещена информация о подписках. Для MSSQL по-умолчанию будет «Bus_TriggersInputQueue_Subscriptions», для PostgreSql по-умолчанию будет «bus_triggers_input_queue_subscriptions» (должно совпадать с настройками публикующего сервиса).
* PostgreSqlMessagesTableName – название таблицы, через которую будет вестись обмен сообщениями в случае PostgreSql транспорта. По умолчанию будет использоваться «bus_triggers_messages» (должно совпадать с настройками публикующего сервиса).
== **Раздел Database** ==
* **Provider** – определяет тип СУБД, используемой для модуля триггеры. Возможные варианты:
* “MSSQL” и “PostgreSql”. \\ Если параметр не указан или пустой, то по умолчанию используется значение “MSSQL”.
* Возможен так же вариант “Memory”. В этом варианте СУБД использоваться не будет, а все будет храниться в памяти до завершения работы приложения. Данный режим удобно использовать в процессе разработки и тестирования.
* **ConnectionString** – строка подключения к базе данных, в которой размещаются триггеры.
* **MigrateOnStartup** – признак автоматической миграции структуры базы данных.
* Принимаемые значения "true" или "false". Параметр необязательный. Значение по умолчанию “false”.
* Флаг "true" может потребоваться только если есть возможность обновления и развёртывания схемы данных через миграции (например, во время разработки или создания локальной базы). Если значение флага установлено в “true”, потребуются права на создание, изменение, удаление таблиц и индексов.
== **Раздел Module** ==
**InstanceName** – наименование запускаемого инстанса модуля Триггеры. Данное наименование добавляется к логам и в тему email уведомлений
==== Настройка Internet Infirmation Services (IIS) ====
- Открыть «Диспетчер служб IIS» (Internet Information Services (IIS) Manager). \\ {{:product:triggers:рисунок6.png?direct|}}
- При необходимости создать сертификат, перейти в меню «Сертификаты сервера», в окне «Действия» выбрать «Создать самозаверенный сертификат». – **ЕСЛИ СЕРТИФИКАТ ЕСТЬ, САМОЗАВЕРЕННЫЙ НЕ НУЖЕН** \\ {{:product:triggers:рисунок7.png?direct|}}
- «Понятное имя сертификата» - любое, «выбор хранилища сертификатов….» выбираем «Размещение веб-служб».
- Данный сертификат в дальнейшем можно будет импортировать на другой сервер, для этого нужно выбрать справа «Экспортировать», выбрать расположение и задать пароль, затем полученный сертификат импортировать и добавить в «Доверенные корневые центры сертификации». \\ {{:product:triggers:рисунок8.png?direct|}} \\ {{:product:triggers:рисунок9.png?direct|}}
- Перейти к разделу «Пулы приложений» (Application pools):
- Создать новый пул для приложения:
- Имя – любое.
- Пул приложения – «Без управляемого кода».
- Режим управляемого конвейера – «Встроенный».
- Открыть «Дополнительные параметры» (Advanced settings) созданного пула приложений, изменить следующие параметры:
- «Загрузить профиль пользователя» (Load User Profile) на «True»
- «Режим запуска» (Start mode) на «Always Running»
- «Интервал сбоев (в минутах)» (Idle Time-out (minutes)) на 0
- «Действие при окончании времени ожидания простоя» (Idle Time-out Action) - на «Suspend»
- «Предварительная установка включена» (Set Preload Enabled) - «True» \\ {{:product:triggers:image_2021_11_15t12_11_42_124z.png?direct|}}
- «Постоянный временной интервал» (в минутах)(Regular Time Interval)(minutes) на 0 \\ {{:product:triggers:скриншот.jpg?nolink|}}
- Перейти к разделу «сайты», нажимаем «Добавить веб сайт»:
- Создать новый веб сайт: \\ {{:product:triggers:рисунок10.png?direct|}}
- Имя любое
- Выбрать пул, созданный на шаге 3.3 только что созданный нами пул приложения.
- Физический путь – выбрать папку с распакованным веб контентом модуля триггеров на шаге 2.4 {{:product:triggers:рисунок_11.png?direct|}}
- Выбираем в списке сайтов вновь созданный сайт, заходим в контекстное меню и выбираем пункт «Редактировать разрешение», переходим на вкладку "Безопасность" и добавляем туда созданную выше учетную запись пользователя.
- Заходим на созданную страницу IIS сайта, в действиях нажимаем «Тест настроек», должно открыться модальное окно, в котором все пункты будут отмечены зелеными индикаторами, говорящие об успешности настройки доступа сайта и файловой системы.