Конфигурирование#
Базовые настройки приложения описаны в пакете Ecosoft-lexema8-config.
Приложение lexema8 имеет несколько конфигурационных файлов, которые по умолчанию находятся в каталоге ./config. Они позволяют переопределить базовые настройки, а также добавлять новые.
Конфигурационные файлы подразделяются на уровни, благодаря чему можно настраивать приложение в соответствии с требуемым окружением:
- default.js - Основной конфигурационный файл. Содержит общие настройки приложения, которые могут быть переопределены другими файлами. Файл отслеживается системой контроля версий.
- production.js - Файл должен содержать настройки, которые используются в производственном окружении. Имеет более высокий приоритет, чем default.js. Файл должен использоваться только на развернутом сайте. Не рекомендуется создавать в самом проекте. Не должен отслеживаться системой контроля версий.
- local.js - Используется для локального конфигурирования приложения. Позволяет каждому разработчику при необходимости использовать индивидуальные настройки. Имеет более высокий приоритет, чем 'default.js' и 'production.js'. Файл не должен отслеживаться системой контроля версий.
Предупреждение
default.js не должен содержать настройки подключения к БД, пароли, секретные ключи, которые используются в производственном окружении, поскольку в этом случае они будут храниться в удаленном репозитории.
Предупреждение
Если вы создали в вашем проекте конфигурационные файлы production.js и local.js, то убедитесь, что они добавлены в .gitignore
Предупреждение
В производственном окружении необходимо вручную добавить файл production.js (в папку, где находятся остальные конфигурационные файлы приложения), переопределив нужные настройки (файла default.js).
Правило объединения конфигурационных файлов: если свойство является массивом или примитивным типом, то они объединяются путем замены (значение берется из более приоритетного файла). Объекты - дополняются новыми свойствами, если свойства с таким именем не было, и объединяются (с таким же правилом), если такое имя уже существовало.
Нужный файл выбирается платформой на основе системной переменной среды NODE_ENV. В производственном режиме необходимо устанавливать её значение в production. При этом значении будет выбран соответствующий файл настроек (production.js). Этот механизм базируется на npm-пакете config, в статье Ecosoft-lexema8-config указаны ссылки на подробное описание его работы.
Ниже описание разделов файла конфигурирования.
Следующие разделы файла настроек настоятельно рекомендуется установить в требующиеся на проекте значения. Подразумевается, что настройка нового проекта осуществляется на основе шаблонного проекта.
db#
В разделе db необходимо указать требуемые профили подключения к БД.
Используемый приложением профиль определяется в разделе applications в свойстве db настроек сервиса данных data. По умолчанию используется значение main. При необходимости можно указать несколько профилей (например, при использовании доставки сообщений).
main#
Профиль по умолчанию. Содержит настройки подключения к пользовательской БД.
-
host - Имя хоста.
-
database - Имя базы.
-
dialect - Диалект.
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| string | mssql, postgres |
-
instanceName - Имя экземпляра sql-сервера.
-
port - Порт сервера бд.
-
user - Логин пользователя.
-
password - Пароль.
-
isolationLevel - Задает уровень изолированности транзакций.
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| string | READ_UNCOMMITTED | READ_UNCOMMITTED, READ_COMMITTED, REPEATABLE_READ, SERIALIZABLE |
- requestTimeout - Время ожидания выполнения запроса.
common#
errors#
Путь к файлу описания ошибок относительно "контекста" (см. свойство context в разделе common). Свойство можно не указывать, если не планируется переопределять сообщения, отображаемые пользователю.
applications#
gate#
Настройка сервиса gate. Обязательная настройка!
- passwordExpiration - задает срок действия пароля пользователя в днях, значение 0 отключает проверку.
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| int | 0 |
- twoFactorProvider - провайдер двухфакторный аутентификации. В случае установки значения none считается выключенной.
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| string | none | none, email, phone |
post#
Настройка сервиса post. Обязательная настройка!
-
defaultEmailId - идентификатор почтового ящика, который используется по умолчанию.
-
emails - словарь с описанием используемых почтовых ящиков. Ключом является уникальный идентификатор почтового ящика, а значением - объект со свойствами:
- host - имя хоста smtp-сервера.
- port - порт smtp-сервера.
- user - логин.
- pass - пароль.
- userName - имя отображаемое при отправке почты.
- secure - включить/выключить доставку по электронной почте с использованием TLS/STARTTLS. (Для 'smtp.yandex.ru' значение должно быть true)
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| bool | false | true, false |
-
sms - настройки сервиса для отправки смс (можно не описывать, если код для восстановления пароля не отправляется через смс).
- login - логин.
- password - пароль.
- token - токен доступа к api (используется у провайдера "мтс коммуникатор").
- sender - имя отправителя.
- provider - имя провайдера, реализующий отправку смс сообщений.
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| string | undefined | prostor, mts, либо путь к своему собственному классу |
jsreport#
Настройки сервиса отчетов jsreport.
- protocol - используемый веб-протокол.
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| string | http |
- host - имя хоста (при локальной разработке - localhost, в случае продакшена имя контейнера с сервисом).
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| string | localhost |
- port - порт для запуска.
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| int | 3070 |
- script - путь к модулю, запускающему сервис.
| тип | рекомендуемое значение |
|---|---|
| string | ecosoft-lexema8-jsreport-service |
Дополнительные настройки сервиса указаны в статье.
preview#
Настройки сервиса превью.
- protocol - используемый веб-протокол.
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| string | http |
- host - имя хоста (при локальной разработке - localhost, в случае продакшена имя контейнера с сервисом).
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| string | localhost |
- port - порт для запуска.
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| int | 3074 |
- script - путь к модулю, запускающему сервис.
| тип | рекомендуемое значение |
|---|---|
| string | ecosoft-lexema8-preview-creator-service |
- fileSizeLimit - максимальный размер конвертируемого файла.
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| string | 30mb |
- maxRetry - кол-во попыток сконвертировать файл, после которых возникнет ошибка.
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| int | 3 |
- resultTTL - время хранения готового результата (файла или ошибки) в миллисекундах, в случае отсутствия соединения для ответа (socket).
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| int | 10 * 60 * 1000 |
scheduler#
Настройки сервиса для работы с серверными задачами scheduler.
- protocol - используемый веб-протокол.
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| string | http |
- host - имя хоста (при локальной разработке - localhost, в случае продакшена имя контейнера с сервисом).
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| string | localhost |
- port - порт для запуска.
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| int | 3075 |
- script - путь к модулю, запускающему сервис ('ecosoft-lexema8-scheduler-service').
| тип | рекомендуемое значение |
|---|---|
| string | ecosoft-lexema8-scheduler-service |
Дополнительные настройки сервиса указаны в статье.
dss#
Настройка сервиса dss.
- protocol - используемый веб-протокол.
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| string | http |
- host - имя хоста.
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| string | localhost |
- port - порт для запуска.
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| int | 3076 |
- script - путь к модулю, запускающему сервис.
| тип | рекомендуемое значение |
|---|---|
| string | ecosoft-lexema8-dss-service |
Дополнительные настройки сервиса указаны в статье.
collector#
Настройка сервиса collector.
- db - схема подключения к базе данных для сохранения информации о системе.
- protocol - используемый веб-протокол.
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| string | http |
- host - имя хоста.
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| string | localhost |
- port - порт для запуска.
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| int | 3077 |
- script - путь к модулю, запускающему сервис.
| тип | рекомендуемое значение |
|---|---|
| string | ecosoft-lexema8-collector-service |
excel#
Настройка сервиса excel.
- protocol - используемый веб-протокол.
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| string | http |
- host - имя хоста.
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| string | localhost |
- port - порт для запуска.
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| int | 3079 |
- script - путь к модулю, запускающему сервис.
| тип | рекомендуемое значение |
|---|---|
| string | ecosoft-lexema8-excel-service |
stimulsoftReport#
Настройка сервиса отчётов stimulsoftReport.
- protocol - используемый веб-протокол.
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| string | http |
- host - имя хоста.
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| string | localhost |
- port - порт для запуска.
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| int | 3080 |
- script - путь к модулю, запускающему сервис.
| тип | рекомендуемое значение |
|---|---|
| string | ecosoft-lexema8-stimulsoft-report-service |
Примеры#
Настройка ограничения количества запросов для отправки кода при восстановлении пароля#
Пример конфигурационного фала для Nginx
Отключение двухфакторной аутентификации только для пользователей внутренней сети#
Далее представлен пример настроек конфигурационных файлов Nginx для отключения двухфакторной аутентификации при работе из внутренней сети. Для пользователей, которые будут работать из внешней сети двухфакторная аутентификация должна быть включена.
В конфигурационном файле приложения для сервиса gate необходимо включить настройки twoFactorProvider и enableLocalRoutes
Пример конфигурационного файла для сайта, который будет доступен только для внутренних пользователей:
Пример конфигурационного файла для сайта, который будет доступен только для внешних пользователей: