Список ключей и их описание в файле конфигурации appsettings.json


Навигация по разделу


Настройки СУБД (SqlClient)

Старое расположение настроек:

"SystemSettings": {
  "DataSourceType": "0",
  "Server": "",
  "DataBase": "",
  "UseCommonLogin": false,
  "MaxPoolSize": 0,
  "AppPoolTimeout": 300,
  "UserName": "",
  "Password": "",
  "AuthSecretKey": "secret string for authenticate"
}

Новое расположение настроек:

"SqlClient": {
  "DataSourceType": "",
  "Server": "",
  "DataBase": "",
  "UserName": "",
  "Password": "",
  "MaxPoolSize": 0,
  "ConnectionTimeout": 15,
  "CommandTimeout": 3600,
  "AppPoolSize": 0,
  "AppPoolTimeout": 300,
  "PoolTransactions": false,
  "Traced": false
},
Наименование Описание
DataSourceType Тип источника СУБД.
0 - MSSQL,
3 - PostgreSQL.
Server Имя сервера.
DataBase Имя базы данных.
UserName Имя пользователя подключения к БД.
Password Пароль подключения к БД.
MaxPoolSize Размер пула на уровне драйвера.
ConnectionTimeout Таймаут соединения, в секундах. По умолчанию - 15.
CommandTimeout Таймаут выполнения команд, в секундах. 0 - бесконечный.
AppPoolSize Размер пула на уровне приложения (максимальное число одновременно открытых соединений). Отрицательные значения и ноль (по умолчанию) отключают этот пулинг; рекомендуется задавать значение меньше, чем Maximum Pool Size (например, Maximum Pool Size = 350, App Pool Size = 300).
AppPoolTimeout Таймаут получения соединения из пула на уровне приложения, в секундах. По умолчанию - 300.
PoolTransactions Использовать транзакции для пула соединений драйвера.
Traced Трассировать sql-запросы (OpenTelemetry).

ПОЛЕЗНО
Или можно использовать специализированную строку соединения Connection, которая дублирует группу ключей:
DataSourceType, Server, DataBase, UserName, Password, MaxPoolSize, ConnectionTimeout, CommandTimeout.

"SqlClient": {
  "Connection": "<строка соединения>",
  "AppPoolSize": 0,
  "AppPoolTimeout": 300,
  "AppPoolTimeout": false,
  "Traced": false
},

Пример строки соединения "Connection" для MSSQL базы:

"Connection": "Data Source Type=MSSQL; Data Source=ServerName; Initial Catalog=DataBaseName; User ID=user; Password=1; Max Pool Size=100;",

Пример строки соединения "Connection" для PostgreSQL базы:

"Connection": "Data Source Type=PostgreSQL; Host=127.0.0.1; Port=5434; Database=db1; User ID=user; Password=1; Maximum Pool Size=100;",

Настройки кэша списка

Расположение настроек кэша сохраняется в секции "SystemSettings".

Добавлена дополнительная секция "ListCache", которая переопределяет значение SystemSettings/SqlCache, и является настройкой кэша только для списка, а не глобальной.

"ListCache": {
  "DataInSession": false,
  "PoolTransactions": false,
  "SqlCache": "<строка соединения>",
  "Interval": 6000,
  "UseDailyScheduler": true,
  "DailyAtHourAndMinute": ["06:00", "21:00"]
},
Наименование Описание
DataInSession Служебная настройка. Хранить данные в сеансовых таблицах. Рекомендуется false. Ключ на переходный период, чтобы можно было бы вернуться к прежней реализации.
PoolTransactions Служебная настройка. Использовать DB-транзакции для пула соединений.
SqlCache Строка соединения к SQL-кэшу.
Interval Временной интервал очистки в секундах.
UseDailyScheduler Флаг использования дневного расписания для очистки.
DailyAtHourAndMinute Дневное расписание с указанием часов работы.

Пример строки соединения "SqlCache" для SQLite базы кэша:

"SqlCache": "Data Source Type=SQLite; Data Source=.\\temp\\db\\wrk.db3",

Пример строки соединения "SqlCache" для PostgreSQL базы кэша:

"SqlCache": "Data Source Type=PostgreSQL; Host=127.0.0.1; Port=5434; Database=database; User ID=user; Password=; Application Name=cache; Maximum Pool Size=550; App Pool Size=500; CommandTimeout=60; ExpirationMode=absolute; ExpirationTimeout=36000",

