====== Инструкция по развёртыванию модуля триггеров в операционной системе Windows: версия 16.Х. ====== ===== Требования к серверу ===== ==== Веб-сервер ==== - 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 сайта, в действиях нажимаем «Тест настроек», должно открыться модальное окно, в котором все пункты будут отмечены зелеными индикаторами, говорящие об успешности настройки доступа сайта и файловой системы.