Настройки выгрузки неактивных документов из памяти ОЗУ (DX)

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

  "DX": {
    "EnableHibernation": true,
    "HibernateTimeout": "00:05:00",
    "HibernatedDocumentsDisposeTimeout": "00:30:00",
    "HibernateAllDocumentsOnApplicationEnd": true
  },
Наименование Описание
EnableHibernation Включение гибернации
HibernateTimeout Период до выгрузки документа из ОЗУ на диск
HibernatedDocumentsDisposeTimeout Период до удаления выгруженного документа с диска
HibernateAllDocumentsOnApplicationEnd Перевести в спящий режим все документы при добавлении

Настройки для фоновых служб очистки SYS-таблиц (SysCleaner)

"SysCleaner":
  {
    "Mode": 3,
    "Connections": [],
    "ScheduleDateSettings":
    {
      "Interval": 0,
      "UseDailyScheduler": true,
      "DailyAtHourAndMinute" : ["03:00"]
    },
    "ScheduleRidSettings":
    {
      "Interval": 300,
      "UseDailyScheduler": false,
      "DailyAtHourAndMinute" : ["01:00"]
    }
  },
Наименование Описание
Mode Режим работы для фоновой службы:
1 - строки подключения из коллекции Connections
2 - динамическое добавление в коллекцию очистки при создании подключения
3 - оба варианта
Connections Строки подключения к БД, для очистки
ScheduleDateSettings Настройка расписания для фоновой службы очистки SYS-таблиц по дате:
Interval - Временной интервал очистки в секундах.
UseDailyScheduler - Флаг использования дневного расписания для очистки, по умолчанию true.
DailyAtHourAndMinute - Дневное расписание с указанием часов работы.
ScheduleRidSettings Настройка расписания для фоновой службы очистки SYS-таблиц по RID:
Interval - Временной интервал очистки в секундах.
UseDailyScheduler - Флаг использования дневного расписания для очистки, по умолчанию false.
DailyAtHourAndMinute - Дневное расписание с указанием часов работы.

Настройки автоудаления содержимого TEMP (TempCleanerSettings)

  "TempCleanerSettings": {
    "Enabled": true,
    "Period": "1.00:00:00",
    "ObsolescencePeriod": "06:00:00",
    "Path": "temp",
    "SearchPattern": "*.*",
    "SearchOption": "AllDirectories"
  },
Наименование Описание
Enabled true - включить; false - выключить
Period Периодичность с которой запускается очистка. Значение 1.00:00:00 равно одному дню
ObsolescencePeriod Период устаревания. Если с момента последнего доступа к файлу прошло более ObsolescencePeriod дней, то файл считается неактуальным и удаляется
Path Относительный или абсолютный путь к каталогу для поиска.
SearchPattern Строка поиска, которая должна сравниваться с именами файлов в Path
SearchOption Значение перечисления, определяющее, следует ли выполнять поиск только в текущем каталоге или также во всех его подкаталогах

Настройки аутентификации (Authentication)

  "Authentication": {
    "AuthenticationMethod": 1,
    "OpenIdConnect": {
      "Authority": "",
      "ClientId": "",
      "ClientSecret": "",
      "Scope": [ "openid", "profile","offline_access" ],
      "ValidateIssuerName": true,
      "RemoteAuthenticationTimeout": "31.00:00:00"
    },
    "BuiltInJwtBearer":{
      "SecurityAlgorithm": "HmacSha256",
      "SecurityKey": "",
      "PrivateKeyPemFile": "",
      "PublicKeyPemFile": "",
      "TokenLifetimeMinutes": 60
    }
  },
Наименование Описание
AuthenticationMethod Метод аутентификации:
0 - DBMS (по старому);
1 - BuiltInJwtBearer;
2 - SingleUserJwtBearer;
3 - OpenIdConnect
OpenIdConnect Настройки OpenID Connect для КС-ID:
Authority - Адрес сервиса аутентификации.
ClientId - идентификатор клиентского приложения (зарегистрированного в КС ID).
ClientSecret - Секрет клиентского приложения (зарегистрированного в КС ID).
Scope - [ \"openid\", \"profile\", \"offline_access\" ] - список запрашиваемых scope'ов (настраивается при регистрации в КС ID).
ValidateIssuerName - true (см примечание п.2).
BuiltInJwtBearer Настройки встроенного генератора JWT:
SecurityAlgorithm - Алгоритм шифрования JWT: например, HmacSha256 или RsaSha256.
SecurityKey - Ключ для симметричного алгоритма.
PrivateKeyPemFile PublicKeyPemFile - Пути к файлам с ключами в формате PEM для асимметричного алгоритма.
TokenLifetimeMinutes - Время жизни токена авторизации в минутах.

Примечание OpenIdConnect для KC-ID

  1. Обязательные значения "Scope": ["openid", "profile"].
    "offline_access" - желателен к использованию, нужен для получения токена обновления (продление сессии пользователя без автоматического выхода и необходимости выполнения повторного входа)
  2. "ValidateIssuerName" - издатель токена должен соответствовать 1:1 с адресом указанным в секции "Authority" (если в токене будет издатель https://test1.ru:443/ а в "Authority" https://test1.ru/ - это будет считаться ошибкой).

    Примечание OpenIdConnect для Альфа-ID

    В Альфа-ID scope "offline_access" не используется.

Настройки планировщика задач (TaskScheduler)

Настройки для подключения к удаленному серверу планировщика задач.

  "TaskScheduler": {
    "Url": "",
    "Timeout": 100,
  },
Наименование Описание
Url Адрес подключения к сервису новостей.
Timeout Таймаут подключения.

Фильтрация IP-адресов (SafeListSettings)

 "SafeListSettings": {
    "SafeListEnabled": false,
    "SafeList": ""
  },
Наименование Описание
SafeListEnabled Включение фильтрации IP адресов
SafeList Список адресов IPv4 или IPv6, разделённых запятой или точкой с запятой, с которых разрешено подключение.
Если необходимо запретить подключение с какого-либо адреса, перед нужным адресом ставят спецсимвол ~.
Если список пуст, то подключение разрешено со всех адресов.
Если в списке единственный символ ~, то подключение запрещено со всех адресов.

Настройки сервиса очередей (MessageBroker)

Для работы Сервиса печати и сервиса ЭОД (при наличии).
Брокером очередей является RabbitMQ.

 "MessageBroker": {
    "Enabled": false,
    "Traced": false,
    "Address": "amqp://admin:1@127.0.0.1:5672"
  },
Наименование Описание
Enabled false - отключить работу с брокером;
true - включить работу с брокером.
Traced false - выключить трассировку в Jaeger;
true - включить трассировку в Jaeger.
Address Адрес подключения к брокеру очередей (RabbitMQ):
amqp://логин>:<пароль>@<ip-адрес:<порт>

Настройки прокси (WebProxy)

  "WebProxy": {
    "Enabled": false,
    "UseDefaultProxy": false,
    "Address": "https://host:3128/",
    "UserName": "",
    "Password": "",
    "BypassProxyOnLocal": false,
    "BypassList": []
  },
Наименование Описание
Enabled false - отключить;
true - включить.
UseDefaultProxy false - не использовать системный прокси-сервер;
true - использовать системный прокси-сервер.
Address Адрес прокси-сервера.
UserName Имя пользователя.
Password Пароль пользователя.
BypassProxyOnLocal false - не использовать прокси-сервер для локальных (внутрисетевых) адресов;
true - использовать прокси-сервер для локальных (внутрисетевых) адресов.
BypassList Список URI, доступ к которым осуществляется напрямую, а не через прокси-сервер.

Настройки сервиса новостей (NewsService)

  "NewsService": {
    "Address": "",
    "Timeout": 60
  },
Наименование Описание
Address Адрес подключения к сервису новостей.
Timeout Таймаут подключения.

Настройки сервиса мониторинга ошибок (ErrorMonitoringService)

Старое расположение настроек:

"SystemSettings": {
  "ErrorMonitoringURL": "",
  "ErrorMonitoringToken": ""
}

Новое расположение настроек:

  "ErrorMonitoringService": {
    "Url": "",
    "Token": "",
    "Timeout": 60
  },
Наименование Описание
Url Адрес подключения к сервису мониторинга: https://mon.keysystems.ru/ksmon/.
Token Токен, выданный службой сопровождения.
Timeout Таймаут подключения.

Настройки пути для реверс прокси (ServiceSettings)

Старое расположение настроек:

"SystemSettings": {
    "PathBase": ""
}

Новое расположение настроек:

  "ServiceSettings": {
    "PathBase": ""
  },
Наименование Описание
PathBase Виртуальный каталог веб-приложения.

Контроль неудачных попыток ввода пароля (LoginAttempt)

Старое расположение настроек:

"SystemSettings": {
    "LoginAttemptsNumber_comment": "Число попыток ввода пароля до блокировки (0 - неограниченно)",
    "LoginAttemptsNumber": 10,
    "LoginLockPeriod_comment": "Время блокировки (сек)",
    "LoginLockPeriod": 600,
    "LoginLockNotify_comment": "Уведомлять администратора о блокировке. Используется для сообщения о блокировке IP при неудачных попытках",
    "LoginLockNotify": false,
    ...
 }

Новое расположение настроек:

  "LoginAttempt": {
    "MaxAttempts":"5",
    "Period":"300",
    "UseXForwardedFor": null,
    "IncorrectLoginTimeout": 1000
  },
Наименование Описание
MaxAttempts Количество попыток до блокировки учетной записи (допустимо от 3 до 10).
Period Период блокировки повторных попыток, в секундах (допустимо от 180 до 3600 сек).
UseXForwardedFor Учитывать заголовок X-Forwarded-For при блокировке учетной записи.
Указать true при использовании обратного прокси на сервере.
Значение null трактуется как true для linux-систем и false для windows-систем.
IncorrectLoginTimeout Задержка между неудачными попытками входа под одной учетной записью, в миллисекундах.

Настройки SslPolicy (SslPolicy)

  "SslPolicy" : {
    "CheckRemoteCertificateHost": true,
    "CheckRemoteCertificateAuthenticity": true
  },
Наименование Описание
CheckRemoteCertificateHost true - проверять удаленный узел сертификата;
false - не проверять удаленный узел сертификата.
CheckRemoteCertificateAuthenticity true - проверять подлинность удаленного сертификата;
false - не проверять подлинность удаленного сертификата.

Настройки отображения логотипа или герба и названия региона/госоргана в навигаторе (UseEmblem)

  "SystemSettings": {
    "UseEmblem": false,
    ...
  }
Наименование Описание
UseEmblem true - отображать логотип или герб и название региона/госоргана в навигаторе;
false - отображать логотип или герб и название региона/госоргана в навигаторе.

Настройки SQL кэша (SqlCache)

Приведены доступные варианты настроек SQL кэша. По-умолчанию - SQLite.

База кэша SQLite

  "SystemSettings": {
    "SqlCache": "Data Source Type=SQLite; Data Source=.\\temp\\db\\wrk.db3",
    ...
  }

База кэша PostgreSQL

  "SystemSettings": {
    "SqlCache": "Data Source Type=PostgreSQL; Host=127.0.0.1; Port=5434; Database=cache; User ID=user; Password=0; Application Name=cache; Maximum Pool Size=550; App Pool Size=500;",
    ...
  }

Подробнее о SQL кэше в разделе Кэширование.

Настройки NoSQL кэша (NoSqlCache)

Принцип хранения временных данных быстрого доступа [memory/redis/tarantool]. все кроме memory требует строки соединения.

Memory

  "SystemSettings": {
    "NoSqlCache": "memory",
    ...
  }

Redis

  "SystemSettings": {
    "NoSqlCache": "redis: 127.0.0.1:6379, user=user, password=",
    ...
  }

Tarantool

  "SystemSettings": {
    "NoSqlCache": "tarantool: user:@127.0.0.1:3301",
    ...
  }

Подробнее о NoSQL кэше в разделе Кэширование.

Настройки SessionStorage для кэша (SessionStorage)

Используемый для SessionStorage кеш (sql, nosql).
SessionStorage представляет собой временное хранилище информации, которая удаляется после закрытия браузера.

SQL

  "SystemSettings": {
    "SessionStorage": "sql",
    ...
  }

NoSQL

  "SystemSettings": {
    "SessionStorage": "nosql",
    ...
  }

Подробнее о SessionStorage в разделе Кэширование.

Разрешать сбрасывать пароль (AllowRecoveryPassword)

  "SystemSettings": {
    "AllowRecoveryPassword": "true",
    ...
  }

Запрещенные для входа пользователи (disabledUsersd)

  "SystemSettings": {
    "disabledUsers": "",
    ...
  }

Тайм-аут подключения к Ajax (AjaxConnectTimeout)

  "SystemSettings": {
    "AjaxConnectTimeout": 3600000,
    ...
  }

Размер пакета в байтах при отправке файла на сервер (PacketSize_IL)

  "SystemSettings": {
    "PacketSize_IL": 262144,
    ...
  }

Пользовательский заголовок содержащий IP в Request для схем со шлюзами (CustomClientIPHeader)

Без указания настройки используется X-Forwarded-For.

  "SystemSettings": {
    "CustomClientIPHeader": "",
    ...
  }

Настройки отправителя системных сообщений (DbMailingAccount)

Используется для отправки сообщений по внутренней почте.

  "SystemSettings": {
    "DbMailingAccountLogin": "",
    "DbMailingAccountPassword": "",
    ...
  }
Наименование Описание
DbMailingAccountLogin Логин отправителя системных сообщений.
DbMailingAccountPassword Пароль отправителя системных сообщений.

Уведомлять о об истечении срока клиентского сертификата (за ... дней) (NumDaysWarnBeforeCertEnd)

  "SystemSettings": {
    "NumDaysWarnBeforeCertEnd": "",
    ...
  }

Сервис оправдательных документов (AlternativeUploadService)

Переопределяет значение из БД.

  "SystemSettings": {
    "AlternativeUploadService": "",
    ...
  }

Показывать предпросмотр Excel и Word оправдательных документов (PreviewPrimaryImage)

::: danger Функционал очень сильно нагружает сервер. :::

  "SystemSettings": {
    "PreviewPrimaryImage": true,
    ...
  }

Настройки сервиса авторизации (СА) (Authorization)

  "SystemSettings": {
    "AuthorizationType": 0,
    "AuthorizationService": "",
    "AuthorizationAccountLogin": "",
    "AuthorizationAccountPassword": "",
    ...
  }    
Наименование Описание
AuthorizationType 0 - не используя сервис авторизации.
0 и указан сервис авторизации - 2 кнопки - авторизации по сертификату(с СА) и по логину/паролю(без СА).
1 - 1 кнопка - авторизации по логину/паролю(с СА).
2 - 0 кнопок - авторизации по сертификату(с СА) автоматически сразу.
3 - 2 кнопки - авторизации по сертификату(с СА) и по логину/паролю(с СА).
4 - 0 кнопок - авторизации через ЕСИА.
5 - 3 кнопки - авторизации по сертификату(с СА), по логину/паролю(с СА) и через ЕСИА.
6 - 0 кнопок - авторизация через ЕСИА многопользовательский логин.
AuthorizationService URL сервиса авторизации.
AuthorizationAccountLogin Используется для создания пользователя в базу из СА, для восстановления пароля.
Логин менеджера авторизации.
AuthorizationAccountPassword Пароль менеджера авторизации.

Настройка языка приложения (AppLocale)

  "SystemSettings": {
    "AppLocale": "ru-RU",
    ...
  }    

Страница админского входа (Admin)

Активируется по /?pg=admin.
https://yourwebsite/pathbase/?pg=admin

  "SystemSettings": {
    "AdminCPLogin": "admin",
    "AdminCPPassword": "admin",
    "AdminCPAllowedIP": "192.168.0.0/8,10.0.0.0/8",
    "AllowRemoteAdministration": "1",
    ...
  }  
Наименование Описание
AdminCPLogin Имя пользователя администратора (произвольный логин, не привязан к рабочей БД).
AdminCPPassword Пароль администратора.
AdminCPAllowedIP IP по которым разрешена форма админского входа.
Пример: 192.168.0.0/24,10.0.0.0/8.
AllowRemoteAdministration Удаленное администрирование:
0 - разрешено с исключениями, по умолчанию;
1 - разрешено;
2 - запрещено.

Административные ключи

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

  "SystemSettings": {
    "AppServer": "",
    "CacheStorageType": 3,
    "SettingsCheckInterval": "",
    "SchemaCheckInterval": "",
    "ConnectionType": "SignalR",
    "debugState": "on",
    "ServiceSchemaURL": "",
    ...
  }  
Наименование Описание
AppServer
CacheStorageType 3.
SettingsCheckInterval Интервал обновления настроек документа.
SchemaCheckInterval Интервал обновления схемы документ.
ConnectionType SignalR.
debugState Вид отображения ошибок. values=(system/off/on).
ServiceSchemaURL

Портал (веб-торги)

  "SystemSettings": {
    "pAdmName": "mc",
    "pAdmPass": "",
    "UserRegisterLogin": "",
    "UserRegisterPass": ""
    ...
  }  
Наименование Описание
pAdmName Имя админимтратора ПОРТАЛА.
pAdmPass Пароль админимтратора ПОРТАЛА.
UserRegisterLogin Пользователь для регистрации пользователей (для торгов).
UserRegisterPass Пароль пользователь для регистрации пользователей (для торгов).

Ссылка на руководство пользователя (Admin)

Ссылка на руководство пользователя в "Меню - Справка и поддержка".

  "HelpAndSupportInfo": {
    "UserManualUrl": ""
  }